{"mappings":"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,CAC/C,EACA4X,EAAU,QAAU,SAASyG,GAAY4B,EAAc,CACjD,OAAOA,GAAiB,aAG5B/P,EAAMmO,EAAU,EAAInO,EAAMmO,EAAU,GAAK,CAAC,EAC1C1K,GAAUzD,EAAMmO,EAAU,EAAG4B,CAAY,EAC3C,EACArI,EAAU,WAAa,SAASyG,GAAY,CAC1C,GAAInO,EAAMmO,EAAU,EAClB,OAAO3K,GAASxD,EAAMmO,EAAU,CAAC,CAErC,EACAzG,EAAU,YAAc,SAASyG,GAAY,CACvCnO,EAAMmO,EAAU,IAClBnO,EAAMmO,EAAU,EAAI,CAAC,EAEzB,EACAzG,EAAU,eAAiB,UAAW,CACpC1H,EAAQ,CAAC,CACX,EACO0H,CACT,CACA,IAAIsI,GAASxI,IAAgB,EAGzByI,IAAsB,OAAO,OAAO,CACtC,IACA,OACA,IACA,MACA,aACA,KACA,UACA,OACA,OACA,MACA,WACA,KACA,MACA,UACA,MACA,MACA,KACA,KACA,KACA,aACA,SACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,MACA,MACA,MACA,QACA,KACA,OACA,KACA,IACA,MACA,IACA,KACA,KACA,OACA,OACA,QACA,QACA,SACA,OACA,SACA,SACA,MACA,UACA,MACA,QACA,QACA,KACA,QACA,KACA,QACA,OACA,KACA,KACA,IACA,KACA,MACA,QACA,KACF,CAAC,EACGC,IAAsB,OAAO,OAAO,CACtC,OACA,SACA,MACA,MACA,QACA,MACA,OACA,OACA,WACA,aACA,WACA,UACA,cACA,OACA,QACA,QACA,SACA,OACF,CAAC,EACD,SAASC,GAAiB9B,EAAM+B,EAAI,CAClC,OAAAJ,GAAO,QAAQ3B,EAAM+B,CAAE,EAChBC,GAAa,IAAML,GAAO,WAAW3B,CAAI,CAAC,CACnD,CACA,SAASiC,IAAiCC,EAAsBC,EAAuB,CACrF,IAAMC,EAAS,SAAS,cAAc,GAAG,EACzC,SAASC,EAAa5gB,EAAO6gB,EAAkB,CAC7C,OAAIA,IAAqB,IAChB,IAETF,EAAO,KAAO3gB,EACP6gB,EAAiB,SAASF,EAAO,SAAS,QAAQ,KAA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EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,OAAY,EAAE,EAAI,SACpCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,EAASA,EAAS,KAAU,EAAE,EAAI,OAClCA,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4iB,EAAM81O,EAAM,OAAQ14P,EAAK4iB,EAAK5iB,IAAM,CACnD,GAAM,CAACiO,EAAMwwH,EAAQvwH,CAAE,EAAIwqP,EAAM14P,CAAE,EACnC83B,EAAO,IAAI7pB,EAAMwwH,EAAQvwH,CAAE,CAC7B,CACA,KAAK,QAAU4pB,EACf,KAAK,aAAeu3H,CACtB,CACA,UAAUupG,EAAcn6H,EAAQ,CAC9B,OAAIA,EAAS,GAAKA,GAAU,KAAK,aACxB,EAEF,KAAK,QAAQ,IAAIm6H,EAAcn6H,CAAM,CAC9C,CACF,EACIo6H,GAAgB,KACpB,SAASC,KAAkB,CACzB,OAAID,KAAkB,OACpBA,GAAgB,IAAIJ,IAAa,CAC/B,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,GACA,EAEF,EACA,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,IACA,CAEF,EACA,CACE,EACA,GACA,CAEF,EACA,CACE,EACA,GACA,EAEF,EACA,CACE,GACA,GACA,EAEF,EACA,CACE,GACA,GACA,EAEF,CACF,CAAC,GAEII,EACT,CACA,IAAIE,GAAc,KAClB,SAASC,KAAgB,CACvB,GAAID,KAAgB,KAAM,CACxBA,GAAc,IAAIE,GAChB,CAEF,EACA,IAAMC,EAA+B,wLACrC,QAASl5P,EAAK,EAAGA,EAAKk5P,EAA6B,OAAQl5P,IACzD+4P,GAAY,IACVG,EAA6B,WAAWl5P,CAAE,EAC1C,CAEF,EAEF,IAAMm5P,EAA6B,OACnC,QAASn5P,EAAK,EAAGA,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AAAA,EACjCgnR,GAAWhnR,EAAQ,WAAW,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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F,EACAo4B,GACE41B,GACA08O,IACA,CAEF,EACAtyQ,GACE7E,GACA+1Q,GACA,CAEF,EACAlxQ,GACEy7L,GACA61E,GACA,CAEF,EACAtxQ,GACE07L,IACA61E,GACA,CAEF,EACAvxQ,GACE2hB,GACA8vP,IACA,CAEF,EACAzxQ,GACE0kF,GACAwtL,IACA,CAEF,EACAlyQ,GACEuB,GACAiwQ,IACA,CAEF,EACAxxQ,GACE4zM,GACAg8D,IACA,CAEF,EACA5vQ,GACEi4I,GACA03H,IACA,CAEF,EACA3vQ,GACE3G,GACA22Q,IACA,CAEF,EACAhwQ,GACE8+B,GACAivO,IACA,CAEF,EACA/tQ,GACEmd,GACAk1P,IACA,CAEF,EACAryQ,GACEo2N,GACAlB,IACA,CAEF,EACAl1N,GACEs9B,GACAi0N,GACA,CAEF,EACAvxP,GACEu8K,GACA2yE,GACA,CAEF,EACAlvP,GACE5f,GACAmqR,GACA,CAEF,EACAvqQ,GACE61B,IACA25O,IACA,CAEF,EACAxvQ,GACEoN,GACAkiQ,IACA,CAEF,EACAtvQ,GACE1T,GACAmB,IACA,CAEF,EACAuS,GACEmxC,GACAuhO,GACA,CAEF,EACA1yQ,GACE0Z,GACAm4P,GACA,CAEF,EACA7xQ,GACEowM,IACAgiE,IACA,CAEF,EACApyQ,GACEglF,GACAoqL,GACA,CAEF,EACApvQ,GACEzZ,GACAqhR,GACA,CAEF,EACA5nQ,GACE86E,GACAC,IACA,CAEF,EACA/6E,GACE5D,GACAi0Q,GACA,CAEF,EACArwQ,GACE1f,GACAgwR,GACA,CAEF,EACAtwQ,GACE+X,GACAsvP,GACA,CAEF,EACArnQ,GACEz0B,GACA4mS,GACA,CAEF,EACAnyQ,GACE2b,GACA6yO,GACA,CAEF,EACAxuP,GACE30B,GACAm9R,GACA,CAEF,EACAxoQ,GACEx0B,GACAgnS,GACA,CAEF,EACAxyQ,GACElF,GACAc,GACA,CAEF,EACAoE,GACEmN,GACAwlQ,IACA,CAEF,EACA3yQ,GACE6yQ,GACA7D,IACA,CAEF,EACAhvQ,GACE4pH,GACAkpJ,GACA,CAEF,EACA9yQ,GACEwoH,IACAC,IACA,CAEF,EACA,IAAIsqJ,IACH,SAASC,EAAqB,CAC7B,IAAMC,EAAoB,IAAIrqQ,GAC9B,OAAW,CAAC74B,EAAImlF,CAAU,IAAKg+M,GAA+B,EAC5DD,EAAkB,IAAIljS,EAAImlF,CAAU,EAEtC,IAAMv1E,EAAuB,IAAI4rR,IAAqB0H,EAAmB,EAAI,EAC7EA,EAAkB,IAAI5yR,GAAuBV,CAAoB,EACjE,SAASwzR,EAAIC,EAAW,CACjBC,GACHC,EAAY,CAAC,CAAC,EAEhB,IAAMtnS,EAAIinS,EAAkB,IAAIG,CAAS,EACzC,GAAI,CAACpnS,EACH,MAAM,IAAI,MAAM,mBAAqBonS,CAAS,EAEhD,OAAIpnS,aAAakgS,GACRvsR,EAAqB,eAAgBouB,GAAaA,EAAS,IAAIqlQ,CAAS,CAAC,EAEzEpnS,CAEX,CACAgnS,EAAoB,IAAMG,EAC1B,IAAIE,EAAc,GACZE,EAAkB,IAAIr0R,EAC5B,SAASo0R,EAAY10B,EAAW,CAC9B,GAAIy0B,EACF,OAAO1zR,EAET0zR,EAAc,GACd,OAAW,CAACtjS,EAAImlF,CAAU,IAAKg+M,GAA+B,EACvDD,EAAkB,IAAIljS,CAAE,GAC3BkjS,EAAkB,IAAIljS,EAAImlF,CAAU,EAGxC,QAAWk+M,KAAax0B,EACtB,GAAIA,EAAU,eAAew0B,CAAS,EAAG,CACvC,IAAMI,EAAoBloS,GAAgB8nS,CAAS,EACzCH,EAAkB,IAAIO,CAAiB,YAChCtH,IACf+G,EAAkB,IAAIO,EAAmB50B,EAAUw0B,CAAS,CAAC,CAEjE,CAEF,IAAMK,EAAkBjkO,IAAkB,EAC1C,QAAWkkO,KAAWD,EACpB,GAAI,CACF9zR,EAAqB,eAAe+zR,CAAO,CAC7C,OAASx7Q,EAAK,CACZgT,GAAkBhT,CAAG,CACvB,CAEF,OAAAq7Q,EAAgB,KAAK,EACd5zR,CACT,CACAqzR,EAAoB,WAAaM,EACjC,SAASK,EAAahuR,EAAU,CAC9B,GAAI0tR,EACF,OAAO1tR,EAAS,EAElB,IAAMqH,EAAa,IAAI3e,EACjBytD,EAAW9uC,EAAW,IAAIumR,EAAgB,MAAM,IAAM,CAC1Dz3O,EAAS,QAAQ,EACjB9uC,EAAW,IAAIrH,EAAS,CAAC,CAC3B,CAAC,CAAC,EACF,OAAOqH,CACT,CACAgmR,EAAoB,aAAeW,CACrC,GAAGZ,KAAuBA,GAAqB,CAAC,EAAE,EAGlD7iD,GAAqB,EACrBj6N,GAAc,EACdsF,GAAc,EACdxQ,GAAmB,EACnBxM,GAAgB,EAChBnT,GAAmB,EACnBuQ,GAAkB,EAClBwlO,GAAuB,EACvBroL,GAAW,EACX/c,GAAc,EACdC,GAAmB,EACnB+rC,GAAmC,EACnCttC,GAAsB,EACtBqwB,GAAY,EACZ,IAAI8oO,GAAgB,SAASjoS,EAAYC,EAAQC,EAAKC,EAAM,CAC1D,IAAIC,EAAI,UAAU,OAAQC,EAAID,EAAI,EAAIH,EAASE,IAAS,KAAOA,EAAO,OAAO,yBAAyBF,EAAQC,CAAG,EAAIC,EAAMG,EAC3H,GAAI,OAAO,SAAY,UAAY,OAAO,QAAQ,UAAa,WAAYD,EAAI,QAAQ,SAASL,EAAYC,EAAQC,EAAKC,CAAI,MACxH,SAASzE,EAAKsE,EAAW,OAAS,EAAGtE,GAAM,EAAGA,KAAU4E,EAAIN,EAAWtE,CAAE,KAAG2E,GAAKD,EAAI,EAAIE,EAAED,CAAC,EAAID,EAAI,EAAIE,EAAEL,EAAQC,EAAKG,CAAC,EAAIC,EAAEL,EAAQC,CAAG,IAAMG,GACpJ,OAAOD,EAAI,GAAKC,GAAK,OAAO,eAAeJ,EAAQC,EAAKG,CAAC,EAAGA,CAC9D,EACI6nS,GAAa,SAAS1nS,EAAYC,EAAW,CAC/C,OAAO,SAASR,EAAQC,EAAK,CAC3BO,EAAUR,EAAQC,EAAKM,CAAU,CACnC,CACF,EACI2nS,IAA4B,EAC5BC,GAAqB,GACzB,SAASC,IAAkB1yP,EAAQ,CACjC,GAAI,CAACA,EAAQ,CACX,GAAIyyP,GACF,OAEFA,GAAqB,EACvB,CACAE,IAAiB3yP,GAAUiqB,GAAW,SAAS,IAAI,CACrD,CACA,IAAI2oO,GAAuB,cAAoC/oQ,EAAiB,CAC9E,YAAYg9C,EAAY17E,EAAUkT,EAAsB6oB,EAAmBlK,EAAgBtC,EAAmB0G,EAAcnE,EAAmB4lD,EAAcrnB,EAAqBurB,EAAsBC,EAA8B1jC,EAAyB,CAC7P,IAAMh9C,EAAW,CAAE,GAAG6E,CAAS,EAC/B7E,EAAS,UAAYA,EAAS,WAAausS,GAAwB,0BACnE,MAAMhsN,EAAYvgF,EAAU,CAAC,EAAG+X,EAAsB6oB,EAAmBlK,EAAgBtC,EAAmBmoD,EAAcrnB,EAAqBurB,EAAsBC,EAA8B1jC,CAAuB,EACtNrmB,aAA6B+xQ,GAC/B,KAAK,6BAA+B/xQ,EAEpC,KAAK,6BAA+B,KAEtCy1Q,IAAkBpsS,EAAS,oBAAoB,EAC/CwsS,IAAwB,CAAC7xQ,EAAW8xQ,IAAuB10R,EAAqB,eAAe0iB,GAAwBE,EAAW,CAAE,aAAc8xQ,CAAmB,EAAG,CAAC,CAAC,CAAC,EAC3KC,IAA0B5xQ,CAAY,CACxC,CACA,WAAWpK,EAAYilO,EAAShjO,EAAS,CACvC,GAAI,CAAC,KAAK,6BACR,eAAQ,KAAK,4FAA4F,EAClG,KAET,IAAM+B,EAAY,YAAa,EAAEw3Q,IAC3BS,EAAiBzmQ,EAAe,YAAYvT,CAAO,EACzD,YAAK,6BAA6B,qBAAqB+B,EAAWhE,EAAYilO,EAASg3C,CAAc,EAC9Fj4Q,CACT,CACA,iBAAiBzwB,EAAK2vJ,EAAc,CAClC,OAAO,KAAK,mBAAmB,UAAU3vJ,EAAK2vJ,CAAY,CAC5D,CACA,UAAUg5I,EAAa,CACrB,GAAI,OAAOA,EAAY,IAAO,UAAY,OAAOA,EAAY,OAAU,UAAY,OAAOA,EAAY,KAAQ,WAC5G,MAAM,IAAI,MAAM,6EAA6E,EAE/F,GAAI,CAAC,KAAK,6BACR,eAAQ,KAAK,+FAA+F,EACrGxvS,EAAW,KAEpB,IAAM+K,EAAKykS,EAAY,GACjBz7Q,EAAQy7Q,EAAY,MACpBC,EAAe3mQ,EAAe,IAAIA,EAAe,OAAO,WAAY,KAAK,MAAM,CAAC,EAAGA,EAAe,YAAY0mQ,EAAY,YAAY,CAAC,EACvIE,EAAcF,EAAY,YAC1BG,EAAkB7mQ,EAAe,IAAI2mQ,EAAc3mQ,EAAe,YAAY0mQ,EAAY,iBAAiB,CAAC,EAC5GI,EAAqBJ,EAAY,oBAAsB,KACvDK,EAAmBL,EAAY,kBAAoB,EACnDt6N,EAAM,CAACvpC,KAAcvjC,IAClB,QAAQ,QAAQonS,EAAY,IAAI,KAAM,GAAGpnS,CAAI,CAAC,EAEjD8gE,EAAY,IAAI7/D,EAChBymS,EAAW,KAAK,MAAM,EAAI,IAAM/kS,EAEtC,GADAm+D,EAAU,IAAI1+B,GAAiB,gBAAgBslQ,EAAU56N,CAAG,CAAC,EACzD06N,EAAoB,CACtB,IAAMG,EAAW,CACf,QAAS,CACP,GAAID,EACJ,MAAO/7Q,CACT,EACA,KAAM07Q,EACN,MAAOG,EACP,MAAOC,CACT,EACA3mO,EAAU,IAAIjxC,GAAa,eAAe8C,GAAO,cAAeg1Q,CAAQ,CAAC,CAC3E,CACA,GAAI,MAAM,QAAQL,CAAW,EAC3B,QAAWl7Q,KAAMk7Q,EACfxmO,EAAU,IAAI,KAAK,6BAA6B,qBAAqB4mO,EAAUt7Q,EAAI0gD,EAAKy6N,CAAe,CAAC,EAG5G,IAAMK,EAAiB,IAAIC,IAAqBH,EAAU/7Q,EAAOA,EAAO,OAAQ07Q,EAAc,IAAIrnS,IAAS,QAAQ,QAAQonS,EAAY,IAAI,KAAM,GAAGpnS,CAAI,CAAC,EAAG,KAAK,kBAAkB,EACnL,YAAK,SAAS,IAAI2C,EAAIilS,CAAc,EACpC9mO,EAAU,IAAIh3D,GAAa,IAAM,CAC/B,KAAK,SAAS,OAAOnH,CAAE,CACzB,CAAC,CAAC,EACKm+D,CACT,CACA,gBAAgBzoD,EAAWC,EAAS,CAClC,GAAI,KAAK,8BAA8BqrP,GACrC,GAAI,CACF,KAAK,mBAAmB,oBAAoB,IAAI,EAChD,MAAM,gBAAgBtrP,EAAWC,CAAO,CAC1C,QAAE,CACA,KAAK,mBAAmB,oBAAoB,IAAI,CAClD,MAEA,MAAM,gBAAgBD,EAAWC,CAAO,CAE5C,CACF,EACAwuR,GAAuBN,GAAc,CACnCC,GAAW,EAAGxzR,EAAqB,EACnCwzR,GAAW,EAAG3mQ,EAAkB,EAChC2mQ,GAAW,EAAGz3Q,EAAe,EAC7By3Q,GAAW,EAAGzzR,EAAkB,EAChCyzR,GAAW,EAAGzxQ,EAAa,EAC3ByxQ,GAAW,EAAGvzR,EAAkB,EAChCuzR,GAAW,EAAGv1R,EAAa,EAC3Bu1R,GAAW,EAAGx6Q,EAAoB,EAClCw6Q,GAAW,GAAIttR,EAAqB,EACpCstR,GAAW,GAAIrrN,EAA6B,EAC5CqrN,GAAW,GAAI/uP,EAAwB,CACzC,EAAGovP,EAAoB,EACvB,IAAIgB,GAAmB,cAAgChB,EAAqB,CAC1E,YAAY/rN,EAAY17E,EAAUkT,EAAsB6oB,EAAmBlK,EAAgBtC,EAAmB0G,EAAcnE,EAAmB4lD,EAAcrnB,EAAqBtnC,EAAsB6yD,EAAsBkzF,EAAcv5F,EAAiBsG,EAA8B1jC,EAAyB,CAClT,IAAMh9C,EAAW,CAAE,GAAG6E,CAAS,EAC/BklS,GAA2Bn8Q,EAAsB5tB,EAAU,EAAK,EAChE,IAAMutS,EAAuBhxN,EAAa,wBAAwBgE,CAAU,EACxE,OAAOvgF,EAAS,OAAU,UAC5Bu8E,EAAa,SAASv8E,EAAS,KAAK,EAElC,OAAOA,EAAS,uBAA2B,KAC7Cu8E,EAAa,0BAA0B,EAAQv8E,EAAS,sBAAuB,EAEjF,IAAMs7C,EAASt7C,EAAS,MACxB,OAAOA,EAAS,MAChB,MAAMugF,EAAYvgF,EAAU+X,EAAsB6oB,EAAmBlK,EAAgBtC,EAAmB0G,EAAcnE,EAAmB4lD,EAAcrnB,EAAqBurB,EAAsBC,EAA8B1jC,CAAuB,EACvP,KAAK,sBAAwBpvB,EAC7B,KAAK,wBAA0B2uD,EAC/B,KAAK,UAAUgxN,CAAoB,EACnC,IAAI1gS,EACJ,GAAI,OAAOyuC,EAAW,IAAa,CACjC,IAAMnG,EAAailC,EAAgB,wBAAwBp6E,EAAS,QAAQ,GAAKA,EAAS,UAAYo1C,GACtGvoC,EAAQ2gS,IAAgB75H,EAAcv5F,EAAiBp6E,EAAS,OAAS,GAAIm1C,EAAY,MAAM,EAC/F,KAAK,WAAa,EACpB,MACEtoC,EAAQyuC,EACR,KAAK,WAAa,GAGpB,GADA,KAAK,aAAazuC,CAAK,EACnBA,EAAO,CACT,IAAM9N,EAAI,CACR,YAAa,KACb,YAAa8N,EAAM,GACrB,EACA,KAAK,kBAAkB,KAAK9N,CAAC,CAC/B,CACF,CACA,SAAU,CACR,MAAM,QAAQ,CAChB,CACA,cAAc2f,EAAY,CACxBqrR,GAA2B,KAAK,sBAAuBrrR,EAAY,EAAK,EACpE,OAAOA,EAAW,OAAU,UAC9B,KAAK,wBAAwB,SAASA,EAAW,KAAK,EAEpD,OAAOA,EAAW,uBAA2B,KAC/C,KAAK,wBAAwB,0BAA0B,EAAQA,EAAW,sBAAuB,EAEnG,MAAM,cAAcA,CAAU,CAChC,CACA,wBAAwB+uR,EAAe,CACrC,MAAM,wBAAwBA,CAAa,EACvCA,GAAiB,KAAK,aACxBA,EAAc,QAAQ,EACtB,KAAK,WAAa,GAEtB,CACF,EACAH,GAAmBtB,GAAc,CAC/BC,GAAW,EAAGxzR,EAAqB,EACnCwzR,GAAW,EAAG3mQ,EAAkB,EAChC2mQ,GAAW,EAAGz3Q,EAAe,EAC7By3Q,GAAW,EAAGzzR,EAAkB,EAChCyzR,GAAW,EAAGzxQ,EAAa,EAC3ByxQ,GAAW,EAAGvzR,EAAkB,EAChCuzR,GAAW,EAAGz9C,EAAuB,EACrCy9C,GAAW,EAAGx6Q,EAAoB,EAClCw6Q,GAAW,GAAI14Q,EAAqB,EACpC04Q,GAAW,GAAIttR,EAAqB,EACpCstR,GAAW,GAAIv2O,EAAa,EAC5Bu2O,GAAW,GAAI12P,EAAgB,EAC/B02P,GAAW,GAAIrrN,EAA6B,EAC5CqrN,GAAW,GAAI/uP,EAAwB,CACzC,EAAGowP,EAAgB,EACnB,IAAII,GAAwB,cAAqCltQ,EAAiB,CAChF,YAAY+/C,EAAY17E,EAAUkT,EAAsBqc,EAAmBwM,EAAmB27C,EAAcrnB,EAAqBtnC,EAAsBmM,EAAoB4zQ,EAAuBp+O,EAAkB4F,EAA4B,CAC9O,IAAMn1D,EAAW,CAAE,GAAG6E,CAAS,EAC/BklS,GAA2Bn8Q,EAAsB5tB,EAAU,EAAI,EAC/D,IAAMutS,EAAuBhxN,EAAa,wBAAwBgE,CAAU,EACxE,OAAOvgF,EAAS,OAAU,UAC5Bu8E,EAAa,SAASv8E,EAAS,KAAK,EAElC,OAAOA,EAAS,uBAA2B,KAC7Cu8E,EAAa,0BAA0B,EAAQv8E,EAAS,sBAAuB,EAEjF,MAAMugF,EAAYvgF,EAAU,CAAC,EAAGo0B,EAAmBrc,EAAsB6oB,EAAmBu0B,EAA4Bw4O,CAAqB,EAC7I,KAAK,sBAAwB//Q,EAC7B,KAAK,wBAA0B2uD,EAC/B,KAAK,UAAUgxN,CAAoB,CACrC,CACA,SAAU,CACR,MAAM,QAAQ,CAChB,CACA,cAAc7uR,EAAY,CACxBqrR,GAA2B,KAAK,sBAAuBrrR,EAAY,EAAI,EACnE,OAAOA,EAAW,OAAU,UAC9B,KAAK,wBAAwB,SAASA,EAAW,KAAK,EAEpD,OAAOA,EAAW,uBAA2B,KAC/C,KAAK,wBAAwB,0BAA0B,EAAQA,EAAW,sBAAuB,EAEnG,MAAM,cAAcA,CAAU,CAChC,CACA,mBAAmB3G,EAAsBC,EAAWhY,EAAU,CAC5D,OAAO+X,EAAqB,eAAeu0R,GAAsBt0R,EAAWhY,CAAQ,CACtF,CACA,mBAAoB,CAClB,OAAO,MAAM,kBAAkB,CACjC,CACA,mBAAoB,CAClB,OAAO,MAAM,kBAAkB,CACjC,CACA,WAAW0wB,EAAYilO,EAAShjO,EAAS,CACvC,OAAO,KAAK,kBAAkB,EAAE,WAAWjC,EAAYilO,EAAShjO,CAAO,CACzE,CACA,iBAAiB1uB,EAAK2vJ,EAAc,CAClC,OAAO,KAAK,kBAAkB,EAAE,iBAAiB3vJ,EAAK2vJ,CAAY,CACpE,CACA,UAAUtmE,EAAY,CACpB,OAAO,KAAK,kBAAkB,EAAE,UAAUA,CAAU,CACtD,CACF,EACAogN,GAAwB1B,GAAc,CACpCC,GAAW,EAAGxzR,EAAqB,EACnCwzR,GAAW,EAAGzzR,EAAkB,EAChCyzR,GAAW,EAAG3mQ,EAAkB,EAChC2mQ,GAAW,EAAGz9C,EAAuB,EACrCy9C,GAAW,EAAGx6Q,EAAoB,EAClCw6Q,GAAW,EAAG14Q,EAAqB,EACnC04Q,GAAW,EAAGroS,EAAmB,EACjCqoS,GAAW,EAAGzmQ,EAAsB,EACpCymQ,GAAW,GAAIxoS,EAAiB,EAChCwoS,GAAW,GAAI1mQ,EAA2B,CAC5C,EAAGmoQ,EAAqB,EACxB,SAASF,IAAgB75H,EAAcv5F,EAAiBv6E,EAAOs1C,EAAYvH,EAAK,CAE9E,GADA/tC,EAAQA,GAAS,GACb,CAACs1C,EAAY,CACf,IAAMy4P,EAAU/tS,EAAM,QAAQ;AAAA,CAAI,EAC9BmnK,EAAYnnK,EAChB,OAAI+tS,IAAY,KACd5mI,EAAYnnK,EAAM,UAAU,EAAG+tS,CAAO,GAEjCC,GAAcl6H,EAAc9zK,EAAOu6E,EAAgB,4BAA4BxsC,GAAO,KAAMo5H,CAAS,EAAGp5H,CAAG,CACpH,CACA,OAAOigQ,GAAcl6H,EAAc9zK,EAAOu6E,EAAgB,WAAWjlC,CAAU,EAAGvH,CAAG,CACvF,CACA,SAASigQ,GAAcl6H,EAAc9zK,EAAOurR,EAAmBx9O,EAAK,CAClE,OAAO+lI,EAAa,YAAY9zK,EAAOurR,EAAmBx9O,CAAG,CAC/D,CAGA06M,GAAqB,EACrBj6N,GAAc,EACdsF,GAAc,EACdhd,GAAgB,EAGhB5Z,EAAe,EACfsP,GAAgB,EAChB7I,GAAmB,EAGnBtG,GAAS,EACT4W,GAAmB,EACnB,IAAIg6R,IAAkCvkQ,EAAc,mCAAoC,CAAE,KAAM,UAAW,MAAO,yBAA0B,OAAQ,yBAA0B,QAAS,wBAAyB,EAAG5qC,EAAS,IAAK,kDAAkD,CAAC,EAChRovS,IAA4BxkQ,EAAc,6BAA8BulJ,GAAkBnwL,EAAS,IAAK,oDAAoD,CAAC,EAC7JqvS,IAAwBzkQ,EAAc,yBAA0B,CAAE,KAAM,8BAA+B,MAAO,UAAW,OAAQ,8BAA+B,QAAS,SAAU,EAAG5qC,EAAS,IAAK,gDAAgD,CAAC,EAGzP/B,EAAS,EACTE,GAAc,EACdC,EAAe,EACfsP,GAAgB,EAChBgiB,GAAc,EACd1X,GAAgB,EAChBnT,GAAmB,EACnBqQ,GAA0B,EAC1B,IAAIo6R,IAAgB,SAASlqS,EAAYC,EAAQC,EAAKC,EAAM,CAC1D,IAAIC,EAAI,UAAU,OAAQC,EAAID,EAAI,EAAIH,EAASE,IAAS,KAAOA,EAAO,OAAO,yBAAyBF,EAAQC,CAAG,EAAIC,EAAMG,EAC3H,GAAI,OAAO,SAAY,UAAY,OAAO,QAAQ,UAAa,WAAYD,EAAI,QAAQ,SAASL,EAAYC,EAAQC,EAAKC,CAAI,MACxH,SAASzE,EAAKsE,EAAW,OAAS,EAAGtE,GAAM,EAAGA,KAAU4E,EAAIN,EAAWtE,CAAE,KAAG2E,GAAKD,EAAI,EAAIE,EAAED,CAAC,EAAID,EAAI,EAAIE,EAAEL,EAAQC,EAAKG,CAAC,EAAIC,EAAEL,EAAQC,CAAG,IAAMG,GACpJ,OAAOD,EAAI,GAAKC,GAAK,OAAO,eAAeJ,EAAQC,EAAKG,CAAC,EAAGA,CAC9D,EACI8pS,GAAa,SAAS3pS,EAAYC,EAAW,CAC/C,OAAO,SAASR,EAAQC,EAAK,CAC3BO,EAAUR,EAAQC,EAAKM,CAAU,CACnC,CACF,EACI4pS,IAAe,KAAM,CACvB,YAAYlqQ,EAAWmqQ,EAAqB,CAC1C,KAAK,UAAYnqQ,EACjB,KAAK,oBAAsBmqQ,CAC7B,CACA,OAAQ,CACN,OAAO,KAAK,SACd,CACF,EACIC,GAAyB,cAAsCjxS,CAAW,CAC5E,YAAYusQ,EAAY2kC,EAAyBC,EAA4Bn3R,EAAuBspB,EAA0B,CAC5H,MAAM,EACN,KAAK,WAAaipO,EAClB,KAAK,wBAA0B2kC,EAC/B,KAAK,2BAA6BC,EAClC,KAAK,sBAAwBn3R,EAC7B,KAAK,WAAalS,GAAgB,KAAM,MAAM,EAC9C,KAAK,WAAaY,EAAQ,KAAOF,GAAW,KAAK,WAAW,KAAKA,CAAM,GAAG,UAAU,KAAKA,CAAM,CAAC,EAChG,KAAK,qBAAuBV,GAAgB,KAAM,GAAG,EACrD,KAAK,cAAgBY,EAAQ,KAAOF,IACvB,KAAK,WAAW,KAAKA,CAAM,EAAI,EAAI,KAAK,qBAAqB,KAAKA,CAAM,GACvE,KAAK,kBAClB,EACD,KAAK,sBAAwBV,GAAgB,KAAM,CAAC,EACpD,KAAK,eAAiBA,GAAgB,KAAM,CAAC,EAC7C,KAAK,sBAAwBA,GAAgB,KAAM,CAAC,EACpD,KAAK,eAAiBA,GAAgB,KAAM,CAAC,EAC7C,KAAK,UAAYY,EAAQ,KAAOF,GAAW,CACzC,IAAM4oS,EAAU,KAAK,sBAAsB,KAAK5oS,CAAM,EAAI,KAAK,eAAe,KAAKA,CAAM,EACnF6oS,EAAU,KAAK,sBAAsB,KAAK7oS,CAAM,EAAI,KAAK,eAAe,KAAKA,CAAM,EACzF,OAAI4oS,EAAUC,EACL,CAAE,UAAWD,EAAS,MAAO,KAAK,eAAe,KAAK5oS,CAAM,CAAE,EAE9D,CAAE,UAAW6oS,EAAS,MAAO,KAAK,eAAe,KAAK7oS,CAAM,CAAE,CAEzE,CAAC,EACD,KAAK,UAAYiM,GAAE,qBAAsB,CACvCA,GAAE,oBAAqB,CACrBA,GAAE,qBAAsB,CACtBA,GAAE,oCAAoC,EACtCA,GAAE,gBAAiB,CACjBA,GAAE,iDAAkD,CAAC,CAAC,EACtDA,GAAE,4BAA6B,CAAC,GAAG,CAAC,EACpCA,GAAE,mDAAoD,CAAC,CAAC,CAC1D,CAAC,EACDA,GAAE,qBAAqB,CACzB,CAAC,CACH,CAAC,EACDA,GAAE,mBAAoB,CACpBA,GAAE,4BAA4B,CAChC,CAAC,CACH,CAAC,EACD,KAAK,OAAS,KAAK,UAAU,KAAK,sBAAsB,eAAe2uB,GAAkB,KAAK,UAAU,OAAQ,CAC9G,uBAAwB,KAAK,uBAC/B,EAAG,CAAC,CAAC,CAAC,EACN,KAAK,iBAAmBjpB,GAAqB,KAAK,OAAO,kBAAkB,CAAC,EAAE,UAC9E,KAAK,kBAAoBA,GAAqB,KAAK,OAAO,kBAAkB,CAAC,EAAE,UAC/E,KAAK,UAAYzR,EAAQ,KAAOF,GAAW,KAAK,iBAAiB,KAAKA,CAAM,GAAK,KAAK,kBAAkB,KAAKA,CAAM,CAAC,EACpH,KAAK,eAAiB,KAAK,2BAA2B,oBAAsB,KAAK,UAAU,KAAK,2BAA2B,oBAAoB,KAAK,UAAU,WAAW,CAAC,EAAI,OAC9K,KAAK,gBAAkB,KAAK,2BAA2B,oBAAsB,KAAK,UAAU,KAAK,2BAA2B,oBAAoB,KAAK,UAAU,aAAa,CAAC,EAAI,OACjL,KAAK,WAAa,KAAK,UAAU,IAAIa,CAAiB,EACtD,KAAK,cAAgB,GACrB,KAAK,eAAiB,GACtB,KAAK,oBAAsB,GAC3B,IAAMo5B,EAAM,IAAIoiB,GAAO,KAAK,UAAU,eAAgB,CAAC,CAAC,EACxD,KAAK,UAAUv5C,GAAS9C,GAAW,CACjCi6B,EAAI,QAAQ,UAAY,GACxBA,EAAI,KAAO,KAAK,WAAW,KAAKj6B,CAAM,EAAI5H,EAAQ,aAAeA,EAAQ,WAC3E,CAAC,CAAC,EACF,KAAK,UAAU6hC,EAAI,WAAW,IAAM,CAClC,KAAK,WAAW,IAAI,GAAG,UAAU,IAAI,CAAC,KAAK,WAAW,IAAI,EAAG,MAAM,CACrE,CAAC,CAAC,EACF,KAAK,UAAUn3B,GAAS9C,GAAW,CACjC,KAAK,UAAU,OAAO,MAAM,QAAU,KAAK,WAAW,KAAKA,CAAM,EAAI,OAAS,OAChF,CAAC,CAAC,EACF,KAAK,UAAU,KAAK,OAAO,kBAAkB,EAAE,kBAAmB7G,GAAM,CACtE,IAAMwP,EAAS,KAAK,OAAO,kBAAkB,EAAE,cAAc,EAAE,aAC/D,KAAK,eAAe,IAAIA,EAAQ,MAAM,CACxC,CAAC,CAAC,EACF,KAAK,UAAU,KAAK,OAAO,kBAAkB,EAAE,kBAAmBxP,GAAM,CACtE,IAAMwP,EAAS,KAAK,OAAO,kBAAkB,EAAE,cAAc,EAAE,aAC/D,KAAK,eAAe,IAAIA,EAAQ,MAAM,CACxC,CAAC,CAAC,EACF,KAAK,UAAU,KAAK,OAAO,uBAAwBxP,GAAM,CACvD2vS,GAAmBryR,GAAO,CACxB,KAAK,qBAAqB,IAAItd,EAAE,cAAesd,CAAE,EACjD,KAAK,sBAAsB,IAAI,KAAK,OAAO,kBAAkB,EAAE,gBAAgB,EAAGA,CAAE,EACpF,KAAK,sBAAsB,IAAI,KAAK,OAAO,kBAAkB,EAAE,gBAAgB,EAAGA,CAAE,CACtF,CAAC,CACH,CAAC,CAAC,EACF,KAAK,UAAU,KAAK,OAAO,kBAAkB,EAAE,kBAAmBtd,GAAM,CAItE,GAHI,KAAK,qBAGL,CAACA,EAAE,kBAAoB,CAAC,KAAK,MAC/B,OAEF,IAAMqJ,EAAQrJ,EAAE,UAAY,KAAK,eACjC,KAAK,MAAM,oBAAoBqJ,CAAK,CACtC,CAAC,CAAC,EACF,KAAK,UAAUM,GAAS9C,GAAW,CACjC,IAAMyM,EAAW,KAAK,WAAW,KAAKzM,CAAM,GAAG,SAAS,KAAKA,CAAM,EACnE,KAAK,UAAU,KAAK,UAAU,OAAO,SAAUyM,CAAQ,CACzD,CAAC,CAAC,EACF,KAAK,WAAW,YAAY,KAAK,UAAU,IAAI,EAC/C,KAAK,mBAAqB,KAAK,cAC/B,KAAK,mBAAqB,KAAK,UAAUquB,EAAyB,aAAa,KAAK,UAAU,OAAO,CAAC,EACtG,IAAM3oB,EAAuB,KAAK,UAAU,KAAK,sBAAsB,YAAY,IAAIipB,GAAkB,CAACxoB,GAAoB,KAAK,kBAAkB,CAAC,CAAC,CAAC,EACxJ,KAAK,UAAUT,EAAqB,eAAe6hB,GAAsB,KAAK,UAAU,QAASzB,GAAO,2BAA4B,CAClI,aAAc,KAAK,UAAU,IAAIsD,IAAwB,IAAM,KAAK,WAAW,IAAI,GAAG,WAAW,CAAC,EAClG,YAAa,CACX,kBAAmB,EACrB,EACA,eAAgB,CAAE,aAAevsB,GAAMA,EAAE,WAAW,YAAY,CAAE,EAClE,uBAAwB,CAAC4Q,EAAQ9f,IAAawzB,GAAqBzb,EAAsB+H,EAAQ9f,CAAQ,CAC3G,CAAC,CAAC,CACJ,CACA,cAAcq+B,EAAM,CACd,KAAK,sBAAsB,IAAI,EAAI,KAAK,eAAe,IAAI,EAAI,KAAK,sBAAsB,IAAI,EAAI,KAAK,eAAe,IAAI,EAC5H,KAAK,OAAO,kBAAkB,EAAE,cAAcA,CAAI,EAElD,KAAK,OAAO,kBAAkB,EAAE,cAAcA,CAAI,CAEtD,CACA,QAAQwP,EAAM,CACZ,KAAK,MAAQA,EACb,SAAS8gQ,EAAc3uS,EAAU,CAC/B,MAAO,CACL,GAAGA,EACH,qBAAsB,GACtB,qBAAsB,CACpB,QAAS,EACX,EACA,UAAW,CACT,SAAU,SACV,WAAY,SACZ,iBAAkB,GAClB,WAAY,EACd,EACA,oBAAqB,GACrB,qBAAsB,GACtB,oBAAqB,EACvB,CACF,CACA,GAAI,CAAC6tC,EAAM,CACT6gQ,GAAmBryR,GAAO,CACxB,KAAK,WAAW,IAAI,OAAQA,CAAE,EAC9B,KAAK,OAAO,aAAa,KAAMA,CAAE,EACjC,KAAK,WAAW,MAAM,CACxB,CAAC,EACD,MACF,CACA,IAAMxc,EAAQguC,EAAK,UAAU,iBAqC7B,GApCA6gQ,GAAmBryR,GAAO,CACxB,KAAK,gBAAgB,OAAOwxB,EAAK,UAAU,aAAeA,EAAK,UAAU,YAAa,CAAE,cAAeA,EAAK,UAAU,cAAgB,MAAO,CAAC,EAC9I,IAAI+gQ,EAAY,GACZC,EAAY,GACZC,EAAU,GACVC,EAAO,GACPlhQ,EAAK,UAAU,aAAeA,EAAK,UAAU,aAAeA,EAAK,UAAU,YAAY,OAASA,EAAK,UAAU,YAAY,MAC7HkhQ,EAAO,IACPH,EAAY,IACF/gQ,EAAK,UAAU,YAGfA,EAAK,UAAU,cACzBkhQ,EAAO,IACPD,EAAU,KAJVC,EAAO,IACPF,EAAY,IAKd,KAAK,UAAU,OAAO,UAAU,OAAO,UAAWD,CAAS,EAC3D,KAAK,UAAU,OAAO,UAAU,OAAO,UAAWC,CAAS,EAC3D,KAAK,UAAU,OAAO,UAAU,OAAO,QAASC,CAAO,EACvD,KAAK,UAAU,OAAO,UAAYC,EAClC,KAAK,iBAAiB,OAAOH,EAAY/gQ,EAAK,UAAU,YAAc,OAAQ,CAAE,cAAe,EAAK,CAAC,EACrG,KAAK,WAAW,MAAM,EACtB,KAAK,WAAW,IAAIA,EAAK,UAAWxxB,CAAE,EACtC,KAAK,OAAO,aAAawxB,EAAK,UAAU,uBAAwBxxB,CAAE,EAClE,KAAK,OAAO,cAAcsyR,EAAc9uS,EAAM,SAAW,CAAC,CAAC,CAAC,CAC9D,CAAC,EACGA,EAAM,oBACR,KAAK,WAAW,IAAIA,EAAM,mBAAmB,IAAM,CACjD,KAAK,OAAO,cAAc8uS,EAAc9uS,EAAM,SAAW,CAAC,CAAC,CAAC,CAC9D,CAAC,CAAC,EAEJguC,EAAK,UAAU,QAAQ,8BAA8B,KAAK,WAAautO,GAAW,CAC3EA,GACH,KAAK,QAAQ,MAAM,CAEvB,CAAC,EACGvtO,EAAK,UAAU,iBAAiB,YAClC,OAAW,CAAC5pC,EAAKm3Q,CAAM,IAAK,OAAO,QAAQvtO,EAAK,UAAU,iBAAiB,WAAW,EACpF,KAAK,mBAAmB,UAAU5pC,EAAKm3Q,CAAM,CAGnD,CACA,OAAO4zB,EAAezgS,EAAQ0gS,EAAcC,EAAU,CACpD,KAAK,UAAU,KAAK,MAAM,WAAa,UACvC,KAAK,UAAU,KAAK,MAAM,IAAM,GAAGF,EAAc,KAAK,KACtD,KAAK,UAAU,KAAK,MAAM,OAAS,GAAGA,EAAc,MAAM,KAC1D,KAAK,UAAU,KAAK,MAAM,MAAQ,GAAGzgS,CAAM,KAC3C,KAAK,UAAU,KAAK,MAAM,SAAW,WACrC,IAAMk6E,EAAWumN,EAAc,OAAS,KAAK,cACvC5mS,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAI8mS,EAAS,MAAQF,EAAc,MAAOvmN,CAAQ,CAAC,EAClF,KAAK,UAAU,OAAO,MAAM,UAAY,cAAcrgF,CAAK,MAC3DsmS,GAAmBryR,GAAO,CACxB,KAAK,OAAO,OAAO,CACjB,MAAO9N,EAAS,GAAQ,EACxB,OAAQygS,EAAc,OAAS,KAAK,kBACtC,CAAC,CACH,CAAC,EACD,GAAI,CACF,KAAK,oBAAsB,GAC3B,KAAK,eAAiBC,EACtB,KAAK,OAAO,kBAAkB,EAAE,aAAaA,CAAY,CAC3D,QAAE,CACA,KAAK,oBAAsB,EAC7B,CACA,KAAK,UAAU,OAAO,UAAU,OAAO,SAAU7mS,EAAQ,GAAK6mS,EAAe,CAAC,EAC9E,KAAK,UAAU,OAAO,UAAU,OAAO,YAAa7mS,IAAUqgF,CAAQ,CACxE,CACA,MAAO,CACL,KAAK,UAAU,KAAK,MAAM,IAAM,YAChC,KAAK,UAAU,KAAK,MAAM,WAAa,QACzC,CACF,EACA4lN,GAAyBJ,IAAc,CACrCC,GAAW,EAAGz1R,EAAqB,EACnCy1R,GAAW,EAAG11R,EAAkB,CAClC,EAAG61R,EAAsB,EAGzBzxS,EAAS,EACTuP,GAAY,EACZC,GAAgB,EAChBwV,GAAY,EACZ7kB,EAAe,EACfsP,GAAgB,EAChBnP,GAAS,EACTyZ,GAAgB,EAChBnT,GAAmB,EACnB8I,GAAiB,EACjB07B,GAAe,EACflC,GAAuB,EACvBziC,GAAY,EAGZ,IAAI8rS,IAAa,KAAM,CACrB,YAAYC,EAAS,CACnB,KAAK,QAAUA,EACf,KAAK,QAA0B,IAAI,IACnC,KAAK,MAAwB,IAAI,IACjC,KAAK,UAA4B,IAAI,GACvC,CACA,aAAavhQ,EAAM,CACjB,IAAIoM,EACJ,GAAI,KAAK,QAAQ,OAAS,EACxBA,EAAM,KAAK,QAAQpM,CAAI,EACvB,KAAK,UAAU,IAAIoM,EAAKpM,CAAI,MACvB,CACL,IAAM8S,EAAS,CAAC,GAAG,KAAK,QAAQ,OAAO,CAAC,EACxC1G,EAAM0G,EAAO,KAAM0uP,GAAS,KAAK,UAAU,IAAIA,CAAI,EAAE,MAAM,IAAMxhQ,EAAK,MAAM,CAAC,GAAK8S,EAAO,CAAC,EAC1F,KAAK,QAAQ,OAAO1G,CAAG,EACvB,KAAK,UAAU,IAAIA,EAAKpM,CAAI,EAC5BoM,EAAI,QAAQpM,CAAI,CAClB,CACA,YAAK,MAAM,IAAIoM,CAAG,EACX,CACL,OAAQA,EACR,QAAS,IAAM,CACb,KAAK,MAAM,OAAOA,CAAG,EACjB,KAAK,QAAQ,KAAO,EACtBA,EAAI,QAAQ,EAEZ,KAAK,QAAQ,IAAIA,CAAG,CAExB,CACF,CACF,CACA,SAAU,CACR,QAAWA,KAAO,KAAK,MACrBA,EAAI,QAAQ,EAEd,QAAWA,KAAO,KAAK,QACrBA,EAAI,QAAQ,EAEd,KAAK,MAAM,MAAM,EACjB,KAAK,QAAQ,MAAM,CACrB,CACF,EAGIq1P,IAAgB,SAASvrS,EAAYC,EAAQC,EAAKC,EAAM,CAC1D,IAAIC,EAAI,UAAU,OAAQC,EAAID,EAAI,EAAIH,EAASE,IAAS,KAAOA,EAAO,OAAO,yBAAyBF,EAAQC,CAAG,EAAIC,EAAMG,EAC3H,GAAI,OAAO,SAAY,UAAY,OAAO,QAAQ,UAAa,WAAYD,EAAI,QAAQ,SAASL,EAAYC,EAAQC,EAAKC,CAAI,MACxH,SAASzE,EAAKsE,EAAW,OAAS,EAAGtE,GAAM,EAAGA,KAAU4E,EAAIN,EAAWtE,CAAE,KAAG2E,GAAKD,EAAI,EAAIE,EAAED,CAAC,EAAID,EAAI,EAAIE,EAAEL,EAAQC,EAAKG,CAAC,EAAIC,EAAEL,EAAQC,CAAG,IAAMG,GACpJ,OAAOD,EAAI,GAAKC,GAAK,OAAO,eAAeJ,EAAQC,EAAKG,CAAC,EAAGA,CAC9D,EACImrS,GAAa,SAAShrS,EAAYC,EAAW,CAC/C,OAAO,SAASR,EAAQC,EAAK,CAC3BO,EAAUR,EAAQC,EAAKM,CAAU,CACnC,CACF,EACIirS,GAA4B,cAAyCpyS,CAAW,CAClF,YAAYm+G,EAAUk0L,EAAYC,EAAYnB,EAA4B7tQ,EAA0BC,EAA6B,CAC/H,MAAM,EACN,KAAK,SAAW46E,EAChB,KAAK,WAAak0L,EAClB,KAAK,WAAaC,EAClB,KAAK,2BAA6BnB,EAClC,KAAK,yBAA2B7tQ,EAChC,KAAK,4BAA8BC,EACnC,KAAK,oBAAsB9uB,GAAE,oBAAqB,CAChDA,GAAE,cAAe,CACf,MAAO,CACL,SAAU,QACZ,CACF,CAAC,EACDA,GAAE,2CAA4C,CAAC,CAAC,CAClD,CAAC,EACD,KAAK,YAAc,KAAK,UAAU,IAAIy1E,GAAW,CAC/C,mBAAoB,GACpB,6BAA+B+1F,GAAO91F,GAA6BhuE,GAAU,KAAK,QAAQ,EAAG8jK,CAAE,EAC/F,qBAAsB,GACxB,CAAC,CAAC,EACF,KAAK,mBAAqB,KAAK,UAAU,IAAI71F,GAAwB,KAAK,oBAAoB,KAAM,CAClG,SAAU,EACV,WAAY,EACZ,WAAY,EACd,EAAG,KAAK,WAAW,CAAC,EACpB,KAAK,UAAY31E,GAAE,uCAAwC,CAAC,EAAG,CAC7DA,GAAE,MAAO,CAAC,EAAG,CAAC,KAAK,mBAAmB,WAAW,CAAC,CAAC,EACnDA,GAAE,8BAA+B,CAAC,EAAG,CAACA,GAAE,KAAK,CAAC,CAAC,CACjD,CAAC,EACD,KAAK,cAAgB,KAAK,UAAU,IAAI+vB,GAA8B,KAAK,SAAU,MAAM,CAAC,EAC5F,KAAK,YAAc,KAAK,UAAU,IAAIutQ,IAAYthQ,GAAS,CACzD,IAAMmS,EAAW,KAAK,sBAAsB,eAAequP,GAAwB,KAAK,oBAAoB,QAAS,KAAK,oBAAoB,uBAAwB,KAAK,0BAA0B,EACrM,OAAAruP,EAAS,QAAQnS,CAAI,EACdmS,CACT,CAAC,CAAC,EACF,KAAK,UAAYr6C,GAAoB,KAAM,KAAK,mBAAmB,SAAU,IAE3E,KAAK,mBAAmB,kBAAkB,EAAE,SAC7C,EACD,KAAK,WAAaA,GAAoB,KAAM,KAAK,mBAAmB,SAAU,IAE5E,KAAK,mBAAmB,kBAAkB,EAAE,UAC7C,EACD,KAAK,eAAiBG,EAAQ,KAAOF,GAAW,CAC9C,IAAMqQ,EAAK,KAAK,WAAW,KAAKrQ,CAAM,EACtC,GAAI,CAACqQ,EACH,MAAO,CAAE,MAAO,CAAC,EAAG,QAAU05R,GAAO,CACnC,MAAM,IAAIt1Q,EACZ,CAAE,EAEJ,IAAMu1Q,EAAa35R,EAAG,MAAM,KAAKrQ,CAAM,EACjCqqK,EAAsB,IAAI,IAchC,MAAO,CAAE,MAbK2/H,EAAW,IAAKvrS,GAAM,CAClC,IAAM6sB,EAAOtrB,EAAO,MAAM,IAAI,IAAIiqS,IAAoBxrS,EAAG,KAAK,YAAa,KAAK,WAAa+D,GAAU,CACrG,KAAK,mBAAmB,kBAAkB,CAAE,UAAW,KAAK,mBAAmB,kBAAkB,EAAE,UAAYA,CAAM,CAAC,CACxH,CAAC,CAAC,EACIylC,EAAO,KAAK,iBAAiB3c,EAAK,OAAO,CAAC,EAChD,OAAI2c,GACF5R,GAAa5f,GAAO,CAClB6U,EAAK,aAAa2c,EAAMxxB,CAAE,CAC5B,CAAC,EAEH4zJ,EAAI,IAAI5rK,EAAG6sB,CAAI,EACRA,CACT,CAAC,EACe,QAAU7sB,GAAM4rK,EAAI,IAAI5rK,CAAC,CAAE,CAC7C,CAAC,EACD,KAAK,WAAa,KAAK,eAAe,IAAI,KAAOuxB,GAAUA,EAAM,KAAK,EACtE,KAAK,gBAAkB,EACvB,KAAK,aAAe,KAAK,WAAW,IAAI,KAAM,CAACA,EAAOhwB,IAAWgwB,EAAM,OAAO,CAACxxB,EAAG3E,IAAO2E,EAAI3E,EAAG,cAAc,KAAKmG,CAAM,EAAI,KAAK,gBAAiB,CAAC,CAAC,EACrJ,KAAK,cAAgBE,EAAQ,KAAOF,GAAW,CAC7C,IAAMkqS,EAAiB,KAAK,WAAW,KAAKlqS,CAAM,GAAG,eAAe,KAAKA,CAAM,EAC/E,OAAKkqS,EAGY,KAAK,eAAe,KAAKlqS,CAAM,EAAE,QAAQkqS,CAAc,EACxD,SAAS,KAAKlqS,CAAM,GAAG,OAHrC,MAIJ,CAAC,EACD,KAAK,mBAAqB,KAAK,UAAU,KAAK,yBAAyB,aAAa,KAAK,QAAQ,CAAC,EAClG,KAAK,sBAAwB,KAAK,UAAU,KAAK,4BAA4B,YAAY,IAAIo7B,GAAkB,CAACxoB,GAAoB,KAAK,kBAAkB,CAAC,CAAC,CAAC,EAC9J,KAAK,eAAiB,CAAC,EACvB,KAAK,UAAUxI,GAAiB,CAACpK,EAAQqK,IAAU,CACjD,IAAMg0B,EAAY,KAAK,WAAW,KAAKr+B,CAAM,EAC7C,GAAIq+B,GAAaA,EAAU,YACzB,OAAW,CAAChgC,EAAKpE,CAAK,IAAK,OAAO,QAAQokC,EAAU,WAAW,EAAG,CAChE,IAAM6qP,EAAa,KAAK,mBAAmB,UAAU7qR,EAAK,MAAM,EAChE6qR,EAAW,IAAIjvR,CAAK,EACpBoQ,EAAM,IAAIX,GAAa,IAAMw/Q,EAAW,MAAM,CAAC,CAAC,CAClD,CAEJ,CAAC,CAAC,EACF,IAAMihB,EAAkB,KAAK,yBAAyB,UAAUluQ,EAAkB,4BAA4B,IAAK,EAAK,EACxH,KAAK,UAAUn5B,GAAS9C,GAAW,CACjC,IAAMq+B,EAAY,KAAK,WAAW,KAAKr+B,CAAM,EAC7C,GAAIq+B,EAAW,CACb,IAAM+rQ,EAAe/rQ,EAAU,MAAM,KAAKr+B,CAAM,EAAE,MAAOsrB,GAASA,EAAK,UAAU,KAAKtrB,CAAM,CAAC,EAC7FmqS,EAAgB,IAAIC,CAAY,CAClC,CACF,CAAC,CAAC,EACF,KAAK,UAAUtnS,GAAS9C,GAAW,CACjC,IAAM+9B,EAAY,KAAK,WAAW,KAAK/9B,CAAM,EAC7C,KAAK,cAAc,QAAQ+9B,CAAS,CACtC,CAAC,CAAC,EACF,IAAMssQ,EAAqBnqS,EAASF,GAAW,CAE7C,GADc,KAAK,WAAW,KAAKA,CAAM,EAC/B,OAAS,EACjB,OAEF,IAAMqQ,EAAK,KAAK,WAAW,KAAKrQ,CAAM,EACtC,MAAO,CAACqQ,GAAMA,EAAG,UAAU,KAAKrQ,CAAM,EAAIjH,EAAS,IAAK,YAAY,EAAIA,EAAS,IAAK,kBAAkB,CAC1G,CAAC,EACD,KAAK,UAAU+J,GAAS9C,GAAW,CACjC,IAAMowC,EAAUi6P,EAAmB,KAAKrqS,CAAM,EAC9C,KAAK,UAAU,YAAY,UAAYowC,GAAW,GAClD,KAAK,UAAU,YAAY,UAAU,OAAO,UAAW,CAAC,CAACA,CAAO,CAClE,CAAC,CAAC,EACF,KAAK,oBAAoB,QAAQ,MAAM,SAAW,WAClD,KAAK,UAAUttC,GAAS9C,GAAW,CACjC,IAAM3G,EAAS,KAAK,cAAc,OAAO,KAAK2G,CAAM,EACpD,KAAK,oBAAoB,KAAK,MAAM,OAAS,GAAG3G,CAAM,KACtD,IAAM2oI,EAAc,KAAK,aAAa,KAAKhiI,CAAM,EACjD,KAAK,oBAAoB,QAAQ,MAAM,OAAS,GAAGgiI,CAAW,KAC9D,IAAMr5H,EAAS,KAAK,cAAc,MAAM,KAAK3I,CAAM,EAC/CqhL,EAAc14K,EACZ2hS,EAAY,KAAK,WAAW,KAAKtqS,CAAM,EACvCsmF,EAAMkwF,GAAa8zH,EAAWniS,GAAWtO,GAAOA,EAAG,UAAU,KAAKmG,CAAM,EAAE,UAAWqI,EAAgB,CAAC,EAC5G,GAAIi+E,EAAK,CACP,IAAMikN,EAAYjkN,EAAI,UAAU,KAAKtmF,CAAM,EAC3CqhL,EAAc14K,EAAS4hS,EAAU,SACnC,CACA,KAAK,mBAAmB,oBAAoB,CAC1C,MAAO5hS,EACP,OAAAtP,EACA,aAAc2oI,EACd,YAAAq/C,CACF,CAAC,CACH,CAAC,CAAC,EACF1rE,EAAS,gBAAgB,KAAK,UAAU,IAAI,EAC5C,KAAK,UAAUjsG,GAAa,IAAM,CAChCisG,EAAS,gBAAgB,CAC3B,CAAC,CAAC,EACF,KAAK,UAAU,KAAK,UAAU7yG,GAAS9C,GAAW,CAChD8oS,GAAmBryR,GAAO,CACxB,KAAK,OAAOzW,CAAM,CACpB,CAAC,CACH,CAAC,CAAC,CAAC,CACL,CACA,OAAOA,EAAQ,CACb,IAAM0Q,EAAY,KAAK,UAAU,KAAK1Q,CAAM,EACxCwqS,EAAoC,EACpCC,EAAsB,EACtBC,EAA6B,EAC3BC,EAAiB,KAAK,cAAc,OAAO,KAAK3qS,CAAM,EACtD4qS,EAAkB3iS,GAAY,iBAAiByI,EAAWi6R,CAAc,EACxEhiS,EAAS,KAAK,cAAc,MAAM,KAAK3I,CAAM,EACnD,QAAWiF,KAAK,KAAK,WAAW,KAAKjF,CAAM,EAAG,CAC5C,IAAM6qS,EAAoB5lS,EAAE,cAAc,KAAKjF,CAAM,EAC/Ck5B,EAAa,KAAK,IAAI2xQ,EAAmBF,CAAc,EACvD1xQ,EAAYhxB,GAAY,iBAAiBwiS,EAAqBvxQ,CAAU,EACxE4xQ,EAAmB7iS,GAAY,iBAAiByiS,EAA4BG,CAAiB,EACnG,GAAIC,EAAiB,SAASF,CAAe,EAC3CJ,GAAqCK,EAAoB3xQ,EACzDj0B,EAAE,KAAK,UACE6lS,EAAiB,QAAQF,CAAe,EACjD3lS,EAAE,KAAK,MACF,CACL,IAAM8lS,EAAS,KAAK,IAAI,EAAG,KAAK,IAAIH,EAAgB,MAAQE,EAAiB,MAAOD,EAAoB3xQ,CAAU,CAAC,EACnHsxQ,GAAqCO,EACrC,IAAMzB,EAAWrhS,GAAY,iBAAiByI,EAAY85R,EAAmCG,CAAc,EAC3G1lS,EAAE,OAAOg0B,EAAW8xQ,EAAQpiS,EAAQ2gS,CAAQ,CAC9C,CACAmB,GAAuBvxQ,EAAa,KAAK,gBACzCwxQ,GAA8BG,EAAoB,KAAK,eACzD,CACA,KAAK,oBAAoB,QAAQ,MAAM,UAAY,cAAc,EAAEn6R,EAAY85R,EAAkC,KACnH,CACF,EACAZ,GAA4BF,IAAc,CACxCC,GAAW,EAAG/2R,EAAkB,EAChC+2R,GAAW,EAAG92R,EAAqB,CACrC,EAAG+2R,EAAyB,EAC5B,IAAIK,IAAsB,cAAczyS,CAAW,CACjD,YAAY6mC,EAAW2sQ,EAAaC,EAAaC,EAAsB,CACrE,MAAM,EACN,KAAK,UAAY7sQ,EACjB,KAAK,YAAc2sQ,EACnB,KAAK,YAAcC,EACnB,KAAK,qBAAuBC,EAC5B,KAAK,aAAe,KAAK,UAAU/vQ,GAA0B,KAAM,MAAM,CAAC,EAC1E,KAAK,cAAgBj7B,EAAQ,KAAOF,GAAW,KAAK,aAAa,KAAKA,CAAM,GAAG,OAAO,eAAe,KAAKA,CAAM,GAAK,KAAK,UAAU,iBAAiB,KAAKA,CAAM,EAAE,aAAa,EAC/K,KAAK,UAAYE,EAAQ,KAAOF,GAAW,KAAK,aAAa,KAAKA,CAAM,GAAG,OAAO,UAAU,KAAKA,CAAM,GAAK,CAAE,UAAW,EAAG,YAAa,CAAE,CAAC,EAC5I,KAAK,SAAWE,EAAQ,KAAOF,GAAW,KAAK,aAAa,KAAKA,CAAM,GAAG,MAAM,EAChF,KAAK,UAAYV,GAAgB,KAAM,EAAK,EAC5C,KAAK,WAAaY,EAAQ,KAAOF,GAAW,KAAK,SAAS,KAAKA,CAAM,GAAG,UAAU,KAAKA,CAAM,GAAK,EAAK,EACvG,KAAK,UAAU,aAAa,KAAK,WAAY,MAAM,EACnD,KAAK,UAAU8C,GAAS9C,GAAW,CACjC,IAAMwuE,EAAa,KAAK,YAAY,KAAKxuE,CAAM,EAC/C,KAAK,aAAa,KAAKA,CAAM,GAAG,OAAO,cAAcwuE,CAAU,CACjE,CAAC,CAAC,EACF,KAAK,UAAU1rE,GAAS9C,GAAW,CACjC,IAAM+lE,EAAM,KAAK,aAAa,KAAK/lE,CAAM,EACrC,CAAC+lE,GAID,CADa,KAAK,UAAU,KAAK/lE,CAAM,GAIzB+lE,EAAI,OAAO,UAAU,KAAK/lE,CAAM,GAIlD,KAAK,OAAO,CACd,CAAC,CAAC,CACJ,CACA,SAAU,CACR,KAAK,OAAO,EACZ,MAAM,QAAQ,CAChB,CACA,UAAW,CACT,MAAO,mBAAmB,KAAK,UAAU,iBAAiB,UAAU,IAAI,SAAS,CAAC,GACpF,CACA,QAAS,CACP,OAAO,KAAK,UAAU,OAAO,CAC/B,CACA,aAAaiqG,EAAWxzF,EAAI,CAC1B,KAAK,UAAU,UAAU,IAAIwzF,EAAU,UAAWxzF,CAAE,EACpD,KAAK,oBAAoBA,CAAE,EAC3B,IAAMwxB,EAAO,KAAK,UAAU,iBAAiB,IAAI,EAC3CrQ,EAAaqyE,EAAU,YAAY,IAAItnE,GAAU,aAAa,EACpE,KAAK,UAAU,iBAAiB,IAAI,CAClC,GAAGsF,EACH,WAAArQ,CACF,EAAGnhB,CAAE,EACL,IAAMsvD,EAAM,KAAK,aAAa,IAAI,EAC9BA,GACEnuC,GACFmuC,EAAI,OAAO,OAAO,cAAcnuC,CAAU,CAGhD,CACA,oBAAoBnhB,EAAI,CACtB,IAAMsvD,EAAM,KAAK,aAAa,IAAI,EAC7BA,GAGL,KAAK,UAAU,iBAAiB,IAAI,CAClC,cAAeA,EAAI,OAAO,cAAc,IAAI,EAC5C,WAAYA,EAAI,OAAO,OAAO,cAAc,GAAK,MACnD,EAAGtvD,CAAE,CACP,CACA,QAAS,CACP,IAAMsvD,EAAM,KAAK,aAAa,IAAI,EAC7BA,GAGL1vC,GAAa5f,GAAO,CAClB,KAAK,oBAAoBA,CAAE,EAC3BsvD,EAAI,OAAO,KAAK,EAChB,KAAK,aAAa,IAAI,OAAQtvD,CAAE,CAClC,CAAC,CACH,CACA,MAAO,CACL,KAAK,UAAU,IAAI,GAAM,MAAM,CACjC,CACA,OAAO00R,EAAe1xS,EAAQkP,EAAQ2gS,EAAU,CAC9C,KAAK,UAAU,IAAI,GAAO,MAAM,EAChC,IAAIvjO,EAAM,KAAK,aAAa,IAAI,EAChC,GAAI,CAACA,EAAK,CACRA,EAAM,KAAK,YAAY,aAAa,IAAIwiO,IAAa,KAAK,UAAW,KAAK,oBAAoB,CAAC,EAC/F,KAAK,aAAa,IAAIxiO,EAAK,MAAM,EACjC,IAAMnuC,EAAa,KAAK,UAAU,iBAAiB,IAAI,EAAE,WACrDA,GACFmuC,EAAI,OAAO,OAAO,cAAcnuC,CAAU,CAE9C,CACAmuC,EAAI,OAAO,OAAOolO,EAAexiS,EAAQlP,EAAQ6vS,CAAQ,CAC3D,CACF,EAGI8B,IAAgB,SAASjtS,EAAYC,EAAQC,EAAKC,EAAM,CAC1D,IAAIC,EAAI,UAAU,OAAQC,EAAID,EAAI,EAAIH,EAASE,IAAS,KAAOA,EAAO,OAAO,yBAAyBF,EAAQC,CAAG,EAAIC,EAAMG,EAC3H,GAAI,OAAO,SAAY,UAAY,OAAO,QAAQ,UAAa,WAAYD,EAAI,QAAQ,SAASL,EAAYC,EAAQC,EAAKC,CAAI,MACxH,SAASzE,EAAKsE,EAAW,OAAS,EAAGtE,GAAM,EAAGA,KAAU4E,EAAIN,EAAWtE,CAAE,KAAG2E,GAAKD,EAAI,EAAIE,EAAED,CAAC,EAAID,EAAI,EAAIE,EAAEL,EAAQC,EAAKG,CAAC,EAAIC,EAAEL,EAAQC,CAAG,IAAMG,GACpJ,OAAOD,EAAI,GAAKC,GAAK,OAAO,eAAeJ,EAAQC,EAAKG,CAAC,EAAGA,CAC9D,EACI6sS,IAAa,SAAS1sS,EAAYC,EAAW,CAC/C,OAAO,SAASR,EAAQC,EAAK,CAC3BO,EAAUR,EAAQC,EAAKM,CAAU,CACnC,CACF,EACI2sS,GAAwB,cAAqC9zS,CAAW,CAC1E,YAAYm+G,EAAUgzL,EAA4Bn3R,EAAuB,CACvE,MAAM,EACN,KAAK,SAAWmkG,EAChB,KAAK,2BAA6BgzL,EAClC,KAAK,sBAAwBn3R,EAC7B,KAAK,WAAalS,GAAgB,KAAM,MAAM,EAC9C,KAAK,WAAaA,GAAgB,KAAM,MAAM,EAC9C,KAAK,YAAcY,EAAQ,KAAOF,IAChCo8B,GAAwBqsQ,GAAwBzoS,CAAM,EAC/CA,EAAO,MAAM,IAAI,KAAK,sBAAsB,eAAeo8B,GAAwBwtQ,GAA2B5pS,CAAM,EAAG,KAAK,SAAU,KAAK,WAAY,KAAK,WAAY,KAAK,0BAA0B,CAAC,EAChN,EACD,KAAK,UAAU6J,GAA8B,KAAK,WAAW,CAAC,CAChE,CACF,EACAyhS,GAAwBF,IAAc,CACpCC,IAAW,EAAGx4R,EAAqB,CACrC,EAAGy4R,EAAqB,EAGxB,SAASC,IAAQ5wN,EAAYvgF,EAAUgmB,EAAU,CAE/C,OAD6BmlR,GAAmB,WAAWnlR,GAAY,CAAC,CAAC,EAC7C,eAAesnR,GAAkB/sN,EAAYvgF,CAAQ,CACnF,CACA,SAASoxS,IAAkBl9O,EAAU,CAEnC,OAD0Bi3O,GAAmB,IAAI7lQ,EAAkB,EAC1C,gBAAiBxjC,GAAY,CACpDoyD,EAASpyD,CAAO,CAClB,CAAC,CACH,CACA,SAASuvS,IAAsBn9O,EAAU,CAEvC,OAD0Bi3O,GAAmB,IAAI7lQ,EAAkB,EAC1C,gBAAiBxjC,GAAY,CACpDoyD,EAASpyD,CAAO,CAClB,CAAC,CACH,CACA,SAASwvS,KAAa,CAEpB,OAD0BnG,GAAmB,IAAI7lQ,EAAkB,EAC1C,gBAAgB,CAC3C,CACA,SAASisQ,KAAiB,CAExB,OAD0BpG,GAAmB,IAAI7lQ,EAAkB,EAC1C,gBAAgB,CAC3C,CACA,SAASksQ,IAAiBjxN,EAAYvgF,EAAUgmB,EAAU,CAExD,OAD6BmlR,GAAmB,WAAWnlR,GAAY,CAAC,CAAC,EAC7C,eAAe0nR,GAAuBntN,EAAYvgF,CAAQ,CACxF,CACA,SAASyxS,IAA0BlxN,EAAYv6D,EAAU,CACvD,IAAMjO,EAAuBozR,GAAmB,WAAWnlR,GAAY,CAAC,CAAC,EACzE,OAAO,IAAIkrR,GAAsB3wN,EAAY,CAAC,EAAGxoE,CAAoB,CACvE,CACA,SAAS25R,IAAWpkN,EAAY,CAC9B,GAAI,OAAOA,EAAW,IAAO,UAAY,OAAOA,EAAW,KAAQ,WACjE,MAAM,IAAI,MAAM,qEAAqE,EAEvF,OAAO1lD,GAAiB,gBAAgB0lD,EAAW,GAAIA,EAAW,GAAG,CACvE,CACA,SAASqkN,IAAgBrkN,EAAY,CACnC,GAAI,OAAOA,EAAW,IAAO,UAAY,OAAOA,EAAW,OAAU,UAAY,OAAOA,EAAW,KAAQ,WACzG,MAAM,IAAI,MAAM,6EAA6E,EAE/F,IAAMu/M,EAAe3mQ,EAAe,YAAYonD,EAAW,YAAY,EACjEhb,EAAM,CAACnsC,KAAa3gC,IACjBixC,GAAc,iBAAiBtQ,EAAU3gC,EAAMqnS,EAAc,CAACvpL,EAAWxhH,EAAS8vS,IAAU,QAAQ,QAAQtkN,EAAW,IAAIxrF,EAAS,GAAG8vS,CAAK,CAAC,CAAC,EAEjJtrO,EAAY,IAAI7/D,EAEtB,GADA6/D,EAAU,IAAI1+B,GAAiB,gBAAgB0lD,EAAW,GAAIhb,CAAG,CAAC,EAC9Dgb,EAAW,mBAAoB,CACjC,IAAM6/M,EAAW,CACf,QAAS,CACP,GAAI7/M,EAAW,GACf,MAAOA,EAAW,KACpB,EACA,KAAMu/M,EACN,MAAOv/M,EAAW,mBAClB,MAAOA,EAAW,kBAAoB,CACxC,EACAhnB,EAAU,IAAIjxC,GAAa,eAAe8C,GAAO,cAAeg1Q,CAAQ,CAAC,CAC3E,CACA,GAAI,MAAM,QAAQ7/M,EAAW,WAAW,EAAG,CACzC,IAAM32D,EAAoBw0Q,GAAmB,IAAIzyR,EAAkB,EACnE,GAAI,EAAEie,aAA6B+xQ,IACjC,QAAQ,KAAK,+FAA+F,MACvG,CACL,IAAMqE,EAAkB7mQ,EAAe,IAAI2mQ,EAAc3mQ,EAAe,YAAYonD,EAAW,iBAAiB,CAAC,EACjHhnB,EAAU,IAAI3vC,EAAkB,sBAAsB22D,EAAW,YAAY,IAAK58D,IACzE,CACL,WAAAA,EACA,QAAS48D,EAAW,GACpB,KAAMy/M,CACR,EACD,CAAC,CAAC,CACL,CACF,CACA,OAAOzmO,CACT,CACA,SAASurO,IAAkBpoD,EAAM,CAC/B,OAAOqoD,IAAmB,CAACroD,CAAI,CAAC,CAClC,CACA,SAASqoD,IAAmBxnD,EAAO,CACjC,IAAM3zN,EAAoBw0Q,GAAmB,IAAIzyR,EAAkB,EACnE,OAAMie,aAA6B+xQ,GAI5B/xQ,EAAkB,sBAAsB2zN,EAAM,IAAKb,IACjD,CACL,WAAYA,EAAK,WACjB,QAASA,EAAK,QACd,YAAaA,EAAK,YAClB,KAAMvjN,EAAe,YAAYujN,EAAK,IAAI,CAC5C,EACD,CAAC,GAVA,QAAQ,KAAK,+FAA+F,EACrGrsP,EAAW,KAUtB,CACA,SAAS20S,IAAYlyS,EAAOuyO,EAAWxkM,EAAK,CAC1C,IAAMwsC,EAAkB+wN,GAAmB,IAAI51P,EAAgB,EACzDJ,EAAailC,EAAgB,wBAAwBg4J,CAAS,GAAKA,EACzE,OAAOo7D,IAAgBrC,GAAmB,IAAIz1O,EAAa,EAAG0kB,EAAiBv6E,EAAOs1C,EAAYvH,CAAG,CACvG,CACA,SAASokQ,IAAiBnlS,EAAOolS,EAAsB,CACrD,IAAM73N,EAAkB+wN,GAAmB,IAAI51P,EAAgB,EACzDJ,EAAailC,EAAgB,wBAAwB63N,CAAoB,GAAKA,GAAwB78P,GAC5GvoC,EAAM,YAAYutE,EAAgB,WAAWjlC,CAAU,CAAC,CAC1D,CACA,SAAS+8P,IAAgBrlS,EAAOu7D,EAAOgrE,EAAS,CAC1CvmI,GACoBs+R,GAAmB,IAAIj0O,EAAc,EAC7C,UAAUkR,EAAOv7D,EAAM,IAAKumI,CAAO,CAErD,CACA,SAAS++J,IAAiB/pO,EAAO,CACT+iO,GAAmB,IAAIj0O,EAAc,EAC7C,UAAUkR,EAAO,CAAC,CAAC,CACnC,CACA,SAASgqO,IAAgB5gP,EAAQ,CAE/B,OADsB25O,GAAmB,IAAIj0O,EAAc,EACtC,KAAK1F,CAAM,CAClC,CACA,SAAS6gP,IAAmBn+O,EAAU,CAEpC,OADsBi3O,GAAmB,IAAIj0O,EAAc,EACtC,gBAAgBhD,CAAQ,CAC/C,CACA,SAASo+O,IAAS1kQ,EAAK,CAErB,OADqBu9P,GAAmB,IAAIz1O,EAAa,EACrC,SAAS9nB,CAAG,CAClC,CACA,SAAS2kQ,KAAY,CAEnB,OADqBpH,GAAmB,IAAIz1O,EAAa,EACrC,UAAU,CAChC,CACA,SAAS88O,IAAiBt+O,EAAU,CAElC,OADqBi3O,GAAmB,IAAIz1O,EAAa,EACrC,aAAaxB,CAAQ,CAC3C,CACA,SAASu+O,IAAmBv+O,EAAU,CAEpC,OADqBi3O,GAAmB,IAAIz1O,EAAa,EACrC,eAAexB,CAAQ,CAC7C,CACA,SAASw+O,IAAyBx+O,EAAU,CAE1C,OADqBi3O,GAAmB,IAAIz1O,EAAa,EACrC,uBAAwB32D,GAAM,CAChDm1D,EAAS,CACP,MAAOn1D,EAAE,MACT,YAAaA,EAAE,aACjB,CAAC,CACH,CAAC,CACH,CACA,SAAS4zS,IAAiB14Q,EAAM,CAC9B,OAAO8nO,IAAiBopC,GAAmB,IAAIz1O,EAAa,EAAGz7B,CAAI,CACrE,CACA,SAAS24Q,IAAgB1yS,EAASF,EAAU,CAC1C,IAAMo6E,EAAkB+wN,GAAmB,IAAI51P,EAAgB,EACzDgnC,EAAe4uN,GAAmB,IAAI38C,EAAuB,EACnE,OAAOsZ,GAAU,gBAAgBvrL,EAAcnC,EAAiBl6E,EAASF,CAAQ,EAAE,KAAK,IAAM,CAC5Fu8E,EAAa,wBAAwBr8E,CAAO,CAC9C,CAAC,CACH,CACA,SAAS2yS,IAAS7gS,EAAOmjC,EAAYn1C,EAAU,CAC7C,IAAMo6E,EAAkB+wN,GAAmB,IAAI51P,EAAgB,EAE/D,OADqB41P,GAAmB,IAAI38C,EAAuB,EACtD,wBAAwB7qL,GAAW,SAAS,IAAI,EACtDmkM,GAAU,SAAS1tL,EAAiBpoE,EAAOmjC,EAAYn1C,CAAQ,CACxE,CACA,SAAS8yS,IAAkBjmS,EAAOjM,EAAYsB,EAAU,EAAG,CAEzD,OADqBipS,GAAmB,IAAI38C,EAAuB,EACtD,wBAAwB7qL,GAAW,SAAS,IAAI,EACtDmkM,GAAU,kBAAkBj7P,EAAOjM,EAAYsB,CAAO,CAC/D,CACA,SAAS6wS,IAA2B3gE,EAAW,CAC7C,IAAMyzB,EAAsBh4I,GAAsB,IAAIukH,CAAS,EAC/D,OAAIyzB,GAGG,CACL,gBAAiB,IAAM+B,GACvB,SAAU,CAACn5P,EAAMm2P,EAAQx/P,IAAU6gQ,GAAa7zB,EAAWhtO,CAAK,CAClE,CACF,CACA,SAAS4tS,IAAShhS,EAAOmjC,EAAY,CACnC04E,GAAsB,YAAY14E,CAAU,EAC5C,IAAM0wN,EAAsBktC,IAA2B59P,CAAU,EAC3DloC,EAAQk2I,GAAWnxI,CAAK,EACxBpK,EAAS,CAAC,EACZxC,EAAQygQ,EAAoB,gBAAgB,EAChD,QAASpmQ,EAAK,EAAG4iB,EAAMpV,EAAM,OAAQxN,EAAK4iB,EAAK5iB,IAAM,CACnD,IAAMgP,EAAOxB,EAAMxN,CAAE,EACfwzS,EAAqBptC,EAAoB,SAASp3P,EAAM,GAAMrJ,CAAK,EACzEwC,EAAOnI,CAAE,EAAIwzS,EAAmB,OAChC7tS,EAAQ6tS,EAAmB,QAC7B,CACA,OAAOrrS,CACT,CACA,SAASsrS,IAAYhmD,EAAWG,EAAW,CACV89C,GAAmB,IAAI38C,EAAuB,EACtD,YAAYtB,EAAWG,CAAS,CACzD,CACA,SAAS8lD,IAASjmD,EAAW,CACIi+C,GAAmB,IAAI38C,EAAuB,EACtD,SAAStB,CAAS,CAC3C,CACA,SAASkmD,KAAiB,CACxBC,GAAiB,kBAAkB,CACrC,CACA,SAASC,IAAiBnrS,EAAIwtP,EAAS,CACrC,OAAO/tN,GAAiB,gBAAgB,CAAE,GAAAz/B,EAAI,QAAAwtP,CAAQ,CAAC,CACzD,CACA,SAAS49C,IAAmBzsB,EAAQ,CAElC,OADsBqkB,GAAmB,IAAIp3P,EAAc,EACtC,eAAe,CAClC,MAAM,KAAKxB,EAAU,CACnB,OAAI,OAAOA,GAAa,WACtBA,EAAWnB,GAAI,MAAMmB,CAAQ,GAExBu0O,EAAO,KAAKv0O,CAAQ,CAC7B,CACF,CAAC,CACH,CACA,SAASihQ,IAAqB1sB,EAAQ,CAEpC,OAD0BqkB,GAAmB,IAAI7lQ,EAAkB,EAC1C,8BAA8B,MAAOsqE,EAAO7vG,EAAQy3G,IAAe,CAC1F,GAAI,CAACz3G,EACH,OAAO,KAET,IAAM89B,EAAY+xE,EAAM,SAAS,UAC7B6jM,EAMJ,OALI51Q,GAAa,OAAOA,EAAU,eAAkB,UAAY,OAAOA,EAAU,WAAc,SAC7F41Q,EAAsB51Q,EACbA,IACT41Q,EAAsB,CAAE,WAAY51Q,EAAU,gBAAiB,OAAQA,EAAU,WAAY,GAE3F,MAAMipP,EAAO,eAAe/mR,EAAQ6vG,EAAM,SAAU6jM,CAAmB,EAClE1zS,EAEF,IACT,CAAC,CACH,CACA,SAAS2zS,KAAwB,CAC/B,MAAO,CAEL,OAAQvC,IACR,WAAAG,IACA,eAAAC,IACA,kBAAAH,IACA,sBAAAC,IACA,iBAAAG,IACA,WAAAE,IACA,gBAAAC,IACA,kBAAAE,IACA,mBAAAC,IACA,YAAAC,IACA,iBAAAC,IACA,gBAAAE,IACA,gBAAAE,IACA,iBAAAD,IACA,mBAAAE,IACA,UAAAE,IACA,SAAAD,IACA,iBAAAE,IACA,mBAAAC,IACA,yBAAAC,IACA,gBAAiBC,IACjB,gBAAAC,IACA,SAAAC,IACA,kBAAAC,IACA,SAAAE,IACA,YAAAE,IACA,SAAAC,IACA,eAAAC,IACA,gBAAiBE,IACjB,mBAAAC,IACA,qBAAAC,IAEA,qBAAA9kD,GACA,gCAAAY,GACA,mBAAAE,GACA,iBAAAE,GACA,yBAAAI,GACA,aAAAE,GACA,oBAAAE,GACA,kBAAAE,GACA,gBAAAuB,GACA,0BAAAE,GACA,gBAAAE,GACA,gCAAAM,GACA,kBAAmBE,GACnB,gBAAiBjC,GACjB,sBAAAuC,GACA,cAAAE,GACA,oBAAAI,GACA,WAAAF,GACA,8BAAAgB,GACA,sBAAuBE,GACvB,uBAAAE,GACA,eAAAE,GACA,wBAAyB3D,GACzB,iBAAA+B,GACA,sBAAuBY,GACvB,cAAeQ,GAEf,0BAAA4/C,IACA,aAAAC,GACA,SAAAC,GACA,yBAAAC,GACA,UAAAC,GACA,kBAAAC,GACA,WAAA56J,GACA,0BAAAq4J,IAEA,WAAA/tQ,GACA,cAAAtrB,EACF,CACF,CAGA0N,GAAW,EACXjiB,GAAW,EACX+uC,GAAe,EACfuB,GAAc,EACdgsC,GAAmC,EACnC/rC,GAAmB,EACnBvB,GAAsB,EAGtB9vB,GAAW,EACX,SAASkxR,IAAUC,EAAUj6P,EAAK,CAIhC,GAHI,CAACA,GAGD,CAAC,MAAM,QAAQA,CAAG,EACpB,MAAO,GAET,QAAW5gC,KAAM4gC,EACf,GAAI,CAACi6P,EAAS76R,CAAE,EACd,MAAO,GAGX,MAAO,EACT,CACA,SAAS86R,GAAKtjP,EAAMujP,EAAU,CAC5B,OAAI,OAAOvjP,GAAS,UACXA,EAEFujP,CACT,CACA,SAASC,GAAOxjP,EAAMujP,EAAU,CAC9B,OAAI,OAAOvjP,GAAS,SACXA,EAEFujP,CACT,CACA,SAASE,IAAY7rJ,EAAQ,CAC3B,IAAM7gJ,EAAS,CAAC,EAChB,QAAW7I,KAAK0pJ,EACd7gJ,EAAO7I,CAAC,EAAI,GAEd,OAAO6I,CACT,CACA,SAAS2sS,GAAqB9yP,EAAK+yP,EAAkB,GAAO,CACtDA,IACF/yP,EAAMA,EAAI,IAAI,SAASnjD,EAAG,CACxB,OAAOA,EAAE,YAAY,CACvB,CAAC,GAEH,IAAMmiK,EAAQ6zI,IAAY7yP,CAAG,EAC7B,OAAI+yP,EACK,SAASr1P,EAAM,CACpB,OAAOshH,EAAMthH,EAAK,YAAY,CAAC,IAAM,QAAUshH,EAAM,eAAethH,EAAK,YAAY,CAAC,CACxF,EAEO,SAASA,EAAM,CACpB,OAAOshH,EAAMthH,CAAI,IAAM,QAAUshH,EAAM,eAAethH,CAAI,CAC5D,CAEJ,CACA,SAASs1P,GAAc/xC,EAAQxzN,EAAKwlQ,EAAU,CAC5CxlQ,EAAMA,EAAI,QAAQ,MAAO,GAAG,EAC5B,IAAIkuD,EAAK,EACLu3M,EACJ,GACEA,EAAe,GACfzlQ,EAAMA,EAAI,QAAQ,UAAW,SAAS1uB,EAAG2iP,EAAM,CAC7CwxC,EAAe,GACf,IAAIr2J,EAAM,GACV,GAAI,OAAOokH,EAAOS,CAAI,GAAM,SAC1B7kH,EAAMokH,EAAOS,CAAI,UACRT,EAAOS,CAAI,GAAKT,EAAOS,CAAI,YAAa,OACjD7kH,EAAMokH,EAAOS,CAAI,EAAE,WAEnB,OAAIT,EAAOS,CAAI,IAAM,OACbN,GAAYH,EAAQ,mDAAqDS,EAAO,eAAiBj0N,CAAG,EAEpG2zN,GAAYH,EAAQ,wBAA0BS,EAAO,gCAAkCj0N,CAAG,EAGpG,OAAOszN,GAAMlkH,CAAG,EAAI,GAAK,MAAQA,EAAM,GACzC,CAAC,EACDlhD,UACOu3M,GAAgBv3M,EAAK,GAC9BluD,EAAMA,EAAI,QAAQ,QAAS,GAAG,EAC9B,IAAM+pI,GAASypF,EAAO,WAAa,IAAM,KAAOA,EAAO,QAAU,IAAM,IACvE,GAAIgyC,GACaxlQ,EAAI,MAAM,gBAAgB,EAC7B,CACV,IAAI0lQ,EAAY,KACZC,EAAY,KAChB,OAAQzvS,IACFyvS,GAAaD,IAAcxvS,IAG/BwvS,EAAYxvS,EACZyvS,EAAY,IAAI,OAAOxxC,IAAoBX,EAAQxzN,EAAK9pC,CAAK,EAAG6zK,CAAK,GAC9D47H,EAEX,CAEF,OAAO,IAAI,OAAO3lQ,EAAK+pI,CAAK,CAC9B,CACA,SAAS67H,IAAgB3sS,EAAI+7C,EAAS9+C,EAAO2vS,EAAK,CAChD,GAAIA,EAAM,EACR,OAAO5sS,EAET,GAAI4sS,EAAM7wP,EAAQ,OAChB,OAAOA,EAAQ6wP,CAAG,EAEpB,GAAIA,GAAO,IAAK,CACdA,EAAMA,EAAM,IACZ,IAAMzlQ,EAAQlqC,EAAM,MAAM,GAAG,EAE7B,GADAkqC,EAAM,QAAQlqC,CAAK,EACf2vS,EAAMzlQ,EAAM,OACd,OAAOA,EAAMylQ,CAAG,CAEpB,CACA,OAAO,IACT,CACA,SAASC,IAAYtyC,EAAQuyC,EAAUC,EAAMhvR,EAAK,CAChD,IAAIivR,EAAQ,GACRC,EAAQF,EACRhxP,EAAUgxP,EAAK,MAAM,4BAA4B,EACjDhxP,IACEA,EAAQ,CAAC,IACXixP,EAAQ,SAASjxP,EAAQ,CAAC,CAAC,EACvBA,EAAQ,CAAC,IACXixP,EAAQA,EAAQ,MAGpBC,EAAQlxP,EAAQ,CAAC,GAEnB,IAAIkJ,EAAK,IACLioP,EAAMD,EACN,CAACA,GAASA,EAAM,SAAW,GAC7BhoP,EAAK,KACLioP,EAAM,IACG,QAAQ,KAAKA,CAAG,EACzBjoP,EAAK,MAELlJ,EAAUkxP,EAAM,MAAM,yBAAyB,EAC3ClxP,IACFkJ,EAAKlJ,EAAQ,CAAC,EACdmxP,EAAMnxP,EAAQ,CAAC,IAGnB,IAAIoxP,EACJ,IAAKloP,IAAO,KAAOA,IAAO,OAAS,aAAa,KAAKioP,CAAG,EAAG,CACzD,IAAME,EAAUhB,GAAqBc,EAAI,MAAM,GAAG,EAAG3yC,EAAO,UAAU,EACtE4yC,EAAS,SAAS90R,EAAG,CACnB,OAAO4sC,IAAO,IAAMmoP,EAAQ/0R,CAAC,EAAI,CAAC+0R,EAAQ/0R,CAAC,CAC7C,CACF,SAAW4sC,IAAO,KAAOA,IAAO,KAAM,CACpC,IAAMs3J,EAAQg+C,EAAO2yC,CAAG,EACxB,GAAI,CAAC3wF,EACH,MAAMm+C,GAAYH,EAAQ,uBAAyB2yC,EAAM,8BAAgCJ,CAAQ,EAEnG,GAAI,CAAChB,IAAU,SAAS1hH,EAAM,CAC5B,OAAO,OAAOA,GAAS,QACzB,EAAGmyB,CAAK,EACN,MAAMm+C,GAAYH,EAAQ,uBAAyB2yC,EAAM,2CAA6CJ,CAAQ,EAEhH,IAAMM,EAAUhB,GAAqB7vF,EAAOg+C,EAAO,UAAU,EAC7D4yC,EAAS,SAAS90R,EAAG,CACnB,OAAO4sC,IAAO,IAAMmoP,EAAQ/0R,CAAC,EAAI,CAAC+0R,EAAQ/0R,CAAC,CAC7C,CACF,SAAW4sC,IAAO,KAAOA,IAAO,KAC9B,GAAIioP,EAAI,QAAQ,GAAG,EAAI,EAAG,CACxB,IAAMtyC,EAAK0xC,GAAc/xC,EAAQ,IAAM2yC,EAAM,IAAK,EAAK,EACvDC,EAAS,SAAS90R,EAAG,CACnB,OAAO4sC,IAAO,IAAM21M,EAAG,KAAKviP,CAAC,EAAI,CAACuiP,EAAG,KAAKviP,CAAC,CAC7C,CACF,MACE80R,EAAS,SAAS90R,EAAGrY,EAAIqtS,EAAUpwS,EAAO,CAExC,OADWqvS,GAAc/xC,EAAQ,IAAMI,GAAkBJ,EAAQ2yC,EAAKltS,EAAIqtS,EAAUpwS,CAAK,EAAI,IAAK,EAAK,EAC7F,KAAKob,CAAC,CAClB,UAGE60R,EAAI,QAAQ,GAAG,EAAI,EAAG,CACxB,IAAMI,EAAOhzC,GAAQC,EAAQ2yC,CAAG,EAChCC,EAAS,SAAS90R,EAAG,CACnB,OAAO4sC,IAAO,KAAO5sC,IAAMi1R,EAAOj1R,IAAMi1R,CAC1C,CACF,KAAO,CACL,IAAMA,EAAOhzC,GAAQC,EAAQ2yC,CAAG,EAChCC,EAAS,SAAS90R,EAAGrY,EAAIqtS,EAAUpwS,EAAOswS,EAAK,CAC7C,IAAMC,EAAS7yC,GAAkBJ,EAAQ+yC,EAAMttS,EAAIqtS,EAAUpwS,CAAK,EAClE,OAAOgoD,IAAO,KAAO5sC,IAAMm1R,EAASn1R,IAAMm1R,CAC5C,CACF,CAEF,OAAIR,IAAU,GACL,CACL,KAAMD,EACN,MAAOhvR,EACP,KAAM,SAAS/d,EAAIqtS,EAAUpwS,EAAOswS,EAAK,CACvC,OAAOJ,EAAOntS,EAAIA,EAAIqtS,EAAUpwS,EAAOswS,CAAG,CAC5C,CACF,EAEO,CACL,KAAMR,EACN,MAAOhvR,EACP,KAAM,SAAS/d,EAAIqtS,EAAUpwS,EAAOswS,EAAK,CACvC,IAAME,EAAYd,IAAgB3sS,EAAIqtS,EAAUpwS,EAAO+vS,CAAK,EAC5D,OAAOG,EAAQM,GAAY,GAAgBztS,EAAIqtS,EAAUpwS,EAAOswS,CAAG,CACrE,CACF,CAEJ,CACA,SAASG,GAAcnzC,EAAQuyC,EAAUn1R,EAAQ,CAC/C,GAAKA,EAEE,IAAI,OAAOA,GAAW,SAC3B,OAAOA,EACF,GAAIA,EAAO,OAASA,EAAO,QAAU,GAAI,CAC9C,GAAI,OAAOA,EAAO,OAAU,SAC1B,MAAM+iP,GAAYH,EAAQ,wDAA0DuyC,CAAQ,EACvF,CACL,IAAMa,EAAY,CAAE,MAAOh2R,EAAO,KAAM,EAIxC,GAHIA,EAAO,MAAM,QAAQ,GAAG,GAAK,IAC/Bg2R,EAAU,WAAa,IAErB,OAAOh2R,EAAO,SAAY,SAC5B,GAAIA,EAAO,UAAY,QACrBg2R,EAAU,QAAU,UACXh2R,EAAO,UAAY,SAC5Bg2R,EAAU,QAAU,OAEpB,OAAMjzC,GAAYH,EAAQ,sEAAwEuyC,CAAQ,EAG9G,GAAIn1R,EAAO,KAAM,CACf,GAAI,OAAOA,EAAO,MAAS,SACzB,MAAM+iP,GAAYH,EAAQ,kDAAoDuyC,CAAQ,EACjF,CACL,IAAI7lN,EAAOtvE,EAAO,KAClB,GAAI,CAAC,yBAAyB,KAAKsvE,CAAI,IACjCA,EAAK,CAAC,IAAM,MACdA,EAAOA,EAAK,OAAO,CAAC,GAElBA,EAAK,QAAQ,GAAG,EAAI,GAClB,CAACo0K,IAAYd,EAAQI,GAAkBJ,EAAQtzK,EAAM,GAAI,CAAC,EAAG,EAAE,CAAC,GAClE,MAAMyzK,GAAYH,EAAQ,mBAAqB5iP,EAAO,KAAO,6BAA+Bm1R,CAAQ,EAI1Ga,EAAU,KAAO1mN,CACnB,CACF,CACA,OAAI,OAAOtvE,EAAO,QAAW,WAC3Bg2R,EAAU,OAASh2R,EAAO,QAExB,OAAOA,EAAO,UAAa,WAC7Bg2R,EAAU,SAAWh2R,EAAO,UAE1B,OAAOA,EAAO,KAAQ,WACxBg2R,EAAU,IAAMh2R,EAAO,KAErB,OAAOA,EAAO,cAAiB,WACjCg2R,EAAU,aAAeh2R,EAAO,aAChC4iP,EAAO,aAAe,IAEjBozC,CACT,CACF,SAAW,MAAM,QAAQh2R,CAAM,EAAG,CAChC,IAAM0tC,EAAU,CAAC,EACjB,QAAS/tD,EAAK,EAAG4iB,EAAMvC,EAAO,OAAQrgB,EAAK4iB,EAAK5iB,IAC9C+tD,EAAQ/tD,CAAE,EAAIo2S,GAAcnzC,EAAQuyC,EAAUn1R,EAAOrgB,CAAE,CAAC,EAE1D,MAAO,CAAE,MAAO+tD,CAAQ,CAC1B,SAAW1tC,EAAO,MAAO,CACvB,IAAMi2R,EAAQ,CAAC,EACXC,EAAwB,GAC5B,QAAWd,KAAQp1R,EAAO,MACxB,GAAIA,EAAO,MAAM,eAAeo1R,CAAI,EAAG,CACrC,IAAMhvR,EAAM2vR,GAAcnzC,EAAQuyC,EAAUn1R,EAAO,MAAMo1R,CAAI,CAAC,EAC1DA,IAAS,YAAcA,IAAS,KAAOA,IAAS,GAClDa,EAAM,KAAK,CAAE,KAAM,OAAQ,MAAO7vR,EAAK,KAAMgvR,CAAK,CAAC,EAC1CA,IAAS,OAClBa,EAAM,KAAK,CAAE,KAAM,SAAS5tS,EAAI+7C,EAAS9+C,EAAOswS,EAAK,CACnD,OAAOA,CACT,EAAG,MAAOxvR,EAAK,KAAMgvR,CAAK,CAAC,EAE3Ba,EAAM,KAAKf,IAAYtyC,EAAQuyC,EAAUC,EAAMhvR,CAAG,CAAC,EAEhD8vR,IACHA,EAAwB,CAACvyP,GAASv9B,CAAG,IAAMA,EAAI,uBAAyB,CAAC,OAAQ,SAAS,EAAE,SAASA,EAAI,cAAgB,EAAE,GAE/H,CAEF,IAAM+vR,EAAOvzC,EAAO,aACpB,MAAO,CACL,sBAAAszC,EACA,KAAM,SAAS7tS,EAAI+7C,EAAS9+C,EAAOswS,EAAK,CACtC,QAAWQ,KAASH,EAElB,GADiB,CAACG,EAAM,MAAQA,EAAM,KAAK/tS,EAAI+7C,EAAS9+C,EAAOswS,CAAG,EAEhE,OAAOQ,EAAM,MAGjB,OAAOD,CACT,CACF,CACF,KACE,OAAMpzC,GAAYH,EAAQ,+GAAiHuyC,CAAQ,MA7FnJ,OAAO,CAAE,MAAO,EAAG,CA+FvB,CACA,IAAIkB,IAAO,KAAM,CACf,YAAY72P,EAAM,CAChB,KAAK,MAAQ,IAAI,OAAO,EAAE,EAC1B,KAAK,OAAS,CAAE,MAAO,EAAG,EAC1B,KAAK,qBAAuB,GAC5B,KAAK,KAAO,GACZ,KAAK,KAAOA,CACd,CACA,SAASojN,EAAQK,EAAI,CACnB,IAAIqzC,EACJ,GAAI,OAAOrzC,GAAO,SAChBqzC,EAASrzC,UACAA,aAAc,OACvBqzC,EAASrzC,EAAG,WAEZ,OAAMF,GAAYH,EAAQ,+DAAiE,KAAK,IAAI,EAEtG,KAAK,qBAAuB0zC,EAAO,OAAS,GAAKA,EAAO,CAAC,IAAM,IAC/D,KAAK,KAAO,KAAK,KAAO,KAAOA,EAC/B,KAAK,MAAQ3B,GAAc/xC,EAAQ,QAAU,KAAK,qBAAuB0zC,EAAO,OAAO,CAAC,EAAIA,GAAU,IAAK,EAAI,CACjH,CACA,UAAU1zC,EAAQ2zC,EAAK,CACrB,KAAK,OAASR,GAAcnzC,EAAQ,KAAK,KAAM2zC,CAAG,CACpD,CACA,aAAajxS,EAAO,CAClB,OAAI,KAAK,iBAAiB,OACjB,KAAK,MAEL,KAAK,MAAMA,CAAK,CAE3B,CACF,EACA,SAASkxS,IAAQnhQ,EAAY80J,EAAM,CACjC,GAAI,CAACA,GAAQ,OAAOA,GAAS,SAC3B,MAAM,IAAI,MAAM,iDAAiD,EAEnE,IAAMy4D,EAAS,CACb,WAAAvtN,EACA,UAAWg/P,GAAKlqG,EAAK,UAAW,EAAK,EACrC,QAAS,GAET,SAAU,IACV,MAAO,OAAOA,EAAK,OAAU,SAAWA,EAAK,MAAQ,KACrD,WAAYkqG,GAAKlqG,EAAK,WAAY,EAAK,EACvC,QAASkqG,GAAKlqG,EAAK,QAAS,EAAK,EACjC,aAAcoqG,GAAOpqG,EAAK,aAAc,IAAM90J,CAAU,EACxD,aAAck/P,GAAOpqG,EAAK,aAAc,QAAQ,EAChD,aAAc,GAEd,WAAY,CAAC,EACb,UAAW,CAAC,EACZ,SAAU,CAAC,CACb,EACMssG,EAAWtsG,EACjBssG,EAAS,WAAaphQ,EACtBohQ,EAAS,UAAY7zC,EAAO,UAC5B6zC,EAAS,WAAa7zC,EAAO,WAC7B6zC,EAAS,QAAU7zC,EAAO,QAC1B6zC,EAAS,QAAU7zC,EAAO,QAC1B6zC,EAAS,aAAe7zC,EAAO,aAC/B6zC,EAAS,WAAatsG,EAAK,UAC3BssG,EAAS,aAAe7zC,EAAO,aAC/B,SAAS8zC,EAASpxS,EAAOqxS,EAAUnsD,EAAO,CACxC,QAAWb,KAAQa,EAAO,CACxB,IAAIz4L,EAAU43L,EAAK,QACnB,GAAI53L,EAAS,CACX,GAAI,OAAOA,GAAY,SACrB,MAAMgxM,GAAYH,EAAQ,+CAAiDt9P,CAAK,EAKlF,GAHIysD,EAAQ,CAAC,IAAM,MACjBA,EAAUA,EAAQ,OAAO,CAAC,GAExB,CAACo4I,EAAK,UAAUp4I,CAAO,EACzB,MAAMgxM,GAAYH,EAAQ,mBAAqB7wM,EAAU,wBAA0BzsD,CAAK,EAE1FoxS,EAASpxS,EAAQ,IAAMysD,EAAS4kP,EAAUxsG,EAAK,UAAUp4I,CAAO,CAAC,CACnE,KAAO,CACL,IAAM6kP,EAAU,IAAIP,IAAK/wS,CAAK,EAC9B,GAAI,MAAM,QAAQqkP,CAAI,GAAKA,EAAK,QAAU,GAAKA,EAAK,QAAU,EAE5D,GADAitD,EAAQ,SAASH,EAAU9sD,EAAK,CAAC,CAAC,EAC9BA,EAAK,QAAU,EACjB,GAAI,OAAOA,EAAK,CAAC,GAAM,SACrBitD,EAAQ,UAAUH,EAAU,CAAE,MAAO9sD,EAAK,CAAC,EAAG,KAAMA,EAAK,CAAC,CAAE,CAAC,UACpD,OAAOA,EAAK,CAAC,GAAM,SAAU,CACtC,IAAMktD,EAAQltD,EAAK,CAAC,EACpBktD,EAAM,KAAOltD,EAAK,CAAC,EACnBitD,EAAQ,UAAUH,EAAUI,CAAK,CACnC,KACE,OAAM9zC,GAAYH,EAAQ,mHAAqHt9P,CAAK,OAGtJsxS,EAAQ,UAAUH,EAAU9sD,EAAK,CAAC,CAAC,MAEhC,CACL,GAAI,CAACA,EAAK,MACR,MAAMoZ,GAAYH,EAAQ,sFAAwFt9P,CAAK,EAErHqkP,EAAK,MACH,OAAOA,EAAK,MAAS,WACvBitD,EAAQ,KAAOjtD,EAAK,MAGpBA,EAAK,mBACPitD,EAAQ,qBAAuBvC,GAAK1qD,EAAK,qBAAsB,EAAK,GAEtEitD,EAAQ,SAASH,EAAU9sD,EAAK,KAAK,EACrCitD,EAAQ,UAAUH,EAAU9sD,EAAK,MAAM,CACzC,CACAgtD,EAAS,KAAKC,CAAO,CACvB,CACF,CACF,CACA,GAAI,CAACzsG,EAAK,WAAa,OAAOA,EAAK,WAAc,SAC/C,MAAM44D,GAAYH,EAAQ,0EAA0E,EAEtGA,EAAO,UAAY,CAAC,EACpB,QAAWz+P,KAAOgmM,EAAK,UACrB,GAAIA,EAAK,UAAU,eAAehmM,CAAG,EAAG,CACjCy+P,EAAO,QACVA,EAAO,MAAQz+P,GAEjB,IAAMqmP,EAAQrgD,EAAK,UAAUhmM,CAAG,EAChCy+P,EAAO,UAAUz+P,CAAG,EAAI,IAAI,MAC5BuyS,EAAS,aAAevyS,EAAKy+P,EAAO,UAAUz+P,CAAG,EAAGqmP,CAAK,CAC3D,CAGF,GADAoY,EAAO,aAAe6zC,EAAS,aAC3BtsG,EAAK,UACP,GAAI,CAAC,MAAM,QAAQA,EAAK,QAAQ,EAC9B,MAAM44D,GAAYH,EAAQ,sDAAsD,OAGlFz4D,EAAK,SAAW,CACd,CAAE,KAAM,IAAK,MAAO,IAAK,MAAO,iBAAkB,EAClD,CAAE,KAAM,IAAK,MAAO,IAAK,MAAO,kBAAmB,EACnD,CAAE,KAAM,IAAK,MAAO,IAAK,MAAO,uBAAwB,EACxD,CAAE,KAAM,IAAK,MAAO,IAAK,MAAO,iBAAkB,CACpD,EAEF,IAAMngK,EAAW,CAAC,EAClB,QAAWzwB,KAAM4wL,EAAK,SAAU,CAC9B,IAAI/lM,EAAOmV,EAIX,GAHInV,GAAQ,MAAM,QAAQA,CAAI,GAAKA,EAAK,SAAW,IACjDA,EAAO,CAAE,MAAOA,EAAK,CAAC,EAAG,KAAMA,EAAK,CAAC,EAAG,MAAOA,EAAK,CAAC,CAAE,GAErDA,EAAK,OAASA,EAAK,MACrB,MAAM2+P,GAAYH,EAAQ,wEAA0Ex+P,EAAK,KAAO;AAAA,8EAAiF,EAEnM,GAAI,OAAOA,EAAK,MAAS,UAAY,OAAOA,EAAK,OAAU,UAAY,OAAOA,EAAK,OAAU,SAC3F4lC,EAAS,KAAK,CACZ,MAAO5lC,EAAK,MAAQw+P,EAAO,aAC3B,KAAMD,GAAQC,EAAQx+P,EAAK,IAAI,EAC/B,MAAOu+P,GAAQC,EAAQx+P,EAAK,KAAK,CACnC,CAAC,MAED,OAAM2+P,GAAYH,EAAQ,sFAAsF,CAEpH,CACA,OAAAA,EAAO,SAAW54N,EAClB44N,EAAO,QAAU,GACVA,CACT,CAGApa,GAAqB,EACrBnlO,GAAmB,EACnB,SAASyzR,IAAUxkE,EAAW,CAC5B2uC,GAAc,iBAAiB3uC,CAAS,CAC1C,CACA,SAASykE,KAAe,CACtB,IAAIjvS,EAAS,CAAC,EACd,OAAAA,EAASA,EAAO,OAAOm5Q,GAAc,aAAa,CAAC,EAC5Cn5Q,CACT,CACA,SAASkvS,IAAqB3hQ,EAAY,CAExC,OADwBg2P,GAAmB,IAAI51P,EAAgB,EACxC,gBAAgB,iBAAiBJ,CAAU,CACpE,CACA,SAAS4hQ,IAAW5hQ,EAAYp3B,EAAU,CACxC,OAAOotR,GAAmB,aAAa,IAAM,CAE3C,IAAM/lR,EADkB+lR,GAAmB,IAAI51P,EAAgB,EAC5B,iCAAkCyhQ,GAA0B,CACzFA,IAA0B7hQ,IAC5B/vB,EAAW,QAAQ,EACnBrH,EAAS,EAEb,CAAC,EACD,OAAOqH,CACT,CAAC,CACH,CACA,SAAS6xR,IAAsB9hQ,EAAYp3B,EAAU,CACnD,OAAOotR,GAAmB,aAAa,IAAM,CAE3C,IAAM/lR,EADkB+lR,GAAmB,IAAI51P,EAAgB,EAC5B,kCAAmCyhQ,GAA0B,CAC1FA,IAA0B7hQ,IAC5B/vB,EAAW,QAAQ,EACnBrH,EAAS,EAEb,CAAC,EACD,OAAOqH,CACT,CAAC,CACH,CACA,SAAS8xR,IAAyB/hQ,EAAYhnB,EAAe,CAE3D,GAAI,CADoBg9Q,GAAmB,IAAI51P,EAAgB,EAC1C,uBAAuBJ,CAAU,EACpD,MAAM,IAAI,MAAM,iDAAiDA,CAAU,EAAE,EAG/E,OADqCg2P,GAAmB,IAAIvqN,EAA6B,EACrD,SAASzrC,EAAYhnB,EAAe,GAAG,CAC7E,CACA,IAAIgpR,IAAoC,KAAM,CAC5C,YAAYhiQ,EAAYg1N,EAAQ,CAC9B,KAAK,YAAch1N,EACnB,KAAK,QAAUg1N,CACjB,CACA,SAAU,CACV,CACA,iBAAkB,CAChB,OAAO,KAAK,QAAQ,gBAAgB,CACtC,CACA,SAAS17P,EAAMm2P,EAAQx/P,EAAO,CAC5B,GAAI,OAAO,KAAK,QAAQ,UAAa,WACnC,OAAOgyS,IAA2B,cAAc,KAAK,YAAa,KAAK,QAAS3oS,EAAMrJ,CAAK,EAE7F,MAAM,IAAI,MAAM,gBAAgB,CAClC,CACA,gBAAgBqJ,EAAMm2P,EAAQx/P,EAAO,CACnC,IAAMwC,EAAS,KAAK,QAAQ,gBAAgB6G,EAAMrJ,CAAK,EACvD,OAAO,IAAIqgQ,GAA0B79P,EAAO,OAAQA,EAAO,QAAQ,CACrE,CACF,EACIwvS,IAA6B,MAAMC,EAA4B,CACjE,YAAYC,EAAaC,EAAS9iQ,EAAkB+iQ,EAAyB,CAC3E,KAAK,YAAcF,EACnB,KAAK,QAAUC,EACf,KAAK,iBAAmB9iQ,EACxB,KAAK,wBAA0B+iQ,CACjC,CACA,SAAU,CACV,CACA,iBAAkB,CAChB,OAAO,KAAK,QAAQ,gBAAgB,CACtC,CACA,OAAO,iBAAiB33N,EAAQuyJ,EAAW,CACzC,IAAMxqO,EAAS,CAAC,EACZ6vS,EAAqB,EACzB,QAASh4S,EAAK,EAAG4iB,EAAMw9D,EAAO,OAAQpgF,EAAK4iB,EAAK5iB,IAAM,CACpD,IAAMgC,EAAIo+E,EAAOpgF,CAAE,EACf0kG,EAAa1iG,EAAE,WACfhC,IAAO,EACT0kG,EAAa,EACJA,EAAaszM,IACtBtzM,EAAaszM,GAEf7vS,EAAOnI,CAAE,EAAI,IAAIm1P,GAAMzwJ,EAAY1iG,EAAE,OAAQ2wO,CAAS,EACtDqlE,EAAqBtzM,CACvB,CACA,OAAOv8F,CACT,CACA,OAAO,cAAcwqO,EAAW+3B,EAAQ17P,EAAMrJ,EAAO,CACnD,IAAMsyS,EAAevtC,EAAO,SAAS17P,EAAMrJ,CAAK,EAC1Cy6E,EAASw3N,GAA4B,iBAAiBK,EAAa,OAAQtlE,CAAS,EACtF8yB,EACJ,OAAIwyC,EAAa,SAAS,OAAOtyS,CAAK,EACpC8/P,EAAW9/P,EAEX8/P,EAAWwyC,EAAa,SAEnB,IAAIvyC,GAAmBtlL,EAAQqlL,CAAQ,CAChD,CACA,SAASz2P,EAAMm2P,EAAQx/P,EAAO,CAC5B,OAAOiyS,GAA4B,cAAc,KAAK,YAAa,KAAK,QAAS5oS,EAAMrJ,CAAK,CAC9F,CACA,gBAAgB2iQ,EAAiBloL,EAAQ,CACvC,IAAM1qC,EAAa4yN,EAAgB,iBAAiB,KAAK,WAAW,EAC9D4vC,EAAa,KAAK,wBAAwB,cAAc,EAAE,WAC1D/vS,EAAS,CAAC,EACZ8gP,EAAY,EACZ+uD,EAAqB,EACzB,QAASh4S,EAAK,EAAG4iB,EAAMw9D,EAAO,OAAQpgF,EAAK4iB,EAAK5iB,IAAM,CACpD,IAAMgC,EAAIo+E,EAAOpgF,CAAE,EACbuyC,EAAW2lQ,EAAW,MAAMxiQ,EAAY1zC,EAAE,MAAM,EAAI,KAC1D,GAAIinP,EAAY,GAAK9gP,EAAO8gP,EAAY,CAAC,IAAM12M,EAC7C,SAEF,IAAImyD,EAAa1iG,EAAE,WACfhC,IAAO,EACT0kG,EAAa,EACJA,EAAaszM,IACtBtzM,EAAaszM,GAEf7vS,EAAO8gP,GAAW,EAAIvkJ,EACtBv8F,EAAO8gP,GAAW,EAAI12M,EACtBylQ,EAAqBtzM,CACvB,CACA,IAAMuzM,EAAe,IAAI,YAAYhvD,CAAS,EAC9C,QAASjpP,EAAK,EAAGA,EAAKipP,EAAWjpP,IAC/Bi4S,EAAaj4S,CAAE,EAAImI,EAAOnI,CAAE,EAE9B,OAAOi4S,CACT,CACA,gBAAgBjpS,EAAMm2P,EAAQx/P,EAAO,CACnC,IAAMsyS,EAAe,KAAK,QAAQ,SAASjpS,EAAMrJ,CAAK,EAChDy6E,EAAS,KAAK,gBAAgB,KAAK,iBAAiB,gBAAiB63N,EAAa,MAAM,EAC1FxyC,EACJ,OAAIwyC,EAAa,SAAS,OAAOtyS,CAAK,EACpC8/P,EAAW9/P,EAEX8/P,EAAWwyC,EAAa,SAEnB,IAAIjyC,GAA0B5lL,EAAQqlL,CAAQ,CACvD,CACF,EACA,SAAS0yC,IAAkB19Q,EAAU,CACnC,OAAO,OAAOA,EAAS,iBAAoB,UAC7C,CACA,SAAS29Q,IAAwB39Q,EAAU,CACzC,MAAO,oBAAqBA,CAC9B,CACA,SAAS49Q,IAAY79P,EAAK,CACxB,OAAOA,GAAO,OAAOA,EAAI,MAAS,UACpC,CACA,SAAS89P,IAAY5uD,EAAU,CAC7B,IAAMoF,EAAyB48C,GAAmB,IAAI38C,EAAuB,EAC7E,GAAIrF,EAAU,CACZ,IAAMvhP,EAAS,CAAC,IAAI,EACpB,QAASnI,EAAK,EAAG4iB,EAAM8mO,EAAS,OAAQ1pP,EAAK4iB,EAAK5iB,IAChDmI,EAAOnI,CAAE,EAAIotB,EAAM,QAAQs8N,EAAS1pP,CAAE,CAAC,EAEzC8uP,EAAuB,oBAAoB3mP,CAAM,CACnD,MACE2mP,EAAuB,oBAAoB,IAAI,CAEnD,CACA,SAASypD,IAAiC7iQ,EAAYjb,EAAU,CAC9D,OAAI29Q,IAAwB39Q,CAAQ,EAC3B,IAAIi9Q,IAAkChiQ,EAAYjb,CAAQ,EAE1D,IAAIk9Q,IAA2BjiQ,EAAYjb,EAAUixQ,GAAmB,IAAI51P,EAAgB,EAAG41P,GAAmB,IAAI38C,EAAuB,CAAC,CAEzJ,CACA,SAASypD,GAA8B9iQ,EAAYv7B,EAAS,CAC1D,IAAMs+R,EAAiB,IAAIC,IAAwB,SAAY,CAC7D,IAAMvwS,EAAS,MAAM,QAAQ,QAAQgS,EAAQ,OAAO,CAAC,EACrD,OAAKhS,EAGDgwS,IAAkBhwS,CAAM,EACnBowS,IAAiC7iQ,EAAYvtC,CAAM,EAErD,IAAI89P,GAAiBylC,GAAmB,IAAI51P,EAAgB,EAAG41P,GAAmB,IAAI38C,EAAuB,EAAGr5M,EAAYmhQ,IAAQnhQ,EAAYvtC,CAAM,EAAGujS,GAAmB,IAAI53Q,EAAqB,CAAC,EALpM,IAMX,CAAC,EACD,OAAOs6F,GAAsB,gBAAgB14E,EAAY+iQ,CAAc,CACzE,CACA,SAASE,IAAkBjjQ,EAAYjb,EAAU,CAE/C,GAAI,CADoBixQ,GAAmB,IAAI51P,EAAgB,EAC1C,uBAAuBJ,CAAU,EACpD,MAAM,IAAI,MAAM,mDAAmDA,CAAU,EAAE,EAEjF,OAAI2iQ,IAAY59Q,CAAQ,EACf+9Q,GAA8B9iQ,EAAY,CAAE,OAAQ,IAAMjb,CAAS,CAAC,EAEtE2zF,GAAsB,SAAS14E,EAAY6iQ,IAAiC7iQ,EAAYjb,CAAQ,CAAC,CAC1G,CACA,SAASm+Q,IAAyBljQ,EAAYmjQ,EAAa,CACzD,IAAMlkJ,EAAWmkJ,GACR,IAAI7yC,GAAiBylC,GAAmB,IAAI51P,EAAgB,EAAG41P,GAAmB,IAAI38C,EAAuB,EAAGr5M,EAAYmhQ,IAAQnhQ,EAAYojQ,CAAY,EAAGpN,GAAmB,IAAI53Q,EAAqB,CAAC,EAErN,OAAIukR,IAAYQ,CAAW,EAClBL,GAA8B9iQ,EAAY,CAAE,OAAQ,IAAMmjQ,CAAY,CAAC,EAEzEzqL,GAAsB,SAAS14E,EAAYi/G,EAAQkkJ,CAAW,CAAC,CACxE,CACA,SAASE,IAA0BC,EAAkBv+Q,EAAU,CAE7D,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,kBAAkB,SAASu7P,EAAkBv+Q,CAAQ,CACtF,CACA,SAASw+Q,IAAuBD,EAAkBv+Q,EAAU,CAE1D,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,eAAe,SAASu7P,EAAkBv+Q,CAAQ,CACnF,CACA,SAASy+Q,IAA8BF,EAAkBv+Q,EAAU,CAEjE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,uBAAuB,SAASu7P,EAAkBv+Q,CAAQ,CAC3F,CACA,SAAS0+Q,IAA8BH,EAAkBv+Q,EAAU,CAEjE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,sBAAsB,SAASu7P,EAAkBv+Q,CAAQ,CAC1F,CACA,SAAS2+Q,IAAsBJ,EAAkBv+Q,EAAU,CAEzD,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,cAAc,SAASu7P,EAAkB,CACtE,aAAc,MAAO5rS,EAAOyQ,EAAUk+B,EAAO7oB,IAAY,CACvD,IAAMwsB,EAAOtyC,EAAM,kBAAkByQ,CAAQ,EAC7C,OAAO,QAAQ,QAAQ4c,EAAS,aAAartB,EAAOyQ,EAAUk+B,EAAO7oB,CAAO,CAAC,EAAE,KAAM9yB,GAAU,CAC7F,GAAKA,EAGL,MAAI,CAACA,EAAM,OAASs/C,IAClBt/C,EAAM,MAAQ,IAAIoM,EAAMqR,EAAS,WAAY6hC,EAAK,YAAa7hC,EAAS,WAAY6hC,EAAK,SAAS,GAE/Ft/C,EAAM,QACTA,EAAM,MAAQ,IAAIoM,EAAMqR,EAAS,WAAYA,EAAS,OAAQA,EAAS,WAAYA,EAAS,MAAM,GAE7Fzd,CACT,CAAC,CACH,CACF,CAAC,CACH,CACA,SAASi5S,IAA+BL,EAAkBv+Q,EAAU,CAElE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,uBAAuB,SAASu7P,EAAkBv+Q,CAAQ,CAC3F,CACA,SAAS6+Q,IAAkCN,EAAkBv+Q,EAAU,CAErE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,0BAA0B,SAASu7P,EAAkBv+Q,CAAQ,CAC9F,CACA,SAAS8+Q,IAAmCP,EAAkBv+Q,EAAU,CAEtE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,2BAA2B,SAASu7P,EAAkBv+Q,CAAQ,CAC/F,CACA,SAAS++Q,IAA2BR,EAAkBv+Q,EAAU,CAE9D,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,mBAAmB,SAASu7P,EAAkBv+Q,CAAQ,CACvF,CACA,SAASg/Q,IAA+BT,EAAkBv+Q,EAAU,CAElE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,uBAAuB,SAASu7P,EAAkBv+Q,CAAQ,CAC3F,CACA,SAASi/Q,IAA+BV,EAAkBv+Q,EAAU,CAElE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,uBAAuB,SAASu7P,EAAkBv+Q,CAAQ,CAC3F,CACA,SAASk/Q,IAAyBX,EAAkBv+Q,EAAU,CAE5D,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,iBAAiB,SAASu7P,EAAkBv+Q,CAAQ,CACrF,CACA,SAASm/Q,IAA2BZ,EAAkBv+Q,EAAU8X,EAAU,CAExE,OADgCm5P,GAAmB,IAAIjuP,EAAwB,EAChD,mBAAmB,SAASu7P,EAAkB,CAC3E,wBAAyBzmQ,GAAU,wBACnC,cAAeA,GAAU,cACzB,mBAAoB,CAACnlC,EAAOX,EAAQymB,EAAS6oB,IAAU,CAErD,IAAM43F,EADgB+3J,GAAmB,IAAIj0O,EAAc,EAC7B,KAAK,CAAE,SAAUrqD,EAAM,GAAI,CAAC,EAAE,OAAQnH,GAC3DuG,EAAM,0BAA0BvG,EAAGwG,CAAM,CACjD,EACD,OAAOguB,EAAS,mBAAmBrtB,EAAOX,EAAQ,CAAE,QAAAknI,EAAS,KAAMzgH,EAAQ,KAAM,QAASA,EAAQ,OAAQ,EAAG6oB,CAAK,CACpH,EACA,kBAAmBthB,EAAS,iBAC9B,CAAC,CACH,CACA,SAASo/Q,IAAuCb,EAAkBv+Q,EAAU,CAE1E,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,+BAA+B,SAASu7P,EAAkBv+Q,CAAQ,CACnG,CACA,SAASq/Q,IAA4Cd,EAAkBv+Q,EAAU,CAE/E,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,oCAAoC,SAASu7P,EAAkBv+Q,CAAQ,CACxG,CACA,SAASs/Q,IAAqCf,EAAkBv+Q,EAAU,CAExE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,6BAA6B,SAASu7P,EAAkBv+Q,CAAQ,CACjG,CACA,SAASu/Q,IAAqBhB,EAAkBv+Q,EAAU,CAExD,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,aAAa,SAASu7P,EAAkBv+Q,CAAQ,CACjF,CACA,SAASw/Q,IAA+BjB,EAAkBv+Q,EAAU,CAElE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,mBAAmB,SAASu7P,EAAkBv+Q,CAAQ,CACvF,CACA,SAASy/Q,IAAsBlB,EAAkBv+Q,EAAU,CAEzD,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,cAAc,SAASu7P,EAAkBv+Q,CAAQ,CAClF,CACA,SAAS0/Q,IAA6BnB,EAAkBv+Q,EAAU,CAEhE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,qBAAqB,SAASu7P,EAAkBv+Q,CAAQ,CACzF,CACA,SAAS2/Q,IAA4BpB,EAAkBv+Q,EAAU,CAE/D,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,oBAAoB,SAASu7P,EAAkBv+Q,CAAQ,CACxF,CACA,SAAS4/Q,IAA+BrB,EAAkBv+Q,EAAU,CAElE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,uBAAuB,SAASu7P,EAAkBv+Q,CAAQ,CAC3F,CACA,SAAS6/Q,IAAuCtB,EAAkBv+Q,EAAU,CAE1E,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,+BAA+B,SAASu7P,EAAkBv+Q,CAAQ,CACnG,CACA,SAAS8/Q,IAA4CvB,EAAkBv+Q,EAAU,CAE/E,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,oCAAoC,SAASu7P,EAAkBv+Q,CAAQ,CACxG,CACA,SAAS+/Q,IAAkCxB,EAAkBv+Q,EAAU,CAErE,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,0BAA0B,SAASu7P,EAAkBv+Q,CAAQ,CAC9F,CACA,SAASggR,IAA2BzB,EAAkBv+Q,EAAU,CAE9D,OADgCixQ,GAAmB,IAAIjuP,EAAwB,EAChD,mBAAmB,SAASu7P,EAAkBv+Q,CAAQ,CACvF,CACA,SAASigR,KAA2B,CAClC,MAAO,CACL,SAAUvD,IACV,aAAAC,IACA,WAAAE,IACA,sBAAAE,IACA,qBAAAH,IAEA,yBAAAI,IACA,YAAAa,IACA,8BAAAE,GACA,kBAAAG,IACA,yBAAAC,IACA,0BAAAG,IACA,uBAAAE,IACA,8BAAAC,IACA,+BAAAe,IACA,8BAAAd,IACA,sBAAAC,IACA,+BAAAC,IACA,kCAAAC,IACA,mCAAAC,IACA,2BAAAC,IACA,+BAAAC,IACA,+BAAAC,IACA,yBAAAC,IACA,2BAAAC,IACA,uCAAAC,IACA,4CAAAC,IACA,qCAAAC,IACA,qBAAAC,IACA,sBAAAE,IACA,6BAAAC,IACA,4BAAAC,IACA,+BAAAC,IACA,uCAAAC,IACA,4CAAAC,IACA,kCAAAC,IACA,2BAAAC,IAEA,sBAAuBtqD,GACvB,mBAAAZ,GACA,kBAAAE,GACA,6BAAAJ,GACA,WAAA6E,GACA,UAAAE,GACA,aAAcnD,GACd,sBAAAtB,GACA,yBAA0BqE,GAC1B,cAAe3C,GACf,4BAA6BM,GAC7B,sBAAAxC,GACA,iBAAkBqD,GAClB,yBAA0BE,GAC1B,yBAAAM,GACA,qBAAsBjC,GACtB,oCAAqCU,GACrC,oCAAqCF,GAErC,iBAAA36G,GACA,uBAAA0mC,EACF,CACF,CAGA3kK,GAAc,eAAe,aAAe,EAC5CA,GAAc,YAAY,aAAe,GACzCA,GAAc,WAAW,aAAe,EACxCA,GAAc,mBAAmB,aAAe,EAChDoiI,GAAoB,qBAAqB,CAACF,EAAWK,EAAW1qF,IAAS,QAAQ,QAAQqqF,EAAU,CAAC,CAAC,CAAC,EACtG,IAAI8/J,GAAMzlD,IAAoB,EAC9BylD,GAAI,OAAS1G,IAAsB,EACnC0G,GAAI,UAAYD,IAAyB,EACzC,IAAIE,IAA2BD,GAAI,wBAC/BE,IAAWF,GAAI,QACfG,IAAWH,GAAI,QACfI,IAAUJ,GAAI,OACdK,IAAYL,GAAI,SAChBM,IAASN,GAAI,MACbO,IAAaP,GAAI,UACjBQ,IAAsBR,GAAI,mBAC1BS,IAAkBT,GAAI,eACtBU,IAAaV,GAAI,UACjBW,IAAOX,GAAI,IACXY,IAASZ,GAAI,MACba,IAASb,GAAI,OACbc,IAAYd,GAAI,UAChBe,IAAoB,WAAW,mBAC/BA,KAAmB,WAAa,OAAO,WAAW,QAAW,YAAc,WAAW,OAAO,OAC/F,WAAW,OAASf,IAElB,OAAO,WAAW,QAAY,KAAe,OAAO,WAAW,QAAQ,QAAW,YACpF,WAAW,QAAQ,OAAO,CACxB,uBAAwB,CACtB,8BACA,mCACA,qCACA,0CACA,aACA,wBACA,eACA,oBACA,aACA,mBACA,0CACF,CACF,CAAC,EAIH,IAAIgB,IAAkC,CACpC,OAAQ,CACN,SAAU,CACR,aAAc,CACZ,OACA,KACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,sBAAuB,CAAC,EACxB,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,GACT,QAAS,CACP,MAAO,gCACP,IAAK,kCACP,CACF,EACA,YAAa,CACX,QAAS,mKACT,MAAO,IACT,CACF,EACA,MAAO,CACL,SAAU,CACR,aAAc,CACZ,OACA,KACF,CACF,EACA,SAAU,CACR,CACE,OACA,KACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,CACF,CACF,EACA,UAAW,CACT,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,CACF,EACA,OAAQ,CACN,SAAU,CACR,YAAa,GACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,sDACvB,sBAAuB,WACzB,CACF,EACA,GAAI,CACF,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,+GACvB,sBAAuB,0DACzB,EACA,QAAS,CACP,QAAS,CACP,MAAO,yBACP,IAAK,2BACP,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,OAAQ,CACN,SAAU,CACR,YAAa,IACb,aAAc,CACZ,MACA,KACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,GACT,QAAS,CACP,MAAO,sBACP,IAAK,wBACP,CACF,EACA,aAAc,CACZ,CACE,WAAY,mFACZ,OAAQ,CACN,OAAQ,QACV,CACF,CACF,CACF,EACA,IAAK,CACH,SAAU,CACR,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,+CACP,IAAK,sCACP,CACF,EACA,iBAAkB,CAChB,sBAAuB,iBACvB,sBAAuB,UACzB,EACA,YAAa,iFACf,EACA,QAAS,CACP,SAAU,CACR,YAAa,IACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,EACX,CACF,EACA,KAAM,CACJ,SAAU,CACR,aAAc,CACZ,KACA,IACF,EACA,YAAa,IACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,+CACP,IAAK,sCACP,CACF,EACA,iBAAkB,CAChB,sBAAuB,iBACvB,sBAAuB,UACzB,EACA,YAAa,kFACb,aAAc,CACZ,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,MACN,MAAO,MACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,CACF,EACA,MAAO,CACL,SAAU,CACR,YAAa,GACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,UACA,UACF,EACA,CACE,UACA,UACF,EACA,CACE,UACA,UACF,EACA,CACE,UACA,UACF,EACA,CACE,UACA,UACF,EACA,CACE,UACA,UACF,EACA,CACE,YACA,YACF,EACA,CACE,YACA,UACF,EACA,CACE,UACA,YACF,EACA,CACE,UACA,UACF,EACA,CACE,UACA,SACF,EACA,CACE,UACA,SACF,EACA,CACE,YACA,WACF,EACA,CACE,UACA,SACF,EACA,CACE,UACA,SACF,EACA,CACE,YACA,WACF,EACA,CACE,WACA,UACF,EACA,CACE,WACA,UACF,EACA,CACE,aACA,YACF,EACA,CACE,WACA,UACF,EACA,CACE,WACA,UACF,EACA,CACE,aACA,YACF,EACA,CACE,WACA,UACF,EACA,CACE,UACA,SACF,EACA,CACE,UACA,SACF,EACA,CACE,UACA,UACF,EACA,CACE,eACA,eACF,EACA,CACE,YACA,YACF,EACA,CACE,eACA,eACF,EACA,CACE,iBACA,iBACF,EACA,CACE,gBACA,gBACF,EACA,CACE,gBACA,gBACF,EACA,CACE,iBACA,gBACF,EACA,CACE,UACA,SACF,EACA,CACE,eACA,cACF,EACA,CACE,gBACA,eACF,EACA,CACE,YACA,WACF,EACA,CACE,gBACA,eACF,EACA,CACE,eACA,cACF,EACA,CACE,iBACA,gBACF,EACA,CACE,UACA,SACF,EACA,CACE,gBACA,eACF,EACA,CACE,eACA,cACF,EACA,CACE,YACA,WACF,EACA,CACE,gBACA,eACF,EACA,CACE,eACA,cACF,EACA,CACE,kBACA,iBACF,EACA,CACE,WACA,UACF,EACA,CACE,iBACA,gBACF,EACA,CACE,gBACA,eACF,EACA,CACE,aACA,YACF,EACA,CACE,iBACA,gBACF,EACA,CACE,gBACA,eACF,EACA,CACE,kBACA,iBACF,EACA,CACE,WACA,UACF,EACA,CACE,iBACA,gBACF,EACA,CACE,gBACA,eACF,EACA,CACE,aACA,YACF,EACA,CACE,iBACA,gBACF,EACA,CACE,gBACA,eACF,CACF,EACA,iBAAkB,CAChB,CACE,UACA,UACF,EACA,CACE,UACA,UACF,EACA,CACE,YACA,YACF,EACA,CACE,UACA,SACF,EACA,CACE,UACA,SACF,EACA,CACE,YACA,WACF,EACA,CACE,UACA,SACF,EACA,CACE,UACA,SACF,EACA,CACE,YACA,WACF,EACA,CACE,WACA,UACF,EACA,CACE,WACA,UACF,EACA,CACE,aACA,YACF,EACA,CACE,WACA,UACF,EACA,CACE,WACA,UACF,EACA,CACE,aACA,YACF,EACA,CACE,MACA,KACF,EACA,CACE,MACA,KACF,EACA,CACE,MACA,KACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,mDACvB,sBAAuB,2BACzB,EACA,QAAS,CACP,QAAS,CACP,MAAO,wCACP,IAAK,wCACP,CACF,EACA,gBAAiB,qBACjB,YAAa,CACX,QAAS,yDACT,MAAO,GACT,CACF,EACA,KAAM,CACJ,SAAU,CACR,aAAc,CACZ,KACA,IACF,EACA,YAAa,IACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,+CACP,IAAK,sCACP,CACF,EACA,iBAAkB,CAChB,sBAAuB,iBACvB,sBAAuB,UACzB,EACA,YAAa,oFACb,aAAc,CACZ,CACE,WAAY,gBACZ,OAAQ,CACN,OAAQ,OACR,WAAY,MACd,CACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,kCACvB,sBAAuB,oCACzB,EACA,QAAS,CACP,QAAS,CACP,MAAO,yBACP,IAAK,2BACP,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,IAAK,CACH,SAAU,CACR,YAAa,KACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,EACX,CACF,EACA,OAAQ,CACN,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,GACT,QAAS,CACP,MAAO,yDACP,IAAK,8DACP,CACF,CACF,EACA,EAAG,CACD,SAAU,CACR,YAAa,GACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,MACN,MAAO,MACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,qDACP,IAAK,sDACP,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,sCACX,EACA,UAAW,CACT,QAAS,YACX,EACA,OAAQ,CACN,OAAQ,gBACR,WAAY,KACd,CACF,EACA,CACE,WAAY,CACV,QAAS,sCACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,EACA,CACE,WAAY,CACV,QAAS,4CACX,EACA,iBAAkB,CAChB,QAAS,8CACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,IACd,CACF,EACA,CACE,WAAY,CACV,QAAS,yBACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,CACd,CACF,EACA,CACE,WAAY,CACV,QAAS,iCACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,CACd,CACF,EACA,CACE,WAAY,CACV,QAAS,mCACX,EACA,UAAW,CACT,QAAS,qCACX,EACA,OAAQ,CACN,OAAQ,QACV,CACF,EACA,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,IACb,aAAc,CACZ,IACA,GACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,aAAc,CACZ,OACA,KACF,CACF,EACA,SAAU,CACR,CACE,OACA,KACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,OACN,MAAO,MACP,MAAO,CACL,UACA,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,CACF,EACA,sBAAuB,CAAC,EACxB,QAAS,CACP,QAAS,CACP,MAAO,+BACP,IAAK,iCACP,CACF,EACA,YAAa,kHACb,aAAc,CACZ,CACE,WAAY,CACV,QAAS,qKACT,MAAO,GACT,EACA,UAAW,CACT,QAAS,mCACT,MAAO,GACT,EACA,OAAQ,CACN,OAAQ,eACV,CACF,EACA,CACE,WAAY,CACV,QAAS,qKACT,MAAO,GACT,EACA,OAAQ,CACN,OAAQ,QACV,CACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,mMACvB,sBAAuB,uDACzB,CACF,EACA,IAAK,CACH,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,MACN,MAAO,MACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,qGACvB,sBAAuB,sGACvB,sBAAuB,CACrB,QAAS,iGACX,EACA,sBAAuB,CACrB,QAAS,oEACX,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,uBACP,IAAK,yBACP,CACF,EACA,YAAa,2HACb,aAAc,CACZ,CACE,WAAY,6CACZ,UAAW,eACX,OAAQ,CACN,OAAQ,gBACR,WAAY,KACd,CACF,EACA,CACE,WAAY,6CACZ,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,EACA,CACE,WAAY,oDACZ,OAAQ,CACN,OAAQ,OACR,WAAY,IACd,CACF,EACA,CACE,WAAY,iCACZ,OAAQ,CACN,OAAQ,OACR,WAAY,CACd,CACF,EACA,CACE,WAAY,yCACZ,OAAQ,CACN,OAAQ,OACR,WAAY,CACd,CACF,EACA,CACE,iBAAkB,kEAClB,WAAY,4BACZ,OAAQ,CACN,OAAQ,SACV,CACF,EACA,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,IAAK,CACH,SAAU,CACR,YAAa,KACb,aAAc,CACZ,OACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,gGACvB,sBAAuB,oDACzB,CACF,EACA,GAAI,CACF,SAAU,CACR,YAAa,GACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,kBACP,IAAK,qBACP,CACF,CACF,EACA,WAAY,CACV,SAAU,CACR,YAAa,IACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,KACN,MAAO;AAAA,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,KACN,MAAO;AAAA,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KACA,IACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,qBACP,IAAK,0BACP,CACF,CACF,EACA,WAAY,CACV,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,KACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,MACN,MAAO,MACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,sBAAuB,CACrB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,gBAAiB,iBACjB,QAAS,CACP,QAAS,CACP,MAAO,yBACP,IAAK,2BACP,CACF,EACA,YAAa,CACX,QAAS,qHACX,EACA,iBAAkB,CAChB,sBAAuB,CACrB,QAAS,qBACX,EACA,sBAAuB,CACrB,QAAS,oCACX,EACA,sBAAuB,CACrB,QAAS,iGACX,EACA,sBAAuB,CACrB,QAAS,4EACX,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,sCACX,EACA,UAAW,CACT,QAAS,YACX,EACA,OAAQ,CACN,OAAQ,gBACR,WAAY,KACd,CACF,EACA,CACE,WAAY,CACV,QAAS,sCACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,EACA,CACE,WAAY,CACV,QAAS,yCACX,EACA,iBAAkB,CAChB,QAAS,8CACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,IACd,CACF,EACA,CACE,WAAY,CACV,QAAS,yBACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,CACd,CACF,EACA,CACE,WAAY,CACV,QAAS,iCACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,CACd,CACF,EACA,CACE,WAAY,CACV,QAAS,mCACX,EACA,UAAW,CACT,QAAS,qCACX,EACA,OAAQ,CACN,OAAQ,QACV,CACF,EACA,CACE,iBAAkB,2DAClB,WAAY,4BACZ,OAAQ,CACN,OAAQ,SACV,CACF,EACA,CACE,WAAY,iBACZ,UAAW,cACX,OAAQ,CACN,OAAQ,gBACR,WAAY,GACd,CACF,EACA,CACE,WAAY,iBACZ,UAAW,cACX,OAAQ,CACN,OAAQ,gBACR,WAAY,GACd,CACF,EACA,CACE,WAAY,iBACZ,UAAW,cACX,OAAQ,CACN,OAAQ,gBACR,WAAY,GACd,CACF,EACA,CACE,WAAY,0BACZ,UAAW,eACX,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,oHACvB,sBAAuB,oBACzB,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,WAAY,CACV,SAAU,CACR,aAAc,CACZ,QACA,MACF,CACF,EACA,SAAU,CACR,CACE,OACA,KACF,EACA,CACE,IACA,GACF,EACA,CACE,KACA,IACF,EACA,CACE,MACA,KACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,CACF,EACA,YAAa,kHACb,aAAc,CACZ,CACE,WAAY,CACV,QAAS,4IACT,MAAO,GACT,EACA,UAAW,CACT,QAAS,mCACT,MAAO,GACT,EACA,OAAQ,CACN,OAAQ,eACV,CACF,EACA,CACE,WAAY,CACV,QAAS,oIACT,MAAO,GACT,EACA,OAAQ,CACN,OAAQ,QACV,CACF,CACF,CACF,EACA,IAAK,CACH,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,KACN,MAAO,KACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,MACN,MAAO,MACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,YAAa,2HACb,QAAS,CACP,QAAS,CACP,MAAO,4BACP,IAAK,8BACP,CACF,EACA,iBAAkB,CAChB,sBAAuB,CACrB,QAAS,qBACX,EACA,sBAAuB,CACrB,QAAS,oCACX,CACF,EACA,aAAc,CACZ,CACE,iBAAkB,2DAClB,WAAY,4BACZ,OAAQ,CACN,OAAQ,SACV,CACF,EACA,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,MAAO,CACL,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,CACX,QAAS,IACT,SAAU,EACZ,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,CACF,EACA,YAAa,CACX,SAAU,CACR,YAAa,GACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,0BACP,IAAK,4BACP,CACF,CACF,EACA,SAAU,CACR,SAAU,CACR,aAAc,CACZ,OACA,KACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,sBAAuB,CAAC,EACxB,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,GACT,QAAS,CACP,MAAO,gCACP,IAAK,kCACP,CACF,EACA,YAAa,CACX,QAAS,mKACT,MAAO,IACT,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,GACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,GACT,QAAS,CACP,MAAO,sBACP,IAAK,wBACP,CACF,EACA,iBAAkB,CAChB,sBAAuB,sDACvB,sBAAuB,WACzB,CACF,EACA,OAAQ,CACN,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,kBACP,IAAK,oBACP,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,cACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,EACA,CACE,WAAY,CACV,QAAS,UACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,MACd,CACF,CACF,CACF,EACA,MAAO,CACL,SAAU,CACR,YAAa,IACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,eACP,IAAK,iBACP,CACF,EACA,iBAAkB,CAChB,sBAAuB,6QACvB,sBAAuB,4CACzB,CACF,EACA,IAAK,CACH,SAAU,CACR,YAAa,MACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,CACP,MAAO,gCACP,IAAK,kCACP,CACF,CACF,EACA,OAAQ,CACN,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,aAAc,CACZ,SAAU,CACR,YAAa,IACb,aAAc,CACZ,MACA,KACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,QAAS,CACP,QAAS,GACT,QAAS,CACP,MAAO,kBACP,IAAK,oBACP,CACF,CACF,EACA,WAAY,CACV,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,KACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,SACA,SACF,CACF,EACA,CACE,KAAM,MACN,MAAO,MACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,gBAAiB,iBACjB,QAAS,CACP,QAAS,CACP,MAAO,yBACP,IAAK,2BACP,CACF,EACA,YAAa,CACX,QAAS,qHACX,EACA,iBAAkB,CAChB,sBAAuB,CACrB,QAAS,qBACX,EACA,sBAAuB,CACrB,QAAS,oCACX,EACA,sBAAuB,CACrB,QAAS,oGACX,EACA,sBAAuB,CACrB,QAAS,4EACX,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,sCACX,EACA,UAAW,CACT,QAAS,YACX,EACA,OAAQ,CACN,OAAQ,gBACR,WAAY,KACd,CACF,EACA,CACE,WAAY,CACV,QAAS,sCACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,EACA,CACE,WAAY,CACV,QAAS,4CACX,EACA,iBAAkB,CAChB,QAAS,8CACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,IACd,CACF,EACA,CACE,WAAY,CACV,QAAS,yBACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,CACd,CACF,EACA,CACE,WAAY,CACV,QAAS,iCACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,CACd,CACF,EACA,CACE,WAAY,CACV,QAAS,mCACX,EACA,UAAW,CACT,QAAS,qCACX,EACA,OAAQ,CACN,OAAQ,QACV,CACF,EACA,CACE,iBAAkB,2DAClB,WAAY,4BACZ,OAAQ,CACN,OAAQ,SACV,CACF,EACA,CACE,WAAY,iBACZ,UAAW,cACX,OAAQ,CACN,OAAQ,gBACR,WAAY,GACd,CACF,EACA,CACE,WAAY,iBACZ,UAAW,cACX,OAAQ,CACN,OAAQ,gBACR,WAAY,GACd,CACF,EACA,CACE,WAAY,iBACZ,UAAW,cACX,OAAQ,CACN,OAAQ,gBACR,WAAY,GACd,CACF,EACA,CACE,WAAY,0BACZ,UAAW,eACX,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,CACF,EACA,iBAAkB,CAChB,SAAU,CACR,YAAa,IACf,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,GACT,EACA,CACE,KAAM,IACN,MAAO,GACT,CACF,EACA,gBAAiB,YACjB,aAAc,CACZ,CACE,WAAY,iCACZ,OAAQ,CACN,OAAQ,QACV,CACF,CACF,EACA,YAAa,mBACf,EACA,cAAe,CACb,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,aAAc,CACZ,CACE,WAAY,CACV,QAAS,MACX,EACA,UAAW,CACT,QAAS,cACX,EACA,OAAQ,CACN,OAAQ,OACR,WAAY,KACd,CACF,CACF,CACF,EACA,KAAM,CACJ,SAAU,CACR,YAAa,IACb,aAAc,CACZ,SACA,MACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,EACA,CACE,KAAM,IACN,MAAO,IACP,MAAO,CACL,QACF,CACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,sBAAuB,4MACvB,sBAAuB,kGACzB,CACF,EACA,IAAK,CACH,SAAU,CACR,YAAa,KACb,aAAc,CACZ,KACA,IACF,CACF,EACA,SAAU,CACR,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,CACF,EACA,iBAAkB,CAChB,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,IACA,GACF,EACA,CACE,KAAM,IACN,MAAO,I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","names":["__create","__defProp","__getOwnPropDesc","__getOwnPropNames","__getProtoOf","__hasOwnProp","__esm","fn","res","__commonJS","cb","mod","__copyProps","to","from","except","desc","key","__toESM","isNodeMode","target","getNLSMessages","getNLSLanguage","init_nls_messages","_format","message","args","result","match2","rest","index","arg","result2","isPseudo","localize","data","lookupMessage","fallback2","localize2","originalMessage","value","init_nls","ensureCodeWindow","targetWindow","fallbackWindowId","codeWindow","mainWindow","init_window","addMatchMediaChangeListener","query","callback","getZoomFactor","WindowManager","isStandalone","standalone","userAgent","isFirefox","isWebKit","isChrome","isSafari","isWebkitWebView","isElectron","isAndroid","init_browser","_WindowManager","standaloneMatchMedia","fullScreenMatchMedia","matches","onBugIndicatingError","e","errorHandler","onUnexpectedError","isCancellationError","onUnexpectedExternalError","transformErrorForSerialization","error","name","cause","stack","ErrorNoTelemetry","CancellationError","canceledName","canceled","illegalArgument","illegalState","ErrorHandler","NotSupportedError","BugIndicatingError","init_errors","listener","_ErrorNoTelemetry","msg","err","_BugIndicatingError","ok","assertNever","assert","condition","messageOrError","softAssert","assertFn","checkAdjacentItems","items","predicate","i2","a","b","init_assert","isString","str","isObject","obj","isTypedArray","TypedArray","isNumber","isIterable","isBoolean","isUndefined","isDefined","isUndefinedOrNull","assertType","type","assertReturnsDefined","isFunction","validateConstraints","constraints","len","validateConstraint","constraint","init_types","__esm","init_assert","isLittleEndian","_isLittleEndianComputed","test","_isLittleEndian","LANGUAGE_DEFAULT","_isWindows","_isMacintosh","_isLinux","_isLinuxSnap","_isNative","_isWeb","_isElectron","_isIOS","_isCI","_isMobile","_locale","_language","_platformLocale","_translationsConfigFile","_userAgent","$globalThis","nodeProcess","isElectronProcess","isElectronRenderer","_platform","isWindows","isMacintosh","isLinux","isNative","isWeb","isWebWorker","webWorkerOrigin","isIOS","isMobile","platform","userAgent2","language","setTimeout0IsFaster","setTimeout0","OS","isChrome2","isFirefox2","isSafari2","isEdge","isAndroid2","init_platform","init_nls","rawNlsConfig","nlsConfig","getNLSLanguage","pending","e","i2","len","candidate","lastId","callback","myId","BrowserFeatures","init_canIUse","init_browser","init_window","isStandalone","isSafari","mainWindow","KeyChord","firstPart","secondPart","chordPart","KeyCodeStrMap","uiMap","userSettingsUSMap","userSettingsGeneralMap","EVENT_KEY_CODE_MAP","NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE","scanCodeIntToStr","scanCodeStrToInt","scanCodeLowerCaseStrToInt","IMMUTABLE_CODE_TO_KEY_CODE","IMMUTABLE_KEY_CODE_TO_CODE","KeyCodeUtils","init_keyCodes","keyCode","str","mappings","seenKeyCode","seenScanCode","mapping","immutable","scanCode","scanCodeStr","keyCodeStr","eventKeyCode","vkey","usUserSettingsLabel","generalUserSettingsLabel","KeyCodeUtils2","toString","fromString","key","toUserSettingsUS","toUserSettingsGeneral","fromUserSettings","toElectronAccelerator","decodeKeybinding","keybinding","OS2","firstChord","secondChord","Keybinding","createSimpleKeybinding","chords","ctrlCmd","winCtrl","ctrlKey","shiftKey","altKey","metaKey","KeyCodeChord","ResolvedChord","ResolvedKeybinding","init_keybindings","init_errors","_KeyCodeChord","other","illegalArgument","keyLabel","keyAriaLabel","extractKeyCode","char","isFirefox","isWebKit","ctrlKeyMod","altKeyMod","shiftKeyMod","metaKeyMod","StandardKeyboardEvent","init_keyboardEvent","source","result","getParentWindowIfSameOrigin","w","location2","parentLocation","sameOriginWindowChainCache","IframeUtils","init_iframe","targetWindow","windowChainCache","parent","childWindow","ancestorWindow","top","left","windowChain","windowChainEl","windowInChain","boundingRect","StandardMouseEvent","StandardWheelEvent","init_mouseEvent","iframeOffsets","deltaX","deltaY","shouldFactorDPR","isChrome","chromeVersionMatch","e1","e2","devicePixelRatio","ev","createSingleCallFunction","fn","fnDidRunCallback","_this","didCall","init_functional","Iterable","init_iterator","Iterable2","is","thing","_empty2","empty2","single","element","wrap","iterableOrElement","from","iterable","reverse","array2","isEmpty","first2","some","predicate","every","find","filter","map","index","flatMap","concat4","iterables","item","isIterable","reduce","reducer","initialValue","value","length","count","_","slice","arr","from2","to","consume","atMost","consumed","iterator","next","asyncToArray","asyncToArrayFlat","setDisposableTracker","tracker","disposableTracker","trackDisposable","x","markAsDisposed","disposable","setParentOfDisposable","child","setParentOfDisposables","children","markAsSingleton","singleton","isDisposable","dispose","arg","errors","d","combinedDisposable","disposables","toDisposable","self2","TRACK_DISPOSABLES","DisposableStore","Disposable","MutableDisposable","RefCountedDisposable","ImmortalReference","DisposableMap","init_lifecycle","__is_disposable_tracked__","stack","_DisposableStore","o","_disposable","object","skipDisposeOnOverwrite","Node2","LinkedList","init_linkedList","_Node","node","atTheEnd","newNode","oldLast","oldFirst","didRemove","res","anchor","performanceNow","StopWatch","init_stopwatch","_StopWatch","highResolution","_enableDisposeWithListenerWarning","_enableSnapshotPotentialLeakWarning","Event","EventProfiling","_globalLeakWarningThreshold","LeakageMonitor","Stacktrace","ListenerLeakError","ListenerRefusalError","UniqueContainer","compactionThreshold","forEachListener","Emitter","createEventDeliveryQueue","EventDeliveryQueuePrivate","PauseableEmitter","DebounceEmitter","MicrotaskEmitter","EventMultiplexer","EventBufferer","Relay","init_event","Event2","_addLeakageTraceLogic","options2","origListenerDidAdd","defer","event","debounce","once","listener","thisArgs","didFire","onceIf","condition","map2","snapshot","forEach","each","filter2","signal","any","events","addAndReturnDisposable","merge","initial","output","emitter","store","delay","leading","flushOnListenerRemove","leakWarningThreshold","subscription","handle","numDebouncedCalls","doFire","cur","_output","accumulate","last","latch","equals3","a","b","firstCall","cache","shouldEmit","split","isT","buffer","flushAfterTimeout","_buffer","buffer2","flush","chain","sythensize","cs","ChainableSynthesis","HaltChainable","v","step","fromNodeEventEmitter","eventName","id","args","onFirstListenerAdd","onLastListenerRemove","fromDOMEventEmitter","toPromise","cancelRef","promise","resolve3","reject","forward","runAndSubscribe","handler","EmitterObserver","_observable","_change","fromObservable","obs","fromObservableLight","observable","didChange","observer","_EventProfiling","name","listenerCount","elapsed","_LeakageMonitor","_errorHandler","threshold","topStack","topCount","message","error","count2","_Stacktrace","err","listeners","l","onUnexpectedError","tuple","contained","removeMonitor","adjustDeliveryQueue","n2","errorHandler2","dq","end","idx","r","data","reduceData","cancelOnDispose","CancellationTokenSource","shortcutEvent","CancellationToken","MutableToken","init_cancellation","context","CancellationToken2","isCancellationToken","cancel","MicrotaskDelay","init_symbols","isThenable","obj","createCancelablePromise","thenable","isCancelled","CancellationError","onfinally","raceCancellation","token","defaultValue","ref","raceCancellationError","timeout","millis","token2","disposableTimeout","timeout2","timer","first","promiseFactories","shouldStop","t","loop","factory","createCancelableAsyncIterableProducer","innerIterable","CancelableAsyncIterableProducer","Throttler","timeoutDeferred","microtaskDeferred","Delayer","ThrottledDelayer","TaskQueue","TimeoutTimer","IntervalTimer","RunOnceScheduler","runWhenGlobalIdle","_runWhenIdle","AbstractIdleValue","GlobalIdleValue","DeferredPromise","Promises","AsyncIterableObject","ProducerConsumer","AsyncIterableProducer","AsyncReaderEndOfStream","init_async","promiseFactory","onComplete","scheduled","defaultDelay","task","task2","deferred","BugIndicatingError","tasks","runner","interval","safeGlobal","_targetWindow","disposed","executor","c","Promises2","settled","promises","firstError","withAsyncBody","bodyFn","_AsyncIterableObject","items","writer","p","onReturn","mapFn","filterFn","values","_AsyncIterableProducer","_onReturn","_source","identity","LRUCachedFunction","CachedFunction","init_cache","arg1","arg2","LazyValueState","Lazy","init_lazy","LazyValueState2","isFalsyOrWhitespace","format","_formatRegexp","match2","group","htmlAttributeEncodeValue","ch","escape","html3","escapeRegExpCharacters","trim","haystack","needle","trimmed","ltrim","rtrim","needleLen","offset","haystackLen","convertSimple2RegExpPattern","pattern","stripWildcards","createRegExp","searchString","isRegex","modifiers","regExpLeadsToEndlessLoop","regexp","splitLines","firstNonWhitespaceIndex","chCode","getLeadingWhitespace","start","lastNonWhitespaceIndex","startIndex","compare","compareSubstring","aStart","aEnd","bStart","bEnd","codeA","codeB","aLen","bLen","compareIgnoreCase","compareSubstringIgnoreCase","isLowerAsciiLetter","diff","isAsciiDigit","code","isUpperAsciiLetter","equalsIgnoreCase","startsWithIgnoreCase","candidateLength","commonPrefixLength","commonSuffixLength","aLastIndex","bLastIndex","isHighSurrogate","charCode","isLowSurrogate","computeCodePoint","highSurrogate","lowSurrogate","getNextCodePoint","nextCharCode","getPrevCodePoint","prevCharCode","nextCharLength","initialOffset","GraphemeIterator","prevCharLength","getCharContainingOffset","endOffset","makeContainsRtl","containsRTL","CONTAINS_RTL","isBasicASCII","IS_BASIC_ASCII","containsUnusualLineTerminators","UNUSUAL_LINE_TERMINATORS","isFullWidthCharacter","isEmojiImprecise","startsWithUTF8BOM","containsUppercaseCharacter","target","ignoreEscapedChars","singleLetterHash","breakBetweenGraphemeBreakType","breakTypeA","breakTypeB","getGraphemeBreakRawData","getLeftDeleteOffset","emojiOffset","getOffsetBeforeLastEmojiComponent","CodePointIterator","codePoint","isEmojiModifier","resultOffset","CSI_SEQUENCE","OSC_SEQUENCE","ESC_SEQUENCE","CONTROL_SEQUENCES","UTF8_BOM_CHARACTER","GraphemeBreakTree","noBreakWhitespace","AmbiguousCharacters","InvisibleCharacters","init_strings","graphemeBreakTree","graphemeBreakType","nextGraphemeBreakType","prevGraphemeBreakType","_GraphemeBreakTree","nodeCount","nodeIndex","_AmbiguousCharacters","locales","arrayToMap","mergeMaps","map1","intersectMaps","filteredLocales","languageSpecificMap","locale","commonMap","k","confusableDictionary","_InvisibleCharacters","safeProcess","vscodeGlobal","cwd","env","platform2","init_process","sandboxProcess","validateObject","pathObject","ErrorInvalidArgType","validateString","isPathSeparator","CHAR_FORWARD_SLASH","CHAR_BACKWARD_SLASH","isPosixPathSeparator","isWindowsDeviceRoot","CHAR_UPPERCASE_A","CHAR_UPPERCASE_Z","CHAR_LOWERCASE_A","CHAR_LOWERCASE_Z","normalizeString","path","allowAboveRoot","separator2","isPathSeparator3","lastSegmentLength","lastSlash","dots","CHAR_DOT","lastSlashIndex","formatExt","ext","_format2","sep2","dir","base","CHAR_COLON","CHAR_QUESTION_MARK","platformIsWin32","win32","posixCwd","posix","normalize","resolve","relative","dirname","basename","extname","sep","init_path","expected","actual","determiner","type","msg","pathSegments","resolvedDevice","resolvedTail","resolvedAbsolute","rootEnd","device","isAbsolute","j","tail2","paths","joined","needsReplace","slashCount","firstLen","fromOrig","toOrig","fromSplit","toSplit","fromLen2","toLen2","length2","i3","fromStart","fromEnd","fromLen","toStart","toEnd","toLen","lastCommonSep","fromCode","out","resolvedPath","matchedSlash","suffix","extIdx","firstNonSlashEnd","startDot","startPart","preDotState","ret","cwd2","trailingSeparator","hasRoot","start2","_validateUri","_strict","_schemePattern","_singleSlashStart","_doubleSlashStart","_schemeFix","scheme","_referenceResolution","_slash","encodeURIComponentFast","uriComponent","isPath","isAuthority","nativeEncodePos","pos","escaped","encodeTable","encodeURIComponentMinimal","uriToFsPath","uri","keepDriveLetterCasing","_asFormatted","skipEncoding","encoder","authority","query","fragment","userinfo","decodeURIComponentGraceful","percentDecode","_rEncodedAsHex","_empty","_regexp","URI","_pathSepMarker","Uri","init_uri","_URI","schemeOrData","change","components","strict","pathFragment","newPath","matchesScheme","matchesSomeScheme","schemes","Schemas","connectionTokenQueryName","RemoteAuthoritiesImpl","RemoteAuthorities","VSCODE_AUTHORITY","FileAccessImpl","FileAccess","CacheControlheaders","DocumentPolicyheaders","COI","init_network","Schemas2","schema","host","port","connectionToken","_FileAccessImpl","COI2","coiHeaders","coiSearchParamName","getHeadersFromQuery","url","params","addSearchParam","urlOrSearch","coop","coep","readUInt16LE","writeUInt16LE","destination","readUInt32BE","writeUInt32BE","readUInt8","writeUInt8","encodeHex","byte","hexChars","hasBuffer","indexOfTable","textDecoder","VSBuffer","init_buffer","_VSBuffer","hash","doHash","hashVal","numberHash","arrayHash","objectHash","stringHash","booleanHash","val","initialHashVal","s","leftRotate","bits","totalBits","delta","mask","toHexString","bufferOrValue","bitsize","StringSHA1","init_hash","_StringSHA1","strLen","buff","buffLen","leftoverHighSurrogate","ml","bigBlock32","f","temp","getDebugName","cached","cachedDebugName","dbgName","computeDebugName","countPerName","ownerStr","formatOwner","debugNameSource","referenceFn","getFunctionName","findKey","owner","ownerId","className2","getClassName","countPerClassName","ctor","fnSrc","DebugNameData","init_debugName","tail","equals","one","itemEquals2","removeFastWithoutKeepingOrder","binarySearch","comparator","binarySearch2","compareToKey","low","high","mid","comp","quickSelect","nth","compare2","pivotValue","lower","higher","pivots","groupBy","currentGroup","groupAdjacentBy","shouldBeGrouped","forEachAdjacent","forEachWithNeighbors","coalesce","coalesceInPlace","isFalsyOrEmpty","isNonEmptyArray","distinct","keyFn","seen","range","arrayInsert","insertIndex","insertArr","before","after2","pushToStart","pushToEnd","pushMany","asArray","insertInto","newItems","startIdx","getActualStartIndex","originalLength","newItemsLength","splice","deleteCount","compareBy","selector","tieBreakComparators","comparators","item1","item2","CompareResult","reverseOrder","compareUndefinedSmallest","sum","acc","numberComparator","booleanComparator","ArrayQueue","CallbackIterable","Permutation","init_arrays","CompareResult2","isLessThan","isLessThanOrEqual","isGreaterThan","isNeitherLessOrGreaterThan","endIdx","_CallbackIterable","_callback","iterate","cb","_Permutation","_indexMap","compareFn","sortIndices","index1","index2","inverseIndexMap","itemsEquals","strictEquals","itemEquals","equalsIfDefined","equalsOrV1","v2","v1","equals4","v22","structuralEquals","aObj","bObj","keysA","keysB","keysBSet","init_equals","init_deps","handleBugIndicatingErrorRecovery","init_base","addLogger","logger","globalObservableLogger","ComposedLogger","getLogger","setLogObservableFn","globalObservableLoggerFn","init_logging","loggers","newCount","info","autorun2","derived2","transaction2","transaction","getDebugName2","tx","TransactionImpl","globalTransaction","_globalTransaction","asyncTransaction","subtransaction","init_transaction","_fn","_getDebugName","updatingObservers","parseLine","stackLine","match22","DebugLocation","DebugLocationImpl","init_debugLocation","DebugLocation2","enabled","enable","ofCaller","Err","_DebugLocationImpl","parentIdx","lines","fileName","line","column","_setDerivedOpts","_derived","_setRecomputeInitiallyAndOnChange","recomputeInitiallyAndOnChange2","_recomputeInitiallyAndOnChange","_setKeepObserved","keepObserved2","_keepObserved","ConvenientObservable","BaseObservable","init_baseObservable","reader","fnOrOwner","fnOrUndefined","debugLocation","handleValue","deleted","observableValue","nameOrOwner","debugNameData","ObservableValue","disposableObservableValue","DisposableObservableValue","init_observableValue","_debugNameData","_equalityComparator","_tx","oldValue","newValue","LazyObservableValue","init_lazyObservableValue","observers","shouldCallBeginUpdate","shouldCallEndUpdate","change2","observableValueOpts","init_observableValueOpts","AutorunObserver","init_autorunImpl","_runFn","_changeTracker","emptySet","changeSummary","delayedStore","onBugIndicatingError","assertFn","autorun","autorunOpts","autorunHandleChanges","autorunWithStoreHandleChanges","autorunWithStore","autorunDelta","_lastValue","lastValue","init_autorun","Derived","DerivedWithSetter","init_derivedImpl","_computeFn","_handleLastObserverRemoved","hadValue","propagateBeginUpdate","observers2","shouldReact","wasUpToDate","computeFn","changeTracker","handleLastObserverRemoved","equalityComparator","set","derived","computeFnOrOwner","derivedWithSetter","setter","derivedOpts","derivedHandleChanges","derivedDisposable","computeFnOrUndefined","init_derived","ObservablePromise","PromiseResult","init_promise","init_cancellation2","waitForState","isError","cancellationToken","state","isImmediateRun","shouldDispose","stateObs","isFinished","dc","init_utilsCancellation","observableFromEvent","getValue","FromEventObservable","observableFromEventOpts","init_observableFromEvent","_getValue","_getTransaction","didRunTransaction","observableFromEvent2","batchEventsGlobally","didSet","observableSignal","debugNameOrOwner","ObservableSignal","init_observableSignal","_debugName","_owner","tx2","debouncedObservable","debounceMs","hasValue","keepObserved","KeepAliveObserver","recomputeInitiallyAndOnChange","derivedObservableWithCache","mapObservableArrayCached","keySelector","m","ArrayMap","init_utils","_forceRecompute","_handleValue","_map","_keySelector","entry","itemsToRemove","recordChanges","_previousChangeSummary","ctx","recordChangesLazy","getObs","init_changeTracker","constObservable","ConstObservable","init_constObservable","observableSignalFromEvent","FromEventObservableSignal","init_observableSignalFromEvent","debugNameDataOrName","init_valueWithChangeEvent","runOnChange","_previousValue","_firstRun","previousValue","runOnChangeWithStore","deltas","runOnChangeWithCancellationToken","init_runOnChange","derivedConstOnceDefined","init_utils2","logObservableToConsole","consoleObservableLogger","ConsoleObservableLogger","consoleTextToArgs","text2","styles","firstArg","process2","normalText","styled","formatKind","kind","padStr","objToCss","styleObj","styleString","propName","propValue","style","formatValue","availableLen","formatArray","formatObject","repeat","init_consoleObservableLogger","updating","existingBeginUpdate","existingEndUpdate","changes","changedObservables","transactionName","SimpleTypedRpcConnection","init_rpc","_SimpleTypedRpcConnection","channelFactory","getHandler","_channelFactory","_getHandler","notificationData","requestData","requests","notifications","registerDebugChannel","channelId","createClient","g","queuedNotifications","curHost","channel","createChannelFactoryFromDebugChannel","curClient","h2","init_debuggerRpc","deepAssign","deepAssignDeleteNulls","Throttler2","init_utils3","timeoutMs","DevToolsLogger","init_devToolsLogger","_DevToolsLogger","affected","txs","observerQueue","processedObservers","queue","observersToUpdate","observerState","changedDependencies","isDefined","autorunInfo","declarationIds","observableId","decl","instanceId","d2","jsonValue","update","decInfo","changeInfo","formattedValue","enableLogging","init_observableInternal","init_observable","clearNode","addDisposableListener","useCaptureOrOptions","DomListener","_wrapAsStandardMouseEvent","_wrapAsStandardKeyboardEvent","addDisposableGenericMouseDownListener","useCapture","EventType","addDisposableGenericMouseMoveListener","addDisposableGenericMouseUpListener","runWhenWindowIdle","getComputedStyle","el","getWindow","getClientArea","fallbackElement","elWindow","elDocument","Dimension","getTopLeftOffset","offsetParent","isShadowRoot","SizeUtils","size","width2","height","getDomNodePagePosition","domNode","bb","window2","getDomNodeZoomLevel","testElement","zoom","elementZoomLevel","getTotalWidth","margin","getContentWidth","border","padding","getContentHeight","getTotalHeight","isAncestor","testChild","testAncestor","findParentWithClass","clazz","stopAtClazzOrNode","hasParentWithClass","isInShadowDOM","getShadowRoot","getActiveElement","getActiveDocument","isActiveElement","isAncestorOfActiveElement","ancestor","getWindowsCount","getWindows","doc","getActiveWindow","isHTMLElement","isHTMLAnchorElement","isSVGElement","isMouseEvent","isKeyboardEvent","isEventLike","saveParentsScrollTop","restoreParentsScrollTop","trackFocus","FocusTracker","after","sibling","append","prepend","reset","_$","namespace","description","attrs","SELECTOR_REGEX","tagName","Namespace","$","setVisibility","visible","elements","show","hide","computeScreenAwareSize","cssPx","screenPx","windowOpenNoOpener","animate","stepDisposable","scheduleAtNextAnimationFrame","h","tag2","attributes","H_REGEX","classNames2","cssKey","cssValue","camelCaseToHyphenCase","isEditableElement","setClassName","resolve2","isObservable","getClassName2","hasObservable","convertCssValue","childrenIsObservable","setOrRemoveAttribute","registerWindow","getDocument","getWindowId","getWindowById","hasWindow","onDidRegisterWindow","onWillUnregisterWindow","onDidUnregisterWindow","addStandardDisposableListener","addStandardDisposableGenericMouseDownListener","WindowIdleValue","runAtThisOrScheduleAtNextAnimationFrame","WindowIntervalTimer","AnimationFrameQueueItem","sharedMutationObserver","EventHelper","ModifierKeyEmitter","DragAndDropObserver","n","ObserverNode","LiveElement","ObserverNodeWithElement","init_dom","windows","ensureCodeWindow","mainWindowRegistration","onDidRegisterWindow2","onDidUnregisterWindow2","onWillUnregisterWindow2","getWindowById2","windowId","fallbackToMain","registeredWindow","candidateNode","candidateEvent","wrapHandler","priority","NEXT_QUEUE","CURRENT_QUEUE","animFrameRequested","inAnimationFrameRunner","animationFrameRunner","targetWindowId","currentQueue","nextQueue","_SizeUtils","cssPropertyName","computedStyle","_Dimension","mutationObserversPerTarget","optionsHash","mutationObserverPerOptions","onDidMutate","mutations","resolvedMutationObserverPerOptions","cancelBubble","_FocusTracker","shadowRoot","activeElement","hasFocus","loosingFocus","onFocus","onBlur","Namespace2","_ModifierKeyEmitter","callbacks","nodeNs","elementNs","ref2","obsRef","_ObserverNode","ns","_reader","key2","getChildren","children2","hovered","_e","_hovering","storeServiceDependency","_util","createDecorator","serviceId","IInstantiationService","init_instantiation","_util2","getServiceDependencies","ICodeEditorService","init_codeEditorService","Position","init_position","_Position","lineNumber","newLineNumber","newColumn","deltaLineNumber","deltaColumn","aLineNumber","bLineNumber","aColumn","bColumn","IModelService","init_model","ITextModelService","init_resolverService","toAction","props","Action","ActionRunner","Separator","SubmenuAction","EmptySubmenuAction","init_actions","label","cssClass","actionCallback","action","_Separator","actionLists","list2","actions","_EmptySubmenuAction","localize","register","fontCharacter","isString","_codiconFontCharacters","getCodiconFontCharacters","init_codiconsUtil","codiconsLibrary","init_codiconsLibrary","codiconsDerived","Codicon","init_codicons","ThemeColor","ThemeIcon","init_themables","ThemeColor2","isThemeColor","ThemeIcon2","ThemeIconIdRegex","asClassNameArray","icon","modifier","asClassName","asCSSSelector","isThemeIcon","_regexFromString","fromId","modify","tildeIndex","getModifier","isEqual2","ti1","ti2","ICommandService","CommandsRegistry","init_commands","idOrCommand","constraints","actualHandler","accessor","validateConstraints","commands","removeFn","oldId","newId","command","hintDidYouMean","meant","hintDidYouForgetToOpenOrCloseQuote","hintDidYouForgetToEscapeSlash","Scanner","init_scanner","_Scanner","illegalState","isTripleEq","additional","lexeme","errToken","keyword","inEscape","inCharacterClass","expressionsAreEqualWithConstantSubstitution","aExpr","bExpr","cmp","withFloatOrStr","ContextKeyFalseExpr","eliminateConstantsInArray","newArr","newExpr","cmp1","key1","cmp2","value1","value2","implies","q","allElementsIncluded","pIndex","qIndex","cmp3","getTerminals","CONSTANT_VALUES","hasOwnProperty","defaultConfig","errorEmptyString","hintEmptyString","errorNoInAfterNot","errorClosingParenthesis","errorUnexpectedToken","hintUnexpectedToken","errorUnexpectedEOF","hintUnexpectedEOF","Parser","ContextKeyExpr","ContextKeyTrueExpr","ContextKeyDefinedExpr","ContextKeyEqualsExpr","ContextKeyInExpr","ContextKeyNotInExpr","ContextKeyNotEqualsExpr","ContextKeyNotExpr","ContextKeyGreaterExpr","ContextKeyGreaterEqualsExpr","ContextKeySmallerExpr","ContextKeySmallerEqualsExpr","ContextKeyRegexExpr","ContextKeyNotRegexExpr","ContextKeyAndExpr","ContextKeyOrExpr","RawContextKey","IContextKeyService","init_contextkey","_Parser2","_config","input","expr","peek","additionalInfo","right","regexLexeme","closingSlashIndex","flags","lexemeReconstruction","followingToken","parenBalance","serializedValue","regex","caseIgnoreFlag","got","serialized","_ContextKeyFalseExpr","_ContextKeyTrueExpr","_ContextKeyDefinedExpr","negated","constantValue","_ContextKeyEqualsExpr","trueValue","_ContextKeyInExpr","valueKey","_ContextKeyNotInExpr","_ContextKeyNotEqualsExpr","falseValue","_ContextKeyNotExpr","_ContextKeyGreaterExpr","_value","_ContextKeyGreaterEqualsExpr","_ContextKeySmallerExpr","_ContextKeySmallerEqualsExpr","_ContextKeyRegexExpr","thisSource","otherSource","_ContextKeyNotRegexExpr","_actual","_ContextKeyAndExpr","_expr","extraRedundantCheck","exprArr","hasTrue","lastElement","secondToLastElement","resultElement","_ContextKeyOrExpr","hasFalse","LEFT","RIGHT","all","_RawContextKey","metaOrHide","RegistryImpl","Registry","init_platform2","ok","isObject","isFunction","sorter","KeybindingsRegistryImpl","KeybindingsRegistry","Extensions","init_keybindingsRegistry","_KeybindingsRegistryImpl","kb","rule","actualKb","kk","desc","commandId","commandArgs","weight1","weight22","when","remove","isIMenuItem","isISubmenuItem","registerAction2","f1","menu","MenuRegistry","MenuId","__decorate","__param","MenuItemAction_1","IMenuService","MenuRegistryChangeEvent","SubmenuItemAction","MenuItemAction","Action2","init_actions2","decorators","paramIndex","decorator","_MenuId","identifier","_MenuRegistryChangeEvent","ids","rm","hideActions","alt","menuKeybinding","contextKeyService","_commandService","toggled","runArgs","ITelemetryService","init_telemetry","isEntries","_a","_b","_c","ResourceMapEntry","ResourceMap","ResourceSet","LinkedMap","Cache","LRUCache","BidirectionalMap","SetMap","NKeyMap","init_map","_ResourceMap","resource","toKey","clb","thisArg","entriesOrKey","callbackfn","touch","current","newSize","currentSize","previous","limit","ratio","entries2","keys","currentMap","printMap","depth","isPathSeparator2","toSlashes","osPath","toPosixPath","getRoot","firstLetter","pos2","isWindowsDriveLetter","isEqualOrParent","parentCandidate","ignoreCase","sepOffset","char0","hasDriveLetter","isWindowsOS","init_extpath","originalFSPath","ExtUri","extUri","extUriBiasedIgnorePathCase","extUriIgnorePathCase","isEqual","isEqualOrParent2","getComparisonKey","basenameOrAuthority","basename2","extname2","dirname2","joinPath","normalizePath","relativePath","resolvePath","isAbsolutePath","isEqualAuthority","hasTrailingPathSeparator","removeTrailingPathSeparator","addTrailingPathSeparator","DataUri","init_resources","_ignorePathCasing","uri1","uri2","ignoreFragment","dirname3","normalizedPath","relativePath2","fromPath","toPath","newURI","a1","a2","fsp","isRootSep","DataUri2","parseMetaData","dataUri","metadata","property","mime","canLog","loggerLevel","messageLevel","LogLevel","LogLevelToString","logLevel","ILogService","ILoggerService","DEFAULT_LOG_LEVEL","AbstractLogger","ConsoleLogger","MultiplexLogger","AbstractLoggerService","NullLogger","NullLoggerService","CONTEXT_LOG_LEVEL","init_log","LogLevel2","level","useColors","logsHome","loggerResources","loggerResource","resourceOrId","idOrResource","loggerEntry","visibility","existing","registerModelAndPositionCommand","instaService","position","assertType","model","editorPosition","reference","registerEditorCommand","editorCommand","EditorContributionRegistry","registerEditorAction","registerMultiEditorAction","registerInstantiatedEditorAction","editorAction","registerEditorContribution","instantiation","registerCommand","Command","MultiCommand","ProxyCommand","EditorCommand","EditorAction","MultiEditorAction","EditorAction2","EditorExtensionsRegistry","Extensions2","UndoCommand","RedoCommand","SelectAllCommand","init_editorExtensions","opts","kbOptsArr","kbOpts","kbWhen","implementation","logService","impl","_EditorCommand","controllerGetter","editor2","controller","precondition","codeEditorService","editorAccessor","accessor2","args2","_EditorAction","menuOpts","withDefaults","kbService","EditorExtensionsRegistry2","getEditorCommand","getEditorActions","getEditorContributions","getSomeEditorContributions","getDiffEditorContributions","_EditorContributionRegistry","Range","init_range","_Range","startLineNumber","startColumn","endLineNumber","endColumn","range2","otherRange","resultStartLineNumber","resultStartColumn","resultEndLineNumber","resultEndColumn","otherStartLineNumber","otherStartColumn","otherEndLineNumber","otherEndColumn","lineCount","aStartLineNumber","bStartLineNumber","aStartColumn","bStartColumn","aEndLineNumber","bEndLineNumber","aEndColumn","bEndColumn","Selection","init_selection","_Selection","selectionStartLineNumber","selectionStartColumn","positionLineNumber","positionColumn","direction","sel","createScopedLineTokens","tokenCount","tokenIndex","desiredLanguageId","lastTokenIndex","firstTokenIndex","ScopedLineTokens","ignoreBracketsInToken","standardTokenType","init_supports","languageId","firstCharOffset","lastCharOffset","CursorColumns","init_cursorColumns","_CursorColumns","visibleColumn","tabSize","lineContent","textLen","lineContentLength","beforeVisibleColumn","beforeColumn","afterVisibleColumn","afterColumn","beforeDelta","indentSize","_normalizeIndentationFromWhitespace","insertSpaces","spacesCnt","tabsCnt","normalizeIndentation","firstNonWhitespaceIndex2","init_indentation","safeIntl","init_date","toUint8","toUint32","init_uint","CharacterClassifier","CharacterSet","init_characterClassifier","_CharacterClassifier","_defaultValue","asciiMap","getMapForWordSeparators","wordSeparators2","intlSegmenterLocales","wordClassifierCache","WordCharacterClassifier","init_wordCharacterClassifier","segment","segments","deepClone","deepFreeze","obj2","_hasOwnProperty","prop","isTypedArray","cloneAndChange","changer","_cloneAndChange","isUndefinedOrNull","changed","r1","r2","mixin","overwrite","equals2","oneKeys","otherKeys","init_objects","isITextSnapshot","shouldSynchronizeModel","OverviewRulerLane","GlyphMarginLane","TextDirection","InjectedTextCursorStops","TextModelResolvedOptions","FindMatch","ValidAnnotatedEditOperation","SearchData","ApplyEditsResult","init_model2","OverviewRulerLane3","GlyphMarginLane3","TextDirection3","InjectedTextCursorStops3","src","newOpts","matches","forceMoveMarkers","isAutoWhitespaceEdit","_isTracked","simpleSearch","reverseEdits","trimAutoWhitespaceLineNumbers","appendEntry","IndentAction","StandardAutoClosingPairConditional","AutoClosingPairs","init_languageConfiguration","IndentAction3","standardToken","fromCharCode","toCharCode","character","autoClosingPairs","pair","createWordRegExp","allowInWords","USUAL_WORD_SEPARATORS","ensureValidWordDefinition","wordDefinition","DEFAULT_WORD_REGEXP","getWordAtText","textOffset","config","_defaultConfig","t1","prevRegexIndex","regexIndex","thisMatch","_findRegexMatchEnclosingPosition","stopPos","matchIndex","init_wordHelper","CharacterPairSupport","init_characterPair","_CharacterPairSupport","docComment","forQuotes","getUTF16LE_TextDecoder","_utf16LE_TextDecoder","getUTF16BE_TextDecoder","_utf16BE_TextDecoder","getPlatformTextDecoder","_platformTextDecoder","decodeUTF16LE","view","compatDecodeUTF16LE","resultLen","StringBuilder","init_stringBuilder","capacity","bufferString","remainingSpace","groupFuzzyBrackets","brackets","N","areOverlapping","aOpen","aClose","bOpen","bClose","mergeGroups","g1","g2","newG","oldG","currentOpen","currentClose","open","close","collectSuperstrings","currentIndex","dest","bracket","lengthcmp","unique","getRegexForBracketPair","pieces","createBracketOrRegExp","getReversedRegexForBracketPair","toReversedString","getRegexForBrackets","getReversedRegexForBrackets","prepareBracketForRegExp","insertWordBoundaries","regexStr","RichEditBracket","RichEditBrackets","BracketsUtils","init_richEditBrackets","_RichEditBracket","forwardRegex","reversedRegex","_brackets","lastInput","lastOutput","reversedBracketRegex","reversedText","matchOffset","matchLength","absoluteMatchOffset","lineText","startOffset","reversedSubstr","bracketRegex","substr","BracketElectricCharacterSupport","init_electricCharacter","richEditBrackets","lastChar","bracketText","textBeforeBracket","resetGlobalRegex","reg","IndentRulesSupport","init_indentRules","indentationRules","OnEnterSupport","init_onEnter","_OnEnterSupport","openRegExp","closeRegExp","autoIndent","previousLineText","beforeEnterText","afterEnterText","def2","toValuesTree","properties","conflictReporter","root","addToValueTree","settingsTreeRoot","curr","removeFromValueTree","valueTree","doRemoveFromValueTree","getConfigurationValue","settingPath","accessSetting","config2","path2","component","getLanguageTagSettingPlainKey","settingKey","IConfigurationService","init_configuration","ILanguageService","init_language","SyncDescriptor","init_descriptors","staticArguments","supportsDelayedInstantiation","registerSingleton","ctorOrDescriptor","_registry","getSingletonServiceDescriptors","init_extensions","Mimes","init_mime","normalizeId","Extensions3","JSONContributionRegistry","jsonContributionRegistry","init_jsonContributionRegistry","unresolvedSchemaContent","normalizedUri","overrideIdentifiersFromKey","identifiers","OVERRIDE_PROPERTY_REGEX","OVERRIDE_IDENTIFIER_REGEX","getDefaultValue","validateProperty","configurationRegistry","Extensions4","allSettings","applicationSettings","applicationMachineSettings","machineSettings","machineOverridableSettings","windowSettings","resourceSettings","resourceLanguageSettingsSchemaId","contributionRegistry","ConfigurationRegistry","OVERRIDE_IDENTIFIER_PATTERN","OVERRIDE_PROPERTY_PATTERN","init_configurationRegistry","configuration","validate","configurations","configurationDefaults","bucket","overrideIdentifiers","overrides","configurationDefaultOverridesForKey","newDefaultOverride","overrideIdentifier","configurationValueObject","valueSource","existingDefaultOverride","propertyKey","propertyDefaultValue","isUndefined","objectKey","valuesSource","existingDefaultValue","extensionInfo","restrictedProperties","scope","excluded","policyName","subNodes","register4","configuration2","overrideIdentifierProperty","resourceLanguagePropertiesSchema","configurationdefaultOverride","defaultSource","Extensions5","EditorModesRegistry","ModesRegistry","PLAINTEXT_LANGUAGE_ID","PLAINTEXT_EXTENSION","init_modesRegistry","filterValidBrackets","bracketPairs","LanguageBracketsConfiguration","BracketKindBase","OpeningBracketKind","ClosingBracketKind","init_languageBracketsConfiguration","openingBracketInfos","closing","closingBracketInfos","opening","openingColorized","colorizedBracketPairs","openedBrackets","openingBrackets","openingColorizedBrackets","computeConfig","registry","configurationService","languageService","languageConfig","ResolvedLanguageConfiguration","customizedConfig","getCustomizedLanguageConfig","combineLanguageConfigurations","customizedLanguageConfigKeys","validateBracketPairs","getIndentationAtPosition","indentation","configs","__decorate2","__param2","LanguageConfigurationServiceChangeEvent","ILanguageConfigurationService","LanguageConfigurationService","ComposedLanguageConfiguration","LanguageConfigurationContribution","LanguageConfigurationChangeEvent","LanguageConfigurationRegistry","init_languageConfigurationRegistry","languageConfigKeys","globalConfigChanged","localConfigChanged","overrideLangName","order","_ResolvedLanguageConfiguration","underlyingConfig","conf","commentRule","comments","blockStart","blockEnd","TokenMetadata","init_encodedTokenAttributes","fontStyle","colorMap","foreground2","textDecoration","OffsetRange","OffsetRangeSet","init_offsetRange","_OffsetRange","endExclusive","sortedRanges","_OffsetRangeSet","intersection2","prev","getStandardTokenTypeAtPosition","lineTokens","LineTokens","SliceLineTokens","TokenArray","TokenInfo","TokenArrayBuilder","init_lineTokens","_LineTokens","decoder","defaultMetadata","tokens","fullText","lineTextLength","desiredIndex","sliceFromTokenIndex","sliceTokenCount","deltaOffset","insertTokens","nextOriginalTokenIdx","nextInsertTokenIdx","newTokens","originalEndOffset","nextOriginalTokenEndOffset","nextInsertToken","builder","startTokenIndex","endTokenIndex","_SliceLineTokens","tokenEndOffset","adjustedTokenIndex","tokenStartOffset","_TokenArray","tokenInfo","_tokenInfo","lengthSum","tokenStart","tokenEndEx","deltaBefore","deltaAfter","EditorContextKeys","init_editorContextKeys","EditorContextKeys2","ElementSizeObserver","init_elementSizeObserver","referenceDomElement","dimension","observedDimenstion","observeNow","shouldObserve","alreadyObservedThisAnimationFrame","emitEvent","observedWidth","observedHeight","EDITOR_MODEL_DEFAULTS","init_textModelDefaults","roundFloat","number","decimalPoints","decimal","RGBA","HSLA","HSVA","Color","init_color","_HSLA","rgba","max","min","chroma","hsla","_HSVA","cmax","cmin","hsva","_Color","hex","R","G","B","luminance","color","another","lum1","lum2","factor2","normalize2","thisRGBA","otherRGBA","opaqueBackground","of","relative2","Color2","Format","Format2","CSS2","CSS3","formatRGB","formatRGBA","formatHSL","formatHSLA","_toTwoDigitHex","formatHex","formatHexA","compact","format2","parse4","css","parseHex","parseNamedKeyword","_parseHexDigit","asCssVariableName","colorIdent","asCssVariable","asCssVariableWithDefault","defaultCssValue","isColorDefaults","registerColor","defaults","needsTransparency","deprecationMessage","colorRegistry","executeTransform","transform","theme","resolveColorValue","primaryColor","otherColor","backgroundColor","assertNever","darken","colorValue","lighten","transparent","oneOf","colorValues","ifDefinedThenElse","ifArg","thenArg","elseArg","lessProminent","backgroundColorValue","transparency","Extensions6","DEFAULT_COLOR_CONFIG_VALUE","ColorRegistry","workbenchColorsSchemaId","schemaRegistry","delayer","init_colorUtils","colorContribution","propertySchema","colorDesc","sorter2","cat1","cat2","foreground","disabledForeground","errorForeground","descriptionForeground","iconForeground","focusBorder","contrastBorder","activeContrastBorder","selectionBackground","textLinkForeground","textLinkActiveForeground","textSeparatorForeground","textPreformatForeground","textPreformatBackground","textBlockQuoteBackground","textBlockQuoteBorder","textCodeBlockBackground","init_baseColors","sashHoverBorder","badgeBackground","badgeForeground","activityWarningBadgeForeground","activityWarningBadgeBackground","activityErrorBadgeForeground","activityErrorBadgeBackground","scrollbarShadow","scrollbarSliderBackground","scrollbarSliderHoverBackground","scrollbarSliderActiveBackground","progressBarBackground","chartLine","chartAxis","chartGuide","init_miscColors","editorBackground","editorForeground","editorStickyScrollBackground","editorStickyScrollGutterBackground","editorStickyScrollHoverBackground","editorStickyScrollBorder","editorStickyScrollShadow","editorWidgetBackground","editorWidgetForeground","editorWidgetBorder","editorWidgetResizeBorder","editorErrorBackground","editorErrorForeground","editorErrorBorder","editorWarningBackground","editorWarningForeground","editorWarningBorder","editorInfoBackground","editorInfoForeground","editorInfoBorder","editorHintForeground","editorHintBorder","editorActiveLinkForeground","editorSelectionBackground","editorSelectionForeground","editorInactiveSelection","editorSelectionHighlight","editorSelectionHighlightBorder","editorCompositionBorder","editorFindMatch","editorFindMatchForeground","editorFindMatchHighlight","editorFindMatchHighlightForeground","editorFindRangeHighlight","editorFindMatchBorder","editorFindMatchHighlightBorder","editorFindRangeHighlightBorder","editorHoverHighlight","editorHoverBackground","editorHoverForeground","editorHoverBorder","editorHoverStatusBarBackground","editorInlayHintForeground","editorInlayHintBackground","editorInlayHintTypeForeground","editorInlayHintTypeBackground","editorInlayHintParameterForeground","editorInlayHintParameterBackground","editorLightBulbForeground","editorLightBulbAutoFixForeground","editorLightBulbAiForeground","snippetTabstopHighlightBackground","snippetTabstopHighlightBorder","snippetFinalTabstopHighlightBackground","snippetFinalTabstopHighlightBorder","defaultInsertColor","defaultRemoveColor","diffInserted","diffRemoved","diffInsertedLine","diffRemovedLine","diffInsertedLineGutter","diffRemovedLineGutter","diffOverviewRulerInserted","diffOverviewRulerRemoved","diffInsertedOutline","diffRemovedOutline","diffBorder","diffDiagonalFill","diffUnchangedRegionBackground","diffUnchangedRegionForeground","diffUnchangedTextBackground","widgetShadow","widgetBorder","toolbarHoverBackground","toolbarHoverOutline","toolbarActiveBackground","breadcrumbsForeground","breadcrumbsBackground","breadcrumbsFocusForeground","breadcrumbsActiveSelectionForeground","breadcrumbsPickerBackground","headerTransparency","currentBaseColor","incomingBaseColor","commonBaseColor","contentTransparency","rulerTransparency","mergeCurrentHeaderBackground","mergeCurrentContentBackground","mergeIncomingHeaderBackground","mergeIncomingContentBackground","mergeCommonHeaderBackground","mergeCommonContentBackground","mergeBorder","overviewRulerCurrentContentForeground","overviewRulerIncomingContentForeground","overviewRulerCommonContentForeground","overviewRulerFindMatchForeground","overviewRulerSelectionHighlightForeground","problemsErrorIconForeground","problemsWarningIconForeground","problemsInfoIconForeground","init_editorColors","minimapFindMatch","minimapSelectionOccurrenceHighlight","minimapSelection","minimapInfo","minimapWarning","minimapError","minimapBackground","minimapForegroundOpacity","minimapSliderBackground","minimapSliderHoverBackground","minimapSliderActiveBackground","init_minimapColors","chartsForeground","chartsLines","chartsRed","chartsBlue","chartsYellow","chartsOrange","chartsGreen","chartsPurple","init_chartsColors","inputBackground","inputForeground","inputBorder","inputActiveOptionBorder","inputActiveOptionHoverBackground","inputActiveOptionBackground","inputActiveOptionForeground","inputPlaceholderForeground","inputValidationInfoBackground","inputValidationInfoForeground","inputValidationInfoBorder","inputValidationWarningBackground","inputValidationWarningForeground","inputValidationWarningBorder","inputValidationErrorBackground","inputValidationErrorForeground","inputValidationErrorBorder","selectBackground","selectListBackground","selectForeground","selectBorder","buttonForeground","buttonSeparator","buttonBackground","buttonHoverBackground","buttonBorder","buttonSecondaryForeground","buttonSecondaryBackground","buttonSecondaryHoverBackground","radioActiveForeground","radioActiveBackground","radioActiveBorder","radioInactiveForeground","radioInactiveBackground","radioInactiveBorder","radioInactiveHoverBackground","checkboxBackground","checkboxSelectBackground","checkboxForeground","checkboxBorder","checkboxSelectBorder","checkboxDisabledBackground","checkboxDisabledForeground","keybindingLabelBackground","keybindingLabelForeground","keybindingLabelBorder","keybindingLabelBottomBorder","init_inputColors","listFocusBackground","listFocusForeground","listFocusOutline","listFocusAndSelectionOutline","listActiveSelectionBackground","listActiveSelectionForeground","listActiveSelectionIconForeground","listInactiveSelectionBackground","listInactiveSelectionForeground","listInactiveSelectionIconForeground","listInactiveFocusBackground","listInactiveFocusOutline","listHoverBackground","listHoverForeground","listDropOverBackground","listDropBetweenBackground","listHighlightForeground","listFocusHighlightForeground","listInvalidItemForeground","listErrorForeground","listWarningForeground","listFilterWidgetBackground","listFilterWidgetOutline","listFilterWidgetNoMatchesOutline","listFilterWidgetShadow","listFilterMatchHighlight","listFilterMatchHighlightBorder","listDeemphasizedForeground","treeIndentGuidesStroke","treeInactiveIndentGuidesStroke","tableColumnsBorder","tableOddRowsBackgroundColor","editorActionListBackground","editorActionListForeground","editorActionListFocusForeground","editorActionListFocusBackground","init_listColors","menuBorder","menuForeground","menuBackground","menuSelectionForeground","menuSelectionBackground","menuSelectionBorder","menuSeparatorBackground","init_menuColors","quickInputBackground","quickInputForeground","quickInputTitleBackground","pickerGroupForeground","pickerGroupBorder","_deprecatedQuickInputListFocusBackground","quickInputListFocusForeground","quickInputListFocusIconForeground","quickInputListFocusBackground","init_quickpickColors","searchResultsInfoForeground","searchEditorFindMatch","searchEditorFindMatchBorder","init_searchColors","init_colorRegistry","isHighContrast","ColorScheme","isDark","ThemeTypeSelector","init_theme","ColorScheme2","ThemeTypeSelector2","prefixedUuid","generateUuid","init_uuid","_data","_hex","themeColorFromId","getThemeTypeSelector","registerThemingParticipant","participant","themingRegistry","IThemeService","Extensions7","ThemingRegistry","Themable","init_themeService","themeService","editorLineHighlight","editorLineHighlightBorder","editorRangeHighlight","editorRangeHighlightBorder","editorSymbolHighlight","editorSymbolHighlightBorder","editorCursorForeground","editorCursorBackground","editorMultiCursorPrimaryForeground","editorMultiCursorPrimaryBackground","editorMultiCursorSecondaryForeground","editorMultiCursorSecondaryBackground","editorWhitespaces","editorLineNumbers","deprecatedEditorIndentGuides","deprecatedEditorActiveIndentGuides","editorIndentGuide1","editorIndentGuide2","editorIndentGuide3","editorIndentGuide4","editorIndentGuide5","editorIndentGuide6","editorActiveIndentGuide1","editorActiveIndentGuide2","editorActiveIndentGuide3","editorActiveIndentGuide4","editorActiveIndentGuide5","editorActiveIndentGuide6","deprecatedEditorActiveLineNumber","editorActiveLineNumber","editorDimmedLineNumber","editorRuler","editorCodeLensForeground","editorBracketMatchBackground","editorBracketMatchBorder","editorOverviewRulerBorder","editorOverviewRulerBackground","editorGutter","editorUnnecessaryCodeBorder","editorUnnecessaryCodeOpacity","ghostTextBorder","ghostTextForeground","ghostTextBackground","rulerRangeDefault","overviewRulerRangeHighlight","overviewRulerError","overviewRulerWarning","overviewRulerInfo","editorBracketHighlightingForeground1","editorBracketHighlightingForeground2","editorBracketHighlightingForeground3","editorBracketHighlightingForeground4","editorBracketHighlightingForeground5","editorBracketHighlightingForeground6","editorBracketHighlightingUnexpectedBracketForeground","editorBracketPairGuideBackground1","editorBracketPairGuideBackground2","editorBracketPairGuideBackground3","editorBracketPairGuideBackground4","editorBracketPairGuideBackground5","editorBracketPairGuideBackground6","editorBracketPairGuideActiveBackground1","editorBracketPairGuideActiveBackground2","editorBracketPairGuideActiveBackground3","editorBracketPairGuideActiveBackground4","editorBracketPairGuideActiveBackground5","editorBracketPairGuideActiveBackground6","editorUnicodeHighlightBorder","editorUnicodeHighlightBackground","init_editorColorRegistry","collector","background","lineHighlight","imeBackground","findLast","fromIndex","findLastIdx","findLastMonotonous","findLastIdxMonotonous","endIdxEx","findFirstMonotonous","findFirstIdxMonotonousOrArrLen","findFirstMax","findLastMax","findFirstMin","findMaxIdx","maxIdx","mapFindFirst","mapped","MonotonousArray","init_arraysFind","_MonotonousArray","_array","TextModelPart","init_textModelPart","computeIndentLevel","indent","init_utils4","HorizontalGuidesState","IndentGuide","IndentGuideHorizontalLine","init_textModelGuides","HorizontalGuidesState2","horizontalLine","forWrappedLinesAfterColumn","forWrappedLinesBeforeOrAtColumn","GuidesTextModelPart","BracketPairGuidesClassNames","init_guidesTextModelPart","textModel","languageConfigurationService","lineIndex","minLineNumber","maxLineNumber","foldingRules","offSide","up_aboveContentLineIndex","up_aboveContentLineIndent","up_belowContentLineIndex","up_belowContentLineIndent","up_resolveIndents","lineNumber2","indent2","down_aboveContentLineIndex","down_aboveContentLineIndent","down_belowContentLineIndex","down_belowContentLineIndent","down_resolveIndents","goUp","goDown","initialIndent","distance","upLineNumber","downLineNumber","upLineIndentLevel","currentIndent","downLineIndentLevel","activePosition","includeSingleLinePairs","activeBracketPairRange","bracketsContainingActivePosition","bp","independentColorPoolPerBracketType","colorProvider","isActive","horizontalGuides","endVisibleColumn","startVisibleColumn","guideVisibleColumn","renderHorizontalEndLineAtTheBottom","visibleGuideStartLineNumber","visibleGuideEndLineNumber","guides","aboveContentLineIndex","aboveContentLineIndent","belowContentLineIndex","belowContentLineIndent","resultIndex","nestingLevel","nestingLevelOfEqualBracketType","TokenizationRegistry","TokenizationSupportFactoryData","init_tokenizationRegistry","languageIds","support","myData","tokenizationSupport","_registry2","_languageId","_factory","isLocationLink","getAriaLabelForSymbol","symbolName","symbolKindNames","Token","TokenizationResult","EncodedTokenizationResult","HoverVerbosityAction","CompletionItemKinds","InlineCompletionTriggerKind","SelectedSuggestionInfo","InlineCompletionDisplayLocationKind","ProviderId","InlineCompletionEndOfLifeReasonKind","DocumentPasteTriggerKind","SignatureHelpTriggerKind","DocumentHighlightKind","SymbolKinds","FoldingRangeKind","NewSymbolNameTag","NewSymbolNameTriggerKind","Command2","InlayHintKind","LazyTokenizationSupport","TokenizationRegistry2","init_languages","language2","endState","HoverVerbosityAction3","CompletionItemKinds2","byKind","toIcon","codicon","toLabel","InlineCompletionTriggerKind3","completionKind","isSnippetText","InlineCompletionDisplayLocationKind3","_ProviderId","extensionId","extensionVersion","providerId","InlineCompletionEndOfLifeReasonKind3","DocumentPasteTriggerKind2","SignatureHelpTriggerKind3","DocumentHighlightKind3","SymbolKinds2","byCompletionKind","toCompletionKind","_FoldingRangeKind","NewSymbolNameTag3","NewSymbolNameTriggerKind3","Command3","InlayHintKind3","createSupport","LineRange","LineRangeSet","init_lineRange","_LineRange","lineRanges","endLineNumberExclusive","lineRange","marginTop","marginBottom","_LineRangeSet","_normalizedRanges","joinRangeStartIdx","joinRangeEndIdxExclusive","joinRange","rangeThatStartsBeforeEnd","i1","lineRange1","lineRange2","TextLength","init_textLength","_TextLength","position1","position2","columnCount","startPosition","ModelRawFlush","LineInjectedText","ModelRawLineChanged","ModelLineHeightChanged","ModelFontChanged","ModelRawLinesDeleted","ModelRawLinesInserted","ModelRawEOLChanged","ModelRawContentChangedEvent","ModelInjectedTextChangedEvent","ModelLineHeightChangedEvent","ModelFontChangedEvent","InternalModelContentChangeEvent","init_textModelEvents","_LineInjectedText","injectedTexts","lastOriginalOffset","injectedText","decorations","decoration3","ownerId2","detail","decorationId","lineHeight","fromLineNumber","toLineNumber","_ModelRawContentChangedEvent","versionId","isUndoing","isRedoing","_InternalModelContentChangeEvent","rawContentChangedEvent","contentChangedEvent","eol","isFlush","isEolChange","countEOL","eolCount","firstLineLength","lastLineStart","chr","init_eolCounter","BracketInfo","BracketPairInfo","BracketPairWithMinIndentationInfo","init_textModelBracketPairs","isInvalid","openingBracketRange","closingBracketRange","bracketPairNode","minVisibleColumnIndentation","lengthDiff","startLineCount","startColumnCount","endLineCount","endColumnCount","toLength","lengthIsZero","factor","lengthToObj","lengthGetLineCount","lengthAdd","l1","l2","r","factor","sumLengths","items","lengthFn","a","b","lengthZero","lengthEquals","length1","length2","lengthDiffNonNegative","lineCount1","lineCount2","colCount2","colCount1","toLength","lengthLessThan","lengthLessThanEqual","lengthGreaterThanEqual","positionToLength","position","lengthsToRange","lengthStart","lengthEnd","l","lineCount","colCount","Range","lengthOfString","str","lines","splitLines","init_length","__esm","init_strings","init_range","init_textLength","TextEditInfo","BeforeEditPositionMapper","TextEditInfoCache","init_beforeEditPositionMapper","_TextEditInfo","changes","c","range2","startOffset","endOffset","newLength","lengthToObj","edits","edit2","offset","nextEdit","nextChangeOffset","oldOffsetObj","newOffset","offsetObj","nextEditEndOffsetInCur","nextEditEndOffsetInCurObj","nextEditEndOffsetBeforeInCurObj","lineDelta","previousColumnDelta","columnDelta","_TextEditInfoCache","textLength","emptyArr","SmallImmutableSet","identityKeyProvider","DenseKeyProvider","init_smallImmutableSet","_SmallImmutableSet","additionalItems","cached","value","keyProvider","key","idx","newItem","newItems","other","merged","i2","item1","item2","existing","BaseAstNode","PairAstNode","ListAstNode","TwoThreeListAstNode","Immutable23ListAstNode","ArrayListAstNode","ImmutableArrayListAstNode","emptyArray","ImmutableLeafAstNode","TextAstNode","BracketAstNode","InvalidBracketAstNode","init_ast","init_errors","init_cursorColumns","length","_PairAstNode","openingBracket","child","closingBracket","result","missingOpeningBracketIds","openBracketIds","textModel","item3","immutable","missingBracketIds","listHeight","_missingOpeningBracketIds","childCount","lastChild","mutable","firstChild","lastLength","BugIndicatingError","count","unopenedBrackets","minIndentation","childOffset","_TwoThreeListAstNode","node","_item1","_item2","_item3","_ArrayListAstNode","_children","children","item","_openedBracketIds","start","startLineNumber","endLineNumber","lengthGetLineCount","lineNumber","firstNonWsColumn","lineContent","visibleColumn","CursorColumns","_BracketAstNode","bracketInfo","bracketIds","closingBrackets","openedBracketIds","Token2","TextBufferTokenizer","NonPeekableTextBufferTokenizer","FastTokenizer","init_tokenizer","init_encodedTokenAttributes","kind","bracketId","astNode","bracketTokens","obj","token","lineIdx","column","startLineIdx","startLineCharOffset","lengthHeuristic","lineTokens","tokenCount","peekedBracketToken","tokenMetadata","isOther","TokenMetadata","containsBracketType","languageId","text2","brackets","regexp","match2","lengthDiff","regExpStr","tokens","curLineCount","lastLineBreakOffset","lastTokenEndOffset","lastTokenEndLine","smallTextTokens0Line","smallTextTokens1Line","curOffset","NotSupportedError","prepareBracketForRegExp2","escaped","escapeRegExpCharacters","BracketTokens","LanguageAgnosticBracketTokens","init_brackets","_BracketTokens","configuration","denseKeyProvider","getId","map","openingTextId","bracket","keys","k","openingBracketIds","closingText","info","getLanguageConfiguration","singleLanguageBracketTokens","concat23Trees","readNode","height","concat23TreesOfSameHeight","first2","second","heightDiff","concat","createImmutableLists","j","node1","node2","append2","prepend2","list2","nodeToAppend","curNode","parents","nodeToAppendOfCorrectHeight","parent","nodeToPrependOfCorrectHeight","init_concat23Trees","getNextChildIdx","curIdx","lastOrUndefined","arr","NodeReader","init_nodeReader","predicate","curNodeOffset","nextChildIdx","currentOffset","currentNode","parseDocument","tokenizer","oldNode","Parser2","init_parser","level","maxCacheableLength","lengthIsZero","cachedNode","set","nextToken","combineTextEditInfos","textEditInfoFirst","textEditInfoSecond","s0ToS1Map","ArrayQueue","toLengthMapping","s1ToS2Map","curItem","nextS0ToS1MapWithS1LengthOf","s1Length","v","result2","remainingItem","LengthMapping","pushEdit","lastResult","s0offset","s1ToS2","s0ToS1Map2","s0Length","s","s0EndOffset","s1","s0startOffset","textEditInfos","lastOffset","textEditInfo","spaceLength","lengthBefore","init_combineTextEditInfos","init_arrays","_LengthMapping","modified","lengthAfter","remainingLengthAfter","getFirstBracketBefore","nodeOffsetStart","nodeOffsetEnd","lengths","nodeOffsetStart2","nodeOffsetEnd2","getFirstBracketAfter","collectBrackets","push","nestingLevelOfEqualBracketType","levelPerBracketType","onlyColorizedBrackets","parentPairIsIncomplete","whileLoop","colorize2","levelPerBracket","BracketInfo","collectBracketPairs","context","shouldContinue","openingBracketEnd","BracketPairWithMinIndentationInfo","BracketPairsTree","CollectBracketPairsContext","init_bracketPairsTree","init_event","init_lifecycle","init_textModelBracketPairs","Disposable","Emitter","wasUndefined","ranges","change","tokenChange","previousAst","previousAstClone","CallbackIterable","cb","includeMinIndentation","startLength","endLength","createDisposableRef","object","disposable","createTimeBasedContinueBracketSearchPredicate","maxDuration","startTime","stripBracketSearchCanceled","BracketSearchCanceled","BracketPairsTextModelPart","init_bracketPairsImpl","init_supports","init_richEditBrackets","languageConfigurationService","MutableDisposable","e","store","DisposableStore","_bracket","_position","closingBracketInfo","bracketPair","bracketsSupport","data","compareBy","continueSearchPredicate","modeBrackets","tokenIndex","currentLanguageId","searchStartOffset","tokenEndOffset","ignoreBracketsInToken","searchEndOffset","tokenStartOffset","lineText","currentModeBrackets","bestResult","foundBracket","BracketsUtils","foundBracketText","prevTokenIndex","prevModeBrackets","isOpen","matched","reversedBracketRegex","totalCallCount","searchPrevMatchingBracketInRange","hitText","prevSearchInToken","searchInToken","bracketRegex","searchNextMatchingBracketInRange","bracketConfig","tokenLanguageId","savedCounts","counts","resetCounts","languageId2","modeBrackets2","tmp","len","searchInRange","_BracketSearchCanceled","ColorizedBracketPairsDecorationProvider","ColorProvider","init_colorizedBracketPairsDecorationProvider","init_editorColorRegistry","init_themeService","ownerId2","filterOutValidation","onlyMinimapDecorations","independentColorPoolPerBracketType","registerThemingParticipant","theme","collector","colors","editorBracketHighlightingForeground1","editorBracketHighlightingForeground2","editorBracketHighlightingForeground3","editorBracketHighlightingForeground4","editorBracketHighlightingForeground5","editorBracketHighlightingForeground6","colorProvider","editorBracketHighlightingUnexpectedBracketForeground","colorValues","color","escapeNewLine","compressConsecutiveTextChanges","prevEdits","currEdits","TextChangeCompressor","TextChange","init_textChange","init_buffer","init_stringBuilder","_TextChange","oldPosition","oldText","newPosition","newText","writeUInt32BE","writeUInt16LE","readUInt32BE","decodeUTF16LE","dest","_TextChangeCompressor","prevIndex","currIndex","prevEdit","currEdit","e1","e2","mergePrev","mergeCurr","prevDeltaOffset","currDeltaOffset","preText","postText","resultLen","prev","curr","createEditSource","metadata","TextModelEditSource","privateSymbol","toProperties","version","avoidPathRedaction","privateSymbol","TextModelEditSource","EditSources","EditSuggestionId","init_textModelEditSource","__esm","init_uuid","metadata","_privateCtorGuard","level","filter","key","value","filterVal","data","createEditSource","avoidPathRedaction","toProperties","EditSuggestionId2","newId","id","prefixedUuid","uriGetComparisonKey","resource","getModelEOL","model","isEditStackElement","element","SingleModelEditStackElement","MultiModelEditStackElement","SingleModelEditStackData","EditStack","init_editStack","init_nls","init_errors","init_selection","init_uri","init_textChange","init_buffer","init_resources","_SingleModelEditStackData","beforeCursorState","alternativeVersionId","eol","beforeVersionId","afterVersionId","beforeEOL","afterEOL","afterCursorState","changes","textChanges","compressConsecutiveTextChanges","selections","b","offset","writeUInt32BE","selection","dest","count","readUInt32BE","i2","selectionStartLineNumber","selectionStartColumn","positionLineNumber","positionColumn","Selection","necessarySize","change","writeUInt8","source","readUInt8","changeCount","TextChange","URI","label","code","editStackElement","editStackElements","result","basename2","_EditStack","undoRedoService","lastElement","group","newElement","localize","editOperations","cursorStateComputer","reason","inverseEditOperations","op","index","a","e","onUnexpectedError","spacesDiff","aLength","bLength","aCharCode","bCharCode","aSpacesCnt","aTabsCount","j","bSpacesCnt","bTabsCount","tabsDiff","spacesDiff2","guessIndentation","defaultTabSize","defaultInsertSpaces","linesCount","linesIndentedWithTabsCount","linesIndentedWithSpacesCount","previousLineText","previousLineIndentation","ALLOWED_TAB_SIZE_GUESSES","MAX_ALLOWED_TAB_SIZE_GUESS","spacesDiffCount","tmp","SpacesDiffResult","lineNumber","currentLineLength","currentLineText","useCurrentLineText","currentLineHasContent","currentLineIndentation","currentLineSpacesCount","currentLineTabsCount","lenJ","charCode","currentSpacesDiff","insertSpaces","tabSize","tabSizeScore","possibleTabSize","possibleTabSizeScore","init_indentationGuesser","getNodeColor","node","setNodeColor","color","getNodeIsVisited","setNodeIsVisited","getNodeIsForValidation","setNodeIsForValidation","getNodeIsInGlyphMargin","setNodeIsInGlyphMargin","getNodeAffectsFont","setNodeAffectsFont","getNodeStickiness","_setNodeStickiness","stickiness","getCollapseOnReplaceEdit","setCollapseOnReplaceEdit","normalizeDelta","T","delta","SENTINEL","recomputeMaxEnd","adjustMarkerBeforeColumn","markerOffset","markerStickToPreviousCharacter","checkOffset","moveSemantics","nodeAcceptEdit","start","end","textLength","forceMoveMarkers","nodeStickiness","startStickToPreviousCharacter","endStickToPreviousCharacter","deletingCnt","insertingCnt","commonLength","nodeStart","startDone","nodeEnd","endDone","deltaColumn","searchForEditing","nodeMaxEnd","resultLen","noOverlapReplace","editDelta","collectNodesFromOwner","ownerId2","collectNodesPostOrder","search","filterOwnerId","filterOutValidation","filterFontDecorations2","cachedVersionId","onlyMarginDecorations","include","intervalSearch","intervalStart","intervalEnd","rbTreeInsert","newNode","treeInsert","recomputeMaxEndWalkToRoot","x","y","leftRotate2","rightRotate","z","zAbsoluteStart","zAbsoluteEnd","intervalCompare","rbTreeDelete","leftest","resetSentinel","yWasRed","w","computeMaxEnd","maxEnd","leftMaxEnd","rightMaxEnd","aStart","aEnd","bStart","bEnd","IntervalNode","IntervalTree","init_intervalTree","versionId","range2","options2","className2","absoluteStart","absoluteEnd","initialNode","length","nodesOfInterest","len","leftest2","SENTINEL2","righttest","calculateSize","calculateLF","resetSentinel2","leftRotate3","tree","rightRotate2","rbDelete","recomputeTreeMetadata","newSizeLeft","newLFLeft","lf_delta","updateTreeMetadata","fixInsert","lineFeedCntDelta","TreeNode","init_rbTreeBase","piece","isMultilineRegexSource","searchString","chCode","nextChCode","createFindMatch","rawMatches","captureMatches","FindMatch","matches","leftIsWordBounday","wordSeparators2","text2","matchStartIndex","matchLength","charBefore","firstCharInMatch","rightIsWordBounday","charAfter","lastCharInMatch","isValidMatch","LIMIT_FIND_COUNT","SearchParams","LineFeedCounter","TextModelSearch","Searcher","init_textModelSearch","init_strings","init_wordCharacterClassifier","init_position","init_range","init_model2","isRegex","matchCase","multiline","regex","createRegExp","canUseSimpleSearch","SearchData","getMapForWordSeparators","lineFeedsOffsets","lineFeedsOffsetsLen","textLen","min","max","mid","searchParams","searchRange","limitResultCount","searchData","deltaOffset","lfCounter","matchIndex","match0","startOffset","lineFeedCountBeforeMatch","endOffset","lineFeedCountInMatch","startPosition","endPosition","Range","searcher","counter","m","text3","searchStringLen","lastMatchIndex","searchStart","searchTextStart","Position","lineCount","startLineNumber","r","lineIndex","r2","fromColumn","bestResult","searchRegex","lastIndex","getNextCodePoint","createUintArray","arr","createLineStartsFast","str","readonly","rLength","chr","createLineStarts","cr","lf","crlf","isBasicASCII2","LineStarts","AverageBufferSize","Piece","StringBuffer","PieceTreeSnapshot","PieceTreeSearchCache","PieceTreeBase","init_pieceTreeBase","lineStarts","bufferIndex","lineFeedCnt","buffer","BOM","limit","nodePos","nodePosition","hasInvalidVal","newArr","entry","chunks","eolNormalized","lastNode","averageBufferSize","tempChunk","tempChunkLen","newEOL","column","leftLen","accumualtedValInCurrentIndex","lfCnt","originalOffset","out","lineStartOffset","buffer2","startOffset2","ret","lines","linesLength","currentLine","danglingCR","pieceLength","pieceStartLine","pieceEndLine","pieceStartOffset","line","matchingNode","targetOffset","targetEnd","startColumn","startCursor","endCursor","startOffsetInBuffer","searchText","offsetInBuffer","retStartColumn","retEndColumn","currentNode","lineBreakCnt","nextLineStartOffset","startColumn3","startColumn2","remainder","nodeStartOffset","insertPosInBuffer","nodesToDel","newRightPiece","newStart","previousPos","newPieces","tmpNode","k","pieces","cnt","startNode","endNode","startSplitPosInBuffer2","endSplitPosInBuffer2","next","startSplitPosInBuffer","endSplitPosInBuffer","secondNode","prev","nPiece","low","high","midStop","midStart","previousCharOffset","cursor","nodes","lastChar","splitText","lineStarts3","lineStarts2","endIndex","endColumn","endPos","newPiece","cache","prevAccumulatedValue","accumulatedValue","originalLineNumber","pos","lineCnt","realLineCnt","expectedLineStartIndex","originalLFCnt","originalEndOffset","newEnd","newEndOffset","newLineFeedCnt","size_delta","newLength","originalStartOffset","newStartOffset","originalStartPos","originalEndPos","oldLength","oldLFCnt","hitCRLF","prevStartOffset","oldLineFeedCnt","prevAccumualtedValue","nodeStartOffset2","newOffset","val","nextNode","prevNewLength","prevNewLFCnt","callback","leftRet","p","prevNode","PieceTreeTextBuffer","init_pieceTreeTextBuffer","init_event","init_eolCounter","init_lifecycle","_PieceTreeTextBuffer","Disposable","containsRTL2","containsUnusualLineTerminators2","Emitter","preserveBOM","lineEnding","eolOffsetCompensation","desiredEOL","actualEOL","eolCount","fromLineNumber","toLineNumber","lineContent","fromOffset","toOffset","isHighSurrogate","firstNonWhitespaceIndex","lastNonWhitespaceIndex","rawOperations","recordTrimAutoWhitespace","computeUndoEdits","mightContainRTL","mightContainUnusualLineTerminators","mightContainNonBasicASCII","canReduceOperations","operations","validatedRange","textMightContainNonBasicASCII","isBasicASCII","containsRTL","containsUnusualLineTerminators","validText","firstLineLength","lastLineLength","strEOL","countEOL","bufferEOL","hasTouchingRanges","rangeEnd","nextRangeStart","reverseRanges","newTrimAutoWhitespaceCandidates","reverseRange","currentLineContent","reverseOperations","reverseRangeDeltaOffset","bufferText","reverseRangeOffset","contentChanges","trimAutoWhitespaceLineNumbers","prevContent","ApplyEditsResult","firstEditRange","lastEditRange","entireEditRange","lastEndLineNumber","lastEndColumn","operation","endLineNumber","contentChangeRange","prevOpEndLineNumber","prevOpEndColumn","prevOp","resultRange","PieceTreeTextBufferFactory","PieceTreeTextBufferBuilder","init_pieceTreeTextBufferBuilder","_chunks","_bom","_cr","_lf","_crlf","_containsRTL","_containsUnusualLineTerminators","_isBasicASCII","_normalizeEOL","defaultEOL","totalEOLCount","totalCRCount","newLineStart","textBuffer","chunk","startsWithUTF8BOM","UTF8_BOM_CHARACTER","allowEmptyStrings","normalizeEOL","lastChunk","newLineStarts","AttachedViews","AttachedViewState","AttachedViewImpl","AttachedViewHandler","AbstractSyntaxTokenBackend","init_abstractSyntaxTokenBackend","init_arrays","init_async","init_lineRange","init_observable","init_equals","observableSignal","derivedOpts","itemsEquals","itemEquals","reader","LineRange","view","state","visibleLineRanges","stabilized","other","equals","handleStateChange","observableValueOpts","equalsIfDefined","visibleLines","_refreshTokens","RunOnceScheduler","_languageIdCodec","_textModel","gotoNextSibling","newCursor","oldCursor","n2","o","gotoParent","gotoNthChild","nn","oo","nextSiblingOrParentSibling","getClosestPreviousNodes","findPrev","startingNode","init_cursorUtils","newTimeOutProgressCallback","lastYieldTime","_state","now","rangesEqual","rangesIntersect","__decorate21","__param19","TreeSitterTree","init_treeSitterTree","init_platform","init_log","init_telemetry","init_textLength","decorators","target","desc","c","d","paramIndex","decorator","languageId","_ranges","_parser","_parserClass","textModel","_logService","_telemetryService","observableValue","TaskQueue","toDisposable","ranges","version","newRanges","oldTree","changedNodes","completed","ranges2","previousTree","transaction","tx","originalTextLength","TextLength","newTextLength","summedTextLengths","edit2","newTree","newChildren","indexChangedChildren","changedChildren","closestPreviousNode","newRangeIndex","mergedChanges","nodeIndex","cursorContainersNode","child","foundChild","startIndex","newChange","constrainedChanges","changesIndex","rangesIndex","newRangeStartOffset","newRangeEndOffset","newRange","parseType","time","passes","inProgressVersion","progressCallback","timer","position","resolve3","setTimeout0","unKnownRanges","isFullyIncluded","existingRange","src","parser2","ILogService","ITelemetryService","nullTokenize","TokenizationResult","Token","nullTokenizeEncoded","tokens","EncodedTokenizationResult","NullState","init_nullTokenize","init_languages","arrayFill","FixedArray","init_fixedArray","_default","before","after2","insertArr","deleteIndex","deleteCount","insertIndex","insertCount","arrayInsert","ContiguousMultilineTokens","init_contiguousMultilineTokens","lineTokens","ContiguousMultilineTokensBuilder","init_contiguousMultilineTokensBuilder","last","findLikelyRelevantLines","store","nonWhitespaceColumn","likelyRelevantLines","initialState","newNonWhitespaceIndex","safeTokenize","languageIdCodec","tokenizationSupport","hasEOL","LineTokens","TokenizerWithStateStore","TokenizerWithStateStoreAndTextModel","TrackingTokenizationStateStore","TokenizationStateStore","RangePriorityQueueImpl","DefaultBackgroundTokenizer","init_textModelTokens","init_stopwatch","init_offsetRange","init_lineTokens","builder","lineToTokenize","character","lineStartState","tokenIndex","firstInvalidLineNumber","OffsetRange","BugIndicatingError","newLineCount","startState","oldState","idx","idxFirstMightBeIntersecting","idxFirstIsAfter","endEx","_tokenizerWithStateStore","_backgroundTokenStore","runWhenGlobalIdle","deadline","endTime","execute","sw","StopWatch","firstInvalidLine","endLineNumberExclusive","isLeaf","append3","nodeToAppend","curNode","parents","nodeToAppendOfCorrectHeight","parent","ListNode","newList","prepend3","list2","nodeToPrependOfCorrectHeight","concat2","node1","node2","TokenQuality","TokenStore","init_tokenStore","_ListNode","height","updateParent","TokenQuality2","tokenQuality","newRoot","updateOffsetStart","firstUnchangedOffsetAfterUpdate","precedingNodes","postcedingNodes","stack","currentOffset","childOffset","allNodes","startOffsetInclusive","endOffsetExclusive","visitor","offset2","clippedLength","clippedOffset","minimumTokenQuality","hasAny","needsRefresh","visited","ITreeSitterThemeService","init_treeSitterThemeService","init_instantiation","createDecorator","__decorate22","__param20","TreeSitterTokenizationImpl","TREESITTER_BASE_SCOPES","BRACKETS","init_treeSitterTokenizationImpl","init_types","_tree","_highlightingQueries","_visibleLineRanges","_treeSitterThemeService","runOnChange","autorun","autorunHandleChanges","recordChanges","ctx","changeEvent","oldToken","newToken","deletedCharCount","content","rawTokens","emptyToken","modelEndOffset","rawLineTokens","accurateForRange","lineEndOffset","rangeStartOffset","rangeEndOffset","captures","updates","update","lastToken","oldRangeLength","needsRefreshOffsetRanges","lineRanges","viewportRanges","isDefined","startOffsetOfRangeInDocument","endOffsetOfRangeInDocument","tokenUpdates","tokensByLine","tokensIndex","tokenStartOffset","tokensForLine","moveToNextLine","token","lineAdjustedEndOffset","lineAdjustedStartOffset","partialToken","asUpdate","likelyRelevantPrefix","treeRange","rangeChanges","lineRange","fullRangeEndLineNumber","chunkLineStart","chunkColumnStart","chunkLineEnd","chunkStartingPosition","chunkEndColumn","chunkEndPosition","chunkRange","tokenUpdate","capture","rangesToRefresh","rangeOffset","endOffsetToken","startingOffsetInArray","lastEnd","modelRange","capStartLine","capEndLine","capStartColumn","capEndColumn","startLine","endLine","injectionRange","injection","stopwatch","rangeLength","encodedLanguageId","baseScope","endOffsetsAndScopes","increaseSizeOfTokensByOneToken","brackets","match2","addCurrentTokenToArray","oldScopes","oldBracket","preInsertBracket","postInsertBracket","bracket","captureIndex","tokenEndIndex","tokenStartIndex","previousEndOffset","currentTokenLength","withinTokenIndex","previousTokenEndOffset","previousTokenStartOffset","captureTime","parentCapture","emptyTokens","metadataTime","lineOffset","maxLine","lineLength","endOffsetsAndMetadata","uint32Array","ITreeSitterLibraryService","init_treeSitterLibraryService","__decorate23","__param21","TreeSitterSyntaxTokenBackend","init_treeSitterSyntaxTokenBackend","_languageIdObs","_treeSitterLibraryService","_instantiationService","parserClassPromise","ObservablePromise","parserClassObs","derived","parserClass","currentLanguage","treeSitterLang","treeModel","queries","tokModel","fireTokenChangeEvent","IInstantiationService","SparseTokensStore","init_sparseTokensStore","_SparseTokensStore","isComplete","_range","_firstRange","_lastRange","insertPosition","aTokens","pieceIndex","bTokens","aLen","bLen","aIndex","lastEndOffset","emitToken","bIndex","bStartCharacter","bEndCharacter","bMetadata","bMask","aMask","aMergeIndex","firstCharCode","toUint32Array","EMPTY_LINE_TOKENS","ContiguousTokensEditing","init_contiguousTokensEditing","_ContiguousTokensEditing","toChIndex","fromChIndex","lineTextLength","tokensCount","fromTokenIndex","fromTokenStartOffset","fromTokenEndOffset","delta2","tokenEndOffset","_otherTokens","myTokens","otherTokens","otherTokensCount","chIndex","getDefaultMetadata","topLevelLanguageId","ContiguousTokensStore","init_contiguousTokensStore","init_encodedTokenAttributes","_ContiguousTokensStore","lineText","_tokens","hasDifferentLanguageId","TokenMetadata","tokens2","checkEquality","oldTokens","_a3","_b2","firstLineIndex","lastLineIndex","lastLineTokens","minChangedLineNumber","maxChangedLineNumber","hasChange","TokenizerSyntaxTokenBackend","init_tokenizerSyntaxTokenBackend","getLanguageId","attachedViews","MutableDisposable","DisposableMap","TokenizationRegistry2","existing","initializeTokenization","tokenizationSupport2","initialState2","newState","firstInvalidEndStateLineNumber","_","s","heuristicTokens","changedTokens","backgroundResult","__decorate24","__param22","TokenizationTextModelPart_1","TokenizationTextModelPart","init_tokenizationTextModelPart","init_wordHelper","init_language","init_languageConfigurationRegistry","init_textModelPart","TextModelPart","_bracketPairsTextModelPart","_languageId","_attachedViews","_languageService","_languageConfigurationService","hadTokens","syntacticTokens","changedRange","_position","rbStartOffset","rbEndOffset","rightBiasedWord","getWordAtText","lbStartOffset","lbEndOffset","leftBiasedWord","tokenCount","wordAtPosition","ILanguageService","ILanguageConfigurationService","IUndoRedoService","ResourceEditStackSnapshot","UndoRedoGroup","UndoRedoSource","init_undoRedo","elements","_UndoRedoGroup","_UndoRedoSource","groupByMap","groupFn","diffSets","removed","added","intersection","setA","setB","elem","_a2","SetWithKey","init_collections","values","toKey","callbackfn","thisArg","createTextBufferFactory","createTextBufferFactoryFromSnapshot","snapshot","createTextBuffer","factory","isITextSnapshot","indentOfLine","indent","isNodeInOverviewRuler","isOptionsInjectedText","isNodeInjectedText","cleanClassName","_normalizeOptions","ModelDecorationOptions","__decorate25","__param23","TextModel_1","MODEL_ID","LIMIT_FIND_COUNT2","LONG_LINE_BOUNDARY","LINE_HEIGHT_CEILING","TextModelSnapshot","invalidFunc2","TextModel","DecorationsTrees","DecorationOptions","ModelDecorationOverviewRulerOptions","ModelDecorationGlyphMarginOptions","ModelDecorationMinimapOptions","ModelDecorationInjectedTextOptions","TRACKED_RANGE_OPTIONS","LineHeightChangingDecoration","LineFontChangingDecoration","DidChangeDecorationsEmitter","DidChangeContentEmitter","init_textModel","init_color","init_indentation","init_textModelDefaults","init_bracketPairsImpl","init_colorizedBracketPairsDecorationProvider","init_guidesTextModelPart","init_textModelEvents","resultCnt","resultLength","EDITOR_MODEL_DEFAULTS","guessedIndentation","TextModelResolvedOptions","listener","combinedDisposable","languageIdOrSelection","creationOptions","associatedResource","_undoRedoService","instantiationService","affectedInjectedTextLines","affectedLineHeights","affectedFontLines","disposable","bufferLineCount","bufferTextLength","BracketPairsTextModelPart","GuidesTextModelPart","ColorizedBracketPairsDecorationProvider","singleLetterHash","emptyDisposedTextBuffer","rawChange","InternalModelContentChangeEvent","illegalArgument","rangeEndPosition","isUndoing","isRedoing","isFlush","isEolChange","textBufferDisposable","oldFullModelRange","oldModelValueLength","ModelRawContentChangedEvent","ModelRawFlush","ModelRawEOLChanged","allDecorations","smallLineCharCount","longLineCharCount","_newOpts","indentSize","trimAutoWhitespace","bracketPairColorizationOptions","newOpts","normalizeIndentation","UNUSUAL_LINE_TERMINATORS","rawPosition","rawOffset","newAlternativeVersionId","newInitialUndoRedoSnapshot","fullModelRange","fullModelValue","rawRange","initialStartLineNumber","initialStartColumn","maxColumn","initialEndLineNumber","initialEndColumn","validationType","charCodeBefore","_lineNumber","_column","charCodeBeforeStart","charCodeBeforeEnd","startInsideSurrogatePair","endInsideSurrogatePair","candidate","rawSearchScope","searchRanges","searchScope","d1","d2","uniqueSearchRanges","curr","matchMapper","rawSearchStart","rawOperation","ValidAnnotatedEditOperation","incomingEdits","editsAreNearCursors","sel","foundEditNearSel","editRange","selIsAbove","selIsBelow","trimLineNumber","maxLineColumn","allowTrimLine","editText","trimRange","resultingAlternativeVersionId","resultingSelection","edits","rangeStart","oldLineCount","rawContentChanges","deletingLinesCnt","insertingLinesCnt","editingLinesCnt","changeLineCountDelta","currentEditStartLineNumber","firstEditLineNumber","lastInsertedLineNumber","decorationsWithInjectedTextInEditedRange","injectedTextInEditedRange","LineInjectedText","injectedTextInEditedRangeQueue","ArrayQueue","editLineNumber","currentEditLineNumber","decorationsInCurrentLine","ModelRawLineChanged","spliceStartLineNumber","ModelRawLinesDeleted","injectedTextInEditedRangeQueue2","spliceLineNumber","injectedTexts","newLines","i3","ModelRawLinesInserted","lineChangeEvents","ModelInjectedTextChangedEvent","lineHeightChangeEvent","specialLineHeightChange","ModelLineHeightChanged","ModelLineHeightChangedEvent","fontChangeEvent","fontChange","ModelFontChanged","ModelFontChangedEvent","changeAccessor","oldDecorations","newDecorations","newStickiness","decorationId","_startLineNumber","_endLineNumber","decorations","pushMany","onlyMinimapDecorations","t","filterRange","oldRange","nodeWasInOverviewRuler","nodeIsInOverviewRuler","nodeRange","movedInOverviewRuler","changedWhetherInjectedText","oldDecorationsIds","suppressEvents","oldDecorationsLen","oldDecorationIndex","newDecorationsLen","newDecorationIndex","internalDecorationId","newDecoration","affinity","host","r0","r1","overviewRulerOnly","OverviewRulerLane","theme","GlyphMarginLane","Color","_ModelDecorationInjectedTextOptions","_ModelDecorationOptions","htmlAttributeEncodeValue","obj","lineHeight","handleBeforeFire","event","ILanguageFeaturesService","init_languageFeatures","getKoreanAltChars","disassembleKorean","codeBufferLength","getCodesFromArray","modernConsonants","modernVowels","modernFinalConsonants","compatibilityJamo","codeBuffer","hangulIndex","vowelAndFinalConsonantProduct","initialConsonantIndex","vowelIndex","finalConsonantIndex","array2","arrayStartIndex","addCodesToBuffer","codes","init_korean","or","word","wordToMatchAgainst","_matchesPrefix","ignoreCase","startsWithIgnoreCase","matchesContiguousSubString","matchesSubString","_matchesSubString","join","isLower","isUpper","isNumber2","isWhitespace","isWordSeparator","wordSeparators","charactersMatch","codeA","codeB","getAlternateCodes","alternateCharsCache","isAlphanumeric","head","tail2","nextAnchor","camelCaseWord","_matchesCamelCase","nextUpperIndex","analyzeCamelCaseWord","upper","lower","alpha","numeric","upperPercent","lowerPercent","alphaPercent","numericPercent","isUpperCaseWord","analysis","isCamelCaseWord","isCamelCasePattern","whitespace","matchesCamelCase","matchesWords","contiguous","targetIndex","_matchesWords","nextWord","wordIndex","targetIndexOffset","altChars","nextWordIndex","matchesFuzzy","enableSeparateSubstringMatching","regexp","fuzzyRegExpCache","convertSimple2RegExpPattern","fuzzySeparateFilter","fuzzyContiguousFilter","matchesFuzzy2","pattern","score3","fuzzyScore","createMatches","anyScore","lowPattern","patternPos","lowWord","wordPos","res","initTable","table","row","_maxLen","initArr","maxLen","printTable","patternLen","wordLen","pad","pad2","printTables","patternStart","wordStart","_table","_arrows","_diag","isSeparatorAtPos","isEmojiImprecise","isWhitespaceAtPos","isUpperCaseAtPos","wordLow","isPatternInWord","patternLow","fillMinWordPosArr","_minWordMatchPos","FuzzyScoreOptions","_fillInMaxWordMatchPos","hasStrongFirstMatch","minWordMatchPos","maxWordMatchPos","_maxWordMatchPos","nextMaxWordMatchPos","canComeDiag","_doScore","diagScore","canComeLeft","leftScore","canComeLeftLeft","leftLeftScore","_debug","backwardsDiagLength","maxMatchColumn","diagColumn","arrow","skippedCharsCount","newMatchStart","outFirstMatchStrong","isGapLocation","fuzzyScoreGracefulAggressive","fuzzyScoreWithPermutations","aggressive","top","tries","movingPatternPos","newPattern","nextTypoPermutation","swap1","swap2","matchesStrictPrefix","matchesPrefix","FuzzyScore","init_filters","init_map","LRUCache","FuzzyScore2","isDefault","firstMatchCanBeWeak","boostFullMatch","escapeIcons","escapeIconsRegex","escaped","markdownEscapeEscapedIcons","markdownEscapedIconsRegex","stripIcons","iconStartMarker","stripIconsRegex","preWhitespace","postWhitespace","getCodiconAriaLabel","_match","codiconName","parseLabelWithIcons","input","_parseIconsRegex","iconOffsets","iconsOffset","chars","matchesFuzzyIconAware","query","wordToMatchAgainstWithoutIconsTrimmed","ltrim","leadingWhitespaceOffset","iconOffset","iconsRegex","init_iconLabels","init_themables","ThemeIcon","isEmptyMarkdownString","oneOrMany","isMarkdownString","thing","MarkdownString","markdownStringEqual","isEqual","escapeMarkdownSyntaxTokens","appendEscapedMarkdownCodeBlockFence","langId","longestFenceLength","desiredFenceLength","escapeDoubleQuotes","removeMarkdownEscapes","parseHrefAndDimensions","href","dimensions","splitted","parameters","heightFromParams","widthFromParams","width2","widthIsFinite","heightIsFinite","init_htmlContent","isTrustedOrOptions","newlineStyle","g1","title","ch","escapeRegExpCharacters","renderLabelWithIcons","textStart","textStop","labelWithIconsRegex","codicon","renderIcon","icon","$","init_iconLabels2","init_dom","clamp","MovingAverage","SlidingWindowAverage","init_numbers","size2","oldValue","joinCombine","arr1","arr2","keySelector","combine","val1","val2","key1","key2","applyObservableDecorations","editor2","DisposableStore","decorationsCollection","autorunOpts","appendRemoveOnDispose","prependRemoveOnDispose","animatedObservable","targetWindow","base","targetVal","startVal","curVal","animationStartMs","durationMs","animationFrame","passedMs","easeOutExpo","applyStyle","domNode","style","applyViewZones","viewZones","setIsUpdating","zoneIds","lastViewZoneIds","autorunWithStore","store2","curViewZones","viewZonIdsPerViewZone","viewZoneIdPerOnChangeObservable","context","changeSummary","reader2","vz","translatePosition","posInOriginal","mappings","mapping","findLast","newLineNumber","innerMapping","l","lengthBetweenPositions","position1","position2","filterWithPrevious","cur","ObservableElementSizeObserver","ViewZoneOverlayWidget","PlaceholderViewZone","ManagedOverlayWidget","DisposableCancellationTokenSource","RefCounted","BaseRefCounted","ClonedRefCounted","init_utils5","init_arraysFind","init_cancellation","init_elementSizeObserver","dimension","ElementSizeObserver","automaticLayout","viewZone","htmlElement","_afterLineNumber","heightInPx","_ManagedOverlayWidget","_editor","_domElement","CancellationTokenSource","debugOwner","object","_disposable","_debugOwner","_base","IEditorWorkerService","init_editorWorker","Point","init_point","_Point","factor2","map","threshold","axisVal","observableCodeEditor","ObservableCodeEditor","init_observableCodeEditor","_ObservableCodeEditor","item","TransactionImpl","observableFromEvent","derivedWithSetter","cb","debugLocation","DebugLocation","widget","overlayWidgetId","contentWidgetId","coordinate","predicate","isHovered","E","heights","__decorate42","__param37","HideUnchangedRegionsFeature_1","HideUnchangedRegionsFeature","CompactCollapsedCodeOverlayWidget","CollapsedCodeOverlayWidget","init_hideUnchangedRegionsFeature","init_codicons","startRange","_editors","_diffModel","_options","derivedDisposable","unchangedRegions","regions","modifiedOutlineSource","origViewZones","modViewZones","sideBySide","compactMode","curUnchangedRegions","origVz","modViewZone","unchangedLinesDecoration","unchangedLinesDecorationShow","Codicon","region","_viewZone","_unchangedRegion","_hide","root","h","linesHiddenText","_unchangedRegionRange","_modifiedOutlineSource","_revealModifiedHiddenLine","reset","isFullyRevealed","isDragged","addDisposableListener","startTop","didMove","window2","getWindow","mouseMoveListener","e2","lineDelta","newVal","mouseUpListener","top2","children","span","items","SymbolKinds","divItem","IEditorCancellationTokens","ctxCancellableOperation","EditorKeybindingCancellationTokenSource","init_keybindingCancellation","init_editorExtensions","init_contextkey","init_linkedList","init_extensions","RawContextKey","registerSingleton","cts","accessor","IContextKeyService","LinkedList","removeFn","registerEditorCommand","EditorCommand","EditorState","EditorStateCancellationTokenSource","TextModelCancellationTokenSource","init_editorState","_EditorState","flags","format","IEnvironmentService","init_environment","__decorate57","__param52","ILanguageFeatureDebounceService","IdentityHash","NullDebounceInformation","FeatureDebounceInformation","LanguageFeatureDebounceService","init_languageFeatureDebounce","init_hash","init_network","IdentityHash2","_hashes","pool","of","_model","_value","_name","_registry2","_min","_max","hashVal","doHash","avg","newValue","matchesScheme","envService","feature","name","config","extra","info","__decorate90","__param84","TreeElement","OutlineElement","OutlineGroup","OutlineModel","IOutlineModelService","OutlineModelService","init_outlineModel","init_iterator","init_model","container","candidateId","symbol","order","_OutlineModel","registry","provider","promises","provider2","result2","err","onUnexpectedExternalError","group2","newProvider","childInfo","uri","Iterable","roots","child2","bucket","entries2","overrideContainerLabel","_languageFeaturesService","debounces","modelService","outlineModel","_err","IModelService","InPlaceReplaceCommand","init_inPlaceReplaceCommand","originalSelection","helper","srcRange","init_inPlaceReplace","require_inPlaceReplace","__commonJS","exports","init_editorContextKeys","__decorate194","__param187","InPlaceReplaceController_1","InPlaceReplaceController","editorWorkerService","up","editorSelection","modelURI","createCancelablePromise","highlightRange","diff","command","timeout","InPlaceReplaceUp","EditorAction","localize2","EditorContextKeys","controller","InPlaceReplaceDown","registerEditorContribution","registerEditorAction","require_contribution","DiffEditorBreadcrumbsSource","_outlineModelService","documentSymbolProviderChanged","observableSignalFromEvent","textModelChanged","Event","symbols","reverseOrder","compareBy","numberComparator","InspectTokensNLS","GoToLineNLS","QuickHelpNLS","QuickCommandNLS","QuickOutlineNLS","StandaloneCodeEditorNLS","ToggleHighContrastNLS","StandaloneServicesNLS","init_standaloneStrings","InspectTokensNLS2","GoToLineNLS2","QuickHelpNLS2","QuickCommandNLS2","QuickOutlineNLS2","StandaloneCodeEditorNLS2","ToggleHighContrastNLS2","StandaloneServicesNLS2","init_inspectTokens","IStandaloneThemeService","init_standaloneTheme","require_inspectTokens","InspectTokensController_1","InspectTokensController","standaloneColorService","languageService","InspectTokensWidget","InspectTokens","renderTokenText","tokenText","charIndex","getSafeTokenizationSupport2","_InspectTokensWidget","token1Index","token2Index","append","colorMap","tokenType","fontStyle","foreground2","background","stateBeforeLine","tokenizationResult1","tokenizationResult2","init_browser","MAX_MESSAGE_LENGTH","ariaContainer","alertContainer","alertContainer2","statusContainer","statusContainer2","setARIAContainer","createAlertContainer","createStatusContainer","alert","msg","clearNode","insertMessage","status","init_codeEditorService","init_supports","init_cursorColumns","InputModeImpl","InputMode","autoCloseAlways","autoCloseNever","autoCloseBeforeWhitespace","CursorConfiguration","modelOptions","configuration","languageConfigurationService","layoutInfo","fontInfo","surroundingPairs","pair","commentsConfiguration","electricChars","char","scopedLineTokens","createScopedLineTokens","electricCharacterSupport","autoCloseConfig","forQuotes","autoCloseBeforeSet","CursorColumns","visibleColumn","minColumn","CursorState","_CursorState","modelState","PartialModelCursorState","viewState","PartialViewCursorState","modelSelection","SingleCursorState","modelSelections","states","_SingleCursorState","selectionStart","selectionStartKind","selectionStartLeftoverVisibleColumns","leftoverVisibleColumns","inSelectionMode","EditOperationResult","type","commands","opts","isQuote","ColumnSelection","_ColumnSelection","fromVisibleColumn","toVisibleColumn","reversed","isRTL","isLTR","visibleStartColumn","visibleEndColumn","prevColumnSelectData","toViewVisualColumn","maxVisualViewColumn","minViewLineNumber","maxViewLineNumber","lineMaxViewColumn","lineMaxVisualViewColumn","isPaged","toViewLineNumber","ReplaceCommand","insertsAutoWhitespace","ReplaceOvertypeCommand","intialStartPosition","initialEndPosition","offsetDelta","addPositiveOffsetToModelPosition","replaceRange","ReplaceCommandThatSelectsText","ReplaceCommandWithoutChangingPosition","ReplaceCommandWithOffsetCursorState","lineNumberDeltaOffset","columnDeltaOffset","ReplaceOvertypeCommandOnCompositionEnd","ReplaceCommandThatPreservesSelection","initialSelection","futureOffset","AtomicTabMoveOperations","_AtomicTabMoveOperations","prevTabStopPosition","prevTabStopVisibleColumn","direction","left","currentVisibleColumn2","targetVisibleColumn","currentVisibleColumn","CursorPosition","MoveOperations","_MoveOperations","prevCharLength","newPosition","noOfColumns","normalizedPos","nextCharLength","allowMoveOnEdgeLine","normalizationAffinity","wasOnFirstPosition","wasOnLastPosition","wasAtEdgePosition","allowMoveOnLastLine","allowMoveOnFirstLine","firstNonBlankColumn","sticky","lastLineNumber","lastColumn","DeleteOperations","_DeleteOperations","prevEditOperationType","shouldPushStackElementBefore","deleteSelection","rightOfPosition","firstNonWhitespaceColumn","autoClosingDelete","autoClosingBrackets","autoClosingQuotes","autoClosingPairsOpen","autoClosedCharacters","autoClosingPairCandidates","afterCharacter","foundAutoClosingPair","autoClosingPairCandidate","found","autoClosedCharacter","deleteRange","firstNonWhitespaceIndex2","lastIndentationColumn","toColumn","getLeftDeleteOffset","newLine","lastCutRange","WordOperations","_WordOperations","wordType","nextCharClass","intlWord","previousIntlWord","chClass","nextIntlWord","wordNavigationType","hasMulticursor","prevWordOnLine","right","isLowerAsciiLetter","isAsciiDigit","isUpperAsciiLetter","rightRight","movedDown","nextWordOnLine","lastNonWhitespace","whitespaceHeuristics","lineContentLength","leftIndex","rightIndex","touchesWord","createRangeWithPosition","deleteWordAndAdjacentWhitespace","expandedToTheRight","toPosition","firstNonWhitespace","_wordSeparators","_intlSegmenterLocales","prevWord","nextWord2","endColumn2","possiblePosition","WordPartOperations","candidates","enforceDefined","el","CursorMoveCommands","viewModel","cursors","useLogicalLine","currentViewStateColumn","currentModelStateColumn","isFirstLineOfWrappedLine","currentViewStatelineNumber","viewStatePosition","viewModelMaxColumn","isEndOfViewLine","modelStatePosition","modelMaxColumn","isEndLineOfWrappedLine","_viewPosition","viewPosition","selectToLineNumber","selectToColumn","enteringLineNumber","selectToViewLineNumber","selectToViewColumn","endPositionOfSelectionStart","unit","visibleViewRange","visibleModelRange","modelLineNumber","modelColumn","viewLineNumber","newViewLineNumber","isRtl","TextDirection","halfLine","toViewColumn","toModelLineNumber","toModelColumn","viewColumn","CursorMove","CursorMove2","isCursorMoveArgs","arg","isObject","cursorMoveArg","isString","isUndefined","isBoolean","isNumber","parse4","args","init_languageConfiguration","ProcessedIndentRulesSupport","indentRulesSupport","IndentationLineProcessor","newIndentation","processedLine","IndentationContextProcessor","beforeRangeProcessedTokens","afterRangeProcessedTokens","previousLineProcessedTokens","slicedTokens","isLanguageDifferentFromLineStart","columnIndexWithinScope","firstCharacterOffset","lastCharacterOffset","columnWithinLine","getScopedLineTokensAtEndColumnOfLine","lineTokens2","endColumnOfLine","previousLineNumber","scopedLineTokensAtEndColumnOfPreviousLine","previousSlicedLineTokens","replaceIndentation","newIndentation2","currentIndentation","getLeadingWhitespace","shouldRemoveBracketsFromTokenType","bracketsRegExp","textAndMetadata","doesScopeStartAtOffsetZero","isScopedLanguageEqualToFirstLanguageOnLine","getEnterAction","autoIndent","richEditSupport","processedContextTokens","beforeEnterText","afterEnterText","enterResult","indentAction","appendText","removeText","IndentAction","indentation","getIndentationAtPosition","__decorate3","__param3","ShiftCommand_1","repeatCache","cachedStringRepeat","ShiftCommand","contentStartVisibleColumn","indentCount","shouldIndentEmptyLines","previousLineExtraSpaces","extraSpaces","indentationEndIndex","enterAction","desiredIndent","oneIndent","lastOp","SurroundSelectionCommand","charBeforeSelection","charAfterSelection","firstOperationRange","secondOperationRange","CompositionSurroundSelectionCommand","_text","_charAfter","opRange","getPrecedingValidLine","processedIndentRulesSupport","resultLineNumber","getInheritIndentForLine","honorIntentialIndent","priorLineNumber","precedingUnIgnoredLine","precedingUnIgnoredLineContent","previousLine","previousLineIndentMetadata","stopLine","getGoodIndentForLine","virtualModel","indentConverter","inheritLine","shouldApplyEnterRules","inBetweenLine","getIndentForEnter","afterEnterProcessedTokens","beforeEnterProcessedTokens","beforeEnterIndent","createVirtualModelWithModifiedTokensAtLine","languageIsDifferentFromLineStart","currentLineIndent","afterEnterAction","beforeEnter","afterEnterIndent","getIndentActionForType","cursorConfig","beforeRangeText","afterRangeText","textAroundRange","textAroundRangeWithCharacter","inheritedIndentation","actualCurrentIndentation","inferredIndentationEqualsActual","textAroundRangeContainsOnlyWhitespace","autoClosingPairs","isChFirstNonWhitespaceCharacterAndInAutoClosingPair","getIndentMetadata","modifiedLineNumber","modifiedTokens","AutoIndentOperation","isDoingComposition","indentationForSelections","autoClosingPairClose","AutoClosingOpenCharTypeOperation","actualIndentation","shiftIndent","unshiftIndent","indentationEdit","TypeWithIndentationAndAutoClosingCommand","typeCommand","editOptions","includeChInEdit","AutoClosingOvertypeOperation","isAutoClosingOvertype","typeSelection","shouldPushStackElementBetween","AutoClosingOvertypeWithInterceptorsOperation","chIsAlreadyTyped","TypeWithAutoClosingCommand","positions","shouldAutoCloseBefore","containedPair","containedPairClose","isContainedPairPresent","beforeColumn","afterColumn","lineBefore","lineAfter","characterAfter","characterBefore","neutralCharacter","candidateIsMatch","nextChar","potentialStartingBraces","potentialClosingBraces","isBeforeStartingBrace","isBeforeClosingBrace","CompositionEndOvertypeOperation","compositions","composition","SurroundSelectionOperation","closeCharacter","shouldSurroundChar","isTypingAQuoteCharacter","selectionContainsOnlyWhitespace","selectedText","selectionText","InterceptorElectricCharOperation","electricAction","matchLine","matchLineIndentation","lineFirstNonBlankColumn","prefix","typeText","getTypingOperation","SimpleCharacterTypeOperation","ChosenReplaceCommand","opType","EnterOperation","keepPosition","lineText2","indentation2","normalIndent","increasedIndent","ir","oldEndViewColumn","oldEndColumn","newLineContent","PasteOperation","pasteOnNewLine","multicursorText","distributedPaste","splitLines","CompositionOperation","replacePrevCharCnt","replaceNextCharCnt","positionDelta","TypeWithoutInterceptorsOperation","TabOperation","goodIndent","possibleTypeText","lineMaxColumn","action","expectedIndentAction","expectedEnterAction","visibleColumnFromColumn","spacesCnt","BaseTypeWithAutoClosingCommand","openCharacter","insertOpenCharacter","autoIndentationEdit","range1","range3","typedText","previousTypingOperation","typingOperation","isTypingOperation","normalizeOperationType","chIsQuote","TypeOperations","insertedText","hasDeletion","autoClosingOvertypeEdits","autoClosingOpenCharEdits","enterEdits","autoIndentEdits","autoClosingOverTypeEdits","surroundSelectionEdits","interceptorElectricCharOperation","CompositionOutcome","deletedText","deletedSelectionStart","deletedSelectionEnd","insertedSelectionStart","insertedSelectionEnd","insertedTextRange","init_keybindingsRegistry","CORE_WEIGHT","CoreEditorCommand","EditorScroll_","EditorScroll_2","isEditorScrollArgs","scrollArg","revealCursor","RevealLine_","RevealLine_2","isRevealLineArgs","reveaLineArg","EditorOrNativeTextInputCommand","focusedEditor","ICodeEditorService","activeElement","getActiveElement","isEditableElement","activeEditor","CoreNavigationCommands","CoreNavigationCommands2","BaseMoveToCommand","ColumnSelectCommand","primary","validatedPosition","validatedViewPosition","fromViewLineNumber","fromViewVisualColumn","ColumnSelectUpCommand","ColumnSelectDownCommand","CursorMoveImpl","parsed","CursorMoveBasedCommand","dynamicArgs","newModelPosition","newViewPosition","lastAddedCursorIndex","newStates","HomeCommand","LineStartCommand","EndCommand","LineEndCommand","TopCommand","BottomCommand","EditorScrollImpl","horizontalUnits","verticalUnits","horizontalDirections","verticalDirections","runEditorScroll","desiredScrollTop","desiredVisibleViewRange","futureViewport","desiredTopModelLineNumber","noOfLines","deltaLines","desiredScrollLeft","deltaColumns","WordCommand","lastAddedState","LineCommand","LastCursorLineCommand","revealLineArg","lineNumberArg","revealAt","viewRange","SelectAllCommand","isFirefox","columnSelectionCondition","ContextKeyExpr","registerColumnSelection","keybinding","KeybindingsRegistry","registerCommand2","CoreEditingCommands","CoreEditingCommands2","CoreEditingCommand","UndoCommand","RedoCommand","EditorHandlerCommand","Command","handlerId","registerOverwritableCommand","IMarkerDecorationsService","__decorate4","__param4","MarkerDecorationsContribution","_markerDecorationsService","FastDomNode","_maxWidth","maxWidth","numberAsPixels","_width","_height","_top","_left","_bottom","bottom","_right","_paddingLeft","paddingLeft","fontFamily","fontWeight","_fontSize","fontSize","fontFeatureSettings","fontVariationSettings","textDecoration","_lineHeight","_letterSpacing","letterSpacing","shouldHaveIt","display","visibility","backgroundColor","layerHint","boxShadow","contain","createFastDomNode","applyFontInfo","init_objects","DevicePixelRatioMonitor","fireEvent","PixelRatioMonitorImpl","dprMonitor","dpr","bsr","PixelRatioMonitorFacade","targetWindowId","getWindowId","pixelRatioMonitor","markAsSingleton","onDidUnregisterWindow","vscodeWindowId","PixelRatio","CharWidthRequest","DomCharWidthReader","_DomCharWidthReader","bareFontInfo","requests","regularDomNode","boldDomNode","italicDomNode","testElements","request","testElement","htmlString","testString","readCharWidths","MINIMAP_GUTTER_WIDTH","ConfigurationChangedEvent","ComputeOptionsMemory","BaseEditorOption","defaultValue","schema","applyUpdate","env2","ApplyUpdateResult","didChange","arrayEquals","ComputedEditorOption","SimpleEditorOption","boolean","EditorBooleanOption","clampedInt","minimum","maximum","EditorIntOption","_EditorIntOption","clampedFloat","EditorFloatOption","_EditorFloatOption","validationFn","EditorStringOption","_EditorStringOption","stringSet","allowedValues","renamedValues","EditorStringEnumOption","EditorEnumOption","defaultStringValue","convert","_autoIndentFromString","EditorAccessibilitySupport","EditorComments","defaults","_input","cursorBlinkingStyleFromString","cursorBlinkingStyle","TextEditorCursorStyle","TextEditorCursorStyle3","cursorStyleFromString","cursorStyle","EditorClassName","classNames2","EditorEmptySelectionClipboard","EditorFind","isMacintosh","EditorFontLigatures","_EditorFontLigatures","EditorFontVariations","_EditorFontVariations","EditorFontInfo","EffectiveCursorStyle","EffectiveEditContextEnabled","EffectiveAllowVariableFonts","EditorFontSize","EDITOR_FONT_DEFAULTS","EditorFontWeight","_EditorFontWeight","EditorGoToLocation","jsonSubset","alternativeCommandOptions","EditorHover","EditorLayoutInfoComputer","_EditorLayoutInfoComputer","typicalViewportLineCount","extraLinesBeforeFirstLine","extraLinesBeyondLastLine","desiredRatio","minimapLineCount","memory","outerWidth","outerHeight","pixelRatio","stableMinimapLayoutInput","couldUseMemory","typicalHalfwidthCharacterWidth","scrollBeyondLastLine","minimapRenderCharacters","minimapScale","minimapMaxColumn","minimapSize","minimapSide","verticalScrollbarWidth","viewLineCount","remainingWidth","isViewportWrapping","baseCharHeight","minimapCanvasInnerHeight","minimapCanvasOuterHeight","minimapHeightIsEditorHeight","minimapIsSampling","minimapLineHeight","minimapCharWidth","minimapWidthMultiplier","fitBecomesFill","maxMinimapScale","effectiveMinimapHeight","configuredMinimapScale","minimapMaxWidth","minimapWidth","minimapCanvasInnerWidth","minimapCanvasOuterWidth","renderMinimap","minimapLeft","lineNumbersDigitCount","maxDigitWidth","wordWrapOverride2","wordWrapOverride1","wordWrap","wordWrapColumn","isDominatedByLongLines","showGlyphMargin","showLineNumbers","lineNumbersMinChars","padding","minimap","scrollbar","verticalScrollbarHasArrows","scrollbarArrowSize","horizontalScrollbarHeight","folding","showFoldingDecoration","lineDecorationsWidth","lineNumbersWidth","digitCount2","glyphMarginWidth","glyphMarginLeft","lineNumbersLeft","decorationsLeft","contentLeft","isWordWrapMinified","wrappingColumn","minimapLayout","contentWidth","viewportColumn","verticalArrowSize","WrappingStrategy","ShowLightbulbIconMode","ShowLightbulbIconMode3","EditorLightbulb","EditorStickyScroll","EditorInlayHints","EditorLineDecorationsWidth","EditorLineHeight","EditorMinimap","markSectionHeaderRegex","inputRegex","_multiCursorModifierFromString","multiCursorModifier","EditorPadding","EditorParameterHints","EditorPixelRatio","PlaceholderOption","EditorQuickSuggestions","types","comments","strings","validatedOther","validatedComments","validatedStrings","EditorRenderLineNumbersOption","lineNumbers","renderType","renderFn","filterValidationDecorations","renderValidationDecorations","filterFontDecorations","EditorRulers","columnSchema","rulers","_element","ReadonlyMessage","_scrollbarVisibilityFromString","EditorScrollbar","horizontalScrollbarSize","verticalScrollbarSize","inUntrustedWorkspace","unicodeHighlightConfigKeys","UnicodeHighlight","equals2","primitiveSet","InlineEditorSuggest","BracketPairColorization","GuideOptions","EditorSuggest","SmartSelect","WordSegmenterLocales","validLocales","locale","WrappingIndentOption","EditorWrappingInfoComputer","EditorDropIntoEditor","EditorPasteAs","DEFAULT_WINDOWS_FONT_FAMILY","DEFAULT_MAC_FONT_FAMILY","DEFAULT_LINUX_FONT_FAMILY","isWindows","editorOptionsRegistry","register2","option2","EditorOptions","isChrome2","isEdge","isNative","isLinux","USUAL_WORD_SEPARATORS","EditorZoom","zoomLevel","GOLDEN_LINE_HEIGHT_RATIO","MINIMUM_LINE_HEIGHT","BareFontInfo","_BareFontInfo","ignoreEditorZoom","editorZoomLevelMultiplier","fallbackFontFamily","SERIALIZED_FONT_INFO_VERSION","FontInfo","isTrusted","FontMeasurementsImpl","windowId","FontMeasurementsCache","somethingRemoved","readConfig","all","monospace","typicalHalfwidthCharacter","typicalFullwidthCharacter","space","digit0","digit1","digit2","digit3","digit4","digit5","digit6","digit7","digit8","digit9","rightwardsArrow","halfwidthRightwardsArrow","middot","wsmiddotWidth","monospaceTestChars","isMonospace","referenceWidth","canUseHalfwidthRightwardsArrow","itemId","FontMeasurements","EditorSettingMigration","_EditorSettingMigration","migrate","read","write","value2","firstDotIndex","firstSegment","registerEditorSettingMigration","registerSimpleEditorSettingMigration","migrateOptions","migration","suggestFilteredTypesMapping","toBeModified","TabFocusImpl","tabFocusMode","TabFocus","IAccessibilityService","CONTEXT_ACCESSIBILITY_MODE_ENABLED","__decorate5","__param5","EditorConfiguration","isSimpleWidget","contextMenuId","_accessibilityService","deepCloneAndMigrateOptions","EditorOptionsUtil","newOptions","partialEnv","getExtraEditorClassName","isWebKit","getWindowById","_newOptions","modelLineCount","digitCount","reservedHeight","decorationLaneCount","isSafari","isWebkitWebView","ValidatedEditorOptions","ComputedEditorOptions","_EditorOptionsUtil","editorOption","somethingChanged","changed","deepClone","inputLatency","inputLatency2","totalKeydownTime","totalInputTime","totalRenderTime","totalInputLatencyTime","measurementsCount","onKeyDown","recordIfFinished","markKeyDownEnd","onBeforeInput","scheduleRecordIfFinishedTask","onInput","markInputEnd","onKeyUp","onSelectionChange","onRenderStart","markRenderEnd","addMeasure","reset2","entryName","cumulativeMeasurement","duration","getAndClearMeasurements","cumulativeToFinalMeasurement","clearCumulativeMeasurement","cumulative","init_window","globalStylesheets","createStyleSheet2","WrappedStyleElement","cssStyle","createStyleSheet","mainWindow","beforeAppend","disposableStore","globalStylesheetClones","disposables","getWindows","cloneDisposable","cloneGlobalStyleSheet","globalStylesheet","clone2","rule","getDynamicStyleSheetRules","sharedMutationObserver","_sharedStyleSheet","getSharedStyleSheet","createCSSRule","selector","cssText","clonedGlobalStylesheet","removeCSSRulesContainingSelector","ruleName","rules","toDelete","isCSSStyleRule","createStyleSheetFromObservable","css","GlobalPointerMoveMonitor","invokeStopCallback","browserEvent","onStopCallback","initialElement","pointerId","initialButtons","pointerMoveCallback","eventSource","EventType","init_mouseEvent","init_colorRegistry","PageCoordinates","ClientCoordinates","clientX","clientY","EditorPagePosition","CoordinatesRelativeToEditor","createEditorPagePosition","editorViewDomNode","editorPos","getDomNodePagePosition","createCoordinatesRelativeToEditor","editorPagePosition","scaleX","scaleY","relativeX","relativeY","EditorMouseEvent","StandardMouseEvent","isFromPointerCapture","EditorMouseEventFactory","EditorPointerEventFactory","GlobalEditorPointerMoveMonitor","addStandardDisposableListener","DynamicCssRules","_DynamicCssRules","properties","existingRule","RefCountedCssRule","isInShadowDOM","_containerElement","prop","cssValue","asCssVariable","cssPropName","camelToDashes","first2","letter","ViewEventHandler","events","shouldRender","ViewPart","PartFingerprints","partId","stopAt","RestrictedRenderingContext","viewLayout","viewportData","vInfo","absoluteTop","includeViewZones","RenderingContext","viewLines","viewLinesGpu","includeNewLines","domRanges","gpuRanges","LineVisibleRanges","outsideRenderedLine","continuesOnNextLine","HorizontalRange","_HorizontalRange","FloatHorizontalRange","HorizontalPosition","VisibleRanges","RangeUtil","startElement","endElement","clientRects","clientRectDeltaLeft","clientRectScale","clientRect","startChildIndex","endChildIndex","clientRects2","LineDecoration","_LineDecoration","dec","lineDecorations","minLineColumn","ORDER","typeCmp","DecorationSegment","Stack","_Stack","maxStopOffset","nextStartOffset","stopOffset","LineDecorationsNormalizer","currentStartOffset","currentEndOffset","init_stringBuilder","LinePart","RenderLineInput","useMonospaceOptimizations","continuesWithWrappedLine","fauxIndentLength","startVisibleColumn","spaceWidth","middotWidth","stopRenderingLineAfter","renderWhitespace","renderControlCharacters","fontLigatures","selectionsOnLine","textDirection","renderNewLineWhenEmpty","wsmiddotDiff","middotDiff","otherSelections","DomPosition","partIndex","CharacterMapping","_CharacterMapping","partData","partCount","horizontalOffset","charOffset","domPosition","partLength","searchEntry","midEntry","minEntry","maxEntry","minPartIndex","minCharIndex","maxPartIndex","maxCharIndex","minEntryDistance","maxEntryDistance","RenderLineOutput","characterMapping","containsForeignElements","renderViewLine","sb","beforeCount","afterCount","lineDecoration","_renderLine","resolveRenderLineInput","RenderLineOutput2","html3","renderViewLine2","StringBuilder","ResolvedRenderLineInput","fontIsMonospace","isOverflowing","overflowingCharCount","parts","renderSpaceCharCode","transformAndRemoveOverflowing","extractControlCharacters","_applyRenderWhitespace","len2","_applyInlineDecorations","splitLargeTokens","lineContainsRTL","tokensLen","tokenContainsRTL2","tokenContainsRTL","onlyAtSpaces","lastTokenEndIndex","tokenMetadata","lastSpaceOffset","currTokenStart","piecesCount","pieceEndIndex","isControlCharacter","lastLinePart","onlyBoundary","onlyTrailing","generateLinePartForEachWhitespace","tokensLength","lineIsEmptyOrWhitespace","lastNonWhitespaceIndex2","wasInWhitespace","currentSelectionIndex","currentSelection","tmpIndent","isInWhitespace","lastEndIndex","isFullWidthCharacter","generateWhitespace","lastCharCode","prevCharCode","_lineDecorations","lineDecorationsLen","lineDecorationIndex","lastResultEndIndex","lastCharacterMappingDefined","charOffsetInPart","charHorizontalOffset","partDisplacement","part","partEndIndex","partType","partContainsRTL","partRendersWhitespace","partRendersWhitespaceWithWidth","partIsEmptyAndHasPseudoAfter","partWidth","_charIndex","_visibleColumn","charWidth","producedCharacters","to4CharHex","renderOverflowingCharCount","init_theme","canUseFastRenderedViewLine","monospaceAssumptionsAreValid","ViewLine","_ViewLine","_viewGpuContext","isHighContrast","deltaTop","lineData","actualInlineDecorations","allowFastRendering","renderLineInput","output","renderedViewLine","FastRenderedViewLine","createRenderedLine","horizontalRanges","spanNode","keyColumnCount","expectedWidth","actualWidth","horizontalOffset2","keyColumnOrdinal","keyColumn","keyColumnPixelOffset","keyColumnHorizontalOffset","myDomNode","getColumnOfNodeOffset","RenderedViewLine","pixelOffset","readingTarget","cachedPixelOffset","expectedResult","startDomPosition","endDomPosition","WebKitRenderedViewLine","endPixelOffset","lastRange","createWebKitRenderedLine","createNormalRenderedLine","spanNodeTextContentLength","spanIndex","init_lazy","UnknownHitTestResult","hitTarget","ContentHitTestResult","injectedText","HitTestResult","HitTestResult2","createFromDOMInfo","PointerHandlerLastRenderData","lastViewCursorsRenderData","lastTextareaPosition","MouseTarget","mouseColumn","detail","outsidePosition","outsideDistance","ElementPath","path","HitTestContext","_HitTestContext","viewHelper","lastRenderData","mouseVerticalOffset","viewZoneWhitespace","viewZoneMiddle","positionBefore","positionAfter","lineNumber2","maxLineColumn2","attr","BareHitTestRequest","relativePos","MouseTargetFactory","HitTestRequest","eventTarget","Lazy","hasEventTarget","EMPTY_CONTENT_AFTER_LINES","createEmptyContentDataInLines","horizontalDistanceToText","_MouseTargetFactory","resolvedRequest","widgetId","mouseContentHorizontalOffset","cursorVerticalOffset","viewZoneData","mouseTargetType","modelCoordinate","lanes","lineWidth","lineWidth2","hitTestResult","possibleLineNumber","visibleRange","columnHorizontalOffset","points","visibleRange2","mouseCoordinates","spanNodeClientRect","mouseIsOverSpanNode","rng","prevDelta","nextDelta","lineStartVerticalOffset","lineEndVerticalOffset","lineCenteredVerticalOffset","adjustedPageY","adjustedPage","coords","shadowRoot","getShadowRoot","shadowCaretRangeFromPoint","startContainer","parent1","parent2","parent3","hitResult","parent1ClassName","parent2ClassName","tokenSpan","normalizedPosition","rect","elWindow","fontVariant","font","pixelCursor","step","charWidthReader","CharWidthReader","_CharWidthReader","cacheKey","init_canIUse","memoize","_target","descriptor","fnKey","fn","memoizeKey","__decorate6","EventType2","EventType3","Gesture","_Gesture","onDidRegisterWindow","remove","timestamp","touch","evt","activeTouchCount","holdTime","finalX","finalY","deltaT","deltaX","deltaY","dispatchTo","initialTarget","currentTime","setTapCount","ignoreTarget","targets","depth","t1","vX","dirX","vY","dirY","scheduleAtNextAnimationFrame","delta_pos_x","delta_pos_y","stopped","init_keyboardEvent","Widget","StandardKeyboardEvent","ARROW_IMG_SIZE","ScrollbarArrow","WindowIntervalTimer","TimeoutTimer","scheduleRepeater","pointerMoveData","ScrollbarVisibilityController","visibleClassName","invisibleClassName","rawShouldBeVisible","shouldBeVisible","isNeeded","withFadeAway","POINTER_DRAG_RESET_DISTANCE","AbstractScrollbar","visibleSize","elementScrollSize","elementScrollPosition","domTop","sliderStart","sliderStop","pointerPos","offsetX","offsetY","domNodePosition","isMouse","isLeftClick","initialPointerPosition","initialPointerOrthogonalPosition","initialScrollbarState","pointerOrthogonalPosition","pointerOrthogonalDelta","pointerDelta","_desiredScrollPosition","desiredScrollPosition","scrollbarSize","MINIMUM_SLIDER_SIZE","ScrollbarState","_ScrollbarState","arrowSize","oppositeScrollbarSize","scrollSize","scrollPosition","iVisibleSize","iScrollSize","iScrollPosition","computedAvailableSize","computedRepresentableSize","computedIsNeeded","computedSliderSize","computedSliderRatio","computedSliderPosition","desiredSliderPosition","correctedOffset","HorizontalScrollbar","scrollable","scrollDimensions","arrowDelta","scrollbarDelta","StandardWheelEvent","sliderSize","sliderPosition","largeSize","smallSize","VerticalScrollbar","ScrollState","_ScrollState","_forceIntegerValues","scrollWidth","scrollLeft","scrollHeight","scrollTop","useRawScrollPositions","previous","inSmoothScrolling","widthChanged","scrollWidthChanged","scrollLeftChanged","heightChanged","scrollHeightChanged","scrollTopChanged","Scrollable","smoothScrollDuration","reuseAnimation","validTarget","newSmoothScrolling","SmoothScrollingOperation","SmoothScrollingUpdate","isDone","createEaseOutCubic","from","to","completion","easeOutCubic","createComposed","cut","_SmoothScrollingOperation","startTime","viewportSize","stop1","stop2","newScrollLeft","newScrollTop","easeInCubic","HIDE_TIMEOUT","SCROLL_WHEEL_SENSITIVITY","SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED","MouseWheelClassifierItem","MouseWheelClassifier","_MouseWheelClassifier","remainingInfluence","iteration","influence","isChrome","pageZoomFactor","getZoomFactor","previousItem","absDeltaX","absDeltaY","absPreviousDeltaX","absPreviousDeltaY","minDeltaX","minDeltaY","maxDeltaX","maxDeltaY","epsilon","AbstractScrollableElement","resolveOptions","scrollbarHost","mouseWheelEvent","dispose","newClassName","scheduleAgain","shouldListen","onMouseWheel","classifier","didScroll","shiftConvert","futureScrollPosition","deltaScrollTop","deltaScrollLeft","startPeriodic","consumeMouseWheel","scrollState","enableTop","enableLeft","leftClassName","topClassName","topLeftClassName","ScrollableElement","SmoothScrollableElement","DomScrollableElement","DragScrolling","_context","_viewHelper","_mouseTargetFactory","_dispatchMouse","mouseEvent","DragScrollingOperation","elapsed","TopBottomDragScrolling","TopBottomDragScrollingOperation","viewportInLines","outsideDistanceInLines","scrollSpeedInLines","scrollInPixels","scrollValue","edgeLineNumber","mouseTarget","LeftRightDragScrolling","LeftRightDragScrollingOperation","viewportInChars","outsideDistanceInChars","scrollSpeedInChars","MouseHandler","viewController","MouseDownOperation","testEventTarget","mouseEvents","capturePointerId","prevMouseWheelTime","gestureStartZoomLevel","gestureHasZoomModifiers","gestureAccumulatedDelta","hasMouseWheelZoomModifiers","targetIsContent","targetIsGutter","targetIsLineNumbers","selectOnLineNumbers","targetIsViewZone","targetIsWidget","shouldHandle","focus","_viewController","createMouseTarget","getMouseColumn","revealType","MouseDownState","targetType","isKeyboardEvent","editorContent","verticalOffset","aboveLineNumber","belowLineNumber","xLeftBoundary","xRightBoundary","positionOutsideEditor","_MouseDownState","startedOnLineNumbers","setMouseDownCount","newMouseDownPosition","DomEmitter","useCapture","init_mime","getDataToCopy","emptySelectionClipboard","copyWithSyntaxHighlighting","rawTextToCopy","newLineCharacter","isFromEmptySelection","mode","CopyOptions","richText","InMemoryClipboardMetadataManager","_InMemoryClipboardMetadataManager","lastCopiedValue","pastedText","ClipboardEventUtils","clipboardData","Mimes","rawmetadata","file","_debugComposition","TextAreaState","_TextAreaState","selectionEnd","newlineCountBeforeSelection","textArea","previousState","valueBeforeSelectionStart","previousValueBeforeSelectionStart","select","valuesEqual","str1","str2","anchor","deltaText","signum","lastLineFeedIndex","currentState","couldBeEmojiInput","prefixLength","commonPrefixLength","suffixLength","commonSuffixLength","previousValue","currentValue","previousSelectionStart","previousSelectionEnd","currentSelectionStart","currentSelectionEnd","replacePreviousCharacters2","replacePreviousCharacters","screenReaderContentState","__decorate7","__param6","TextAreaSyntethicEvents","TextAreaSyntethicEvents2","CompositionContext","typeInput","TextAreaInput","_host","_textArea","_OS","_browser","lastKeyDown","_e","currentComposition","typeInput2","hadFocus","previousSelectionChangeEventTime","delta1","newSelectionStart","newSelectionEnd","_newSelectionStartPosition","newSelectionStartPosition","_newSelectionEndPosition","newSelectionEndPosition","newSelection","newHasFocus","textAreaState","dataToCopy","LogLevel","generateUuid","storedMetadata","TextAreaWrapper","_actual","activeWindow","currentIsFocused","saveParentsScrollTop","restoreParentsScrollTop","PointerEventHandler","pointerType","pointerEvents","TouchHandler","event2","PointerHandler","isIOS","isAndroid2","isMobile","BrowserFeatures","ViewController","userInputEvents","commandDelegate","selectionClipboardIsOn","columnSelection","scrollOnMiddleClick","doColumnSelect","wholeLine","createTrustedTypesPolicy","policyName","policyOptions","monacoEnvironment2","RenderedLinesCollection","_lineFactory","rendLineNumberStart","deleteFromLineNumber","deleteToLineNumber","deleteCnt","deleteStartIndex","deleteAboveCount","changeFromLineNumber","changeToLineNumber","someoneNotified","changedLineNumber","insertFromLineNumber","insertToLineNumber","insertCnt","beforeLines","afterLines","deletedLines","notifiedSomeone","VisibleLinesCollection","_viewContext","flushDom","deleted","inp","renderer","ViewLayerRenderer","resCtx","_ViewLayerRenderer","_domNode","_viewportData","inContext","stopLineNumber","removeCnt","deltaLN","newLinesLen","removeCount","removeIndex","domNodeIsEmpty","newLinesHTML","wasNew","lastChild","currChild","invalidLinesHTML","wasInvalid","hugeDomNode","lineDomNode","hadNewLine","renderedLineNumber","hadInvalidLine","ViewOverlays","ViewOverlayLine","overlay","toRender","dynamicOverlay","dynamicOverlays","ContentViewOverlays","MarginViewOverlays","ViewUserInputEvents","_ViewUserInputEvents","coordinatesConverter","BlockDecorations","newContentWidth","newContentLeft","decoration3","block2","paddingTop","paddingRight","paddingBottom","ViewContentWidgets","viewDomNode","keys","_widget","myWidget","Widget2","primaryAnchor","secondaryAnchor","preference","actual","PositionPair","allowOverflow","getValidPositionPair","affinity2","validModelPosition","elDocument","aboveLineTop","heightAvailableAboveLine","underLineTop","heightAvailableUnderLine","aboveTop","fitsAbove","belowTop","fitsBelow","windowSize","MIN_LIMIT","MAX_LIMIT","absoluteLeft","absoluteAboveTop","absoluteBelowTop","getClientArea","absoluteAboveLeft","TOP_PADDING","BOTTOM_PADDING","topLeft","Coordinate","getCoordinates","secondaryViewPosition","secondary","horizontalPosition","AnchorCoordinate","preferredDimensions","safeInvoke","placement","pass","pref","modelPosition","DynamicViewOverlay","init_editorColorRegistry","init_themeService","AbstractLineHighlightOverlay","hasChanged","cursorsLineNumbers","selectionIsEmpty","visibleStartLineNumber","visibleEndLineNumber","renderData","renderedLineWrapped","cursorLineNumber","firstViewLineNumber","lastViewLineNumber","firstLine","lastLine","renderedLineExact","CurrentLineHighlightOverlay","exact","CurrentLineMarginHighlightOverlay","registerThemingParticipant","collector","lineHighlight","editorLineHighlight","editorLineHighlightBorder","lineHighlightBorder","DecorationsOverlay","_decorations","decorationsLen","aClassName","bClassName","lenI","decorationOutput","prevClassName","prevShowIfCollapsed","prevRange","prevShouldFillLineOnLineBreak","showIfCollapsed","shouldFillLineOnLineBreak","linesVisibleRanges","lineVisibleRanges","singleVisibleRange","center","lenK","expandToLeft","EditorScrollbar2","linesContent","overflowGuardDomNode","mouseWheelScrollSensitivity","fastScrollSensitivity","scrollPredominantAxis","inertialScroll","scrollbarOptions","getThemeTypeSelector","onBrowserDesperateReveal","lookAtScrollTop","lookAtScrollLeft","newScrollPosition","deltaLeft","DecorationToRender","tooltip","zIndex","LineDecorationToRender","VisibleLineDecorationsToRender","DedupOverlay","prevEndLineIndex","startLineIndex","endLineIndex","GlyphMarginWidgets","glyphMarginClassName","lane","laneIndex","DecorationBasedGlyphRenderRequest","widgetLineNumber","WidgetBasedGlyphRenderRequest","decorationGlyphsToRender","requestsAtLocation","winner","decLineNumber","combinedClassName","DecorationBasedGlyph","init_textModelGuides","IndentGuidesOverlay","wrappingInfo","activeCursorPosition","indents","leftOffset","guide","bracketGuides","HorizontalGuidesState","indentGuides","activeIndentStartLineNumber","activeIndentEndLineNumber","activeIndentLevel","activeIndentInfo","lineGuides","bracketGuidesInLine","bracketGuidesInLineQueue","indentGuidesInLine","indentLvl","indentGuide","isActive","g","peeked","IndentGuide","transparentToUndefined","colors","editorBracketHighlightingForeground1","editorBracketPairGuideBackground1","editorBracketPairGuideActiveBackground1","editorBracketHighlightingForeground2","editorBracketPairGuideBackground2","editorBracketPairGuideActiveBackground2","editorBracketHighlightingForeground3","editorBracketPairGuideBackground3","editorBracketPairGuideActiveBackground3","editorBracketHighlightingForeground4","editorBracketPairGuideBackground4","editorBracketPairGuideActiveBackground4","editorBracketHighlightingForeground5","editorBracketPairGuideBackground5","editorBracketPairGuideActiveBackground5","editorBracketHighlightingForeground6","editorBracketPairGuideBackground6","editorBracketPairGuideActiveBackground6","colorProvider","BracketPairGuidesClassNames","indentColors","editorIndentGuide1","editorActiveIndentGuide1","editorIndentGuide2","editorActiveIndentGuide2","editorIndentGuide3","editorActiveIndentGuide3","editorIndentGuide4","editorActiveIndentGuide4","editorIndentGuide5","editorActiveIndentGuide5","editorIndentGuide6","editorActiveIndentGuide6","colorValues","bracketColor","guideColor","guideColorActive","effectiveGuideColor","effectiveGuideColorActive","indentColorValues","indentColor","indentColorActive","effectiveIndentColor","effectiveIndentColorActive","colors2","LineNumbersOverlay","_LineNumbersOverlay","primaryViewPosition","finalLineNumber","lineHeightClassName","lineNoDecorations","decorationStartIndex","renderLineNumber","extraClassNames","editorLineNumbersColor","editorLineNumbers","editorDimmedLineNumberColor","editorDimmedLineNumber","MOUSE_CURSOR_TEXT_CSS_CLASS_NAME","DomReadingContext","ViewLineOptions","themeType","LastRenderedData","currentVisibleRange","HorizontalRevealRangeRequest","minimalReveal","startScrollTop","stopScrollTop","scrollType","HorizontalRevealSelectionsRequest","minLineNumber","maxLineNumber","ViewLines","_ViewLines","viewGpuContext","conf","newViewLineOptions","rendStartLineNumber","rendEndLineNumber","viewLineDomNode","originalEndLineNumber","visibleRanges","visibleRangesLen","domReadingContext","nextLineModelLineNumber","continuesInNextLine","visibleRangesForLine","currentLineModelLineNumber","floatHorizontalRange","fast","localMaxLineWidth","allWidthsComputed","visibleLine","longestLineNumber","longestWidth","horizontalRevealRequest","adjustedScrollTop","iLineWidth","viewport","verticalType","viewportStartY","viewportHeight","viewportEndY","boxIsSingleRange","boxStartY","boxEndY","shouldIgnoreScrollOff","maxLinesInViewport","surroundingLines","desiredGapAbove","minScrollTop","boxMiddleY","viewportStartX","viewportEndX","boxStartX","boxEndX","hasRTL","viewportStart","viewportEnd","boxStart","boxEnd","revealAtStart","revealAtEnd","viewportLength","LinesDecorationsOverlay","rLen","linesDecorationsClassName","firstLineDecorationClassName","common","lineOutput","addition","Margin","_Margin","MarginViewLineDecorationsOverlay","marginClassName","RGBA8","_RGBA8","MinimapTokensColorTracker","_MinimapTokensColorTracker","colorId","backgroundLuminosity","allCharCodes","v","getCharIndex","fontScale","init_uint","MinimapCharRenderer","_MinimapCharRenderer","charData","scale","ratio","toUint8","dx","dy","foregroundAlpha","backgroundAlpha","useLighterFont","force1pxHeight","charHeight","renderHeight","destWidth","backgroundR","backgroundG","backgroundB","deltaR","deltaG","deltaB","destAlpha","sourceOffset","colorR","colorG","colorB","init_functional","charTable","decodeData","prebakedMiniMaps","createSingleCallFunction","MinimapCharRendererFactory","_MinimapCharRendererFactory","canvas","destOffset","brightest","sourceY1","sourceY2","sourceX1","sourceX2","samples","sy","sourceRow","yBalance","sx","xBalance","sourceIndex","weight5","final","pixelsPerCharacter","resultOffset","adjust","DEFAULT_FONT_FAMILY","ViewModelDecoration","isModelDecorationVisible","isModelDecorationInComment","isModelDecorationInString","testTokensInRange","isFirstLine","isEndLine","tokenIdx","POINTER_DRAG_RESET_DISTANCE2","GUTTER_DECORATION_WIDTH","MinimapOptions","_MinimapOptions","tokensColorTracker","minimapOpts","defaultBackgroundColor","themeColor","minimapBackground","minimapForegroundOpacity","defaultForegroundColor","editorForeground","MinimapLayout","_MinimapLayout","sliderNeeded","_computedSliderRatio","sliderTop","sliderHeight","topPaddingLineCount","pageY","viewportStartLineNumber","viewportEndLineNumber","viewportStartLineNumberVerticalOffset","viewportContainsWhitespaceGaps","realLineCount","previousLayout","minimapLinesFitting","logicalScrollHeight","sliderHeight2","maxMinimapSliderTop2","computedSliderRatio2","sliderTop2","maxLinesFitting","viewportLineCount","expectedViewportLineCount","extraLinesAtTheTop","extraLinesAtTheBottom","maxMinimapSliderTop","consideringStartLineNumber","partialLine","sliderTopAligned","MinimapLine","_MinimapLine","RenderData","renderedLayout","imageData","layout2","MinimapBuffers","_MinimapBuffers","WIDTH","HEIGHT","backgroundA","MinimapSamplingState","_MinimapSamplingState","oldSamplingState","halfRatio","oldMinimapLines","oldIndex","oldDeltaLineCount","MAX_EVENT_COUNT","lastEvent","oldMinimapLineNumber","selectedViewLineNumber","samplingRatio","minimapLines","fromLineIndex","toLineIndex","sampledLineNumber","minimapLineStart","minimapLineEnd","deletedLineCount","changeStartIndex","changeEndIndex","insertedLineCount","Minimap","samplingState","InnerMinimap","minimapLineRange","minimapCtx","wasSampling","needed","headerHeightInMinimapLines","modelStartLineNumber","modelEndLineNumber","minimapStartLineNumber","minimapEndLineNumber","fitWidth","headerText","cachedText","fittedText","_InnerMinimap","minimapSelection","initialPosY","internalOffsetY","initialSliderState","initialPosX","handlePointerMove","posy","posx","minimapPosition","startY","class_","renderingCtx","canvasInnerWidth","canvasInnerHeight","canvasContext","highlightedLines","ContiguousLineMap","lineOffsetMap","y1","y2","intersection2","yy1","yy2","highlightColors","minimapOptions","decorationColor","highlightColor","characterWidth","decorationRange","x1","x2","lineIndexToXOffset","prevx","sectionHeaderFontSize","sectionHeaderLetterSpacing","backgroundFillHeight","backgroundFill","foregroundColor","foregroundFill","separatorStroke","backgroundFillY","separatorY","ellipsis","ellipsisWidth","averageCharWidth","maxCharCount","halfCharCount","hasSeparatorLine","textY","_lastData","_dirtyY1","_dirtyY2","lineInfo","defaultBackground","charRenderer","renderMinimapLineHeight","innerLinePadding","renderBackground","renderedLines","dirtyY1","dirtyHeight","lastTargetData","lastStartLineNumber","lastLines","lastLinesLength","targetData","maxDestPixel","dirtyPixel1","dirtyPixel2","copySourceStart","copySourceEnd","copyDestStart","copyDestEnd","dest_dy","source_dy","sourceStart","sourceEnd","destStart","destEnd","dirtyY2","colorTracker","minimapCharRenderer","maxDx","tabsCharDelta","tokenColorId","tokenColor","insertSpacesCount","ViewOverlayWidgets","widgetData","maxMinWidth","widgetMinWidthInPx","stackCoordinates","maxRight","widgetHeight","editorBoundingBox","Viewport","MinimapLinesRenderingData","ViewLineData","inlineDecorations","ViewLineRenderingData","_ViewLineRenderingData","hasVariableFonts","OverviewRulerDecorationsGroup","_OverviewRulerDecorationsGroup","Settings","borderColor","editorOverviewRulerBorder","cursorColorSingle","editorCursorForeground","cursorColorPrimary","editorMultiCursorPrimaryForeground","cursorColorSecondary","editorMultiCursorSecondaryForeground","minimapEnabled","editorOverviewRulerBackground","canvasLeftOffset","canvasWidth","laneCount","leftWidth","rightWidth","centerWidth","centerOffset","rightOffset","DecorationsOverviewRuler","renderNow","newSettings","editorCtx","canvasHeight","heightRatio","minDecorationHeight","halfMinDecorationHeight","canvasCtx","decorationGroup","decorationGroupData","prevLane","prevY1","prevY2","yCenter","cursorHeight","halfCursorHeight","cursorX","cursorW","prevColor","ColorZone","OverviewRulerZone","heightInLines","colorZone","OverviewZoneManager","getVerticalOffsetForLine","newZones","colorZonesInvalid","totalHeight","halfMinimumHeight","allColorZones","zone","colorZone2","offset1","ycenter","halfHeight","OverviewRuler","cssClassName","zones","colorZones","id2Color","currentColorId","currentFrom","currentTo","zoneColorId","zoneFrom","zoneTo","Rulers","currentCount","desiredCount","rulerWidth","addCount","ruler","ScrollDecorationViewPart","newShouldShow","HorizontalRangeWithStyle","LineVisibleRangesWithStyle","toStyledRange","toStyled","SelectionsOverlay","_SelectionsOverlay","previousFrame","previousFrameTop","previousFrameBottom","topLineNumber","bottomLineNumber","curLineRange","curLeft","curRight","startStyle","endStyle","prevLeft","prevRight","abs","nextLeft","nextRight","output2","hasMultipleSelections","visibleRangesHaveStyle","firstLineNumber","innerCornerOutput","restOfSelectionOutput","className3","thisFrameVisibleRangesWithStyle","visibleRangesWithStyle","internalCorners","restOfSelection","editorSelectionForegroundColor","editorSelectionForeground","ViewCursorRenderData","textContent","textContentClassName","CursorPlurality","CursorPlurality2","ViewCursor","plurality","pauseAnimation","getCharContainingOffset","nextGrapheme","lineCursorHeight","lineHeightAdjustment","width3","computeScreenAwareSize","visibleRangeForCharacter","firstVisibleRangeForCharacter","ViewCursors","_ViewCursors","secondaryPositions","addCnt","secondaryCursor","blinkingStyle","isHidden","isSolid","renderDataLen","primaryRenderData","secondaryRenderData","cursorThemes","editorCursorBackground","editorMultiCursorPrimaryBackground","editorMultiCursorSecondaryBackground","cursorTheme","caret2","caretBackground","invalidFunc","ViewZones","whitespaces","oldWhitespaces","hadAChange","whitespaceAccessor","props","oldWhitespace","zoneAfterModelPosition","validAfterLineNumber","zoneBeforeModelPosition","isVisible","zonesHaveChanged","safeInvoke1Arg","myZone","visibleWhitespaces","visibleZones","hasVisibleZone","visibleWhitespace","newTop","newHeight","newDisplay","func","arg1","WhitespaceOverlay","WhitespaceOptions","editorWhitespaces","USE_SVG","maxLeft","prevChCode","strokeWidth","p1","p2","p3","p4","p5","p6","p7","p8","p9","p10","p11","experimentalWhitespaceRendering","ViewportData","partialData","whitespaceViewportData","EditorTheme","ViewContext","eventHandler","quadVertices","ensureNonNullable","observeDevicePixelDimensions","parentWindow","observer","entry2","__decorate8","nextId","GlyphRasterizer","devicePixelRatio","_decorationStyleCache","devicePixelFontSize","decorationStyleSetId","canvasDim","xSubPixelXOffset","bgId","bg","decorationStyleSet","fontSb","originX","originY","bgR","bgG","bgB","outBoundingBox","alphaOffset","__decorate9","__param7","TaskQueue2","task","taskDuration","longestTask","lastDeadlineRemaining","deadlineRemaining","PriorityTaskQueue","getActiveWindow","identifier","IdleTaskQueueInternal","IdleTaskQueue","TextureAtlasShelfAllocator","_canvas","_textureIndex","rasterizedGlyph","glyphWidth","glyphHeight","glyph","h2","rowHeight","rowWidth","rowY","rowW","usedPixels","wastedPixels","totalPixels","TextureAtlasSlabAllocator","NKeyMap","sizeCandidate","desiredSlabSize","slab","glyphsPerSlab","openRegions","unusedW","unusedH","addEntryToMapArray","glyphsPerRow","slabEntryPixels","slabEdgePixels","restrictedPixels","slabW","slabH","entriesPerRow","entriesPerCol","thisSlabPixels","unusedRegions","edgeUsedPixels","efficiency","__decorate10","__param8","TextureAtlasPage_1","TextureAtlasPage","textureIndex","pageSize","allocatorType","themeService","rasterizer","IThemeService","__decorate11","__param9","TextureAtlas_1","TextureAtlas","_maxTextureSize","_themeService","dprFactor","firstPage","nullRasterizer","page","pageIndex","taskQueue","fgColor","init_configuration","Severity","Severity3","_error","_warning","_warn","_info","_ignore","fromValue","equalsIgnoreCase","toString","severity","severity_default","Severity2","INotificationService","NoOpNotification","GPULifecycle","GPULifecycle2","requestDevice","fallback2","adapter","wrapDestroyableInDisposable","createBuffer","device","initialValues","isFunction","createTexture","BufferDirtyTracker","createObjectCollectionBuffer","propertySpecs","capacity","ObjectCollectionBuffer","spec","ObjectCollectionBufferEntry","removeFromEntries","listeners","deletedEntryIndex","newView","_view","_propertySpecsMap","_dirtyTracker","propertySpec","rectangleRendererWgsl","RectangleRenderer","_contentLeft","_devicePixelRatio","_ctx","presentationFormat","layoutInfoUniformBuffer","bufferValues","updateBufferValues","canvasDevicePixelWidth","canvasDevicePixelHeight","scrollOffsetBufferSize","createShapeBindBuffer","module","pipeline","red","green","blue","shapes","encoder","commandBuffer","DecorationCssRuleExtractor","decorationClassName","stylesheets","getActiveDocument","stylesheet","searchTerm","endOfResult","DecorationStyleCache","bold","opacity","__decorate12","__param10","ViewGpuContext_1","ViewGpuContext","_notificationService","configurationService","message","choices","ref","dprObs","canvasDevicePixelDimensions","supported","styleRules","supportsCssRule","reasons","problemTypes","problemSelectors","problemRules","IConfigurationService","gpuSupportedDecorationCssRules","init_date","createContentSegmenter","AsciiContentSegmenter","GraphemeContentSegmenter","segmenter","safeIntl","segmentedContent","segmenterIndex","segment","BaseRenderStrategy","_device","_glyphRasterizer","fullFileRenderStrategyWgsl","ViewportRenderStrategy","_ViewportRenderStrategy","glyphRasterizer","lineCountWithIncrement","bufferSize","viewLineOptions","absoluteOffsetX","absoluteOffsetY","tabXOffset","cellIndex","decorationStyleSetBold","decorationStyleSetColor","decorationStyleSetOpacity","fillStartIndex","fillEndIndex","contentSegmenter","cellBuffer","lineIndexCount","parsedColor","parseCssFontWeight","parseCssOpacity","offsetBefore","visibleObjectCount","FullFileRenderStrategy","_FullFileRenderStrategy","upToDateLines","upToDateLine","dirtyLineStart","dirtyLineEnd","queuedBufferUpdates","deletedLineContentStartIndex","deletedLineContentEndIndex","nullContentStartIndex","parseCssFontWeight2","parseCssOpacity2","__decorate13","__param11","ViewLinesGpu","lastViewportData","atlas","atlasInfoUniformBuffer","viewportRenderStrategy","layerIndex","entryCount","entryOffset","resolvedStartColumn","resolvedStartCssPixelOffset","resolvedEndColumn","resolvedEndCssPixelOffset","mouseContentHorizontalOffsetDevicePixels","spaceWidthDevicePixels","widthSoFar","IMEImpl","IME","IKeybindingService","AbstractEditContext","SimplePagedScreenReaderStrategy","linesPerPage","trimLongText","selectionStartPage","selectionStartPageRange","selectionEndPage","selectionEndPageRange","pretextRange","pretextStart","pretext","lastLineMaxColumn","posttextRange","posttextEnd","posttext","selectionRange1","selectionRange2","ariaLabelForScreenReaderContent","keybindingService","toggleKeybindingLabel","runCommandKeybindingLabel","keybindingEditorKeybindingLabel","editorNotAccessibleMessage","newlinecount","__decorate14","__param12","VisibleTextAreaData","distanceToModelLineStart","widthOfHiddenLineTextBefore","distanceToModelLineEnd","visibleRangeProvider","startModelPosition","endModelPosition","tokenPresentation","canUseZeroSizeTextarea","TextAreaEditContext","overflowGuardContainer","_keybindingService","simplePagedScreenReaderStrategy","textAreaInputHost","textBefore","placeholderText","isAndroid","positionOffsetInWord","viewAnchorPosition","textAreaWrapper","OS","ta","widthOfHiddenTextBefore","textBeforeSelection","lineFeedOffset1","lineTextBeforeSelection","tabOffset1","desiredVisibleBeforeCharCount","visibleBeforeCharCount","distanceToModelLineStart2","hiddenLineTextBefore","tabSize2","widthOfHiddenTextBefore2","measureText","textAfterSelection","lineFeedOffset2","lineTextAfterSelection","tabOffset2","desiredVisibleAfterCharCount","visibleAfterCharCount","ANDROID_WORD_SEPARATORS","goingLeft","goingRight","distance","accessibilityPageSize","visibleStart","visibleEnd","left2","viewLineData","startTokenIndex","endTokenIndex","textareaSpansSingleToken","presentation","tac","targetDocument","__decorate15","__param13","FocusTracker2","_onFocusChange","focused","editContextAddDisposableListener","__decorate16","__param14","ttPolicy","LINE_NUMBER_ATTRIBUTE","RichScreenReaderContent","RichScreenReaderState","RichPagedScreenReaderStrategy","primarySelection","focusedElement","intervals","stateStartLineNumber","verticalOffsetOfStateStartLineNumber","verticalOffsetOfPositionLineNumber","newFocusValue","interval","renderedLine","positionLineData","disableMonospaceOptimizations","useFontLigatures","htmlBuilder","renderOutput","trustedhtml","RichRenderedScreenReaderLine","viewSelection","activeDocumentSelection","startRenderedLine","endRenderedLine","modelStartRange","characterCountForStart","endRange","modelEndRange","characterCountForEnd","startDomNode","endDomNode","startChildren","endChildren","endContainer","startSpanElement","endSpanElement","isHTMLElement","startLineDomNode","endLineDomNode","startLineNumberAttribute","endLineNumberAttribute","startMapping","endMapping","LineInterval","lineIntervals","BaseEdit","replacements","lastEndEx","replacement","newReplacements","lastReplacement","joined","edits1","edits2","edit1Queue","edit1ToEdit2","firstEdit1ToEdit2","firstIntersecting","lastIntersecting","newReplaceRangeStart","newReplaceRange","middle","BaseReplacement","BaseStringEdit","resultText","BaseStringReplacement","newText","originalText","oldText","prefixLen","suffixLen","StringReplacement","StringEdit","_StringEdit","_StringReplacement","rangeInReplacement","applyEditsToRanges","sortedRanges","intersecting","overlap","rangeAheadOfReplaceRange","init_assert","PositionOffsetTransformerBase","offsetRange","Deps","_setPositionOffsetTransformerDependencies","deps","PositionOffsetTransformer","valPos","lineLength2","findLastIdxMonotonous","lineIdx","AbstractText","LineBasedText","_getLineContent","_lineCount","assert","ArrayText","StringText","TextEdit","_TextEdit","TextReplacement","assertFn","checkAdjacentItems","curLine","columnDeltaInCurLine","startPos","rangeFromPositions","getStart","getEnd","lastEditEnd","editStart","editEnd","strText","previousEditEndLineNumber","columnOffset","newRangeStart","curEdit","nextEdit","gapRange","gapText","beforeRange","beforeText","afterRange","afterText","replacedText","halfMax","_TextReplacement","initialValue","second","normalizedOriginalText","normalizedModifiedText","commonPrefixLen","commonSuffixLen","__decorate17","__param15","SimpleScreenReaderContent","isScreenReaderOptimized","selectionOffsetStart","selectionOffsetEnd","modelScreenReaderContentStartPositionWithinEditor","offsetOfStartOfScreenReaderContent","offsetOfSelectionStart","offsetOfSelectionEnd","screenReaderContentText","offsetTransformer","positionOfStartWithinText","positionOfEndWithinText","positionOfSelectionStart","positionOfSelectionEnd","__decorate18","__param16","ScreenReaderSupport","renderRichContent","editorScrollLeft","editorScrollTop","EditContext","EditContext2","create4","NativeEditContextRegistryImpl","ownerID","nativeEditContext","NativeEditContextRegistry","__decorate19","__param17","CompositionClassName","CompositionClassName2","NativeEditContext","_visibleRangeProvider","logService","highSurrogateCharacter","isLowSurrogate","textUpdateEvent","reenableTracking","standardKeyboardEvent","editContextState","selectionEndOffset","selectionStartOffset","editContextPrimarySelection","primarySelectionStartLine","primarySelectionEndLine","endColumnOfEndLineNumber","rangeOfText","formats","editContextStartPosition","f","offsetOfEditContextText","startPositionOfDecoration","endPositionOfDecoration","thickness","parentBounds","verticalOffsetStart","selectionBounds","typicalHalfWidthCharacterWidth","characterBounds","textStartLineOffsetWithinEditor","characterStartPosition","characterEndPosition","characterModelRange","characterViewRange","characterLinesVisibleRanges","characterVerticalOffset","cursorState","RulersGpu","shape","editorRuler","rulerData","GpuMarkOverlay","_GpuMarkOverlay","cannotRenderReasons","__decorate20","__param18","View","editorContainer","colorTheme","overflowWidgetsDomNode","CodeEditorWidgetFocusTracker","decorationsOverviewRuler","scrollDecoration","contentViewOverlays","marginViewOverlays","margin","blockOutline","overviewRulerData","editContextEnabled","accessibilitySupport","isEditContextFocused","indexOfEditContext","laneModel","glyphs","viewZoneId","viewPart","rendering","EditorRenderingCoordinator","viewParts","safeInvokeNoArg","viewPartsToRender","partialViewportData","everything","newPreference","_EditorRenderingCoordinator","renderingIndex","runner","runAtThisOrScheduleAtNextAnimationFrame","coordinatedRenderings","datas","domElement","trackFocus","ModelLineProjectionData","injectionOffsets","injectionOptions","breakOffsets","breakOffsetsVisibleColumn","wrappedTextIndentLength","outputLineIndex","outputOffset","offsetInInput","inputOffset","inputOffsetInInputWithInjection","offsetInInputWithInjections","OutputPosition","normalizedOffsetInUnwrappedLine","maxOutputLineIndex","hasRightCursorStop","hasLeftCursorStop","assertNever","totalInjectedTextLengthBefore","injectedTextStartOffsetInInputWithInjections","injectedTextEndOffsetInInputWithInjections","cursorStop","InjectedTextCursorStops","baseLineNumber","ttPolicy2","DOMLineBreaksComputerFactory","_DOMLineBreaksComputerFactory","wrappingIndent","wordBreak","wrapOnEscapedLineFeeds","previousLineBreakData","createLineBreaks","assertReturnsDefined","firstLineBreakColumn","injectedTextsPerLine","createEmptyLineBreakWithPossiblyInjectedText","requestIdx","overallWidth","additionalIndentSize","additionalIndentLength","containerDomNode","firstNonWhitespaceIndices","wrappedTextIndentLengths","renderLineContents","allCharOffsets","allVisibleColumns","indentWidth","renderLineContent","renderLine","lineDomNodes","readLineBreaks","visibleColumns","curInjectedTexts","initialVisibleColumn","wrappingIndentLength","hangingOffset","charOffsets","nextCharCode","spans","discoverBreaks","lowRects","highRects","readClientRect","midRects","CodeEditorContributions","contributions","runWhenWindowIdle","contributionsState","contribution","instantiation","contribs","contrib","instance","InternalEditorAction","alias","_precondition","_run","_contextKeyService","EditorType","init_characterClassifier","MonospaceLineBreaksComputerFactory","_MonospaceLineBreaksComputerFactory","breakBeforeChars","breakAfterChars","WrappingCharacterClassifier","previousBreakingData","columnsForFullWidthChar","createLineBreaksFromPreviousLineBreaks","createLineBreaks2","arrPool1","arrPool2","CharacterClassifier","BREAK_BEFORE","BREAK_AFTER","isKeepAll","prevBreakingOffsets","prevBreakingOffsetsVisibleColumn","computeWrappedTextIndentLength","wrappedLineBreakColumn","breakingOffsets","breakingOffsetsVisibleColumn","breakingOffsetsCount","lastBreakingOffset","lastBreakingOffsetVisibleColumn","breakingColumn","prevLen","prevIndex","bestDistance","prevBreakOffset","prevBreakOffsetVisibleColumn","breakOffset","breakOffsetVisibleColumn","forcedBreakOffset","forcedBreakOffsetVisibleColumn","prevCharCodeClass","entireLineFits","charStartOffset","charCodeClass","computeCharWidth","canBreak","hitATabCharacter","prevCharWidth","remainingWidthOfNextLine","charCodeAtForcedBreakOffset","_lineText","tabCharacterWidth","numberOfAdditionalTabs","Cursor","_Cursor","cacheInput","cacheOutput","sStartPosition","sEndPosition","validPosition","validSStartPosition","validSEndPosition","viewSelectionStart","viewSelectionStart1","viewSelectionStart2","CursorCollection","findFirstMin","findLastMax","secondaryStates","secondaryCursorsLength","secondaryStatesLength","createCnt","sortedCursors","sortedCursorIndex","current","nextSelection","shouldMergeCursors","winnerSortedCursorIndex","looserSortedCursorIndex","looserIndex","winnerIndex","looserSelection","winnerSelection","resultingRange","looserSelectionIsLTR","winnerSelectionIsLTR","resultingSelectionIsLTR","resultingState","sortedCursor","CursorContext","ViewCompositionStartEvent","ViewCompositionEndEvent","ViewConfigurationChangedEvent","ViewCursorStateChangedEvent","ViewDecorationsChangedEvent","ViewFlushedEvent","ViewFocusChangedEvent","isFocused","ViewLanguageConfigurationEvent","ViewLineMappingChangedEvent","ViewLinesChangedEvent","ViewLinesDeletedEvent","ViewLinesInsertedEvent","ViewRevealRangeRequestEvent","revealHorizontal","ViewScrollChangedEvent","ViewThemeChangedEvent","ViewTokensChangedEvent","ViewTokensColorsChangedEvent","ViewZonesChangedEvent","ViewModelEventDispatcher","mergeResult","ViewModelEventsCollector","outgoingEvents","viewEvents","outgoingEvent","eventHandlers","ContentSizeChangedEvent","_ContentSizeChangedEvent","oldContentWidth","oldContentHeight","contentHeight","FocusChangedEvent","_FocusChangedEvent","oldHasFocus","hasFocus","WidgetFocusChangedEvent","ScrollChangedEvent","_ScrollChangedEvent","oldScrollWidth","oldScrollLeft","oldScrollHeight","oldScrollTop","ViewZonesChangedEvent2","HiddenAreasChangedEvent","CursorStateChangedEvent","_CursorStateChangedEvent","oldSelections","oldModelVersionId","modelVersionId","reachedMaxCursorCount","ReadOnlyEditAttemptEvent","ModelDecorationsChangedEvent","ModelLanguageChangedEvent","ModelLanguageConfigurationChangedEvent","ModelContentChangedEvent","ModelOptionsChangedEvent","ModelTokensChangedEvent","ModelLineHeightChangedEvent2","ModelFontChangedEvent2","CursorsController","eventsCollector","autoClosedAction","multiCursorLimit","CursorModelState","columnSelectData","viewPositions","revealViewRange","revealViewSelections","desiredSelections","hadFlushEvent","selectionsFromMarkers","primaryCursor","autoClosedCharactersRanges","autoClosedEnclosingRanges","autoClosedCharactersDeltaDecorations","autoClosedEnclosingDeltaDecorations","autoClosedCharactersDecorations","autoClosedEnclosingDecorations","AutoClosedAction","opResult","editReason","CommandExecutor","viewSelections","newCursorState","indices","closeChar","autoClosingPairsCandidates","openChar","closeCharIndex","openCharIndex","autoClosingIndices","undoEdits","openCharInnerIndex","closeCharInnerIndex","undoEdit","selections2","cursorChangeReason","CompositionState","compositionOutcome","charLength","newSelections","_CursorModelState","autoClosedActions","enclosingRanges","selectionsBefore","commandsData","loserCursorsMap","filteredOperations","selectionsAfter","groupedInverseEditOperations","minorBasedSorter","cursorSelections","losingCursors","losingCursorIndex","losingCursor","hadTrackedEditOperation","majorIdentifier","operationMinor","addEditOperation","editOperationBuilder","_selection","trackPreviousOnEmpty","previousOp","currentOp","loserMajor","CompositionLineState","startSelectionOffset","endSelectionOffset","_CompositionState","original","commonPrefix","commonSuffix","insertedTextStartOffset","insertedTextEndOffset","init_modesRegistry","fallback","tokenizeToString","_tokenizeToString","tokenizeLineToHTML","viewLineTokens","useNbsp","prevIsSpace","partContent","tokenizationResult","escape","CustomLine","specialHeight","prefixSum","LineHeightsManager","defaultLineHeight","customLineHeightData","ArrayMap2","decorationID","customLines","customLine","searchIndex","modifiedIndex","previousSpecialLine","numberOfCustomLines","candidateStartIndexOfDeletion","startIndexOfDeletion","candidateEndIndexOfDeletion","endIndexOfDeletion","isEndIndexBiggerThanStartIndex","isEndIndexEqualToStartIndexAndCoversCustomLine","maximumSpecialHeightOnDeletedInterval","prefixSumOnDeletedInterval","firstSpecialLineDeleted","lastSpecialLineDeleted","firstSpecialLineAfterDeletion","heightOfFirstLineAfterDeletion","totalHeightDeleted","decorationIdsSeen","newOrderedCustomLines","newDecorationIDToSpecialLine","numberOfDeletions","candidateStartIndexOfInsertion","startIndexOfInsertion","toReAdd","decorationsImmediatelyAfter","decorationsImmediatelyBefore","decorationsWithGaps","pendingChange","candidateInsertionIndex","insertionIndex","newOrderedSpecialLines","maximumSpecialHeight","nextSpecialLine","binarySearch2","PendingChanges","linesLayout","inserts","removes","EditorWhitespace","afterLineNumber","ordinal","minWidth","LinesLayout","_LinesLayout","newAfterLineNumber","insert","toRemove","toChange","applyRemoveAndChange","linesHeight","whitespacesHeight","lastWhitespaceBeforeLineNumber","halfDelta","firstWhitespaceAfterLineNumber","previousLinesHeight","previousWhitespacesHeight","midLineNumber","midLineNumberVerticalOffset","verticalOffset1","verticalOffset2","startLineNumberVerticalOffset","whitespaceIndex","whitespaceCount","currentWhitespaceHeight","currentWhitespaceAfterLineNumber","currentVerticalOffset","currentLineRelativeOffset","STEP_SIZE","bigNumbersDelta","linesOffsets","verticalCenter","centeredLineNumber","currentLineTop","currentLineBottom","endLineNumberVerticalOffset","completelyVisibleStartLineNumber","completelyVisibleEndLineNumber","endLineHeight","minWhitespaceIndex","maxWhitespaceIndex","maxWhitespaceVerticalOffset","maxWhitespaceHeight","midWhitespaceIndex","midWhitespaceVerticalOffset","midWhitespaceHeight","candidateIndex","candidateTop","candidateHeight","candidateAfterLineNumber","SMOOTH_SCROLLING_TIME","EditorScrollDimensions","EditorScrollable","scheduleAtNextAnimationFrame2","oldDimensions","contentWidthChanged","contentHeightChanged","ViewLayout","currentScrollPosition","maxLineWidth","extraHorizontalSpace","whitespaceMinWidth","firstLineNumberInViewport","whitespaceAboveFirstLine","visibleBox","InlineDecoration","inlineClassName","SingleLineInlineDecoration","inlineClassNameAffectsLetterSpacing","ViewModelDecorations","editorId","linesCollection","modelDecoration","cacheIsValid","modelDecorations","decorationsInViewport","decorationsInViewportLen","decorationOptions","viewModelDecoration","viewRange2","inlineDecoration","intersectedStartLineNumber","intersectedEndLineNumber","createModelLineProjection","lineBreakData","IdentityModelLineProjection","HiddenModelLineProjection","ModelLineProjection","startOffsetInInputWithInjections","endOffsetInInputWithInjections","spaces","_modelLineNumber","outputLineIdx","globalStartIndex","inlineDecorationsPerOutputLine","currentInjectedOffset","lineStartOffsetInInputWithInjections","lineEndOffsetInInputWithInjections","lineWithInjections","tokensToInsert","globalIndex","deltaStartIndex","outputColumn","deltaLineNumber","inputColumn","outputPosition","baseViewLineNumber","_IdentityModelLineProjection","_outputLineIndex","_fromOuputLineIndex","_toOutputLineIndex","_inputColumn","_outputColumn","_HiddenModelLineProjection","_globalStartIndex","_needed","_result","_deltaLineNumber","_spaces","_makeSpaces","PrefixSumComputer","insertValues","toUint32","oldValues","oldPrefixSum","insertValuesLen","maxCount","sum2","PrefixSumIndexOfResult","ConstantTimePrefixSumComputer","viewLinesAbove","sumAbove","IdentityCoordinatesConverter","expectedModelPosition","_viewRange","expectedModelRange","ViewModelLinesFromProjectedModel","domLineBreaksComputerFactory","monospaceLineBreaksComputerFactory","wrappingStrategy","CoordinatesConverter","resetHiddenAreas","previousLineBreaks","injectedTextDecorations","lineBreaksComputer","injectedTextQueue","lineInjectedText","linesBreaks","hiddenAreas","areaId","hiddenAreaStart","hiddenAreaEnd","hiddenAreaIdx","nextLineNumberToUpdateHiddenArea","isInHiddenArea","decId","validatedRanges","normalizeLineRanges","oldRanges","hasDifference","hasVisibleLine","lineChanged","newOutputLineCount","_modelColumn","newTabSize","equalFontInfo","equalWrappingStrategy","equalWrappingColumn","equalWrappingIndent","equalWordBreak","onlyWrappingColumnChanged","outputFromLineNumber","outputToLineNumber","_toLineNumber","lineBreaks","totalOutputLineCount","insertLines","insertPrefixSumValues","outputLineCount","oldOutputLineCount","lineMappingChanged","changeFrom","changeTo","insertFrom","insertTo","deleteFrom","deleteTo","viewLinesChangedEvent","viewLinesInsertedEvent","viewLinesDeletedEvent","modelMinPosition","modelMaxPosition","viewStartPosition","viewEndPosition","ViewLineInfo","viewLineInfo","minViewColumn","maxViewColumn","viewStartLineNumber","viewEndLineNumber","startViewLine","endViewLine","lastVisibleModelPos","curModelLine","lastVisibleModelPos2","ViewLineInfoGroupedByModelRange","activeViewPosition","modelActivePosition","resultPerViewLine","modelRangeStartLineNumber","bracketGuidesPerModelLine","IndentGuideHorizontalLine","modelStart","modelEnd","resultRepeatCount","resultRepeatOption","modelStartLineIndex","modelEndLineIndex","reqStart","modelLineIndex","viewLineStartIndex","viewLineEndIndex","viewIndents","currIndex","blockAtIndex","startModelLineIndex","startRemainder","fromViewLineIndex","remainingViewLineCount","computedModelColumn","validViewStart","validViewEnd","allowZeroLineNumber","belowHiddenRanges","inputLineNumber","lineIndexChanged","deltaLineNumber2","finalResult","finalResultLen","prevDecId","currentRangeStart","currentRangeEnd","modelLineWrappedLineIdx","allowZero","ViewModelLinesFromModelAsIs","_newTabSize","_fontInfo","_wrappingStrategy","_wrappingColumn","_wrappingIndent","_versionId","_minLineNumber","_maxLineNumber","activePosition","MAX_LANE","GlyphMarginLanesModel","bytes","persist","bit","USE_IDENTITY_LINES_COLLECTION","ViewModel","_attachedView","_transactionalTarget","HiddenAreasModel","ViewportStart","linesViewportData","viewVisibleRange","modelVisibleRanges","hasWidgetFocus","previousViewportStartViewPosition","previousViewportStartModelPosition","StableViewport","stableViewport","hadOtherModelChange","hadModelLineChangeThatChangedLineMapping","lineBreakQueue","linesDeletedEvent","insertedLineBreaks","linesInsertedEvent","changedLineBreakData","linesChangedEvent","viewportStartWasValid","viewPositionTop","filteredChanges","filteredEvent","viewRanges","fontDecorations","fontDecoration","forceUpdate","mergedRanges","firstModelLineInViewPort","linesAround","startViewLineNumber","endViewLineNumber","hiddenStartLineNumber","hiddenEndLineNumber","compatViewState","firstPosition","firstPositionDeltaTop","rtlCount","viewportDecorationsCollection","OverviewRulerDecorations","resultModelPosition","modelAnchor","modelRanges","forceCRLF","hasEmptyRange","hasNonEmptyRange","modelLineNumbers","prevModelLineNumber","PLAINTEXT_LANGUAGE_ID","useDefaultFontFamily","_ViewportStart","viewportStartLineTrackedRange","_viewLineNumber","_isValid","_modelTrackedRange","_startLineDelta","viewportStartLineTop","prevGroup","prevData","prevEndLineNumber","rangeArraysEqual","mergeLineRangeArray","item1","item2","viewportStartModelPosition","startLineDelta","init_commands","ServiceCollection","service","instanceOrDescriptor","init_actions2","__decorate26","__param24","CodeEditorWidget_1","CodeEditorWidget","codeEditorWidgetOptions","codeEditorService","commandService","contextKeyService","notificationService","accessibilityService","languageFeaturesService","createEventDeliveryQueue","InteractionEmitter","BooleanEventEmitter","EDITOR_ID","MenuId","options3","EditorContextKeysManager","EditorModeContext","EditorExtensionsRegistry","internalAction","isDropIntoEnabled","DragAndDropObserver","eolPreference","hasTextFocus","detachedModel","decorationType","subTypes","subType","modelData","maxCol","validatedModelRange","something","isSelection","isRange","revealVerticalInCenter","codeEditorState","reducedState","payload","clipboardEvent","endCursorState","sourceStr","EditorDecorationsCollection","decorationIds","decorationTypeKey","postponeRendering","forceRedraw","domNodeHeight","listenersToRemove","attachedView","e1","hasRealView","ModelData","viewUserInputEvents","removeDomNode","ICommandService","_emitterOptions","_contributions","deliveryQueue","Schemas","thisArgs","newDecorationIds","squigglyStart","squigglyEnd","getSquigglySVGData","dotdotdotStart","dotdotdotEnd","getDotDotDotSVGData","errorForeground2","editorErrorForeground","warningForeground","editorWarningForeground","infoForeground","editorInfoForeground","hintForeground","editorHintForeground","unnecessaryForeground","editorUnnecessaryCodeOpacity","isHotReloadEnabled","registerHotReloadHandler","handler","handlers","registerGlobalHotReloadHandler","hotReloadHandlers","args2","results","newExports","oldExports","newSrc","exportedItem","oldExportedItem","oldDescriptor","readHotReloadableExport","observeHotReloadableExports","_newExports","classes","createHotClass","clazz","constObservable","IAccessibilitySignalService","Sound","_Sound","options2","fileName","SoundSource","randomOneOf","AccessibilitySignal","_AccessibilitySignal","sound","name","legacySoundSettingsKey","settingsKey","legacyAnnouncementSettingsKey","announcementMessage","managesOwnEnablement","soundSource","signal","localize","init_contextkey","init_instantiation","init_lifecycle","init_observable","observableConfigValue","key","defaultValue","configurationService","debugLocation","DebugLocation","observableFromEventOpts","handleChange","e","bindContextKey","service","computeValue","boundKey","store","DisposableStore","derivedOpts","reader","value","IProgressService","createDecorator","emptyProgressRunner","Progress","callback","item","IEditorProgressService","init_position","init_range","init_editorContextKeys","init_editorExtensions","init_codeEditorService","StableEditorScrollState","_StableEditorScrollState","editor2","visiblePosition","visiblePositionScrollDelta","visibleRanges","visiblePositionScrollTop","_initialScrollTop","_initialContentHeight","_visiblePosition","_visiblePositionScrollDelta","_cursorPosition","currentCursorPosition","offset","init_dom","init_keyboardEvent","init_browser","init_mime","DataTransfers","Mimes","init_lazy","nullHoverDelegateFactory","hoverDelegateFactory","defaultHoverDelegateMouse","Lazy","defaultHoverDelegateElement","setHoverDelegateFactory","hoverDelegateProvider","getDefaultHoverDelegate","placement","createInstantHoverDelegate","init_platform","init_nls","init_arrays","init_event","init_keyCodes","init_network","asCssValueWithDefault","cssPropertyValue","dflt","variableMatch","varArguments","identValue","value","out","stringValue","asCSSUrl","uri","inline","FileAccess","className","escapingExpected","strings","values","result","str","i2","Builder","parts","joiner","init_dom","init_keyboardEvent","init_errors","init_htmlContent","init_iconLabels","IdGenerator","prefix","defaultGenerator","init_lazy","init_lifecycle","_getDefaults","_defaults","changeDefaults","newDefaults","escapeTest","escapeReplace","escapeTestNoEncode","escapeReplaceNoEncode","escapeReplacements","getEscapeReplacement","ch","escape$1","html3","encode","caret","edit","regex","opt","source","obj","name","val","valSource","cleanUrl","href","noopTest","splitCells","tableRow","count","row","match2","offset","escaped","curr","cells","rtrim2","c","invert","l","suffLen","currChar","findClosingBracket","b","level","outputLink","cap","link2","raw","lexer2","title","text2","token","indentCodeCompensation","matchIndentToCode","indentToCode","node","matchIndentInNode","indentInNode","_Tokenizer","options2","src","trimmed","lines","tokens","inBlockquote","currentLines","currentRaw","currentText","top","lastToken","oldToken","newText","newToken","bull","isordered","list2","itemRegex","endsWithBlankLine","endEarly","itemContents","line","t","nextLine","blankLine","indent","nextBulletRegex","hrRegex","fencesBeginRegex","headingBeginRegex","rawLine","istask","ischecked","spacers","hasMultipleLineBreaks","tag2","headers","aligns","rows","item","align","cell","trimmedUrl","rtrimSlash","lastParenIndex","linkLen","links","linkString","maskedSrc","prevChar","lLength","rDelim","rLength","delimTotal","midDelimTotal","endReg","lastCharLength","text3","hasNonSpaceChars","hasSpaceCharsOnBothEnds","prevCapZero","newline","blockCode","fences","hr","heading","bullet","lheading","_paragraph","blockText","_blockLabel","def","list","_tag","_comment","html","paragraph","blockquote","blockNormal","gfmTable","blockGfm","blockPedantic","escape2","inlineCode","br","inlineText","_punctuation","punctuation","blockSkip","emStrongLDelim","emStrongRDelimAst","emStrongRDelimUnd","anyPunctuation","autolink","_inlineComment","tag","_inlineLabel","link","reflink","nolink","reflinkSearch","inlineNormal","inlinePedantic","inlineGfm","inlineBreaks","block","inline2","_Lexer","__Lexer","rules","next","lastParagraphClipped","_","leading","tabs","cutSrc","extTokenizer","startIndex","tempSrc","tempStart","getStartIndex","errMsg","keepPrevChar","_Renderer","lang","langString","code","depth","ordered","start","body","j","type","startAttr","itemBody","checkbox","checked","header2","k","content","cleanHref","_TextRenderer","_Parser","__Parser","anyToken","genericToken","ret","textToken","renderer","_Hooks","markdown","Marked","args","callback","tableToken","listToken","childTokens","tokens2","extensions","pack","opts","ext","prevRenderer","args2","extLevel","prop","rendererProp","rendererFunc","tokenizer","tokenizerProp","tokenizerFunc","prevTokenizer","hooks","hooksProp","hooksFunc","prevHook","arg","ret2","walkTokens2","packWalktokens","parser2","origOpt","throwError","src2","e","silent","async","msg","markedInstance","marked","options","setOptions","use","walkTokens","parseInline","parse","parser","lexer","init_buffer","init_uri","stringify","replacer","parse2","data","revive","key","URI","VSBuffer","init_network","init_objects","init_resources","init_strings","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","apply","construct","x","fun","thisValue","Func","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","func","thisArg","_len","_key","_len2","_key2","addToSet","set","array2","transformCaseFunc","element","lcElement","cleanArray","index","clone","object","newObject","property","lookupGetter","desc","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text","html2","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","createDOMPurify","window2","DOMPurify","root","document2","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node4","Element2","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","MUSTACHE_EXPR2","ERB_EXPR2","TMPLIT_EXPR2","DATA_ATTR2","ARIA_ATTR2","IS_SCRIPT_OR_DATA2","ATTR_WHITESPACE2","CUSTOM_ELEMENT2","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","parentTagName","_forceRemove","_removeAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","_createNodeIterator","_isClobbered","elm","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","_isBasicCustomElement","parentNode","childNodes","childCount","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attributes","hookEvent","attr","namespaceURI","attrValue","_sanitizeShadowDOM","_sanitizeShadowDOM2","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","hookFunction","purify","basicMarkupHtmlTags","defaultAllowedAttrs","addDompurifyHook","cb","toDisposable","hookDomPurifyHrefAndSrcSanitizer","allowedLinkProtocols","allowedMediaProtocols","anchor","validateLink","allowedProtocols","defaultDomPurifyConfig","sanitizeHtml","untrusted","config","store","DisposableStore","resolvedConfig","resolvedAttributes","allowedAttrNames","allowedAttrPredicates","Schemas","replaceWithPlainTextHook","predicate","selfClosingTags","_config","replacement","convertTagToPlaintext","startTagText","endTagText","isSelfClosing","attrString","textNode","endTagTextNode","safeSetInnerHtml","init_mouseEvent","init_iconLabels2","defaultMarkedRenderers","dimensions","parseHrefAndDimensions","escapeDoubleQuotes","removeMarkdownEscapes","renderMarkdown","target","disposables","isDisposed","markedInstance2","codeBlocks","syncCodeBlocks","createMarkdownRenderer","preprocessMarkdownString","renderedMarkdown","newTokens","fillInIncompleteTokens","renderLabelWithIcons","renderedContent","sanitizerConfig","getDomSanitizerConfig","rewriteRenderedLinks","outElement","reset","tuples","renderedElements","placeholderElements","placeholderElement","renderedElement","img","listener","addDisposableListener","clickCb","mouseEvent","StandardMouseEvent","getWindow","activateLink","keyboardEvent","StandardKeyboardEvent","input","el","resolveWithBaseUri","massageHref","$","resolvedHref","marked2","id","postProcessCodeBlockLanguageId","escape","markdownEscapeEscapedIcons","mdStr","event","isHTMLElement","err","onUnexpectedError","uriMassage","part","cloneAndChange","isDomUri","baseUri","resolvePath","dirname2","sanitizeRenderedMarkdown","isTrusted","allowedMarkdownHtmlTags","allowedMarkdownHtmlAttributes","allowedLinkSchemes","renderAsPlaintext","plainTextWithCodeBlocksRenderer","plainTextRenderer","m","unescapeInfo","createPlainTextRenderer","items","Lazy","mergeRawTokenText","mergedTokenText","completeSingleLinePattern","subtoken","lastLine","completeCodespan","completeDoublestar","completeStar","completeDoubleUnderscore","completeUnderscore","hasLinkTextAndStartOfLinkTarget","hasStartOfLinkTargetAndNoLinkText","nextTwoSubTokens","completeLinkTargetArg","completeLinkTarget","completeLinkText","completeListItemPattern","lastListItem","lastListSubToken","listEndsInHeading","list3","newList2","previousListItemsText","lastListItemLead","newListItemText","newList","completeHeading","fullRawText","maxIncompleteTokensFixRounds","fillInIncompleteTokensOnce","completeTable","newListToken","newTokensList","completeTokens","completeWithString","closingString","shouldTrim","mergedRawText","trimmedRawText","numCols","hasSeparatorRow","line1Matches","prefixText","line1EndsInPipe","newRawText","baseHoverDelegate","Disposable","setBaseLayerHoverDelegate","hoverDelegate","getBaseLayerHoverDelegate","CombinedSpliceable","spliceables","deleteCount","elements","s","init_arrays","init_async","init_color","init_event","init_filters","init_numbers","init_platform","init_types","ListError","user","message","Range2","Range4","intersect","one","other","end","isEmpty","range2","intersects2","relativeComplement2","first2","second","groupIntersect","groups","r","intersection2","shift","much","consolidate","previousGroup","group","size2","concat3","g","RangeMap","paddingTop","topPadding","diff","before","after2","middle","len","position","newSize","groupCount","newCount","RowCache","renderers","templateId","isStale","domNode","templateData","makeChanges","cachedRows","cachedRow","applyDragImage","container","label","extraClasses","dragImage","__decorate27","decorators","d","StaticDND","DefaultOptions","ElementsDragAndDropData","ExternalElementsDragAndDropData","NativeDragAndDropData","dataTransfer","file","equalsDragFeedback","f1","f2","equals","ListViewAccessibilityProvider","accessibilityProvider","ListView","_ListView","getContentWidth","virtualDelegate","Delayer","Emitter","Event","Gesture","Scrollable","scheduleAtNextAnimationFrame","SmoothScrollableElement","EventType2","scrollValue","getActiveElement","containerRect","topOffset","scrollableOptions","lastRenderRange","previousRenderRange","deleteRange","removeRange","rowsToDispose","previousRestRange","previousRenderedRestRange","previousUnrenderedRestRanges","inserted","deleted","splice","delta","renderRange","renderedRestRange","updateRange","removeRanges","unrenderedRestRanges","insertRanges","scrollWidth","height","width2","scrollDimensions","getContentHeight","renderTop","renderHeight","renderLeft","updateItemsInDOM","onScroll","rangesToInsert","rangesToRemove","rangesToUpdate","role","update","checked2","referenceNode","style","scrollTop","reuseAnimation","DomEmitter","browserEvent","sector","DataTransfers","getDocument","selectionStore","movementStore","e2","selection","feedback","distinct","a","dragOverEffectPosition","disposableTimeout","dragData","viewTop","getTopLeftOffset","animate","upperLimit","targetIndex","relativePosition","clamp","scrollableElement","isSVGElement","rawIndex","max","inSmoothScrolling","anchorElementIndex","anchorElementTopDelta","heightDiff2","didChange","unrenderRanges","renderRanges","deltaScrollTop","newScrollTop","size3","isAncestor","BugIndicatingError","memoize","init_observable","__decorate28","TraitRenderer","trait","renderedElementIndex","rendered","insertCount","indexes","Trait","_trait","sortedIndexes","numericSort","sortedResult","toRender","disjunction","binarySearch","dispose","SelectionTrait","setAriaSelected","TraitSpliceable","view","identityProvider","pastElementsWithTrait","pastElementsWithTraitSet","elementsWithTrait","isListElementDescendantOfClass","className2","isMonacoEditor","isMonacoCustomToggle","isActionItem","isStickyScrollElement","isStickyScrollContainer","isButton","KeyboardController","$23","isEditableElement","isMacintosh","optionsUpdate","range","TypeNavigationMode","TypeNavigationMode2","TypeNavigationControllerState","TypeNavigationControllerState2","DefaultKeyboardNavigationDelegate","TypeNavigationController","keyboardNavigationLabelProvider","keyboardNavigationEventFilter","delegate","typing","onChar","EventHelper","onClear","focus","ariaLabel","alert","word","labelStr","matchesPrefix","fuzzy","matchesFuzzy2","DOMFocusController","onKeyDown","focusedDomElement","tabIndexElement","isSelectionSingleChangeEvent","isSelectionRangeChangeEvent","isMouseRightClick","isMouseEvent","DefaultMultipleSelectionController","MouseController","min","rangeSelection","contiguousRange","getContiguousRangeContaining","newSelection","relativeComplement","DefaultStyleController","styleElement","selectorSuffix","styles","focusAndSelectionOutline","inactiveFocusAndSelectionOutline","unthemedListStyles","Color","DefaultOptions2","PipelineRenderer","_templateId","renderDetails","AccessibiltyRenderer","observable","constObservable","autorun","reader","ariaLevel","ListViewDragAndDrop","dnd","originalEvent","targetElement","targetSector","List","didJustPressContextMenuKey","fromKeyDown","fromKeyUp","fromMouse","_options","EventBufferer","baseRenderers","viewOptions","createStyleSheet","n2","loop","filter","lastPageIndex","currentlyFocusedElementIndex","lastGoodPageIndex","previousScrollTop","nextpageScrollTop","timeout","getPaddingTop","firstPageIndex","firstGoodPageIndex","relativeTop","elementTop","elementHeight","isNumber","viewItemBottom","scrollBottom","$2","SELECT_OPTION_ENTRY_TEMPLATE_ID","SelectListRenderer","append","detail","decoratorRight","isDisabled","_templateData","SelectBoxList","_SelectBoxList","selected","contextViewProvider","selectBoxOptions","getDefaultHoverDelegate","widthControlOuterDiv","widthControlInnerDiv","EventType","addStandardDisposableListener","listIsVisibleOnTouchStart","showDropDown","option2","focusable","background","foreground2","border","listBackground","optionsBorder","disabled","focusSelect","preLayoutPosition","maxDetailsPaneHeight","_option","selectPosition","getDomNodePagePosition","verticalPadding","maxSelectDropDownHeightBelow","maxSelectDropDownHeightAbove","selectWidth","selectMinWidth","selectOptimalWidth","listHeight","minRequiredDropDownHeight","maxVisibleOptionsBelow","maxVisibleOptionsAbove","elementWidth","longest","longestLength","detailLength","rightDecoratorLength","getTotalWidth","localize","onSelectDropDownKeyDown","listRowElement","actionHandler","cleanRenderedMarkdown","child","selectedIndex","description","descriptionIsMarkdown","nextOptionDisabled","KeyCodeUtils","optionIndex","SelectBoxNative","eventType","showSelect","SelectBox","Widget","init_actions","init_nls","BaseActionViewItem","context","action","Action","ActionRunner","actionRunner","newContext","enableDragging","isFirefox","preserveFocus","isUndefinedOrNull","ActionViewItem","assertType","kbLabel","Separator","SelectActionViewItem","ctx","ActionBar","DisposableMap","createInstantHoverDelegate","previousKeys","nextKeys","eventHandled","focusedItem","trackFocus","firstEnabled","vi","keyCode","elem","indexOrElement","actions","actionViewItemElement","viewItemOptions","didFocus","clearNode","selectFirst","forceLoop","forceFocus","fromRight","preventScroll","actionViewItem","focusItem","isFunction","init_codicons","init_themables","init_utils5","init_lineRange","init_offsetRange","init_position","init_range","init_assert","LineRangeMapping","_LineRangeMapping","mapping","originalLineCount","modifiedLineCount","lastOriginalEndLineNumber","lastModifiedEndLineNumber","r2","LineRange","originalRange","modifiedRange","original","modified","origInclusiveRange","modInclusiveRange","RangeMapping","Range","isValidLineNumber","Position","normalizePosition","lineNumber","DetailedLineRangeMapping","_DetailedLineRangeMapping","rangeMappings","innerChanges","_RangeMapping","edit2","newRanges","idx","previous","current","TextReplacement","lineRangeMappingFromRangeMappings","alignments","originalLines","modifiedLines","dontAssertStartLine","changes","groupAdjacentBy","getLineRangeMapping","a1","a2","last","assertFn","checkAdjacentItems","m1","m2","rangeMapping","lineStartDelta","lineEndDelta","originalLineRange","modifiedLineRange","init_language","init_lineTokens","init_instantiation","init_codiconsUtil","init_jsonContributionRegistry","init_platform2","Extensions8","IconContribution","IconContribution2","getDefinition","contribution","registry","definition","ThemeIcon","iconRegistry","IconFontDefinition","IconFontDefinition2","toJSONObject","iconFont","fromJSONObject","json","stringOrUndef","isString","fontIdRegex","fontIdErrorMessage","IconRegistry","defaults","deprecationMessage","existing","enumIndex","iconContribution","propertySchema","sorter2","i1","classNames2","reference","contributions","i3","Registry","registerIcon","getIconRegistry","initialize","codiconFontCharacters","getCodiconFontCharacters","icon","fontCharacter","iconsSchemaId","schemaRegistry2","Extensions3","delayer2","RunOnceScheduler","widgetClose","Codicon","gotoPreviousLocation","gotoNextLocation","syncing","spinningLoading","__decorate29","__param25","paramIndex","decorator","accessibleDiffViewerInsertIcon","accessibleDiffViewerRemoveIcon","accessibleDiffViewerCloseIcon","AccessibleDiffViewer","createTrustedTypesPolicy","_parentNode","_visible","_setVisible","_canClose","_width","_height","_diffs","_models","_instantiationService","derived","visible","model","ViewModel2","View3","transaction","tx","isVisible","IInstantiationService","canClose","_accessibilitySignalService","observableValue","diffs","computeViewElementGroups","p","nextGroup","currentViewItem","LineType","AccessibilitySignal","subtransaction","tx2","OffsetRange","curElem","IAccessibilitySignalService","viewElementGroupLineMargin","viewElements","HeaderViewElement","origFullRange","modifiedFullRange","forEachAdjacent","origRange","modifiedRange2","origLineNumber","UnchangedLineViewElement","DeletedLineViewElement","modifiedLineNumber","AddedLineViewElement","ViewElementGroup","LineType2","originalLineNumber","_element","_model","_languageService","actionBarContainer","toAction","DomScrollableElement","applyStyle","autorunWithStore","originalOptions","modifiedOptions","applyFontInfo","originalModel","modifiedModel","originalModelOpts","modifiedModelOpts","lineHeight","viewItem","diffIndex","diffsLength","getAriaLines","originalChangedLinesCntAria","modifiedChangedLinesCntAria","isSelectedObs","isSelected","originalLayoutInfo","originalLineNumbersWidth","modifiedLayoutInfo","modifiedLineNumbersWidth","rowClassName","lineNumbersExtraClassName","spacerClassName","spacerIcon","spacer","spacerCodicon","lineContent","tabSize","languageIdCodec","fontInfo","verticalScrollbarSize","lineTokens","LineTokens","isBasicASCII2","ViewLineRenderingData","containsRTL2","renderViewLine2","RenderLineInput","EditorFontLigatures","ILanguageService","AccessibleDiffViewerModelFromEditors","editors","init_textModel","init_colorRegistry","diffMoveBorder","registerColor","diffMoveBorderActive","diffEditorUnchangedRegionShadow","diffInsertIcon","diffRemoveIcon","diffLineAddDecorationBackgroundWithIndicator","ModelDecorationOptions","diffLineDeleteDecorationBackgroundWithIndicator","diffLineAddDecorationBackground","diffLineDeleteDecorationBackground","diffAddDecoration","diffWholeLineAddDecoration","diffAddDecorationEmpty","diffDeleteDecoration","diffWholeLineDeleteDecoration","diffDeleteDecorationEmpty","init_cancellation","init_extensions","init_stopwatch","init_editorWorker","init_telemetry","__decorate30","__param26","WorkerBasedDocumentDiffProvider_1","IDiffProviderFactoryService","createDecorator","WorkerBasedDiffProviderFactoryService","instantiationService","WorkerBasedDocumentDiffProvider","registerSingleton","editorWorkerService","telemetryService","cancellationToken","uriKey","sw","StopWatch","timeMs","newOptions","IEditorWorkerService","ITelemetryService","LinesDiff","moves","hitTimeout","MovedText","lineRangeMapping","DiffAlgorithmResult","_DiffAlgorithmResult","seq1","seq2","SequenceDiff","_SequenceDiff","sequenceDiffs","doc1Length","OffsetPair","endExclusive","cur","seq1Range","seq2Range","_OffsetPair","offset1","offset2","InfiniteTimeout","_InfiniteTimeout","DateTimeout","timeout2","Array2D","y","isSpace","charCode","LineRangeFragment","_LineRangeFragment","chr","counter","key2","sumDifferences","maxLength","DynamicProgrammingDiffing","sequence1","sequence2","equalityScore","lcsLengths","directions","lengths","s12","s22","horizontalLen","verticalLen","extendedSeqScore","newValue","prevLen","lastAligningPosS1","lastAligningPosS2","reportDecreasingAligningPositions","s1","s2","MyersDiffAlgorithm","seqX","seqY","getXAfterSnake","V","FastInt32Array","paths","FastArrayNegativeIndices","SnakePath","lowerBound","upperBound","step","maxXofDLineTop","maxXofDLineLeft","newMaxX","lastPath","path","endX","endY","prev","length","arr","init_arraysFind","init_map","LinesSliceCharSequence","considerWhitespaceChanges","lineStartOffset","trimmedWsLength","trimmedStartLine","lineLength","prevCategory","getCategory","nextCategory","score3","getCategoryBoundaryScore","preference","findLastIdxMonotonous","lineOffset","pos1","pos2","isWordChar","isUpperCase","findLastMonotonous","findFirstMonotonous","score","category","computeMovedLines","hashedOriginalLines","hashedModifiedLines","excludedChanges","computeMovesFromSimpleDeletionsToSimpleInsertions","filteredChanges","unchangedMoves","computeUnchangedMoves","pushMany","joinCloseConsecutiveMoves","countWhere","removeMovesInSameDiff","deletions","insertions","deletion","highestSimilarity","best","insertion","similarity","original3LineHashes","SetMap","change","possibleMappings","compareBy","numberComparator","lastMappings","currentModifiedRange","nextMappings","lastMapping","reverseOrder","modifiedSet","LineRangeSet","originalSet","diffOrigToMod","modifiedSections","originalTranslatedSections","modifiedIntersectedSections","monotonousChanges","MonotonousArray","move","firstTouchingChangeOrig","firstTouchingChangeMod","linesAbove","lastTouchingChangeOrig","lastTouchingChangeMod","linesBelow","extendToTop","origLine","modLine","areLinesSimilar","extendToBottom","line1","line2","commonNonSpaceCharCount","inverted","seq","countNonWsChars","longerLineLength","originalDist","modifiedDist","changesMonotonous","diffBeforeEndOfMoveOriginal","diffBeforeEndOfMoveModified","optimizeSequenceDiffs","joinSequenceDiffsByShifting","shiftSequenceDiffs","prevResult","result2","nextResult","prevDiff","nextDiff","seq1ValidRange","seq2ValidRange","shiftDiffToBetterPosition","deltaBefore","deltaAfter","bestDelta","bestScore","seq2OffsetStart","seq2OffsetEndExclusive","seq1Offset","removeShortMatches","extendDiffsToEntireWordIfAppropriate","findParent","force","equalMappings","additional","lastPoint","scanWord","pair","equalMapping","w1","w2","w","equalPart","equalChars1","equalChars2","v1","v2","v","equalPart2","mergeSequenceDiffs","sequenceDiffs1","sequenceDiffs2","sd1","sd2","removeVeryShortMatchingLinesBetweenDiffs","_sequence2","shouldRepeat","shouldJoinDiffs","unchangedRange","lastResult","removeVeryShortMatchingTextBetweenLongDiffs","unchangedText","beforeLineCount1","beforeSeq1Length","beforeLineCount2","beforeSeq2Length","afterLineCount1","afterSeq1Length","afterLineCount2","afterSeq2Length","newDiffs","forEachWithNeighbors","newDiff","shouldMarkAsChanged","fullRange1","availableSpace","LineSequence","trimmedHash","indentationBefore","getIndentation","indentationAfter","DefaultLinesDiffComputer","perfectHashes","getOrCreateHash","hash2","originalLinesHashes","modifiedLinesHashes","lineAlignmentResult","lineAlignments","scanForWhitespaceChanges","equalLinesCount","seq1LastStart","seq2Offset","seq2LastStart","characterDiffs","ArrayText","validatePosition","pos","validateRange","ic","moveChanges","mappings","toLineRangeMapping","slice1","slice2","diffResult","check","sequenceDiff","init_beforeEditPositionMapper","init_combineTextEditInfos","__decorate31","__param27","DiffEditorViewModel","movedText","_diffProviderFactoryService","CancellationTokenSource","diffProvider","onChangeSignal","observableSignalFromEvent","contentChangedSignal","observableSignal","debouncer","lastUnchangedRegions","lastUnchangedRegionsOrigRanges","lastUnchangedRegionsModRanges","updatedLastUnchangedRegions","UnchangedRegion","isDefined","touching","sumLineCount","sum2","originalDecorationIds","modifiedDecorationIds","updateUnchangedRegions","newUnchangedRegions","visibleRegions","hiddenRegions","filterWithPrevious","newUnchangedRegions2","intersecting","f","textEdits","TextEditInfo","DiffState","currentSyncedMovedText","documentDiffProvider","readHotReloadableExport","originalTextEditInfos","edits","combineTextEditInfos","modifiedTextEditInfos","normalizeDocumentDiff","state","unchangedRegions","waitForState","ranges","regions","normalizeRangeMapping","_DiffState","DiffMapping","movedTexts","identical","quitEarly","_UnchangedRegion","minHiddenLineCount","minContext","inversedMappings","origStart","modStart","atStart","atEnd","lineCount","visibleLineCountTop","visibleLineCountBottom","visibleLineCountTop2","visibleLineCountBottom2","softAssert","visibleRanges","hiddenModified","originalStartLineNumber","modifiedStartLineNumber","modifiedEndLineNumberEx","isLast","newR","maxVisibleLineCountTop","maxVisibleLineCountBottom","bottom","init_dom","init_actions","init_codicons","init_lifecycle","init_platform","init_themables","init_nls","InlineDiffDeletedCodeMargin","Disposable","_visibility","_getViewZoneId","_marginDomNode","_modifiedEditor","_diff","_editor","_viewLineCounts","_originalTextModel","_contextMenuService","_clipboardService","ThemeIcon","Codicon","lineHeight","currentLineNumberOffset","useShadowDOM","isIOS","showContextMenu","x","y","actions","isDeletion3","Action","localize","originalText","lineContent","addStandardDisposableListener","e","top","height","getDomNodePagePosition","pad","marginDomNode","offset","lineNumberOffset","newTop","acc","i2","init_stringBuilder","ttPolicy3","createTrustedTypesPolicy","value","renderLines","source","options2","decorations","domNode","noExtra","applyFontInfo","hasCharChanges","sb","StringBuilder","maxCharsPerLine","renderedLineCount","viewLineCounts","lineIndex","lineNumber","lineTokens","lineBreakData","actualDecorations","LineDecoration","lastBreakOffset","breakOffset","viewLineTokens","renderOriginalLine","html3","trustedhtml","minWidthInPx","LineSource","t","mightContainNonBasicASCII","mightContainRTL","RenderOptions","_RenderOptions","editor2","modifiedEditorOptions","fontInfo","layoutInfo","tabSize","disableMonospaceOptimizations","typicalHalfwidthCharacterWidth","scrollBeyondLastColumn","lineDecorationsWidth","stopRenderingLineAfter","renderWhitespace","renderControlCharacters","fontLigatures","verticalScrollbarSize","setWidth","viewLineIdx","isBasicASCII2","ViewLineRenderingData","containsRTL2","output","renderViewLine","RenderLineInput","EditorFontLigatures","init_utils5","init_lineRange","init_position","init_instantiation","IClipboardService","createDecorator","IContextViewService","IContextMenuService","init_range","__decorate32","decorators","target","key","desc","c","r","d","__param28","paramIndex","decorator","DiffEditorViewZones","_targetWindow","_editors","_diffModel","_options","_diffEditorWidget","_canIgnoreViewZoneUpdateEvent","_origViewZonesToIgnore","_modViewZonesToIgnore","observableValue","animatedObservable","state","updateImmediately","RunOnceScheduler","_args","args","originalModelTokenizationCompleted","m","observableFromEvent","reader","alignments","derived","diffModel","diff","innerHunkAlignment","computeRangeAlignment","alignmentsSyncedMovedText","syncedMovedText","mappings","DiffMapping","createFakeLinesDiv","alignmentViewZonesDisposables","DisposableStore","alignmentsVal","origViewZones","modViewZones","modifiedTopPaddingVal","originalTopPaddingVal","renderSideBySide","deletedCodeLineBreaksComputer","originalModel","a","lineBreakDataIdx","modLineHeight","renderOptions","allowsTrueInlineDiffRendering","deletedCodeDomNode","l","_","InlineDecoration","diffDeleteDecoration","result","marginDomNode2","marginElement","diffRemoveIcon","zoneId","assertReturnsDefined","count","id","delta","createViewZoneMarginArrow","arrow","addDisposableListener","$","ignoreChange","autorun","newScrollTopModified","newScrollTopOriginal","deltaOrigToMod","trueTopOriginal","originalEditor","modifiedEditor","diffs","originalEditorAlignmentViewZones","modifiedEditorAlignmentViewZones","originalLineHeightOverrides","ArrayQueue","getAdditionalLineHeights","modifiedLineHeightOverrides","origLineHeight","lastOriginalLineNumber","lastModifiedLineNumber","handleAlignmentsOutsideOfDiffs","untilOriginalLineNumberExclusive","untilModifiedLineNumberExclusive","origNext","modNext","distOrig","distNext","LineRange","emitAlignment","origLineNumberExclusive","modLineNumberExclusive","forceAlignment","lastOrigLineNumber","lastModLineNumber","first2","originalRange","modifiedRange","originalAdditionalHeight","v","p","c2","modifiedAdditionalHeight","maxColumn","viewZonesToIgnore","viewZoneHeights","wrappingZoneHeights","hasWrapping","coordinatesConverter","editorLineHeight","lineCount","w","modelLineNumber","Position","joinCombine","v1","v2","mapping","rangeIsSingleLine","Range","range2","init_arrays","init_arraysFind","init_observable","init_offsetRange","MovedBlocksLinesFeature","_MovedBlocksLinesFeature","_rootElement","_originalEditorLayoutInfo","_modifiedEditorLayoutInfo","observableSignalFromEvent","model","moves","infoOrig","infoMod","lines","move","computeLineStart","t1","t2","start","startOffset","end","endOffset","from","to","bottom","OffsetRange","tieBreakComparators","compareBy","booleanComparator","numberComparator","layout2","LinesLayout2","padding","lineAreaLeft","lineAreaWidth","width2","idx","line","track","verticalY","arrowHeight","arrowWidth","right","rectWidth","rectHeight","rect","g","path","arrowRight","reader2","toDisposable","info","info2","recomputeInitiallyAndOnChange","movedBlockViewZones","PlaceholderViewZone","constObservable","applyViewZones","zones","z","autorunWithStore","store","blocks","b","MovedBlockOverlayWidget","originalHasFocus","modifiedHasFocus","lastChangedEditor","autorunHandleChanges","ctx","summary","movedText","originalPos","m2","modifiedPos","_LinesLayout","setsPerTrack","trackPerLineIdx","trackIdx","set","findMaxIdx","OffsetRangeSet","_trackCount","lineIdx","ViewZoneOverlayWidget","_viewZone","_move","_kind","root","h","editorLayout","applyStyle","text2","actionBar2","ActionBar","caption","actionCompare","isActive","DiffEditorDecorations","widget","movedTextToCompare","renderIndicators","showEmptyDecorations","originalDecorations","modifiedDecorations","diffLineDeleteDecorationBackgroundWithIndicator","diffLineDeleteDecorationBackground","diffLineAddDecorationBackgroundWithIndicator","diffLineAddDecorationBackground","diffWholeLineDeleteDecoration","diffWholeLineAddDecoration","useInlineDiff","diffDeleteDecorationEmpty","diffAddDecorationEmpty","diffAddDecoration","deletedText","fullRangeOriginal","fullRangeModified","activeMovedText","applyObservableDecorations","init_event","init_observableCodeEditor","init_colorRegistry","init_themeService","__decorate33","__param29","OverviewRulerFeature_1","OverviewRulerFeature","_rootWidth","_rootHeight","_themeService","currentColorTheme","currentColors","theme","insertColor","diffOverviewRulerInserted","diffInserted","defaultInsertColor","removeColor","diffOverviewRulerRemoved","diffRemoved","defaultRemoveColor","viewportDomElement","createFastDomNode","diffOverviewRoot","appendRemoveOnDispose","EventType","originalOverviewRuler","modifiedOverviewRuler","origViewZonesChanged","modViewZonesChanged","origHiddenRangesChanged","modHiddenRangesChanged","colors","createZones","ranges","color","vm","OverviewRulerZone","originalZones","modifiedZones","freeSpace","scrollTop","scrollHeight","scrollBarOptions","ScrollbarState","IThemeService","init_contextkey","__decorate34","__param30","DiffEditorEditors","originalEditorElement","modifiedEditorElement","_argCodeEditorWidgetOptions","_createInnerEditor","_contextKeyService","_instantiationService","_keybindingService","Emitter","observableCodeEditor","derivedOpts","changeSummary","codeEditorWidgetOptions","leftHandSideOptions","isInDiffLeftEditorKey","rightHandSideOptions","isInDiffRightEditorKey","instantiationService","container","editorWidgetOptions","_reader","changedOptions","EditorOptions","clonedOptions","ariaLabel","ariaNavigationTip","IContextKeyService","IInstantiationService","IKeybindingService","init_async","__decorate35","DEBUG","OrthogonalEdge","OrthogonalEdge2","globalSize","onDidChangeGlobalSize","globalHoverDelay","onDidChangeHoverDelay","MouseEventFactory","el","DomEmitter","getWindow","memoize","GestureEventFactory","EventType2","OrthogonalPointerEventFactory","factory","PointerEventsDisabledCssClass","Sash","_Sash","sash","onChange","append","layoutProvider","Delayer","isMacintosh","Gesture","doubleTapTimeout","event","size2","delay","pointerEventFactory","EventHelper","isMultisashResize","orthogonalSash","iframes","iframe","startX","startY","altKey","startEvent","style","createStyleSheet","updateStyle","cursor","disposables","onPointerMove","event2","onPointerUp","fromLinkedSash","verticalProvider","horizontalProvider","isHTMLElement","SashLayout","dimensions","derivedWithSetter","ratio","tx","contentWidth","desiredRatio","midPoint","sashLeft","MINIMUM_EDITOR_WIDTH","DiffEditorSash","_domNode","_dimensions","_enabled","_boundarySashes","_resetSash","_sash","sashes","enabled","DelegatingEditor","_DelegatingEditor","position","scrollType","something","startLineNumber","endLineNumber","revealVerticalInCenter","revealHorizontal","handlerId","payload","callback","diffEditorDefaultOptions","__decorate36","__param31","DiffEditorOptions","_accessibilityService","derivedConstOnceDefined","isSimpleDiff","optionsCopy","validateDiffEditorOptions","newDiffEditorOptions","newOptions","IAccessibilityService","supportsTrueDiffRendering","isInsertion","isDeletion","defaults","boolean","clampedFloat","clampedInt","stringSet","init_mouseEvent","init_keyboardEvent","BaseDropdown","ActionRunner","labelRenderer","container2","isMouseEvent","StandardKeyboardEvent","cleanupFn","DropdownMenu","action","DropdownMenuActionViewItem","BaseActionViewItem","menuActionsOrProvider","contextMenuProvider","isActionsArray","visible","that","element","classNames2","s","getBaseLayerHoverDelegate","getDefaultHoverDelegate","title","newContext","disabled","ToolBar","EventMultiplexer","createInstantHoverDelegate","ToggleMenuAction","viewItemOptions","SubmenuAction","actionRunner","indexOrElement","primaryActions","secondaryActions","primaryActionsToSet","_ToggleMenuAction","toggleDropdownMenu","init_collections","init_errors","init_iterator","ModifierLabelProvider","mac","windows","linux","OS2","chords","keyLabelProvider","len","chord","keyLabel","_simpleAsString","UILabelProvider","AriaLabelProvider","ElectronAcceleratorLabelProvider","UserSettingsLabelProvider","modifiers","labels","init_types","isLocalizedString","thing","isICommandActionToggleInfo","init_configuration","StorageHint","StorageHint2","StorageState","StorageState2","Storage","_Storage","database","PauseableEmitter","ThrottledDelayer","changed","isUndefinedOrNull","fallbackValue","external","valueStr","isObject","stringify","updateRequest","resolve3","InMemoryStorageDatabase","Event","request","TARGET_KEY","IStorageService","WillSaveStateReason","WillSaveStateReason2","loadKeyTargets","storage","keysRaw","AbstractStorageService","_AbstractStorageService","MutableDisposable","scope","disposable","runWhenGlobalIdle","fn","keyTargets","reason","applicationStorage","profileStorage","workspaceStorage","Promises","InMemoryStorageService","init_color","overrideStyles","override","styles","val","asCssVariable","defaultKeybindingLabelStyles","keybindingLabelBackground","keybindingLabelForeground","keybindingLabelBorder","keybindingLabelBottomBorder","widgetShadow","defaultButtonStyles","buttonForeground","buttonSeparator","buttonBackground","buttonHoverBackground","buttonSecondaryForeground","buttonSecondaryBackground","buttonSecondaryHoverBackground","buttonBorder","defaultProgressBarStyles","progressBarBackground","defaultToggleStyles","inputActiveOptionBorder","inputActiveOptionForeground","inputActiveOptionBackground","defaultRadioStyles","radioActiveForeground","radioActiveBackground","radioActiveBorder","radioInactiveForeground","radioInactiveBackground","radioInactiveBorder","radioInactiveHoverBackground","defaultCheckboxStyles","checkboxBackground","checkboxBorder","checkboxForeground","checkboxDisabledBackground","checkboxDisabledForeground","defaultDialogStyles","editorWidgetBackground","editorWidgetForeground","widgetBorder","problemsErrorIconForeground","problemsWarningIconForeground","problemsInfoIconForeground","textLinkForeground","defaultInputBoxStyles","inputBackground","inputForeground","inputBorder","inputValidationInfoBorder","inputValidationInfoBackground","inputValidationInfoForeground","inputValidationWarningBorder","inputValidationWarningBackground","inputValidationWarningForeground","inputValidationErrorBorder","inputValidationErrorBackground","inputValidationErrorForeground","defaultFindWidgetStyles","listFilterWidgetBackground","listFilterWidgetOutline","listFilterWidgetNoMatchesOutline","listFilterWidgetShadow","defaultCountBadgeStyles","badgeBackground","badgeForeground","contrastBorder","defaultBreadcrumbsWidgetStyles","breadcrumbsBackground","breadcrumbsForeground","breadcrumbsFocusForeground","breadcrumbsActiveSelectionForeground","defaultListStyles","listFocusBackground","listFocusForeground","listFocusOutline","listActiveSelectionBackground","listActiveSelectionForeground","listActiveSelectionIconForeground","listFocusAndSelectionOutline","listInactiveSelectionBackground","listInactiveSelectionIconForeground","listInactiveSelectionForeground","listInactiveFocusBackground","listInactiveFocusOutline","listHoverBackground","listHoverForeground","listDropOverBackground","listDropBetweenBackground","activeContrastBorder","treeIndentGuidesStroke","treeInactiveIndentGuidesStroke","scrollbarShadow","tableColumnsBorder","tableOddRowsBackgroundColor","getListStyles","defaultSelectBoxStyles","selectBackground","selectListBackground","selectForeground","pickerGroupForeground","selectBorder","focusBorder","quickInputListFocusBackground","quickInputListFocusIconForeground","quickInputListFocusForeground","asCssVariableWithDefault","Color","editorWidgetBorder","defaultMenuStyles","menuBorder","menuForeground","menuBackground","menuSelectionForeground","menuSelectionBackground","menuSelectionBorder","menuSeparatorBackground","scrollbarSliderBackground","scrollbarSliderHoverBackground","scrollbarSliderActiveBackground","init_theme","hasNativeContextMenu","configurationService","titleBarStyle","isWeb","nativeTitle","hasNativeTitlebar","windowConfigurations","getTitleBarStyle","configuration","getWindowControlsStyle","init_actions2","__decorate37","__param32","getFlatContextMenuActions","groups","primaryGroup","getContextMenuActionsImpl","modifierKeyEmitter","ModifierKeyEmitter","useAlternativeActions","isWindows","isLinux","fillInActions","actionGroup","getActionBarActions","shouldInlineSubmenu","useSeparatorsInPrimaryActions","fillInActionBarActions","getFlatActionBarActions","isPrimaryAction","primaryBucket","secondaryBucket","submenuInfo","group","target2","Separator","MenuItemAction","newLen","index","submenuActions","MenuEntryActionViewItem","ActionViewItem","_notificationService","err","isMouseOver","updateAltState","wantsAltCommand","keybinding","keybindingLabel","tooltip","altTooltip","altKeybinding","altKeybindingLabel","altTitleSection","OS","item","label","icon","iconClasses","isDark","asCSSUrl","combinedDisposable","INotificationService","TextOnlyMenuEntryActionViewItem","_TextOnlyMenuEntryActionViewItem","kb","kb2","SubmenuEntryActionViewItem","dropdownOptions","action2","assertType","setBackgroundImage","DropdownWithDefaultActionViewItem","submenuAction","_menuService","_instaService","_storageService","defaultAction","defaultActionId","lastAction","context","prepend","defaultActionKeybinding","primaryContainer","dropdownContainer","fromRight","focusable","IMenuService","SubmenuEntrySelectActionViewItem","SelectActionViewItem","contextViewService","option2","IConfigurationService","createActionViewItem","instaService","SubmenuItemAction","init_commands","__decorate38","__param33","PersistedMenuHideState_1","MenuInfo_1","MenuService","_commandService","storageService","PersistedMenuHideState","contextKeyService","MenuImpl","menu","ids","ICommandService","raw","commandId","hidden","hiddenByDefault","entries2","removeFastWithoutKeepingOrder","menus","MenuInfoSnapshot","_MenuInfoSnapshot","_id","_collectContextKeysForSubmenus","menuItems","MenuRegistry","groupName","isIMenuItem","toggledExpression","exp","MenuInfo","_hiddenStates","items","activeActions","isMenuItem","menuHide","createMenuHide","menuKeybinding","createConfigureKeybindingAction","aGroup","bGroup","aPrio","bPrio","aStr","bStr","hiddenStates","commandService","keybindingService","rebuildMenuSoon","id2","lazyListener","merge","events","isStructuralChange","isEnablementChange","isToggleChange","startLazyListener","DebounceEmitter","command","states","isISubmenuItem","hide2","toAction","toggle","when","whenValue","init_telemetry","init_extensions","IActionViewItemService","ActionViewItemService","commandOrMenuId","MenuId","registerSingleton","__decorate39","__param34","WorkbenchToolBar","telemetryService","telemetrySource","_primary","_secondary","menuIds","primary","secondary","toggleActions","toggleActionsCheckedCount","extraSecondary","someAreHidden","exemptedIds","intersection","Iterable","maxItems","coalesceInPlace","StandardMouseEvent","supportsKeybindings","noHide","ITelemetryService","MenuWorkbenchToolBar","menuId","menuService","contextMenuService","actionViewService","opts","provider","viewItem","updateToolbar","BugIndicatingError","__decorate40","__param35","IHoverService","WorkbenchHoverDelegate","content","placement","hoverOptions","overrideOptions","hoverService","focus","targets","nativeHoverDelegate","init_textLength","TextModelText","AbstractText","_textModel","lastLineNumber","lastLineLen","TextLength","ActionRunnerWithContext","_getContext","_context","EditorGutter","itemProvider","observableSignal","scrollDecoration","o","transaction","reset","visibleRanges","unusedIds","viewRange","visibleRange","visibleRange2","gutterItems","gutterItem","view","viewDomNode","gutterItemObs","itemView","ManagedGutterItemView","gutterItemView","__decorate41","__param36","emptyArr2","width","DiffEditorGutter","diffEditorRoot","_sashLayout","cursorPosition","selections","selectedLineNumbers","LineRangeSet","prependRemoveOnDispose","derivedDisposable","selection","DetailedLineRangeMapping","DiffGutterItem","currentDiff","DiffToolBar","modified","original","TextEdit","left","showAlways","rangeOverride","originalUri","modifiedUri","_item","gutter","hoverDelegate","itemRange","itemHeight","middleHeight","margin","effectiveCheckboxTop","preferredViewPortRange","preferredParentRange","init_hideUnchangedRegionsFeature","init_iconLabels2","init_model2","emptyArr3","RevertButtonsFeature","_widget","glyphWidgetsModified","selectedDiffs","selectedDiffsSet","btn","RevertButton","_RevertButton","_lineNumber","_diffs","_revertSelection","renderIcon","LineRangeMapping","GlyphMarginLane","__decorate43","__param38","DiffEditorWidget","_domElement","_parentContextKeyService","_parentInstantiationService","codeEditorService","_accessibilitySignalService","_editorProgressService","disposableObservableValue","ServiceCollection","fullWidth","fullHeight","gutterWidth","overviewRulerPartWidth","originalLeft","originalWidth","modifiedLeft","modifiedWidth","gutterLeft","movedBlocksLinesWidth","shouldHideOriginalLineNumbers","ObservableElementSizeObserver","EditorContextKeys","bindContextKey","o2","readHotReloadableExport","showSash","unchangedRangesFeature","HideUnchangedRegionsFeature","origViewZoneIdsToIgnore","modViewZoneIdsToIgnore","isUpdatingViewZones","viewZoneManager","originalViewZones","orig","orig2","modifiedViewZones","mod","mod2","isUpdatingOrigViewZones","scrollState","isUpdatingModViewZones","StableEditorScrollState","AccessibleDiffViewer","AccessibleDiffViewerModelFromEditors","visibility","isInitializingDiff","onUnexpectedError","CodeEditorWidget","contributions","EditorExtensionsRegistry","EditorType","dimension","originalViewState","modifiedViewState","diffEditorState","DiffEditorViewModel","RefCounted","viewModel","currentModel","subtransaction","tx2","prevValueRef","diffState","toLineChanges","changes","curLineNumber","findLast","AccessibilitySignal","isModifiedFocus","destination","destinationSelection","sourceSelection","newRange1","translatePosition","newRange2","unchangedRegions","region","isModifiedEditor","ICodeEditorService","IAccessibilitySignalService","IEditorProgressService","originalStartLineNumber","originalEndLineNumber","modifiedStartLineNumber","modifiedEndLineNumber","innerChanges","init_editorContextKeys","ToggleCollapseUnchangedRegions","Action2","localize2","ContextKeyExpr","accessor","newValue","ToggleShowMovedCodeBlocks","ToggleUseInlineViewWhenSpaceIsLimited","diffEditorCategory","SwitchSide","EditorAction2","arg","diffEditor","findFocusedDiffEditor","ExitCompareMove","CollapseAllUnchangedRegions","ShowAllUnchangedRegions","RevertHunkOrSelection","findDiffEditor","accessibleDiffViewerCategory","AccessibleDiffViewerNext","_AccessibleDiffViewerNext","AccessibleDiffViewerPrev","_AccessibleDiffViewerPrev","diffEditors","activeElement","getActiveElement","registerAction2","ContextKeyEqualsExpr","CommandsRegistry","init_htmlContent","init_keyCodes","init_editorExtensions","init_selection","__decorate44","__param39","SelectionAnchorController_1","SelectionAnchorSet","RawContextKey","SelectionAnchorController","Selection","MarkdownString","alert","anchorPosition","decorationId","SetSelectionAnchor","EditorAction","KeyChord","_accessor","GoToSelectionAnchor","SelectFromAnchorToCursor","CancelSelectionAnchor","registerEditorContribution","registerEditorAction","init_textModel","overviewRulerBracketMatchForeground","registerColor","JumpToBracketAction","BracketMatchingController","SelectToBracketAction","selectBrackets","RemoveBracketsAction","BracketsData","brackets","_BracketMatchingController","newSelections","newCursorPosition","enclosingBrackets","nextBracket","selectFrom","selectTo","open","close","tmp","editSource","ModelDecorationOptions","themeColorFromId","OverviewRulerLane","newDecorations","newDecorationsLen","bracketData","versionId","previousData","positions","positionsLen","newData","newDataLen","previousIndex","previousLen","MoveCaretCommand","isMovingLeft","builder","startColumn","endColumn","rangeBefore","charBefore","rangeAfter","charAfter","helper","MoveCaretAction","commands","MoveCaretLeftAction","MoveCaretRightAction","TransposeLettersAction","column","lastColumn","endPosition","MoveOperations","middlePosition","beginPosition","leftChar","rightChar","replaceRange","ReplaceCommand","init_browser","init_stopwatch","init_log","IProductService","init_codeEditorService","init_cancellation","init_uuid","createStringDataTransferItem","stringOrPromise","createFileDataTransferItem","fileName","uri","data","file","generateUuid","VSDataTransfer","mimeType","pattern","mimes","matchesMimeType_normalized","normalizeMimeType","existing","mine","matchesMimeType","mimeTypes","normalizedPattern","normalizedMimeTypes","wildcard","type","subtype","mime","UriList","distinct","str","HierarchicalKind","_HierarchicalKind","other","parts","init_mime","NO_KEY_MODS","QuickInputHideReason","QuickInputHideReason2","ItemActivation","ItemActivation2","QuickPickFocus","QuickPickFocus2","QuickInputButtonLocation","QuickInputButtonLocation2","QuickPickItemScorerAccessor","quickPickItemScorerAccessor","IQuickInputService","init_uri","init_platform2","CodeDataTransfers","DragAndDropContributionRegistry","Extensions9","Registry","LocalSelectionTransfer","_LocalSelectionTransfer","proto","getPathForFile","isNative","toVSDataTransfer","dataTransfer","vsDataTransfer","asStringValue","createFileDataTransferItemFromFile","URI","INTERNAL_DND_MIME_TYPES","DataTransfers","toExternalVSDataTransfer","sourceDataTransfer","overwriteUriList","uriList","Mimes","editorData","internal","IBulkEditService","ResourceEdit","metadata","edit2","edit3","ResourceTextEdit","ResourceFileEdit","_ResourceTextEdit","candidate","resource","textEdit","_ResourceFileEdit","oldResource","newResource","init_languages","init_languageFeatures","init_editorState","init_strings","__decorate45","__param40","inlineProgressDecoration","noBreakWhitespace","InlineProgressWidget","_InlineProgressWidget","typeId","delegate","iconElement","updateSize","InlineProgressManager","promise","delayOverride","operationId","disposableTimeout","IOpenerService","withSelection","extractSelection","match2","init_language","init_modesRegistry","__decorate46","__param41","MarkdownRenderer_1","MarkdownRenderer","_languageService","_openerService","markdown","outElement","rendered","renderMarkdown","alias","link2","mdStr","languageAlias","languageId","PLAINTEXT_LANGUAGE_ID","tokenizeToString","openLinkFromMarkdown","ILanguageService","openerService","isTrusted","skipValidation","toAllowCommandsOption","__decorate47","__param42","MessageController_1","MessageController","message","isMarkdownString","renderedMessage","url","MessageWidget","last","isAncestor","bounds","MessageCommand","EditorCommand","registerEditorCommand","messageWidget","dispose2","handle","anchorTop","anchorBottom","init_network","init_resources","init_path","init_assert","StringIterator","aCode","thisCode","ConfigKeysIterator","_caseSensitive","justSeps","compareSubstring","compareSubstringIgnoreCase","PathIterator","_splitOnBackslash","pos","ch","UriIterator","_ignorePathCasing","_ignoreQueryAndFragment","compareIgnoreCase","compare","Undef","_Undef","TernarySearchTreeNode","TernarySearchTree","_TernarySearchTree","ignorePathCasing","ignoreQueryAndFragment","segments","iter","node","stack","oldElement","node2","bf","d1","d2","superStr","stack2","min","newChild","dir","parent","assert","newChild2","allowValue","bucket","IWorkspaceContextService","isSingleFolderWorkspaceIdentifier","obj","singleFolderIdentifier","isEmptyWorkspaceIdentifier","isWorkspaceIdentifier","EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE","UNKNOWN_EMPTY_WINDOW_WORKSPACE","toWorkspaceIdentifier","arg0","isExtensionDevelopment","basename","workspace","workspaceIdentifier","WorkspaceFolder","WORKSPACE_EXTENSION","WORKSPACE_FILTER","STANDALONE_EDITOR_WORKSPACE_ID","isStandaloneEditorWorkspace","__decorate48","__param43","SimplePasteAndDropProvider","kind","_model","_ranges","token","_position","DefaultTextPasteOrDropEditProvider","_DefaultTextPasteOrDropEditProvider","_token","textEntry","insertText","PathProvider","extractUriList","uriCount","Schemas","RelativePathProvider","_workspaceContextService","relativeUris","coalesce","relativePath","PasteHtmlProvider","DocumentPasteTriggerKind","htmlText","urlListEntry","strUriList","entry","genericLanguageSelector","DefaultDropProvidersFeature","languageFeaturesService","workspaceContextService","ILanguageFeaturesService","DefaultPasteProvidersFeature","Scanner2","_Scanner","Marker","child","Text","others","newChildren","_fixParent","children","parent2","child2","TextmateSnippet","prev","cur","_Text","TransformableMarker","Placeholder","_Placeholder","Choice","ret","_Choice","marker","Transform","_Transform","_this","didMatch","FormatString","_FormatString","shorthandName","ifValue","elseValue","word","Variable","_Variable","name","resolver","walk","visitor","marker2","_TextmateSnippet","all","found","placeholder","SnippetParser","template","insertFinalTabstop","enforceFinalTabstop","snippet","placeholderDefaultValues","incompletePlaceholders","fillInIncompletePlaceholder","defaultValues","clone2","nextToken","choice","values","variable","transform","regexValue","regexOptions","escaped","complex","shorthand","createCombinedWorkspaceEdit","sortEditsByYieldTo","edits","yieldsTo","yTo","yieldsToMap","arr","visited","tempStack","visit","nodes","pre","unthemedButtonStyles","buttonSanitizerConfig","Button","background","foreground2","eventType","eventHandled","trackFocus","elements","segment","renderLabelWithIcons","hover","markdownStringEqual","labelElement","safeSetInnerHtml","renderAsPlaintext","oldIcons","exceptionToErrorMessage","exception","verbose","detectSystemErrorMessage","stackToString","toErrorMessage","error","errors","msg","isString","detail","init_objects","$3","unthemedKeybindingLabelOptions","KeybindingLabel","_KeybindingLabel","os","labelForeground","matches","clearNode","modifierLabels","highlight","separator2","extraClass","keyElement","equals2","ILayoutService","__decorate49","__param44","acceptSelectedActionCommand","previewSelectedActionCommand","HeaderRenderer","_index","templateData","_templateData","SeparatorRenderer","ActionItemRenderer","_supportsPreview","description","setVisibility","stripNewlines","actionTitle","previewTitle","AcceptSelectedEvent","PreviewSelectedEvent","getKeyboardNavigationLabel","ActionList","user","preview","_delegate","accessibilityProvider","_contextViewService","_layoutService","CancellationTokenSource","virtualDelegate","List","didCancel","minWidth","numHeaders","numSeparators","heightWithSeparators","maxWidth","itemWidths","focused","focusIndex","__decorate50","__param45","ActionWidgetContextKeys","IActionWidgetService","ActionWidgetService","supportsPreview","anchor","actionBarActions","visibleContext","list2","renderDisposables","menuBlock","block2","pointerBlockDiv","pointerBlock","actionBarWidth","focusTracker","className2","weight","widgetService","__decorate51","__param46","PostEditWidget_1","PostEditWidget","showCommand","onSelectNewEdit","additionalActions","_actionWidgetService","binding","PostEditWidgetManager","_visibleContext","_showCommand","_getAdditionalActions","_bulkEditService","canShowWidget","onDidSelectEdit","newEditIndex","model2","handleError","isCancellationError","editorStateCts","EditorStateCancellationTokenSource","resolvedEdit","raceCancellationError","combinedWorkspaceEdit","primaryRange","editTrackingDecoration","editResult","editRange","__decorate52","__param47","CopyPasteController_1","changePasteTypeCommandId","pasteAsPreferenceConfig","pasteWidgetVisibleCtx","vscodeClipboardMime","CopyPasteController","_logService","_configService","_languageFeaturesService","_quickInputService","_progressService","preferred","ClipboardEventUtils","InMemoryClipboardMetadataManager","enableEmptySelectionClipboard","wasFromEmptySelection","toCopy","defaultPastePayload","providers","providerCopyMimeTypes","operations","createCancelablePromise","metadata2","metadataComputed","fileTypes","allPotentialMimeTypes","allProviders","preference","kindLabel","preference2","clipboardEvent","pToken","editor3","cts","supportedProviders","editSession","resolveToken","resolveP","showP","DeferredPromise","resolved","raceCancellation","tokenSource","pickedEdit","configureDefaultItem","selected","rawMetadata","toResolve","op","toMergeResults","toMergeData","resources","results","edits2","providedKind","preferredKind","preferredProviders","config","desiredKind","editIndex","ILogService","IProgressService","CLIPBOARD_CONTEXT_MENU_GROUP","supportsCut","supportsCopy","supportsPaste","isFirefox","registerCommand3","CutAction","MultiCommand","CopyAction","PasteAction","ExecCommandCopyWithSyntaxHighlightingAction","logService","CopyOptions","registerExecCommandImpl","browserCommand","focusedEditor","emptySelectionClipboard","logCopyCommand","getActiveDocument","nativeEditContext","NativeEditContextRegistry","clipboardService","productService","sw","StopWatch","triggerPaste","getActiveWindow","duration","clipboardText","pasteOnNewLine","multicursorText","mode","init_textModelDefaults","init_configurationRegistry","editorConfigurationBaseNode","editorConfiguration","EDITOR_MODEL_DEFAULTS","isConfigurationPropertySchema","editorOption","editorOptionsRegistry","schema","cachedEditorConfigurationKeys","getEditorConfigurationKeys","prop","isEditorConfigurationKey","isDiffEditorConfigurationKey","configurationRegistry2","Extensions4","init_model","init_textModelEditSource","CodeActionKind","CodeActionTriggerSource","CodeActionTriggerSource2","mayIncludeActionsOfKind","filter","exclude","excludesAction","filtersAction","actionKind","include","CodeActionCommandArgs","_CodeActionCommandArgs","defaultAutoApply","defaultKind","apply2","CodeActionItem","highlightRange","onUnexpectedExternalError","codeActionCommandId","quickFixCommandId","autoFixCommandId","refactorCommandId","sourceActionCommandId","organizeImportsCommandId","fixAllCommandId","CODE_ACTION_SOUND_APPLIED_DURATION","ManagedCodeActionSet","_ManagedCodeActionSet","isNonEmptyArray","documentation","fix","emptyCodeActionsResponse","getCodeActions","registry","rangeOrSelection","trigger","progress","notebookFilter","codeActionContext","TextModelCancellationTokenSource","excludeNotebookCodeActions","getCodeActionProviders","promises","providedCodeActions","filteredActions","getDocumentationFromProvider","listener","newProviders","equals","allActions","allDocumentation","getAdditionalDocumentationForShowingActions","managedCodeActionSet","actionsToShow","only","currentBest","ApplyCodeActionReason","ApplyCodeActionReason2","applyCodeAction","codeActionReason","CancellationToken","bulkEditService","notificationService","accessibilitySignalService","EditSources","ProviderId","asMessage","itemResolveCount","illegalArgument","codeActionProvider","IModelService","validatedRangeOrSelection","codeActionSet","Progress","resolving","resolveCount","init_lazy","MarkerSeverity","MarkerSeverity4","compare2","_displayStrings","toString","_displayStringsPlural","toStringPlural","fromSeverity","severity","severity_default","toSeverity","IMarkerData","IMarkerData2","makeKey","markerData","makeKeyOptionalMessage","useMessage","IMarkerService","__decorate53","__param48","CodeActionKeybindingResolver_1","CodeActionKeybindingResolver","allCodeActionBindings","Lazy","commandArgs","candidates","SYMBOL_ICON_ARRAY_FOREGROUND","foreground","SYMBOL_ICON_BOOLEAN_FOREGROUND","SYMBOL_ICON_CLASS_FOREGROUND","SYMBOL_ICON_COLOR_FOREGROUND","SYMBOL_ICON_CONSTANT_FOREGROUND","SYMBOL_ICON_CONSTRUCTOR_FOREGROUND","SYMBOL_ICON_ENUMERATOR_FOREGROUND","SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND","SYMBOL_ICON_EVENT_FOREGROUND","SYMBOL_ICON_FIELD_FOREGROUND","SYMBOL_ICON_FILE_FOREGROUND","SYMBOL_ICON_FOLDER_FOREGROUND","SYMBOL_ICON_FUNCTION_FOREGROUND","SYMBOL_ICON_INTERFACE_FOREGROUND","SYMBOL_ICON_KEY_FOREGROUND","SYMBOL_ICON_KEYWORD_FOREGROUND","SYMBOL_ICON_METHOD_FOREGROUND","SYMBOL_ICON_MODULE_FOREGROUND","SYMBOL_ICON_NAMESPACE_FOREGROUND","SYMBOL_ICON_NULL_FOREGROUND","SYMBOL_ICON_NUMBER_FOREGROUND","SYMBOL_ICON_OBJECT_FOREGROUND","SYMBOL_ICON_OPERATOR_FOREGROUND","SYMBOL_ICON_PACKAGE_FOREGROUND","SYMBOL_ICON_PROPERTY_FOREGROUND","SYMBOL_ICON_REFERENCE_FOREGROUND","SYMBOL_ICON_SNIPPET_FOREGROUND","SYMBOL_ICON_STRING_FOREGROUND","SYMBOL_ICON_STRUCT_FOREGROUND","SYMBOL_ICON_TEXT_FOREGROUND","SYMBOL_ICON_TYPEPARAMETER_FOREGROUND","SYMBOL_ICON_UNIT_FOREGROUND","SYMBOL_ICON_VARIABLE_FOREGROUND","uncategorizedCodeActionGroup","codeActionGroups","toMenuItems","inputCodeActions","showHeaders","keybindingResolver","menuEntries","menuEntry","allMenuItems","SUPPORTED_CODE_ACTIONS","APPLY_FIX_ALL_COMMAND_ID","CodeActionOracle","_markerService","_signalChange","_delay","TimeoutTimer","isEqual","ShowLightbulbIconMode","CodeActionsState","CodeActionsState2","Triggered","_cancellablePromise","emptyCodeActionSet","CodeActionModel","_registry2","_configurationService","supportedActions","startPosition","codeActionSet2","allCodeActions","foundQuickfix","allMarkers","currPosition","trackedPosition","distance","currentActions","col","row","startRow","newCodeActionTrigger","selectionAsPosition","actionsAtMarker","self2","codeActions","newState","isManualToAutoTransition","skipNotify","init_utils4","__decorate54","__param49","LightBulbWidget_1","GUTTER_LIGHTBULB_ICON","registerIcon","GUTTER_LIGHTBULB_AUTO_FIX_ICON","GUTTER_LIGHTBULB_AIFIX_ICON","GUTTER_LIGHTBULB_AIFIX_AUTO_FIX_ICON","GUTTER_SPARKLE_FILLED_ICON","LightBulbState","LightBulbState2","Showing","editorPosition","widgetPosition","LightBulbWidget","editorModel","addStandardDisposableGenericMouseDownListener","cls","atPosition","indent","computeIndentLevel","lineHasSpace","isFolded","lineNumber2","currLineDecorations","hasDecoration","decoration3","glyphClass","effectiveLineNumber","effectiveColumnNumber","isLineEmptyOrIndented","lineContent2","endLine","prevLineEmptyOrIndented","nextLineEmptyOrIndented","currLineEmptyOrIndented","notEmpty","validActions","autoRun","GUTTER_DECORATION","autoFix","__decorate55","__param50","CodeActionController_1","DECORATION_CLASS_NAME","CodeActionController","markerService","progressService","at","actionItem","_trigger","notAvailableMessage","triggerAction","autoApply","triggerPosition","retrigger","actionReason","validActionToApply","invalidAction","includeDisabledActions","currentDecorations","editorDom","canPreview","hierarchicalKind","refactorKind","diagnostics","diagnostic","diagnostic2","selectionText","status","cursorCoords","editorCoords","resultActions","registerThemingParticipant","collector","selector","editorFindMatchHighlight","findMatchHighlightBorder","editorFindMatchHighlightBorder","isHighContrast","contextKeyForSupportedActions","escapeRegExpCharacters","argsSchema","triggerCodeActionsForEditorSelection","QuickFixAction","CodeActionCommand","userArgs","RefactorAction","SourceAction","OrganizeImportsAction","FixAllAction","AutoFixAction","CodeLensModel","_CodeLensModel","isDisposable","symbol","getCodeLensModel","providerRanks","provider2","codeLensProvider","init_map","init_window","__decorate56","__param51","ICodeLensCache","CacheItem","CodeLensCache","LRUCache","oldkey","runWhenWindowIdle","mainWindow","onWillSaveStateBecauseOfShutdown","copyItems","item2","copyModel","lenses","CodeLensViewZone","afterLineNumber","heightInPx","onHeight","CodeLensContentWidget","_CodeLensContentWidget","animate2","hasSymbol","lens","CodeLensHelper","changeAccessor","resultingDecorations","codeLensDecorationOptions","CodeLensWidget","viewZoneChangeAccessor","updateCallback","codeLensData","symbols","init_languageFeatureDebounce","__decorate58","__param53","CodeLensContribution","debounceService","_codeLensCache","lineHeightFactor","fontSize","codeLensHeight","fontFamily","editorFontInfo","EDITOR_FONT_DEFAULTS","cachedLenses","cachedLensesNow","registration","scheduler","newDelay","decorationsAccessor","viewZonesAccessor","toDispose","lastLensLineNumber","decChangeAccessor","maxLineNumber","lastGroup","viewZoneAccessor","codeLensIndex","groupsIndex","symbolsLineNumber","codeLensLineNumber","resolvePromise","resolvedSymbols","promises2","request2","i3","ILanguageFeatureDebounceService","quickInputService","codelensController","newLens","editorFeatures","registerEditorFeature","ctor","getEditorFeatures","HoverRangeAnchor","priority","initialMousePosX","initialMousePosY","lastAnchor","showAtPosition","HoverForeignElementAnchor","owner","supportsMarkerHover","RenderedHoverParts","renderedHoverParts","part","HoverParticipantRegistry","init_editorWorker","__decorate59","__param54","DefaultDocumentColorProvider","_editorWorkerService","colorInfo","colorFromInfo","alpha","RGBA","rgb","hsl","hex","colorPresentations","IEditorWorkerService","DefaultDocumentColorProviderFeature","editorWorkerService","getColors","colorProviderRegistry","defaultColorDecoratorsEnablement","_findColorData","ColorDataCollector","getColorPresentations","documentColors","ExtColorDataCollector","ColorPresentationsCollector","validDocumentColorProviderFound","defaultProvider","colorData","documentColorProviders","_setupColorCommand","__decorate60","__param55","ColorDetector_1","ColorDecorationInjectedTextMarker","ColorDetector","languageFeatureDebounceService","DecoratorLimitReporter","DynamicCssRules","prevIsEnabled","updatedColorDecoratorsSetting","updatedDefaultColorDecoratorsSetting","deprecatedConfig","colorDecorators","colorDatas","limit","red","green","blue","rgba","ref","limited","computed","SHOW_OR_FOCUS_HOVER_ACTION_ID","SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID","HIDE_HOVER_ACTION_ID","SCROLL_UP_HOVER_ACTION_ID","SCROLL_DOWN_HOVER_ACTION_ID","SCROLL_LEFT_HOVER_ACTION_ID","SCROLL_RIGHT_HOVER_ACTION_ID","PAGE_UP_HOVER_ACTION_ID","PAGE_DOWN_HOVER_ACTION_ID","GO_TO_TOP_HOVER_ACTION_ID","GO_TO_BOTTOM_HOVER_ACTION_ID","INCREASE_HOVER_VERBOSITY_ACTION_ID","INCREASE_HOVER_VERBOSITY_ACTION_LABEL","DECREASE_HOVER_VERBOSITY_ACTION_ID","DECREASE_HOVER_VERBOSITY_ACTION_LABEL","inlineSuggestCommitId","showPreviousInlineSuggestionActionId","showNextInlineSuggestionActionId","jumpToNextInlineEditId","hideInlineCompletionId","toggleShowCollapsedId","__decorate61","__param56","InlineSuggestionHintsContentWidget_1","InlineCompletionsHintsWidget","ghostText","firstColumn","contentWidgetValue","contentWidget","InlineSuggestionHintsContentWidget","reader3","InlineCompletionTriggerKind","hadPosition","derivedObservableWithCache","lastValue","inlineSuggestionHintsNextIcon","inlineSuggestionHintsPreviousIcon","createHotClass","iconClassName","withBorder","_currentSuggestionIdx","_suggestionCount","_extraCommands","_warning","_relayout","warning","n","CustomizedMenuWorkbenchToolBar","StatusBarViewItem","ActionViewItemWithClassName","suggestionCount","currentSuggestionIdx","extraActions","div","isMousePositionWithinElement","posx","posy","elementRect","HoverResult","isComplete","hasLoadingMessage","HoverOperation","_computer","Debouncer","createCancelableAsyncIterableProducer","runner","debounceTimeMs","ResizableHTMLElement","Dimension","currentSize","deltaY","deltaX","north","east","south","west","minHeight","maxHeight","newSize","TOP_HEIGHT","BOTTOM_HEIGHT","ResizableContentWidget","minimumSize","editorDomNode","mouseBox","editorBox","bodyBox","getClientArea","mouseBottom","widgetHeight","maxHeightBelow","maxHeightAbove","renderingAbove","$4","HoverWidget","fadeIn","DomScrollableElement","HoverAction","_HoverAction","actionOptions","ClickAction","KeyDownAction","getHoverAccessibleViewHint","shouldHaveHint","run","keyCodes","keyCode","__decorate62","__param57","ContentHoverWidget_1","HORIZONTAL_SCROLLING_BY","ContentHoverWidget","minimumHeight","minimumWidth","transformedWidth","transformedHeight","contentsDomNode","containerDomNode","scrollbarDomElement","maxRenderingWidth","maxRenderingHeight","availableSpace","maximumHeight","hoverPart","overflowing","hoverElement","initialWidth","widgetRect","computeDistanceFromPointToRectangle","renderedHover","getTotalHeight","accessibleViewHint","hoverStoleFocus","getTotalWidth","scrollLeft","pointX","pointY","dx","dy","ContentHoverComputer","_ContentHoverComputer","_participants","AsyncIterableProducer","lineDecorations","participant","ContentHoverResult","hoverParts","filteredHoverParts","FilteredContentHoverResult","messages","__decorate63","__param58","$5","EditorHoverStatusBar","_hoverService","HoverProviderResult","ordinal","executeProvider","isValid","getHoverProviderResultsAsAsyncIterable","recursive","getHoversPromise","out","registerModelAndPositionCommand","hasRange","hasHtmlContent","__decorate64","__param59","$6","increaseHoverVerbosityIcon","decreaseHoverVerbosityIcon","MarkdownHover","contents","isBeforeContent","HoverSource","hoverProvider","hoverPosition","hoverVerbosityAction","HoverVerbosityAction","MarkdownHoverParticipant","lineLength","maxTokenizationLineLength","stopRenderingMessage","hoverMessage","isEmptyMarkdownString","asArray","hoverProviderRegistry","hoverProviderResults","hoverSource","MarkdownRenderedHoverParts","RenderedMarkdownHoverPart","actionsContainer","hoverPartsContainer","_hoverParticipant","_onFinishedRendering","renderedHoverPart","operation","onFinishedRendering","renderedMarkdownPart","renderedMarkdownElement","canIncreaseVerbosity","canDecreaseVerbosity","actionsContainerInner","markdownHover","renderMarkdown2","actionEnabled","isActionIncrease","actionElement","labelForHoverVerbosityAction","actionFunction","bottomOfHoverScrollPosition","topOfRenderedPart","hoverElementHeight","bottomOfRenderedPart","iconsHeight","hoverRenderedPart","newHover","newHoverSource","initialHoverPart","newHoverPart","newHoverRenderedPart","verbosityDelta","ongoingHoverOperation","currentRenderedHoverPart","currentRenderedMarkdown","renderedMarkdown","renderedChildrenElements","newRenderedHoverPart","renderMarkdownHovers","markdownHovers","languageService","renderedMarkdownContents","markdownStrings","markdownString","markdownHoverElement","hoverContentsElement","renderer","renderedContents","$7","SaturationBox","pixelRatio","GlobalPointerMoveMonitor","origin","pointerUpListener","hsva","saturatedColor","HSVA","whiteGradient","blackGradient","InsertButton","$8","Strip","monitor","OpacityStrip","opaque","transparent2","HueStrip","$9","ColorPickerBody","h2","$10","CloseButton","innerDiv","$11","ColorPickerHeader","themeService","editorHoverBackground","$12","ColorPickerWidget","Widget","PixelRatio","ColorPickerModel","availableColorPresentations","presentationIndex","originalTextPrefix","createColorHover","updateEditorModel","textEdits","trackedRange","updateColorPresentations","colorPickerModel","colorHover","__decorate65","__param60","ColorHover","_ColorHover","HoverColorPickerParticipant","_anchor","_lineDecorations","colorDetector","decoratorActivatedOn","editorUpdatedByColorPicker","init_resolverService","EditOperation","hasModifier","modifier","ClickLinkMouseEvent","ClickLinkKeyboardEvent","ClickLinkOptions","triggerKey","triggerModifier","triggerSideBySideKey","triggerSideBySideModifier","createOptions","multiCursorModifier","ClickLinkGesture","newOpts","mouseEvent","currentLineNumber","InlayHintAnchor","direction","InlayHintItem","_InlayHintItem","hint","newHint","InlayHintsFragments","_InlayHintsFragments","CancellationError","wordRange","tokens","asCommandLink","isCodeEditor","isDiffEditor","isCompositeEditor","getCodeEditor","init_languageConfigurationRegistry","__decorate66","__param61","EmbeddedCodeEditorWidget","domElement","parentEditor","accessibilityService","languageConfigurationService","mixin","ILanguageConfigurationService","getOuterEditor","defaultColor","defaultOptions","WIDGET_ID","ViewZoneDelegate","afterColumn","heightInLines","onDomNodeTop","onComputedHeight","showInHiddenAreas","OverlayWidgetDelegate","Arrow","_Arrow","IdGenerator","removeCSSRulesContainingSelector","createCSSRule","where","ZoneWidget","deepClone","frameColor","arrowColor","containerHeight","rangeOrPos","frameThickness","viewZoneDomNode","maxHeightInLines","width3","isLastLine","classToReplace","widthInPixel","heightInPixel","_newHeightInLines","useMax","newHeightInLines","evt","lineDelta","roundedLineDelta","minLines","maxLines","__decorate67","__param62","IPeekViewService","remove","PeekContext","PeekContext2","PeekContextController","defaultOptions2","PeekViewWidget","noCloseAction","actionBarOptions","primaryHeading","secondaryHeading","show","hide","headHeight","bodyHeight","peekViewTitleBackground","peekViewTitleForeground","editorForeground","peekViewTitleInfoForeground","peekViewBorder","editorInfoForeground","peekViewResultsBackground","peekViewResultsMatchForeground","peekViewResultsFileForeground","peekViewResultsSelectionBackground","peekViewResultsSelectionForeground","peekViewEditorBackground","peekViewEditorGutterBackground","peekViewEditorStickyScrollBackground","peekViewEditorStickyScrollGutterBackground","peekViewResultsMatchHighlight","peekViewEditorMatchHighlight","peekViewEditorMatchHighlightBorder","init_keybindingsRegistry","PagedRenderer","modelProvider","details","PagedAccessibilityProvider","fromPagedListOptions","PagedList","renderers","pagedRenderers","browserEvent","indexes","range","init_numbers","defaultStyles","ViewItem","clamp","layoutContext","VerticalViewItem","HorizontalViewItem","State","State2","Sizing","Sizing2","Split","Auto","Invisible","cachedVisibleSize","SplitView","sashItem","startSnappingEnabled","endSnappingEnabled","Scrollable","scheduleAtNextAnimationFrame","SmoothScrollableElement","onDidScrollViewContainer","viewDescriptor","sizing","isUndefined","skipLayout","previousSize","total","proportion","lowPriorityIndexes","highPriorityIndexes","alt","resetSashDragState","start2","alt2","sizes","minDelta","maxDelta","snapBefore","snapAfter","upIndexes","downIndexes","minDeltaUp","maxDeltaUp","maxDeltaDown","minDeltaDown","minDelta2","maxDelta2","snapBeforeIndex","snapAfterIndex","halfSize","current","newDelta","isLastSash","newSizes","viewItemIndex","newMinDelta","newMaxDelta","resizeIndex","flexibleViewItems","flexibleSize","onChangeDisposable","size3","containerDisposable","viewSize","sashEventMapper","onStartDisposable","onChangeDisposable2","onEndDisposable","onDidResetDisposable","index2","disposable2","contentSize","overloadMinDelta","overloadMaxDelta","pushToStart","pushToEnd","upItems","upSizes","downItems","downSizes","snapped","snapView","deltaUp","viewDelta","deltaDown","lowPriorityIndex","emptyDelta","previous","collapsesDown","expandsDown","reverseViews","collapsesUp","expandsUp","max","snappedBefore","snappedAfter","dispose","TableListRenderer","_TableListRenderer","columns","getColumnSize","rendererMap","rowContainer","cellContainers","cellTemplateData","cellContainer","renderDetails","cell","asListVirtualDelegate","ColumnHeader","Table","_Table","headers","descriptor","totalWeight","unthemedListStyles","deleteCount","unthemedToggleStyles","Toggle","classes2","ev","keyboardEvent","newIsChecked","newTitle","BaseCheckbox","checkbox","Checkbox","isChecked","keyboard","TriStateCheckbox","_state","NLS_CASE_SENSITIVE_TOGGLE_LABEL","NLS_WHOLE_WORD_TOGGLE_LABEL","NLS_REGEX_TOGGLE_LABEL","CaseSensitiveToggle","WholeWordsToggle","RegexToggle","renderText","renderFormattedText","formattedText","_renderFormattedText","parseFormattedText","StringStream","next","treeNode","actionHandler","renderCodeSegments","nodeChild","parseCodeSegments","actionViewItemIndex","stream","isEscapedFormatType","formatTagType","isFormatTag","newCurrent","textCurrent","char","supportCodeSegments","ArrayNavigator","HistoryNavigator","_history","replaceValue","currentElement","$13","InputBox","contextViewProvider","tagName","wrapper","ScrollableElement","onSelectionChange","onAnchoredSelectionChange","placeHolder","isActiveElement","selectionStart","selectionEnd","paddingRight","force","asCssValueWithDefault","errorMsg","spanElement","alertText","suffix","border","previousHeight","inputElement","HistoryInputBox","NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS","NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS","addSuffix","suffixedPlaceholder","mutationList","observer","mutation","resetPlaceholder","historyHint","revertedPlaceholder","always","currentValue","NLS_DEFAULT_LABEL","FindInput","appendCaseSensitiveLabel","appendWholeWordsLabel","appendRegexLabel","flexibleHeight","flexibleWidth","flexibleMaxHeight","viaKeyboard","newIndex","toggles","currentToggle","controlsHidden","ObjectTreeElementCollapseState","ObjectTreeElementCollapseState2","TreeMouseEventTarget","TreeMouseEventTarget2","TreeError","WeakMapper","init_symbols","DiffChange","originalStart","originalLength","modifiedStart","modifiedLength","init_hash","StringDiffSequence","characters","stringDiff","pretty","LcsDiff","Debug","condition","MyArray","sourceArray","sourceIndex","destinationArray","destinationIndex","length","DiffChangeHelper","originalIndex","modifiedIndex","_LcsDiff","originalSequence","modifiedSequence","continueProcessingPredicate","originalStringElements","originalElementsOrHash","originalHasStrings","modifiedStringElements","modifiedElementsOrHash","modifiedHasStrings","sequence","hashes","stringHash","originalElement","modifiedElement","index1","originalEnd","modifiedEnd","quitEarlyArr","midOriginalArr","midModifiedArr","midOriginal","midModified","leftChanges","rightChanges","diagonalForwardBase","diagonalForwardStart","diagonalForwardEnd","diagonalForwardOffset","diagonalReverseBase","diagonalReverseStart","diagonalReverseEnd","diagonalReverseOffset","forwardPoints","reversePoints","deltaIsEven","forwardChanges","reverseChanges","changeHelper","diagonalMin","diagonalMax","diagonalRelative","lastOriginalIndex","historyIndex","diagonal","originalStartPoint","modifiedStartPoint","lastForwardChange","maxDifferences","numDiagonals","numDifferences","furthestOriginalIndex","furthestModifiedIndex","tempOriginalIndex","matchLengthOfLongest","temp","change","originalStop","modifiedStop","checkOriginal","checkModified","startStrictEqual","mergedChangeArr","prevChange","bestDelta","bestScore","score3","aChange","bChange","matchedLength","aOriginalStart","bOriginalEnd","abOriginalLength","aModifiedStart","bModifiedEnd","abModifiedLength","originalMatchStart","modifiedMatchStart","desiredLength","originalMax","modifiedMax","bestOriginalStart","bestModifiedStart","j","originalScore","modifiedScore","diagonalBaseIndex","diagonalsBelow","diagonalsAbove","diffEven","lowerBoundEven","upperBoundEven","precomputedEqualityArray","isFilterResult","getVisibleState","isCollapsibleStateUpdate","update","IndexTreeModel","rootElement","EventBufferer","MicrotaskDelay","location2","toInsert","identity2","toInsertIterable","recurseLevels","parentNode","locationPrefix","recurseSplice","fromOriginal","fromModified","lastStartO","lastStartM","onDidCreateNode","onDidDeleteNode","diffIdentityProvider","listIndex","revealed","treeListElementsToInsert","nodesToInsertIterator","lastIndex","visibleChildStartIndex","nodesToInsert","insertedVisibleChildrenCount","renderNodeCount","deletedNodes","splice","n2","deletedVisibleChildrenCount","visibleDeleteCount","collapsible","collapsed2","onlyVisibleChildIndex","previousRenderNodeCount","deep","treeElement","parentVisibility","treeListElements","childElements","childRevealed","visibleChildrenCount","resultStartLength","hasVisibleDescendants","visibleChildIndex","rest","indexTreeNode","tail","init_filters","TreeElementsDragAndDropData","ElementsDragAndDropData","asTreeDragAndDropData","TreeNodeListDragAndDrop","dnd","originalEvent","targetNode","targetIndex","targetSector","didChangeAutoExpandNode","ref2","accept","effect","parentRef","parentIndex","asListOptions","disposableStore","ComposedTreeDelegate","RenderIndentGuides","RenderIndentGuides2","EventCollection","onDidChange","_elements","TreeRenderer","_TreeRenderer","onDidChangeCollapseState","activeNodes","renderedIndentGuides","shouldRenderIndentGuides","twistie","twistieRendered","guide","contiguousFuzzyScore","patternLower","wordLower","FindFilter","_keyboardNavigationLabelProvider","_filter","_defaultFindVisibility","TreeFindMatchType","TreeFindMode","FuzzyScore","labelStr","fuzzyScore","FindToggles","startStates","TreeFindMode2","TreeFindMatchType2","DefaultTreeToggles","DefaultTreeToggles2","AbstractFindController","tree","checked","showNotFound","warningMessage","FindController","isFilterMode","matchType","defaultFindMode","defaultFindMatchType","toggleContributions","optionsUpdate","stickyScrollNodeStateEquals","node1","stickyScrollNodeEquals","StickyScrollState","stickyNodes","lastStickyNode","secondLastStickyNode","previousState","previousLastStickyNode","DefaultStickyScrollDelegate","stickyScrollMaxItemCount","maxWidgetHeight","stickyNode","StickyScrollController","treeDelegate","stickyScrollOptions","StickyScrollWidget","firstVisibleNode","stickyState","firstVisibleNodeUnderWidget","stickyNodesHeight","nextStickyNode","contrainedStickyNodes","previousStickyNode","nodeIndex","elementTop","stickyPosition","currentStickyNodesHeight","startIndex","endIndex","previousAncestor","currentAncestor","parentOfcurrentAncestor","lastDescendantIndex","stickyRowPositionTop","stickyNodeHeight","lastChildRelativeTop","nodeHeight","nextNodeRelativeTop","lastChildNode","lastChildHeight","bottomOfLastChild","maximumStickyWidgetHeight","constrainedStickyNodes","lastConstrainedStickyNode","nodeLocation","parentLocation","renderCount","ancestors","validatedOptions","treeRenderers","shadow","StickyScrollFocus","lastElement","wasVisible","isVisible","stickyIndex","stickyNodesTotal","stickyElement","accessibilityDisposable","nodeTemplateId","renderer2","nodeCopy","observable","ariaLevel","hasFocus","isStickyScrollContainer","isStickyScrollElement","isKeyboardEvent","stickyNode2","nodeIndexToFocus","newFocusedIndex","elementScrollTop","elementTargetViewTop","newFocusIndex","oldIndex","asTreeMouseEvent","hasParentWithClass","asTreeContextMenuEvent","isStickyScroll","dfs","Trait2","getFirstViewElementWithTrait","identityProvider","silent","insertedNodes","deletedNodesIdSet","deletedNodesVisitor","insertedNodesMap","insertedNodesVisitor","insertedNode","TreeNodeListMouseController","MouseController","stickyScrollProvider","isButton","isEditableElement","isMonacoEditor","onTwistie","isStickyElement","expandOnlyOnTwistieClick","isMonacoCustomToggle","isActionItem","stickyScrollController","TreeNodeList","focusTrait","selectionTrait","anchorTrait","additionalFocus","additionalSelection","fromAPI","AbstractTree","_user","Relay","SetMap","onKeyDown","$23","findOptions","stickyScrollBackground","focusAndSelectionOutline","loop","relativeTop","paddingTop","parentListIndex","focusedIndex","firstChildIndex","onDidModelSplice","activeNodesEmitter","activeNodesDebounce","ObjectTreeModel","insertedElements","insertedElementIds","tnode","collapsed3","noCompress","incompressible","compress","childrenIterator","_decompress","decompress","splice2","wrapIdentityProvider","base","CompressedObjectTreeModel","compressedChildren","compressedNode","compressedParentNode","decompressedElement","splicedElement","recompressedElement","elementComparator","parentChildren","rootChildren","decompressedRootChildren","recompressedRootChildren","DefaultElementMapper","CompressedTreeNodeWrapper","_CompressedTreeNodeWrapper","unwrapper","mapOptions","compressedNodeUnwrapper","otherNode","CompressibleObjectTreeModel","__decorate68","ObjectTree","CompressibleRenderer","_compressedTreeNodeProvider","stickyScrollDelegate","compressedTreeNode","twistieElement","CompressibleStickyScrollDelegate","stickyNodeBottom","uncompressedStickyNodes","overflowingStickyNodes","compressedStickyNode","compressionModel","compressedNode2","compressedElement","stickyTreeNode","asObjectTreeOptions","compressedTreeNodeProvider","CompressibleObjectTree","compressibleRenderers","createAsyncDataTreeNode","props","isAncestor2","ancestor","descendant","intersects","AsyncDataTreeNodeWrapper","_AsyncDataTreeNodeWrapper","AsyncDataTreeRenderer","nodeMapper","onDidChangeTwistieState","asTreeEvent","e2","asTreeMouseEvent2","AsyncDataTreeElementsDragAndDropData","asAsyncDataTreeDragAndDropData","AsyncDataTreeNodeListDragAndDrop","AsyncFindFilter","findProvider","keyboardNavigationLabelProvider","filterResult","AsyncFindController","asObjectTreeOptions2","dfs2","AsyncDataTree","dataSource","asyncFindEnabled","findFilter","objectTreeDelegate","objectTreeRenderers","objectTreeOptions","input","viewState","viewStateContext","includeSubTrees","rerender","dataNode","nodeIdentity","refreshPromise","refreshNode","cancelablePromise","childrenToRefresh","childrenPromise","isIterable","slowTimeout","timeout","childrenElementsIterable","childrenElements","nodesToForget","childrenTreeNodesById","hasChildren","asyncDataTreeNode","node3","childAsyncDataTreeNode","CompressibleAsyncDataTreeNodeWrapper","_CompressibleAsyncDataTreeNodeWrapper","CompressibleAsyncDataTreeRenderer","compressibleNodeMapperProvider","asCompressibleObjectTreeOptions","els","CompressibleAsyncDataTree","compressionDelegate","getId","getUncompressedIds","oldSelection","oldFocus","didChangeSelection","didChangeFocus","getVisibility","DataTree","IsMacContext","IsLinuxContext","IsWindowsContext","IsWebContext","IsMacNativeContext","IsIOSContext","IsMobileContext","isMobile","IsDevelopmentContext","ProductQualityContext","IsSimulationContext","InputFocusedContextKey","InputFocusedContext","__decorate69","__param63","IListService","ListService","extraContextKeys","registeredList","RawWorkbenchListScrollAtBoundaryContextKey","WorkbenchListScrollAtTopContextKey","WorkbenchListScrollAtBottomContextKey","RawWorkbenchListFocusContextKey","WorkbenchTreeStickyScrollFocused","WorkbenchListSupportsMultiSelectContextKey","WorkbenchListFocusContextKey","WorkbenchListHasSelectionOrFocus","WorkbenchListDoubleSelection","WorkbenchListMultiSelection","WorkbenchListSelectionNavigation","WorkbenchListSupportsFind","WorkbenchTreeElementCanCollapse","WorkbenchTreeElementHasParent","WorkbenchTreeElementCanExpand","WorkbenchTreeElementHasChild","WorkbenchTreeFindOpen","WorkbenchListTypeNavigationModeKey","WorkbenchListAutomaticKeyboardNavigationLegacyKey","createScopedContextKeyService","createScrollObserver","listScrollAt","atTop","atBottom","multiSelectModifierSettingKey","openModeSettingKey","horizontalScrollingKey","defaultFindModeSettingKey","typeNavigationModeSettingKey","keyboardNavigationSettingKey","scrollByPageKey","defaultFindMatchTypeSettingKey","treeIndentKey","treeRenderIndentGuidesKey","listSmoothScrolling","mouseWheelScrollSensitivityKey","fastScrollSensitivityKey","treeExpandMode","treeStickyScroll","treeStickyScrollMaxElements","useAltAsMultipleSelectionModifier","MultipleSelectionController","isSelectionSingleChangeEvent","isSelectionRangeChangeEvent","toWorkbenchListOptions","createKeyboardNavigationEventFilter","WorkbenchList","listService","horizontalScrolling","workbenchListOptions","workbenchListOptionsDisposable","options3","horizontalScrolling2","scrollByPage","smoothScrolling","mouseWheelScrollSensitivity","fastScrollSensitivity","ListResourceNavigator","WorkbenchPagedList","WorkbenchTable","TableResourceNavigator","ResourceNavigator","selectionKeyboardEvent","preserveFocus","pinned","isMiddleClick","sideBySide","TreeResourceNavigator","inMultiChord","WorkbenchObjectTree","treeOptions","getTypeNavigationMode","workbenchTreeDataPreamble","WorkbenchTreeInternals","WorkbenchCompressibleObjectTree","WorkbenchDataTree","WorkbenchAsyncDataTree","WorkbenchCompressibleAsyncDataTree","getDefaultTreeFindMode","deprecatedValue","getDefaultTreeFindMatchType","modeString","TypeNavigationMode","configString","paddingBottom","renderIndentGuides","overrideStyles2","updateCollapseContextKeys","interestingContextKeys","typeNavigationMode","enableStickyScroll","configurationRegistry3","OneReference","isProviderFirst","_rangeCallback","defaultGenerator","basename2","FilePreview","_modelReference","beforeRange","afterRange","before","inside","after2","FileReferences","ResourceMap","textModelResolverService","ReferencesModel","_ReferencesModel","links","providersFirst","extUri","oneRef","reference","childCount","groupCount","nearest","commonPrefixLength","CountBadge","titleFormat","format","HighlightedLabel","_HighlightedLabel","highlights","escapeNewLines","substring2","substring","extra","FastLabelNode","_element","empty2","IconLabel","LabelWithHighlights","Label","labelClasses","containerClasses","existingIconNode","iconNode","descriptionNode","suffixNode","htmlElement","previousCustomHover","hoverTarget","hoverDisposable","suffixContainer","after","descriptionContainer","splitMatches","labelStart","labelRange","Range2","supportIcons","ILabelService","__decorate70","__param64","FileReferencesRenderer_1","DataSource","_resolverService","ITextModelService","Delegate","FileReferencesRenderer","OneReferenceRenderer","StringRepresentationProvider","IdentityProvider","FileReferencesTemplate","_labelService","dirname2","createMatches","OneReferenceTemplate","_OneReferenceRenderer","AccessibilityProvider","__decorate71","__param65","DecorationsManager","_DecorationsManager","newDecorationsActualIndex","oneReference","toRemove","newRange","ignore","newLineLength","LayoutData","ReferencesTree","ReferencesDragAndDrop","labelService","ReferenceWidget","_defaultTreeKeyboardSupport","layoutData","_textModelResolverService","_peekViewService","_uriLabel","borderColor","containerElement","TextModel","onEvent","newModel","revealParent","basenameOrAuthority","sel","__decorate72","__param66","ReferencesController_1","ctxReferenceSearchVisible","ReferencesController","_editorService","modelPromise","peekMode","storageKey","requestId","fwd","currentPosition","editorFocus","previewEditorFocus","focusEditor","openedEditor","withController","outerEditor","controller","KeybindingsRegistry","__decorate73","__param67","ctxHasSymbols","ISymbolNavigationService","SymbolNavigationService","refModel","editorState","EditorState2","seenUri","seenPosition","editorService","shouldIncludeLocationLink","sourceModel","loc","matchesSomeScheme","getLocationLinks","provide","getDefinitionsAtPosition","position2","getDeclarationsAtPosition","getImplementationsAtPosition","getTypeDefinitionsAtPosition","getReferencesAtPosition","compact","resultWithoutDeclaration","_sortedAndDeduped","rawLinks","modelLinks","SymbolNavigationAnchor","_SymbolNavigationAnchor","SymbolNavigationAction","_SymbolNavigationAction","symbolNavService","references","altAction","altActionId","referenceCount","accessor2","gotoLocation","peek","targetEditor","isLocationLink","modelNow","DefinitionAction","GoToDefinitionAction","OpenDefinitionToSideAction","PeekDefinitionAction","DeclarationAction","GoToDeclarationAction","TypeDefinitionAction","GoToTypeDefinitionAction","PeekTypeDefinitionAction","ImplementationAction","GoToImplementationAction","PeekImplementationAction","ReferencesAction","GenericGoToLocationAction","_references","_gotoMultipleBehaviour","multiple","noResultsMessage","openInPeek","control","references2","showGoToContextMenu","resolverService","menuActions","symbolAnchor","Severity2","box","goToDefinitionWithLocation","openToSide","isInPeek","canPeek","__decorate74","__param68","InlayHintsController_1","InlayHintsCache","_InlayHintsCache","IInlayHintsCache","RenderedInlayHintLabelPart","ActiveInlayHintInfo","hasTriggerModifier2","InlayHintsController","_featureDebounce","_inlayHintsCache","defaultMode","altMode","newRenderMode","copies","cached","watchedProviders","myToken","inlayHints","gesture","sessionStore","labelPart","lineHints","Command2","updateInlayHints","ModelDecorationInjectedTextOptions","hints","copy","extendedRange","itemFixedLengths","lengths","deco","newItemsWithFixedLength","fixedLengths","lastItem","targetItem","fixedLength","newDecorationsData","addInjectedText","cursorStops","attachedData","addInjectedWhitespace","isLast","marginRule","InjectedTextCursorStops","isUniform","maxLength","fontFamilyVar","currentLineInfo","itemFixedLength","itemActualLength","isFirst","cssProperties","editorActiveLinkForeground","textlabel","tooLong","over","overFixedLength","fixSpace","decorationIdsToReplace","newDecorationIds","InlayHintKind","editorInlayHintParameterBackground","editorInlayHintParameterForeground","editorInlayHintTypeBackground","editorInlayHintTypeForeground","editorInlayHintBackground","editorInlayHintForeground","editorFontSize","editorFontFamily","inlayHintsProvider","__decorate75","__param69","InlayHintsHoverAnchor","InlayHintsHover","executor","itemTooltip","partTooltip","linkHint","iterable","__decorate76","__param70","RenderedContentHover_1","RenderedContentHoverParts_1","RenderedContentHover","hoverResult","participants","RenderedContentHoverParts","contentHoverComputerOptions","showAtSecondaryPosition","anchorRange","startColumnBoundary","anchorViewRange","anchorViewMinColumn","anchorViewRangeStart","anchorStartLineNumber","secondaryPositionColumn","forceShowAtRange","hoverPartRange","hoverPartRangeOnAnchorStartLine","hoverPartRangeOnAnchorEndLine","hoverPartStartColumn","minSecondaryPositionColumn","forceShowAtPosition","RenderedStatusBar","fragment","_statusBar","highlightDecoration","hoverContext","statusBar","hoverRenderingContext","renderedStatusBar","hoverPartsForParticipant","renderedPart","markdownHoverParticipant","rangeOfIndicesToUpdate","normalizedMarkdownHoverIndex","firstIndexOfMarkdownHovers","renderedPart2","copiedRenderedParts","inversedLastIndexOfMarkdownHovers","lastIndexOfMarkdownHovers","__decorate77","__param71","ContentHoverWidgetWrapper","participantInstance","p1","p2","contentHoverWidgetNode","TokenizationRegistry2","isHoverSticky","isMouseGettingCloser","shouldFocus","insistOnKeepingHoverVisible","currentHoverResult","loadingMessage","currentHoverResultIsEmpty","insistOnKeepingPreviousHoverVisible","anchorCandidates","epsilon","isOnColorDecorator","__decorate78","__param72","ContentHoverController_1","_sticky","ContentHoverController","hoverOpts","isMouseOnStickyContentHoverWidget","mouseEvent2","isHoverSticky2","isMouseOnContentHoverWidget","isMouseOnColorPickerOrChoosingColor","isColorPickerVisible","isMouseOnHoverWithColorPicker","isMaybeChoosingColor","isTextSelectedWithinContentHoverWidget","sticky","isFocused","isResizing","isStickyAndVisibleFromKeyboard","hidingDelay","isPotentialKeyboardShortcut","isModifierKeyPressed","resolvedKeyboardEvent","moreChordsAreNeeded","isHoverAction","HoverColorPickerContribution","colorDecoratorsActivatedOn","hoverController","targetRange","__decorate79","__param73","StandaloneColorPickerHover","_StandaloneColorPickerHover","StandaloneColorPickerRenderedParts","StandaloneColorPickerParticipant","defaultColorInfo","defaultColorProvider","foundColorInfo","foundColorProvider","colorInfo2","colorProvider","foundInEditor","colorHoverData","__decorate80","__param74","StandaloneColorPickerWidget_1","StandaloneColorPickerResult","PADDING","CLOSE_BUTTON_WIDTH","StandaloneColorPickerWidget","_standaloneColorPickerVisible","_standaloneColorPickerFocused","editorSelection","classList","positionPreference","computeAsyncResult","colorHoverResult","colorPicker","colorPickerBody","saturationBoxWidth","widthOfOriginalColorBox","enterButton","colorPickerHeader","pickedColorNode","originalColorNode","__decorate81","__param75","StandaloneColorPickerController_1","StandaloneColorPickerController","ShowOrFocusStandaloneColorPicker","HideStandaloneColorPicker","InsertColorWithStandaloneColorPicker","BlockCommentCommand","_BlockCommentCommand","insertSpace","haystack","needle","needleLength","haystackLength","codeA","codeB","startToken","endToken","startLineText","endLineText","startTokenIndex","endTokenIndex","startLineAfterStartToken","endLineBeforeEndToken","ops","res","inverseEditOperations","startTokenEditOperation","endTokenEditOperation","srcRange","deltaColumn","LineCommentCommand","_LineCommentCommand","indentSize","ignoreEmptyLines","ignoreFirstLine","commentStr","onlyWhitespaceLines","lineCommentNoIndent","shouldRemoveComments","lineData","lineContentStartOffset","firstNonWhitespaceIndex","commentStrEndOffset","startTokenAllowedBeforeColumn","firstNonWhitespaceIndex2","afterCommentStr","currentVisibleColumn","isTab","columnSize","minVisibleColumn","lenJ","j2","lenJ2","CommentLineAction","modelOptions","commentsOptions","curr","ToggleCommentLineAction","AddLineCommentAction","RemoveLineCommentAction","BlockCommentAction","__decorate82","__param76","ContextMenuController_1","ContextMenuController","getShadowRoot","hasSelectionAtPosition","addedItems","subActions","customActionViewItem","wasCancelled","minimapOptions","lastId","createAction","createSubmenuAction","actions2","createEnumAction","configName","configuredValue","createRunner","ShowContextMenu","CursorState2","thisLen","otherLen","StackElement","cursorState","CursorUndoRedoController","_CursorUndoRedoController","prevState","stackElement","CursorUndo","CursorRedo","DragAndDropCommand","targetPosition","hasTriggerModifier","DragAndDropController","_DragAndDropController","possibleSelections","primarySelection","selectionStartLineNumber","selectionStartColumn","pasteAsCommandId","PasteAsAction","TreeViewsDnDService","uuid","DraggedTreeItemsIdentifier","identifier","ITreeViewsDnDService","__decorate83","__param77","DropIntoEditorController_1","dropAsPreferenceConfig","changeDropTypeCommandId","dropWidgetVisibleCtx","DropIntoEditorController","_treeViewsDragAndDropService","dragEvent","ourDataTransfer","activeEditIndex","treeDataTransfer","init_editorColorRegistry","init_textModelSearch","FindDecorations","_FindDecorations","scopes","findScopeDecorationId","newStartPosition","desiredRange","candidateOpts","nextMatch","newCurrentDecorationId","matchPosition","rng","lineBeforeEnd","lineBeforeEndMaxColumn","findMatches","findScopes","findMatchesOptions","newOverviewRulerApproximateDecorations","approxPixelsPerLine","mergeLinesDelta","prevStartLineNumber","prevEndLineNumber","newFindMatchesDecorations","findScope","overviewRulerFindMatchForeground","minimapFindMatch","ReplaceAllCommand","replaceStrings","o1","resultOps","previousOp","buildReplaceStringWithCasePreserved","containsHyphens","validateSpecificSpecialCharacter","containsUnderscores","buildReplaceStringForSpecificSpecialCharacter","containsUppercaseCharacter","specialCharacter","splitPatternAtSpecialCharacter","splitMatchAtSpecialCharacter","replaceString","splitValue","StaticValueReplacePattern","staticValue","DynamicPiecesReplacePattern","pieces","ReplacePattern","_ReplacePattern","ReplacePiece","preserveCase","piece","repl","lenOps","opIdx","len2","matchIndex","remainder","_ReplacePiece","caseOps","ReplacePieceBuilder","toCharIndex","parseReplaceString","chCode","nextChCode","nextNextChCode","CONTEXT_FIND_WIDGET_VISIBLE","CONTEXT_FIND_WIDGET_NOT_VISIBLE","CONTEXT_FIND_INPUT_FOCUSED","CONTEXT_REPLACE_INPUT_FOCUSED","ToggleCaseSensitiveKeybinding","ToggleWholeWordKeybinding","ToggleRegexKeybinding","ToggleSearchScopeKeybinding","TogglePreserveCaseKeybinding","FIND_IDS","MATCHES_LIMIT","RESEARCH_DELAY","FindModelBoundToEditorModel","_FindModelBoundToEditorModel","moveCursor","newFindScope","currentMatchesPosition","matchAfterSelection","findFirstIdxMonotonousOrArrLen","matchesPosition","isUsingLineStops","isRecursed","nextMatchRange","prevMatchRange","searchRange","prevMatch","captureMatches","forceMove","decorationRange","replacePattern","limitResultCount","searchRanges","searchData","SearchParams","searchRegex","modelText","fullModelRange","resultText","ReplaceCommandThatPreservesSelection","FindOptionsWidget","_FindOptionsWidget","toggleStyles","somethingChanged","actionId","effectiveOptionValue","FindReplaceState","matchesCount","currentMatch","changeEvent","updateHistory","oldEffectiveIsRegex","oldEffectiveWholeWords","oldEffectiveMatchCase","oldEffectivePreserveCase","newSearchScope","existingSearchScope","NLS_DEFAULT_LABEL2","NLS_PRESERVE_CASE_LABEL","PreserveCaseToggle","ReplaceInput","_showOptionButtons","appendPreserveCaseLabel","history","controls","newWidth","__decorate84","__param78","historyNavigationVisible","HistoryNavigationWidgetFocusContext","HistoryNavigationForwardsEnablementContext","HistoryNavigationBackwardsEnablementContext","lastFocusedWidget","widgets","registerAndCreateHistoryNavigationContext","scopedContextKeyService","historyNavigationWidgetFocus","historyNavigationForwardsEnablement","historyNavigationBackwardsEnablement","onDidFocus","onDidBlur","ContextScopedFindInput","ContextScopedReplaceInput","showReplaceOptions","showHistoryKeybindingHint","findCollapsedIcon","findExpandedIcon","findSelectionIcon","findReplaceIcon","findReplaceAllIcon","findPreviousMatchIcon","findNextMatchIcon","NLS_FIND_DIALOG_LABEL","NLS_FIND_INPUT_LABEL","NLS_FIND_INPUT_PLACEHOLDER","NLS_PREVIOUS_MATCH_BTN_LABEL","NLS_NEXT_MATCH_BTN_LABEL","NLS_TOGGLE_SELECTION_FIND_TITLE","NLS_CLOSE_BTN_LABEL","NLS_REPLACE_INPUT_LABEL","NLS_REPLACE_INPUT_PLACEHOLDER","NLS_REPLACE_BTN_LABEL","NLS_REPLACE_ALL_BTN_LABEL","NLS_TOGGLE_REPLACE_MODE_BTN_LABEL","NLS_MATCHES_COUNT_LIMIT_TITLE","NLS_MATCHES_LOCATION","NLS_NO_RESULTS","FIND_WIDGET_INITIAL_WIDTH","PART_WIDTH","FIND_INPUT_AREA_WIDTH","MAX_MATCHES_COUNT_WIDTH","FIND_INPUT_AREA_HEIGHT","ctrlKeyMod2","FindWidgetViewZone","stopPropagationForMultiLineUpwards","textarea","isMultiline","stopPropagationForMultiLineDownwards","FindWidget","_FindWidget","codeEditor","_findWidgetSearchHistory","_replaceWidgetHistory","supportLoop","addExtraSpaceOnTop","globalBufferTerm","showRedOutline","searchString","isSelection","findInputIsNonEmpty","canReplace","isSelectionMultipleLine","adjustEditorScrollTop","startCoords","startLeft","startTop","leftOfFindWidget","getTopLeftOffset","endCoords","focusTheEditor","targetScrollTop","viewZone","adjustScroll","newHeight","scrollAdjustment","editorWidth","minimapWidth","collapsedFindWidget","reducedFindWidget","narrowFindWidget","findInputWidth","totalheight","totalHeight","findSearchHistoryConfig","replaceHistoryConfig","SimpleButton","findPart","widgetClose","replaceHoverDelegate","replacePart","replaceActionsContainer","getComputedStyle","currentWidth","widgetViewZoneVisible","expanded2","findRangeHighlightBorder","editorFindRangeHighlightBorder","hcBorder","findMatchForeground","editorFindMatchForeground","findMatchHighlightForeground","editorFindMatchHighlightForeground","__decorate85","__param79","FindWidgetSearchHistory_1","FindWidgetSearchHistory","callbackfn","thisArg","__decorate86","__param80","ReplaceWidgetHistory_1","ReplaceWidgetHistory","__decorate87","__param81","CommonFindController_1","SEARCH_STRING_MAX_LENGTH","getSelectionSearchString","seedSearchStringFromSelection","seedSearchStringFromNonEmptySelection","wordAtPosition","CommonFindController","shouldRestartFind","ignoreWhenVisible","stateChanges","selectionSearchString","currentSelections","FindController2","updateSearchScope","StartFindAction","registerMultiEditorAction","MultiEditorAction","findArgDescription","StartFindWithArgsAction","StartFindWithSelectionAction","MatchFindAction","NextMatchFindAction","PreviousMatchFindAction","MoveToMatchFindAction","inputBox","toFindMatchIndex","matchCount","updatePickerAndEditor","overviewRulerRangeHighlight","SelectionMatchFindAction","NextSelectionMatchFindAction","PreviousSelectionMatchFindAction","StartFindReplaceAction","currentSelection","findInputFocused","FindCommand","foldSourceAbbr","MAX_FOLDING_REGIONS","MAX_LINE_NUMBER","MASK_INDENT","BitField","numWords","arrayIndex","bit","FoldingRegions","_FoldingRegions","startIndexes","endIndexes","types","parentIndexes","isInsideLast","hasChanged","FoldingRegion","low","high","mid","rangesLength","gotTypes","regions","rangesA","rangesB","getIndexedFunction","getA","getB","indexA","indexB","nextA","nextB","stackedRanges","topStackedRange","prevLineNumber","resultRanges","useRange","scanIndex","prescanB","FoldingModel","textModel","decorationProvider","toggledRegions","r1","r2","processed","k","dirtyRegionEndLine","lastHiddenLine","updateDecorationsUntil","isCollapsed","isManual","editorDecorationId","newCollapseState","newFoldingRanges","intersects2","foldRange","newRegions","foldedOrManualRanges","newRanges","newEditorDecorations","foldedRanges","decRange","checksum","rangesToRestore","lineNumber1","hash","level","levelStack","toggleCollapseState","foldingModel","levels","lineNumbers","toToggle","doCollapse","regionsInside","setCollapseStateLevelsDown","setCollapseStateLevelsUp","setCollapseStateUp","setCollapseStateAtLevel","foldLevel","blockedLineNumbers","setCollapseStateForRest","filteredRegions","filteredRegion","setCollapseStateForMatchingLines","regExp","setCollapseStateForType","getParentFoldLine","foldingRegion","parentFoldingIdx","getPreviousFoldLine","expectedParentIndex","minLineNumber","getNextFoldLine","init_eolCounter","HiddenRangeModel","countEOL","updateHiddenAreas","newHiddenAreas","lastCollapsedStart","lastCollapsedEnd","findRange","hasChanges","lastRange","adjustLine","isInside","adjustedStartLine","adjustedEndLine","MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT","ID_INDENT_PROVIDER","IndentRangeProvider","foldingRangesLimit","cancelationToken","foldingRules","offSide","markers","computeRanges","RangesCollector","maxIndent","foldingRangesLimitDefault","previousRegions","line2","foldBackground","transparent","editorSelectionBackground","iconForeground","foldingExpandedIcon","foldingCollapsedIcon","foldingManualCollapsedIcon","foldingManualExpandedIcon","foldedBackgroundMinimap","collapsed","expanded","FoldingDecorationProvider","_FoldingDecorationProvider","isHidden","decorationIds","foldingContext","ID_SYNTAX_PROVIDER","SyntaxRangeProvider","handleFoldingRangesChange","fallbackRangeProvider","cancellationToken","collectSyntaxRanges","sanitizeRanges","rangeData","nLines","RangesCollector2","nestingLevel","maxLevel","sorted","__decorate88","__param82","FoldingController_1","CONTEXT_FOLDING_ENABLED","FoldingController","foldingRangeProviders","RangesLimitReporter","collapsedRegions","hr2","indentRangeProvider","selectedProviders","foldingRegionPromise","foldingRanges","FoldingRangeKind","toSelectedLines","hiddenRanges","foldingModel2","iconClicked","offsetLeftInGutter","surrounding","otherRegion","toMaybeToggle","FoldingAction","foldingController","foldingModelPromise","startLine","foldingArgumentsConstraint","foldingArgs","isNumber","UnfoldAction","_foldingController","UnFoldRecursivelyAction","FoldAction","ToggleFoldAction","selectedLines","FoldRecursivelyAction","ToggleFoldRecursivelyAction","FoldAllBlockCommentsAction","comments","FoldAllRegionsAction","UnfoldAllRegionsAction","FoldAllExceptAction","UnfoldAllExceptAction","FoldAllAction","UnfoldAllAction","FoldLevelAction","_FoldLevelAction","GotoParentFoldAction","GotoPreviousFoldAction","GotoNextFoldAction","FoldRangeFromSelectionAction","collapseRanges","RemoveFoldRangeFromSelectionAction","ToggleImportFoldAction","regionsToToggle","registerInstantiatedEditorAction","strategy","foldingLimitReporter","rangeProvider","EditorFontZoomIn","EditorZoom","EditorFontZoomOut","EditorFontZoomReset","init_characterClassifier","init_linkedList","FormattingEdit","_FormattingEdit","newEol","singleEdits","_edits","addUndoStops","ExtensionIdentifier","ExtensionIdentifierSet","getRealAndSyntheticDocumentFormattersOrdered","documentFormattingEditProvider","documentRangeFormattingEditProvider","seen","docFormatter","formatter","rangeFormatter","FormattingConflicts","_FormattingConflicts","LinkedList","document2","formatDocumentRangesWithSelectedProvider","editorOrModel","rangeOrRanges","userGesture","documentRangeFormattingEditProviderRegistry","formatDocumentRangesWithProvider","workerService","computeEdits","hasIntersectingEdit","mergedA","otherEdit","allEdits","rawEditsList","mergedRange","rawEdits","minimalEdits","initialSelection","undoEdits","range3","formatDocumentWithSelectedProvider","formatDocumentWithProvider","getDocumentRangeFormattingEditsUntilResult","getDocumentFormattingEditsUntilResult","getOnTypeFormattingEdits","__decorate89","__param83","FormatOnType","_workerService","support","triggerChars","CharacterSet","lastCharCode","unbind","FormatOnPaste","FormatDocumentAction","FormatSelectionAction","init_outlineModel","outlineService","IOutlineModelService","AccessibleViewRegistry","implementation","__decorate91","__param85","hotClassGetOriginalInstance","BaseClass","params","createWrapper","clazz","B","clazz_","wrapInHotClass1","isHotReloadEnabled","BaseClass1","param1","Context","suggestWidgetStatusbarMenu","CompletionItem","completion","sub","CompletionOptions","_CompletionOptions","snippetSortOrder","kindFilter","providerFilter","providerItemsToReuse","showDeprecated","_snippetSuggestSupport","getSnippetSuggestSupport","CompletionItemModel","needsClipboard","durations","provideSuggestionItems","defaultReplaceRange","defaultRange","onCompletionList","sw2","didAddResult","suggestion","snippetCompletions","reuseItems","providerGroup","getSuggestionComparator","defaultComparator","snippetUpComparator","snippetDownComparator","_snippetComparators","snippetConfig","triggerCharacter","maxItemsToResolve","completionProvider","actualPosition","completions","showSimpleSuggestions","QuickSuggestionsOptions","tokenType","InlineCompletionContextKeys","IDataChannelService","NullDataChannelService","_channelId","__decorate92","__param86","StructuredLogger_1","formatRecordableLogEntry","StructuredLogger","_key","_dataChannelService","observableContextKey","__decorate93","__param87","TextModelChangeRecorder","_loggerService","logger","loggingLevel","canLog","LogLevel","tm","ILoggerService","init_equals","init_cursorColumns","init_extpath","normalizeDriveLetter","isWindowsOS","hasDriveLetter","__decorate94","__param88","KnownSnippetVariableNames","CompositeSnippetVariableResolver","_delegates","SelectionBasedVariableResolver","_selection","_selectionIdx","_overtypingCapturer","lineLeadingWhitespace","getLeadingWhitespace","varLeadingWhitespace","splitLines","whitespaceCommonLength","newline2","ModelBasedVariableResolver","name2","dirname","ClipboardBasedVariableResolver","_readClipboardText","_selectionCount","_spread","isFalsyOrWhitespace","CommentBasedVariableResolver","_languageConfigurationService","langId","TimeBasedVariableResolver","_TimeBasedVariableResolver","rawTimeOffset","sign","hours","hoursString","minutes","minutesString","WorkspaceBasedVariableResolver","_workspaceService","filename","folderpath","RandomBasedVariableResolver","__decorate95","__param89","SnippetSession_1","OneSnippet","_OneSnippet","_snippet","_snippetLineLeadingWhitespace","groupBy","textChange","placeholderOffset","placeholderLen","transformedValueLines","couldSkipThisPlaceholder","activePlaceholders","enclosingPlaceholder","placeholdersWithEqualIndex","nested","indexLastPlaceholder","nestedPlaceholder","placeholder2","_defaultOptions","SnippetSession","adjustIndentation","snippetTextString","prevChar","overwriteBefore","overwriteAfter","positionLineNumber","positionColumn","positionColumnBefore","positionColumnAfter","adjustWhitespace","overtypingCapturer","snippets","workspaceService","modelBasedVariableResolver","readClipboardText","firstBeforeText","firstAfterText","firstLineFirstNonWhitespace","indexedSelections","extensionBefore","extensionAfter","snippetSelection","snippetLineLeadingWhitespace","snippetEdits","parser2","keepWhitespace","textRange","textNode","newNodes","snippetText","snippetFragmentText","_template","editReason","_undoEdits","isTrivialSnippet","oneSelection","allPossibleSelections","array2","__decorate96","__param90","SnippetController2_1","_defaultOptions2","SnippetController2","activeChoice","isAnyOfOptions","suggestions","isRegistered","disable","enable","resetSelection","CommandCtor","ctrl","getPositionOffsetTransformerFromTextModel","PositionOffsetTransformerWithTextModel","PositionOffsetTransformerBase","array","getReadonlyEmptyArray","getEndPositionsAfterApplying","getModifiedRangesAfterApplying","sortPerm","Permutation","sortedNewRanges","removeTextReplacementCommonSuffixPrefix","transformer","replacement","convertItemsToStableObservables","innerObservables","itemsValue","ObservableContextKeyService","obs","wait","ms","AnimatedValue","startValue","endValue","durationMs","_interpolationFunction","easeOutExpo2","timePassed","passedTime","totalDuration","easeOutCubic2","ObservableAnimatedValue","initialValue","AnimationFrameScheduler","_AnimationFrameScheduler","GhostText","assertFn","checkAdjacentItems","lineText","lastPart","cappedLineText","TextReplacement","GhostTextPart","_inlineDecorations","GhostTextReplacement","columnRange","additionalReservedLineCount","_lineText","ghostTextsOrReplacementsEqual","ghostTextOrReplacementEquals","singleTextRemoveCommonPrefix","validModelRange","modelRange","normalizedText","valueToReplace","commonPrefixLen","singleTextEditAugments","rangeExtends","extendingRange","rangeToExtend","computeGhostText","previewSuffixLength","sourceLine","sourceIndentationLength","suggestionAddedIndentationLength","replacedIndentation","rangeThatDoesNotReplaceIndentation","suggestionWithoutIndentationChange","valueToBeReplaced","cachingDiff","filteredChanges","previewStartInCompletionText","insertColumn","nonPreviewTextEnd","nonPreviewText","italicText","lastRequest","originalValue","smartDiff","deletedChars","deletedCharacters","newChanges","sum2","smartBracketMatching","getMaxCharCode","maxCharCode2","charCode","maxCharCode","getUniqueCharCode","getElements","elements1","elements2","init_deps","init_transaction","init_debugName","init_derivedImpl","init_debugLocation","observableReducerSettable","prevValue","hasValue","DerivedWithSetter","DebugNameData","strictEquals","DebugLocation","offsetEditFromContentChanges","contentChanges","editsArr","StringReplacement","StringEdit","MINIMUM_MATCHING_CHARACTER_LENGTH","LegacyLinesDiffComputer","originalLines","modifiedLines","DiffComputer","lastChange","RangeMapping","m1","LinesDiff","computeDiff","LineSequence2","startColumns","endColumns","getFirstNonBlankColumn","getLastNonBlankColumn","shouldIgnoreTrimWhitespace","charCodes","CharSequence","CharChange","_CharChange","originalStartColumn","originalEndColumn","modifiedStartColumn","modifiedEndColumn","diffChange","originalCharSequence","modifiedCharSequence","postProcessCharChanges","rawChanges","currChange","originalMatchingLength","modifiedMatchingLength","LineChange","_LineChange","charChanges","originalLineSequence","modifiedLineSequence","continueCharDiff","shouldComputeCharChanges","shouldPostProcessCharChanges","createContinueProcessingPredicate","diffResult","quitEarly","lineChanges","originalLineIndex","modifiedLineIndex","nextChange","originalLine","modifiedLine","originalChar","modifiedChar","originalMaxColumn","modifiedMaxColumn","originalLineNumber","modifiedLineNumber","txt","defaultValue","lastNonWhitespaceIndex","maximumRuntime","startTime","linesDiffComputers","DefaultLinesDiffComputer","InlineSuggestionItem","InlineSuggestionItem2","create4","InlineEditItem","InlineCompletionItem","InlineSuggestionItemBase","_data","displayLocation","viewKind","viewData","acceptedCharacters","partialAcceptance","InlineSuggestionIdentity","_InlineSuggestionIdentity","InlineSuggestDisplayLocation","_InlineSuggestDisplayLocation","positionOffsetTransformer","offsetRange","newOffsetRange","applyEditsToRanges","_InlineCompletionItem","reshapeInlineCompletion","trimmedEdit","_edit","_trimmedEdit","_textEdit","_originalRange","snippetInfo","additionalTextEdits","textModelEdit","newEditRange","newEdit","newTextEdit","newDisplayLocation","updatedRange","singleTextEdit","inlineCompletionIsVisible","minimizedReplacement","filterText","cursorPosIndex","filterTextBefore","filterTextAfter","originalValueBefore","originalValueAfter","originalValueIndent","matchesSubString","_InlineEditItem","offsetEdit","getStringEdit","replacedRange","replacedText","SingleUpdatedNextEdit","_lastChangePartOfInlineEdit","_inlineEditModelVersion","textModelChanges","innerEdit","newTextModelVersion","inlineEditModelVersion","lastChangePartOfInlineEdit","replaceText","eol","editOriginalText","editReplaceText","addRangeToPos","modifiedText","StringText","rangeInModel","replaceText2","reshapeInlineEdit","_SingleUpdatedNextEdit","prefixLength","suffixLength","commonSuffixLength","trimmedNewText","_trimmedNewText","_prefixLength","_suffixLength","_lastChangeUpdatedEdit","editStart","editEnd","editHasChanged","shouldPreserveEditShape","isInsertion2","reshapeMultiLineInsertion","totalInnerEdits","init_brackets","init_length","init_parser","init_smallImmutableSet","init_tokenizer","fixBracketsInLine","denseKeyProvider","DenseKeyProvider","bracketTokens","LanguageAgnosticBracketTokens","tokenizer","TextBufferTokenizer","StaticTokenizerSource","parseDocument","processNode","lengthAdd","closingTokenText","lengthZero","DirectedGraph","_DirectedGraph","getOutgoing","graph","outgoing","outgoingSet","foundCycles","recursionStack","dfs3","neighbor","init_cache","InlineEditTabAction","InlineEditTabAction2","InlineCompletionViewKind","InlineCompletionViewKind2","provideInlineCompletions","requestInfo","requestUuid","prefixedUuid","cancellationTokenSource","cancelReason","contextWithUuid","getDefaultRange","providersByGroupId","groupByMap","yieldsToGraph","groupId","runningCount","queryProvider","CachedFunction","result2","providerStartTime","providerEndTime","InlineSuggestionList","runWhenCancelled","toInlineSuggestData","inlineCompletionLists","AsyncIterableObject","isDefined","inlineCompletion","providerRequestInfo","closeBrackets","preBracketCompletionLength","assertNever","InlineSuggestData","sourceInlineCompletion","isInlineEdit","_requestInfo","_providerRequestInfo","_correlationId","updatedInsertText","InlineCompletionEndOfLifeReasonKind","partialAccepts","timeNow","InlineCompletionEditorType","InlineCompletionEditorType2","inlineSuggestions","inlineSuggestionsData","currentLine","textTokens","__decorate97","__param91","InlineCompletionsSource_1","InlineCompletionsSource","_versionId","_debounceValue","_cursorPosition","InlineCompletionsState","recordChangesLazy","previousValue","observableConfigValue","providersLabel","activeInlineCompletion","withDebounce","userJumpedToActiveCompletion","UpdateRequest","updateOngoing","recommendedDebounceValue","debounceValue","findLastMax","compareUndefinedSmallest","providerResult","shouldStopEarly","didAllProvidersReturn","remainingTimeToWait","endTime","updateOperation","UpdateOperation","inlineCompletions","suggestWidgetInlineCompletions","equalsIfDefined","itemEquals","isSubset","set1","set2","_InlineCompletionsState","hash2","newInlineCompletions","updatedSuggestions","itemIdToPreserveAtTop","itemToPreserve","itemToPreserveCandidate","updatedItemToPreserve","moveToFront","preferInlineCompletions","updatedItems","oldItem","distinctByKey","InlineEdit","__decorate98","__param92","IInlineCompletionsService","InlineCompletionsSnoozing","InlineCompletionsService","_telemetryService","WindowIntervalTimer","inlineCompletionsSnoozing","wasSnoozing","timeLeft","deltaMs","totalMs","deltaSeconds","totalSeconds","snoozeInlineSuggestId","cancelSnoozeInlineSuggestId","LAST_SNOOZE_DURATION_KEY","SnoozeInlineCompletion","_SnoozeInlineCompletion","inlineCompletionsService","durationMinutes","lastSelectedDuration","picked","CancelSnoozeInlineCompletion","_CancelSnoozeInlineCompletion","TypingInterval","_TypingInterval","now","totalChars","tempSession","allSessions","sessions","sortedSessions","cutoffTime","recentSessions","session","olderSessions","sum","totalTime","keystrokeIntervals","avgMsBetweenKeystrokes","__decorate99","__param93","InlineCompletionsModel","_selectedSuggestItem","_textModelVersionId","_positions","_codeEditorService","_inlineCompletionsService","derivedHandleChanges","VersionIdChangeReason","detailedReasons","suggestItem","typingInterval","jumpedTo","availableProviders","inlineEdit","visibleCompletions","itemsEquals","selectedInlineCompletionId","filteredCompletions","showOnSuggestConflict","inlineEditResult","cursorAtInlineEdit","cursorPos","nextEditUri","suggestCompletionEdit","augmentation","fullEdit","fullEditPreviewLength","validEditsAndGhostTexts","getSecondaryEdits","ghostTexts","primaryGhostText","isCurrentModelVersion","isMultiLine","getNonIndentationRange","columnStart","lastNonWsColumn","columnEnd","suggest","inlineSuggest","isSnoozing","isNotebook","inlineEditSemanticId","inlineCompletionProviders","mapObservableArrayCached","activeState","startsWithIndentation","startsWithIndentationLessThanTabSize","firstLine","indentationEndColumn","firstNonWsIdx","CursorColumns","suppressedProviderGroupIds","unsuppressedProviders","excludedGroupIds","onlyFetchInlineEdits","stopReason","suggestCompletion","candidateInlineCompletions","mapFindFirst","newIdx","isNextEditUri","mainEdit","additionalEdits","editRanges","dec","FadeoutDecoration","wordRegExp","acceptUntilIndexExclusive","getAcceptUntilIndex","firstPart","ghostTextPos","ghostTextVal","partialGhostTextVal","newText","primaryEdit","acceptedRange","acceptedLength","itemEdit","augmentedCompletion","revealRange","VersionIdChangeReason2","primaryTextRepl","textTransformer","primaryOffset","secondaryOffsets","primaryStringRepl","deltaFromOffsetToRangeStart","primaryContextRange","primaryContextValue","secondaryOffset","newRangeStart","newRangeEnd","contextRange","stringRepl","onDispose","animation","opacity","init_keybindings","__decorate100","__param94","SuggestMemoryService_1","Memory","topScore","NoMemory","LRUMemory","lineSuffix","indexPreselect","indexRecency","seq","CompletionItemKinds","PrefixMemory","SuggestMemoryService","ISuggestMemoryService","__decorate101","__param95","WordContextKey_1","WordContextKey","checkForWordEnd","__decorate102","__param96","SuggestAlternatives_1","SuggestAlternatives","acceptNext","rounds","CommitCharacterController","acceptCharacters","BracketSelectionRangeProvider","_BracketSelectionRangeProvider","round","counts","bracket","closing","innerBracket","outerBracket","aboveLine","column2","WordDistance","_WordDistance","service","wordRanges","wordUntilPos","wordLines","isFalsyOrEmpty","binarySearch","bestWordRange","blockDistance","LineContext","leadingLineContent","characterCountDelta","CompletionModel","_CompletionModel","lineContext","wordDistance","snippetSuggestions","fuzzyScoreOptions","FuzzyScoreOptions","labelLengths","wordLow","scoreFn","fuzzyScoreGracefulAggressive","wordLen","wordPos","anyScore","quickSelect","init_environment","__decorate103","__param97","SuggestModel_1","LineContext2","triggerOptions","canShowQuickSuggest","suppressSuggestions","canShowSuggestOnTriggerCharacters","SuggestModel","_envService","editorIsComposing","supportsByTriggerCharacter","suggestSupport","checkTriggerCharacter","lastChar","isLowSurrogate","isHighSurrogate","supports","prevSelection","suggestCtx","itemKindFilter","completionOptions","completions2","wordDistance2","ctx2","fuzzySearchOptions","suggestOptions","map","oldLineContext","isFrozen2","shouldAutoTrigger","IEnvironmentService","OvertypingCapturer","_OvertypingCapturer","suggestModel","selectionsLength","willOvertype","__decorate104","__param98","SuggestWidgetStatus","_menuId","actionViewItemProvider","renderMenu","__decorate105","__param99","canExpandCompletionItem","SuggestDetailsWidget","fontWeight","fontSizePx","lineHeightPx","borderWidth","borderHeight","explainMode","md","cappedDetail","size","much","SuggestDetailsOverlay","topLeftNow","sizeNow","deltaTop","deltaLeft","updateTopLeft","sessionEnded","preferAlignAtTop","anchorBox","defaultMinSize","defaultTop","eastPlacement","left2","maxSizeTop","maxSizeBottom","westPlacement","southPacement","top2","placements","alignAtTop","maxSize","editorBoundingBox","topLeft","IFileService","FileKind","FileKind2","fileIconDirectoryRegex","getIconClasses","modelService","fileKind","DataUri","fileIconSelectorEscape","dotSegments","detectedLanguageId","detectLanguageId","__decorate106","__param100","suggestMoreInfoIcon","_completionItemColor","ColorExtractor","ItemRenderer","_modelService","colorspan","main","iconContainer","iconLabel","parametersLabel","qualifierLabel","detailsLabel","readMore","fontFeatureSettings","fontVariationSettings","letterSpacing","letterSpacingPx","labelOptions","detailClasses","stripNewLines","__decorate107","__param101","SuggestWidget_1","editorSuggestWidgetForeground","editorSuggestWidgetSelectedBackground","listHighlightForeground","listFocusHighlightForeground","PersistedWidgetSize","_service","SuggestWidget","SuggestContentWidget","ResizeState","persistedSize","persistHeight","persistWidth","defaultSize","threshold","applyIconStyle","detail2","docs","applyStatusBarStyle","completionModel","loading","auto","selectionIndex","isAuto","noFocus","visibleCount","isEmpty","runAtThisOrScheduleAtNextAnimationFrame","didFocusDetails","dim","minPersistedHeight","preferredWidth","cursorBox","cursorBottom","availableSpaceAbove","statusBarHeight","horizontalPadding","__decorate108","__param102","SuggestController_1","_sticky2","LineSuffix","SuggestController","_memoryService","PriorityRegistry","ctxInsertMode","WindowIdleValue","commitCharacterController","ctxMakesTextEdit","ctxHasInsertAndReplace","ctxCanResolve","KeyCodeChord","acceptSuggestionsOnEnter","updateFromConfig","acceptSuggestionOnEnter","flags","snippetController","modelVersionNow","tasks","isResolved","_commandExectionDuration","_additionalEditsAppliedAsync","columnDelta","startColumnDelta","endColumnDelta","docListener","thisPosition","oldFlags","didType","typeListener","applied","TriggerSuggestAction","itemResolved","commandExectionDuration","additionalEditsAppliedAsync","completionItems","labelMap","firstIndexArray","firstIndex","extname2","toggleMode","replace","suffixDelta","onlyFrom","noFilter","positionNow","fallback2","makesTextEdit","keepAlternativeSuggestions","alternativeOverwriteConfig","prioritySelector","s1","s2","_TriggerSuggestAction","weight2","SuggestCommand","SuggestWidgetAdaptor","suggestControllerPreselector","onWillAccept","suggestController","suggestItems","itemToPreselect","suggestItemInfo","SuggestItemInfo","suggestItemTextEdit","valid","findFirstMax","isBoundToSuggestWidget","bindToSuggestWidget","newActive","newInlineCompletion","suggestItemInfoEquals","focusedItem","_SuggestItemInfo","isSnippetText","completionItemKind","listIncomplete","SelectedSuggestionInfo","ObservableSuggestWidgetAdapter","_editorObs","_handleSuggestAccepted","_suggestControllerPreselector","_tx","cb","init_lineTokens","RangeSingleLine","ColumnRange","endColumnExclusive","TokenWithTextArray","_TokenWithTextArray","tokenInfo","TokenWithTextInfo","_tokenInfo","decoder","LineTokens","_r","lengthSum","tokenStart","tokenEndEx","deltaBefore","deltaAfter","__decorate109","__param103","GhostTextView_1","USE_SQUIGGLES_FOR_WARNING","GHOST_TEXT_CLASS_NAME","GhostTextView","_shouldKeepCursorStable","_isClickable","gt","extraClasses","syntaxHighlightingEnabled","extraClassNames","inlineTexts","additionalLines","hiddenRange","additionalLinesOriginalSuffix","computeGhostTextViewData","inlineTextsWithTokens","tokenizedAdditionalLines","existingContent","cursorColumn","disjointInlineTexts","inline3","hasInsertionOnCurrentLine","renderData","uiState","GhostTextAttachedData","AdditionalLinesWidget","dom","viewZoneId","ghostTextClassName","addToAdditionalLines","ghLines","lastLine","ghLine","textBufferLine","hiddenTextStartColumn","lastIdx","_lines","isTargetGhostText","minReservedLineCount","renderLines2","cursorLineNumber","isClickable","isBasicASCII","containsRTL","ttPolicy4","LineEdit","_LineEdit","replacements","i1","LineReplacement","_LineReplacement","newLines","survivingFirstLineText","endLineNumberEx","editEndLineNumberMaxColumn","survivingEndLineText","startBeforeNewLine","endAfterNewLine","lineRange","InlineEditWithChanges","InlineEditModel","tabAction","InlineEditHost","GhostTextIndicator","editorObs","init_colorUtils","init_point","Rect","_Rect","bottomRight","point","leftRight","topBottom","rects","marginOrVerticalOrTop","rightOrHorizontal","marginLeft","marginRight","marginTop","marginBottom","newBottom","newLeft","newRight","Point","StickyScrollWidgetState","_StickyScrollWidgetState","startLineNumbers","endLineNumbers","lastLineRelativePosition","showEndForLine","_ttPolicy","STICKY_INDEX_ATTR","STICKY_IS_LINE_ATTR","STICKY_IS_LINE_NUMBER_ATTR","STICKY_IS_FOLDING_ICON_ATTR","StickyScrollWidget2","updateScrollLeftPosition","stickyLine","rebuildFromIndexCandidate","currentStateAndPreviousStateUndefined","currentStateDefinedAndEqualsPreviousState","previousLineNumbers","rebuildFromIndex","candidateLineNumbers","newLineNumbers","validIndex","lineNumbersWidth","requireTransitions","allVisible","foldingIcon","renderedStickyLines","renderedLine","viewLineNumber","lineRenderingData","lineNumberOption","actualInlineDecorations","textDirection","renderLineInput","renderOutput","newLine","lineHTMLNode","lineNumberHTMLNode","innerLineNumberHTML","RenderedStickyLine","updatedTop","showFoldingControls","foldingRegions","indexOfFoldingRegion","StickyFoldingIcon","spanDomNode","renderedStickyLine","getColumnOfNodeOffset","attribute","lineDomNode","lineNumberDomNode","characterMapping","scrollWidth","foldingStartLine","foldingEndLine","StickyRange","StickyElement","StickyModel","version","outlineProviderId","__decorate110","__param104","ModelProvider","ModelProvider2","Status","Status2","StickyModelProvider","onProviderUpdate","StickyModelFromCandidateOutlineProvider","StickyModelFromCandidateSyntaxFoldingProvider","StickyModelFromCandidateIndentationFoldingProvider","statusPromise","status2","StickyModelCandidateProvider","providerModelPromise","token2","providerModel","OutlineModel","stickyOutlineElement","providerID","outlineModel","preferredProvider","outlineElements","OutlineGroup","outlineGroupOfModel","tempID","maxTotalSumOfRanges","optimalOutlineGroup","outlineGroup","totalSumRanges","stickyChildren","outlineElementsArray","element1","element2","range1","outlineElement","previousStartLine","subchild","child1","outline","OutlineElement","StickyModelFromCandidateFoldingProvider","foldingElement","orderedStickyElements","__decorate111","__param105","StickyLineCandidate","StickyLineCandidateProvider","stickyLineCandidates","depth","lastStartLineNumber","childrenStartLines","lowerBound","upperBound","__decorate112","__param106","StickyScrollController_1","StickyScrollController2","_languageFeatureDebounceService","stickyScrollDomNode","revealFunction","getMouseEventTarget","mouseTargetElement","stickyScrollWidgetDomNode","_keyboardEvent","mouseTarget","textElement","currentHTMLChild","candidateDefinitions","childHTML","targetWindow","currentEndForLineIndex","stickyLineNumbers","stickyLineNumber","theoreticalLines","rebuildFromLine","nextRebuildFromLine","stickyWidgetVersion","focusedStickyElementLineNumber","minRebuildFromLineOrInfinity","stickyWidgetHasLines","maxNumberStickyLines","arrayVisibleRanges","fullVisibleRange","candidateRanges","topOfElement","bottomOfElement","topOfBeginningLine","bottomOfEndLine","originalBackgroundColor","modifiedBackgroundColor","originalChangedLineBackgroundColor","originalChangedTextOverlayColor","modifiedChangedLineBackgroundColor","diffInsertedLine","modifiedChangedTextOverlayColor","inlineEditIndicatorPrimaryForeground","inlineEditIndicatorPrimaryBorder","inlineEditIndicatorPrimaryBackground","inlineEditIndicatorSecondaryForeground","inlineEditIndicatorSecondaryBorder","inlineEditIndicatorSecondaryBackground","inlineEditIndicatorsuccessfulForeground","inlineEditIndicatorsuccessfulBorder","inlineEditIndicatorsuccessfulBackground","inlineEditIndicatorBackground","originalBorder","modifiedBorder","darken","tabWillAcceptModifiedBorder","tabWillAcceptOriginalBorder","getModifiedBorderColor","getOriginalBorderColor","getEditorBlendedColor","colorIdentifier","observeColor","backgroundColor","editorBackground","observableFromEventOpts","maxContentWidthInRange","maxContentWidth","lineContentWidth","getOffsetForPos","getPrefixTrim","diffRanges","originalLinesRange","replacementStart","originalIndents","indentOfLine","modifiedIndents","prefixTrim","prefixLeftOffset","getContentRenderWidth","numTabs","getEditorValidOverlayRect","contentLeft","hasMinimapOnTheRight","minimapAndScrollbarWidth","applyEditToModifiedRangeMappings","rangeMapping","updatedMappings","classNames","offsetRangeToRange","columnOffsetRange","startPos","getIndentationSize","indentSizeToIndentLength","remainingSize","createReindentEdit","minIndentSize","findFirstMin","indentLength","PathBuilder","mapOutFalsy","nonUndefinedObs","rectToProps","__decorate113","__param107","GutterIndicatorMenuContent","_close","createOptionArgs","header","gotoAndAccept","option","reject","extensionCommands","toggleCollapsedMode","showCollapsed","settings","actionBarFooter","actionBar","hoverContent","separator","descriptionForeground","elem","editorActionListForeground","editorHoverBorder","__decorate114","__param108","InlineEditsGutterIndicator","_verticalOffset","_isHoveringOverInlineEdit","_focusIsInMenu","debouncedObservable","lineNumberOptions","relativeLineNumber","rightOfLineNumber","totalLinesDigits","offsetDigits","digits","firstLineNumberWithDigitCount","topOfLineNumber","digitsWidth","usableWidthLeftOfLineNumber","topOffset","gutterViewPortPadding","gutterWidthWithoutPadding","gutterHeightWithoutPadding","gutterViewPortWithStickyScroll","gutterViewPortWithoutStickyScrollWithoutPaddingTop","gutterViewPortWithoutStickyScroll","verticalEditRange","gutterEditArea","pillHeight","pillOffset","pillFullyDockedRect","pillIsFullyDocked","iconNoneDocked","iconDocked","editStartLineNumber","idealIconWidth","minimalIconWidth","iconWidth","pillRect2","availableWidth","lineNumberWidth","lineNumberRect","iconWidth2","iconRect2","pillPartiallyDockedPossibleArea","pillRectMoved2","pillRectMoved","pillRect","iconRect","iconDirection","acceptOnClick","getRotationFromDirection","rectangularArea","runOnChange","isHovering","__decorate115","__param109","UserKind","UserKind2","InlineEditsOnboardingExperience","_host","_indicator","_collapsedView","indicator","userHasHoveredOverIcon","inlineEditHasBeenAccepted","firstTimeUserAnimationCount","secondTimeUserAnimationCount","runOnChangeWithCancellationToken","__","userType","isHovered","host","hiddenDebugSetting","__decorate116","__param110","InlineEditsCollapsedView","observedStartPoint","startPoint","overlayElement","startPointTranslated","iconPath","indicatorPoint","baseTopLeft","baseTopRight","baseBottomLeft","baseBottomRight","triangleBottomCenter","__decorate117","__param111","MIN_END_OF_LINE_PADDING","PADDING_VERTICALLY","PADDING_HORIZONTALLY","HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW","VERTICAL_OFFSET_WHEN_ABOVE_BELOW","InlineEditsCustomView","dl","overlay","displayLabel","editorContentLeft","editorVerticalScrollbar","maxOriginalContent","maxModifiedContent","contentState","startLineNumber2","endLineNumber2","lineWidth","lineWidthBelow","lineWidthAbove","startContentLeftOffset","endContentLeftOffset","fitsInsideViewport","topOfLine","contentStartOffset","InlineCompletionDisplayLocationKind","TokenArray","HORIZONTAL_PADDING","VERTICAL_PADDING","BORDER_WIDTH","WIDGET_SEPARATOR_WIDTH","WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH","BORDER_RADIUS","InlineEditsDeletionView","_uiState","_tabAction","originalDisplayRange","horizontalScrollOffset","f","selectionTop","selectionBottom","layoutInfoObs","overlayhider","overlayRect","overlayHider","separatorWidth","separatorRect","bc","originalStartPosition","originalEndPosition","__decorate118","__param112","BORDER_WIDTH2","WIDGET_SEPARATOR_WIDTH2","WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH2","BORDER_RADIUS2","InlineEditsInsertionView","_input","endOfLineColumn","linesTop","linesBottom","trimVertically","inlineDecorations","textBeforeInsertion","textAfterInsertion","lineWidths","verticalScrollbarWidth","topTrim","bottomTrim","overlayLayoutObs","underlayRect","__decorate119","__param113","InlineEditsLineReplacementView","_isInDiffEditor","requiredWidth","maxPrefixTrim","modifiedBubbles","rangesToBubbleRanges","modLine","validatedEndColumn","originalLineHeights","modifiedLineHeights","lineHeights","editorLeftOffset","originalLineWidths","maxLineWidth","topOfOriginalLines","bottomOfOriginalLines","originalLinesOverlay","modifiedLinesOverlay","lowerBackground","lowerText","viewZoneHeight","viewZoneLineNumber","modifiedLineElements","layoutProps","modifiedBorderColor","originalBorderColor","autorunDelta","EditorMouseEvent","viewZoneInfo","activeViewZone","__decorate120","__param114","HORIZONTAL_PADDING2","VERTICAL_PADDING2","ENABLE_OVERFLOW","BORDER_WIDTH3","WIDGET_SEPARATOR_WIDTH3","WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH3","BORDER_RADIUS3","ORIGINAL_END_PADDING","MODIFIED_END_PADDING","InlineEditsSideBySideView","originalPadding","modifiedPadding","_previewTextModel","separatorWidthObs","hiddenAreas","previousViewZones","reducedLinesCount","editorContentMaxWidthInRange","previewContentWidth","editorContentAreaWidth","editorBoundingClientRect","clientContentAreaRight","remainingWidthRightOfContent","remainingWidthRightOfEditor","desiredMinimumWidth","IN_EDITOR_DISPLACEMENT","maximumAvailableWidth","maxPreviewEditorLeft","previewEditorLeftInTextArea","dist","desiredPreviewEditorScrollLeft","codeRight","codeLeft","codeRect","editHeight","codeHeight","previewEditorHeight","clipped","codeEditDist","previewEditorWidth","editRect","stickyScrollHeight","borderStyling","borderStylingSeparator","hasBorderLeft","isModifiedLower","transitionRectSize","intersectionLine","overlayRect2","transitionRect","isLower2","borderRadius","insertionRect","layoutinfo","editorRect","__decorate121","__param115","BORDER_WIDTH4","InlineEditsWordReplacementView","origLine","lineToTokenize","modifiedLineHeight","widgetStart","widgetEnd","modifiedLeftOffset","modifiedTopOffset","modifiedOffset","editorHoverForeground","OriginalEditorInlineDiffView","_originalEditor","_modifiedTextModel","InlineEditAttachedData","modelTokenizationFinished","showInline","hasOneInnerChange","diffLineAddDecorationBackground2","diffLineDeleteDecorationBackground2","diffWholeLineDeleteDecoration2","diffWholeLineAddDecoration2","diffAddDecoration2","diffAddDecorationEmpty2","NESOriginalBackground","showFullLineDecorations","hideEmptyInnerDecorations","allowsTrueInlineDiffRendering2","insertedText","textSegments","modifiedCodeEditor","i","__decorate122","__param116","InlineEditsView_1","InlineEditsView","_ghostTextIndicator","lineRangeMappingFromRangeMappings","indentationAdjustmentEdit","indicatorDisplayRange","ghostTextIndicator","modelWithGhostTextSupport","getGhostTextTopOffset","minEditorScrollHeight","minScrollHeight","canUseCache","reconsiderViewEditorWidthChange","numOriginalLines","numModifiedLines","inner","isSingleInnerEdit","isSingleLineInsertion","isSingleLineInsertionAfterPosition","isDeletion2","isSingleMultiLineInsertion","growEditsUntilWhitespace","stringChanges","startsWithEOL","grownEdits","growEditsToEntireWord","viewCreationTime","isWordInsertion","isStableWordInsertion","insertPosition","_growEdits","prefix","startLineContent","endLineContent","isIncluded","EOL","countPrefixRepeats","__decorate123","__param117","InlineEditsViewAndDiffProducer_1","InlineEditsViewAndDiffProducer","editOffset","innerEditRange","diffEdits","__decorate124","__param118","InlineCompletionsView","createStyleSheetFromObservable","__decorate125","__param119","InlineCompletionsController_1","InlineCompletionsController","_debounceService","editorHasFocus","menuHasFocus","indentMaxColumn","_value","_changes","CoreEditingCommands","noDelay","currentInlineCompletionBySemanticId","runOnChangeWithStore","_deltas","cancelOnDispose","waitForState","contextKeySvcObs","firstGhostTextPos","firstPartPos","accessibleViewShowing","accessibleViewKeybinding","ShowNextInlineSuggestionAction","_ShowNextInlineSuggestionAction","ShowPreviousInlineSuggestionAction","_ShowPreviousInlineSuggestionAction","TriggerInlineSuggestionAction","asyncTransaction","ExplicitTriggerInlineEditAction","TriggerInlineEditAction","AcceptNextWordOfInlineCompletion","CONTEXT_ACCESSIBILITY_MODE_ENABLED","AcceptNextLineOfInlineCompletion","AcceptInlineCompletion","JumpToNextInlineEdit","HideInlineCompletion","_HideInlineCompletion","ToggleInlineCompletionShowCollapsed","_ToggleInlineCompletionShowCollapsed","ToggleAlwaysShowInlineSuggestionToolbar","_ToggleAlwaysShowInlineSuggestionToolbar","configService","DevExtractReproSample","repro","json","reproStr","__decorate126","__param120","InlineCompletionsHover","InlineCompletionsHoverParticipant","viewZoneData","widgetNode","render","code","inlineSuggestionAvailable","InlineCompletionsAccessibleView","__decorate127","__param121","GotoDefinitionAtPositionEditorContribution_1","GotoDefinitionAtPositionEditorContribution","linkGesture","withKey","EditorState","linkRange","combinedRange","originSelectionRange","textEditorModel","previewValue","rangeToUse","previewRange","minIndent","endIndent","startIndent","__decorate128","__param122","MarkerCoordinate","MarkerList","resourceFilter","compareOrder","compareMarker","updateMarker","newMarkers","uris","binarySearch2","idx2","wentPast","oldIdx","IMarkerNavigationService","MarkerNavigationService","SeverityIcon","SeverityIcon2","__decorate129","__param123","MarkerNavigationWidget_1","MessageWidget2","onRelatedInformation","related","relatedInformation","sourceAndCodeLength","lastLineElement","detailsElement","sourceElement","codeElement","relatedInformationNode","relatedResource","relatedMessage","severityLabel","MarkerNavigationWidget","editorMarkerNavigationBackground","colorId","editorMarkerNavigationError","headerBackground","editorMarkerNavigationErrorHeader","editorMarkerNavigationWarning","editorMarkerNavigationWarningHeader","editorMarkerNavigationInfo","editorMarkerNavigationInfoHeader","headerBg","markerIdx","markerCount","errorDefault","oneOf","editorErrorForeground","editorErrorBorder","warningDefault","editorWarningForeground","editorWarningBorder","infoDefault","editorInfoBorder","__decorate130","__param124","MarkerController_1","MarkerController","_markerNavigationService","CONTEXT_MARKERS_NAVIGATION_VISIBLE","reusePosition","multiFile","otherEditor","MarkerNavigationAction","_next","_multiFile","NextMarkerAction","_NextMarkerAction","PrevMarkerAction","_PrevMarkerAction","NextMarkerInFilesAction","PrevMarkerInFilesAction","MarkerCommand","init_buffer","DebugEditorGpuRendererAction","atlas","ViewGpuContext","stats","fileService","folders","layerIndex","page","VSBuffer","quickInputService2","rasterizer","GlyphRasterizer","chars","codePoint","tokenMetadata","rasterizedGlyph","imageData","canvas","ensureNonNullable","blob","HoverFocusBehavior","HoverFocusBehavior2","ShowOrFocusHoverAction","focusArgument","focusOption","showContentHover","accessibilitySupportEnabled","ShowDefinitionPreviewHoverAction","goto","HideContentHoverAction","ScrollUpHoverAction","ScrollDownHoverAction","ScrollLeftHoverAction","ScrollRightHoverAction","PageUpHoverAction","PageDownHoverAction","GoToTopHoverAction","GoToBottomHoverAction","IncreaseHoverVerbosityLevel","DecreaseHoverVerbosityLevel","__decorate131","__param125","$14","MarkerHover","markerCodeActionTrigger","MarkerHoverParticipant","_markerDecorationsService","renderedMarkerHover","markerHoverForStatusbar","markerHover","markerElement","messageElement","sourceAndCodeElement","codeLink","message2","relatedInfoContainer","editorOptions","messageElement2","markerController","quickfixPlaceholderElement","updatePlaceholderDisposable","codeActionsPromise","showing","elementPosition","aiCodeAction","IMarkerDecorationsService","GlyphHoverComputer","toHoverMessage","isLineHover","lane","__decorate132","__param126","GlyphHoverWidget_1","$15","GlyphHoverWidget","laneOrLine","topForLineNumber","editorScrollTop","__decorate133","__param127","_sticky3","GlyphHoverController","glyphHoverWidgetNode","isMouseOnGlyphHoverWidget","HoverAccessibleView","HoverAccessibilityHelp","ExtHoverAccessibleView","hoverBorder","getSpaceCnt","spacesCnt","generateIndent","insertSpaces","tabsCnt","init_indentation","getReindentEditOperations","indentationRulesSupport","processedIndentRulesSupport","ProcessedIndentRulesSupport","shiftIndent2","indentation","ShiftCommand","unshiftIndent2","indentEdits","currentLineText","globalIndent","idealIndentForNextLine","doesLineStartWithString","oldIndentation","currentIdealIndent","normalizeIndentation","__decorate134","__param128","IndentationToSpacesAction","_IndentationToSpacesAction","modelOpts","IndentationToSpacesCommand","IndentationToTabsAction","_IndentationToTabsAction","IndentationToTabsCommand","ChangeIndentationSizeAction","displaySizeOnly","creationOpts","picks","autoFocusIndex","pick","pickedVal","IndentUsingTabs","_IndentUsingTabs","IndentUsingSpaces","_IndentUsingSpaces","ChangeTabDisplaySize","_ChangeTabDisplaySize","DetectIndentation","_DetectIndentation","ReindentLinesAction","ReindentSelectedLinesAction","editOperations","AutoIndentOnPasteCommand","selectionIsSet","AutoIndentOnPaste","isStartOrEndInString","autoIndent","indentConverter","firstLineText","indentOfFirstLine","getGoodIndentForLine","newSpaceCnt","oldSpaceCnt","newIndent","indentMetadata","getIndentMetadata","firstLineNumber","indentOfSecondLine","newSpaceCntOfSecondLine","oldSpaceCntOfSecondLine","spaceCntOffset","originalIndent","newSpacesCnt","cmd","lineContainsOnlyWhitespace","containsOnlyWhitespace","linePart","isPositionInString","getStandardTokenTypeAtPosition","getIndentationEditOperations","tabsToSpaces","spaces2","spacesRegExp","lastIndentationColumn","originalIndentationRange","originalIndentation","newIndentation","import_inPlaceReplace","__toESM","require_inPlaceReplace","InsertFinalNewLineCommand","insertFinalNewLine","lastLineIsEmptyOrWhitespace","InsertFinalNewLineAction","_InsertFinalNewLineAction","ExpandLineSelectionAction","CursorMoveCommands","TrimTrailingWhitespaceCommand","cursors","trimInRegexesAndStrings","trimTrailingWhitespace","rLen","cursorIndex","cursorLen","maxLineColumn","minEditColumn","lastNonWhitespaceIndex2","fromColumn","fromColumnType","CopyLinesCommand","isCopyingDown","noop","sourceLines","sourceText","init_languageConfiguration","__decorate135","__param129","MoveLinesCommand","isMovingDown","getLanguageId","getLanguageIdAtPosition","modelLineCount","otherLineNumber","movingLineNumber","movingLineText","insertingText","movingLineMatchResult","virtualModel","indentOfMovingLine","newIndentatOfMovingBlock","oldIndent","enter","enterPrefix","IndentAction","indentMetadataOfMovelingLine","futureAboveLineNumber","futureAboveLineText","getEnterAction","validPrecedingLine","oneLineAbove","previousLineText","languageAtSelectionStart","languageAtSelectionEnd","init_date","SortLinesCommand","safeIntl","descending","sortLines","getSortData","linesToSort","AbstractCopyLinesAction","down","CopyLinesUpAction","CopyLinesDownAction","DuplicateSelectionAction","insertSelection","ReplaceCommandThatSelectsText","AbstractMoveLinesAction","MoveLinesUpAction","MoveLinesDownAction","AbstractSortLinesAction","SortLinesAscendingAction","SortLinesDescendingAction","DeleteDuplicateLinesAction","endCursorState","linesDeleted","updateSelection","uniqueLines","selectionToReplace","adjustedSelectionStart","finalSelection","ReverseLinesAction","originalSelections","resultingSelections","originalSelection","updateLineNumber","newSelectionStart","newPosition","newSelectionStartColumn","newPositionColumn","TrimTrailingWhitespaceAction","_TrimTrailingWhitespaceAction","trimInRegexAndStrings","DeleteLinesAction","mergedOperations","previousOperation","IndentLinesAction","TypeOperations","OutdentLinesAction","InsertLineBeforeAction","EnterOperation","InsertLineAfterAction","AbstractDeleteAllToBoundaryAction","primaryCursor","rangesToDelete","effectiveRanges","nextRange","DeleteAllLeftAction","endPrimaryCursor","deletedLines","endCursor","newStartLine","deleteFromLine","deleteFromColumn","DeleteAllRightAction","JoinLinesAction","reducedSelections","lastSelection","lineOffset","columnDeltaOffset","selectionEndPositionOffset","trimmedLinesContent","firstNonWhitespaceIdx","lineTextWithoutIndent","deleteSelection","resultSelection","TransposeAction","AbstractCaseAction","wordSeparators2","UpperCaseAction","LowerCaseAction","BackwardsCompatibleRegExp","_pattern","_flags","TitleCaseAction","_TitleCaseAction","titleBoundary","SnakeCaseAction","_SnakeCaseAction","caseBoundary","singleLetters","CamelCaseAction","_CamelCaseAction","wordBoundary","validWordStart","words","PascalCaseAction","_PascalCaseAction","wordBoundaryToMaintain","KebabCaseAction","_KebabCaseAction","regexp","underscoreBoundary","__decorate136","__param130","LinkedEditingContribution_1","CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE","DECORATION_CLASS_NAME2","LinkedEditingContribution","forceRefresh","isEnabled","rangeUpdateScheduler","triggerRangeUpdate","rangeSyncScheduler","triggerRangeSync","referenceRange","referenceValue","mirrorRange","oldValue","rangeStartColumn","rangeEndColumn","commonPrefixLength2","commonSuffixLength2","prevEditOperationType","modelVersionId","currentRequestCts","response","getLinkedEditingRanges","foundReferenceRange","LinkedEditingAction","LinkedEditingCommand","orderedByScore","first","editorLinkedEditingBackground","linkedEditingRangeProvider","Link","LinksList","_LinksList","tuples","newLinks","oldLinks","oldLen","oldLink","newLink","getLinks","lists","linkProvider","__decorate137","__param131","LinkDetector_1","LinkDetector","clickLinkGesture","useMetaKey","oldDecorations","keys","occurence","LinkOccurrence","occurrence","fromUserGesture","modelUri","parsedUri","fsPath","originalFSPath","relativePath2","joinPath","messageOrError","currentOccurrence","decoration","_LinkOccurrence","getHoverMessage","executeCmd","nativeLabel","OpenLinkAction","linkDetector","LongLinesHelper","MiddleScrollController","obsEditor","scrollOnMiddleClick","scrollingSession","initialPos","mouseDeltaAfterThreshold","observeWindowMousePos","editorDomNodeRect","initialMousePosInEditor","session2","lastTime","curTime","frameDurationMs","mouseDelta","factor2","scrollDelta","scrollPos","toScrollPosition","directionAttr","dotDomElem","window2","wordHighlightBackground","wordHighlightBorder","overviewRulerWordHighlightForeground","overviewRulerWordHighlightStrongForeground","overviewRulerWordHighlightTextForeground","overviewRulerSelectionHighlightForeground","_WRITE_OPTIONS","minimapSelectionOccurrenceHighlight","_TEXT_OPTIONS","_SELECTION_HIGHLIGHT_OPTIONS","_SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW","_REGULAR_OPTIONS","getHighlightDecorationOptions","DocumentHighlightKind","getSelectionHighlightDecorationOptions","hasSemanticHighlights","selectionHighlight","editorSelectionHighlight","__decorate138","__param132","SelectionHighlighter_1","announceCursorChange","previousCursorState","cursorDiff","cs","pcs","cursorPositions","InsertCursorAbove","useLogicalLine","InsertCursorBelow","InsertCursorAtEndOfEachLineSelected","currentLineMaxColumn","InsertCursorAtEndOfLineSelected","InsertCursorAtTopOfLineSelected","MultiCursorSessionResult","revealScrollType","MultiCursorSession","_MultiCursorSession","findController","findState","isDisconnectedFromFindController","wholeWord","matchCase","searchText","allSelections","lastAddedSelection","previousMatch","searchScope","MultiCursorSelectionController","_MultiCursorSelectionController","modelRangesContainSameText","MultiCursorSelectionControllerAction","multiCursorController","newFindController","AddSelectionToNextFindMatchAction","AddSelectionToPreviousFindMatchAction","MoveSelectionToNextFindMatchAction","MoveSelectionToPreviousFindMatchAction","SelectHighlightsAction","CompatChangeAll","SelectionHighlighterState","_searchText","_matchCase","_wordSeparators","SelectionHighlighter","oldState","isEnabledMultiline","caseSensitive","findStateSearchString","mySearchString","allMatches","cmp3","occurrenceHighlighting","selectedText","getValueInRange","thisSelectedText","toLowerCase","FocusNextCursor","firstCursor","FocusPreviousCursor","Context2","provideSignatureHelp","SignatureHelpTriggerKind","ParameterHintState","ParameterHintState2","Pending","previouslyActiveHints","Active","ParameterHintsModel","_ParameterHintsModel","triggerId","activeSignature","cycle","isRetrigger","activeSignatureHelp","mergeTriggerContexts","triggerContext","lastCharIndex","triggerCharCode","__decorate139","__param133","ParameterHintsWidget_1","$16","parameterHintsNextIcon","parameterHintsPreviousIcon","ParameterHintsWidget","overloads","body","scrollbar","signature","updateFont","hasParameters","activeParameterIndex","activeParameter","hasDocs","labelToAnnounce","param","beforeSpan","paramSpan","afterSpan","paramIdx","regex","__decorate140","__param134","ParameterHintsController_1","ParameterHintsController","newParameterHints","TriggerParameterHintsAction","weight3","ParameterHintsCommand","PlaceholderTextContribution","structuralEquals","isOrWasTrue","shouldBeVisibile","__decorate141","__param135","BaseClass2","createWrapper2","getClass","wrapInReloadableClass1","BaseClass13","ghostTextForeground","ITextResourceConfigurationService","ITextResourcePropertiesService","__decorate142","__param136","_sticky4","CONTEXT_RENAME_INPUT_VISIBLE","CONTEXT_RENAME_INPUT_FOCUSED","RenameWidget","_acceptKeybindings","InputWithButton","RenameCandidateListView","newSymbolName","widgetShadowColor","widgetBorderColor","cursorBoxTop","candidateViewHeight","RenameCandidateView","inputBoxHeight","labelHeight","totalHeightAvailable","wantsPreview","caller","currentName","supportPreview","requestRenameCandidates","disposeOnDone","keyEvent","inputResult","nRenameSuggestions","newName","focusedCandidate","isManuallyTriggered","triggerKind","NewSymbolNameTriggerKind","trace","namesListResults","newNames","namesListResult","distinctNames","validDistinctNames","firstLineInViewport","_RenameCandidateListView","selectedElement","focusedElement","focusedIxs","nCandidates","heightToFitAllCandidates","longestCandidateWidth","_RenameCandidateView","isAIGenerated","NewSymbolNameTag","__decorate143","__param137","RenameController_1","RenameSkeleton","rejects","rename","skeleton","RenameController","cts1","resolveLocationOperation","cts2","newSymbolNamesProviders","resolvedNewSymbolnamesProviders","requestRenameSuggestions","supportsAutomatic","inputFieldResult","renameOperation","renameResult","RenameAction","RenameCommand","currentEditor","renameProvider","__decorate144","__param138","SectionHeaderDetector","editorLanguageId","minimap","commentsConfiguration","sectionHeaders","sectionHeader","validRange","decoration2","init_encodedTokenAttributes","RateLimiter","timesPerSecond","SparseMultilineTokens","_SparseMultilineTokens","SparseMultilineTokensStorage","deltaRange","startLineIndex","endLineIndex","bDeltaLine","eolCount","firstLineLength","lastLineLength","firstCharCode","firstLineIndex","lastLineIndex","deletedLinesCount","tokenMaxDeltaLine","deletedBefore","_SparseMultilineTokensStorage","tokenCount","startChar","maxDeltaLine","endChar","tokenIndex","deltaLine","midDeltaLine","SparseLineTokens","startDeltaLine","endDeltaLine","newTokenCount","hasDeletedTokens","firstDeltaLine","srcOffset","tokenDeltaLine","tokenStartCharacter","tokenEndCharacter","destOffset","aTokens","bTokens","destTokens","destFirstDeltaLine","horizontalShiftForFirstLineTokens","startCharacter","endCharacter","deletedLineCount","character","isInsertingPreciselyOneWordCharacter","tokenLength","__decorate145","__param139","ENABLE_TRACE","SemanticTokensProviderStyling","_legend","HashTable","tokenTypeIndex","tokenModifierSet","encodedLanguageId","TokenMetadata","tokenModifiers","modifierSet","modifierIndex","tokenStyle","italicBit","boldBit","underlineBit","strikethroughBit","foregroundBits","previousResultId","resultId","maxExpectedStart","toMultilineTokens2","styling","srcData","tokensPerArea","lastStartCharacter","tokenStartIndex","tokenEndIndex","smallTokenEndIndex","bigTokenEndIndex","destData","areaLine","prevEndCharacter","deltaCharacter","tokens2","HashTableEntry","_HashTable","n1","oldElements","oldNext","ISemanticTokensStylingService","reverseEndianness","b0","b1","b2","b3","toLittleEndianBuffer","uint8Arr","isLittleEndian","encodeSemanticTokensDto","semanticTokens","dest","encodeSemanticTokensDtoSize","isSemanticTokens","isSemanticTokensEdits","DocumentSemanticTokensResult","hasDocumentSemanticTokensProvider","getDocumentSemanticTokensProviders","getDocumentSemanticTokens","lastProvider","lastResultId","_getDocumentSemanticTokensProviderHighestGroup","DocumentRangeSemanticTokensResult","hasDocumentRangeSemanticTokensProvider","getDocumentRangeSemanticTokensProviders","getDocumentRangeSemanticTokens","documentSemanticTokensProvider","buff","documentRangeSemanticTokensProvider","SEMANTIC_HIGHLIGHTING_SETTING_ID","isSemanticColoringEnabled","setting","__decorate146","__param140","ModelSemanticColoring_1","DocumentSemanticTokensFeature","semanticTokensStylingService","register4","ModelSemanticColoring","deregister","modelSemanticColoring","handleSettingOrThemeChange","_semanticTokensStylingService","bindDocumentChangeListeners","pendingChanges","contentChangeListener","src","currentResponse","rescheduleIfNeeded","deltaLength","srcLastStart","destLastStart","copyCount","SemanticTokensResponse","area","singleChange","__decorate147","__param141","ViewportSemanticTokensContribution","scheduleTokenizeViewport","req","requestVersionId","WordSelectionRangeProvider","selectSubwords","lastCh","isLowerAsciiLetter","isUpperAsciiLetter","__decorate148","__param142","SmartSelectController_1","SelectionRanges","_SelectionRanges","SmartSelectController","forward","provideSelectionRanges","ranges2","AbstractSmartSelect","GrowSelectionAction","ShrinkSelectionAction","work","allRawRanges","allProviderRanges","oneProviderRanges","oneRawRanges","oneRanges","oneRangesWithTrivia","rangeNoWhitespace","rangeFull","Categories","ToggleStickyScroll","weight4","FocusStickyScroll","SelectNextStickyScrollLine","SelectPreviousStickyScrollLine","GoToStickyScrollLine","SelectEditor","__decorate149","__param143","SuggestInlineCompletion","InlineCompletionResults","RefCountedDisposable","_suggestMemoryService","selectedIndex","second","SuggestInlineCompletions","_languageFeatureService","wordInfo","triggerCharacterInfo","leadingLineContents","newLineContext","_completions","ForceRetokenizeAction","ToggleTabFocusModeAction","_ToggleTabFocusModeAction","TabFocus","init_wordHelper","UnicodeTextModelHighlighter","codePointHighlighter","CodePointHighlighter","buildRegExpCharClassExpr","searcher","Searcher","hasMore","ambiguousCharacterCount","invisibleCharacterCount","nonBasicAsciiCharacterCount","forLoop","charCodeBefore","getWordAtText","DEFAULT_WORD_REGEXP","highlightReason","primaryConfusable","notAmbiguousInLocales","AmbiguousCharacters","codePoints","cp","InvisibleCharacters","isAllowedInvisibleCharacter","wordContext","hasBasicASCIICharacters","hasNonConfusableNonBasicAsciiCharacter","codePoint2","__decorate150","__param144","Link2","_link","onClickEmitter","onKeyPress","onEnterPress","onTap","onOpen","__decorate151","__param145","BANNER_ELEMENT_HEIGHT","BannerController","Banner","messageContainer","actionBarContainer","IWorkspaceTrustManagementService","__decorate152","__param146","warningIcon","UnicodeHighlighter","_workspaceTrustService","DisableHighlightingOfNonBasicAsciiCharactersAction","DisableHighlightingOfAmbiguousCharactersAction","DisableHighlightingOfInvisibleCharactersAction","resolveOptions2","highlightOptions","locale","language","DocumentUnicodeHighlighter","ViewportUnicodeHighlighter","trusted","inUntrustedWorkspace","_updateState","Decorations","isModelDecorationVisible","computeReason","isModelDecorationInComment","isModelDecorationInString","totalResult","configureUnicodeHighlightOptionsStr","UnicodeHighlighterHoverParticipant","unicodeHighlighter","existedReason","highlightInfo","codePointStr","formatCodePointMarkdown","adjustSettingsArgs","adjustSettings","ShowExcludeOptions","codePointToHex","renderCodePointAsInlineCode","_Decorations","hideInComments","hideInStrings","DisableHighlightingInCommentsAction","unicodeHighlightConfigKeys","DisableHighlightingInStringsAction","_DisableHighlightingOfAmbiguousCharactersAction","_DisableHighlightingOfInvisibleCharactersAction","_DisableHighlightingOfNonBasicAsciiCharactersAction","_ShowExcludeOptions","inString","inComment","quickPickService","getExcludeCharFromBeingHighlightedLabel","excludeLocaleFromBeingHighlighted","excludeCharFromBeingHighlighted","getTitle","expectNever","existingValue","locales","IDialogService","__decorate153","__param147","ignoreUnusualLineTerminators","writeIgnoreState","readIgnoreState","UnusualLineTerminatorsDetector","_dialogService","GLOBSTAR","GLOB_SPLIT","PATH_REGEX","NO_PATH_REGEX","ALL_FORWARD_SLASHES","starsToRegExp","starCount","isLastPattern","splitGlobAware","splitChar","inBraces","inBrackets","curVal","parseRegExp","regEx","previousSegmentWasGlobStar","braceVal","bracketVal","braceRegExp","T1","T2","T3","T3_2","T4","T5","CACHE","FALSE","NULL","parsePattern","arg1","patternKey","parsedPattern","wrapRelativePattern","trivia1","trimForExclusions","trivia2","trivia3","trivia4and5","toRegExp","arg2","wrappedPattern","basename3","isEqualOrParent","ltrim","sep","slashBase","backslashBase","basenames","parsedPatterns","aggregateBasenameMatches","pattern2","patternsLength","withBasenames","allPaths","targetPath","matchPathEnds","usingPosixSep","posix","nativePath","nativePathEnd","targetPathEnd","match","hasSibling","parse3","isRelativePattern","resultPattern","parsedExpression","rp","expression","parseExpressionPattern","resultExpression2","resultPromises","isThenable","resultPromise","withBasenames2","allPaths2","resultExpression","extname","clausePattern","matched","basenamePatterns","basenames2","patterns","patterns2","aggregate","aggregatedPatterns","score2","candidateUri","candidateLanguage","candidateIsSynchronized","candidateNotebookUri","candidateNotebookType","language2","scheme","hasAccessToAllModels","notebookType","normalize","__decorate154","__param148","TextualDocumentHighlightProvider","USUAL_WORD_SEPARATORS","primaryModel","otherModels","TextualMultiDocumentHighlightFeature","__decorate155","__param149","WordHighlighter_1","WordHighlighterContribution_1","ctxHasWordHighlights","getOccurrencesAtPosition","getOccurrencesAcrossMultipleModels","filteredModels","otherModel","shouldSynchronizeModel","OccurenceAtPositionRequest","SemanticOccurenceAtPositionRequest","MultiModelOccurenceRequest","computeOccurencesAtPosition","computeOccurencesMultiModel","WordHighlighter","multiProviders","textModelService","matchesScheme","newEnablement","activeEditor","currentDecorationIDs","preservedModel","currentEditors","deleteURI","editorHighlighterContrib","WordHighlighterContribution","currentModels2","currentEditors2","tempModel","currentModels","multiFileConfigChange","currentModelDecorationRanges","storedRange","myRequestId","otherModelsToHighlight","queryModelRef","currentTime","minimumRenderTime","oldDecorationIDs","newDocumentHighlights","newDecorationIDs","createWordHighlighterIfPossible","WordHighlightNavigationAction","NextWordHighlightAction","PrevWordHighlightAction","TriggerWordHighlightAction","init_wordCharacterClassifier","MoveWordCommand","getMapForWordSeparators","hasMulticursor","inPosition","outPosition","CursorState","inSelectionMode","WordLeftCommand","wordNavigationType","WordOperations","WordRightCommand","CursorWordStartLeft","CursorWordEndLeft","CursorWordLeft","CursorWordStartLeftSelect","CursorWordEndLeftSelect","CursorWordLeftSelect","CursorWordAccessibilityLeft","wordCharacterClassifier","CursorWordAccessibilityLeftSelect","CursorWordStartRight","CursorWordEndRight","CursorWordRight","CursorWordStartRightSelect","CursorWordEndRightSelect","CursorWordRightSelect","CursorWordAccessibilityRight","CursorWordAccessibilityRightSelect","DeleteWordCommand","autoClosingBrackets","autoClosingQuotes","autoClosingPairs","deleteRange","DeleteWordLeftCommand","DeleteWordRightCommand","DeleteWordStartLeft","DeleteWordEndLeft","DeleteWordLeft","DeleteWordStartRight","DeleteWordEndRight","DeleteWordRight","DeleteInsideWord","DeleteWordPartLeft","WordPartOperations","DeleteWordPartRight","WordPartLeftCommand","CursorWordPartLeft","CursorWordPartLeftSelect","WordPartRightCommand","CursorWordPartRight","CursorWordPartRightSelect","ReadOnlyMessageController","messageController","import_contribution2","require_contribution","init_standaloneStrings","IPadShowKeyboard","shouldHaveWidget","ShowKeyboardWidget","_ShowKeyboardWidget","import_inspectTokens","require_inspectTokens","DefaultQuickAccessFilterValue","DefaultQuickAccessFilterValue2","Extensions10","QuickAccessRegistry","providerA","providerB","__decorate156","__param150","HelpQuickAccessProvider_1","HelpQuickAccessProvider","picker","providerDescriptor","helpEntry","QuickHelpNLS","init_functional","AbstractEditorNavigationQuickAccessProvider","runOptions","pickerDisposable","lastKnownEditorViewState","createSingleCallFunction","deleteDecorations","rangeHighlightId","overviewRulerDecorationId","rangeHighlightDecorationId","AbstractGotoLineQuickAccessProvider","_AbstractGotoLineQuickAccessProvider","numbers","positionCandidate","__decorate157","__param151","StandaloneGotoLineQuickAccessProvider","GotoLineAction","_GotoLineAction","GoToLineNLS","NO_SCORE2","scoreFuzzy2","query","patternStart","wordStart","preparedQuery","doScoreFuzzy2Multiple","doScoreFuzzy2Single","totalScore","totalMatches","queryPiece","normalizeMatches","NO_ITEM_SCORE","sortedMatches","matchA","matchB","normalizedMatches","matchOverlaps","queryExpectsExactMatch","MULTIPLE_QUERY_VALUES_SEPARATOR","prepareQuery","originalLowercase","pathNormalized","normalized","normalizedLowercase","normalizeQuery","containsPathSeparator","expectExactMatch","originalSplit","originalPiece","expectExactMatchPiece","pathNormalizedPiece","normalizedPiece","normalizedLowercasePiece","stripWildcards","pieceToQuery","__decorate158","__param152","AbstractGotoSymbolQuickAccessProvider_1","AbstractGotoSymbolQuickAccessProvider","_outlineModelService","symbolProviderRegistryPromise","symbolProviderListener","symbolsPromise","picksCts","updatePickerItems","positionToEnclose","filterBySymbolKind","filterPos","symbolQuery","containerQuery","buttons","openSideBySideDirection","filteredSymbolPicks","symbolLabel","trim","symbolLabelWithIcon","SymbolKinds","symbolLabelIconOffset","containerLabel","symbolScore","symbolMatches","containerScore","containerMatches","skipContainerQuery","deprecated","getAriaLabelForSymbol","sortedFilteredSymbolPicks","symbolA","symbolB","symbolPicks","updateLastSeparatorLabel","lastSeparator","lastSymbolKind","lastSymbolKindCounter","NLS_SYMBOL_KIND_CACHE","FALLBACK_NLS_SYMBOL_KIND","symbolPick","kindA","kindB","__decorate159","__param153","StandaloneGotoSymbolQuickAccessProvider","outlineModelService","GotoSymbolAction","_GotoSymbolAction","QuickOutlineNLS","init_iconLabels","countMapFrom","TfIdfCalculator","_TfIdfCalculator","embedding","idfCache","scores","doc","chunk","normalize2","camelParts","documents","chunks","tf","term","currentOccurrences","newOccurrences","queryEmbedding","termTfidf","chunkTf","chunkIdf","chunkTfidf","chunkOccurrences","termFrequencies","occurrences","idf","normalizeTfIdfScores","TriggerAction","TriggerAction2","isPicksWithActive","isFastAndSlowPicks","PickerQuickAccessProvider","picksDisposable","picksDisposables","picksToken","picksFilter","providedPicks","applyPicks","skipEmpty","activeItem","isFunction","applyFastAndSlowPicks","fastAndSlowPicks","fastPicksApplied","slowPicksApplied","awaitedAdditionalPicks","activePick","additionalPicks","additionalActivePick","fallbackActivePick","fallbackActivePickCandidate","awaitedPicks","buttonTrigger","button","buttonIndex","removed","activeItems","keepScrollPositionBefore","__decorate160","__param154","AbstractCommandsQuickAccessProvider_1","CommandsHistory_1","AbstractCommandsQuickAccessProvider","or","matchesPrefix","matchesWords","matchesContiguousSubString","dialogService","CommandsHistory","_disposables","allCommandPicks","runTfidf","tfidf","commandPick","filteredCommandPicks","labelHighlights","aliasHighlights","tfidfScore","mapLabelToCommand","existingCommandForLabel","commandPickA","commandPickB","commandACounter","commandBCounter","commandASuggestion","commandBSuggestion","commandPicks","addOtherSeparator","addSuggestedSeparator","addCommonlyUsedSeparator","additionalCommandPicks","commandPicks2","commandAlias","commandDescription","_scope","serializedCache","cache","configuredCommandHistoryLength","AbstractEditorCommandsQuickAccessProvider","activeTextEditorControl","editorCommandPicks","editorAction","stripIcons","__decorate161","__param155","StandaloneCommandsQuickAccessProvider","GotoLineAction2","QuickCommandNLS","__decorate162","__param156","StandaloneReferencesController","init_standaloneTheme","ParsedTokenThemeRule","fontStyle","parseTokenTheme","resultLen","resolveParsedTokenThemeRules","parsedThemeRules","customTokenColors","strcmp","defaultFontStyle","defaultForeground","defaultBackground","incomingDefaults","colorMap","ColorMap","foregroundColorId","backgroundColorId","ThemeTrieElementRule","ThemeTrieElement","rule","TokenTheme","colorRegExp","standardToken","toStandardTokenType","STANDARD_TOKEN_TYPE_REGEXP","_ThemeTrieElementRule","_ThemeTrieElement","mainRule","dotIndex","head","tail2","generateTokensCSSForColorMap","rules","vs","editorInactiveSelection","editorIndentGuide1","editorActiveIndentGuide1","vs_dark","hc_black","hc_light","getIconsStyleSheet","onDidChangeEmmiter","iconRegistry2","getIconRegistry","productIconTheme","UnthemedProductIconTheme","usedFontIds","Builder","rootAttribs","contribution","definition","fontContribution","inline","className","contentVar","stringValue","identValue","VS_LIGHT_THEME_NAME","VS_DARK_THEME_NAME","HC_BLACK_THEME_NAME","HC_LIGHT_THEME_NAME","colorRegistry2","Extensions6","themingRegistry2","Extensions7","StandaloneTheme","standaloneThemeData","isBuiltinTheme","baseData","getBuiltinRules","useDefault","ColorScheme","encodedTokensColors","editorForeground2","editorBackground2","modelLanguage","themeName","builtinTheme","newBuiltInTheme","themeData","StandaloneThemeService","iconsStyleSheet","addMatchMediaChangeListener","isInShadowDOM","styleElement","colorMapOverride","desiredTheme","wantsHighContrast","newThemeName","autoDetectHighContrast","cssRules","hasRule","ruleCollector","colorVariables","asCssVariableName","ToggleHighContrast","ToggleHighContrastNLS","standaloneThemeService","IStandaloneThemeService","currentTheme","AccessibilitySupport","AccessibilitySupport2","CodeActionTriggerType","CodeActionTriggerType2","CompletionItemInsertTextRule","CompletionItemInsertTextRule2","CompletionItemKind","CompletionItemKind2","CompletionItemTag","CompletionItemTag2","CompletionTriggerKind","CompletionTriggerKind2","ContentWidgetPositionPreference","ContentWidgetPositionPreference2","CursorChangeReason","CursorChangeReason2","DefaultEndOfLine","DefaultEndOfLine2","DocumentHighlightKind2","DocumentHighlightKind3","EditorAutoIndentStrategy","EditorAutoIndentStrategy2","EditorOption","EditorOption2","EndOfLinePreference","EndOfLinePreference2","EndOfLineSequence","EndOfLineSequence2","GlyphMarginLane2","GlyphMarginLane3","HoverVerbosityAction2","HoverVerbosityAction3","IndentAction2","IndentAction3","InjectedTextCursorStops2","InjectedTextCursorStops3","InlayHintKind2","InlayHintKind3","InlineCompletionDisplayLocationKind2","InlineCompletionDisplayLocationKind3","InlineCompletionEndOfLifeReasonKind2","InlineCompletionEndOfLifeReasonKind3","InlineCompletionTriggerKind2","InlineCompletionTriggerKind3","KeyCode","KeyCode3","MarkerSeverity2","MarkerTag","MarkerTag3","MinimapPosition","MinimapPosition2","MinimapSectionHeaderStyle","MinimapSectionHeaderStyle2","MouseTargetType","MouseTargetType2","NewSymbolNameTag2","NewSymbolNameTag3","NewSymbolNameTriggerKind2","NewSymbolNameTriggerKind3","OverlayWidgetPositionPreference","OverlayWidgetPositionPreference2","OverviewRulerLane2","OverviewRulerLane3","PartialAcceptTriggerKind","PartialAcceptTriggerKind2","PositionAffinity","PositionAffinity2","RenderLineNumbersType","RenderLineNumbersType2","RenderMinimap","RenderMinimap2","ScrollType","ScrollType2","ScrollbarVisibility","ScrollbarVisibility2","SelectionDirection","SelectionDirection3","ShowLightbulbIconMode2","ShowLightbulbIconMode3","SignatureHelpTriggerKind2","SignatureHelpTriggerKind3","SymbolKind","SymbolKind2","SymbolTag","SymbolTag2","TextDirection2","TextDirection3","TextEditorCursorBlinkingStyle","TextEditorCursorBlinkingStyle2","TextEditorCursorStyle2","TextEditorCursorStyle3","TrackedRangeStickiness","TrackedRangeStickiness2","WrappingIndent","WrappingIndent2","KeyMod","secondPart","createMonacoBaseAPI","Token","DEFAULT_CHANNEL","INITIALIZE","webWorkerWarningLogged","logOnceWebWorkerWarning","RequestMessage","vsWorker","channel","method","ReplyMessage","SubscribeEventMessage","eventName","EventMessage","UnsubscribeEventMessage","WebWorkerProtocol","handler","workerId","emitter","sendMessageBarrier","propertyIsDynamicEvent","propertyIsEvent","myArgs","replyMessage","reply","requestMessage","transformErrorForSerialization","transfer","WebWorkerClient","worker","channelName","ttPolicy5","getWorker","monacoEnvironment2","workerUrl","esmWorkerLocation","getWorkerBootstrapUrl","whenESMWorkerReady","workerScriptUrl","COI","getNLSMessages","getNLSLanguage","isPromiseLike","WebWorker","_WebWorker","descriptorOrWorker","workerOrPromise","errorHandler2","WebWorkerDescriptor","esmModuleLocation","createWebWorker","workerDescriptorOrWorker","Uint8Matrix","rows","cols","StateMachine","edges","maxState","currentState","_stateMachine","getStateMachine","_classifier","getClassifier","CharacterClassifier","FORCE_TERMINATION_CHARACTERS","CANNOT_END_WITH_CHARACTERS","LinkComputer","_LinkComputer","classifier","linkBeginIndex","linkEndIndex","lastIncludedCharIndex","charCodeBeforeLink","lastCharCodeInLink","stateMachine","linkBeginChCode","hasOpenParens","hasOpenSquareBracket","inSquareBrackets","hasOpenCurlyBracket","resetStateMachine","chClass","computeLinks","BasicInplaceReplace","_BasicInplaceReplace","text1","up","numberResult","precision","valueSets","valueSet","_parseCaptureGroups","captureGroups","captureGroup","parsedNumber","_toIColor","_findRange","_findHexColorInformation","hexValue","parsedHexColor","_findRGBColorInformation","isAlpha","parsedRegex","_findHSLColorInformation","colorEquivalent","HSLA","_findMatches","computeColors","initialValidationMatches","initialMatch","initialCaptureGroups","colorScheme","colorParameters","colorInformation","regexParameters","computeDefaultDocumentColors","trimDashesRegex","CHUNK_SIZE","MAX_SECTION_LINES","findSectionHeaders","regionHeaders","collectRegionHeaders","markHeaders","collectMarkHeaders","getHeaderText","multiline","isMultilineRegexSource","regExpLeadsToEndlessLoop","precedingText","matchLines","matchHeight","matchEndLine","lineStartIndex","lastMatchLine","text22","hasSeparatorLine","MirrorTextModel","eolLength","linesLength","lineStartValues","PrefixSumComputer","insertLines","newLengths","STOP_SYNC_MODEL_DELTA_TIME_MS","WorkerTextModelSyncClient","proxy","keepIdleModels","timer","IntervalTimer","modelUrl","forceLargeModels","resourceStr","WorkerTextModelSyncServer","MirrorModel","offsetToAdd","iteratorOverMatches","wordDefinition","wordAtText","ensureValidWordDefinition","wordenize","wordRangesIdx","lineEnding","resultLines","maxCharacter","EditorWorker","_EditorWorker","_foreignModule","originalUrl","modifiedUrl","algorithm","originalTextModel","modifiedTextModel","diffAlgorithm","identical","getLineChanges","originalLineCount","modifiedLineCount","lastEol","aRng","bRng","writeIndex","readIndex","modelUrls","leadingWord","wordDef","wordDefFlags","wordDefRegExp","outer","EditorWorkerHost","_EditorWorkerHost","workerServer","workerClient","__decorate163","__param157","STOP_WORKER_DELTA_TIME_MS","canSyncModel","EditorWorkerService","workerDescriptor","WorkerManager","WordBasedCompletionItemProvider","toLineRangeMappings","MovedText","workerManager","models","insert","word2","_workerDescriptor","EditorWorkerClient","SynchronousWorkerClient","instance","_workerDescriptorOrWorker","canceled","createWebWorker2","MonacoWebWorkerImpl","receiver","init_nullTokenize","isFuzzyActionArr","what","isFuzzyAction","isString2","isIAction","empty","fixCase","lexer2","sanitize","log","createError","substituteMatches","re","stateMatches","full","dollar","attr","ofs","substituteMatchesRe","findRules","inState","stateExists","__decorate164","__param158","MonarchTokenizer_1","CACHE_STACK_DEPTH","MonarchStackElementFactory","_MonarchStackElementFactory","maxCacheDepth","MonarchStackElement","stackElementId","_MonarchStackElement","EmbeddedLanguageData","_EmbeddedLanguageData","MonarchLineStateFactory","_MonarchLineStateFactory","embeddedLanguageData","MonarchLineState","_MonarchLineState","MonarchClassicTokensCollector","embeddedLanguageLine","hasEOL","offsetDelta","nestedLanguageId","embeddedModeState","nestedLanguageTokenizationSupport","nestedResult","endState","TokenizationResult","MonarchModernTokensCollector","_MonarchModernTokensCollector","aLen","bLen","cLen","EncodedTokenizationResult","MonarchTokenizer","emitting","isOneOfMyEmbeddedModes","tokenizationSupport","nestedModeStatus","rootState","lineState","nullTokenize","tokensCollector","endLineState","nullTokenizeEncoded","popOffset","hasEmbeddedPopRule","regexSource","nestedEndState","nestedLanguageLine","restOfTheLine","lineWithoutLF","lineWithoutLFLength","groupMatching","forceEvaluation","pos0","stackLen0","groupLen0","enteringEmbeddedLanguage","groupEntry","restOfLine","rule2","nextState","computeNewStateForEmbeddedLanguage","enteringEmbeddedLanguage2","embeddedLanguageData2","totalLen","findBracket","NullState","ttPolicy6","Colorizer","languageIdCodec","startsWithUTF8BOM","_fakeColorize","_colorize","renderViewLine2","inflatedTokens","execute","_actualColorize","renderResult","tokenizeResult","__decorate165","__param159","AbstractCodeEditorService","editorWithWidgetFocus","editors","ed","key1","rm","__decorate166","__param160","StandaloneCodeEditorService","hasCodeEditor","activeCodeEditor","windowOpenNoOpener","__decorate167","__param161","StandaloneLayoutService","EditorScopedLayoutService","_container","init_undoRedo","__decorate168","__param162","DEBUG2","getResourceLabel","stackElementCounter","ResourceStackElement","actual","resourceLabel","strResource","groupOrder","sourceId","sourceOrder","isValid2","ResourceReasonPair","RemovedResources","externalRemoval","noParallelUniverses","WorkspaceStackElement","resourceLabels","strResources","ResourceEditStack","futureElement","ResourceEditStackSnapshot","snapshot","snapshotLength","isOK","snapshotIndex","removePastAfter","removeFutureBefore","past","future","individualMap","EditStackSnapshot","editStacks","missingEditStack","UndoRedoService","uriComparisonKeyComputer","UndoRedoGroup","UndoRedoSource","editStack","closestPastElement","ignoreResources","individualArr","matchedElement","matchedStrResource","resourceOrSource","editStackSnapshot","invoke","cleanup","continuation","releaseLocks","affectedEditStacks","WorkspaceVerificationError","strResource2","checkInvalidatedResources","cannotUndoDueToResources","cannotLockDueToResources","undoConfirmed","verificationError","pastElement","secondPastElement","UndoChoice","UndoChoice2","verificationError1","verificationError2","cannotRedoDueToResources","returnValue","IUndoRedoService","__decorate169","__param163","SemanticTokensStylingService","isExclusive","MatchCandidate","notebookUri","LanguageFeatureRegistry","_LanguageFeatureRegistry","_notebookInfoResolver","lastBucket","lastBucketScore","notebookInfo","entry2","isBuiltinSelector","LanguageFeaturesService","__decorate170","__param164","$17","HoverWidget2","ElementHoverTarget","maxHeightRatio","rowElement","contentsElement","mdRenderer","statusBarElement","actionsElement","hideOnHover","infoElement","mouseTrackerTargets","mouseTracker","CompositeMouseTracker","mouseTracker2Targets","firstContainerFocusElement","lastContainerFocusElement","beforeContainerFocusElement","afterContainerFocusElement","parsedNode","recursivelyFoundElement","getZoomAccountedBoundingClientRect","zoom","getDomNodeZoomLevel","boundingRect","targetBounds","targetRect","hoverWidth","hoverPointerOffset","extraRightPadding","hoverHeight","pointerLeftPosition","pointerX","_eventDebounceDelay","init_canIUse","isAnchor","LayoutAnchorMode","LayoutAnchorMode2","layout","viewportSize","layoutAfterAnchorBoundary","layoutBeforeAnchorBoundary","ContextView","_ContextView","domPosition","usedShadowDOM","SHADOW_ROOT_CSS","toDisposeOnSetContainer","BrowserFeatures","around","viewSizeWidth","viewSizeHeight","anchorAlignment","anchorAxisAlignment","activeWindow","verticalAnchor","horizontalAnchor","containerPosition","containerScrollTop","containerScrollLeft","onCapture","__decorate171","__param165","ContextViewHandler","layoutService","shadowRoot","openContextView","ContextViewService","isManagedHoverTooltipMarkdownString","ManagedHoverWidget","fadeInAnimation","resolvedContent","managedContent","resolvedContent2","oldHoverWidget","__decorate172","__param166","HoverService","skipLastFocusedUpdate","dontShow","lifecycleOptions","getHoverIdFromContent","getHoverOptionsIdentity","resolveHoverOptions","trapFocus","hoverDisposables","isAncestorOfActiveElement","targetElement","focusedElementDocument","firstTargetElement","HoverContextViewDelegate","hideOnKeyDown","setupNativeHover","hoverPreparation","hoverWidget","hideHover","disposeWidget","disposePreparation","hadHover","triggerShowHover","isMouseDown","mouseOverStore","onMouseMove","getHoverTargetElement","onFocus","onBlur","newContent","getStringContent","contentOrFactory","updateTitle","content2","_hover","_focus","stopElement","freeze2","deepFreeze","ConfigurationModel","_ConfigurationModel","_contents","_keys","_overrides","rawConfigurationModels","ConfigurationModelParser","section","getConfigurationValue","overrideIdentifier","overrides","identifiers","overrideContents","overrideConfigurationModel","raws","otherOverride","contentsForKey","overrideContentsForKey","contentsForIdentifierOnly","mergeContents","contentsToMerge","removeFromValueTree","OVERRIDE_PROPERTY_REGEX","overrideIdentifiersFromKey","add","addToValueTree","toValuesTree","_name","restricted","hasExcludedProperties","configurationProperties","excludedConfigurationProperties","filtered","properties","filterOverriddenProperties","propertySchema","conflictReporter","overrideRaw","keyInOverrideRaw","ConfigurationInspectValue","overrideIdentifiers","defaultConfiguration","policyConfiguration","applicationConfiguration","userConfiguration","localUserConfiguration","remoteUserConfiguration","workspaceConfiguration","folderConfigurationModel","memoryConfigurationModel","inspectValue","Configuration","_Configuration","_defaultConfiguration","_policyConfiguration","_applicationConfiguration","_localUserConfiguration","_remoteUserConfiguration","_workspaceConfiguration","_folderConfigurations","_memoryConfiguration","_memoryConfigurationByResource","memoryConfiguration","consolidateConfigurationModel","merged","configurationModel","consolidateConfiguration","memoryConfigurationForResource","folder","folderConsolidatedConfiguration","workspaceConsolidateConfiguration","folderConfiguration","userLocalConfiguration","userRemoteConfiguration","ConfigurationChangeEvent","currentConfiguraiton","currentWorkspace","value1","value2","NoMatchingKb","MoreChordsNeeded","KbFound","isBubble","KeybindingResolver","_KeybindingResolver","defaultKeybindings","log2","defaultKeybinding","defaultKb","keypress","expressionsAreEqualWithConstantSubstitution","removals","commandRemovals","isRemoved","commandRemoval","conflicts","conflict","isShorterKbPrefix","implies","enforceContextCheck","currentChords","pressedChords","kbCandidates","lookupMap","prefixMatches","printWhenExplanation","printSourceExplanation","HIGH_FREQ_COMMANDS","AbstractKeybindingService","KeybindingModifierSet","firstChord","contextValue","chordLastInteractedTime","keypressLabel","illegalState","fullKeypressLabel","IME","singleModifier","userKeypress","isSingleModiferChord","shouldPreventDefault","userPressedChord","dispatchKeyname","resolveResult","currentChordsLabel","_KeybindingModifierSet","ResolvedKeybindingItem","resolvedKeybinding","isDefault","extensionId","isBuiltinExtension","toEmptyArrayIfContainsNull","BaseResolvedKeybinding","ResolvedKeybinding","ResolvedChord","USLayoutResolvedKeybinding","_USLayoutResolvedKeybinding","KeyCodeUtils","scanCode","immutableKeyCode","IMMUTABLE_CODE_TO_KEY_CODE","registeredAssociations","nonUserRegisteredAssociations","userRegisteredAssociations","registerPlatformLanguageAssociation","association","warnOnOverwrite","_registerLanguageAssociation","userConfigured","associationItem","toLanguageAssociationItem","clearPlatformLanguageAssociations","getLanguageIds","getAssociations","configuredLanguage","getAssociationByPath","registeredLanguage","firstlineLanguage","getAssociationByFirstline","associations","filenameMatch","patternMatch","extensionMatch","hasOwnProperty2","NULL_LANGUAGE_ID","LanguageIdCodec","LanguagesRegistry","_LanguagesRegistry","useModesRegistry","ModesRegistry","mimetype","lang","resolvedLanguage","primaryMime","extension","filenamePattern","firstLineRegexStr","firstLineRegex","langAliases","langAlias","containsAliases","bestName","languageName","languageNameLower","LanguageService","_LanguageService","LanguageSelection","onDidChangeLanguages","init_codiconsUtil","MENU_MNEMONIC_REGEX","MENU_ESCAPED_MNEMONIC_REGEX","HorizontalDirection","HorizontalDirection2","VerticalDirection","VerticalDirection2","Menu","_Menu","menuStyles","menuElement","parentData","SubmenuMenuActionViewItem","relatedTarget","lastFocusedItem","scrollElement","MenuSeparatorActionViewItem","getMenuWidgetCSS","fgColor","bgColor","menuActionViewItem","mnemonic","actionViewItems","menuItemOptions","BaseMenuActionViewItem","menuStyle","setSize","cleanLabel","cleanMnemonic","escape","escMatch","replaceDoubleEscapes","rtrim","isSelected","outlineOffset","submenuOptions","windowDimensions","submenu","expandDirection","selectFirstItem","computedStyles","EmptySubmenuAction","entryBox","entryBoxUpdated","viewBox","mnemonicInText","formatRule","fontCharacter","getCodiconFontCharacters","isForShadowDom","scrollbarShadowColor","scrollbarSliderBackgroundColor","scrollbarSliderHoverBackgroundColor","scrollbarSliderActiveBackgroundColor","ContextMenuHandler","shadowRootElement","menuDisposables","logTelemetry","__decorate173","__param167","ContextMenuService","ContextMenuMenuDelegate","ContextMenuMenuDelegate2","is","globalContextKeyService","menuActionOptions","EditorOpenSource","EditorOpenSource2","__decorate174","__param168","CommandOpener","parse2","EditorOpener","normalizePath","OpenerService","href","opener","targetURI","validationTarget","validator","externalUri","preferredOpenerId","__decorate175","__param169","MarkerDecorationsService","markerDecorations","changedResources","MarkerDecorations","suppressedRanges","BidirectionalMap","added","diffSets","oldIds","removedMarker","rawMarker","minColumn","zIndex","inlineClassName","overviewRulerInfo","minimapInfo","overviewRulerWarning","minimapWarning","overviewRulerError","minimapError","tag2","init_editStack","__decorate176","__param170","ModelService_1","MODEL_ID2","ModelData2","onWillDispose","onDidChangeLanguage","DEFAULT_EOL","DisposedModelInfo","initialUndoRedoSnapshot","time","sharesUndoRedoStack","heapSize","sha1","alternativeVersionId","ModelService","_resourcePropertiesService","_undoRedoService","isForSimpleWidget","parsedTabSize","parsedIndentSize","newDefaultEOL","trimAutoWhitespace","detectIndentation","largeFileOptimizations","bracketPairColorizationOptions","languageIdOrSelection","creationOptions","oldOptionsByLanguageAndResource","modelId","modelData","oldOptions","currentOptions","disposedModelData","maxModelsHeapSize","disposedModels","disposedModel","sha1Computer","sha1IsEqual","isEditStackElement","languageSelection","maintainUndoRedoStack","maxMemory","oldLanguageId","newLanguageId","DefaultModelSHA1Computer","_DefaultModelSHA1Computer","shaComputer","StringSHA1","__decorate177","__param171","QuickAccessController","visibleQuickAccess","visibleDescriptor","newValueCandidateWithoutPrefix","defaultFilterValue","visibleSelection","visibleValue","pickPromise","valueSelection","providerForValue","enabledProviderPrefixes","__decorate178","LinkedText","LINK_REGEX","parseLinkedText","iconPathToClass","iconClassGenerator","getIconClass","iconClass","quickInputButtonToAction","cssClasses","renderQuickInputDescription","parsed","tabIndex","handleOpen","isEventLike","onClick","onKeydown","onSpaceOrEnter","__decorate179","__param172","inQuickInputContextKeyValue","InQuickInputContextKey","inQuickInputContext","quickInputAlignmentContextKeyValue","QuickInputAlignmentContextKey","quickInputTypeContextKeyValue","QuickInputTypeContextKey","endOfQuickInputBoxContextKeyValue","EndOfQuickInputBoxContextKey","endOfQuickInputBoxContext","backButton","QuickInput","_QuickInput","ui","step","totalSteps","contextKey","busy","ignoreFocusOut","shouldUpdate","validationMessage","leftButtons","rightButtons","inlineButtons","concreteToggles","QuickPick","_QuickPick","quickNavigate","skipUpdate","canSelectMany","canAcceptInBackground","matchOnDescription","matchOnDetail","matchOnLabel","matchOnLabelMode","sortByLabel","keepScrollPosition","itemActivation","selectedItems","showCustomButton","showOkButton","okLabel","hideInput","focusedItems","checkedItems","inBackground","veto","scrollTopBefore","hasDescription","visibilities","InputBox2","password","prompt","QuickInputHoverDelegate","showHoverHint","CSS_DONE","CSS_ACTIVE","CSS_INFINITE","CSS_INFINITE_LONG_RUNNING","CSS_DISCRETE","ProgressBar","_ProgressBar","delayed","$18","QuickInputBox","inputBoxStyles","intlFileNameCollatorBaseNumeric","collator","intlFileNameCollatorNumeric","intlFileNameCollatorNumericCaseInsensitive","compareFileNames","one","compareAnything","lookFor","elementAName","elementBName","prefixCompare","compareByPrefix","elementASuffixMatch","elementBSuffixMatch","elementAPrefixMatch","elementBPrefixMatch","__decorate180","__param173","QuickPickItemElementRenderer_1","$19","BaseQuickPickItemElement","hasCheckbox","mainItem","saneLabel","saneSortLabel","parseLabelWithIcons","saneAriaLabel","getCodiconAriaLabel","QuickPickItemElement","childIndex","fireButtonTriggered","_onChecked","_separator","QuickPickSeparatorFocusReason","QuickPickSeparatorFocusReason2","QuickPickSeparatorElement","fireSeparatorButtonTriggered","QuickInputItemDelegate","QuickPickItemElementRenderer","QuickPickSeparatorElementRenderer","QuickInputAccessibilityProvider","BaseQuickInputListRenderer","row1","row2","keybindingContainer","detailContainer","descriptionHighlights","detailHighlights","iconUrl","descriptionTitle","frequency","_QuickPickSeparatorElementRenderer","QuickInputList","linkOpenerDelegate","observableValueOpts","otherElement","normalizedSearchValue","compareEntries","delayer3","isHTMLAnchorElement","elementsWithoutSeparators","inputElements","currentSeparatorElement","qpi","nextSibling","isSecondItem","prevFocus","currentFocus","foundSeparatorAsItem","focusElement","foundSeparator","queryWithWhitespace","currentSeparator","matchesFuzzyIconAware","matchesContiguousIconAware","allChecked","treeElements","whenNoneVisible","checkedCount","iconOffsets","matchesContiguous","wordToMatchAgainstWithoutIconsTrimmed","leadingWhitespaceOffset","iconOffset","wordToMatchAgainst","elementA","elementB","labelHighlightsA","labelHighlightsB","defaultCommandAndKeybindingRule","registerQuickPickCommandAndKeybindingRule","getSecondary","ctrlKeyMod3","focusHandler","focusOnQuickNatigate","currentQuickPick","nextSeparatorFallbackDesc","prevSeparatorFallbackDesc","__decorate181","__param174","QuickInputTreeRenderer_1","$20","QuickInputTreeRenderer","_hoverDelegate","_buttonTriggeredEmitter","onCheckedEvent","checkboxLabel","_details","quickTreeItem","descriptionMatches","QuickInputTreeDelegate","getParentNodeState","containsChecks","containsUnchecks","containsPartial","QuickTreeAccessibilityProvider","QuickInputTreeFilter","__decorate182","__param175","$21","QuickInputTreeController","updateSet","toUpdate","pop","newState2","lookedAt","toLookAt","lookAt","__decorate183","__param176","QuickInputController_1","$22","VIEWSTATE_STORAGE_KEY","QuickInputController","onDidRegisterWindow","onWillUnregisterWindow","showInActiveContainer","styleSheet","titleBar","leftActionBar","rightActionBar","headerContainer","checkAll","description2","inputContainer","filterContainer","visibleCountContainer","countContainer","inlineActionBar","okContainer","ok2","customButtonContainer","customButton","progressBar","description1","listId","selectors","stops","QuickInputDragAndDropController","dndViewState","doResolve","activeItem2","_activeItem","validationResult","validateInput","onDidValueChange","validationValue","validation","oldController","backKeybindingLabel","focusChanged","titleBarOffset","quickInputTitleBackground2","quickInputBackground2","quickInputForeground2","widgetBorder2","widgetShadow2","newStyles","_quickInputContainer","_quickInputDragAreas","initialViewState","customWindowControls","platform","dragAreaRect","dragArea","addDisposableGenericMouseUpListener","originEvent","includeChildren","addDisposableGenericMouseDownListener","dragOffsetX","dragOffsetY","isMovingQuickInput","mouseMoveListener","addDisposableGenericMouseMoveListener","mouseUpListener","topCoordinate","leftCoordinate","snapCoordinateYTop","snapCoordinateY","snapCoordinateX","getZoomFactor","snappingToTop","snappingToCenter","snappingToCenterX","__decorate184","__param177","QuickInputService","Themable","defaultOptions3","quickInputBackground","quickInputForeground","quickInputTitleBackground","pickerGroupBorder","__decorate185","__param178","EditorScopedQuickInputService","QuickInputEditorContribution","StandaloneQuickInputService","newQuickInputService","_QuickInputEditorContribution","QuickInputEditorWidget","_QuickInputEditorWidget","__decorate186","__param179","AccessibilityService","updateContextKey","reduceMotionMatcher","updateRootClasses","reduce","linkUnderlinesEnabled","updateLinkUnderlineClasses","underlineLinks","__decorate187","__param180","BrowserClipboardService_1","vscodeResourcesMime","BrowserClipboardService","isSafari","isWebkitWebView","currentWritePromise","activeDocument","textArea","readText","resourcesStateHash","__decorate188","__param181","KEYBINDING_CONTEXT_ATTR","Context3","NullContext","_NullContext","ConfigAwareContextValuesContainer","_ConfigAwareContextValuesContainer","allKeys","ArrayContextKeyChangeEvent","changedKeys","configKey","cachedItems","configValue","ContextKey","SimpleContextKeyChangeEvent","CompositeContextKeyChangeEvent","allEventKeysInContext","AbstractContextKeyService","myContextId","ScopedContextKeyService","myContext","findContextAttr","ContextKeyService","contextId","parentContextId","extraInfo","thisContextValues","setContext","stringifyURIs","cloneAndChange","init_descriptors","Node3","Graph","_hashFn","fromNode","toNode","_enableAllTracing","CyclicDependencyError","InstantiationService","_InstantiationService","_services","_strict","_parent","_enableTracing","services","_trace","Trace","_done","ctorOrDescriptor","SyncDescriptor","serviceDependencies","_util","serviceArgs","dependency","firstServiceArgPos","instanceOrDesc","cycleCount","roots","supportsDelayedInstantiation","disposeBucket","earlyListeners","idle","GlobalIdleValue","_target","printWarning","_Trace","dur","causedCreation","printChild","unsupportedSchemas","DoubleResourceMap","ownerMap","resourceMap","removedA","removedB","MarkerStats","oldStats","newStats","MarkerService","_MarkerService","tags","data2","reasons","severities","take","reasons2","ResourceSet","DefaultConfiguration","configurationDefaultsOverrides","defaultOverrideValue","LogService","primaryLogger","otherLoggers","MultiplexLogger","init_treeSitterLibraryService","StandaloneTreeSitterLibraryService","__decorate189","__param182","SimpleModel","StandaloneTextModelService","ImmortalReference","StandaloneEditorProgressService","_StandaloneEditorProgressService","StandaloneProgressService","task","onDidCancel","StandaloneEnvironmentService","StandaloneDialogService","confirmation","messageText","promptButtons","StandaloneNotificationService","_StandaloneNotificationService","NoOpNotification","notification","choices","StandaloneCommandService","StandaloneKeybindingService","addContainer","DomNodeListeners","removeContainer","domNodeListeners","addCodeEditor","removeCodeEditor","addDiffEditor","removeDiffEditor","decodeKeybinding","resolvedKeybindings","isConfigurationOverrides","StandaloneConfigurationService","configurationChangeEvent","arg3","arg4","StandaloneResourceConfigurationService","StandaloneResourcePropertiesService","StandaloneTelemetryService","StandaloneWorkspaceContextService","_StandaloneWorkspaceContextService","updateConfigurationService","isDiffEditor2","StandaloneBulkEditService","editsIn","totalEdits","totalFiles","StandaloneServicesNLS","StandaloneUriLabelService","StandaloneContextViewService","StandaloneWorkspaceTrustManagementService","StandaloneLanguageService","StandaloneLogService","ConsoleLogger","StandaloneContextMenuService","standaloneEditorWorkerDescriptor","StandaloneEditorWorkerService","StandaloneAccessbilitySignalService","cue","ITreeSitterLibraryService","NullLoggerService","StandaloneServices","StandaloneServices2","serviceCollection","getSingletonServiceDescriptors","get","serviceId","initialized","initialize2","onDidInitialize","serviceIdentifier","editorFeatures2","feature","withServices","__decorate190","__param183","LAST_GENERATED_COMMAND_ID","ariaDomNodeCreated","createAriaDomNode","setARIAContainer","StandaloneCodeEditor","StandaloneCodeEditorNLS","setHoverDelegateFactory","enableInstantHover","setBaseLayerHoverDelegate","whenExpression","_descriptor","precondition","keybindings","keybindingsWhen","contextMenuGroupId","contextMenuOrder","uniqueId","menuItem","internalAction","InternalEditorAction","StandaloneEditor","themeDomRegistration","createTextModel","detachedModel","StandaloneDiffEditor2","editorProgressService","firstLF","doCreateModel","multiDiffEditorHeaderBackground","multiDiffEditorBackground","multiDiffEditorBorder","__decorate191","__param184","TemplateData","deltaScrollVertical","DiffEditorItemTemplate","_overflowWidgetsDomNode","_workbenchUIElementFactory","scroll1","scroll2","globalTransaction","updateOptions","isRenamed","isDeleted","isAdded","flag","verticalRange","editorScroll","viewPort","ObjectPool","_create","obj2","__decorate192","__param185","MultiDiffEditorWidgetImpl","_dimension","_viewModel","_d","viewModels","VirtualizedViewItem","activeDiffItem","ctxAllCollapsed","allCollapsed","placeholderMessage","viewItems","maxScroll","contentScrollOffsetToScrollOffset","itemHeightSumBefore","itemContentHeightSumBefore","viewPortHeight","contentViewPort","itemContentHeight","itemContentRange","scroll","_objectPool","_scrollLeft","_deltaScrollVertical","verticalSpace","__decorate193","__param186","MultiDiffEditorWidget","create2","onDidCreateEditor","onDidCreateDiffEditor","getEditors","getDiffEditors","createDiffEditor","createMultiFileDiffEditor","addCommand","addEditorAction","args2","addKeybindingRule","addKeybindingRules","createModel","setModelLanguage","mimeTypeOrLanguageId","setModelMarkers","removeAllMarkers","getModelMarkers","onDidChangeMarkers","getModel","getModels","onDidCreateModel","onWillDisposeModel","onDidChangeModelLanguage","createWebWorker3","colorizeElement","colorize","colorizeModelLine","getSafeTokenizationSupport","tokenize","tokenizationResult","defineTheme","setTheme","remeasureFonts","FontMeasurements","registerCommand4","registerLinkOpener","registerEditorOpener","selectionOrPosition","createMonacoEditorAPI","ConfigurationChangedEvent","BareFontInfo","FontInfo","TextModelResolvedOptions","FindMatch","ApplyUpdateResult","isArrayOf","elemType","bool","defValue","string","arrayToHash","createKeywordMatcher","caseInsensitive","compileRegExp","handleSn","hadExpansion","lastState","lastRegEx","selectScrutinee","num","createGuard","ruleName","tkey","scrut","oppat","pat","tester","inWords","matches2","patx","eos","patexp","scrutinee","compileAction","newAction","cases","hasEmbeddedEndInCases","def2","_case","Rule","sregex","act","compile","lexerMin","addRules","newrules","newrule","rule1","register3","getLanguages","getEncodedLanguageId","onLanguage","encounteredLanguageId","onLanguageEncountered","setLanguageConfiguration","EncodedTokenizationSupportAdapter","TokenizationSupportAdapter","_TokenizationSupportAdapter","_languageId","_actual","_standaloneThemeService","previousStartIndex","actualResult","tokenTheme","isATokensProvider","isEncodedTokensProvider","isThenable2","setColorMap","createTokenizationSupportAdapter","registerTokensProviderFactory","adaptedFactory","LazyTokenizationSupport","setTokensProvider","setMonarchTokensProvider","languageDef","languageDef2","registerReferenceProvider","languageSelector","registerRenameProvider","registerNewSymbolNameProvider","registerSignatureHelpProvider","registerHoverProvider","registerDocumentSymbolProvider","registerDocumentHighlightProvider","registerLinkedEditingRangeProvider","registerDefinitionProvider","registerImplementationProvider","registerTypeDefinitionProvider","registerCodeLensProvider","registerCodeActionProvider","registerDocumentFormattingEditProvider","registerDocumentRangeFormattingEditProvider","registerOnTypeFormattingEditProvider","registerLinkProvider","registerCompletionItemProvider","registerColorProvider","registerFoldingRangeProvider","registerDeclarationProvider","registerSelectionRangeProvider","registerDocumentSemanticTokensProvider","registerDocumentRangeSemanticTokensProvider","registerInlineCompletionsProvider","registerInlayHintsProvider","createMonacoLanguagesAPI","api","CancellationTokenSource2","Emitter2","KeyCode2","KeyMod2","Position2","Range3","Selection2","SelectionDirection2","MarkerSeverity3","MarkerTag2","Uri2","Token3","editor","languages","monacoEnvironment","language_configurations_default","defaultEditorOptions","create3","createModel2","getModel2","normalizeUri","extname3","InputBoxValidationSeverity","InputBoxValidationSeverity2","QuickPickItemKind","QuickPickItemKind2","showInputBox","validateValue","showQuickPick","canPickMany","onDidSelectItem","items2","convertPickItem","selectedItem","languageConfigurationAliases","convertVscodeLanguageConfiguration","indentationRules","folding","wordPattern","onEnterRules","surroundingPairs","toRegexp","createEditorWorkerMain","cssBundle"],"sources":["../esm/npm/modern-monaco@0.2.2/node_modules/modern-monaco/dist/editor-core.mjs"],"sourcesContent":["var __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __esm = (fn, res) =\u003e function __init() {\n  return fn \u0026\u0026 (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n};\nvar __commonJS = (cb, mod) =\u003e function __require() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) =\u003e {\n  if (from \u0026\u0026 typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) \u0026\u0026 key !== except)\n        __defProp(to, key, { get: () =\u003e from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) =\u003e (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/nls.messages.js\nfunction getNLSMessages() {\n  return globalThis._VSCODE_NLS_MESSAGES;\n}\nfunction getNLSLanguage() {\n  return globalThis._VSCODE_NLS_LANGUAGE;\n}\nvar init_nls_messages = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/nls.messages.js\"() {\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/nls.js\nfunction _format(message, args) {\n  let result;\n  if (args.length === 0) {\n    result = message;\n  } else {\n    result = message.replace(/\\{(\\d+)\\}/g, (match2, rest) =\u003e {\n      const index = rest[0];\n      const arg = args[index];\n      let result2 = match2;\n      if (typeof arg === \"string\") {\n        result2 = arg;\n      } else if (typeof arg === \"number\" || typeof arg === \"boolean\" || arg === void 0 || arg === null) {\n        result2 = String(arg);\n      }\n      return result2;\n    });\n  }\n  if (isPseudo) {\n    result = \"\\uFF3B\" + result.replace(/[aouei]/g, \"$\u0026$\u0026\") + \"\\uFF3D\";\n  }\n  return result;\n}\nfunction localize(data, message, ...args) {\n  if (typeof data === \"number\") {\n    return _format(lookupMessage(data, message), args);\n  }\n  return _format(message, args);\n}\nfunction lookupMessage(index, fallback2) {\n  const message = getNLSMessages()?.[index];\n  if (typeof message !== \"string\") {\n    if (typeof fallback2 === \"string\") {\n      return fallback2;\n    }\n    throw new Error(`!!! NLS MISSING: ${index} !!!`);\n  }\n  return message;\n}\nfunction localize2(data, originalMessage, ...args) {\n  let message;\n  if (typeof data === \"number\") {\n    message = lookupMessage(data, originalMessage);\n  } else {\n    message = originalMessage;\n  }\n  const value = _format(message, args);\n  return {\n    value,\n    original: originalMessage === message ? value : _format(originalMessage, args)\n  };\n}\nvar isPseudo;\nvar init_nls = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/nls.js\"() {\n    init_nls_messages();\n    init_nls_messages();\n    isPseudo = getNLSLanguage() === \"pseudo\" || typeof document !== \"undefined\" \u0026\u0026 document.location \u0026\u0026 typeof document.location.hash === \"string\" \u0026\u0026 document.location.hash.indexOf(\"pseudo=true\") \u003e= 0;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/window.js\nfunction ensureCodeWindow(targetWindow, fallbackWindowId) {\n  const codeWindow = targetWindow;\n  if (typeof codeWindow.vscodeWindowId !== \"number\") {\n    Object.defineProperty(codeWindow, \"vscodeWindowId\", {\n      get: () =\u003e fallbackWindowId\n    });\n  }\n}\nvar mainWindow;\nvar init_window = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/window.js\"() {\n    mainWindow = window;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/browser.js\nfunction addMatchMediaChangeListener(targetWindow, query, callback) {\n  if (typeof query === \"string\") {\n    query = targetWindow.matchMedia(query);\n  }\n  query.addEventListener(\"change\", callback);\n}\nfunction getZoomFactor(targetWindow) {\n  return WindowManager.INSTANCE.getZoomFactor(targetWindow);\n}\nfunction isStandalone() {\n  return standalone;\n}\nvar WindowManager, userAgent, isFirefox, isWebKit, isChrome, isSafari, isWebkitWebView, isElectron, isAndroid, standalone;\nvar init_browser = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/browser.js\"() {\n    init_window();\n    WindowManager = class _WindowManager {\n      constructor() {\n        this.mapWindowIdToZoomFactor = /* @__PURE__ */ new Map();\n      }\n      static {\n        this.INSTANCE = new _WindowManager();\n      }\n      getZoomFactor(targetWindow) {\n        return this.mapWindowIdToZoomFactor.get(this.getWindowId(targetWindow)) ?? 1;\n      }\n      getWindowId(targetWindow) {\n        return targetWindow.vscodeWindowId;\n      }\n    };\n    userAgent = navigator.userAgent;\n    isFirefox = userAgent.indexOf(\"Firefox\") \u003e= 0;\n    isWebKit = userAgent.indexOf(\"AppleWebKit\") \u003e= 0;\n    isChrome = userAgent.indexOf(\"Chrome\") \u003e= 0;\n    isSafari = !isChrome \u0026\u0026 userAgent.indexOf(\"Safari\") \u003e= 0;\n    isWebkitWebView = !isChrome \u0026\u0026 !isSafari \u0026\u0026 isWebKit;\n    isElectron = userAgent.indexOf(\"Electron/\") \u003e= 0;\n    isAndroid = userAgent.indexOf(\"Android\") \u003e= 0;\n    standalone = false;\n    if (typeof mainWindow.matchMedia === \"function\") {\n      const standaloneMatchMedia = mainWindow.matchMedia(\"(display-mode: standalone) or (display-mode: window-controls-overlay)\");\n      const fullScreenMatchMedia = mainWindow.matchMedia(\"(display-mode: fullscreen)\");\n      standalone = standaloneMatchMedia.matches;\n      addMatchMediaChangeListener(mainWindow, standaloneMatchMedia, ({ matches }) =\u003e {\n        if (standalone \u0026\u0026 fullScreenMatchMedia.matches) {\n          return;\n        }\n        standalone = matches;\n      });\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/errors.js\nfunction onBugIndicatingError(e) {\n  errorHandler.onUnexpectedError(e);\n  return void 0;\n}\nfunction onUnexpectedError(e) {\n  if (!isCancellationError(e)) {\n    errorHandler.onUnexpectedError(e);\n  }\n  return void 0;\n}\nfunction onUnexpectedExternalError(e) {\n  if (!isCancellationError(e)) {\n    errorHandler.onUnexpectedExternalError(e);\n  }\n  return void 0;\n}\nfunction transformErrorForSerialization(error) {\n  if (error instanceof Error) {\n    const { name, message, cause } = error;\n    const stack = error.stacktrace || error.stack;\n    return {\n      $isError: true,\n      name,\n      message,\n      stack,\n      noTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error),\n      cause: cause ? transformErrorForSerialization(cause) : void 0,\n      code: error.code\n    };\n  }\n  return error;\n}\nfunction isCancellationError(error) {\n  if (error instanceof CancellationError) {\n    return true;\n  }\n  return error instanceof Error \u0026\u0026 error.name === canceledName \u0026\u0026 error.message === canceledName;\n}\nfunction canceled() {\n  const error = new Error(canceledName);\n  error.name = error.message;\n  return error;\n}\nfunction illegalArgument(name) {\n  if (name) {\n    return new Error(`Illegal argument: ${name}`);\n  } else {\n    return new Error(\"Illegal argument\");\n  }\n}\nfunction illegalState(name) {\n  if (name) {\n    return new Error(`Illegal state: ${name}`);\n  } else {\n    return new Error(\"Illegal state\");\n  }\n}\nvar ErrorHandler, errorHandler, canceledName, CancellationError, NotSupportedError, ErrorNoTelemetry, BugIndicatingError;\nvar init_errors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/errors.js\"() {\n    ErrorHandler = class {\n      constructor() {\n        this.listeners = [];\n        this.unexpectedErrorHandler = function(e) {\n          setTimeout(() =\u003e {\n            if (e.stack) {\n              if (ErrorNoTelemetry.isErrorNoTelemetry(e)) {\n                throw new ErrorNoTelemetry(e.message + \"\\n\\n\" + e.stack);\n              }\n              throw new Error(e.message + \"\\n\\n\" + e.stack);\n            }\n            throw e;\n          }, 0);\n        };\n      }\n      emit(e) {\n        this.listeners.forEach((listener) =\u003e {\n          listener(e);\n        });\n      }\n      onUnexpectedError(e) {\n        this.unexpectedErrorHandler(e);\n        this.emit(e);\n      }\n      // For external errors, we don't want the listeners to be called\n      onUnexpectedExternalError(e) {\n        this.unexpectedErrorHandler(e);\n      }\n    };\n    errorHandler = new ErrorHandler();\n    canceledName = \"Canceled\";\n    CancellationError = class extends Error {\n      constructor() {\n        super(canceledName);\n        this.name = this.message;\n      }\n    };\n    NotSupportedError = class extends Error {\n      constructor(message) {\n        super(\"NotSupported\");\n        if (message) {\n          this.message = message;\n        }\n      }\n    };\n    ErrorNoTelemetry = class _ErrorNoTelemetry extends Error {\n      constructor(msg) {\n        super(msg);\n        this.name = \"CodeExpectedError\";\n      }\n      static fromError(err) {\n        if (err instanceof _ErrorNoTelemetry) {\n          return err;\n        }\n        const result = new _ErrorNoTelemetry();\n        result.message = err.message;\n        result.stack = err.stack;\n        return result;\n      }\n      static isErrorNoTelemetry(err) {\n        return err.name === \"CodeExpectedError\";\n      }\n    };\n    BugIndicatingError = class _BugIndicatingError extends Error {\n      constructor(message) {\n        super(message || \"An unexpected bug occurred.\");\n        Object.setPrototypeOf(this, _BugIndicatingError.prototype);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/assert.js\nfunction ok(value, message) {\n  if (!value) {\n    throw new Error(message ? `Assertion failed (${message})` : \"Assertion Failed\");\n  }\n}\nfunction assertNever(value, message = \"Unreachable\") {\n  throw new Error(message);\n}\nfunction assert(condition, messageOrError = \"unexpected state\") {\n  if (!condition) {\n    const errorToThrow = typeof messageOrError === \"string\" ? new BugIndicatingError(`Assertion Failed: ${messageOrError}`) : messageOrError;\n    throw errorToThrow;\n  }\n}\nfunction softAssert(condition, message = \"Soft Assertion Failed\") {\n  if (!condition) {\n    onUnexpectedError(new BugIndicatingError(message));\n  }\n}\nfunction assertFn(condition) {\n  if (!condition()) {\n    debugger;\n    condition();\n    onUnexpectedError(new BugIndicatingError(\"Assertion Failed\"));\n  }\n}\nfunction checkAdjacentItems(items, predicate) {\n  let i2 = 0;\n  while (i2 \u003c items.length - 1) {\n    const a = items[i2];\n    const b = items[i2 + 1];\n    if (!predicate(a, b)) {\n      return false;\n    }\n    i2++;\n  }\n  return true;\n}\nvar init_assert = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/assert.js\"() {\n    init_errors();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/types.js\nfunction isString(str) {\n  return typeof str === \"string\";\n}\nfunction isObject(obj) {\n  return typeof obj === \"object\" \u0026\u0026 obj !== null \u0026\u0026 !Array.isArray(obj) \u0026\u0026 !(obj instanceof RegExp) \u0026\u0026 !(obj instanceof Date);\n}\nfunction isTypedArray(obj) {\n  const TypedArray = Object.getPrototypeOf(Uint8Array);\n  return typeof obj === \"object\" \u0026\u0026 obj instanceof TypedArray;\n}\nfunction isNumber(obj) {\n  return typeof obj === \"number\" \u0026\u0026 !isNaN(obj);\n}\nfunction isIterable(obj) {\n  return !!obj \u0026\u0026 typeof obj[Symbol.iterator] === \"function\";\n}\nfunction isBoolean(obj) {\n  return obj === true || obj === false;\n}\nfunction isUndefined(obj) {\n  return typeof obj === \"undefined\";\n}\nfunction isDefined(arg) {\n  return !isUndefinedOrNull(arg);\n}\nfunction isUndefinedOrNull(obj) {\n  return isUndefined(obj) || obj === null;\n}\nfunction assertType(condition, type) {\n  if (!condition) {\n    throw new Error(type ? `Unexpected type, expected '${type}'` : \"Unexpected type\");\n  }\n}\nfunction assertReturnsDefined(arg) {\n  assert(arg !== null \u0026\u0026 arg !== void 0, \"Argument is `undefined` or `null`.\");\n  return arg;\n}\nfunction isFunction(obj) {\n  return typeof obj === \"function\";\n}\nfunction validateConstraints(args, constraints) {\n  const len = Math.min(args.length, constraints.length);\n  for (let i2 = 0; i2 \u003c len; i2++) {\n    validateConstraint(args[i2], constraints[i2]);\n  }\n}\nfunction validateConstraint(arg, constraint) {\n  if (isString(constraint)) {\n    if (typeof arg !== constraint) {\n      throw new Error(`argument does not match constraint: typeof ${constraint}`);\n    }\n  } else if (isFunction(constraint)) {\n    try {\n      if (arg instanceof constraint) {\n        return;\n      }\n    } catch {\n    }\n    if (!isUndefinedOrNull(arg) \u0026\u0026 arg.constructor === constraint) {\n      return;\n    }\n    if (constraint.length === 1 \u0026\u0026 constraint.call(void 0, arg) === true) {\n      return;\n    }\n    throw new Error(`argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true`);\n  }\n}\nfunction upcast(x) {\n  return x;\n}\nvar init_types = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/types.js\"() {\n    init_assert();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/platform.js\nfunction isLittleEndian() {\n  if (!_isLittleEndianComputed) {\n    _isLittleEndianComputed = true;\n    const test = new Uint8Array(2);\n    test[0] = 1;\n    test[1] = 2;\n    const view = new Uint16Array(test.buffer);\n    _isLittleEndian = view[0] === (2 \u003c\u003c 8) + 1;\n  }\n  return _isLittleEndian;\n}\nvar LANGUAGE_DEFAULT, _isWindows, _isMacintosh, _isLinux, _isLinuxSnap, _isNative, _isWeb, _isElectron, _isIOS, _isCI, _isMobile, _locale, _language, _platformLocale, _translationsConfigFile, _userAgent, $globalThis, nodeProcess, isElectronProcess, isElectronRenderer, _platform, isWindows, isMacintosh, isLinux, isNative, isWeb, isWebWorker, webWorkerOrigin, isIOS, isMobile, platform, userAgent2, language, setTimeout0IsFaster, setTimeout0, OS, _isLittleEndian, _isLittleEndianComputed, isChrome2, isFirefox2, isSafari2, isEdge, isAndroid2;\nvar init_platform = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/platform.js\"() {\n    init_nls();\n    LANGUAGE_DEFAULT = \"en\";\n    _isWindows = false;\n    _isMacintosh = false;\n    _isLinux = false;\n    _isLinuxSnap = false;\n    _isNative = false;\n    _isWeb = false;\n    _isElectron = false;\n    _isIOS = false;\n    _isCI = false;\n    _isMobile = false;\n    _locale = void 0;\n    _language = LANGUAGE_DEFAULT;\n    _platformLocale = LANGUAGE_DEFAULT;\n    _translationsConfigFile = void 0;\n    _userAgent = void 0;\n    $globalThis = globalThis;\n    nodeProcess = void 0;\n    if (typeof $globalThis.vscode !== \"undefined\" \u0026\u0026 typeof $globalThis.vscode.process !== \"undefined\") {\n      nodeProcess = $globalThis.vscode.process;\n    } else if (typeof process !== \"undefined\" \u0026\u0026 typeof process?.versions?.node === \"string\") {\n      nodeProcess = process;\n    }\n    isElectronProcess = typeof nodeProcess?.versions?.electron === \"string\";\n    isElectronRenderer = isElectronProcess \u0026\u0026 nodeProcess?.type === \"renderer\";\n    if (typeof nodeProcess === \"object\") {\n      _isWindows = nodeProcess.platform === \"win32\";\n      _isMacintosh = nodeProcess.platform === \"darwin\";\n      _isLinux = nodeProcess.platform === \"linux\";\n      _isLinuxSnap = _isLinux \u0026\u0026 !!nodeProcess.env[\"SNAP\"] \u0026\u0026 !!nodeProcess.env[\"SNAP_REVISION\"];\n      _isElectron = isElectronProcess;\n      _isCI = !!nodeProcess.env[\"CI\"] || !!nodeProcess.env[\"BUILD_ARTIFACTSTAGINGDIRECTORY\"] || !!nodeProcess.env[\"GITHUB_WORKSPACE\"];\n      _locale = LANGUAGE_DEFAULT;\n      _language = LANGUAGE_DEFAULT;\n      const rawNlsConfig = nodeProcess.env[\"VSCODE_NLS_CONFIG\"];\n      if (rawNlsConfig) {\n        try {\n          const nlsConfig = JSON.parse(rawNlsConfig);\n          _locale = nlsConfig.userLocale;\n          _platformLocale = nlsConfig.osLocale;\n          _language = nlsConfig.resolvedLanguage || LANGUAGE_DEFAULT;\n          _translationsConfigFile = nlsConfig.languagePack?.translationsConfigFile;\n        } catch (e) {\n        }\n      }\n      _isNative = true;\n    } else if (typeof navigator === \"object\" \u0026\u0026 !isElectronRenderer) {\n      _userAgent = navigator.userAgent;\n      _isWindows = _userAgent.indexOf(\"Windows\") \u003e= 0;\n      _isMacintosh = _userAgent.indexOf(\"Macintosh\") \u003e= 0;\n      _isIOS = (_userAgent.indexOf(\"Macintosh\") \u003e= 0 || _userAgent.indexOf(\"iPad\") \u003e= 0 || _userAgent.indexOf(\"iPhone\") \u003e= 0) \u0026\u0026 !!navigator.maxTouchPoints \u0026\u0026 navigator.maxTouchPoints \u003e 0;\n      _isLinux = _userAgent.indexOf(\"Linux\") \u003e= 0;\n      _isMobile = _userAgent?.indexOf(\"Mobi\") \u003e= 0;\n      _isWeb = true;\n      _language = getNLSLanguage() || LANGUAGE_DEFAULT;\n      _locale = navigator.language.toLowerCase();\n      _platformLocale = _locale;\n    } else {\n      console.error(\"Unable to resolve platform.\");\n    }\n    _platform = 0;\n    if (_isMacintosh) {\n      _platform = 1;\n    } else if (_isWindows) {\n      _platform = 3;\n    } else if (_isLinux) {\n      _platform = 2;\n    }\n    isWindows = _isWindows;\n    isMacintosh = _isMacintosh;\n    isLinux = _isLinux;\n    isNative = _isNative;\n    isWeb = _isWeb;\n    isWebWorker = _isWeb \u0026\u0026 typeof $globalThis.importScripts === \"function\";\n    webWorkerOrigin = isWebWorker ? $globalThis.origin : void 0;\n    isIOS = _isIOS;\n    isMobile = _isMobile;\n    platform = _platform;\n    userAgent2 = _userAgent;\n    language = _language;\n    setTimeout0IsFaster = typeof $globalThis.postMessage === \"function\" \u0026\u0026 !$globalThis.importScripts;\n    setTimeout0 = (() =\u003e {\n      if (setTimeout0IsFaster) {\n        const pending = [];\n        $globalThis.addEventListener(\"message\", (e) =\u003e {\n          if (e.data \u0026\u0026 e.data.vscodeScheduleAsyncWork) {\n            for (let i2 = 0, len = pending.length; i2 \u003c len; i2++) {\n              const candidate = pending[i2];\n              if (candidate.id === e.data.vscodeScheduleAsyncWork) {\n                pending.splice(i2, 1);\n                candidate.callback();\n                return;\n              }\n            }\n          }\n        });\n        let lastId = 0;\n        return (callback) =\u003e {\n          const myId = ++lastId;\n          pending.push({\n            id: myId,\n            callback\n          });\n          $globalThis.postMessage({ vscodeScheduleAsyncWork: myId }, \"*\");\n        };\n      }\n      return (callback) =\u003e setTimeout(callback);\n    })();\n    OS = _isMacintosh || _isIOS ? 2 : _isWindows ? 1 : 3;\n    _isLittleEndian = true;\n    _isLittleEndianComputed = false;\n    isChrome2 = !!(userAgent2 \u0026\u0026 userAgent2.indexOf(\"Chrome\") \u003e= 0);\n    isFirefox2 = !!(userAgent2 \u0026\u0026 userAgent2.indexOf(\"Firefox\") \u003e= 0);\n    isSafari2 = !!(!isChrome2 \u0026\u0026 (userAgent2 \u0026\u0026 userAgent2.indexOf(\"Safari\") \u003e= 0));\n    isEdge = !!(userAgent2 \u0026\u0026 userAgent2.indexOf(\"Edg/\") \u003e= 0);\n    isAndroid2 = !!(userAgent2 \u0026\u0026 userAgent2.indexOf(\"Android\") \u003e= 0);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/canIUse.js\nvar BrowserFeatures;\nvar init_canIUse = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/canIUse.js\"() {\n    init_browser();\n    init_window();\n    init_platform();\n    BrowserFeatures = {\n      clipboard: {\n        writeText: isNative || document.queryCommandSupported \u0026\u0026 document.queryCommandSupported(\"copy\") || !!(navigator \u0026\u0026 navigator.clipboard \u0026\u0026 navigator.clipboard.writeText),\n        readText: isNative || !!(navigator \u0026\u0026 navigator.clipboard \u0026\u0026 navigator.clipboard.readText)\n      },\n      keyboard: (() =\u003e {\n        if (isNative || isStandalone()) {\n          return 0;\n        }\n        if (navigator.keyboard || isSafari) {\n          return 1;\n        }\n        return 2;\n      })(),\n      // 'ontouchstart' in window always evaluates to true with typescript's modern typings. This causes `window` to be\n      // `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast\n      touch: \"ontouchstart\" in mainWindow || navigator.maxTouchPoints \u003e 0,\n      pointerEvents: mainWindow.PointerEvent \u0026\u0026 (\"ontouchstart\" in mainWindow || navigator.maxTouchPoints \u003e 0)\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/keyCodes.js\nfunction KeyChord(firstPart, secondPart) {\n  const chordPart = (secondPart \u0026 65535) \u003c\u003c 16 \u003e\u003e\u003e 0;\n  return (firstPart | chordPart) \u003e\u003e\u003e 0;\n}\nvar KeyCodeStrMap, uiMap, userSettingsUSMap, userSettingsGeneralMap, EVENT_KEY_CODE_MAP, NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE, scanCodeIntToStr, scanCodeStrToInt, scanCodeLowerCaseStrToInt, IMMUTABLE_CODE_TO_KEY_CODE, IMMUTABLE_KEY_CODE_TO_CODE, KeyCodeUtils;\nvar init_keyCodes = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/keyCodes.js\"() {\n    KeyCodeStrMap = class {\n      constructor() {\n        this._keyCodeToStr = [];\n        this._strToKeyCode = /* @__PURE__ */ Object.create(null);\n      }\n      define(keyCode, str) {\n        this._keyCodeToStr[keyCode] = str;\n        this._strToKeyCode[str.toLowerCase()] = keyCode;\n      }\n      keyCodeToStr(keyCode) {\n        return this._keyCodeToStr[keyCode];\n      }\n      strToKeyCode(str) {\n        return this._strToKeyCode[str.toLowerCase()] || 0;\n      }\n    };\n    uiMap = new KeyCodeStrMap();\n    userSettingsUSMap = new KeyCodeStrMap();\n    userSettingsGeneralMap = new KeyCodeStrMap();\n    EVENT_KEY_CODE_MAP = new Array(230);\n    NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE = {};\n    scanCodeIntToStr = [];\n    scanCodeStrToInt = /* @__PURE__ */ Object.create(null);\n    scanCodeLowerCaseStrToInt = /* @__PURE__ */ Object.create(null);\n    IMMUTABLE_CODE_TO_KEY_CODE = [];\n    IMMUTABLE_KEY_CODE_TO_CODE = [];\n    for (let i2 = 0; i2 \u003c= 193; i2++) {\n      IMMUTABLE_CODE_TO_KEY_CODE[i2] = -1;\n    }\n    for (let i2 = 0; i2 \u003c= 132; i2++) {\n      IMMUTABLE_KEY_CODE_TO_CODE[i2] = -1;\n    }\n    (function() {\n      const empty2 = \"\";\n      const mappings = [\n        // immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel\n        [1, 0, \"None\", 0, \"unknown\", 0, \"VK_UNKNOWN\", empty2, empty2],\n        [1, 1, \"Hyper\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 2, \"Super\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 3, \"Fn\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 4, \"FnLock\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 5, \"Suspend\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 6, \"Resume\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 7, \"Turbo\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 8, \"Sleep\", 0, empty2, 0, \"VK_SLEEP\", empty2, empty2],\n        [1, 9, \"WakeUp\", 0, empty2, 0, empty2, empty2, empty2],\n        [0, 10, \"KeyA\", 31, \"A\", 65, \"VK_A\", empty2, empty2],\n        [0, 11, \"KeyB\", 32, \"B\", 66, \"VK_B\", empty2, empty2],\n        [0, 12, \"KeyC\", 33, \"C\", 67, \"VK_C\", empty2, empty2],\n        [0, 13, \"KeyD\", 34, \"D\", 68, \"VK_D\", empty2, empty2],\n        [0, 14, \"KeyE\", 35, \"E\", 69, \"VK_E\", empty2, empty2],\n        [0, 15, \"KeyF\", 36, \"F\", 70, \"VK_F\", empty2, empty2],\n        [0, 16, \"KeyG\", 37, \"G\", 71, \"VK_G\", empty2, empty2],\n        [0, 17, \"KeyH\", 38, \"H\", 72, \"VK_H\", empty2, empty2],\n        [0, 18, \"KeyI\", 39, \"I\", 73, \"VK_I\", empty2, empty2],\n        [0, 19, \"KeyJ\", 40, \"J\", 74, \"VK_J\", empty2, empty2],\n        [0, 20, \"KeyK\", 41, \"K\", 75, \"VK_K\", empty2, empty2],\n        [0, 21, \"KeyL\", 42, \"L\", 76, \"VK_L\", empty2, empty2],\n        [0, 22, \"KeyM\", 43, \"M\", 77, \"VK_M\", empty2, empty2],\n        [0, 23, \"KeyN\", 44, \"N\", 78, \"VK_N\", empty2, empty2],\n        [0, 24, \"KeyO\", 45, \"O\", 79, \"VK_O\", empty2, empty2],\n        [0, 25, \"KeyP\", 46, \"P\", 80, \"VK_P\", empty2, empty2],\n        [0, 26, \"KeyQ\", 47, \"Q\", 81, \"VK_Q\", empty2, empty2],\n        [0, 27, \"KeyR\", 48, \"R\", 82, \"VK_R\", empty2, empty2],\n        [0, 28, \"KeyS\", 49, \"S\", 83, \"VK_S\", empty2, empty2],\n        [0, 29, \"KeyT\", 50, \"T\", 84, \"VK_T\", empty2, empty2],\n        [0, 30, \"KeyU\", 51, \"U\", 85, \"VK_U\", empty2, empty2],\n        [0, 31, \"KeyV\", 52, \"V\", 86, \"VK_V\", empty2, empty2],\n        [0, 32, \"KeyW\", 53, \"W\", 87, \"VK_W\", empty2, empty2],\n        [0, 33, \"KeyX\", 54, \"X\", 88, \"VK_X\", empty2, empty2],\n        [0, 34, \"KeyY\", 55, \"Y\", 89, \"VK_Y\", empty2, empty2],\n        [0, 35, \"KeyZ\", 56, \"Z\", 90, \"VK_Z\", empty2, empty2],\n        [0, 36, \"Digit1\", 22, \"1\", 49, \"VK_1\", empty2, empty2],\n        [0, 37, \"Digit2\", 23, \"2\", 50, \"VK_2\", empty2, empty2],\n        [0, 38, \"Digit3\", 24, \"3\", 51, \"VK_3\", empty2, empty2],\n        [0, 39, \"Digit4\", 25, \"4\", 52, \"VK_4\", empty2, empty2],\n        [0, 40, \"Digit5\", 26, \"5\", 53, \"VK_5\", empty2, empty2],\n        [0, 41, \"Digit6\", 27, \"6\", 54, \"VK_6\", empty2, empty2],\n        [0, 42, \"Digit7\", 28, \"7\", 55, \"VK_7\", empty2, empty2],\n        [0, 43, \"Digit8\", 29, \"8\", 56, \"VK_8\", empty2, empty2],\n        [0, 44, \"Digit9\", 30, \"9\", 57, \"VK_9\", empty2, empty2],\n        [0, 45, \"Digit0\", 21, \"0\", 48, \"VK_0\", empty2, empty2],\n        [1, 46, \"Enter\", 3, \"Enter\", 13, \"VK_RETURN\", empty2, empty2],\n        [1, 47, \"Escape\", 9, \"Escape\", 27, \"VK_ESCAPE\", empty2, empty2],\n        [1, 48, \"Backspace\", 1, \"Backspace\", 8, \"VK_BACK\", empty2, empty2],\n        [1, 49, \"Tab\", 2, \"Tab\", 9, \"VK_TAB\", empty2, empty2],\n        [1, 50, \"Space\", 10, \"Space\", 32, \"VK_SPACE\", empty2, empty2],\n        [0, 51, \"Minus\", 88, \"-\", 189, \"VK_OEM_MINUS\", \"-\", \"OEM_MINUS\"],\n        [0, 52, \"Equal\", 86, \"=\", 187, \"VK_OEM_PLUS\", \"=\", \"OEM_PLUS\"],\n        [0, 53, \"BracketLeft\", 92, \"[\", 219, \"VK_OEM_4\", \"[\", \"OEM_4\"],\n        [0, 54, \"BracketRight\", 94, \"]\", 221, \"VK_OEM_6\", \"]\", \"OEM_6\"],\n        [0, 55, \"Backslash\", 93, \"\\\\\", 220, \"VK_OEM_5\", \"\\\\\", \"OEM_5\"],\n        [0, 56, \"IntlHash\", 0, empty2, 0, empty2, empty2, empty2],\n        // has been dropped from the w3c spec\n        [0, 57, \"Semicolon\", 85, \";\", 186, \"VK_OEM_1\", \";\", \"OEM_1\"],\n        [0, 58, \"Quote\", 95, \"'\", 222, \"VK_OEM_7\", \"'\", \"OEM_7\"],\n        [0, 59, \"Backquote\", 91, \"`\", 192, \"VK_OEM_3\", \"`\", \"OEM_3\"],\n        [0, 60, \"Comma\", 87, \",\", 188, \"VK_OEM_COMMA\", \",\", \"OEM_COMMA\"],\n        [0, 61, \"Period\", 89, \".\", 190, \"VK_OEM_PERIOD\", \".\", \"OEM_PERIOD\"],\n        [0, 62, \"Slash\", 90, \"/\", 191, \"VK_OEM_2\", \"/\", \"OEM_2\"],\n        [1, 63, \"CapsLock\", 8, \"CapsLock\", 20, \"VK_CAPITAL\", empty2, empty2],\n        [1, 64, \"F1\", 59, \"F1\", 112, \"VK_F1\", empty2, empty2],\n        [1, 65, \"F2\", 60, \"F2\", 113, \"VK_F2\", empty2, empty2],\n        [1, 66, \"F3\", 61, \"F3\", 114, \"VK_F3\", empty2, empty2],\n        [1, 67, \"F4\", 62, \"F4\", 115, \"VK_F4\", empty2, empty2],\n        [1, 68, \"F5\", 63, \"F5\", 116, \"VK_F5\", empty2, empty2],\n        [1, 69, \"F6\", 64, \"F6\", 117, \"VK_F6\", empty2, empty2],\n        [1, 70, \"F7\", 65, \"F7\", 118, \"VK_F7\", empty2, empty2],\n        [1, 71, \"F8\", 66, \"F8\", 119, \"VK_F8\", empty2, empty2],\n        [1, 72, \"F9\", 67, \"F9\", 120, \"VK_F9\", empty2, empty2],\n        [1, 73, \"F10\", 68, \"F10\", 121, \"VK_F10\", empty2, empty2],\n        [1, 74, \"F11\", 69, \"F11\", 122, \"VK_F11\", empty2, empty2],\n        [1, 75, \"F12\", 70, \"F12\", 123, \"VK_F12\", empty2, empty2],\n        [1, 76, \"PrintScreen\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 77, \"ScrollLock\", 84, \"ScrollLock\", 145, \"VK_SCROLL\", empty2, empty2],\n        [1, 78, \"Pause\", 7, \"PauseBreak\", 19, \"VK_PAUSE\", empty2, empty2],\n        [1, 79, \"Insert\", 19, \"Insert\", 45, \"VK_INSERT\", empty2, empty2],\n        [1, 80, \"Home\", 14, \"Home\", 36, \"VK_HOME\", empty2, empty2],\n        [1, 81, \"PageUp\", 11, \"PageUp\", 33, \"VK_PRIOR\", empty2, empty2],\n        [1, 82, \"Delete\", 20, \"Delete\", 46, \"VK_DELETE\", empty2, empty2],\n        [1, 83, \"End\", 13, \"End\", 35, \"VK_END\", empty2, empty2],\n        [1, 84, \"PageDown\", 12, \"PageDown\", 34, \"VK_NEXT\", empty2, empty2],\n        [1, 85, \"ArrowRight\", 17, \"RightArrow\", 39, \"VK_RIGHT\", \"Right\", empty2],\n        [1, 86, \"ArrowLeft\", 15, \"LeftArrow\", 37, \"VK_LEFT\", \"Left\", empty2],\n        [1, 87, \"ArrowDown\", 18, \"DownArrow\", 40, \"VK_DOWN\", \"Down\", empty2],\n        [1, 88, \"ArrowUp\", 16, \"UpArrow\", 38, \"VK_UP\", \"Up\", empty2],\n        [1, 89, \"NumLock\", 83, \"NumLock\", 144, \"VK_NUMLOCK\", empty2, empty2],\n        [1, 90, \"NumpadDivide\", 113, \"NumPad_Divide\", 111, \"VK_DIVIDE\", empty2, empty2],\n        [1, 91, \"NumpadMultiply\", 108, \"NumPad_Multiply\", 106, \"VK_MULTIPLY\", empty2, empty2],\n        [1, 92, \"NumpadSubtract\", 111, \"NumPad_Subtract\", 109, \"VK_SUBTRACT\", empty2, empty2],\n        [1, 93, \"NumpadAdd\", 109, \"NumPad_Add\", 107, \"VK_ADD\", empty2, empty2],\n        [1, 94, \"NumpadEnter\", 3, empty2, 0, empty2, empty2, empty2],\n        [1, 95, \"Numpad1\", 99, \"NumPad1\", 97, \"VK_NUMPAD1\", empty2, empty2],\n        [1, 96, \"Numpad2\", 100, \"NumPad2\", 98, \"VK_NUMPAD2\", empty2, empty2],\n        [1, 97, \"Numpad3\", 101, \"NumPad3\", 99, \"VK_NUMPAD3\", empty2, empty2],\n        [1, 98, \"Numpad4\", 102, \"NumPad4\", 100, \"VK_NUMPAD4\", empty2, empty2],\n        [1, 99, \"Numpad5\", 103, \"NumPad5\", 101, \"VK_NUMPAD5\", empty2, empty2],\n        [1, 100, \"Numpad6\", 104, \"NumPad6\", 102, \"VK_NUMPAD6\", empty2, empty2],\n        [1, 101, \"Numpad7\", 105, \"NumPad7\", 103, \"VK_NUMPAD7\", empty2, empty2],\n        [1, 102, \"Numpad8\", 106, \"NumPad8\", 104, \"VK_NUMPAD8\", empty2, empty2],\n        [1, 103, \"Numpad9\", 107, \"NumPad9\", 105, \"VK_NUMPAD9\", empty2, empty2],\n        [1, 104, \"Numpad0\", 98, \"NumPad0\", 96, \"VK_NUMPAD0\", empty2, empty2],\n        [1, 105, \"NumpadDecimal\", 112, \"NumPad_Decimal\", 110, \"VK_DECIMAL\", empty2, empty2],\n        [0, 106, \"IntlBackslash\", 97, \"OEM_102\", 226, \"VK_OEM_102\", empty2, empty2],\n        [1, 107, \"ContextMenu\", 58, \"ContextMenu\", 93, empty2, empty2, empty2],\n        [1, 108, \"Power\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 109, \"NumpadEqual\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 110, \"F13\", 71, \"F13\", 124, \"VK_F13\", empty2, empty2],\n        [1, 111, \"F14\", 72, \"F14\", 125, \"VK_F14\", empty2, empty2],\n        [1, 112, \"F15\", 73, \"F15\", 126, \"VK_F15\", empty2, empty2],\n        [1, 113, \"F16\", 74, \"F16\", 127, \"VK_F16\", empty2, empty2],\n        [1, 114, \"F17\", 75, \"F17\", 128, \"VK_F17\", empty2, empty2],\n        [1, 115, \"F18\", 76, \"F18\", 129, \"VK_F18\", empty2, empty2],\n        [1, 116, \"F19\", 77, \"F19\", 130, \"VK_F19\", empty2, empty2],\n        [1, 117, \"F20\", 78, \"F20\", 131, \"VK_F20\", empty2, empty2],\n        [1, 118, \"F21\", 79, \"F21\", 132, \"VK_F21\", empty2, empty2],\n        [1, 119, \"F22\", 80, \"F22\", 133, \"VK_F22\", empty2, empty2],\n        [1, 120, \"F23\", 81, \"F23\", 134, \"VK_F23\", empty2, empty2],\n        [1, 121, \"F24\", 82, \"F24\", 135, \"VK_F24\", empty2, empty2],\n        [1, 122, \"Open\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 123, \"Help\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 124, \"Select\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 125, \"Again\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 126, \"Undo\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 127, \"Cut\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 128, \"Copy\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 129, \"Paste\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 130, \"Find\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 131, \"AudioVolumeMute\", 117, \"AudioVolumeMute\", 173, \"VK_VOLUME_MUTE\", empty2, empty2],\n        [1, 132, \"AudioVolumeUp\", 118, \"AudioVolumeUp\", 175, \"VK_VOLUME_UP\", empty2, empty2],\n        [1, 133, \"AudioVolumeDown\", 119, \"AudioVolumeDown\", 174, \"VK_VOLUME_DOWN\", empty2, empty2],\n        [1, 134, \"NumpadComma\", 110, \"NumPad_Separator\", 108, \"VK_SEPARATOR\", empty2, empty2],\n        [0, 135, \"IntlRo\", 115, \"ABNT_C1\", 193, \"VK_ABNT_C1\", empty2, empty2],\n        [1, 136, \"KanaMode\", 0, empty2, 0, empty2, empty2, empty2],\n        [0, 137, \"IntlYen\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 138, \"Convert\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 139, \"NonConvert\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 140, \"Lang1\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 141, \"Lang2\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 142, \"Lang3\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 143, \"Lang4\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 144, \"Lang5\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 145, \"Abort\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 146, \"Props\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 147, \"NumpadParenLeft\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 148, \"NumpadParenRight\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 149, \"NumpadBackspace\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 150, \"NumpadMemoryStore\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 151, \"NumpadMemoryRecall\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 152, \"NumpadMemoryClear\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 153, \"NumpadMemoryAdd\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 154, \"NumpadMemorySubtract\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 155, \"NumpadClear\", 131, \"Clear\", 12, \"VK_CLEAR\", empty2, empty2],\n        [1, 156, \"NumpadClearEntry\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 0, empty2, 5, \"Ctrl\", 17, \"VK_CONTROL\", empty2, empty2],\n        [1, 0, empty2, 4, \"Shift\", 16, \"VK_SHIFT\", empty2, empty2],\n        [1, 0, empty2, 6, \"Alt\", 18, \"VK_MENU\", empty2, empty2],\n        [1, 0, empty2, 57, \"Meta\", 91, \"VK_COMMAND\", empty2, empty2],\n        [1, 157, \"ControlLeft\", 5, empty2, 0, \"VK_LCONTROL\", empty2, empty2],\n        [1, 158, \"ShiftLeft\", 4, empty2, 0, \"VK_LSHIFT\", empty2, empty2],\n        [1, 159, \"AltLeft\", 6, empty2, 0, \"VK_LMENU\", empty2, empty2],\n        [1, 160, \"MetaLeft\", 57, empty2, 0, \"VK_LWIN\", empty2, empty2],\n        [1, 161, \"ControlRight\", 5, empty2, 0, \"VK_RCONTROL\", empty2, empty2],\n        [1, 162, \"ShiftRight\", 4, empty2, 0, \"VK_RSHIFT\", empty2, empty2],\n        [1, 163, \"AltRight\", 6, empty2, 0, \"VK_RMENU\", empty2, empty2],\n        [1, 164, \"MetaRight\", 57, empty2, 0, \"VK_RWIN\", empty2, empty2],\n        [1, 165, \"BrightnessUp\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 166, \"BrightnessDown\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 167, \"MediaPlay\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 168, \"MediaRecord\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 169, \"MediaFastForward\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 170, \"MediaRewind\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 171, \"MediaTrackNext\", 124, \"MediaTrackNext\", 176, \"VK_MEDIA_NEXT_TRACK\", empty2, empty2],\n        [1, 172, \"MediaTrackPrevious\", 125, \"MediaTrackPrevious\", 177, \"VK_MEDIA_PREV_TRACK\", empty2, empty2],\n        [1, 173, \"MediaStop\", 126, \"MediaStop\", 178, \"VK_MEDIA_STOP\", empty2, empty2],\n        [1, 174, \"Eject\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 175, \"MediaPlayPause\", 127, \"MediaPlayPause\", 179, \"VK_MEDIA_PLAY_PAUSE\", empty2, empty2],\n        [1, 176, \"MediaSelect\", 128, \"LaunchMediaPlayer\", 181, \"VK_MEDIA_LAUNCH_MEDIA_SELECT\", empty2, empty2],\n        [1, 177, \"LaunchMail\", 129, \"LaunchMail\", 180, \"VK_MEDIA_LAUNCH_MAIL\", empty2, empty2],\n        [1, 178, \"LaunchApp2\", 130, \"LaunchApp2\", 183, \"VK_MEDIA_LAUNCH_APP2\", empty2, empty2],\n        [1, 179, \"LaunchApp1\", 0, empty2, 0, \"VK_MEDIA_LAUNCH_APP1\", empty2, empty2],\n        [1, 180, \"SelectTask\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 181, \"LaunchScreenSaver\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 182, \"BrowserSearch\", 120, \"BrowserSearch\", 170, \"VK_BROWSER_SEARCH\", empty2, empty2],\n        [1, 183, \"BrowserHome\", 121, \"BrowserHome\", 172, \"VK_BROWSER_HOME\", empty2, empty2],\n        [1, 184, \"BrowserBack\", 122, \"BrowserBack\", 166, \"VK_BROWSER_BACK\", empty2, empty2],\n        [1, 185, \"BrowserForward\", 123, \"BrowserForward\", 167, \"VK_BROWSER_FORWARD\", empty2, empty2],\n        [1, 186, \"BrowserStop\", 0, empty2, 0, \"VK_BROWSER_STOP\", empty2, empty2],\n        [1, 187, \"BrowserRefresh\", 0, empty2, 0, \"VK_BROWSER_REFRESH\", empty2, empty2],\n        [1, 188, \"BrowserFavorites\", 0, empty2, 0, \"VK_BROWSER_FAVORITES\", empty2, empty2],\n        [1, 189, \"ZoomToggle\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 190, \"MailReply\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 191, \"MailForward\", 0, empty2, 0, empty2, empty2, empty2],\n        [1, 192, \"MailSend\", 0, empty2, 0, empty2, empty2, empty2],\n        // See https://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html\n        // If an Input Method Editor is processing key input and the event is keydown, return 229.\n        [1, 0, empty2, 114, \"KeyInComposition\", 229, empty2, empty2, empty2],\n        [1, 0, empty2, 116, \"ABNT_C2\", 194, \"VK_ABNT_C2\", empty2, empty2],\n        [1, 0, empty2, 96, \"OEM_8\", 223, \"VK_OEM_8\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_KANA\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_HANGUL\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_JUNJA\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_FINAL\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_HANJA\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_KANJI\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_CONVERT\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_NONCONVERT\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_ACCEPT\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_MODECHANGE\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_SELECT\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_PRINT\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_EXECUTE\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_SNAPSHOT\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_HELP\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_APPS\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_PROCESSKEY\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_PACKET\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_DBE_SBCSCHAR\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_DBE_DBCSCHAR\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_ATTN\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_CRSEL\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_EXSEL\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_EREOF\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_PLAY\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_ZOOM\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_NONAME\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_PA1\", empty2, empty2],\n        [1, 0, empty2, 0, empty2, 0, \"VK_OEM_CLEAR\", empty2, empty2]\n      ];\n      const seenKeyCode = [];\n      const seenScanCode = [];\n      for (const mapping of mappings) {\n        const [immutable, scanCode, scanCodeStr, keyCode, keyCodeStr, eventKeyCode, vkey, usUserSettingsLabel, generalUserSettingsLabel] = mapping;\n        if (!seenScanCode[scanCode]) {\n          seenScanCode[scanCode] = true;\n          scanCodeIntToStr[scanCode] = scanCodeStr;\n          scanCodeStrToInt[scanCodeStr] = scanCode;\n          scanCodeLowerCaseStrToInt[scanCodeStr.toLowerCase()] = scanCode;\n          if (immutable) {\n            IMMUTABLE_CODE_TO_KEY_CODE[scanCode] = keyCode;\n            if (keyCode !== 0 \u0026\u0026 keyCode !== 3 \u0026\u0026 keyCode !== 5 \u0026\u0026 keyCode !== 4 \u0026\u0026 keyCode !== 6 \u0026\u0026 keyCode !== 57) {\n              IMMUTABLE_KEY_CODE_TO_CODE[keyCode] = scanCode;\n            }\n          }\n        }\n        if (!seenKeyCode[keyCode]) {\n          seenKeyCode[keyCode] = true;\n          if (!keyCodeStr) {\n            throw new Error(`String representation missing for key code ${keyCode} around scan code ${scanCodeStr}`);\n          }\n          uiMap.define(keyCode, keyCodeStr);\n          userSettingsUSMap.define(keyCode, usUserSettingsLabel || keyCodeStr);\n          userSettingsGeneralMap.define(keyCode, generalUserSettingsLabel || usUserSettingsLabel || keyCodeStr);\n        }\n        if (eventKeyCode) {\n          EVENT_KEY_CODE_MAP[eventKeyCode] = keyCode;\n        }\n        if (vkey) {\n          NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE[vkey] = keyCode;\n        }\n      }\n      IMMUTABLE_KEY_CODE_TO_CODE[\n        3\n        /* KeyCode.Enter */\n      ] = 46;\n    })();\n    (function(KeyCodeUtils2) {\n      function toString(keyCode) {\n        return uiMap.keyCodeToStr(keyCode);\n      }\n      KeyCodeUtils2.toString = toString;\n      function fromString(key) {\n        return uiMap.strToKeyCode(key);\n      }\n      KeyCodeUtils2.fromString = fromString;\n      function toUserSettingsUS(keyCode) {\n        return userSettingsUSMap.keyCodeToStr(keyCode);\n      }\n      KeyCodeUtils2.toUserSettingsUS = toUserSettingsUS;\n      function toUserSettingsGeneral(keyCode) {\n        return userSettingsGeneralMap.keyCodeToStr(keyCode);\n      }\n      KeyCodeUtils2.toUserSettingsGeneral = toUserSettingsGeneral;\n      function fromUserSettings(key) {\n        return userSettingsUSMap.strToKeyCode(key) || userSettingsGeneralMap.strToKeyCode(key);\n      }\n      KeyCodeUtils2.fromUserSettings = fromUserSettings;\n      function toElectronAccelerator(keyCode) {\n        if (keyCode \u003e= 98 \u0026\u0026 keyCode \u003c= 113) {\n          return null;\n        }\n        switch (keyCode) {\n          case 16:\n            return \"Up\";\n          case 18:\n            return \"Down\";\n          case 15:\n            return \"Left\";\n          case 17:\n            return \"Right\";\n        }\n        return uiMap.keyCodeToStr(keyCode);\n      }\n      KeyCodeUtils2.toElectronAccelerator = toElectronAccelerator;\n    })(KeyCodeUtils || (KeyCodeUtils = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/keybindings.js\nfunction decodeKeybinding(keybinding, OS2) {\n  if (typeof keybinding === \"number\") {\n    if (keybinding === 0) {\n      return null;\n    }\n    const firstChord = (keybinding \u0026 65535) \u003e\u003e\u003e 0;\n    const secondChord = (keybinding \u0026 4294901760) \u003e\u003e\u003e 16;\n    if (secondChord !== 0) {\n      return new Keybinding([\n        createSimpleKeybinding(firstChord, OS2),\n        createSimpleKeybinding(secondChord, OS2)\n      ]);\n    }\n    return new Keybinding([createSimpleKeybinding(firstChord, OS2)]);\n  } else {\n    const chords = [];\n    for (let i2 = 0; i2 \u003c keybinding.length; i2++) {\n      chords.push(createSimpleKeybinding(keybinding[i2], OS2));\n    }\n    return new Keybinding(chords);\n  }\n}\nfunction createSimpleKeybinding(keybinding, OS2) {\n  const ctrlCmd = keybinding \u0026 2048 ? true : false;\n  const winCtrl = keybinding \u0026 256 ? true : false;\n  const ctrlKey = OS2 === 2 ? winCtrl : ctrlCmd;\n  const shiftKey = keybinding \u0026 1024 ? true : false;\n  const altKey = keybinding \u0026 512 ? true : false;\n  const metaKey = OS2 === 2 ? ctrlCmd : winCtrl;\n  const keyCode = keybinding \u0026 255;\n  return new KeyCodeChord(ctrlKey, shiftKey, altKey, metaKey, keyCode);\n}\nvar KeyCodeChord, Keybinding, ResolvedChord, ResolvedKeybinding;\nvar init_keybindings = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/keybindings.js\"() {\n    init_errors();\n    KeyCodeChord = class _KeyCodeChord {\n      constructor(ctrlKey, shiftKey, altKey, metaKey, keyCode) {\n        this.ctrlKey = ctrlKey;\n        this.shiftKey = shiftKey;\n        this.altKey = altKey;\n        this.metaKey = metaKey;\n        this.keyCode = keyCode;\n      }\n      equals(other) {\n        return other instanceof _KeyCodeChord \u0026\u0026 this.ctrlKey === other.ctrlKey \u0026\u0026 this.shiftKey === other.shiftKey \u0026\u0026 this.altKey === other.altKey \u0026\u0026 this.metaKey === other.metaKey \u0026\u0026 this.keyCode === other.keyCode;\n      }\n      isModifierKey() {\n        return this.keyCode === 0 || this.keyCode === 5 || this.keyCode === 57 || this.keyCode === 6 || this.keyCode === 4;\n      }\n      /**\n       * Does this keybinding refer to the key code of a modifier and it also has the modifier flag?\n       */\n      isDuplicateModifierCase() {\n        return this.ctrlKey \u0026\u0026 this.keyCode === 5 || this.shiftKey \u0026\u0026 this.keyCode === 4 || this.altKey \u0026\u0026 this.keyCode === 6 || this.metaKey \u0026\u0026 this.keyCode === 57;\n      }\n    };\n    Keybinding = class {\n      constructor(chords) {\n        if (chords.length === 0) {\n          throw illegalArgument(`chords`);\n        }\n        this.chords = chords;\n      }\n    };\n    ResolvedChord = class {\n      constructor(ctrlKey, shiftKey, altKey, metaKey, keyLabel, keyAriaLabel) {\n        this.ctrlKey = ctrlKey;\n        this.shiftKey = shiftKey;\n        this.altKey = altKey;\n        this.metaKey = metaKey;\n        this.keyLabel = keyLabel;\n        this.keyAriaLabel = keyAriaLabel;\n      }\n    };\n    ResolvedKeybinding = class {\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/keyboardEvent.js\nfunction extractKeyCode(e) {\n  if (e.charCode) {\n    const char = String.fromCharCode(e.charCode).toUpperCase();\n    return KeyCodeUtils.fromString(char);\n  }\n  const keyCode = e.keyCode;\n  if (keyCode === 3) {\n    return 7;\n  } else if (isFirefox) {\n    switch (keyCode) {\n      case 59:\n        return 85;\n      case 60:\n        if (isLinux) {\n          return 97;\n        }\n        break;\n      case 61:\n        return 86;\n      // based on: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#numpad_keys\n      case 107:\n        return 109;\n      case 109:\n        return 111;\n      case 173:\n        return 88;\n      case 224:\n        if (isMacintosh) {\n          return 57;\n        }\n        break;\n    }\n  } else if (isWebKit) {\n    if (isMacintosh \u0026\u0026 keyCode === 93) {\n      return 57;\n    } else if (!isMacintosh \u0026\u0026 keyCode === 92) {\n      return 57;\n    }\n  }\n  return EVENT_KEY_CODE_MAP[keyCode] || 0;\n}\nvar ctrlKeyMod, altKeyMod, shiftKeyMod, metaKeyMod, StandardKeyboardEvent;\nvar init_keyboardEvent = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/keyboardEvent.js\"() {\n    init_browser();\n    init_keyCodes();\n    init_keybindings();\n    init_platform();\n    ctrlKeyMod = isMacintosh ? 256 : 2048;\n    altKeyMod = 512;\n    shiftKeyMod = 1024;\n    metaKeyMod = isMacintosh ? 2048 : 256;\n    StandardKeyboardEvent = class {\n      constructor(source) {\n        this._standardKeyboardEventBrand = true;\n        const e = source;\n        this.browserEvent = e;\n        this.target = e.target;\n        this.ctrlKey = e.ctrlKey;\n        this.shiftKey = e.shiftKey;\n        this.altKey = e.altKey;\n        this.metaKey = e.metaKey;\n        this.altGraphKey = e.getModifierState?.(\"AltGraph\");\n        this.keyCode = extractKeyCode(e);\n        this.code = e.code;\n        this.ctrlKey = this.ctrlKey || this.keyCode === 5;\n        this.altKey = this.altKey || this.keyCode === 6;\n        this.shiftKey = this.shiftKey || this.keyCode === 4;\n        this.metaKey = this.metaKey || this.keyCode === 57;\n        this._asKeybinding = this._computeKeybinding();\n        this._asKeyCodeChord = this._computeKeyCodeChord();\n      }\n      preventDefault() {\n        if (this.browserEvent \u0026\u0026 this.browserEvent.preventDefault) {\n          this.browserEvent.preventDefault();\n        }\n      }\n      stopPropagation() {\n        if (this.browserEvent \u0026\u0026 this.browserEvent.stopPropagation) {\n          this.browserEvent.stopPropagation();\n        }\n      }\n      toKeyCodeChord() {\n        return this._asKeyCodeChord;\n      }\n      equals(other) {\n        return this._asKeybinding === other;\n      }\n      _computeKeybinding() {\n        let key = 0;\n        if (this.keyCode !== 5 \u0026\u0026 this.keyCode !== 4 \u0026\u0026 this.keyCode !== 6 \u0026\u0026 this.keyCode !== 57) {\n          key = this.keyCode;\n        }\n        let result = 0;\n        if (this.ctrlKey) {\n          result |= ctrlKeyMod;\n        }\n        if (this.altKey) {\n          result |= altKeyMod;\n        }\n        if (this.shiftKey) {\n          result |= shiftKeyMod;\n        }\n        if (this.metaKey) {\n          result |= metaKeyMod;\n        }\n        result |= key;\n        return result;\n      }\n      _computeKeyCodeChord() {\n        let key = 0;\n        if (this.keyCode !== 5 \u0026\u0026 this.keyCode !== 4 \u0026\u0026 this.keyCode !== 6 \u0026\u0026 this.keyCode !== 57) {\n          key = this.keyCode;\n        }\n        return new KeyCodeChord(this.ctrlKey, this.shiftKey, this.altKey, this.metaKey, key);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/iframe.js\nfunction getParentWindowIfSameOrigin(w) {\n  if (!w.parent || w.parent === w) {\n    return null;\n  }\n  try {\n    const location2 = w.location;\n    const parentLocation = w.parent.location;\n    if (location2.origin !== \"null\" \u0026\u0026 parentLocation.origin !== \"null\" \u0026\u0026 location2.origin !== parentLocation.origin) {\n      return null;\n    }\n  } catch (e) {\n    return null;\n  }\n  return w.parent;\n}\nvar sameOriginWindowChainCache, IframeUtils;\nvar init_iframe = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/iframe.js\"() {\n    sameOriginWindowChainCache = /* @__PURE__ */ new WeakMap();\n    IframeUtils = class {\n      /**\n       * Returns a chain of embedded windows with the same origin (which can be accessed programmatically).\n       * Having a chain of length 1 might mean that the current execution environment is running outside of an iframe or inside an iframe embedded in a window with a different origin.\n       */\n      static getSameOriginWindowChain(targetWindow) {\n        let windowChainCache = sameOriginWindowChainCache.get(targetWindow);\n        if (!windowChainCache) {\n          windowChainCache = [];\n          sameOriginWindowChainCache.set(targetWindow, windowChainCache);\n          let w = targetWindow;\n          let parent;\n          do {\n            parent = getParentWindowIfSameOrigin(w);\n            if (parent) {\n              windowChainCache.push({\n                window: new WeakRef(w),\n                iframeElement: w.frameElement || null\n              });\n            } else {\n              windowChainCache.push({\n                window: new WeakRef(w),\n                iframeElement: null\n              });\n            }\n            w = parent;\n          } while (w);\n        }\n        return windowChainCache.slice(0);\n      }\n      /**\n       * Returns the position of `childWindow` relative to `ancestorWindow`\n       */\n      static getPositionOfChildWindowRelativeToAncestorWindow(childWindow, ancestorWindow) {\n        if (!ancestorWindow || childWindow === ancestorWindow) {\n          return {\n            top: 0,\n            left: 0\n          };\n        }\n        let top = 0, left = 0;\n        const windowChain = this.getSameOriginWindowChain(childWindow);\n        for (const windowChainEl of windowChain) {\n          const windowInChain = windowChainEl.window.deref();\n          top += windowInChain?.scrollY ?? 0;\n          left += windowInChain?.scrollX ?? 0;\n          if (windowInChain === ancestorWindow) {\n            break;\n          }\n          if (!windowChainEl.iframeElement) {\n            break;\n          }\n          const boundingRect = windowChainEl.iframeElement.getBoundingClientRect();\n          top += boundingRect.top;\n          left += boundingRect.left;\n        }\n        return {\n          top,\n          left\n        };\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/mouseEvent.js\nvar StandardMouseEvent, StandardWheelEvent;\nvar init_mouseEvent = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/mouseEvent.js\"() {\n    init_browser();\n    init_iframe();\n    init_platform();\n    StandardMouseEvent = class {\n      constructor(targetWindow, e) {\n        this.timestamp = Date.now();\n        this.browserEvent = e;\n        this.leftButton = e.button === 0;\n        this.middleButton = e.button === 1;\n        this.rightButton = e.button === 2;\n        this.buttons = e.buttons;\n        this.defaultPrevented = e.defaultPrevented;\n        this.target = e.target;\n        this.detail = e.detail || 1;\n        if (e.type === \"dblclick\") {\n          this.detail = 2;\n        }\n        this.ctrlKey = e.ctrlKey;\n        this.shiftKey = e.shiftKey;\n        this.altKey = e.altKey;\n        this.metaKey = e.metaKey;\n        if (typeof e.pageX === \"number\") {\n          this.posx = e.pageX;\n          this.posy = e.pageY;\n        } else {\n          this.posx = e.clientX + this.target.ownerDocument.body.scrollLeft + this.target.ownerDocument.documentElement.scrollLeft;\n          this.posy = e.clientY + this.target.ownerDocument.body.scrollTop + this.target.ownerDocument.documentElement.scrollTop;\n        }\n        const iframeOffsets = IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(targetWindow, e.view);\n        this.posx -= iframeOffsets.left;\n        this.posy -= iframeOffsets.top;\n      }\n      preventDefault() {\n        this.browserEvent.preventDefault();\n      }\n      stopPropagation() {\n        this.browserEvent.stopPropagation();\n      }\n    };\n    StandardWheelEvent = class {\n      constructor(e, deltaX = 0, deltaY = 0) {\n        this.browserEvent = e || null;\n        this.target = e ? e.target || e.targetNode || e.srcElement : null;\n        this.deltaY = deltaY;\n        this.deltaX = deltaX;\n        let shouldFactorDPR = false;\n        if (isChrome) {\n          const chromeVersionMatch = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n          const chromeMajorVersion = chromeVersionMatch ? parseInt(chromeVersionMatch[1]) : 123;\n          shouldFactorDPR = chromeMajorVersion \u003c= 122;\n        }\n        if (e) {\n          const e1 = e;\n          const e2 = e;\n          const devicePixelRatio = e.view?.devicePixelRatio || 1;\n          if (typeof e1.wheelDeltaY !== \"undefined\") {\n            if (shouldFactorDPR) {\n              this.deltaY = e1.wheelDeltaY / (120 * devicePixelRatio);\n            } else {\n              this.deltaY = e1.wheelDeltaY / 120;\n            }\n          } else if (typeof e2.VERTICAL_AXIS !== \"undefined\" \u0026\u0026 e2.axis === e2.VERTICAL_AXIS) {\n            this.deltaY = -e2.detail / 3;\n          } else if (e.type === \"wheel\") {\n            const ev = e;\n            if (ev.deltaMode === ev.DOM_DELTA_LINE) {\n              if (isFirefox \u0026\u0026 !isMacintosh) {\n                this.deltaY = -e.deltaY / 3;\n              } else {\n                this.deltaY = -e.deltaY;\n              }\n            } else {\n              this.deltaY = -e.deltaY / 40;\n            }\n          }\n          if (typeof e1.wheelDeltaX !== \"undefined\") {\n            if (isSafari \u0026\u0026 isWindows) {\n              this.deltaX = -(e1.wheelDeltaX / 120);\n            } else if (shouldFactorDPR) {\n              this.deltaX = e1.wheelDeltaX / (120 * devicePixelRatio);\n            } else {\n              this.deltaX = e1.wheelDeltaX / 120;\n            }\n          } else if (typeof e2.HORIZONTAL_AXIS !== \"undefined\" \u0026\u0026 e2.axis === e2.HORIZONTAL_AXIS) {\n            this.deltaX = -e.detail / 3;\n          } else if (e.type === \"wheel\") {\n            const ev = e;\n            if (ev.deltaMode === ev.DOM_DELTA_LINE) {\n              if (isFirefox \u0026\u0026 !isMacintosh) {\n                this.deltaX = -e.deltaX / 3;\n              } else {\n                this.deltaX = -e.deltaX;\n              }\n            } else {\n              this.deltaX = -e.deltaX / 40;\n            }\n          }\n          if (this.deltaY === 0 \u0026\u0026 this.deltaX === 0 \u0026\u0026 e.wheelDelta) {\n            if (shouldFactorDPR) {\n              this.deltaY = e.wheelDelta / (120 * devicePixelRatio);\n            } else {\n              this.deltaY = e.wheelDelta / 120;\n            }\n          }\n        }\n      }\n      preventDefault() {\n        this.browserEvent?.preventDefault();\n      }\n      stopPropagation() {\n        this.browserEvent?.stopPropagation();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/functional.js\nfunction createSingleCallFunction(fn, fnDidRunCallback) {\n  const _this = this;\n  let didCall = false;\n  let result;\n  return function() {\n    if (didCall) {\n      return result;\n    }\n    didCall = true;\n    if (fnDidRunCallback) {\n      try {\n        result = fn.apply(_this, arguments);\n      } finally {\n        fnDidRunCallback();\n      }\n    } else {\n      result = fn.apply(_this, arguments);\n    }\n    return result;\n  };\n}\nvar init_functional = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/functional.js\"() {\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/iterator.js\nvar Iterable;\nvar init_iterator = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/iterator.js\"() {\n    init_types();\n    (function(Iterable2) {\n      function is(thing) {\n        return !!thing \u0026\u0026 typeof thing === \"object\" \u0026\u0026 typeof thing[Symbol.iterator] === \"function\";\n      }\n      Iterable2.is = is;\n      const _empty2 = Object.freeze([]);\n      function empty2() {\n        return _empty2;\n      }\n      Iterable2.empty = empty2;\n      function* single(element) {\n        yield element;\n      }\n      Iterable2.single = single;\n      function wrap(iterableOrElement) {\n        if (is(iterableOrElement)) {\n          return iterableOrElement;\n        } else {\n          return single(iterableOrElement);\n        }\n      }\n      Iterable2.wrap = wrap;\n      function from(iterable) {\n        return iterable || _empty2;\n      }\n      Iterable2.from = from;\n      function* reverse(array2) {\n        for (let i2 = array2.length - 1; i2 \u003e= 0; i2--) {\n          yield array2[i2];\n        }\n      }\n      Iterable2.reverse = reverse;\n      function isEmpty(iterable) {\n        return !iterable || iterable[Symbol.iterator]().next().done === true;\n      }\n      Iterable2.isEmpty = isEmpty;\n      function first2(iterable) {\n        return iterable[Symbol.iterator]().next().value;\n      }\n      Iterable2.first = first2;\n      function some(iterable, predicate) {\n        let i2 = 0;\n        for (const element of iterable) {\n          if (predicate(element, i2++)) {\n            return true;\n          }\n        }\n        return false;\n      }\n      Iterable2.some = some;\n      function every(iterable, predicate) {\n        let i2 = 0;\n        for (const element of iterable) {\n          if (!predicate(element, i2++)) {\n            return false;\n          }\n        }\n        return true;\n      }\n      Iterable2.every = every;\n      function find(iterable, predicate) {\n        for (const element of iterable) {\n          if (predicate(element)) {\n            return element;\n          }\n        }\n        return void 0;\n      }\n      Iterable2.find = find;\n      function* filter(iterable, predicate) {\n        for (const element of iterable) {\n          if (predicate(element)) {\n            yield element;\n          }\n        }\n      }\n      Iterable2.filter = filter;\n      function* map(iterable, fn) {\n        let index = 0;\n        for (const element of iterable) {\n          yield fn(element, index++);\n        }\n      }\n      Iterable2.map = map;\n      function* flatMap(iterable, fn) {\n        let index = 0;\n        for (const element of iterable) {\n          yield* fn(element, index++);\n        }\n      }\n      Iterable2.flatMap = flatMap;\n      function* concat4(...iterables) {\n        for (const item of iterables) {\n          if (isIterable(item)) {\n            yield* item;\n          } else {\n            yield item;\n          }\n        }\n      }\n      Iterable2.concat = concat4;\n      function reduce(iterable, reducer, initialValue) {\n        let value = initialValue;\n        for (const element of iterable) {\n          value = reducer(value, element);\n        }\n        return value;\n      }\n      Iterable2.reduce = reduce;\n      function length(iterable) {\n        let count = 0;\n        for (const _ of iterable) {\n          count++;\n        }\n        return count;\n      }\n      Iterable2.length = length;\n      function* slice(arr, from2, to = arr.length) {\n        if (from2 \u003c -arr.length) {\n          from2 = 0;\n        }\n        if (from2 \u003c 0) {\n          from2 += arr.length;\n        }\n        if (to \u003c 0) {\n          to += arr.length;\n        } else if (to \u003e arr.length) {\n          to = arr.length;\n        }\n        for (; from2 \u003c to; from2++) {\n          yield arr[from2];\n        }\n      }\n      Iterable2.slice = slice;\n      function consume(iterable, atMost = Number.POSITIVE_INFINITY) {\n        const consumed = [];\n        if (atMost === 0) {\n          return [consumed, iterable];\n        }\n        const iterator = iterable[Symbol.iterator]();\n        for (let i2 = 0; i2 \u003c atMost; i2++) {\n          const next = iterator.next();\n          if (next.done) {\n            return [consumed, Iterable2.empty()];\n          }\n          consumed.push(next.value);\n        }\n        return [consumed, { [Symbol.iterator]() {\n          return iterator;\n        } }];\n      }\n      Iterable2.consume = consume;\n      async function asyncToArray(iterable) {\n        const result = [];\n        for await (const item of iterable) {\n          result.push(item);\n        }\n        return result;\n      }\n      Iterable2.asyncToArray = asyncToArray;\n      async function asyncToArrayFlat(iterable) {\n        let result = [];\n        for await (const item of iterable) {\n          result = result.concat(item);\n        }\n        return result;\n      }\n      Iterable2.asyncToArrayFlat = asyncToArrayFlat;\n    })(Iterable || (Iterable = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/lifecycle.js\nfunction setDisposableTracker(tracker) {\n  disposableTracker = tracker;\n}\nfunction trackDisposable(x) {\n  disposableTracker?.trackDisposable(x);\n  return x;\n}\nfunction markAsDisposed(disposable) {\n  disposableTracker?.markAsDisposed(disposable);\n}\nfunction setParentOfDisposable(child, parent) {\n  disposableTracker?.setParent(child, parent);\n}\nfunction setParentOfDisposables(children, parent) {\n  if (!disposableTracker) {\n    return;\n  }\n  for (const child of children) {\n    disposableTracker.setParent(child, parent);\n  }\n}\nfunction markAsSingleton(singleton) {\n  disposableTracker?.markAsSingleton(singleton);\n  return singleton;\n}\nfunction isDisposable(thing) {\n  return typeof thing === \"object\" \u0026\u0026 thing !== null \u0026\u0026 typeof thing.dispose === \"function\" \u0026\u0026 thing.dispose.length === 0;\n}\nfunction dispose(arg) {\n  if (Iterable.is(arg)) {\n    const errors = [];\n    for (const d of arg) {\n      if (d) {\n        try {\n          d.dispose();\n        } catch (e) {\n          errors.push(e);\n        }\n      }\n    }\n    if (errors.length === 1) {\n      throw errors[0];\n    } else if (errors.length \u003e 1) {\n      throw new AggregateError(errors, \"Encountered errors while disposing of store\");\n    }\n    return Array.isArray(arg) ? [] : arg;\n  } else if (arg) {\n    arg.dispose();\n    return arg;\n  }\n}\nfunction combinedDisposable(...disposables) {\n  const parent = toDisposable(() =\u003e dispose(disposables));\n  setParentOfDisposables(disposables, parent);\n  return parent;\n}\nfunction toDisposable(fn) {\n  const self2 = trackDisposable({\n    dispose: createSingleCallFunction(() =\u003e {\n      markAsDisposed(self2);\n      fn();\n    })\n  });\n  return self2;\n}\nvar TRACK_DISPOSABLES, disposableTracker, DisposableStore, Disposable, MutableDisposable, RefCountedDisposable, ImmortalReference, DisposableMap;\nvar init_lifecycle = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/lifecycle.js\"() {\n    init_functional();\n    init_iterator();\n    TRACK_DISPOSABLES = false;\n    disposableTracker = null;\n    if (TRACK_DISPOSABLES) {\n      const __is_disposable_tracked__ = \"__is_disposable_tracked__\";\n      setDisposableTracker(new class {\n        trackDisposable(x) {\n          const stack = new Error(\"Potentially leaked disposable\").stack;\n          setTimeout(() =\u003e {\n            if (!x[__is_disposable_tracked__]) {\n              console.log(stack);\n            }\n          }, 3e3);\n        }\n        setParent(child, parent) {\n          if (child \u0026\u0026 child !== Disposable.None) {\n            try {\n              child[__is_disposable_tracked__] = true;\n            } catch {\n            }\n          }\n        }\n        markAsDisposed(disposable) {\n          if (disposable \u0026\u0026 disposable !== Disposable.None) {\n            try {\n              disposable[__is_disposable_tracked__] = true;\n            } catch {\n            }\n          }\n        }\n        markAsSingleton(disposable) {\n        }\n      }());\n    }\n    DisposableStore = class _DisposableStore {\n      static {\n        this.DISABLE_DISPOSED_WARNING = false;\n      }\n      constructor() {\n        this._toDispose = /* @__PURE__ */ new Set();\n        this._isDisposed = false;\n        trackDisposable(this);\n      }\n      /**\n       * Dispose of all registered disposables and mark this object as disposed.\n       *\n       * Any future disposables added to this object will be disposed of on `add`.\n       */\n      dispose() {\n        if (this._isDisposed) {\n          return;\n        }\n        markAsDisposed(this);\n        this._isDisposed = true;\n        this.clear();\n      }\n      /**\n       * @return `true` if this object has been disposed of.\n       */\n      get isDisposed() {\n        return this._isDisposed;\n      }\n      /**\n       * Dispose of all registered disposables but do not mark this object as disposed.\n       */\n      clear() {\n        if (this._toDispose.size === 0) {\n          return;\n        }\n        try {\n          dispose(this._toDispose);\n        } finally {\n          this._toDispose.clear();\n        }\n      }\n      /**\n       * Add a new {@link IDisposable disposable} to the collection.\n       */\n      add(o) {\n        if (!o || o === Disposable.None) {\n          return o;\n        }\n        if (o === this) {\n          throw new Error(\"Cannot register a disposable on itself!\");\n        }\n        setParentOfDisposable(o, this);\n        if (this._isDisposed) {\n          if (!_DisposableStore.DISABLE_DISPOSED_WARNING) {\n            console.warn(new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\").stack);\n          }\n        } else {\n          this._toDispose.add(o);\n        }\n        return o;\n      }\n      /**\n       * Deletes a disposable from store and disposes of it. This will not throw or warn and proceed to dispose the\n       * disposable even when the disposable is not part in the store.\n       */\n      delete(o) {\n        if (!o) {\n          return;\n        }\n        if (o === this) {\n          throw new Error(\"Cannot dispose a disposable on itself!\");\n        }\n        this._toDispose.delete(o);\n        o.dispose();\n      }\n    };\n    Disposable = class {\n      static {\n        this.None = Object.freeze({ dispose() {\n        } });\n      }\n      constructor() {\n        this._store = new DisposableStore();\n        trackDisposable(this);\n        setParentOfDisposable(this._store, this);\n      }\n      dispose() {\n        markAsDisposed(this);\n        this._store.dispose();\n      }\n      /**\n       * Adds `o` to the collection of disposables managed by this object.\n       */\n      _register(o) {\n        if (o === this) {\n          throw new Error(\"Cannot register a disposable on itself!\");\n        }\n        return this._store.add(o);\n      }\n    };\n    MutableDisposable = class {\n      constructor() {\n        this._isDisposed = false;\n        trackDisposable(this);\n      }\n      get value() {\n        return this._isDisposed ? void 0 : this._value;\n      }\n      set value(value) {\n        if (this._isDisposed || value === this._value) {\n          return;\n        }\n        this._value?.dispose();\n        if (value) {\n          setParentOfDisposable(value, this);\n        }\n        this._value = value;\n      }\n      /**\n       * Resets the stored value and disposed of the previously stored value.\n       */\n      clear() {\n        this.value = void 0;\n      }\n      dispose() {\n        this._isDisposed = true;\n        markAsDisposed(this);\n        this._value?.dispose();\n        this._value = void 0;\n      }\n    };\n    RefCountedDisposable = class {\n      constructor(_disposable) {\n        this._disposable = _disposable;\n        this._counter = 1;\n      }\n      acquire() {\n        this._counter++;\n        return this;\n      }\n      release() {\n        if (--this._counter === 0) {\n          this._disposable.dispose();\n        }\n        return this;\n      }\n    };\n    ImmortalReference = class {\n      constructor(object) {\n        this.object = object;\n      }\n      dispose() {\n      }\n    };\n    DisposableMap = class {\n      constructor() {\n        this._store = /* @__PURE__ */ new Map();\n        this._isDisposed = false;\n        trackDisposable(this);\n      }\n      /**\n       * Disposes of all stored values and mark this object as disposed.\n       *\n       * Trying to use this object after it has been disposed of is an error.\n       */\n      dispose() {\n        markAsDisposed(this);\n        this._isDisposed = true;\n        this.clearAndDisposeAll();\n      }\n      /**\n       * Disposes of all stored values and clear the map, but DO NOT mark this object as disposed.\n       */\n      clearAndDisposeAll() {\n        if (!this._store.size) {\n          return;\n        }\n        try {\n          dispose(this._store.values());\n        } finally {\n          this._store.clear();\n        }\n      }\n      get(key) {\n        return this._store.get(key);\n      }\n      set(key, value, skipDisposeOnOverwrite = false) {\n        if (this._isDisposed) {\n          console.warn(new Error(\"Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!\").stack);\n        }\n        if (!skipDisposeOnOverwrite) {\n          this._store.get(key)?.dispose();\n        }\n        this._store.set(key, value);\n        setParentOfDisposable(value, this);\n      }\n      /**\n       * Delete the value stored for `key` from this map and also dispose of it.\n       */\n      deleteAndDispose(key) {\n        this._store.get(key)?.dispose();\n        this._store.delete(key);\n      }\n      values() {\n        return this._store.values();\n      }\n      [Symbol.iterator]() {\n        return this._store[Symbol.iterator]();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/linkedList.js\nvar Node2, LinkedList;\nvar init_linkedList = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/linkedList.js\"() {\n    Node2 = class _Node {\n      static {\n        this.Undefined = new _Node(void 0);\n      }\n      constructor(element) {\n        this.element = element;\n        this.next = _Node.Undefined;\n        this.prev = _Node.Undefined;\n      }\n    };\n    LinkedList = class {\n      constructor() {\n        this._first = Node2.Undefined;\n        this._last = Node2.Undefined;\n        this._size = 0;\n      }\n      get size() {\n        return this._size;\n      }\n      isEmpty() {\n        return this._first === Node2.Undefined;\n      }\n      clear() {\n        let node = this._first;\n        while (node !== Node2.Undefined) {\n          const next = node.next;\n          node.prev = Node2.Undefined;\n          node.next = Node2.Undefined;\n          node = next;\n        }\n        this._first = Node2.Undefined;\n        this._last = Node2.Undefined;\n        this._size = 0;\n      }\n      unshift(element) {\n        return this._insert(element, false);\n      }\n      push(element) {\n        return this._insert(element, true);\n      }\n      _insert(element, atTheEnd) {\n        const newNode = new Node2(element);\n        if (this._first === Node2.Undefined) {\n          this._first = newNode;\n          this._last = newNode;\n        } else if (atTheEnd) {\n          const oldLast = this._last;\n          this._last = newNode;\n          newNode.prev = oldLast;\n          oldLast.next = newNode;\n        } else {\n          const oldFirst = this._first;\n          this._first = newNode;\n          newNode.next = oldFirst;\n          oldFirst.prev = newNode;\n        }\n        this._size += 1;\n        let didRemove = false;\n        return () =\u003e {\n          if (!didRemove) {\n            didRemove = true;\n            this._remove(newNode);\n          }\n        };\n      }\n      shift() {\n        if (this._first === Node2.Undefined) {\n          return void 0;\n        } else {\n          const res = this._first.element;\n          this._remove(this._first);\n          return res;\n        }\n      }\n      pop() {\n        if (this._last === Node2.Undefined) {\n          return void 0;\n        } else {\n          const res = this._last.element;\n          this._remove(this._last);\n          return res;\n        }\n      }\n      _remove(node) {\n        if (node.prev !== Node2.Undefined \u0026\u0026 node.next !== Node2.Undefined) {\n          const anchor = node.prev;\n          anchor.next = node.next;\n          node.next.prev = anchor;\n        } else if (node.prev === Node2.Undefined \u0026\u0026 node.next === Node2.Undefined) {\n          this._first = Node2.Undefined;\n          this._last = Node2.Undefined;\n        } else if (node.next === Node2.Undefined) {\n          this._last = this._last.prev;\n          this._last.next = Node2.Undefined;\n        } else if (node.prev === Node2.Undefined) {\n          this._first = this._first.next;\n          this._first.prev = Node2.Undefined;\n        }\n        this._size -= 1;\n      }\n      *[Symbol.iterator]() {\n        let node = this._first;\n        while (node !== Node2.Undefined) {\n          yield node.element;\n          node = node.next;\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/stopwatch.js\nvar performanceNow, StopWatch;\nvar init_stopwatch = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/stopwatch.js\"() {\n    performanceNow = globalThis.performance.now.bind(globalThis.performance);\n    StopWatch = class _StopWatch {\n      static create(highResolution) {\n        return new _StopWatch(highResolution);\n      }\n      constructor(highResolution) {\n        this._now = highResolution === false ? Date.now : performanceNow;\n        this._startTime = this._now();\n        this._stopTime = -1;\n      }\n      stop() {\n        this._stopTime = this._now();\n      }\n      reset() {\n        this._startTime = this._now();\n        this._stopTime = -1;\n      }\n      elapsed() {\n        if (this._stopTime !== -1) {\n          return this._stopTime - this._startTime;\n        }\n        return this._now() - this._startTime;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/event.js\nvar _enableDisposeWithListenerWarning, _enableSnapshotPotentialLeakWarning, Event, EventProfiling, _globalLeakWarningThreshold, LeakageMonitor, Stacktrace, ListenerLeakError, ListenerRefusalError, UniqueContainer, compactionThreshold, forEachListener, Emitter, createEventDeliveryQueue, EventDeliveryQueuePrivate, PauseableEmitter, DebounceEmitter, MicrotaskEmitter, EventMultiplexer, EventBufferer, Relay;\nvar init_event = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/event.js\"() {\n    init_errors();\n    init_functional();\n    init_lifecycle();\n    init_linkedList();\n    init_stopwatch();\n    _enableDisposeWithListenerWarning = false;\n    _enableSnapshotPotentialLeakWarning = false;\n    (function(Event2) {\n      Event2.None = () =\u003e Disposable.None;\n      function _addLeakageTraceLogic(options2) {\n        if (_enableSnapshotPotentialLeakWarning) {\n          const { onDidAddListener: origListenerDidAdd } = options2;\n          const stack = Stacktrace.create();\n          let count = 0;\n          options2.onDidAddListener = () =\u003e {\n            if (++count === 2) {\n              console.warn(\"snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here\");\n              stack.print();\n            }\n            origListenerDidAdd?.();\n          };\n        }\n      }\n      function defer(event, disposable) {\n        return debounce(event, () =\u003e void 0, 0, void 0, true, void 0, disposable);\n      }\n      Event2.defer = defer;\n      function once(event) {\n        return (listener, thisArgs = null, disposables) =\u003e {\n          let didFire = false;\n          let result = void 0;\n          result = event((e) =\u003e {\n            if (didFire) {\n              return;\n            } else if (result) {\n              result.dispose();\n            } else {\n              didFire = true;\n            }\n            return listener.call(thisArgs, e);\n          }, null, disposables);\n          if (didFire) {\n            result.dispose();\n          }\n          return result;\n        };\n      }\n      Event2.once = once;\n      function onceIf(event, condition) {\n        return Event2.once(Event2.filter(event, condition));\n      }\n      Event2.onceIf = onceIf;\n      function map(event, map2, disposable) {\n        return snapshot((listener, thisArgs = null, disposables) =\u003e event((i2) =\u003e listener.call(thisArgs, map2(i2)), null, disposables), disposable);\n      }\n      Event2.map = map;\n      function forEach(event, each, disposable) {\n        return snapshot((listener, thisArgs = null, disposables) =\u003e event((i2) =\u003e {\n          each(i2);\n          listener.call(thisArgs, i2);\n        }, null, disposables), disposable);\n      }\n      Event2.forEach = forEach;\n      function filter(event, filter2, disposable) {\n        return snapshot((listener, thisArgs = null, disposables) =\u003e event((e) =\u003e filter2(e) \u0026\u0026 listener.call(thisArgs, e), null, disposables), disposable);\n      }\n      Event2.filter = filter;\n      function signal(event) {\n        return event;\n      }\n      Event2.signal = signal;\n      function any(...events) {\n        return (listener, thisArgs = null, disposables) =\u003e {\n          const disposable = combinedDisposable(...events.map((event) =\u003e event((e) =\u003e listener.call(thisArgs, e))));\n          return addAndReturnDisposable(disposable, disposables);\n        };\n      }\n      Event2.any = any;\n      function reduce(event, merge, initial, disposable) {\n        let output = initial;\n        return map(event, (e) =\u003e {\n          output = merge(output, e);\n          return output;\n        }, disposable);\n      }\n      Event2.reduce = reduce;\n      function snapshot(event, disposable) {\n        let listener;\n        const options2 = {\n          onWillAddFirstListener() {\n            listener = event(emitter.fire, emitter);\n          },\n          onDidRemoveLastListener() {\n            listener?.dispose();\n          }\n        };\n        if (!disposable) {\n          _addLeakageTraceLogic(options2);\n        }\n        const emitter = new Emitter(options2);\n        disposable?.add(emitter);\n        return emitter.event;\n      }\n      function addAndReturnDisposable(d, store) {\n        if (store instanceof Array) {\n          store.push(d);\n        } else if (store) {\n          store.add(d);\n        }\n        return d;\n      }\n      function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) {\n        let subscription;\n        let output = void 0;\n        let handle = void 0;\n        let numDebouncedCalls = 0;\n        let doFire;\n        const options2 = {\n          leakWarningThreshold,\n          onWillAddFirstListener() {\n            subscription = event((cur) =\u003e {\n              numDebouncedCalls++;\n              output = merge(output, cur);\n              if (leading \u0026\u0026 !handle) {\n                emitter.fire(output);\n                output = void 0;\n              }\n              doFire = () =\u003e {\n                const _output = output;\n                output = void 0;\n                handle = void 0;\n                if (!leading || numDebouncedCalls \u003e 1) {\n                  emitter.fire(_output);\n                }\n                numDebouncedCalls = 0;\n              };\n              if (typeof delay === \"number\") {\n                if (handle) {\n                  clearTimeout(handle);\n                }\n                handle = setTimeout(doFire, delay);\n              } else {\n                if (handle === void 0) {\n                  handle = null;\n                  queueMicrotask(doFire);\n                }\n              }\n            });\n          },\n          onWillRemoveListener() {\n            if (flushOnListenerRemove \u0026\u0026 numDebouncedCalls \u003e 0) {\n              doFire?.();\n            }\n          },\n          onDidRemoveLastListener() {\n            doFire = void 0;\n            subscription.dispose();\n          }\n        };\n        if (!disposable) {\n          _addLeakageTraceLogic(options2);\n        }\n        const emitter = new Emitter(options2);\n        disposable?.add(emitter);\n        return emitter.event;\n      }\n      Event2.debounce = debounce;\n      function accumulate(event, delay = 0, disposable) {\n        return Event2.debounce(event, (last, e) =\u003e {\n          if (!last) {\n            return [e];\n          }\n          last.push(e);\n          return last;\n        }, delay, void 0, true, void 0, disposable);\n      }\n      Event2.accumulate = accumulate;\n      function latch(event, equals3 = (a, b) =\u003e a === b, disposable) {\n        let firstCall = true;\n        let cache;\n        return filter(event, (value) =\u003e {\n          const shouldEmit = firstCall || !equals3(value, cache);\n          firstCall = false;\n          cache = value;\n          return shouldEmit;\n        }, disposable);\n      }\n      Event2.latch = latch;\n      function split(event, isT, disposable) {\n        return [\n          Event2.filter(event, isT, disposable),\n          Event2.filter(event, (e) =\u003e !isT(e), disposable)\n        ];\n      }\n      Event2.split = split;\n      function buffer(event, flushAfterTimeout = false, _buffer = [], disposable) {\n        let buffer2 = _buffer.slice();\n        let listener = event((e) =\u003e {\n          if (buffer2) {\n            buffer2.push(e);\n          } else {\n            emitter.fire(e);\n          }\n        });\n        if (disposable) {\n          disposable.add(listener);\n        }\n        const flush = () =\u003e {\n          buffer2?.forEach((e) =\u003e emitter.fire(e));\n          buffer2 = null;\n        };\n        const emitter = new Emitter({\n          onWillAddFirstListener() {\n            if (!listener) {\n              listener = event((e) =\u003e emitter.fire(e));\n              if (disposable) {\n                disposable.add(listener);\n              }\n            }\n          },\n          onDidAddFirstListener() {\n            if (buffer2) {\n              if (flushAfterTimeout) {\n                setTimeout(flush);\n              } else {\n                flush();\n              }\n            }\n          },\n          onDidRemoveLastListener() {\n            if (listener) {\n              listener.dispose();\n            }\n            listener = null;\n          }\n        });\n        if (disposable) {\n          disposable.add(emitter);\n        }\n        return emitter.event;\n      }\n      Event2.buffer = buffer;\n      function chain(event, sythensize) {\n        const fn = (listener, thisArgs, disposables) =\u003e {\n          const cs = sythensize(new ChainableSynthesis());\n          return event(function(value) {\n            const result = cs.evaluate(value);\n            if (result !== HaltChainable) {\n              listener.call(thisArgs, result);\n            }\n          }, void 0, disposables);\n        };\n        return fn;\n      }\n      Event2.chain = chain;\n      const HaltChainable = Symbol(\"HaltChainable\");\n      class ChainableSynthesis {\n        constructor() {\n          this.steps = [];\n        }\n        map(fn) {\n          this.steps.push(fn);\n          return this;\n        }\n        forEach(fn) {\n          this.steps.push((v) =\u003e {\n            fn(v);\n            return v;\n          });\n          return this;\n        }\n        filter(fn) {\n          this.steps.push((v) =\u003e fn(v) ? v : HaltChainable);\n          return this;\n        }\n        reduce(merge, initial) {\n          let last = initial;\n          this.steps.push((v) =\u003e {\n            last = merge(last, v);\n            return last;\n          });\n          return this;\n        }\n        latch(equals3 = (a, b) =\u003e a === b) {\n          let firstCall = true;\n          let cache;\n          this.steps.push((value) =\u003e {\n            const shouldEmit = firstCall || !equals3(value, cache);\n            firstCall = false;\n            cache = value;\n            return shouldEmit ? value : HaltChainable;\n          });\n          return this;\n        }\n        evaluate(value) {\n          for (const step of this.steps) {\n            value = step(value);\n            if (value === HaltChainable) {\n              break;\n            }\n          }\n          return value;\n        }\n      }\n      function fromNodeEventEmitter(emitter, eventName, map2 = (id) =\u003e id) {\n        const fn = (...args) =\u003e result.fire(map2(...args));\n        const onFirstListenerAdd = () =\u003e emitter.on(eventName, fn);\n        const onLastListenerRemove = () =\u003e emitter.removeListener(eventName, fn);\n        const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove });\n        return result.event;\n      }\n      Event2.fromNodeEventEmitter = fromNodeEventEmitter;\n      function fromDOMEventEmitter(emitter, eventName, map2 = (id) =\u003e id) {\n        const fn = (...args) =\u003e result.fire(map2(...args));\n        const onFirstListenerAdd = () =\u003e emitter.addEventListener(eventName, fn);\n        const onLastListenerRemove = () =\u003e emitter.removeEventListener(eventName, fn);\n        const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove });\n        return result.event;\n      }\n      Event2.fromDOMEventEmitter = fromDOMEventEmitter;\n      function toPromise(event, disposables) {\n        let cancelRef;\n        const promise = new Promise((resolve3, reject) =\u003e {\n          const listener = once(event)(resolve3, null, disposables);\n          cancelRef = () =\u003e listener.dispose();\n        });\n        promise.cancel = cancelRef;\n        return promise;\n      }\n      Event2.toPromise = toPromise;\n      function forward(from, to) {\n        return from((e) =\u003e to.fire(e));\n      }\n      Event2.forward = forward;\n      function runAndSubscribe(event, handler, initial) {\n        handler(initial);\n        return event((e) =\u003e handler(e));\n      }\n      Event2.runAndSubscribe = runAndSubscribe;\n      class EmitterObserver {\n        constructor(_observable, store) {\n          this._observable = _observable;\n          this._counter = 0;\n          this._hasChanged = false;\n          const options2 = {\n            onWillAddFirstListener: () =\u003e {\n              _observable.addObserver(this);\n              this._observable.reportChanges();\n            },\n            onDidRemoveLastListener: () =\u003e {\n              _observable.removeObserver(this);\n            }\n          };\n          if (!store) {\n            _addLeakageTraceLogic(options2);\n          }\n          this.emitter = new Emitter(options2);\n          if (store) {\n            store.add(this.emitter);\n          }\n        }\n        beginUpdate(_observable) {\n          this._counter++;\n        }\n        handlePossibleChange(_observable) {\n        }\n        handleChange(_observable, _change) {\n          this._hasChanged = true;\n        }\n        endUpdate(_observable) {\n          this._counter--;\n          if (this._counter === 0) {\n            this._observable.reportChanges();\n            if (this._hasChanged) {\n              this._hasChanged = false;\n              this.emitter.fire(this._observable.get());\n            }\n          }\n        }\n      }\n      function fromObservable(obs, store) {\n        const observer = new EmitterObserver(obs, store);\n        return observer.emitter.event;\n      }\n      Event2.fromObservable = fromObservable;\n      function fromObservableLight(observable) {\n        return (listener, thisArgs, disposables) =\u003e {\n          let count = 0;\n          let didChange = false;\n          const observer = {\n            beginUpdate() {\n              count++;\n            },\n            endUpdate() {\n              count--;\n              if (count === 0) {\n                observable.reportChanges();\n                if (didChange) {\n                  didChange = false;\n                  listener.call(thisArgs);\n                }\n              }\n            },\n            handlePossibleChange() {\n            },\n            handleChange() {\n              didChange = true;\n            }\n          };\n          observable.addObserver(observer);\n          observable.reportChanges();\n          const disposable = {\n            dispose() {\n              observable.removeObserver(observer);\n            }\n          };\n          if (disposables instanceof DisposableStore) {\n            disposables.add(disposable);\n          } else if (Array.isArray(disposables)) {\n            disposables.push(disposable);\n          }\n          return disposable;\n        };\n      }\n      Event2.fromObservableLight = fromObservableLight;\n    })(Event || (Event = {}));\n    EventProfiling = class _EventProfiling {\n      static {\n        this.all = /* @__PURE__ */ new Set();\n      }\n      static {\n        this._idPool = 0;\n      }\n      constructor(name) {\n        this.listenerCount = 0;\n        this.invocationCount = 0;\n        this.elapsedOverall = 0;\n        this.durations = [];\n        this.name = `${name}_${_EventProfiling._idPool++}`;\n        _EventProfiling.all.add(this);\n      }\n      start(listenerCount) {\n        this._stopWatch = new StopWatch();\n        this.listenerCount = listenerCount;\n      }\n      stop() {\n        if (this._stopWatch) {\n          const elapsed = this._stopWatch.elapsed();\n          this.durations.push(elapsed);\n          this.elapsedOverall += elapsed;\n          this.invocationCount += 1;\n          this._stopWatch = void 0;\n        }\n      }\n    };\n    _globalLeakWarningThreshold = -1;\n    LeakageMonitor = class _LeakageMonitor {\n      static {\n        this._idPool = 1;\n      }\n      constructor(_errorHandler, threshold, name = (_LeakageMonitor._idPool++).toString(16).padStart(3, \"0\")) {\n        this._errorHandler = _errorHandler;\n        this.threshold = threshold;\n        this.name = name;\n        this._warnCountdown = 0;\n      }\n      dispose() {\n        this._stacks?.clear();\n      }\n      check(stack, listenerCount) {\n        const threshold = this.threshold;\n        if (threshold \u003c= 0 || listenerCount \u003c threshold) {\n          return void 0;\n        }\n        if (!this._stacks) {\n          this._stacks = /* @__PURE__ */ new Map();\n        }\n        const count = this._stacks.get(stack.value) || 0;\n        this._stacks.set(stack.value, count + 1);\n        this._warnCountdown -= 1;\n        if (this._warnCountdown \u003c= 0) {\n          this._warnCountdown = threshold * 0.5;\n          const [topStack, topCount] = this.getMostFrequentStack();\n          const message = `[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`;\n          console.warn(message);\n          console.warn(topStack);\n          const error = new ListenerLeakError(message, topStack);\n          this._errorHandler(error);\n        }\n        return () =\u003e {\n          const count2 = this._stacks.get(stack.value) || 0;\n          this._stacks.set(stack.value, count2 - 1);\n        };\n      }\n      getMostFrequentStack() {\n        if (!this._stacks) {\n          return void 0;\n        }\n        let topStack;\n        let topCount = 0;\n        for (const [stack, count] of this._stacks) {\n          if (!topStack || topCount \u003c count) {\n            topStack = [stack, count];\n            topCount = count;\n          }\n        }\n        return topStack;\n      }\n    };\n    Stacktrace = class _Stacktrace {\n      static create() {\n        const err = new Error();\n        return new _Stacktrace(err.stack ?? \"\");\n      }\n      constructor(value) {\n        this.value = value;\n      }\n      print() {\n        console.warn(this.value.split(\"\\n\").slice(2).join(\"\\n\"));\n      }\n    };\n    ListenerLeakError = class extends Error {\n      constructor(message, stack) {\n        super(message);\n        this.name = \"ListenerLeakError\";\n        this.stack = stack;\n      }\n    };\n    ListenerRefusalError = class extends Error {\n      constructor(message, stack) {\n        super(message);\n        this.name = \"ListenerRefusalError\";\n        this.stack = stack;\n      }\n    };\n    UniqueContainer = class {\n      constructor(value) {\n        this.value = value;\n      }\n    };\n    compactionThreshold = 2;\n    forEachListener = (listeners, fn) =\u003e {\n      if (listeners instanceof UniqueContainer) {\n        fn(listeners);\n      } else {\n        for (let i2 = 0; i2 \u003c listeners.length; i2++) {\n          const l = listeners[i2];\n          if (l) {\n            fn(l);\n          }\n        }\n      }\n    };\n    Emitter = class {\n      constructor(options2) {\n        this._size = 0;\n        this._options = options2;\n        this._leakageMon = _globalLeakWarningThreshold \u003e 0 || this._options?.leakWarningThreshold ? new LeakageMonitor(options2?.onListenerError ?? onUnexpectedError, this._options?.leakWarningThreshold ?? _globalLeakWarningThreshold) : void 0;\n        this._perfMon = this._options?._profName ? new EventProfiling(this._options._profName) : void 0;\n        this._deliveryQueue = this._options?.deliveryQueue;\n      }\n      dispose() {\n        if (!this._disposed) {\n          this._disposed = true;\n          if (this._deliveryQueue?.current === this) {\n            this._deliveryQueue.reset();\n          }\n          if (this._listeners) {\n            if (_enableDisposeWithListenerWarning) {\n              const listeners = this._listeners;\n              queueMicrotask(() =\u003e {\n                forEachListener(listeners, (l) =\u003e l.stack?.print());\n              });\n            }\n            this._listeners = void 0;\n            this._size = 0;\n          }\n          this._options?.onDidRemoveLastListener?.();\n          this._leakageMon?.dispose();\n        }\n      }\n      /**\n       * For the public to allow to subscribe\n       * to events from this Emitter\n       */\n      get event() {\n        this._event ??= (callback, thisArgs, disposables) =\u003e {\n          if (this._leakageMon \u0026\u0026 this._size \u003e this._leakageMon.threshold ** 2) {\n            const message = `[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;\n            console.warn(message);\n            const tuple = this._leakageMon.getMostFrequentStack() ?? [\"UNKNOWN stack\", -1];\n            const error = new ListenerRefusalError(`${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0]);\n            const errorHandler2 = this._options?.onListenerError || onUnexpectedError;\n            errorHandler2(error);\n            return Disposable.None;\n          }\n          if (this._disposed) {\n            return Disposable.None;\n          }\n          if (thisArgs) {\n            callback = callback.bind(thisArgs);\n          }\n          const contained = new UniqueContainer(callback);\n          let removeMonitor;\n          let stack;\n          if (this._leakageMon \u0026\u0026 this._size \u003e= Math.ceil(this._leakageMon.threshold * 0.2)) {\n            contained.stack = Stacktrace.create();\n            removeMonitor = this._leakageMon.check(contained.stack, this._size + 1);\n          }\n          if (_enableDisposeWithListenerWarning) {\n            contained.stack = stack ?? Stacktrace.create();\n          }\n          if (!this._listeners) {\n            this._options?.onWillAddFirstListener?.(this);\n            this._listeners = contained;\n            this._options?.onDidAddFirstListener?.(this);\n          } else if (this._listeners instanceof UniqueContainer) {\n            this._deliveryQueue ??= new EventDeliveryQueuePrivate();\n            this._listeners = [this._listeners, contained];\n          } else {\n            this._listeners.push(contained);\n          }\n          this._options?.onDidAddListener?.(this);\n          this._size++;\n          const result = toDisposable(() =\u003e {\n            removeMonitor?.();\n            this._removeListener(contained);\n          });\n          if (disposables instanceof DisposableStore) {\n            disposables.add(result);\n          } else if (Array.isArray(disposables)) {\n            disposables.push(result);\n          }\n          return result;\n        };\n        return this._event;\n      }\n      _removeListener(listener) {\n        this._options?.onWillRemoveListener?.(this);\n        if (!this._listeners) {\n          return;\n        }\n        if (this._size === 1) {\n          this._listeners = void 0;\n          this._options?.onDidRemoveLastListener?.(this);\n          this._size = 0;\n          return;\n        }\n        const listeners = this._listeners;\n        const index = listeners.indexOf(listener);\n        if (index === -1) {\n          console.log(\"disposed?\", this._disposed);\n          console.log(\"size?\", this._size);\n          console.log(\"arr?\", JSON.stringify(this._listeners));\n          throw new Error(\"Attempted to dispose unknown listener\");\n        }\n        this._size--;\n        listeners[index] = void 0;\n        const adjustDeliveryQueue = this._deliveryQueue.current === this;\n        if (this._size * compactionThreshold \u003c= listeners.length) {\n          let n2 = 0;\n          for (let i2 = 0; i2 \u003c listeners.length; i2++) {\n            if (listeners[i2]) {\n              listeners[n2++] = listeners[i2];\n            } else if (adjustDeliveryQueue \u0026\u0026 n2 \u003c this._deliveryQueue.end) {\n              this._deliveryQueue.end--;\n              if (n2 \u003c this._deliveryQueue.i) {\n                this._deliveryQueue.i--;\n              }\n            }\n          }\n          listeners.length = n2;\n        }\n      }\n      _deliver(listener, value) {\n        if (!listener) {\n          return;\n        }\n        const errorHandler2 = this._options?.onListenerError || onUnexpectedError;\n        if (!errorHandler2) {\n          listener.value(value);\n          return;\n        }\n        try {\n          listener.value(value);\n        } catch (e) {\n          errorHandler2(e);\n        }\n      }\n      /** Delivers items in the queue. Assumes the queue is ready to go. */\n      _deliverQueue(dq) {\n        const listeners = dq.current._listeners;\n        while (dq.i \u003c dq.end) {\n          this._deliver(listeners[dq.i++], dq.value);\n        }\n        dq.reset();\n      }\n      /**\n       * To be kept private to fire an event to\n       * subscribers\n       */\n      fire(event) {\n        if (this._deliveryQueue?.current) {\n          this._deliverQueue(this._deliveryQueue);\n          this._perfMon?.stop();\n        }\n        this._perfMon?.start(this._size);\n        if (!this._listeners) {\n        } else if (this._listeners instanceof UniqueContainer) {\n          this._deliver(this._listeners, event);\n        } else {\n          const dq = this._deliveryQueue;\n          dq.enqueue(this, event, this._listeners.length);\n          this._deliverQueue(dq);\n        }\n        this._perfMon?.stop();\n      }\n      hasListeners() {\n        return this._size \u003e 0;\n      }\n    };\n    createEventDeliveryQueue = () =\u003e new EventDeliveryQueuePrivate();\n    EventDeliveryQueuePrivate = class {\n      constructor() {\n        this.i = -1;\n        this.end = 0;\n      }\n      enqueue(emitter, value, end) {\n        this.i = 0;\n        this.end = end;\n        this.current = emitter;\n        this.value = value;\n      }\n      reset() {\n        this.i = this.end;\n        this.current = void 0;\n        this.value = void 0;\n      }\n    };\n    PauseableEmitter = class extends Emitter {\n      constructor(options2) {\n        super(options2);\n        this._isPaused = 0;\n        this._eventQueue = new LinkedList();\n        this._mergeFn = options2?.merge;\n      }\n      pause() {\n        this._isPaused++;\n      }\n      resume() {\n        if (this._isPaused !== 0 \u0026\u0026 --this._isPaused === 0) {\n          if (this._mergeFn) {\n            if (this._eventQueue.size \u003e 0) {\n              const events = Array.from(this._eventQueue);\n              this._eventQueue.clear();\n              super.fire(this._mergeFn(events));\n            }\n          } else {\n            while (!this._isPaused \u0026\u0026 this._eventQueue.size !== 0) {\n              super.fire(this._eventQueue.shift());\n            }\n          }\n        }\n      }\n      fire(event) {\n        if (this._size) {\n          if (this._isPaused !== 0) {\n            this._eventQueue.push(event);\n          } else {\n            super.fire(event);\n          }\n        }\n      }\n    };\n    DebounceEmitter = class extends PauseableEmitter {\n      constructor(options2) {\n        super(options2);\n        this._delay = options2.delay ?? 100;\n      }\n      fire(event) {\n        if (!this._handle) {\n          this.pause();\n          this._handle = setTimeout(() =\u003e {\n            this._handle = void 0;\n            this.resume();\n          }, this._delay);\n        }\n        super.fire(event);\n      }\n    };\n    MicrotaskEmitter = class extends Emitter {\n      constructor(options2) {\n        super(options2);\n        this._queuedEvents = [];\n        this._mergeFn = options2?.merge;\n      }\n      fire(event) {\n        if (!this.hasListeners()) {\n          return;\n        }\n        this._queuedEvents.push(event);\n        if (this._queuedEvents.length === 1) {\n          queueMicrotask(() =\u003e {\n            if (this._mergeFn) {\n              super.fire(this._mergeFn(this._queuedEvents));\n            } else {\n              this._queuedEvents.forEach((e) =\u003e super.fire(e));\n            }\n            this._queuedEvents = [];\n          });\n        }\n      }\n    };\n    EventMultiplexer = class {\n      constructor() {\n        this.hasListeners = false;\n        this.events = [];\n        this.emitter = new Emitter({\n          onWillAddFirstListener: () =\u003e this.onFirstListenerAdd(),\n          onDidRemoveLastListener: () =\u003e this.onLastListenerRemove()\n        });\n      }\n      get event() {\n        return this.emitter.event;\n      }\n      add(event) {\n        const e = { event, listener: null };\n        this.events.push(e);\n        if (this.hasListeners) {\n          this.hook(e);\n        }\n        const dispose2 = () =\u003e {\n          if (this.hasListeners) {\n            this.unhook(e);\n          }\n          const idx = this.events.indexOf(e);\n          this.events.splice(idx, 1);\n        };\n        return toDisposable(createSingleCallFunction(dispose2));\n      }\n      onFirstListenerAdd() {\n        this.hasListeners = true;\n        this.events.forEach((e) =\u003e this.hook(e));\n      }\n      onLastListenerRemove() {\n        this.hasListeners = false;\n        this.events.forEach((e) =\u003e this.unhook(e));\n      }\n      hook(e) {\n        e.listener = e.event((r) =\u003e this.emitter.fire(r));\n      }\n      unhook(e) {\n        e.listener?.dispose();\n        e.listener = null;\n      }\n      dispose() {\n        this.emitter.dispose();\n        for (const e of this.events) {\n          e.listener?.dispose();\n        }\n        this.events = [];\n      }\n    };\n    EventBufferer = class {\n      constructor() {\n        this.data = [];\n      }\n      wrapEvent(event, reduce, initial) {\n        return (listener, thisArgs, disposables) =\u003e {\n          return event((i2) =\u003e {\n            const data = this.data[this.data.length - 1];\n            if (!reduce) {\n              if (data) {\n                data.buffers.push(() =\u003e listener.call(thisArgs, i2));\n              } else {\n                listener.call(thisArgs, i2);\n              }\n              return;\n            }\n            const reduceData = data;\n            if (!reduceData) {\n              listener.call(thisArgs, reduce(initial, i2));\n              return;\n            }\n            reduceData.items ??= [];\n            reduceData.items.push(i2);\n            if (reduceData.buffers.length === 0) {\n              data.buffers.push(() =\u003e {\n                reduceData.reducedResult ??= initial ? reduceData.items.reduce(reduce, initial) : reduceData.items.reduce(reduce);\n                listener.call(thisArgs, reduceData.reducedResult);\n              });\n            }\n          }, void 0, disposables);\n        };\n      }\n      bufferEvents(fn) {\n        const data = { buffers: new Array() };\n        this.data.push(data);\n        const r = fn();\n        this.data.pop();\n        data.buffers.forEach((flush) =\u003e flush());\n        return r;\n      }\n    };\n    Relay = class {\n      constructor() {\n        this.listening = false;\n        this.inputEvent = Event.None;\n        this.inputEventListener = Disposable.None;\n        this.emitter = new Emitter({\n          onDidAddFirstListener: () =\u003e {\n            this.listening = true;\n            this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter);\n          },\n          onDidRemoveLastListener: () =\u003e {\n            this.listening = false;\n            this.inputEventListener.dispose();\n          }\n        });\n        this.event = this.emitter.event;\n      }\n      set input(event) {\n        this.inputEvent = event;\n        if (this.listening) {\n          this.inputEventListener.dispose();\n          this.inputEventListener = event(this.emitter.fire, this.emitter);\n        }\n      }\n      dispose() {\n        this.inputEventListener.dispose();\n        this.emitter.dispose();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/cancellation.js\nfunction cancelOnDispose(store) {\n  const source = new CancellationTokenSource();\n  store.add({ dispose() {\n    source.cancel();\n  } });\n  return source.token;\n}\nvar shortcutEvent, CancellationToken, MutableToken, CancellationTokenSource;\nvar init_cancellation = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/cancellation.js\"() {\n    init_event();\n    shortcutEvent = Object.freeze(function(callback, context) {\n      const handle = setTimeout(callback.bind(context), 0);\n      return { dispose() {\n        clearTimeout(handle);\n      } };\n    });\n    (function(CancellationToken2) {\n      function isCancellationToken(thing) {\n        if (thing === CancellationToken2.None || thing === CancellationToken2.Cancelled) {\n          return true;\n        }\n        if (thing instanceof MutableToken) {\n          return true;\n        }\n        if (!thing || typeof thing !== \"object\") {\n          return false;\n        }\n        return typeof thing.isCancellationRequested === \"boolean\" \u0026\u0026 typeof thing.onCancellationRequested === \"function\";\n      }\n      CancellationToken2.isCancellationToken = isCancellationToken;\n      CancellationToken2.None = Object.freeze({\n        isCancellationRequested: false,\n        onCancellationRequested: Event.None\n      });\n      CancellationToken2.Cancelled = Object.freeze({\n        isCancellationRequested: true,\n        onCancellationRequested: shortcutEvent\n      });\n    })(CancellationToken || (CancellationToken = {}));\n    MutableToken = class {\n      constructor() {\n        this._isCancelled = false;\n        this._emitter = null;\n      }\n      cancel() {\n        if (!this._isCancelled) {\n          this._isCancelled = true;\n          if (this._emitter) {\n            this._emitter.fire(void 0);\n            this.dispose();\n          }\n        }\n      }\n      get isCancellationRequested() {\n        return this._isCancelled;\n      }\n      get onCancellationRequested() {\n        if (this._isCancelled) {\n          return shortcutEvent;\n        }\n        if (!this._emitter) {\n          this._emitter = new Emitter();\n        }\n        return this._emitter.event;\n      }\n      dispose() {\n        if (this._emitter) {\n          this._emitter.dispose();\n          this._emitter = null;\n        }\n      }\n    };\n    CancellationTokenSource = class {\n      constructor(parent) {\n        this._token = void 0;\n        this._parentListener = void 0;\n        this._parentListener = parent \u0026\u0026 parent.onCancellationRequested(this.cancel, this);\n      }\n      get token() {\n        if (!this._token) {\n          this._token = new MutableToken();\n        }\n        return this._token;\n      }\n      cancel() {\n        if (!this._token) {\n          this._token = CancellationToken.Cancelled;\n        } else if (this._token instanceof MutableToken) {\n          this._token.cancel();\n        }\n      }\n      dispose(cancel = false) {\n        if (cancel) {\n          this.cancel();\n        }\n        this._parentListener?.dispose();\n        if (!this._token) {\n          this._token = CancellationToken.None;\n        } else if (this._token instanceof MutableToken) {\n          this._token.dispose();\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/symbols.js\nvar MicrotaskDelay;\nvar init_symbols = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/symbols.js\"() {\n    MicrotaskDelay = Symbol(\"MicrotaskDelay\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/async.js\nfunction isThenable(obj) {\n  return !!obj \u0026\u0026 typeof obj.then === \"function\";\n}\nfunction createCancelablePromise(callback) {\n  const source = new CancellationTokenSource();\n  const thenable = callback(source.token);\n  let isCancelled = false;\n  const promise = new Promise((resolve3, reject) =\u003e {\n    const subscription = source.token.onCancellationRequested(() =\u003e {\n      isCancelled = true;\n      subscription.dispose();\n      reject(new CancellationError());\n    });\n    Promise.resolve(thenable).then((value) =\u003e {\n      subscription.dispose();\n      source.dispose();\n      if (!isCancelled) {\n        resolve3(value);\n      } else if (isDisposable(value)) {\n        value.dispose();\n      }\n    }, (err) =\u003e {\n      subscription.dispose();\n      source.dispose();\n      reject(err);\n    });\n  });\n  return new class {\n    cancel() {\n      source.cancel();\n      source.dispose();\n    }\n    then(resolve3, reject) {\n      return promise.then(resolve3, reject);\n    }\n    catch(reject) {\n      return this.then(void 0, reject);\n    }\n    finally(onfinally) {\n      return promise.finally(onfinally);\n    }\n  }();\n}\nfunction raceCancellation(promise, token, defaultValue) {\n  return new Promise((resolve3, reject) =\u003e {\n    const ref = token.onCancellationRequested(() =\u003e {\n      ref.dispose();\n      resolve3(defaultValue);\n    });\n    promise.then(resolve3, reject).finally(() =\u003e ref.dispose());\n  });\n}\nfunction raceCancellationError(promise, token) {\n  return new Promise((resolve3, reject) =\u003e {\n    const ref = token.onCancellationRequested(() =\u003e {\n      ref.dispose();\n      reject(new CancellationError());\n    });\n    promise.then(resolve3, reject).finally(() =\u003e ref.dispose());\n  });\n}\nfunction timeout(millis, token) {\n  if (!token) {\n    return createCancelablePromise((token2) =\u003e timeout(millis, token2));\n  }\n  return new Promise((resolve3, reject) =\u003e {\n    const handle = setTimeout(() =\u003e {\n      disposable.dispose();\n      resolve3();\n    }, millis);\n    const disposable = token.onCancellationRequested(() =\u003e {\n      clearTimeout(handle);\n      disposable.dispose();\n      reject(new CancellationError());\n    });\n  });\n}\nfunction disposableTimeout(handler, timeout2 = 0, store) {\n  const timer = setTimeout(() =\u003e {\n    handler();\n    if (store) {\n      disposable.dispose();\n    }\n  }, timeout2);\n  const disposable = toDisposable(() =\u003e {\n    clearTimeout(timer);\n    store?.delete(disposable);\n  });\n  store?.add(disposable);\n  return disposable;\n}\nfunction first(promiseFactories, shouldStop = (t) =\u003e !!t, defaultValue = null) {\n  let index = 0;\n  const len = promiseFactories.length;\n  const loop = () =\u003e {\n    if (index \u003e= len) {\n      return Promise.resolve(defaultValue);\n    }\n    const factory = promiseFactories[index++];\n    const promise = Promise.resolve(factory());\n    return promise.then((result) =\u003e {\n      if (shouldStop(result)) {\n        return Promise.resolve(result);\n      }\n      return loop();\n    });\n  };\n  return loop();\n}\nfunction createCancelableAsyncIterableProducer(callback) {\n  const source = new CancellationTokenSource();\n  const innerIterable = callback(source.token);\n  return new CancelableAsyncIterableProducer(source, async (emitter) =\u003e {\n    const subscription = source.token.onCancellationRequested(() =\u003e {\n      subscription.dispose();\n      source.dispose();\n      emitter.reject(new CancellationError());\n    });\n    try {\n      for await (const item of innerIterable) {\n        if (source.token.isCancellationRequested) {\n          return;\n        }\n        emitter.emitOne(item);\n      }\n      subscription.dispose();\n      source.dispose();\n    } catch (err) {\n      subscription.dispose();\n      source.dispose();\n      emitter.reject(err);\n    }\n  });\n}\nvar Throttler, timeoutDeferred, microtaskDeferred, Delayer, ThrottledDelayer, TaskQueue, TimeoutTimer, IntervalTimer, RunOnceScheduler, runWhenGlobalIdle, _runWhenIdle, AbstractIdleValue, GlobalIdleValue, DeferredPromise, Promises, AsyncIterableObject, ProducerConsumer, AsyncIterableProducer, CancelableAsyncIterableProducer, AsyncReaderEndOfStream;\nvar init_async = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/async.js\"() {\n    init_cancellation();\n    init_errors();\n    init_event();\n    init_lifecycle();\n    init_platform();\n    init_symbols();\n    Throttler = class {\n      constructor() {\n        this.isDisposed = false;\n        this.activePromise = null;\n        this.queuedPromise = null;\n        this.queuedPromiseFactory = null;\n      }\n      queue(promiseFactory) {\n        if (this.isDisposed) {\n          return Promise.reject(new Error(\"Throttler is disposed\"));\n        }\n        if (this.activePromise) {\n          this.queuedPromiseFactory = promiseFactory;\n          if (!this.queuedPromise) {\n            const onComplete = () =\u003e {\n              this.queuedPromise = null;\n              if (this.isDisposed) {\n                return;\n              }\n              const result = this.queue(this.queuedPromiseFactory);\n              this.queuedPromiseFactory = null;\n              return result;\n            };\n            this.queuedPromise = new Promise((resolve3) =\u003e {\n              this.activePromise.then(onComplete, onComplete).then(resolve3);\n            });\n          }\n          return new Promise((resolve3, reject) =\u003e {\n            this.queuedPromise.then(resolve3, reject);\n          });\n        }\n        this.activePromise = promiseFactory();\n        return new Promise((resolve3, reject) =\u003e {\n          this.activePromise.then((result) =\u003e {\n            this.activePromise = null;\n            resolve3(result);\n          }, (err) =\u003e {\n            this.activePromise = null;\n            reject(err);\n          });\n        });\n      }\n      dispose() {\n        this.isDisposed = true;\n      }\n    };\n    timeoutDeferred = (timeout2, fn) =\u003e {\n      let scheduled = true;\n      const handle = setTimeout(() =\u003e {\n        scheduled = false;\n        fn();\n      }, timeout2);\n      return {\n        isTriggered: () =\u003e scheduled,\n        dispose: () =\u003e {\n          clearTimeout(handle);\n          scheduled = false;\n        }\n      };\n    };\n    microtaskDeferred = (fn) =\u003e {\n      let scheduled = true;\n      queueMicrotask(() =\u003e {\n        if (scheduled) {\n          scheduled = false;\n          fn();\n        }\n      });\n      return {\n        isTriggered: () =\u003e scheduled,\n        dispose: () =\u003e {\n          scheduled = false;\n        }\n      };\n    };\n    Delayer = class {\n      constructor(defaultDelay) {\n        this.defaultDelay = defaultDelay;\n        this.deferred = null;\n        this.completionPromise = null;\n        this.doResolve = null;\n        this.doReject = null;\n        this.task = null;\n      }\n      trigger(task, delay = this.defaultDelay) {\n        this.task = task;\n        this.cancelTimeout();\n        if (!this.completionPromise) {\n          this.completionPromise = new Promise((resolve3, reject) =\u003e {\n            this.doResolve = resolve3;\n            this.doReject = reject;\n          }).then(() =\u003e {\n            this.completionPromise = null;\n            this.doResolve = null;\n            if (this.task) {\n              const task2 = this.task;\n              this.task = null;\n              return task2();\n            }\n            return void 0;\n          });\n        }\n        const fn = () =\u003e {\n          this.deferred = null;\n          this.doResolve?.(null);\n        };\n        this.deferred = delay === MicrotaskDelay ? microtaskDeferred(fn) : timeoutDeferred(delay, fn);\n        return this.completionPromise;\n      }\n      isTriggered() {\n        return !!this.deferred?.isTriggered();\n      }\n      cancel() {\n        this.cancelTimeout();\n        if (this.completionPromise) {\n          this.doReject?.(new CancellationError());\n          this.completionPromise = null;\n        }\n      }\n      cancelTimeout() {\n        this.deferred?.dispose();\n        this.deferred = null;\n      }\n      dispose() {\n        this.cancel();\n      }\n    };\n    ThrottledDelayer = class {\n      constructor(defaultDelay) {\n        this.delayer = new Delayer(defaultDelay);\n        this.throttler = new Throttler();\n      }\n      trigger(promiseFactory, delay) {\n        return this.delayer.trigger(() =\u003e this.throttler.queue(promiseFactory), delay);\n      }\n      cancel() {\n        this.delayer.cancel();\n      }\n      dispose() {\n        this.delayer.dispose();\n        this.throttler.dispose();\n      }\n    };\n    TaskQueue = class {\n      constructor() {\n        this._runningTask = void 0;\n        this._pendingTasks = [];\n      }\n      /**\n       * Waits for the current and pending tasks to finish, then runs and awaits the given task.\n       * If the task is skipped because of clearPending, the promise is rejected with a CancellationError.\n      */\n      schedule(task) {\n        const deferred = new DeferredPromise();\n        this._pendingTasks.push({ task, deferred, setUndefinedWhenCleared: false });\n        this._runIfNotRunning();\n        return deferred.p;\n      }\n      _runIfNotRunning() {\n        if (this._runningTask === void 0) {\n          this._processQueue();\n        }\n      }\n      async _processQueue() {\n        if (this._pendingTasks.length === 0) {\n          return;\n        }\n        const next = this._pendingTasks.shift();\n        if (!next) {\n          return;\n        }\n        if (this._runningTask) {\n          throw new BugIndicatingError();\n        }\n        this._runningTask = next.task;\n        try {\n          const result = await next.task();\n          next.deferred.complete(result);\n        } catch (e) {\n          next.deferred.error(e);\n        } finally {\n          this._runningTask = void 0;\n          this._processQueue();\n        }\n      }\n      /**\n       * Clears all pending tasks. Does not cancel the currently running task.\n      */\n      clearPending() {\n        const tasks = this._pendingTasks;\n        this._pendingTasks = [];\n        for (const task of tasks) {\n          if (task.setUndefinedWhenCleared) {\n            task.deferred.complete(void 0);\n          } else {\n            task.deferred.error(new CancellationError());\n          }\n        }\n      }\n    };\n    TimeoutTimer = class {\n      constructor(runner, timeout2) {\n        this._isDisposed = false;\n        this._token = void 0;\n        if (typeof runner === \"function\" \u0026\u0026 typeof timeout2 === \"number\") {\n          this.setIfNotSet(runner, timeout2);\n        }\n      }\n      dispose() {\n        this.cancel();\n        this._isDisposed = true;\n      }\n      cancel() {\n        if (this._token !== void 0) {\n          clearTimeout(this._token);\n          this._token = void 0;\n        }\n      }\n      cancelAndSet(runner, timeout2) {\n        if (this._isDisposed) {\n          throw new BugIndicatingError(`Calling 'cancelAndSet' on a disposed TimeoutTimer`);\n        }\n        this.cancel();\n        this._token = setTimeout(() =\u003e {\n          this._token = void 0;\n          runner();\n        }, timeout2);\n      }\n      setIfNotSet(runner, timeout2) {\n        if (this._isDisposed) {\n          throw new BugIndicatingError(`Calling 'setIfNotSet' on a disposed TimeoutTimer`);\n        }\n        if (this._token !== void 0) {\n          return;\n        }\n        this._token = setTimeout(() =\u003e {\n          this._token = void 0;\n          runner();\n        }, timeout2);\n      }\n    };\n    IntervalTimer = class {\n      constructor() {\n        this.disposable = void 0;\n        this.isDisposed = false;\n      }\n      cancel() {\n        this.disposable?.dispose();\n        this.disposable = void 0;\n      }\n      cancelAndSet(runner, interval, context = globalThis) {\n        if (this.isDisposed) {\n          throw new BugIndicatingError(`Calling 'cancelAndSet' on a disposed IntervalTimer`);\n        }\n        this.cancel();\n        const handle = context.setInterval(() =\u003e {\n          runner();\n        }, interval);\n        this.disposable = toDisposable(() =\u003e {\n          context.clearInterval(handle);\n          this.disposable = void 0;\n        });\n      }\n      dispose() {\n        this.cancel();\n        this.isDisposed = true;\n      }\n    };\n    RunOnceScheduler = class {\n      constructor(runner, delay) {\n        this.timeoutToken = void 0;\n        this.runner = runner;\n        this.timeout = delay;\n        this.timeoutHandler = this.onTimeout.bind(this);\n      }\n      /**\n       * Dispose RunOnceScheduler\n       */\n      dispose() {\n        this.cancel();\n        this.runner = null;\n      }\n      /**\n       * Cancel current scheduled runner (if any).\n       */\n      cancel() {\n        if (this.isScheduled()) {\n          clearTimeout(this.timeoutToken);\n          this.timeoutToken = void 0;\n        }\n      }\n      /**\n       * Cancel previous runner (if any) \u0026 schedule a new runner.\n       */\n      schedule(delay = this.timeout) {\n        this.cancel();\n        this.timeoutToken = setTimeout(this.timeoutHandler, delay);\n      }\n      get delay() {\n        return this.timeout;\n      }\n      set delay(value) {\n        this.timeout = value;\n      }\n      /**\n       * Returns true if scheduled.\n       */\n      isScheduled() {\n        return this.timeoutToken !== void 0;\n      }\n      onTimeout() {\n        this.timeoutToken = void 0;\n        if (this.runner) {\n          this.doRun();\n        }\n      }\n      doRun() {\n        this.runner?.();\n      }\n    };\n    (function() {\n      const safeGlobal = globalThis;\n      if (typeof safeGlobal.requestIdleCallback !== \"function\" || typeof safeGlobal.cancelIdleCallback !== \"function\") {\n        _runWhenIdle = (_targetWindow, runner, timeout2) =\u003e {\n          setTimeout0(() =\u003e {\n            if (disposed) {\n              return;\n            }\n            const end = Date.now() + 15;\n            const deadline = {\n              didTimeout: true,\n              timeRemaining() {\n                return Math.max(0, end - Date.now());\n              }\n            };\n            runner(Object.freeze(deadline));\n          });\n          let disposed = false;\n          return {\n            dispose() {\n              if (disposed) {\n                return;\n              }\n              disposed = true;\n            }\n          };\n        };\n      } else {\n        _runWhenIdle = (targetWindow, runner, timeout2) =\u003e {\n          const handle = targetWindow.requestIdleCallback(runner, typeof timeout2 === \"number\" ? { timeout: timeout2 } : void 0);\n          let disposed = false;\n          return {\n            dispose() {\n              if (disposed) {\n                return;\n              }\n              disposed = true;\n              targetWindow.cancelIdleCallback(handle);\n            }\n          };\n        };\n      }\n      runWhenGlobalIdle = (runner, timeout2) =\u003e _runWhenIdle(globalThis, runner, timeout2);\n    })();\n    AbstractIdleValue = class {\n      constructor(targetWindow, executor) {\n        this._didRun = false;\n        this._executor = () =\u003e {\n          try {\n            this._value = executor();\n          } catch (err) {\n            this._error = err;\n          } finally {\n            this._didRun = true;\n          }\n        };\n        this._handle = _runWhenIdle(targetWindow, () =\u003e this._executor());\n      }\n      dispose() {\n        this._handle.dispose();\n      }\n      get value() {\n        if (!this._didRun) {\n          this._handle.dispose();\n          this._executor();\n        }\n        if (this._error) {\n          throw this._error;\n        }\n        return this._value;\n      }\n      get isInitialized() {\n        return this._didRun;\n      }\n    };\n    GlobalIdleValue = class extends AbstractIdleValue {\n      constructor(executor) {\n        super(globalThis, executor);\n      }\n    };\n    DeferredPromise = class {\n      get isRejected() {\n        return this.outcome?.outcome === 1;\n      }\n      get isSettled() {\n        return !!this.outcome;\n      }\n      constructor() {\n        this.p = new Promise((c, e) =\u003e {\n          this.completeCallback = c;\n          this.errorCallback = e;\n        });\n      }\n      complete(value) {\n        return new Promise((resolve3) =\u003e {\n          this.completeCallback(value);\n          this.outcome = { outcome: 0, value };\n          resolve3();\n        });\n      }\n      error(err) {\n        return new Promise((resolve3) =\u003e {\n          this.errorCallback(err);\n          this.outcome = { outcome: 1, value: err };\n          resolve3();\n        });\n      }\n      cancel() {\n        return this.error(new CancellationError());\n      }\n    };\n    (function(Promises2) {\n      async function settled(promises) {\n        let firstError = void 0;\n        const result = await Promise.all(promises.map((promise) =\u003e promise.then((value) =\u003e value, (error) =\u003e {\n          if (!firstError) {\n            firstError = error;\n          }\n          return void 0;\n        })));\n        if (typeof firstError !== \"undefined\") {\n          throw firstError;\n        }\n        return result;\n      }\n      Promises2.settled = settled;\n      function withAsyncBody(bodyFn) {\n        return new Promise(async (resolve3, reject) =\u003e {\n          try {\n            await bodyFn(resolve3, reject);\n          } catch (error) {\n            reject(error);\n          }\n        });\n      }\n      Promises2.withAsyncBody = withAsyncBody;\n    })(Promises || (Promises = {}));\n    AsyncIterableObject = class _AsyncIterableObject {\n      static fromArray(items) {\n        return new _AsyncIterableObject((writer) =\u003e {\n          writer.emitMany(items);\n        });\n      }\n      static fromPromise(promise) {\n        return new _AsyncIterableObject(async (emitter) =\u003e {\n          emitter.emitMany(await promise);\n        });\n      }\n      static fromPromisesResolveOrder(promises) {\n        return new _AsyncIterableObject(async (emitter) =\u003e {\n          await Promise.all(promises.map(async (p) =\u003e emitter.emitOne(await p)));\n        });\n      }\n      static merge(iterables) {\n        return new _AsyncIterableObject(async (emitter) =\u003e {\n          await Promise.all(iterables.map(async (iterable) =\u003e {\n            for await (const item of iterable) {\n              emitter.emitOne(item);\n            }\n          }));\n        });\n      }\n      static {\n        this.EMPTY = _AsyncIterableObject.fromArray([]);\n      }\n      constructor(executor, onReturn) {\n        this._state = 0;\n        this._results = [];\n        this._error = null;\n        this._onReturn = onReturn;\n        this._onStateChanged = new Emitter();\n        queueMicrotask(async () =\u003e {\n          const writer = {\n            emitOne: (item) =\u003e this.emitOne(item),\n            emitMany: (items) =\u003e this.emitMany(items),\n            reject: (error) =\u003e this.reject(error)\n          };\n          try {\n            await Promise.resolve(executor(writer));\n            this.resolve();\n          } catch (err) {\n            this.reject(err);\n          } finally {\n            writer.emitOne = void 0;\n            writer.emitMany = void 0;\n            writer.reject = void 0;\n          }\n        });\n      }\n      [Symbol.asyncIterator]() {\n        let i2 = 0;\n        return {\n          next: async () =\u003e {\n            do {\n              if (this._state === 2) {\n                throw this._error;\n              }\n              if (i2 \u003c this._results.length) {\n                return { done: false, value: this._results[i2++] };\n              }\n              if (this._state === 1) {\n                return { done: true, value: void 0 };\n              }\n              await Event.toPromise(this._onStateChanged.event);\n            } while (true);\n          },\n          return: async () =\u003e {\n            this._onReturn?.();\n            return { done: true, value: void 0 };\n          }\n        };\n      }\n      static map(iterable, mapFn) {\n        return new _AsyncIterableObject(async (emitter) =\u003e {\n          for await (const item of iterable) {\n            emitter.emitOne(mapFn(item));\n          }\n        });\n      }\n      map(mapFn) {\n        return _AsyncIterableObject.map(this, mapFn);\n      }\n      static filter(iterable, filterFn) {\n        return new _AsyncIterableObject(async (emitter) =\u003e {\n          for await (const item of iterable) {\n            if (filterFn(item)) {\n              emitter.emitOne(item);\n            }\n          }\n        });\n      }\n      filter(filterFn) {\n        return _AsyncIterableObject.filter(this, filterFn);\n      }\n      static coalesce(iterable) {\n        return _AsyncIterableObject.filter(iterable, (item) =\u003e !!item);\n      }\n      coalesce() {\n        return _AsyncIterableObject.coalesce(this);\n      }\n      static async toPromise(iterable) {\n        const result = [];\n        for await (const item of iterable) {\n          result.push(item);\n        }\n        return result;\n      }\n      toPromise() {\n        return _AsyncIterableObject.toPromise(this);\n      }\n      /**\n       * The value will be appended at the end.\n       *\n       * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n       */\n      emitOne(value) {\n        if (this._state !== 0) {\n          return;\n        }\n        this._results.push(value);\n        this._onStateChanged.fire();\n      }\n      /**\n       * The values will be appended at the end.\n       *\n       * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n       */\n      emitMany(values) {\n        if (this._state !== 0) {\n          return;\n        }\n        this._results = this._results.concat(values);\n        this._onStateChanged.fire();\n      }\n      /**\n       * Calling `resolve()` will mark the result array as complete.\n       *\n       * **NOTE** `resolve()` must be called, otherwise all consumers of this iterable will hang indefinitely, similar to a non-resolved promise.\n       * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n       */\n      resolve() {\n        if (this._state !== 0) {\n          return;\n        }\n        this._state = 1;\n        this._onStateChanged.fire();\n      }\n      /**\n       * Writing an error will permanently invalidate this iterable.\n       * The current users will receive an error thrown, as will all future users.\n       *\n       * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n       */\n      reject(error) {\n        if (this._state !== 0) {\n          return;\n        }\n        this._state = 2;\n        this._error = error;\n        this._onStateChanged.fire();\n      }\n    };\n    ProducerConsumer = class {\n      constructor() {\n        this._unsatisfiedConsumers = [];\n        this._unconsumedValues = [];\n      }\n      get hasFinalValue() {\n        return !!this._finalValue;\n      }\n      produce(value) {\n        this._ensureNoFinalValue();\n        if (this._unsatisfiedConsumers.length \u003e 0) {\n          const deferred = this._unsatisfiedConsumers.shift();\n          this._resolveOrRejectDeferred(deferred, value);\n        } else {\n          this._unconsumedValues.push(value);\n        }\n      }\n      produceFinal(value) {\n        this._ensureNoFinalValue();\n        this._finalValue = value;\n        for (const deferred of this._unsatisfiedConsumers) {\n          this._resolveOrRejectDeferred(deferred, value);\n        }\n        this._unsatisfiedConsumers.length = 0;\n      }\n      _ensureNoFinalValue() {\n        if (this._finalValue) {\n          throw new BugIndicatingError(\"ProducerConsumer: cannot produce after final value has been set\");\n        }\n      }\n      _resolveOrRejectDeferred(deferred, value) {\n        if (value.ok) {\n          deferred.complete(value.value);\n        } else {\n          deferred.error(value.error);\n        }\n      }\n      consume() {\n        if (this._unconsumedValues.length \u003e 0 || this._finalValue) {\n          const value = this._unconsumedValues.length \u003e 0 ? this._unconsumedValues.shift() : this._finalValue;\n          if (value.ok) {\n            return Promise.resolve(value.value);\n          } else {\n            return Promise.reject(value.error);\n          }\n        } else {\n          const deferred = new DeferredPromise();\n          this._unsatisfiedConsumers.push(deferred);\n          return deferred.p;\n        }\n      }\n    };\n    AsyncIterableProducer = class _AsyncIterableProducer {\n      constructor(executor, _onReturn) {\n        this._onReturn = _onReturn;\n        this._producerConsumer = new ProducerConsumer();\n        this._iterator = {\n          next: () =\u003e this._producerConsumer.consume(),\n          return: () =\u003e {\n            this._onReturn?.();\n            return Promise.resolve({ done: true, value: void 0 });\n          },\n          throw: async (e) =\u003e {\n            this._finishError(e);\n            return { done: true, value: void 0 };\n          }\n        };\n        queueMicrotask(async () =\u003e {\n          const p = executor({\n            emitOne: (value) =\u003e this._producerConsumer.produce({ ok: true, value: { done: false, value } }),\n            emitMany: (values) =\u003e {\n              for (const value of values) {\n                this._producerConsumer.produce({ ok: true, value: { done: false, value } });\n              }\n            },\n            reject: (error) =\u003e this._finishError(error)\n          });\n          if (!this._producerConsumer.hasFinalValue) {\n            try {\n              await p;\n              this._finishOk();\n            } catch (error) {\n              this._finishError(error);\n            }\n          }\n        });\n      }\n      static fromArray(items) {\n        return new _AsyncIterableProducer((writer) =\u003e {\n          writer.emitMany(items);\n        });\n      }\n      static fromPromise(promise) {\n        return new _AsyncIterableProducer(async (emitter) =\u003e {\n          emitter.emitMany(await promise);\n        });\n      }\n      static fromPromisesResolveOrder(promises) {\n        return new _AsyncIterableProducer(async (emitter) =\u003e {\n          await Promise.all(promises.map(async (p) =\u003e emitter.emitOne(await p)));\n        });\n      }\n      static merge(iterables) {\n        return new _AsyncIterableProducer(async (emitter) =\u003e {\n          await Promise.all(iterables.map(async (iterable) =\u003e {\n            for await (const item of iterable) {\n              emitter.emitOne(item);\n            }\n          }));\n        });\n      }\n      static {\n        this.EMPTY = _AsyncIterableProducer.fromArray([]);\n      }\n      static map(iterable, mapFn) {\n        return new _AsyncIterableProducer(async (emitter) =\u003e {\n          for await (const item of iterable) {\n            emitter.emitOne(mapFn(item));\n          }\n        });\n      }\n      map(mapFn) {\n        return _AsyncIterableProducer.map(this, mapFn);\n      }\n      static coalesce(iterable) {\n        return _AsyncIterableProducer.filter(iterable, (item) =\u003e !!item);\n      }\n      coalesce() {\n        return _AsyncIterableProducer.coalesce(this);\n      }\n      static filter(iterable, filterFn) {\n        return new _AsyncIterableProducer(async (emitter) =\u003e {\n          for await (const item of iterable) {\n            if (filterFn(item)) {\n              emitter.emitOne(item);\n            }\n          }\n        });\n      }\n      filter(filterFn) {\n        return _AsyncIterableProducer.filter(this, filterFn);\n      }\n      _finishOk() {\n        if (!this._producerConsumer.hasFinalValue) {\n          this._producerConsumer.produceFinal({ ok: true, value: { done: true, value: void 0 } });\n        }\n      }\n      _finishError(error) {\n        if (!this._producerConsumer.hasFinalValue) {\n          this._producerConsumer.produceFinal({ ok: false, error });\n        }\n      }\n      [Symbol.asyncIterator]() {\n        return this._iterator;\n      }\n    };\n    CancelableAsyncIterableProducer = class extends AsyncIterableProducer {\n      constructor(_source, executor) {\n        super(executor);\n        this._source = _source;\n      }\n      cancel() {\n        this._source.cancel();\n      }\n    };\n    AsyncReaderEndOfStream = Symbol(\"AsyncReaderEndOfStream\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/cache.js\nfunction identity(t) {\n  return t;\n}\nvar LRUCachedFunction, CachedFunction;\nvar init_cache = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/cache.js\"() {\n    LRUCachedFunction = class {\n      constructor(arg1, arg2) {\n        this.lastCache = void 0;\n        this.lastArgKey = void 0;\n        if (typeof arg1 === \"function\") {\n          this._fn = arg1;\n          this._computeKey = identity;\n        } else {\n          this._fn = arg2;\n          this._computeKey = arg1.getCacheKey;\n        }\n      }\n      get(arg) {\n        const key = this._computeKey(arg);\n        if (this.lastArgKey !== key) {\n          this.lastArgKey = key;\n          this.lastCache = this._fn(arg);\n        }\n        return this.lastCache;\n      }\n    };\n    CachedFunction = class {\n      get cachedValues() {\n        return this._map;\n      }\n      constructor(arg1, arg2) {\n        this._map = /* @__PURE__ */ new Map();\n        this._map2 = /* @__PURE__ */ new Map();\n        if (typeof arg1 === \"function\") {\n          this._fn = arg1;\n          this._computeKey = identity;\n        } else {\n          this._fn = arg2;\n          this._computeKey = arg1.getCacheKey;\n        }\n      }\n      get(arg) {\n        const key = this._computeKey(arg);\n        if (this._map2.has(key)) {\n          return this._map2.get(key);\n        }\n        const value = this._fn(arg);\n        this._map.set(arg, value);\n        this._map2.set(key, value);\n        return value;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/lazy.js\nvar LazyValueState, Lazy;\nvar init_lazy = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/lazy.js\"() {\n    (function(LazyValueState2) {\n      LazyValueState2[LazyValueState2[\"Uninitialized\"] = 0] = \"Uninitialized\";\n      LazyValueState2[LazyValueState2[\"Running\"] = 1] = \"Running\";\n      LazyValueState2[LazyValueState2[\"Completed\"] = 2] = \"Completed\";\n    })(LazyValueState || (LazyValueState = {}));\n    Lazy = class {\n      constructor(executor) {\n        this.executor = executor;\n        this._state = LazyValueState.Uninitialized;\n      }\n      /**\n       * Get the wrapped value.\n       *\n       * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only\n       * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value\n       */\n      get value() {\n        if (this._state === LazyValueState.Uninitialized) {\n          this._state = LazyValueState.Running;\n          try {\n            this._value = this.executor();\n          } catch (err) {\n            this._error = err;\n          } finally {\n            this._state = LazyValueState.Completed;\n          }\n        } else if (this._state === LazyValueState.Running) {\n          throw new Error(\"Cannot read the value of a lazy that is being initialized\");\n        }\n        if (this._error) {\n          throw this._error;\n        }\n        return this._value;\n      }\n      /**\n       * Get the wrapped value without forcing evaluation.\n       */\n      get rawValue() {\n        return this._value;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/strings.js\nfunction isFalsyOrWhitespace(str) {\n  if (!str || typeof str !== \"string\") {\n    return true;\n  }\n  return str.trim().length === 0;\n}\nfunction format(value, ...args) {\n  if (args.length === 0) {\n    return value;\n  }\n  return value.replace(_formatRegexp, function(match2, group) {\n    const idx = parseInt(group, 10);\n    return isNaN(idx) || idx \u003c 0 || idx \u003e= args.length ? match2 : args[idx];\n  });\n}\nfunction htmlAttributeEncodeValue(value) {\n  return value.replace(/[\u003c\u003e\"'\u0026]/g, (ch) =\u003e {\n    switch (ch) {\n      case \"\u003c\":\n        return \"\u0026lt;\";\n      case \"\u003e\":\n        return \"\u0026gt;\";\n      case '\"':\n        return \"\u0026quot;\";\n      case \"'\":\n        return \"\u0026apos;\";\n      case \"\u0026\":\n        return \"\u0026amp;\";\n    }\n    return ch;\n  });\n}\nfunction escape(html3) {\n  return html3.replace(/[\u003c\u003e\u0026]/g, function(match2) {\n    switch (match2) {\n      case \"\u003c\":\n        return \"\u0026lt;\";\n      case \"\u003e\":\n        return \"\u0026gt;\";\n      case \"\u0026\":\n        return \"\u0026amp;\";\n      default:\n        return match2;\n    }\n  });\n}\nfunction escapeRegExpCharacters(value) {\n  return value.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g, \"\\\\$\u0026\");\n}\nfunction trim(haystack, needle = \" \") {\n  const trimmed = ltrim(haystack, needle);\n  return rtrim(trimmed, needle);\n}\nfunction ltrim(haystack, needle) {\n  if (!haystack || !needle) {\n    return haystack;\n  }\n  const needleLen = needle.length;\n  if (needleLen === 0 || haystack.length === 0) {\n    return haystack;\n  }\n  let offset = 0;\n  while (haystack.indexOf(needle, offset) === offset) {\n    offset = offset + needleLen;\n  }\n  return haystack.substring(offset);\n}\nfunction rtrim(haystack, needle) {\n  if (!haystack || !needle) {\n    return haystack;\n  }\n  const needleLen = needle.length, haystackLen = haystack.length;\n  if (needleLen === 0 || haystackLen === 0) {\n    return haystack;\n  }\n  let offset = haystackLen, idx = -1;\n  while (true) {\n    idx = haystack.lastIndexOf(needle, offset - 1);\n    if (idx === -1 || idx + needleLen !== offset) {\n      break;\n    }\n    if (idx === 0) {\n      return \"\";\n    }\n    offset = idx;\n  }\n  return haystack.substring(0, offset);\n}\nfunction convertSimple2RegExpPattern(pattern) {\n  return pattern.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, \"\\\\$\u0026\").replace(/[\\*]/g, \".*\");\n}\nfunction stripWildcards(pattern) {\n  return pattern.replace(/\\*/g, \"\");\n}\nfunction createRegExp(searchString, isRegex, options2 = {}) {\n  if (!searchString) {\n    throw new Error(\"Cannot create regex from empty string\");\n  }\n  if (!isRegex) {\n    searchString = escapeRegExpCharacters(searchString);\n  }\n  if (options2.wholeWord) {\n    if (!/\\B/.test(searchString.charAt(0))) {\n      searchString = \"\\\\b\" + searchString;\n    }\n    if (!/\\B/.test(searchString.charAt(searchString.length - 1))) {\n      searchString = searchString + \"\\\\b\";\n    }\n  }\n  let modifiers = \"\";\n  if (options2.global) {\n    modifiers += \"g\";\n  }\n  if (!options2.matchCase) {\n    modifiers += \"i\";\n  }\n  if (options2.multiline) {\n    modifiers += \"m\";\n  }\n  if (options2.unicode) {\n    modifiers += \"u\";\n  }\n  return new RegExp(searchString, modifiers);\n}\nfunction regExpLeadsToEndlessLoop(regexp) {\n  if (regexp.source === \"^\" || regexp.source === \"^$\" || regexp.source === \"$\" || regexp.source === \"^\\\\s*$\") {\n    return false;\n  }\n  const match2 = regexp.exec(\"\");\n  return !!(match2 \u0026\u0026 regexp.lastIndex === 0);\n}\nfunction splitLines(str) {\n  return str.split(/\\r\\n|\\r|\\n/);\n}\nfunction firstNonWhitespaceIndex(str) {\n  for (let i2 = 0, len = str.length; i2 \u003c len; i2++) {\n    const chCode = str.charCodeAt(i2);\n    if (chCode !== 32 \u0026\u0026 chCode !== 9) {\n      return i2;\n    }\n  }\n  return -1;\n}\nfunction getLeadingWhitespace(str, start = 0, end = str.length) {\n  for (let i2 = start; i2 \u003c end; i2++) {\n    const chCode = str.charCodeAt(i2);\n    if (chCode !== 32 \u0026\u0026 chCode !== 9) {\n      return str.substring(start, i2);\n    }\n  }\n  return str.substring(start, end);\n}\nfunction lastNonWhitespaceIndex(str, startIndex = str.length - 1) {\n  for (let i2 = startIndex; i2 \u003e= 0; i2--) {\n    const chCode = str.charCodeAt(i2);\n    if (chCode !== 32 \u0026\u0026 chCode !== 9) {\n      return i2;\n    }\n  }\n  return -1;\n}\nfunction compare(a, b) {\n  if (a \u003c b) {\n    return -1;\n  } else if (a \u003e b) {\n    return 1;\n  } else {\n    return 0;\n  }\n}\nfunction compareSubstring(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n  for (; aStart \u003c aEnd \u0026\u0026 bStart \u003c bEnd; aStart++, bStart++) {\n    const codeA = a.charCodeAt(aStart);\n    const codeB = b.charCodeAt(bStart);\n    if (codeA \u003c codeB) {\n      return -1;\n    } else if (codeA \u003e codeB) {\n      return 1;\n    }\n  }\n  const aLen = aEnd - aStart;\n  const bLen = bEnd - bStart;\n  if (aLen \u003c bLen) {\n    return -1;\n  } else if (aLen \u003e bLen) {\n    return 1;\n  }\n  return 0;\n}\nfunction compareIgnoreCase(a, b) {\n  return compareSubstringIgnoreCase(a, b, 0, a.length, 0, b.length);\n}\nfunction compareSubstringIgnoreCase(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n  for (; aStart \u003c aEnd \u0026\u0026 bStart \u003c bEnd; aStart++, bStart++) {\n    let codeA = a.charCodeAt(aStart);\n    let codeB = b.charCodeAt(bStart);\n    if (codeA === codeB) {\n      continue;\n    }\n    if (codeA \u003e= 128 || codeB \u003e= 128) {\n      return compareSubstring(a.toLowerCase(), b.toLowerCase(), aStart, aEnd, bStart, bEnd);\n    }\n    if (isLowerAsciiLetter(codeA)) {\n      codeA -= 32;\n    }\n    if (isLowerAsciiLetter(codeB)) {\n      codeB -= 32;\n    }\n    const diff = codeA - codeB;\n    if (diff === 0) {\n      continue;\n    }\n    return diff;\n  }\n  const aLen = aEnd - aStart;\n  const bLen = bEnd - bStart;\n  if (aLen \u003c bLen) {\n    return -1;\n  } else if (aLen \u003e bLen) {\n    return 1;\n  }\n  return 0;\n}\nfunction isAsciiDigit(code) {\n  return code \u003e= 48 \u0026\u0026 code \u003c= 57;\n}\nfunction isLowerAsciiLetter(code) {\n  return code \u003e= 97 \u0026\u0026 code \u003c= 122;\n}\nfunction isUpperAsciiLetter(code) {\n  return code \u003e= 65 \u0026\u0026 code \u003c= 90;\n}\nfunction equalsIgnoreCase(a, b) {\n  return a.length === b.length \u0026\u0026 compareSubstringIgnoreCase(a, b) === 0;\n}\nfunction startsWithIgnoreCase(str, candidate) {\n  const candidateLength = candidate.length;\n  if (candidate.length \u003e str.length) {\n    return false;\n  }\n  return compareSubstringIgnoreCase(str, candidate, 0, candidateLength) === 0;\n}\nfunction commonPrefixLength(a, b) {\n  const len = Math.min(a.length, b.length);\n  let i2;\n  for (i2 = 0; i2 \u003c len; i2++) {\n    if (a.charCodeAt(i2) !== b.charCodeAt(i2)) {\n      return i2;\n    }\n  }\n  return len;\n}\nfunction commonSuffixLength(a, b) {\n  const len = Math.min(a.length, b.length);\n  let i2;\n  const aLastIndex = a.length - 1;\n  const bLastIndex = b.length - 1;\n  for (i2 = 0; i2 \u003c len; i2++) {\n    if (a.charCodeAt(aLastIndex - i2) !== b.charCodeAt(bLastIndex - i2)) {\n      return i2;\n    }\n  }\n  return len;\n}\nfunction isHighSurrogate(charCode) {\n  return 55296 \u003c= charCode \u0026\u0026 charCode \u003c= 56319;\n}\nfunction isLowSurrogate(charCode) {\n  return 56320 \u003c= charCode \u0026\u0026 charCode \u003c= 57343;\n}\nfunction computeCodePoint(highSurrogate, lowSurrogate) {\n  return (highSurrogate - 55296 \u003c\u003c 10) + (lowSurrogate - 56320) + 65536;\n}\nfunction getNextCodePoint(str, len, offset) {\n  const charCode = str.charCodeAt(offset);\n  if (isHighSurrogate(charCode) \u0026\u0026 offset + 1 \u003c len) {\n    const nextCharCode = str.charCodeAt(offset + 1);\n    if (isLowSurrogate(nextCharCode)) {\n      return computeCodePoint(charCode, nextCharCode);\n    }\n  }\n  return charCode;\n}\nfunction getPrevCodePoint(str, offset) {\n  const charCode = str.charCodeAt(offset - 1);\n  if (isLowSurrogate(charCode) \u0026\u0026 offset \u003e 1) {\n    const prevCharCode = str.charCodeAt(offset - 2);\n    if (isHighSurrogate(prevCharCode)) {\n      return computeCodePoint(prevCharCode, charCode);\n    }\n  }\n  return charCode;\n}\nfunction nextCharLength(str, initialOffset) {\n  const iterator = new GraphemeIterator(str, initialOffset);\n  return iterator.nextGraphemeLength();\n}\nfunction prevCharLength(str, initialOffset) {\n  const iterator = new GraphemeIterator(str, initialOffset);\n  return iterator.prevGraphemeLength();\n}\nfunction getCharContainingOffset(str, offset) {\n  if (offset \u003e 0 \u0026\u0026 isLowSurrogate(str.charCodeAt(offset))) {\n    offset--;\n  }\n  const endOffset = offset + nextCharLength(str, offset);\n  const startOffset = endOffset - prevCharLength(str, endOffset);\n  return [startOffset, endOffset];\n}\nfunction makeContainsRtl() {\n  return /(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA\\u07FE-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u088E\\u08A0-\\u08C9\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE35\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDD23\\uDE80-\\uDEA9\\uDEAD-\\uDF45\\uDF51-\\uDF81\\uDF86-\\uDFF6]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD4B-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;\n}\nfunction containsRTL(str) {\n  if (!CONTAINS_RTL) {\n    CONTAINS_RTL = makeContainsRtl();\n  }\n  return CONTAINS_RTL.test(str);\n}\nfunction isBasicASCII(str) {\n  return IS_BASIC_ASCII.test(str);\n}\nfunction containsUnusualLineTerminators(str) {\n  return UNUSUAL_LINE_TERMINATORS.test(str);\n}\nfunction isFullWidthCharacter(charCode) {\n  return charCode \u003e= 11904 \u0026\u0026 charCode \u003c= 55215 || charCode \u003e= 63744 \u0026\u0026 charCode \u003c= 64255 || charCode \u003e= 65281 \u0026\u0026 charCode \u003c= 65374;\n}\nfunction isEmojiImprecise(x) {\n  return x \u003e= 127462 \u0026\u0026 x \u003c= 127487 || x === 8986 || x === 8987 || x === 9200 || x === 9203 || x \u003e= 9728 \u0026\u0026 x \u003c= 10175 || x === 11088 || x === 11093 || x \u003e= 127744 \u0026\u0026 x \u003c= 128591 || x \u003e= 128640 \u0026\u0026 x \u003c= 128764 || x \u003e= 128992 \u0026\u0026 x \u003c= 129008 || x \u003e= 129280 \u0026\u0026 x \u003c= 129535 || x \u003e= 129648 \u0026\u0026 x \u003c= 129782;\n}\nfunction startsWithUTF8BOM(str) {\n  return !!(str \u0026\u0026 str.length \u003e 0 \u0026\u0026 str.charCodeAt(0) === 65279);\n}\nfunction containsUppercaseCharacter(target, ignoreEscapedChars = false) {\n  if (!target) {\n    return false;\n  }\n  if (ignoreEscapedChars) {\n    target = target.replace(/\\\\./g, \"\");\n  }\n  return target.toLowerCase() !== target;\n}\nfunction singleLetterHash(n2) {\n  const LETTERS_CNT = 90 - 65 + 1;\n  n2 = n2 % (2 * LETTERS_CNT);\n  if (n2 \u003c LETTERS_CNT) {\n    return String.fromCharCode(97 + n2);\n  }\n  return String.fromCharCode(65 + n2 - LETTERS_CNT);\n}\nfunction breakBetweenGraphemeBreakType(breakTypeA, breakTypeB) {\n  if (breakTypeA === 0) {\n    return breakTypeB !== 5 \u0026\u0026 breakTypeB !== 7;\n  }\n  if (breakTypeA === 2) {\n    if (breakTypeB === 3) {\n      return false;\n    }\n  }\n  if (breakTypeA === 4 || breakTypeA === 2 || breakTypeA === 3) {\n    return true;\n  }\n  if (breakTypeB === 4 || breakTypeB === 2 || breakTypeB === 3) {\n    return true;\n  }\n  if (breakTypeA === 8) {\n    if (breakTypeB === 8 || breakTypeB === 9 || breakTypeB === 11 || breakTypeB === 12) {\n      return false;\n    }\n  }\n  if (breakTypeA === 11 || breakTypeA === 9) {\n    if (breakTypeB === 9 || breakTypeB === 10) {\n      return false;\n    }\n  }\n  if (breakTypeA === 12 || breakTypeA === 10) {\n    if (breakTypeB === 10) {\n      return false;\n    }\n  }\n  if (breakTypeB === 5 || breakTypeB === 13) {\n    return false;\n  }\n  if (breakTypeB === 7) {\n    return false;\n  }\n  if (breakTypeA === 1) {\n    return false;\n  }\n  if (breakTypeA === 13 \u0026\u0026 breakTypeB === 14) {\n    return false;\n  }\n  if (breakTypeA === 6 \u0026\u0026 breakTypeB === 6) {\n    return false;\n  }\n  return true;\n}\nfunction getGraphemeBreakRawData() {\n  return JSON.parse(\"[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]\");\n}\nfunction getLeftDeleteOffset(offset, str) {\n  if (offset === 0) {\n    return 0;\n  }\n  const emojiOffset = getOffsetBeforeLastEmojiComponent(offset, str);\n  if (emojiOffset !== void 0) {\n    return emojiOffset;\n  }\n  const iterator = new CodePointIterator(str, offset);\n  iterator.prevCodePoint();\n  return iterator.offset;\n}\nfunction getOffsetBeforeLastEmojiComponent(initialOffset, str) {\n  const iterator = new CodePointIterator(str, initialOffset);\n  let codePoint = iterator.prevCodePoint();\n  while (isEmojiModifier(codePoint) || codePoint === 65039 || codePoint === 8419) {\n    if (iterator.offset === 0) {\n      return void 0;\n    }\n    codePoint = iterator.prevCodePoint();\n  }\n  if (!isEmojiImprecise(codePoint)) {\n    return void 0;\n  }\n  let resultOffset = iterator.offset;\n  if (resultOffset \u003e 0) {\n    const optionalZwjCodePoint = iterator.prevCodePoint();\n    if (optionalZwjCodePoint === 8205) {\n      resultOffset = iterator.offset;\n    }\n  }\n  return resultOffset;\n}\nfunction isEmojiModifier(codePoint) {\n  return 127995 \u003c= codePoint \u0026\u0026 codePoint \u003c= 127999;\n}\nvar _formatRegexp, CodePointIterator, GraphemeIterator, CONTAINS_RTL, IS_BASIC_ASCII, UNUSUAL_LINE_TERMINATORS, CSI_SEQUENCE, OSC_SEQUENCE, ESC_SEQUENCE, CONTROL_SEQUENCES, UTF8_BOM_CHARACTER, GraphemeBreakTree, noBreakWhitespace, AmbiguousCharacters, InvisibleCharacters;\nvar init_strings = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/strings.js\"() {\n    init_cache();\n    init_lazy();\n    _formatRegexp = /{(\\d+)}/g;\n    CodePointIterator = class {\n      get offset() {\n        return this._offset;\n      }\n      constructor(str, offset = 0) {\n        this._str = str;\n        this._len = str.length;\n        this._offset = offset;\n      }\n      setOffset(offset) {\n        this._offset = offset;\n      }\n      prevCodePoint() {\n        const codePoint = getPrevCodePoint(this._str, this._offset);\n        this._offset -= codePoint \u003e= 65536 ? 2 : 1;\n        return codePoint;\n      }\n      nextCodePoint() {\n        const codePoint = getNextCodePoint(this._str, this._len, this._offset);\n        this._offset += codePoint \u003e= 65536 ? 2 : 1;\n        return codePoint;\n      }\n      eol() {\n        return this._offset \u003e= this._len;\n      }\n    };\n    GraphemeIterator = class {\n      get offset() {\n        return this._iterator.offset;\n      }\n      constructor(str, offset = 0) {\n        this._iterator = new CodePointIterator(str, offset);\n      }\n      nextGraphemeLength() {\n        const graphemeBreakTree = GraphemeBreakTree.getInstance();\n        const iterator = this._iterator;\n        const initialOffset = iterator.offset;\n        let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());\n        while (!iterator.eol()) {\n          const offset = iterator.offset;\n          const nextGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());\n          if (breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {\n            iterator.setOffset(offset);\n            break;\n          }\n          graphemeBreakType = nextGraphemeBreakType;\n        }\n        return iterator.offset - initialOffset;\n      }\n      prevGraphemeLength() {\n        const graphemeBreakTree = GraphemeBreakTree.getInstance();\n        const iterator = this._iterator;\n        const initialOffset = iterator.offset;\n        let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());\n        while (iterator.offset \u003e 0) {\n          const offset = iterator.offset;\n          const prevGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());\n          if (breakBetweenGraphemeBreakType(prevGraphemeBreakType, graphemeBreakType)) {\n            iterator.setOffset(offset);\n            break;\n          }\n          graphemeBreakType = prevGraphemeBreakType;\n        }\n        return initialOffset - iterator.offset;\n      }\n      eol() {\n        return this._iterator.eol();\n      }\n    };\n    CONTAINS_RTL = void 0;\n    IS_BASIC_ASCII = /^[\\t\\n\\r\\x20-\\x7E]*$/;\n    UNUSUAL_LINE_TERMINATORS = /[\\u2028\\u2029]/;\n    CSI_SEQUENCE = /(?:\\x1b\\[|\\x9b)[=?\u003e!]?[\\d;:]*[\"$#'* ]?[a-zA-Z@^`{}|~]/;\n    OSC_SEQUENCE = /(?:\\x1b\\]|\\x9d).*?(?:\\x1b\\\\|\\x07|\\x9c)/;\n    ESC_SEQUENCE = /\\x1b(?:[ #%\\(\\)\\*\\+\\-\\.\\/]?[a-zA-Z0-9\\|}~@])/;\n    CONTROL_SEQUENCES = new RegExp(\"(?:\" + [\n      CSI_SEQUENCE.source,\n      OSC_SEQUENCE.source,\n      ESC_SEQUENCE.source\n    ].join(\"|\") + \")\", \"g\");\n    UTF8_BOM_CHARACTER = String.fromCharCode(\n      65279\n      /* CharCode.UTF8_BOM */\n    );\n    GraphemeBreakTree = class _GraphemeBreakTree {\n      static {\n        this._INSTANCE = null;\n      }\n      static getInstance() {\n        if (!_GraphemeBreakTree._INSTANCE) {\n          _GraphemeBreakTree._INSTANCE = new _GraphemeBreakTree();\n        }\n        return _GraphemeBreakTree._INSTANCE;\n      }\n      constructor() {\n        this._data = getGraphemeBreakRawData();\n      }\n      getGraphemeBreakType(codePoint) {\n        if (codePoint \u003c 32) {\n          if (codePoint === 10) {\n            return 3;\n          }\n          if (codePoint === 13) {\n            return 2;\n          }\n          return 4;\n        }\n        if (codePoint \u003c 127) {\n          return 0;\n        }\n        const data = this._data;\n        const nodeCount = data.length / 3;\n        let nodeIndex = 1;\n        while (nodeIndex \u003c= nodeCount) {\n          if (codePoint \u003c data[3 * nodeIndex]) {\n            nodeIndex = 2 * nodeIndex;\n          } else if (codePoint \u003e data[3 * nodeIndex + 1]) {\n            nodeIndex = 2 * nodeIndex + 1;\n          } else {\n            return data[3 * nodeIndex + 2];\n          }\n        }\n        return 0;\n      }\n    };\n    noBreakWhitespace = \"\\xA0\";\n    AmbiguousCharacters = class _AmbiguousCharacters {\n      static {\n        this.ambiguousCharacterData = new Lazy(() =\u003e {\n          return JSON.parse('{\"_common\":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,1523,96,8242,96,1370,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,118002,50,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,118003,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,118004,52,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,118005,53,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,118006,54,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,118007,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,118008,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,118009,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,117974,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,117975,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71913,67,71922,67,65315,67,8557,67,8450,67,8493,67,117976,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,117977,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,117978,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,117979,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,117980,71,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,117981,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,117983,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,117984,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,118001,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,117982,108,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,117985,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,117986,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,117987,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,118000,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,117988,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,117989,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,117990,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,117991,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,117992,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,117993,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,117994,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,117995,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71910,87,71919,87,117996,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,117997,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,117998,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,71909,90,66293,90,65338,90,8484,90,8488,90,117999,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65283,35,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],\"_default\":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"cs\":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"de\":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"es\":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"fr\":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"it\":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"ja\":[8211,45,8218,44,65281,33,8216,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65292,44,65297,49,65307,59],\"ko\":[8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"pl\":[65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"pt-BR\":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"qps-ploc\":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"ru\":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"tr\":[160,32,8211,45,65374,126,8218,44,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],\"zh-hans\":[160,32,65374,126,8218,44,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65297,49],\"zh-hant\":[8211,45,65374,126,8218,44,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89]}');\n        });\n      }\n      static {\n        this.cache = new LRUCachedFunction({ getCacheKey: JSON.stringify }, (locales) =\u003e {\n          function arrayToMap(arr) {\n            const result = /* @__PURE__ */ new Map();\n            for (let i2 = 0; i2 \u003c arr.length; i2 += 2) {\n              result.set(arr[i2], arr[i2 + 1]);\n            }\n            return result;\n          }\n          function mergeMaps(map1, map2) {\n            const result = new Map(map1);\n            for (const [key, value] of map2) {\n              result.set(key, value);\n            }\n            return result;\n          }\n          function intersectMaps(map1, map2) {\n            if (!map1) {\n              return map2;\n            }\n            const result = /* @__PURE__ */ new Map();\n            for (const [key, value] of map1) {\n              if (map2.has(key)) {\n                result.set(key, value);\n              }\n            }\n            return result;\n          }\n          const data = this.ambiguousCharacterData.value;\n          let filteredLocales = locales.filter((l) =\u003e !l.startsWith(\"_\") \u0026\u0026 l in data);\n          if (filteredLocales.length === 0) {\n            filteredLocales = [\"_default\"];\n          }\n          let languageSpecificMap = void 0;\n          for (const locale of filteredLocales) {\n            const map2 = arrayToMap(data[locale]);\n            languageSpecificMap = intersectMaps(languageSpecificMap, map2);\n          }\n          const commonMap = arrayToMap(data[\"_common\"]);\n          const map = mergeMaps(commonMap, languageSpecificMap);\n          return new _AmbiguousCharacters(map);\n        });\n      }\n      static getInstance(locales) {\n        return _AmbiguousCharacters.cache.get(Array.from(locales));\n      }\n      static {\n        this._locales = new Lazy(() =\u003e Object.keys(_AmbiguousCharacters.ambiguousCharacterData.value).filter((k) =\u003e !k.startsWith(\"_\")));\n      }\n      static getLocales() {\n        return _AmbiguousCharacters._locales.value;\n      }\n      constructor(confusableDictionary) {\n        this.confusableDictionary = confusableDictionary;\n      }\n      isAmbiguous(codePoint) {\n        return this.confusableDictionary.has(codePoint);\n      }\n      /**\n       * Returns the non basic ASCII code point that the given code point can be confused,\n       * or undefined if such code point does note exist.\n       */\n      getPrimaryConfusable(codePoint) {\n        return this.confusableDictionary.get(codePoint);\n      }\n      getConfusableCodePoints() {\n        return new Set(this.confusableDictionary.keys());\n      }\n    };\n    InvisibleCharacters = class _InvisibleCharacters {\n      static getRawData() {\n        return JSON.parse('{\"_common\":[11,12,13,127,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999],\"cs\":[173,8203,12288],\"de\":[173,8203,12288],\"es\":[8203,12288],\"fr\":[173,8203,12288],\"it\":[160,173,12288],\"ja\":[173],\"ko\":[173,12288],\"pl\":[173,8203,12288],\"pt-BR\":[173,8203,12288],\"qps-ploc\":[160,173,8203,12288],\"ru\":[173,12288],\"tr\":[160,173,8203,12288],\"zh-hans\":[160,173,8203,12288],\"zh-hant\":[173,12288]}');\n      }\n      static {\n        this._data = void 0;\n      }\n      static getData() {\n        if (!this._data) {\n          this._data = new Set([...Object.values(_InvisibleCharacters.getRawData())].flat());\n        }\n        return this._data;\n      }\n      static isInvisibleCharacter(codePoint) {\n        return _InvisibleCharacters.getData().has(codePoint);\n      }\n      static get codePoints() {\n        return _InvisibleCharacters.getData();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/process.js\nvar safeProcess, vscodeGlobal, cwd, env, platform2;\nvar init_process = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/process.js\"() {\n    init_platform();\n    vscodeGlobal = globalThis.vscode;\n    if (typeof vscodeGlobal !== \"undefined\" \u0026\u0026 typeof vscodeGlobal.process !== \"undefined\") {\n      const sandboxProcess = vscodeGlobal.process;\n      safeProcess = {\n        get platform() {\n          return sandboxProcess.platform;\n        },\n        get arch() {\n          return sandboxProcess.arch;\n        },\n        get env() {\n          return sandboxProcess.env;\n        },\n        cwd() {\n          return sandboxProcess.cwd();\n        }\n      };\n    } else if (typeof process !== \"undefined\" \u0026\u0026 typeof process?.versions?.node === \"string\") {\n      safeProcess = {\n        get platform() {\n          return process.platform;\n        },\n        get arch() {\n          return process.arch;\n        },\n        get env() {\n          return process.env;\n        },\n        cwd() {\n          return process.env[\"VSCODE_CWD\"] || process.cwd();\n        }\n      };\n    } else {\n      safeProcess = {\n        // Supported\n        get platform() {\n          return isWindows ? \"win32\" : isMacintosh ? \"darwin\" : \"linux\";\n        },\n        get arch() {\n          return void 0;\n        },\n        // Unsupported\n        get env() {\n          return {};\n        },\n        cwd() {\n          return \"/\";\n        }\n      };\n    }\n    cwd = safeProcess.cwd;\n    env = safeProcess.env;\n    platform2 = safeProcess.platform;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/path.js\nfunction validateObject(pathObject, name) {\n  if (pathObject === null || typeof pathObject !== \"object\") {\n    throw new ErrorInvalidArgType(name, \"Object\", pathObject);\n  }\n}\nfunction validateString(value, name) {\n  if (typeof value !== \"string\") {\n    throw new ErrorInvalidArgType(name, \"string\", value);\n  }\n}\nfunction isPathSeparator(code) {\n  return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n}\nfunction isPosixPathSeparator(code) {\n  return code === CHAR_FORWARD_SLASH;\n}\nfunction isWindowsDeviceRoot(code) {\n  return code \u003e= CHAR_UPPERCASE_A \u0026\u0026 code \u003c= CHAR_UPPERCASE_Z || code \u003e= CHAR_LOWERCASE_A \u0026\u0026 code \u003c= CHAR_LOWERCASE_Z;\n}\nfunction normalizeString(path, allowAboveRoot, separator2, isPathSeparator3) {\n  let res = \"\";\n  let lastSegmentLength = 0;\n  let lastSlash = -1;\n  let dots = 0;\n  let code = 0;\n  for (let i2 = 0; i2 \u003c= path.length; ++i2) {\n    if (i2 \u003c path.length) {\n      code = path.charCodeAt(i2);\n    } else if (isPathSeparator3(code)) {\n      break;\n    } else {\n      code = CHAR_FORWARD_SLASH;\n    }\n    if (isPathSeparator3(code)) {\n      if (lastSlash === i2 - 1 || dots === 1) {\n      } else if (dots === 2) {\n        if (res.length \u003c 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== CHAR_DOT || res.charCodeAt(res.length - 2) !== CHAR_DOT) {\n          if (res.length \u003e 2) {\n            const lastSlashIndex = res.lastIndexOf(separator2);\n            if (lastSlashIndex === -1) {\n              res = \"\";\n              lastSegmentLength = 0;\n            } else {\n              res = res.slice(0, lastSlashIndex);\n              lastSegmentLength = res.length - 1 - res.lastIndexOf(separator2);\n            }\n            lastSlash = i2;\n            dots = 0;\n            continue;\n          } else if (res.length !== 0) {\n            res = \"\";\n            lastSegmentLength = 0;\n            lastSlash = i2;\n            dots = 0;\n            continue;\n          }\n        }\n        if (allowAboveRoot) {\n          res += res.length \u003e 0 ? `${separator2}..` : \"..\";\n          lastSegmentLength = 2;\n        }\n      } else {\n        if (res.length \u003e 0) {\n          res += `${separator2}${path.slice(lastSlash + 1, i2)}`;\n        } else {\n          res = path.slice(lastSlash + 1, i2);\n        }\n        lastSegmentLength = i2 - lastSlash - 1;\n      }\n      lastSlash = i2;\n      dots = 0;\n    } else if (code === CHAR_DOT \u0026\u0026 dots !== -1) {\n      ++dots;\n    } else {\n      dots = -1;\n    }\n  }\n  return res;\n}\nfunction formatExt(ext) {\n  return ext ? `${ext[0] === \".\" ? \"\" : \".\"}${ext}` : \"\";\n}\nfunction _format2(sep2, pathObject) {\n  validateObject(pathObject, \"pathObject\");\n  const dir = pathObject.dir || pathObject.root;\n  const base = pathObject.base || `${pathObject.name || \"\"}${formatExt(pathObject.ext)}`;\n  if (!dir) {\n    return base;\n  }\n  return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep2}${base}`;\n}\nvar CHAR_UPPERCASE_A, CHAR_LOWERCASE_A, CHAR_UPPERCASE_Z, CHAR_LOWERCASE_Z, CHAR_DOT, CHAR_FORWARD_SLASH, CHAR_BACKWARD_SLASH, CHAR_COLON, CHAR_QUESTION_MARK, ErrorInvalidArgType, platformIsWin32, win32, posixCwd, posix, normalize, resolve, relative, dirname, basename, extname, sep;\nvar init_path = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/path.js\"() {\n    init_process();\n    CHAR_UPPERCASE_A = 65;\n    CHAR_LOWERCASE_A = 97;\n    CHAR_UPPERCASE_Z = 90;\n    CHAR_LOWERCASE_Z = 122;\n    CHAR_DOT = 46;\n    CHAR_FORWARD_SLASH = 47;\n    CHAR_BACKWARD_SLASH = 92;\n    CHAR_COLON = 58;\n    CHAR_QUESTION_MARK = 63;\n    ErrorInvalidArgType = class extends Error {\n      constructor(name, expected, actual) {\n        let determiner;\n        if (typeof expected === \"string\" \u0026\u0026 expected.indexOf(\"not \") === 0) {\n          determiner = \"must not be\";\n          expected = expected.replace(/^not /, \"\");\n        } else {\n          determiner = \"must be\";\n        }\n        const type = name.indexOf(\".\") !== -1 ? \"property\" : \"argument\";\n        let msg = `The \"${name}\" ${type} ${determiner} of type ${expected}`;\n        msg += `. Received type ${typeof actual}`;\n        super(msg);\n        this.code = \"ERR_INVALID_ARG_TYPE\";\n      }\n    };\n    platformIsWin32 = platform2 === \"win32\";\n    win32 = {\n      // path.resolve([from ...], to)\n      resolve(...pathSegments) {\n        let resolvedDevice = \"\";\n        let resolvedTail = \"\";\n        let resolvedAbsolute = false;\n        for (let i2 = pathSegments.length - 1; i2 \u003e= -1; i2--) {\n          let path;\n          if (i2 \u003e= 0) {\n            path = pathSegments[i2];\n            validateString(path, `paths[${i2}]`);\n            if (path.length === 0) {\n              continue;\n            }\n          } else if (resolvedDevice.length === 0) {\n            path = cwd();\n          } else {\n            path = env[`=${resolvedDevice}`] || cwd();\n            if (path === void 0 || path.slice(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() \u0026\u0026 path.charCodeAt(2) === CHAR_BACKWARD_SLASH) {\n              path = `${resolvedDevice}\\\\`;\n            }\n          }\n          const len = path.length;\n          let rootEnd = 0;\n          let device = \"\";\n          let isAbsolute = false;\n          const code = path.charCodeAt(0);\n          if (len === 1) {\n            if (isPathSeparator(code)) {\n              rootEnd = 1;\n              isAbsolute = true;\n            }\n          } else if (isPathSeparator(code)) {\n            isAbsolute = true;\n            if (isPathSeparator(path.charCodeAt(1))) {\n              let j = 2;\n              let last = j;\n              while (j \u003c len \u0026\u0026 !isPathSeparator(path.charCodeAt(j))) {\n                j++;\n              }\n              if (j \u003c len \u0026\u0026 j !== last) {\n                const firstPart = path.slice(last, j);\n                last = j;\n                while (j \u003c len \u0026\u0026 isPathSeparator(path.charCodeAt(j))) {\n                  j++;\n                }\n                if (j \u003c len \u0026\u0026 j !== last) {\n                  last = j;\n                  while (j \u003c len \u0026\u0026 !isPathSeparator(path.charCodeAt(j))) {\n                    j++;\n                  }\n                  if (j === len || j !== last) {\n                    device = `\\\\\\\\${firstPart}\\\\${path.slice(last, j)}`;\n                    rootEnd = j;\n                  }\n                }\n              }\n            } else {\n              rootEnd = 1;\n            }\n          } else if (isWindowsDeviceRoot(code) \u0026\u0026 path.charCodeAt(1) === CHAR_COLON) {\n            device = path.slice(0, 2);\n            rootEnd = 2;\n            if (len \u003e 2 \u0026\u0026 isPathSeparator(path.charCodeAt(2))) {\n              isAbsolute = true;\n              rootEnd = 3;\n            }\n          }\n          if (device.length \u003e 0) {\n            if (resolvedDevice.length \u003e 0) {\n              if (device.toLowerCase() !== resolvedDevice.toLowerCase()) {\n                continue;\n              }\n            } else {\n              resolvedDevice = device;\n            }\n          }\n          if (resolvedAbsolute) {\n            if (resolvedDevice.length \u003e 0) {\n              break;\n            }\n          } else {\n            resolvedTail = `${path.slice(rootEnd)}\\\\${resolvedTail}`;\n            resolvedAbsolute = isAbsolute;\n            if (isAbsolute \u0026\u0026 resolvedDevice.length \u003e 0) {\n              break;\n            }\n          }\n        }\n        resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, \"\\\\\", isPathSeparator);\n        return resolvedAbsolute ? `${resolvedDevice}\\\\${resolvedTail}` : `${resolvedDevice}${resolvedTail}` || \".\";\n      },\n      normalize(path) {\n        validateString(path, \"path\");\n        const len = path.length;\n        if (len === 0) {\n          return \".\";\n        }\n        let rootEnd = 0;\n        let device;\n        let isAbsolute = false;\n        const code = path.charCodeAt(0);\n        if (len === 1) {\n          return isPosixPathSeparator(code) ? \"\\\\\" : path;\n        }\n        if (isPathSeparator(code)) {\n          isAbsolute = true;\n          if (isPathSeparator(path.charCodeAt(1))) {\n            let j = 2;\n            let last = j;\n            while (j \u003c len \u0026\u0026 !isPathSeparator(path.charCodeAt(j))) {\n              j++;\n            }\n            if (j \u003c len \u0026\u0026 j !== last) {\n              const firstPart = path.slice(last, j);\n              last = j;\n              while (j \u003c len \u0026\u0026 isPathSeparator(path.charCodeAt(j))) {\n                j++;\n              }\n              if (j \u003c len \u0026\u0026 j !== last) {\n                last = j;\n                while (j \u003c len \u0026\u0026 !isPathSeparator(path.charCodeAt(j))) {\n                  j++;\n                }\n                if (j === len) {\n                  return `\\\\\\\\${firstPart}\\\\${path.slice(last)}\\\\`;\n                }\n                if (j !== last) {\n                  device = `\\\\\\\\${firstPart}\\\\${path.slice(last, j)}`;\n                  rootEnd = j;\n                }\n              }\n            }\n          } else {\n            rootEnd = 1;\n          }\n        } else if (isWindowsDeviceRoot(code) \u0026\u0026 path.charCodeAt(1) === CHAR_COLON) {\n          device = path.slice(0, 2);\n          rootEnd = 2;\n          if (len \u003e 2 \u0026\u0026 isPathSeparator(path.charCodeAt(2))) {\n            isAbsolute = true;\n            rootEnd = 3;\n          }\n        }\n        let tail2 = rootEnd \u003c len ? normalizeString(path.slice(rootEnd), !isAbsolute, \"\\\\\", isPathSeparator) : \"\";\n        if (tail2.length === 0 \u0026\u0026 !isAbsolute) {\n          tail2 = \".\";\n        }\n        if (tail2.length \u003e 0 \u0026\u0026 isPathSeparator(path.charCodeAt(len - 1))) {\n          tail2 += \"\\\\\";\n        }\n        if (!isAbsolute \u0026\u0026 device === void 0 \u0026\u0026 path.includes(\":\")) {\n          if (tail2.length \u003e= 2 \u0026\u0026 isWindowsDeviceRoot(tail2.charCodeAt(0)) \u0026\u0026 tail2.charCodeAt(1) === CHAR_COLON) {\n            return `.\\\\${tail2}`;\n          }\n          let index = path.indexOf(\":\");\n          do {\n            if (index === len - 1 || isPathSeparator(path.charCodeAt(index + 1))) {\n              return `.\\\\${tail2}`;\n            }\n          } while ((index = path.indexOf(\":\", index + 1)) !== -1);\n        }\n        if (device === void 0) {\n          return isAbsolute ? `\\\\${tail2}` : tail2;\n        }\n        return isAbsolute ? `${device}\\\\${tail2}` : `${device}${tail2}`;\n      },\n      isAbsolute(path) {\n        validateString(path, \"path\");\n        const len = path.length;\n        if (len === 0) {\n          return false;\n        }\n        const code = path.charCodeAt(0);\n        return isPathSeparator(code) || // Possible device root\n        len \u003e 2 \u0026\u0026 isWindowsDeviceRoot(code) \u0026\u0026 path.charCodeAt(1) === CHAR_COLON \u0026\u0026 isPathSeparator(path.charCodeAt(2));\n      },\n      join(...paths) {\n        if (paths.length === 0) {\n          return \".\";\n        }\n        let joined;\n        let firstPart;\n        for (let i2 = 0; i2 \u003c paths.length; ++i2) {\n          const arg = paths[i2];\n          validateString(arg, \"path\");\n          if (arg.length \u003e 0) {\n            if (joined === void 0) {\n              joined = firstPart = arg;\n            } else {\n              joined += `\\\\${arg}`;\n            }\n          }\n        }\n        if (joined === void 0) {\n          return \".\";\n        }\n        let needsReplace = true;\n        let slashCount = 0;\n        if (typeof firstPart === \"string\" \u0026\u0026 isPathSeparator(firstPart.charCodeAt(0))) {\n          ++slashCount;\n          const firstLen = firstPart.length;\n          if (firstLen \u003e 1 \u0026\u0026 isPathSeparator(firstPart.charCodeAt(1))) {\n            ++slashCount;\n            if (firstLen \u003e 2) {\n              if (isPathSeparator(firstPart.charCodeAt(2))) {\n                ++slashCount;\n              } else {\n                needsReplace = false;\n              }\n            }\n          }\n        }\n        if (needsReplace) {\n          while (slashCount \u003c joined.length \u0026\u0026 isPathSeparator(joined.charCodeAt(slashCount))) {\n            slashCount++;\n          }\n          if (slashCount \u003e= 2) {\n            joined = `\\\\${joined.slice(slashCount)}`;\n          }\n        }\n        return win32.normalize(joined);\n      },\n      // It will solve the relative path from `from` to `to`, for instance:\n      //  from = 'C:\\\\orandea\\\\test\\\\aaa'\n      //  to = 'C:\\\\orandea\\\\impl\\\\bbb'\n      // The output of the function should be: '..\\\\..\\\\impl\\\\bbb'\n      relative(from, to) {\n        validateString(from, \"from\");\n        validateString(to, \"to\");\n        if (from === to) {\n          return \"\";\n        }\n        const fromOrig = win32.resolve(from);\n        const toOrig = win32.resolve(to);\n        if (fromOrig === toOrig) {\n          return \"\";\n        }\n        from = fromOrig.toLowerCase();\n        to = toOrig.toLowerCase();\n        if (from === to) {\n          return \"\";\n        }\n        if (fromOrig.length !== from.length || toOrig.length !== to.length) {\n          const fromSplit = fromOrig.split(\"\\\\\");\n          const toSplit = toOrig.split(\"\\\\\");\n          if (fromSplit[fromSplit.length - 1] === \"\") {\n            fromSplit.pop();\n          }\n          if (toSplit[toSplit.length - 1] === \"\") {\n            toSplit.pop();\n          }\n          const fromLen2 = fromSplit.length;\n          const toLen2 = toSplit.length;\n          const length2 = fromLen2 \u003c toLen2 ? fromLen2 : toLen2;\n          let i3;\n          for (i3 = 0; i3 \u003c length2; i3++) {\n            if (fromSplit[i3].toLowerCase() !== toSplit[i3].toLowerCase()) {\n              break;\n            }\n          }\n          if (i3 === 0) {\n            return toOrig;\n          } else if (i3 === length2) {\n            if (toLen2 \u003e length2) {\n              return toSplit.slice(i3).join(\"\\\\\");\n            }\n            if (fromLen2 \u003e length2) {\n              return \"..\\\\\".repeat(fromLen2 - 1 - i3) + \"..\";\n            }\n            return \"\";\n          }\n          return \"..\\\\\".repeat(fromLen2 - i3) + toSplit.slice(i3).join(\"\\\\\");\n        }\n        let fromStart = 0;\n        while (fromStart \u003c from.length \u0026\u0026 from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) {\n          fromStart++;\n        }\n        let fromEnd = from.length;\n        while (fromEnd - 1 \u003e fromStart \u0026\u0026 from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) {\n          fromEnd--;\n        }\n        const fromLen = fromEnd - fromStart;\n        let toStart = 0;\n        while (toStart \u003c to.length \u0026\u0026 to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {\n          toStart++;\n        }\n        let toEnd = to.length;\n        while (toEnd - 1 \u003e toStart \u0026\u0026 to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) {\n          toEnd--;\n        }\n        const toLen = toEnd - toStart;\n        const length = fromLen \u003c toLen ? fromLen : toLen;\n        let lastCommonSep = -1;\n        let i2 = 0;\n        for (; i2 \u003c length; i2++) {\n          const fromCode = from.charCodeAt(fromStart + i2);\n          if (fromCode !== to.charCodeAt(toStart + i2)) {\n            break;\n          } else if (fromCode === CHAR_BACKWARD_SLASH) {\n            lastCommonSep = i2;\n          }\n        }\n        if (i2 !== length) {\n          if (lastCommonSep === -1) {\n            return toOrig;\n          }\n        } else {\n          if (toLen \u003e length) {\n            if (to.charCodeAt(toStart + i2) === CHAR_BACKWARD_SLASH) {\n              return toOrig.slice(toStart + i2 + 1);\n            }\n            if (i2 === 2) {\n              return toOrig.slice(toStart + i2);\n            }\n          }\n          if (fromLen \u003e length) {\n            if (from.charCodeAt(fromStart + i2) === CHAR_BACKWARD_SLASH) {\n              lastCommonSep = i2;\n            } else if (i2 === 2) {\n              lastCommonSep = 3;\n            }\n          }\n          if (lastCommonSep === -1) {\n            lastCommonSep = 0;\n          }\n        }\n        let out = \"\";\n        for (i2 = fromStart + lastCommonSep + 1; i2 \u003c= fromEnd; ++i2) {\n          if (i2 === fromEnd || from.charCodeAt(i2) === CHAR_BACKWARD_SLASH) {\n            out += out.length === 0 ? \"..\" : \"\\\\..\";\n          }\n        }\n        toStart += lastCommonSep;\n        if (out.length \u003e 0) {\n          return `${out}${toOrig.slice(toStart, toEnd)}`;\n        }\n        if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {\n          ++toStart;\n        }\n        return toOrig.slice(toStart, toEnd);\n      },\n      toNamespacedPath(path) {\n        if (typeof path !== \"string\" || path.length === 0) {\n          return path;\n        }\n        const resolvedPath = win32.resolve(path);\n        if (resolvedPath.length \u003c= 2) {\n          return path;\n        }\n        if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) {\n          if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) {\n            const code = resolvedPath.charCodeAt(2);\n            if (code !== CHAR_QUESTION_MARK \u0026\u0026 code !== CHAR_DOT) {\n              return `\\\\\\\\?\\\\UNC\\\\${resolvedPath.slice(2)}`;\n            }\n          }\n        } else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) \u0026\u0026 resolvedPath.charCodeAt(1) === CHAR_COLON \u0026\u0026 resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) {\n          return `\\\\\\\\?\\\\${resolvedPath}`;\n        }\n        return resolvedPath;\n      },\n      dirname(path) {\n        validateString(path, \"path\");\n        const len = path.length;\n        if (len === 0) {\n          return \".\";\n        }\n        let rootEnd = -1;\n        let offset = 0;\n        const code = path.charCodeAt(0);\n        if (len === 1) {\n          return isPathSeparator(code) ? path : \".\";\n        }\n        if (isPathSeparator(code)) {\n          rootEnd = offset = 1;\n          if (isPathSeparator(path.charCodeAt(1))) {\n            let j = 2;\n            let last = j;\n            while (j \u003c len \u0026\u0026 !isPathSeparator(path.charCodeAt(j))) {\n              j++;\n            }\n            if (j \u003c len \u0026\u0026 j !== last) {\n              last = j;\n              while (j \u003c len \u0026\u0026 isPathSeparator(path.charCodeAt(j))) {\n                j++;\n              }\n              if (j \u003c len \u0026\u0026 j !== last) {\n                last = j;\n                while (j \u003c len \u0026\u0026 !isPathSeparator(path.charCodeAt(j))) {\n                  j++;\n                }\n                if (j === len) {\n                  return path;\n                }\n                if (j !== last) {\n                  rootEnd = offset = j + 1;\n                }\n              }\n            }\n          }\n        } else if (isWindowsDeviceRoot(code) \u0026\u0026 path.charCodeAt(1) === CHAR_COLON) {\n          rootEnd = len \u003e 2 \u0026\u0026 isPathSeparator(path.charCodeAt(2)) ? 3 : 2;\n          offset = rootEnd;\n        }\n        let end = -1;\n        let matchedSlash = true;\n        for (let i2 = len - 1; i2 \u003e= offset; --i2) {\n          if (isPathSeparator(path.charCodeAt(i2))) {\n            if (!matchedSlash) {\n              end = i2;\n              break;\n            }\n          } else {\n            matchedSlash = false;\n          }\n        }\n        if (end === -1) {\n          if (rootEnd === -1) {\n            return \".\";\n          }\n          end = rootEnd;\n        }\n        return path.slice(0, end);\n      },\n      basename(path, suffix) {\n        if (suffix !== void 0) {\n          validateString(suffix, \"suffix\");\n        }\n        validateString(path, \"path\");\n        let start = 0;\n        let end = -1;\n        let matchedSlash = true;\n        let i2;\n        if (path.length \u003e= 2 \u0026\u0026 isWindowsDeviceRoot(path.charCodeAt(0)) \u0026\u0026 path.charCodeAt(1) === CHAR_COLON) {\n          start = 2;\n        }\n        if (suffix !== void 0 \u0026\u0026 suffix.length \u003e 0 \u0026\u0026 suffix.length \u003c= path.length) {\n          if (suffix === path) {\n            return \"\";\n          }\n          let extIdx = suffix.length - 1;\n          let firstNonSlashEnd = -1;\n          for (i2 = path.length - 1; i2 \u003e= start; --i2) {\n            const code = path.charCodeAt(i2);\n            if (isPathSeparator(code)) {\n              if (!matchedSlash) {\n                start = i2 + 1;\n                break;\n              }\n            } else {\n              if (firstNonSlashEnd === -1) {\n                matchedSlash = false;\n                firstNonSlashEnd = i2 + 1;\n              }\n              if (extIdx \u003e= 0) {\n                if (code === suffix.charCodeAt(extIdx)) {\n                  if (--extIdx === -1) {\n                    end = i2;\n                  }\n                } else {\n                  extIdx = -1;\n                  end = firstNonSlashEnd;\n                }\n              }\n            }\n          }\n          if (start === end) {\n            end = firstNonSlashEnd;\n          } else if (end === -1) {\n            end = path.length;\n          }\n          return path.slice(start, end);\n        }\n        for (i2 = path.length - 1; i2 \u003e= start; --i2) {\n          if (isPathSeparator(path.charCodeAt(i2))) {\n            if (!matchedSlash) {\n              start = i2 + 1;\n              break;\n            }\n          } else if (end === -1) {\n            matchedSlash = false;\n            end = i2 + 1;\n          }\n        }\n        if (end === -1) {\n          return \"\";\n        }\n        return path.slice(start, end);\n      },\n      extname(path) {\n        validateString(path, \"path\");\n        let start = 0;\n        let startDot = -1;\n        let startPart = 0;\n        let end = -1;\n        let matchedSlash = true;\n        let preDotState = 0;\n        if (path.length \u003e= 2 \u0026\u0026 path.charCodeAt(1) === CHAR_COLON \u0026\u0026 isWindowsDeviceRoot(path.charCodeAt(0))) {\n          start = startPart = 2;\n        }\n        for (let i2 = path.length - 1; i2 \u003e= start; --i2) {\n          const code = path.charCodeAt(i2);\n          if (isPathSeparator(code)) {\n            if (!matchedSlash) {\n              startPart = i2 + 1;\n              break;\n            }\n            continue;\n          }\n          if (end === -1) {\n            matchedSlash = false;\n            end = i2 + 1;\n          }\n          if (code === CHAR_DOT) {\n            if (startDot === -1) {\n              startDot = i2;\n            } else if (preDotState !== 1) {\n              preDotState = 1;\n            }\n          } else if (startDot !== -1) {\n            preDotState = -1;\n          }\n        }\n        if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n        preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n        preDotState === 1 \u0026\u0026 startDot === end - 1 \u0026\u0026 startDot === startPart + 1) {\n          return \"\";\n        }\n        return path.slice(startDot, end);\n      },\n      format: _format2.bind(null, \"\\\\\"),\n      parse(path) {\n        validateString(path, \"path\");\n        const ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n        if (path.length === 0) {\n          return ret;\n        }\n        const len = path.length;\n        let rootEnd = 0;\n        let code = path.charCodeAt(0);\n        if (len === 1) {\n          if (isPathSeparator(code)) {\n            ret.root = ret.dir = path;\n            return ret;\n          }\n          ret.base = ret.name = path;\n          return ret;\n        }\n        if (isPathSeparator(code)) {\n          rootEnd = 1;\n          if (isPathSeparator(path.charCodeAt(1))) {\n            let j = 2;\n            let last = j;\n            while (j \u003c len \u0026\u0026 !isPathSeparator(path.charCodeAt(j))) {\n              j++;\n            }\n            if (j \u003c len \u0026\u0026 j !== last) {\n              last = j;\n              while (j \u003c len \u0026\u0026 isPathSeparator(path.charCodeAt(j))) {\n                j++;\n              }\n              if (j \u003c len \u0026\u0026 j !== last) {\n                last = j;\n                while (j \u003c len \u0026\u0026 !isPathSeparator(path.charCodeAt(j))) {\n                  j++;\n                }\n                if (j === len) {\n                  rootEnd = j;\n                } else if (j !== last) {\n                  rootEnd = j + 1;\n                }\n              }\n            }\n          }\n        } else if (isWindowsDeviceRoot(code) \u0026\u0026 path.charCodeAt(1) === CHAR_COLON) {\n          if (len \u003c= 2) {\n            ret.root = ret.dir = path;\n            return ret;\n          }\n          rootEnd = 2;\n          if (isPathSeparator(path.charCodeAt(2))) {\n            if (len === 3) {\n              ret.root = ret.dir = path;\n              return ret;\n            }\n            rootEnd = 3;\n          }\n        }\n        if (rootEnd \u003e 0) {\n          ret.root = path.slice(0, rootEnd);\n        }\n        let startDot = -1;\n        let startPart = rootEnd;\n        let end = -1;\n        let matchedSlash = true;\n        let i2 = path.length - 1;\n        let preDotState = 0;\n        for (; i2 \u003e= rootEnd; --i2) {\n          code = path.charCodeAt(i2);\n          if (isPathSeparator(code)) {\n            if (!matchedSlash) {\n              startPart = i2 + 1;\n              break;\n            }\n            continue;\n          }\n          if (end === -1) {\n            matchedSlash = false;\n            end = i2 + 1;\n          }\n          if (code === CHAR_DOT) {\n            if (startDot === -1) {\n              startDot = i2;\n            } else if (preDotState !== 1) {\n              preDotState = 1;\n            }\n          } else if (startDot !== -1) {\n            preDotState = -1;\n          }\n        }\n        if (end !== -1) {\n          if (startDot === -1 || // We saw a non-dot character immediately before the dot\n          preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n          preDotState === 1 \u0026\u0026 startDot === end - 1 \u0026\u0026 startDot === startPart + 1) {\n            ret.base = ret.name = path.slice(startPart, end);\n          } else {\n            ret.name = path.slice(startPart, startDot);\n            ret.base = path.slice(startPart, end);\n            ret.ext = path.slice(startDot, end);\n          }\n        }\n        if (startPart \u003e 0 \u0026\u0026 startPart !== rootEnd) {\n          ret.dir = path.slice(0, startPart - 1);\n        } else {\n          ret.dir = ret.root;\n        }\n        return ret;\n      },\n      sep: \"\\\\\",\n      delimiter: \";\",\n      win32: null,\n      posix: null\n    };\n    posixCwd = (() =\u003e {\n      if (platformIsWin32) {\n        const regexp = /\\\\/g;\n        return () =\u003e {\n          const cwd2 = cwd().replace(regexp, \"/\");\n          return cwd2.slice(cwd2.indexOf(\"/\"));\n        };\n      }\n      return () =\u003e cwd();\n    })();\n    posix = {\n      // path.resolve([from ...], to)\n      resolve(...pathSegments) {\n        let resolvedPath = \"\";\n        let resolvedAbsolute = false;\n        for (let i2 = pathSegments.length - 1; i2 \u003e= 0 \u0026\u0026 !resolvedAbsolute; i2--) {\n          const path = pathSegments[i2];\n          validateString(path, `paths[${i2}]`);\n          if (path.length === 0) {\n            continue;\n          }\n          resolvedPath = `${path}/${resolvedPath}`;\n          resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        }\n        if (!resolvedAbsolute) {\n          const cwd2 = posixCwd();\n          resolvedPath = `${cwd2}/${resolvedPath}`;\n          resolvedAbsolute = cwd2.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        }\n        resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, \"/\", isPosixPathSeparator);\n        if (resolvedAbsolute) {\n          return `/${resolvedPath}`;\n        }\n        return resolvedPath.length \u003e 0 ? resolvedPath : \".\";\n      },\n      normalize(path) {\n        validateString(path, \"path\");\n        if (path.length === 0) {\n          return \".\";\n        }\n        const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH;\n        path = normalizeString(path, !isAbsolute, \"/\", isPosixPathSeparator);\n        if (path.length === 0) {\n          if (isAbsolute) {\n            return \"/\";\n          }\n          return trailingSeparator ? \"./\" : \".\";\n        }\n        if (trailingSeparator) {\n          path += \"/\";\n        }\n        return isAbsolute ? `/${path}` : path;\n      },\n      isAbsolute(path) {\n        validateString(path, \"path\");\n        return path.length \u003e 0 \u0026\u0026 path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n      },\n      join(...paths) {\n        if (paths.length === 0) {\n          return \".\";\n        }\n        const path = [];\n        for (let i2 = 0; i2 \u003c paths.length; ++i2) {\n          const arg = paths[i2];\n          validateString(arg, \"path\");\n          if (arg.length \u003e 0) {\n            path.push(arg);\n          }\n        }\n        if (path.length === 0) {\n          return \".\";\n        }\n        return posix.normalize(path.join(\"/\"));\n      },\n      relative(from, to) {\n        validateString(from, \"from\");\n        validateString(to, \"to\");\n        if (from === to) {\n          return \"\";\n        }\n        from = posix.resolve(from);\n        to = posix.resolve(to);\n        if (from === to) {\n          return \"\";\n        }\n        const fromStart = 1;\n        const fromEnd = from.length;\n        const fromLen = fromEnd - fromStart;\n        const toStart = 1;\n        const toLen = to.length - toStart;\n        const length = fromLen \u003c toLen ? fromLen : toLen;\n        let lastCommonSep = -1;\n        let i2 = 0;\n        for (; i2 \u003c length; i2++) {\n          const fromCode = from.charCodeAt(fromStart + i2);\n          if (fromCode !== to.charCodeAt(toStart + i2)) {\n            break;\n          } else if (fromCode === CHAR_FORWARD_SLASH) {\n            lastCommonSep = i2;\n          }\n        }\n        if (i2 === length) {\n          if (toLen \u003e length) {\n            if (to.charCodeAt(toStart + i2) === CHAR_FORWARD_SLASH) {\n              return to.slice(toStart + i2 + 1);\n            }\n            if (i2 === 0) {\n              return to.slice(toStart + i2);\n            }\n          } else if (fromLen \u003e length) {\n            if (from.charCodeAt(fromStart + i2) === CHAR_FORWARD_SLASH) {\n              lastCommonSep = i2;\n            } else if (i2 === 0) {\n              lastCommonSep = 0;\n            }\n          }\n        }\n        let out = \"\";\n        for (i2 = fromStart + lastCommonSep + 1; i2 \u003c= fromEnd; ++i2) {\n          if (i2 === fromEnd || from.charCodeAt(i2) === CHAR_FORWARD_SLASH) {\n            out += out.length === 0 ? \"..\" : \"/..\";\n          }\n        }\n        return `${out}${to.slice(toStart + lastCommonSep)}`;\n      },\n      toNamespacedPath(path) {\n        return path;\n      },\n      dirname(path) {\n        validateString(path, \"path\");\n        if (path.length === 0) {\n          return \".\";\n        }\n        const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        let end = -1;\n        let matchedSlash = true;\n        for (let i2 = path.length - 1; i2 \u003e= 1; --i2) {\n          if (path.charCodeAt(i2) === CHAR_FORWARD_SLASH) {\n            if (!matchedSlash) {\n              end = i2;\n              break;\n            }\n          } else {\n            matchedSlash = false;\n          }\n        }\n        if (end === -1) {\n          return hasRoot ? \"/\" : \".\";\n        }\n        if (hasRoot \u0026\u0026 end === 1) {\n          return \"//\";\n        }\n        return path.slice(0, end);\n      },\n      basename(path, suffix) {\n        if (suffix !== void 0) {\n          validateString(suffix, \"suffix\");\n        }\n        validateString(path, \"path\");\n        let start = 0;\n        let end = -1;\n        let matchedSlash = true;\n        let i2;\n        if (suffix !== void 0 \u0026\u0026 suffix.length \u003e 0 \u0026\u0026 suffix.length \u003c= path.length) {\n          if (suffix === path) {\n            return \"\";\n          }\n          let extIdx = suffix.length - 1;\n          let firstNonSlashEnd = -1;\n          for (i2 = path.length - 1; i2 \u003e= 0; --i2) {\n            const code = path.charCodeAt(i2);\n            if (code === CHAR_FORWARD_SLASH) {\n              if (!matchedSlash) {\n                start = i2 + 1;\n                break;\n              }\n            } else {\n              if (firstNonSlashEnd === -1) {\n                matchedSlash = false;\n                firstNonSlashEnd = i2 + 1;\n              }\n              if (extIdx \u003e= 0) {\n                if (code === suffix.charCodeAt(extIdx)) {\n                  if (--extIdx === -1) {\n                    end = i2;\n                  }\n                } else {\n                  extIdx = -1;\n                  end = firstNonSlashEnd;\n                }\n              }\n            }\n          }\n          if (start === end) {\n            end = firstNonSlashEnd;\n          } else if (end === -1) {\n            end = path.length;\n          }\n          return path.slice(start, end);\n        }\n        for (i2 = path.length - 1; i2 \u003e= 0; --i2) {\n          if (path.charCodeAt(i2) === CHAR_FORWARD_SLASH) {\n            if (!matchedSlash) {\n              start = i2 + 1;\n              break;\n            }\n          } else if (end === -1) {\n            matchedSlash = false;\n            end = i2 + 1;\n          }\n        }\n        if (end === -1) {\n          return \"\";\n        }\n        return path.slice(start, end);\n      },\n      extname(path) {\n        validateString(path, \"path\");\n        let startDot = -1;\n        let startPart = 0;\n        let end = -1;\n        let matchedSlash = true;\n        let preDotState = 0;\n        for (let i2 = path.length - 1; i2 \u003e= 0; --i2) {\n          const char = path[i2];\n          if (char === \"/\") {\n            if (!matchedSlash) {\n              startPart = i2 + 1;\n              break;\n            }\n            continue;\n          }\n          if (end === -1) {\n            matchedSlash = false;\n            end = i2 + 1;\n          }\n          if (char === \".\") {\n            if (startDot === -1) {\n              startDot = i2;\n            } else if (preDotState !== 1) {\n              preDotState = 1;\n            }\n          } else if (startDot !== -1) {\n            preDotState = -1;\n          }\n        }\n        if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n        preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n        preDotState === 1 \u0026\u0026 startDot === end - 1 \u0026\u0026 startDot === startPart + 1) {\n          return \"\";\n        }\n        return path.slice(startDot, end);\n      },\n      format: _format2.bind(null, \"/\"),\n      parse(path) {\n        validateString(path, \"path\");\n        const ret = { root: \"\", dir: \"\", base: \"\", ext: \"\", name: \"\" };\n        if (path.length === 0) {\n          return ret;\n        }\n        const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n        let start;\n        if (isAbsolute) {\n          ret.root = \"/\";\n          start = 1;\n        } else {\n          start = 0;\n        }\n        let startDot = -1;\n        let startPart = 0;\n        let end = -1;\n        let matchedSlash = true;\n        let i2 = path.length - 1;\n        let preDotState = 0;\n        for (; i2 \u003e= start; --i2) {\n          const code = path.charCodeAt(i2);\n          if (code === CHAR_FORWARD_SLASH) {\n            if (!matchedSlash) {\n              startPart = i2 + 1;\n              break;\n            }\n            continue;\n          }\n          if (end === -1) {\n            matchedSlash = false;\n            end = i2 + 1;\n          }\n          if (code === CHAR_DOT) {\n            if (startDot === -1) {\n              startDot = i2;\n            } else if (preDotState !== 1) {\n              preDotState = 1;\n            }\n          } else if (startDot !== -1) {\n            preDotState = -1;\n          }\n        }\n        if (end !== -1) {\n          const start2 = startPart === 0 \u0026\u0026 isAbsolute ? 1 : startPart;\n          if (startDot === -1 || // We saw a non-dot character immediately before the dot\n          preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n          preDotState === 1 \u0026\u0026 startDot === end - 1 \u0026\u0026 startDot === startPart + 1) {\n            ret.base = ret.name = path.slice(start2, end);\n          } else {\n            ret.name = path.slice(start2, startDot);\n            ret.base = path.slice(start2, end);\n            ret.ext = path.slice(startDot, end);\n          }\n        }\n        if (startPart \u003e 0) {\n          ret.dir = path.slice(0, startPart - 1);\n        } else if (isAbsolute) {\n          ret.dir = \"/\";\n        }\n        return ret;\n      },\n      sep: \"/\",\n      delimiter: \":\",\n      win32: null,\n      posix: null\n    };\n    posix.win32 = win32.win32 = win32;\n    posix.posix = win32.posix = posix;\n    normalize = platformIsWin32 ? win32.normalize : posix.normalize;\n    resolve = platformIsWin32 ? win32.resolve : posix.resolve;\n    relative = platformIsWin32 ? win32.relative : posix.relative;\n    dirname = platformIsWin32 ? win32.dirname : posix.dirname;\n    basename = platformIsWin32 ? win32.basename : posix.basename;\n    extname = platformIsWin32 ? win32.extname : posix.extname;\n    sep = platformIsWin32 ? win32.sep : posix.sep;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/uri.js\nfunction _validateUri(ret, _strict) {\n  if (!ret.scheme \u0026\u0026 _strict) {\n    throw new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${ret.authority}\", path: \"${ret.path}\", query: \"${ret.query}\", fragment: \"${ret.fragment}\"}`);\n  }\n  if (ret.scheme \u0026\u0026 !_schemePattern.test(ret.scheme)) {\n    throw new Error(\"[UriError]: Scheme contains illegal characters.\");\n  }\n  if (ret.path) {\n    if (ret.authority) {\n      if (!_singleSlashStart.test(ret.path)) {\n        throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n      }\n    } else {\n      if (_doubleSlashStart.test(ret.path)) {\n        throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n      }\n    }\n  }\n}\nfunction _schemeFix(scheme, _strict) {\n  if (!scheme \u0026\u0026 !_strict) {\n    return \"file\";\n  }\n  return scheme;\n}\nfunction _referenceResolution(scheme, path) {\n  switch (scheme) {\n    case \"https\":\n    case \"http\":\n    case \"file\":\n      if (!path) {\n        path = _slash;\n      } else if (path[0] !== _slash) {\n        path = _slash + path;\n      }\n      break;\n  }\n  return path;\n}\nfunction encodeURIComponentFast(uriComponent, isPath, isAuthority) {\n  let res = void 0;\n  let nativeEncodePos = -1;\n  for (let pos = 0; pos \u003c uriComponent.length; pos++) {\n    const code = uriComponent.charCodeAt(pos);\n    if (code \u003e= 97 \u0026\u0026 code \u003c= 122 || code \u003e= 65 \u0026\u0026 code \u003c= 90 || code \u003e= 48 \u0026\u0026 code \u003c= 57 || code === 45 || code === 46 || code === 95 || code === 126 || isPath \u0026\u0026 code === 47 || isAuthority \u0026\u0026 code === 91 || isAuthority \u0026\u0026 code === 93 || isAuthority \u0026\u0026 code === 58) {\n      if (nativeEncodePos !== -1) {\n        res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n        nativeEncodePos = -1;\n      }\n      if (res !== void 0) {\n        res += uriComponent.charAt(pos);\n      }\n    } else {\n      if (res === void 0) {\n        res = uriComponent.substr(0, pos);\n      }\n      const escaped = encodeTable[code];\n      if (escaped !== void 0) {\n        if (nativeEncodePos !== -1) {\n          res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n          nativeEncodePos = -1;\n        }\n        res += escaped;\n      } else if (nativeEncodePos === -1) {\n        nativeEncodePos = pos;\n      }\n    }\n  }\n  if (nativeEncodePos !== -1) {\n    res += encodeURIComponent(uriComponent.substring(nativeEncodePos));\n  }\n  return res !== void 0 ? res : uriComponent;\n}\nfunction encodeURIComponentMinimal(path) {\n  let res = void 0;\n  for (let pos = 0; pos \u003c path.length; pos++) {\n    const code = path.charCodeAt(pos);\n    if (code === 35 || code === 63) {\n      if (res === void 0) {\n        res = path.substr(0, pos);\n      }\n      res += encodeTable[code];\n    } else {\n      if (res !== void 0) {\n        res += path[pos];\n      }\n    }\n  }\n  return res !== void 0 ? res : path;\n}\nfunction uriToFsPath(uri, keepDriveLetterCasing) {\n  let value;\n  if (uri.authority \u0026\u0026 uri.path.length \u003e 1 \u0026\u0026 uri.scheme === \"file\") {\n    value = `//${uri.authority}${uri.path}`;\n  } else if (uri.path.charCodeAt(0) === 47 \u0026\u0026 (uri.path.charCodeAt(1) \u003e= 65 \u0026\u0026 uri.path.charCodeAt(1) \u003c= 90 || uri.path.charCodeAt(1) \u003e= 97 \u0026\u0026 uri.path.charCodeAt(1) \u003c= 122) \u0026\u0026 uri.path.charCodeAt(2) === 58) {\n    if (!keepDriveLetterCasing) {\n      value = uri.path[1].toLowerCase() + uri.path.substr(2);\n    } else {\n      value = uri.path.substr(1);\n    }\n  } else {\n    value = uri.path;\n  }\n  if (isWindows) {\n    value = value.replace(/\\//g, \"\\\\\");\n  }\n  return value;\n}\nfunction _asFormatted(uri, skipEncoding) {\n  const encoder = !skipEncoding ? encodeURIComponentFast : encodeURIComponentMinimal;\n  let res = \"\";\n  let { scheme, authority, path, query, fragment } = uri;\n  if (scheme) {\n    res += scheme;\n    res += \":\";\n  }\n  if (authority || scheme === \"file\") {\n    res += _slash;\n    res += _slash;\n  }\n  if (authority) {\n    let idx = authority.indexOf(\"@\");\n    if (idx !== -1) {\n      const userinfo = authority.substr(0, idx);\n      authority = authority.substr(idx + 1);\n      idx = userinfo.lastIndexOf(\":\");\n      if (idx === -1) {\n        res += encoder(userinfo, false, false);\n      } else {\n        res += encoder(userinfo.substr(0, idx), false, false);\n        res += \":\";\n        res += encoder(userinfo.substr(idx + 1), false, true);\n      }\n      res += \"@\";\n    }\n    authority = authority.toLowerCase();\n    idx = authority.lastIndexOf(\":\");\n    if (idx === -1) {\n      res += encoder(authority, false, true);\n    } else {\n      res += encoder(authority.substr(0, idx), false, true);\n      res += authority.substr(idx);\n    }\n  }\n  if (path) {\n    if (path.length \u003e= 3 \u0026\u0026 path.charCodeAt(0) === 47 \u0026\u0026 path.charCodeAt(2) === 58) {\n      const code = path.charCodeAt(1);\n      if (code \u003e= 65 \u0026\u0026 code \u003c= 90) {\n        path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`;\n      }\n    } else if (path.length \u003e= 2 \u0026\u0026 path.charCodeAt(1) === 58) {\n      const code = path.charCodeAt(0);\n      if (code \u003e= 65 \u0026\u0026 code \u003c= 90) {\n        path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`;\n      }\n    }\n    res += encoder(path, true, false);\n  }\n  if (query) {\n    res += \"?\";\n    res += encoder(query, false, false);\n  }\n  if (fragment) {\n    res += \"#\";\n    res += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment;\n  }\n  return res;\n}\nfunction decodeURIComponentGraceful(str) {\n  try {\n    return decodeURIComponent(str);\n  } catch {\n    if (str.length \u003e 3) {\n      return str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3));\n    } else {\n      return str;\n    }\n  }\n}\nfunction percentDecode(str) {\n  if (!str.match(_rEncodedAsHex)) {\n    return str;\n  }\n  return str.replace(_rEncodedAsHex, (match2) =\u003e decodeURIComponentGraceful(match2));\n}\nvar _schemePattern, _singleSlashStart, _doubleSlashStart, _empty, _slash, _regexp, URI, _pathSepMarker, Uri, encodeTable, _rEncodedAsHex;\nvar init_uri = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/uri.js\"() {\n    init_path();\n    init_platform();\n    _schemePattern = /^\\w[\\w\\d+.-]*$/;\n    _singleSlashStart = /^\\//;\n    _doubleSlashStart = /^\\/\\//;\n    _empty = \"\";\n    _slash = \"/\";\n    _regexp = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n    URI = class _URI {\n      static isUri(thing) {\n        if (thing instanceof _URI) {\n          return true;\n        }\n        if (!thing || typeof thing !== \"object\") {\n          return false;\n        }\n        return typeof thing.authority === \"string\" \u0026\u0026 typeof thing.fragment === \"string\" \u0026\u0026 typeof thing.path === \"string\" \u0026\u0026 typeof thing.query === \"string\" \u0026\u0026 typeof thing.scheme === \"string\" \u0026\u0026 typeof thing.fsPath === \"string\" \u0026\u0026 typeof thing.with === \"function\" \u0026\u0026 typeof thing.toString === \"function\";\n      }\n      /**\n       * @internal\n       */\n      constructor(schemeOrData, authority, path, query, fragment, _strict = false) {\n        if (typeof schemeOrData === \"object\") {\n          this.scheme = schemeOrData.scheme || _empty;\n          this.authority = schemeOrData.authority || _empty;\n          this.path = schemeOrData.path || _empty;\n          this.query = schemeOrData.query || _empty;\n          this.fragment = schemeOrData.fragment || _empty;\n        } else {\n          this.scheme = _schemeFix(schemeOrData, _strict);\n          this.authority = authority || _empty;\n          this.path = _referenceResolution(this.scheme, path || _empty);\n          this.query = query || _empty;\n          this.fragment = fragment || _empty;\n          _validateUri(this, _strict);\n        }\n      }\n      // ---- filesystem path -----------------------\n      /**\n       * Returns a string representing the corresponding file system path of this URI.\n       * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the\n       * platform specific path separator.\n       *\n       * * Will *not* validate the path for invalid characters and semantics.\n       * * Will *not* look at the scheme of this URI.\n       * * The result shall *not* be used for display purposes but for accessing a file on disk.\n       *\n       *\n       * The *difference* to `URI#path` is the use of the platform specific separator and the handling\n       * of UNC paths. See the below sample of a file-uri with an authority (UNC path).\n       *\n       * ```ts\n          const u = URI.parse('file://server/c$/folder/file.txt')\n          u.authority === 'server'\n          u.path === '/shares/c$/file.txt'\n          u.fsPath === '\\\\server\\c$\\folder\\file.txt'\n      ```\n       *\n       * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,\n       * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working\n       * with URIs that represent files on disk (`file` scheme).\n       */\n      get fsPath() {\n        return uriToFsPath(this, false);\n      }\n      // ---- modify to new -------------------------\n      with(change) {\n        if (!change) {\n          return this;\n        }\n        let { scheme, authority, path, query, fragment } = change;\n        if (scheme === void 0) {\n          scheme = this.scheme;\n        } else if (scheme === null) {\n          scheme = _empty;\n        }\n        if (authority === void 0) {\n          authority = this.authority;\n        } else if (authority === null) {\n          authority = _empty;\n        }\n        if (path === void 0) {\n          path = this.path;\n        } else if (path === null) {\n          path = _empty;\n        }\n        if (query === void 0) {\n          query = this.query;\n        } else if (query === null) {\n          query = _empty;\n        }\n        if (fragment === void 0) {\n          fragment = this.fragment;\n        } else if (fragment === null) {\n          fragment = _empty;\n        }\n        if (scheme === this.scheme \u0026\u0026 authority === this.authority \u0026\u0026 path === this.path \u0026\u0026 query === this.query \u0026\u0026 fragment === this.fragment) {\n          return this;\n        }\n        return new Uri(scheme, authority, path, query, fragment);\n      }\n      // ---- parse \u0026 validate ------------------------\n      /**\n       * Creates a new URI from a string, e.g. `http://www.example.com/some/path`,\n       * `file:///usr/home`, or `scheme:with/path`.\n       *\n       * @param value A string which represents an URI (see `URI#toString`).\n       */\n      static parse(value, _strict = false) {\n        const match2 = _regexp.exec(value);\n        if (!match2) {\n          return new Uri(_empty, _empty, _empty, _empty, _empty);\n        }\n        return new Uri(match2[2] || _empty, percentDecode(match2[4] || _empty), percentDecode(match2[5] || _empty), percentDecode(match2[7] || _empty), percentDecode(match2[9] || _empty), _strict);\n      }\n      /**\n       * Creates a new URI from a file system path, e.g. `c:\\my\\files`,\n       * `/usr/home`, or `\\\\server\\share\\some\\path`.\n       *\n       * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument\n       * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**\n       * `URI.parse('file://' + path)` because the path might contain characters that are\n       * interpreted (# and ?). See the following sample:\n       * ```ts\n      const good = URI.file('/coding/c#/project1');\n      good.scheme === 'file';\n      good.path === '/coding/c#/project1';\n      good.fragment === '';\n      const bad = URI.parse('file://' + '/coding/c#/project1');\n      bad.scheme === 'file';\n      bad.path === '/coding/c'; // path is now broken\n      bad.fragment === '/project1';\n      ```\n       *\n       * @param path A file system path (see `URI#fsPath`)\n       */\n      static file(path) {\n        let authority = _empty;\n        if (isWindows) {\n          path = path.replace(/\\\\/g, _slash);\n        }\n        if (path[0] === _slash \u0026\u0026 path[1] === _slash) {\n          const idx = path.indexOf(_slash, 2);\n          if (idx === -1) {\n            authority = path.substring(2);\n            path = _slash;\n          } else {\n            authority = path.substring(2, idx);\n            path = path.substring(idx) || _slash;\n          }\n        }\n        return new Uri(\"file\", authority, path, _empty, _empty);\n      }\n      /**\n       * Creates new URI from uri components.\n       *\n       * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs\n       * validation and should be used for untrusted uri components retrieved from storage,\n       * user input, command arguments etc\n       */\n      static from(components, strict) {\n        const result = new Uri(components.scheme, components.authority, components.path, components.query, components.fragment, strict);\n        return result;\n      }\n      /**\n       * Join a URI path with path fragments and normalizes the resulting path.\n       *\n       * @param uri The input URI.\n       * @param pathFragment The path fragment to add to the URI path.\n       * @returns The resulting URI.\n       */\n      static joinPath(uri, ...pathFragment) {\n        if (!uri.path) {\n          throw new Error(`[UriError]: cannot call joinPath on URI without path`);\n        }\n        let newPath;\n        if (isWindows \u0026\u0026 uri.scheme === \"file\") {\n          newPath = _URI.file(win32.join(uriToFsPath(uri, true), ...pathFragment)).path;\n        } else {\n          newPath = posix.join(uri.path, ...pathFragment);\n        }\n        return uri.with({ path: newPath });\n      }\n      // ---- printing/externalize ---------------------------\n      /**\n       * Creates a string representation for this URI. It's guaranteed that calling\n       * `URI.parse` with the result of this function creates an URI which is equal\n       * to this URI.\n       *\n       * * The result shall *not* be used for display purposes but for externalization or transport.\n       * * The result will be encoded using the percentage encoding and encoding happens mostly\n       * ignore the scheme-specific encoding rules.\n       *\n       * @param skipEncoding Do not encode the result, default is `false`\n       */\n      toString(skipEncoding = false) {\n        return _asFormatted(this, skipEncoding);\n      }\n      toJSON() {\n        return this;\n      }\n      static revive(data) {\n        if (!data) {\n          return data;\n        } else if (data instanceof _URI) {\n          return data;\n        } else {\n          const result = new Uri(data);\n          result._formatted = data.external ?? null;\n          result._fsPath = data._sep === _pathSepMarker ? data.fsPath ?? null : null;\n          return result;\n        }\n      }\n    };\n    _pathSepMarker = isWindows ? 1 : void 0;\n    Uri = class extends URI {\n      constructor() {\n        super(...arguments);\n        this._formatted = null;\n        this._fsPath = null;\n      }\n      get fsPath() {\n        if (!this._fsPath) {\n          this._fsPath = uriToFsPath(this, false);\n        }\n        return this._fsPath;\n      }\n      toString(skipEncoding = false) {\n        if (!skipEncoding) {\n          if (!this._formatted) {\n            this._formatted = _asFormatted(this, false);\n          }\n          return this._formatted;\n        } else {\n          return _asFormatted(this, true);\n        }\n      }\n      toJSON() {\n        const res = {\n          $mid: 1\n          /* MarshalledId.Uri */\n        };\n        if (this._fsPath) {\n          res.fsPath = this._fsPath;\n          res._sep = _pathSepMarker;\n        }\n        if (this._formatted) {\n          res.external = this._formatted;\n        }\n        if (this.path) {\n          res.path = this.path;\n        }\n        if (this.scheme) {\n          res.scheme = this.scheme;\n        }\n        if (this.authority) {\n          res.authority = this.authority;\n        }\n        if (this.query) {\n          res.query = this.query;\n        }\n        if (this.fragment) {\n          res.fragment = this.fragment;\n        }\n        return res;\n      }\n    };\n    encodeTable = {\n      [\n        58\n        /* CharCode.Colon */\n      ]: \"%3A\",\n      // gen-delims\n      [\n        47\n        /* CharCode.Slash */\n      ]: \"%2F\",\n      [\n        63\n        /* CharCode.QuestionMark */\n      ]: \"%3F\",\n      [\n        35\n        /* CharCode.Hash */\n      ]: \"%23\",\n      [\n        91\n        /* CharCode.OpenSquareBracket */\n      ]: \"%5B\",\n      [\n        93\n        /* CharCode.CloseSquareBracket */\n      ]: \"%5D\",\n      [\n        64\n        /* CharCode.AtSign */\n      ]: \"%40\",\n      [\n        33\n        /* CharCode.ExclamationMark */\n      ]: \"%21\",\n      // sub-delims\n      [\n        36\n        /* CharCode.DollarSign */\n      ]: \"%24\",\n      [\n        38\n        /* CharCode.Ampersand */\n      ]: \"%26\",\n      [\n        39\n        /* CharCode.SingleQuote */\n      ]: \"%27\",\n      [\n        40\n        /* CharCode.OpenParen */\n      ]: \"%28\",\n      [\n        41\n        /* CharCode.CloseParen */\n      ]: \"%29\",\n      [\n        42\n        /* CharCode.Asterisk */\n      ]: \"%2A\",\n      [\n        43\n        /* CharCode.Plus */\n      ]: \"%2B\",\n      [\n        44\n        /* CharCode.Comma */\n      ]: \"%2C\",\n      [\n        59\n        /* CharCode.Semicolon */\n      ]: \"%3B\",\n      [\n        61\n        /* CharCode.Equals */\n      ]: \"%3D\",\n      [\n        32\n        /* CharCode.Space */\n      ]: \"%20\"\n    };\n    _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/network.js\nfunction matchesScheme(target, scheme) {\n  if (URI.isUri(target)) {\n    return equalsIgnoreCase(target.scheme, scheme);\n  } else {\n    return startsWithIgnoreCase(target, scheme + \":\");\n  }\n}\nfunction matchesSomeScheme(target, ...schemes) {\n  return schemes.some((scheme) =\u003e matchesScheme(target, scheme));\n}\nvar Schemas, connectionTokenQueryName, RemoteAuthoritiesImpl, RemoteAuthorities, VSCODE_AUTHORITY, FileAccessImpl, FileAccess, CacheControlheaders, DocumentPolicyheaders, COI;\nvar init_network = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/network.js\"() {\n    init_errors();\n    init_platform();\n    init_strings();\n    init_uri();\n    init_path();\n    (function(Schemas2) {\n      Schemas2.inMemory = \"inmemory\";\n      Schemas2.vscode = \"vscode\";\n      Schemas2.internal = \"private\";\n      Schemas2.walkThrough = \"walkThrough\";\n      Schemas2.walkThroughSnippet = \"walkThroughSnippet\";\n      Schemas2.http = \"http\";\n      Schemas2.https = \"https\";\n      Schemas2.file = \"file\";\n      Schemas2.mailto = \"mailto\";\n      Schemas2.untitled = \"untitled\";\n      Schemas2.data = \"data\";\n      Schemas2.command = \"command\";\n      Schemas2.vscodeRemote = \"vscode-remote\";\n      Schemas2.vscodeRemoteResource = \"vscode-remote-resource\";\n      Schemas2.vscodeManagedRemoteResource = \"vscode-managed-remote-resource\";\n      Schemas2.vscodeUserData = \"vscode-userdata\";\n      Schemas2.vscodeCustomEditor = \"vscode-custom-editor\";\n      Schemas2.vscodeNotebookCell = \"vscode-notebook-cell\";\n      Schemas2.vscodeNotebookCellMetadata = \"vscode-notebook-cell-metadata\";\n      Schemas2.vscodeNotebookCellMetadataDiff = \"vscode-notebook-cell-metadata-diff\";\n      Schemas2.vscodeNotebookCellOutput = \"vscode-notebook-cell-output\";\n      Schemas2.vscodeNotebookCellOutputDiff = \"vscode-notebook-cell-output-diff\";\n      Schemas2.vscodeNotebookMetadata = \"vscode-notebook-metadata\";\n      Schemas2.vscodeInteractiveInput = \"vscode-interactive-input\";\n      Schemas2.vscodeSettings = \"vscode-settings\";\n      Schemas2.vscodeWorkspaceTrust = \"vscode-workspace-trust\";\n      Schemas2.vscodeTerminal = \"vscode-terminal\";\n      Schemas2.vscodeChatCodeBlock = \"vscode-chat-code-block\";\n      Schemas2.vscodeChatCodeCompareBlock = \"vscode-chat-code-compare-block\";\n      Schemas2.vscodeChatEditor = \"vscode-chat-editor\";\n      Schemas2.vscodeChatInput = \"chatSessionInput\";\n      Schemas2.vscodeChatSession = \"vscode-chat-session\";\n      Schemas2.webviewPanel = \"webview-panel\";\n      Schemas2.vscodeWebview = \"vscode-webview\";\n      Schemas2.extension = \"extension\";\n      Schemas2.vscodeFileResource = \"vscode-file\";\n      Schemas2.tmp = \"tmp\";\n      Schemas2.vsls = \"vsls\";\n      Schemas2.vscodeSourceControl = \"vscode-scm\";\n      Schemas2.commentsInput = \"comment\";\n      Schemas2.codeSetting = \"code-setting\";\n      Schemas2.outputChannel = \"output\";\n      Schemas2.accessibleView = \"accessible-view\";\n      Schemas2.chatEditingSnapshotScheme = \"chat-editing-snapshot-text-model\";\n      Schemas2.chatEditingModel = \"chat-editing-text-model\";\n    })(Schemas || (Schemas = {}));\n    connectionTokenQueryName = \"tkn\";\n    RemoteAuthoritiesImpl = class {\n      constructor() {\n        this._hosts = /* @__PURE__ */ Object.create(null);\n        this._ports = /* @__PURE__ */ Object.create(null);\n        this._connectionTokens = /* @__PURE__ */ Object.create(null);\n        this._preferredWebSchema = \"http\";\n        this._delegate = null;\n        this._serverRootPath = \"/\";\n      }\n      setPreferredWebSchema(schema) {\n        this._preferredWebSchema = schema;\n      }\n      get _remoteResourcesPath() {\n        return posix.join(this._serverRootPath, Schemas.vscodeRemoteResource);\n      }\n      rewrite(uri) {\n        if (this._delegate) {\n          try {\n            return this._delegate(uri);\n          } catch (err) {\n            onUnexpectedError(err);\n            return uri;\n          }\n        }\n        const authority = uri.authority;\n        let host = this._hosts[authority];\n        if (host \u0026\u0026 host.indexOf(\":\") !== -1 \u0026\u0026 host.indexOf(\"[\") === -1) {\n          host = `[${host}]`;\n        }\n        const port = this._ports[authority];\n        const connectionToken = this._connectionTokens[authority];\n        let query = `path=${encodeURIComponent(uri.path)}`;\n        if (typeof connectionToken === \"string\") {\n          query += `\u0026${connectionTokenQueryName}=${encodeURIComponent(connectionToken)}`;\n        }\n        return URI.from({\n          scheme: isWeb ? this._preferredWebSchema : Schemas.vscodeRemoteResource,\n          authority: `${host}:${port}`,\n          path: this._remoteResourcesPath,\n          query\n        });\n      }\n    };\n    RemoteAuthorities = new RemoteAuthoritiesImpl();\n    VSCODE_AUTHORITY = \"vscode-app\";\n    FileAccessImpl = class _FileAccessImpl {\n      static {\n        this.FALLBACK_AUTHORITY = VSCODE_AUTHORITY;\n      }\n      /**\n       * Returns a URI to use in contexts where the browser is responsible\n       * for loading (e.g. fetch()) or when used within the DOM.\n       *\n       * **Note:** use `dom.ts#asCSSUrl` whenever the URL is to be used in CSS context.\n       */\n      uriToBrowserUri(uri) {\n        if (uri.scheme === Schemas.vscodeRemote) {\n          return RemoteAuthorities.rewrite(uri);\n        }\n        if (\n          // ...only ever for `file` resources\n          uri.scheme === Schemas.file \u0026\u0026 // ...and we run in native environments\n          (isNative || // ...or web worker extensions on desktop\n          webWorkerOrigin === `${Schemas.vscodeFileResource}://${_FileAccessImpl.FALLBACK_AUTHORITY}`)\n        ) {\n          return uri.with({\n            scheme: Schemas.vscodeFileResource,\n            // We need to provide an authority here so that it can serve\n            // as origin for network and loading matters in chromium.\n            // If the URI is not coming with an authority already, we\n            // add our own\n            authority: uri.authority || _FileAccessImpl.FALLBACK_AUTHORITY,\n            query: null,\n            fragment: null\n          });\n        }\n        return uri;\n      }\n    };\n    FileAccess = new FileAccessImpl();\n    CacheControlheaders = Object.freeze({\n      \"Cache-Control\": \"no-cache, no-store\"\n    });\n    DocumentPolicyheaders = Object.freeze({\n      \"Document-Policy\": \"include-js-call-stacks-in-crash-reports\"\n    });\n    (function(COI2) {\n      const coiHeaders = /* @__PURE__ */ new Map([\n        [\"1\", { \"Cross-Origin-Opener-Policy\": \"same-origin\" }],\n        [\"2\", { \"Cross-Origin-Embedder-Policy\": \"require-corp\" }],\n        [\"3\", { \"Cross-Origin-Opener-Policy\": \"same-origin\", \"Cross-Origin-Embedder-Policy\": \"require-corp\" }]\n      ]);\n      COI2.CoopAndCoep = Object.freeze(coiHeaders.get(\"3\"));\n      const coiSearchParamName = \"vscode-coi\";\n      function getHeadersFromQuery(url) {\n        let params;\n        if (typeof url === \"string\") {\n          params = new URL(url).searchParams;\n        } else if (url instanceof URL) {\n          params = url.searchParams;\n        } else if (URI.isUri(url)) {\n          params = new URL(url.toString(true)).searchParams;\n        }\n        const value = params?.get(coiSearchParamName);\n        if (!value) {\n          return void 0;\n        }\n        return coiHeaders.get(value);\n      }\n      COI2.getHeadersFromQuery = getHeadersFromQuery;\n      function addSearchParam(urlOrSearch, coop, coep) {\n        if (!globalThis.crossOriginIsolated) {\n          return;\n        }\n        const value = coop \u0026\u0026 coep ? \"3\" : coep ? \"2\" : \"1\";\n        if (urlOrSearch instanceof URLSearchParams) {\n          urlOrSearch.set(coiSearchParamName, value);\n        } else {\n          urlOrSearch[coiSearchParamName] = value;\n        }\n      }\n      COI2.addSearchParam = addSearchParam;\n    })(COI || (COI = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/buffer.js\nfunction readUInt16LE(source, offset) {\n  return source[offset + 0] \u003c\u003c 0 \u003e\u003e\u003e 0 | source[offset + 1] \u003c\u003c 8 \u003e\u003e\u003e 0;\n}\nfunction writeUInt16LE(destination, value, offset) {\n  destination[offset + 0] = value \u0026 255;\n  value = value \u003e\u003e\u003e 8;\n  destination[offset + 1] = value \u0026 255;\n}\nfunction readUInt32BE(source, offset) {\n  return source[offset] * 2 ** 24 + source[offset + 1] * 2 ** 16 + source[offset + 2] * 2 ** 8 + source[offset + 3];\n}\nfunction writeUInt32BE(destination, value, offset) {\n  destination[offset + 3] = value;\n  value = value \u003e\u003e\u003e 8;\n  destination[offset + 2] = value;\n  value = value \u003e\u003e\u003e 8;\n  destination[offset + 1] = value;\n  value = value \u003e\u003e\u003e 8;\n  destination[offset] = value;\n}\nfunction readUInt8(source, offset) {\n  return source[offset];\n}\nfunction writeUInt8(destination, value, offset) {\n  destination[offset] = value;\n}\nfunction encodeHex({ buffer }) {\n  let result = \"\";\n  for (let i2 = 0; i2 \u003c buffer.length; i2++) {\n    const byte = buffer[i2];\n    result += hexChars[byte \u003e\u003e\u003e 4];\n    result += hexChars[byte \u0026 15];\n  }\n  return result;\n}\nvar hasBuffer, indexOfTable, textDecoder, VSBuffer, hexChars;\nvar init_buffer = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/buffer.js\"() {\n    init_lazy();\n    hasBuffer = typeof Buffer !== \"undefined\";\n    indexOfTable = new Lazy(() =\u003e new Uint8Array(256));\n    VSBuffer = class _VSBuffer {\n      /**\n       * When running in a nodejs context, if `actual` is not a nodejs Buffer, the backing store for\n       * the returned `VSBuffer` instance might use a nodejs Buffer allocated from node's Buffer pool,\n       * which is not transferrable.\n       */\n      static wrap(actual) {\n        if (hasBuffer \u0026\u0026 !Buffer.isBuffer(actual)) {\n          actual = Buffer.from(actual.buffer, actual.byteOffset, actual.byteLength);\n        }\n        return new _VSBuffer(actual);\n      }\n      constructor(buffer) {\n        this.buffer = buffer;\n        this.byteLength = this.buffer.byteLength;\n      }\n      toString() {\n        if (hasBuffer) {\n          return this.buffer.toString();\n        } else {\n          if (!textDecoder) {\n            textDecoder = new TextDecoder();\n          }\n          return textDecoder.decode(this.buffer);\n        }\n      }\n    };\n    hexChars = \"0123456789abcdef\";\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/hash.js\nfunction hash(obj) {\n  return doHash(obj, 0);\n}\nfunction doHash(obj, hashVal) {\n  switch (typeof obj) {\n    case \"object\":\n      if (obj === null) {\n        return numberHash(349, hashVal);\n      } else if (Array.isArray(obj)) {\n        return arrayHash(obj, hashVal);\n      }\n      return objectHash(obj, hashVal);\n    case \"string\":\n      return stringHash(obj, hashVal);\n    case \"boolean\":\n      return booleanHash(obj, hashVal);\n    case \"number\":\n      return numberHash(obj, hashVal);\n    case \"undefined\":\n      return numberHash(937, hashVal);\n    default:\n      return numberHash(617, hashVal);\n  }\n}\nfunction numberHash(val, initialHashVal) {\n  return (initialHashVal \u003c\u003c 5) - initialHashVal + val | 0;\n}\nfunction booleanHash(b, initialHashVal) {\n  return numberHash(b ? 433 : 863, initialHashVal);\n}\nfunction stringHash(s, hashVal) {\n  hashVal = numberHash(149417, hashVal);\n  for (let i2 = 0, length = s.length; i2 \u003c length; i2++) {\n    hashVal = numberHash(s.charCodeAt(i2), hashVal);\n  }\n  return hashVal;\n}\nfunction arrayHash(arr, initialHashVal) {\n  initialHashVal = numberHash(104579, initialHashVal);\n  return arr.reduce((hashVal, item) =\u003e doHash(item, hashVal), initialHashVal);\n}\nfunction objectHash(obj, initialHashVal) {\n  initialHashVal = numberHash(181387, initialHashVal);\n  return Object.keys(obj).sort().reduce((hashVal, key) =\u003e {\n    hashVal = stringHash(key, hashVal);\n    return doHash(obj[key], hashVal);\n  }, initialHashVal);\n}\nfunction leftRotate(value, bits, totalBits = 32) {\n  const delta = totalBits - bits;\n  const mask = ~((1 \u003c\u003c delta) - 1);\n  return (value \u003c\u003c bits | (mask \u0026 value) \u003e\u003e\u003e delta) \u003e\u003e\u003e 0;\n}\nfunction toHexString(bufferOrValue, bitsize = 32) {\n  if (bufferOrValue instanceof ArrayBuffer) {\n    return encodeHex(VSBuffer.wrap(new Uint8Array(bufferOrValue)));\n  }\n  return (bufferOrValue \u003e\u003e\u003e 0).toString(16).padStart(bitsize / 4, \"0\");\n}\nvar StringSHA1;\nvar init_hash = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/hash.js\"() {\n    init_buffer();\n    init_strings();\n    StringSHA1 = class _StringSHA1 {\n      static {\n        this._bigBlock32 = new DataView(new ArrayBuffer(320));\n      }\n      // 80 * 4 = 320\n      constructor() {\n        this._h0 = 1732584193;\n        this._h1 = 4023233417;\n        this._h2 = 2562383102;\n        this._h3 = 271733878;\n        this._h4 = 3285377520;\n        this._buff = new Uint8Array(\n          64 + 3\n          /* to fit any utf-8 */\n        );\n        this._buffDV = new DataView(this._buff.buffer);\n        this._buffLen = 0;\n        this._totalLen = 0;\n        this._leftoverHighSurrogate = 0;\n        this._finished = false;\n      }\n      update(str) {\n        const strLen = str.length;\n        if (strLen === 0) {\n          return;\n        }\n        const buff = this._buff;\n        let buffLen = this._buffLen;\n        let leftoverHighSurrogate = this._leftoverHighSurrogate;\n        let charCode;\n        let offset;\n        if (leftoverHighSurrogate !== 0) {\n          charCode = leftoverHighSurrogate;\n          offset = -1;\n          leftoverHighSurrogate = 0;\n        } else {\n          charCode = str.charCodeAt(0);\n          offset = 0;\n        }\n        while (true) {\n          let codePoint = charCode;\n          if (isHighSurrogate(charCode)) {\n            if (offset + 1 \u003c strLen) {\n              const nextCharCode = str.charCodeAt(offset + 1);\n              if (isLowSurrogate(nextCharCode)) {\n                offset++;\n                codePoint = computeCodePoint(charCode, nextCharCode);\n              } else {\n                codePoint = 65533;\n              }\n            } else {\n              leftoverHighSurrogate = charCode;\n              break;\n            }\n          } else if (isLowSurrogate(charCode)) {\n            codePoint = 65533;\n          }\n          buffLen = this._push(buff, buffLen, codePoint);\n          offset++;\n          if (offset \u003c strLen) {\n            charCode = str.charCodeAt(offset);\n          } else {\n            break;\n          }\n        }\n        this._buffLen = buffLen;\n        this._leftoverHighSurrogate = leftoverHighSurrogate;\n      }\n      _push(buff, buffLen, codePoint) {\n        if (codePoint \u003c 128) {\n          buff[buffLen++] = codePoint;\n        } else if (codePoint \u003c 2048) {\n          buff[buffLen++] = 192 | (codePoint \u0026 1984) \u003e\u003e\u003e 6;\n          buff[buffLen++] = 128 | (codePoint \u0026 63) \u003e\u003e\u003e 0;\n        } else if (codePoint \u003c 65536) {\n          buff[buffLen++] = 224 | (codePoint \u0026 61440) \u003e\u003e\u003e 12;\n          buff[buffLen++] = 128 | (codePoint \u0026 4032) \u003e\u003e\u003e 6;\n          buff[buffLen++] = 128 | (codePoint \u0026 63) \u003e\u003e\u003e 0;\n        } else {\n          buff[buffLen++] = 240 | (codePoint \u0026 1835008) \u003e\u003e\u003e 18;\n          buff[buffLen++] = 128 | (codePoint \u0026 258048) \u003e\u003e\u003e 12;\n          buff[buffLen++] = 128 | (codePoint \u0026 4032) \u003e\u003e\u003e 6;\n          buff[buffLen++] = 128 | (codePoint \u0026 63) \u003e\u003e\u003e 0;\n        }\n        if (buffLen \u003e= 64) {\n          this._step();\n          buffLen -= 64;\n          this._totalLen += 64;\n          buff[0] = buff[64 + 0];\n          buff[1] = buff[64 + 1];\n          buff[2] = buff[64 + 2];\n        }\n        return buffLen;\n      }\n      digest() {\n        if (!this._finished) {\n          this._finished = true;\n          if (this._leftoverHighSurrogate) {\n            this._leftoverHighSurrogate = 0;\n            this._buffLen = this._push(\n              this._buff,\n              this._buffLen,\n              65533\n              /* SHA1Constant.UNICODE_REPLACEMENT */\n            );\n          }\n          this._totalLen += this._buffLen;\n          this._wrapUp();\n        }\n        return toHexString(this._h0) + toHexString(this._h1) + toHexString(this._h2) + toHexString(this._h3) + toHexString(this._h4);\n      }\n      _wrapUp() {\n        this._buff[this._buffLen++] = 128;\n        this._buff.subarray(this._buffLen).fill(0);\n        if (this._buffLen \u003e 56) {\n          this._step();\n          this._buff.fill(0);\n        }\n        const ml = 8 * this._totalLen;\n        this._buffDV.setUint32(56, Math.floor(ml / 4294967296), false);\n        this._buffDV.setUint32(60, ml % 4294967296, false);\n        this._step();\n      }\n      _step() {\n        const bigBlock32 = _StringSHA1._bigBlock32;\n        const data = this._buffDV;\n        for (let j = 0; j \u003c 64; j += 4) {\n          bigBlock32.setUint32(j, data.getUint32(j, false), false);\n        }\n        for (let j = 64; j \u003c 320; j += 4) {\n          bigBlock32.setUint32(j, leftRotate(bigBlock32.getUint32(j - 12, false) ^ bigBlock32.getUint32(j - 32, false) ^ bigBlock32.getUint32(j - 56, false) ^ bigBlock32.getUint32(j - 64, false), 1), false);\n        }\n        let a = this._h0;\n        let b = this._h1;\n        let c = this._h2;\n        let d = this._h3;\n        let e = this._h4;\n        let f, k;\n        let temp;\n        for (let j = 0; j \u003c 80; j++) {\n          if (j \u003c 20) {\n            f = b \u0026 c | ~b \u0026 d;\n            k = 1518500249;\n          } else if (j \u003c 40) {\n            f = b ^ c ^ d;\n            k = 1859775393;\n          } else if (j \u003c 60) {\n            f = b \u0026 c | b \u0026 d | c \u0026 d;\n            k = 2400959708;\n          } else {\n            f = b ^ c ^ d;\n            k = 3395469782;\n          }\n          temp = leftRotate(a, 5) + f + e + k + bigBlock32.getUint32(j * 4, false) \u0026 4294967295;\n          e = d;\n          d = c;\n          c = leftRotate(b, 30);\n          b = a;\n          a = temp;\n        }\n        this._h0 = this._h0 + a \u0026 4294967295;\n        this._h1 = this._h1 + b \u0026 4294967295;\n        this._h2 = this._h2 + c \u0026 4294967295;\n        this._h3 = this._h3 + d \u0026 4294967295;\n        this._h4 = this._h4 + e \u0026 4294967295;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/debugName.js\nfunction getDebugName(target, data) {\n  const cached = cachedDebugName.get(target);\n  if (cached) {\n    return cached;\n  }\n  const dbgName = computeDebugName(target, data);\n  if (dbgName) {\n    let count = countPerName.get(dbgName) ?? 0;\n    count++;\n    countPerName.set(dbgName, count);\n    const result = count === 1 ? dbgName : `${dbgName}#${count}`;\n    cachedDebugName.set(target, result);\n    return result;\n  }\n  return void 0;\n}\nfunction computeDebugName(self2, data) {\n  const cached = cachedDebugName.get(self2);\n  if (cached) {\n    return cached;\n  }\n  const ownerStr = data.owner ? formatOwner(data.owner) + `.` : \"\";\n  let result;\n  const debugNameSource = data.debugNameSource;\n  if (debugNameSource !== void 0) {\n    if (typeof debugNameSource === \"function\") {\n      result = debugNameSource();\n      if (result !== void 0) {\n        return ownerStr + result;\n      }\n    } else {\n      return ownerStr + debugNameSource;\n    }\n  }\n  const referenceFn = data.referenceFn;\n  if (referenceFn !== void 0) {\n    result = getFunctionName(referenceFn);\n    if (result !== void 0) {\n      return ownerStr + result;\n    }\n  }\n  if (data.owner !== void 0) {\n    const key = findKey(data.owner, self2);\n    if (key !== void 0) {\n      return ownerStr + key;\n    }\n  }\n  return void 0;\n}\nfunction findKey(obj, value) {\n  for (const key in obj) {\n    if (obj[key] === value) {\n      return key;\n    }\n  }\n  return void 0;\n}\nfunction formatOwner(owner) {\n  const id = ownerId.get(owner);\n  if (id) {\n    return id;\n  }\n  const className2 = getClassName(owner) ?? \"Object\";\n  let count = countPerClassName.get(className2) ?? 0;\n  count++;\n  countPerClassName.set(className2, count);\n  const result = count === 1 ? className2 : `${className2}#${count}`;\n  ownerId.set(owner, result);\n  return result;\n}\nfunction getClassName(obj) {\n  const ctor = obj.constructor;\n  if (ctor) {\n    if (ctor.name === \"Object\") {\n      return void 0;\n    }\n    return ctor.name;\n  }\n  return void 0;\n}\nfunction getFunctionName(fn) {\n  const fnSrc = fn.toString();\n  const regexp = /\\/\\*\\*\\s*@description\\s*([^*]*)\\*\\//;\n  const match2 = regexp.exec(fnSrc);\n  const result = match2 ? match2[1] : void 0;\n  return result?.trim();\n}\nvar DebugNameData, countPerName, cachedDebugName, countPerClassName, ownerId;\nvar init_debugName = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/debugName.js\"() {\n    DebugNameData = class {\n      constructor(owner, debugNameSource, referenceFn) {\n        this.owner = owner;\n        this.debugNameSource = debugNameSource;\n        this.referenceFn = referenceFn;\n      }\n      getDebugName(target) {\n        return getDebugName(target, this);\n      }\n    };\n    countPerName = /* @__PURE__ */ new Map();\n    cachedDebugName = /* @__PURE__ */ new WeakMap();\n    countPerClassName = /* @__PURE__ */ new Map();\n    ownerId = /* @__PURE__ */ new WeakMap();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/arrays.js\nfunction tail(arr) {\n  if (arr.length === 0) {\n    throw new Error(\"Invalid tail call\");\n  }\n  return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\n}\nfunction equals(one, other, itemEquals2 = (a, b) =\u003e a === b) {\n  if (one === other) {\n    return true;\n  }\n  if (!one || !other) {\n    return false;\n  }\n  if (one.length !== other.length) {\n    return false;\n  }\n  for (let i2 = 0, len = one.length; i2 \u003c len; i2++) {\n    if (!itemEquals2(one[i2], other[i2])) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction removeFastWithoutKeepingOrder(array2, index) {\n  const last = array2.length - 1;\n  if (index \u003c last) {\n    array2[index] = array2[last];\n  }\n  array2.pop();\n}\nfunction binarySearch(array2, key, comparator) {\n  return binarySearch2(array2.length, (i2) =\u003e comparator(array2[i2], key));\n}\nfunction binarySearch2(length, compareToKey) {\n  let low = 0, high = length - 1;\n  while (low \u003c= high) {\n    const mid = (low + high) / 2 | 0;\n    const comp = compareToKey(mid);\n    if (comp \u003c 0) {\n      low = mid + 1;\n    } else if (comp \u003e 0) {\n      high = mid - 1;\n    } else {\n      return mid;\n    }\n  }\n  return -(low + 1);\n}\nfunction quickSelect(nth, data, compare2) {\n  nth = nth | 0;\n  if (nth \u003e= data.length) {\n    throw new TypeError(\"invalid index\");\n  }\n  const pivotValue = data[Math.floor(data.length * Math.random())];\n  const lower = [];\n  const higher = [];\n  const pivots = [];\n  for (const value of data) {\n    const val = compare2(value, pivotValue);\n    if (val \u003c 0) {\n      lower.push(value);\n    } else if (val \u003e 0) {\n      higher.push(value);\n    } else {\n      pivots.push(value);\n    }\n  }\n  if (nth \u003c lower.length) {\n    return quickSelect(nth, lower, compare2);\n  } else if (nth \u003c lower.length + pivots.length) {\n    return pivots[0];\n  } else {\n    return quickSelect(nth - (lower.length + pivots.length), higher, compare2);\n  }\n}\nfunction groupBy(data, compare2) {\n  const result = [];\n  let currentGroup = void 0;\n  for (const element of data.slice(0).sort(compare2)) {\n    if (!currentGroup || compare2(currentGroup[0], element) !== 0) {\n      currentGroup = [element];\n      result.push(currentGroup);\n    } else {\n      currentGroup.push(element);\n    }\n  }\n  return result;\n}\nfunction* groupAdjacentBy(items, shouldBeGrouped) {\n  let currentGroup;\n  let last;\n  for (const item of items) {\n    if (last !== void 0 \u0026\u0026 shouldBeGrouped(last, item)) {\n      currentGroup.push(item);\n    } else {\n      if (currentGroup) {\n        yield currentGroup;\n      }\n      currentGroup = [item];\n    }\n    last = item;\n  }\n  if (currentGroup) {\n    yield currentGroup;\n  }\n}\nfunction forEachAdjacent(arr, f) {\n  for (let i2 = 0; i2 \u003c= arr.length; i2++) {\n    f(i2 === 0 ? void 0 : arr[i2 - 1], i2 === arr.length ? void 0 : arr[i2]);\n  }\n}\nfunction forEachWithNeighbors(arr, f) {\n  for (let i2 = 0; i2 \u003c arr.length; i2++) {\n    f(i2 === 0 ? void 0 : arr[i2 - 1], arr[i2], i2 + 1 === arr.length ? void 0 : arr[i2 + 1]);\n  }\n}\nfunction coalesce(array2) {\n  return array2.filter((e) =\u003e !!e);\n}\nfunction coalesceInPlace(array2) {\n  let to = 0;\n  for (let i2 = 0; i2 \u003c array2.length; i2++) {\n    if (!!array2[i2]) {\n      array2[to] = array2[i2];\n      to += 1;\n    }\n  }\n  array2.length = to;\n}\nfunction isFalsyOrEmpty(obj) {\n  return !Array.isArray(obj) || obj.length === 0;\n}\nfunction isNonEmptyArray(obj) {\n  return Array.isArray(obj) \u0026\u0026 obj.length \u003e 0;\n}\nfunction distinct(array2, keyFn = (value) =\u003e value) {\n  const seen = /* @__PURE__ */ new Set();\n  return array2.filter((element) =\u003e {\n    const key = keyFn(element);\n    if (seen.has(key)) {\n      return false;\n    }\n    seen.add(key);\n    return true;\n  });\n}\nfunction range(arg, to) {\n  let from = typeof to === \"number\" ? arg : 0;\n  if (typeof to === \"number\") {\n    from = arg;\n  } else {\n    from = 0;\n    to = arg;\n  }\n  const result = [];\n  if (from \u003c= to) {\n    for (let i2 = from; i2 \u003c to; i2++) {\n      result.push(i2);\n    }\n  } else {\n    for (let i2 = from; i2 \u003e to; i2--) {\n      result.push(i2);\n    }\n  }\n  return result;\n}\nfunction arrayInsert(target, insertIndex, insertArr) {\n  const before = target.slice(0, insertIndex);\n  const after2 = target.slice(insertIndex);\n  return before.concat(insertArr, after2);\n}\nfunction pushToStart(arr, value) {\n  const index = arr.indexOf(value);\n  if (index \u003e -1) {\n    arr.splice(index, 1);\n    arr.unshift(value);\n  }\n}\nfunction pushToEnd(arr, value) {\n  const index = arr.indexOf(value);\n  if (index \u003e -1) {\n    arr.splice(index, 1);\n    arr.push(value);\n  }\n}\nfunction pushMany(arr, items) {\n  for (const item of items) {\n    arr.push(item);\n  }\n}\nfunction asArray(x) {\n  return Array.isArray(x) ? x : [x];\n}\nfunction insertInto(array2, start, newItems) {\n  const startIdx = getActualStartIndex(array2, start);\n  const originalLength = array2.length;\n  const newItemsLength = newItems.length;\n  array2.length = originalLength + newItemsLength;\n  for (let i2 = originalLength - 1; i2 \u003e= startIdx; i2--) {\n    array2[i2 + newItemsLength] = array2[i2];\n  }\n  for (let i2 = 0; i2 \u003c newItemsLength; i2++) {\n    array2[i2 + startIdx] = newItems[i2];\n  }\n}\nfunction splice(array2, start, deleteCount, newItems) {\n  const index = getActualStartIndex(array2, start);\n  let result = array2.splice(index, deleteCount);\n  if (result === void 0) {\n    result = [];\n  }\n  insertInto(array2, index, newItems);\n  return result;\n}\nfunction getActualStartIndex(array2, start) {\n  return start \u003c 0 ? Math.max(start + array2.length, 0) : Math.min(start, array2.length);\n}\nfunction compareBy(selector, comparator) {\n  return (a, b) =\u003e comparator(selector(a), selector(b));\n}\nfunction tieBreakComparators(...comparators) {\n  return (item1, item2) =\u003e {\n    for (const comparator of comparators) {\n      const result = comparator(item1, item2);\n      if (!CompareResult.isNeitherLessOrGreaterThan(result)) {\n        return result;\n      }\n    }\n    return CompareResult.neitherLessOrGreaterThan;\n  };\n}\nfunction reverseOrder(comparator) {\n  return (a, b) =\u003e -comparator(a, b);\n}\nfunction compareUndefinedSmallest(comparator) {\n  return (a, b) =\u003e {\n    if (a === void 0) {\n      return b === void 0 ? CompareResult.neitherLessOrGreaterThan : CompareResult.lessThan;\n    } else if (b === void 0) {\n      return CompareResult.greaterThan;\n    }\n    return comparator(a, b);\n  };\n}\nfunction sum(array2) {\n  return array2.reduce((acc, value) =\u003e acc + value, 0);\n}\nvar CompareResult, numberComparator, booleanComparator, ArrayQueue, CallbackIterable, Permutation;\nvar init_arrays = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/arrays.js\"() {\n    (function(CompareResult2) {\n      function isLessThan(result) {\n        return result \u003c 0;\n      }\n      CompareResult2.isLessThan = isLessThan;\n      function isLessThanOrEqual(result) {\n        return result \u003c= 0;\n      }\n      CompareResult2.isLessThanOrEqual = isLessThanOrEqual;\n      function isGreaterThan(result) {\n        return result \u003e 0;\n      }\n      CompareResult2.isGreaterThan = isGreaterThan;\n      function isNeitherLessOrGreaterThan(result) {\n        return result === 0;\n      }\n      CompareResult2.isNeitherLessOrGreaterThan = isNeitherLessOrGreaterThan;\n      CompareResult2.greaterThan = 1;\n      CompareResult2.lessThan = -1;\n      CompareResult2.neitherLessOrGreaterThan = 0;\n    })(CompareResult || (CompareResult = {}));\n    numberComparator = (a, b) =\u003e a - b;\n    booleanComparator = (a, b) =\u003e numberComparator(a ? 1 : 0, b ? 1 : 0);\n    ArrayQueue = class {\n      /**\n       * Constructs a queue that is backed by the given array. Runtime is O(1).\n      */\n      constructor(items) {\n        this.firstIdx = 0;\n        this.items = items;\n        this.lastIdx = this.items.length - 1;\n      }\n      get length() {\n        return this.lastIdx - this.firstIdx + 1;\n      }\n      /**\n       * Consumes elements from the beginning of the queue as long as the predicate returns true.\n       * If no elements were consumed, `null` is returned. Has a runtime of O(result.length).\n      */\n      takeWhile(predicate) {\n        let startIdx = this.firstIdx;\n        while (startIdx \u003c this.items.length \u0026\u0026 predicate(this.items[startIdx])) {\n          startIdx++;\n        }\n        const result = startIdx === this.firstIdx ? null : this.items.slice(this.firstIdx, startIdx);\n        this.firstIdx = startIdx;\n        return result;\n      }\n      /**\n       * Consumes elements from the end of the queue as long as the predicate returns true.\n       * If no elements were consumed, `null` is returned.\n       * The result has the same order as the underlying array!\n      */\n      takeFromEndWhile(predicate) {\n        let endIdx = this.lastIdx;\n        while (endIdx \u003e= 0 \u0026\u0026 predicate(this.items[endIdx])) {\n          endIdx--;\n        }\n        const result = endIdx === this.lastIdx ? null : this.items.slice(endIdx + 1, this.lastIdx + 1);\n        this.lastIdx = endIdx;\n        return result;\n      }\n      peek() {\n        if (this.length === 0) {\n          return void 0;\n        }\n        return this.items[this.firstIdx];\n      }\n      dequeue() {\n        const result = this.items[this.firstIdx];\n        this.firstIdx++;\n        return result;\n      }\n      takeCount(count) {\n        const result = this.items.slice(this.firstIdx, this.firstIdx + count);\n        this.firstIdx += count;\n        return result;\n      }\n    };\n    CallbackIterable = class _CallbackIterable {\n      static {\n        this.empty = new _CallbackIterable((_callback) =\u003e {\n        });\n      }\n      constructor(iterate) {\n        this.iterate = iterate;\n      }\n      toArray() {\n        const result = [];\n        this.iterate((item) =\u003e {\n          result.push(item);\n          return true;\n        });\n        return result;\n      }\n      filter(predicate) {\n        return new _CallbackIterable((cb) =\u003e this.iterate((item) =\u003e predicate(item) ? cb(item) : true));\n      }\n      map(mapFn) {\n        return new _CallbackIterable((cb) =\u003e this.iterate((item) =\u003e cb(mapFn(item))));\n      }\n      findLast(predicate) {\n        let result;\n        this.iterate((item) =\u003e {\n          if (predicate(item)) {\n            result = item;\n          }\n          return true;\n        });\n        return result;\n      }\n      findLastMaxBy(comparator) {\n        let result;\n        let first2 = true;\n        this.iterate((item) =\u003e {\n          if (first2 || CompareResult.isGreaterThan(comparator(item, result))) {\n            first2 = false;\n            result = item;\n          }\n          return true;\n        });\n        return result;\n      }\n    };\n    Permutation = class _Permutation {\n      constructor(_indexMap) {\n        this._indexMap = _indexMap;\n      }\n      /**\n       * Returns a permutation that sorts the given array according to the given compare function.\n       */\n      static createSortPermutation(arr, compareFn) {\n        const sortIndices = Array.from(arr.keys()).sort((index1, index2) =\u003e compareFn(arr[index1], arr[index2]));\n        return new _Permutation(sortIndices);\n      }\n      /**\n       * Returns a new array with the elements of the given array re-arranged according to this permutation.\n       */\n      apply(arr) {\n        return arr.map((_, index) =\u003e arr[this._indexMap[index]]);\n      }\n      /**\n       * Returns a new permutation that undoes the re-arrangement of this permutation.\n      */\n      inverse() {\n        const inverseIndexMap = this._indexMap.slice();\n        for (let i2 = 0; i2 \u003c this._indexMap.length; i2++) {\n          inverseIndexMap[this._indexMap[i2]] = i2;\n        }\n        return new _Permutation(inverseIndexMap);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/equals.js\nfunction itemsEquals(itemEquals2 = strictEquals) {\n  return (a, b) =\u003e equals(a, b, itemEquals2);\n}\nfunction itemEquals() {\n  return (a, b) =\u003e a.equals(b);\n}\nfunction equalsIfDefined(equalsOrV1, v2, equals3) {\n  if (equals3 !== void 0) {\n    const v1 = equalsOrV1;\n    if (v1 === void 0 || v1 === null || v2 === void 0 || v2 === null) {\n      return v2 === v1;\n    }\n    return equals3(v1, v2);\n  } else {\n    const equals4 = equalsOrV1;\n    return (v1, v22) =\u003e {\n      if (v1 === void 0 || v1 === null || v22 === void 0 || v22 === null) {\n        return v22 === v1;\n      }\n      return equals4(v1, v22);\n    };\n  }\n}\nfunction structuralEquals(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (Array.isArray(a) \u0026\u0026 Array.isArray(b)) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i2 = 0; i2 \u003c a.length; i2++) {\n      if (!structuralEquals(a[i2], b[i2])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  if (a \u0026\u0026 typeof a === \"object\" \u0026\u0026 b \u0026\u0026 typeof b === \"object\") {\n    if (Object.getPrototypeOf(a) === Object.prototype \u0026\u0026 Object.getPrototypeOf(b) === Object.prototype) {\n      const aObj = a;\n      const bObj = b;\n      const keysA = Object.keys(aObj);\n      const keysB = Object.keys(bObj);\n      const keysBSet = new Set(keysB);\n      if (keysA.length !== keysB.length) {\n        return false;\n      }\n      for (const key of keysA) {\n        if (!keysBSet.has(key)) {\n          return false;\n        }\n        if (!structuralEquals(aObj[key], bObj[key])) {\n          return false;\n        }\n      }\n      return true;\n    }\n  }\n  return false;\n}\nvar strictEquals;\nvar init_equals = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/equals.js\"() {\n    init_arrays();\n    strictEquals = (a, b) =\u003e a === b;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/commonFacade/deps.js\nvar init_deps = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/commonFacade/deps.js\"() {\n    init_assert();\n    init_equals();\n    init_errors();\n    init_event();\n    init_lifecycle();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/base.js\nfunction handleBugIndicatingErrorRecovery(message) {\n  const err = new Error(\"BugIndicatingErrorRecovery: \" + message);\n  onUnexpectedError(err);\n  console.error(\"recovered from an error that indicates a bug\", err);\n}\nvar init_base = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/base.js\"() {\n    init_deps();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/logging.js\nfunction addLogger(logger) {\n  if (!globalObservableLogger) {\n    globalObservableLogger = logger;\n  } else if (globalObservableLogger instanceof ComposedLogger) {\n    globalObservableLogger.loggers.push(logger);\n  } else {\n    globalObservableLogger = new ComposedLogger([globalObservableLogger, logger]);\n  }\n}\nfunction getLogger() {\n  return globalObservableLogger;\n}\nfunction setLogObservableFn(fn) {\n  globalObservableLoggerFn = fn;\n}\nvar globalObservableLogger, globalObservableLoggerFn, ComposedLogger;\nvar init_logging = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/logging.js\"() {\n    globalObservableLoggerFn = void 0;\n    ComposedLogger = class {\n      constructor(loggers) {\n        this.loggers = loggers;\n      }\n      handleObservableCreated(observable, location2) {\n        for (const logger of this.loggers) {\n          logger.handleObservableCreated(observable, location2);\n        }\n      }\n      handleOnListenerCountChanged(observable, newCount) {\n        for (const logger of this.loggers) {\n          logger.handleOnListenerCountChanged(observable, newCount);\n        }\n      }\n      handleObservableUpdated(observable, info) {\n        for (const logger of this.loggers) {\n          logger.handleObservableUpdated(observable, info);\n        }\n      }\n      handleAutorunCreated(autorun2, location2) {\n        for (const logger of this.loggers) {\n          logger.handleAutorunCreated(autorun2, location2);\n        }\n      }\n      handleAutorunDisposed(autorun2) {\n        for (const logger of this.loggers) {\n          logger.handleAutorunDisposed(autorun2);\n        }\n      }\n      handleAutorunDependencyChanged(autorun2, observable, change) {\n        for (const logger of this.loggers) {\n          logger.handleAutorunDependencyChanged(autorun2, observable, change);\n        }\n      }\n      handleAutorunStarted(autorun2) {\n        for (const logger of this.loggers) {\n          logger.handleAutorunStarted(autorun2);\n        }\n      }\n      handleAutorunFinished(autorun2) {\n        for (const logger of this.loggers) {\n          logger.handleAutorunFinished(autorun2);\n        }\n      }\n      handleDerivedDependencyChanged(derived2, observable, change) {\n        for (const logger of this.loggers) {\n          logger.handleDerivedDependencyChanged(derived2, observable, change);\n        }\n      }\n      handleDerivedCleared(observable) {\n        for (const logger of this.loggers) {\n          logger.handleDerivedCleared(observable);\n        }\n      }\n      handleBeginTransaction(transaction2) {\n        for (const logger of this.loggers) {\n          logger.handleBeginTransaction(transaction2);\n        }\n      }\n      handleEndTransaction(transaction2) {\n        for (const logger of this.loggers) {\n          logger.handleEndTransaction(transaction2);\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/transaction.js\nfunction transaction(fn, getDebugName2) {\n  const tx = new TransactionImpl(fn, getDebugName2);\n  try {\n    fn(tx);\n  } finally {\n    tx.finish();\n  }\n}\nfunction globalTransaction(fn) {\n  if (_globalTransaction) {\n    fn(_globalTransaction);\n  } else {\n    const tx = new TransactionImpl(fn, void 0);\n    _globalTransaction = tx;\n    try {\n      fn(tx);\n    } finally {\n      tx.finish();\n      _globalTransaction = void 0;\n    }\n  }\n}\nasync function asyncTransaction(fn, getDebugName2) {\n  const tx = new TransactionImpl(fn, getDebugName2);\n  try {\n    await fn(tx);\n  } finally {\n    tx.finish();\n  }\n}\nfunction subtransaction(tx, fn, getDebugName2) {\n  if (!tx) {\n    transaction(fn, getDebugName2);\n  } else {\n    fn(tx);\n  }\n}\nvar _globalTransaction, TransactionImpl;\nvar init_transaction = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/transaction.js\"() {\n    init_base();\n    init_debugName();\n    init_logging();\n    _globalTransaction = void 0;\n    TransactionImpl = class {\n      constructor(_fn, _getDebugName) {\n        this._fn = _fn;\n        this._getDebugName = _getDebugName;\n        this._updatingObservers = [];\n        getLogger()?.handleBeginTransaction(this);\n      }\n      getDebugName() {\n        if (this._getDebugName) {\n          return this._getDebugName();\n        }\n        return getFunctionName(this._fn);\n      }\n      updateObserver(observer, observable) {\n        if (!this._updatingObservers) {\n          handleBugIndicatingErrorRecovery(\"Transaction already finished!\");\n          transaction((tx) =\u003e {\n            tx.updateObserver(observer, observable);\n          });\n          return;\n        }\n        this._updatingObservers.push({ observer, observable });\n        observer.beginUpdate(observable);\n      }\n      finish() {\n        const updatingObservers = this._updatingObservers;\n        if (!updatingObservers) {\n          handleBugIndicatingErrorRecovery(\"transaction.finish() has already been called!\");\n          return;\n        }\n        for (let i2 = 0; i2 \u003c updatingObservers.length; i2++) {\n          const { observer, observable } = updatingObservers[i2];\n          observer.endUpdate(observable);\n        }\n        this._updatingObservers = null;\n        getLogger()?.handleEndTransaction(this);\n      }\n      debugGetUpdatingObservers() {\n        return this._updatingObservers;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/debugLocation.js\nfunction parseLine(stackLine) {\n  const match2 = stackLine.match(/\\((.*):(\\d+):(\\d+)\\)/);\n  if (match2) {\n    return {\n      fileName: match2[1],\n      line: parseInt(match2[2]),\n      column: parseInt(match2[3]),\n      id: stackLine\n    };\n  }\n  const match22 = stackLine.match(/at ([^\\(\\)]*):(\\d+):(\\d+)/);\n  if (match22) {\n    return {\n      fileName: match22[1],\n      line: parseInt(match22[2]),\n      column: parseInt(match22[3]),\n      id: stackLine\n    };\n  }\n  return void 0;\n}\nvar DebugLocation, DebugLocationImpl;\nvar init_debugLocation = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/debugLocation.js\"() {\n    (function(DebugLocation2) {\n      let enabled = false;\n      function enable() {\n        enabled = true;\n      }\n      DebugLocation2.enable = enable;\n      function ofCaller() {\n        if (!enabled) {\n          return void 0;\n        }\n        const Err = Error;\n        const l = Err.stackTraceLimit;\n        Err.stackTraceLimit = 3;\n        const stack = new Error().stack;\n        Err.stackTraceLimit = l;\n        return DebugLocationImpl.fromStack(stack, 2);\n      }\n      DebugLocation2.ofCaller = ofCaller;\n    })(DebugLocation || (DebugLocation = {}));\n    DebugLocationImpl = class _DebugLocationImpl {\n      static fromStack(stack, parentIdx) {\n        const lines = stack.split(\"\\n\");\n        const location2 = parseLine(lines[parentIdx + 1]);\n        if (location2) {\n          return new _DebugLocationImpl(location2.fileName, location2.line, location2.column, location2.id);\n        } else {\n          return void 0;\n        }\n      }\n      constructor(fileName, line, column, id) {\n        this.fileName = fileName;\n        this.line = line;\n        this.column = column;\n        this.id = id;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/baseObservable.js\nfunction _setDerivedOpts(derived2) {\n  _derived = derived2;\n}\nfunction _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange2) {\n  _recomputeInitiallyAndOnChange = recomputeInitiallyAndOnChange2;\n}\nfunction _setKeepObserved(keepObserved2) {\n  _keepObserved = keepObserved2;\n}\nvar _derived, _recomputeInitiallyAndOnChange, _keepObserved, ConvenientObservable, BaseObservable;\nvar init_baseObservable = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/baseObservable.js\"() {\n    init_debugLocation();\n    init_debugName();\n    init_logging();\n    ConvenientObservable = class {\n      get TChange() {\n        return null;\n      }\n      reportChanges() {\n        this.get();\n      }\n      /** @sealed */\n      read(reader) {\n        if (reader) {\n          return reader.readObservable(this);\n        } else {\n          return this.get();\n        }\n      }\n      map(fnOrOwner, fnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n        const owner = fnOrUndefined === void 0 ? void 0 : fnOrOwner;\n        const fn = fnOrUndefined === void 0 ? fnOrOwner : fnOrUndefined;\n        return _derived({\n          owner,\n          debugName: () =\u003e {\n            const name = getFunctionName(fn);\n            if (name !== void 0) {\n              return name;\n            }\n            const regexp = /^\\s*\\(?\\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*\\)?\\s*=\u003e\\s*\\1(?:\\??)\\.([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*$/;\n            const match2 = regexp.exec(fn.toString());\n            if (match2) {\n              return `${this.debugName}.${match2[2]}`;\n            }\n            if (!owner) {\n              return `${this.debugName} (mapped)`;\n            }\n            return void 0;\n          },\n          debugReferenceFn: fn\n        }, (reader) =\u003e fn(this.read(reader), reader), debugLocation);\n      }\n      /**\n       * @sealed\n       * Converts an observable of an observable value into a direct observable of the value.\n      */\n      flatten() {\n        return _derived({\n          owner: void 0,\n          debugName: () =\u003e `${this.debugName} (flattened)`\n        }, (reader) =\u003e this.read(reader).read(reader));\n      }\n      recomputeInitiallyAndOnChange(store, handleValue) {\n        store.add(_recomputeInitiallyAndOnChange(this, handleValue));\n        return this;\n      }\n    };\n    BaseObservable = class extends ConvenientObservable {\n      constructor(debugLocation) {\n        super();\n        this._observers = /* @__PURE__ */ new Set();\n        getLogger()?.handleObservableCreated(this, debugLocation);\n      }\n      addObserver(observer) {\n        const len = this._observers.size;\n        this._observers.add(observer);\n        if (len === 0) {\n          this.onFirstObserverAdded();\n        }\n        if (len !== this._observers.size) {\n          getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n        }\n      }\n      removeObserver(observer) {\n        const deleted = this._observers.delete(observer);\n        if (deleted \u0026\u0026 this._observers.size === 0) {\n          this.onLastObserverRemoved();\n        }\n        if (deleted) {\n          getLogger()?.handleOnListenerCountChanged(this, this._observers.size);\n        }\n      }\n      onFirstObserverAdded() {\n      }\n      onLastObserverRemoved() {\n      }\n      debugGetObservers() {\n        return this._observers;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableValue.js\nfunction observableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {\n  let debugNameData;\n  if (typeof nameOrOwner === \"string\") {\n    debugNameData = new DebugNameData(void 0, nameOrOwner, void 0);\n  } else {\n    debugNameData = new DebugNameData(nameOrOwner, void 0, void 0);\n  }\n  return new ObservableValue(debugNameData, initialValue, strictEquals, debugLocation);\n}\nfunction disposableObservableValue(nameOrOwner, initialValue, debugLocation = DebugLocation.ofCaller()) {\n  let debugNameData;\n  if (typeof nameOrOwner === \"string\") {\n    debugNameData = new DebugNameData(void 0, nameOrOwner, void 0);\n  } else {\n    debugNameData = new DebugNameData(nameOrOwner, void 0, void 0);\n  }\n  return new DisposableObservableValue(debugNameData, initialValue, strictEquals, debugLocation);\n}\nvar ObservableValue, DisposableObservableValue;\nvar init_observableValue = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableValue.js\"() {\n    init_transaction();\n    init_baseObservable();\n    init_deps();\n    init_debugName();\n    init_logging();\n    init_debugLocation();\n    ObservableValue = class extends BaseObservable {\n      get debugName() {\n        return this._debugNameData.getDebugName(this) ?? \"ObservableValue\";\n      }\n      constructor(_debugNameData, initialValue, _equalityComparator, debugLocation) {\n        super(debugLocation);\n        this._debugNameData = _debugNameData;\n        this._equalityComparator = _equalityComparator;\n        this._value = initialValue;\n        getLogger()?.handleObservableUpdated(this, { hadValue: false, newValue: initialValue, change: void 0, didChange: true, oldValue: void 0 });\n      }\n      get() {\n        return this._value;\n      }\n      set(value, tx, change) {\n        if (change === void 0 \u0026\u0026 this._equalityComparator(this._value, value)) {\n          return;\n        }\n        let _tx;\n        if (!tx) {\n          tx = _tx = new TransactionImpl(() =\u003e {\n          }, () =\u003e `Setting ${this.debugName}`);\n        }\n        try {\n          const oldValue = this._value;\n          this._setValue(value);\n          getLogger()?.handleObservableUpdated(this, { oldValue, newValue: value, change, didChange: true, hadValue: true });\n          for (const observer of this._observers) {\n            tx.updateObserver(observer, this);\n            observer.handleChange(this, change);\n          }\n        } finally {\n          if (_tx) {\n            _tx.finish();\n          }\n        }\n      }\n      toString() {\n        return `${this.debugName}: ${this._value}`;\n      }\n      _setValue(newValue) {\n        this._value = newValue;\n      }\n      debugGetState() {\n        return {\n          value: this._value\n        };\n      }\n      debugSetValue(value) {\n        this._value = value;\n      }\n    };\n    DisposableObservableValue = class extends ObservableValue {\n      _setValue(newValue) {\n        if (this._value === newValue) {\n          return;\n        }\n        if (this._value) {\n          this._value.dispose();\n        }\n        this._value = newValue;\n      }\n      dispose() {\n        this._value?.dispose();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/lazyObservableValue.js\nvar LazyObservableValue;\nvar init_lazyObservableValue = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/lazyObservableValue.js\"() {\n    init_transaction();\n    init_logging();\n    init_baseObservable();\n    LazyObservableValue = class extends BaseObservable {\n      get debugName() {\n        return this._debugNameData.getDebugName(this) ?? \"LazyObservableValue\";\n      }\n      constructor(_debugNameData, initialValue, _equalityComparator, debugLocation) {\n        super(debugLocation);\n        this._debugNameData = _debugNameData;\n        this._equalityComparator = _equalityComparator;\n        this._isUpToDate = true;\n        this._deltas = [];\n        this._updateCounter = 0;\n        this._value = initialValue;\n      }\n      get() {\n        this._update();\n        return this._value;\n      }\n      _update() {\n        if (this._isUpToDate) {\n          return;\n        }\n        this._isUpToDate = true;\n        if (this._deltas.length \u003e 0) {\n          for (const change of this._deltas) {\n            getLogger()?.handleObservableUpdated(this, { change, didChange: true, oldValue: \"(unknown)\", newValue: this._value, hadValue: true });\n            for (const observer of this._observers) {\n              observer.handleChange(this, change);\n            }\n          }\n          this._deltas.length = 0;\n        } else {\n          getLogger()?.handleObservableUpdated(this, { change: void 0, didChange: true, oldValue: \"(unknown)\", newValue: this._value, hadValue: true });\n          for (const observer of this._observers) {\n            observer.handleChange(this, void 0);\n          }\n        }\n      }\n      _beginUpdate() {\n        this._updateCounter++;\n        if (this._updateCounter === 1) {\n          for (const observer of this._observers) {\n            observer.beginUpdate(this);\n          }\n        }\n      }\n      _endUpdate() {\n        this._updateCounter--;\n        if (this._updateCounter === 0) {\n          this._update();\n          const observers = [...this._observers];\n          for (const r of observers) {\n            r.endUpdate(this);\n          }\n        }\n      }\n      addObserver(observer) {\n        const shouldCallBeginUpdate = !this._observers.has(observer) \u0026\u0026 this._updateCounter \u003e 0;\n        super.addObserver(observer);\n        if (shouldCallBeginUpdate) {\n          observer.beginUpdate(this);\n        }\n      }\n      removeObserver(observer) {\n        const shouldCallEndUpdate = this._observers.has(observer) \u0026\u0026 this._updateCounter \u003e 0;\n        super.removeObserver(observer);\n        if (shouldCallEndUpdate) {\n          observer.endUpdate(this);\n        }\n      }\n      set(value, tx, change) {\n        if (change === void 0 \u0026\u0026 this._equalityComparator(this._value, value)) {\n          return;\n        }\n        let _tx;\n        if (!tx) {\n          tx = _tx = new TransactionImpl(() =\u003e {\n          }, () =\u003e `Setting ${this.debugName}`);\n        }\n        try {\n          this._isUpToDate = false;\n          this._setValue(value);\n          if (change !== void 0) {\n            this._deltas.push(change);\n          }\n          tx.updateObserver({\n            beginUpdate: () =\u003e this._beginUpdate(),\n            endUpdate: () =\u003e this._endUpdate(),\n            handleChange: (observable, change2) =\u003e {\n            },\n            handlePossibleChange: (observable) =\u003e {\n            }\n          }, this);\n          if (this._updateCounter \u003e 1) {\n            for (const observer of this._observers) {\n              observer.handlePossibleChange(this);\n            }\n          }\n        } finally {\n          if (_tx) {\n            _tx.finish();\n          }\n        }\n      }\n      toString() {\n        return `${this.debugName}: ${this._value}`;\n      }\n      _setValue(newValue) {\n        this._value = newValue;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableValueOpts.js\nfunction observableValueOpts(options2, initialValue, debugLocation = DebugLocation.ofCaller()) {\n  if (options2.lazy) {\n    return new LazyObservableValue(new DebugNameData(options2.owner, options2.debugName, void 0), initialValue, options2.equalsFn ?? strictEquals, debugLocation);\n  }\n  return new ObservableValue(new DebugNameData(options2.owner, options2.debugName, void 0), initialValue, options2.equalsFn ?? strictEquals, debugLocation);\n}\nvar init_observableValueOpts = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableValueOpts.js\"() {\n    init_debugName();\n    init_deps();\n    init_observableValue();\n    init_lazyObservableValue();\n    init_debugLocation();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/reactions/autorunImpl.js\nvar AutorunObserver;\nvar init_autorunImpl = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/reactions/autorunImpl.js\"() {\n    init_deps();\n    init_logging();\n    AutorunObserver = class {\n      get debugName() {\n        return this._debugNameData.getDebugName(this) ?? \"(anonymous)\";\n      }\n      constructor(_debugNameData, _runFn, _changeTracker, debugLocation) {\n        this._debugNameData = _debugNameData;\n        this._runFn = _runFn;\n        this._changeTracker = _changeTracker;\n        this._state = 2;\n        this._updateCount = 0;\n        this._disposed = false;\n        this._dependencies = /* @__PURE__ */ new Set();\n        this._dependenciesToBeRemoved = /* @__PURE__ */ new Set();\n        this._isRunning = false;\n        this._store = void 0;\n        this._delayedStore = void 0;\n        this._changeSummary = this._changeTracker?.createChangeSummary(void 0);\n        getLogger()?.handleAutorunCreated(this, debugLocation);\n        this._run();\n        trackDisposable(this);\n      }\n      dispose() {\n        if (this._disposed) {\n          return;\n        }\n        this._disposed = true;\n        for (const o of this._dependencies) {\n          o.removeObserver(this);\n        }\n        this._dependencies.clear();\n        if (this._store !== void 0) {\n          this._store.dispose();\n        }\n        if (this._delayedStore !== void 0) {\n          this._delayedStore.dispose();\n        }\n        getLogger()?.handleAutorunDisposed(this);\n        markAsDisposed(this);\n      }\n      _run() {\n        const emptySet = this._dependenciesToBeRemoved;\n        this._dependenciesToBeRemoved = this._dependencies;\n        this._dependencies = emptySet;\n        this._state = 3;\n        try {\n          if (!this._disposed) {\n            getLogger()?.handleAutorunStarted(this);\n            const changeSummary = this._changeSummary;\n            const delayedStore = this._delayedStore;\n            if (delayedStore !== void 0) {\n              this._delayedStore = void 0;\n            }\n            try {\n              this._isRunning = true;\n              if (this._changeTracker) {\n                this._changeTracker.beforeUpdate?.(this, changeSummary);\n                this._changeSummary = this._changeTracker.createChangeSummary(changeSummary);\n              }\n              if (this._store !== void 0) {\n                this._store.dispose();\n                this._store = void 0;\n              }\n              this._runFn(this, changeSummary);\n            } catch (e) {\n              onBugIndicatingError(e);\n            } finally {\n              this._isRunning = false;\n              if (delayedStore !== void 0) {\n                delayedStore.dispose();\n              }\n            }\n          }\n        } finally {\n          if (!this._disposed) {\n            getLogger()?.handleAutorunFinished(this);\n          }\n          for (const o of this._dependenciesToBeRemoved) {\n            o.removeObserver(this);\n          }\n          this._dependenciesToBeRemoved.clear();\n        }\n      }\n      toString() {\n        return `Autorun\u003c${this.debugName}\u003e`;\n      }\n      // IObserver implementation\n      beginUpdate(_observable) {\n        if (this._state === 3) {\n          this._state = 1;\n        }\n        this._updateCount++;\n      }\n      endUpdate(_observable) {\n        try {\n          if (this._updateCount === 1) {\n            do {\n              if (this._state === 1) {\n                this._state = 3;\n                for (const d of this._dependencies) {\n                  d.reportChanges();\n                  if (this._state === 2) {\n                    break;\n                  }\n                }\n              }\n              if (this._state !== 3) {\n                this._run();\n              }\n            } while (this._state !== 3);\n          }\n        } finally {\n          this._updateCount--;\n        }\n        assertFn(() =\u003e this._updateCount \u003e= 0);\n      }\n      handlePossibleChange(observable) {\n        if (this._state === 3 \u0026\u0026 this._isDependency(observable)) {\n          this._state = 1;\n        }\n      }\n      handleChange(observable, change) {\n        if (this._isDependency(observable)) {\n          getLogger()?.handleAutorunDependencyChanged(this, observable, change);\n          try {\n            const shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n              changedObservable: observable,\n              change,\n              didChange: (o) =\u003e o === observable\n            }, this._changeSummary) : true;\n            if (shouldReact) {\n              this._state = 2;\n            }\n          } catch (e) {\n            onBugIndicatingError(e);\n          }\n        }\n      }\n      _isDependency(observable) {\n        return this._dependencies.has(observable) \u0026\u0026 !this._dependenciesToBeRemoved.has(observable);\n      }\n      // IReader implementation\n      _ensureNoRunning() {\n        if (!this._isRunning) {\n          throw new BugIndicatingError(\"The reader object cannot be used outside its compute function!\");\n        }\n      }\n      readObservable(observable) {\n        this._ensureNoRunning();\n        if (this._disposed) {\n          return observable.get();\n        }\n        observable.addObserver(this);\n        const value = observable.get();\n        this._dependencies.add(observable);\n        this._dependenciesToBeRemoved.delete(observable);\n        return value;\n      }\n      get store() {\n        this._ensureNoRunning();\n        if (this._disposed) {\n          throw new BugIndicatingError(\"Cannot access store after dispose\");\n        }\n        if (this._store === void 0) {\n          this._store = new DisposableStore();\n        }\n        return this._store;\n      }\n      debugGetState() {\n        return {\n          isRunning: this._isRunning,\n          updateCount: this._updateCount,\n          dependencies: this._dependencies,\n          state: this._state\n        };\n      }\n      debugRerun() {\n        if (!this._isRunning) {\n          this._run();\n        } else {\n          this._state = 2;\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/reactions/autorun.js\nfunction autorun(fn, debugLocation = DebugLocation.ofCaller()) {\n  return new AutorunObserver(new DebugNameData(void 0, void 0, fn), fn, void 0, debugLocation);\n}\nfunction autorunOpts(options2, fn, debugLocation = DebugLocation.ofCaller()) {\n  return new AutorunObserver(new DebugNameData(options2.owner, options2.debugName, options2.debugReferenceFn ?? fn), fn, void 0, debugLocation);\n}\nfunction autorunHandleChanges(options2, fn, debugLocation = DebugLocation.ofCaller()) {\n  return new AutorunObserver(new DebugNameData(options2.owner, options2.debugName, options2.debugReferenceFn ?? fn), fn, options2.changeTracker, debugLocation);\n}\nfunction autorunWithStoreHandleChanges(options2, fn) {\n  const store = new DisposableStore();\n  const disposable = autorunHandleChanges({\n    owner: options2.owner,\n    debugName: options2.debugName,\n    debugReferenceFn: options2.debugReferenceFn ?? fn,\n    changeTracker: options2.changeTracker\n  }, (reader, changeSummary) =\u003e {\n    store.clear();\n    fn(reader, changeSummary, store);\n  });\n  return toDisposable(() =\u003e {\n    disposable.dispose();\n    store.dispose();\n  });\n}\nfunction autorunWithStore(fn) {\n  const store = new DisposableStore();\n  const disposable = autorunOpts({\n    owner: void 0,\n    debugName: void 0,\n    debugReferenceFn: fn\n  }, (reader) =\u003e {\n    store.clear();\n    fn(reader, store);\n  });\n  return toDisposable(() =\u003e {\n    disposable.dispose();\n    store.dispose();\n  });\n}\nfunction autorunDelta(observable, handler) {\n  let _lastValue;\n  return autorunOpts({ debugReferenceFn: handler }, (reader) =\u003e {\n    const newValue = observable.read(reader);\n    const lastValue = _lastValue;\n    _lastValue = newValue;\n    handler({ lastValue, newValue });\n  });\n}\nvar init_autorun = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/reactions/autorun.js\"() {\n    init_deps();\n    init_debugName();\n    init_autorunImpl();\n    init_debugLocation();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/derivedImpl.js\nvar Derived, DerivedWithSetter;\nvar init_derivedImpl = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/derivedImpl.js\"() {\n    init_baseObservable();\n    init_deps();\n    init_logging();\n    Derived = class extends BaseObservable {\n      get debugName() {\n        return this._debugNameData.getDebugName(this) ?? \"(anonymous)\";\n      }\n      constructor(_debugNameData, _computeFn, _changeTracker, _handleLastObserverRemoved = void 0, _equalityComparator, debugLocation) {\n        super(debugLocation);\n        this._debugNameData = _debugNameData;\n        this._computeFn = _computeFn;\n        this._changeTracker = _changeTracker;\n        this._handleLastObserverRemoved = _handleLastObserverRemoved;\n        this._equalityComparator = _equalityComparator;\n        this._state = 0;\n        this._value = void 0;\n        this._updateCount = 0;\n        this._dependencies = /* @__PURE__ */ new Set();\n        this._dependenciesToBeRemoved = /* @__PURE__ */ new Set();\n        this._changeSummary = void 0;\n        this._isUpdating = false;\n        this._isComputing = false;\n        this._didReportChange = false;\n        this._isInBeforeUpdate = false;\n        this._isReaderValid = false;\n        this._store = void 0;\n        this._delayedStore = void 0;\n        this._removedObserverToCallEndUpdateOn = null;\n        this._changeSummary = this._changeTracker?.createChangeSummary(void 0);\n      }\n      onLastObserverRemoved() {\n        this._state = 0;\n        this._value = void 0;\n        getLogger()?.handleDerivedCleared(this);\n        for (const d of this._dependencies) {\n          d.removeObserver(this);\n        }\n        this._dependencies.clear();\n        if (this._store !== void 0) {\n          this._store.dispose();\n          this._store = void 0;\n        }\n        if (this._delayedStore !== void 0) {\n          this._delayedStore.dispose();\n          this._delayedStore = void 0;\n        }\n        this._handleLastObserverRemoved?.();\n      }\n      get() {\n        const checkEnabled = false;\n        if (this._isComputing \u0026\u0026 checkEnabled) {\n          throw new BugIndicatingError(\"Cyclic deriveds are not supported yet!\");\n        }\n        if (this._observers.size === 0) {\n          let result;\n          try {\n            this._isReaderValid = true;\n            let changeSummary = void 0;\n            if (this._changeTracker) {\n              changeSummary = this._changeTracker.createChangeSummary(void 0);\n              this._changeTracker.beforeUpdate?.(this, changeSummary);\n            }\n            result = this._computeFn(this, changeSummary);\n          } finally {\n            this._isReaderValid = false;\n          }\n          this.onLastObserverRemoved();\n          return result;\n        } else {\n          do {\n            if (this._state === 1) {\n              for (const d of this._dependencies) {\n                d.reportChanges();\n                if (this._state === 2) {\n                  break;\n                }\n              }\n            }\n            if (this._state === 1) {\n              this._state = 3;\n            }\n            if (this._state !== 3) {\n              this._recompute();\n            }\n          } while (this._state !== 3);\n          return this._value;\n        }\n      }\n      _recompute() {\n        let didChange = false;\n        this._isComputing = true;\n        this._didReportChange = false;\n        const emptySet = this._dependenciesToBeRemoved;\n        this._dependenciesToBeRemoved = this._dependencies;\n        this._dependencies = emptySet;\n        try {\n          const changeSummary = this._changeSummary;\n          this._isReaderValid = true;\n          if (this._changeTracker) {\n            this._isInBeforeUpdate = true;\n            this._changeTracker.beforeUpdate?.(this, changeSummary);\n            this._isInBeforeUpdate = false;\n            this._changeSummary = this._changeTracker?.createChangeSummary(changeSummary);\n          }\n          const hadValue = this._state !== 0;\n          const oldValue = this._value;\n          this._state = 3;\n          const delayedStore = this._delayedStore;\n          if (delayedStore !== void 0) {\n            this._delayedStore = void 0;\n          }\n          try {\n            if (this._store !== void 0) {\n              this._store.dispose();\n              this._store = void 0;\n            }\n            this._value = this._computeFn(this, changeSummary);\n          } finally {\n            this._isReaderValid = false;\n            for (const o of this._dependenciesToBeRemoved) {\n              o.removeObserver(this);\n            }\n            this._dependenciesToBeRemoved.clear();\n            if (delayedStore !== void 0) {\n              delayedStore.dispose();\n            }\n          }\n          didChange = this._didReportChange || hadValue \u0026\u0026 !this._equalityComparator(oldValue, this._value);\n          getLogger()?.handleObservableUpdated(this, {\n            oldValue,\n            newValue: this._value,\n            change: void 0,\n            didChange,\n            hadValue\n          });\n        } catch (e) {\n          onBugIndicatingError(e);\n        }\n        this._isComputing = false;\n        if (!this._didReportChange \u0026\u0026 didChange) {\n          for (const r of this._observers) {\n            r.handleChange(this, void 0);\n          }\n        } else {\n          this._didReportChange = false;\n        }\n      }\n      toString() {\n        return `LazyDerived\u003c${this.debugName}\u003e`;\n      }\n      // IObserver Implementation\n      beginUpdate(_observable) {\n        if (this._isUpdating) {\n          throw new BugIndicatingError(\"Cyclic deriveds are not supported yet!\");\n        }\n        this._updateCount++;\n        this._isUpdating = true;\n        try {\n          const propagateBeginUpdate = this._updateCount === 1;\n          if (this._state === 3) {\n            this._state = 1;\n            if (!propagateBeginUpdate) {\n              for (const r of this._observers) {\n                r.handlePossibleChange(this);\n              }\n            }\n          }\n          if (propagateBeginUpdate) {\n            for (const r of this._observers) {\n              r.beginUpdate(this);\n            }\n          }\n        } finally {\n          this._isUpdating = false;\n        }\n      }\n      endUpdate(_observable) {\n        this._updateCount--;\n        if (this._updateCount === 0) {\n          const observers = [...this._observers];\n          for (const r of observers) {\n            r.endUpdate(this);\n          }\n          if (this._removedObserverToCallEndUpdateOn) {\n            const observers2 = [...this._removedObserverToCallEndUpdateOn];\n            this._removedObserverToCallEndUpdateOn = null;\n            for (const r of observers2) {\n              r.endUpdate(this);\n            }\n          }\n        }\n        assertFn(() =\u003e this._updateCount \u003e= 0);\n      }\n      handlePossibleChange(observable) {\n        if (this._state === 3 \u0026\u0026 this._dependencies.has(observable) \u0026\u0026 !this._dependenciesToBeRemoved.has(observable)) {\n          this._state = 1;\n          for (const r of this._observers) {\n            r.handlePossibleChange(this);\n          }\n        }\n      }\n      handleChange(observable, change) {\n        if (this._dependencies.has(observable) \u0026\u0026 !this._dependenciesToBeRemoved.has(observable) || this._isInBeforeUpdate) {\n          getLogger()?.handleDerivedDependencyChanged(this, observable, change);\n          let shouldReact = false;\n          try {\n            shouldReact = this._changeTracker ? this._changeTracker.handleChange({\n              changedObservable: observable,\n              change,\n              didChange: (o) =\u003e o === observable\n            }, this._changeSummary) : true;\n          } catch (e) {\n            onBugIndicatingError(e);\n          }\n          const wasUpToDate = this._state === 3;\n          if (shouldReact \u0026\u0026 (this._state === 1 || wasUpToDate)) {\n            this._state = 2;\n            if (wasUpToDate) {\n              for (const r of this._observers) {\n                r.handlePossibleChange(this);\n              }\n            }\n          }\n        }\n      }\n      // IReader Implementation\n      _ensureReaderValid() {\n        if (!this._isReaderValid) {\n          throw new BugIndicatingError(\"The reader object cannot be used outside its compute function!\");\n        }\n      }\n      readObservable(observable) {\n        this._ensureReaderValid();\n        observable.addObserver(this);\n        const value = observable.get();\n        this._dependencies.add(observable);\n        this._dependenciesToBeRemoved.delete(observable);\n        return value;\n      }\n      get store() {\n        this._ensureReaderValid();\n        if (this._store === void 0) {\n          this._store = new DisposableStore();\n        }\n        return this._store;\n      }\n      addObserver(observer) {\n        const shouldCallBeginUpdate = !this._observers.has(observer) \u0026\u0026 this._updateCount \u003e 0;\n        super.addObserver(observer);\n        if (shouldCallBeginUpdate) {\n          if (this._removedObserverToCallEndUpdateOn \u0026\u0026 this._removedObserverToCallEndUpdateOn.has(observer)) {\n            this._removedObserverToCallEndUpdateOn.delete(observer);\n          } else {\n            observer.beginUpdate(this);\n          }\n        }\n      }\n      removeObserver(observer) {\n        if (this._observers.has(observer) \u0026\u0026 this._updateCount \u003e 0) {\n          if (!this._removedObserverToCallEndUpdateOn) {\n            this._removedObserverToCallEndUpdateOn = /* @__PURE__ */ new Set();\n          }\n          this._removedObserverToCallEndUpdateOn.add(observer);\n        }\n        super.removeObserver(observer);\n      }\n      debugGetState() {\n        return {\n          state: this._state,\n          updateCount: this._updateCount,\n          isComputing: this._isComputing,\n          dependencies: this._dependencies,\n          value: this._value\n        };\n      }\n      debugSetValue(newValue) {\n        this._value = newValue;\n      }\n      debugRecompute() {\n        if (!this._isComputing) {\n          this._recompute();\n        } else {\n          this._state = 2;\n        }\n      }\n      setValue(newValue, tx, change) {\n        this._value = newValue;\n        const observers = this._observers;\n        tx.updateObserver(this, this);\n        for (const d of observers) {\n          d.handleChange(this, change);\n        }\n      }\n    };\n    DerivedWithSetter = class extends Derived {\n      constructor(debugNameData, computeFn, changeTracker, handleLastObserverRemoved = void 0, equalityComparator, set, debugLocation) {\n        super(debugNameData, computeFn, changeTracker, handleLastObserverRemoved, equalityComparator, debugLocation);\n        this.set = set;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/derived.js\nfunction derived(computeFnOrOwner, computeFn, debugLocation = DebugLocation.ofCaller()) {\n  if (computeFn !== void 0) {\n    return new Derived(new DebugNameData(computeFnOrOwner, void 0, computeFn), computeFn, void 0, void 0, strictEquals, debugLocation);\n  }\n  return new Derived(new DebugNameData(void 0, void 0, computeFnOrOwner), computeFnOrOwner, void 0, void 0, strictEquals, debugLocation);\n}\nfunction derivedWithSetter(owner, computeFn, setter, debugLocation = DebugLocation.ofCaller()) {\n  return new DerivedWithSetter(new DebugNameData(owner, void 0, computeFn), computeFn, void 0, void 0, strictEquals, setter, debugLocation);\n}\nfunction derivedOpts(options2, computeFn, debugLocation = DebugLocation.ofCaller()) {\n  return new Derived(new DebugNameData(options2.owner, options2.debugName, options2.debugReferenceFn), computeFn, void 0, options2.onLastObserverRemoved, options2.equalsFn ?? strictEquals, debugLocation);\n}\nfunction derivedHandleChanges(options2, computeFn, debugLocation = DebugLocation.ofCaller()) {\n  return new Derived(new DebugNameData(options2.owner, options2.debugName, void 0), computeFn, options2.changeTracker, void 0, options2.equalityComparer ?? strictEquals, debugLocation);\n}\nfunction derivedDisposable(computeFnOrOwner, computeFnOrUndefined, debugLocation = DebugLocation.ofCaller()) {\n  let computeFn;\n  let owner;\n  if (computeFnOrUndefined === void 0) {\n    computeFn = computeFnOrOwner;\n    owner = void 0;\n  } else {\n    owner = computeFnOrOwner;\n    computeFn = computeFnOrUndefined;\n  }\n  let store = void 0;\n  return new Derived(new DebugNameData(owner, void 0, computeFn), (r) =\u003e {\n    if (!store) {\n      store = new DisposableStore();\n    } else {\n      store.clear();\n    }\n    const result = computeFn(r);\n    if (result) {\n      store.add(result);\n    }\n    return result;\n  }, void 0, () =\u003e {\n    if (store) {\n      store.dispose();\n      store = void 0;\n    }\n  }, strictEquals, debugLocation);\n}\nvar init_derived = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/derived.js\"() {\n    init_deps();\n    init_debugLocation();\n    init_debugName();\n    init_baseObservable();\n    init_derivedImpl();\n    _setDerivedOpts(derivedOpts);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/promise.js\nvar ObservablePromise, PromiseResult;\nvar init_promise = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/promise.js\"() {\n    init_transaction();\n    init_observableValue();\n    ObservablePromise = class {\n      constructor(promise) {\n        this._value = observableValue(this, void 0);\n        this.promiseResult = this._value;\n        this.promise = promise.then((value) =\u003e {\n          transaction((tx) =\u003e {\n            this._value.set(new PromiseResult(value, void 0), tx);\n          });\n          return value;\n        }, (error) =\u003e {\n          transaction((tx) =\u003e {\n            this._value.set(new PromiseResult(void 0, error), tx);\n          });\n          throw error;\n        });\n      }\n    };\n    PromiseResult = class {\n      constructor(data, error) {\n        this.data = data;\n        this.error = error;\n      }\n      /**\n       * Returns the value if the promise resolved, otherwise throws the error.\n       */\n      getDataOrThrow() {\n        if (this.error) {\n          throw this.error;\n        }\n        return this.data;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/commonFacade/cancellation.js\nvar init_cancellation2 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/commonFacade/cancellation.js\"() {\n    init_errors();\n    init_cancellation();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/utilsCancellation.js\nfunction waitForState(observable, predicate, isError, cancellationToken) {\n  if (!predicate) {\n    predicate = (state) =\u003e state !== null \u0026\u0026 state !== void 0;\n  }\n  return new Promise((resolve3, reject) =\u003e {\n    let isImmediateRun = true;\n    let shouldDispose = false;\n    const stateObs = observable.map((state) =\u003e {\n      return {\n        isFinished: predicate(state),\n        error: isError ? isError(state) : false,\n        state\n      };\n    });\n    const d = autorun((reader) =\u003e {\n      const { isFinished, error, state } = stateObs.read(reader);\n      if (isFinished || error) {\n        if (isImmediateRun) {\n          shouldDispose = true;\n        } else {\n          d.dispose();\n        }\n        if (error) {\n          reject(error === true ? state : error);\n        } else {\n          resolve3(state);\n        }\n      }\n    });\n    if (cancellationToken) {\n      const dc = cancellationToken.onCancellationRequested(() =\u003e {\n        d.dispose();\n        dc.dispose();\n        reject(new CancellationError());\n      });\n      if (cancellationToken.isCancellationRequested) {\n        d.dispose();\n        dc.dispose();\n        reject(new CancellationError());\n        return;\n      }\n    }\n    isImmediateRun = false;\n    if (shouldDispose) {\n      d.dispose();\n    }\n  });\n}\nvar init_utilsCancellation = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/utilsCancellation.js\"() {\n    init_cancellation2();\n    init_autorun();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableFromEvent.js\nfunction observableFromEvent(...args) {\n  let owner;\n  let event;\n  let getValue;\n  let debugLocation;\n  if (args.length === 2) {\n    [event, getValue] = args;\n  } else {\n    [owner, event, getValue, debugLocation] = args;\n  }\n  return new FromEventObservable(new DebugNameData(owner, void 0, getValue), event, getValue, () =\u003e FromEventObservable.globalTransaction, strictEquals, debugLocation ?? DebugLocation.ofCaller());\n}\nfunction observableFromEventOpts(options2, event, getValue, debugLocation = DebugLocation.ofCaller()) {\n  return new FromEventObservable(new DebugNameData(options2.owner, options2.debugName, options2.debugReferenceFn ?? getValue), event, getValue, () =\u003e FromEventObservable.globalTransaction, options2.equalsFn ?? strictEquals, debugLocation);\n}\nvar FromEventObservable;\nvar init_observableFromEvent = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableFromEvent.js\"() {\n    init_transaction();\n    init_deps();\n    init_debugName();\n    init_logging();\n    init_baseObservable();\n    init_debugLocation();\n    FromEventObservable = class extends BaseObservable {\n      constructor(_debugNameData, event, _getValue, _getTransaction, _equalityComparator, debugLocation) {\n        super(debugLocation);\n        this._debugNameData = _debugNameData;\n        this.event = event;\n        this._getValue = _getValue;\n        this._getTransaction = _getTransaction;\n        this._equalityComparator = _equalityComparator;\n        this._hasValue = false;\n        this.handleEvent = (args) =\u003e {\n          const newValue = this._getValue(args);\n          const oldValue = this._value;\n          const didChange = !this._hasValue || !this._equalityComparator(oldValue, newValue);\n          let didRunTransaction = false;\n          if (didChange) {\n            this._value = newValue;\n            if (this._hasValue) {\n              didRunTransaction = true;\n              subtransaction(this._getTransaction(), (tx) =\u003e {\n                getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: void 0, didChange, hadValue: this._hasValue });\n                for (const o of this._observers) {\n                  tx.updateObserver(o, this);\n                  o.handleChange(this, void 0);\n                }\n              }, () =\u003e {\n                const name = this.getDebugName();\n                return \"Event fired\" + (name ? `: ${name}` : \"\");\n              });\n            }\n            this._hasValue = true;\n          }\n          if (!didRunTransaction) {\n            getLogger()?.handleObservableUpdated(this, { oldValue, newValue, change: void 0, didChange, hadValue: this._hasValue });\n          }\n        };\n      }\n      getDebugName() {\n        return this._debugNameData.getDebugName(this);\n      }\n      get debugName() {\n        const name = this.getDebugName();\n        return \"From Event\" + (name ? `: ${name}` : \"\");\n      }\n      onFirstObserverAdded() {\n        this._subscription = this.event(this.handleEvent);\n      }\n      onLastObserverRemoved() {\n        this._subscription.dispose();\n        this._subscription = void 0;\n        this._hasValue = false;\n        this._value = void 0;\n      }\n      get() {\n        if (this._subscription) {\n          if (!this._hasValue) {\n            this.handleEvent(void 0);\n          }\n          return this._value;\n        } else {\n          const value = this._getValue(void 0);\n          return value;\n        }\n      }\n      debugSetValue(value) {\n        this._value = value;\n      }\n    };\n    (function(observableFromEvent2) {\n      observableFromEvent2.Observer = FromEventObservable;\n      function batchEventsGlobally(tx, fn) {\n        let didSet = false;\n        if (FromEventObservable.globalTransaction === void 0) {\n          FromEventObservable.globalTransaction = tx;\n          didSet = true;\n        }\n        try {\n          fn();\n        } finally {\n          if (didSet) {\n            FromEventObservable.globalTransaction = void 0;\n          }\n        }\n      }\n      observableFromEvent2.batchEventsGlobally = batchEventsGlobally;\n    })(observableFromEvent || (observableFromEvent = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableSignal.js\nfunction observableSignal(debugNameOrOwner, debugLocation = DebugLocation.ofCaller()) {\n  if (typeof debugNameOrOwner === \"string\") {\n    return new ObservableSignal(debugNameOrOwner, void 0, debugLocation);\n  } else {\n    return new ObservableSignal(void 0, debugNameOrOwner, debugLocation);\n  }\n}\nvar ObservableSignal;\nvar init_observableSignal = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableSignal.js\"() {\n    init_transaction();\n    init_debugName();\n    init_baseObservable();\n    init_debugLocation();\n    ObservableSignal = class extends BaseObservable {\n      get debugName() {\n        return new DebugNameData(this._owner, this._debugName, void 0).getDebugName(this) ?? \"Observable Signal\";\n      }\n      toString() {\n        return this.debugName;\n      }\n      constructor(_debugName, _owner, debugLocation) {\n        super(debugLocation);\n        this._debugName = _debugName;\n        this._owner = _owner;\n      }\n      trigger(tx, change) {\n        if (!tx) {\n          transaction((tx2) =\u003e {\n            this.trigger(tx2, change);\n          }, () =\u003e `Trigger signal ${this.debugName}`);\n          return;\n        }\n        for (const o of this._observers) {\n          tx.updateObserver(o, this);\n          o.handleChange(this, change);\n        }\n      }\n      get() {\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/utils.js\nfunction debouncedObservable(observable, debounceMs) {\n  let hasValue = false;\n  let lastValue;\n  let timeout2 = void 0;\n  return observableFromEvent((cb) =\u003e {\n    const d = autorun((reader) =\u003e {\n      const value = observable.read(reader);\n      if (!hasValue) {\n        hasValue = true;\n        lastValue = value;\n      } else {\n        if (timeout2) {\n          clearTimeout(timeout2);\n        }\n        timeout2 = setTimeout(() =\u003e {\n          lastValue = value;\n          cb();\n        }, debounceMs);\n      }\n    });\n    return {\n      dispose() {\n        d.dispose();\n        hasValue = false;\n        lastValue = void 0;\n      }\n    };\n  }, () =\u003e {\n    if (hasValue) {\n      return lastValue;\n    } else {\n      return observable.get();\n    }\n  });\n}\nfunction keepObserved(observable) {\n  const o = new KeepAliveObserver(false, void 0);\n  observable.addObserver(o);\n  return toDisposable(() =\u003e {\n    observable.removeObserver(o);\n  });\n}\nfunction recomputeInitiallyAndOnChange(observable, handleValue) {\n  const o = new KeepAliveObserver(true, handleValue);\n  observable.addObserver(o);\n  try {\n    o.beginUpdate(observable);\n  } finally {\n    o.endUpdate(observable);\n  }\n  return toDisposable(() =\u003e {\n    observable.removeObserver(o);\n  });\n}\nfunction derivedObservableWithCache(owner, computeFn) {\n  let lastValue = void 0;\n  const observable = derivedOpts({ owner, debugReferenceFn: computeFn }, (reader) =\u003e {\n    lastValue = computeFn(reader, lastValue);\n    return lastValue;\n  });\n  return observable;\n}\nfunction mapObservableArrayCached(owner, items, map, keySelector) {\n  let m = new ArrayMap(map, keySelector);\n  const self2 = derivedOpts({\n    debugReferenceFn: map,\n    owner,\n    onLastObserverRemoved: () =\u003e {\n      m.dispose();\n      m = new ArrayMap(map);\n    }\n  }, (reader) =\u003e {\n    m.setItems(items.read(reader));\n    return m.getItems();\n  });\n  return self2;\n}\nvar KeepAliveObserver, ArrayMap;\nvar init_utils = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/utils.js\"() {\n    init_autorun();\n    init_deps();\n    init_derived();\n    init_observableFromEvent();\n    init_observableSignal();\n    init_baseObservable();\n    _setKeepObserved(keepObserved);\n    _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange);\n    KeepAliveObserver = class {\n      constructor(_forceRecompute, _handleValue) {\n        this._forceRecompute = _forceRecompute;\n        this._handleValue = _handleValue;\n        this._counter = 0;\n      }\n      beginUpdate(observable) {\n        this._counter++;\n      }\n      endUpdate(observable) {\n        if (this._counter === 1 \u0026\u0026 this._forceRecompute) {\n          if (this._handleValue) {\n            this._handleValue(observable.get());\n          } else {\n            observable.reportChanges();\n          }\n        }\n        this._counter--;\n      }\n      handlePossibleChange(observable) {\n      }\n      handleChange(observable, change) {\n      }\n    };\n    ArrayMap = class {\n      constructor(_map, _keySelector) {\n        this._map = _map;\n        this._keySelector = _keySelector;\n        this._cache = /* @__PURE__ */ new Map();\n        this._items = [];\n      }\n      dispose() {\n        this._cache.forEach((entry) =\u003e entry.store.dispose());\n        this._cache.clear();\n      }\n      setItems(items) {\n        const newItems = [];\n        const itemsToRemove = new Set(this._cache.keys());\n        for (const item of items) {\n          const key = this._keySelector ? this._keySelector(item) : item;\n          let entry = this._cache.get(key);\n          if (!entry) {\n            const store = new DisposableStore();\n            const out = this._map(item, store);\n            entry = { out, store };\n            this._cache.set(key, entry);\n          } else {\n            itemsToRemove.delete(key);\n          }\n          newItems.push(entry.out);\n        }\n        for (const item of itemsToRemove) {\n          const entry = this._cache.get(item);\n          entry.store.dispose();\n          this._cache.delete(item);\n        }\n        this._items = newItems;\n      }\n      getItems() {\n        return this._items;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/changeTracker.js\nfunction recordChanges(obs) {\n  return {\n    createChangeSummary: (_previousChangeSummary) =\u003e {\n      return {\n        changes: []\n      };\n    },\n    handleChange(ctx, changeSummary) {\n      for (const key in obs) {\n        if (ctx.didChange(obs[key])) {\n          changeSummary.changes.push({ key, change: ctx.change });\n        }\n      }\n      return true;\n    },\n    beforeUpdate(reader, changeSummary) {\n      for (const key in obs) {\n        if (key === \"changes\") {\n          throw new BugIndicatingError('property name \"changes\" is reserved for change tracking');\n        }\n        changeSummary[key] = obs[key].read(reader);\n      }\n    }\n  };\n}\nfunction recordChangesLazy(getObs) {\n  let obs = void 0;\n  return {\n    createChangeSummary: (_previousChangeSummary) =\u003e {\n      return {\n        changes: []\n      };\n    },\n    handleChange(ctx, changeSummary) {\n      if (!obs) {\n        obs = getObs();\n      }\n      for (const key in obs) {\n        if (ctx.didChange(obs[key])) {\n          changeSummary.changes.push({ key, change: ctx.change });\n        }\n      }\n      return true;\n    },\n    beforeUpdate(reader, changeSummary) {\n      if (!obs) {\n        obs = getObs();\n      }\n      for (const key in obs) {\n        if (key === \"changes\") {\n          throw new BugIndicatingError('property name \"changes\" is reserved for change tracking');\n        }\n        changeSummary[key] = obs[key].read(reader);\n      }\n    }\n  };\n}\nvar init_changeTracker = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/changeTracker.js\"() {\n    init_deps();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/constObservable.js\nfunction constObservable(value) {\n  return new ConstObservable(value);\n}\nvar ConstObservable;\nvar init_constObservable = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/constObservable.js\"() {\n    init_baseObservable();\n    ConstObservable = class extends ConvenientObservable {\n      constructor(value) {\n        super();\n        this.value = value;\n      }\n      get debugName() {\n        return this.toString();\n      }\n      get() {\n        return this.value;\n      }\n      addObserver(observer) {\n      }\n      removeObserver(observer) {\n      }\n      toString() {\n        return `Const: ${this.value}`;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableSignalFromEvent.js\nfunction observableSignalFromEvent(owner, event, debugLocation = DebugLocation.ofCaller()) {\n  return new FromEventObservableSignal(typeof owner === \"string\" ? owner : new DebugNameData(owner, void 0, void 0), event, debugLocation);\n}\nvar FromEventObservableSignal;\nvar init_observableSignalFromEvent = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/observables/observableSignalFromEvent.js\"() {\n    init_transaction();\n    init_debugName();\n    init_baseObservable();\n    init_debugLocation();\n    FromEventObservableSignal = class extends BaseObservable {\n      constructor(debugNameDataOrName, event, debugLocation) {\n        super(debugLocation);\n        this.event = event;\n        this.handleEvent = () =\u003e {\n          transaction((tx) =\u003e {\n            for (const o of this._observers) {\n              tx.updateObserver(o, this);\n              o.handleChange(this, void 0);\n            }\n          }, () =\u003e this.debugName);\n        };\n        this.debugName = typeof debugNameDataOrName === \"string\" ? debugNameDataOrName : debugNameDataOrName.getDebugName(this) ?? \"Observable Signal From Event\";\n      }\n      onFirstObserverAdded() {\n        this.subscription = this.event(this.handleEvent);\n      }\n      onLastObserverRemoved() {\n        this.subscription.dispose();\n        this.subscription = void 0;\n      }\n      get() {\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/valueWithChangeEvent.js\nvar init_valueWithChangeEvent = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/valueWithChangeEvent.js\"() {\n    init_deps();\n    init_observableFromEvent();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/runOnChange.js\nfunction runOnChange(observable, cb) {\n  let _previousValue;\n  let _firstRun = true;\n  return autorunWithStoreHandleChanges({\n    changeTracker: {\n      createChangeSummary: () =\u003e ({ deltas: [], didChange: false }),\n      handleChange: (context, changeSummary) =\u003e {\n        if (context.didChange(observable)) {\n          const e = context.change;\n          if (e !== void 0) {\n            changeSummary.deltas.push(e);\n          }\n          changeSummary.didChange = true;\n        }\n        return true;\n      }\n    }\n  }, (reader, changeSummary) =\u003e {\n    const value = observable.read(reader);\n    const previousValue = _previousValue;\n    if (changeSummary.didChange) {\n      _previousValue = value;\n      cb(value, previousValue, changeSummary.deltas);\n    }\n    if (_firstRun) {\n      _firstRun = false;\n      _previousValue = value;\n    }\n  });\n}\nfunction runOnChangeWithStore(observable, cb) {\n  const store = new DisposableStore();\n  const disposable = runOnChange(observable, (value, previousValue, deltas) =\u003e {\n    store.clear();\n    cb(value, previousValue, deltas, store);\n  });\n  return {\n    dispose() {\n      disposable.dispose();\n      store.dispose();\n    }\n  };\n}\nfunction runOnChangeWithCancellationToken(observable, cb) {\n  return runOnChangeWithStore(observable, (value, previousValue, deltas, store) =\u003e {\n    cb(value, previousValue, deltas, cancelOnDispose(store));\n  });\n}\nvar init_runOnChange = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/utils/runOnChange.js\"() {\n    init_cancellation2();\n    init_deps();\n    init_autorun();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/experimental/utils.js\nfunction derivedConstOnceDefined(owner, fn) {\n  return derivedObservableWithCache(owner, (reader, lastValue) =\u003e lastValue ?? fn(reader));\n}\nvar init_utils2 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/experimental/utils.js\"() {\n    init_utils();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js\nfunction logObservableToConsole(obs) {\n  if (!consoleObservableLogger) {\n    consoleObservableLogger = new ConsoleObservableLogger();\n    addLogger(consoleObservableLogger);\n  }\n  consoleObservableLogger.addFilteredObj(obs);\n}\nfunction consoleTextToArgs(text2) {\n  const styles = new Array();\n  const data = [];\n  let firstArg = \"\";\n  function process2(t) {\n    if (\"length\" in t) {\n      for (const item of t) {\n        if (item) {\n          process2(item);\n        }\n      }\n    } else if (\"text\" in t) {\n      firstArg += `%c${t.text}`;\n      styles.push(t.style);\n      if (t.data) {\n        data.push(...t.data);\n      }\n    } else if (\"data\" in t) {\n      data.push(...t.data);\n    }\n  }\n  process2(text2);\n  const result = [firstArg, ...styles];\n  result.push(...data);\n  return result;\n}\nfunction normalText(text2) {\n  return styled(text2, { color: \"black\" });\n}\nfunction formatKind(kind) {\n  return styled(padStr(`${kind}: `, 10), { color: \"black\", bold: true });\n}\nfunction styled(text2, options2 = {\n  color: \"black\"\n}) {\n  function objToCss(styleObj) {\n    return Object.entries(styleObj).reduce((styleString, [propName, propValue]) =\u003e {\n      return `${styleString}${propName}:${propValue};`;\n    }, \"\");\n  }\n  const style = {\n    color: options2.color\n  };\n  if (options2.strikeThrough) {\n    style[\"text-decoration\"] = \"line-through\";\n  }\n  if (options2.bold) {\n    style[\"font-weight\"] = \"bold\";\n  }\n  return {\n    text: text2,\n    style: objToCss(style)\n  };\n}\nfunction formatValue(value, availableLen) {\n  switch (typeof value) {\n    case \"number\":\n      return \"\" + value;\n    case \"string\":\n      if (value.length + 2 \u003c= availableLen) {\n        return `\"${value}\"`;\n      }\n      return `\"${value.substr(0, availableLen - 7)}\"+...`;\n    case \"boolean\":\n      return value ? \"true\" : \"false\";\n    case \"undefined\":\n      return \"undefined\";\n    case \"object\":\n      if (value === null) {\n        return \"null\";\n      }\n      if (Array.isArray(value)) {\n        return formatArray(value, availableLen);\n      }\n      return formatObject(value, availableLen);\n    case \"symbol\":\n      return value.toString();\n    case \"function\":\n      return `[[Function${value.name ? \" \" + value.name : \"\"}]]`;\n    default:\n      return \"\" + value;\n  }\n}\nfunction formatArray(value, availableLen) {\n  let result = \"[ \";\n  let first2 = true;\n  for (const val of value) {\n    if (!first2) {\n      result += \", \";\n    }\n    if (result.length - 5 \u003e availableLen) {\n      result += \"...\";\n      break;\n    }\n    first2 = false;\n    result += `${formatValue(val, availableLen - result.length)}`;\n  }\n  result += \" ]\";\n  return result;\n}\nfunction formatObject(value, availableLen) {\n  if (typeof value.toString === \"function\" \u0026\u0026 value.toString !== Object.prototype.toString) {\n    const val = value.toString();\n    if (val.length \u003c= availableLen) {\n      return val;\n    }\n    return val.substring(0, availableLen - 3) + \"...\";\n  }\n  const className2 = getClassName(value);\n  let result = className2 ? className2 + \"(\" : \"{ \";\n  let first2 = true;\n  for (const [key, val] of Object.entries(value)) {\n    if (!first2) {\n      result += \", \";\n    }\n    if (result.length - 5 \u003e availableLen) {\n      result += \"...\";\n      break;\n    }\n    first2 = false;\n    result += `${key}: ${formatValue(val, availableLen - result.length)}`;\n  }\n  result += className2 ? \")\" : \" }\";\n  return result;\n}\nfunction repeat(str, count) {\n  let result = \"\";\n  for (let i2 = 1; i2 \u003c= count; i2++) {\n    result += str;\n  }\n  return result;\n}\nfunction padStr(str, length) {\n  while (str.length \u003c length) {\n    str += \" \";\n  }\n  return str;\n}\nvar consoleObservableLogger, ConsoleObservableLogger;\nvar init_consoleObservableLogger = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/consoleObservableLogger.js\"() {\n    init_logging();\n    init_debugName();\n    init_derivedImpl();\n    ConsoleObservableLogger = class {\n      constructor() {\n        this.indentation = 0;\n        this.changedObservablesSets = /* @__PURE__ */ new WeakMap();\n      }\n      addFilteredObj(obj) {\n        if (!this._filteredObjects) {\n          this._filteredObjects = /* @__PURE__ */ new Set();\n        }\n        this._filteredObjects.add(obj);\n      }\n      _isIncluded(obj) {\n        return this._filteredObjects?.has(obj) ?? true;\n      }\n      textToConsoleArgs(text2) {\n        return consoleTextToArgs([\n          normalText(repeat(\"|  \", this.indentation)),\n          text2\n        ]);\n      }\n      formatInfo(info) {\n        if (!info.hadValue) {\n          return [\n            normalText(` `),\n            styled(formatValue(info.newValue, 60), {\n              color: \"green\"\n            }),\n            normalText(` (initial)`)\n          ];\n        }\n        return info.didChange ? [\n          normalText(` `),\n          styled(formatValue(info.oldValue, 70), {\n            color: \"red\",\n            strikeThrough: true\n          }),\n          normalText(` `),\n          styled(formatValue(info.newValue, 60), {\n            color: \"green\"\n          })\n        ] : [normalText(` (unchanged)`)];\n      }\n      handleObservableCreated(observable) {\n        if (observable instanceof Derived) {\n          const derived2 = observable;\n          this.changedObservablesSets.set(derived2, /* @__PURE__ */ new Set());\n          const debugTrackUpdating = false;\n          if (debugTrackUpdating) {\n            const updating = [];\n            derived2.__debugUpdating = updating;\n            const existingBeginUpdate = derived2.beginUpdate;\n            derived2.beginUpdate = (obs) =\u003e {\n              updating.push(obs);\n              return existingBeginUpdate.apply(derived2, [obs]);\n            };\n            const existingEndUpdate = derived2.endUpdate;\n            derived2.endUpdate = (obs) =\u003e {\n              const idx = updating.indexOf(obs);\n              if (idx === -1) {\n                console.error(\"endUpdate called without beginUpdate\", derived2.debugName, obs.debugName);\n              }\n              updating.splice(idx, 1);\n              return existingEndUpdate.apply(derived2, [obs]);\n            };\n          }\n        }\n      }\n      handleOnListenerCountChanged(observable, newCount) {\n      }\n      handleObservableUpdated(observable, info) {\n        if (!this._isIncluded(observable)) {\n          return;\n        }\n        if (observable instanceof Derived) {\n          this._handleDerivedRecomputed(observable, info);\n          return;\n        }\n        console.log(...this.textToConsoleArgs([\n          formatKind(\"observable value changed\"),\n          styled(observable.debugName, { color: \"BlueViolet\" }),\n          ...this.formatInfo(info)\n        ]));\n      }\n      formatChanges(changes) {\n        if (changes.size === 0) {\n          return void 0;\n        }\n        return styled(\" (changed deps: \" + [...changes].map((o) =\u003e o.debugName).join(\", \") + \")\", { color: \"gray\" });\n      }\n      handleDerivedDependencyChanged(derived2, observable, change) {\n        if (!this._isIncluded(derived2)) {\n          return;\n        }\n        this.changedObservablesSets.get(derived2)?.add(observable);\n      }\n      _handleDerivedRecomputed(derived2, info) {\n        if (!this._isIncluded(derived2)) {\n          return;\n        }\n        const changedObservables = this.changedObservablesSets.get(derived2);\n        if (!changedObservables) {\n          return;\n        }\n        console.log(...this.textToConsoleArgs([\n          formatKind(\"derived recomputed\"),\n          styled(derived2.debugName, { color: \"BlueViolet\" }),\n          ...this.formatInfo(info),\n          this.formatChanges(changedObservables),\n          { data: [{ fn: derived2._debugNameData.referenceFn ?? derived2._computeFn }] }\n        ]));\n        changedObservables.clear();\n      }\n      handleDerivedCleared(derived2) {\n        if (!this._isIncluded(derived2)) {\n          return;\n        }\n        console.log(...this.textToConsoleArgs([\n          formatKind(\"derived cleared\"),\n          styled(derived2.debugName, { color: \"BlueViolet\" })\n        ]));\n      }\n      handleAutorunCreated(autorun2) {\n        if (!this._isIncluded(autorun2)) {\n          return;\n        }\n        this.changedObservablesSets.set(autorun2, /* @__PURE__ */ new Set());\n      }\n      handleAutorunDisposed(autorun2) {\n      }\n      handleAutorunDependencyChanged(autorun2, observable, change) {\n        if (!this._isIncluded(autorun2)) {\n          return;\n        }\n        this.changedObservablesSets.get(autorun2).add(observable);\n      }\n      handleAutorunStarted(autorun2) {\n        const changedObservables = this.changedObservablesSets.get(autorun2);\n        if (!changedObservables) {\n          return;\n        }\n        if (this._isIncluded(autorun2)) {\n          console.log(...this.textToConsoleArgs([\n            formatKind(\"autorun\"),\n            styled(autorun2.debugName, { color: \"BlueViolet\" }),\n            this.formatChanges(changedObservables),\n            { data: [{ fn: autorun2._debugNameData.referenceFn ?? autorun2._runFn }] }\n          ]));\n        }\n        changedObservables.clear();\n        this.indentation++;\n      }\n      handleAutorunFinished(autorun2) {\n        this.indentation--;\n      }\n      handleBeginTransaction(transaction2) {\n        let transactionName = transaction2.getDebugName();\n        if (transactionName === void 0) {\n          transactionName = \"\";\n        }\n        if (this._isIncluded(transaction2)) {\n          console.log(...this.textToConsoleArgs([\n            formatKind(\"transaction\"),\n            styled(transactionName, { color: \"BlueViolet\" }),\n            { data: [{ fn: transaction2._fn }] }\n          ]));\n        }\n        this.indentation++;\n      }\n      handleEndTransaction() {\n        this.indentation--;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/debugger/rpc.js\nvar SimpleTypedRpcConnection;\nvar init_rpc = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/debugger/rpc.js\"() {\n    SimpleTypedRpcConnection = class _SimpleTypedRpcConnection {\n      static createClient(channelFactory, getHandler) {\n        return new _SimpleTypedRpcConnection(channelFactory, getHandler);\n      }\n      constructor(_channelFactory, _getHandler) {\n        this._channelFactory = _channelFactory;\n        this._getHandler = _getHandler;\n        this._channel = this._channelFactory({\n          handleNotification: (notificationData) =\u003e {\n            const m = notificationData;\n            const fn = this._getHandler().notifications[m[0]];\n            if (!fn) {\n              throw new Error(`Unknown notification \"${m[0]}\"!`);\n            }\n            fn(...m[1]);\n          },\n          handleRequest: (requestData) =\u003e {\n            const m = requestData;\n            try {\n              const result = this._getHandler().requests[m[0]](...m[1]);\n              return { type: \"result\", value: result };\n            } catch (e) {\n              return { type: \"error\", value: e };\n            }\n          }\n        });\n        const requests = new Proxy({}, {\n          get: (target, key) =\u003e {\n            return async (...args) =\u003e {\n              const result = await this._channel.sendRequest([key, args]);\n              if (result.type === \"error\") {\n                throw result.value;\n              } else {\n                return result.value;\n              }\n            };\n          }\n        });\n        const notifications = new Proxy({}, {\n          get: (target, key) =\u003e {\n            return (...args) =\u003e {\n              this._channel.sendNotification([key, args]);\n            };\n          }\n        });\n        this.api = { notifications, requests };\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js\nfunction registerDebugChannel(channelId, createClient) {\n  const g = globalThis;\n  let queuedNotifications = [];\n  let curHost = void 0;\n  const { channel, handler } = createChannelFactoryFromDebugChannel({\n    sendNotification: (data) =\u003e {\n      if (curHost) {\n        curHost.sendNotification(data);\n      } else {\n        queuedNotifications.push(data);\n      }\n    }\n  });\n  let curClient = void 0;\n  (g.$$debugValueEditor_debugChannels ?? (g.$$debugValueEditor_debugChannels = {}))[channelId] = (host) =\u003e {\n    curClient = createClient();\n    curHost = host;\n    for (const n2 of queuedNotifications) {\n      host.sendNotification(n2);\n    }\n    queuedNotifications = [];\n    return handler;\n  };\n  return SimpleTypedRpcConnection.createClient(channel, () =\u003e {\n    if (!curClient) {\n      throw new Error(\"Not supported\");\n    }\n    return curClient;\n  });\n}\nfunction createChannelFactoryFromDebugChannel(host) {\n  let h2;\n  const channel = (handler) =\u003e {\n    h2 = handler;\n    return {\n      sendNotification: (data) =\u003e {\n        host.sendNotification(data);\n      },\n      sendRequest: (data) =\u003e {\n        throw new Error(\"not supported\");\n      }\n    };\n  };\n  return {\n    channel,\n    handler: {\n      handleRequest: (data) =\u003e {\n        if (data.type === \"notification\") {\n          return h2?.handleNotification(data.data);\n        } else {\n          return h2?.handleRequest(data.data);\n        }\n      }\n    }\n  };\n}\nvar init_debuggerRpc = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/debugger/debuggerRpc.js\"() {\n    init_rpc();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/debugger/utils.js\nfunction deepAssign(target, source) {\n  for (const key in source) {\n    if (!!target[key] \u0026\u0026 typeof target[key] === \"object\" \u0026\u0026 !!source[key] \u0026\u0026 typeof source[key] === \"object\") {\n      deepAssign(target[key], source[key]);\n    } else {\n      target[key] = source[key];\n    }\n  }\n}\nfunction deepAssignDeleteNulls(target, source) {\n  for (const key in source) {\n    if (source[key] === null) {\n      delete target[key];\n    } else if (!!target[key] \u0026\u0026 typeof target[key] === \"object\" \u0026\u0026 !!source[key] \u0026\u0026 typeof source[key] === \"object\") {\n      deepAssignDeleteNulls(target[key], source[key]);\n    } else {\n      target[key] = source[key];\n    }\n  }\n}\nvar Throttler2;\nvar init_utils3 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/debugger/utils.js\"() {\n    Throttler2 = class {\n      constructor() {\n        this._timeout = void 0;\n      }\n      throttle(fn, timeoutMs) {\n        if (this._timeout === void 0) {\n          this._timeout = setTimeout(() =\u003e {\n            this._timeout = void 0;\n            fn();\n          }, timeoutMs);\n        }\n      }\n      dispose() {\n        if (this._timeout !== void 0) {\n          clearTimeout(this._timeout);\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/debugger/devToolsLogger.js\nvar DevToolsLogger;\nvar init_devToolsLogger = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/logging/debugger/devToolsLogger.js\"() {\n    init_autorunImpl();\n    init_consoleObservableLogger();\n    init_debuggerRpc();\n    init_utils3();\n    init_types();\n    init_observableFromEvent();\n    init_errors();\n    init_derivedImpl();\n    init_observableValue();\n    init_debugLocation();\n    DevToolsLogger = class _DevToolsLogger {\n      static {\n        this._instance = void 0;\n      }\n      static getInstance() {\n        if (_DevToolsLogger._instance === void 0) {\n          _DevToolsLogger._instance = new _DevToolsLogger();\n        }\n        return _DevToolsLogger._instance;\n      }\n      getTransactionState() {\n        const affected = [];\n        const txs = [...this._activeTransactions];\n        if (txs.length === 0) {\n          return void 0;\n        }\n        const observerQueue = txs.flatMap((t) =\u003e t.debugGetUpdatingObservers() ?? []).map((o) =\u003e o.observer);\n        const processedObservers = /* @__PURE__ */ new Set();\n        while (observerQueue.length \u003e 0) {\n          const observer = observerQueue.shift();\n          if (processedObservers.has(observer)) {\n            continue;\n          }\n          processedObservers.add(observer);\n          const state = this._getInfo(observer, (d) =\u003e {\n            if (!processedObservers.has(d)) {\n              observerQueue.push(d);\n            }\n          });\n          if (state) {\n            affected.push(state);\n          }\n        }\n        return { names: txs.map((t) =\u003e t.getDebugName() ?? \"tx\"), affected };\n      }\n      _getObservableInfo(observable) {\n        const info = this._instanceInfos.get(observable);\n        if (!info) {\n          onUnexpectedError(new BugIndicatingError(\"No info found\"));\n          return void 0;\n        }\n        return info;\n      }\n      _getAutorunInfo(autorun2) {\n        const info = this._instanceInfos.get(autorun2);\n        if (!info) {\n          onUnexpectedError(new BugIndicatingError(\"No info found\"));\n          return void 0;\n        }\n        return info;\n      }\n      _getInfo(observer, queue) {\n        if (observer instanceof Derived) {\n          const observersToUpdate = [...observer.debugGetObservers()];\n          for (const o of observersToUpdate) {\n            queue(o);\n          }\n          const info = this._getObservableInfo(observer);\n          if (!info) {\n            return;\n          }\n          const observerState = observer.debugGetState();\n          const base = { name: observer.debugName, instanceId: info.instanceId, updateCount: observerState.updateCount };\n          const changedDependencies = [...info.changedObservables].map((o) =\u003e this._instanceInfos.get(o)?.instanceId).filter(isDefined);\n          if (observerState.isComputing) {\n            return { ...base, type: \"observable/derived\", state: \"updating\", changedDependencies, initialComputation: false };\n          }\n          switch (observerState.state) {\n            case 0:\n              return { ...base, type: \"observable/derived\", state: \"noValue\" };\n            case 3:\n              return { ...base, type: \"observable/derived\", state: \"upToDate\" };\n            case 2:\n              return { ...base, type: \"observable/derived\", state: \"stale\", changedDependencies };\n            case 1:\n              return { ...base, type: \"observable/derived\", state: \"possiblyStale\" };\n          }\n        } else if (observer instanceof AutorunObserver) {\n          const info = this._getAutorunInfo(observer);\n          if (!info) {\n            return void 0;\n          }\n          const base = { name: observer.debugName, instanceId: info.instanceId, updateCount: info.updateCount };\n          const changedDependencies = [...info.changedObservables].map((o) =\u003e this._instanceInfos.get(o).instanceId);\n          if (observer.debugGetState().isRunning) {\n            return { ...base, type: \"autorun\", state: \"updating\", changedDependencies };\n          }\n          switch (observer.debugGetState().state) {\n            case 3:\n              return { ...base, type: \"autorun\", state: \"upToDate\" };\n            case 2:\n              return { ...base, type: \"autorun\", state: \"stale\", changedDependencies };\n            case 1:\n              return { ...base, type: \"autorun\", state: \"possiblyStale\" };\n          }\n        }\n        return void 0;\n      }\n      _formatObservable(obs) {\n        const info = this._getObservableInfo(obs);\n        if (!info) {\n          return void 0;\n        }\n        return { name: obs.debugName, instanceId: info.instanceId };\n      }\n      _formatObserver(obs) {\n        if (obs instanceof Derived) {\n          return { name: obs.toString(), instanceId: this._getObservableInfo(obs)?.instanceId };\n        }\n        const autorunInfo = this._getAutorunInfo(obs);\n        if (autorunInfo) {\n          return { name: obs.toString(), instanceId: autorunInfo.instanceId };\n        }\n        return void 0;\n      }\n      constructor() {\n        this._declarationId = 0;\n        this._instanceId = 0;\n        this._declarations = /* @__PURE__ */ new Map();\n        this._instanceInfos = /* @__PURE__ */ new WeakMap();\n        this._aliveInstances = /* @__PURE__ */ new Map();\n        this._activeTransactions = /* @__PURE__ */ new Set();\n        this._channel = registerDebugChannel(\"observableDevTools\", () =\u003e {\n          return {\n            notifications: {\n              setDeclarationIdFilter: (declarationIds) =\u003e {\n              },\n              logObservableValue: (observableId) =\u003e {\n                console.log(\"logObservableValue\", observableId);\n              },\n              flushUpdates: () =\u003e {\n                this._flushUpdates();\n              },\n              resetUpdates: () =\u003e {\n                this._pendingChanges = null;\n                this._channel.api.notifications.handleChange(this._fullState, true);\n              }\n            },\n            requests: {\n              getDeclarations: () =\u003e {\n                const result = {};\n                for (const decl of this._declarations.values()) {\n                  result[decl.id] = decl;\n                }\n                return { decls: result };\n              },\n              getSummarizedInstances: () =\u003e {\n                return null;\n              },\n              getObservableValueInfo: (instanceId) =\u003e {\n                const obs = this._aliveInstances.get(instanceId);\n                return {\n                  observers: [...obs.debugGetObservers()].map((d) =\u003e this._formatObserver(d)).filter(isDefined)\n                };\n              },\n              getDerivedInfo: (instanceId) =\u003e {\n                const d = this._aliveInstances.get(instanceId);\n                return {\n                  dependencies: [...d.debugGetState().dependencies].map((d2) =\u003e this._formatObservable(d2)).filter(isDefined),\n                  observers: [...d.debugGetObservers()].map((d2) =\u003e this._formatObserver(d2)).filter(isDefined)\n                };\n              },\n              getAutorunInfo: (instanceId) =\u003e {\n                const obs = this._aliveInstances.get(instanceId);\n                return {\n                  dependencies: [...obs.debugGetState().dependencies].map((d) =\u003e this._formatObservable(d)).filter(isDefined)\n                };\n              },\n              getTransactionState: () =\u003e {\n                return this.getTransactionState();\n              },\n              setValue: (instanceId, jsonValue) =\u003e {\n                const obs = this._aliveInstances.get(instanceId);\n                if (obs instanceof Derived) {\n                  obs.debugSetValue(jsonValue);\n                } else if (obs instanceof ObservableValue) {\n                  obs.debugSetValue(jsonValue);\n                } else if (obs instanceof FromEventObservable) {\n                  obs.debugSetValue(jsonValue);\n                } else {\n                  throw new BugIndicatingError(\"Observable is not supported\");\n                }\n                const observers = [...obs.debugGetObservers()];\n                for (const d of observers) {\n                  d.beginUpdate(obs);\n                }\n                for (const d of observers) {\n                  d.handleChange(obs, void 0);\n                }\n                for (const d of observers) {\n                  d.endUpdate(obs);\n                }\n              },\n              getValue: (instanceId) =\u003e {\n                const obs = this._aliveInstances.get(instanceId);\n                if (obs instanceof Derived) {\n                  return formatValue(obs.debugGetState().value, 200);\n                } else if (obs instanceof ObservableValue) {\n                  return formatValue(obs.debugGetState().value, 200);\n                }\n                return void 0;\n              },\n              logValue: (instanceId) =\u003e {\n                const obs = this._aliveInstances.get(instanceId);\n                if (obs \u0026\u0026 \"get\" in obs) {\n                  console.log(\"Logged Value:\", obs.get());\n                } else {\n                  throw new BugIndicatingError(\"Observable is not supported\");\n                }\n              },\n              rerun: (instanceId) =\u003e {\n                const obs = this._aliveInstances.get(instanceId);\n                if (obs instanceof Derived) {\n                  obs.debugRecompute();\n                } else if (obs instanceof AutorunObserver) {\n                  obs.debugRerun();\n                } else {\n                  throw new BugIndicatingError(\"Observable is not supported\");\n                }\n              }\n            }\n          };\n        });\n        this._pendingChanges = null;\n        this._changeThrottler = new Throttler2();\n        this._fullState = {};\n        this._flushUpdates = () =\u003e {\n          if (this._pendingChanges !== null) {\n            this._channel.api.notifications.handleChange(this._pendingChanges, false);\n            this._pendingChanges = null;\n          }\n        };\n        DebugLocation.enable();\n      }\n      _handleChange(update) {\n        deepAssignDeleteNulls(this._fullState, update);\n        if (this._pendingChanges === null) {\n          this._pendingChanges = update;\n        } else {\n          deepAssign(this._pendingChanges, update);\n        }\n        this._changeThrottler.throttle(this._flushUpdates, 10);\n      }\n      _getDeclarationId(type, location2) {\n        if (!location2) {\n          return -1;\n        }\n        let decInfo = this._declarations.get(location2.id);\n        if (decInfo === void 0) {\n          decInfo = {\n            id: this._declarationId++,\n            type,\n            url: location2.fileName,\n            line: location2.line,\n            column: location2.column\n          };\n          this._declarations.set(location2.id, decInfo);\n          this._handleChange({ decls: { [decInfo.id]: decInfo } });\n        }\n        return decInfo.id;\n      }\n      handleObservableCreated(observable, location2) {\n        const declarationId = this._getDeclarationId(\"observable/value\", location2);\n        const info = {\n          declarationId,\n          instanceId: this._instanceId++,\n          listenerCount: 0,\n          lastValue: void 0,\n          updateCount: 0,\n          changedObservables: /* @__PURE__ */ new Set()\n        };\n        this._instanceInfos.set(observable, info);\n      }\n      handleOnListenerCountChanged(observable, newCount) {\n        const info = this._getObservableInfo(observable);\n        if (!info) {\n          return;\n        }\n        if (info.listenerCount === 0 \u0026\u0026 newCount \u003e 0) {\n          const type = observable instanceof Derived ? \"observable/derived\" : \"observable/value\";\n          this._aliveInstances.set(info.instanceId, observable);\n          this._handleChange({\n            instances: {\n              [info.instanceId]: {\n                instanceId: info.instanceId,\n                declarationId: info.declarationId,\n                formattedValue: info.lastValue,\n                type,\n                name: observable.debugName\n              }\n            }\n          });\n        } else if (info.listenerCount \u003e 0 \u0026\u0026 newCount === 0) {\n          this._handleChange({\n            instances: { [info.instanceId]: null }\n          });\n          this._aliveInstances.delete(info.instanceId);\n        }\n        info.listenerCount = newCount;\n      }\n      handleObservableUpdated(observable, changeInfo) {\n        if (observable instanceof Derived) {\n          this._handleDerivedRecomputed(observable, changeInfo);\n          return;\n        }\n        const info = this._getObservableInfo(observable);\n        if (info) {\n          if (changeInfo.didChange) {\n            info.lastValue = formatValue(changeInfo.newValue, 30);\n            if (info.listenerCount \u003e 0) {\n              this._handleChange({\n                instances: { [info.instanceId]: { formattedValue: info.lastValue } }\n              });\n            }\n          }\n        }\n      }\n      handleAutorunCreated(autorun2, location2) {\n        const declarationId = this._getDeclarationId(\"autorun\", location2);\n        const info = {\n          declarationId,\n          instanceId: this._instanceId++,\n          updateCount: 0,\n          changedObservables: /* @__PURE__ */ new Set()\n        };\n        this._instanceInfos.set(autorun2, info);\n        this._aliveInstances.set(info.instanceId, autorun2);\n        if (info) {\n          this._handleChange({\n            instances: {\n              [info.instanceId]: {\n                instanceId: info.instanceId,\n                declarationId: info.declarationId,\n                runCount: 0,\n                type: \"autorun\",\n                name: autorun2.debugName\n              }\n            }\n          });\n        }\n      }\n      handleAutorunDisposed(autorun2) {\n        const info = this._getAutorunInfo(autorun2);\n        if (!info) {\n          return;\n        }\n        this._handleChange({\n          instances: { [info.instanceId]: null }\n        });\n        this._instanceInfos.delete(autorun2);\n        this._aliveInstances.delete(info.instanceId);\n      }\n      handleAutorunDependencyChanged(autorun2, observable, change) {\n        const info = this._getAutorunInfo(autorun2);\n        if (!info) {\n          return;\n        }\n        info.changedObservables.add(observable);\n      }\n      handleAutorunStarted(autorun2) {\n      }\n      handleAutorunFinished(autorun2) {\n        const info = this._getAutorunInfo(autorun2);\n        if (!info) {\n          return;\n        }\n        info.changedObservables.clear();\n        info.updateCount++;\n        this._handleChange({\n          instances: { [info.instanceId]: { runCount: info.updateCount } }\n        });\n      }\n      handleDerivedDependencyChanged(derived2, observable, change) {\n        const info = this._getObservableInfo(derived2);\n        if (info) {\n          info.changedObservables.add(observable);\n        }\n      }\n      _handleDerivedRecomputed(observable, changeInfo) {\n        const info = this._getObservableInfo(observable);\n        if (!info) {\n          return;\n        }\n        const formattedValue = formatValue(changeInfo.newValue, 30);\n        info.updateCount++;\n        info.changedObservables.clear();\n        info.lastValue = formattedValue;\n        if (info.listenerCount \u003e 0) {\n          this._handleChange({\n            instances: { [info.instanceId]: { formattedValue, recomputationCount: info.updateCount } }\n          });\n        }\n      }\n      handleDerivedCleared(observable) {\n        const info = this._getObservableInfo(observable);\n        if (!info) {\n          return;\n        }\n        info.lastValue = void 0;\n        info.changedObservables.clear();\n        if (info.listenerCount \u003e 0) {\n          this._handleChange({\n            instances: {\n              [info.instanceId]: {\n                formattedValue: void 0\n              }\n            }\n          });\n        }\n      }\n      handleBeginTransaction(transaction2) {\n        this._activeTransactions.add(transaction2);\n      }\n      handleEndTransaction(transaction2) {\n        this._activeTransactions.delete(transaction2);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/index.js\nvar enableLogging;\nvar init_observableInternal = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/index.js\"() {\n    init_observableValueOpts();\n    init_autorun();\n    init_observableValue();\n    init_derived();\n    init_promise();\n    init_utilsCancellation();\n    init_utils();\n    init_changeTracker();\n    init_constObservable();\n    init_observableSignal();\n    init_observableFromEvent();\n    init_observableSignalFromEvent();\n    init_transaction();\n    init_valueWithChangeEvent();\n    init_runOnChange();\n    init_utils2();\n    init_observableFromEvent();\n    init_observableValue();\n    init_debugLocation();\n    init_logging();\n    init_consoleObservableLogger();\n    init_devToolsLogger();\n    init_process();\n    setLogObservableFn(logObservableToConsole);\n    enableLogging = false;\n    if (enableLogging) {\n      addLogger(new ConsoleObservableLogger());\n    }\n    if (env \u0026\u0026 env[\"VSCODE_DEV_DEBUG_OBSERVABLES\"]) {\n      addLogger(DevToolsLogger.getInstance());\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observable.js\nvar init_observable = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observable.js\"() {\n    init_observableInternal();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/dom.js\nfunction clearNode(node) {\n  while (node.firstChild) {\n    node.firstChild.remove();\n  }\n}\nfunction addDisposableListener(node, type, handler, useCaptureOrOptions) {\n  return new DomListener(node, type, handler, useCaptureOrOptions);\n}\nfunction _wrapAsStandardMouseEvent(targetWindow, handler) {\n  return function(e) {\n    return handler(new StandardMouseEvent(targetWindow, e));\n  };\n}\nfunction _wrapAsStandardKeyboardEvent(handler) {\n  return function(e) {\n    return handler(new StandardKeyboardEvent(e));\n  };\n}\nfunction addDisposableGenericMouseDownListener(node, handler, useCapture) {\n  return addDisposableListener(node, isIOS \u0026\u0026 BrowserFeatures.pointerEvents ? EventType.POINTER_DOWN : EventType.MOUSE_DOWN, handler, useCapture);\n}\nfunction addDisposableGenericMouseMoveListener(node, handler, useCapture) {\n  return addDisposableListener(node, isIOS \u0026\u0026 BrowserFeatures.pointerEvents ? EventType.POINTER_MOVE : EventType.MOUSE_MOVE, handler, useCapture);\n}\nfunction addDisposableGenericMouseUpListener(node, handler, useCapture) {\n  return addDisposableListener(node, isIOS \u0026\u0026 BrowserFeatures.pointerEvents ? EventType.POINTER_UP : EventType.MOUSE_UP, handler, useCapture);\n}\nfunction runWhenWindowIdle(targetWindow, callback, timeout2) {\n  return _runWhenIdle(targetWindow, callback, timeout2);\n}\nfunction getComputedStyle(el) {\n  return getWindow(el).getComputedStyle(el, null);\n}\nfunction getClientArea(element, defaultValue, fallbackElement) {\n  const elWindow = getWindow(element);\n  const elDocument = elWindow.document;\n  if (element !== elDocument.body) {\n    return new Dimension(element.clientWidth, element.clientHeight);\n  }\n  if (isIOS \u0026\u0026 elWindow?.visualViewport) {\n    return new Dimension(elWindow.visualViewport.width, elWindow.visualViewport.height);\n  }\n  if (elWindow?.innerWidth \u0026\u0026 elWindow.innerHeight) {\n    return new Dimension(elWindow.innerWidth, elWindow.innerHeight);\n  }\n  if (elDocument.body \u0026\u0026 elDocument.body.clientWidth \u0026\u0026 elDocument.body.clientHeight) {\n    return new Dimension(elDocument.body.clientWidth, elDocument.body.clientHeight);\n  }\n  if (elDocument.documentElement \u0026\u0026 elDocument.documentElement.clientWidth \u0026\u0026 elDocument.documentElement.clientHeight) {\n    return new Dimension(elDocument.documentElement.clientWidth, elDocument.documentElement.clientHeight);\n  }\n  if (fallbackElement) {\n    return getClientArea(fallbackElement, defaultValue);\n  }\n  if (defaultValue) {\n    return defaultValue;\n  }\n  throw new Error(\"Unable to figure out browser width and height\");\n}\nfunction getTopLeftOffset(element) {\n  let offsetParent = element.offsetParent;\n  let top = element.offsetTop;\n  let left = element.offsetLeft;\n  while ((element = element.parentNode) !== null \u0026\u0026 element !== element.ownerDocument.body \u0026\u0026 element !== element.ownerDocument.documentElement) {\n    top -= element.scrollTop;\n    const c = isShadowRoot(element) ? null : getComputedStyle(element);\n    if (c) {\n      left -= c.direction !== \"rtl\" ? element.scrollLeft : -element.scrollLeft;\n    }\n    if (element === offsetParent) {\n      left += SizeUtils.getBorderLeftWidth(element);\n      top += SizeUtils.getBorderTopWidth(element);\n      top += element.offsetTop;\n      left += element.offsetLeft;\n      offsetParent = element.offsetParent;\n    }\n  }\n  return {\n    left,\n    top\n  };\n}\nfunction size(element, width2, height) {\n  if (typeof width2 === \"number\") {\n    element.style.width = `${width2}px`;\n  }\n  if (typeof height === \"number\") {\n    element.style.height = `${height}px`;\n  }\n}\nfunction getDomNodePagePosition(domNode) {\n  const bb = domNode.getBoundingClientRect();\n  const window2 = getWindow(domNode);\n  return {\n    left: bb.left + window2.scrollX,\n    top: bb.top + window2.scrollY,\n    width: bb.width,\n    height: bb.height\n  };\n}\nfunction getDomNodeZoomLevel(domNode) {\n  let testElement = domNode;\n  let zoom = 1;\n  do {\n    const elementZoomLevel = getComputedStyle(testElement).zoom;\n    if (elementZoomLevel !== null \u0026\u0026 elementZoomLevel !== void 0 \u0026\u0026 elementZoomLevel !== \"1\") {\n      zoom *= elementZoomLevel;\n    }\n    testElement = testElement.parentElement;\n  } while (testElement !== null \u0026\u0026 testElement !== testElement.ownerDocument.documentElement);\n  return zoom;\n}\nfunction getTotalWidth(element) {\n  const margin = SizeUtils.getMarginLeft(element) + SizeUtils.getMarginRight(element);\n  return element.offsetWidth + margin;\n}\nfunction getContentWidth(element) {\n  const border = SizeUtils.getBorderLeftWidth(element) + SizeUtils.getBorderRightWidth(element);\n  const padding = SizeUtils.getPaddingLeft(element) + SizeUtils.getPaddingRight(element);\n  return element.offsetWidth - border - padding;\n}\nfunction getContentHeight(element) {\n  const border = SizeUtils.getBorderTopWidth(element) + SizeUtils.getBorderBottomWidth(element);\n  const padding = SizeUtils.getPaddingTop(element) + SizeUtils.getPaddingBottom(element);\n  return element.offsetHeight - border - padding;\n}\nfunction getTotalHeight(element) {\n  const margin = SizeUtils.getMarginTop(element) + SizeUtils.getMarginBottom(element);\n  return element.offsetHeight + margin;\n}\nfunction isAncestor(testChild, testAncestor) {\n  return Boolean(testAncestor?.contains(testChild));\n}\nfunction findParentWithClass(node, clazz, stopAtClazzOrNode) {\n  while (node \u0026\u0026 node.nodeType === node.ELEMENT_NODE) {\n    if (node.classList.contains(clazz)) {\n      return node;\n    }\n    if (stopAtClazzOrNode) {\n      if (typeof stopAtClazzOrNode === \"string\") {\n        if (node.classList.contains(stopAtClazzOrNode)) {\n          return null;\n        }\n      } else {\n        if (node === stopAtClazzOrNode) {\n          return null;\n        }\n      }\n    }\n    node = node.parentNode;\n  }\n  return null;\n}\nfunction hasParentWithClass(node, clazz, stopAtClazzOrNode) {\n  return !!findParentWithClass(node, clazz, stopAtClazzOrNode);\n}\nfunction isShadowRoot(node) {\n  return node \u0026\u0026 !!node.host \u0026\u0026 !!node.mode;\n}\nfunction isInShadowDOM(domNode) {\n  return !!getShadowRoot(domNode);\n}\nfunction getShadowRoot(domNode) {\n  while (domNode.parentNode) {\n    if (domNode === domNode.ownerDocument?.body) {\n      return null;\n    }\n    domNode = domNode.parentNode;\n  }\n  return isShadowRoot(domNode) ? domNode : null;\n}\nfunction getActiveElement() {\n  let result = getActiveDocument().activeElement;\n  while (result?.shadowRoot) {\n    result = result.shadowRoot.activeElement;\n  }\n  return result;\n}\nfunction isActiveElement(element) {\n  return getActiveElement() === element;\n}\nfunction isAncestorOfActiveElement(ancestor) {\n  return isAncestor(getActiveElement(), ancestor);\n}\nfunction getActiveDocument() {\n  if (getWindowsCount() \u003c= 1) {\n    return mainWindow.document;\n  }\n  const documents = Array.from(getWindows()).map(({ window: window2 }) =\u003e window2.document);\n  return documents.find((doc) =\u003e doc.hasFocus()) ?? mainWindow.document;\n}\nfunction getActiveWindow() {\n  const document2 = getActiveDocument();\n  return document2.defaultView?.window ?? mainWindow;\n}\nfunction isHTMLElement(e) {\n  return e instanceof HTMLElement || e instanceof getWindow(e).HTMLElement;\n}\nfunction isHTMLAnchorElement(e) {\n  return e instanceof HTMLAnchorElement || e instanceof getWindow(e).HTMLAnchorElement;\n}\nfunction isSVGElement(e) {\n  return e instanceof SVGElement || e instanceof getWindow(e).SVGElement;\n}\nfunction isMouseEvent(e) {\n  return e instanceof MouseEvent || e instanceof getWindow(e).MouseEvent;\n}\nfunction isKeyboardEvent(e) {\n  return e instanceof KeyboardEvent || e instanceof getWindow(e).KeyboardEvent;\n}\nfunction isEventLike(obj) {\n  const candidate = obj;\n  return !!(candidate \u0026\u0026 typeof candidate.preventDefault === \"function\" \u0026\u0026 typeof candidate.stopPropagation === \"function\");\n}\nfunction saveParentsScrollTop(node) {\n  const r = [];\n  for (let i2 = 0; node \u0026\u0026 node.nodeType === node.ELEMENT_NODE; i2++) {\n    r[i2] = node.scrollTop;\n    node = node.parentNode;\n  }\n  return r;\n}\nfunction restoreParentsScrollTop(node, state) {\n  for (let i2 = 0; node \u0026\u0026 node.nodeType === node.ELEMENT_NODE; i2++) {\n    if (node.scrollTop !== state[i2]) {\n      node.scrollTop = state[i2];\n    }\n    node = node.parentNode;\n  }\n}\nfunction trackFocus(element) {\n  return new FocusTracker(element);\n}\nfunction after(sibling, child) {\n  sibling.after(child);\n  return child;\n}\nfunction append(parent, ...children) {\n  parent.append(...children);\n  if (children.length === 1 \u0026\u0026 typeof children[0] !== \"string\") {\n    return children[0];\n  }\n}\nfunction prepend(parent, child) {\n  parent.insertBefore(child, parent.firstChild);\n  return child;\n}\nfunction reset(parent, ...children) {\n  parent.textContent = \"\";\n  append(parent, ...children);\n}\nfunction _$(namespace, description, attrs, ...children) {\n  const match2 = SELECTOR_REGEX.exec(description);\n  if (!match2) {\n    throw new Error(\"Bad use of emmet\");\n  }\n  const tagName = match2[1] || \"div\";\n  let result;\n  if (namespace !== Namespace.HTML) {\n    result = document.createElementNS(namespace, tagName);\n  } else {\n    result = document.createElement(tagName);\n  }\n  if (match2[3]) {\n    result.id = match2[3];\n  }\n  if (match2[4]) {\n    result.className = match2[4].replace(/\\./g, \" \").trim();\n  }\n  if (attrs) {\n    Object.entries(attrs).forEach(([name, value]) =\u003e {\n      if (typeof value === \"undefined\") {\n        return;\n      }\n      if (/^on\\w+$/.test(name)) {\n        result[name] = value;\n      } else if (name === \"selected\") {\n        if (value) {\n          result.setAttribute(name, \"true\");\n        }\n      } else {\n        result.setAttribute(name, value);\n      }\n    });\n  }\n  result.append(...children);\n  return result;\n}\nfunction $(description, attrs, ...children) {\n  return _$(Namespace.HTML, description, attrs, ...children);\n}\nfunction setVisibility(visible, ...elements) {\n  if (visible) {\n    show(...elements);\n  } else {\n    hide(...elements);\n  }\n}\nfunction show(...elements) {\n  for (const element of elements) {\n    element.style.display = \"\";\n    element.removeAttribute(\"aria-hidden\");\n  }\n}\nfunction hide(...elements) {\n  for (const element of elements) {\n    element.style.display = \"none\";\n    element.setAttribute(\"aria-hidden\", \"true\");\n  }\n}\nfunction computeScreenAwareSize(window2, cssPx) {\n  const screenPx = window2.devicePixelRatio * cssPx;\n  return Math.max(1, Math.floor(screenPx)) / window2.devicePixelRatio;\n}\nfunction windowOpenNoOpener(url) {\n  mainWindow.open(url, \"_blank\", \"noopener\");\n}\nfunction animate(targetWindow, fn) {\n  const step = () =\u003e {\n    fn();\n    stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);\n  };\n  let stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);\n  return toDisposable(() =\u003e stepDisposable.dispose());\n}\nfunction h(tag2, ...args) {\n  let attributes;\n  let children;\n  if (Array.isArray(args[0])) {\n    attributes = {};\n    children = args[0];\n  } else {\n    attributes = args[0] || {};\n    children = args[1];\n  }\n  const match2 = H_REGEX.exec(tag2);\n  if (!match2 || !match2.groups) {\n    throw new Error(\"Bad use of h\");\n  }\n  const tagName = match2.groups[\"tag\"] || \"div\";\n  const el = document.createElement(tagName);\n  if (match2.groups[\"id\"]) {\n    el.id = match2.groups[\"id\"];\n  }\n  const classNames2 = [];\n  if (match2.groups[\"class\"]) {\n    for (const className2 of match2.groups[\"class\"].split(\".\")) {\n      if (className2 !== \"\") {\n        classNames2.push(className2);\n      }\n    }\n  }\n  if (attributes.className !== void 0) {\n    for (const className2 of attributes.className.split(\".\")) {\n      if (className2 !== \"\") {\n        classNames2.push(className2);\n      }\n    }\n  }\n  if (classNames2.length \u003e 0) {\n    el.className = classNames2.join(\" \");\n  }\n  const result = {};\n  if (match2.groups[\"name\"]) {\n    result[match2.groups[\"name\"]] = el;\n  }\n  if (children) {\n    for (const c of children) {\n      if (isHTMLElement(c)) {\n        el.appendChild(c);\n      } else if (typeof c === \"string\") {\n        el.append(c);\n      } else if (\"root\" in c) {\n        Object.assign(result, c);\n        el.appendChild(c.root);\n      }\n    }\n  }\n  for (const [key, value] of Object.entries(attributes)) {\n    if (key === \"className\") {\n      continue;\n    } else if (key === \"style\") {\n      for (const [cssKey, cssValue] of Object.entries(value)) {\n        el.style.setProperty(camelCaseToHyphenCase(cssKey), typeof cssValue === \"number\" ? cssValue + \"px\" : \"\" + cssValue);\n      }\n    } else if (key === \"tabIndex\") {\n      el.tabIndex = value;\n    } else {\n      el.setAttribute(camelCaseToHyphenCase(key), value.toString());\n    }\n  }\n  result[\"root\"] = el;\n  return result;\n}\nfunction camelCaseToHyphenCase(str) {\n  return str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nfunction isEditableElement(element) {\n  return element.tagName.toLowerCase() === \"input\" || element.tagName.toLowerCase() === \"textarea\" || isHTMLElement(element) \u0026\u0026 !!element.editContext;\n}\nfunction setClassName(domNode, className2) {\n  if (isSVGElement(domNode)) {\n    domNode.setAttribute(\"class\", className2);\n  } else {\n    domNode.className = className2;\n  }\n}\nfunction resolve2(value, reader, cb) {\n  if (isObservable(value)) {\n    cb(value.read(reader));\n    return;\n  }\n  if (Array.isArray(value)) {\n    for (const v of value) {\n      resolve2(v, reader, cb);\n    }\n    return;\n  }\n  cb(value);\n}\nfunction getClassName2(className2, reader) {\n  let result = \"\";\n  resolve2(className2, reader, (val) =\u003e {\n    if (val) {\n      if (result.length === 0) {\n        result = val;\n      } else {\n        result += \" \" + val;\n      }\n    }\n  });\n  return result;\n}\nfunction hasObservable(value) {\n  if (isObservable(value)) {\n    return true;\n  }\n  if (Array.isArray(value)) {\n    return value.some((v) =\u003e hasObservable(v));\n  }\n  return false;\n}\nfunction convertCssValue(value) {\n  if (typeof value === \"number\") {\n    return value + \"px\";\n  }\n  return value;\n}\nfunction childrenIsObservable(children) {\n  if (isObservable(children)) {\n    return true;\n  }\n  if (Array.isArray(children)) {\n    return children.some((c) =\u003e childrenIsObservable(c));\n  }\n  return false;\n}\nfunction setOrRemoveAttribute(element, key, value) {\n  if (value === null || value === void 0) {\n    element.removeAttribute(camelCaseToHyphenCase(key));\n  } else {\n    element.setAttribute(camelCaseToHyphenCase(key), String(value));\n  }\n}\nfunction isObservable(obj) {\n  return !!obj \u0026\u0026 obj.read !== void 0 \u0026\u0026 obj.reportChanges !== void 0;\n}\nvar registerWindow, getWindow, getDocument, getWindows, getWindowsCount, getWindowId, getWindowById, hasWindow, onDidRegisterWindow, onWillUnregisterWindow, onDidUnregisterWindow, DomListener, addStandardDisposableListener, addStandardDisposableGenericMouseDownListener, WindowIdleValue, runAtThisOrScheduleAtNextAnimationFrame, scheduleAtNextAnimationFrame, WindowIntervalTimer, AnimationFrameQueueItem, SizeUtils, Dimension, sharedMutationObserver, EventType, EventHelper, FocusTracker, SELECTOR_REGEX, Namespace, ModifierKeyEmitter, DragAndDropObserver, H_REGEX, n, ObserverNode, LiveElement, ObserverNodeWithElement;\nvar init_dom = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/dom.js\"() {\n    init_browser();\n    init_canIUse();\n    init_keyboardEvent();\n    init_mouseEvent();\n    init_async();\n    init_errors();\n    init_event();\n    init_lifecycle();\n    init_network();\n    init_platform();\n    init_hash();\n    init_window();\n    init_observable();\n    ({ registerWindow, getWindow, getDocument, getWindows, getWindowsCount, getWindowId, getWindowById, hasWindow, onDidRegisterWindow, onWillUnregisterWindow, onDidUnregisterWindow } = (function() {\n      const windows = /* @__PURE__ */ new Map();\n      ensureCodeWindow(mainWindow, 1);\n      const mainWindowRegistration = { window: mainWindow, disposables: new DisposableStore() };\n      windows.set(mainWindow.vscodeWindowId, mainWindowRegistration);\n      const onDidRegisterWindow2 = new Emitter();\n      const onDidUnregisterWindow2 = new Emitter();\n      const onWillUnregisterWindow2 = new Emitter();\n      function getWindowById2(windowId, fallbackToMain) {\n        const window2 = typeof windowId === \"number\" ? windows.get(windowId) : void 0;\n        return window2 ?? (fallbackToMain ? mainWindowRegistration : void 0);\n      }\n      return {\n        onDidRegisterWindow: onDidRegisterWindow2.event,\n        onWillUnregisterWindow: onWillUnregisterWindow2.event,\n        onDidUnregisterWindow: onDidUnregisterWindow2.event,\n        registerWindow(window2) {\n          if (windows.has(window2.vscodeWindowId)) {\n            return Disposable.None;\n          }\n          const disposables = new DisposableStore();\n          const registeredWindow = {\n            window: window2,\n            disposables: disposables.add(new DisposableStore())\n          };\n          windows.set(window2.vscodeWindowId, registeredWindow);\n          disposables.add(toDisposable(() =\u003e {\n            windows.delete(window2.vscodeWindowId);\n            onDidUnregisterWindow2.fire(window2);\n          }));\n          disposables.add(addDisposableListener(window2, EventType.BEFORE_UNLOAD, () =\u003e {\n            onWillUnregisterWindow2.fire(window2);\n          }));\n          onDidRegisterWindow2.fire(registeredWindow);\n          return disposables;\n        },\n        getWindows() {\n          return windows.values();\n        },\n        getWindowsCount() {\n          return windows.size;\n        },\n        getWindowId(targetWindow) {\n          return targetWindow.vscodeWindowId;\n        },\n        hasWindow(windowId) {\n          return windows.has(windowId);\n        },\n        getWindowById: getWindowById2,\n        getWindow(e) {\n          const candidateNode = e;\n          if (candidateNode?.ownerDocument?.defaultView) {\n            return candidateNode.ownerDocument.defaultView.window;\n          }\n          const candidateEvent = e;\n          if (candidateEvent?.view) {\n            return candidateEvent.view.window;\n          }\n          return mainWindow;\n        },\n        getDocument(e) {\n          const candidateNode = e;\n          return getWindow(candidateNode).document;\n        }\n      };\n    })());\n    DomListener = class {\n      constructor(node, type, handler, options2) {\n        this._node = node;\n        this._type = type;\n        this._handler = handler;\n        this._options = options2 || false;\n        this._node.addEventListener(this._type, this._handler, this._options);\n      }\n      dispose() {\n        if (!this._handler) {\n          return;\n        }\n        this._node.removeEventListener(this._type, this._handler, this._options);\n        this._node = null;\n        this._handler = null;\n      }\n    };\n    addStandardDisposableListener = function addStandardDisposableListener2(node, type, handler, useCapture) {\n      let wrapHandler = handler;\n      if (type === \"click\" || type === \"mousedown\" || type === \"contextmenu\") {\n        wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);\n      } else if (type === \"keydown\" || type === \"keypress\" || type === \"keyup\") {\n        wrapHandler = _wrapAsStandardKeyboardEvent(handler);\n      }\n      return addDisposableListener(node, type, wrapHandler, useCapture);\n    };\n    addStandardDisposableGenericMouseDownListener = function addStandardDisposableListener3(node, handler, useCapture) {\n      const wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);\n      return addDisposableGenericMouseDownListener(node, wrapHandler, useCapture);\n    };\n    WindowIdleValue = class extends AbstractIdleValue {\n      constructor(targetWindow, executor) {\n        super(targetWindow, executor);\n      }\n    };\n    WindowIntervalTimer = class extends IntervalTimer {\n      /**\n       *\n       * @param node The optional node from which the target window is determined\n       */\n      constructor(node) {\n        super();\n        this.defaultTarget = node \u0026\u0026 getWindow(node);\n      }\n      cancelAndSet(runner, interval, targetWindow) {\n        return super.cancelAndSet(runner, interval, targetWindow ?? this.defaultTarget);\n      }\n    };\n    AnimationFrameQueueItem = class {\n      constructor(runner, priority = 0) {\n        this._runner = runner;\n        this.priority = priority;\n        this._canceled = false;\n      }\n      dispose() {\n        this._canceled = true;\n      }\n      execute() {\n        if (this._canceled) {\n          return;\n        }\n        try {\n          this._runner();\n        } catch (e) {\n          onUnexpectedError(e);\n        }\n      }\n      // Sort by priority (largest to lowest)\n      static sort(a, b) {\n        return b.priority - a.priority;\n      }\n    };\n    (function() {\n      const NEXT_QUEUE = /* @__PURE__ */ new Map();\n      const CURRENT_QUEUE = /* @__PURE__ */ new Map();\n      const animFrameRequested = /* @__PURE__ */ new Map();\n      const inAnimationFrameRunner = /* @__PURE__ */ new Map();\n      const animationFrameRunner = (targetWindowId) =\u003e {\n        animFrameRequested.set(targetWindowId, false);\n        const currentQueue = NEXT_QUEUE.get(targetWindowId) ?? [];\n        CURRENT_QUEUE.set(targetWindowId, currentQueue);\n        NEXT_QUEUE.set(targetWindowId, []);\n        inAnimationFrameRunner.set(targetWindowId, true);\n        while (currentQueue.length \u003e 0) {\n          currentQueue.sort(AnimationFrameQueueItem.sort);\n          const top = currentQueue.shift();\n          top.execute();\n        }\n        inAnimationFrameRunner.set(targetWindowId, false);\n      };\n      scheduleAtNextAnimationFrame = (targetWindow, runner, priority = 0) =\u003e {\n        const targetWindowId = getWindowId(targetWindow);\n        const item = new AnimationFrameQueueItem(runner, priority);\n        let nextQueue = NEXT_QUEUE.get(targetWindowId);\n        if (!nextQueue) {\n          nextQueue = [];\n          NEXT_QUEUE.set(targetWindowId, nextQueue);\n        }\n        nextQueue.push(item);\n        if (!animFrameRequested.get(targetWindowId)) {\n          animFrameRequested.set(targetWindowId, true);\n          targetWindow.requestAnimationFrame(() =\u003e animationFrameRunner(targetWindowId));\n        }\n        return item;\n      };\n      runAtThisOrScheduleAtNextAnimationFrame = (targetWindow, runner, priority) =\u003e {\n        const targetWindowId = getWindowId(targetWindow);\n        if (inAnimationFrameRunner.get(targetWindowId)) {\n          const item = new AnimationFrameQueueItem(runner, priority);\n          let currentQueue = CURRENT_QUEUE.get(targetWindowId);\n          if (!currentQueue) {\n            currentQueue = [];\n            CURRENT_QUEUE.set(targetWindowId, currentQueue);\n          }\n          currentQueue.push(item);\n          return item;\n        } else {\n          return scheduleAtNextAnimationFrame(targetWindow, runner, priority);\n        }\n      };\n    })();\n    SizeUtils = class _SizeUtils {\n      // Adapted from WinJS\n      // Converts a CSS positioning string for the specified element to pixels.\n      static convertToPixels(element, value) {\n        return parseFloat(value) || 0;\n      }\n      static getDimension(element, cssPropertyName) {\n        const computedStyle = getComputedStyle(element);\n        const value = computedStyle ? computedStyle.getPropertyValue(cssPropertyName) : \"0\";\n        return _SizeUtils.convertToPixels(element, value);\n      }\n      static getBorderLeftWidth(element) {\n        return _SizeUtils.getDimension(element, \"border-left-width\");\n      }\n      static getBorderRightWidth(element) {\n        return _SizeUtils.getDimension(element, \"border-right-width\");\n      }\n      static getBorderTopWidth(element) {\n        return _SizeUtils.getDimension(element, \"border-top-width\");\n      }\n      static getBorderBottomWidth(element) {\n        return _SizeUtils.getDimension(element, \"border-bottom-width\");\n      }\n      static getPaddingLeft(element) {\n        return _SizeUtils.getDimension(element, \"padding-left\");\n      }\n      static getPaddingRight(element) {\n        return _SizeUtils.getDimension(element, \"padding-right\");\n      }\n      static getPaddingTop(element) {\n        return _SizeUtils.getDimension(element, \"padding-top\");\n      }\n      static getPaddingBottom(element) {\n        return _SizeUtils.getDimension(element, \"padding-bottom\");\n      }\n      static getMarginLeft(element) {\n        return _SizeUtils.getDimension(element, \"margin-left\");\n      }\n      static getMarginTop(element) {\n        return _SizeUtils.getDimension(element, \"margin-top\");\n      }\n      static getMarginRight(element) {\n        return _SizeUtils.getDimension(element, \"margin-right\");\n      }\n      static getMarginBottom(element) {\n        return _SizeUtils.getDimension(element, \"margin-bottom\");\n      }\n    };\n    Dimension = class _Dimension {\n      static {\n        this.None = new _Dimension(0, 0);\n      }\n      constructor(width2, height) {\n        this.width = width2;\n        this.height = height;\n      }\n      with(width2 = this.width, height = this.height) {\n        if (width2 !== this.width || height !== this.height) {\n          return new _Dimension(width2, height);\n        } else {\n          return this;\n        }\n      }\n      static is(obj) {\n        return typeof obj === \"object\" \u0026\u0026 typeof obj.height === \"number\" \u0026\u0026 typeof obj.width === \"number\";\n      }\n      static lift(obj) {\n        if (obj instanceof _Dimension) {\n          return obj;\n        } else {\n          return new _Dimension(obj.width, obj.height);\n        }\n      }\n      static equals(a, b) {\n        if (a === b) {\n          return true;\n        }\n        if (!a || !b) {\n          return false;\n        }\n        return a.width === b.width \u0026\u0026 a.height === b.height;\n      }\n    };\n    sharedMutationObserver = new class {\n      constructor() {\n        this.mutationObservers = /* @__PURE__ */ new Map();\n      }\n      observe(target, disposables, options2) {\n        let mutationObserversPerTarget = this.mutationObservers.get(target);\n        if (!mutationObserversPerTarget) {\n          mutationObserversPerTarget = /* @__PURE__ */ new Map();\n          this.mutationObservers.set(target, mutationObserversPerTarget);\n        }\n        const optionsHash = hash(options2);\n        let mutationObserverPerOptions = mutationObserversPerTarget.get(optionsHash);\n        if (!mutationObserverPerOptions) {\n          const onDidMutate = new Emitter();\n          const observer = new MutationObserver((mutations) =\u003e onDidMutate.fire(mutations));\n          observer.observe(target, options2);\n          const resolvedMutationObserverPerOptions = mutationObserverPerOptions = {\n            users: 1,\n            observer,\n            onDidMutate: onDidMutate.event\n          };\n          disposables.add(toDisposable(() =\u003e {\n            resolvedMutationObserverPerOptions.users -= 1;\n            if (resolvedMutationObserverPerOptions.users === 0) {\n              onDidMutate.dispose();\n              observer.disconnect();\n              mutationObserversPerTarget?.delete(optionsHash);\n              if (mutationObserversPerTarget?.size === 0) {\n                this.mutationObservers.delete(target);\n              }\n            }\n          }));\n          mutationObserversPerTarget.set(optionsHash, mutationObserverPerOptions);\n        } else {\n          mutationObserverPerOptions.users += 1;\n        }\n        return mutationObserverPerOptions.onDidMutate;\n      }\n    }();\n    EventType = {\n      // Mouse\n      CLICK: \"click\",\n      AUXCLICK: \"auxclick\",\n      DBLCLICK: \"dblclick\",\n      MOUSE_UP: \"mouseup\",\n      MOUSE_DOWN: \"mousedown\",\n      MOUSE_OVER: \"mouseover\",\n      MOUSE_MOVE: \"mousemove\",\n      MOUSE_OUT: \"mouseout\",\n      MOUSE_ENTER: \"mouseenter\",\n      MOUSE_LEAVE: \"mouseleave\",\n      MOUSE_WHEEL: \"wheel\",\n      POINTER_UP: \"pointerup\",\n      POINTER_DOWN: \"pointerdown\",\n      POINTER_MOVE: \"pointermove\",\n      POINTER_LEAVE: \"pointerleave\",\n      CONTEXT_MENU: \"contextmenu\",\n      WHEEL: \"wheel\",\n      // Keyboard\n      KEY_DOWN: \"keydown\",\n      KEY_PRESS: \"keypress\",\n      KEY_UP: \"keyup\",\n      // HTML Document\n      LOAD: \"load\",\n      BEFORE_UNLOAD: \"beforeunload\",\n      UNLOAD: \"unload\",\n      PAGE_SHOW: \"pageshow\",\n      PAGE_HIDE: \"pagehide\",\n      PASTE: \"paste\",\n      ABORT: \"abort\",\n      ERROR: \"error\",\n      RESIZE: \"resize\",\n      SCROLL: \"scroll\",\n      FULLSCREEN_CHANGE: \"fullscreenchange\",\n      WK_FULLSCREEN_CHANGE: \"webkitfullscreenchange\",\n      // Form\n      SELECT: \"select\",\n      CHANGE: \"change\",\n      SUBMIT: \"submit\",\n      RESET: \"reset\",\n      FOCUS: \"focus\",\n      FOCUS_IN: \"focusin\",\n      FOCUS_OUT: \"focusout\",\n      BLUR: \"blur\",\n      INPUT: \"input\",\n      // Local Storage\n      STORAGE: \"storage\",\n      // Drag\n      DRAG_START: \"dragstart\",\n      DRAG: \"drag\",\n      DRAG_ENTER: \"dragenter\",\n      DRAG_LEAVE: \"dragleave\",\n      DRAG_OVER: \"dragover\",\n      DROP: \"drop\",\n      DRAG_END: \"dragend\",\n      // Animation\n      ANIMATION_START: isWebKit ? \"webkitAnimationStart\" : \"animationstart\",\n      ANIMATION_END: isWebKit ? \"webkitAnimationEnd\" : \"animationend\",\n      ANIMATION_ITERATION: isWebKit ? \"webkitAnimationIteration\" : \"animationiteration\"\n    };\n    EventHelper = {\n      stop: (e, cancelBubble) =\u003e {\n        e.preventDefault();\n        if (cancelBubble) {\n          e.stopPropagation();\n        }\n        return e;\n      }\n    };\n    FocusTracker = class _FocusTracker extends Disposable {\n      get onDidFocus() {\n        return this._onDidFocus.event;\n      }\n      get onDidBlur() {\n        return this._onDidBlur.event;\n      }\n      static hasFocusWithin(element) {\n        if (isHTMLElement(element)) {\n          const shadowRoot = getShadowRoot(element);\n          const activeElement = shadowRoot ? shadowRoot.activeElement : element.ownerDocument.activeElement;\n          return isAncestor(activeElement, element);\n        } else {\n          const window2 = element;\n          return isAncestor(window2.document.activeElement, window2.document);\n        }\n      }\n      constructor(element) {\n        super();\n        this._onDidFocus = this._register(new Emitter());\n        this._onDidBlur = this._register(new Emitter());\n        let hasFocus = _FocusTracker.hasFocusWithin(element);\n        let loosingFocus = false;\n        const onFocus = () =\u003e {\n          loosingFocus = false;\n          if (!hasFocus) {\n            hasFocus = true;\n            this._onDidFocus.fire();\n          }\n        };\n        const onBlur = () =\u003e {\n          if (hasFocus) {\n            loosingFocus = true;\n            (isHTMLElement(element) ? getWindow(element) : element).setTimeout(() =\u003e {\n              if (loosingFocus) {\n                loosingFocus = false;\n                hasFocus = false;\n                this._onDidBlur.fire();\n              }\n            }, 0);\n          }\n        };\n        this._refreshStateHandler = () =\u003e {\n          const currentNodeHasFocus = _FocusTracker.hasFocusWithin(element);\n          if (currentNodeHasFocus !== hasFocus) {\n            if (hasFocus) {\n              onBlur();\n            } else {\n              onFocus();\n            }\n          }\n        };\n        this._register(addDisposableListener(element, EventType.FOCUS, onFocus, true));\n        this._register(addDisposableListener(element, EventType.BLUR, onBlur, true));\n        if (isHTMLElement(element)) {\n          this._register(addDisposableListener(element, EventType.FOCUS_IN, () =\u003e this._refreshStateHandler()));\n          this._register(addDisposableListener(element, EventType.FOCUS_OUT, () =\u003e this._refreshStateHandler()));\n        }\n      }\n    };\n    SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\n    (function(Namespace2) {\n      Namespace2[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\n      Namespace2[\"SVG\"] = \"http://www.w3.org/2000/svg\";\n    })(Namespace || (Namespace = {}));\n    $.SVG = function(description, attrs, ...children) {\n      return _$(Namespace.SVG, description, attrs, ...children);\n    };\n    RemoteAuthorities.setPreferredWebSchema(/^https:/.test(mainWindow.location.href) ? \"https\" : \"http\");\n    ModifierKeyEmitter = class _ModifierKeyEmitter extends Emitter {\n      constructor() {\n        super();\n        this._subscriptions = new DisposableStore();\n        this._keyStatus = {\n          altKey: false,\n          shiftKey: false,\n          ctrlKey: false,\n          metaKey: false\n        };\n        this._subscriptions.add(Event.runAndSubscribe(onDidRegisterWindow, ({ window: window2, disposables }) =\u003e this.registerListeners(window2, disposables), { window: mainWindow, disposables: this._subscriptions }));\n      }\n      registerListeners(window2, disposables) {\n        disposables.add(addDisposableListener(window2, \"keydown\", (e) =\u003e {\n          if (e.defaultPrevented) {\n            return;\n          }\n          const event = new StandardKeyboardEvent(e);\n          if (event.keyCode === 6 \u0026\u0026 e.repeat) {\n            return;\n          }\n          if (e.altKey \u0026\u0026 !this._keyStatus.altKey) {\n            this._keyStatus.lastKeyPressed = \"alt\";\n          } else if (e.ctrlKey \u0026\u0026 !this._keyStatus.ctrlKey) {\n            this._keyStatus.lastKeyPressed = \"ctrl\";\n          } else if (e.metaKey \u0026\u0026 !this._keyStatus.metaKey) {\n            this._keyStatus.lastKeyPressed = \"meta\";\n          } else if (e.shiftKey \u0026\u0026 !this._keyStatus.shiftKey) {\n            this._keyStatus.lastKeyPressed = \"shift\";\n          } else if (event.keyCode !== 6) {\n            this._keyStatus.lastKeyPressed = void 0;\n          } else {\n            return;\n          }\n          this._keyStatus.altKey = e.altKey;\n          this._keyStatus.ctrlKey = e.ctrlKey;\n          this._keyStatus.metaKey = e.metaKey;\n          this._keyStatus.shiftKey = e.shiftKey;\n          if (this._keyStatus.lastKeyPressed) {\n            this._keyStatus.event = e;\n            this.fire(this._keyStatus);\n          }\n        }, true));\n        disposables.add(addDisposableListener(window2, \"keyup\", (e) =\u003e {\n          if (e.defaultPrevented) {\n            return;\n          }\n          if (!e.altKey \u0026\u0026 this._keyStatus.altKey) {\n            this._keyStatus.lastKeyReleased = \"alt\";\n          } else if (!e.ctrlKey \u0026\u0026 this._keyStatus.ctrlKey) {\n            this._keyStatus.lastKeyReleased = \"ctrl\";\n          } else if (!e.metaKey \u0026\u0026 this._keyStatus.metaKey) {\n            this._keyStatus.lastKeyReleased = \"meta\";\n          } else if (!e.shiftKey \u0026\u0026 this._keyStatus.shiftKey) {\n            this._keyStatus.lastKeyReleased = \"shift\";\n          } else {\n            this._keyStatus.lastKeyReleased = void 0;\n          }\n          if (this._keyStatus.lastKeyPressed !== this._keyStatus.lastKeyReleased) {\n            this._keyStatus.lastKeyPressed = void 0;\n          }\n          this._keyStatus.altKey = e.altKey;\n          this._keyStatus.ctrlKey = e.ctrlKey;\n          this._keyStatus.metaKey = e.metaKey;\n          this._keyStatus.shiftKey = e.shiftKey;\n          if (this._keyStatus.lastKeyReleased) {\n            this._keyStatus.event = e;\n            this.fire(this._keyStatus);\n          }\n        }, true));\n        disposables.add(addDisposableListener(window2.document.body, \"mousedown\", () =\u003e {\n          this._keyStatus.lastKeyPressed = void 0;\n        }, true));\n        disposables.add(addDisposableListener(window2.document.body, \"mouseup\", () =\u003e {\n          this._keyStatus.lastKeyPressed = void 0;\n        }, true));\n        disposables.add(addDisposableListener(window2.document.body, \"mousemove\", (e) =\u003e {\n          if (e.buttons) {\n            this._keyStatus.lastKeyPressed = void 0;\n          }\n        }, true));\n        disposables.add(addDisposableListener(window2, \"blur\", () =\u003e {\n          this.resetKeyStatus();\n        }));\n      }\n      get keyStatus() {\n        return this._keyStatus;\n      }\n      /**\n       * Allows to explicitly reset the key status based on more knowledge (#109062)\n       */\n      resetKeyStatus() {\n        this.doResetKeyStatus();\n        this.fire(this._keyStatus);\n      }\n      doResetKeyStatus() {\n        this._keyStatus = {\n          altKey: false,\n          shiftKey: false,\n          ctrlKey: false,\n          metaKey: false\n        };\n      }\n      static getInstance() {\n        if (!_ModifierKeyEmitter.instance) {\n          _ModifierKeyEmitter.instance = new _ModifierKeyEmitter();\n        }\n        return _ModifierKeyEmitter.instance;\n      }\n      dispose() {\n        super.dispose();\n        this._subscriptions.dispose();\n      }\n    };\n    DragAndDropObserver = class extends Disposable {\n      constructor(element, callbacks) {\n        super();\n        this.element = element;\n        this.callbacks = callbacks;\n        this.counter = 0;\n        this.dragStartTime = 0;\n        this.registerListeners();\n      }\n      registerListeners() {\n        if (this.callbacks.onDragStart) {\n          this._register(addDisposableListener(this.element, EventType.DRAG_START, (e) =\u003e {\n            this.callbacks.onDragStart?.(e);\n          }));\n        }\n        if (this.callbacks.onDrag) {\n          this._register(addDisposableListener(this.element, EventType.DRAG, (e) =\u003e {\n            this.callbacks.onDrag?.(e);\n          }));\n        }\n        this._register(addDisposableListener(this.element, EventType.DRAG_ENTER, (e) =\u003e {\n          this.counter++;\n          this.dragStartTime = e.timeStamp;\n          this.callbacks.onDragEnter?.(e);\n        }));\n        this._register(addDisposableListener(this.element, EventType.DRAG_OVER, (e) =\u003e {\n          e.preventDefault();\n          this.callbacks.onDragOver?.(e, e.timeStamp - this.dragStartTime);\n        }));\n        this._register(addDisposableListener(this.element, EventType.DRAG_LEAVE, (e) =\u003e {\n          this.counter--;\n          if (this.counter === 0) {\n            this.dragStartTime = 0;\n            this.callbacks.onDragLeave?.(e);\n          }\n        }));\n        this._register(addDisposableListener(this.element, EventType.DRAG_END, (e) =\u003e {\n          this.counter = 0;\n          this.dragStartTime = 0;\n          this.callbacks.onDragEnd?.(e);\n        }));\n        this._register(addDisposableListener(this.element, EventType.DROP, (e) =\u003e {\n          this.counter = 0;\n          this.dragStartTime = 0;\n          this.callbacks.onDrop?.(e);\n        }));\n      }\n    };\n    H_REGEX = /(?\u003ctag\u003e[\\w\\-]+)?(?:#(?\u003cid\u003e[\\w\\-]+))?(?\u003cclass\u003e(?:\\.(?:[\\w\\-]+))*)(?:@(?\u003cname\u003e(?:[\\w\\_])+))?/;\n    (function(n2) {\n      function nodeNs(elementNs = void 0) {\n        return (tag2, attributes, children) =\u003e {\n          const className2 = attributes.class;\n          delete attributes.class;\n          const ref2 = attributes.ref;\n          delete attributes.ref;\n          const obsRef = attributes.obsRef;\n          delete attributes.obsRef;\n          return new ObserverNodeWithElement(tag2, ref2, obsRef, elementNs, className2, attributes, children);\n        };\n      }\n      function node(tag2, elementNs = void 0) {\n        const f = nodeNs(elementNs);\n        return (attributes, children) =\u003e {\n          return f(tag2, attributes, children);\n        };\n      }\n      n2.div = node(\"div\");\n      n2.elem = nodeNs(void 0);\n      n2.svg = node(\"svg\", \"http://www.w3.org/2000/svg\");\n      n2.svgElem = nodeNs(\"http://www.w3.org/2000/svg\");\n      function ref() {\n        let value = void 0;\n        const result = function(val) {\n          value = val;\n        };\n        Object.defineProperty(result, \"element\", {\n          get() {\n            if (!value) {\n              throw new BugIndicatingError(\"Make sure the ref is set before accessing the element. Maybe wrong initialization order?\");\n            }\n            return value;\n          }\n        });\n        return result;\n      }\n      n2.ref = ref;\n    })(n || (n = {}));\n    ObserverNode = class _ObserverNode {\n      constructor(tag2, ref, obsRef, ns, className2, attributes, children) {\n        this._deriveds = [];\n        this._element = ns ? document.createElementNS(ns, tag2) : document.createElement(tag2);\n        if (ref) {\n          ref(this._element);\n        }\n        if (obsRef) {\n          this._deriveds.push(derived((_reader) =\u003e {\n            obsRef(this);\n            _reader.store.add({\n              dispose: () =\u003e {\n                obsRef(null);\n              }\n            });\n          }));\n        }\n        if (className2) {\n          if (hasObservable(className2)) {\n            this._deriveds.push(derived(this, (reader) =\u003e {\n              setClassName(this._element, getClassName2(className2, reader));\n            }));\n          } else {\n            setClassName(this._element, getClassName2(className2, void 0));\n          }\n        }\n        for (const [key, value] of Object.entries(attributes)) {\n          if (key === \"style\") {\n            for (const [cssKey, cssValue] of Object.entries(value)) {\n              const key2 = camelCaseToHyphenCase(cssKey);\n              if (isObservable(cssValue)) {\n                this._deriveds.push(derivedOpts({ owner: this, debugName: () =\u003e `set.style.${key2}` }, (reader) =\u003e {\n                  this._element.style.setProperty(key2, convertCssValue(cssValue.read(reader)));\n                }));\n              } else {\n                this._element.style.setProperty(key2, convertCssValue(cssValue));\n              }\n            }\n          } else if (key === \"tabIndex\") {\n            if (isObservable(value)) {\n              this._deriveds.push(derived(this, (reader) =\u003e {\n                this._element.tabIndex = value.read(reader);\n              }));\n            } else {\n              this._element.tabIndex = value;\n            }\n          } else if (key.startsWith(\"on\")) {\n            this._element[key] = value;\n          } else {\n            if (isObservable(value)) {\n              this._deriveds.push(derivedOpts({ owner: this, debugName: () =\u003e `set.${key}` }, (reader) =\u003e {\n                setOrRemoveAttribute(this._element, key, value.read(reader));\n              }));\n            } else {\n              setOrRemoveAttribute(this._element, key, value);\n            }\n          }\n        }\n        if (children) {\n          let getChildren = function(reader, children2) {\n            if (isObservable(children2)) {\n              return getChildren(reader, children2.read(reader));\n            }\n            if (Array.isArray(children2)) {\n              return children2.flatMap((c) =\u003e getChildren(reader, c));\n            }\n            if (children2 instanceof _ObserverNode) {\n              if (reader) {\n                children2.readEffect(reader);\n              }\n              return [children2._element];\n            }\n            if (children2) {\n              return [children2];\n            }\n            return [];\n          };\n          const d = derived(this, (reader) =\u003e {\n            this._element.replaceChildren(...getChildren(reader, children));\n          });\n          this._deriveds.push(d);\n          if (!childrenIsObservable(children)) {\n            d.get();\n          }\n        }\n      }\n      readEffect(reader) {\n        for (const d of this._deriveds) {\n          d.read(reader);\n        }\n      }\n      keepUpdated(store) {\n        derived((reader) =\u003e {\n          this.readEffect(reader);\n        }).recomputeInitiallyAndOnChange(store);\n        return this;\n      }\n      /**\n       * Creates a live element that will keep the element updated as long as the returned object is not disposed.\n      */\n      toDisposableLiveElement() {\n        const store = new DisposableStore();\n        this.keepUpdated(store);\n        return new LiveElement(this._element, store);\n      }\n    };\n    LiveElement = class {\n      constructor(element, _disposable) {\n        this.element = element;\n        this._disposable = _disposable;\n      }\n      dispose() {\n        this._disposable.dispose();\n      }\n    };\n    ObserverNodeWithElement = class extends ObserverNode {\n      constructor() {\n        super(...arguments);\n        this._isHovered = void 0;\n        this._didMouseMoveDuringHover = void 0;\n      }\n      get element() {\n        return this._element;\n      }\n      get isHovered() {\n        if (!this._isHovered) {\n          const hovered = observableValue(\"hovered\", false);\n          this._element.addEventListener(\"mouseenter\", (_e) =\u003e hovered.set(true, void 0));\n          this._element.addEventListener(\"mouseleave\", (_e) =\u003e hovered.set(false, void 0));\n          this._isHovered = hovered;\n        }\n        return this._isHovered;\n      }\n      get didMouseMoveDuringHover() {\n        if (!this._didMouseMoveDuringHover) {\n          let _hovering = false;\n          const hovered = observableValue(\"didMouseMoveDuringHover\", false);\n          this._element.addEventListener(\"mouseenter\", (_e) =\u003e {\n            _hovering = true;\n          });\n          this._element.addEventListener(\"mousemove\", (_e) =\u003e {\n            if (_hovering) {\n              hovered.set(true, void 0);\n            }\n          });\n          this._element.addEventListener(\"mouseleave\", (_e) =\u003e {\n            _hovering = false;\n            hovered.set(false, void 0);\n          });\n          this._didMouseMoveDuringHover = hovered;\n        }\n        return this._didMouseMoveDuringHover;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/instantiation.js\nfunction storeServiceDependency(id, target, index) {\n  if (target[_util.DI_TARGET] === target) {\n    target[_util.DI_DEPENDENCIES].push({ id, index });\n  } else {\n    target[_util.DI_DEPENDENCIES] = [{ id, index }];\n    target[_util.DI_TARGET] = target;\n  }\n}\nfunction createDecorator(serviceId) {\n  if (_util.serviceIds.has(serviceId)) {\n    return _util.serviceIds.get(serviceId);\n  }\n  const id = function(target, key, index) {\n    if (arguments.length !== 3) {\n      throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");\n    }\n    storeServiceDependency(id, target, index);\n  };\n  id.toString = () =\u003e serviceId;\n  _util.serviceIds.set(serviceId, id);\n  return id;\n}\nvar _util, IInstantiationService;\nvar init_instantiation = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/instantiation.js\"() {\n    (function(_util2) {\n      _util2.serviceIds = /* @__PURE__ */ new Map();\n      _util2.DI_TARGET = \"$di$target\";\n      _util2.DI_DEPENDENCIES = \"$di$dependencies\";\n      function getServiceDependencies(ctor) {\n        return ctor[_util2.DI_DEPENDENCIES] || [];\n      }\n      _util2.getServiceDependencies = getServiceDependencies;\n    })(_util || (_util = {}));\n    IInstantiationService = createDecorator(\"instantiationService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/codeEditorService.js\nvar ICodeEditorService;\nvar init_codeEditorService = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/codeEditorService.js\"() {\n    init_instantiation();\n    ICodeEditorService = createDecorator(\"codeEditorService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/position.js\nvar Position;\nvar init_position = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/position.js\"() {\n    Position = class _Position {\n      constructor(lineNumber, column) {\n        this.lineNumber = lineNumber;\n        this.column = column;\n      }\n      /**\n       * Create a new position from this position.\n       *\n       * @param newLineNumber new line number\n       * @param newColumn new column\n       */\n      with(newLineNumber = this.lineNumber, newColumn = this.column) {\n        if (newLineNumber === this.lineNumber \u0026\u0026 newColumn === this.column) {\n          return this;\n        } else {\n          return new _Position(newLineNumber, newColumn);\n        }\n      }\n      /**\n       * Derive a new position from this position.\n       *\n       * @param deltaLineNumber line number delta\n       * @param deltaColumn column delta\n       */\n      delta(deltaLineNumber = 0, deltaColumn = 0) {\n        return this.with(Math.max(1, this.lineNumber + deltaLineNumber), Math.max(1, this.column + deltaColumn));\n      }\n      /**\n       * Test if this position equals other position\n       */\n      equals(other) {\n        return _Position.equals(this, other);\n      }\n      /**\n       * Test if position `a` equals position `b`\n       */\n      static equals(a, b) {\n        if (!a \u0026\u0026 !b) {\n          return true;\n        }\n        return !!a \u0026\u0026 !!b \u0026\u0026 a.lineNumber === b.lineNumber \u0026\u0026 a.column === b.column;\n      }\n      /**\n       * Test if this position is before other position.\n       * If the two positions are equal, the result will be false.\n       */\n      isBefore(other) {\n        return _Position.isBefore(this, other);\n      }\n      /**\n       * Test if position `a` is before position `b`.\n       * If the two positions are equal, the result will be false.\n       */\n      static isBefore(a, b) {\n        if (a.lineNumber \u003c b.lineNumber) {\n          return true;\n        }\n        if (b.lineNumber \u003c a.lineNumber) {\n          return false;\n        }\n        return a.column \u003c b.column;\n      }\n      /**\n       * Test if this position is before other position.\n       * If the two positions are equal, the result will be true.\n       */\n      isBeforeOrEqual(other) {\n        return _Position.isBeforeOrEqual(this, other);\n      }\n      /**\n       * Test if position `a` is before position `b`.\n       * If the two positions are equal, the result will be true.\n       */\n      static isBeforeOrEqual(a, b) {\n        if (a.lineNumber \u003c b.lineNumber) {\n          return true;\n        }\n        if (b.lineNumber \u003c a.lineNumber) {\n          return false;\n        }\n        return a.column \u003c= b.column;\n      }\n      /**\n       * A function that compares positions, useful for sorting\n       */\n      static compare(a, b) {\n        const aLineNumber = a.lineNumber | 0;\n        const bLineNumber = b.lineNumber | 0;\n        if (aLineNumber === bLineNumber) {\n          const aColumn = a.column | 0;\n          const bColumn = b.column | 0;\n          return aColumn - bColumn;\n        }\n        return aLineNumber - bLineNumber;\n      }\n      /**\n       * Clone this position.\n       */\n      clone() {\n        return new _Position(this.lineNumber, this.column);\n      }\n      /**\n       * Convert to a human-readable representation.\n       */\n      toString() {\n        return \"(\" + this.lineNumber + \",\" + this.column + \")\";\n      }\n      // ---\n      /**\n       * Create a `Position` from an `IPosition`.\n       */\n      static lift(pos) {\n        return new _Position(pos.lineNumber, pos.column);\n      }\n      /**\n       * Test if `obj` is an `IPosition`.\n       */\n      static isIPosition(obj) {\n        return obj \u0026\u0026 typeof obj.lineNumber === \"number\" \u0026\u0026 typeof obj.column === \"number\";\n      }\n      toJSON() {\n        return {\n          lineNumber: this.lineNumber,\n          column: this.column\n        };\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/model.js\nvar IModelService;\nvar init_model = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/model.js\"() {\n    init_instantiation();\n    IModelService = createDecorator(\"modelService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/resolverService.js\nvar ITextModelService;\nvar init_resolverService = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/resolverService.js\"() {\n    init_instantiation();\n    ITextModelService = createDecorator(\"textModelService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/actions.js\nfunction toAction(props) {\n  return {\n    id: props.id,\n    label: props.label,\n    tooltip: props.tooltip ?? props.label,\n    class: props.class,\n    enabled: props.enabled ?? true,\n    checked: props.checked,\n    run: async (...args) =\u003e props.run(...args)\n  };\n}\nvar Action, ActionRunner, Separator, SubmenuAction, EmptySubmenuAction;\nvar init_actions = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/actions.js\"() {\n    init_event();\n    init_lifecycle();\n    init_nls();\n    Action = class extends Disposable {\n      get onDidChange() {\n        return this._onDidChange.event;\n      }\n      constructor(id, label = \"\", cssClass = \"\", enabled = true, actionCallback) {\n        super();\n        this._onDidChange = this._register(new Emitter());\n        this._enabled = true;\n        this._id = id;\n        this._label = label;\n        this._cssClass = cssClass;\n        this._enabled = enabled;\n        this._actionCallback = actionCallback;\n      }\n      get id() {\n        return this._id;\n      }\n      get label() {\n        return this._label;\n      }\n      set label(value) {\n        this._setLabel(value);\n      }\n      _setLabel(value) {\n        if (this._label !== value) {\n          this._label = value;\n          this._onDidChange.fire({ label: value });\n        }\n      }\n      get tooltip() {\n        return this._tooltip || \"\";\n      }\n      set tooltip(value) {\n        this._setTooltip(value);\n      }\n      _setTooltip(value) {\n        if (this._tooltip !== value) {\n          this._tooltip = value;\n          this._onDidChange.fire({ tooltip: value });\n        }\n      }\n      get class() {\n        return this._cssClass;\n      }\n      set class(value) {\n        this._setClass(value);\n      }\n      _setClass(value) {\n        if (this._cssClass !== value) {\n          this._cssClass = value;\n          this._onDidChange.fire({ class: value });\n        }\n      }\n      get enabled() {\n        return this._enabled;\n      }\n      set enabled(value) {\n        this._setEnabled(value);\n      }\n      _setEnabled(value) {\n        if (this._enabled !== value) {\n          this._enabled = value;\n          this._onDidChange.fire({ enabled: value });\n        }\n      }\n      get checked() {\n        return this._checked;\n      }\n      set checked(value) {\n        this._setChecked(value);\n      }\n      _setChecked(value) {\n        if (this._checked !== value) {\n          this._checked = value;\n          this._onDidChange.fire({ checked: value });\n        }\n      }\n      async run(event, data) {\n        if (this._actionCallback) {\n          await this._actionCallback(event);\n        }\n      }\n    };\n    ActionRunner = class extends Disposable {\n      constructor() {\n        super(...arguments);\n        this._onWillRun = this._register(new Emitter());\n        this._onDidRun = this._register(new Emitter());\n      }\n      get onWillRun() {\n        return this._onWillRun.event;\n      }\n      get onDidRun() {\n        return this._onDidRun.event;\n      }\n      async run(action, context) {\n        if (!action.enabled) {\n          return;\n        }\n        this._onWillRun.fire({ action });\n        let error = void 0;\n        try {\n          await this.runAction(action, context);\n        } catch (e) {\n          error = e;\n        }\n        this._onDidRun.fire({ action, error });\n      }\n      async runAction(action, context) {\n        await action.run(context);\n      }\n    };\n    Separator = class _Separator {\n      constructor() {\n        this.id = _Separator.ID;\n        this.label = \"\";\n        this.tooltip = \"\";\n        this.class = \"separator\";\n        this.enabled = false;\n        this.checked = false;\n      }\n      /**\n       * Joins all non-empty lists of actions with separators.\n       */\n      static join(...actionLists) {\n        let out = [];\n        for (const list2 of actionLists) {\n          if (!list2.length) {\n          } else if (out.length) {\n            out = [...out, new _Separator(), ...list2];\n          } else {\n            out = list2;\n          }\n        }\n        return out;\n      }\n      static {\n        this.ID = \"vs.actions.separator\";\n      }\n      async run() {\n      }\n    };\n    SubmenuAction = class {\n      get actions() {\n        return this._actions;\n      }\n      constructor(id, label, actions, cssClass) {\n        this.tooltip = \"\";\n        this.enabled = true;\n        this.checked = void 0;\n        this.id = id;\n        this.label = label;\n        this.class = cssClass;\n        this._actions = actions;\n      }\n      async run() {\n      }\n    };\n    EmptySubmenuAction = class _EmptySubmenuAction extends Action {\n      static {\n        this.ID = \"vs.actions.empty\";\n      }\n      constructor() {\n        super(_EmptySubmenuAction.ID, localize(28, \"(empty)\"), void 0, false);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/codiconsUtil.js\nfunction register(id, fontCharacter) {\n  if (isString(fontCharacter)) {\n    const val = _codiconFontCharacters[fontCharacter];\n    if (val === void 0) {\n      throw new Error(`${id} references an unknown codicon: ${fontCharacter}`);\n    }\n    fontCharacter = val;\n  }\n  _codiconFontCharacters[id] = fontCharacter;\n  return { id };\n}\nfunction getCodiconFontCharacters() {\n  return _codiconFontCharacters;\n}\nvar _codiconFontCharacters;\nvar init_codiconsUtil = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/codiconsUtil.js\"() {\n    init_types();\n    _codiconFontCharacters = /* @__PURE__ */ Object.create(null);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/codiconsLibrary.js\nvar codiconsLibrary;\nvar init_codiconsLibrary = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/codiconsLibrary.js\"() {\n    init_codiconsUtil();\n    codiconsLibrary = {\n      add: register(\"add\", 6e4),\n      plus: register(\"plus\", 6e4),\n      gistNew: register(\"gist-new\", 6e4),\n      repoCreate: register(\"repo-create\", 6e4),\n      lightbulb: register(\"lightbulb\", 60001),\n      lightBulb: register(\"light-bulb\", 60001),\n      repo: register(\"repo\", 60002),\n      repoDelete: register(\"repo-delete\", 60002),\n      gistFork: register(\"gist-fork\", 60003),\n      repoForked: register(\"repo-forked\", 60003),\n      gitPullRequest: register(\"git-pull-request\", 60004),\n      gitPullRequestAbandoned: register(\"git-pull-request-abandoned\", 60004),\n      recordKeys: register(\"record-keys\", 60005),\n      keyboard: register(\"keyboard\", 60005),\n      tag: register(\"tag\", 60006),\n      gitPullRequestLabel: register(\"git-pull-request-label\", 60006),\n      tagAdd: register(\"tag-add\", 60006),\n      tagRemove: register(\"tag-remove\", 60006),\n      person: register(\"person\", 60007),\n      personFollow: register(\"person-follow\", 60007),\n      personOutline: register(\"person-outline\", 60007),\n      personFilled: register(\"person-filled\", 60007),\n      gitBranch: register(\"git-branch\", 60008),\n      gitBranchCreate: register(\"git-branch-create\", 60008),\n      gitBranchDelete: register(\"git-branch-delete\", 60008),\n      sourceControl: register(\"source-control\", 60008),\n      mirror: register(\"mirror\", 60009),\n      mirrorPublic: register(\"mirror-public\", 60009),\n      star: register(\"star\", 60010),\n      starAdd: register(\"star-add\", 60010),\n      starDelete: register(\"star-delete\", 60010),\n      starEmpty: register(\"star-empty\", 60010),\n      comment: register(\"comment\", 60011),\n      commentAdd: register(\"comment-add\", 60011),\n      alert: register(\"alert\", 60012),\n      warning: register(\"warning\", 60012),\n      search: register(\"search\", 60013),\n      searchSave: register(\"search-save\", 60013),\n      logOut: register(\"log-out\", 60014),\n      signOut: register(\"sign-out\", 60014),\n      logIn: register(\"log-in\", 60015),\n      signIn: register(\"sign-in\", 60015),\n      eye: register(\"eye\", 60016),\n      eyeUnwatch: register(\"eye-unwatch\", 60016),\n      eyeWatch: register(\"eye-watch\", 60016),\n      circleFilled: register(\"circle-filled\", 60017),\n      primitiveDot: register(\"primitive-dot\", 60017),\n      closeDirty: register(\"close-dirty\", 60017),\n      debugBreakpoint: register(\"debug-breakpoint\", 60017),\n      debugBreakpointDisabled: register(\"debug-breakpoint-disabled\", 60017),\n      debugHint: register(\"debug-hint\", 60017),\n      terminalDecorationSuccess: register(\"terminal-decoration-success\", 60017),\n      primitiveSquare: register(\"primitive-square\", 60018),\n      edit: register(\"edit\", 60019),\n      pencil: register(\"pencil\", 60019),\n      info: register(\"info\", 60020),\n      issueOpened: register(\"issue-opened\", 60020),\n      gistPrivate: register(\"gist-private\", 60021),\n      gitForkPrivate: register(\"git-fork-private\", 60021),\n      lock: register(\"lock\", 60021),\n      mirrorPrivate: register(\"mirror-private\", 60021),\n      close: register(\"close\", 60022),\n      removeClose: register(\"remove-close\", 60022),\n      x: register(\"x\", 60022),\n      repoSync: register(\"repo-sync\", 60023),\n      sync: register(\"sync\", 60023),\n      clone: register(\"clone\", 60024),\n      desktopDownload: register(\"desktop-download\", 60024),\n      beaker: register(\"beaker\", 60025),\n      microscope: register(\"microscope\", 60025),\n      vm: register(\"vm\", 60026),\n      deviceDesktop: register(\"device-desktop\", 60026),\n      file: register(\"file\", 60027),\n      fileText: register(\"file-text\", 60027),\n      more: register(\"more\", 60028),\n      ellipsis: register(\"ellipsis\", 60028),\n      kebabHorizontal: register(\"kebab-horizontal\", 60028),\n      mailReply: register(\"mail-reply\", 60029),\n      reply: register(\"reply\", 60029),\n      organization: register(\"organization\", 60030),\n      organizationFilled: register(\"organization-filled\", 60030),\n      organizationOutline: register(\"organization-outline\", 60030),\n      newFile: register(\"new-file\", 60031),\n      fileAdd: register(\"file-add\", 60031),\n      newFolder: register(\"new-folder\", 60032),\n      fileDirectoryCreate: register(\"file-directory-create\", 60032),\n      trash: register(\"trash\", 60033),\n      trashcan: register(\"trashcan\", 60033),\n      history: register(\"history\", 60034),\n      clock: register(\"clock\", 60034),\n      folder: register(\"folder\", 60035),\n      fileDirectory: register(\"file-directory\", 60035),\n      symbolFolder: register(\"symbol-folder\", 60035),\n      logoGithub: register(\"logo-github\", 60036),\n      markGithub: register(\"mark-github\", 60036),\n      github: register(\"github\", 60036),\n      terminal: register(\"terminal\", 60037),\n      console: register(\"console\", 60037),\n      repl: register(\"repl\", 60037),\n      zap: register(\"zap\", 60038),\n      symbolEvent: register(\"symbol-event\", 60038),\n      error: register(\"error\", 60039),\n      stop: register(\"stop\", 60039),\n      variable: register(\"variable\", 60040),\n      symbolVariable: register(\"symbol-variable\", 60040),\n      array: register(\"array\", 60042),\n      symbolArray: register(\"symbol-array\", 60042),\n      symbolModule: register(\"symbol-module\", 60043),\n      symbolPackage: register(\"symbol-package\", 60043),\n      symbolNamespace: register(\"symbol-namespace\", 60043),\n      symbolObject: register(\"symbol-object\", 60043),\n      symbolMethod: register(\"symbol-method\", 60044),\n      symbolFunction: register(\"symbol-function\", 60044),\n      symbolConstructor: register(\"symbol-constructor\", 60044),\n      symbolBoolean: register(\"symbol-boolean\", 60047),\n      symbolNull: register(\"symbol-null\", 60047),\n      symbolNumeric: register(\"symbol-numeric\", 60048),\n      symbolNumber: register(\"symbol-number\", 60048),\n      symbolStructure: register(\"symbol-structure\", 60049),\n      symbolStruct: register(\"symbol-struct\", 60049),\n      symbolParameter: register(\"symbol-parameter\", 60050),\n      symbolTypeParameter: register(\"symbol-type-parameter\", 60050),\n      symbolKey: register(\"symbol-key\", 60051),\n      symbolText: register(\"symbol-text\", 60051),\n      symbolReference: register(\"symbol-reference\", 60052),\n      goToFile: register(\"go-to-file\", 60052),\n      symbolEnum: register(\"symbol-enum\", 60053),\n      symbolValue: register(\"symbol-value\", 60053),\n      symbolRuler: register(\"symbol-ruler\", 60054),\n      symbolUnit: register(\"symbol-unit\", 60054),\n      activateBreakpoints: register(\"activate-breakpoints\", 60055),\n      archive: register(\"archive\", 60056),\n      arrowBoth: register(\"arrow-both\", 60057),\n      arrowDown: register(\"arrow-down\", 60058),\n      arrowLeft: register(\"arrow-left\", 60059),\n      arrowRight: register(\"arrow-right\", 60060),\n      arrowSmallDown: register(\"arrow-small-down\", 60061),\n      arrowSmallLeft: register(\"arrow-small-left\", 60062),\n      arrowSmallRight: register(\"arrow-small-right\", 60063),\n      arrowSmallUp: register(\"arrow-small-up\", 60064),\n      arrowUp: register(\"arrow-up\", 60065),\n      bell: register(\"bell\", 60066),\n      bold: register(\"bold\", 60067),\n      book: register(\"book\", 60068),\n      bookmark: register(\"bookmark\", 60069),\n      debugBreakpointConditionalUnverified: register(\"debug-breakpoint-conditional-unverified\", 60070),\n      debugBreakpointConditional: register(\"debug-breakpoint-conditional\", 60071),\n      debugBreakpointConditionalDisabled: register(\"debug-breakpoint-conditional-disabled\", 60071),\n      debugBreakpointDataUnverified: register(\"debug-breakpoint-data-unverified\", 60072),\n      debugBreakpointData: register(\"debug-breakpoint-data\", 60073),\n      debugBreakpointDataDisabled: register(\"debug-breakpoint-data-disabled\", 60073),\n      debugBreakpointLogUnverified: register(\"debug-breakpoint-log-unverified\", 60074),\n      debugBreakpointLog: register(\"debug-breakpoint-log\", 60075),\n      debugBreakpointLogDisabled: register(\"debug-breakpoint-log-disabled\", 60075),\n      briefcase: register(\"briefcase\", 60076),\n      broadcast: register(\"broadcast\", 60077),\n      browser: register(\"browser\", 60078),\n      bug: register(\"bug\", 60079),\n      calendar: register(\"calendar\", 60080),\n      caseSensitive: register(\"case-sensitive\", 60081),\n      check: register(\"check\", 60082),\n      checklist: register(\"checklist\", 60083),\n      chevronDown: register(\"chevron-down\", 60084),\n      chevronLeft: register(\"chevron-left\", 60085),\n      chevronRight: register(\"chevron-right\", 60086),\n      chevronUp: register(\"chevron-up\", 60087),\n      chromeClose: register(\"chrome-close\", 60088),\n      chromeMaximize: register(\"chrome-maximize\", 60089),\n      chromeMinimize: register(\"chrome-minimize\", 60090),\n      chromeRestore: register(\"chrome-restore\", 60091),\n      circleOutline: register(\"circle-outline\", 60092),\n      circle: register(\"circle\", 60092),\n      debugBreakpointUnverified: register(\"debug-breakpoint-unverified\", 60092),\n      terminalDecorationIncomplete: register(\"terminal-decoration-incomplete\", 60092),\n      circleSlash: register(\"circle-slash\", 60093),\n      circuitBoard: register(\"circuit-board\", 60094),\n      clearAll: register(\"clear-all\", 60095),\n      clippy: register(\"clippy\", 60096),\n      closeAll: register(\"close-all\", 60097),\n      cloudDownload: register(\"cloud-download\", 60098),\n      cloudUpload: register(\"cloud-upload\", 60099),\n      code: register(\"code\", 60100),\n      collapseAll: register(\"collapse-all\", 60101),\n      colorMode: register(\"color-mode\", 60102),\n      commentDiscussion: register(\"comment-discussion\", 60103),\n      creditCard: register(\"credit-card\", 60105),\n      dash: register(\"dash\", 60108),\n      dashboard: register(\"dashboard\", 60109),\n      database: register(\"database\", 60110),\n      debugContinue: register(\"debug-continue\", 60111),\n      debugDisconnect: register(\"debug-disconnect\", 60112),\n      debugPause: register(\"debug-pause\", 60113),\n      debugRestart: register(\"debug-restart\", 60114),\n      debugStart: register(\"debug-start\", 60115),\n      debugStepInto: register(\"debug-step-into\", 60116),\n      debugStepOut: register(\"debug-step-out\", 60117),\n      debugStepOver: register(\"debug-step-over\", 60118),\n      debugStop: register(\"debug-stop\", 60119),\n      debug: register(\"debug\", 60120),\n      deviceCameraVideo: register(\"device-camera-video\", 60121),\n      deviceCamera: register(\"device-camera\", 60122),\n      deviceMobile: register(\"device-mobile\", 60123),\n      diffAdded: register(\"diff-added\", 60124),\n      diffIgnored: register(\"diff-ignored\", 60125),\n      diffModified: register(\"diff-modified\", 60126),\n      diffRemoved: register(\"diff-removed\", 60127),\n      diffRenamed: register(\"diff-renamed\", 60128),\n      diff: register(\"diff\", 60129),\n      diffSidebyside: register(\"diff-sidebyside\", 60129),\n      discard: register(\"discard\", 60130),\n      editorLayout: register(\"editor-layout\", 60131),\n      emptyWindow: register(\"empty-window\", 60132),\n      exclude: register(\"exclude\", 60133),\n      extensions: register(\"extensions\", 60134),\n      eyeClosed: register(\"eye-closed\", 60135),\n      fileBinary: register(\"file-binary\", 60136),\n      fileCode: register(\"file-code\", 60137),\n      fileMedia: register(\"file-media\", 60138),\n      filePdf: register(\"file-pdf\", 60139),\n      fileSubmodule: register(\"file-submodule\", 60140),\n      fileSymlinkDirectory: register(\"file-symlink-directory\", 60141),\n      fileSymlinkFile: register(\"file-symlink-file\", 60142),\n      fileZip: register(\"file-zip\", 60143),\n      files: register(\"files\", 60144),\n      filter: register(\"filter\", 60145),\n      flame: register(\"flame\", 60146),\n      foldDown: register(\"fold-down\", 60147),\n      foldUp: register(\"fold-up\", 60148),\n      fold: register(\"fold\", 60149),\n      folderActive: register(\"folder-active\", 60150),\n      folderOpened: register(\"folder-opened\", 60151),\n      gear: register(\"gear\", 60152),\n      gift: register(\"gift\", 60153),\n      gistSecret: register(\"gist-secret\", 60154),\n      gist: register(\"gist\", 60155),\n      gitCommit: register(\"git-commit\", 60156),\n      gitCompare: register(\"git-compare\", 60157),\n      compareChanges: register(\"compare-changes\", 60157),\n      gitMerge: register(\"git-merge\", 60158),\n      githubAction: register(\"github-action\", 60159),\n      githubAlt: register(\"github-alt\", 60160),\n      globe: register(\"globe\", 60161),\n      grabber: register(\"grabber\", 60162),\n      graph: register(\"graph\", 60163),\n      gripper: register(\"gripper\", 60164),\n      heart: register(\"heart\", 60165),\n      home: register(\"home\", 60166),\n      horizontalRule: register(\"horizontal-rule\", 60167),\n      hubot: register(\"hubot\", 60168),\n      inbox: register(\"inbox\", 60169),\n      issueReopened: register(\"issue-reopened\", 60171),\n      issues: register(\"issues\", 60172),\n      italic: register(\"italic\", 60173),\n      jersey: register(\"jersey\", 60174),\n      json: register(\"json\", 60175),\n      kebabVertical: register(\"kebab-vertical\", 60176),\n      key: register(\"key\", 60177),\n      law: register(\"law\", 60178),\n      lightbulbAutofix: register(\"lightbulb-autofix\", 60179),\n      linkExternal: register(\"link-external\", 60180),\n      link: register(\"link\", 60181),\n      listOrdered: register(\"list-ordered\", 60182),\n      listUnordered: register(\"list-unordered\", 60183),\n      liveShare: register(\"live-share\", 60184),\n      loading: register(\"loading\", 60185),\n      location: register(\"location\", 60186),\n      mailRead: register(\"mail-read\", 60187),\n      mail: register(\"mail\", 60188),\n      markdown: register(\"markdown\", 60189),\n      megaphone: register(\"megaphone\", 60190),\n      mention: register(\"mention\", 60191),\n      milestone: register(\"milestone\", 60192),\n      gitPullRequestMilestone: register(\"git-pull-request-milestone\", 60192),\n      mortarBoard: register(\"mortar-board\", 60193),\n      move: register(\"move\", 60194),\n      multipleWindows: register(\"multiple-windows\", 60195),\n      mute: register(\"mute\", 60196),\n      noNewline: register(\"no-newline\", 60197),\n      note: register(\"note\", 60198),\n      octoface: register(\"octoface\", 60199),\n      openPreview: register(\"open-preview\", 60200),\n      package: register(\"package\", 60201),\n      paintcan: register(\"paintcan\", 60202),\n      pin: register(\"pin\", 60203),\n      play: register(\"play\", 60204),\n      run: register(\"run\", 60204),\n      plug: register(\"plug\", 60205),\n      preserveCase: register(\"preserve-case\", 60206),\n      preview: register(\"preview\", 60207),\n      project: register(\"project\", 60208),\n      pulse: register(\"pulse\", 60209),\n      question: register(\"question\", 60210),\n      quote: register(\"quote\", 60211),\n      radioTower: register(\"radio-tower\", 60212),\n      reactions: register(\"reactions\", 60213),\n      references: register(\"references\", 60214),\n      refresh: register(\"refresh\", 60215),\n      regex: register(\"regex\", 60216),\n      remoteExplorer: register(\"remote-explorer\", 60217),\n      remote: register(\"remote\", 60218),\n      remove: register(\"remove\", 60219),\n      replaceAll: register(\"replace-all\", 60220),\n      replace: register(\"replace\", 60221),\n      repoClone: register(\"repo-clone\", 60222),\n      repoForcePush: register(\"repo-force-push\", 60223),\n      repoPull: register(\"repo-pull\", 60224),\n      repoPush: register(\"repo-push\", 60225),\n      report: register(\"report\", 60226),\n      requestChanges: register(\"request-changes\", 60227),\n      rocket: register(\"rocket\", 60228),\n      rootFolderOpened: register(\"root-folder-opened\", 60229),\n      rootFolder: register(\"root-folder\", 60230),\n      rss: register(\"rss\", 60231),\n      ruby: register(\"ruby\", 60232),\n      saveAll: register(\"save-all\", 60233),\n      saveAs: register(\"save-as\", 60234),\n      save: register(\"save\", 60235),\n      screenFull: register(\"screen-full\", 60236),\n      screenNormal: register(\"screen-normal\", 60237),\n      searchStop: register(\"search-stop\", 60238),\n      server: register(\"server\", 60240),\n      settingsGear: register(\"settings-gear\", 60241),\n      settings: register(\"settings\", 60242),\n      shield: register(\"shield\", 60243),\n      smiley: register(\"smiley\", 60244),\n      sortPrecedence: register(\"sort-precedence\", 60245),\n      splitHorizontal: register(\"split-horizontal\", 60246),\n      splitVertical: register(\"split-vertical\", 60247),\n      squirrel: register(\"squirrel\", 60248),\n      starFull: register(\"star-full\", 60249),\n      starHalf: register(\"star-half\", 60250),\n      symbolClass: register(\"symbol-class\", 60251),\n      symbolColor: register(\"symbol-color\", 60252),\n      symbolConstant: register(\"symbol-constant\", 60253),\n      symbolEnumMember: register(\"symbol-enum-member\", 60254),\n      symbolField: register(\"symbol-field\", 60255),\n      symbolFile: register(\"symbol-file\", 60256),\n      symbolInterface: register(\"symbol-interface\", 60257),\n      symbolKeyword: register(\"symbol-keyword\", 60258),\n      symbolMisc: register(\"symbol-misc\", 60259),\n      symbolOperator: register(\"symbol-operator\", 60260),\n      symbolProperty: register(\"symbol-property\", 60261),\n      wrench: register(\"wrench\", 60261),\n      wrenchSubaction: register(\"wrench-subaction\", 60261),\n      symbolSnippet: register(\"symbol-snippet\", 60262),\n      tasklist: register(\"tasklist\", 60263),\n      telescope: register(\"telescope\", 60264),\n      textSize: register(\"text-size\", 60265),\n      threeBars: register(\"three-bars\", 60266),\n      thumbsdown: register(\"thumbsdown\", 60267),\n      thumbsup: register(\"thumbsup\", 60268),\n      tools: register(\"tools\", 60269),\n      triangleDown: register(\"triangle-down\", 60270),\n      triangleLeft: register(\"triangle-left\", 60271),\n      triangleRight: register(\"triangle-right\", 60272),\n      triangleUp: register(\"triangle-up\", 60273),\n      twitter: register(\"twitter\", 60274),\n      unfold: register(\"unfold\", 60275),\n      unlock: register(\"unlock\", 60276),\n      unmute: register(\"unmute\", 60277),\n      unverified: register(\"unverified\", 60278),\n      verified: register(\"verified\", 60279),\n      versions: register(\"versions\", 60280),\n      vmActive: register(\"vm-active\", 60281),\n      vmOutline: register(\"vm-outline\", 60282),\n      vmRunning: register(\"vm-running\", 60283),\n      watch: register(\"watch\", 60284),\n      whitespace: register(\"whitespace\", 60285),\n      wholeWord: register(\"whole-word\", 60286),\n      window: register(\"window\", 60287),\n      wordWrap: register(\"word-wrap\", 60288),\n      zoomIn: register(\"zoom-in\", 60289),\n      zoomOut: register(\"zoom-out\", 60290),\n      listFilter: register(\"list-filter\", 60291),\n      listFlat: register(\"list-flat\", 60292),\n      listSelection: register(\"list-selection\", 60293),\n      selection: register(\"selection\", 60293),\n      listTree: register(\"list-tree\", 60294),\n      debugBreakpointFunctionUnverified: register(\"debug-breakpoint-function-unverified\", 60295),\n      debugBreakpointFunction: register(\"debug-breakpoint-function\", 60296),\n      debugBreakpointFunctionDisabled: register(\"debug-breakpoint-function-disabled\", 60296),\n      debugStackframeActive: register(\"debug-stackframe-active\", 60297),\n      circleSmallFilled: register(\"circle-small-filled\", 60298),\n      debugStackframeDot: register(\"debug-stackframe-dot\", 60298),\n      terminalDecorationMark: register(\"terminal-decoration-mark\", 60298),\n      debugStackframe: register(\"debug-stackframe\", 60299),\n      debugStackframeFocused: register(\"debug-stackframe-focused\", 60299),\n      debugBreakpointUnsupported: register(\"debug-breakpoint-unsupported\", 60300),\n      symbolString: register(\"symbol-string\", 60301),\n      debugReverseContinue: register(\"debug-reverse-continue\", 60302),\n      debugStepBack: register(\"debug-step-back\", 60303),\n      debugRestartFrame: register(\"debug-restart-frame\", 60304),\n      debugAlt: register(\"debug-alt\", 60305),\n      callIncoming: register(\"call-incoming\", 60306),\n      callOutgoing: register(\"call-outgoing\", 60307),\n      menu: register(\"menu\", 60308),\n      expandAll: register(\"expand-all\", 60309),\n      feedback: register(\"feedback\", 60310),\n      gitPullRequestReviewer: register(\"git-pull-request-reviewer\", 60310),\n      groupByRefType: register(\"group-by-ref-type\", 60311),\n      ungroupByRefType: register(\"ungroup-by-ref-type\", 60312),\n      account: register(\"account\", 60313),\n      gitPullRequestAssignee: register(\"git-pull-request-assignee\", 60313),\n      bellDot: register(\"bell-dot\", 60314),\n      debugConsole: register(\"debug-console\", 60315),\n      library: register(\"library\", 60316),\n      output: register(\"output\", 60317),\n      runAll: register(\"run-all\", 60318),\n      syncIgnored: register(\"sync-ignored\", 60319),\n      pinned: register(\"pinned\", 60320),\n      githubInverted: register(\"github-inverted\", 60321),\n      serverProcess: register(\"server-process\", 60322),\n      serverEnvironment: register(\"server-environment\", 60323),\n      pass: register(\"pass\", 60324),\n      issueClosed: register(\"issue-closed\", 60324),\n      stopCircle: register(\"stop-circle\", 60325),\n      playCircle: register(\"play-circle\", 60326),\n      record: register(\"record\", 60327),\n      debugAltSmall: register(\"debug-alt-small\", 60328),\n      vmConnect: register(\"vm-connect\", 60329),\n      cloud: register(\"cloud\", 60330),\n      merge: register(\"merge\", 60331),\n      export: register(\"export\", 60332),\n      graphLeft: register(\"graph-left\", 60333),\n      magnet: register(\"magnet\", 60334),\n      notebook: register(\"notebook\", 60335),\n      redo: register(\"redo\", 60336),\n      checkAll: register(\"check-all\", 60337),\n      pinnedDirty: register(\"pinned-dirty\", 60338),\n      passFilled: register(\"pass-filled\", 60339),\n      circleLargeFilled: register(\"circle-large-filled\", 60340),\n      circleLarge: register(\"circle-large\", 60341),\n      circleLargeOutline: register(\"circle-large-outline\", 60341),\n      combine: register(\"combine\", 60342),\n      gather: register(\"gather\", 60342),\n      table: register(\"table\", 60343),\n      variableGroup: register(\"variable-group\", 60344),\n      typeHierarchy: register(\"type-hierarchy\", 60345),\n      typeHierarchySub: register(\"type-hierarchy-sub\", 60346),\n      typeHierarchySuper: register(\"type-hierarchy-super\", 60347),\n      gitPullRequestCreate: register(\"git-pull-request-create\", 60348),\n      runAbove: register(\"run-above\", 60349),\n      runBelow: register(\"run-below\", 60350),\n      notebookTemplate: register(\"notebook-template\", 60351),\n      debugRerun: register(\"debug-rerun\", 60352),\n      workspaceTrusted: register(\"workspace-trusted\", 60353),\n      workspaceUntrusted: register(\"workspace-untrusted\", 60354),\n      workspaceUnknown: register(\"workspace-unknown\", 60355),\n      terminalCmd: register(\"terminal-cmd\", 60356),\n      terminalDebian: register(\"terminal-debian\", 60357),\n      terminalLinux: register(\"terminal-linux\", 60358),\n      terminalPowershell: register(\"terminal-powershell\", 60359),\n      terminalTmux: register(\"terminal-tmux\", 60360),\n      terminalUbuntu: register(\"terminal-ubuntu\", 60361),\n      terminalBash: register(\"terminal-bash\", 60362),\n      arrowSwap: register(\"arrow-swap\", 60363),\n      copy: register(\"copy\", 60364),\n      personAdd: register(\"person-add\", 60365),\n      filterFilled: register(\"filter-filled\", 60366),\n      wand: register(\"wand\", 60367),\n      debugLineByLine: register(\"debug-line-by-line\", 60368),\n      inspect: register(\"inspect\", 60369),\n      layers: register(\"layers\", 60370),\n      layersDot: register(\"layers-dot\", 60371),\n      layersActive: register(\"layers-active\", 60372),\n      compass: register(\"compass\", 60373),\n      compassDot: register(\"compass-dot\", 60374),\n      compassActive: register(\"compass-active\", 60375),\n      azure: register(\"azure\", 60376),\n      issueDraft: register(\"issue-draft\", 60377),\n      gitPullRequestClosed: register(\"git-pull-request-closed\", 60378),\n      gitPullRequestDraft: register(\"git-pull-request-draft\", 60379),\n      debugAll: register(\"debug-all\", 60380),\n      debugCoverage: register(\"debug-coverage\", 60381),\n      runErrors: register(\"run-errors\", 60382),\n      folderLibrary: register(\"folder-library\", 60383),\n      debugContinueSmall: register(\"debug-continue-small\", 60384),\n      beakerStop: register(\"beaker-stop\", 60385),\n      graphLine: register(\"graph-line\", 60386),\n      graphScatter: register(\"graph-scatter\", 60387),\n      pieChart: register(\"pie-chart\", 60388),\n      bracket: register(\"bracket\", 60175),\n      bracketDot: register(\"bracket-dot\", 60389),\n      bracketError: register(\"bracket-error\", 60390),\n      lockSmall: register(\"lock-small\", 60391),\n      azureDevops: register(\"azure-devops\", 60392),\n      verifiedFilled: register(\"verified-filled\", 60393),\n      newline: register(\"newline\", 60394),\n      layout: register(\"layout\", 60395),\n      layoutActivitybarLeft: register(\"layout-activitybar-left\", 60396),\n      layoutActivitybarRight: register(\"layout-activitybar-right\", 60397),\n      layoutPanelLeft: register(\"layout-panel-left\", 60398),\n      layoutPanelCenter: register(\"layout-panel-center\", 60399),\n      layoutPanelJustify: register(\"layout-panel-justify\", 60400),\n      layoutPanelRight: register(\"layout-panel-right\", 60401),\n      layoutPanel: register(\"layout-panel\", 60402),\n      layoutSidebarLeft: register(\"layout-sidebar-left\", 60403),\n      layoutSidebarRight: register(\"layout-sidebar-right\", 60404),\n      layoutStatusbar: register(\"layout-statusbar\", 60405),\n      layoutMenubar: register(\"layout-menubar\", 60406),\n      layoutCentered: register(\"layout-centered\", 60407),\n      target: register(\"target\", 60408),\n      indent: register(\"indent\", 60409),\n      recordSmall: register(\"record-small\", 60410),\n      errorSmall: register(\"error-small\", 60411),\n      terminalDecorationError: register(\"terminal-decoration-error\", 60411),\n      arrowCircleDown: register(\"arrow-circle-down\", 60412),\n      arrowCircleLeft: register(\"arrow-circle-left\", 60413),\n      arrowCircleRight: register(\"arrow-circle-right\", 60414),\n      arrowCircleUp: register(\"arrow-circle-up\", 60415),\n      layoutSidebarRightOff: register(\"layout-sidebar-right-off\", 60416),\n      layoutPanelOff: register(\"layout-panel-off\", 60417),\n      layoutSidebarLeftOff: register(\"layout-sidebar-left-off\", 60418),\n      blank: register(\"blank\", 60419),\n      heartFilled: register(\"heart-filled\", 60420),\n      map: register(\"map\", 60421),\n      mapHorizontal: register(\"map-horizontal\", 60421),\n      foldHorizontal: register(\"fold-horizontal\", 60421),\n      mapFilled: register(\"map-filled\", 60422),\n      mapHorizontalFilled: register(\"map-horizontal-filled\", 60422),\n      foldHorizontalFilled: register(\"fold-horizontal-filled\", 60422),\n      circleSmall: register(\"circle-small\", 60423),\n      bellSlash: register(\"bell-slash\", 60424),\n      bellSlashDot: register(\"bell-slash-dot\", 60425),\n      commentUnresolved: register(\"comment-unresolved\", 60426),\n      gitPullRequestGoToChanges: register(\"git-pull-request-go-to-changes\", 60427),\n      gitPullRequestNewChanges: register(\"git-pull-request-new-changes\", 60428),\n      searchFuzzy: register(\"search-fuzzy\", 60429),\n      commentDraft: register(\"comment-draft\", 60430),\n      send: register(\"send\", 60431),\n      sparkle: register(\"sparkle\", 60432),\n      insert: register(\"insert\", 60433),\n      mic: register(\"mic\", 60434),\n      thumbsdownFilled: register(\"thumbsdown-filled\", 60435),\n      thumbsupFilled: register(\"thumbsup-filled\", 60436),\n      coffee: register(\"coffee\", 60437),\n      snake: register(\"snake\", 60438),\n      game: register(\"game\", 60439),\n      vr: register(\"vr\", 60440),\n      chip: register(\"chip\", 60441),\n      piano: register(\"piano\", 60442),\n      music: register(\"music\", 60443),\n      micFilled: register(\"mic-filled\", 60444),\n      repoFetch: register(\"repo-fetch\", 60445),\n      copilot: register(\"copilot\", 60446),\n      lightbulbSparkle: register(\"lightbulb-sparkle\", 60447),\n      robot: register(\"robot\", 60448),\n      sparkleFilled: register(\"sparkle-filled\", 60449),\n      diffSingle: register(\"diff-single\", 60450),\n      diffMultiple: register(\"diff-multiple\", 60451),\n      surroundWith: register(\"surround-with\", 60452),\n      share: register(\"share\", 60453),\n      gitStash: register(\"git-stash\", 60454),\n      gitStashApply: register(\"git-stash-apply\", 60455),\n      gitStashPop: register(\"git-stash-pop\", 60456),\n      vscode: register(\"vscode\", 60457),\n      vscodeInsiders: register(\"vscode-insiders\", 60458),\n      codeOss: register(\"code-oss\", 60459),\n      runCoverage: register(\"run-coverage\", 60460),\n      runAllCoverage: register(\"run-all-coverage\", 60461),\n      coverage: register(\"coverage\", 60462),\n      githubProject: register(\"github-project\", 60463),\n      mapVertical: register(\"map-vertical\", 60464),\n      foldVertical: register(\"fold-vertical\", 60464),\n      mapVerticalFilled: register(\"map-vertical-filled\", 60465),\n      foldVerticalFilled: register(\"fold-vertical-filled\", 60465),\n      goToSearch: register(\"go-to-search\", 60466),\n      percentage: register(\"percentage\", 60467),\n      sortPercentage: register(\"sort-percentage\", 60467),\n      attach: register(\"attach\", 60468),\n      goToEditingSession: register(\"go-to-editing-session\", 60469),\n      editSession: register(\"edit-session\", 60470),\n      codeReview: register(\"code-review\", 60471),\n      copilotWarning: register(\"copilot-warning\", 60472),\n      python: register(\"python\", 60473),\n      copilotLarge: register(\"copilot-large\", 60474),\n      copilotWarningLarge: register(\"copilot-warning-large\", 60475),\n      keyboardTab: register(\"keyboard-tab\", 60476),\n      copilotBlocked: register(\"copilot-blocked\", 60477),\n      copilotNotConnected: register(\"copilot-not-connected\", 60478),\n      flag: register(\"flag\", 60479),\n      lightbulbEmpty: register(\"lightbulb-empty\", 60480),\n      symbolMethodArrow: register(\"symbol-method-arrow\", 60481),\n      copilotUnavailable: register(\"copilot-unavailable\", 60482),\n      repoPinned: register(\"repo-pinned\", 60483),\n      keyboardTabAbove: register(\"keyboard-tab-above\", 60484),\n      keyboardTabBelow: register(\"keyboard-tab-below\", 60485),\n      gitPullRequestDone: register(\"git-pull-request-done\", 60486),\n      mcp: register(\"mcp\", 60487),\n      extensionsLarge: register(\"extensions-large\", 60488),\n      layoutPanelDock: register(\"layout-panel-dock\", 60489),\n      layoutSidebarLeftDock: register(\"layout-sidebar-left-dock\", 60490),\n      layoutSidebarRightDock: register(\"layout-sidebar-right-dock\", 60491),\n      copilotInProgress: register(\"copilot-in-progress\", 60492),\n      copilotError: register(\"copilot-error\", 60493),\n      copilotSuccess: register(\"copilot-success\", 60494),\n      chatSparkle: register(\"chat-sparkle\", 60495),\n      searchSparkle: register(\"search-sparkle\", 60496),\n      editSparkle: register(\"edit-sparkle\", 60497),\n      copilotSnooze: register(\"copilot-snooze\", 60498),\n      sendToRemoteAgent: register(\"send-to-remote-agent\", 60499),\n      commentDiscussionSparkle: register(\"comment-discussion-sparkle\", 60500),\n      chatSparkleWarning: register(\"chat-sparkle-warning\", 60501),\n      chatSparkleError: register(\"chat-sparkle-error\", 60502)\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/codicons.js\nvar codiconsDerived, Codicon;\nvar init_codicons = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/codicons.js\"() {\n    init_codiconsUtil();\n    init_codiconsLibrary();\n    codiconsDerived = {\n      dialogError: register(\"dialog-error\", \"error\"),\n      dialogWarning: register(\"dialog-warning\", \"warning\"),\n      dialogInfo: register(\"dialog-info\", \"info\"),\n      dialogClose: register(\"dialog-close\", \"close\"),\n      treeItemExpanded: register(\"tree-item-expanded\", \"chevron-down\"),\n      // collapsed is done with rotation\n      treeFilterOnTypeOn: register(\"tree-filter-on-type-on\", \"list-filter\"),\n      treeFilterOnTypeOff: register(\"tree-filter-on-type-off\", \"list-selection\"),\n      treeFilterClear: register(\"tree-filter-clear\", \"close\"),\n      treeItemLoading: register(\"tree-item-loading\", \"loading\"),\n      menuSelection: register(\"menu-selection\", \"check\"),\n      menuSubmenu: register(\"menu-submenu\", \"chevron-right\"),\n      menuBarMore: register(\"menubar-more\", \"more\"),\n      scrollbarButtonLeft: register(\"scrollbar-button-left\", \"triangle-left\"),\n      scrollbarButtonRight: register(\"scrollbar-button-right\", \"triangle-right\"),\n      scrollbarButtonUp: register(\"scrollbar-button-up\", \"triangle-up\"),\n      scrollbarButtonDown: register(\"scrollbar-button-down\", \"triangle-down\"),\n      toolBarMore: register(\"toolbar-more\", \"more\"),\n      quickInputBack: register(\"quick-input-back\", \"arrow-left\"),\n      dropDownButton: register(\"drop-down-button\", 60084),\n      symbolCustomColor: register(\"symbol-customcolor\", 60252),\n      exportIcon: register(\"export\", 60332),\n      workspaceUnspecified: register(\"workspace-unspecified\", 60355),\n      newLine: register(\"newline\", 60394),\n      thumbsDownFilled: register(\"thumbsdown-filled\", 60435),\n      thumbsUpFilled: register(\"thumbsup-filled\", 60436),\n      gitFetch: register(\"git-fetch\", 60445),\n      lightbulbSparkleAutofix: register(\"lightbulb-sparkle-autofix\", 60447),\n      debugBreakpointPending: register(\"debug-breakpoint-pending\", 60377)\n    };\n    Codicon = {\n      ...codiconsLibrary,\n      ...codiconsDerived\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/themables.js\nvar ThemeColor, ThemeIcon;\nvar init_themables = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/themables.js\"() {\n    init_codicons();\n    (function(ThemeColor2) {\n      function isThemeColor(obj) {\n        return !!obj \u0026\u0026 typeof obj === \"object\" \u0026\u0026 typeof obj.id === \"string\";\n      }\n      ThemeColor2.isThemeColor = isThemeColor;\n    })(ThemeColor || (ThemeColor = {}));\n    (function(ThemeIcon2) {\n      ThemeIcon2.iconNameSegment = \"[A-Za-z0-9]+\";\n      ThemeIcon2.iconNameExpression = \"[A-Za-z0-9-]+\";\n      ThemeIcon2.iconModifierExpression = \"~[A-Za-z]+\";\n      ThemeIcon2.iconNameCharacter = \"[A-Za-z0-9~-]\";\n      const ThemeIconIdRegex = new RegExp(`^(${ThemeIcon2.iconNameExpression})(${ThemeIcon2.iconModifierExpression})?$`);\n      function asClassNameArray(icon) {\n        const match2 = ThemeIconIdRegex.exec(icon.id);\n        if (!match2) {\n          return asClassNameArray(Codicon.error);\n        }\n        const [, id, modifier] = match2;\n        const classNames2 = [\"codicon\", \"codicon-\" + id];\n        if (modifier) {\n          classNames2.push(\"codicon-modifier-\" + modifier.substring(1));\n        }\n        return classNames2;\n      }\n      ThemeIcon2.asClassNameArray = asClassNameArray;\n      function asClassName(icon) {\n        return asClassNameArray(icon).join(\" \");\n      }\n      ThemeIcon2.asClassName = asClassName;\n      function asCSSSelector(icon) {\n        return \".\" + asClassNameArray(icon).join(\".\");\n      }\n      ThemeIcon2.asCSSSelector = asCSSSelector;\n      function isThemeIcon(obj) {\n        return !!obj \u0026\u0026 typeof obj === \"object\" \u0026\u0026 typeof obj.id === \"string\" \u0026\u0026 (typeof obj.color === \"undefined\" || ThemeColor.isThemeColor(obj.color));\n      }\n      ThemeIcon2.isThemeIcon = isThemeIcon;\n      const _regexFromString = new RegExp(`^\\\\$\\\\((${ThemeIcon2.iconNameExpression}(?:${ThemeIcon2.iconModifierExpression})?)\\\\)$`);\n      function fromString(str) {\n        const match2 = _regexFromString.exec(str);\n        if (!match2) {\n          return void 0;\n        }\n        const [, name] = match2;\n        return { id: name };\n      }\n      ThemeIcon2.fromString = fromString;\n      function fromId(id) {\n        return { id };\n      }\n      ThemeIcon2.fromId = fromId;\n      function modify(icon, modifier) {\n        let id = icon.id;\n        const tildeIndex = id.lastIndexOf(\"~\");\n        if (tildeIndex !== -1) {\n          id = id.substring(0, tildeIndex);\n        }\n        if (modifier) {\n          id = `${id}~${modifier}`;\n        }\n        return { id };\n      }\n      ThemeIcon2.modify = modify;\n      function getModifier(icon) {\n        const tildeIndex = icon.id.lastIndexOf(\"~\");\n        if (tildeIndex !== -1) {\n          return icon.id.substring(tildeIndex + 1);\n        }\n        return void 0;\n      }\n      ThemeIcon2.getModifier = getModifier;\n      function isEqual2(ti1, ti2) {\n        return ti1.id === ti2.id \u0026\u0026 ti1.color?.id === ti2.color?.id;\n      }\n      ThemeIcon2.isEqual = isEqual2;\n    })(ThemeIcon || (ThemeIcon = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/commands/common/commands.js\nvar ICommandService, CommandsRegistry;\nvar init_commands = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/commands/common/commands.js\"() {\n    init_event();\n    init_iterator();\n    init_lifecycle();\n    init_linkedList();\n    init_types();\n    init_instantiation();\n    ICommandService = createDecorator(\"commandService\");\n    CommandsRegistry = new class {\n      constructor() {\n        this._commands = /* @__PURE__ */ new Map();\n        this._onDidRegisterCommand = new Emitter();\n        this.onDidRegisterCommand = this._onDidRegisterCommand.event;\n      }\n      registerCommand(idOrCommand, handler) {\n        if (!idOrCommand) {\n          throw new Error(`invalid command`);\n        }\n        if (typeof idOrCommand === \"string\") {\n          if (!handler) {\n            throw new Error(`invalid command`);\n          }\n          return this.registerCommand({ id: idOrCommand, handler });\n        }\n        if (idOrCommand.metadata \u0026\u0026 Array.isArray(idOrCommand.metadata.args)) {\n          const constraints = [];\n          for (const arg of idOrCommand.metadata.args) {\n            constraints.push(arg.constraint);\n          }\n          const actualHandler = idOrCommand.handler;\n          idOrCommand.handler = function(accessor, ...args) {\n            validateConstraints(args, constraints);\n            return actualHandler(accessor, ...args);\n          };\n        }\n        const { id } = idOrCommand;\n        let commands = this._commands.get(id);\n        if (!commands) {\n          commands = new LinkedList();\n          this._commands.set(id, commands);\n        }\n        const removeFn = commands.unshift(idOrCommand);\n        const ret = toDisposable(() =\u003e {\n          removeFn();\n          const command = this._commands.get(id);\n          if (command?.isEmpty()) {\n            this._commands.delete(id);\n          }\n        });\n        this._onDidRegisterCommand.fire(id);\n        return markAsSingleton(ret);\n      }\n      registerCommandAlias(oldId, newId) {\n        return CommandsRegistry.registerCommand(oldId, (accessor, ...args) =\u003e accessor.get(ICommandService).executeCommand(newId, ...args));\n      }\n      getCommand(id) {\n        const list2 = this._commands.get(id);\n        if (!list2 || list2.isEmpty()) {\n          return void 0;\n        }\n        return Iterable.first(list2);\n      }\n      getCommands() {\n        const result = /* @__PURE__ */ new Map();\n        for (const key of this._commands.keys()) {\n          const command = this.getCommand(key);\n          if (command) {\n            result.set(key, command);\n          }\n        }\n        return result;\n      }\n    }();\n    CommandsRegistry.registerCommand(\"noop\", () =\u003e {\n    });\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextkey/common/scanner.js\nfunction hintDidYouMean(...meant) {\n  switch (meant.length) {\n    case 1:\n      return localize(1676, \"Did you mean {0}?\", meant[0]);\n    case 2:\n      return localize(1677, \"Did you mean {0} or {1}?\", meant[0], meant[1]);\n    case 3:\n      return localize(1678, \"Did you mean {0}, {1} or {2}?\", meant[0], meant[1], meant[2]);\n    default:\n      return void 0;\n  }\n}\nvar hintDidYouForgetToOpenOrCloseQuote, hintDidYouForgetToEscapeSlash, Scanner;\nvar init_scanner = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextkey/common/scanner.js\"() {\n    init_errors();\n    init_nls();\n    hintDidYouForgetToOpenOrCloseQuote = localize(1679, \"Did you forget to open or close the quote?\");\n    hintDidYouForgetToEscapeSlash = localize(1680, \"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\\\\\/'.\");\n    Scanner = class _Scanner {\n      constructor() {\n        this._input = \"\";\n        this._start = 0;\n        this._current = 0;\n        this._tokens = [];\n        this._errors = [];\n        this.stringRe = /[a-zA-Z0-9_\u003c\u003e\\-\\./\\\\:\\*\\?\\+\\[\\]\\^,#@;\"%\\$\\p{L}-]+/uy;\n      }\n      static getLexeme(token) {\n        switch (token.type) {\n          case 0:\n            return \"(\";\n          case 1:\n            return \")\";\n          case 2:\n            return \"!\";\n          case 3:\n            return token.isTripleEq ? \"===\" : \"==\";\n          case 4:\n            return token.isTripleEq ? \"!==\" : \"!=\";\n          case 5:\n            return \"\u003c\";\n          case 6:\n            return \"\u003c=\";\n          case 7:\n            return \"\u003e=\";\n          case 8:\n            return \"\u003e=\";\n          case 9:\n            return \"=~\";\n          case 10:\n            return token.lexeme;\n          case 11:\n            return \"true\";\n          case 12:\n            return \"false\";\n          case 13:\n            return \"in\";\n          case 14:\n            return \"not\";\n          case 15:\n            return \"\u0026\u0026\";\n          case 16:\n            return \"||\";\n          case 17:\n            return token.lexeme;\n          case 18:\n            return token.lexeme;\n          case 19:\n            return token.lexeme;\n          case 20:\n            return \"EOF\";\n          default:\n            throw illegalState(`unhandled token type: ${JSON.stringify(token)}; have you forgotten to add a case?`);\n        }\n      }\n      static {\n        this._regexFlags = new Set([\"i\", \"g\", \"s\", \"m\", \"y\", \"u\"].map((ch) =\u003e ch.charCodeAt(0)));\n      }\n      static {\n        this._keywords = /* @__PURE__ */ new Map([\n          [\n            \"not\",\n            14\n            /* TokenType.Not */\n          ],\n          [\n            \"in\",\n            13\n            /* TokenType.In */\n          ],\n          [\n            \"false\",\n            12\n            /* TokenType.False */\n          ],\n          [\n            \"true\",\n            11\n            /* TokenType.True */\n          ]\n        ]);\n      }\n      reset(value) {\n        this._input = value;\n        this._start = 0;\n        this._current = 0;\n        this._tokens = [];\n        this._errors = [];\n        return this;\n      }\n      scan() {\n        while (!this._isAtEnd()) {\n          this._start = this._current;\n          const ch = this._advance();\n          switch (ch) {\n            case 40:\n              this._addToken(\n                0\n                /* TokenType.LParen */\n              );\n              break;\n            case 41:\n              this._addToken(\n                1\n                /* TokenType.RParen */\n              );\n              break;\n            case 33:\n              if (this._match(\n                61\n                /* CharCode.Equals */\n              )) {\n                const isTripleEq = this._match(\n                  61\n                  /* CharCode.Equals */\n                );\n                this._tokens.push({ type: 4, offset: this._start, isTripleEq });\n              } else {\n                this._addToken(\n                  2\n                  /* TokenType.Neg */\n                );\n              }\n              break;\n            case 39:\n              this._quotedString();\n              break;\n            case 47:\n              this._regex();\n              break;\n            case 61:\n              if (this._match(\n                61\n                /* CharCode.Equals */\n              )) {\n                const isTripleEq = this._match(\n                  61\n                  /* CharCode.Equals */\n                );\n                this._tokens.push({ type: 3, offset: this._start, isTripleEq });\n              } else if (this._match(\n                126\n                /* CharCode.Tilde */\n              )) {\n                this._addToken(\n                  9\n                  /* TokenType.RegexOp */\n                );\n              } else {\n                this._error(hintDidYouMean(\"==\", \"=~\"));\n              }\n              break;\n            case 60:\n              this._addToken(\n                this._match(\n                  61\n                  /* CharCode.Equals */\n                ) ? 6 : 5\n                /* TokenType.Lt */\n              );\n              break;\n            case 62:\n              this._addToken(\n                this._match(\n                  61\n                  /* CharCode.Equals */\n                ) ? 8 : 7\n                /* TokenType.Gt */\n              );\n              break;\n            case 38:\n              if (this._match(\n                38\n                /* CharCode.Ampersand */\n              )) {\n                this._addToken(\n                  15\n                  /* TokenType.And */\n                );\n              } else {\n                this._error(hintDidYouMean(\"\u0026\u0026\"));\n              }\n              break;\n            case 124:\n              if (this._match(\n                124\n                /* CharCode.Pipe */\n              )) {\n                this._addToken(\n                  16\n                  /* TokenType.Or */\n                );\n              } else {\n                this._error(hintDidYouMean(\"||\"));\n              }\n              break;\n            // TODO@ulugbekna: 1) rewrite using a regex 2) reconsider what characters are considered whitespace, including unicode, nbsp, etc.\n            case 32:\n            case 13:\n            case 9:\n            case 10:\n            case 160:\n              break;\n            default:\n              this._string();\n          }\n        }\n        this._start = this._current;\n        this._addToken(\n          20\n          /* TokenType.EOF */\n        );\n        return Array.from(this._tokens);\n      }\n      _match(expected) {\n        if (this._isAtEnd()) {\n          return false;\n        }\n        if (this._input.charCodeAt(this._current) !== expected) {\n          return false;\n        }\n        this._current++;\n        return true;\n      }\n      _advance() {\n        return this._input.charCodeAt(this._current++);\n      }\n      _peek() {\n        return this._isAtEnd() ? 0 : this._input.charCodeAt(this._current);\n      }\n      _addToken(type) {\n        this._tokens.push({ type, offset: this._start });\n      }\n      _error(additional) {\n        const offset = this._start;\n        const lexeme = this._input.substring(this._start, this._current);\n        const errToken = { type: 19, offset: this._start, lexeme };\n        this._errors.push({ offset, lexeme, additionalInfo: additional });\n        this._tokens.push(errToken);\n      }\n      _string() {\n        this.stringRe.lastIndex = this._start;\n        const match2 = this.stringRe.exec(this._input);\n        if (match2) {\n          this._current = this._start + match2[0].length;\n          const lexeme = this._input.substring(this._start, this._current);\n          const keyword = _Scanner._keywords.get(lexeme);\n          if (keyword) {\n            this._addToken(keyword);\n          } else {\n            this._tokens.push({ type: 17, lexeme, offset: this._start });\n          }\n        }\n      }\n      // captures the lexeme without the leading and trailing '\n      _quotedString() {\n        while (this._peek() !== 39 \u0026\u0026 !this._isAtEnd()) {\n          this._advance();\n        }\n        if (this._isAtEnd()) {\n          this._error(hintDidYouForgetToOpenOrCloseQuote);\n          return;\n        }\n        this._advance();\n        this._tokens.push({ type: 18, lexeme: this._input.substring(this._start + 1, this._current - 1), offset: this._start + 1 });\n      }\n      /*\n       * Lexing a regex expression: /.../[igsmyu]*\n       * Based on https://github.com/microsoft/TypeScript/blob/9247ef115e617805983740ba795d7a8164babf89/src/compiler/scanner.ts#L2129-L2181\n       *\n       * Note that we want slashes within a regex to be escaped, e.g., /file:\\\\/\\\\/\\\\// should match `file:///`\n       */\n      _regex() {\n        let p = this._current;\n        let inEscape = false;\n        let inCharacterClass = false;\n        while (true) {\n          if (p \u003e= this._input.length) {\n            this._current = p;\n            this._error(hintDidYouForgetToEscapeSlash);\n            return;\n          }\n          const ch = this._input.charCodeAt(p);\n          if (inEscape) {\n            inEscape = false;\n          } else if (ch === 47 \u0026\u0026 !inCharacterClass) {\n            p++;\n            break;\n          } else if (ch === 91) {\n            inCharacterClass = true;\n          } else if (ch === 92) {\n            inEscape = true;\n          } else if (ch === 93) {\n            inCharacterClass = false;\n          }\n          p++;\n        }\n        while (p \u003c this._input.length \u0026\u0026 _Scanner._regexFlags.has(this._input.charCodeAt(p))) {\n          p++;\n        }\n        this._current = p;\n        const lexeme = this._input.substring(this._start, this._current);\n        this._tokens.push({ type: 10, lexeme, offset: this._start });\n      }\n      _isAtEnd() {\n        return this._current \u003e= this._input.length;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextkey/common/contextkey.js\nfunction expressionsAreEqualWithConstantSubstitution(a, b) {\n  const aExpr = a ? a.substituteConstants() : void 0;\n  const bExpr = b ? b.substituteConstants() : void 0;\n  if (!aExpr \u0026\u0026 !bExpr) {\n    return true;\n  }\n  if (!aExpr || !bExpr) {\n    return false;\n  }\n  return aExpr.equals(bExpr);\n}\nfunction cmp(a, b) {\n  return a.cmp(b);\n}\nfunction withFloatOrStr(value, callback) {\n  if (typeof value === \"string\") {\n    const n2 = parseFloat(value);\n    if (!isNaN(n2)) {\n      value = n2;\n    }\n  }\n  if (typeof value === \"string\" || typeof value === \"number\") {\n    return callback(value);\n  }\n  return ContextKeyFalseExpr.INSTANCE;\n}\nfunction eliminateConstantsInArray(arr) {\n  let newArr = null;\n  for (let i2 = 0, len = arr.length; i2 \u003c len; i2++) {\n    const newExpr = arr[i2].substituteConstants();\n    if (arr[i2] !== newExpr) {\n      if (newArr === null) {\n        newArr = [];\n        for (let j = 0; j \u003c i2; j++) {\n          newArr[j] = arr[j];\n        }\n      }\n    }\n    if (newArr !== null) {\n      newArr[i2] = newExpr;\n    }\n  }\n  if (newArr === null) {\n    return arr;\n  }\n  return newArr;\n}\nfunction cmp1(key1, key2) {\n  if (key1 \u003c key2) {\n    return -1;\n  }\n  if (key1 \u003e key2) {\n    return 1;\n  }\n  return 0;\n}\nfunction cmp2(key1, value1, key2, value2) {\n  if (key1 \u003c key2) {\n    return -1;\n  }\n  if (key1 \u003e key2) {\n    return 1;\n  }\n  if (value1 \u003c value2) {\n    return -1;\n  }\n  if (value1 \u003e value2) {\n    return 1;\n  }\n  return 0;\n}\nfunction implies(p, q) {\n  if (p.type === 0 || q.type === 1) {\n    return true;\n  }\n  if (p.type === 9) {\n    if (q.type === 9) {\n      return allElementsIncluded(p.expr, q.expr);\n    }\n    return false;\n  }\n  if (q.type === 9) {\n    for (const element of q.expr) {\n      if (implies(p, element)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  if (p.type === 6) {\n    if (q.type === 6) {\n      return allElementsIncluded(q.expr, p.expr);\n    }\n    for (const element of p.expr) {\n      if (implies(element, q)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  return p.equals(q);\n}\nfunction allElementsIncluded(p, q) {\n  let pIndex = 0;\n  let qIndex = 0;\n  while (pIndex \u003c p.length \u0026\u0026 qIndex \u003c q.length) {\n    const cmp3 = p[pIndex].cmp(q[qIndex]);\n    if (cmp3 \u003c 0) {\n      return false;\n    } else if (cmp3 === 0) {\n      pIndex++;\n      qIndex++;\n    } else {\n      qIndex++;\n    }\n  }\n  return pIndex === p.length;\n}\nfunction getTerminals(node) {\n  if (node.type === 9) {\n    return node.expr;\n  }\n  return [node];\n}\nvar CONSTANT_VALUES, hasOwnProperty, defaultConfig, errorEmptyString, hintEmptyString, errorNoInAfterNot, errorClosingParenthesis, errorUnexpectedToken, hintUnexpectedToken, errorUnexpectedEOF, hintUnexpectedEOF, Parser, ContextKeyExpr, ContextKeyFalseExpr, ContextKeyTrueExpr, ContextKeyDefinedExpr, ContextKeyEqualsExpr, ContextKeyInExpr, ContextKeyNotInExpr, ContextKeyNotEqualsExpr, ContextKeyNotExpr, ContextKeyGreaterExpr, ContextKeyGreaterEqualsExpr, ContextKeySmallerExpr, ContextKeySmallerEqualsExpr, ContextKeyRegexExpr, ContextKeyNotRegexExpr, ContextKeyAndExpr, ContextKeyOrExpr, RawContextKey, IContextKeyService;\nvar init_contextkey = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextkey/common/contextkey.js\"() {\n    init_platform();\n    init_strings();\n    init_scanner();\n    init_instantiation();\n    init_nls();\n    CONSTANT_VALUES = /* @__PURE__ */ new Map();\n    CONSTANT_VALUES.set(\"false\", false);\n    CONSTANT_VALUES.set(\"true\", true);\n    CONSTANT_VALUES.set(\"isMac\", isMacintosh);\n    CONSTANT_VALUES.set(\"isLinux\", isLinux);\n    CONSTANT_VALUES.set(\"isWindows\", isWindows);\n    CONSTANT_VALUES.set(\"isWeb\", isWeb);\n    CONSTANT_VALUES.set(\"isMacNative\", isMacintosh \u0026\u0026 !isWeb);\n    CONSTANT_VALUES.set(\"isEdge\", isEdge);\n    CONSTANT_VALUES.set(\"isFirefox\", isFirefox2);\n    CONSTANT_VALUES.set(\"isChrome\", isChrome2);\n    CONSTANT_VALUES.set(\"isSafari\", isSafari2);\n    hasOwnProperty = Object.prototype.hasOwnProperty;\n    defaultConfig = {\n      regexParsingWithErrorRecovery: true\n    };\n    errorEmptyString = localize(1657, \"Empty context key expression\");\n    hintEmptyString = localize(1658, \"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively.\");\n    errorNoInAfterNot = localize(1659, \"'in' after 'not'.\");\n    errorClosingParenthesis = localize(1660, \"closing parenthesis ')'\");\n    errorUnexpectedToken = localize(1661, \"Unexpected token\");\n    hintUnexpectedToken = localize(1662, \"Did you forget to put \u0026\u0026 or || before the token?\");\n    errorUnexpectedEOF = localize(1663, \"Unexpected end of expression\");\n    hintUnexpectedEOF = localize(1664, \"Did you forget to put a context key?\");\n    Parser = class _Parser2 {\n      static {\n        this._parseError = new Error();\n      }\n      constructor(_config = defaultConfig) {\n        this._config = _config;\n        this._scanner = new Scanner();\n        this._tokens = [];\n        this._current = 0;\n        this._parsingErrors = [];\n        this._flagsGYRe = /g|y/g;\n      }\n      /**\n       * Parse a context key expression.\n       *\n       * @param input the expression to parse\n       * @returns the parsed expression or `undefined` if there's an error - call `lexingErrors` and `parsingErrors` to see the errors\n       */\n      parse(input) {\n        if (input === \"\") {\n          this._parsingErrors.push({ message: errorEmptyString, offset: 0, lexeme: \"\", additionalInfo: hintEmptyString });\n          return void 0;\n        }\n        this._tokens = this._scanner.reset(input).scan();\n        this._current = 0;\n        this._parsingErrors = [];\n        try {\n          const expr = this._expr();\n          if (!this._isAtEnd()) {\n            const peek = this._peek();\n            const additionalInfo = peek.type === 17 ? hintUnexpectedToken : void 0;\n            this._parsingErrors.push({ message: errorUnexpectedToken, offset: peek.offset, lexeme: Scanner.getLexeme(peek), additionalInfo });\n            throw _Parser2._parseError;\n          }\n          return expr;\n        } catch (e) {\n          if (!(e === _Parser2._parseError)) {\n            throw e;\n          }\n          return void 0;\n        }\n      }\n      _expr() {\n        return this._or();\n      }\n      _or() {\n        const expr = [this._and()];\n        while (this._matchOne(\n          16\n          /* TokenType.Or */\n        )) {\n          const right = this._and();\n          expr.push(right);\n        }\n        return expr.length === 1 ? expr[0] : ContextKeyExpr.or(...expr);\n      }\n      _and() {\n        const expr = [this._term()];\n        while (this._matchOne(\n          15\n          /* TokenType.And */\n        )) {\n          const right = this._term();\n          expr.push(right);\n        }\n        return expr.length === 1 ? expr[0] : ContextKeyExpr.and(...expr);\n      }\n      _term() {\n        if (this._matchOne(\n          2\n          /* TokenType.Neg */\n        )) {\n          const peek = this._peek();\n          switch (peek.type) {\n            case 11:\n              this._advance();\n              return ContextKeyFalseExpr.INSTANCE;\n            case 12:\n              this._advance();\n              return ContextKeyTrueExpr.INSTANCE;\n            case 0: {\n              this._advance();\n              const expr = this._expr();\n              this._consume(1, errorClosingParenthesis);\n              return expr?.negate();\n            }\n            case 17:\n              this._advance();\n              return ContextKeyNotExpr.create(peek.lexeme);\n            default:\n              throw this._errExpectedButGot(`KEY | true | false | '(' expression ')'`, peek);\n          }\n        }\n        return this._primary();\n      }\n      _primary() {\n        const peek = this._peek();\n        switch (peek.type) {\n          case 11:\n            this._advance();\n            return ContextKeyExpr.true();\n          case 12:\n            this._advance();\n            return ContextKeyExpr.false();\n          case 0: {\n            this._advance();\n            const expr = this._expr();\n            this._consume(1, errorClosingParenthesis);\n            return expr;\n          }\n          case 17: {\n            const key = peek.lexeme;\n            this._advance();\n            if (this._matchOne(\n              9\n              /* TokenType.RegexOp */\n            )) {\n              const expr = this._peek();\n              if (!this._config.regexParsingWithErrorRecovery) {\n                this._advance();\n                if (expr.type !== 10) {\n                  throw this._errExpectedButGot(`REGEX`, expr);\n                }\n                const regexLexeme = expr.lexeme;\n                const closingSlashIndex = regexLexeme.lastIndexOf(\"/\");\n                const flags = closingSlashIndex === regexLexeme.length - 1 ? void 0 : this._removeFlagsGY(regexLexeme.substring(closingSlashIndex + 1));\n                let regexp;\n                try {\n                  regexp = new RegExp(regexLexeme.substring(1, closingSlashIndex), flags);\n                } catch (e) {\n                  throw this._errExpectedButGot(`REGEX`, expr);\n                }\n                return ContextKeyRegexExpr.create(key, regexp);\n              }\n              switch (expr.type) {\n                case 10:\n                case 19: {\n                  const lexemeReconstruction = [expr.lexeme];\n                  this._advance();\n                  let followingToken = this._peek();\n                  let parenBalance = 0;\n                  for (let i2 = 0; i2 \u003c expr.lexeme.length; i2++) {\n                    if (expr.lexeme.charCodeAt(i2) === 40) {\n                      parenBalance++;\n                    } else if (expr.lexeme.charCodeAt(i2) === 41) {\n                      parenBalance--;\n                    }\n                  }\n                  while (!this._isAtEnd() \u0026\u0026 followingToken.type !== 15 \u0026\u0026 followingToken.type !== 16) {\n                    switch (followingToken.type) {\n                      case 0:\n                        parenBalance++;\n                        break;\n                      case 1:\n                        parenBalance--;\n                        break;\n                      case 10:\n                      case 18:\n                        for (let i2 = 0; i2 \u003c followingToken.lexeme.length; i2++) {\n                          if (followingToken.lexeme.charCodeAt(i2) === 40) {\n                            parenBalance++;\n                          } else if (expr.lexeme.charCodeAt(i2) === 41) {\n                            parenBalance--;\n                          }\n                        }\n                    }\n                    if (parenBalance \u003c 0) {\n                      break;\n                    }\n                    lexemeReconstruction.push(Scanner.getLexeme(followingToken));\n                    this._advance();\n                    followingToken = this._peek();\n                  }\n                  const regexLexeme = lexemeReconstruction.join(\"\");\n                  const closingSlashIndex = regexLexeme.lastIndexOf(\"/\");\n                  const flags = closingSlashIndex === regexLexeme.length - 1 ? void 0 : this._removeFlagsGY(regexLexeme.substring(closingSlashIndex + 1));\n                  let regexp;\n                  try {\n                    regexp = new RegExp(regexLexeme.substring(1, closingSlashIndex), flags);\n                  } catch (e) {\n                    throw this._errExpectedButGot(`REGEX`, expr);\n                  }\n                  return ContextKeyExpr.regex(key, regexp);\n                }\n                case 18: {\n                  const serializedValue = expr.lexeme;\n                  this._advance();\n                  let regex = null;\n                  if (!isFalsyOrWhitespace(serializedValue)) {\n                    const start = serializedValue.indexOf(\"/\");\n                    const end = serializedValue.lastIndexOf(\"/\");\n                    if (start !== end \u0026\u0026 start \u003e= 0) {\n                      const value = serializedValue.slice(start + 1, end);\n                      const caseIgnoreFlag = serializedValue[end + 1] === \"i\" ? \"i\" : \"\";\n                      try {\n                        regex = new RegExp(value, caseIgnoreFlag);\n                      } catch (_e) {\n                        throw this._errExpectedButGot(`REGEX`, expr);\n                      }\n                    }\n                  }\n                  if (regex === null) {\n                    throw this._errExpectedButGot(\"REGEX\", expr);\n                  }\n                  return ContextKeyRegexExpr.create(key, regex);\n                }\n                default:\n                  throw this._errExpectedButGot(\"REGEX\", this._peek());\n              }\n            }\n            if (this._matchOne(\n              14\n              /* TokenType.Not */\n            )) {\n              this._consume(13, errorNoInAfterNot);\n              const right = this._value();\n              return ContextKeyExpr.notIn(key, right);\n            }\n            const maybeOp = this._peek().type;\n            switch (maybeOp) {\n              case 3: {\n                this._advance();\n                const right = this._value();\n                if (this._previous().type === 18) {\n                  return ContextKeyExpr.equals(key, right);\n                }\n                switch (right) {\n                  case \"true\":\n                    return ContextKeyExpr.has(key);\n                  case \"false\":\n                    return ContextKeyExpr.not(key);\n                  default:\n                    return ContextKeyExpr.equals(key, right);\n                }\n              }\n              case 4: {\n                this._advance();\n                const right = this._value();\n                if (this._previous().type === 18) {\n                  return ContextKeyExpr.notEquals(key, right);\n                }\n                switch (right) {\n                  case \"true\":\n                    return ContextKeyExpr.not(key);\n                  case \"false\":\n                    return ContextKeyExpr.has(key);\n                  default:\n                    return ContextKeyExpr.notEquals(key, right);\n                }\n              }\n              // TODO: ContextKeyExpr.smaller(key, right) accepts only `number` as `right` AND during eval of this node, we just eval to `false` if `right` is not a number\n              // consequently, package.json linter should _warn_ the user if they're passing undesired things to ops\n              case 5:\n                this._advance();\n                return ContextKeySmallerExpr.create(key, this._value());\n              case 6:\n                this._advance();\n                return ContextKeySmallerEqualsExpr.create(key, this._value());\n              case 7:\n                this._advance();\n                return ContextKeyGreaterExpr.create(key, this._value());\n              case 8:\n                this._advance();\n                return ContextKeyGreaterEqualsExpr.create(key, this._value());\n              case 13:\n                this._advance();\n                return ContextKeyExpr.in(key, this._value());\n              default:\n                return ContextKeyExpr.has(key);\n            }\n          }\n          case 20:\n            this._parsingErrors.push({ message: errorUnexpectedEOF, offset: peek.offset, lexeme: \"\", additionalInfo: hintUnexpectedEOF });\n            throw _Parser2._parseError;\n          default:\n            throw this._errExpectedButGot(`true | false | KEY \n\t| KEY '=~' REGEX \n\t| KEY ('==' | '!=' | '\u003c' | '\u003c=' | '\u003e' | '\u003e=' | 'in' | 'not' 'in') value`, this._peek());\n        }\n      }\n      _value() {\n        const token = this._peek();\n        switch (token.type) {\n          case 17:\n          case 18:\n            this._advance();\n            return token.lexeme;\n          case 11:\n            this._advance();\n            return \"true\";\n          case 12:\n            this._advance();\n            return \"false\";\n          case 13:\n            this._advance();\n            return \"in\";\n          default:\n            return \"\";\n        }\n      }\n      _removeFlagsGY(flags) {\n        return flags.replaceAll(this._flagsGYRe, \"\");\n      }\n      // careful: this can throw if current token is the initial one (ie index = 0)\n      _previous() {\n        return this._tokens[this._current - 1];\n      }\n      _matchOne(token) {\n        if (this._check(token)) {\n          this._advance();\n          return true;\n        }\n        return false;\n      }\n      _advance() {\n        if (!this._isAtEnd()) {\n          this._current++;\n        }\n        return this._previous();\n      }\n      _consume(type, message) {\n        if (this._check(type)) {\n          return this._advance();\n        }\n        throw this._errExpectedButGot(message, this._peek());\n      }\n      _errExpectedButGot(expected, got, additionalInfo) {\n        const message = localize(1665, \"Expected: {0}\\nReceived: '{1}'.\", expected, Scanner.getLexeme(got));\n        const offset = got.offset;\n        const lexeme = Scanner.getLexeme(got);\n        this._parsingErrors.push({ message, offset, lexeme, additionalInfo });\n        return _Parser2._parseError;\n      }\n      _check(type) {\n        return this._peek().type === type;\n      }\n      _peek() {\n        return this._tokens[this._current];\n      }\n      _isAtEnd() {\n        return this._peek().type === 20;\n      }\n    };\n    ContextKeyExpr = class {\n      static false() {\n        return ContextKeyFalseExpr.INSTANCE;\n      }\n      static true() {\n        return ContextKeyTrueExpr.INSTANCE;\n      }\n      static has(key) {\n        return ContextKeyDefinedExpr.create(key);\n      }\n      static equals(key, value) {\n        return ContextKeyEqualsExpr.create(key, value);\n      }\n      static notEquals(key, value) {\n        return ContextKeyNotEqualsExpr.create(key, value);\n      }\n      static regex(key, value) {\n        return ContextKeyRegexExpr.create(key, value);\n      }\n      static in(key, value) {\n        return ContextKeyInExpr.create(key, value);\n      }\n      static notIn(key, value) {\n        return ContextKeyNotInExpr.create(key, value);\n      }\n      static not(key) {\n        return ContextKeyNotExpr.create(key);\n      }\n      static and(...expr) {\n        return ContextKeyAndExpr.create(expr, null, true);\n      }\n      static or(...expr) {\n        return ContextKeyOrExpr.create(expr, null, true);\n      }\n      static {\n        this._parser = new Parser({ regexParsingWithErrorRecovery: false });\n      }\n      static deserialize(serialized) {\n        if (serialized === void 0 || serialized === null) {\n          return void 0;\n        }\n        const expr = this._parser.parse(serialized);\n        return expr;\n      }\n    };\n    ContextKeyFalseExpr = class _ContextKeyFalseExpr {\n      static {\n        this.INSTANCE = new _ContextKeyFalseExpr();\n      }\n      constructor() {\n        this.type = 0;\n      }\n      cmp(other) {\n        return this.type - other.type;\n      }\n      equals(other) {\n        return other.type === this.type;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        return false;\n      }\n      serialize() {\n        return \"false\";\n      }\n      keys() {\n        return [];\n      }\n      negate() {\n        return ContextKeyTrueExpr.INSTANCE;\n      }\n    };\n    ContextKeyTrueExpr = class _ContextKeyTrueExpr {\n      static {\n        this.INSTANCE = new _ContextKeyTrueExpr();\n      }\n      constructor() {\n        this.type = 1;\n      }\n      cmp(other) {\n        return this.type - other.type;\n      }\n      equals(other) {\n        return other.type === this.type;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        return true;\n      }\n      serialize() {\n        return \"true\";\n      }\n      keys() {\n        return [];\n      }\n      negate() {\n        return ContextKeyFalseExpr.INSTANCE;\n      }\n    };\n    ContextKeyDefinedExpr = class _ContextKeyDefinedExpr {\n      static create(key, negated = null) {\n        const constantValue = CONSTANT_VALUES.get(key);\n        if (typeof constantValue === \"boolean\") {\n          return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n        }\n        return new _ContextKeyDefinedExpr(key, negated);\n      }\n      constructor(key, negated) {\n        this.key = key;\n        this.negated = negated;\n        this.type = 2;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp1(this.key, other.key);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key;\n        }\n        return false;\n      }\n      substituteConstants() {\n        const constantValue = CONSTANT_VALUES.get(this.key);\n        if (typeof constantValue === \"boolean\") {\n          return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n        }\n        return this;\n      }\n      evaluate(context) {\n        return !!context.getValue(this.key);\n      }\n      serialize() {\n        return this.key;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeyNotExpr.create(this.key, this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyEqualsExpr = class _ContextKeyEqualsExpr {\n      static create(key, value, negated = null) {\n        if (typeof value === \"boolean\") {\n          return value ? ContextKeyDefinedExpr.create(key, negated) : ContextKeyNotExpr.create(key, negated);\n        }\n        const constantValue = CONSTANT_VALUES.get(key);\n        if (typeof constantValue === \"boolean\") {\n          const trueValue = constantValue ? \"true\" : \"false\";\n          return value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n        }\n        return new _ContextKeyEqualsExpr(key, value, negated);\n      }\n      constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 4;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key \u0026\u0026 this.value === other.value;\n        }\n        return false;\n      }\n      substituteConstants() {\n        const constantValue = CONSTANT_VALUES.get(this.key);\n        if (typeof constantValue === \"boolean\") {\n          const trueValue = constantValue ? \"true\" : \"false\";\n          return this.value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n        }\n        return this;\n      }\n      evaluate(context) {\n        return context.getValue(this.key) == this.value;\n      }\n      serialize() {\n        return `${this.key} == '${this.value}'`;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeyNotEqualsExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyInExpr = class _ContextKeyInExpr {\n      static create(key, valueKey) {\n        return new _ContextKeyInExpr(key, valueKey);\n      }\n      constructor(key, valueKey) {\n        this.key = key;\n        this.valueKey = valueKey;\n        this.type = 10;\n        this.negated = null;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp2(this.key, this.valueKey, other.key, other.valueKey);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key \u0026\u0026 this.valueKey === other.valueKey;\n        }\n        return false;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        const source = context.getValue(this.valueKey);\n        const item = context.getValue(this.key);\n        if (Array.isArray(source)) {\n          return source.includes(item);\n        }\n        if (typeof item === \"string\" \u0026\u0026 typeof source === \"object\" \u0026\u0026 source !== null) {\n          return hasOwnProperty.call(source, item);\n        }\n        return false;\n      }\n      serialize() {\n        return `${this.key} in '${this.valueKey}'`;\n      }\n      keys() {\n        return [this.key, this.valueKey];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeyNotInExpr.create(this.key, this.valueKey);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyNotInExpr = class _ContextKeyNotInExpr {\n      static create(key, valueKey) {\n        return new _ContextKeyNotInExpr(key, valueKey);\n      }\n      constructor(key, valueKey) {\n        this.key = key;\n        this.valueKey = valueKey;\n        this.type = 11;\n        this._negated = ContextKeyInExpr.create(key, valueKey);\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return this._negated.cmp(other._negated);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this._negated.equals(other._negated);\n        }\n        return false;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        return !this._negated.evaluate(context);\n      }\n      serialize() {\n        return `${this.key} not in '${this.valueKey}'`;\n      }\n      keys() {\n        return this._negated.keys();\n      }\n      negate() {\n        return this._negated;\n      }\n    };\n    ContextKeyNotEqualsExpr = class _ContextKeyNotEqualsExpr {\n      static create(key, value, negated = null) {\n        if (typeof value === \"boolean\") {\n          if (value) {\n            return ContextKeyNotExpr.create(key, negated);\n          }\n          return ContextKeyDefinedExpr.create(key, negated);\n        }\n        const constantValue = CONSTANT_VALUES.get(key);\n        if (typeof constantValue === \"boolean\") {\n          const falseValue = constantValue ? \"true\" : \"false\";\n          return value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE;\n        }\n        return new _ContextKeyNotEqualsExpr(key, value, negated);\n      }\n      constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 5;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key \u0026\u0026 this.value === other.value;\n        }\n        return false;\n      }\n      substituteConstants() {\n        const constantValue = CONSTANT_VALUES.get(this.key);\n        if (typeof constantValue === \"boolean\") {\n          const falseValue = constantValue ? \"true\" : \"false\";\n          return this.value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE;\n        }\n        return this;\n      }\n      evaluate(context) {\n        return context.getValue(this.key) != this.value;\n      }\n      serialize() {\n        return `${this.key} != '${this.value}'`;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeyEqualsExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyNotExpr = class _ContextKeyNotExpr {\n      static create(key, negated = null) {\n        const constantValue = CONSTANT_VALUES.get(key);\n        if (typeof constantValue === \"boolean\") {\n          return constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE;\n        }\n        return new _ContextKeyNotExpr(key, negated);\n      }\n      constructor(key, negated) {\n        this.key = key;\n        this.negated = negated;\n        this.type = 3;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp1(this.key, other.key);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key;\n        }\n        return false;\n      }\n      substituteConstants() {\n        const constantValue = CONSTANT_VALUES.get(this.key);\n        if (typeof constantValue === \"boolean\") {\n          return constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE;\n        }\n        return this;\n      }\n      evaluate(context) {\n        return !context.getValue(this.key);\n      }\n      serialize() {\n        return `!${this.key}`;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeyDefinedExpr.create(this.key, this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyGreaterExpr = class _ContextKeyGreaterExpr {\n      static create(key, _value, negated = null) {\n        return withFloatOrStr(_value, (value) =\u003e new _ContextKeyGreaterExpr(key, value, negated));\n      }\n      constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 12;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key \u0026\u0026 this.value === other.value;\n        }\n        return false;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        if (typeof this.value === \"string\") {\n          return false;\n        }\n        return parseFloat(context.getValue(this.key)) \u003e this.value;\n      }\n      serialize() {\n        return `${this.key} \u003e ${this.value}`;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeySmallerEqualsExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyGreaterEqualsExpr = class _ContextKeyGreaterEqualsExpr {\n      static create(key, _value, negated = null) {\n        return withFloatOrStr(_value, (value) =\u003e new _ContextKeyGreaterEqualsExpr(key, value, negated));\n      }\n      constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 13;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key \u0026\u0026 this.value === other.value;\n        }\n        return false;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        if (typeof this.value === \"string\") {\n          return false;\n        }\n        return parseFloat(context.getValue(this.key)) \u003e= this.value;\n      }\n      serialize() {\n        return `${this.key} \u003e= ${this.value}`;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeySmallerExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeySmallerExpr = class _ContextKeySmallerExpr {\n      static create(key, _value, negated = null) {\n        return withFloatOrStr(_value, (value) =\u003e new _ContextKeySmallerExpr(key, value, negated));\n      }\n      constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 14;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key \u0026\u0026 this.value === other.value;\n        }\n        return false;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        if (typeof this.value === \"string\") {\n          return false;\n        }\n        return parseFloat(context.getValue(this.key)) \u003c this.value;\n      }\n      serialize() {\n        return `${this.key} \u003c ${this.value}`;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeyGreaterEqualsExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeySmallerEqualsExpr = class _ContextKeySmallerEqualsExpr {\n      static create(key, _value, negated = null) {\n        return withFloatOrStr(_value, (value) =\u003e new _ContextKeySmallerEqualsExpr(key, value, negated));\n      }\n      constructor(key, value, negated) {\n        this.key = key;\n        this.value = value;\n        this.negated = negated;\n        this.type = 15;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return cmp2(this.key, this.value, other.key, other.value);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this.key === other.key \u0026\u0026 this.value === other.value;\n        }\n        return false;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        if (typeof this.value === \"string\") {\n          return false;\n        }\n        return parseFloat(context.getValue(this.key)) \u003c= this.value;\n      }\n      serialize() {\n        return `${this.key} \u003c= ${this.value}`;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeyGreaterExpr.create(this.key, this.value, this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyRegexExpr = class _ContextKeyRegexExpr {\n      static create(key, regexp) {\n        return new _ContextKeyRegexExpr(key, regexp);\n      }\n      constructor(key, regexp) {\n        this.key = key;\n        this.regexp = regexp;\n        this.type = 7;\n        this.negated = null;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        if (this.key \u003c other.key) {\n          return -1;\n        }\n        if (this.key \u003e other.key) {\n          return 1;\n        }\n        const thisSource = this.regexp ? this.regexp.source : \"\";\n        const otherSource = other.regexp ? other.regexp.source : \"\";\n        if (thisSource \u003c otherSource) {\n          return -1;\n        }\n        if (thisSource \u003e otherSource) {\n          return 1;\n        }\n        return 0;\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          const thisSource = this.regexp ? this.regexp.source : \"\";\n          const otherSource = other.regexp ? other.regexp.source : \"\";\n          return this.key === other.key \u0026\u0026 thisSource === otherSource;\n        }\n        return false;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        const value = context.getValue(this.key);\n        return this.regexp ? this.regexp.test(value) : false;\n      }\n      serialize() {\n        const value = this.regexp ? `/${this.regexp.source}/${this.regexp.flags}` : \"/invalid/\";\n        return `${this.key} =~ ${value}`;\n      }\n      keys() {\n        return [this.key];\n      }\n      negate() {\n        if (!this.negated) {\n          this.negated = ContextKeyNotRegexExpr.create(this);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyNotRegexExpr = class _ContextKeyNotRegexExpr {\n      static create(actual) {\n        return new _ContextKeyNotRegexExpr(actual);\n      }\n      constructor(_actual) {\n        this._actual = _actual;\n        this.type = 8;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        return this._actual.cmp(other._actual);\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          return this._actual.equals(other._actual);\n        }\n        return false;\n      }\n      substituteConstants() {\n        return this;\n      }\n      evaluate(context) {\n        return !this._actual.evaluate(context);\n      }\n      serialize() {\n        return `!(${this._actual.serialize()})`;\n      }\n      keys() {\n        return this._actual.keys();\n      }\n      negate() {\n        return this._actual;\n      }\n    };\n    ContextKeyAndExpr = class _ContextKeyAndExpr {\n      static create(_expr, negated, extraRedundantCheck) {\n        return _ContextKeyAndExpr._normalizeArr(_expr, negated, extraRedundantCheck);\n      }\n      constructor(expr, negated) {\n        this.expr = expr;\n        this.negated = negated;\n        this.type = 6;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        if (this.expr.length \u003c other.expr.length) {\n          return -1;\n        }\n        if (this.expr.length \u003e other.expr.length) {\n          return 1;\n        }\n        for (let i2 = 0, len = this.expr.length; i2 \u003c len; i2++) {\n          const r = cmp(this.expr[i2], other.expr[i2]);\n          if (r !== 0) {\n            return r;\n          }\n        }\n        return 0;\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          if (this.expr.length !== other.expr.length) {\n            return false;\n          }\n          for (let i2 = 0, len = this.expr.length; i2 \u003c len; i2++) {\n            if (!this.expr[i2].equals(other.expr[i2])) {\n              return false;\n            }\n          }\n          return true;\n        }\n        return false;\n      }\n      substituteConstants() {\n        const exprArr = eliminateConstantsInArray(this.expr);\n        if (exprArr === this.expr) {\n          return this;\n        }\n        return _ContextKeyAndExpr.create(exprArr, this.negated, false);\n      }\n      evaluate(context) {\n        for (let i2 = 0, len = this.expr.length; i2 \u003c len; i2++) {\n          if (!this.expr[i2].evaluate(context)) {\n            return false;\n          }\n        }\n        return true;\n      }\n      static _normalizeArr(arr, negated, extraRedundantCheck) {\n        const expr = [];\n        let hasTrue = false;\n        for (const e of arr) {\n          if (!e) {\n            continue;\n          }\n          if (e.type === 1) {\n            hasTrue = true;\n            continue;\n          }\n          if (e.type === 0) {\n            return ContextKeyFalseExpr.INSTANCE;\n          }\n          if (e.type === 6) {\n            expr.push(...e.expr);\n            continue;\n          }\n          expr.push(e);\n        }\n        if (expr.length === 0 \u0026\u0026 hasTrue) {\n          return ContextKeyTrueExpr.INSTANCE;\n        }\n        if (expr.length === 0) {\n          return void 0;\n        }\n        if (expr.length === 1) {\n          return expr[0];\n        }\n        expr.sort(cmp);\n        for (let i2 = 1; i2 \u003c expr.length; i2++) {\n          if (expr[i2 - 1].equals(expr[i2])) {\n            expr.splice(i2, 1);\n            i2--;\n          }\n        }\n        if (expr.length === 1) {\n          return expr[0];\n        }\n        while (expr.length \u003e 1) {\n          const lastElement = expr[expr.length - 1];\n          if (lastElement.type !== 9) {\n            break;\n          }\n          expr.pop();\n          const secondToLastElement = expr.pop();\n          const isFinished = expr.length === 0;\n          const resultElement = ContextKeyOrExpr.create(lastElement.expr.map((el) =\u003e _ContextKeyAndExpr.create([el, secondToLastElement], null, extraRedundantCheck)), null, isFinished);\n          if (resultElement) {\n            expr.push(resultElement);\n            expr.sort(cmp);\n          }\n        }\n        if (expr.length === 1) {\n          return expr[0];\n        }\n        if (extraRedundantCheck) {\n          for (let i2 = 0; i2 \u003c expr.length; i2++) {\n            for (let j = i2 + 1; j \u003c expr.length; j++) {\n              if (expr[i2].negate().equals(expr[j])) {\n                return ContextKeyFalseExpr.INSTANCE;\n              }\n            }\n          }\n          if (expr.length === 1) {\n            return expr[0];\n          }\n        }\n        return new _ContextKeyAndExpr(expr, negated);\n      }\n      serialize() {\n        return this.expr.map((e) =\u003e e.serialize()).join(\" \u0026\u0026 \");\n      }\n      keys() {\n        const result = [];\n        for (const expr of this.expr) {\n          result.push(...expr.keys());\n        }\n        return result;\n      }\n      negate() {\n        if (!this.negated) {\n          const result = [];\n          for (const expr of this.expr) {\n            result.push(expr.negate());\n          }\n          this.negated = ContextKeyOrExpr.create(result, this, true);\n        }\n        return this.negated;\n      }\n    };\n    ContextKeyOrExpr = class _ContextKeyOrExpr {\n      static create(_expr, negated, extraRedundantCheck) {\n        return _ContextKeyOrExpr._normalizeArr(_expr, negated, extraRedundantCheck);\n      }\n      constructor(expr, negated) {\n        this.expr = expr;\n        this.negated = negated;\n        this.type = 9;\n      }\n      cmp(other) {\n        if (other.type !== this.type) {\n          return this.type - other.type;\n        }\n        if (this.expr.length \u003c other.expr.length) {\n          return -1;\n        }\n        if (this.expr.length \u003e other.expr.length) {\n          return 1;\n        }\n        for (let i2 = 0, len = this.expr.length; i2 \u003c len; i2++) {\n          const r = cmp(this.expr[i2], other.expr[i2]);\n          if (r !== 0) {\n            return r;\n          }\n        }\n        return 0;\n      }\n      equals(other) {\n        if (other.type === this.type) {\n          if (this.expr.length !== other.expr.length) {\n            return false;\n          }\n          for (let i2 = 0, len = this.expr.length; i2 \u003c len; i2++) {\n            if (!this.expr[i2].equals(other.expr[i2])) {\n              return false;\n            }\n          }\n          return true;\n        }\n        return false;\n      }\n      substituteConstants() {\n        const exprArr = eliminateConstantsInArray(this.expr);\n        if (exprArr === this.expr) {\n          return this;\n        }\n        return _ContextKeyOrExpr.create(exprArr, this.negated, false);\n      }\n      evaluate(context) {\n        for (let i2 = 0, len = this.expr.length; i2 \u003c len; i2++) {\n          if (this.expr[i2].evaluate(context)) {\n            return true;\n          }\n        }\n        return false;\n      }\n      static _normalizeArr(arr, negated, extraRedundantCheck) {\n        let expr = [];\n        let hasFalse = false;\n        if (arr) {\n          for (let i2 = 0, len = arr.length; i2 \u003c len; i2++) {\n            const e = arr[i2];\n            if (!e) {\n              continue;\n            }\n            if (e.type === 0) {\n              hasFalse = true;\n              continue;\n            }\n            if (e.type === 1) {\n              return ContextKeyTrueExpr.INSTANCE;\n            }\n            if (e.type === 9) {\n              expr = expr.concat(e.expr);\n              continue;\n            }\n            expr.push(e);\n          }\n          if (expr.length === 0 \u0026\u0026 hasFalse) {\n            return ContextKeyFalseExpr.INSTANCE;\n          }\n          expr.sort(cmp);\n        }\n        if (expr.length === 0) {\n          return void 0;\n        }\n        if (expr.length === 1) {\n          return expr[0];\n        }\n        for (let i2 = 1; i2 \u003c expr.length; i2++) {\n          if (expr[i2 - 1].equals(expr[i2])) {\n            expr.splice(i2, 1);\n            i2--;\n          }\n        }\n        if (expr.length === 1) {\n          return expr[0];\n        }\n        if (extraRedundantCheck) {\n          for (let i2 = 0; i2 \u003c expr.length; i2++) {\n            for (let j = i2 + 1; j \u003c expr.length; j++) {\n              if (expr[i2].negate().equals(expr[j])) {\n                return ContextKeyTrueExpr.INSTANCE;\n              }\n            }\n          }\n          if (expr.length === 1) {\n            return expr[0];\n          }\n        }\n        return new _ContextKeyOrExpr(expr, negated);\n      }\n      serialize() {\n        return this.expr.map((e) =\u003e e.serialize()).join(\" || \");\n      }\n      keys() {\n        const result = [];\n        for (const expr of this.expr) {\n          result.push(...expr.keys());\n        }\n        return result;\n      }\n      negate() {\n        if (!this.negated) {\n          const result = [];\n          for (const expr of this.expr) {\n            result.push(expr.negate());\n          }\n          while (result.length \u003e 1) {\n            const LEFT = result.shift();\n            const RIGHT = result.shift();\n            const all = [];\n            for (const left of getTerminals(LEFT)) {\n              for (const right of getTerminals(RIGHT)) {\n                all.push(ContextKeyAndExpr.create([left, right], null, false));\n              }\n            }\n            result.unshift(_ContextKeyOrExpr.create(all, null, false));\n          }\n          this.negated = _ContextKeyOrExpr.create(result, this, true);\n        }\n        return this.negated;\n      }\n    };\n    RawContextKey = class _RawContextKey extends ContextKeyDefinedExpr {\n      static {\n        this._info = [];\n      }\n      static all() {\n        return _RawContextKey._info.values();\n      }\n      constructor(key, defaultValue, metaOrHide) {\n        super(key, null);\n        this._defaultValue = defaultValue;\n        if (typeof metaOrHide === \"object\") {\n          _RawContextKey._info.push({ ...metaOrHide, key });\n        } else if (metaOrHide !== true) {\n          _RawContextKey._info.push({ key, description: metaOrHide, type: defaultValue !== null \u0026\u0026 defaultValue !== void 0 ? typeof defaultValue : void 0 });\n        }\n      }\n      bindTo(target) {\n        return target.createKey(this.key, this._defaultValue);\n      }\n      getValue(target) {\n        return target.getContextKeyValue(this.key);\n      }\n      toNegated() {\n        return this.negate();\n      }\n      isEqualTo(value) {\n        return ContextKeyEqualsExpr.create(this.key, value);\n      }\n    };\n    IContextKeyService = createDecorator(\"contextKeyService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/registry/common/platform.js\nvar RegistryImpl, Registry;\nvar init_platform2 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/registry/common/platform.js\"() {\n    init_assert();\n    init_types();\n    RegistryImpl = class {\n      constructor() {\n        this.data = /* @__PURE__ */ new Map();\n      }\n      add(id, data) {\n        ok(isString(id));\n        ok(isObject(data));\n        ok(!this.data.has(id), \"There is already an extension with this id\");\n        this.data.set(id, data);\n      }\n      as(id) {\n        return this.data.get(id) || null;\n      }\n      dispose() {\n        this.data.forEach((value) =\u003e {\n          if (isFunction(value.dispose)) {\n            value.dispose();\n          }\n        });\n        this.data.clear();\n      }\n    };\n    Registry = new RegistryImpl();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/keybindingsRegistry.js\nfunction sorter(a, b) {\n  if (a.weight1 !== b.weight1) {\n    return a.weight1 - b.weight1;\n  }\n  if (a.command \u0026\u0026 b.command) {\n    if (a.command \u003c b.command) {\n      return -1;\n    }\n    if (a.command \u003e b.command) {\n      return 1;\n    }\n  }\n  return a.weight2 - b.weight2;\n}\nvar KeybindingsRegistryImpl, KeybindingsRegistry, Extensions;\nvar init_keybindingsRegistry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/keybindingsRegistry.js\"() {\n    init_keybindings();\n    init_platform();\n    init_commands();\n    init_platform2();\n    init_lifecycle();\n    init_linkedList();\n    KeybindingsRegistryImpl = class _KeybindingsRegistryImpl {\n      constructor() {\n        this._coreKeybindings = new LinkedList();\n        this._extensionKeybindings = [];\n        this._cachedMergedKeybindings = null;\n      }\n      /**\n       * Take current platform into account and reduce to primary \u0026 secondary.\n       */\n      static bindToCurrentPlatform(kb) {\n        if (OS === 1) {\n          if (kb \u0026\u0026 kb.win) {\n            return kb.win;\n          }\n        } else if (OS === 2) {\n          if (kb \u0026\u0026 kb.mac) {\n            return kb.mac;\n          }\n        } else {\n          if (kb \u0026\u0026 kb.linux) {\n            return kb.linux;\n          }\n        }\n        return kb;\n      }\n      registerKeybindingRule(rule) {\n        const actualKb = _KeybindingsRegistryImpl.bindToCurrentPlatform(rule);\n        const result = new DisposableStore();\n        if (actualKb \u0026\u0026 actualKb.primary) {\n          const kk = decodeKeybinding(actualKb.primary, OS);\n          if (kk) {\n            result.add(this._registerDefaultKeybinding(kk, rule.id, rule.args, rule.weight, 0, rule.when));\n          }\n        }\n        if (actualKb \u0026\u0026 Array.isArray(actualKb.secondary)) {\n          for (let i2 = 0, len = actualKb.secondary.length; i2 \u003c len; i2++) {\n            const k = actualKb.secondary[i2];\n            const kk = decodeKeybinding(k, OS);\n            if (kk) {\n              result.add(this._registerDefaultKeybinding(kk, rule.id, rule.args, rule.weight, -i2 - 1, rule.when));\n            }\n          }\n        }\n        return result;\n      }\n      registerCommandAndKeybindingRule(desc) {\n        return combinedDisposable(this.registerKeybindingRule(desc), CommandsRegistry.registerCommand(desc));\n      }\n      _registerDefaultKeybinding(keybinding, commandId, commandArgs, weight1, weight22, when) {\n        const remove = this._coreKeybindings.push({\n          keybinding,\n          command: commandId,\n          commandArgs,\n          when,\n          weight1,\n          weight2: weight22,\n          extensionId: null,\n          isBuiltinExtension: false\n        });\n        this._cachedMergedKeybindings = null;\n        return toDisposable(() =\u003e {\n          remove();\n          this._cachedMergedKeybindings = null;\n        });\n      }\n      getDefaultKeybindings() {\n        if (!this._cachedMergedKeybindings) {\n          this._cachedMergedKeybindings = Array.from(this._coreKeybindings).concat(this._extensionKeybindings);\n          this._cachedMergedKeybindings.sort(sorter);\n        }\n        return this._cachedMergedKeybindings.slice(0);\n      }\n    };\n    KeybindingsRegistry = new KeybindingsRegistryImpl();\n    Extensions = {\n      EditorModes: \"platform.keybindingsRegistry\"\n    };\n    Registry.add(Extensions.EditorModes, KeybindingsRegistry);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/common/actions.js\nfunction isIMenuItem(item) {\n  return item.command !== void 0;\n}\nfunction isISubmenuItem(item) {\n  return item.submenu !== void 0;\n}\nfunction registerAction2(ctor) {\n  const disposables = [];\n  const action = new ctor();\n  const { f1, menu, keybinding, ...command } = action.desc;\n  if (CommandsRegistry.getCommand(command.id)) {\n    throw new Error(`Cannot register two commands with the same id: ${command.id}`);\n  }\n  disposables.push(CommandsRegistry.registerCommand({\n    id: command.id,\n    handler: (accessor, ...args) =\u003e action.run(accessor, ...args),\n    metadata: command.metadata ?? { description: action.desc.title }\n  }));\n  if (Array.isArray(menu)) {\n    for (const item of menu) {\n      disposables.push(MenuRegistry.appendMenuItem(item.id, { command: { ...command, precondition: item.precondition === null ? void 0 : command.precondition }, ...item }));\n    }\n  } else if (menu) {\n    disposables.push(MenuRegistry.appendMenuItem(menu.id, { command: { ...command, precondition: menu.precondition === null ? void 0 : command.precondition }, ...menu }));\n  }\n  if (f1) {\n    disposables.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command, when: command.precondition }));\n    disposables.push(MenuRegistry.addCommand(command));\n  }\n  if (Array.isArray(keybinding)) {\n    for (const item of keybinding) {\n      disposables.push(KeybindingsRegistry.registerKeybindingRule({\n        ...item,\n        id: command.id,\n        when: command.precondition ? ContextKeyExpr.and(command.precondition, item.when) : item.when\n      }));\n    }\n  } else if (keybinding) {\n    disposables.push(KeybindingsRegistry.registerKeybindingRule({\n      ...keybinding,\n      id: command.id,\n      when: command.precondition ? ContextKeyExpr.and(command.precondition, keybinding.when) : keybinding.when\n    }));\n  }\n  return {\n    dispose() {\n      dispose(disposables);\n    }\n  };\n}\nvar __decorate, __param, MenuItemAction_1, MenuId, IMenuService, MenuRegistryChangeEvent, MenuRegistry, SubmenuItemAction, MenuItemAction, Action2;\nvar init_actions2 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/common/actions.js\"() {\n    init_actions();\n    init_event();\n    init_lifecycle();\n    init_linkedList();\n    init_themables();\n    init_commands();\n    init_contextkey();\n    init_instantiation();\n    init_keybindingsRegistry();\n    __decorate = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    MenuId = class _MenuId {\n      static {\n        this._instances = /* @__PURE__ */ new Map();\n      }\n      static {\n        this.CommandPalette = new _MenuId(\"CommandPalette\");\n      }\n      static {\n        this.DebugBreakpointsContext = new _MenuId(\"DebugBreakpointsContext\");\n      }\n      static {\n        this.DebugCallStackContext = new _MenuId(\"DebugCallStackContext\");\n      }\n      static {\n        this.DebugConsoleContext = new _MenuId(\"DebugConsoleContext\");\n      }\n      static {\n        this.DebugVariablesContext = new _MenuId(\"DebugVariablesContext\");\n      }\n      static {\n        this.NotebookVariablesContext = new _MenuId(\"NotebookVariablesContext\");\n      }\n      static {\n        this.DebugHoverContext = new _MenuId(\"DebugHoverContext\");\n      }\n      static {\n        this.DebugWatchContext = new _MenuId(\"DebugWatchContext\");\n      }\n      static {\n        this.DebugToolBar = new _MenuId(\"DebugToolBar\");\n      }\n      static {\n        this.DebugToolBarStop = new _MenuId(\"DebugToolBarStop\");\n      }\n      static {\n        this.DebugDisassemblyContext = new _MenuId(\"DebugDisassemblyContext\");\n      }\n      static {\n        this.DebugCallStackToolbar = new _MenuId(\"DebugCallStackToolbar\");\n      }\n      static {\n        this.DebugCreateConfiguration = new _MenuId(\"DebugCreateConfiguration\");\n      }\n      static {\n        this.EditorContext = new _MenuId(\"EditorContext\");\n      }\n      static {\n        this.SimpleEditorContext = new _MenuId(\"SimpleEditorContext\");\n      }\n      static {\n        this.EditorContent = new _MenuId(\"EditorContent\");\n      }\n      static {\n        this.EditorLineNumberContext = new _MenuId(\"EditorLineNumberContext\");\n      }\n      static {\n        this.EditorContextCopy = new _MenuId(\"EditorContextCopy\");\n      }\n      static {\n        this.EditorContextPeek = new _MenuId(\"EditorContextPeek\");\n      }\n      static {\n        this.EditorContextShare = new _MenuId(\"EditorContextShare\");\n      }\n      static {\n        this.EditorTitle = new _MenuId(\"EditorTitle\");\n      }\n      static {\n        this.CompactWindowEditorTitle = new _MenuId(\"CompactWindowEditorTitle\");\n      }\n      static {\n        this.EditorTitleRun = new _MenuId(\"EditorTitleRun\");\n      }\n      static {\n        this.EditorTitleContext = new _MenuId(\"EditorTitleContext\");\n      }\n      static {\n        this.EditorTitleContextShare = new _MenuId(\"EditorTitleContextShare\");\n      }\n      static {\n        this.EmptyEditorGroup = new _MenuId(\"EmptyEditorGroup\");\n      }\n      static {\n        this.EmptyEditorGroupContext = new _MenuId(\"EmptyEditorGroupContext\");\n      }\n      static {\n        this.EditorTabsBarContext = new _MenuId(\"EditorTabsBarContext\");\n      }\n      static {\n        this.EditorTabsBarShowTabsSubmenu = new _MenuId(\"EditorTabsBarShowTabsSubmenu\");\n      }\n      static {\n        this.EditorTabsBarShowTabsZenModeSubmenu = new _MenuId(\"EditorTabsBarShowTabsZenModeSubmenu\");\n      }\n      static {\n        this.EditorActionsPositionSubmenu = new _MenuId(\"EditorActionsPositionSubmenu\");\n      }\n      static {\n        this.EditorSplitMoveSubmenu = new _MenuId(\"EditorSplitMoveSubmenu\");\n      }\n      static {\n        this.ExplorerContext = new _MenuId(\"ExplorerContext\");\n      }\n      static {\n        this.ExplorerContextShare = new _MenuId(\"ExplorerContextShare\");\n      }\n      static {\n        this.ExtensionContext = new _MenuId(\"ExtensionContext\");\n      }\n      static {\n        this.ExtensionEditorContextMenu = new _MenuId(\"ExtensionEditorContextMenu\");\n      }\n      static {\n        this.GlobalActivity = new _MenuId(\"GlobalActivity\");\n      }\n      static {\n        this.CommandCenter = new _MenuId(\"CommandCenter\");\n      }\n      static {\n        this.CommandCenterCenter = new _MenuId(\"CommandCenterCenter\");\n      }\n      static {\n        this.LayoutControlMenuSubmenu = new _MenuId(\"LayoutControlMenuSubmenu\");\n      }\n      static {\n        this.LayoutControlMenu = new _MenuId(\"LayoutControlMenu\");\n      }\n      static {\n        this.MenubarMainMenu = new _MenuId(\"MenubarMainMenu\");\n      }\n      static {\n        this.MenubarAppearanceMenu = new _MenuId(\"MenubarAppearanceMenu\");\n      }\n      static {\n        this.MenubarDebugMenu = new _MenuId(\"MenubarDebugMenu\");\n      }\n      static {\n        this.MenubarEditMenu = new _MenuId(\"MenubarEditMenu\");\n      }\n      static {\n        this.MenubarCopy = new _MenuId(\"MenubarCopy\");\n      }\n      static {\n        this.MenubarFileMenu = new _MenuId(\"MenubarFileMenu\");\n      }\n      static {\n        this.MenubarGoMenu = new _MenuId(\"MenubarGoMenu\");\n      }\n      static {\n        this.MenubarHelpMenu = new _MenuId(\"MenubarHelpMenu\");\n      }\n      static {\n        this.MenubarLayoutMenu = new _MenuId(\"MenubarLayoutMenu\");\n      }\n      static {\n        this.MenubarNewBreakpointMenu = new _MenuId(\"MenubarNewBreakpointMenu\");\n      }\n      static {\n        this.PanelAlignmentMenu = new _MenuId(\"PanelAlignmentMenu\");\n      }\n      static {\n        this.PanelPositionMenu = new _MenuId(\"PanelPositionMenu\");\n      }\n      static {\n        this.ActivityBarPositionMenu = new _MenuId(\"ActivityBarPositionMenu\");\n      }\n      static {\n        this.MenubarPreferencesMenu = new _MenuId(\"MenubarPreferencesMenu\");\n      }\n      static {\n        this.MenubarRecentMenu = new _MenuId(\"MenubarRecentMenu\");\n      }\n      static {\n        this.MenubarSelectionMenu = new _MenuId(\"MenubarSelectionMenu\");\n      }\n      static {\n        this.MenubarShare = new _MenuId(\"MenubarShare\");\n      }\n      static {\n        this.MenubarSwitchEditorMenu = new _MenuId(\"MenubarSwitchEditorMenu\");\n      }\n      static {\n        this.MenubarSwitchGroupMenu = new _MenuId(\"MenubarSwitchGroupMenu\");\n      }\n      static {\n        this.MenubarTerminalMenu = new _MenuId(\"MenubarTerminalMenu\");\n      }\n      static {\n        this.MenubarTerminalSuggestStatusMenu = new _MenuId(\"MenubarTerminalSuggestStatusMenu\");\n      }\n      static {\n        this.MenubarViewMenu = new _MenuId(\"MenubarViewMenu\");\n      }\n      static {\n        this.MenubarHomeMenu = new _MenuId(\"MenubarHomeMenu\");\n      }\n      static {\n        this.OpenEditorsContext = new _MenuId(\"OpenEditorsContext\");\n      }\n      static {\n        this.OpenEditorsContextShare = new _MenuId(\"OpenEditorsContextShare\");\n      }\n      static {\n        this.ProblemsPanelContext = new _MenuId(\"ProblemsPanelContext\");\n      }\n      static {\n        this.SCMInputBox = new _MenuId(\"SCMInputBox\");\n      }\n      static {\n        this.SCMChangeContext = new _MenuId(\"SCMChangeContext\");\n      }\n      static {\n        this.SCMResourceContext = new _MenuId(\"SCMResourceContext\");\n      }\n      static {\n        this.SCMResourceContextShare = new _MenuId(\"SCMResourceContextShare\");\n      }\n      static {\n        this.SCMResourceFolderContext = new _MenuId(\"SCMResourceFolderContext\");\n      }\n      static {\n        this.SCMResourceGroupContext = new _MenuId(\"SCMResourceGroupContext\");\n      }\n      static {\n        this.SCMSourceControl = new _MenuId(\"SCMSourceControl\");\n      }\n      static {\n        this.SCMSourceControlInline = new _MenuId(\"SCMSourceControlInline\");\n      }\n      static {\n        this.SCMSourceControlTitle = new _MenuId(\"SCMSourceControlTitle\");\n      }\n      static {\n        this.SCMHistoryTitle = new _MenuId(\"SCMHistoryTitle\");\n      }\n      static {\n        this.SCMHistoryItemContext = new _MenuId(\"SCMHistoryItemContext\");\n      }\n      static {\n        this.SCMHistoryItemChangeContext = new _MenuId(\"SCMHistoryItemChangeContext\");\n      }\n      static {\n        this.SCMHistoryItemHover = new _MenuId(\"SCMHistoryItemHover\");\n      }\n      static {\n        this.SCMHistoryItemRefContext = new _MenuId(\"SCMHistoryItemRefContext\");\n      }\n      static {\n        this.SCMQuickDiffDecorations = new _MenuId(\"SCMQuickDiffDecorations\");\n      }\n      static {\n        this.SCMTitle = new _MenuId(\"SCMTitle\");\n      }\n      static {\n        this.SearchContext = new _MenuId(\"SearchContext\");\n      }\n      static {\n        this.SearchActionMenu = new _MenuId(\"SearchActionContext\");\n      }\n      static {\n        this.StatusBarWindowIndicatorMenu = new _MenuId(\"StatusBarWindowIndicatorMenu\");\n      }\n      static {\n        this.StatusBarRemoteIndicatorMenu = new _MenuId(\"StatusBarRemoteIndicatorMenu\");\n      }\n      static {\n        this.StickyScrollContext = new _MenuId(\"StickyScrollContext\");\n      }\n      static {\n        this.TestItem = new _MenuId(\"TestItem\");\n      }\n      static {\n        this.TestItemGutter = new _MenuId(\"TestItemGutter\");\n      }\n      static {\n        this.TestProfilesContext = new _MenuId(\"TestProfilesContext\");\n      }\n      static {\n        this.TestMessageContext = new _MenuId(\"TestMessageContext\");\n      }\n      static {\n        this.TestMessageContent = new _MenuId(\"TestMessageContent\");\n      }\n      static {\n        this.TestPeekElement = new _MenuId(\"TestPeekElement\");\n      }\n      static {\n        this.TestPeekTitle = new _MenuId(\"TestPeekTitle\");\n      }\n      static {\n        this.TestCallStack = new _MenuId(\"TestCallStack\");\n      }\n      static {\n        this.TestCoverageFilterItem = new _MenuId(\"TestCoverageFilterItem\");\n      }\n      static {\n        this.TouchBarContext = new _MenuId(\"TouchBarContext\");\n      }\n      static {\n        this.TitleBar = new _MenuId(\"TitleBar\");\n      }\n      static {\n        this.TitleBarContext = new _MenuId(\"TitleBarContext\");\n      }\n      static {\n        this.TitleBarTitleContext = new _MenuId(\"TitleBarTitleContext\");\n      }\n      static {\n        this.TunnelContext = new _MenuId(\"TunnelContext\");\n      }\n      static {\n        this.TunnelPrivacy = new _MenuId(\"TunnelPrivacy\");\n      }\n      static {\n        this.TunnelProtocol = new _MenuId(\"TunnelProtocol\");\n      }\n      static {\n        this.TunnelPortInline = new _MenuId(\"TunnelInline\");\n      }\n      static {\n        this.TunnelTitle = new _MenuId(\"TunnelTitle\");\n      }\n      static {\n        this.TunnelLocalAddressInline = new _MenuId(\"TunnelLocalAddressInline\");\n      }\n      static {\n        this.TunnelOriginInline = new _MenuId(\"TunnelOriginInline\");\n      }\n      static {\n        this.ViewItemContext = new _MenuId(\"ViewItemContext\");\n      }\n      static {\n        this.ViewContainerTitle = new _MenuId(\"ViewContainerTitle\");\n      }\n      static {\n        this.ViewContainerTitleContext = new _MenuId(\"ViewContainerTitleContext\");\n      }\n      static {\n        this.ViewTitle = new _MenuId(\"ViewTitle\");\n      }\n      static {\n        this.ViewTitleContext = new _MenuId(\"ViewTitleContext\");\n      }\n      static {\n        this.CommentEditorActions = new _MenuId(\"CommentEditorActions\");\n      }\n      static {\n        this.CommentThreadTitle = new _MenuId(\"CommentThreadTitle\");\n      }\n      static {\n        this.CommentThreadActions = new _MenuId(\"CommentThreadActions\");\n      }\n      static {\n        this.CommentThreadAdditionalActions = new _MenuId(\"CommentThreadAdditionalActions\");\n      }\n      static {\n        this.CommentThreadTitleContext = new _MenuId(\"CommentThreadTitleContext\");\n      }\n      static {\n        this.CommentThreadCommentContext = new _MenuId(\"CommentThreadCommentContext\");\n      }\n      static {\n        this.CommentTitle = new _MenuId(\"CommentTitle\");\n      }\n      static {\n        this.CommentActions = new _MenuId(\"CommentActions\");\n      }\n      static {\n        this.CommentsViewThreadActions = new _MenuId(\"CommentsViewThreadActions\");\n      }\n      static {\n        this.InteractiveToolbar = new _MenuId(\"InteractiveToolbar\");\n      }\n      static {\n        this.InteractiveCellTitle = new _MenuId(\"InteractiveCellTitle\");\n      }\n      static {\n        this.InteractiveCellDelete = new _MenuId(\"InteractiveCellDelete\");\n      }\n      static {\n        this.InteractiveCellExecute = new _MenuId(\"InteractiveCellExecute\");\n      }\n      static {\n        this.InteractiveInputExecute = new _MenuId(\"InteractiveInputExecute\");\n      }\n      static {\n        this.InteractiveInputConfig = new _MenuId(\"InteractiveInputConfig\");\n      }\n      static {\n        this.ReplInputExecute = new _MenuId(\"ReplInputExecute\");\n      }\n      static {\n        this.IssueReporter = new _MenuId(\"IssueReporter\");\n      }\n      static {\n        this.NotebookToolbar = new _MenuId(\"NotebookToolbar\");\n      }\n      static {\n        this.NotebookToolbarContext = new _MenuId(\"NotebookToolbarContext\");\n      }\n      static {\n        this.NotebookStickyScrollContext = new _MenuId(\"NotebookStickyScrollContext\");\n      }\n      static {\n        this.NotebookCellTitle = new _MenuId(\"NotebookCellTitle\");\n      }\n      static {\n        this.NotebookCellDelete = new _MenuId(\"NotebookCellDelete\");\n      }\n      static {\n        this.NotebookCellInsert = new _MenuId(\"NotebookCellInsert\");\n      }\n      static {\n        this.NotebookCellBetween = new _MenuId(\"NotebookCellBetween\");\n      }\n      static {\n        this.NotebookCellListTop = new _MenuId(\"NotebookCellTop\");\n      }\n      static {\n        this.NotebookCellExecute = new _MenuId(\"NotebookCellExecute\");\n      }\n      static {\n        this.NotebookCellExecuteGoTo = new _MenuId(\"NotebookCellExecuteGoTo\");\n      }\n      static {\n        this.NotebookCellExecutePrimary = new _MenuId(\"NotebookCellExecutePrimary\");\n      }\n      static {\n        this.NotebookDiffCellInputTitle = new _MenuId(\"NotebookDiffCellInputTitle\");\n      }\n      static {\n        this.NotebookDiffDocumentMetadata = new _MenuId(\"NotebookDiffDocumentMetadata\");\n      }\n      static {\n        this.NotebookDiffCellMetadataTitle = new _MenuId(\"NotebookDiffCellMetadataTitle\");\n      }\n      static {\n        this.NotebookDiffCellOutputsTitle = new _MenuId(\"NotebookDiffCellOutputsTitle\");\n      }\n      static {\n        this.NotebookOutputToolbar = new _MenuId(\"NotebookOutputToolbar\");\n      }\n      static {\n        this.NotebookOutlineFilter = new _MenuId(\"NotebookOutlineFilter\");\n      }\n      static {\n        this.NotebookOutlineActionMenu = new _MenuId(\"NotebookOutlineActionMenu\");\n      }\n      static {\n        this.NotebookEditorLayoutConfigure = new _MenuId(\"NotebookEditorLayoutConfigure\");\n      }\n      static {\n        this.NotebookKernelSource = new _MenuId(\"NotebookKernelSource\");\n      }\n      static {\n        this.BulkEditTitle = new _MenuId(\"BulkEditTitle\");\n      }\n      static {\n        this.BulkEditContext = new _MenuId(\"BulkEditContext\");\n      }\n      static {\n        this.TimelineItemContext = new _MenuId(\"TimelineItemContext\");\n      }\n      static {\n        this.TimelineTitle = new _MenuId(\"TimelineTitle\");\n      }\n      static {\n        this.TimelineTitleContext = new _MenuId(\"TimelineTitleContext\");\n      }\n      static {\n        this.TimelineFilterSubMenu = new _MenuId(\"TimelineFilterSubMenu\");\n      }\n      static {\n        this.AccountsContext = new _MenuId(\"AccountsContext\");\n      }\n      static {\n        this.SidebarTitle = new _MenuId(\"SidebarTitle\");\n      }\n      static {\n        this.PanelTitle = new _MenuId(\"PanelTitle\");\n      }\n      static {\n        this.AuxiliaryBarTitle = new _MenuId(\"AuxiliaryBarTitle\");\n      }\n      static {\n        this.TerminalInstanceContext = new _MenuId(\"TerminalInstanceContext\");\n      }\n      static {\n        this.TerminalEditorInstanceContext = new _MenuId(\"TerminalEditorInstanceContext\");\n      }\n      static {\n        this.TerminalNewDropdownContext = new _MenuId(\"TerminalNewDropdownContext\");\n      }\n      static {\n        this.TerminalTabContext = new _MenuId(\"TerminalTabContext\");\n      }\n      static {\n        this.TerminalTabEmptyAreaContext = new _MenuId(\"TerminalTabEmptyAreaContext\");\n      }\n      static {\n        this.TerminalStickyScrollContext = new _MenuId(\"TerminalStickyScrollContext\");\n      }\n      static {\n        this.WebviewContext = new _MenuId(\"WebviewContext\");\n      }\n      static {\n        this.InlineCompletionsActions = new _MenuId(\"InlineCompletionsActions\");\n      }\n      static {\n        this.InlineEditsActions = new _MenuId(\"InlineEditsActions\");\n      }\n      static {\n        this.NewFile = new _MenuId(\"NewFile\");\n      }\n      static {\n        this.MergeInput1Toolbar = new _MenuId(\"MergeToolbar1Toolbar\");\n      }\n      static {\n        this.MergeInput2Toolbar = new _MenuId(\"MergeToolbar2Toolbar\");\n      }\n      static {\n        this.MergeBaseToolbar = new _MenuId(\"MergeBaseToolbar\");\n      }\n      static {\n        this.MergeInputResultToolbar = new _MenuId(\"MergeToolbarResultToolbar\");\n      }\n      static {\n        this.InlineSuggestionToolbar = new _MenuId(\"InlineSuggestionToolbar\");\n      }\n      static {\n        this.InlineEditToolbar = new _MenuId(\"InlineEditToolbar\");\n      }\n      static {\n        this.ChatContext = new _MenuId(\"ChatContext\");\n      }\n      static {\n        this.ChatCodeBlock = new _MenuId(\"ChatCodeblock\");\n      }\n      static {\n        this.ChatCompareBlock = new _MenuId(\"ChatCompareBlock\");\n      }\n      static {\n        this.ChatMessageTitle = new _MenuId(\"ChatMessageTitle\");\n      }\n      static {\n        this.ChatMessageFooter = new _MenuId(\"ChatMessageFooter\");\n      }\n      static {\n        this.ChatExecute = new _MenuId(\"ChatExecute\");\n      }\n      static {\n        this.ChatExecuteSecondary = new _MenuId(\"ChatExecuteSecondary\");\n      }\n      static {\n        this.ChatInput = new _MenuId(\"ChatInput\");\n      }\n      static {\n        this.ChatInputSide = new _MenuId(\"ChatInputSide\");\n      }\n      static {\n        this.ChatModePicker = new _MenuId(\"ChatModePicker\");\n      }\n      static {\n        this.ChatEditingWidgetToolbar = new _MenuId(\"ChatEditingWidgetToolbar\");\n      }\n      static {\n        this.ChatEditingEditorContent = new _MenuId(\"ChatEditingEditorContent\");\n      }\n      static {\n        this.ChatEditingEditorHunk = new _MenuId(\"ChatEditingEditorHunk\");\n      }\n      static {\n        this.ChatEditingDeletedNotebookCell = new _MenuId(\"ChatEditingDeletedNotebookCell\");\n      }\n      static {\n        this.ChatInputAttachmentToolbar = new _MenuId(\"ChatInputAttachmentToolbar\");\n      }\n      static {\n        this.ChatEditingWidgetModifiedFilesToolbar = new _MenuId(\"ChatEditingWidgetModifiedFilesToolbar\");\n      }\n      static {\n        this.ChatInputResourceAttachmentContext = new _MenuId(\"ChatInputResourceAttachmentContext\");\n      }\n      static {\n        this.ChatInputSymbolAttachmentContext = new _MenuId(\"ChatInputSymbolAttachmentContext\");\n      }\n      static {\n        this.ChatInlineResourceAnchorContext = new _MenuId(\"ChatInlineResourceAnchorContext\");\n      }\n      static {\n        this.ChatInlineSymbolAnchorContext = new _MenuId(\"ChatInlineSymbolAnchorContext\");\n      }\n      static {\n        this.ChatMessageCheckpoint = new _MenuId(\"ChatMessageCheckpoint\");\n      }\n      static {\n        this.ChatMessageRestoreCheckpoint = new _MenuId(\"ChatMessageRestoreCheckpoint\");\n      }\n      static {\n        this.ChatEditingCodeBlockContext = new _MenuId(\"ChatEditingCodeBlockContext\");\n      }\n      static {\n        this.ChatTitleBarMenu = new _MenuId(\"ChatTitleBarMenu\");\n      }\n      static {\n        this.ChatAttachmentsContext = new _MenuId(\"ChatAttachmentsContext\");\n      }\n      static {\n        this.ChatToolOutputResourceToolbar = new _MenuId(\"ChatToolOutputResourceToolbar\");\n      }\n      static {\n        this.ChatTextEditorMenu = new _MenuId(\"ChatTextEditorMenu\");\n      }\n      static {\n        this.ChatToolOutputResourceContext = new _MenuId(\"ChatToolOutputResourceContext\");\n      }\n      static {\n        this.ChatMultiDiffContext = new _MenuId(\"ChatMultiDiffContext\");\n      }\n      static {\n        this.ChatSessionsMenu = new _MenuId(\"ChatSessionsMenu\");\n      }\n      static {\n        this.ChatConfirmationMenu = new _MenuId(\"ChatConfirmationMenu\");\n      }\n      static {\n        this.AccessibleView = new _MenuId(\"AccessibleView\");\n      }\n      static {\n        this.MultiDiffEditorFileToolbar = new _MenuId(\"MultiDiffEditorFileToolbar\");\n      }\n      static {\n        this.DiffEditorHunkToolbar = new _MenuId(\"DiffEditorHunkToolbar\");\n      }\n      static {\n        this.DiffEditorSelectionToolbar = new _MenuId(\"DiffEditorSelectionToolbar\");\n      }\n      /**\n       * Create a new `MenuId` with the unique identifier. Will throw if a menu\n       * with the identifier already exists, use `MenuId.for(ident)` or a unique\n       * identifier\n       */\n      constructor(identifier) {\n        if (_MenuId._instances.has(identifier)) {\n          throw new TypeError(`MenuId with identifier '${identifier}' already exists. Use MenuId.for(ident) or a unique identifier`);\n        }\n        _MenuId._instances.set(identifier, this);\n        this.id = identifier;\n      }\n    };\n    IMenuService = createDecorator(\"menuService\");\n    MenuRegistryChangeEvent = class _MenuRegistryChangeEvent {\n      static {\n        this._all = /* @__PURE__ */ new Map();\n      }\n      static for(id) {\n        let value = this._all.get(id);\n        if (!value) {\n          value = new _MenuRegistryChangeEvent(id);\n          this._all.set(id, value);\n        }\n        return value;\n      }\n      static merge(events) {\n        const ids = /* @__PURE__ */ new Set();\n        for (const item of events) {\n          if (item instanceof _MenuRegistryChangeEvent) {\n            ids.add(item.id);\n          }\n        }\n        return ids;\n      }\n      constructor(id) {\n        this.id = id;\n        this.has = (candidate) =\u003e candidate === id;\n      }\n    };\n    MenuRegistry = new class {\n      constructor() {\n        this._commands = /* @__PURE__ */ new Map();\n        this._menuItems = /* @__PURE__ */ new Map();\n        this._onDidChangeMenu = new MicrotaskEmitter({\n          merge: MenuRegistryChangeEvent.merge\n        });\n        this.onDidChangeMenu = this._onDidChangeMenu.event;\n      }\n      addCommand(command) {\n        this._commands.set(command.id, command);\n        this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n        return markAsSingleton(toDisposable(() =\u003e {\n          if (this._commands.delete(command.id)) {\n            this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n          }\n        }));\n      }\n      getCommand(id) {\n        return this._commands.get(id);\n      }\n      getCommands() {\n        const map = /* @__PURE__ */ new Map();\n        this._commands.forEach((value, key) =\u003e map.set(key, value));\n        return map;\n      }\n      appendMenuItem(id, item) {\n        let list2 = this._menuItems.get(id);\n        if (!list2) {\n          list2 = new LinkedList();\n          this._menuItems.set(id, list2);\n        }\n        const rm = list2.push(item);\n        this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n        return markAsSingleton(toDisposable(() =\u003e {\n          rm();\n          this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n        }));\n      }\n      appendMenuItems(items) {\n        const result = new DisposableStore();\n        for (const { id, item } of items) {\n          result.add(this.appendMenuItem(id, item));\n        }\n        return result;\n      }\n      getMenuItems(id) {\n        let result;\n        if (this._menuItems.has(id)) {\n          result = [...this._menuItems.get(id)];\n        } else {\n          result = [];\n        }\n        if (id === MenuId.CommandPalette) {\n          this._appendImplicitItems(result);\n        }\n        return result;\n      }\n      _appendImplicitItems(result) {\n        const set = /* @__PURE__ */ new Set();\n        for (const item of result) {\n          if (isIMenuItem(item)) {\n            set.add(item.command.id);\n            if (item.alt) {\n              set.add(item.alt.id);\n            }\n          }\n        }\n        this._commands.forEach((command, id) =\u003e {\n          if (!set.has(id)) {\n            result.push({ command });\n          }\n        });\n      }\n    }();\n    SubmenuItemAction = class extends SubmenuAction {\n      constructor(item, hideActions, actions) {\n        super(`submenuitem.${item.submenu.id}`, typeof item.title === \"string\" ? item.title : item.title.value, actions, \"submenu\");\n        this.item = item;\n        this.hideActions = hideActions;\n      }\n    };\n    MenuItemAction = MenuItemAction_1 = class MenuItemAction2 {\n      static label(action, options2) {\n        return options2?.renderShortTitle \u0026\u0026 action.shortTitle ? typeof action.shortTitle === \"string\" ? action.shortTitle : action.shortTitle.value : typeof action.title === \"string\" ? action.title : action.title.value;\n      }\n      constructor(item, alt, options2, hideActions, menuKeybinding, contextKeyService, _commandService) {\n        this.hideActions = hideActions;\n        this.menuKeybinding = menuKeybinding;\n        this._commandService = _commandService;\n        this.id = item.id;\n        this.label = MenuItemAction_1.label(item, options2);\n        this.tooltip = (typeof item.tooltip === \"string\" ? item.tooltip : item.tooltip?.value) ?? \"\";\n        this.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);\n        this.checked = void 0;\n        let icon;\n        if (item.toggled) {\n          const toggled = item.toggled.condition ? item.toggled : { condition: item.toggled };\n          this.checked = contextKeyService.contextMatchesRules(toggled.condition);\n          if (this.checked \u0026\u0026 toggled.tooltip) {\n            this.tooltip = typeof toggled.tooltip === \"string\" ? toggled.tooltip : toggled.tooltip.value;\n          }\n          if (this.checked \u0026\u0026 ThemeIcon.isThemeIcon(toggled.icon)) {\n            icon = toggled.icon;\n          }\n          if (this.checked \u0026\u0026 toggled.title) {\n            this.label = typeof toggled.title === \"string\" ? toggled.title : toggled.title.value;\n          }\n        }\n        if (!icon) {\n          icon = ThemeIcon.isThemeIcon(item.icon) ? item.icon : void 0;\n        }\n        this.item = item;\n        this.alt = alt ? new MenuItemAction_1(alt, void 0, options2, hideActions, void 0, contextKeyService, _commandService) : void 0;\n        this._options = options2;\n        this.class = icon \u0026\u0026 ThemeIcon.asClassName(icon);\n      }\n      run(...args) {\n        let runArgs = [];\n        if (this._options?.arg) {\n          runArgs = [...runArgs, this._options.arg];\n        }\n        if (this._options?.shouldForwardArgs) {\n          runArgs = [...runArgs, ...args];\n        }\n        return this._commandService.executeCommand(this.id, ...runArgs);\n      }\n    };\n    MenuItemAction = MenuItemAction_1 = __decorate([\n      __param(5, IContextKeyService),\n      __param(6, ICommandService)\n    ], MenuItemAction);\n    Action2 = class {\n      constructor(desc) {\n        this.desc = desc;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/telemetry/common/telemetry.js\nvar ITelemetryService;\nvar init_telemetry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/telemetry/common/telemetry.js\"() {\n    init_instantiation();\n    ITelemetryService = createDecorator(\"telemetryService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/map.js\nfunction isEntries(arg) {\n  return Array.isArray(arg);\n}\nvar _a, _b, _c, ResourceMapEntry, ResourceMap, ResourceSet, LinkedMap, Cache, LRUCache, BidirectionalMap, SetMap, NKeyMap;\nvar init_map = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/map.js\"() {\n    ResourceMapEntry = class {\n      constructor(uri, value) {\n        this.uri = uri;\n        this.value = value;\n      }\n    };\n    ResourceMap = class _ResourceMap {\n      static {\n        this.defaultToKey = (resource) =\u003e resource.toString();\n      }\n      constructor(arg, toKey) {\n        this[_a] = \"ResourceMap\";\n        if (arg instanceof _ResourceMap) {\n          this.map = new Map(arg.map);\n          this.toKey = toKey ?? _ResourceMap.defaultToKey;\n        } else if (isEntries(arg)) {\n          this.map = /* @__PURE__ */ new Map();\n          this.toKey = toKey ?? _ResourceMap.defaultToKey;\n          for (const [resource, value] of arg) {\n            this.set(resource, value);\n          }\n        } else {\n          this.map = /* @__PURE__ */ new Map();\n          this.toKey = arg ?? _ResourceMap.defaultToKey;\n        }\n      }\n      set(resource, value) {\n        this.map.set(this.toKey(resource), new ResourceMapEntry(resource, value));\n        return this;\n      }\n      get(resource) {\n        return this.map.get(this.toKey(resource))?.value;\n      }\n      has(resource) {\n        return this.map.has(this.toKey(resource));\n      }\n      get size() {\n        return this.map.size;\n      }\n      clear() {\n        this.map.clear();\n      }\n      delete(resource) {\n        return this.map.delete(this.toKey(resource));\n      }\n      forEach(clb, thisArg) {\n        if (typeof thisArg !== \"undefined\") {\n          clb = clb.bind(thisArg);\n        }\n        for (const [_, entry] of this.map) {\n          clb(entry.value, entry.uri, this);\n        }\n      }\n      *values() {\n        for (const entry of this.map.values()) {\n          yield entry.value;\n        }\n      }\n      *keys() {\n        for (const entry of this.map.values()) {\n          yield entry.uri;\n        }\n      }\n      *entries() {\n        for (const entry of this.map.values()) {\n          yield [entry.uri, entry.value];\n        }\n      }\n      *[(_a = Symbol.toStringTag, Symbol.iterator)]() {\n        for (const [, entry] of this.map) {\n          yield [entry.uri, entry.value];\n        }\n      }\n    };\n    ResourceSet = class {\n      constructor(entriesOrKey, toKey) {\n        this[_b] = \"ResourceSet\";\n        if (!entriesOrKey || typeof entriesOrKey === \"function\") {\n          this._map = new ResourceMap(entriesOrKey);\n        } else {\n          this._map = new ResourceMap(toKey);\n          entriesOrKey.forEach(this.add, this);\n        }\n      }\n      get size() {\n        return this._map.size;\n      }\n      add(value) {\n        this._map.set(value, value);\n        return this;\n      }\n      clear() {\n        this._map.clear();\n      }\n      delete(value) {\n        return this._map.delete(value);\n      }\n      forEach(callbackfn, thisArg) {\n        this._map.forEach((_value, key) =\u003e callbackfn.call(thisArg, key, key, this));\n      }\n      has(value) {\n        return this._map.has(value);\n      }\n      entries() {\n        return this._map.entries();\n      }\n      keys() {\n        return this._map.keys();\n      }\n      values() {\n        return this._map.keys();\n      }\n      [(_b = Symbol.toStringTag, Symbol.iterator)]() {\n        return this.keys();\n      }\n    };\n    LinkedMap = class {\n      constructor() {\n        this[_c] = \"LinkedMap\";\n        this._map = /* @__PURE__ */ new Map();\n        this._head = void 0;\n        this._tail = void 0;\n        this._size = 0;\n        this._state = 0;\n      }\n      clear() {\n        this._map.clear();\n        this._head = void 0;\n        this._tail = void 0;\n        this._size = 0;\n        this._state++;\n      }\n      isEmpty() {\n        return !this._head \u0026\u0026 !this._tail;\n      }\n      get size() {\n        return this._size;\n      }\n      get first() {\n        return this._head?.value;\n      }\n      get last() {\n        return this._tail?.value;\n      }\n      has(key) {\n        return this._map.has(key);\n      }\n      get(key, touch = 0) {\n        const item = this._map.get(key);\n        if (!item) {\n          return void 0;\n        }\n        if (touch !== 0) {\n          this.touch(item, touch);\n        }\n        return item.value;\n      }\n      set(key, value, touch = 0) {\n        let item = this._map.get(key);\n        if (item) {\n          item.value = value;\n          if (touch !== 0) {\n            this.touch(item, touch);\n          }\n        } else {\n          item = { key, value, next: void 0, previous: void 0 };\n          switch (touch) {\n            case 0:\n              this.addItemLast(item);\n              break;\n            case 1:\n              this.addItemFirst(item);\n              break;\n            case 2:\n              this.addItemLast(item);\n              break;\n            default:\n              this.addItemLast(item);\n              break;\n          }\n          this._map.set(key, item);\n          this._size++;\n        }\n        return this;\n      }\n      delete(key) {\n        return !!this.remove(key);\n      }\n      remove(key) {\n        const item = this._map.get(key);\n        if (!item) {\n          return void 0;\n        }\n        this._map.delete(key);\n        this.removeItem(item);\n        this._size--;\n        return item.value;\n      }\n      shift() {\n        if (!this._head \u0026\u0026 !this._tail) {\n          return void 0;\n        }\n        if (!this._head || !this._tail) {\n          throw new Error(\"Invalid list\");\n        }\n        const item = this._head;\n        this._map.delete(item.key);\n        this.removeItem(item);\n        this._size--;\n        return item.value;\n      }\n      forEach(callbackfn, thisArg) {\n        const state = this._state;\n        let current = this._head;\n        while (current) {\n          if (thisArg) {\n            callbackfn.bind(thisArg)(current.value, current.key, this);\n          } else {\n            callbackfn(current.value, current.key, this);\n          }\n          if (this._state !== state) {\n            throw new Error(`LinkedMap got modified during iteration.`);\n          }\n          current = current.next;\n        }\n      }\n      keys() {\n        const map = this;\n        const state = this._state;\n        let current = this._head;\n        const iterator = {\n          [Symbol.iterator]() {\n            return iterator;\n          },\n          next() {\n            if (map._state !== state) {\n              throw new Error(`LinkedMap got modified during iteration.`);\n            }\n            if (current) {\n              const result = { value: current.key, done: false };\n              current = current.next;\n              return result;\n            } else {\n              return { value: void 0, done: true };\n            }\n          }\n        };\n        return iterator;\n      }\n      values() {\n        const map = this;\n        const state = this._state;\n        let current = this._head;\n        const iterator = {\n          [Symbol.iterator]() {\n            return iterator;\n          },\n          next() {\n            if (map._state !== state) {\n              throw new Error(`LinkedMap got modified during iteration.`);\n            }\n            if (current) {\n              const result = { value: current.value, done: false };\n              current = current.next;\n              return result;\n            } else {\n              return { value: void 0, done: true };\n            }\n          }\n        };\n        return iterator;\n      }\n      entries() {\n        const map = this;\n        const state = this._state;\n        let current = this._head;\n        const iterator = {\n          [Symbol.iterator]() {\n            return iterator;\n          },\n          next() {\n            if (map._state !== state) {\n              throw new Error(`LinkedMap got modified during iteration.`);\n            }\n            if (current) {\n              const result = { value: [current.key, current.value], done: false };\n              current = current.next;\n              return result;\n            } else {\n              return { value: void 0, done: true };\n            }\n          }\n        };\n        return iterator;\n      }\n      [(_c = Symbol.toStringTag, Symbol.iterator)]() {\n        return this.entries();\n      }\n      trimOld(newSize) {\n        if (newSize \u003e= this.size) {\n          return;\n        }\n        if (newSize === 0) {\n          this.clear();\n          return;\n        }\n        let current = this._head;\n        let currentSize = this.size;\n        while (current \u0026\u0026 currentSize \u003e newSize) {\n          this._map.delete(current.key);\n          current = current.next;\n          currentSize--;\n        }\n        this._head = current;\n        this._size = currentSize;\n        if (current) {\n          current.previous = void 0;\n        }\n        this._state++;\n      }\n      trimNew(newSize) {\n        if (newSize \u003e= this.size) {\n          return;\n        }\n        if (newSize === 0) {\n          this.clear();\n          return;\n        }\n        let current = this._tail;\n        let currentSize = this.size;\n        while (current \u0026\u0026 currentSize \u003e newSize) {\n          this._map.delete(current.key);\n          current = current.previous;\n          currentSize--;\n        }\n        this._tail = current;\n        this._size = currentSize;\n        if (current) {\n          current.next = void 0;\n        }\n        this._state++;\n      }\n      addItemFirst(item) {\n        if (!this._head \u0026\u0026 !this._tail) {\n          this._tail = item;\n        } else if (!this._head) {\n          throw new Error(\"Invalid list\");\n        } else {\n          item.next = this._head;\n          this._head.previous = item;\n        }\n        this._head = item;\n        this._state++;\n      }\n      addItemLast(item) {\n        if (!this._head \u0026\u0026 !this._tail) {\n          this._head = item;\n        } else if (!this._tail) {\n          throw new Error(\"Invalid list\");\n        } else {\n          item.previous = this._tail;\n          this._tail.next = item;\n        }\n        this._tail = item;\n        this._state++;\n      }\n      removeItem(item) {\n        if (item === this._head \u0026\u0026 item === this._tail) {\n          this._head = void 0;\n          this._tail = void 0;\n        } else if (item === this._head) {\n          if (!item.next) {\n            throw new Error(\"Invalid list\");\n          }\n          item.next.previous = void 0;\n          this._head = item.next;\n        } else if (item === this._tail) {\n          if (!item.previous) {\n            throw new Error(\"Invalid list\");\n          }\n          item.previous.next = void 0;\n          this._tail = item.previous;\n        } else {\n          const next = item.next;\n          const previous = item.previous;\n          if (!next || !previous) {\n            throw new Error(\"Invalid list\");\n          }\n          next.previous = previous;\n          previous.next = next;\n        }\n        item.next = void 0;\n        item.previous = void 0;\n        this._state++;\n      }\n      touch(item, touch) {\n        if (!this._head || !this._tail) {\n          throw new Error(\"Invalid list\");\n        }\n        if (touch !== 1 \u0026\u0026 touch !== 2) {\n          return;\n        }\n        if (touch === 1) {\n          if (item === this._head) {\n            return;\n          }\n          const next = item.next;\n          const previous = item.previous;\n          if (item === this._tail) {\n            previous.next = void 0;\n            this._tail = previous;\n          } else {\n            next.previous = previous;\n            previous.next = next;\n          }\n          item.previous = void 0;\n          item.next = this._head;\n          this._head.previous = item;\n          this._head = item;\n          this._state++;\n        } else if (touch === 2) {\n          if (item === this._tail) {\n            return;\n          }\n          const next = item.next;\n          const previous = item.previous;\n          if (item === this._head) {\n            next.previous = void 0;\n            this._head = next;\n          } else {\n            next.previous = previous;\n            previous.next = next;\n          }\n          item.next = void 0;\n          item.previous = this._tail;\n          this._tail.next = item;\n          this._tail = item;\n          this._state++;\n        }\n      }\n      toJSON() {\n        const data = [];\n        this.forEach((value, key) =\u003e {\n          data.push([key, value]);\n        });\n        return data;\n      }\n      fromJSON(data) {\n        this.clear();\n        for (const [key, value] of data) {\n          this.set(key, value);\n        }\n      }\n    };\n    Cache = class extends LinkedMap {\n      constructor(limit, ratio = 1) {\n        super();\n        this._limit = limit;\n        this._ratio = Math.min(Math.max(0, ratio), 1);\n      }\n      get limit() {\n        return this._limit;\n      }\n      set limit(limit) {\n        this._limit = limit;\n        this.checkTrim();\n      }\n      get(key, touch = 2) {\n        return super.get(key, touch);\n      }\n      peek(key) {\n        return super.get(\n          key,\n          0\n          /* Touch.None */\n        );\n      }\n      set(key, value) {\n        super.set(\n          key,\n          value,\n          2\n          /* Touch.AsNew */\n        );\n        return this;\n      }\n      checkTrim() {\n        if (this.size \u003e this._limit) {\n          this.trim(Math.round(this._limit * this._ratio));\n        }\n      }\n    };\n    LRUCache = class extends Cache {\n      constructor(limit, ratio = 1) {\n        super(limit, ratio);\n      }\n      trim(newSize) {\n        this.trimOld(newSize);\n      }\n      set(key, value) {\n        super.set(key, value);\n        this.checkTrim();\n        return this;\n      }\n    };\n    BidirectionalMap = class {\n      constructor(entries2) {\n        this._m1 = /* @__PURE__ */ new Map();\n        this._m2 = /* @__PURE__ */ new Map();\n        if (entries2) {\n          for (const [key, value] of entries2) {\n            this.set(key, value);\n          }\n        }\n      }\n      clear() {\n        this._m1.clear();\n        this._m2.clear();\n      }\n      set(key, value) {\n        this._m1.set(key, value);\n        this._m2.set(value, key);\n      }\n      get(key) {\n        return this._m1.get(key);\n      }\n      getKey(value) {\n        return this._m2.get(value);\n      }\n      delete(key) {\n        const value = this._m1.get(key);\n        if (value === void 0) {\n          return false;\n        }\n        this._m1.delete(key);\n        this._m2.delete(value);\n        return true;\n      }\n      keys() {\n        return this._m1.keys();\n      }\n      values() {\n        return this._m1.values();\n      }\n    };\n    SetMap = class {\n      constructor() {\n        this.map = /* @__PURE__ */ new Map();\n      }\n      add(key, value) {\n        let values = this.map.get(key);\n        if (!values) {\n          values = /* @__PURE__ */ new Set();\n          this.map.set(key, values);\n        }\n        values.add(value);\n      }\n      delete(key, value) {\n        const values = this.map.get(key);\n        if (!values) {\n          return;\n        }\n        values.delete(value);\n        if (values.size === 0) {\n          this.map.delete(key);\n        }\n      }\n      forEach(key, fn) {\n        const values = this.map.get(key);\n        if (!values) {\n          return;\n        }\n        values.forEach(fn);\n      }\n    };\n    NKeyMap = class {\n      constructor() {\n        this._data = /* @__PURE__ */ new Map();\n      }\n      /**\n       * Sets a value on the map. Note that unlike a standard `Map`, the first argument is the value.\n       * This is because the spread operator is used for the keys and must be last..\n       * @param value The value to set.\n       * @param keys The keys for the value.\n       */\n      set(value, ...keys) {\n        let currentMap = this._data;\n        for (let i2 = 0; i2 \u003c keys.length - 1; i2++) {\n          if (!currentMap.has(keys[i2])) {\n            currentMap.set(keys[i2], /* @__PURE__ */ new Map());\n          }\n          currentMap = currentMap.get(keys[i2]);\n        }\n        currentMap.set(keys[keys.length - 1], value);\n      }\n      get(...keys) {\n        let currentMap = this._data;\n        for (let i2 = 0; i2 \u003c keys.length - 1; i2++) {\n          if (!currentMap.has(keys[i2])) {\n            return void 0;\n          }\n          currentMap = currentMap.get(keys[i2]);\n        }\n        return currentMap.get(keys[keys.length - 1]);\n      }\n      clear() {\n        this._data.clear();\n      }\n      /**\n       * Get a textual representation of the map for debugging purposes.\n       */\n      toString() {\n        const printMap = (map, depth) =\u003e {\n          let result = \"\";\n          for (const [key, value] of map) {\n            result += `${\"  \".repeat(depth)}${key}: `;\n            if (value instanceof Map) {\n              result += \"\\n\" + printMap(value, depth + 1);\n            } else {\n              result += `${value}\n`;\n            }\n          }\n          return result;\n        };\n        return printMap(this._data, 0);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/extpath.js\nfunction isPathSeparator2(code) {\n  return code === 47 || code === 92;\n}\nfunction toSlashes(osPath) {\n  return osPath.replace(/[\\\\/]/g, posix.sep);\n}\nfunction toPosixPath(osPath) {\n  if (osPath.indexOf(\"/\") === -1) {\n    osPath = toSlashes(osPath);\n  }\n  if (/^[a-zA-Z]:(\\/|$)/.test(osPath)) {\n    osPath = \"/\" + osPath;\n  }\n  return osPath;\n}\nfunction getRoot(path, sep2 = posix.sep) {\n  if (!path) {\n    return \"\";\n  }\n  const len = path.length;\n  const firstLetter = path.charCodeAt(0);\n  if (isPathSeparator2(firstLetter)) {\n    if (isPathSeparator2(path.charCodeAt(1))) {\n      if (!isPathSeparator2(path.charCodeAt(2))) {\n        let pos2 = 3;\n        const start = pos2;\n        for (; pos2 \u003c len; pos2++) {\n          if (isPathSeparator2(path.charCodeAt(pos2))) {\n            break;\n          }\n        }\n        if (start !== pos2 \u0026\u0026 !isPathSeparator2(path.charCodeAt(pos2 + 1))) {\n          pos2 += 1;\n          for (; pos2 \u003c len; pos2++) {\n            if (isPathSeparator2(path.charCodeAt(pos2))) {\n              return path.slice(0, pos2 + 1).replace(/[\\\\/]/g, sep2);\n            }\n          }\n        }\n      }\n    }\n    return sep2;\n  } else if (isWindowsDriveLetter(firstLetter)) {\n    if (path.charCodeAt(1) === 58) {\n      if (isPathSeparator2(path.charCodeAt(2))) {\n        return path.slice(0, 2) + sep2;\n      } else {\n        return path.slice(0, 2);\n      }\n    }\n  }\n  let pos = path.indexOf(\"://\");\n  if (pos !== -1) {\n    pos += 3;\n    for (; pos \u003c len; pos++) {\n      if (isPathSeparator2(path.charCodeAt(pos))) {\n        return path.slice(0, pos + 1);\n      }\n    }\n  }\n  return \"\";\n}\nfunction isEqualOrParent(base, parentCandidate, ignoreCase, separator2 = sep) {\n  if (base === parentCandidate) {\n    return true;\n  }\n  if (!base || !parentCandidate) {\n    return false;\n  }\n  if (parentCandidate.length \u003e base.length) {\n    return false;\n  }\n  if (ignoreCase) {\n    const beginsWith = startsWithIgnoreCase(base, parentCandidate);\n    if (!beginsWith) {\n      return false;\n    }\n    if (parentCandidate.length === base.length) {\n      return true;\n    }\n    let sepOffset = parentCandidate.length;\n    if (parentCandidate.charAt(parentCandidate.length - 1) === separator2) {\n      sepOffset--;\n    }\n    return base.charAt(sepOffset) === separator2;\n  }\n  if (parentCandidate.charAt(parentCandidate.length - 1) !== separator2) {\n    parentCandidate += separator2;\n  }\n  return base.indexOf(parentCandidate) === 0;\n}\nfunction isWindowsDriveLetter(char0) {\n  return char0 \u003e= 65 \u0026\u0026 char0 \u003c= 90 || char0 \u003e= 97 \u0026\u0026 char0 \u003c= 122;\n}\nfunction hasDriveLetter(path, isWindowsOS = isWindows) {\n  if (isWindowsOS) {\n    return isWindowsDriveLetter(path.charCodeAt(0)) \u0026\u0026 path.charCodeAt(1) === 58;\n  }\n  return false;\n}\nvar init_extpath = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/extpath.js\"() {\n    init_path();\n    init_platform();\n    init_strings();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/resources.js\nfunction originalFSPath(uri) {\n  return uriToFsPath(uri, true);\n}\nvar ExtUri, extUri, extUriBiasedIgnorePathCase, extUriIgnorePathCase, isEqual, isEqualOrParent2, getComparisonKey, basenameOrAuthority, basename2, extname2, dirname2, joinPath, normalizePath, relativePath, resolvePath, isAbsolutePath, isEqualAuthority, hasTrailingPathSeparator, removeTrailingPathSeparator, addTrailingPathSeparator, DataUri;\nvar init_resources = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/resources.js\"() {\n    init_extpath();\n    init_network();\n    init_path();\n    init_platform();\n    init_strings();\n    init_uri();\n    ExtUri = class {\n      constructor(_ignorePathCasing) {\n        this._ignorePathCasing = _ignorePathCasing;\n      }\n      compare(uri1, uri2, ignoreFragment = false) {\n        if (uri1 === uri2) {\n          return 0;\n        }\n        return compare(this.getComparisonKey(uri1, ignoreFragment), this.getComparisonKey(uri2, ignoreFragment));\n      }\n      isEqual(uri1, uri2, ignoreFragment = false) {\n        if (uri1 === uri2) {\n          return true;\n        }\n        if (!uri1 || !uri2) {\n          return false;\n        }\n        return this.getComparisonKey(uri1, ignoreFragment) === this.getComparisonKey(uri2, ignoreFragment);\n      }\n      getComparisonKey(uri, ignoreFragment = false) {\n        return uri.with({\n          path: this._ignorePathCasing(uri) ? uri.path.toLowerCase() : void 0,\n          fragment: ignoreFragment ? null : void 0\n        }).toString();\n      }\n      isEqualOrParent(base, parentCandidate, ignoreFragment = false) {\n        if (base.scheme === parentCandidate.scheme) {\n          if (base.scheme === Schemas.file) {\n            return isEqualOrParent(originalFSPath(base), originalFSPath(parentCandidate), this._ignorePathCasing(base)) \u0026\u0026 base.query === parentCandidate.query \u0026\u0026 (ignoreFragment || base.fragment === parentCandidate.fragment);\n          }\n          if (isEqualAuthority(base.authority, parentCandidate.authority)) {\n            return isEqualOrParent(base.path, parentCandidate.path, this._ignorePathCasing(base), \"/\") \u0026\u0026 base.query === parentCandidate.query \u0026\u0026 (ignoreFragment || base.fragment === parentCandidate.fragment);\n          }\n        }\n        return false;\n      }\n      // --- path math\n      joinPath(resource, ...pathFragment) {\n        return URI.joinPath(resource, ...pathFragment);\n      }\n      basenameOrAuthority(resource) {\n        return basename2(resource) || resource.authority;\n      }\n      basename(resource) {\n        return posix.basename(resource.path);\n      }\n      extname(resource) {\n        return posix.extname(resource.path);\n      }\n      dirname(resource) {\n        if (resource.path.length === 0) {\n          return resource;\n        }\n        let dirname3;\n        if (resource.scheme === Schemas.file) {\n          dirname3 = URI.file(dirname(originalFSPath(resource))).path;\n        } else {\n          dirname3 = posix.dirname(resource.path);\n          if (resource.authority \u0026\u0026 dirname3.length \u0026\u0026 dirname3.charCodeAt(0) !== 47) {\n            console.error(`dirname(\"${resource.toString})) resulted in a relative path`);\n            dirname3 = \"/\";\n          }\n        }\n        return resource.with({\n          path: dirname3\n        });\n      }\n      normalizePath(resource) {\n        if (!resource.path.length) {\n          return resource;\n        }\n        let normalizedPath;\n        if (resource.scheme === Schemas.file) {\n          normalizedPath = URI.file(normalize(originalFSPath(resource))).path;\n        } else {\n          normalizedPath = posix.normalize(resource.path);\n        }\n        return resource.with({\n          path: normalizedPath\n        });\n      }\n      relativePath(from, to) {\n        if (from.scheme !== to.scheme || !isEqualAuthority(from.authority, to.authority)) {\n          return void 0;\n        }\n        if (from.scheme === Schemas.file) {\n          const relativePath2 = relative(originalFSPath(from), originalFSPath(to));\n          return isWindows ? toSlashes(relativePath2) : relativePath2;\n        }\n        let fromPath = from.path || \"/\";\n        const toPath = to.path || \"/\";\n        if (this._ignorePathCasing(from)) {\n          let i2 = 0;\n          for (const len = Math.min(fromPath.length, toPath.length); i2 \u003c len; i2++) {\n            if (fromPath.charCodeAt(i2) !== toPath.charCodeAt(i2)) {\n              if (fromPath.charAt(i2).toLowerCase() !== toPath.charAt(i2).toLowerCase()) {\n                break;\n              }\n            }\n          }\n          fromPath = toPath.substr(0, i2) + fromPath.substr(i2);\n        }\n        return posix.relative(fromPath, toPath);\n      }\n      resolvePath(base, path) {\n        if (base.scheme === Schemas.file) {\n          const newURI = URI.file(resolve(originalFSPath(base), path));\n          return base.with({\n            authority: newURI.authority,\n            path: newURI.path\n          });\n        }\n        path = toPosixPath(path);\n        return base.with({\n          path: posix.resolve(base.path, path)\n        });\n      }\n      // --- misc\n      isAbsolutePath(resource) {\n        return !!resource.path \u0026\u0026 resource.path[0] === \"/\";\n      }\n      isEqualAuthority(a1, a2) {\n        return a1 === a2 || a1 !== void 0 \u0026\u0026 a2 !== void 0 \u0026\u0026 equalsIgnoreCase(a1, a2);\n      }\n      hasTrailingPathSeparator(resource, sep2 = sep) {\n        if (resource.scheme === Schemas.file) {\n          const fsp = originalFSPath(resource);\n          return fsp.length \u003e getRoot(fsp).length \u0026\u0026 fsp[fsp.length - 1] === sep2;\n        } else {\n          const p = resource.path;\n          return p.length \u003e 1 \u0026\u0026 p.charCodeAt(p.length - 1) === 47 \u0026\u0026 !/^[a-zA-Z]:(\\/$|\\\\$)/.test(resource.fsPath);\n        }\n      }\n      removeTrailingPathSeparator(resource, sep2 = sep) {\n        if (hasTrailingPathSeparator(resource, sep2)) {\n          return resource.with({ path: resource.path.substr(0, resource.path.length - 1) });\n        }\n        return resource;\n      }\n      addTrailingPathSeparator(resource, sep2 = sep) {\n        let isRootSep = false;\n        if (resource.scheme === Schemas.file) {\n          const fsp = originalFSPath(resource);\n          isRootSep = fsp !== void 0 \u0026\u0026 fsp.length === getRoot(fsp).length \u0026\u0026 fsp[fsp.length - 1] === sep2;\n        } else {\n          sep2 = \"/\";\n          const p = resource.path;\n          isRootSep = p.length === 1 \u0026\u0026 p.charCodeAt(p.length - 1) === 47;\n        }\n        if (!isRootSep \u0026\u0026 !hasTrailingPathSeparator(resource, sep2)) {\n          return resource.with({ path: resource.path + \"/\" });\n        }\n        return resource;\n      }\n    };\n    extUri = new ExtUri(() =\u003e false);\n    extUriBiasedIgnorePathCase = new ExtUri((uri) =\u003e {\n      return uri.scheme === Schemas.file ? !isLinux : true;\n    });\n    extUriIgnorePathCase = new ExtUri((_) =\u003e true);\n    isEqual = extUri.isEqual.bind(extUri);\n    isEqualOrParent2 = extUri.isEqualOrParent.bind(extUri);\n    getComparisonKey = extUri.getComparisonKey.bind(extUri);\n    basenameOrAuthority = extUri.basenameOrAuthority.bind(extUri);\n    basename2 = extUri.basename.bind(extUri);\n    extname2 = extUri.extname.bind(extUri);\n    dirname2 = extUri.dirname.bind(extUri);\n    joinPath = extUri.joinPath.bind(extUri);\n    normalizePath = extUri.normalizePath.bind(extUri);\n    relativePath = extUri.relativePath.bind(extUri);\n    resolvePath = extUri.resolvePath.bind(extUri);\n    isAbsolutePath = extUri.isAbsolutePath.bind(extUri);\n    isEqualAuthority = extUri.isEqualAuthority.bind(extUri);\n    hasTrailingPathSeparator = extUri.hasTrailingPathSeparator.bind(extUri);\n    removeTrailingPathSeparator = extUri.removeTrailingPathSeparator.bind(extUri);\n    addTrailingPathSeparator = extUri.addTrailingPathSeparator.bind(extUri);\n    (function(DataUri2) {\n      DataUri2.META_DATA_LABEL = \"label\";\n      DataUri2.META_DATA_DESCRIPTION = \"description\";\n      DataUri2.META_DATA_SIZE = \"size\";\n      DataUri2.META_DATA_MIME = \"mime\";\n      function parseMetaData(dataUri) {\n        const metadata = /* @__PURE__ */ new Map();\n        const meta = dataUri.path.substring(dataUri.path.indexOf(\";\") + 1, dataUri.path.lastIndexOf(\";\"));\n        meta.split(\";\").forEach((property) =\u003e {\n          const [key, value] = property.split(\":\");\n          if (key \u0026\u0026 value) {\n            metadata.set(key, value);\n          }\n        });\n        const mime = dataUri.path.substring(0, dataUri.path.indexOf(\";\"));\n        if (mime) {\n          metadata.set(DataUri2.META_DATA_MIME, mime);\n        }\n        return metadata;\n      }\n      DataUri2.parseMetaData = parseMetaData;\n    })(DataUri || (DataUri = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/log/common/log.js\nfunction canLog(loggerLevel, messageLevel) {\n  return loggerLevel !== LogLevel.Off \u0026\u0026 loggerLevel \u003c= messageLevel;\n}\nfunction LogLevelToString(logLevel) {\n  switch (logLevel) {\n    case LogLevel.Trace:\n      return \"trace\";\n    case LogLevel.Debug:\n      return \"debug\";\n    case LogLevel.Info:\n      return \"info\";\n    case LogLevel.Warning:\n      return \"warn\";\n    case LogLevel.Error:\n      return \"error\";\n    case LogLevel.Off:\n      return \"off\";\n  }\n}\nvar ILogService, ILoggerService, LogLevel, DEFAULT_LOG_LEVEL, AbstractLogger, ConsoleLogger, MultiplexLogger, AbstractLoggerService, NullLogger, NullLoggerService, CONTEXT_LOG_LEVEL;\nvar init_log = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/log/common/log.js\"() {\n    init_event();\n    init_hash();\n    init_lifecycle();\n    init_map();\n    init_resources();\n    init_types();\n    init_uri();\n    init_contextkey();\n    init_instantiation();\n    ILogService = createDecorator(\"logService\");\n    ILoggerService = createDecorator(\"loggerService\");\n    (function(LogLevel2) {\n      LogLevel2[LogLevel2[\"Off\"] = 0] = \"Off\";\n      LogLevel2[LogLevel2[\"Trace\"] = 1] = \"Trace\";\n      LogLevel2[LogLevel2[\"Debug\"] = 2] = \"Debug\";\n      LogLevel2[LogLevel2[\"Info\"] = 3] = \"Info\";\n      LogLevel2[LogLevel2[\"Warning\"] = 4] = \"Warning\";\n      LogLevel2[LogLevel2[\"Error\"] = 5] = \"Error\";\n    })(LogLevel || (LogLevel = {}));\n    DEFAULT_LOG_LEVEL = LogLevel.Info;\n    AbstractLogger = class extends Disposable {\n      constructor() {\n        super(...arguments);\n        this.level = DEFAULT_LOG_LEVEL;\n        this._onDidChangeLogLevel = this._register(new Emitter());\n      }\n      get onDidChangeLogLevel() {\n        return this._onDidChangeLogLevel.event;\n      }\n      setLevel(level) {\n        if (this.level !== level) {\n          this.level = level;\n          this._onDidChangeLogLevel.fire(this.level);\n        }\n      }\n      getLevel() {\n        return this.level;\n      }\n      checkLogLevel(level) {\n        return canLog(this.level, level);\n      }\n      canLog(level) {\n        if (this._store.isDisposed) {\n          return false;\n        }\n        return this.checkLogLevel(level);\n      }\n    };\n    ConsoleLogger = class extends AbstractLogger {\n      constructor(logLevel = DEFAULT_LOG_LEVEL, useColors = true) {\n        super();\n        this.useColors = useColors;\n        this.setLevel(logLevel);\n      }\n      trace(message, ...args) {\n        if (this.canLog(LogLevel.Trace)) {\n          if (this.useColors) {\n            console.log(\"%cTRACE\", \"color: #888\", message, ...args);\n          } else {\n            console.log(message, ...args);\n          }\n        }\n      }\n      debug(message, ...args) {\n        if (this.canLog(LogLevel.Debug)) {\n          if (this.useColors) {\n            console.log(\"%cDEBUG\", \"background: #eee; color: #888\", message, ...args);\n          } else {\n            console.log(message, ...args);\n          }\n        }\n      }\n      info(message, ...args) {\n        if (this.canLog(LogLevel.Info)) {\n          if (this.useColors) {\n            console.log(\"%c INFO\", \"color: #33f\", message, ...args);\n          } else {\n            console.log(message, ...args);\n          }\n        }\n      }\n      warn(message, ...args) {\n        if (this.canLog(LogLevel.Warning)) {\n          if (this.useColors) {\n            console.warn(\"%c WARN\", \"color: #993\", message, ...args);\n          } else {\n            console.log(message, ...args);\n          }\n        }\n      }\n      error(message, ...args) {\n        if (this.canLog(LogLevel.Error)) {\n          if (this.useColors) {\n            console.error(\"%c  ERR\", \"color: #f33\", message, ...args);\n          } else {\n            console.error(message, ...args);\n          }\n        }\n      }\n    };\n    MultiplexLogger = class extends AbstractLogger {\n      constructor(loggers) {\n        super();\n        this.loggers = loggers;\n        if (loggers.length) {\n          this.setLevel(loggers[0].getLevel());\n        }\n      }\n      setLevel(level) {\n        for (const logger of this.loggers) {\n          logger.setLevel(level);\n        }\n        super.setLevel(level);\n      }\n      trace(message, ...args) {\n        for (const logger of this.loggers) {\n          logger.trace(message, ...args);\n        }\n      }\n      debug(message, ...args) {\n        for (const logger of this.loggers) {\n          logger.debug(message, ...args);\n        }\n      }\n      info(message, ...args) {\n        for (const logger of this.loggers) {\n          logger.info(message, ...args);\n        }\n      }\n      warn(message, ...args) {\n        for (const logger of this.loggers) {\n          logger.warn(message, ...args);\n        }\n      }\n      error(message, ...args) {\n        for (const logger of this.loggers) {\n          logger.error(message, ...args);\n        }\n      }\n      dispose() {\n        for (const logger of this.loggers) {\n          logger.dispose();\n        }\n        super.dispose();\n      }\n    };\n    AbstractLoggerService = class extends Disposable {\n      constructor(logLevel, logsHome, loggerResources) {\n        super();\n        this.logLevel = logLevel;\n        this.logsHome = logsHome;\n        this._loggers = new ResourceMap();\n        this._onDidChangeLoggers = this._register(new Emitter());\n        this._onDidChangeVisibility = this._register(new Emitter());\n        if (loggerResources) {\n          for (const loggerResource of loggerResources) {\n            this._loggers.set(loggerResource.resource, { logger: void 0, info: loggerResource });\n          }\n        }\n      }\n      getLoggerEntry(resourceOrId) {\n        if (isString(resourceOrId)) {\n          return [...this._loggers.values()].find((logger) =\u003e logger.info.id === resourceOrId);\n        }\n        return this._loggers.get(resourceOrId);\n      }\n      createLogger(idOrResource, options2) {\n        const resource = this.toResource(idOrResource);\n        const id = isString(idOrResource) ? idOrResource : options2?.id ?? hash(resource.toString()).toString(16);\n        let logger = this._loggers.get(resource)?.logger;\n        const logLevel = options2?.logLevel === \"always\" ? LogLevel.Trace : options2?.logLevel;\n        if (!logger) {\n          logger = this.doCreateLogger(resource, logLevel ?? this.getLogLevel(resource) ?? this.logLevel, { ...options2, id });\n        }\n        const loggerEntry = {\n          logger,\n          info: {\n            resource,\n            id,\n            logLevel,\n            name: options2?.name,\n            hidden: options2?.hidden,\n            group: options2?.group,\n            extensionId: options2?.extensionId,\n            when: options2?.when\n          }\n        };\n        this.registerLogger(loggerEntry.info);\n        this._loggers.set(resource, loggerEntry);\n        return logger;\n      }\n      toResource(idOrResource) {\n        return isString(idOrResource) ? joinPath(this.logsHome, `${idOrResource}.log`) : idOrResource;\n      }\n      setVisibility(resourceOrId, visibility) {\n        const logger = this.getLoggerEntry(resourceOrId);\n        if (logger \u0026\u0026 visibility !== !logger.info.hidden) {\n          logger.info.hidden = !visibility;\n          this._loggers.set(logger.info.resource, logger);\n          this._onDidChangeVisibility.fire([logger.info.resource, visibility]);\n        }\n      }\n      getLogLevel(resource) {\n        let logLevel;\n        if (resource) {\n          logLevel = this._loggers.get(resource)?.info.logLevel;\n        }\n        return logLevel ?? this.logLevel;\n      }\n      registerLogger(resource) {\n        const existing = this._loggers.get(resource.resource);\n        if (existing) {\n          if (existing.info.hidden !== resource.hidden) {\n            this.setVisibility(resource.resource, !resource.hidden);\n          }\n        } else {\n          this._loggers.set(resource.resource, { info: resource, logger: void 0 });\n          this._onDidChangeLoggers.fire({ added: [resource], removed: [] });\n        }\n      }\n      dispose() {\n        this._loggers.forEach((logger) =\u003e logger.logger?.dispose());\n        this._loggers.clear();\n        super.dispose();\n      }\n    };\n    NullLogger = class {\n      constructor() {\n        this.onDidChangeLogLevel = new Emitter().event;\n      }\n      setLevel(level) {\n      }\n      getLevel() {\n        return LogLevel.Info;\n      }\n      trace(message, ...args) {\n      }\n      debug(message, ...args) {\n      }\n      info(message, ...args) {\n      }\n      warn(message, ...args) {\n      }\n      error(message, ...args) {\n      }\n      dispose() {\n      }\n    };\n    NullLoggerService = class extends AbstractLoggerService {\n      constructor() {\n        super(LogLevel.Off, URI.parse(\"log:///log\"));\n      }\n      doCreateLogger(resource, logLevel, options2) {\n        return new NullLogger();\n      }\n    };\n    CONTEXT_LOG_LEVEL = new RawContextKey(\"logLevel\", LogLevelToString(LogLevel.Info));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/editorExtensions.js\nfunction registerModelAndPositionCommand(id, handler) {\n  CommandsRegistry.registerCommand(id, function(accessor, ...args) {\n    const instaService = accessor.get(IInstantiationService);\n    const [resource, position] = args;\n    assertType(URI.isUri(resource));\n    assertType(Position.isIPosition(position));\n    const model = accessor.get(IModelService).getModel(resource);\n    if (model) {\n      const editorPosition = Position.lift(position);\n      return instaService.invokeFunction(handler, model, editorPosition, ...args.slice(2));\n    }\n    return accessor.get(ITextModelService).createModelReference(resource).then((reference) =\u003e {\n      return new Promise((resolve3, reject) =\u003e {\n        try {\n          const result = instaService.invokeFunction(handler, reference.object.textEditorModel, Position.lift(position), args.slice(2));\n          resolve3(result);\n        } catch (err) {\n          reject(err);\n        }\n      }).finally(() =\u003e {\n        reference.dispose();\n      });\n    });\n  });\n}\nfunction registerEditorCommand(editorCommand) {\n  EditorContributionRegistry.INSTANCE.registerEditorCommand(editorCommand);\n  return editorCommand;\n}\nfunction registerEditorAction(ctor) {\n  const action = new ctor();\n  EditorContributionRegistry.INSTANCE.registerEditorAction(action);\n  return action;\n}\nfunction registerMultiEditorAction(action) {\n  EditorContributionRegistry.INSTANCE.registerEditorAction(action);\n  return action;\n}\nfunction registerInstantiatedEditorAction(editorAction) {\n  EditorContributionRegistry.INSTANCE.registerEditorAction(editorAction);\n}\nfunction registerEditorContribution(id, ctor, instantiation) {\n  EditorContributionRegistry.INSTANCE.registerEditorContribution(id, ctor, instantiation);\n}\nfunction registerCommand(command) {\n  command.register();\n  return command;\n}\nvar Command, MultiCommand, ProxyCommand, EditorCommand, EditorAction, MultiEditorAction, EditorAction2, EditorExtensionsRegistry, Extensions2, EditorContributionRegistry, UndoCommand, RedoCommand, SelectAllCommand;\nvar init_editorExtensions = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/editorExtensions.js\"() {\n    init_nls();\n    init_uri();\n    init_codeEditorService();\n    init_position();\n    init_model();\n    init_resolverService();\n    init_actions2();\n    init_commands();\n    init_contextkey();\n    init_instantiation();\n    init_keybindingsRegistry();\n    init_platform2();\n    init_telemetry();\n    init_types();\n    init_log();\n    init_dom();\n    Command = class {\n      constructor(opts) {\n        this.id = opts.id;\n        this.precondition = opts.precondition;\n        this._kbOpts = opts.kbOpts;\n        this._menuOpts = opts.menuOpts;\n        this.metadata = opts.metadata;\n      }\n      register() {\n        if (Array.isArray(this._menuOpts)) {\n          this._menuOpts.forEach(this._registerMenuItem, this);\n        } else if (this._menuOpts) {\n          this._registerMenuItem(this._menuOpts);\n        }\n        if (this._kbOpts) {\n          const kbOptsArr = Array.isArray(this._kbOpts) ? this._kbOpts : [this._kbOpts];\n          for (const kbOpts of kbOptsArr) {\n            let kbWhen = kbOpts.kbExpr;\n            if (this.precondition) {\n              if (kbWhen) {\n                kbWhen = ContextKeyExpr.and(kbWhen, this.precondition);\n              } else {\n                kbWhen = this.precondition;\n              }\n            }\n            const desc = {\n              id: this.id,\n              weight: kbOpts.weight,\n              args: kbOpts.args,\n              when: kbWhen,\n              primary: kbOpts.primary,\n              secondary: kbOpts.secondary,\n              win: kbOpts.win,\n              linux: kbOpts.linux,\n              mac: kbOpts.mac\n            };\n            KeybindingsRegistry.registerKeybindingRule(desc);\n          }\n        }\n        CommandsRegistry.registerCommand({\n          id: this.id,\n          handler: (accessor, args) =\u003e this.runCommand(accessor, args),\n          metadata: this.metadata\n        });\n      }\n      _registerMenuItem(item) {\n        MenuRegistry.appendMenuItem(item.menuId, {\n          group: item.group,\n          command: {\n            id: this.id,\n            title: item.title,\n            icon: item.icon,\n            precondition: this.precondition\n          },\n          when: item.when,\n          order: item.order\n        });\n      }\n    };\n    MultiCommand = class extends Command {\n      constructor() {\n        super(...arguments);\n        this._implementations = [];\n      }\n      /**\n       * A higher priority gets to be looked at first\n       */\n      addImplementation(priority, name, implementation, when) {\n        this._implementations.push({ priority, name, implementation, when });\n        this._implementations.sort((a, b) =\u003e b.priority - a.priority);\n        return {\n          dispose: () =\u003e {\n            for (let i2 = 0; i2 \u003c this._implementations.length; i2++) {\n              if (this._implementations[i2].implementation === implementation) {\n                this._implementations.splice(i2, 1);\n                return;\n              }\n            }\n          }\n        };\n      }\n      runCommand(accessor, args) {\n        const logService = accessor.get(ILogService);\n        const contextKeyService = accessor.get(IContextKeyService);\n        logService.trace(`Executing Command '${this.id}' which has ${this._implementations.length} bound.`);\n        for (const impl of this._implementations) {\n          if (impl.when) {\n            const context = contextKeyService.getContext(getActiveElement());\n            const value = impl.when.evaluate(context);\n            if (!value) {\n              continue;\n            }\n          }\n          const result = impl.implementation(accessor, args);\n          if (result) {\n            logService.trace(`Command '${this.id}' was handled by '${impl.name}'.`);\n            if (typeof result === \"boolean\") {\n              return;\n            }\n            return result;\n          }\n        }\n        logService.trace(`The Command '${this.id}' was not handled by any implementation.`);\n      }\n    };\n    ProxyCommand = class extends Command {\n      constructor(command, opts) {\n        super(opts);\n        this.command = command;\n      }\n      runCommand(accessor, args) {\n        return this.command.runCommand(accessor, args);\n      }\n    };\n    EditorCommand = class _EditorCommand extends Command {\n      /**\n       * Create a command class that is bound to a certain editor contribution.\n       */\n      static bindToContribution(controllerGetter) {\n        return class EditorControllerCommandImpl extends _EditorCommand {\n          constructor(opts) {\n            super(opts);\n            this._callback = opts.handler;\n          }\n          runEditorCommand(accessor, editor2, args) {\n            const controller = controllerGetter(editor2);\n            if (controller) {\n              this._callback(controller, args);\n            }\n          }\n        };\n      }\n      static runEditorCommand(accessor, args, precondition, runner) {\n        const codeEditorService = accessor.get(ICodeEditorService);\n        const editor2 = codeEditorService.getFocusedCodeEditor() || codeEditorService.getActiveCodeEditor();\n        if (!editor2) {\n          return;\n        }\n        return editor2.invokeWithinContext((editorAccessor) =\u003e {\n          const kbService = editorAccessor.get(IContextKeyService);\n          if (!kbService.contextMatchesRules(precondition ?? void 0)) {\n            return;\n          }\n          return runner(editorAccessor, editor2, args);\n        });\n      }\n      runCommand(accessor, args) {\n        return _EditorCommand.runEditorCommand(accessor, args, this.precondition, (accessor2, editor2, args2) =\u003e this.runEditorCommand(accessor2, editor2, args2));\n      }\n    };\n    EditorAction = class _EditorAction extends EditorCommand {\n      static convertOptions(opts) {\n        let menuOpts;\n        if (Array.isArray(opts.menuOpts)) {\n          menuOpts = opts.menuOpts;\n        } else if (opts.menuOpts) {\n          menuOpts = [opts.menuOpts];\n        } else {\n          menuOpts = [];\n        }\n        function withDefaults(item) {\n          if (!item.menuId) {\n            item.menuId = MenuId.EditorContext;\n          }\n          if (!item.title) {\n            item.title = typeof opts.label === \"string\" ? opts.label : opts.label.value;\n          }\n          item.when = ContextKeyExpr.and(opts.precondition, item.when);\n          return item;\n        }\n        if (Array.isArray(opts.contextMenuOpts)) {\n          menuOpts.push(...opts.contextMenuOpts.map(withDefaults));\n        } else if (opts.contextMenuOpts) {\n          menuOpts.push(withDefaults(opts.contextMenuOpts));\n        }\n        opts.menuOpts = menuOpts;\n        return opts;\n      }\n      constructor(opts) {\n        super(_EditorAction.convertOptions(opts));\n        if (typeof opts.label === \"string\") {\n          this.label = opts.label;\n          this.alias = opts.alias ?? opts.label;\n        } else {\n          this.label = opts.label.value;\n          this.alias = opts.alias ?? opts.label.original;\n        }\n      }\n      runEditorCommand(accessor, editor2, args) {\n        this.reportTelemetry(accessor, editor2);\n        return this.run(accessor, editor2, args || {});\n      }\n      reportTelemetry(accessor, editor2) {\n        accessor.get(ITelemetryService).publicLog2(\"editorActionInvoked\", { name: this.label, id: this.id });\n      }\n    };\n    MultiEditorAction = class extends EditorAction {\n      constructor() {\n        super(...arguments);\n        this._implementations = [];\n      }\n      /**\n       * A higher priority gets to be looked at first\n       */\n      addImplementation(priority, implementation) {\n        this._implementations.push([priority, implementation]);\n        this._implementations.sort((a, b) =\u003e b[0] - a[0]);\n        return {\n          dispose: () =\u003e {\n            for (let i2 = 0; i2 \u003c this._implementations.length; i2++) {\n              if (this._implementations[i2][1] === implementation) {\n                this._implementations.splice(i2, 1);\n                return;\n              }\n            }\n          }\n        };\n      }\n      run(accessor, editor2, args) {\n        for (const impl of this._implementations) {\n          const result = impl[1](accessor, editor2, args);\n          if (result) {\n            if (typeof result === \"boolean\") {\n              return;\n            }\n            return result;\n          }\n        }\n      }\n    };\n    EditorAction2 = class extends Action2 {\n      run(accessor, ...args) {\n        const codeEditorService = accessor.get(ICodeEditorService);\n        const editor2 = codeEditorService.getFocusedCodeEditor() || codeEditorService.getActiveCodeEditor();\n        if (!editor2) {\n          return;\n        }\n        return editor2.invokeWithinContext((editorAccessor) =\u003e {\n          const kbService = editorAccessor.get(IContextKeyService);\n          const logService = editorAccessor.get(ILogService);\n          const enabled = kbService.contextMatchesRules(this.desc.precondition ?? void 0);\n          if (!enabled) {\n            logService.debug(`[EditorAction2] NOT running command because its precondition is FALSE`, this.desc.id, this.desc.precondition?.serialize());\n            return;\n          }\n          return this.runEditorCommand(editorAccessor, editor2, ...args);\n        });\n      }\n    };\n    (function(EditorExtensionsRegistry2) {\n      function getEditorCommand(commandId) {\n        return EditorContributionRegistry.INSTANCE.getEditorCommand(commandId);\n      }\n      EditorExtensionsRegistry2.getEditorCommand = getEditorCommand;\n      function getEditorActions() {\n        return EditorContributionRegistry.INSTANCE.getEditorActions();\n      }\n      EditorExtensionsRegistry2.getEditorActions = getEditorActions;\n      function getEditorContributions() {\n        return EditorContributionRegistry.INSTANCE.getEditorContributions();\n      }\n      EditorExtensionsRegistry2.getEditorContributions = getEditorContributions;\n      function getSomeEditorContributions(ids) {\n        return EditorContributionRegistry.INSTANCE.getEditorContributions().filter((c) =\u003e ids.indexOf(c.id) \u003e= 0);\n      }\n      EditorExtensionsRegistry2.getSomeEditorContributions = getSomeEditorContributions;\n      function getDiffEditorContributions() {\n        return EditorContributionRegistry.INSTANCE.getDiffEditorContributions();\n      }\n      EditorExtensionsRegistry2.getDiffEditorContributions = getDiffEditorContributions;\n    })(EditorExtensionsRegistry || (EditorExtensionsRegistry = {}));\n    Extensions2 = {\n      EditorCommonContributions: \"editor.contributions\"\n    };\n    EditorContributionRegistry = class _EditorContributionRegistry {\n      static {\n        this.INSTANCE = new _EditorContributionRegistry();\n      }\n      constructor() {\n        this.editorContributions = [];\n        this.diffEditorContributions = [];\n        this.editorActions = [];\n        this.editorCommands = /* @__PURE__ */ Object.create(null);\n      }\n      registerEditorContribution(id, ctor, instantiation) {\n        this.editorContributions.push({ id, ctor, instantiation });\n      }\n      getEditorContributions() {\n        return this.editorContributions.slice(0);\n      }\n      getDiffEditorContributions() {\n        return this.diffEditorContributions.slice(0);\n      }\n      registerEditorAction(action) {\n        action.register();\n        this.editorActions.push(action);\n      }\n      getEditorActions() {\n        return this.editorActions;\n      }\n      registerEditorCommand(editorCommand) {\n        editorCommand.register();\n        this.editorCommands[editorCommand.id] = editorCommand;\n      }\n      getEditorCommand(commandId) {\n        return this.editorCommands[commandId] || null;\n      }\n    };\n    Registry.add(Extensions2.EditorCommonContributions, EditorContributionRegistry.INSTANCE);\n    UndoCommand = registerCommand(new MultiCommand({\n      id: \"undo\",\n      precondition: void 0,\n      kbOpts: {\n        weight: 0,\n        primary: 2048 | 56\n        /* KeyCode.KeyZ */\n      },\n      menuOpts: [{\n        menuId: MenuId.MenubarEditMenu,\n        group: \"1_do\",\n        title: localize(64, \"\u0026\u0026Undo\"),\n        order: 1\n      }, {\n        menuId: MenuId.CommandPalette,\n        group: \"\",\n        title: localize(65, \"Undo\"),\n        order: 1\n      }, {\n        menuId: MenuId.SimpleEditorContext,\n        group: \"1_do\",\n        title: localize(66, \"Undo\"),\n        order: 1\n      }]\n    }));\n    registerCommand(new ProxyCommand(UndoCommand, { id: \"default:undo\", precondition: void 0 }));\n    RedoCommand = registerCommand(new MultiCommand({\n      id: \"redo\",\n      precondition: void 0,\n      kbOpts: {\n        weight: 0,\n        primary: 2048 | 55,\n        secondary: [\n          2048 | 1024 | 56\n          /* KeyCode.KeyZ */\n        ],\n        mac: {\n          primary: 2048 | 1024 | 56\n          /* KeyCode.KeyZ */\n        }\n      },\n      menuOpts: [{\n        menuId: MenuId.MenubarEditMenu,\n        group: \"1_do\",\n        title: localize(67, \"\u0026\u0026Redo\"),\n        order: 2\n      }, {\n        menuId: MenuId.CommandPalette,\n        group: \"\",\n        title: localize(68, \"Redo\"),\n        order: 1\n      }, {\n        menuId: MenuId.SimpleEditorContext,\n        group: \"1_do\",\n        title: localize(69, \"Redo\"),\n        order: 2\n      }]\n    }));\n    registerCommand(new ProxyCommand(RedoCommand, { id: \"default:redo\", precondition: void 0 }));\n    SelectAllCommand = registerCommand(new MultiCommand({\n      id: \"editor.action.selectAll\",\n      precondition: void 0,\n      kbOpts: {\n        weight: 0,\n        kbExpr: null,\n        primary: 2048 | 31\n        /* KeyCode.KeyA */\n      },\n      menuOpts: [{\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"1_basic\",\n        title: localize(70, \"\u0026\u0026Select All\"),\n        order: 1\n      }, {\n        menuId: MenuId.CommandPalette,\n        group: \"\",\n        title: localize(71, \"Select All\"),\n        order: 1\n      }, {\n        menuId: MenuId.SimpleEditorContext,\n        group: \"9_select\",\n        title: localize(72, \"Select All\"),\n        order: 1\n      }]\n    }));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/range.js\nvar Range;\nvar init_range = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/range.js\"() {\n    init_position();\n    Range = class _Range {\n      constructor(startLineNumber, startColumn, endLineNumber, endColumn) {\n        if (startLineNumber \u003e endLineNumber || startLineNumber === endLineNumber \u0026\u0026 startColumn \u003e endColumn) {\n          this.startLineNumber = endLineNumber;\n          this.startColumn = endColumn;\n          this.endLineNumber = startLineNumber;\n          this.endColumn = startColumn;\n        } else {\n          this.startLineNumber = startLineNumber;\n          this.startColumn = startColumn;\n          this.endLineNumber = endLineNumber;\n          this.endColumn = endColumn;\n        }\n      }\n      /**\n       * Test if this range is empty.\n       */\n      isEmpty() {\n        return _Range.isEmpty(this);\n      }\n      /**\n       * Test if `range` is empty.\n       */\n      static isEmpty(range2) {\n        return range2.startLineNumber === range2.endLineNumber \u0026\u0026 range2.startColumn === range2.endColumn;\n      }\n      /**\n       * Test if position is in this range. If the position is at the edges, will return true.\n       */\n      containsPosition(position) {\n        return _Range.containsPosition(this, position);\n      }\n      /**\n       * Test if `position` is in `range`. If the position is at the edges, will return true.\n       */\n      static containsPosition(range2, position) {\n        if (position.lineNumber \u003c range2.startLineNumber || position.lineNumber \u003e range2.endLineNumber) {\n          return false;\n        }\n        if (position.lineNumber === range2.startLineNumber \u0026\u0026 position.column \u003c range2.startColumn) {\n          return false;\n        }\n        if (position.lineNumber === range2.endLineNumber \u0026\u0026 position.column \u003e range2.endColumn) {\n          return false;\n        }\n        return true;\n      }\n      /**\n       * Test if `position` is in `range`. If the position is at the edges, will return false.\n       * @internal\n       */\n      static strictContainsPosition(range2, position) {\n        if (position.lineNumber \u003c range2.startLineNumber || position.lineNumber \u003e range2.endLineNumber) {\n          return false;\n        }\n        if (position.lineNumber === range2.startLineNumber \u0026\u0026 position.column \u003c= range2.startColumn) {\n          return false;\n        }\n        if (position.lineNumber === range2.endLineNumber \u0026\u0026 position.column \u003e= range2.endColumn) {\n          return false;\n        }\n        return true;\n      }\n      /**\n       * Test if range is in this range. If the range is equal to this range, will return true.\n       */\n      containsRange(range2) {\n        return _Range.containsRange(this, range2);\n      }\n      /**\n       * Test if `otherRange` is in `range`. If the ranges are equal, will return true.\n       */\n      static containsRange(range2, otherRange) {\n        if (otherRange.startLineNumber \u003c range2.startLineNumber || otherRange.endLineNumber \u003c range2.startLineNumber) {\n          return false;\n        }\n        if (otherRange.startLineNumber \u003e range2.endLineNumber || otherRange.endLineNumber \u003e range2.endLineNumber) {\n          return false;\n        }\n        if (otherRange.startLineNumber === range2.startLineNumber \u0026\u0026 otherRange.startColumn \u003c range2.startColumn) {\n          return false;\n        }\n        if (otherRange.endLineNumber === range2.endLineNumber \u0026\u0026 otherRange.endColumn \u003e range2.endColumn) {\n          return false;\n        }\n        return true;\n      }\n      /**\n       * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.\n       */\n      strictContainsRange(range2) {\n        return _Range.strictContainsRange(this, range2);\n      }\n      /**\n       * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.\n       */\n      static strictContainsRange(range2, otherRange) {\n        if (otherRange.startLineNumber \u003c range2.startLineNumber || otherRange.endLineNumber \u003c range2.startLineNumber) {\n          return false;\n        }\n        if (otherRange.startLineNumber \u003e range2.endLineNumber || otherRange.endLineNumber \u003e range2.endLineNumber) {\n          return false;\n        }\n        if (otherRange.startLineNumber === range2.startLineNumber \u0026\u0026 otherRange.startColumn \u003c= range2.startColumn) {\n          return false;\n        }\n        if (otherRange.endLineNumber === range2.endLineNumber \u0026\u0026 otherRange.endColumn \u003e= range2.endColumn) {\n          return false;\n        }\n        return true;\n      }\n      /**\n       * A reunion of the two ranges.\n       * The smallest position will be used as the start point, and the largest one as the end point.\n       */\n      plusRange(range2) {\n        return _Range.plusRange(this, range2);\n      }\n      /**\n       * A reunion of the two ranges.\n       * The smallest position will be used as the start point, and the largest one as the end point.\n       */\n      static plusRange(a, b) {\n        let startLineNumber;\n        let startColumn;\n        let endLineNumber;\n        let endColumn;\n        if (b.startLineNumber \u003c a.startLineNumber) {\n          startLineNumber = b.startLineNumber;\n          startColumn = b.startColumn;\n        } else if (b.startLineNumber === a.startLineNumber) {\n          startLineNumber = b.startLineNumber;\n          startColumn = Math.min(b.startColumn, a.startColumn);\n        } else {\n          startLineNumber = a.startLineNumber;\n          startColumn = a.startColumn;\n        }\n        if (b.endLineNumber \u003e a.endLineNumber) {\n          endLineNumber = b.endLineNumber;\n          endColumn = b.endColumn;\n        } else if (b.endLineNumber === a.endLineNumber) {\n          endLineNumber = b.endLineNumber;\n          endColumn = Math.max(b.endColumn, a.endColumn);\n        } else {\n          endLineNumber = a.endLineNumber;\n          endColumn = a.endColumn;\n        }\n        return new _Range(startLineNumber, startColumn, endLineNumber, endColumn);\n      }\n      /**\n       * A intersection of the two ranges.\n       */\n      intersectRanges(range2) {\n        return _Range.intersectRanges(this, range2);\n      }\n      /**\n       * A intersection of the two ranges.\n       */\n      static intersectRanges(a, b) {\n        let resultStartLineNumber = a.startLineNumber;\n        let resultStartColumn = a.startColumn;\n        let resultEndLineNumber = a.endLineNumber;\n        let resultEndColumn = a.endColumn;\n        const otherStartLineNumber = b.startLineNumber;\n        const otherStartColumn = b.startColumn;\n        const otherEndLineNumber = b.endLineNumber;\n        const otherEndColumn = b.endColumn;\n        if (resultStartLineNumber \u003c otherStartLineNumber) {\n          resultStartLineNumber = otherStartLineNumber;\n          resultStartColumn = otherStartColumn;\n        } else if (resultStartLineNumber === otherStartLineNumber) {\n          resultStartColumn = Math.max(resultStartColumn, otherStartColumn);\n        }\n        if (resultEndLineNumber \u003e otherEndLineNumber) {\n          resultEndLineNumber = otherEndLineNumber;\n          resultEndColumn = otherEndColumn;\n        } else if (resultEndLineNumber === otherEndLineNumber) {\n          resultEndColumn = Math.min(resultEndColumn, otherEndColumn);\n        }\n        if (resultStartLineNumber \u003e resultEndLineNumber) {\n          return null;\n        }\n        if (resultStartLineNumber === resultEndLineNumber \u0026\u0026 resultStartColumn \u003e resultEndColumn) {\n          return null;\n        }\n        return new _Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn);\n      }\n      /**\n       * Test if this range equals other.\n       */\n      equalsRange(other) {\n        return _Range.equalsRange(this, other);\n      }\n      /**\n       * Test if range `a` equals `b`.\n       */\n      static equalsRange(a, b) {\n        if (!a \u0026\u0026 !b) {\n          return true;\n        }\n        return !!a \u0026\u0026 !!b \u0026\u0026 a.startLineNumber === b.startLineNumber \u0026\u0026 a.startColumn === b.startColumn \u0026\u0026 a.endLineNumber === b.endLineNumber \u0026\u0026 a.endColumn === b.endColumn;\n      }\n      /**\n       * Return the end position (which will be after or equal to the start position)\n       */\n      getEndPosition() {\n        return _Range.getEndPosition(this);\n      }\n      /**\n       * Return the end position (which will be after or equal to the start position)\n       */\n      static getEndPosition(range2) {\n        return new Position(range2.endLineNumber, range2.endColumn);\n      }\n      /**\n       * Return the start position (which will be before or equal to the end position)\n       */\n      getStartPosition() {\n        return _Range.getStartPosition(this);\n      }\n      /**\n       * Return the start position (which will be before or equal to the end position)\n       */\n      static getStartPosition(range2) {\n        return new Position(range2.startLineNumber, range2.startColumn);\n      }\n      /**\n       * Transform to a user presentable string representation.\n       */\n      toString() {\n        return \"[\" + this.startLineNumber + \",\" + this.startColumn + \" -\u003e \" + this.endLineNumber + \",\" + this.endColumn + \"]\";\n      }\n      /**\n       * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.\n       */\n      setEndPosition(endLineNumber, endColumn) {\n        return new _Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\n      }\n      /**\n       * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.\n       */\n      setStartPosition(startLineNumber, startColumn) {\n        return new _Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\n      }\n      /**\n       * Create a new empty range using this range's start position.\n       */\n      collapseToStart() {\n        return _Range.collapseToStart(this);\n      }\n      /**\n       * Create a new empty range using this range's start position.\n       */\n      static collapseToStart(range2) {\n        return new _Range(range2.startLineNumber, range2.startColumn, range2.startLineNumber, range2.startColumn);\n      }\n      /**\n       * Create a new empty range using this range's end position.\n       */\n      collapseToEnd() {\n        return _Range.collapseToEnd(this);\n      }\n      /**\n       * Create a new empty range using this range's end position.\n       */\n      static collapseToEnd(range2) {\n        return new _Range(range2.endLineNumber, range2.endColumn, range2.endLineNumber, range2.endColumn);\n      }\n      /**\n       * Moves the range by the given amount of lines.\n       */\n      delta(lineCount) {\n        return new _Range(this.startLineNumber + lineCount, this.startColumn, this.endLineNumber + lineCount, this.endColumn);\n      }\n      isSingleLine() {\n        return this.startLineNumber === this.endLineNumber;\n      }\n      // ---\n      static fromPositions(start, end = start) {\n        return new _Range(start.lineNumber, start.column, end.lineNumber, end.column);\n      }\n      static lift(range2) {\n        if (!range2) {\n          return null;\n        }\n        return new _Range(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn);\n      }\n      /**\n       * Test if `obj` is an `IRange`.\n       */\n      static isIRange(obj) {\n        return obj \u0026\u0026 typeof obj.startLineNumber === \"number\" \u0026\u0026 typeof obj.startColumn === \"number\" \u0026\u0026 typeof obj.endLineNumber === \"number\" \u0026\u0026 typeof obj.endColumn === \"number\";\n      }\n      /**\n       * Test if the two ranges are touching in any way.\n       */\n      static areIntersectingOrTouching(a, b) {\n        if (a.endLineNumber \u003c b.startLineNumber || a.endLineNumber === b.startLineNumber \u0026\u0026 a.endColumn \u003c b.startColumn) {\n          return false;\n        }\n        if (b.endLineNumber \u003c a.startLineNumber || b.endLineNumber === a.startLineNumber \u0026\u0026 b.endColumn \u003c a.startColumn) {\n          return false;\n        }\n        return true;\n      }\n      /**\n       * Test if the two ranges are intersecting. If the ranges are touching it returns true.\n       */\n      static areIntersecting(a, b) {\n        if (a.endLineNumber \u003c b.startLineNumber || a.endLineNumber === b.startLineNumber \u0026\u0026 a.endColumn \u003c= b.startColumn) {\n          return false;\n        }\n        if (b.endLineNumber \u003c a.startLineNumber || b.endLineNumber === a.startLineNumber \u0026\u0026 b.endColumn \u003c= a.startColumn) {\n          return false;\n        }\n        return true;\n      }\n      /**\n       * Test if the two ranges are intersecting, but not touching at all.\n       */\n      static areOnlyIntersecting(a, b) {\n        if (a.endLineNumber \u003c b.startLineNumber - 1 || a.endLineNumber === b.startLineNumber \u0026\u0026 a.endColumn \u003c b.startColumn - 1) {\n          return false;\n        }\n        if (b.endLineNumber \u003c a.startLineNumber - 1 || b.endLineNumber === a.startLineNumber \u0026\u0026 b.endColumn \u003c a.startColumn - 1) {\n          return false;\n        }\n        return true;\n      }\n      /**\n       * A function that compares ranges, useful for sorting ranges\n       * It will first compare ranges on the startPosition and then on the endPosition\n       */\n      static compareRangesUsingStarts(a, b) {\n        if (a \u0026\u0026 b) {\n          const aStartLineNumber = a.startLineNumber | 0;\n          const bStartLineNumber = b.startLineNumber | 0;\n          if (aStartLineNumber === bStartLineNumber) {\n            const aStartColumn = a.startColumn | 0;\n            const bStartColumn = b.startColumn | 0;\n            if (aStartColumn === bStartColumn) {\n              const aEndLineNumber = a.endLineNumber | 0;\n              const bEndLineNumber = b.endLineNumber | 0;\n              if (aEndLineNumber === bEndLineNumber) {\n                const aEndColumn = a.endColumn | 0;\n                const bEndColumn = b.endColumn | 0;\n                return aEndColumn - bEndColumn;\n              }\n              return aEndLineNumber - bEndLineNumber;\n            }\n            return aStartColumn - bStartColumn;\n          }\n          return aStartLineNumber - bStartLineNumber;\n        }\n        const aExists = a ? 1 : 0;\n        const bExists = b ? 1 : 0;\n        return aExists - bExists;\n      }\n      /**\n       * A function that compares ranges, useful for sorting ranges\n       * It will first compare ranges on the endPosition and then on the startPosition\n       */\n      static compareRangesUsingEnds(a, b) {\n        if (a.endLineNumber === b.endLineNumber) {\n          if (a.endColumn === b.endColumn) {\n            if (a.startLineNumber === b.startLineNumber) {\n              return a.startColumn - b.startColumn;\n            }\n            return a.startLineNumber - b.startLineNumber;\n          }\n          return a.endColumn - b.endColumn;\n        }\n        return a.endLineNumber - b.endLineNumber;\n      }\n      /**\n       * Test if the range spans multiple lines.\n       */\n      static spansMultipleLines(range2) {\n        return range2.endLineNumber \u003e range2.startLineNumber;\n      }\n      toJSON() {\n        return this;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/selection.js\nvar Selection;\nvar init_selection = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/selection.js\"() {\n    init_position();\n    init_range();\n    Selection = class _Selection extends Range {\n      constructor(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn) {\n        super(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn);\n        this.selectionStartLineNumber = selectionStartLineNumber;\n        this.selectionStartColumn = selectionStartColumn;\n        this.positionLineNumber = positionLineNumber;\n        this.positionColumn = positionColumn;\n      }\n      /**\n       * Transform to a human-readable representation.\n       */\n      toString() {\n        return \"[\" + this.selectionStartLineNumber + \",\" + this.selectionStartColumn + \" -\u003e \" + this.positionLineNumber + \",\" + this.positionColumn + \"]\";\n      }\n      /**\n       * Test if equals other selection.\n       */\n      equalsSelection(other) {\n        return _Selection.selectionsEqual(this, other);\n      }\n      /**\n       * Test if the two selections are equal.\n       */\n      static selectionsEqual(a, b) {\n        return a.selectionStartLineNumber === b.selectionStartLineNumber \u0026\u0026 a.selectionStartColumn === b.selectionStartColumn \u0026\u0026 a.positionLineNumber === b.positionLineNumber \u0026\u0026 a.positionColumn === b.positionColumn;\n      }\n      /**\n       * Get directions (LTR or RTL).\n       */\n      getDirection() {\n        if (this.selectionStartLineNumber === this.startLineNumber \u0026\u0026 this.selectionStartColumn === this.startColumn) {\n          return 0;\n        }\n        return 1;\n      }\n      /**\n       * Create a new selection with a different `positionLineNumber` and `positionColumn`.\n       */\n      setEndPosition(endLineNumber, endColumn) {\n        if (this.getDirection() === 0) {\n          return new _Selection(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\n        }\n        return new _Selection(endLineNumber, endColumn, this.startLineNumber, this.startColumn);\n      }\n      /**\n       * Get the position at `positionLineNumber` and `positionColumn`.\n       */\n      getPosition() {\n        return new Position(this.positionLineNumber, this.positionColumn);\n      }\n      /**\n       * Get the position at the start of the selection.\n      */\n      getSelectionStart() {\n        return new Position(this.selectionStartLineNumber, this.selectionStartColumn);\n      }\n      /**\n       * Create a new selection with a different `selectionStartLineNumber` and `selectionStartColumn`.\n       */\n      setStartPosition(startLineNumber, startColumn) {\n        if (this.getDirection() === 0) {\n          return new _Selection(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\n        }\n        return new _Selection(this.endLineNumber, this.endColumn, startLineNumber, startColumn);\n      }\n      // ----\n      /**\n       * Create a `Selection` from one or two positions\n       */\n      static fromPositions(start, end = start) {\n        return new _Selection(start.lineNumber, start.column, end.lineNumber, end.column);\n      }\n      /**\n       * Creates a `Selection` from a range, given a direction.\n       */\n      static fromRange(range2, direction) {\n        if (direction === 0) {\n          return new _Selection(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn);\n        } else {\n          return new _Selection(range2.endLineNumber, range2.endColumn, range2.startLineNumber, range2.startColumn);\n        }\n      }\n      /**\n       * Create a `Selection` from an `ISelection`.\n       */\n      static liftSelection(sel) {\n        return new _Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn);\n      }\n      /**\n       * `a` equals `b`.\n       */\n      static selectionsArrEqual(a, b) {\n        if (a \u0026\u0026 !b || !a \u0026\u0026 b) {\n          return false;\n        }\n        if (!a \u0026\u0026 !b) {\n          return true;\n        }\n        if (a.length !== b.length) {\n          return false;\n        }\n        for (let i2 = 0, len = a.length; i2 \u003c len; i2++) {\n          if (!this.selectionsEqual(a[i2], b[i2])) {\n            return false;\n          }\n        }\n        return true;\n      }\n      /**\n       * Test if `obj` is an `ISelection`.\n       */\n      static isISelection(obj) {\n        return obj \u0026\u0026 typeof obj.selectionStartLineNumber === \"number\" \u0026\u0026 typeof obj.selectionStartColumn === \"number\" \u0026\u0026 typeof obj.positionLineNumber === \"number\" \u0026\u0026 typeof obj.positionColumn === \"number\";\n      }\n      /**\n       * Create with a direction.\n       */\n      static createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, direction) {\n        if (direction === 0) {\n          return new _Selection(startLineNumber, startColumn, endLineNumber, endColumn);\n        }\n        return new _Selection(endLineNumber, endColumn, startLineNumber, startColumn);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports.js\nfunction createScopedLineTokens(context, offset) {\n  const tokenCount = context.getCount();\n  const tokenIndex = context.findTokenIndexAtOffset(offset);\n  const desiredLanguageId = context.getLanguageId(tokenIndex);\n  let lastTokenIndex = tokenIndex;\n  while (lastTokenIndex + 1 \u003c tokenCount \u0026\u0026 context.getLanguageId(lastTokenIndex + 1) === desiredLanguageId) {\n    lastTokenIndex++;\n  }\n  let firstTokenIndex = tokenIndex;\n  while (firstTokenIndex \u003e 0 \u0026\u0026 context.getLanguageId(firstTokenIndex - 1) === desiredLanguageId) {\n    firstTokenIndex--;\n  }\n  return new ScopedLineTokens(context, desiredLanguageId, firstTokenIndex, lastTokenIndex + 1, context.getStartOffset(firstTokenIndex), context.getEndOffset(lastTokenIndex));\n}\nfunction ignoreBracketsInToken(standardTokenType) {\n  return (standardTokenType \u0026 3) !== 0;\n}\nvar ScopedLineTokens;\nvar init_supports = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports.js\"() {\n    ScopedLineTokens = class {\n      constructor(actual, languageId, firstTokenIndex, lastTokenIndex, firstCharOffset, lastCharOffset) {\n        this._scopedLineTokensBrand = void 0;\n        this._actual = actual;\n        this.languageId = languageId;\n        this._firstTokenIndex = firstTokenIndex;\n        this._lastTokenIndex = lastTokenIndex;\n        this.firstCharOffset = firstCharOffset;\n        this._lastCharOffset = lastCharOffset;\n        this.languageIdCodec = actual.languageIdCodec;\n      }\n      getLineContent() {\n        const actualLineContent = this._actual.getLineContent();\n        return actualLineContent.substring(this.firstCharOffset, this._lastCharOffset);\n      }\n      getLineLength() {\n        return this._lastCharOffset - this.firstCharOffset;\n      }\n      getActualLineContentBefore(offset) {\n        const actualLineContent = this._actual.getLineContent();\n        return actualLineContent.substring(0, this.firstCharOffset + offset);\n      }\n      getTokenCount() {\n        return this._lastTokenIndex - this._firstTokenIndex;\n      }\n      findTokenIndexAtOffset(offset) {\n        return this._actual.findTokenIndexAtOffset(offset + this.firstCharOffset) - this._firstTokenIndex;\n      }\n      getStandardTokenType(tokenIndex) {\n        return this._actual.getStandardTokenType(tokenIndex + this._firstTokenIndex);\n      }\n      toIViewLineTokens() {\n        return this._actual.sliceAndInflate(this.firstCharOffset, this._lastCharOffset, 0);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/cursorColumns.js\nvar CursorColumns;\nvar init_cursorColumns = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/cursorColumns.js\"() {\n    init_strings();\n    CursorColumns = class _CursorColumns {\n      static _nextVisibleColumn(codePoint, visibleColumn, tabSize) {\n        if (codePoint === 9) {\n          return _CursorColumns.nextRenderTabStop(visibleColumn, tabSize);\n        }\n        if (isFullWidthCharacter(codePoint) || isEmojiImprecise(codePoint)) {\n          return visibleColumn + 2;\n        }\n        return visibleColumn + 1;\n      }\n      /**\n       * Returns a visible column from a column.\n       * @see {@link CursorColumns}\n       */\n      static visibleColumnFromColumn(lineContent, column, tabSize) {\n        const textLen = Math.min(column - 1, lineContent.length);\n        const text2 = lineContent.substring(0, textLen);\n        const iterator = new GraphemeIterator(text2);\n        let result = 0;\n        while (!iterator.eol()) {\n          const codePoint = getNextCodePoint(text2, textLen, iterator.offset);\n          iterator.nextGraphemeLength();\n          result = this._nextVisibleColumn(codePoint, result, tabSize);\n        }\n        return result;\n      }\n      /**\n       * Returns a column from a visible column.\n       * @see {@link CursorColumns}\n       */\n      static columnFromVisibleColumn(lineContent, visibleColumn, tabSize) {\n        if (visibleColumn \u003c= 0) {\n          return 1;\n        }\n        const lineContentLength = lineContent.length;\n        const iterator = new GraphemeIterator(lineContent);\n        let beforeVisibleColumn = 0;\n        let beforeColumn = 1;\n        while (!iterator.eol()) {\n          const codePoint = getNextCodePoint(lineContent, lineContentLength, iterator.offset);\n          iterator.nextGraphemeLength();\n          const afterVisibleColumn = this._nextVisibleColumn(codePoint, beforeVisibleColumn, tabSize);\n          const afterColumn = iterator.offset + 1;\n          if (afterVisibleColumn \u003e= visibleColumn) {\n            const beforeDelta = visibleColumn - beforeVisibleColumn;\n            const afterDelta = afterVisibleColumn - visibleColumn;\n            if (afterDelta \u003c beforeDelta) {\n              return afterColumn;\n            } else {\n              return beforeColumn;\n            }\n          }\n          beforeVisibleColumn = afterVisibleColumn;\n          beforeColumn = afterColumn;\n        }\n        return lineContentLength + 1;\n      }\n      /**\n       * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n       * @see {@link CursorColumns}\n       */\n      static nextRenderTabStop(visibleColumn, tabSize) {\n        return visibleColumn + tabSize - visibleColumn % tabSize;\n      }\n      /**\n       * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n       * @see {@link CursorColumns}\n       */\n      static nextIndentTabStop(visibleColumn, indentSize) {\n        return _CursorColumns.nextRenderTabStop(visibleColumn, indentSize);\n      }\n      /**\n       * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n       * @see {@link CursorColumns}\n       */\n      static prevRenderTabStop(column, tabSize) {\n        return Math.max(0, column - 1 - (column - 1) % tabSize);\n      }\n      /**\n       * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n       * @see {@link CursorColumns}\n       */\n      static prevIndentTabStop(column, indentSize) {\n        return _CursorColumns.prevRenderTabStop(column, indentSize);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/misc/indentation.js\nfunction _normalizeIndentationFromWhitespace(str, indentSize, insertSpaces) {\n  let spacesCnt = 0;\n  for (let i2 = 0; i2 \u003c str.length; i2++) {\n    if (str.charAt(i2) === \"\t\") {\n      spacesCnt = CursorColumns.nextIndentTabStop(spacesCnt, indentSize);\n    } else {\n      spacesCnt++;\n    }\n  }\n  let result = \"\";\n  if (!insertSpaces) {\n    const tabsCnt = Math.floor(spacesCnt / indentSize);\n    spacesCnt = spacesCnt % indentSize;\n    for (let i2 = 0; i2 \u003c tabsCnt; i2++) {\n      result += \"\t\";\n    }\n  }\n  for (let i2 = 0; i2 \u003c spacesCnt; i2++) {\n    result += \" \";\n  }\n  return result;\n}\nfunction normalizeIndentation(str, indentSize, insertSpaces) {\n  let firstNonWhitespaceIndex2 = firstNonWhitespaceIndex(str);\n  if (firstNonWhitespaceIndex2 === -1) {\n    firstNonWhitespaceIndex2 = str.length;\n  }\n  return _normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex2), indentSize, insertSpaces) + str.substring(firstNonWhitespaceIndex2);\n}\nvar init_indentation = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/misc/indentation.js\"() {\n    init_strings();\n    init_cursorColumns();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/date.js\nvar safeIntl;\nvar init_date = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/date.js\"() {\n    init_lazy();\n    init_platform();\n    safeIntl = {\n      DateTimeFormat(locales, options2) {\n        return new Lazy(() =\u003e {\n          try {\n            return new Intl.DateTimeFormat(locales, options2);\n          } catch {\n            return new Intl.DateTimeFormat(void 0, options2);\n          }\n        });\n      },\n      Collator(locales, options2) {\n        return new Lazy(() =\u003e {\n          try {\n            return new Intl.Collator(locales, options2);\n          } catch {\n            return new Intl.Collator(void 0, options2);\n          }\n        });\n      },\n      Segmenter(locales, options2) {\n        return new Lazy(() =\u003e {\n          try {\n            return new Intl.Segmenter(locales, options2);\n          } catch {\n            return new Intl.Segmenter(void 0, options2);\n          }\n        });\n      },\n      Locale(tag2, options2) {\n        return new Lazy(() =\u003e {\n          try {\n            return new Intl.Locale(tag2, options2);\n          } catch {\n            return new Intl.Locale(LANGUAGE_DEFAULT, options2);\n          }\n        });\n      },\n      NumberFormat(locales, options2) {\n        return new Lazy(() =\u003e {\n          try {\n            return new Intl.NumberFormat(locales, options2);\n          } catch {\n            return new Intl.NumberFormat(void 0, options2);\n          }\n        });\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/uint.js\nfunction toUint8(v) {\n  if (v \u003c 0) {\n    return 0;\n  }\n  if (v \u003e 255) {\n    return 255;\n  }\n  return v | 0;\n}\nfunction toUint32(v) {\n  if (v \u003c 0) {\n    return 0;\n  }\n  if (v \u003e 4294967295) {\n    return 4294967295;\n  }\n  return v | 0;\n}\nvar init_uint = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/uint.js\"() {\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/characterClassifier.js\nvar CharacterClassifier, CharacterSet;\nvar init_characterClassifier = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/characterClassifier.js\"() {\n    init_uint();\n    CharacterClassifier = class _CharacterClassifier {\n      constructor(_defaultValue) {\n        const defaultValue = toUint8(_defaultValue);\n        this._defaultValue = defaultValue;\n        this._asciiMap = _CharacterClassifier._createAsciiMap(defaultValue);\n        this._map = /* @__PURE__ */ new Map();\n      }\n      static _createAsciiMap(defaultValue) {\n        const asciiMap = new Uint8Array(256);\n        asciiMap.fill(defaultValue);\n        return asciiMap;\n      }\n      set(charCode, _value) {\n        const value = toUint8(_value);\n        if (charCode \u003e= 0 \u0026\u0026 charCode \u003c 256) {\n          this._asciiMap[charCode] = value;\n        } else {\n          this._map.set(charCode, value);\n        }\n      }\n      get(charCode) {\n        if (charCode \u003e= 0 \u0026\u0026 charCode \u003c 256) {\n          return this._asciiMap[charCode];\n        } else {\n          return this._map.get(charCode) || this._defaultValue;\n        }\n      }\n      clear() {\n        this._asciiMap.fill(this._defaultValue);\n        this._map.clear();\n      }\n    };\n    CharacterSet = class {\n      constructor() {\n        this._actual = new CharacterClassifier(\n          0\n          /* Boolean.False */\n        );\n      }\n      add(charCode) {\n        this._actual.set(\n          charCode,\n          1\n          /* Boolean.True */\n        );\n      }\n      has(charCode) {\n        return this._actual.get(charCode) === 1;\n      }\n      clear() {\n        return this._actual.clear();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/wordCharacterClassifier.js\nfunction getMapForWordSeparators(wordSeparators2, intlSegmenterLocales) {\n  const key = `${wordSeparators2}/${intlSegmenterLocales.join(\",\")}`;\n  let result = wordClassifierCache.get(key);\n  if (!result) {\n    result = new WordCharacterClassifier(wordSeparators2, intlSegmenterLocales);\n    wordClassifierCache.set(key, result);\n  }\n  return result;\n}\nvar WordCharacterClassifier, wordClassifierCache;\nvar init_wordCharacterClassifier = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/wordCharacterClassifier.js\"() {\n    init_date();\n    init_map();\n    init_characterClassifier();\n    WordCharacterClassifier = class extends CharacterClassifier {\n      constructor(wordSeparators2, intlSegmenterLocales) {\n        super(\n          0\n          /* WordCharacterClass.Regular */\n        );\n        this._segmenter = null;\n        this._cachedLine = null;\n        this._cachedSegments = [];\n        this.intlSegmenterLocales = intlSegmenterLocales;\n        if (this.intlSegmenterLocales.length \u003e 0) {\n          this._segmenter = safeIntl.Segmenter(this.intlSegmenterLocales, { granularity: \"word\" });\n        } else {\n          this._segmenter = null;\n        }\n        for (let i2 = 0, len = wordSeparators2.length; i2 \u003c len; i2++) {\n          this.set(\n            wordSeparators2.charCodeAt(i2),\n            2\n            /* WordCharacterClass.WordSeparator */\n          );\n        }\n        this.set(\n          32,\n          1\n          /* WordCharacterClass.Whitespace */\n        );\n        this.set(\n          9,\n          1\n          /* WordCharacterClass.Whitespace */\n        );\n      }\n      findPrevIntlWordBeforeOrAtOffset(line, offset) {\n        let candidate = null;\n        for (const segment of this._getIntlSegmenterWordsOnLine(line)) {\n          if (segment.index \u003e offset) {\n            break;\n          }\n          candidate = segment;\n        }\n        return candidate;\n      }\n      findNextIntlWordAtOrAfterOffset(lineContent, offset) {\n        for (const segment of this._getIntlSegmenterWordsOnLine(lineContent)) {\n          if (segment.index \u003c offset) {\n            continue;\n          }\n          return segment;\n        }\n        return null;\n      }\n      _getIntlSegmenterWordsOnLine(line) {\n        if (!this._segmenter) {\n          return [];\n        }\n        if (this._cachedLine === line) {\n          return this._cachedSegments;\n        }\n        this._cachedLine = line;\n        this._cachedSegments = this._filterWordSegments(this._segmenter.value.segment(line));\n        return this._cachedSegments;\n      }\n      _filterWordSegments(segments) {\n        const result = [];\n        for (const segment of segments) {\n          if (this._isWordLike(segment)) {\n            result.push(segment);\n          }\n        }\n        return result;\n      }\n      _isWordLike(segment) {\n        if (segment.isWordLike) {\n          return true;\n        }\n        return false;\n      }\n    };\n    wordClassifierCache = new LRUCache(10);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/objects.js\nfunction deepClone(obj) {\n  if (!obj || typeof obj !== \"object\") {\n    return obj;\n  }\n  if (obj instanceof RegExp) {\n    return obj;\n  }\n  const result = Array.isArray(obj) ? [] : {};\n  Object.entries(obj).forEach(([key, value]) =\u003e {\n    result[key] = value \u0026\u0026 typeof value === \"object\" ? deepClone(value) : value;\n  });\n  return result;\n}\nfunction deepFreeze(obj) {\n  if (!obj || typeof obj !== \"object\") {\n    return obj;\n  }\n  const stack = [obj];\n  while (stack.length \u003e 0) {\n    const obj2 = stack.shift();\n    Object.freeze(obj2);\n    for (const key in obj2) {\n      if (_hasOwnProperty.call(obj2, key)) {\n        const prop = obj2[key];\n        if (typeof prop === \"object\" \u0026\u0026 !Object.isFrozen(prop) \u0026\u0026 !isTypedArray(prop)) {\n          stack.push(prop);\n        }\n      }\n    }\n  }\n  return obj;\n}\nfunction cloneAndChange(obj, changer) {\n  return _cloneAndChange(obj, changer, /* @__PURE__ */ new Set());\n}\nfunction _cloneAndChange(obj, changer, seen) {\n  if (isUndefinedOrNull(obj)) {\n    return obj;\n  }\n  const changed = changer(obj);\n  if (typeof changed !== \"undefined\") {\n    return changed;\n  }\n  if (Array.isArray(obj)) {\n    const r1 = [];\n    for (const e of obj) {\n      r1.push(_cloneAndChange(e, changer, seen));\n    }\n    return r1;\n  }\n  if (isObject(obj)) {\n    if (seen.has(obj)) {\n      throw new Error(\"Cannot clone recursive data-structure\");\n    }\n    seen.add(obj);\n    const r2 = {};\n    for (const i2 in obj) {\n      if (_hasOwnProperty.call(obj, i2)) {\n        r2[i2] = _cloneAndChange(obj[i2], changer, seen);\n      }\n    }\n    seen.delete(obj);\n    return r2;\n  }\n  return obj;\n}\nfunction mixin(destination, source, overwrite = true) {\n  if (!isObject(destination)) {\n    return source;\n  }\n  if (isObject(source)) {\n    Object.keys(source).forEach((key) =\u003e {\n      if (key in destination) {\n        if (overwrite) {\n          if (isObject(destination[key]) \u0026\u0026 isObject(source[key])) {\n            mixin(destination[key], source[key], overwrite);\n          } else {\n            destination[key] = source[key];\n          }\n        }\n      } else {\n        destination[key] = source[key];\n      }\n    });\n  }\n  return destination;\n}\nfunction equals2(one, other) {\n  if (one === other) {\n    return true;\n  }\n  if (one === null || one === void 0 || other === null || other === void 0) {\n    return false;\n  }\n  if (typeof one !== typeof other) {\n    return false;\n  }\n  if (typeof one !== \"object\") {\n    return false;\n  }\n  if (Array.isArray(one) !== Array.isArray(other)) {\n    return false;\n  }\n  let i2;\n  let key;\n  if (Array.isArray(one)) {\n    if (one.length !== other.length) {\n      return false;\n    }\n    for (i2 = 0; i2 \u003c one.length; i2++) {\n      if (!equals2(one[i2], other[i2])) {\n        return false;\n      }\n    }\n  } else {\n    const oneKeys = [];\n    for (key in one) {\n      oneKeys.push(key);\n    }\n    oneKeys.sort();\n    const otherKeys = [];\n    for (key in other) {\n      otherKeys.push(key);\n    }\n    otherKeys.sort();\n    if (!equals2(oneKeys, otherKeys)) {\n      return false;\n    }\n    for (i2 = 0; i2 \u003c oneKeys.length; i2++) {\n      if (!equals2(one[oneKeys[i2]], other[oneKeys[i2]])) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\nvar _hasOwnProperty;\nvar init_objects = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/objects.js\"() {\n    init_types();\n    _hasOwnProperty = Object.prototype.hasOwnProperty;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model.js\nfunction isITextSnapshot(obj) {\n  return obj \u0026\u0026 typeof obj.read === \"function\";\n}\nfunction shouldSynchronizeModel(model) {\n  return !model.isTooLargeForSyncing() \u0026\u0026 !model.isForSimpleWidget;\n}\nvar OverviewRulerLane, GlyphMarginLane, TextDirection, InjectedTextCursorStops, TextModelResolvedOptions, FindMatch, ValidAnnotatedEditOperation, SearchData, ApplyEditsResult;\nvar init_model2 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model.js\"() {\n    init_objects();\n    (function(OverviewRulerLane3) {\n      OverviewRulerLane3[OverviewRulerLane3[\"Left\"] = 1] = \"Left\";\n      OverviewRulerLane3[OverviewRulerLane3[\"Center\"] = 2] = \"Center\";\n      OverviewRulerLane3[OverviewRulerLane3[\"Right\"] = 4] = \"Right\";\n      OverviewRulerLane3[OverviewRulerLane3[\"Full\"] = 7] = \"Full\";\n    })(OverviewRulerLane || (OverviewRulerLane = {}));\n    (function(GlyphMarginLane3) {\n      GlyphMarginLane3[GlyphMarginLane3[\"Left\"] = 1] = \"Left\";\n      GlyphMarginLane3[GlyphMarginLane3[\"Center\"] = 2] = \"Center\";\n      GlyphMarginLane3[GlyphMarginLane3[\"Right\"] = 3] = \"Right\";\n    })(GlyphMarginLane || (GlyphMarginLane = {}));\n    (function(TextDirection3) {\n      TextDirection3[TextDirection3[\"LTR\"] = 0] = \"LTR\";\n      TextDirection3[TextDirection3[\"RTL\"] = 1] = \"RTL\";\n    })(TextDirection || (TextDirection = {}));\n    (function(InjectedTextCursorStops3) {\n      InjectedTextCursorStops3[InjectedTextCursorStops3[\"Both\"] = 0] = \"Both\";\n      InjectedTextCursorStops3[InjectedTextCursorStops3[\"Right\"] = 1] = \"Right\";\n      InjectedTextCursorStops3[InjectedTextCursorStops3[\"Left\"] = 2] = \"Left\";\n      InjectedTextCursorStops3[InjectedTextCursorStops3[\"None\"] = 3] = \"None\";\n    })(InjectedTextCursorStops || (InjectedTextCursorStops = {}));\n    TextModelResolvedOptions = class {\n      get originalIndentSize() {\n        return this._indentSizeIsTabSize ? \"tabSize\" : this.indentSize;\n      }\n      /**\n       * @internal\n       */\n      constructor(src) {\n        this._textModelResolvedOptionsBrand = void 0;\n        this.tabSize = Math.max(1, src.tabSize | 0);\n        if (src.indentSize === \"tabSize\") {\n          this.indentSize = this.tabSize;\n          this._indentSizeIsTabSize = true;\n        } else {\n          this.indentSize = Math.max(1, src.indentSize | 0);\n          this._indentSizeIsTabSize = false;\n        }\n        this.insertSpaces = Boolean(src.insertSpaces);\n        this.defaultEOL = src.defaultEOL | 0;\n        this.trimAutoWhitespace = Boolean(src.trimAutoWhitespace);\n        this.bracketPairColorizationOptions = src.bracketPairColorizationOptions;\n      }\n      /**\n       * @internal\n       */\n      equals(other) {\n        return this.tabSize === other.tabSize \u0026\u0026 this._indentSizeIsTabSize === other._indentSizeIsTabSize \u0026\u0026 this.indentSize === other.indentSize \u0026\u0026 this.insertSpaces === other.insertSpaces \u0026\u0026 this.defaultEOL === other.defaultEOL \u0026\u0026 this.trimAutoWhitespace === other.trimAutoWhitespace \u0026\u0026 equals2(this.bracketPairColorizationOptions, other.bracketPairColorizationOptions);\n      }\n      /**\n       * @internal\n       */\n      createChangeEvent(newOpts) {\n        return {\n          tabSize: this.tabSize !== newOpts.tabSize,\n          indentSize: this.indentSize !== newOpts.indentSize,\n          insertSpaces: this.insertSpaces !== newOpts.insertSpaces,\n          trimAutoWhitespace: this.trimAutoWhitespace !== newOpts.trimAutoWhitespace\n        };\n      }\n    };\n    FindMatch = class {\n      /**\n       * @internal\n       */\n      constructor(range2, matches) {\n        this._findMatchBrand = void 0;\n        this.range = range2;\n        this.matches = matches;\n      }\n    };\n    ValidAnnotatedEditOperation = class {\n      constructor(identifier, range2, text2, forceMoveMarkers, isAutoWhitespaceEdit, _isTracked) {\n        this.identifier = identifier;\n        this.range = range2;\n        this.text = text2;\n        this.forceMoveMarkers = forceMoveMarkers;\n        this.isAutoWhitespaceEdit = isAutoWhitespaceEdit;\n        this._isTracked = _isTracked;\n      }\n    };\n    SearchData = class {\n      constructor(regex, wordSeparators2, simpleSearch) {\n        this.regex = regex;\n        this.wordSeparators = wordSeparators2;\n        this.simpleSearch = simpleSearch;\n      }\n    };\n    ApplyEditsResult = class {\n      constructor(reverseEdits, changes, trimAutoWhitespaceLineNumbers) {\n        this.reverseEdits = reverseEdits;\n        this.changes = changes;\n        this.trimAutoWhitespaceLineNumbers = trimAutoWhitespaceLineNumbers;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/languageConfiguration.js\nfunction appendEntry(target, key, value) {\n  if (target.has(key)) {\n    target.get(key).push(value);\n  } else {\n    target.set(key, [value]);\n  }\n}\nvar IndentAction, StandardAutoClosingPairConditional, AutoClosingPairs;\nvar init_languageConfiguration = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/languageConfiguration.js\"() {\n    (function(IndentAction3) {\n      IndentAction3[IndentAction3[\"None\"] = 0] = \"None\";\n      IndentAction3[IndentAction3[\"Indent\"] = 1] = \"Indent\";\n      IndentAction3[IndentAction3[\"IndentOutdent\"] = 2] = \"IndentOutdent\";\n      IndentAction3[IndentAction3[\"Outdent\"] = 3] = \"Outdent\";\n    })(IndentAction || (IndentAction = {}));\n    StandardAutoClosingPairConditional = class {\n      constructor(source) {\n        this._neutralCharacter = null;\n        this._neutralCharacterSearched = false;\n        this.open = source.open;\n        this.close = source.close;\n        this._inString = true;\n        this._inComment = true;\n        this._inRegEx = true;\n        if (Array.isArray(source.notIn)) {\n          for (let i2 = 0, len = source.notIn.length; i2 \u003c len; i2++) {\n            const notIn = source.notIn[i2];\n            switch (notIn) {\n              case \"string\":\n                this._inString = false;\n                break;\n              case \"comment\":\n                this._inComment = false;\n                break;\n              case \"regex\":\n                this._inRegEx = false;\n                break;\n            }\n          }\n        }\n      }\n      isOK(standardToken) {\n        switch (standardToken) {\n          case 0:\n            return true;\n          case 1:\n            return this._inComment;\n          case 2:\n            return this._inString;\n          case 3:\n            return this._inRegEx;\n        }\n      }\n      shouldAutoClose(context, column) {\n        if (context.getTokenCount() === 0) {\n          return true;\n        }\n        const tokenIndex = context.findTokenIndexAtOffset(column - 2);\n        const standardTokenType = context.getStandardTokenType(tokenIndex);\n        return this.isOK(standardTokenType);\n      }\n      _findNeutralCharacterInRange(fromCharCode, toCharCode) {\n        for (let charCode = fromCharCode; charCode \u003c= toCharCode; charCode++) {\n          const character = String.fromCharCode(charCode);\n          if (!this.open.includes(character) \u0026\u0026 !this.close.includes(character)) {\n            return character;\n          }\n        }\n        return null;\n      }\n      /**\n       * Find a character in the range [0-9a-zA-Z] that does not appear in the open or close\n       */\n      findNeutralCharacter() {\n        if (!this._neutralCharacterSearched) {\n          this._neutralCharacterSearched = true;\n          if (!this._neutralCharacter) {\n            this._neutralCharacter = this._findNeutralCharacterInRange(\n              48,\n              57\n              /* CharCode.Digit9 */\n            );\n          }\n          if (!this._neutralCharacter) {\n            this._neutralCharacter = this._findNeutralCharacterInRange(\n              97,\n              122\n              /* CharCode.z */\n            );\n          }\n          if (!this._neutralCharacter) {\n            this._neutralCharacter = this._findNeutralCharacterInRange(\n              65,\n              90\n              /* CharCode.Z */\n            );\n          }\n        }\n        return this._neutralCharacter;\n      }\n    };\n    AutoClosingPairs = class {\n      constructor(autoClosingPairs) {\n        this.autoClosingPairsOpenByStart = /* @__PURE__ */ new Map();\n        this.autoClosingPairsOpenByEnd = /* @__PURE__ */ new Map();\n        this.autoClosingPairsCloseByStart = /* @__PURE__ */ new Map();\n        this.autoClosingPairsCloseByEnd = /* @__PURE__ */ new Map();\n        this.autoClosingPairsCloseSingleChar = /* @__PURE__ */ new Map();\n        for (const pair of autoClosingPairs) {\n          appendEntry(this.autoClosingPairsOpenByStart, pair.open.charAt(0), pair);\n          appendEntry(this.autoClosingPairsOpenByEnd, pair.open.charAt(pair.open.length - 1), pair);\n          appendEntry(this.autoClosingPairsCloseByStart, pair.close.charAt(0), pair);\n          appendEntry(this.autoClosingPairsCloseByEnd, pair.close.charAt(pair.close.length - 1), pair);\n          if (pair.close.length === 1 \u0026\u0026 pair.open.length === 1) {\n            appendEntry(this.autoClosingPairsCloseSingleChar, pair.close, pair);\n          }\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/wordHelper.js\nfunction createWordRegExp(allowInWords = \"\") {\n  let source = \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\";\n  for (const sep2 of USUAL_WORD_SEPARATORS) {\n    if (allowInWords.indexOf(sep2) \u003e= 0) {\n      continue;\n    }\n    source += \"\\\\\" + sep2;\n  }\n  source += \"\\\\s]+)\";\n  return new RegExp(source, \"g\");\n}\nfunction ensureValidWordDefinition(wordDefinition) {\n  let result = DEFAULT_WORD_REGEXP;\n  if (wordDefinition \u0026\u0026 wordDefinition instanceof RegExp) {\n    if (!wordDefinition.global) {\n      let flags = \"g\";\n      if (wordDefinition.ignoreCase) {\n        flags += \"i\";\n      }\n      if (wordDefinition.multiline) {\n        flags += \"m\";\n      }\n      if (wordDefinition.unicode) {\n        flags += \"u\";\n      }\n      result = new RegExp(wordDefinition.source, flags);\n    } else {\n      result = wordDefinition;\n    }\n  }\n  result.lastIndex = 0;\n  return result;\n}\nfunction getWordAtText(column, wordDefinition, text2, textOffset, config) {\n  wordDefinition = ensureValidWordDefinition(wordDefinition);\n  if (!config) {\n    config = Iterable.first(_defaultConfig);\n  }\n  if (text2.length \u003e config.maxLen) {\n    let start = column - config.maxLen / 2;\n    if (start \u003c 0) {\n      start = 0;\n    } else {\n      textOffset += start;\n    }\n    text2 = text2.substring(start, column + config.maxLen / 2);\n    return getWordAtText(column, wordDefinition, text2, textOffset, config);\n  }\n  const t1 = Date.now();\n  const pos = column - 1 - textOffset;\n  let prevRegexIndex = -1;\n  let match2 = null;\n  for (let i2 = 1; ; i2++) {\n    if (Date.now() - t1 \u003e= config.timeBudget) {\n      break;\n    }\n    const regexIndex = pos - config.windowSize * i2;\n    wordDefinition.lastIndex = Math.max(0, regexIndex);\n    const thisMatch = _findRegexMatchEnclosingPosition(wordDefinition, text2, pos, prevRegexIndex);\n    if (!thisMatch \u0026\u0026 match2) {\n      break;\n    }\n    match2 = thisMatch;\n    if (regexIndex \u003c= 0) {\n      break;\n    }\n    prevRegexIndex = regexIndex;\n  }\n  if (match2) {\n    const result = {\n      word: match2[0],\n      startColumn: textOffset + 1 + match2.index,\n      endColumn: textOffset + 1 + match2.index + match2[0].length\n    };\n    wordDefinition.lastIndex = 0;\n    return result;\n  }\n  return null;\n}\nfunction _findRegexMatchEnclosingPosition(wordDefinition, text2, pos, stopPos) {\n  let match2;\n  while (match2 = wordDefinition.exec(text2)) {\n    const matchIndex = match2.index || 0;\n    if (matchIndex \u003c= pos \u0026\u0026 wordDefinition.lastIndex \u003e= pos) {\n      return match2;\n    } else if (stopPos \u003e 0 \u0026\u0026 matchIndex \u003e stopPos) {\n      return null;\n    }\n  }\n  return null;\n}\nvar USUAL_WORD_SEPARATORS, DEFAULT_WORD_REGEXP, _defaultConfig;\nvar init_wordHelper = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/wordHelper.js\"() {\n    init_iterator();\n    init_linkedList();\n    USUAL_WORD_SEPARATORS = \"`~!@#$%^\u0026*()-=+[{]}\\\\|;:'\\\",.\u003c\u003e/?\";\n    DEFAULT_WORD_REGEXP = createWordRegExp();\n    _defaultConfig = new LinkedList();\n    _defaultConfig.unshift({\n      maxLen: 1e3,\n      windowSize: 15,\n      timeBudget: 150\n    });\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/characterPair.js\nvar CharacterPairSupport;\nvar init_characterPair = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/characterPair.js\"() {\n    init_languageConfiguration();\n    CharacterPairSupport = class _CharacterPairSupport {\n      static {\n        this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES = \";:.,=}])\u003e \\n\t\";\n      }\n      static {\n        this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS = \"'\\\"`;:.,=}])\u003e \\n\t\";\n      }\n      constructor(config) {\n        if (config.autoClosingPairs) {\n          this._autoClosingPairs = config.autoClosingPairs.map((el) =\u003e new StandardAutoClosingPairConditional(el));\n        } else if (config.brackets) {\n          this._autoClosingPairs = config.brackets.map((b) =\u003e new StandardAutoClosingPairConditional({ open: b[0], close: b[1] }));\n        } else {\n          this._autoClosingPairs = [];\n        }\n        if (config.__electricCharacterSupport \u0026\u0026 config.__electricCharacterSupport.docComment) {\n          const docComment = config.__electricCharacterSupport.docComment;\n          this._autoClosingPairs.push(new StandardAutoClosingPairConditional({ open: docComment.open, close: docComment.close || \"\" }));\n        }\n        this._autoCloseBeforeForQuotes = typeof config.autoCloseBefore === \"string\" ? config.autoCloseBefore : _CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES;\n        this._autoCloseBeforeForBrackets = typeof config.autoCloseBefore === \"string\" ? config.autoCloseBefore : _CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS;\n        this._surroundingPairs = config.surroundingPairs || this._autoClosingPairs;\n      }\n      getAutoClosingPairs() {\n        return this._autoClosingPairs;\n      }\n      getAutoCloseBeforeSet(forQuotes) {\n        return forQuotes ? this._autoCloseBeforeForQuotes : this._autoCloseBeforeForBrackets;\n      }\n      getSurroundingPairs() {\n        return this._surroundingPairs;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/stringBuilder.js\nfunction getUTF16LE_TextDecoder() {\n  if (!_utf16LE_TextDecoder) {\n    _utf16LE_TextDecoder = new TextDecoder(\"UTF-16LE\");\n  }\n  return _utf16LE_TextDecoder;\n}\nfunction getUTF16BE_TextDecoder() {\n  if (!_utf16BE_TextDecoder) {\n    _utf16BE_TextDecoder = new TextDecoder(\"UTF-16BE\");\n  }\n  return _utf16BE_TextDecoder;\n}\nfunction getPlatformTextDecoder() {\n  if (!_platformTextDecoder) {\n    _platformTextDecoder = isLittleEndian() ? getUTF16LE_TextDecoder() : getUTF16BE_TextDecoder();\n  }\n  return _platformTextDecoder;\n}\nfunction decodeUTF16LE(source, offset, len) {\n  const view = new Uint16Array(source.buffer, offset, len);\n  if (len \u003e 0 \u0026\u0026 (view[0] === 65279 || view[0] === 65534)) {\n    return compatDecodeUTF16LE(source, offset, len);\n  }\n  return getUTF16LE_TextDecoder().decode(view);\n}\nfunction compatDecodeUTF16LE(source, offset, len) {\n  const result = [];\n  let resultLen = 0;\n  for (let i2 = 0; i2 \u003c len; i2++) {\n    const charCode = readUInt16LE(source, offset);\n    offset += 2;\n    result[resultLen++] = String.fromCharCode(charCode);\n  }\n  return result.join(\"\");\n}\nvar _utf16LE_TextDecoder, _utf16BE_TextDecoder, _platformTextDecoder, StringBuilder;\nvar init_stringBuilder = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/stringBuilder.js\"() {\n    init_strings();\n    init_platform();\n    init_buffer();\n    StringBuilder = class {\n      constructor(capacity) {\n        this._capacity = capacity | 0;\n        this._buffer = new Uint16Array(this._capacity);\n        this._completedStrings = null;\n        this._bufferLength = 0;\n      }\n      reset() {\n        this._completedStrings = null;\n        this._bufferLength = 0;\n      }\n      build() {\n        if (this._completedStrings !== null) {\n          this._flushBuffer();\n          return this._completedStrings.join(\"\");\n        }\n        return this._buildBuffer();\n      }\n      _buildBuffer() {\n        if (this._bufferLength === 0) {\n          return \"\";\n        }\n        const view = new Uint16Array(this._buffer.buffer, 0, this._bufferLength);\n        return getPlatformTextDecoder().decode(view);\n      }\n      _flushBuffer() {\n        const bufferString = this._buildBuffer();\n        this._bufferLength = 0;\n        if (this._completedStrings === null) {\n          this._completedStrings = [bufferString];\n        } else {\n          this._completedStrings[this._completedStrings.length] = bufferString;\n        }\n      }\n      /**\n       * Append a char code (\u003c2^16)\n       */\n      appendCharCode(charCode) {\n        const remainingSpace = this._capacity - this._bufferLength;\n        if (remainingSpace \u003c= 1) {\n          if (remainingSpace === 0 || isHighSurrogate(charCode)) {\n            this._flushBuffer();\n          }\n        }\n        this._buffer[this._bufferLength++] = charCode;\n      }\n      /**\n       * Append an ASCII char code (\u003c2^8)\n       */\n      appendASCIICharCode(charCode) {\n        if (this._bufferLength === this._capacity) {\n          this._flushBuffer();\n        }\n        this._buffer[this._bufferLength++] = charCode;\n      }\n      appendString(str) {\n        const strLen = str.length;\n        if (this._bufferLength + strLen \u003e= this._capacity) {\n          this._flushBuffer();\n          this._completedStrings[this._completedStrings.length] = str;\n          return;\n        }\n        for (let i2 = 0; i2 \u003c strLen; i2++) {\n          this._buffer[this._bufferLength++] = str.charCodeAt(i2);\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/richEditBrackets.js\nfunction groupFuzzyBrackets(brackets) {\n  const N = brackets.length;\n  brackets = brackets.map((b) =\u003e [b[0].toLowerCase(), b[1].toLowerCase()]);\n  const group = [];\n  for (let i2 = 0; i2 \u003c N; i2++) {\n    group[i2] = i2;\n  }\n  const areOverlapping = (a, b) =\u003e {\n    const [aOpen, aClose] = a;\n    const [bOpen, bClose] = b;\n    return aOpen === bOpen || aOpen === bClose || aClose === bOpen || aClose === bClose;\n  };\n  const mergeGroups = (g1, g2) =\u003e {\n    const newG = Math.min(g1, g2);\n    const oldG = Math.max(g1, g2);\n    for (let i2 = 0; i2 \u003c N; i2++) {\n      if (group[i2] === oldG) {\n        group[i2] = newG;\n      }\n    }\n  };\n  for (let i2 = 0; i2 \u003c N; i2++) {\n    const a = brackets[i2];\n    for (let j = i2 + 1; j \u003c N; j++) {\n      const b = brackets[j];\n      if (areOverlapping(a, b)) {\n        mergeGroups(group[i2], group[j]);\n      }\n    }\n  }\n  const result = [];\n  for (let g = 0; g \u003c N; g++) {\n    const currentOpen = [];\n    const currentClose = [];\n    for (let i2 = 0; i2 \u003c N; i2++) {\n      if (group[i2] === g) {\n        const [open, close] = brackets[i2];\n        currentOpen.push(open);\n        currentClose.push(close);\n      }\n    }\n    if (currentOpen.length \u003e 0) {\n      result.push({\n        open: currentOpen,\n        close: currentClose\n      });\n    }\n  }\n  return result;\n}\nfunction collectSuperstrings(str, brackets, currentIndex, dest) {\n  for (let i2 = 0, len = brackets.length; i2 \u003c len; i2++) {\n    if (i2 === currentIndex) {\n      continue;\n    }\n    const bracket = brackets[i2];\n    for (const open of bracket.open) {\n      if (open.indexOf(str) \u003e= 0) {\n        dest.push(open);\n      }\n    }\n    for (const close of bracket.close) {\n      if (close.indexOf(str) \u003e= 0) {\n        dest.push(close);\n      }\n    }\n  }\n}\nfunction lengthcmp(a, b) {\n  return a.length - b.length;\n}\nfunction unique(arr) {\n  if (arr.length \u003c= 1) {\n    return arr;\n  }\n  const result = [];\n  const seen = /* @__PURE__ */ new Set();\n  for (const element of arr) {\n    if (seen.has(element)) {\n      continue;\n    }\n    result.push(element);\n    seen.add(element);\n  }\n  return result;\n}\nfunction getRegexForBracketPair(open, close, brackets, currentIndex) {\n  let pieces = [];\n  pieces = pieces.concat(open);\n  pieces = pieces.concat(close);\n  for (let i2 = 0, len = pieces.length; i2 \u003c len; i2++) {\n    collectSuperstrings(pieces[i2], brackets, currentIndex, pieces);\n  }\n  pieces = unique(pieces);\n  pieces.sort(lengthcmp);\n  pieces.reverse();\n  return createBracketOrRegExp(pieces);\n}\nfunction getReversedRegexForBracketPair(open, close, brackets, currentIndex) {\n  let pieces = [];\n  pieces = pieces.concat(open);\n  pieces = pieces.concat(close);\n  for (let i2 = 0, len = pieces.length; i2 \u003c len; i2++) {\n    collectSuperstrings(pieces[i2], brackets, currentIndex, pieces);\n  }\n  pieces = unique(pieces);\n  pieces.sort(lengthcmp);\n  pieces.reverse();\n  return createBracketOrRegExp(pieces.map(toReversedString));\n}\nfunction getRegexForBrackets(brackets) {\n  let pieces = [];\n  for (const bracket of brackets) {\n    for (const open of bracket.open) {\n      pieces.push(open);\n    }\n    for (const close of bracket.close) {\n      pieces.push(close);\n    }\n  }\n  pieces = unique(pieces);\n  return createBracketOrRegExp(pieces);\n}\nfunction getReversedRegexForBrackets(brackets) {\n  let pieces = [];\n  for (const bracket of brackets) {\n    for (const open of bracket.open) {\n      pieces.push(open);\n    }\n    for (const close of bracket.close) {\n      pieces.push(close);\n    }\n  }\n  pieces = unique(pieces);\n  return createBracketOrRegExp(pieces.map(toReversedString));\n}\nfunction prepareBracketForRegExp(str) {\n  const insertWordBoundaries = /^[\\w ]+$/.test(str);\n  str = escapeRegExpCharacters(str);\n  return insertWordBoundaries ? `\\\\b${str}\\\\b` : str;\n}\nfunction createBracketOrRegExp(pieces, options2) {\n  const regexStr = `(${pieces.map(prepareBracketForRegExp).join(\")|(\")})`;\n  return createRegExp(regexStr, true, options2);\n}\nvar RichEditBracket, RichEditBrackets, toReversedString, BracketsUtils;\nvar init_richEditBrackets = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/richEditBrackets.js\"() {\n    init_strings();\n    init_stringBuilder();\n    init_range();\n    RichEditBracket = class _RichEditBracket {\n      constructor(languageId, index, open, close, forwardRegex, reversedRegex) {\n        this._richEditBracketBrand = void 0;\n        this.languageId = languageId;\n        this.index = index;\n        this.open = open;\n        this.close = close;\n        this.forwardRegex = forwardRegex;\n        this.reversedRegex = reversedRegex;\n        this._openSet = _RichEditBracket._toSet(this.open);\n        this._closeSet = _RichEditBracket._toSet(this.close);\n      }\n      /**\n       * Check if the provided `text` is an open bracket in this group.\n       */\n      isOpen(text2) {\n        return this._openSet.has(text2);\n      }\n      /**\n       * Check if the provided `text` is a close bracket in this group.\n       */\n      isClose(text2) {\n        return this._closeSet.has(text2);\n      }\n      static _toSet(arr) {\n        const result = /* @__PURE__ */ new Set();\n        for (const element of arr) {\n          result.add(element);\n        }\n        return result;\n      }\n    };\n    RichEditBrackets = class {\n      constructor(languageId, _brackets) {\n        this._richEditBracketsBrand = void 0;\n        const brackets = groupFuzzyBrackets(_brackets);\n        this.brackets = brackets.map((b, index) =\u003e {\n          return new RichEditBracket(languageId, index, b.open, b.close, getRegexForBracketPair(b.open, b.close, brackets, index), getReversedRegexForBracketPair(b.open, b.close, brackets, index));\n        });\n        this.forwardRegex = getRegexForBrackets(this.brackets);\n        this.reversedRegex = getReversedRegexForBrackets(this.brackets);\n        this.textIsBracket = {};\n        this.textIsOpenBracket = {};\n        this.maxBracketLength = 0;\n        for (const bracket of this.brackets) {\n          for (const open of bracket.open) {\n            this.textIsBracket[open] = bracket;\n            this.textIsOpenBracket[open] = true;\n            this.maxBracketLength = Math.max(this.maxBracketLength, open.length);\n          }\n          for (const close of bracket.close) {\n            this.textIsBracket[close] = bracket;\n            this.textIsOpenBracket[close] = false;\n            this.maxBracketLength = Math.max(this.maxBracketLength, close.length);\n          }\n        }\n      }\n    };\n    toReversedString = /* @__PURE__ */ (function() {\n      function reverse(str) {\n        const arr = new Uint16Array(str.length);\n        let offset = 0;\n        for (let i2 = str.length - 1; i2 \u003e= 0; i2--) {\n          arr[offset++] = str.charCodeAt(i2);\n        }\n        return getPlatformTextDecoder().decode(arr);\n      }\n      let lastInput = null;\n      let lastOutput = null;\n      return function toReversedString2(str) {\n        if (lastInput !== str) {\n          lastInput = str;\n          lastOutput = reverse(lastInput);\n        }\n        return lastOutput;\n      };\n    })();\n    BracketsUtils = class {\n      static _findPrevBracketInText(reversedBracketRegex, lineNumber, reversedText, offset) {\n        const m = reversedText.match(reversedBracketRegex);\n        if (!m) {\n          return null;\n        }\n        const matchOffset = reversedText.length - (m.index || 0);\n        const matchLength = m[0].length;\n        const absoluteMatchOffset = offset + matchOffset;\n        return new Range(lineNumber, absoluteMatchOffset - matchLength + 1, lineNumber, absoluteMatchOffset + 1);\n      }\n      static findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, startOffset, endOffset) {\n        const reversedLineText = toReversedString(lineText);\n        const reversedSubstr = reversedLineText.substring(lineText.length - endOffset, lineText.length - startOffset);\n        return this._findPrevBracketInText(reversedBracketRegex, lineNumber, reversedSubstr, startOffset);\n      }\n      static findNextBracketInText(bracketRegex, lineNumber, text2, offset) {\n        const m = text2.match(bracketRegex);\n        if (!m) {\n          return null;\n        }\n        const matchOffset = m.index || 0;\n        const matchLength = m[0].length;\n        if (matchLength === 0) {\n          return null;\n        }\n        const absoluteMatchOffset = offset + matchOffset;\n        return new Range(lineNumber, absoluteMatchOffset + 1, lineNumber, absoluteMatchOffset + 1 + matchLength);\n      }\n      static findNextBracketInRange(bracketRegex, lineNumber, lineText, startOffset, endOffset) {\n        const substr = lineText.substring(startOffset, endOffset);\n        return this.findNextBracketInText(bracketRegex, lineNumber, substr, startOffset);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/electricCharacter.js\nvar BracketElectricCharacterSupport;\nvar init_electricCharacter = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/electricCharacter.js\"() {\n    init_arrays();\n    init_supports();\n    init_richEditBrackets();\n    BracketElectricCharacterSupport = class {\n      constructor(richEditBrackets) {\n        this._richEditBrackets = richEditBrackets;\n      }\n      getElectricCharacters() {\n        const result = [];\n        if (this._richEditBrackets) {\n          for (const bracket of this._richEditBrackets.brackets) {\n            for (const close of bracket.close) {\n              const lastChar = close.charAt(close.length - 1);\n              result.push(lastChar);\n            }\n          }\n        }\n        return distinct(result);\n      }\n      onElectricCharacter(character, context, column) {\n        if (!this._richEditBrackets || this._richEditBrackets.brackets.length === 0) {\n          return null;\n        }\n        const tokenIndex = context.findTokenIndexAtOffset(column - 1);\n        if (ignoreBracketsInToken(context.getStandardTokenType(tokenIndex))) {\n          return null;\n        }\n        const reversedBracketRegex = this._richEditBrackets.reversedRegex;\n        const text2 = context.getLineContent().substring(0, column - 1) + character;\n        const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, 1, text2, 0, text2.length);\n        if (!r) {\n          return null;\n        }\n        const bracketText = text2.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n        const isOpen = this._richEditBrackets.textIsOpenBracket[bracketText];\n        if (isOpen) {\n          return null;\n        }\n        const textBeforeBracket = context.getActualLineContentBefore(r.startColumn - 1);\n        if (!/^\\s*$/.test(textBeforeBracket)) {\n          return null;\n        }\n        return {\n          matchOpenBracket: bracketText\n        };\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/indentRules.js\nfunction resetGlobalRegex(reg) {\n  if (reg.global) {\n    reg.lastIndex = 0;\n  }\n  return true;\n}\nvar IndentRulesSupport;\nvar init_indentRules = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/indentRules.js\"() {\n    IndentRulesSupport = class {\n      constructor(indentationRules) {\n        this._indentationRules = indentationRules;\n      }\n      shouldIncrease(text2) {\n        if (this._indentationRules) {\n          if (this._indentationRules.increaseIndentPattern \u0026\u0026 resetGlobalRegex(this._indentationRules.increaseIndentPattern) \u0026\u0026 this._indentationRules.increaseIndentPattern.test(text2)) {\n            return true;\n          }\n        }\n        return false;\n      }\n      shouldDecrease(text2) {\n        if (this._indentationRules \u0026\u0026 this._indentationRules.decreaseIndentPattern \u0026\u0026 resetGlobalRegex(this._indentationRules.decreaseIndentPattern) \u0026\u0026 this._indentationRules.decreaseIndentPattern.test(text2)) {\n          return true;\n        }\n        return false;\n      }\n      shouldIndentNextLine(text2) {\n        if (this._indentationRules \u0026\u0026 this._indentationRules.indentNextLinePattern \u0026\u0026 resetGlobalRegex(this._indentationRules.indentNextLinePattern) \u0026\u0026 this._indentationRules.indentNextLinePattern.test(text2)) {\n          return true;\n        }\n        return false;\n      }\n      shouldIgnore(text2) {\n        if (this._indentationRules \u0026\u0026 this._indentationRules.unIndentedLinePattern \u0026\u0026 resetGlobalRegex(this._indentationRules.unIndentedLinePattern) \u0026\u0026 this._indentationRules.unIndentedLinePattern.test(text2)) {\n          return true;\n        }\n        return false;\n      }\n      getIndentMetadata(text2) {\n        let ret = 0;\n        if (this.shouldIncrease(text2)) {\n          ret += 1;\n        }\n        if (this.shouldDecrease(text2)) {\n          ret += 2;\n        }\n        if (this.shouldIndentNextLine(text2)) {\n          ret += 4;\n        }\n        if (this.shouldIgnore(text2)) {\n          ret += 8;\n        }\n        return ret;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/onEnter.js\nvar OnEnterSupport;\nvar init_onEnter = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/onEnter.js\"() {\n    init_errors();\n    init_strings();\n    init_languageConfiguration();\n    OnEnterSupport = class _OnEnterSupport {\n      constructor(opts) {\n        opts = opts || {};\n        opts.brackets = opts.brackets || [\n          [\"(\", \")\"],\n          [\"{\", \"}\"],\n          [\"[\", \"]\"]\n        ];\n        this._brackets = [];\n        opts.brackets.forEach((bracket) =\u003e {\n          const openRegExp = _OnEnterSupport._createOpenBracketRegExp(bracket[0]);\n          const closeRegExp = _OnEnterSupport._createCloseBracketRegExp(bracket[1]);\n          if (openRegExp \u0026\u0026 closeRegExp) {\n            this._brackets.push({\n              open: bracket[0],\n              openRegExp,\n              close: bracket[1],\n              closeRegExp\n            });\n          }\n        });\n        this._regExpRules = opts.onEnterRules || [];\n      }\n      onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {\n        if (autoIndent \u003e= 3) {\n          for (let i2 = 0, len = this._regExpRules.length; i2 \u003c len; i2++) {\n            const rule = this._regExpRules[i2];\n            const regResult = [{\n              reg: rule.beforeText,\n              text: beforeEnterText\n            }, {\n              reg: rule.afterText,\n              text: afterEnterText\n            }, {\n              reg: rule.previousLineText,\n              text: previousLineText\n            }].every((obj) =\u003e {\n              if (!obj.reg) {\n                return true;\n              }\n              obj.reg.lastIndex = 0;\n              return obj.reg.test(obj.text);\n            });\n            if (regResult) {\n              return rule.action;\n            }\n          }\n        }\n        if (autoIndent \u003e= 2) {\n          if (beforeEnterText.length \u003e 0 \u0026\u0026 afterEnterText.length \u003e 0) {\n            for (let i2 = 0, len = this._brackets.length; i2 \u003c len; i2++) {\n              const bracket = this._brackets[i2];\n              if (bracket.openRegExp.test(beforeEnterText) \u0026\u0026 bracket.closeRegExp.test(afterEnterText)) {\n                return { indentAction: IndentAction.IndentOutdent };\n              }\n            }\n          }\n        }\n        if (autoIndent \u003e= 2) {\n          if (beforeEnterText.length \u003e 0) {\n            for (let i2 = 0, len = this._brackets.length; i2 \u003c len; i2++) {\n              const bracket = this._brackets[i2];\n              if (bracket.openRegExp.test(beforeEnterText)) {\n                return { indentAction: IndentAction.Indent };\n              }\n            }\n          }\n        }\n        return null;\n      }\n      static _createOpenBracketRegExp(bracket) {\n        let str = escapeRegExpCharacters(bracket);\n        if (!/\\B/.test(str.charAt(0))) {\n          str = \"\\\\b\" + str;\n        }\n        str += \"\\\\s*$\";\n        return _OnEnterSupport._safeRegExp(str);\n      }\n      static _createCloseBracketRegExp(bracket) {\n        let str = escapeRegExpCharacters(bracket);\n        if (!/\\B/.test(str.charAt(str.length - 1))) {\n          str = str + \"\\\\b\";\n        }\n        str = \"^\\\\s*\" + str;\n        return _OnEnterSupport._safeRegExp(str);\n      }\n      static _safeRegExp(def2) {\n        try {\n          return new RegExp(def2);\n        } catch (err) {\n          onUnexpectedError(err);\n          return null;\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/configuration/common/configuration.js\nfunction toValuesTree(properties, conflictReporter) {\n  const root = /* @__PURE__ */ Object.create(null);\n  for (const key in properties) {\n    addToValueTree(root, key, properties[key], conflictReporter);\n  }\n  return root;\n}\nfunction addToValueTree(settingsTreeRoot, key, value, conflictReporter) {\n  const segments = key.split(\".\");\n  const last = segments.pop();\n  let curr = settingsTreeRoot;\n  for (let i2 = 0; i2 \u003c segments.length; i2++) {\n    const s = segments[i2];\n    let obj = curr[s];\n    switch (typeof obj) {\n      case \"undefined\":\n        obj = curr[s] = /* @__PURE__ */ Object.create(null);\n        break;\n      case \"object\":\n        if (obj === null) {\n          conflictReporter(`Ignoring ${key} as ${segments.slice(0, i2 + 1).join(\".\")} is null`);\n          return;\n        }\n        break;\n      default:\n        conflictReporter(`Ignoring ${key} as ${segments.slice(0, i2 + 1).join(\".\")} is ${JSON.stringify(obj)}`);\n        return;\n    }\n    curr = obj;\n  }\n  if (typeof curr === \"object\" \u0026\u0026 curr !== null) {\n    try {\n      curr[last] = value;\n    } catch (e) {\n      conflictReporter(`Ignoring ${key} as ${segments.join(\".\")} is ${JSON.stringify(curr)}`);\n    }\n  } else {\n    conflictReporter(`Ignoring ${key} as ${segments.join(\".\")} is ${JSON.stringify(curr)}`);\n  }\n}\nfunction removeFromValueTree(valueTree, key) {\n  const segments = key.split(\".\");\n  doRemoveFromValueTree(valueTree, segments);\n}\nfunction doRemoveFromValueTree(valueTree, segments) {\n  if (!valueTree) {\n    return;\n  }\n  const first2 = segments.shift();\n  if (segments.length === 0) {\n    delete valueTree[first2];\n    return;\n  }\n  if (Object.keys(valueTree).indexOf(first2) !== -1) {\n    const value = valueTree[first2];\n    if (typeof value === \"object\" \u0026\u0026 !Array.isArray(value)) {\n      doRemoveFromValueTree(value, segments);\n      if (Object.keys(value).length === 0) {\n        delete valueTree[first2];\n      }\n    }\n  }\n}\nfunction getConfigurationValue(config, settingPath, defaultValue) {\n  function accessSetting(config2, path2) {\n    let current = config2;\n    for (const component of path2) {\n      if (typeof current !== \"object\" || current === null) {\n        return void 0;\n      }\n      current = current[component];\n    }\n    return current;\n  }\n  const path = settingPath.split(\".\");\n  const result = accessSetting(config, path);\n  return typeof result === \"undefined\" ? defaultValue : result;\n}\nfunction getLanguageTagSettingPlainKey(settingKey) {\n  return settingKey.replace(/^\\[/, \"\").replace(/]$/g, \"\").replace(/\\]\\[/g, \", \");\n}\nvar IConfigurationService;\nvar init_configuration = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/configuration/common/configuration.js\"() {\n    init_instantiation();\n    IConfigurationService = createDecorator(\"configurationService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/language.js\nvar ILanguageService;\nvar init_language = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/language.js\"() {\n    init_instantiation();\n    ILanguageService = createDecorator(\"languageService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/descriptors.js\nvar SyncDescriptor;\nvar init_descriptors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/descriptors.js\"() {\n    SyncDescriptor = class {\n      constructor(ctor, staticArguments = [], supportsDelayedInstantiation = false) {\n        this.ctor = ctor;\n        this.staticArguments = staticArguments;\n        this.supportsDelayedInstantiation = supportsDelayedInstantiation;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/extensions.js\nfunction registerSingleton(id, ctorOrDescriptor, supportsDelayedInstantiation) {\n  if (!(ctorOrDescriptor instanceof SyncDescriptor)) {\n    ctorOrDescriptor = new SyncDescriptor(ctorOrDescriptor, [], Boolean(supportsDelayedInstantiation));\n  }\n  _registry.push([id, ctorOrDescriptor]);\n}\nfunction getSingletonServiceDescriptors() {\n  return _registry;\n}\nvar _registry;\nvar init_extensions = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/extensions.js\"() {\n    init_descriptors();\n    _registry = [];\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/mime.js\nvar Mimes;\nvar init_mime = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/mime.js\"() {\n    Mimes = Object.freeze({\n      text: \"text/plain\",\n      binary: \"application/octet-stream\",\n      unknown: \"application/unknown\",\n      markdown: \"text/markdown\",\n      latex: \"text/latex\",\n      uriList: \"text/uri-list\",\n      html: \"text/html\"\n    });\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/jsonschemas/common/jsonContributionRegistry.js\nfunction normalizeId(id) {\n  if (id.length \u003e 0 \u0026\u0026 id.charAt(id.length - 1) === \"#\") {\n    return id.substring(0, id.length - 1);\n  }\n  return id;\n}\nvar Extensions3, JSONContributionRegistry, jsonContributionRegistry;\nvar init_jsonContributionRegistry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/jsonschemas/common/jsonContributionRegistry.js\"() {\n    init_event();\n    init_lifecycle();\n    init_platform2();\n    Extensions3 = {\n      JSONContribution: \"base.contributions.json\"\n    };\n    JSONContributionRegistry = class extends Disposable {\n      constructor() {\n        super(...arguments);\n        this.schemasById = {};\n        this._onDidChangeSchema = this._register(new Emitter());\n      }\n      registerSchema(uri, unresolvedSchemaContent, store) {\n        const normalizedUri = normalizeId(uri);\n        this.schemasById[normalizedUri] = unresolvedSchemaContent;\n        this._onDidChangeSchema.fire(uri);\n        if (store) {\n          store.add(toDisposable(() =\u003e {\n            delete this.schemasById[normalizedUri];\n            this._onDidChangeSchema.fire(uri);\n          }));\n        }\n      }\n      notifySchemaChanged(uri) {\n        this._onDidChangeSchema.fire(uri);\n      }\n    };\n    jsonContributionRegistry = new JSONContributionRegistry();\n    Registry.add(Extensions3.JSONContribution, jsonContributionRegistry);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/configuration/common/configurationRegistry.js\nfunction overrideIdentifiersFromKey(key) {\n  const identifiers = [];\n  if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n    let matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);\n    while (matches?.length) {\n      const identifier = matches[1].trim();\n      if (identifier) {\n        identifiers.push(identifier);\n      }\n      matches = OVERRIDE_IDENTIFIER_REGEX.exec(key);\n    }\n  }\n  return distinct(identifiers);\n}\nfunction getDefaultValue(type) {\n  const t = Array.isArray(type) ? type[0] : type;\n  switch (t) {\n    case \"boolean\":\n      return false;\n    case \"integer\":\n    case \"number\":\n      return 0;\n    case \"string\":\n      return \"\";\n    case \"array\":\n      return [];\n    case \"object\":\n      return {};\n    default:\n      return null;\n  }\n}\nfunction validateProperty(property, schema) {\n  if (!property.trim()) {\n    return localize(1652, \"Cannot register an empty property\");\n  }\n  if (OVERRIDE_PROPERTY_REGEX.test(property)) {\n    return localize(1653, \"Cannot register '{0}'. This matches property pattern '\\\\\\\\[.*\\\\\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.\", property);\n  }\n  if (configurationRegistry.getConfigurationProperties()[property] !== void 0) {\n    return localize(1654, \"Cannot register '{0}'. This property is already registered.\", property);\n  }\n  if (schema.policy?.name \u0026\u0026 configurationRegistry.getPolicyConfigurations().get(schema.policy?.name) !== void 0) {\n    return localize(1655, \"Cannot register '{0}'. The associated policy {1} is already registered with {2}.\", property, schema.policy?.name, configurationRegistry.getPolicyConfigurations().get(schema.policy?.name));\n  }\n  return null;\n}\nvar Extensions4, allSettings, applicationSettings, applicationMachineSettings, machineSettings, machineOverridableSettings, windowSettings, resourceSettings, resourceLanguageSettingsSchemaId, contributionRegistry, ConfigurationRegistry, OVERRIDE_IDENTIFIER_PATTERN, OVERRIDE_IDENTIFIER_REGEX, OVERRIDE_PROPERTY_PATTERN, OVERRIDE_PROPERTY_REGEX, configurationRegistry;\nvar init_configurationRegistry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/configuration/common/configurationRegistry.js\"() {\n    init_arrays();\n    init_event();\n    init_types();\n    init_nls();\n    init_configuration();\n    init_jsonContributionRegistry();\n    init_platform2();\n    init_lifecycle();\n    Extensions4 = {\n      Configuration: \"base.contributions.configuration\"\n    };\n    allSettings = { properties: {}, patternProperties: {} };\n    applicationSettings = { properties: {}, patternProperties: {} };\n    applicationMachineSettings = { properties: {}, patternProperties: {} };\n    machineSettings = { properties: {}, patternProperties: {} };\n    machineOverridableSettings = { properties: {}, patternProperties: {} };\n    windowSettings = { properties: {}, patternProperties: {} };\n    resourceSettings = { properties: {}, patternProperties: {} };\n    resourceLanguageSettingsSchemaId = \"vscode://schemas/settings/resourceLanguage\";\n    contributionRegistry = Registry.as(Extensions3.JSONContribution);\n    ConfigurationRegistry = class extends Disposable {\n      constructor() {\n        super();\n        this.registeredConfigurationDefaults = [];\n        this.overrideIdentifiers = /* @__PURE__ */ new Set();\n        this._onDidSchemaChange = this._register(new Emitter());\n        this._onDidUpdateConfiguration = this._register(new Emitter());\n        this.configurationDefaultsOverrides = /* @__PURE__ */ new Map();\n        this.defaultLanguageConfigurationOverridesNode = {\n          id: \"defaultOverrides\",\n          title: localize(1646, \"Default Language Configuration Overrides\"),\n          properties: {}\n        };\n        this.configurationContributors = [this.defaultLanguageConfigurationOverridesNode];\n        this.resourceLanguageSettingsSchema = {\n          properties: {},\n          patternProperties: {},\n          additionalProperties: true,\n          allowTrailingCommas: true,\n          allowComments: true\n        };\n        this.configurationProperties = {};\n        this.policyConfigurations = /* @__PURE__ */ new Map();\n        this.excludedConfigurationProperties = {};\n        contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema);\n        this.registerOverridePropertyPatternKey();\n      }\n      registerConfiguration(configuration, validate = true) {\n        this.registerConfigurations([configuration], validate);\n        return configuration;\n      }\n      registerConfigurations(configurations, validate = true) {\n        const properties = /* @__PURE__ */ new Set();\n        this.doRegisterConfigurations(configurations, validate, properties);\n        contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId, this.resourceLanguageSettingsSchema);\n        this._onDidSchemaChange.fire();\n        this._onDidUpdateConfiguration.fire({ properties });\n      }\n      registerDefaultConfigurations(configurationDefaults) {\n        const properties = /* @__PURE__ */ new Set();\n        this.doRegisterDefaultConfigurations(configurationDefaults, properties);\n        this._onDidSchemaChange.fire();\n        this._onDidUpdateConfiguration.fire({ properties, defaultsOverrides: true });\n      }\n      doRegisterDefaultConfigurations(configurationDefaults, bucket) {\n        this.registeredConfigurationDefaults.push(...configurationDefaults);\n        const overrideIdentifiers = [];\n        for (const { overrides, source } of configurationDefaults) {\n          for (const key in overrides) {\n            bucket.add(key);\n            const configurationDefaultOverridesForKey = this.configurationDefaultsOverrides.get(key) ?? this.configurationDefaultsOverrides.set(key, { configurationDefaultOverrides: [] }).get(key);\n            const value = overrides[key];\n            configurationDefaultOverridesForKey.configurationDefaultOverrides.push({ value, source });\n            if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n              const newDefaultOverride = this.mergeDefaultConfigurationsForOverrideIdentifier(key, value, source, configurationDefaultOverridesForKey.configurationDefaultOverrideValue);\n              if (!newDefaultOverride) {\n                continue;\n              }\n              configurationDefaultOverridesForKey.configurationDefaultOverrideValue = newDefaultOverride;\n              this.updateDefaultOverrideProperty(key, newDefaultOverride, source);\n              overrideIdentifiers.push(...overrideIdentifiersFromKey(key));\n            } else {\n              const newDefaultOverride = this.mergeDefaultConfigurationsForConfigurationProperty(key, value, source, configurationDefaultOverridesForKey.configurationDefaultOverrideValue);\n              if (!newDefaultOverride) {\n                continue;\n              }\n              configurationDefaultOverridesForKey.configurationDefaultOverrideValue = newDefaultOverride;\n              const property = this.configurationProperties[key];\n              if (property) {\n                this.updatePropertyDefaultValue(key, property);\n                this.updateSchema(key, property);\n              }\n            }\n          }\n        }\n        this.doRegisterOverrideIdentifiers(overrideIdentifiers);\n      }\n      updateDefaultOverrideProperty(key, newDefaultOverride, source) {\n        const property = {\n          type: \"object\",\n          default: newDefaultOverride.value,\n          description: localize(1647, \"Configure settings to be overridden for {0}.\", getLanguageTagSettingPlainKey(key)),\n          $ref: resourceLanguageSettingsSchemaId,\n          defaultDefaultValue: newDefaultOverride.value,\n          source,\n          defaultValueSource: source\n        };\n        this.configurationProperties[key] = property;\n        this.defaultLanguageConfigurationOverridesNode.properties[key] = property;\n      }\n      mergeDefaultConfigurationsForOverrideIdentifier(overrideIdentifier, configurationValueObject, valueSource, existingDefaultOverride) {\n        const defaultValue = existingDefaultOverride?.value || {};\n        const source = existingDefaultOverride?.source ?? /* @__PURE__ */ new Map();\n        if (!(source instanceof Map)) {\n          console.error(\"objectConfigurationSources is not a Map\");\n          return void 0;\n        }\n        for (const propertyKey of Object.keys(configurationValueObject)) {\n          const propertyDefaultValue = configurationValueObject[propertyKey];\n          const isObjectSetting = isObject(propertyDefaultValue) \u0026\u0026 (isUndefined(defaultValue[propertyKey]) || isObject(defaultValue[propertyKey]));\n          if (isObjectSetting) {\n            defaultValue[propertyKey] = { ...defaultValue[propertyKey] ?? {}, ...propertyDefaultValue };\n            if (valueSource) {\n              for (const objectKey in propertyDefaultValue) {\n                source.set(`${propertyKey}.${objectKey}`, valueSource);\n              }\n            }\n          } else {\n            defaultValue[propertyKey] = propertyDefaultValue;\n            if (valueSource) {\n              source.set(propertyKey, valueSource);\n            } else {\n              source.delete(propertyKey);\n            }\n          }\n        }\n        return { value: defaultValue, source };\n      }\n      mergeDefaultConfigurationsForConfigurationProperty(propertyKey, value, valuesSource, existingDefaultOverride) {\n        const property = this.configurationProperties[propertyKey];\n        const existingDefaultValue = existingDefaultOverride?.value ?? property?.defaultDefaultValue;\n        let source = valuesSource;\n        const isObjectSetting = isObject(value) \u0026\u0026 (property !== void 0 \u0026\u0026 property.type === \"object\" || property === void 0 \u0026\u0026 (isUndefined(existingDefaultValue) || isObject(existingDefaultValue)));\n        if (isObjectSetting) {\n          source = existingDefaultOverride?.source ?? /* @__PURE__ */ new Map();\n          if (!(source instanceof Map)) {\n            console.error(\"defaultValueSource is not a Map\");\n            return void 0;\n          }\n          for (const objectKey in value) {\n            if (valuesSource) {\n              source.set(`${propertyKey}.${objectKey}`, valuesSource);\n            }\n          }\n          value = { ...isObject(existingDefaultValue) ? existingDefaultValue : {}, ...value };\n        }\n        return { value, source };\n      }\n      registerOverrideIdentifiers(overrideIdentifiers) {\n        this.doRegisterOverrideIdentifiers(overrideIdentifiers);\n        this._onDidSchemaChange.fire();\n      }\n      doRegisterOverrideIdentifiers(overrideIdentifiers) {\n        for (const overrideIdentifier of overrideIdentifiers) {\n          this.overrideIdentifiers.add(overrideIdentifier);\n        }\n        this.updateOverridePropertyPatternKey();\n      }\n      doRegisterConfigurations(configurations, validate, bucket) {\n        configurations.forEach((configuration) =\u003e {\n          this.validateAndRegisterProperties(configuration, validate, configuration.extensionInfo, configuration.restrictedProperties, void 0, bucket);\n          this.configurationContributors.push(configuration);\n          this.registerJSONConfiguration(configuration);\n        });\n      }\n      validateAndRegisterProperties(configuration, validate = true, extensionInfo, restrictedProperties, scope = 4, bucket) {\n        scope = isUndefinedOrNull(configuration.scope) ? scope : configuration.scope;\n        const properties = configuration.properties;\n        if (properties) {\n          for (const key in properties) {\n            const property = properties[key];\n            if (validate \u0026\u0026 validateProperty(key, property)) {\n              delete properties[key];\n              continue;\n            }\n            property.source = extensionInfo;\n            property.defaultDefaultValue = properties[key].default;\n            this.updatePropertyDefaultValue(key, property);\n            if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n              property.scope = void 0;\n            } else {\n              property.scope = isUndefinedOrNull(property.scope) ? scope : property.scope;\n              property.restricted = isUndefinedOrNull(property.restricted) ? !!restrictedProperties?.includes(key) : property.restricted;\n            }\n            if (property.experiment) {\n              if (!property.tags?.some((tag2) =\u003e tag2.toLowerCase() === \"onexp\")) {\n                property.tags = property.tags ?? [];\n                property.tags.push(\"onExP\");\n              }\n            } else if (property.tags?.some((tag2) =\u003e tag2.toLowerCase() === \"onexp\")) {\n              console.error(`Invalid tag 'onExP' found for property '${key}'. Please use 'experiment' property instead.`);\n              property.experiment = { mode: \"startup\" };\n            }\n            const excluded = properties[key].hasOwnProperty(\"included\") \u0026\u0026 !properties[key].included;\n            const policyName = properties[key].policy?.name;\n            if (excluded) {\n              this.excludedConfigurationProperties[key] = properties[key];\n              if (policyName) {\n                this.policyConfigurations.set(policyName, key);\n                bucket.add(key);\n              }\n              delete properties[key];\n            } else {\n              bucket.add(key);\n              if (policyName) {\n                this.policyConfigurations.set(policyName, key);\n              }\n              this.configurationProperties[key] = properties[key];\n              if (!properties[key].deprecationMessage \u0026\u0026 properties[key].markdownDeprecationMessage) {\n                properties[key].deprecationMessage = properties[key].markdownDeprecationMessage;\n              }\n            }\n          }\n        }\n        const subNodes = configuration.allOf;\n        if (subNodes) {\n          for (const node of subNodes) {\n            this.validateAndRegisterProperties(node, validate, extensionInfo, restrictedProperties, scope, bucket);\n          }\n        }\n      }\n      getConfigurationProperties() {\n        return this.configurationProperties;\n      }\n      getPolicyConfigurations() {\n        return this.policyConfigurations;\n      }\n      getExcludedConfigurationProperties() {\n        return this.excludedConfigurationProperties;\n      }\n      registerJSONConfiguration(configuration) {\n        const register4 = (configuration2) =\u003e {\n          const properties = configuration2.properties;\n          if (properties) {\n            for (const key in properties) {\n              this.updateSchema(key, properties[key]);\n            }\n          }\n          const subNodes = configuration2.allOf;\n          subNodes?.forEach(register4);\n        };\n        register4(configuration);\n      }\n      updateSchema(key, property) {\n        allSettings.properties[key] = property;\n        switch (property.scope) {\n          case 1:\n            applicationSettings.properties[key] = property;\n            break;\n          case 2:\n            machineSettings.properties[key] = property;\n            break;\n          case 3:\n            applicationMachineSettings.properties[key] = property;\n            break;\n          case 7:\n            machineOverridableSettings.properties[key] = property;\n            break;\n          case 4:\n            windowSettings.properties[key] = property;\n            break;\n          case 5:\n            resourceSettings.properties[key] = property;\n            break;\n          case 6:\n            resourceSettings.properties[key] = property;\n            this.resourceLanguageSettingsSchema.properties[key] = property;\n            break;\n        }\n      }\n      updateOverridePropertyPatternKey() {\n        for (const overrideIdentifier of this.overrideIdentifiers.values()) {\n          const overrideIdentifierProperty = `[${overrideIdentifier}]`;\n          const resourceLanguagePropertiesSchema = {\n            type: \"object\",\n            description: localize(1648, \"Configure editor settings to be overridden for a language.\"),\n            errorMessage: localize(1649, \"This setting does not support per-language configuration.\"),\n            $ref: resourceLanguageSettingsSchemaId\n          };\n          this.updatePropertyDefaultValue(overrideIdentifierProperty, resourceLanguagePropertiesSchema);\n          allSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n          applicationSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n          applicationMachineSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n          machineSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n          machineOverridableSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n          windowSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n          resourceSettings.properties[overrideIdentifierProperty] = resourceLanguagePropertiesSchema;\n        }\n      }\n      registerOverridePropertyPatternKey() {\n        const resourceLanguagePropertiesSchema = {\n          type: \"object\",\n          description: localize(1650, \"Configure editor settings to be overridden for a language.\"),\n          errorMessage: localize(1651, \"This setting does not support per-language configuration.\"),\n          $ref: resourceLanguageSettingsSchemaId\n        };\n        allSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        applicationSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        applicationMachineSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        machineSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        machineOverridableSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        windowSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        resourceSettings.patternProperties[OVERRIDE_PROPERTY_PATTERN] = resourceLanguagePropertiesSchema;\n        this._onDidSchemaChange.fire();\n      }\n      updatePropertyDefaultValue(key, property) {\n        const configurationdefaultOverride = this.configurationDefaultsOverrides.get(key)?.configurationDefaultOverrideValue;\n        let defaultValue = void 0;\n        let defaultSource = void 0;\n        if (configurationdefaultOverride \u0026\u0026 (!property.disallowConfigurationDefault || !configurationdefaultOverride.source)) {\n          defaultValue = configurationdefaultOverride.value;\n          defaultSource = configurationdefaultOverride.source;\n        }\n        if (isUndefined(defaultValue)) {\n          defaultValue = property.defaultDefaultValue;\n          defaultSource = void 0;\n        }\n        if (isUndefined(defaultValue)) {\n          defaultValue = getDefaultValue(property.type);\n        }\n        property.default = defaultValue;\n        property.defaultValueSource = defaultSource;\n      }\n    };\n    OVERRIDE_IDENTIFIER_PATTERN = `\\\\[([^\\\\]]+)\\\\]`;\n    OVERRIDE_IDENTIFIER_REGEX = new RegExp(OVERRIDE_IDENTIFIER_PATTERN, \"g\");\n    OVERRIDE_PROPERTY_PATTERN = `^(${OVERRIDE_IDENTIFIER_PATTERN})+$`;\n    OVERRIDE_PROPERTY_REGEX = new RegExp(OVERRIDE_PROPERTY_PATTERN);\n    configurationRegistry = new ConfigurationRegistry();\n    Registry.add(Extensions4.Configuration, configurationRegistry);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/modesRegistry.js\nvar Extensions5, EditorModesRegistry, ModesRegistry, PLAINTEXT_LANGUAGE_ID, PLAINTEXT_EXTENSION;\nvar init_modesRegistry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/modesRegistry.js\"() {\n    init_nls();\n    init_event();\n    init_platform2();\n    init_lifecycle();\n    init_mime();\n    init_configurationRegistry();\n    Extensions5 = {\n      ModesRegistry: \"editor.modesRegistry\"\n    };\n    EditorModesRegistry = class extends Disposable {\n      constructor() {\n        super();\n        this._onDidChangeLanguages = this._register(new Emitter());\n        this.onDidChangeLanguages = this._onDidChangeLanguages.event;\n        this._languages = [];\n      }\n      registerLanguage(def2) {\n        this._languages.push(def2);\n        this._onDidChangeLanguages.fire(void 0);\n        return {\n          dispose: () =\u003e {\n            for (let i2 = 0, len = this._languages.length; i2 \u003c len; i2++) {\n              if (this._languages[i2] === def2) {\n                this._languages.splice(i2, 1);\n                return;\n              }\n            }\n          }\n        };\n      }\n      getLanguages() {\n        return this._languages;\n      }\n    };\n    ModesRegistry = new EditorModesRegistry();\n    Registry.add(Extensions5.ModesRegistry, ModesRegistry);\n    PLAINTEXT_LANGUAGE_ID = \"plaintext\";\n    PLAINTEXT_EXTENSION = \".txt\";\n    ModesRegistry.registerLanguage({\n      id: PLAINTEXT_LANGUAGE_ID,\n      extensions: [PLAINTEXT_EXTENSION],\n      aliases: [localize(777, \"Plain Text\"), \"text\"],\n      mimetypes: [Mimes.text]\n    });\n    Registry.as(Extensions4.Configuration).registerDefaultConfigurations([{\n      overrides: {\n        \"[plaintext]\": {\n          \"editor.unicodeHighlight.ambiguousCharacters\": false,\n          \"editor.unicodeHighlight.invisibleCharacters\": false\n        },\n        // TODO: Below is a workaround for: https://github.com/microsoft/vscode/issues/240567\n        \"[go]\": {\n          \"editor.insertSpaces\": false\n        },\n        \"[makefile]\": {\n          \"editor.insertSpaces\": false\n        },\n        \"[shellscript]\": {\n          \"files.eol\": \"\\n\"\n        },\n        \"[yaml]\": {\n          \"editor.insertSpaces\": true,\n          \"editor.tabSize\": 2\n        }\n      }\n    }]);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/languageBracketsConfiguration.js\nfunction filterValidBrackets(bracketPairs) {\n  return bracketPairs.filter(([open, close]) =\u003e open !== \"\" \u0026\u0026 close !== \"\");\n}\nvar LanguageBracketsConfiguration, BracketKindBase, OpeningBracketKind, ClosingBracketKind;\nvar init_languageBracketsConfiguration = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/languageBracketsConfiguration.js\"() {\n    init_cache();\n    init_richEditBrackets();\n    LanguageBracketsConfiguration = class {\n      constructor(languageId, config) {\n        this.languageId = languageId;\n        const bracketPairs = config.brackets ? filterValidBrackets(config.brackets) : [];\n        const openingBracketInfos = new CachedFunction((bracket) =\u003e {\n          const closing = /* @__PURE__ */ new Set();\n          return {\n            info: new OpeningBracketKind(this, bracket, closing),\n            closing\n          };\n        });\n        const closingBracketInfos = new CachedFunction((bracket) =\u003e {\n          const opening = /* @__PURE__ */ new Set();\n          const openingColorized = /* @__PURE__ */ new Set();\n          return {\n            info: new ClosingBracketKind(this, bracket, opening, openingColorized),\n            opening,\n            openingColorized\n          };\n        });\n        for (const [open, close] of bracketPairs) {\n          const opening = openingBracketInfos.get(open);\n          const closing = closingBracketInfos.get(close);\n          opening.closing.add(closing.info);\n          closing.opening.add(opening.info);\n        }\n        const colorizedBracketPairs = config.colorizedBracketPairs ? filterValidBrackets(config.colorizedBracketPairs) : bracketPairs.filter((p) =\u003e !(p[0] === \"\u003c\" \u0026\u0026 p[1] === \"\u003e\"));\n        for (const [open, close] of colorizedBracketPairs) {\n          const opening = openingBracketInfos.get(open);\n          const closing = closingBracketInfos.get(close);\n          opening.closing.add(closing.info);\n          closing.openingColorized.add(opening.info);\n          closing.opening.add(opening.info);\n        }\n        this._openingBrackets = new Map([...openingBracketInfos.cachedValues].map(([k, v]) =\u003e [k, v.info]));\n        this._closingBrackets = new Map([...closingBracketInfos.cachedValues].map(([k, v]) =\u003e [k, v.info]));\n      }\n      /**\n       * No two brackets have the same bracket text.\n      */\n      get openingBrackets() {\n        return [...this._openingBrackets.values()];\n      }\n      /**\n       * No two brackets have the same bracket text.\n      */\n      get closingBrackets() {\n        return [...this._closingBrackets.values()];\n      }\n      getOpeningBracketInfo(bracketText) {\n        return this._openingBrackets.get(bracketText);\n      }\n      getClosingBracketInfo(bracketText) {\n        return this._closingBrackets.get(bracketText);\n      }\n      getBracketInfo(bracketText) {\n        return this.getOpeningBracketInfo(bracketText) || this.getClosingBracketInfo(bracketText);\n      }\n      getBracketRegExp(options2) {\n        const brackets = Array.from([...this._openingBrackets.keys(), ...this._closingBrackets.keys()]);\n        return createBracketOrRegExp(brackets, options2);\n      }\n    };\n    BracketKindBase = class {\n      constructor(config, bracketText) {\n        this.config = config;\n        this.bracketText = bracketText;\n      }\n      get languageId() {\n        return this.config.languageId;\n      }\n    };\n    OpeningBracketKind = class extends BracketKindBase {\n      constructor(config, bracketText, openedBrackets) {\n        super(config, bracketText);\n        this.openedBrackets = openedBrackets;\n        this.isOpeningBracket = true;\n      }\n    };\n    ClosingBracketKind = class extends BracketKindBase {\n      constructor(config, bracketText, openingBrackets, openingColorizedBrackets) {\n        super(config, bracketText);\n        this.openingBrackets = openingBrackets;\n        this.openingColorizedBrackets = openingColorizedBrackets;\n        this.isOpeningBracket = false;\n      }\n      /**\n       * Checks if this bracket closes the given other bracket.\n       * If the bracket infos come from different configurations, this method will return false.\n      */\n      closes(other) {\n        if (other[\"config\"] !== this.config) {\n          return false;\n        }\n        return this.openingBrackets.has(other);\n      }\n      closesColorized(other) {\n        if (other[\"config\"] !== this.config) {\n          return false;\n        }\n        return this.openingColorizedBrackets.has(other);\n      }\n      getOpeningBrackets() {\n        return [...this.openingBrackets];\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/languageConfigurationRegistry.js\nfunction computeConfig(languageId, registry, configurationService, languageService) {\n  let languageConfig = registry.getLanguageConfiguration(languageId);\n  if (!languageConfig) {\n    if (!languageService.isRegisteredLanguageId(languageId)) {\n      return new ResolvedLanguageConfiguration(languageId, {});\n    }\n    languageConfig = new ResolvedLanguageConfiguration(languageId, {});\n  }\n  const customizedConfig = getCustomizedLanguageConfig(languageConfig.languageId, configurationService);\n  const data = combineLanguageConfigurations([languageConfig.underlyingConfig, customizedConfig]);\n  const config = new ResolvedLanguageConfiguration(languageConfig.languageId, data);\n  return config;\n}\nfunction getCustomizedLanguageConfig(languageId, configurationService) {\n  const brackets = configurationService.getValue(customizedLanguageConfigKeys.brackets, {\n    overrideIdentifier: languageId\n  });\n  const colorizedBracketPairs = configurationService.getValue(customizedLanguageConfigKeys.colorizedBracketPairs, {\n    overrideIdentifier: languageId\n  });\n  return {\n    brackets: validateBracketPairs(brackets),\n    colorizedBracketPairs: validateBracketPairs(colorizedBracketPairs)\n  };\n}\nfunction validateBracketPairs(data) {\n  if (!Array.isArray(data)) {\n    return void 0;\n  }\n  return data.map((pair) =\u003e {\n    if (!Array.isArray(pair) || pair.length !== 2) {\n      return void 0;\n    }\n    return [pair[0], pair[1]];\n  }).filter((p) =\u003e !!p);\n}\nfunction getIndentationAtPosition(model, lineNumber, column) {\n  const lineText = model.getLineContent(lineNumber);\n  let indentation = getLeadingWhitespace(lineText);\n  if (indentation.length \u003e column - 1) {\n    indentation = indentation.substring(0, column - 1);\n  }\n  return indentation;\n}\nfunction combineLanguageConfigurations(configs) {\n  let result = {\n    comments: void 0,\n    brackets: void 0,\n    wordPattern: void 0,\n    indentationRules: void 0,\n    onEnterRules: void 0,\n    autoClosingPairs: void 0,\n    surroundingPairs: void 0,\n    autoCloseBefore: void 0,\n    folding: void 0,\n    colorizedBracketPairs: void 0,\n    __electricCharacterSupport: void 0\n  };\n  for (const entry of configs) {\n    result = {\n      comments: entry.comments || result.comments,\n      brackets: entry.brackets || result.brackets,\n      wordPattern: entry.wordPattern || result.wordPattern,\n      indentationRules: entry.indentationRules || result.indentationRules,\n      onEnterRules: entry.onEnterRules || result.onEnterRules,\n      autoClosingPairs: entry.autoClosingPairs || result.autoClosingPairs,\n      surroundingPairs: entry.surroundingPairs || result.surroundingPairs,\n      autoCloseBefore: entry.autoCloseBefore || result.autoCloseBefore,\n      folding: entry.folding || result.folding,\n      colorizedBracketPairs: entry.colorizedBracketPairs || result.colorizedBracketPairs,\n      __electricCharacterSupport: entry.__electricCharacterSupport || result.__electricCharacterSupport\n    };\n  }\n  return result;\n}\nvar __decorate2, __param2, LanguageConfigurationServiceChangeEvent, ILanguageConfigurationService, LanguageConfigurationService, customizedLanguageConfigKeys, ComposedLanguageConfiguration, LanguageConfigurationContribution, LanguageConfigurationChangeEvent, LanguageConfigurationRegistry, ResolvedLanguageConfiguration;\nvar init_languageConfigurationRegistry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/languageConfigurationRegistry.js\"() {\n    init_event();\n    init_lifecycle();\n    init_strings();\n    init_wordHelper();\n    init_languageConfiguration();\n    init_characterPair();\n    init_electricCharacter();\n    init_indentRules();\n    init_onEnter();\n    init_richEditBrackets();\n    init_instantiation();\n    init_configuration();\n    init_language();\n    init_extensions();\n    init_modesRegistry();\n    init_languageBracketsConfiguration();\n    __decorate2 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param2 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    LanguageConfigurationServiceChangeEvent = class {\n      constructor(languageId) {\n        this.languageId = languageId;\n      }\n      affects(languageId) {\n        return !this.languageId ? true : this.languageId === languageId;\n      }\n    };\n    ILanguageConfigurationService = createDecorator(\"languageConfigurationService\");\n    LanguageConfigurationService = class LanguageConfigurationService2 extends Disposable {\n      constructor(configurationService, languageService) {\n        super();\n        this.configurationService = configurationService;\n        this.languageService = languageService;\n        this._registry = this._register(new LanguageConfigurationRegistry());\n        this.onDidChangeEmitter = this._register(new Emitter());\n        this.onDidChange = this.onDidChangeEmitter.event;\n        this.configurations = /* @__PURE__ */ new Map();\n        const languageConfigKeys = new Set(Object.values(customizedLanguageConfigKeys));\n        this._register(this.configurationService.onDidChangeConfiguration((e) =\u003e {\n          const globalConfigChanged = e.change.keys.some((k) =\u003e languageConfigKeys.has(k));\n          const localConfigChanged = e.change.overrides.filter(([overrideLangName, keys]) =\u003e keys.some((k) =\u003e languageConfigKeys.has(k))).map(([overrideLangName]) =\u003e overrideLangName);\n          if (globalConfigChanged) {\n            this.configurations.clear();\n            this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(void 0));\n          } else {\n            for (const languageId of localConfigChanged) {\n              if (this.languageService.isRegisteredLanguageId(languageId)) {\n                this.configurations.delete(languageId);\n                this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(languageId));\n              }\n            }\n          }\n        }));\n        this._register(this._registry.onDidChange((e) =\u003e {\n          this.configurations.delete(e.languageId);\n          this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(e.languageId));\n        }));\n      }\n      register(languageId, configuration, priority) {\n        return this._registry.register(languageId, configuration, priority);\n      }\n      getLanguageConfiguration(languageId) {\n        let result = this.configurations.get(languageId);\n        if (!result) {\n          result = computeConfig(languageId, this._registry, this.configurationService, this.languageService);\n          this.configurations.set(languageId, result);\n        }\n        return result;\n      }\n    };\n    LanguageConfigurationService = __decorate2([\n      __param2(0, IConfigurationService),\n      __param2(1, ILanguageService)\n    ], LanguageConfigurationService);\n    customizedLanguageConfigKeys = {\n      brackets: \"editor.language.brackets\",\n      colorizedBracketPairs: \"editor.language.colorizedBracketPairs\"\n    };\n    ComposedLanguageConfiguration = class {\n      constructor(languageId) {\n        this.languageId = languageId;\n        this._resolved = null;\n        this._entries = [];\n        this._order = 0;\n        this._resolved = null;\n      }\n      register(configuration, priority) {\n        const entry = new LanguageConfigurationContribution(configuration, priority, ++this._order);\n        this._entries.push(entry);\n        this._resolved = null;\n        return markAsSingleton(toDisposable(() =\u003e {\n          for (let i2 = 0; i2 \u003c this._entries.length; i2++) {\n            if (this._entries[i2] === entry) {\n              this._entries.splice(i2, 1);\n              this._resolved = null;\n              break;\n            }\n          }\n        }));\n      }\n      getResolvedConfiguration() {\n        if (!this._resolved) {\n          const config = this._resolve();\n          if (config) {\n            this._resolved = new ResolvedLanguageConfiguration(this.languageId, config);\n          }\n        }\n        return this._resolved;\n      }\n      _resolve() {\n        if (this._entries.length === 0) {\n          return null;\n        }\n        this._entries.sort(LanguageConfigurationContribution.cmp);\n        return combineLanguageConfigurations(this._entries.map((e) =\u003e e.configuration));\n      }\n    };\n    LanguageConfigurationContribution = class {\n      constructor(configuration, priority, order) {\n        this.configuration = configuration;\n        this.priority = priority;\n        this.order = order;\n      }\n      static cmp(a, b) {\n        if (a.priority === b.priority) {\n          return a.order - b.order;\n        }\n        return a.priority - b.priority;\n      }\n    };\n    LanguageConfigurationChangeEvent = class {\n      constructor(languageId) {\n        this.languageId = languageId;\n      }\n    };\n    LanguageConfigurationRegistry = class extends Disposable {\n      constructor() {\n        super();\n        this._entries = /* @__PURE__ */ new Map();\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._register(this.register(PLAINTEXT_LANGUAGE_ID, {\n          brackets: [\n            [\"(\", \")\"],\n            [\"[\", \"]\"],\n            [\"{\", \"}\"]\n          ],\n          surroundingPairs: [\n            { open: \"{\", close: \"}\" },\n            { open: \"[\", close: \"]\" },\n            { open: \"(\", close: \")\" },\n            { open: \"\u003c\", close: \"\u003e\" },\n            { open: '\"', close: '\"' },\n            { open: \"'\", close: \"'\" },\n            { open: \"`\", close: \"`\" }\n          ],\n          colorizedBracketPairs: [],\n          folding: {\n            offSide: true\n          }\n        }, 0));\n      }\n      /**\n       * @param priority Use a higher number for higher priority\n       */\n      register(languageId, configuration, priority = 0) {\n        let entries2 = this._entries.get(languageId);\n        if (!entries2) {\n          entries2 = new ComposedLanguageConfiguration(languageId);\n          this._entries.set(languageId, entries2);\n        }\n        const disposable = entries2.register(configuration, priority);\n        this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));\n        return markAsSingleton(toDisposable(() =\u003e {\n          disposable.dispose();\n          this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));\n        }));\n      }\n      getLanguageConfiguration(languageId) {\n        const entries2 = this._entries.get(languageId);\n        return entries2?.getResolvedConfiguration() || null;\n      }\n    };\n    ResolvedLanguageConfiguration = class _ResolvedLanguageConfiguration {\n      constructor(languageId, underlyingConfig) {\n        this.languageId = languageId;\n        this.underlyingConfig = underlyingConfig;\n        this._brackets = null;\n        this._electricCharacter = null;\n        this._onEnterSupport = this.underlyingConfig.brackets || this.underlyingConfig.indentationRules || this.underlyingConfig.onEnterRules ? new OnEnterSupport(this.underlyingConfig) : null;\n        this.comments = _ResolvedLanguageConfiguration._handleComments(this.underlyingConfig);\n        this.characterPair = new CharacterPairSupport(this.underlyingConfig);\n        this.wordDefinition = this.underlyingConfig.wordPattern || DEFAULT_WORD_REGEXP;\n        this.indentationRules = this.underlyingConfig.indentationRules;\n        if (this.underlyingConfig.indentationRules) {\n          this.indentRulesSupport = new IndentRulesSupport(this.underlyingConfig.indentationRules);\n        } else {\n          this.indentRulesSupport = null;\n        }\n        this.foldingRules = this.underlyingConfig.folding || {};\n        this.bracketsNew = new LanguageBracketsConfiguration(languageId, this.underlyingConfig);\n      }\n      getWordDefinition() {\n        return ensureValidWordDefinition(this.wordDefinition);\n      }\n      get brackets() {\n        if (!this._brackets \u0026\u0026 this.underlyingConfig.brackets) {\n          this._brackets = new RichEditBrackets(this.languageId, this.underlyingConfig.brackets);\n        }\n        return this._brackets;\n      }\n      get electricCharacter() {\n        if (!this._electricCharacter) {\n          this._electricCharacter = new BracketElectricCharacterSupport(this.brackets);\n        }\n        return this._electricCharacter;\n      }\n      onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {\n        if (!this._onEnterSupport) {\n          return null;\n        }\n        return this._onEnterSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);\n      }\n      getAutoClosingPairs() {\n        return new AutoClosingPairs(this.characterPair.getAutoClosingPairs());\n      }\n      getAutoCloseBeforeSet(forQuotes) {\n        return this.characterPair.getAutoCloseBeforeSet(forQuotes);\n      }\n      getSurroundingPairs() {\n        return this.characterPair.getSurroundingPairs();\n      }\n      static _handleComments(conf) {\n        const commentRule = conf.comments;\n        if (!commentRule) {\n          return null;\n        }\n        const comments = {};\n        if (commentRule.lineComment) {\n          if (typeof commentRule.lineComment === \"string\") {\n            comments.lineCommentToken = commentRule.lineComment;\n          } else {\n            comments.lineCommentToken = commentRule.lineComment.comment;\n            comments.lineCommentNoIndent = commentRule.lineComment.noIndent;\n          }\n        }\n        if (commentRule.blockComment) {\n          const [blockStart, blockEnd] = commentRule.blockComment;\n          comments.blockCommentStartToken = blockStart;\n          comments.blockCommentEndToken = blockEnd;\n        }\n        return comments;\n      }\n    };\n    registerSingleton(\n      ILanguageConfigurationService,\n      LanguageConfigurationService,\n      1\n      /* InstantiationType.Delayed */\n    );\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/encodedTokenAttributes.js\nvar TokenMetadata;\nvar init_encodedTokenAttributes = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/encodedTokenAttributes.js\"() {\n    TokenMetadata = class {\n      static getLanguageId(metadata) {\n        return (metadata \u0026 255) \u003e\u003e\u003e 0;\n      }\n      static getTokenType(metadata) {\n        return (metadata \u0026 768) \u003e\u003e\u003e 8;\n      }\n      static containsBalancedBrackets(metadata) {\n        return (metadata \u0026 1024) !== 0;\n      }\n      static getFontStyle(metadata) {\n        return (metadata \u0026 30720) \u003e\u003e\u003e 11;\n      }\n      static getForeground(metadata) {\n        return (metadata \u0026 16744448) \u003e\u003e\u003e 15;\n      }\n      static getBackground(metadata) {\n        return (metadata \u0026 4278190080) \u003e\u003e\u003e 24;\n      }\n      static getClassNameFromMetadata(metadata) {\n        const foreground2 = this.getForeground(metadata);\n        let className2 = \"mtk\" + foreground2;\n        const fontStyle = this.getFontStyle(metadata);\n        if (fontStyle \u0026 1) {\n          className2 += \" mtki\";\n        }\n        if (fontStyle \u0026 2) {\n          className2 += \" mtkb\";\n        }\n        if (fontStyle \u0026 4) {\n          className2 += \" mtku\";\n        }\n        if (fontStyle \u0026 8) {\n          className2 += \" mtks\";\n        }\n        return className2;\n      }\n      static getInlineStyleFromMetadata(metadata, colorMap) {\n        const foreground2 = this.getForeground(metadata);\n        const fontStyle = this.getFontStyle(metadata);\n        let result = `color: ${colorMap[foreground2]};`;\n        if (fontStyle \u0026 1) {\n          result += \"font-style: italic;\";\n        }\n        if (fontStyle \u0026 2) {\n          result += \"font-weight: bold;\";\n        }\n        let textDecoration = \"\";\n        if (fontStyle \u0026 4) {\n          textDecoration += \" underline\";\n        }\n        if (fontStyle \u0026 8) {\n          textDecoration += \" line-through\";\n        }\n        if (textDecoration) {\n          result += `text-decoration:${textDecoration};`;\n        }\n        return result;\n      }\n      static getPresentationFromMetadata(metadata) {\n        const foreground2 = this.getForeground(metadata);\n        const fontStyle = this.getFontStyle(metadata);\n        return {\n          foreground: foreground2,\n          italic: Boolean(\n            fontStyle \u0026 1\n            /* FontStyle.Italic */\n          ),\n          bold: Boolean(\n            fontStyle \u0026 2\n            /* FontStyle.Bold */\n          ),\n          underline: Boolean(\n            fontStyle \u0026 4\n            /* FontStyle.Underline */\n          ),\n          strikethrough: Boolean(\n            fontStyle \u0026 8\n            /* FontStyle.Strikethrough */\n          )\n        };\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/ranges/offsetRange.js\nvar OffsetRange, OffsetRangeSet;\nvar init_offsetRange = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/ranges/offsetRange.js\"() {\n    init_errors();\n    OffsetRange = class _OffsetRange {\n      static fromTo(start, endExclusive) {\n        return new _OffsetRange(start, endExclusive);\n      }\n      static addRange(range2, sortedRanges) {\n        let i2 = 0;\n        while (i2 \u003c sortedRanges.length \u0026\u0026 sortedRanges[i2].endExclusive \u003c range2.start) {\n          i2++;\n        }\n        let j = i2;\n        while (j \u003c sortedRanges.length \u0026\u0026 sortedRanges[j].start \u003c= range2.endExclusive) {\n          j++;\n        }\n        if (i2 === j) {\n          sortedRanges.splice(i2, 0, range2);\n        } else {\n          const start = Math.min(range2.start, sortedRanges[i2].start);\n          const end = Math.max(range2.endExclusive, sortedRanges[j - 1].endExclusive);\n          sortedRanges.splice(i2, j - i2, new _OffsetRange(start, end));\n        }\n      }\n      static tryCreate(start, endExclusive) {\n        if (start \u003e endExclusive) {\n          return void 0;\n        }\n        return new _OffsetRange(start, endExclusive);\n      }\n      static ofLength(length) {\n        return new _OffsetRange(0, length);\n      }\n      static ofStartAndLength(start, length) {\n        return new _OffsetRange(start, start + length);\n      }\n      static emptyAt(offset) {\n        return new _OffsetRange(offset, offset);\n      }\n      constructor(start, endExclusive) {\n        this.start = start;\n        this.endExclusive = endExclusive;\n        if (start \u003e endExclusive) {\n          throw new BugIndicatingError(`Invalid range: ${this.toString()}`);\n        }\n      }\n      get isEmpty() {\n        return this.start === this.endExclusive;\n      }\n      delta(offset) {\n        return new _OffsetRange(this.start + offset, this.endExclusive + offset);\n      }\n      deltaStart(offset) {\n        return new _OffsetRange(this.start + offset, this.endExclusive);\n      }\n      deltaEnd(offset) {\n        return new _OffsetRange(this.start, this.endExclusive + offset);\n      }\n      get length() {\n        return this.endExclusive - this.start;\n      }\n      toString() {\n        return `[${this.start}, ${this.endExclusive})`;\n      }\n      equals(other) {\n        return this.start === other.start \u0026\u0026 this.endExclusive === other.endExclusive;\n      }\n      contains(offset) {\n        return this.start \u003c= offset \u0026\u0026 offset \u003c this.endExclusive;\n      }\n      /**\n       * for all numbers n: range1.contains(n) or range2.contains(n) =\u003e range1.join(range2).contains(n)\n       * The joined range is the smallest range that contains both ranges.\n       */\n      join(other) {\n        return new _OffsetRange(Math.min(this.start, other.start), Math.max(this.endExclusive, other.endExclusive));\n      }\n      /**\n       * for all numbers n: range1.contains(n) and range2.contains(n) \u003c=\u003e range1.intersect(range2).contains(n)\n       *\n       * The resulting range is empty if the ranges do not intersect, but touch.\n       * If the ranges don't even touch, the result is undefined.\n       */\n      intersect(other) {\n        const start = Math.max(this.start, other.start);\n        const end = Math.min(this.endExclusive, other.endExclusive);\n        if (start \u003c= end) {\n          return new _OffsetRange(start, end);\n        }\n        return void 0;\n      }\n      intersectionLength(range2) {\n        const start = Math.max(this.start, range2.start);\n        const end = Math.min(this.endExclusive, range2.endExclusive);\n        return Math.max(0, end - start);\n      }\n      intersects(other) {\n        const start = Math.max(this.start, other.start);\n        const end = Math.min(this.endExclusive, other.endExclusive);\n        return start \u003c end;\n      }\n      intersectsOrTouches(other) {\n        const start = Math.max(this.start, other.start);\n        const end = Math.min(this.endExclusive, other.endExclusive);\n        return start \u003c= end;\n      }\n      isBefore(other) {\n        return this.endExclusive \u003c= other.start;\n      }\n      isAfter(other) {\n        return this.start \u003e= other.endExclusive;\n      }\n      slice(arr) {\n        return arr.slice(this.start, this.endExclusive);\n      }\n      substring(str) {\n        return str.substring(this.start, this.endExclusive);\n      }\n      /**\n       * Returns the given value if it is contained in this instance, otherwise the closest value that is contained.\n       * The range must not be empty.\n       */\n      clip(value) {\n        if (this.isEmpty) {\n          throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n        }\n        return Math.max(this.start, Math.min(this.endExclusive - 1, value));\n      }\n      /**\n       * Returns `r := value + k * length` such that `r` is contained in this range.\n       * The range must not be empty.\n       *\n       * E.g. `[5, 10).clipCyclic(10) === 5`, `[5, 10).clipCyclic(11) === 6` and `[5, 10).clipCyclic(4) === 9`.\n       */\n      clipCyclic(value) {\n        if (this.isEmpty) {\n          throw new BugIndicatingError(`Invalid clipping range: ${this.toString()}`);\n        }\n        if (value \u003c this.start) {\n          return this.endExclusive - (this.start - value) % this.length;\n        }\n        if (value \u003e= this.endExclusive) {\n          return this.start + (value - this.start) % this.length;\n        }\n        return value;\n      }\n      forEach(f) {\n        for (let i2 = this.start; i2 \u003c this.endExclusive; i2++) {\n          f(i2);\n        }\n      }\n      /**\n       * this: [ 5, 10), range: [10, 15) =\u003e [5, 15)]\n       * Throws if the ranges are not touching.\n      */\n      joinRightTouching(range2) {\n        if (this.endExclusive !== range2.start) {\n          throw new BugIndicatingError(`Invalid join: ${this.toString()} and ${range2.toString()}`);\n        }\n        return new _OffsetRange(this.start, range2.endExclusive);\n      }\n    };\n    OffsetRangeSet = class _OffsetRangeSet {\n      constructor() {\n        this._sortedRanges = [];\n      }\n      addRange(range2) {\n        let i2 = 0;\n        while (i2 \u003c this._sortedRanges.length \u0026\u0026 this._sortedRanges[i2].endExclusive \u003c range2.start) {\n          i2++;\n        }\n        let j = i2;\n        while (j \u003c this._sortedRanges.length \u0026\u0026 this._sortedRanges[j].start \u003c= range2.endExclusive) {\n          j++;\n        }\n        if (i2 === j) {\n          this._sortedRanges.splice(i2, 0, range2);\n        } else {\n          const start = Math.min(range2.start, this._sortedRanges[i2].start);\n          const end = Math.max(range2.endExclusive, this._sortedRanges[j - 1].endExclusive);\n          this._sortedRanges.splice(i2, j - i2, new OffsetRange(start, end));\n        }\n      }\n      toString() {\n        return this._sortedRanges.map((r) =\u003e r.toString()).join(\", \");\n      }\n      /**\n       * Returns of there is a value that is contained in this instance and the given range.\n       */\n      intersectsStrict(other) {\n        let i2 = 0;\n        while (i2 \u003c this._sortedRanges.length \u0026\u0026 this._sortedRanges[i2].endExclusive \u003c= other.start) {\n          i2++;\n        }\n        return i2 \u003c this._sortedRanges.length \u0026\u0026 this._sortedRanges[i2].start \u003c other.endExclusive;\n      }\n      intersectWithRange(other) {\n        const result = new _OffsetRangeSet();\n        for (const range2 of this._sortedRanges) {\n          const intersection2 = range2.intersect(other);\n          if (intersection2) {\n            result.addRange(intersection2);\n          }\n        }\n        return result;\n      }\n      intersectWithRangeLength(other) {\n        return this.intersectWithRange(other).length;\n      }\n      get length() {\n        return this._sortedRanges.reduce((prev, cur) =\u003e prev + cur.length, 0);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/lineTokens.js\nfunction getStandardTokenTypeAtPosition(model, position) {\n  const lineNumber = position.lineNumber;\n  if (!model.tokenization.isCheapToTokenize(lineNumber)) {\n    return void 0;\n  }\n  model.tokenization.forceTokenization(lineNumber);\n  const lineTokens = model.tokenization.getLineTokens(lineNumber);\n  const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n  const tokenType = lineTokens.getStandardTokenType(tokenIndex);\n  return tokenType;\n}\nvar LineTokens, SliceLineTokens, TokenArray, TokenInfo, TokenArrayBuilder;\nvar init_lineTokens = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/lineTokens.js\"() {\n    init_encodedTokenAttributes();\n    init_offsetRange();\n    init_errors();\n    LineTokens = class _LineTokens {\n      static createEmpty(lineContent, decoder) {\n        const defaultMetadata = _LineTokens.defaultTokenMetadata;\n        const tokens = new Uint32Array(2);\n        tokens[0] = lineContent.length;\n        tokens[1] = defaultMetadata;\n        return new _LineTokens(tokens, lineContent, decoder);\n      }\n      static createFromTextAndMetadata(data, decoder) {\n        let offset = 0;\n        let fullText = \"\";\n        const tokens = new Array();\n        for (const { text: text2, metadata } of data) {\n          tokens.push(offset + text2.length, metadata);\n          offset += text2.length;\n          fullText += text2;\n        }\n        return new _LineTokens(new Uint32Array(tokens), fullText, decoder);\n      }\n      static convertToEndOffset(tokens, lineTextLength) {\n        const tokenCount = tokens.length \u003e\u003e\u003e 1;\n        const lastTokenIndex = tokenCount - 1;\n        for (let tokenIndex = 0; tokenIndex \u003c lastTokenIndex; tokenIndex++) {\n          tokens[tokenIndex \u003c\u003c 1] = tokens[tokenIndex + 1 \u003c\u003c 1];\n        }\n        tokens[lastTokenIndex \u003c\u003c 1] = lineTextLength;\n      }\n      static findIndexInTokensArray(tokens, desiredIndex) {\n        if (tokens.length \u003c= 2) {\n          return 0;\n        }\n        let low = 0;\n        let high = (tokens.length \u003e\u003e\u003e 1) - 1;\n        while (low \u003c high) {\n          const mid = low + Math.floor((high - low) / 2);\n          const endOffset = tokens[mid \u003c\u003c 1];\n          if (endOffset === desiredIndex) {\n            return mid + 1;\n          } else if (endOffset \u003c desiredIndex) {\n            low = mid + 1;\n          } else if (endOffset \u003e desiredIndex) {\n            high = mid;\n          }\n        }\n        return low;\n      }\n      static {\n        this.defaultTokenMetadata = (0 \u003c\u003c 11 | 1 \u003c\u003c 15 | 2 \u003c\u003c 24) \u003e\u003e\u003e 0;\n      }\n      constructor(tokens, text2, decoder) {\n        this._lineTokensBrand = void 0;\n        const tokensLength = tokens.length \u003e 1 ? tokens[tokens.length - 2] : 0;\n        if (tokensLength !== text2.length) {\n          onUnexpectedError(new Error(\"Token length and text length do not match!\"));\n        }\n        this._tokens = tokens;\n        this._tokensCount = this._tokens.length \u003e\u003e\u003e 1;\n        this._text = text2;\n        this.languageIdCodec = decoder;\n      }\n      getTextLength() {\n        return this._text.length;\n      }\n      equals(other) {\n        if (other instanceof _LineTokens) {\n          return this.slicedEquals(other, 0, this._tokensCount);\n        }\n        return false;\n      }\n      slicedEquals(other, sliceFromTokenIndex, sliceTokenCount) {\n        if (this._text !== other._text) {\n          return false;\n        }\n        if (this._tokensCount !== other._tokensCount) {\n          return false;\n        }\n        const from = sliceFromTokenIndex \u003c\u003c 1;\n        const to = from + (sliceTokenCount \u003c\u003c 1);\n        for (let i2 = from; i2 \u003c to; i2++) {\n          if (this._tokens[i2] !== other._tokens[i2]) {\n            return false;\n          }\n        }\n        return true;\n      }\n      getLineContent() {\n        return this._text;\n      }\n      getCount() {\n        return this._tokensCount;\n      }\n      getStartOffset(tokenIndex) {\n        if (tokenIndex \u003e 0) {\n          return this._tokens[tokenIndex - 1 \u003c\u003c 1];\n        }\n        return 0;\n      }\n      getMetadata(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex \u003c\u003c 1) + 1];\n        return metadata;\n      }\n      getLanguageId(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex \u003c\u003c 1) + 1];\n        const languageId = TokenMetadata.getLanguageId(metadata);\n        return this.languageIdCodec.decodeLanguageId(languageId);\n      }\n      getStandardTokenType(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex \u003c\u003c 1) + 1];\n        return TokenMetadata.getTokenType(metadata);\n      }\n      getForeground(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex \u003c\u003c 1) + 1];\n        return TokenMetadata.getForeground(metadata);\n      }\n      getClassName(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex \u003c\u003c 1) + 1];\n        return TokenMetadata.getClassNameFromMetadata(metadata);\n      }\n      getInlineStyle(tokenIndex, colorMap) {\n        const metadata = this._tokens[(tokenIndex \u003c\u003c 1) + 1];\n        return TokenMetadata.getInlineStyleFromMetadata(metadata, colorMap);\n      }\n      getPresentation(tokenIndex) {\n        const metadata = this._tokens[(tokenIndex \u003c\u003c 1) + 1];\n        return TokenMetadata.getPresentationFromMetadata(metadata);\n      }\n      getEndOffset(tokenIndex) {\n        return this._tokens[tokenIndex \u003c\u003c 1];\n      }\n      /**\n       * Find the token containing offset `offset`.\n       * @param offset The search offset\n       * @return The index of the token containing the offset.\n       */\n      findTokenIndexAtOffset(offset) {\n        return _LineTokens.findIndexInTokensArray(this._tokens, offset);\n      }\n      inflate() {\n        return this;\n      }\n      sliceAndInflate(startOffset, endOffset, deltaOffset) {\n        return new SliceLineTokens(this, startOffset, endOffset, deltaOffset);\n      }\n      sliceZeroCopy(range2) {\n        return this.sliceAndInflate(range2.start, range2.endExclusive, 0);\n      }\n      /**\n       * @pure\n       * @param insertTokens Must be sorted by offset.\n      */\n      withInserted(insertTokens) {\n        if (insertTokens.length === 0) {\n          return this;\n        }\n        let nextOriginalTokenIdx = 0;\n        let nextInsertTokenIdx = 0;\n        let text2 = \"\";\n        const newTokens = new Array();\n        let originalEndOffset = 0;\n        while (true) {\n          const nextOriginalTokenEndOffset = nextOriginalTokenIdx \u003c this._tokensCount ? this._tokens[nextOriginalTokenIdx \u003c\u003c 1] : -1;\n          const nextInsertToken = nextInsertTokenIdx \u003c insertTokens.length ? insertTokens[nextInsertTokenIdx] : null;\n          if (nextOriginalTokenEndOffset !== -1 \u0026\u0026 (nextInsertToken === null || nextOriginalTokenEndOffset \u003c= nextInsertToken.offset)) {\n            text2 += this._text.substring(originalEndOffset, nextOriginalTokenEndOffset);\n            const metadata = this._tokens[(nextOriginalTokenIdx \u003c\u003c 1) + 1];\n            newTokens.push(text2.length, metadata);\n            nextOriginalTokenIdx++;\n            originalEndOffset = nextOriginalTokenEndOffset;\n          } else if (nextInsertToken) {\n            if (nextInsertToken.offset \u003e originalEndOffset) {\n              text2 += this._text.substring(originalEndOffset, nextInsertToken.offset);\n              const metadata = this._tokens[(nextOriginalTokenIdx \u003c\u003c 1) + 1];\n              newTokens.push(text2.length, metadata);\n              originalEndOffset = nextInsertToken.offset;\n            }\n            text2 += nextInsertToken.text;\n            newTokens.push(text2.length, nextInsertToken.tokenMetadata);\n            nextInsertTokenIdx++;\n          } else {\n            break;\n          }\n        }\n        return new _LineTokens(new Uint32Array(newTokens), text2, this.languageIdCodec);\n      }\n      getTokensInRange(range2) {\n        const builder = new TokenArrayBuilder();\n        const startTokenIndex = this.findTokenIndexAtOffset(range2.start);\n        const endTokenIndex = this.findTokenIndexAtOffset(range2.endExclusive);\n        for (let tokenIndex = startTokenIndex; tokenIndex \u003c= endTokenIndex; tokenIndex++) {\n          const tokenRange = new OffsetRange(this.getStartOffset(tokenIndex), this.getEndOffset(tokenIndex));\n          const length = tokenRange.intersectionLength(range2);\n          if (length \u003e 0) {\n            builder.add(length, this.getMetadata(tokenIndex));\n          }\n        }\n        return builder.build();\n      }\n      getTokenText(tokenIndex) {\n        const startOffset = this.getStartOffset(tokenIndex);\n        const endOffset = this.getEndOffset(tokenIndex);\n        const text2 = this._text.substring(startOffset, endOffset);\n        return text2;\n      }\n      forEach(callback) {\n        const tokenCount = this.getCount();\n        for (let tokenIndex = 0; tokenIndex \u003c tokenCount; tokenIndex++) {\n          callback(tokenIndex);\n        }\n      }\n      toString() {\n        let result = \"\";\n        this.forEach((i2) =\u003e {\n          result += `[${this.getTokenText(i2)}]{${this.getClassName(i2)}}`;\n        });\n        return result;\n      }\n    };\n    SliceLineTokens = class _SliceLineTokens {\n      constructor(source, startOffset, endOffset, deltaOffset) {\n        this._source = source;\n        this._startOffset = startOffset;\n        this._endOffset = endOffset;\n        this._deltaOffset = deltaOffset;\n        this._firstTokenIndex = source.findTokenIndexAtOffset(startOffset);\n        this.languageIdCodec = source.languageIdCodec;\n        this._tokensCount = 0;\n        for (let i2 = this._firstTokenIndex, len = source.getCount(); i2 \u003c len; i2++) {\n          const tokenStartOffset = source.getStartOffset(i2);\n          if (tokenStartOffset \u003e= endOffset) {\n            break;\n          }\n          this._tokensCount++;\n        }\n      }\n      getMetadata(tokenIndex) {\n        return this._source.getMetadata(this._firstTokenIndex + tokenIndex);\n      }\n      getLanguageId(tokenIndex) {\n        return this._source.getLanguageId(this._firstTokenIndex + tokenIndex);\n      }\n      getLineContent() {\n        return this._source.getLineContent().substring(this._startOffset, this._endOffset);\n      }\n      equals(other) {\n        if (other instanceof _SliceLineTokens) {\n          return this._startOffset === other._startOffset \u0026\u0026 this._endOffset === other._endOffset \u0026\u0026 this._deltaOffset === other._deltaOffset \u0026\u0026 this._source.slicedEquals(other._source, this._firstTokenIndex, this._tokensCount);\n        }\n        return false;\n      }\n      getCount() {\n        return this._tokensCount;\n      }\n      getStandardTokenType(tokenIndex) {\n        return this._source.getStandardTokenType(this._firstTokenIndex + tokenIndex);\n      }\n      getForeground(tokenIndex) {\n        return this._source.getForeground(this._firstTokenIndex + tokenIndex);\n      }\n      getEndOffset(tokenIndex) {\n        const tokenEndOffset = this._source.getEndOffset(this._firstTokenIndex + tokenIndex);\n        return Math.min(this._endOffset, tokenEndOffset) - this._startOffset + this._deltaOffset;\n      }\n      getClassName(tokenIndex) {\n        return this._source.getClassName(this._firstTokenIndex + tokenIndex);\n      }\n      getInlineStyle(tokenIndex, colorMap) {\n        return this._source.getInlineStyle(this._firstTokenIndex + tokenIndex, colorMap);\n      }\n      getPresentation(tokenIndex) {\n        return this._source.getPresentation(this._firstTokenIndex + tokenIndex);\n      }\n      findTokenIndexAtOffset(offset) {\n        return this._source.findTokenIndexAtOffset(offset + this._startOffset - this._deltaOffset) - this._firstTokenIndex;\n      }\n      getTokenText(tokenIndex) {\n        const adjustedTokenIndex = this._firstTokenIndex + tokenIndex;\n        const tokenStartOffset = this._source.getStartOffset(adjustedTokenIndex);\n        const tokenEndOffset = this._source.getEndOffset(adjustedTokenIndex);\n        let text2 = this._source.getTokenText(adjustedTokenIndex);\n        if (tokenStartOffset \u003c this._startOffset) {\n          text2 = text2.substring(this._startOffset - tokenStartOffset);\n        }\n        if (tokenEndOffset \u003e this._endOffset) {\n          text2 = text2.substring(0, text2.length - (tokenEndOffset - this._endOffset));\n        }\n        return text2;\n      }\n      forEach(callback) {\n        for (let tokenIndex = 0; tokenIndex \u003c this.getCount(); tokenIndex++) {\n          callback(tokenIndex);\n        }\n      }\n    };\n    TokenArray = class _TokenArray {\n      static fromLineTokens(lineTokens) {\n        const tokenInfo = [];\n        for (let i2 = 0; i2 \u003c lineTokens.getCount(); i2++) {\n          tokenInfo.push(new TokenInfo(lineTokens.getEndOffset(i2) - lineTokens.getStartOffset(i2), lineTokens.getMetadata(i2)));\n        }\n        return _TokenArray.create(tokenInfo);\n      }\n      static create(tokenInfo) {\n        return new _TokenArray(tokenInfo);\n      }\n      constructor(_tokenInfo) {\n        this._tokenInfo = _tokenInfo;\n      }\n      toLineTokens(lineContent, decoder) {\n        return LineTokens.createFromTextAndMetadata(this.map((r, t) =\u003e ({ text: r.substring(lineContent), metadata: t.metadata })), decoder);\n      }\n      forEach(cb) {\n        let lengthSum = 0;\n        for (const tokenInfo of this._tokenInfo) {\n          const range2 = new OffsetRange(lengthSum, lengthSum + tokenInfo.length);\n          cb(range2, tokenInfo);\n          lengthSum += tokenInfo.length;\n        }\n      }\n      map(cb) {\n        const result = [];\n        let lengthSum = 0;\n        for (const tokenInfo of this._tokenInfo) {\n          const range2 = new OffsetRange(lengthSum, lengthSum + tokenInfo.length);\n          result.push(cb(range2, tokenInfo));\n          lengthSum += tokenInfo.length;\n        }\n        return result;\n      }\n      slice(range2) {\n        const result = [];\n        let lengthSum = 0;\n        for (const tokenInfo of this._tokenInfo) {\n          const tokenStart = lengthSum;\n          const tokenEndEx = tokenStart + tokenInfo.length;\n          if (tokenEndEx \u003e range2.start) {\n            if (tokenStart \u003e= range2.endExclusive) {\n              break;\n            }\n            const deltaBefore = Math.max(0, range2.start - tokenStart);\n            const deltaAfter = Math.max(0, tokenEndEx - range2.endExclusive);\n            result.push(new TokenInfo(tokenInfo.length - deltaBefore - deltaAfter, tokenInfo.metadata));\n          }\n          lengthSum += tokenInfo.length;\n        }\n        return _TokenArray.create(result);\n      }\n    };\n    TokenInfo = class {\n      constructor(length, metadata) {\n        this.length = length;\n        this.metadata = metadata;\n      }\n    };\n    TokenArrayBuilder = class {\n      constructor() {\n        this._tokens = [];\n      }\n      add(length, metadata) {\n        this._tokens.push(new TokenInfo(length, metadata));\n      }\n      build() {\n        return TokenArray.create(this._tokens);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/editorContextKeys.js\nvar EditorContextKeys;\nvar init_editorContextKeys = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/editorContextKeys.js\"() {\n    init_nls();\n    init_contextkey();\n    (function(EditorContextKeys2) {\n      EditorContextKeys2.editorSimpleInput = new RawContextKey(\"editorSimpleInput\", false, true);\n      EditorContextKeys2.editorTextFocus = new RawContextKey(\"editorTextFocus\", false, localize(675, \"Whether the editor text has focus (cursor is blinking)\"));\n      EditorContextKeys2.focus = new RawContextKey(\"editorFocus\", false, localize(676, \"Whether the editor or an editor widget has focus (e.g. focus is in the find widget)\"));\n      EditorContextKeys2.textInputFocus = new RawContextKey(\"textInputFocus\", false, localize(677, \"Whether an editor or a rich text input has focus (cursor is blinking)\"));\n      EditorContextKeys2.readOnly = new RawContextKey(\"editorReadonly\", false, localize(678, \"Whether the editor is read-only\"));\n      EditorContextKeys2.inDiffEditor = new RawContextKey(\"inDiffEditor\", false, localize(679, \"Whether the context is a diff editor\"));\n      EditorContextKeys2.isEmbeddedDiffEditor = new RawContextKey(\"isEmbeddedDiffEditor\", false, localize(680, \"Whether the context is an embedded diff editor\"));\n      EditorContextKeys2.multiDiffEditorAllCollapsed = new RawContextKey(\"multiDiffEditorAllCollapsed\", void 0, localize(681, \"Whether all files in multi diff editor are collapsed\"));\n      EditorContextKeys2.hasChanges = new RawContextKey(\"diffEditorHasChanges\", false, localize(682, \"Whether the diff editor has changes\"));\n      EditorContextKeys2.comparingMovedCode = new RawContextKey(\"comparingMovedCode\", false, localize(683, \"Whether a moved code block is selected for comparison\"));\n      EditorContextKeys2.accessibleDiffViewerVisible = new RawContextKey(\"accessibleDiffViewerVisible\", false, localize(684, \"Whether the accessible diff viewer is visible\"));\n      EditorContextKeys2.diffEditorRenderSideBySideInlineBreakpointReached = new RawContextKey(\"diffEditorRenderSideBySideInlineBreakpointReached\", false, localize(685, \"Whether the diff editor render side by side inline breakpoint is reached\"));\n      EditorContextKeys2.diffEditorInlineMode = new RawContextKey(\"diffEditorInlineMode\", false, localize(686, \"Whether inline mode is active\"));\n      EditorContextKeys2.diffEditorOriginalWritable = new RawContextKey(\"diffEditorOriginalWritable\", false, localize(687, \"Whether modified is writable in the diff editor\"));\n      EditorContextKeys2.diffEditorModifiedWritable = new RawContextKey(\"diffEditorModifiedWritable\", false, localize(688, \"Whether modified is writable in the diff editor\"));\n      EditorContextKeys2.diffEditorOriginalUri = new RawContextKey(\"diffEditorOriginalUri\", \"\", localize(689, \"The uri of the original document\"));\n      EditorContextKeys2.diffEditorModifiedUri = new RawContextKey(\"diffEditorModifiedUri\", \"\", localize(690, \"The uri of the modified document\"));\n      EditorContextKeys2.columnSelection = new RawContextKey(\"editorColumnSelection\", false, localize(691, \"Whether `editor.columnSelection` is enabled\"));\n      EditorContextKeys2.writable = EditorContextKeys2.readOnly.toNegated();\n      EditorContextKeys2.hasNonEmptySelection = new RawContextKey(\"editorHasSelection\", false, localize(692, \"Whether the editor has text selected\"));\n      EditorContextKeys2.hasOnlyEmptySelection = EditorContextKeys2.hasNonEmptySelection.toNegated();\n      EditorContextKeys2.hasMultipleSelections = new RawContextKey(\"editorHasMultipleSelections\", false, localize(693, \"Whether the editor has multiple selections\"));\n      EditorContextKeys2.hasSingleSelection = EditorContextKeys2.hasMultipleSelections.toNegated();\n      EditorContextKeys2.tabMovesFocus = new RawContextKey(\"editorTabMovesFocus\", false, localize(694, \"Whether `Tab` will move focus out of the editor\"));\n      EditorContextKeys2.tabDoesNotMoveFocus = EditorContextKeys2.tabMovesFocus.toNegated();\n      EditorContextKeys2.isInEmbeddedEditor = new RawContextKey(\"isInEmbeddedEditor\", false, true);\n      EditorContextKeys2.canUndo = new RawContextKey(\"canUndo\", false, true);\n      EditorContextKeys2.canRedo = new RawContextKey(\"canRedo\", false, true);\n      EditorContextKeys2.hoverVisible = new RawContextKey(\"editorHoverVisible\", false, localize(695, \"Whether the editor hover is visible\"));\n      EditorContextKeys2.hoverFocused = new RawContextKey(\"editorHoverFocused\", false, localize(696, \"Whether the editor hover is focused\"));\n      EditorContextKeys2.stickyScrollFocused = new RawContextKey(\"stickyScrollFocused\", false, localize(697, \"Whether the sticky scroll is focused\"));\n      EditorContextKeys2.stickyScrollVisible = new RawContextKey(\"stickyScrollVisible\", false, localize(698, \"Whether the sticky scroll is visible\"));\n      EditorContextKeys2.standaloneColorPickerVisible = new RawContextKey(\"standaloneColorPickerVisible\", false, localize(699, \"Whether the standalone color picker is visible\"));\n      EditorContextKeys2.standaloneColorPickerFocused = new RawContextKey(\"standaloneColorPickerFocused\", false, localize(700, \"Whether the standalone color picker is focused\"));\n      EditorContextKeys2.inCompositeEditor = new RawContextKey(\"inCompositeEditor\", void 0, localize(701, \"Whether the editor is part of a larger editor (e.g. notebooks)\"));\n      EditorContextKeys2.notInCompositeEditor = EditorContextKeys2.inCompositeEditor.toNegated();\n      EditorContextKeys2.languageId = new RawContextKey(\"editorLangId\", \"\", localize(702, \"The language identifier of the editor\"));\n      EditorContextKeys2.hasCompletionItemProvider = new RawContextKey(\"editorHasCompletionItemProvider\", false, localize(703, \"Whether the editor has a completion item provider\"));\n      EditorContextKeys2.hasCodeActionsProvider = new RawContextKey(\"editorHasCodeActionsProvider\", false, localize(704, \"Whether the editor has a code actions provider\"));\n      EditorContextKeys2.hasCodeLensProvider = new RawContextKey(\"editorHasCodeLensProvider\", false, localize(705, \"Whether the editor has a code lens provider\"));\n      EditorContextKeys2.hasDefinitionProvider = new RawContextKey(\"editorHasDefinitionProvider\", false, localize(706, \"Whether the editor has a definition provider\"));\n      EditorContextKeys2.hasDeclarationProvider = new RawContextKey(\"editorHasDeclarationProvider\", false, localize(707, \"Whether the editor has a declaration provider\"));\n      EditorContextKeys2.hasImplementationProvider = new RawContextKey(\"editorHasImplementationProvider\", false, localize(708, \"Whether the editor has an implementation provider\"));\n      EditorContextKeys2.hasTypeDefinitionProvider = new RawContextKey(\"editorHasTypeDefinitionProvider\", false, localize(709, \"Whether the editor has a type definition provider\"));\n      EditorContextKeys2.hasHoverProvider = new RawContextKey(\"editorHasHoverProvider\", false, localize(710, \"Whether the editor has a hover provider\"));\n      EditorContextKeys2.hasDocumentHighlightProvider = new RawContextKey(\"editorHasDocumentHighlightProvider\", false, localize(711, \"Whether the editor has a document highlight provider\"));\n      EditorContextKeys2.hasDocumentSymbolProvider = new RawContextKey(\"editorHasDocumentSymbolProvider\", false, localize(712, \"Whether the editor has a document symbol provider\"));\n      EditorContextKeys2.hasReferenceProvider = new RawContextKey(\"editorHasReferenceProvider\", false, localize(713, \"Whether the editor has a reference provider\"));\n      EditorContextKeys2.hasRenameProvider = new RawContextKey(\"editorHasRenameProvider\", false, localize(714, \"Whether the editor has a rename provider\"));\n      EditorContextKeys2.hasSignatureHelpProvider = new RawContextKey(\"editorHasSignatureHelpProvider\", false, localize(715, \"Whether the editor has a signature help provider\"));\n      EditorContextKeys2.hasInlayHintsProvider = new RawContextKey(\"editorHasInlayHintsProvider\", false, localize(716, \"Whether the editor has an inline hints provider\"));\n      EditorContextKeys2.hasDocumentFormattingProvider = new RawContextKey(\"editorHasDocumentFormattingProvider\", false, localize(717, \"Whether the editor has a document formatting provider\"));\n      EditorContextKeys2.hasDocumentSelectionFormattingProvider = new RawContextKey(\"editorHasDocumentSelectionFormattingProvider\", false, localize(718, \"Whether the editor has a document selection formatting provider\"));\n      EditorContextKeys2.hasMultipleDocumentFormattingProvider = new RawContextKey(\"editorHasMultipleDocumentFormattingProvider\", false, localize(719, \"Whether the editor has multiple document formatting providers\"));\n      EditorContextKeys2.hasMultipleDocumentSelectionFormattingProvider = new RawContextKey(\"editorHasMultipleDocumentSelectionFormattingProvider\", false, localize(720, \"Whether the editor has multiple document selection formatting providers\"));\n    })(EditorContextKeys || (EditorContextKeys = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/elementSizeObserver.js\nvar ElementSizeObserver;\nvar init_elementSizeObserver = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/elementSizeObserver.js\"() {\n    init_lifecycle();\n    init_event();\n    init_dom();\n    ElementSizeObserver = class extends Disposable {\n      constructor(referenceDomElement, dimension) {\n        super();\n        this._onDidChange = this._register(new Emitter());\n        this.onDidChange = this._onDidChange.event;\n        this._referenceDomElement = referenceDomElement;\n        this._width = -1;\n        this._height = -1;\n        this._resizeObserver = null;\n        this.measureReferenceDomElement(false, dimension);\n      }\n      dispose() {\n        this.stopObserving();\n        super.dispose();\n      }\n      getWidth() {\n        return this._width;\n      }\n      getHeight() {\n        return this._height;\n      }\n      startObserving() {\n        if (!this._resizeObserver \u0026\u0026 this._referenceDomElement) {\n          let observedDimenstion = null;\n          const observeNow = () =\u003e {\n            if (observedDimenstion) {\n              this.observe({ width: observedDimenstion.width, height: observedDimenstion.height });\n            } else {\n              this.observe();\n            }\n          };\n          let shouldObserve = false;\n          let alreadyObservedThisAnimationFrame = false;\n          const update = () =\u003e {\n            if (shouldObserve \u0026\u0026 !alreadyObservedThisAnimationFrame) {\n              try {\n                shouldObserve = false;\n                alreadyObservedThisAnimationFrame = true;\n                observeNow();\n              } finally {\n                scheduleAtNextAnimationFrame(getWindow(this._referenceDomElement), () =\u003e {\n                  alreadyObservedThisAnimationFrame = false;\n                  update();\n                });\n              }\n            }\n          };\n          this._resizeObserver = new ResizeObserver((entries2) =\u003e {\n            if (entries2 \u0026\u0026 entries2[0] \u0026\u0026 entries2[0].contentRect) {\n              observedDimenstion = { width: entries2[0].contentRect.width, height: entries2[0].contentRect.height };\n            } else {\n              observedDimenstion = null;\n            }\n            shouldObserve = true;\n            update();\n          });\n          this._resizeObserver.observe(this._referenceDomElement);\n        }\n      }\n      stopObserving() {\n        if (this._resizeObserver) {\n          this._resizeObserver.disconnect();\n          this._resizeObserver = null;\n        }\n      }\n      observe(dimension) {\n        this.measureReferenceDomElement(true, dimension);\n      }\n      measureReferenceDomElement(emitEvent, dimension) {\n        let observedWidth = 0;\n        let observedHeight = 0;\n        if (dimension) {\n          observedWidth = dimension.width;\n          observedHeight = dimension.height;\n        } else if (this._referenceDomElement) {\n          observedWidth = this._referenceDomElement.clientWidth;\n          observedHeight = this._referenceDomElement.clientHeight;\n        }\n        observedWidth = Math.max(5, observedWidth);\n        observedHeight = Math.max(5, observedHeight);\n        if (this._width !== observedWidth || this._height !== observedHeight) {\n          this._width = observedWidth;\n          this._height = observedHeight;\n          if (emitEvent) {\n            this._onDidChange.fire();\n          }\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/misc/textModelDefaults.js\nvar EDITOR_MODEL_DEFAULTS;\nvar init_textModelDefaults = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/misc/textModelDefaults.js\"() {\n    EDITOR_MODEL_DEFAULTS = {\n      tabSize: 4,\n      indentSize: 4,\n      insertSpaces: true,\n      detectIndentation: true,\n      trimAutoWhitespace: true,\n      largeFileOptimizations: true,\n      bracketPairColorizationOptions: {\n        enabled: true,\n        independentColorPoolPerBracketType: false\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/color.js\nfunction roundFloat(number, decimalPoints) {\n  const decimal = Math.pow(10, decimalPoints);\n  return Math.round(number * decimal) / decimal;\n}\nvar RGBA, HSLA, HSVA, Color;\nvar init_color = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/color.js\"() {\n    RGBA = class {\n      constructor(r, g, b, a = 1) {\n        this._rgbaBrand = void 0;\n        this.r = Math.min(255, Math.max(0, r)) | 0;\n        this.g = Math.min(255, Math.max(0, g)) | 0;\n        this.b = Math.min(255, Math.max(0, b)) | 0;\n        this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n      }\n      static equals(a, b) {\n        return a.r === b.r \u0026\u0026 a.g === b.g \u0026\u0026 a.b === b.b \u0026\u0026 a.a === b.a;\n      }\n    };\n    HSLA = class _HSLA {\n      constructor(h2, s, l, a) {\n        this._hslaBrand = void 0;\n        this.h = Math.max(Math.min(360, h2), 0) | 0;\n        this.s = roundFloat(Math.max(Math.min(1, s), 0), 3);\n        this.l = roundFloat(Math.max(Math.min(1, l), 0), 3);\n        this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n      }\n      static equals(a, b) {\n        return a.h === b.h \u0026\u0026 a.s === b.s \u0026\u0026 a.l === b.l \u0026\u0026 a.a === b.a;\n      }\n      /**\n       * Converts an RGB color value to HSL. Conversion formula\n       * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n       * Assumes r, g, and b are contained in the set [0, 255] and\n       * returns h in the set [0, 360], s, and l in the set [0, 1].\n       */\n      static fromRGBA(rgba) {\n        const r = rgba.r / 255;\n        const g = rgba.g / 255;\n        const b = rgba.b / 255;\n        const a = rgba.a;\n        const max = Math.max(r, g, b);\n        const min = Math.min(r, g, b);\n        let h2 = 0;\n        let s = 0;\n        const l = (min + max) / 2;\n        const chroma = max - min;\n        if (chroma \u003e 0) {\n          s = Math.min(l \u003c= 0.5 ? chroma / (2 * l) : chroma / (2 - 2 * l), 1);\n          switch (max) {\n            case r:\n              h2 = (g - b) / chroma + (g \u003c b ? 6 : 0);\n              break;\n            case g:\n              h2 = (b - r) / chroma + 2;\n              break;\n            case b:\n              h2 = (r - g) / chroma + 4;\n              break;\n          }\n          h2 *= 60;\n          h2 = Math.round(h2);\n        }\n        return new _HSLA(h2, s, l, a);\n      }\n      static _hue2rgb(p, q, t) {\n        if (t \u003c 0) {\n          t += 1;\n        }\n        if (t \u003e 1) {\n          t -= 1;\n        }\n        if (t \u003c 1 / 6) {\n          return p + (q - p) * 6 * t;\n        }\n        if (t \u003c 1 / 2) {\n          return q;\n        }\n        if (t \u003c 2 / 3) {\n          return p + (q - p) * (2 / 3 - t) * 6;\n        }\n        return p;\n      }\n      /**\n       * Converts an HSL color value to RGB. Conversion formula\n       * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n       * Assumes h in the set [0, 360] s, and l are contained in the set [0, 1] and\n       * returns r, g, and b in the set [0, 255].\n       */\n      static toRGBA(hsla) {\n        const h2 = hsla.h / 360;\n        const { s, l, a } = hsla;\n        let r, g, b;\n        if (s === 0) {\n          r = g = b = l;\n        } else {\n          const q = l \u003c 0.5 ? l * (1 + s) : l + s - l * s;\n          const p = 2 * l - q;\n          r = _HSLA._hue2rgb(p, q, h2 + 1 / 3);\n          g = _HSLA._hue2rgb(p, q, h2);\n          b = _HSLA._hue2rgb(p, q, h2 - 1 / 3);\n        }\n        return new RGBA(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), a);\n      }\n    };\n    HSVA = class _HSVA {\n      constructor(h2, s, v, a) {\n        this._hsvaBrand = void 0;\n        this.h = Math.max(Math.min(360, h2), 0) | 0;\n        this.s = roundFloat(Math.max(Math.min(1, s), 0), 3);\n        this.v = roundFloat(Math.max(Math.min(1, v), 0), 3);\n        this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n      }\n      static equals(a, b) {\n        return a.h === b.h \u0026\u0026 a.s === b.s \u0026\u0026 a.v === b.v \u0026\u0026 a.a === b.a;\n      }\n      // from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm\n      static fromRGBA(rgba) {\n        const r = rgba.r / 255;\n        const g = rgba.g / 255;\n        const b = rgba.b / 255;\n        const cmax = Math.max(r, g, b);\n        const cmin = Math.min(r, g, b);\n        const delta = cmax - cmin;\n        const s = cmax === 0 ? 0 : delta / cmax;\n        let m;\n        if (delta === 0) {\n          m = 0;\n        } else if (cmax === r) {\n          m = ((g - b) / delta % 6 + 6) % 6;\n        } else if (cmax === g) {\n          m = (b - r) / delta + 2;\n        } else {\n          m = (r - g) / delta + 4;\n        }\n        return new _HSVA(Math.round(m * 60), s, cmax, rgba.a);\n      }\n      // from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm\n      static toRGBA(hsva) {\n        const { h: h2, s, v, a } = hsva;\n        const c = v * s;\n        const x = c * (1 - Math.abs(h2 / 60 % 2 - 1));\n        const m = v - c;\n        let [r, g, b] = [0, 0, 0];\n        if (h2 \u003c 60) {\n          r = c;\n          g = x;\n        } else if (h2 \u003c 120) {\n          r = x;\n          g = c;\n        } else if (h2 \u003c 180) {\n          g = c;\n          b = x;\n        } else if (h2 \u003c 240) {\n          g = x;\n          b = c;\n        } else if (h2 \u003c 300) {\n          r = x;\n          b = c;\n        } else if (h2 \u003c= 360) {\n          r = c;\n          b = x;\n        }\n        r = Math.round((r + m) * 255);\n        g = Math.round((g + m) * 255);\n        b = Math.round((b + m) * 255);\n        return new RGBA(r, g, b, a);\n      }\n    };\n    Color = class _Color {\n      static fromHex(hex) {\n        return _Color.Format.CSS.parseHex(hex) || _Color.red;\n      }\n      static equals(a, b) {\n        if (!a \u0026\u0026 !b) {\n          return true;\n        }\n        if (!a || !b) {\n          return false;\n        }\n        return a.equals(b);\n      }\n      get hsla() {\n        if (this._hsla) {\n          return this._hsla;\n        } else {\n          return HSLA.fromRGBA(this.rgba);\n        }\n      }\n      get hsva() {\n        if (this._hsva) {\n          return this._hsva;\n        }\n        return HSVA.fromRGBA(this.rgba);\n      }\n      constructor(arg) {\n        if (!arg) {\n          throw new Error(\"Color needs a value\");\n        } else if (arg instanceof RGBA) {\n          this.rgba = arg;\n        } else if (arg instanceof HSLA) {\n          this._hsla = arg;\n          this.rgba = HSLA.toRGBA(arg);\n        } else if (arg instanceof HSVA) {\n          this._hsva = arg;\n          this.rgba = HSVA.toRGBA(arg);\n        } else {\n          throw new Error(\"Invalid color ctor argument\");\n        }\n      }\n      equals(other) {\n        return !!other \u0026\u0026 RGBA.equals(this.rgba, other.rgba) \u0026\u0026 HSLA.equals(this.hsla, other.hsla) \u0026\u0026 HSVA.equals(this.hsva, other.hsva);\n      }\n      /**\n       * http://www.w3.org/TR/WCAG20/#relativeluminancedef\n       * Returns the number in the set [0, 1]. O =\u003e Darkest Black. 1 =\u003e Lightest white.\n       */\n      getRelativeLuminance() {\n        const R = _Color._relativeLuminanceForComponent(this.rgba.r);\n        const G = _Color._relativeLuminanceForComponent(this.rgba.g);\n        const B = _Color._relativeLuminanceForComponent(this.rgba.b);\n        const luminance = 0.2126 * R + 0.7152 * G + 0.0722 * B;\n        return roundFloat(luminance, 4);\n      }\n      static _relativeLuminanceForComponent(color) {\n        const c = color / 255;\n        return c \u003c= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n      }\n      /**\n       *\thttp://24ways.org/2010/calculating-color-contrast\n       *  Return 'true' if lighter color otherwise 'false'\n       */\n      isLighter() {\n        const yiq = (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1e3;\n        return yiq \u003e= 128;\n      }\n      isLighterThan(another) {\n        const lum1 = this.getRelativeLuminance();\n        const lum2 = another.getRelativeLuminance();\n        return lum1 \u003e lum2;\n      }\n      isDarkerThan(another) {\n        const lum1 = this.getRelativeLuminance();\n        const lum2 = another.getRelativeLuminance();\n        return lum1 \u003c lum2;\n      }\n      lighten(factor2) {\n        return new _Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * factor2, this.hsla.a));\n      }\n      darken(factor2) {\n        return new _Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * factor2, this.hsla.a));\n      }\n      transparent(factor2) {\n        const { r, g, b, a } = this.rgba;\n        return new _Color(new RGBA(r, g, b, a * factor2));\n      }\n      isTransparent() {\n        return this.rgba.a === 0;\n      }\n      isOpaque() {\n        return this.rgba.a === 1;\n      }\n      opposite() {\n        return new _Color(new RGBA(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));\n      }\n      /**\n       * Mixes the current color with the provided color based on the given factor.\n       * @param color The color to mix with\n       * @param factor The factor of mixing (0 means this color, 1 means the input color, 0.5 means equal mix)\n       * @returns A new color representing the mix\n       */\n      mix(color, factor2 = 0.5) {\n        const normalize2 = Math.min(Math.max(factor2, 0), 1);\n        const thisRGBA = this.rgba;\n        const otherRGBA = color.rgba;\n        const r = thisRGBA.r + (otherRGBA.r - thisRGBA.r) * normalize2;\n        const g = thisRGBA.g + (otherRGBA.g - thisRGBA.g) * normalize2;\n        const b = thisRGBA.b + (otherRGBA.b - thisRGBA.b) * normalize2;\n        const a = thisRGBA.a + (otherRGBA.a - thisRGBA.a) * normalize2;\n        return new _Color(new RGBA(r, g, b, a));\n      }\n      makeOpaque(opaqueBackground) {\n        if (this.isOpaque() || opaqueBackground.rgba.a !== 1) {\n          return this;\n        }\n        const { r, g, b, a } = this.rgba;\n        return new _Color(new RGBA(opaqueBackground.rgba.r - a * (opaqueBackground.rgba.r - r), opaqueBackground.rgba.g - a * (opaqueBackground.rgba.g - g), opaqueBackground.rgba.b - a * (opaqueBackground.rgba.b - b), 1));\n      }\n      toString() {\n        if (!this._toString) {\n          this._toString = _Color.Format.CSS.format(this);\n        }\n        return this._toString;\n      }\n      toNumber32Bit() {\n        if (!this._toNumber32Bit) {\n          this._toNumber32Bit = (this.rgba.r \u003c\u003c 24 | this.rgba.g \u003c\u003c 16 | this.rgba.b \u003c\u003c 8 | this.rgba.a * 255 \u003c\u003c 0) \u003e\u003e\u003e 0;\n        }\n        return this._toNumber32Bit;\n      }\n      static getLighterColor(of, relative2, factor2) {\n        if (of.isLighterThan(relative2)) {\n          return of;\n        }\n        factor2 = factor2 ? factor2 : 0.5;\n        const lum1 = of.getRelativeLuminance();\n        const lum2 = relative2.getRelativeLuminance();\n        factor2 = factor2 * (lum2 - lum1) / lum2;\n        return of.lighten(factor2);\n      }\n      static getDarkerColor(of, relative2, factor2) {\n        if (of.isDarkerThan(relative2)) {\n          return of;\n        }\n        factor2 = factor2 ? factor2 : 0.5;\n        const lum1 = of.getRelativeLuminance();\n        const lum2 = relative2.getRelativeLuminance();\n        factor2 = factor2 * (lum1 - lum2) / lum1;\n        return of.darken(factor2);\n      }\n      static {\n        this.white = new _Color(new RGBA(255, 255, 255, 1));\n      }\n      static {\n        this.black = new _Color(new RGBA(0, 0, 0, 1));\n      }\n      static {\n        this.red = new _Color(new RGBA(255, 0, 0, 1));\n      }\n      static {\n        this.blue = new _Color(new RGBA(0, 0, 255, 1));\n      }\n      static {\n        this.green = new _Color(new RGBA(0, 255, 0, 1));\n      }\n      static {\n        this.cyan = new _Color(new RGBA(0, 255, 255, 1));\n      }\n      static {\n        this.lightgrey = new _Color(new RGBA(211, 211, 211, 1));\n      }\n      static {\n        this.transparent = new _Color(new RGBA(0, 0, 0, 0));\n      }\n    };\n    (function(Color2) {\n      let Format;\n      (function(Format2) {\n        let CSS2;\n        (function(CSS3) {\n          function formatRGB(color) {\n            if (color.rgba.a === 1) {\n              return `rgb(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b})`;\n            }\n            return Color2.Format.CSS.formatRGBA(color);\n          }\n          CSS3.formatRGB = formatRGB;\n          function formatRGBA(color) {\n            return `rgba(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b}, ${+color.rgba.a.toFixed(2)})`;\n          }\n          CSS3.formatRGBA = formatRGBA;\n          function formatHSL(color) {\n            if (color.hsla.a === 1) {\n              return `hsl(${color.hsla.h}, ${Math.round(color.hsla.s * 100)}%, ${Math.round(color.hsla.l * 100)}%)`;\n            }\n            return Color2.Format.CSS.formatHSLA(color);\n          }\n          CSS3.formatHSL = formatHSL;\n          function formatHSLA(color) {\n            return `hsla(${color.hsla.h}, ${Math.round(color.hsla.s * 100)}%, ${Math.round(color.hsla.l * 100)}%, ${color.hsla.a.toFixed(2)})`;\n          }\n          CSS3.formatHSLA = formatHSLA;\n          function _toTwoDigitHex(n2) {\n            const r = n2.toString(16);\n            return r.length !== 2 ? \"0\" + r : r;\n          }\n          function formatHex(color) {\n            return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}`;\n          }\n          CSS3.formatHex = formatHex;\n          function formatHexA(color, compact = false) {\n            if (compact \u0026\u0026 color.rgba.a === 1) {\n              return Color2.Format.CSS.formatHex(color);\n            }\n            return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}${_toTwoDigitHex(Math.round(color.rgba.a * 255))}`;\n          }\n          CSS3.formatHexA = formatHexA;\n          function format2(color) {\n            if (color.isOpaque()) {\n              return Color2.Format.CSS.formatHex(color);\n            }\n            return Color2.Format.CSS.formatRGBA(color);\n          }\n          CSS3.format = format2;\n          function parse4(css) {\n            if (css === \"transparent\") {\n              return Color2.transparent;\n            }\n            if (css.startsWith(\"#\")) {\n              return parseHex(css);\n            }\n            if (css.startsWith(\"rgba(\")) {\n              const color = css.match(/rgba\\((?\u003cr\u003e(?:\\+|-)?\\d+), *(?\u003cg\u003e(?:\\+|-)?\\d+), *(?\u003cb\u003e(?:\\+|-)?\\d+), *(?\u003ca\u003e(?:\\+|-)?\\d+(\\.\\d+)?)\\)/);\n              if (!color) {\n                throw new Error(\"Invalid color format \" + css);\n              }\n              const r = parseInt(color.groups?.r ?? \"0\");\n              const g = parseInt(color.groups?.g ?? \"0\");\n              const b = parseInt(color.groups?.b ?? \"0\");\n              const a = parseFloat(color.groups?.a ?? \"0\");\n              return new Color2(new RGBA(r, g, b, a));\n            }\n            if (css.startsWith(\"rgb(\")) {\n              const color = css.match(/rgb\\((?\u003cr\u003e(?:\\+|-)?\\d+), *(?\u003cg\u003e(?:\\+|-)?\\d+), *(?\u003cb\u003e(?:\\+|-)?\\d+)\\)/);\n              if (!color) {\n                throw new Error(\"Invalid color format \" + css);\n              }\n              const r = parseInt(color.groups?.r ?? \"0\");\n              const g = parseInt(color.groups?.g ?? \"0\");\n              const b = parseInt(color.groups?.b ?? \"0\");\n              return new Color2(new RGBA(r, g, b));\n            }\n            return parseNamedKeyword(css);\n          }\n          CSS3.parse = parse4;\n          function parseNamedKeyword(css) {\n            switch (css) {\n              case \"aliceblue\":\n                return new Color2(new RGBA(240, 248, 255, 1));\n              case \"antiquewhite\":\n                return new Color2(new RGBA(250, 235, 215, 1));\n              case \"aqua\":\n                return new Color2(new RGBA(0, 255, 255, 1));\n              case \"aquamarine\":\n                return new Color2(new RGBA(127, 255, 212, 1));\n              case \"azure\":\n                return new Color2(new RGBA(240, 255, 255, 1));\n              case \"beige\":\n                return new Color2(new RGBA(245, 245, 220, 1));\n              case \"bisque\":\n                return new Color2(new RGBA(255, 228, 196, 1));\n              case \"black\":\n                return new Color2(new RGBA(0, 0, 0, 1));\n              case \"blanchedalmond\":\n                return new Color2(new RGBA(255, 235, 205, 1));\n              case \"blue\":\n                return new Color2(new RGBA(0, 0, 255, 1));\n              case \"blueviolet\":\n                return new Color2(new RGBA(138, 43, 226, 1));\n              case \"brown\":\n                return new Color2(new RGBA(165, 42, 42, 1));\n              case \"burlywood\":\n                return new Color2(new RGBA(222, 184, 135, 1));\n              case \"cadetblue\":\n                return new Color2(new RGBA(95, 158, 160, 1));\n              case \"chartreuse\":\n                return new Color2(new RGBA(127, 255, 0, 1));\n              case \"chocolate\":\n                return new Color2(new RGBA(210, 105, 30, 1));\n              case \"coral\":\n                return new Color2(new RGBA(255, 127, 80, 1));\n              case \"cornflowerblue\":\n                return new Color2(new RGBA(100, 149, 237, 1));\n              case \"cornsilk\":\n                return new Color2(new RGBA(255, 248, 220, 1));\n              case \"crimson\":\n                return new Color2(new RGBA(220, 20, 60, 1));\n              case \"cyan\":\n                return new Color2(new RGBA(0, 255, 255, 1));\n              case \"darkblue\":\n                return new Color2(new RGBA(0, 0, 139, 1));\n              case \"darkcyan\":\n                return new Color2(new RGBA(0, 139, 139, 1));\n              case \"darkgoldenrod\":\n                return new Color2(new RGBA(184, 134, 11, 1));\n              case \"darkgray\":\n                return new Color2(new RGBA(169, 169, 169, 1));\n              case \"darkgreen\":\n                return new Color2(new RGBA(0, 100, 0, 1));\n              case \"darkgrey\":\n                return new Color2(new RGBA(169, 169, 169, 1));\n              case \"darkkhaki\":\n                return new Color2(new RGBA(189, 183, 107, 1));\n              case \"darkmagenta\":\n                return new Color2(new RGBA(139, 0, 139, 1));\n              case \"darkolivegreen\":\n                return new Color2(new RGBA(85, 107, 47, 1));\n              case \"darkorange\":\n                return new Color2(new RGBA(255, 140, 0, 1));\n              case \"darkorchid\":\n                return new Color2(new RGBA(153, 50, 204, 1));\n              case \"darkred\":\n                return new Color2(new RGBA(139, 0, 0, 1));\n              case \"darksalmon\":\n                return new Color2(new RGBA(233, 150, 122, 1));\n              case \"darkseagreen\":\n                return new Color2(new RGBA(143, 188, 143, 1));\n              case \"darkslateblue\":\n                return new Color2(new RGBA(72, 61, 139, 1));\n              case \"darkslategray\":\n                return new Color2(new RGBA(47, 79, 79, 1));\n              case \"darkslategrey\":\n                return new Color2(new RGBA(47, 79, 79, 1));\n              case \"darkturquoise\":\n                return new Color2(new RGBA(0, 206, 209, 1));\n              case \"darkviolet\":\n                return new Color2(new RGBA(148, 0, 211, 1));\n              case \"deeppink\":\n                return new Color2(new RGBA(255, 20, 147, 1));\n              case \"deepskyblue\":\n                return new Color2(new RGBA(0, 191, 255, 1));\n              case \"dimgray\":\n                return new Color2(new RGBA(105, 105, 105, 1));\n              case \"dimgrey\":\n                return new Color2(new RGBA(105, 105, 105, 1));\n              case \"dodgerblue\":\n                return new Color2(new RGBA(30, 144, 255, 1));\n              case \"firebrick\":\n                return new Color2(new RGBA(178, 34, 34, 1));\n              case \"floralwhite\":\n                return new Color2(new RGBA(255, 250, 240, 1));\n              case \"forestgreen\":\n                return new Color2(new RGBA(34, 139, 34, 1));\n              case \"fuchsia\":\n                return new Color2(new RGBA(255, 0, 255, 1));\n              case \"gainsboro\":\n                return new Color2(new RGBA(220, 220, 220, 1));\n              case \"ghostwhite\":\n                return new Color2(new RGBA(248, 248, 255, 1));\n              case \"gold\":\n                return new Color2(new RGBA(255, 215, 0, 1));\n              case \"goldenrod\":\n                return new Color2(new RGBA(218, 165, 32, 1));\n              case \"gray\":\n                return new Color2(new RGBA(128, 128, 128, 1));\n              case \"green\":\n                return new Color2(new RGBA(0, 128, 0, 1));\n              case \"greenyellow\":\n                return new Color2(new RGBA(173, 255, 47, 1));\n              case \"grey\":\n                return new Color2(new RGBA(128, 128, 128, 1));\n              case \"honeydew\":\n                return new Color2(new RGBA(240, 255, 240, 1));\n              case \"hotpink\":\n                return new Color2(new RGBA(255, 105, 180, 1));\n              case \"indianred\":\n                return new Color2(new RGBA(205, 92, 92, 1));\n              case \"indigo\":\n                return new Color2(new RGBA(75, 0, 130, 1));\n              case \"ivory\":\n                return new Color2(new RGBA(255, 255, 240, 1));\n              case \"khaki\":\n                return new Color2(new RGBA(240, 230, 140, 1));\n              case \"lavender\":\n                return new Color2(new RGBA(230, 230, 250, 1));\n              case \"lavenderblush\":\n                return new Color2(new RGBA(255, 240, 245, 1));\n              case \"lawngreen\":\n                return new Color2(new RGBA(124, 252, 0, 1));\n              case \"lemonchiffon\":\n                return new Color2(new RGBA(255, 250, 205, 1));\n              case \"lightblue\":\n                return new Color2(new RGBA(173, 216, 230, 1));\n              case \"lightcoral\":\n                return new Color2(new RGBA(240, 128, 128, 1));\n              case \"lightcyan\":\n                return new Color2(new RGBA(224, 255, 255, 1));\n              case \"lightgoldenrodyellow\":\n                return new Color2(new RGBA(250, 250, 210, 1));\n              case \"lightgray\":\n                return new Color2(new RGBA(211, 211, 211, 1));\n              case \"lightgreen\":\n                return new Color2(new RGBA(144, 238, 144, 1));\n              case \"lightgrey\":\n                return new Color2(new RGBA(211, 211, 211, 1));\n              case \"lightpink\":\n                return new Color2(new RGBA(255, 182, 193, 1));\n              case \"lightsalmon\":\n                return new Color2(new RGBA(255, 160, 122, 1));\n              case \"lightseagreen\":\n                return new Color2(new RGBA(32, 178, 170, 1));\n              case \"lightskyblue\":\n                return new Color2(new RGBA(135, 206, 250, 1));\n              case \"lightslategray\":\n                return new Color2(new RGBA(119, 136, 153, 1));\n              case \"lightslategrey\":\n                return new Color2(new RGBA(119, 136, 153, 1));\n              case \"lightsteelblue\":\n                return new Color2(new RGBA(176, 196, 222, 1));\n              case \"lightyellow\":\n                return new Color2(new RGBA(255, 255, 224, 1));\n              case \"lime\":\n                return new Color2(new RGBA(0, 255, 0, 1));\n              case \"limegreen\":\n                return new Color2(new RGBA(50, 205, 50, 1));\n              case \"linen\":\n                return new Color2(new RGBA(250, 240, 230, 1));\n              case \"magenta\":\n                return new Color2(new RGBA(255, 0, 255, 1));\n              case \"maroon\":\n                return new Color2(new RGBA(128, 0, 0, 1));\n              case \"mediumaquamarine\":\n                return new Color2(new RGBA(102, 205, 170, 1));\n              case \"mediumblue\":\n                return new Color2(new RGBA(0, 0, 205, 1));\n              case \"mediumorchid\":\n                return new Color2(new RGBA(186, 85, 211, 1));\n              case \"mediumpurple\":\n                return new Color2(new RGBA(147, 112, 219, 1));\n              case \"mediumseagreen\":\n                return new Color2(new RGBA(60, 179, 113, 1));\n              case \"mediumslateblue\":\n                return new Color2(new RGBA(123, 104, 238, 1));\n              case \"mediumspringgreen\":\n                return new Color2(new RGBA(0, 250, 154, 1));\n              case \"mediumturquoise\":\n                return new Color2(new RGBA(72, 209, 204, 1));\n              case \"mediumvioletred\":\n                return new Color2(new RGBA(199, 21, 133, 1));\n              case \"midnightblue\":\n                return new Color2(new RGBA(25, 25, 112, 1));\n              case \"mintcream\":\n                return new Color2(new RGBA(245, 255, 250, 1));\n              case \"mistyrose\":\n                return new Color2(new RGBA(255, 228, 225, 1));\n              case \"moccasin\":\n                return new Color2(new RGBA(255, 228, 181, 1));\n              case \"navajowhite\":\n                return new Color2(new RGBA(255, 222, 173, 1));\n              case \"navy\":\n                return new Color2(new RGBA(0, 0, 128, 1));\n              case \"oldlace\":\n                return new Color2(new RGBA(253, 245, 230, 1));\n              case \"olive\":\n                return new Color2(new RGBA(128, 128, 0, 1));\n              case \"olivedrab\":\n                return new Color2(new RGBA(107, 142, 35, 1));\n              case \"orange\":\n                return new Color2(new RGBA(255, 165, 0, 1));\n              case \"orangered\":\n                return new Color2(new RGBA(255, 69, 0, 1));\n              case \"orchid\":\n                return new Color2(new RGBA(218, 112, 214, 1));\n              case \"palegoldenrod\":\n                return new Color2(new RGBA(238, 232, 170, 1));\n              case \"palegreen\":\n                return new Color2(new RGBA(152, 251, 152, 1));\n              case \"paleturquoise\":\n                return new Color2(new RGBA(175, 238, 238, 1));\n              case \"palevioletred\":\n                return new Color2(new RGBA(219, 112, 147, 1));\n              case \"papayawhip\":\n                return new Color2(new RGBA(255, 239, 213, 1));\n              case \"peachpuff\":\n                return new Color2(new RGBA(255, 218, 185, 1));\n              case \"peru\":\n                return new Color2(new RGBA(205, 133, 63, 1));\n              case \"pink\":\n                return new Color2(new RGBA(255, 192, 203, 1));\n              case \"plum\":\n                return new Color2(new RGBA(221, 160, 221, 1));\n              case \"powderblue\":\n                return new Color2(new RGBA(176, 224, 230, 1));\n              case \"purple\":\n                return new Color2(new RGBA(128, 0, 128, 1));\n              case \"rebeccapurple\":\n                return new Color2(new RGBA(102, 51, 153, 1));\n              case \"red\":\n                return new Color2(new RGBA(255, 0, 0, 1));\n              case \"rosybrown\":\n                return new Color2(new RGBA(188, 143, 143, 1));\n              case \"royalblue\":\n                return new Color2(new RGBA(65, 105, 225, 1));\n              case \"saddlebrown\":\n                return new Color2(new RGBA(139, 69, 19, 1));\n              case \"salmon\":\n                return new Color2(new RGBA(250, 128, 114, 1));\n              case \"sandybrown\":\n                return new Color2(new RGBA(244, 164, 96, 1));\n              case \"seagreen\":\n                return new Color2(new RGBA(46, 139, 87, 1));\n              case \"seashell\":\n                return new Color2(new RGBA(255, 245, 238, 1));\n              case \"sienna\":\n                return new Color2(new RGBA(160, 82, 45, 1));\n              case \"silver\":\n                return new Color2(new RGBA(192, 192, 192, 1));\n              case \"skyblue\":\n                return new Color2(new RGBA(135, 206, 235, 1));\n              case \"slateblue\":\n                return new Color2(new RGBA(106, 90, 205, 1));\n              case \"slategray\":\n                return new Color2(new RGBA(112, 128, 144, 1));\n              case \"slategrey\":\n                return new Color2(new RGBA(112, 128, 144, 1));\n              case \"snow\":\n                return new Color2(new RGBA(255, 250, 250, 1));\n              case \"springgreen\":\n                return new Color2(new RGBA(0, 255, 127, 1));\n              case \"steelblue\":\n                return new Color2(new RGBA(70, 130, 180, 1));\n              case \"tan\":\n                return new Color2(new RGBA(210, 180, 140, 1));\n              case \"teal\":\n                return new Color2(new RGBA(0, 128, 128, 1));\n              case \"thistle\":\n                return new Color2(new RGBA(216, 191, 216, 1));\n              case \"tomato\":\n                return new Color2(new RGBA(255, 99, 71, 1));\n              case \"turquoise\":\n                return new Color2(new RGBA(64, 224, 208, 1));\n              case \"violet\":\n                return new Color2(new RGBA(238, 130, 238, 1));\n              case \"wheat\":\n                return new Color2(new RGBA(245, 222, 179, 1));\n              case \"white\":\n                return new Color2(new RGBA(255, 255, 255, 1));\n              case \"whitesmoke\":\n                return new Color2(new RGBA(245, 245, 245, 1));\n              case \"yellow\":\n                return new Color2(new RGBA(255, 255, 0, 1));\n              case \"yellowgreen\":\n                return new Color2(new RGBA(154, 205, 50, 1));\n              default:\n                return null;\n            }\n          }\n          function parseHex(hex) {\n            const length = hex.length;\n            if (length === 0) {\n              return null;\n            }\n            if (hex.charCodeAt(0) !== 35) {\n              return null;\n            }\n            if (length === 7) {\n              const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2));\n              const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4));\n              const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6));\n              return new Color2(new RGBA(r, g, b, 1));\n            }\n            if (length === 9) {\n              const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2));\n              const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4));\n              const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6));\n              const a = 16 * _parseHexDigit(hex.charCodeAt(7)) + _parseHexDigit(hex.charCodeAt(8));\n              return new Color2(new RGBA(r, g, b, a / 255));\n            }\n            if (length === 4) {\n              const r = _parseHexDigit(hex.charCodeAt(1));\n              const g = _parseHexDigit(hex.charCodeAt(2));\n              const b = _parseHexDigit(hex.charCodeAt(3));\n              return new Color2(new RGBA(16 * r + r, 16 * g + g, 16 * b + b));\n            }\n            if (length === 5) {\n              const r = _parseHexDigit(hex.charCodeAt(1));\n              const g = _parseHexDigit(hex.charCodeAt(2));\n              const b = _parseHexDigit(hex.charCodeAt(3));\n              const a = _parseHexDigit(hex.charCodeAt(4));\n              return new Color2(new RGBA(16 * r + r, 16 * g + g, 16 * b + b, (16 * a + a) / 255));\n            }\n            return null;\n          }\n          CSS3.parseHex = parseHex;\n          function _parseHexDigit(charCode) {\n            switch (charCode) {\n              case 48:\n                return 0;\n              case 49:\n                return 1;\n              case 50:\n                return 2;\n              case 51:\n                return 3;\n              case 52:\n                return 4;\n              case 53:\n                return 5;\n              case 54:\n                return 6;\n              case 55:\n                return 7;\n              case 56:\n                return 8;\n              case 57:\n                return 9;\n              case 97:\n                return 10;\n              case 65:\n                return 10;\n              case 98:\n                return 11;\n              case 66:\n                return 11;\n              case 99:\n                return 12;\n              case 67:\n                return 12;\n              case 100:\n                return 13;\n              case 68:\n                return 13;\n              case 101:\n                return 14;\n              case 69:\n                return 14;\n              case 102:\n                return 15;\n              case 70:\n                return 15;\n            }\n            return 0;\n          }\n        })(CSS2 = Format2.CSS || (Format2.CSS = {}));\n      })(Format = Color2.Format || (Color2.Format = {}));\n    })(Color || (Color = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colorUtils.js\nfunction asCssVariableName(colorIdent) {\n  return `--vscode-${colorIdent.replace(/\\./g, \"-\")}`;\n}\nfunction asCssVariable(color) {\n  return `var(${asCssVariableName(color)})`;\n}\nfunction asCssVariableWithDefault(color, defaultCssValue) {\n  return `var(${asCssVariableName(color)}, ${defaultCssValue})`;\n}\nfunction isColorDefaults(value) {\n  return value !== null \u0026\u0026 typeof value === \"object\" \u0026\u0026 \"light\" in value \u0026\u0026 \"dark\" in value;\n}\nfunction registerColor(id, defaults, description, needsTransparency, deprecationMessage) {\n  return colorRegistry.registerColor(id, defaults, description, needsTransparency, deprecationMessage);\n}\nfunction executeTransform(transform, theme) {\n  switch (transform.op) {\n    case 0:\n      return resolveColorValue(transform.value, theme)?.darken(transform.factor);\n    case 1:\n      return resolveColorValue(transform.value, theme)?.lighten(transform.factor);\n    case 2:\n      return resolveColorValue(transform.value, theme)?.transparent(transform.factor);\n    case 7: {\n      const primaryColor = resolveColorValue(transform.color, theme) || Color.transparent;\n      const otherColor = resolveColorValue(transform.with, theme) || Color.transparent;\n      return primaryColor.mix(otherColor, transform.ratio);\n    }\n    case 3: {\n      const backgroundColor = resolveColorValue(transform.background, theme);\n      if (!backgroundColor) {\n        return resolveColorValue(transform.value, theme);\n      }\n      return resolveColorValue(transform.value, theme)?.makeOpaque(backgroundColor);\n    }\n    case 4:\n      for (const candidate of transform.values) {\n        const color = resolveColorValue(candidate, theme);\n        if (color) {\n          return color;\n        }\n      }\n      return void 0;\n    case 6:\n      return resolveColorValue(theme.defines(transform.if) ? transform.then : transform.else, theme);\n    case 5: {\n      const from = resolveColorValue(transform.value, theme);\n      if (!from) {\n        return void 0;\n      }\n      const backgroundColor = resolveColorValue(transform.background, theme);\n      if (!backgroundColor) {\n        return from.transparent(transform.factor * transform.transparency);\n      }\n      return from.isDarkerThan(backgroundColor) ? Color.getLighterColor(from, backgroundColor, transform.factor).transparent(transform.transparency) : Color.getDarkerColor(from, backgroundColor, transform.factor).transparent(transform.transparency);\n    }\n    default:\n      throw assertNever(transform);\n  }\n}\nfunction darken(colorValue, factor2) {\n  return { op: 0, value: colorValue, factor: factor2 };\n}\nfunction lighten(colorValue, factor2) {\n  return { op: 1, value: colorValue, factor: factor2 };\n}\nfunction transparent(colorValue, factor2) {\n  return { op: 2, value: colorValue, factor: factor2 };\n}\nfunction oneOf(...colorValues) {\n  return { op: 4, values: colorValues };\n}\nfunction ifDefinedThenElse(ifArg, thenArg, elseArg) {\n  return { op: 6, if: ifArg, then: thenArg, else: elseArg };\n}\nfunction lessProminent(colorValue, backgroundColorValue, factor2, transparency) {\n  return { op: 5, value: colorValue, background: backgroundColorValue, factor: factor2, transparency };\n}\nfunction resolveColorValue(colorValue, theme) {\n  if (colorValue === null) {\n    return void 0;\n  } else if (typeof colorValue === \"string\") {\n    if (colorValue[0] === \"#\") {\n      return Color.fromHex(colorValue);\n    }\n    return theme.getColor(colorValue);\n  } else if (colorValue instanceof Color) {\n    return colorValue;\n  } else if (typeof colorValue === \"object\") {\n    return executeTransform(colorValue, theme);\n  }\n  return void 0;\n}\nvar Extensions6, DEFAULT_COLOR_CONFIG_VALUE, ColorRegistry, colorRegistry, workbenchColorsSchemaId, schemaRegistry, delayer;\nvar init_colorUtils = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colorUtils.js\"() {\n    init_assert();\n    init_async();\n    init_color();\n    init_event();\n    init_jsonContributionRegistry();\n    init_platform2();\n    init_nls();\n    init_lifecycle();\n    Extensions6 = {\n      ColorContribution: \"base.contributions.colors\"\n    };\n    DEFAULT_COLOR_CONFIG_VALUE = \"default\";\n    ColorRegistry = class extends Disposable {\n      constructor() {\n        super();\n        this._onDidChangeSchema = this._register(new Emitter());\n        this.onDidChangeSchema = this._onDidChangeSchema.event;\n        this.colorSchema = { type: \"object\", properties: {} };\n        this.colorReferenceSchema = { type: \"string\", enum: [], enumDescriptions: [] };\n        this.colorsById = {};\n      }\n      registerColor(id, defaults, description, needsTransparency = false, deprecationMessage) {\n        const colorContribution = { id, description, defaults, needsTransparency, deprecationMessage };\n        this.colorsById[id] = colorContribution;\n        const propertySchema = { type: \"string\", format: \"color-hex\", defaultSnippets: [{ body: \"${1:#ff0000}\" }] };\n        if (deprecationMessage) {\n          propertySchema.deprecationMessage = deprecationMessage;\n        }\n        if (needsTransparency) {\n          propertySchema.pattern = \"^#(?:(?\u003crgba\u003e[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$\";\n          propertySchema.patternErrorMessage = localize(2e3, \"This color must be transparent or it will obscure content\");\n        }\n        this.colorSchema.properties[id] = {\n          description,\n          oneOf: [\n            propertySchema,\n            { type: \"string\", const: DEFAULT_COLOR_CONFIG_VALUE, description: localize(2001, \"Use the default color.\") }\n          ]\n        };\n        this.colorReferenceSchema.enum.push(id);\n        this.colorReferenceSchema.enumDescriptions.push(description);\n        this._onDidChangeSchema.fire();\n        return id;\n      }\n      getColors() {\n        return Object.keys(this.colorsById).map((id) =\u003e this.colorsById[id]);\n      }\n      resolveDefaultColor(id, theme) {\n        const colorDesc = this.colorsById[id];\n        if (colorDesc?.defaults) {\n          const colorValue = isColorDefaults(colorDesc.defaults) ? colorDesc.defaults[theme.type] : colorDesc.defaults;\n          return resolveColorValue(colorValue, theme);\n        }\n        return void 0;\n      }\n      getColorSchema() {\n        return this.colorSchema;\n      }\n      toString() {\n        const sorter2 = (a, b) =\u003e {\n          const cat1 = a.indexOf(\".\") === -1 ? 0 : 1;\n          const cat2 = b.indexOf(\".\") === -1 ? 0 : 1;\n          if (cat1 !== cat2) {\n            return cat1 - cat2;\n          }\n          return a.localeCompare(b);\n        };\n        return Object.keys(this.colorsById).sort(sorter2).map((k) =\u003e `- \\`${k}\\`: ${this.colorsById[k].description}`).join(\"\\n\");\n      }\n    };\n    colorRegistry = new ColorRegistry();\n    Registry.add(Extensions6.ColorContribution, colorRegistry);\n    workbenchColorsSchemaId = \"vscode://schemas/workbench-colors\";\n    schemaRegistry = Registry.as(Extensions3.JSONContribution);\n    schemaRegistry.registerSchema(workbenchColorsSchemaId, colorRegistry.getColorSchema());\n    delayer = new RunOnceScheduler(() =\u003e schemaRegistry.notifySchemaChanged(workbenchColorsSchemaId), 200);\n    colorRegistry.onDidChangeSchema(() =\u003e {\n      if (!delayer.isScheduled()) {\n        delayer.schedule();\n      }\n    });\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/baseColors.js\nvar foreground, disabledForeground, errorForeground, descriptionForeground, iconForeground, focusBorder, contrastBorder, activeContrastBorder, selectionBackground, textLinkForeground, textLinkActiveForeground, textSeparatorForeground, textPreformatForeground, textPreformatBackground, textBlockQuoteBackground, textBlockQuoteBorder, textCodeBlockBackground;\nvar init_baseColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/baseColors.js\"() {\n    init_nls();\n    init_color();\n    init_colorUtils();\n    foreground = registerColor(\"foreground\", { dark: \"#CCCCCC\", light: \"#616161\", hcDark: \"#FFFFFF\", hcLight: \"#292929\" }, localize(1752, \"Overall foreground color. This color is only used if not overridden by a component.\"));\n    disabledForeground = registerColor(\"disabledForeground\", { dark: \"#CCCCCC80\", light: \"#61616180\", hcDark: \"#A5A5A5\", hcLight: \"#7F7F7F\" }, localize(1753, \"Overall foreground for disabled elements. This color is only used if not overridden by a component.\"));\n    errorForeground = registerColor(\"errorForeground\", { dark: \"#F48771\", light: \"#A1260D\", hcDark: \"#F48771\", hcLight: \"#B5200D\" }, localize(1754, \"Overall foreground color for error messages. This color is only used if not overridden by a component.\"));\n    descriptionForeground = registerColor(\"descriptionForeground\", { light: \"#717171\", dark: transparent(foreground, 0.7), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, localize(1755, \"Foreground color for description text providing additional information, for example for a label.\"));\n    iconForeground = registerColor(\"icon.foreground\", { dark: \"#C5C5C5\", light: \"#424242\", hcDark: \"#FFFFFF\", hcLight: \"#292929\" }, localize(1756, \"The default color for icons in the workbench.\"));\n    focusBorder = registerColor(\"focusBorder\", { dark: \"#007FD4\", light: \"#0090F1\", hcDark: \"#F38518\", hcLight: \"#006BBD\" }, localize(1757, \"Overall border color for focused elements. This color is only used if not overridden by a component.\"));\n    contrastBorder = registerColor(\"contrastBorder\", { light: null, dark: null, hcDark: \"#6FC3DF\", hcLight: \"#0F4A85\" }, localize(1758, \"An extra border around elements to separate them from others for greater contrast.\"));\n    activeContrastBorder = registerColor(\"contrastActiveBorder\", { light: null, dark: null, hcDark: focusBorder, hcLight: focusBorder }, localize(1759, \"An extra border around active elements to separate them from others for greater contrast.\"));\n    selectionBackground = registerColor(\"selection.background\", null, localize(1760, \"The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.\"));\n    textLinkForeground = registerColor(\"textLink.foreground\", { light: \"#006AB1\", dark: \"#3794FF\", hcDark: \"#21A6FF\", hcLight: \"#0F4A85\" }, localize(1761, \"Foreground color for links in text.\"));\n    textLinkActiveForeground = registerColor(\"textLink.activeForeground\", { light: \"#006AB1\", dark: \"#3794FF\", hcDark: \"#21A6FF\", hcLight: \"#0F4A85\" }, localize(1762, \"Foreground color for links in text when clicked on and on mouse hover.\"));\n    textSeparatorForeground = registerColor(\"textSeparator.foreground\", { light: \"#0000002e\", dark: \"#ffffff2e\", hcDark: Color.black, hcLight: \"#292929\" }, localize(1763, \"Color for text separators.\"));\n    textPreformatForeground = registerColor(\"textPreformat.foreground\", { light: \"#A31515\", dark: \"#D7BA7D\", hcDark: \"#000000\", hcLight: \"#FFFFFF\" }, localize(1764, \"Foreground color for preformatted text segments.\"));\n    textPreformatBackground = registerColor(\"textPreformat.background\", { light: \"#0000001A\", dark: \"#FFFFFF1A\", hcDark: \"#FFFFFF\", hcLight: \"#09345f\" }, localize(1765, \"Background color for preformatted text segments.\"));\n    textBlockQuoteBackground = registerColor(\"textBlockQuote.background\", { light: \"#f2f2f2\", dark: \"#222222\", hcDark: null, hcLight: \"#F2F2F2\" }, localize(1766, \"Background color for block quotes in text.\"));\n    textBlockQuoteBorder = registerColor(\"textBlockQuote.border\", { light: \"#007acc80\", dark: \"#007acc80\", hcDark: Color.white, hcLight: \"#292929\" }, localize(1767, \"Border color for block quotes in text.\"));\n    textCodeBlockBackground = registerColor(\"textCodeBlock.background\", { light: \"#dcdcdc66\", dark: \"#0a0a0a66\", hcDark: Color.black, hcLight: \"#F2F2F2\" }, localize(1768, \"Background color for code blocks in text.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/miscColors.js\nvar sashHoverBorder, badgeBackground, badgeForeground, activityWarningBadgeForeground, activityWarningBadgeBackground, activityErrorBadgeForeground, activityErrorBadgeBackground, scrollbarShadow, scrollbarSliderBackground, scrollbarSliderHoverBackground, scrollbarSliderActiveBackground, progressBarBackground, chartLine, chartAxis, chartGuide;\nvar init_miscColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/miscColors.js\"() {\n    init_nls();\n    init_color();\n    init_colorUtils();\n    init_baseColors();\n    sashHoverBorder = registerColor(\"sash.hoverBorder\", focusBorder, localize(1973, \"Border color of active sashes.\"));\n    badgeBackground = registerColor(\"badge.background\", { dark: \"#4D4D4D\", light: \"#C4C4C4\", hcDark: Color.black, hcLight: \"#0F4A85\" }, localize(1974, \"Badge background color. Badges are small information labels, e.g. for search results count.\"));\n    badgeForeground = registerColor(\"badge.foreground\", { dark: Color.white, light: \"#333\", hcDark: Color.white, hcLight: Color.white }, localize(1975, \"Badge foreground color. Badges are small information labels, e.g. for search results count.\"));\n    activityWarningBadgeForeground = registerColor(\"activityWarningBadge.foreground\", { dark: Color.black.lighten(0.2), light: Color.white, hcDark: null, hcLight: Color.black.lighten(0.2) }, localize(1976, \"Foreground color of the warning activity badge\"));\n    activityWarningBadgeBackground = registerColor(\"activityWarningBadge.background\", { dark: \"#CCA700\", light: \"#BF8803\", hcDark: null, hcLight: \"#CCA700\" }, localize(1977, \"Background color of the warning activity badge\"));\n    activityErrorBadgeForeground = registerColor(\"activityErrorBadge.foreground\", { dark: Color.black.lighten(0.2), light: Color.white, hcDark: null, hcLight: Color.black.lighten(0.2) }, localize(1978, \"Foreground color of the error activity badge\"));\n    activityErrorBadgeBackground = registerColor(\"activityErrorBadge.background\", { dark: \"#F14C4C\", light: \"#E51400\", hcDark: null, hcLight: \"#F14C4C\" }, localize(1979, \"Background color of the error activity badge\"));\n    scrollbarShadow = registerColor(\"scrollbar.shadow\", { dark: \"#000000\", light: \"#DDDDDD\", hcDark: null, hcLight: null }, localize(1980, \"Scrollbar shadow to indicate that the view is scrolled.\"));\n    scrollbarSliderBackground = registerColor(\"scrollbarSlider.background\", { dark: Color.fromHex(\"#797979\").transparent(0.4), light: Color.fromHex(\"#646464\").transparent(0.4), hcDark: transparent(contrastBorder, 0.6), hcLight: transparent(contrastBorder, 0.4) }, localize(1981, \"Scrollbar slider background color.\"));\n    scrollbarSliderHoverBackground = registerColor(\"scrollbarSlider.hoverBackground\", { dark: Color.fromHex(\"#646464\").transparent(0.7), light: Color.fromHex(\"#646464\").transparent(0.7), hcDark: transparent(contrastBorder, 0.8), hcLight: transparent(contrastBorder, 0.8) }, localize(1982, \"Scrollbar slider background color when hovering.\"));\n    scrollbarSliderActiveBackground = registerColor(\"scrollbarSlider.activeBackground\", { dark: Color.fromHex(\"#BFBFBF\").transparent(0.4), light: Color.fromHex(\"#000000\").transparent(0.6), hcDark: contrastBorder, hcLight: contrastBorder }, localize(1983, \"Scrollbar slider background color when clicked on.\"));\n    progressBarBackground = registerColor(\"progressBar.background\", { dark: Color.fromHex(\"#0E70C0\"), light: Color.fromHex(\"#0E70C0\"), hcDark: contrastBorder, hcLight: contrastBorder }, localize(1984, \"Background color of the progress bar that can show for long running operations.\"));\n    chartLine = registerColor(\"chart.line\", { dark: \"#236B8E\", light: \"#236B8E\", hcDark: \"#236B8E\", hcLight: \"#236B8E\" }, localize(1985, \"Line color for the chart.\"));\n    chartAxis = registerColor(\"chart.axis\", { dark: Color.fromHex(\"#BFBFBF\").transparent(0.4), light: Color.fromHex(\"#000000\").transparent(0.6), hcDark: contrastBorder, hcLight: contrastBorder }, localize(1986, \"Axis color for the chart.\"));\n    chartGuide = registerColor(\"chart.guide\", { dark: Color.fromHex(\"#BFBFBF\").transparent(0.2), light: Color.fromHex(\"#000000\").transparent(0.2), hcDark: contrastBorder, hcLight: contrastBorder }, localize(1987, \"Guide line for the chart.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/editorColors.js\nvar editorBackground, editorForeground, editorStickyScrollBackground, editorStickyScrollGutterBackground, editorStickyScrollHoverBackground, editorStickyScrollBorder, editorStickyScrollShadow, editorWidgetBackground, editorWidgetForeground, editorWidgetBorder, editorWidgetResizeBorder, editorErrorBackground, editorErrorForeground, editorErrorBorder, editorWarningBackground, editorWarningForeground, editorWarningBorder, editorInfoBackground, editorInfoForeground, editorInfoBorder, editorHintForeground, editorHintBorder, editorActiveLinkForeground, editorSelectionBackground, editorSelectionForeground, editorInactiveSelection, editorSelectionHighlight, editorSelectionHighlightBorder, editorCompositionBorder, editorFindMatch, editorFindMatchForeground, editorFindMatchHighlight, editorFindMatchHighlightForeground, editorFindRangeHighlight, editorFindMatchBorder, editorFindMatchHighlightBorder, editorFindRangeHighlightBorder, editorHoverHighlight, editorHoverBackground, editorHoverForeground, editorHoverBorder, editorHoverStatusBarBackground, editorInlayHintForeground, editorInlayHintBackground, editorInlayHintTypeForeground, editorInlayHintTypeBackground, editorInlayHintParameterForeground, editorInlayHintParameterBackground, editorLightBulbForeground, editorLightBulbAutoFixForeground, editorLightBulbAiForeground, snippetTabstopHighlightBackground, snippetTabstopHighlightBorder, snippetFinalTabstopHighlightBackground, snippetFinalTabstopHighlightBorder, defaultInsertColor, defaultRemoveColor, diffInserted, diffRemoved, diffInsertedLine, diffRemovedLine, diffInsertedLineGutter, diffRemovedLineGutter, diffOverviewRulerInserted, diffOverviewRulerRemoved, diffInsertedOutline, diffRemovedOutline, diffBorder, diffDiagonalFill, diffUnchangedRegionBackground, diffUnchangedRegionForeground, diffUnchangedTextBackground, widgetShadow, widgetBorder, toolbarHoverBackground, toolbarHoverOutline, toolbarActiveBackground, breadcrumbsForeground, breadcrumbsBackground, breadcrumbsFocusForeground, breadcrumbsActiveSelectionForeground, breadcrumbsPickerBackground, headerTransparency, currentBaseColor, incomingBaseColor, commonBaseColor, contentTransparency, rulerTransparency, mergeCurrentHeaderBackground, mergeCurrentContentBackground, mergeIncomingHeaderBackground, mergeIncomingContentBackground, mergeCommonHeaderBackground, mergeCommonContentBackground, mergeBorder, overviewRulerCurrentContentForeground, overviewRulerIncomingContentForeground, overviewRulerCommonContentForeground, overviewRulerFindMatchForeground, overviewRulerSelectionHighlightForeground, problemsErrorIconForeground, problemsWarningIconForeground, problemsInfoIconForeground;\nvar init_editorColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/editorColors.js\"() {\n    init_nls();\n    init_color();\n    init_colorUtils();\n    init_baseColors();\n    init_miscColors();\n    editorBackground = registerColor(\"editor.background\", { light: \"#ffffff\", dark: \"#1E1E1E\", hcDark: Color.black, hcLight: Color.white }, localize(1777, \"Editor background color.\"));\n    editorForeground = registerColor(\"editor.foreground\", { light: \"#333333\", dark: \"#BBBBBB\", hcDark: Color.white, hcLight: foreground }, localize(1778, \"Editor default foreground color.\"));\n    editorStickyScrollBackground = registerColor(\"editorStickyScroll.background\", editorBackground, localize(1779, \"Background color of sticky scroll in the editor\"));\n    editorStickyScrollGutterBackground = registerColor(\"editorStickyScrollGutter.background\", editorBackground, localize(1780, \"Background color of the gutter part of sticky scroll in the editor\"));\n    editorStickyScrollHoverBackground = registerColor(\"editorStickyScrollHover.background\", { dark: \"#2A2D2E\", light: \"#F0F0F0\", hcDark: null, hcLight: Color.fromHex(\"#0F4A85\").transparent(0.1) }, localize(1781, \"Background color of sticky scroll on hover in the editor\"));\n    editorStickyScrollBorder = registerColor(\"editorStickyScroll.border\", { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1782, \"Border color of sticky scroll in the editor\"));\n    editorStickyScrollShadow = registerColor(\"editorStickyScroll.shadow\", scrollbarShadow, localize(1783, \" Shadow color of sticky scroll in the editor\"));\n    editorWidgetBackground = registerColor(\"editorWidget.background\", { dark: \"#252526\", light: \"#F3F3F3\", hcDark: \"#0C141F\", hcLight: Color.white }, localize(1784, \"Background color of editor widgets, such as find/replace.\"));\n    editorWidgetForeground = registerColor(\"editorWidget.foreground\", foreground, localize(1785, \"Foreground color of editor widgets, such as find/replace.\"));\n    editorWidgetBorder = registerColor(\"editorWidget.border\", { dark: \"#454545\", light: \"#C8C8C8\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(1786, \"Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.\"));\n    editorWidgetResizeBorder = registerColor(\"editorWidget.resizeBorder\", null, localize(1787, \"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.\"));\n    editorErrorBackground = registerColor(\"editorError.background\", null, localize(1788, \"Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorErrorForeground = registerColor(\"editorError.foreground\", { dark: \"#F14C4C\", light: \"#E51400\", hcDark: \"#F48771\", hcLight: \"#B5200D\" }, localize(1789, \"Foreground color of error squigglies in the editor.\"));\n    editorErrorBorder = registerColor(\"editorError.border\", { dark: null, light: null, hcDark: Color.fromHex(\"#E47777\").transparent(0.8), hcLight: \"#B5200D\" }, localize(1790, \"If set, color of double underlines for errors in the editor.\"));\n    editorWarningBackground = registerColor(\"editorWarning.background\", null, localize(1791, \"Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorWarningForeground = registerColor(\"editorWarning.foreground\", { dark: \"#CCA700\", light: \"#BF8803\", hcDark: \"#FFD370\", hcLight: \"#895503\" }, localize(1792, \"Foreground color of warning squigglies in the editor.\"));\n    editorWarningBorder = registerColor(\"editorWarning.border\", { dark: null, light: null, hcDark: Color.fromHex(\"#FFCC00\").transparent(0.8), hcLight: Color.fromHex(\"#FFCC00\").transparent(0.8) }, localize(1793, \"If set, color of double underlines for warnings in the editor.\"));\n    editorInfoBackground = registerColor(\"editorInfo.background\", null, localize(1794, \"Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorInfoForeground = registerColor(\"editorInfo.foreground\", { dark: \"#3794FF\", light: \"#1a85ff\", hcDark: \"#3794FF\", hcLight: \"#1a85ff\" }, localize(1795, \"Foreground color of info squigglies in the editor.\"));\n    editorInfoBorder = registerColor(\"editorInfo.border\", { dark: null, light: null, hcDark: Color.fromHex(\"#3794FF\").transparent(0.8), hcLight: \"#292929\" }, localize(1796, \"If set, color of double underlines for infos in the editor.\"));\n    editorHintForeground = registerColor(\"editorHint.foreground\", { dark: Color.fromHex(\"#eeeeee\").transparent(0.7), light: \"#6c6c6c\", hcDark: null, hcLight: null }, localize(1797, \"Foreground color of hint squigglies in the editor.\"));\n    editorHintBorder = registerColor(\"editorHint.border\", { dark: null, light: null, hcDark: Color.fromHex(\"#eeeeee\").transparent(0.8), hcLight: \"#292929\" }, localize(1798, \"If set, color of double underlines for hints in the editor.\"));\n    editorActiveLinkForeground = registerColor(\"editorLink.activeForeground\", { dark: \"#4E94CE\", light: Color.blue, hcDark: Color.cyan, hcLight: \"#292929\" }, localize(1799, \"Color of active links.\"));\n    editorSelectionBackground = registerColor(\"editor.selectionBackground\", { light: \"#ADD6FF\", dark: \"#264F78\", hcDark: \"#f3f518\", hcLight: \"#0F4A85\" }, localize(1800, \"Color of the editor selection.\"));\n    editorSelectionForeground = registerColor(\"editor.selectionForeground\", { light: null, dark: null, hcDark: \"#000000\", hcLight: Color.white }, localize(1801, \"Color of the selected text for high contrast.\"));\n    editorInactiveSelection = registerColor(\"editor.inactiveSelectionBackground\", { light: transparent(editorSelectionBackground, 0.5), dark: transparent(editorSelectionBackground, 0.5), hcDark: transparent(editorSelectionBackground, 0.7), hcLight: transparent(editorSelectionBackground, 0.5) }, localize(1802, \"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorSelectionHighlight = registerColor(\"editor.selectionHighlightBackground\", { light: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), dark: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), hcDark: null, hcLight: null }, localize(1803, \"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorSelectionHighlightBorder = registerColor(\"editor.selectionHighlightBorder\", { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1804, \"Border color for regions with the same content as the selection.\"));\n    editorCompositionBorder = registerColor(\"editor.compositionBorder\", { light: \"#000000\", dark: \"#ffffff\", hcLight: \"#000000\", hcDark: \"#ffffff\" }, localize(1805, \"The border color for an IME composition.\"));\n    editorFindMatch = registerColor(\"editor.findMatchBackground\", { light: \"#A8AC94\", dark: \"#515C6A\", hcDark: null, hcLight: null }, localize(1806, \"Color of the current search match.\"));\n    editorFindMatchForeground = registerColor(\"editor.findMatchForeground\", null, localize(1807, \"Text color of the current search match.\"));\n    editorFindMatchHighlight = registerColor(\"editor.findMatchHighlightBackground\", { light: \"#EA5C0055\", dark: \"#EA5C0055\", hcDark: null, hcLight: null }, localize(1808, \"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorFindMatchHighlightForeground = registerColor(\"editor.findMatchHighlightForeground\", null, localize(1809, \"Foreground color of the other search matches.\"), true);\n    editorFindRangeHighlight = registerColor(\"editor.findRangeHighlightBackground\", { dark: \"#3a3d4166\", light: \"#b4b4b44d\", hcDark: null, hcLight: null }, localize(1810, \"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorFindMatchBorder = registerColor(\"editor.findMatchBorder\", { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1811, \"Border color of the current search match.\"));\n    editorFindMatchHighlightBorder = registerColor(\"editor.findMatchHighlightBorder\", { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1812, \"Border color of the other search matches.\"));\n    editorFindRangeHighlightBorder = registerColor(\"editor.findRangeHighlightBorder\", { dark: null, light: null, hcDark: transparent(activeContrastBorder, 0.4), hcLight: transparent(activeContrastBorder, 0.4) }, localize(1813, \"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorHoverHighlight = registerColor(\"editor.hoverHighlightBackground\", { light: \"#ADD6FF26\", dark: \"#264f7840\", hcDark: \"#ADD6FF26\", hcLight: null }, localize(1814, \"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorHoverBackground = registerColor(\"editorHoverWidget.background\", editorWidgetBackground, localize(1815, \"Background color of the editor hover.\"));\n    editorHoverForeground = registerColor(\"editorHoverWidget.foreground\", editorWidgetForeground, localize(1816, \"Foreground color of the editor hover.\"));\n    editorHoverBorder = registerColor(\"editorHoverWidget.border\", editorWidgetBorder, localize(1817, \"Border color of the editor hover.\"));\n    editorHoverStatusBarBackground = registerColor(\"editorHoverWidget.statusBarBackground\", { dark: lighten(editorHoverBackground, 0.2), light: darken(editorHoverBackground, 0.05), hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, localize(1818, \"Background color of the editor hover status bar.\"));\n    editorInlayHintForeground = registerColor(\"editorInlayHint.foreground\", { dark: \"#969696\", light: \"#969696\", hcDark: Color.white, hcLight: Color.black }, localize(1819, \"Foreground color of inline hints\"));\n    editorInlayHintBackground = registerColor(\"editorInlayHint.background\", { dark: transparent(badgeBackground, 0.1), light: transparent(badgeBackground, 0.1), hcDark: transparent(Color.white, 0.1), hcLight: transparent(badgeBackground, 0.1) }, localize(1820, \"Background color of inline hints\"));\n    editorInlayHintTypeForeground = registerColor(\"editorInlayHint.typeForeground\", editorInlayHintForeground, localize(1821, \"Foreground color of inline hints for types\"));\n    editorInlayHintTypeBackground = registerColor(\"editorInlayHint.typeBackground\", editorInlayHintBackground, localize(1822, \"Background color of inline hints for types\"));\n    editorInlayHintParameterForeground = registerColor(\"editorInlayHint.parameterForeground\", editorInlayHintForeground, localize(1823, \"Foreground color of inline hints for parameters\"));\n    editorInlayHintParameterBackground = registerColor(\"editorInlayHint.parameterBackground\", editorInlayHintBackground, localize(1824, \"Background color of inline hints for parameters\"));\n    editorLightBulbForeground = registerColor(\"editorLightBulb.foreground\", { dark: \"#FFCC00\", light: \"#DDB100\", hcDark: \"#FFCC00\", hcLight: \"#007ACC\" }, localize(1825, \"The color used for the lightbulb actions icon.\"));\n    editorLightBulbAutoFixForeground = registerColor(\"editorLightBulbAutoFix.foreground\", { dark: \"#75BEFF\", light: \"#007ACC\", hcDark: \"#75BEFF\", hcLight: \"#007ACC\" }, localize(1826, \"The color used for the lightbulb auto fix actions icon.\"));\n    editorLightBulbAiForeground = registerColor(\"editorLightBulbAi.foreground\", editorLightBulbForeground, localize(1827, \"The color used for the lightbulb AI icon.\"));\n    snippetTabstopHighlightBackground = registerColor(\"editor.snippetTabstopHighlightBackground\", { dark: new Color(new RGBA(124, 124, 124, 0.3)), light: new Color(new RGBA(10, 50, 100, 0.2)), hcDark: new Color(new RGBA(124, 124, 124, 0.3)), hcLight: new Color(new RGBA(10, 50, 100, 0.2)) }, localize(1828, \"Highlight background color of a snippet tabstop.\"));\n    snippetTabstopHighlightBorder = registerColor(\"editor.snippetTabstopHighlightBorder\", null, localize(1829, \"Highlight border color of a snippet tabstop.\"));\n    snippetFinalTabstopHighlightBackground = registerColor(\"editor.snippetFinalTabstopHighlightBackground\", null, localize(1830, \"Highlight background color of the final tabstop of a snippet.\"));\n    snippetFinalTabstopHighlightBorder = registerColor(\"editor.snippetFinalTabstopHighlightBorder\", { dark: \"#525252\", light: new Color(new RGBA(10, 50, 100, 0.5)), hcDark: \"#525252\", hcLight: \"#292929\" }, localize(1831, \"Highlight border color of the final tabstop of a snippet.\"));\n    defaultInsertColor = new Color(new RGBA(155, 185, 85, 0.2));\n    defaultRemoveColor = new Color(new RGBA(255, 0, 0, 0.2));\n    diffInserted = registerColor(\"diffEditor.insertedTextBackground\", { dark: \"#9ccc2c33\", light: \"#9ccc2c40\", hcDark: null, hcLight: null }, localize(1832, \"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    diffRemoved = registerColor(\"diffEditor.removedTextBackground\", { dark: \"#ff000033\", light: \"#ff000033\", hcDark: null, hcLight: null }, localize(1833, \"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    diffInsertedLine = registerColor(\"diffEditor.insertedLineBackground\", { dark: defaultInsertColor, light: defaultInsertColor, hcDark: null, hcLight: null }, localize(1834, \"Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    diffRemovedLine = registerColor(\"diffEditor.removedLineBackground\", { dark: defaultRemoveColor, light: defaultRemoveColor, hcDark: null, hcLight: null }, localize(1835, \"Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    diffInsertedLineGutter = registerColor(\"diffEditorGutter.insertedLineBackground\", null, localize(1836, \"Background color for the margin where lines got inserted.\"));\n    diffRemovedLineGutter = registerColor(\"diffEditorGutter.removedLineBackground\", null, localize(1837, \"Background color for the margin where lines got removed.\"));\n    diffOverviewRulerInserted = registerColor(\"diffEditorOverview.insertedForeground\", null, localize(1838, \"Diff overview ruler foreground for inserted content.\"));\n    diffOverviewRulerRemoved = registerColor(\"diffEditorOverview.removedForeground\", null, localize(1839, \"Diff overview ruler foreground for removed content.\"));\n    diffInsertedOutline = registerColor(\"diffEditor.insertedTextBorder\", { dark: null, light: null, hcDark: \"#33ff2eff\", hcLight: \"#374E06\" }, localize(1840, \"Outline color for the text that got inserted.\"));\n    diffRemovedOutline = registerColor(\"diffEditor.removedTextBorder\", { dark: null, light: null, hcDark: \"#FF008F\", hcLight: \"#AD0707\" }, localize(1841, \"Outline color for text that got removed.\"));\n    diffBorder = registerColor(\"diffEditor.border\", { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1842, \"Border color between the two text editors.\"));\n    diffDiagonalFill = registerColor(\"diffEditor.diagonalFill\", { dark: \"#cccccc33\", light: \"#22222233\", hcDark: null, hcLight: null }, localize(1843, \"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.\"));\n    diffUnchangedRegionBackground = registerColor(\"diffEditor.unchangedRegionBackground\", \"sideBar.background\", localize(1844, \"The background color of unchanged blocks in the diff editor.\"));\n    diffUnchangedRegionForeground = registerColor(\"diffEditor.unchangedRegionForeground\", \"foreground\", localize(1845, \"The foreground color of unchanged blocks in the diff editor.\"));\n    diffUnchangedTextBackground = registerColor(\"diffEditor.unchangedCodeBackground\", { dark: \"#74747429\", light: \"#b8b8b829\", hcDark: null, hcLight: null }, localize(1846, \"The background color of unchanged code in the diff editor.\"));\n    widgetShadow = registerColor(\"widget.shadow\", { dark: transparent(Color.black, 0.36), light: transparent(Color.black, 0.16), hcDark: null, hcLight: null }, localize(1847, \"Shadow color of widgets such as find/replace inside the editor.\"));\n    widgetBorder = registerColor(\"widget.border\", { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1848, \"Border color of widgets such as find/replace inside the editor.\"));\n    toolbarHoverBackground = registerColor(\"toolbar.hoverBackground\", { dark: \"#5a5d5e50\", light: \"#b8b8b850\", hcDark: null, hcLight: null }, localize(1849, \"Toolbar background when hovering over actions using the mouse\"));\n    toolbarHoverOutline = registerColor(\"toolbar.hoverOutline\", { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1850, \"Toolbar outline when hovering over actions using the mouse\"));\n    toolbarActiveBackground = registerColor(\"toolbar.activeBackground\", { dark: lighten(toolbarHoverBackground, 0.1), light: darken(toolbarHoverBackground, 0.1), hcDark: null, hcLight: null }, localize(1851, \"Toolbar background when holding the mouse over actions\"));\n    breadcrumbsForeground = registerColor(\"breadcrumb.foreground\", transparent(foreground, 0.8), localize(1852, \"Color of focused breadcrumb items.\"));\n    breadcrumbsBackground = registerColor(\"breadcrumb.background\", editorBackground, localize(1853, \"Background color of breadcrumb items.\"));\n    breadcrumbsFocusForeground = registerColor(\"breadcrumb.focusForeground\", { light: darken(foreground, 0.2), dark: lighten(foreground, 0.1), hcDark: lighten(foreground, 0.1), hcLight: lighten(foreground, 0.1) }, localize(1854, \"Color of focused breadcrumb items.\"));\n    breadcrumbsActiveSelectionForeground = registerColor(\"breadcrumb.activeSelectionForeground\", { light: darken(foreground, 0.2), dark: lighten(foreground, 0.1), hcDark: lighten(foreground, 0.1), hcLight: lighten(foreground, 0.1) }, localize(1855, \"Color of selected breadcrumb items.\"));\n    breadcrumbsPickerBackground = registerColor(\"breadcrumbPicker.background\", editorWidgetBackground, localize(1856, \"Background color of breadcrumb item picker.\"));\n    headerTransparency = 0.5;\n    currentBaseColor = Color.fromHex(\"#40C8AE\").transparent(headerTransparency);\n    incomingBaseColor = Color.fromHex(\"#40A6FF\").transparent(headerTransparency);\n    commonBaseColor = Color.fromHex(\"#606060\").transparent(0.4);\n    contentTransparency = 0.4;\n    rulerTransparency = 1;\n    mergeCurrentHeaderBackground = registerColor(\"merge.currentHeaderBackground\", { dark: currentBaseColor, light: currentBaseColor, hcDark: null, hcLight: null }, localize(1857, \"Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    mergeCurrentContentBackground = registerColor(\"merge.currentContentBackground\", transparent(mergeCurrentHeaderBackground, contentTransparency), localize(1858, \"Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    mergeIncomingHeaderBackground = registerColor(\"merge.incomingHeaderBackground\", { dark: incomingBaseColor, light: incomingBaseColor, hcDark: null, hcLight: null }, localize(1859, \"Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    mergeIncomingContentBackground = registerColor(\"merge.incomingContentBackground\", transparent(mergeIncomingHeaderBackground, contentTransparency), localize(1860, \"Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    mergeCommonHeaderBackground = registerColor(\"merge.commonHeaderBackground\", { dark: commonBaseColor, light: commonBaseColor, hcDark: null, hcLight: null }, localize(1861, \"Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    mergeCommonContentBackground = registerColor(\"merge.commonContentBackground\", transparent(mergeCommonHeaderBackground, contentTransparency), localize(1862, \"Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    mergeBorder = registerColor(\"merge.border\", { dark: null, light: null, hcDark: \"#C3DF6F\", hcLight: \"#007ACC\" }, localize(1863, \"Border color on headers and the splitter in inline merge-conflicts.\"));\n    overviewRulerCurrentContentForeground = registerColor(\"editorOverviewRuler.currentContentForeground\", { dark: transparent(mergeCurrentHeaderBackground, rulerTransparency), light: transparent(mergeCurrentHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, localize(1864, \"Current overview ruler foreground for inline merge-conflicts.\"));\n    overviewRulerIncomingContentForeground = registerColor(\"editorOverviewRuler.incomingContentForeground\", { dark: transparent(mergeIncomingHeaderBackground, rulerTransparency), light: transparent(mergeIncomingHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, localize(1865, \"Incoming overview ruler foreground for inline merge-conflicts.\"));\n    overviewRulerCommonContentForeground = registerColor(\"editorOverviewRuler.commonContentForeground\", { dark: transparent(mergeCommonHeaderBackground, rulerTransparency), light: transparent(mergeCommonHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, localize(1866, \"Common ancestor overview ruler foreground for inline merge-conflicts.\"));\n    overviewRulerFindMatchForeground = registerColor(\"editorOverviewRuler.findMatchForeground\", { dark: \"#d186167e\", light: \"#d186167e\", hcDark: \"#AB5A00\", hcLight: \"#AB5A00\" }, localize(1867, \"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    overviewRulerSelectionHighlightForeground = registerColor(\"editorOverviewRuler.selectionHighlightForeground\", \"#A0A0A0CC\", localize(1868, \"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    problemsErrorIconForeground = registerColor(\"problemsErrorIcon.foreground\", editorErrorForeground, localize(1869, \"The color used for the problems error icon.\"));\n    problemsWarningIconForeground = registerColor(\"problemsWarningIcon.foreground\", editorWarningForeground, localize(1870, \"The color used for the problems warning icon.\"));\n    problemsInfoIconForeground = registerColor(\"problemsInfoIcon.foreground\", editorInfoForeground, localize(1871, \"The color used for the problems info icon.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/minimapColors.js\nvar minimapFindMatch, minimapSelectionOccurrenceHighlight, minimapSelection, minimapInfo, minimapWarning, minimapError, minimapBackground, minimapForegroundOpacity, minimapSliderBackground, minimapSliderHoverBackground, minimapSliderActiveBackground;\nvar init_minimapColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/minimapColors.js\"() {\n    init_nls();\n    init_color();\n    init_colorUtils();\n    init_editorColors();\n    init_miscColors();\n    minimapFindMatch = registerColor(\"minimap.findMatchHighlight\", { light: \"#d18616\", dark: \"#d18616\", hcDark: \"#AB5A00\", hcLight: \"#0F4A85\" }, localize(1962, \"Minimap marker color for find matches.\"), true);\n    minimapSelectionOccurrenceHighlight = registerColor(\"minimap.selectionOccurrenceHighlight\", { light: \"#c9c9c9\", dark: \"#676767\", hcDark: \"#ffffff\", hcLight: \"#0F4A85\" }, localize(1963, \"Minimap marker color for repeating editor selections.\"), true);\n    minimapSelection = registerColor(\"minimap.selectionHighlight\", { light: \"#ADD6FF\", dark: \"#264F78\", hcDark: \"#ffffff\", hcLight: \"#0F4A85\" }, localize(1964, \"Minimap marker color for the editor selection.\"), true);\n    minimapInfo = registerColor(\"minimap.infoHighlight\", { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoBorder, hcLight: editorInfoBorder }, localize(1965, \"Minimap marker color for infos.\"));\n    minimapWarning = registerColor(\"minimap.warningHighlight\", { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningBorder, hcLight: editorWarningBorder }, localize(1966, \"Minimap marker color for warnings.\"));\n    minimapError = registerColor(\"minimap.errorHighlight\", { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: \"#B5200D\" }, localize(1967, \"Minimap marker color for errors.\"));\n    minimapBackground = registerColor(\"minimap.background\", null, localize(1968, \"Minimap background color.\"));\n    minimapForegroundOpacity = registerColor(\"minimap.foregroundOpacity\", Color.fromHex(\"#000f\"), localize(1969, 'Opacity of foreground elements rendered in the minimap. For example, \"#000000c0\" will render the elements with 75% opacity.'));\n    minimapSliderBackground = registerColor(\"minimapSlider.background\", transparent(scrollbarSliderBackground, 0.5), localize(1970, \"Minimap slider background color.\"));\n    minimapSliderHoverBackground = registerColor(\"minimapSlider.hoverBackground\", transparent(scrollbarSliderHoverBackground, 0.5), localize(1971, \"Minimap slider background color when hovering.\"));\n    minimapSliderActiveBackground = registerColor(\"minimapSlider.activeBackground\", transparent(scrollbarSliderActiveBackground, 0.5), localize(1972, \"Minimap slider background color when clicked on.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/chartsColors.js\nvar chartsForeground, chartsLines, chartsRed, chartsBlue, chartsYellow, chartsOrange, chartsGreen, chartsPurple;\nvar init_chartsColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/chartsColors.js\"() {\n    init_nls();\n    init_colorUtils();\n    init_baseColors();\n    init_editorColors();\n    init_minimapColors();\n    chartsForeground = registerColor(\"charts.foreground\", foreground, localize(1769, \"The foreground color used in charts.\"));\n    chartsLines = registerColor(\"charts.lines\", transparent(foreground, 0.5), localize(1770, \"The color used for horizontal lines in charts.\"));\n    chartsRed = registerColor(\"charts.red\", editorErrorForeground, localize(1771, \"The red color used in chart visualizations.\"));\n    chartsBlue = registerColor(\"charts.blue\", editorInfoForeground, localize(1772, \"The blue color used in chart visualizations.\"));\n    chartsYellow = registerColor(\"charts.yellow\", editorWarningForeground, localize(1773, \"The yellow color used in chart visualizations.\"));\n    chartsOrange = registerColor(\"charts.orange\", minimapFindMatch, localize(1774, \"The orange color used in chart visualizations.\"));\n    chartsGreen = registerColor(\"charts.green\", { dark: \"#89D185\", light: \"#388A34\", hcDark: \"#89D185\", hcLight: \"#374e06\" }, localize(1775, \"The green color used in chart visualizations.\"));\n    chartsPurple = registerColor(\"charts.purple\", { dark: \"#B180D7\", light: \"#652D90\", hcDark: \"#B180D7\", hcLight: \"#652D90\" }, localize(1776, \"The purple color used in chart visualizations.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/inputColors.js\nvar inputBackground, inputForeground, inputBorder, inputActiveOptionBorder, inputActiveOptionHoverBackground, inputActiveOptionBackground, inputActiveOptionForeground, inputPlaceholderForeground, inputValidationInfoBackground, inputValidationInfoForeground, inputValidationInfoBorder, inputValidationWarningBackground, inputValidationWarningForeground, inputValidationWarningBorder, inputValidationErrorBackground, inputValidationErrorForeground, inputValidationErrorBorder, selectBackground, selectListBackground, selectForeground, selectBorder, buttonForeground, buttonSeparator, buttonBackground, buttonHoverBackground, buttonBorder, buttonSecondaryForeground, buttonSecondaryBackground, buttonSecondaryHoverBackground, radioActiveForeground, radioActiveBackground, radioActiveBorder, radioInactiveForeground, radioInactiveBackground, radioInactiveBorder, radioInactiveHoverBackground, checkboxBackground, checkboxSelectBackground, checkboxForeground, checkboxBorder, checkboxSelectBorder, checkboxDisabledBackground, checkboxDisabledForeground, keybindingLabelBackground, keybindingLabelForeground, keybindingLabelBorder, keybindingLabelBottomBorder;\nvar init_inputColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/inputColors.js\"() {\n    init_nls();\n    init_color();\n    init_colorUtils();\n    init_baseColors();\n    init_editorColors();\n    inputBackground = registerColor(\"input.background\", { dark: \"#3C3C3C\", light: Color.white, hcDark: Color.black, hcLight: Color.white }, localize(1872, \"Input box background.\"));\n    inputForeground = registerColor(\"input.foreground\", foreground, localize(1873, \"Input box foreground.\"));\n    inputBorder = registerColor(\"input.border\", { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1874, \"Input box border.\"));\n    inputActiveOptionBorder = registerColor(\"inputOption.activeBorder\", { dark: \"#007ACC\", light: \"#007ACC\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(1875, \"Border color of activated options in input fields.\"));\n    inputActiveOptionHoverBackground = registerColor(\"inputOption.hoverBackground\", { dark: \"#5a5d5e80\", light: \"#b8b8b850\", hcDark: null, hcLight: null }, localize(1876, \"Background color of activated options in input fields.\"));\n    inputActiveOptionBackground = registerColor(\"inputOption.activeBackground\", { dark: transparent(focusBorder, 0.4), light: transparent(focusBorder, 0.2), hcDark: Color.transparent, hcLight: Color.transparent }, localize(1877, \"Background hover color of options in input fields.\"));\n    inputActiveOptionForeground = registerColor(\"inputOption.activeForeground\", { dark: Color.white, light: Color.black, hcDark: foreground, hcLight: foreground }, localize(1878, \"Foreground color of activated options in input fields.\"));\n    inputPlaceholderForeground = registerColor(\"input.placeholderForeground\", { light: transparent(foreground, 0.5), dark: transparent(foreground, 0.5), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, localize(1879, \"Input box foreground color for placeholder text.\"));\n    inputValidationInfoBackground = registerColor(\"inputValidation.infoBackground\", { dark: \"#063B49\", light: \"#D6ECF2\", hcDark: Color.black, hcLight: Color.white }, localize(1880, \"Input validation background color for information severity.\"));\n    inputValidationInfoForeground = registerColor(\"inputValidation.infoForeground\", { dark: null, light: null, hcDark: null, hcLight: foreground }, localize(1881, \"Input validation foreground color for information severity.\"));\n    inputValidationInfoBorder = registerColor(\"inputValidation.infoBorder\", { dark: \"#007acc\", light: \"#007acc\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(1882, \"Input validation border color for information severity.\"));\n    inputValidationWarningBackground = registerColor(\"inputValidation.warningBackground\", { dark: \"#352A05\", light: \"#F6F5D2\", hcDark: Color.black, hcLight: Color.white }, localize(1883, \"Input validation background color for warning severity.\"));\n    inputValidationWarningForeground = registerColor(\"inputValidation.warningForeground\", { dark: null, light: null, hcDark: null, hcLight: foreground }, localize(1884, \"Input validation foreground color for warning severity.\"));\n    inputValidationWarningBorder = registerColor(\"inputValidation.warningBorder\", { dark: \"#B89500\", light: \"#B89500\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(1885, \"Input validation border color for warning severity.\"));\n    inputValidationErrorBackground = registerColor(\"inputValidation.errorBackground\", { dark: \"#5A1D1D\", light: \"#F2DEDE\", hcDark: Color.black, hcLight: Color.white }, localize(1886, \"Input validation background color for error severity.\"));\n    inputValidationErrorForeground = registerColor(\"inputValidation.errorForeground\", { dark: null, light: null, hcDark: null, hcLight: foreground }, localize(1887, \"Input validation foreground color for error severity.\"));\n    inputValidationErrorBorder = registerColor(\"inputValidation.errorBorder\", { dark: \"#BE1100\", light: \"#BE1100\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(1888, \"Input validation border color for error severity.\"));\n    selectBackground = registerColor(\"dropdown.background\", { dark: \"#3C3C3C\", light: Color.white, hcDark: Color.black, hcLight: Color.white }, localize(1889, \"Dropdown background.\"));\n    selectListBackground = registerColor(\"dropdown.listBackground\", { dark: null, light: null, hcDark: Color.black, hcLight: Color.white }, localize(1890, \"Dropdown list background.\"));\n    selectForeground = registerColor(\"dropdown.foreground\", { dark: \"#F0F0F0\", light: foreground, hcDark: Color.white, hcLight: foreground }, localize(1891, \"Dropdown foreground.\"));\n    selectBorder = registerColor(\"dropdown.border\", { dark: selectBackground, light: \"#CECECE\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(1892, \"Dropdown border.\"));\n    buttonForeground = registerColor(\"button.foreground\", Color.white, localize(1893, \"Button foreground color.\"));\n    buttonSeparator = registerColor(\"button.separator\", transparent(buttonForeground, 0.4), localize(1894, \"Button separator color.\"));\n    buttonBackground = registerColor(\"button.background\", { dark: \"#0E639C\", light: \"#007ACC\", hcDark: null, hcLight: \"#0F4A85\" }, localize(1895, \"Button background color.\"));\n    buttonHoverBackground = registerColor(\"button.hoverBackground\", { dark: lighten(buttonBackground, 0.2), light: darken(buttonBackground, 0.2), hcDark: buttonBackground, hcLight: buttonBackground }, localize(1896, \"Button background color when hovering.\"));\n    buttonBorder = registerColor(\"button.border\", contrastBorder, localize(1897, \"Button border color.\"));\n    buttonSecondaryForeground = registerColor(\"button.secondaryForeground\", { dark: Color.white, light: Color.white, hcDark: Color.white, hcLight: foreground }, localize(1898, \"Secondary button foreground color.\"));\n    buttonSecondaryBackground = registerColor(\"button.secondaryBackground\", { dark: \"#3A3D41\", light: \"#5F6A79\", hcDark: null, hcLight: Color.white }, localize(1899, \"Secondary button background color.\"));\n    buttonSecondaryHoverBackground = registerColor(\"button.secondaryHoverBackground\", { dark: lighten(buttonSecondaryBackground, 0.2), light: darken(buttonSecondaryBackground, 0.2), hcDark: null, hcLight: null }, localize(1900, \"Secondary button background color when hovering.\"));\n    radioActiveForeground = registerColor(\"radio.activeForeground\", inputActiveOptionForeground, localize(1901, \"Foreground color of active radio option.\"));\n    radioActiveBackground = registerColor(\"radio.activeBackground\", inputActiveOptionBackground, localize(1902, \"Background color of active radio option.\"));\n    radioActiveBorder = registerColor(\"radio.activeBorder\", inputActiveOptionBorder, localize(1903, \"Border color of the active radio option.\"));\n    radioInactiveForeground = registerColor(\"radio.inactiveForeground\", null, localize(1904, \"Foreground color of inactive radio option.\"));\n    radioInactiveBackground = registerColor(\"radio.inactiveBackground\", null, localize(1905, \"Background color of inactive radio option.\"));\n    radioInactiveBorder = registerColor(\"radio.inactiveBorder\", { light: transparent(radioActiveForeground, 0.2), dark: transparent(radioActiveForeground, 0.2), hcDark: transparent(radioActiveForeground, 0.4), hcLight: transparent(radioActiveForeground, 0.2) }, localize(1906, \"Border color of the inactive radio option.\"));\n    radioInactiveHoverBackground = registerColor(\"radio.inactiveHoverBackground\", inputActiveOptionHoverBackground, localize(1907, \"Background color of inactive active radio option when hovering.\"));\n    checkboxBackground = registerColor(\"checkbox.background\", selectBackground, localize(1908, \"Background color of checkbox widget.\"));\n    checkboxSelectBackground = registerColor(\"checkbox.selectBackground\", editorWidgetBackground, localize(1909, \"Background color of checkbox widget when the element it's in is selected.\"));\n    checkboxForeground = registerColor(\"checkbox.foreground\", selectForeground, localize(1910, \"Foreground color of checkbox widget.\"));\n    checkboxBorder = registerColor(\"checkbox.border\", selectBorder, localize(1911, \"Border color of checkbox widget.\"));\n    checkboxSelectBorder = registerColor(\"checkbox.selectBorder\", iconForeground, localize(1912, \"Border color of checkbox widget when the element it's in is selected.\"));\n    checkboxDisabledBackground = registerColor(\"checkbox.disabled.background\", { op: 7, color: checkboxBackground, with: checkboxForeground, ratio: 0.33 }, localize(1913, \"Background of a disabled checkbox.\"));\n    checkboxDisabledForeground = registerColor(\"checkbox.disabled.foreground\", { op: 7, color: checkboxForeground, with: checkboxBackground, ratio: 0.33 }, localize(1914, \"Foreground of a disabled checkbox.\"));\n    keybindingLabelBackground = registerColor(\"keybindingLabel.background\", { dark: new Color(new RGBA(128, 128, 128, 0.17)), light: new Color(new RGBA(221, 221, 221, 0.4)), hcDark: Color.transparent, hcLight: Color.transparent }, localize(1915, \"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.\"));\n    keybindingLabelForeground = registerColor(\"keybindingLabel.foreground\", { dark: Color.fromHex(\"#CCCCCC\"), light: Color.fromHex(\"#555555\"), hcDark: Color.white, hcLight: foreground }, localize(1916, \"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.\"));\n    keybindingLabelBorder = registerColor(\"keybindingLabel.border\", { dark: new Color(new RGBA(51, 51, 51, 0.6)), light: new Color(new RGBA(204, 204, 204, 0.4)), hcDark: new Color(new RGBA(111, 195, 223)), hcLight: contrastBorder }, localize(1917, \"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.\"));\n    keybindingLabelBottomBorder = registerColor(\"keybindingLabel.bottomBorder\", { dark: new Color(new RGBA(68, 68, 68, 0.6)), light: new Color(new RGBA(187, 187, 187, 0.4)), hcDark: new Color(new RGBA(111, 195, 223)), hcLight: foreground }, localize(1918, \"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/listColors.js\nvar listFocusBackground, listFocusForeground, listFocusOutline, listFocusAndSelectionOutline, listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground, listInactiveSelectionBackground, listInactiveSelectionForeground, listInactiveSelectionIconForeground, listInactiveFocusBackground, listInactiveFocusOutline, listHoverBackground, listHoverForeground, listDropOverBackground, listDropBetweenBackground, listHighlightForeground, listFocusHighlightForeground, listInvalidItemForeground, listErrorForeground, listWarningForeground, listFilterWidgetBackground, listFilterWidgetOutline, listFilterWidgetNoMatchesOutline, listFilterWidgetShadow, listFilterMatchHighlight, listFilterMatchHighlightBorder, listDeemphasizedForeground, treeIndentGuidesStroke, treeInactiveIndentGuidesStroke, tableColumnsBorder, tableOddRowsBackgroundColor, editorActionListBackground, editorActionListForeground, editorActionListFocusForeground, editorActionListFocusBackground;\nvar init_listColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/listColors.js\"() {\n    init_nls();\n    init_color();\n    init_colorUtils();\n    init_baseColors();\n    init_editorColors();\n    listFocusBackground = registerColor(\"list.focusBackground\", null, localize(1919, \"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\n    listFocusForeground = registerColor(\"list.focusForeground\", null, localize(1920, \"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\n    listFocusOutline = registerColor(\"list.focusOutline\", { dark: focusBorder, light: focusBorder, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1921, \"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\n    listFocusAndSelectionOutline = registerColor(\"list.focusAndSelectionOutline\", null, localize(1922, \"List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.\"));\n    listActiveSelectionBackground = registerColor(\"list.activeSelectionBackground\", { dark: \"#04395E\", light: \"#0060C0\", hcDark: null, hcLight: Color.fromHex(\"#0F4A85\").transparent(0.1) }, localize(1923, \"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\n    listActiveSelectionForeground = registerColor(\"list.activeSelectionForeground\", { dark: Color.white, light: Color.white, hcDark: null, hcLight: null }, localize(1924, \"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\n    listActiveSelectionIconForeground = registerColor(\"list.activeSelectionIconForeground\", null, localize(1925, \"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\n    listInactiveSelectionBackground = registerColor(\"list.inactiveSelectionBackground\", { dark: \"#37373D\", light: \"#E4E6F1\", hcDark: null, hcLight: Color.fromHex(\"#0F4A85\").transparent(0.1) }, localize(1926, \"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\n    listInactiveSelectionForeground = registerColor(\"list.inactiveSelectionForeground\", null, localize(1927, \"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\n    listInactiveSelectionIconForeground = registerColor(\"list.inactiveSelectionIconForeground\", null, localize(1928, \"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\n    listInactiveFocusBackground = registerColor(\"list.inactiveFocusBackground\", null, localize(1929, \"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\n    listInactiveFocusOutline = registerColor(\"list.inactiveFocusOutline\", null, localize(1930, \"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\n    listHoverBackground = registerColor(\"list.hoverBackground\", { dark: \"#2A2D2E\", light: \"#F0F0F0\", hcDark: Color.white.transparent(0.1), hcLight: Color.fromHex(\"#0F4A85\").transparent(0.1) }, localize(1931, \"List/Tree background when hovering over items using the mouse.\"));\n    listHoverForeground = registerColor(\"list.hoverForeground\", null, localize(1932, \"List/Tree foreground when hovering over items using the mouse.\"));\n    listDropOverBackground = registerColor(\"list.dropBackground\", { dark: \"#062F4A\", light: \"#D6EBFF\", hcDark: null, hcLight: null }, localize(1933, \"List/Tree drag and drop background when moving items over other items when using the mouse.\"));\n    listDropBetweenBackground = registerColor(\"list.dropBetweenBackground\", { dark: iconForeground, light: iconForeground, hcDark: null, hcLight: null }, localize(1934, \"List/Tree drag and drop border color when moving items between items when using the mouse.\"));\n    listHighlightForeground = registerColor(\"list.highlightForeground\", { dark: \"#2AAAFF\", light: \"#0066BF\", hcDark: focusBorder, hcLight: focusBorder }, localize(1935, \"List/Tree foreground color of the match highlights when searching inside the list/tree.\"));\n    listFocusHighlightForeground = registerColor(\"list.focusHighlightForeground\", { dark: listHighlightForeground, light: ifDefinedThenElse(listActiveSelectionBackground, listHighlightForeground, \"#BBE7FF\"), hcDark: listHighlightForeground, hcLight: listHighlightForeground }, localize(1936, \"List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.\"));\n    listInvalidItemForeground = registerColor(\"list.invalidItemForeground\", { dark: \"#B89500\", light: \"#B89500\", hcDark: \"#B89500\", hcLight: \"#B5200D\" }, localize(1937, \"List/Tree foreground color for invalid items, for example an unresolved root in explorer.\"));\n    listErrorForeground = registerColor(\"list.errorForeground\", { dark: \"#F88070\", light: \"#B01011\", hcDark: null, hcLight: null }, localize(1938, \"Foreground color of list items containing errors.\"));\n    listWarningForeground = registerColor(\"list.warningForeground\", { dark: \"#CCA700\", light: \"#855F00\", hcDark: null, hcLight: null }, localize(1939, \"Foreground color of list items containing warnings.\"));\n    listFilterWidgetBackground = registerColor(\"listFilterWidget.background\", { light: darken(editorWidgetBackground, 0), dark: lighten(editorWidgetBackground, 0), hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, localize(1940, \"Background color of the type filter widget in lists and trees.\"));\n    listFilterWidgetOutline = registerColor(\"listFilterWidget.outline\", { dark: Color.transparent, light: Color.transparent, hcDark: \"#f38518\", hcLight: \"#007ACC\" }, localize(1941, \"Outline color of the type filter widget in lists and trees.\"));\n    listFilterWidgetNoMatchesOutline = registerColor(\"listFilterWidget.noMatchesOutline\", { dark: \"#BE1100\", light: \"#BE1100\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(1942, \"Outline color of the type filter widget in lists and trees, when there are no matches.\"));\n    listFilterWidgetShadow = registerColor(\"listFilterWidget.shadow\", widgetShadow, localize(1943, \"Shadow color of the type filter widget in lists and trees.\"));\n    listFilterMatchHighlight = registerColor(\"list.filterMatchBackground\", { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hcDark: null, hcLight: null }, localize(1944, \"Background color of the filtered match.\"));\n    listFilterMatchHighlightBorder = registerColor(\"list.filterMatchBorder\", { dark: editorFindMatchHighlightBorder, light: editorFindMatchHighlightBorder, hcDark: contrastBorder, hcLight: activeContrastBorder }, localize(1945, \"Border color of the filtered match.\"));\n    listDeemphasizedForeground = registerColor(\"list.deemphasizedForeground\", { dark: \"#8C8C8C\", light: \"#8E8E90\", hcDark: \"#A7A8A9\", hcLight: \"#666666\" }, localize(1946, \"List/Tree foreground color for items that are deemphasized.\"));\n    treeIndentGuidesStroke = registerColor(\"tree.indentGuidesStroke\", { dark: \"#585858\", light: \"#a9a9a9\", hcDark: \"#a9a9a9\", hcLight: \"#a5a5a5\" }, localize(1947, \"Tree stroke color for the indentation guides.\"));\n    treeInactiveIndentGuidesStroke = registerColor(\"tree.inactiveIndentGuidesStroke\", transparent(treeIndentGuidesStroke, 0.4), localize(1948, \"Tree stroke color for the indentation guides that are not active.\"));\n    tableColumnsBorder = registerColor(\"tree.tableColumnsBorder\", { dark: \"#CCCCCC20\", light: \"#61616120\", hcDark: null, hcLight: null }, localize(1949, \"Table border color between columns.\"));\n    tableOddRowsBackgroundColor = registerColor(\"tree.tableOddRowsBackground\", { dark: transparent(foreground, 0.04), light: transparent(foreground, 0.04), hcDark: null, hcLight: null }, localize(1950, \"Background color for odd table rows.\"));\n    editorActionListBackground = registerColor(\"editorActionList.background\", editorWidgetBackground, localize(1951, \"Action List background color.\"));\n    editorActionListForeground = registerColor(\"editorActionList.foreground\", editorWidgetForeground, localize(1952, \"Action List foreground color.\"));\n    editorActionListFocusForeground = registerColor(\"editorActionList.focusForeground\", listActiveSelectionForeground, localize(1953, \"Action List foreground color for the focused item.\"));\n    editorActionListFocusBackground = registerColor(\"editorActionList.focusBackground\", listActiveSelectionBackground, localize(1954, \"Action List background color for the focused item.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/menuColors.js\nvar menuBorder, menuForeground, menuBackground, menuSelectionForeground, menuSelectionBackground, menuSelectionBorder, menuSeparatorBackground;\nvar init_menuColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/menuColors.js\"() {\n    init_nls();\n    init_colorUtils();\n    init_baseColors();\n    init_inputColors();\n    init_listColors();\n    menuBorder = registerColor(\"menu.border\", { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1955, \"Border color of menus.\"));\n    menuForeground = registerColor(\"menu.foreground\", selectForeground, localize(1956, \"Foreground color of menu items.\"));\n    menuBackground = registerColor(\"menu.background\", selectBackground, localize(1957, \"Background color of menu items.\"));\n    menuSelectionForeground = registerColor(\"menu.selectionForeground\", listActiveSelectionForeground, localize(1958, \"Foreground color of the selected menu item in menus.\"));\n    menuSelectionBackground = registerColor(\"menu.selectionBackground\", listActiveSelectionBackground, localize(1959, \"Background color of the selected menu item in menus.\"));\n    menuSelectionBorder = registerColor(\"menu.selectionBorder\", { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1960, \"Border color of the selected menu item in menus.\"));\n    menuSeparatorBackground = registerColor(\"menu.separatorBackground\", { dark: \"#606060\", light: \"#D4D4D4\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(1961, \"Color of a separator menu item in menus.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/quickpickColors.js\nvar quickInputBackground, quickInputForeground, quickInputTitleBackground, pickerGroupForeground, pickerGroupBorder, _deprecatedQuickInputListFocusBackground, quickInputListFocusForeground, quickInputListFocusIconForeground, quickInputListFocusBackground;\nvar init_quickpickColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/quickpickColors.js\"() {\n    init_nls();\n    init_color();\n    init_colorUtils();\n    init_editorColors();\n    init_listColors();\n    quickInputBackground = registerColor(\"quickInput.background\", editorWidgetBackground, localize(1988, \"Quick picker background color. The quick picker widget is the container for pickers like the command palette.\"));\n    quickInputForeground = registerColor(\"quickInput.foreground\", editorWidgetForeground, localize(1989, \"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.\"));\n    quickInputTitleBackground = registerColor(\"quickInputTitle.background\", { dark: new Color(new RGBA(255, 255, 255, 0.105)), light: new Color(new RGBA(0, 0, 0, 0.06)), hcDark: \"#000000\", hcLight: Color.white }, localize(1990, \"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.\"));\n    pickerGroupForeground = registerColor(\"pickerGroup.foreground\", { dark: \"#3794FF\", light: \"#0066BF\", hcDark: Color.white, hcLight: \"#0F4A85\" }, localize(1991, \"Quick picker color for grouping labels.\"));\n    pickerGroupBorder = registerColor(\"pickerGroup.border\", { dark: \"#3F3F46\", light: \"#CCCEDB\", hcDark: Color.white, hcLight: \"#0F4A85\" }, localize(1992, \"Quick picker color for grouping borders.\"));\n    _deprecatedQuickInputListFocusBackground = registerColor(\"quickInput.list.focusBackground\", null, \"\", void 0, localize(1993, \"Please use quickInputList.focusBackground instead\"));\n    quickInputListFocusForeground = registerColor(\"quickInputList.focusForeground\", listActiveSelectionForeground, localize(1994, \"Quick picker foreground color for the focused item.\"));\n    quickInputListFocusIconForeground = registerColor(\"quickInputList.focusIconForeground\", listActiveSelectionIconForeground, localize(1995, \"Quick picker icon foreground color for the focused item.\"));\n    quickInputListFocusBackground = registerColor(\"quickInputList.focusBackground\", { dark: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), light: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), hcDark: null, hcLight: null }, localize(1996, \"Quick picker background color for the focused item.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/searchColors.js\nvar searchResultsInfoForeground, searchEditorFindMatch, searchEditorFindMatchBorder;\nvar init_searchColors = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colors/searchColors.js\"() {\n    init_nls();\n    init_colorUtils();\n    init_baseColors();\n    init_editorColors();\n    searchResultsInfoForeground = registerColor(\"search.resultsInfoForeground\", { light: foreground, dark: transparent(foreground, 0.65), hcDark: foreground, hcLight: foreground }, localize(1997, \"Color of the text in the search viewlet's completion message.\"));\n    searchEditorFindMatch = registerColor(\"searchEditor.findMatchBackground\", { light: transparent(editorFindMatchHighlight, 0.66), dark: transparent(editorFindMatchHighlight, 0.66), hcDark: editorFindMatchHighlight, hcLight: editorFindMatchHighlight }, localize(1998, \"Color of the Search Editor query matches.\"));\n    searchEditorFindMatchBorder = registerColor(\"searchEditor.findMatchBorder\", { light: transparent(editorFindMatchHighlightBorder, 0.66), dark: transparent(editorFindMatchHighlightBorder, 0.66), hcDark: editorFindMatchHighlightBorder, hcLight: editorFindMatchHighlightBorder }, localize(1999, \"Border color of the Search Editor query matches.\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colorRegistry.js\nvar init_colorRegistry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/colorRegistry.js\"() {\n    init_colorUtils();\n    init_baseColors();\n    init_chartsColors();\n    init_editorColors();\n    init_inputColors();\n    init_listColors();\n    init_menuColors();\n    init_minimapColors();\n    init_miscColors();\n    init_quickpickColors();\n    init_searchColors();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/theme.js\nfunction isHighContrast(scheme) {\n  return scheme === ColorScheme.HIGH_CONTRAST_DARK || scheme === ColorScheme.HIGH_CONTRAST_LIGHT;\n}\nfunction isDark(scheme) {\n  return scheme === ColorScheme.DARK || scheme === ColorScheme.HIGH_CONTRAST_DARK;\n}\nvar ColorScheme, ThemeTypeSelector;\nvar init_theme = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/theme.js\"() {\n    (function(ColorScheme2) {\n      ColorScheme2[\"DARK\"] = \"dark\";\n      ColorScheme2[\"LIGHT\"] = \"light\";\n      ColorScheme2[\"HIGH_CONTRAST_DARK\"] = \"hcDark\";\n      ColorScheme2[\"HIGH_CONTRAST_LIGHT\"] = \"hcLight\";\n    })(ColorScheme || (ColorScheme = {}));\n    (function(ThemeTypeSelector2) {\n      ThemeTypeSelector2[\"VS\"] = \"vs\";\n      ThemeTypeSelector2[\"VS_DARK\"] = \"vs-dark\";\n      ThemeTypeSelector2[\"HC_BLACK\"] = \"hc-black\";\n      ThemeTypeSelector2[\"HC_LIGHT\"] = \"hc-light\";\n    })(ThemeTypeSelector || (ThemeTypeSelector = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/uuid.js\nfunction prefixedUuid(namespace) {\n  return `${namespace}-${generateUuid()}`;\n}\nvar generateUuid;\nvar init_uuid = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/uuid.js\"() {\n    generateUuid = (function() {\n      if (typeof crypto.randomUUID === \"function\") {\n        return crypto.randomUUID.bind(crypto);\n      }\n      const _data = new Uint8Array(16);\n      const _hex = [];\n      for (let i2 = 0; i2 \u003c 256; i2++) {\n        _hex.push(i2.toString(16).padStart(2, \"0\"));\n      }\n      return function generateUuid2() {\n        crypto.getRandomValues(_data);\n        _data[6] = _data[6] \u0026 15 | 64;\n        _data[8] = _data[8] \u0026 63 | 128;\n        let i2 = 0;\n        let result = \"\";\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += \"-\";\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += \"-\";\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += \"-\";\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += \"-\";\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        result += _hex[_data[i2++]];\n        return result;\n      };\n    })();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/themeService.js\nfunction themeColorFromId(id) {\n  return { id };\n}\nfunction getThemeTypeSelector(type) {\n  switch (type) {\n    case ColorScheme.DARK:\n      return ThemeTypeSelector.VS_DARK;\n    case ColorScheme.HIGH_CONTRAST_DARK:\n      return ThemeTypeSelector.HC_BLACK;\n    case ColorScheme.HIGH_CONTRAST_LIGHT:\n      return ThemeTypeSelector.HC_LIGHT;\n    default:\n      return ThemeTypeSelector.VS;\n  }\n}\nfunction registerThemingParticipant(participant) {\n  return themingRegistry.onColorThemeChange(participant);\n}\nvar IThemeService, Extensions7, ThemingRegistry, themingRegistry, Themable;\nvar init_themeService = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/themeService.js\"() {\n    init_event();\n    init_lifecycle();\n    init_instantiation();\n    init_platform2();\n    init_theme();\n    IThemeService = createDecorator(\"themeService\");\n    Extensions7 = {\n      ThemingContribution: \"base.contributions.theming\"\n    };\n    ThemingRegistry = class extends Disposable {\n      constructor() {\n        super();\n        this.themingParticipants = [];\n        this.themingParticipants = [];\n        this.onThemingParticipantAddedEmitter = this._register(new Emitter());\n      }\n      onColorThemeChange(participant) {\n        this.themingParticipants.push(participant);\n        this.onThemingParticipantAddedEmitter.fire(participant);\n        return toDisposable(() =\u003e {\n          const idx = this.themingParticipants.indexOf(participant);\n          this.themingParticipants.splice(idx, 1);\n        });\n      }\n      getThemingParticipants() {\n        return this.themingParticipants;\n      }\n    };\n    themingRegistry = new ThemingRegistry();\n    Registry.add(Extensions7.ThemingContribution, themingRegistry);\n    Themable = class extends Disposable {\n      constructor(themeService) {\n        super();\n        this.themeService = themeService;\n        this.theme = themeService.getColorTheme();\n        this._register(this.themeService.onDidColorThemeChange((theme) =\u003e this.onThemeChange(theme)));\n      }\n      onThemeChange(theme) {\n        this.theme = theme;\n        this.updateStyles();\n      }\n      updateStyles() {\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/editorColorRegistry.js\nvar editorLineHighlight, editorLineHighlightBorder, editorRangeHighlight, editorRangeHighlightBorder, editorSymbolHighlight, editorSymbolHighlightBorder, editorCursorForeground, editorCursorBackground, editorMultiCursorPrimaryForeground, editorMultiCursorPrimaryBackground, editorMultiCursorSecondaryForeground, editorMultiCursorSecondaryBackground, editorWhitespaces, editorLineNumbers, deprecatedEditorIndentGuides, deprecatedEditorActiveIndentGuides, editorIndentGuide1, editorIndentGuide2, editorIndentGuide3, editorIndentGuide4, editorIndentGuide5, editorIndentGuide6, editorActiveIndentGuide1, editorActiveIndentGuide2, editorActiveIndentGuide3, editorActiveIndentGuide4, editorActiveIndentGuide5, editorActiveIndentGuide6, deprecatedEditorActiveLineNumber, editorActiveLineNumber, editorDimmedLineNumber, editorRuler, editorCodeLensForeground, editorBracketMatchBackground, editorBracketMatchBorder, editorOverviewRulerBorder, editorOverviewRulerBackground, editorGutter, editorUnnecessaryCodeBorder, editorUnnecessaryCodeOpacity, ghostTextBorder, ghostTextForeground, ghostTextBackground, rulerRangeDefault, overviewRulerRangeHighlight, overviewRulerError, overviewRulerWarning, overviewRulerInfo, editorBracketHighlightingForeground1, editorBracketHighlightingForeground2, editorBracketHighlightingForeground3, editorBracketHighlightingForeground4, editorBracketHighlightingForeground5, editorBracketHighlightingForeground6, editorBracketHighlightingUnexpectedBracketForeground, editorBracketPairGuideBackground1, editorBracketPairGuideBackground2, editorBracketPairGuideBackground3, editorBracketPairGuideBackground4, editorBracketPairGuideBackground5, editorBracketPairGuideBackground6, editorBracketPairGuideActiveBackground1, editorBracketPairGuideActiveBackground2, editorBracketPairGuideActiveBackground3, editorBracketPairGuideActiveBackground4, editorBracketPairGuideActiveBackground5, editorBracketPairGuideActiveBackground6, editorUnicodeHighlightBorder, editorUnicodeHighlightBackground;\nvar init_editorColorRegistry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/editorColorRegistry.js\"() {\n    init_nls();\n    init_color();\n    init_colorRegistry();\n    init_themeService();\n    editorLineHighlight = registerColor(\"editor.lineHighlightBackground\", null, localize(604, \"Background color for the highlight of line at the cursor position.\"));\n    editorLineHighlightBorder = registerColor(\"editor.lineHighlightBorder\", { dark: \"#282828\", light: \"#eeeeee\", hcDark: \"#f38518\", hcLight: contrastBorder }, localize(605, \"Background color for the border around the line at the cursor position.\"));\n    editorRangeHighlight = registerColor(\"editor.rangeHighlightBackground\", { dark: \"#ffffff0b\", light: \"#fdff0033\", hcDark: null, hcLight: null }, localize(606, \"Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorRangeHighlightBorder = registerColor(\"editor.rangeHighlightBorder\", { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(607, \"Background color of the border around highlighted ranges.\"));\n    editorSymbolHighlight = registerColor(\"editor.symbolHighlightBackground\", { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hcDark: null, hcLight: null }, localize(608, \"Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    editorSymbolHighlightBorder = registerColor(\"editor.symbolHighlightBorder\", { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(609, \"Background color of the border around highlighted symbols.\"));\n    editorCursorForeground = registerColor(\"editorCursor.foreground\", { dark: \"#AEAFAD\", light: Color.black, hcDark: Color.white, hcLight: \"#0F4A85\" }, localize(610, \"Color of the editor cursor.\"));\n    editorCursorBackground = registerColor(\"editorCursor.background\", null, localize(611, \"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.\"));\n    editorMultiCursorPrimaryForeground = registerColor(\"editorMultiCursor.primary.foreground\", editorCursorForeground, localize(612, \"Color of the primary editor cursor when multiple cursors are present.\"));\n    editorMultiCursorPrimaryBackground = registerColor(\"editorMultiCursor.primary.background\", editorCursorBackground, localize(613, \"The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.\"));\n    editorMultiCursorSecondaryForeground = registerColor(\"editorMultiCursor.secondary.foreground\", editorCursorForeground, localize(614, \"Color of secondary editor cursors when multiple cursors are present.\"));\n    editorMultiCursorSecondaryBackground = registerColor(\"editorMultiCursor.secondary.background\", editorCursorBackground, localize(615, \"The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.\"));\n    editorWhitespaces = registerColor(\"editorWhitespace.foreground\", { dark: \"#e3e4e229\", light: \"#33333333\", hcDark: \"#e3e4e229\", hcLight: \"#CCCCCC\" }, localize(616, \"Color of whitespace characters in the editor.\"));\n    editorLineNumbers = registerColor(\"editorLineNumber.foreground\", { dark: \"#858585\", light: \"#237893\", hcDark: Color.white, hcLight: \"#292929\" }, localize(617, \"Color of editor line numbers.\"));\n    deprecatedEditorIndentGuides = registerColor(\"editorIndentGuide.background\", editorWhitespaces, localize(618, \"Color of the editor indentation guides.\"), false, localize(619, \"'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.\"));\n    deprecatedEditorActiveIndentGuides = registerColor(\"editorIndentGuide.activeBackground\", editorWhitespaces, localize(620, \"Color of the active editor indentation guides.\"), false, localize(621, \"'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.\"));\n    editorIndentGuide1 = registerColor(\"editorIndentGuide.background1\", deprecatedEditorIndentGuides, localize(622, \"Color of the editor indentation guides (1).\"));\n    editorIndentGuide2 = registerColor(\"editorIndentGuide.background2\", \"#00000000\", localize(623, \"Color of the editor indentation guides (2).\"));\n    editorIndentGuide3 = registerColor(\"editorIndentGuide.background3\", \"#00000000\", localize(624, \"Color of the editor indentation guides (3).\"));\n    editorIndentGuide4 = registerColor(\"editorIndentGuide.background4\", \"#00000000\", localize(625, \"Color of the editor indentation guides (4).\"));\n    editorIndentGuide5 = registerColor(\"editorIndentGuide.background5\", \"#00000000\", localize(626, \"Color of the editor indentation guides (5).\"));\n    editorIndentGuide6 = registerColor(\"editorIndentGuide.background6\", \"#00000000\", localize(627, \"Color of the editor indentation guides (6).\"));\n    editorActiveIndentGuide1 = registerColor(\"editorIndentGuide.activeBackground1\", deprecatedEditorActiveIndentGuides, localize(628, \"Color of the active editor indentation guides (1).\"));\n    editorActiveIndentGuide2 = registerColor(\"editorIndentGuide.activeBackground2\", \"#00000000\", localize(629, \"Color of the active editor indentation guides (2).\"));\n    editorActiveIndentGuide3 = registerColor(\"editorIndentGuide.activeBackground3\", \"#00000000\", localize(630, \"Color of the active editor indentation guides (3).\"));\n    editorActiveIndentGuide4 = registerColor(\"editorIndentGuide.activeBackground4\", \"#00000000\", localize(631, \"Color of the active editor indentation guides (4).\"));\n    editorActiveIndentGuide5 = registerColor(\"editorIndentGuide.activeBackground5\", \"#00000000\", localize(632, \"Color of the active editor indentation guides (5).\"));\n    editorActiveIndentGuide6 = registerColor(\"editorIndentGuide.activeBackground6\", \"#00000000\", localize(633, \"Color of the active editor indentation guides (6).\"));\n    deprecatedEditorActiveLineNumber = registerColor(\"editorActiveLineNumber.foreground\", { dark: \"#c6c6c6\", light: \"#0B216F\", hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(634, \"Color of editor active line number\"), false, localize(635, \"Id is deprecated. Use 'editorLineNumber.activeForeground' instead.\"));\n    editorActiveLineNumber = registerColor(\"editorLineNumber.activeForeground\", deprecatedEditorActiveLineNumber, localize(636, \"Color of editor active line number\"));\n    editorDimmedLineNumber = registerColor(\"editorLineNumber.dimmedForeground\", null, localize(637, \"Color of the final editor line when editor.renderFinalNewline is set to dimmed.\"));\n    editorRuler = registerColor(\"editorRuler.foreground\", { dark: \"#5A5A5A\", light: Color.lightgrey, hcDark: Color.white, hcLight: \"#292929\" }, localize(638, \"Color of the editor rulers.\"));\n    editorCodeLensForeground = registerColor(\"editorCodeLens.foreground\", { dark: \"#999999\", light: \"#919191\", hcDark: \"#999999\", hcLight: \"#292929\" }, localize(639, \"Foreground color of editor CodeLens\"));\n    editorBracketMatchBackground = registerColor(\"editorBracketMatch.background\", { dark: \"#0064001a\", light: \"#0064001a\", hcDark: \"#0064001a\", hcLight: \"#0000\" }, localize(640, \"Background color behind matching brackets\"));\n    editorBracketMatchBorder = registerColor(\"editorBracketMatch.border\", { dark: \"#888\", light: \"#B9B9B9\", hcDark: contrastBorder, hcLight: contrastBorder }, localize(641, \"Color for matching brackets boxes\"));\n    editorOverviewRulerBorder = registerColor(\"editorOverviewRuler.border\", { dark: \"#7f7f7f4d\", light: \"#7f7f7f4d\", hcDark: \"#7f7f7f4d\", hcLight: \"#666666\" }, localize(642, \"Color of the overview ruler border.\"));\n    editorOverviewRulerBackground = registerColor(\"editorOverviewRuler.background\", null, localize(643, \"Background color of the editor overview ruler.\"));\n    editorGutter = registerColor(\"editorGutter.background\", editorBackground, localize(644, \"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.\"));\n    editorUnnecessaryCodeBorder = registerColor(\"editorUnnecessaryCode.border\", { dark: null, light: null, hcDark: Color.fromHex(\"#fff\").transparent(0.8), hcLight: contrastBorder }, localize(645, \"Border color of unnecessary (unused) source code in the editor.\"));\n    editorUnnecessaryCodeOpacity = registerColor(\"editorUnnecessaryCode.opacity\", { dark: Color.fromHex(\"#000a\"), light: Color.fromHex(\"#0007\"), hcDark: null, hcLight: null }, localize(646, `Opacity of unnecessary (unused) source code in the editor. For example, \"#000000c0\" will render the code with 75% opacity. For high contrast themes, use the  'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`));\n    ghostTextBorder = registerColor(\"editorGhostText.border\", { dark: null, light: null, hcDark: Color.fromHex(\"#fff\").transparent(0.8), hcLight: Color.fromHex(\"#292929\").transparent(0.8) }, localize(647, \"Border color of ghost text in the editor.\"));\n    ghostTextForeground = registerColor(\"editorGhostText.foreground\", { dark: Color.fromHex(\"#ffffff56\"), light: Color.fromHex(\"#0007\"), hcDark: null, hcLight: null }, localize(648, \"Foreground color of the ghost text in the editor.\"));\n    ghostTextBackground = registerColor(\"editorGhostText.background\", null, localize(649, \"Background color of the ghost text in the editor.\"));\n    rulerRangeDefault = new Color(new RGBA(0, 122, 204, 0.6));\n    overviewRulerRangeHighlight = registerColor(\"editorOverviewRuler.rangeHighlightForeground\", rulerRangeDefault, localize(650, \"Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.\"), true);\n    overviewRulerError = registerColor(\"editorOverviewRuler.errorForeground\", { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: \"#B5200D\" }, localize(651, \"Overview ruler marker color for errors.\"));\n    overviewRulerWarning = registerColor(\"editorOverviewRuler.warningForeground\", { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningBorder, hcLight: editorWarningBorder }, localize(652, \"Overview ruler marker color for warnings.\"));\n    overviewRulerInfo = registerColor(\"editorOverviewRuler.infoForeground\", { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoBorder, hcLight: editorInfoBorder }, localize(653, \"Overview ruler marker color for infos.\"));\n    editorBracketHighlightingForeground1 = registerColor(\"editorBracketHighlight.foreground1\", { dark: \"#FFD700\", light: \"#0431FAFF\", hcDark: \"#FFD700\", hcLight: \"#0431FAFF\" }, localize(654, \"Foreground color of brackets (1). Requires enabling bracket pair colorization.\"));\n    editorBracketHighlightingForeground2 = registerColor(\"editorBracketHighlight.foreground2\", { dark: \"#DA70D6\", light: \"#319331FF\", hcDark: \"#DA70D6\", hcLight: \"#319331FF\" }, localize(655, \"Foreground color of brackets (2). Requires enabling bracket pair colorization.\"));\n    editorBracketHighlightingForeground3 = registerColor(\"editorBracketHighlight.foreground3\", { dark: \"#179FFF\", light: \"#7B3814FF\", hcDark: \"#87CEFA\", hcLight: \"#7B3814FF\" }, localize(656, \"Foreground color of brackets (3). Requires enabling bracket pair colorization.\"));\n    editorBracketHighlightingForeground4 = registerColor(\"editorBracketHighlight.foreground4\", \"#00000000\", localize(657, \"Foreground color of brackets (4). Requires enabling bracket pair colorization.\"));\n    editorBracketHighlightingForeground5 = registerColor(\"editorBracketHighlight.foreground5\", \"#00000000\", localize(658, \"Foreground color of brackets (5). Requires enabling bracket pair colorization.\"));\n    editorBracketHighlightingForeground6 = registerColor(\"editorBracketHighlight.foreground6\", \"#00000000\", localize(659, \"Foreground color of brackets (6). Requires enabling bracket pair colorization.\"));\n    editorBracketHighlightingUnexpectedBracketForeground = registerColor(\"editorBracketHighlight.unexpectedBracket.foreground\", { dark: new Color(new RGBA(255, 18, 18, 0.8)), light: new Color(new RGBA(255, 18, 18, 0.8)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: \"#B5200D\" }, localize(660, \"Foreground color of unexpected brackets.\"));\n    editorBracketPairGuideBackground1 = registerColor(\"editorBracketPairGuide.background1\", \"#00000000\", localize(661, \"Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideBackground2 = registerColor(\"editorBracketPairGuide.background2\", \"#00000000\", localize(662, \"Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideBackground3 = registerColor(\"editorBracketPairGuide.background3\", \"#00000000\", localize(663, \"Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideBackground4 = registerColor(\"editorBracketPairGuide.background4\", \"#00000000\", localize(664, \"Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideBackground5 = registerColor(\"editorBracketPairGuide.background5\", \"#00000000\", localize(665, \"Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideBackground6 = registerColor(\"editorBracketPairGuide.background6\", \"#00000000\", localize(666, \"Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideActiveBackground1 = registerColor(\"editorBracketPairGuide.activeBackground1\", \"#00000000\", localize(667, \"Background color of active bracket pair guides (1). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideActiveBackground2 = registerColor(\"editorBracketPairGuide.activeBackground2\", \"#00000000\", localize(668, \"Background color of active bracket pair guides (2). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideActiveBackground3 = registerColor(\"editorBracketPairGuide.activeBackground3\", \"#00000000\", localize(669, \"Background color of active bracket pair guides (3). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideActiveBackground4 = registerColor(\"editorBracketPairGuide.activeBackground4\", \"#00000000\", localize(670, \"Background color of active bracket pair guides (4). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideActiveBackground5 = registerColor(\"editorBracketPairGuide.activeBackground5\", \"#00000000\", localize(671, \"Background color of active bracket pair guides (5). Requires enabling bracket pair guides.\"));\n    editorBracketPairGuideActiveBackground6 = registerColor(\"editorBracketPairGuide.activeBackground6\", \"#00000000\", localize(672, \"Background color of active bracket pair guides (6). Requires enabling bracket pair guides.\"));\n    editorUnicodeHighlightBorder = registerColor(\"editorUnicodeHighlight.border\", editorWarningForeground, localize(673, \"Border color used to highlight unicode characters.\"));\n    editorUnicodeHighlightBackground = registerColor(\"editorUnicodeHighlight.background\", editorWarningBackground, localize(674, \"Background color used to highlight unicode characters.\"));\n    registerThemingParticipant((theme, collector) =\u003e {\n      const background = theme.getColor(editorBackground);\n      const lineHighlight = theme.getColor(editorLineHighlight);\n      const imeBackground = lineHighlight \u0026\u0026 !lineHighlight.isTransparent() ? lineHighlight : background;\n      if (imeBackground) {\n        collector.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${imeBackground}; }`);\n      }\n    });\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/arraysFind.js\nfunction findLast(array2, predicate, fromIndex = array2.length - 1) {\n  const idx = findLastIdx(array2, predicate, fromIndex);\n  if (idx === -1) {\n    return void 0;\n  }\n  return array2[idx];\n}\nfunction findLastIdx(array2, predicate, fromIndex = array2.length - 1) {\n  for (let i2 = fromIndex; i2 \u003e= 0; i2--) {\n    const element = array2[i2];\n    if (predicate(element)) {\n      return i2;\n    }\n  }\n  return -1;\n}\nfunction findLastMonotonous(array2, predicate) {\n  const idx = findLastIdxMonotonous(array2, predicate);\n  return idx === -1 ? void 0 : array2[idx];\n}\nfunction findLastIdxMonotonous(array2, predicate, startIdx = 0, endIdxEx = array2.length) {\n  let i2 = startIdx;\n  let j = endIdxEx;\n  while (i2 \u003c j) {\n    const k = Math.floor((i2 + j) / 2);\n    if (predicate(array2[k])) {\n      i2 = k + 1;\n    } else {\n      j = k;\n    }\n  }\n  return i2 - 1;\n}\nfunction findFirstMonotonous(array2, predicate) {\n  const idx = findFirstIdxMonotonousOrArrLen(array2, predicate);\n  return idx === array2.length ? void 0 : array2[idx];\n}\nfunction findFirstIdxMonotonousOrArrLen(array2, predicate, startIdx = 0, endIdxEx = array2.length) {\n  let i2 = startIdx;\n  let j = endIdxEx;\n  while (i2 \u003c j) {\n    const k = Math.floor((i2 + j) / 2);\n    if (predicate(array2[k])) {\n      j = k;\n    } else {\n      i2 = k + 1;\n    }\n  }\n  return i2;\n}\nfunction findFirstMax(array2, comparator) {\n  if (array2.length === 0) {\n    return void 0;\n  }\n  let max = array2[0];\n  for (let i2 = 1; i2 \u003c array2.length; i2++) {\n    const item = array2[i2];\n    if (comparator(item, max) \u003e 0) {\n      max = item;\n    }\n  }\n  return max;\n}\nfunction findLastMax(array2, comparator) {\n  if (array2.length === 0) {\n    return void 0;\n  }\n  let max = array2[0];\n  for (let i2 = 1; i2 \u003c array2.length; i2++) {\n    const item = array2[i2];\n    if (comparator(item, max) \u003e= 0) {\n      max = item;\n    }\n  }\n  return max;\n}\nfunction findFirstMin(array2, comparator) {\n  return findFirstMax(array2, (a, b) =\u003e -comparator(a, b));\n}\nfunction findMaxIdx(array2, comparator) {\n  if (array2.length === 0) {\n    return -1;\n  }\n  let maxIdx = 0;\n  for (let i2 = 1; i2 \u003c array2.length; i2++) {\n    const item = array2[i2];\n    if (comparator(item, array2[maxIdx]) \u003e 0) {\n      maxIdx = i2;\n    }\n  }\n  return maxIdx;\n}\nfunction mapFindFirst(items, mapFn) {\n  for (const value of items) {\n    const mapped = mapFn(value);\n    if (mapped !== void 0) {\n      return mapped;\n    }\n  }\n  return void 0;\n}\nvar MonotonousArray;\nvar init_arraysFind = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/arraysFind.js\"() {\n    MonotonousArray = class _MonotonousArray {\n      static {\n        this.assertInvariants = false;\n      }\n      constructor(_array) {\n        this._array = _array;\n        this._findLastMonotonousLastIdx = 0;\n      }\n      /**\n       * The predicate must be monotonous, i.e. `arr.map(predicate)` must be like `[true, ..., true, false, ..., false]`!\n       * For subsequent calls, current predicate must be weaker than (or equal to) the previous predicate, i.e. more entries must be `true`.\n       */\n      findLastMonotonous(predicate) {\n        if (_MonotonousArray.assertInvariants) {\n          if (this._prevFindLastPredicate) {\n            for (const item of this._array) {\n              if (this._prevFindLastPredicate(item) \u0026\u0026 !predicate(item)) {\n                throw new Error(\"MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.\");\n              }\n            }\n          }\n          this._prevFindLastPredicate = predicate;\n        }\n        const idx = findLastIdxMonotonous(this._array, predicate, this._findLastMonotonousLastIdx);\n        this._findLastMonotonousLastIdx = idx + 1;\n        return idx === -1 ? void 0 : this._array[idx];\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelPart.js\nvar TextModelPart;\nvar init_textModelPart = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelPart.js\"() {\n    init_lifecycle();\n    TextModelPart = class extends Disposable {\n      constructor() {\n        super(...arguments);\n        this._isDisposed = false;\n      }\n      dispose() {\n        super.dispose();\n        this._isDisposed = true;\n      }\n      assertNotDisposed() {\n        if (this._isDisposed) {\n          throw new Error(\"TextModelPart is disposed!\");\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/utils.js\nfunction computeIndentLevel(line, tabSize) {\n  let indent = 0;\n  let i2 = 0;\n  const len = line.length;\n  while (i2 \u003c len) {\n    const chCode = line.charCodeAt(i2);\n    if (chCode === 32) {\n      indent++;\n    } else if (chCode === 9) {\n      indent = indent - indent % tabSize + tabSize;\n    } else {\n      break;\n    }\n    i2++;\n  }\n  if (i2 === len) {\n    return -1;\n  }\n  return indent;\n}\nvar init_utils4 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/utils.js\"() {\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/textModelGuides.js\nvar HorizontalGuidesState, IndentGuide, IndentGuideHorizontalLine;\nvar init_textModelGuides = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/textModelGuides.js\"() {\n    (function(HorizontalGuidesState2) {\n      HorizontalGuidesState2[HorizontalGuidesState2[\"Disabled\"] = 0] = \"Disabled\";\n      HorizontalGuidesState2[HorizontalGuidesState2[\"EnabledForActive\"] = 1] = \"EnabledForActive\";\n      HorizontalGuidesState2[HorizontalGuidesState2[\"Enabled\"] = 2] = \"Enabled\";\n    })(HorizontalGuidesState || (HorizontalGuidesState = {}));\n    IndentGuide = class {\n      constructor(visibleColumn, column, className2, horizontalLine, forWrappedLinesAfterColumn, forWrappedLinesBeforeOrAtColumn) {\n        this.visibleColumn = visibleColumn;\n        this.column = column;\n        this.className = className2;\n        this.horizontalLine = horizontalLine;\n        this.forWrappedLinesAfterColumn = forWrappedLinesAfterColumn;\n        this.forWrappedLinesBeforeOrAtColumn = forWrappedLinesBeforeOrAtColumn;\n        if (visibleColumn !== -1 === (column !== -1)) {\n          throw new Error();\n        }\n      }\n    };\n    IndentGuideHorizontalLine = class {\n      constructor(top, endColumn) {\n        this.top = top;\n        this.endColumn = endColumn;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/guidesTextModelPart.js\nvar GuidesTextModelPart, BracketPairGuidesClassNames;\nvar init_guidesTextModelPart = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/guidesTextModelPart.js\"() {\n    init_arraysFind();\n    init_strings();\n    init_cursorColumns();\n    init_range();\n    init_textModelPart();\n    init_utils4();\n    init_textModelGuides();\n    init_errors();\n    GuidesTextModelPart = class extends TextModelPart {\n      constructor(textModel, languageConfigurationService) {\n        super();\n        this.textModel = textModel;\n        this.languageConfigurationService = languageConfigurationService;\n      }\n      getLanguageConfiguration(languageId) {\n        return this.languageConfigurationService.getLanguageConfiguration(languageId);\n      }\n      _computeIndentLevel(lineIndex) {\n        return computeIndentLevel(this.textModel.getLineContent(lineIndex + 1), this.textModel.getOptions().tabSize);\n      }\n      getActiveIndentGuide(lineNumber, minLineNumber, maxLineNumber) {\n        this.assertNotDisposed();\n        const lineCount = this.textModel.getLineCount();\n        if (lineNumber \u003c 1 || lineNumber \u003e lineCount) {\n          throw new BugIndicatingError(\"Illegal value for lineNumber\");\n        }\n        const foldingRules = this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules;\n        const offSide = Boolean(foldingRules \u0026\u0026 foldingRules.offSide);\n        let up_aboveContentLineIndex = -2;\n        let up_aboveContentLineIndent = -1;\n        let up_belowContentLineIndex = -2;\n        let up_belowContentLineIndent = -1;\n        const up_resolveIndents = (lineNumber2) =\u003e {\n          if (up_aboveContentLineIndex !== -1 \u0026\u0026 (up_aboveContentLineIndex === -2 || up_aboveContentLineIndex \u003e lineNumber2 - 1)) {\n            up_aboveContentLineIndex = -1;\n            up_aboveContentLineIndent = -1;\n            for (let lineIndex = lineNumber2 - 2; lineIndex \u003e= 0; lineIndex--) {\n              const indent2 = this._computeIndentLevel(lineIndex);\n              if (indent2 \u003e= 0) {\n                up_aboveContentLineIndex = lineIndex;\n                up_aboveContentLineIndent = indent2;\n                break;\n              }\n            }\n          }\n          if (up_belowContentLineIndex === -2) {\n            up_belowContentLineIndex = -1;\n            up_belowContentLineIndent = -1;\n            for (let lineIndex = lineNumber2; lineIndex \u003c lineCount; lineIndex++) {\n              const indent2 = this._computeIndentLevel(lineIndex);\n              if (indent2 \u003e= 0) {\n                up_belowContentLineIndex = lineIndex;\n                up_belowContentLineIndent = indent2;\n                break;\n              }\n            }\n          }\n        };\n        let down_aboveContentLineIndex = -2;\n        let down_aboveContentLineIndent = -1;\n        let down_belowContentLineIndex = -2;\n        let down_belowContentLineIndent = -1;\n        const down_resolveIndents = (lineNumber2) =\u003e {\n          if (down_aboveContentLineIndex === -2) {\n            down_aboveContentLineIndex = -1;\n            down_aboveContentLineIndent = -1;\n            for (let lineIndex = lineNumber2 - 2; lineIndex \u003e= 0; lineIndex--) {\n              const indent2 = this._computeIndentLevel(lineIndex);\n              if (indent2 \u003e= 0) {\n                down_aboveContentLineIndex = lineIndex;\n                down_aboveContentLineIndent = indent2;\n                break;\n              }\n            }\n          }\n          if (down_belowContentLineIndex !== -1 \u0026\u0026 (down_belowContentLineIndex === -2 || down_belowContentLineIndex \u003c lineNumber2 - 1)) {\n            down_belowContentLineIndex = -1;\n            down_belowContentLineIndent = -1;\n            for (let lineIndex = lineNumber2; lineIndex \u003c lineCount; lineIndex++) {\n              const indent2 = this._computeIndentLevel(lineIndex);\n              if (indent2 \u003e= 0) {\n                down_belowContentLineIndex = lineIndex;\n                down_belowContentLineIndent = indent2;\n                break;\n              }\n            }\n          }\n        };\n        let startLineNumber = 0;\n        let goUp = true;\n        let endLineNumber = 0;\n        let goDown = true;\n        let indent = 0;\n        let initialIndent = 0;\n        for (let distance = 0; goUp || goDown; distance++) {\n          const upLineNumber = lineNumber - distance;\n          const downLineNumber = lineNumber + distance;\n          if (distance \u003e 1 \u0026\u0026 (upLineNumber \u003c 1 || upLineNumber \u003c minLineNumber)) {\n            goUp = false;\n          }\n          if (distance \u003e 1 \u0026\u0026 (downLineNumber \u003e lineCount || downLineNumber \u003e maxLineNumber)) {\n            goDown = false;\n          }\n          if (distance \u003e 5e4) {\n            goUp = false;\n            goDown = false;\n          }\n          let upLineIndentLevel = -1;\n          if (goUp \u0026\u0026 upLineNumber \u003e= 1) {\n            const currentIndent = this._computeIndentLevel(upLineNumber - 1);\n            if (currentIndent \u003e= 0) {\n              up_belowContentLineIndex = upLineNumber - 1;\n              up_belowContentLineIndent = currentIndent;\n              upLineIndentLevel = Math.ceil(currentIndent / this.textModel.getOptions().indentSize);\n            } else {\n              up_resolveIndents(upLineNumber);\n              upLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, up_aboveContentLineIndent, up_belowContentLineIndent);\n            }\n          }\n          let downLineIndentLevel = -1;\n          if (goDown \u0026\u0026 downLineNumber \u003c= lineCount) {\n            const currentIndent = this._computeIndentLevel(downLineNumber - 1);\n            if (currentIndent \u003e= 0) {\n              down_aboveContentLineIndex = downLineNumber - 1;\n              down_aboveContentLineIndent = currentIndent;\n              downLineIndentLevel = Math.ceil(currentIndent / this.textModel.getOptions().indentSize);\n            } else {\n              down_resolveIndents(downLineNumber);\n              downLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, down_aboveContentLineIndent, down_belowContentLineIndent);\n            }\n          }\n          if (distance === 0) {\n            initialIndent = upLineIndentLevel;\n            continue;\n          }\n          if (distance === 1) {\n            if (downLineNumber \u003c= lineCount \u0026\u0026 downLineIndentLevel \u003e= 0 \u0026\u0026 initialIndent + 1 === downLineIndentLevel) {\n              goUp = false;\n              startLineNumber = downLineNumber;\n              endLineNumber = downLineNumber;\n              indent = downLineIndentLevel;\n              continue;\n            }\n            if (upLineNumber \u003e= 1 \u0026\u0026 upLineIndentLevel \u003e= 0 \u0026\u0026 upLineIndentLevel - 1 === initialIndent) {\n              goDown = false;\n              startLineNumber = upLineNumber;\n              endLineNumber = upLineNumber;\n              indent = upLineIndentLevel;\n              continue;\n            }\n            startLineNumber = lineNumber;\n            endLineNumber = lineNumber;\n            indent = initialIndent;\n            if (indent === 0) {\n              return { startLineNumber, endLineNumber, indent };\n            }\n          }\n          if (goUp) {\n            if (upLineIndentLevel \u003e= indent) {\n              startLineNumber = upLineNumber;\n            } else {\n              goUp = false;\n            }\n          }\n          if (goDown) {\n            if (downLineIndentLevel \u003e= indent) {\n              endLineNumber = downLineNumber;\n            } else {\n              goDown = false;\n            }\n          }\n        }\n        return { startLineNumber, endLineNumber, indent };\n      }\n      getLinesBracketGuides(startLineNumber, endLineNumber, activePosition, options2) {\n        const result = [];\n        for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n          result.push([]);\n        }\n        const includeSingleLinePairs = true;\n        const bracketPairs = this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new Range(startLineNumber, 1, endLineNumber, this.textModel.getLineMaxColumn(endLineNumber))).toArray();\n        let activeBracketPairRange = void 0;\n        if (activePosition \u0026\u0026 bracketPairs.length \u003e 0) {\n          const bracketsContainingActivePosition = (startLineNumber \u003c= activePosition.lineNumber \u0026\u0026 activePosition.lineNumber \u003c= endLineNumber ? bracketPairs : this.textModel.bracketPairs.getBracketPairsInRange(Range.fromPositions(activePosition)).toArray()).filter((bp) =\u003e Range.strictContainsPosition(bp.range, activePosition));\n          activeBracketPairRange = findLast(bracketsContainingActivePosition, (i2) =\u003e includeSingleLinePairs || i2.range.startLineNumber !== i2.range.endLineNumber)?.range;\n        }\n        const independentColorPoolPerBracketType = this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType;\n        const colorProvider = new BracketPairGuidesClassNames();\n        for (const pair of bracketPairs) {\n          if (!pair.closingBracketRange) {\n            continue;\n          }\n          const isActive = activeBracketPairRange \u0026\u0026 pair.range.equalsRange(activeBracketPairRange);\n          if (!isActive \u0026\u0026 !options2.includeInactive) {\n            continue;\n          }\n          const className2 = colorProvider.getInlineClassName(pair.nestingLevel, pair.nestingLevelOfEqualBracketType, independentColorPoolPerBracketType) + (options2.highlightActive \u0026\u0026 isActive ? \" \" + colorProvider.activeClassName : \"\");\n          const start = pair.openingBracketRange.getStartPosition();\n          const end = pair.closingBracketRange.getStartPosition();\n          const horizontalGuides = options2.horizontalGuides === HorizontalGuidesState.Enabled || options2.horizontalGuides === HorizontalGuidesState.EnabledForActive \u0026\u0026 isActive;\n          if (pair.range.startLineNumber === pair.range.endLineNumber) {\n            if (includeSingleLinePairs \u0026\u0026 horizontalGuides) {\n              result[pair.range.startLineNumber - startLineNumber].push(new IndentGuide(-1, pair.openingBracketRange.getEndPosition().column, className2, new IndentGuideHorizontalLine(false, end.column), -1, -1));\n            }\n            continue;\n          }\n          const endVisibleColumn = this.getVisibleColumnFromPosition(end);\n          const startVisibleColumn = this.getVisibleColumnFromPosition(pair.openingBracketRange.getStartPosition());\n          const guideVisibleColumn = Math.min(startVisibleColumn, endVisibleColumn, pair.minVisibleColumnIndentation + 1);\n          let renderHorizontalEndLineAtTheBottom = false;\n          const firstNonWsIndex = firstNonWhitespaceIndex(this.textModel.getLineContent(pair.closingBracketRange.startLineNumber));\n          const hasTextBeforeClosingBracket = firstNonWsIndex \u003c pair.closingBracketRange.startColumn - 1;\n          if (hasTextBeforeClosingBracket) {\n            renderHorizontalEndLineAtTheBottom = true;\n          }\n          const visibleGuideStartLineNumber = Math.max(start.lineNumber, startLineNumber);\n          const visibleGuideEndLineNumber = Math.min(end.lineNumber, endLineNumber);\n          const offset = renderHorizontalEndLineAtTheBottom ? 1 : 0;\n          for (let l = visibleGuideStartLineNumber; l \u003c visibleGuideEndLineNumber + offset; l++) {\n            result[l - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className2, null, l === start.lineNumber ? start.column : -1, l === end.lineNumber ? end.column : -1));\n          }\n          if (horizontalGuides) {\n            if (start.lineNumber \u003e= startLineNumber \u0026\u0026 startVisibleColumn \u003e guideVisibleColumn) {\n              result[start.lineNumber - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className2, new IndentGuideHorizontalLine(false, start.column), -1, -1));\n            }\n            if (end.lineNumber \u003c= endLineNumber \u0026\u0026 endVisibleColumn \u003e guideVisibleColumn) {\n              result[end.lineNumber - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className2, new IndentGuideHorizontalLine(!renderHorizontalEndLineAtTheBottom, end.column), -1, -1));\n            }\n          }\n        }\n        for (const guides of result) {\n          guides.sort((a, b) =\u003e a.visibleColumn - b.visibleColumn);\n        }\n        return result;\n      }\n      getVisibleColumnFromPosition(position) {\n        return CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(position.lineNumber), position.column, this.textModel.getOptions().tabSize) + 1;\n      }\n      getLinesIndentGuides(startLineNumber, endLineNumber) {\n        this.assertNotDisposed();\n        const lineCount = this.textModel.getLineCount();\n        if (startLineNumber \u003c 1 || startLineNumber \u003e lineCount) {\n          throw new Error(\"Illegal value for startLineNumber\");\n        }\n        if (endLineNumber \u003c 1 || endLineNumber \u003e lineCount) {\n          throw new Error(\"Illegal value for endLineNumber\");\n        }\n        const options2 = this.textModel.getOptions();\n        const foldingRules = this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules;\n        const offSide = Boolean(foldingRules \u0026\u0026 foldingRules.offSide);\n        const result = new Array(endLineNumber - startLineNumber + 1);\n        let aboveContentLineIndex = -2;\n        let aboveContentLineIndent = -1;\n        let belowContentLineIndex = -2;\n        let belowContentLineIndent = -1;\n        for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n          const resultIndex = lineNumber - startLineNumber;\n          const currentIndent = this._computeIndentLevel(lineNumber - 1);\n          if (currentIndent \u003e= 0) {\n            aboveContentLineIndex = lineNumber - 1;\n            aboveContentLineIndent = currentIndent;\n            result[resultIndex] = Math.ceil(currentIndent / options2.indentSize);\n            continue;\n          }\n          if (aboveContentLineIndex === -2) {\n            aboveContentLineIndex = -1;\n            aboveContentLineIndent = -1;\n            for (let lineIndex = lineNumber - 2; lineIndex \u003e= 0; lineIndex--) {\n              const indent = this._computeIndentLevel(lineIndex);\n              if (indent \u003e= 0) {\n                aboveContentLineIndex = lineIndex;\n                aboveContentLineIndent = indent;\n                break;\n              }\n            }\n          }\n          if (belowContentLineIndex !== -1 \u0026\u0026 (belowContentLineIndex === -2 || belowContentLineIndex \u003c lineNumber - 1)) {\n            belowContentLineIndex = -1;\n            belowContentLineIndent = -1;\n            for (let lineIndex = lineNumber; lineIndex \u003c lineCount; lineIndex++) {\n              const indent = this._computeIndentLevel(lineIndex);\n              if (indent \u003e= 0) {\n                belowContentLineIndex = lineIndex;\n                belowContentLineIndent = indent;\n                break;\n              }\n            }\n          }\n          result[resultIndex] = this._getIndentLevelForWhitespaceLine(offSide, aboveContentLineIndent, belowContentLineIndent);\n        }\n        return result;\n      }\n      _getIndentLevelForWhitespaceLine(offSide, aboveContentLineIndent, belowContentLineIndent) {\n        const options2 = this.textModel.getOptions();\n        if (aboveContentLineIndent === -1 || belowContentLineIndent === -1) {\n          return 0;\n        } else if (aboveContentLineIndent \u003c belowContentLineIndent) {\n          return 1 + Math.floor(aboveContentLineIndent / options2.indentSize);\n        } else if (aboveContentLineIndent === belowContentLineIndent) {\n          return Math.ceil(belowContentLineIndent / options2.indentSize);\n        } else {\n          if (offSide) {\n            return Math.ceil(belowContentLineIndent / options2.indentSize);\n          } else {\n            return 1 + Math.floor(belowContentLineIndent / options2.indentSize);\n          }\n        }\n      }\n    };\n    BracketPairGuidesClassNames = class {\n      constructor() {\n        this.activeClassName = \"indent-active\";\n      }\n      getInlineClassName(nestingLevel, nestingLevelOfEqualBracketType, independentColorPoolPerBracketType) {\n        return this.getInlineClassNameOfLevel(independentColorPoolPerBracketType ? nestingLevelOfEqualBracketType : nestingLevel);\n      }\n      getInlineClassNameOfLevel(level) {\n        return `bracket-indent-guide lvl-${level % 30}`;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokenizationRegistry.js\nvar TokenizationRegistry, TokenizationSupportFactoryData;\nvar init_tokenizationRegistry = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokenizationRegistry.js\"() {\n    init_event();\n    init_lifecycle();\n    TokenizationRegistry = class {\n      constructor() {\n        this._tokenizationSupports = /* @__PURE__ */ new Map();\n        this._factories = /* @__PURE__ */ new Map();\n        this._onDidChange = new Emitter();\n        this.onDidChange = this._onDidChange.event;\n        this._colorMap = null;\n      }\n      handleChange(languageIds) {\n        this._onDidChange.fire({\n          changedLanguages: languageIds,\n          changedColorMap: false\n        });\n      }\n      register(languageId, support) {\n        this._tokenizationSupports.set(languageId, support);\n        this.handleChange([languageId]);\n        return toDisposable(() =\u003e {\n          if (this._tokenizationSupports.get(languageId) !== support) {\n            return;\n          }\n          this._tokenizationSupports.delete(languageId);\n          this.handleChange([languageId]);\n        });\n      }\n      get(languageId) {\n        return this._tokenizationSupports.get(languageId) || null;\n      }\n      registerFactory(languageId, factory) {\n        this._factories.get(languageId)?.dispose();\n        const myData = new TokenizationSupportFactoryData(this, languageId, factory);\n        this._factories.set(languageId, myData);\n        return toDisposable(() =\u003e {\n          const v = this._factories.get(languageId);\n          if (!v || v !== myData) {\n            return;\n          }\n          this._factories.delete(languageId);\n          v.dispose();\n        });\n      }\n      async getOrCreate(languageId) {\n        const tokenizationSupport = this.get(languageId);\n        if (tokenizationSupport) {\n          return tokenizationSupport;\n        }\n        const factory = this._factories.get(languageId);\n        if (!factory || factory.isResolved) {\n          return null;\n        }\n        await factory.resolve();\n        return this.get(languageId);\n      }\n      isResolved(languageId) {\n        const tokenizationSupport = this.get(languageId);\n        if (tokenizationSupport) {\n          return true;\n        }\n        const factory = this._factories.get(languageId);\n        if (!factory || factory.isResolved) {\n          return true;\n        }\n        return false;\n      }\n      setColorMap(colorMap) {\n        this._colorMap = colorMap;\n        this._onDidChange.fire({\n          changedLanguages: Array.from(this._tokenizationSupports.keys()),\n          changedColorMap: true\n        });\n      }\n      getColorMap() {\n        return this._colorMap;\n      }\n      getDefaultBackground() {\n        if (this._colorMap \u0026\u0026 this._colorMap.length \u003e 2) {\n          return this._colorMap[\n            2\n            /* ColorId.DefaultBackground */\n          ];\n        }\n        return null;\n      }\n    };\n    TokenizationSupportFactoryData = class extends Disposable {\n      get isResolved() {\n        return this._isResolved;\n      }\n      constructor(_registry2, _languageId, _factory) {\n        super();\n        this._registry = _registry2;\n        this._languageId = _languageId;\n        this._factory = _factory;\n        this._isDisposed = false;\n        this._resolvePromise = null;\n        this._isResolved = false;\n      }\n      dispose() {\n        this._isDisposed = true;\n        super.dispose();\n      }\n      async resolve() {\n        if (!this._resolvePromise) {\n          this._resolvePromise = this._create();\n        }\n        return this._resolvePromise;\n      }\n      async _create() {\n        const value = await this._factory.tokenizationSupport;\n        this._isResolved = true;\n        if (value \u0026\u0026 !this._isDisposed) {\n          this._register(this._registry.register(this._languageId, value));\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages.js\nfunction isLocationLink(thing) {\n  return thing \u0026\u0026 URI.isUri(thing.uri) \u0026\u0026 Range.isIRange(thing.range) \u0026\u0026 (Range.isIRange(thing.originSelectionRange) || Range.isIRange(thing.targetSelectionRange));\n}\nfunction getAriaLabelForSymbol(symbolName, kind) {\n  return localize(776, \"{0} ({1})\", symbolName, symbolKindNames[kind]);\n}\nvar Token, TokenizationResult, EncodedTokenizationResult, HoverVerbosityAction, CompletionItemKinds, InlineCompletionTriggerKind, SelectedSuggestionInfo, InlineCompletionDisplayLocationKind, ProviderId, InlineCompletionEndOfLifeReasonKind, DocumentPasteTriggerKind, SignatureHelpTriggerKind, DocumentHighlightKind, symbolKindNames, SymbolKinds, FoldingRangeKind, NewSymbolNameTag, NewSymbolNameTriggerKind, Command2, InlayHintKind, LazyTokenizationSupport, TokenizationRegistry2;\nvar init_languages = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages.js\"() {\n    init_codicons();\n    init_uri();\n    init_range();\n    init_tokenizationRegistry();\n    init_nls();\n    Token = class {\n      constructor(offset, type, language2) {\n        this.offset = offset;\n        this.type = type;\n        this.language = language2;\n        this._tokenBrand = void 0;\n      }\n      toString() {\n        return \"(\" + this.offset + \", \" + this.type + \")\";\n      }\n    };\n    TokenizationResult = class {\n      constructor(tokens, endState) {\n        this.tokens = tokens;\n        this.endState = endState;\n        this._tokenizationResultBrand = void 0;\n      }\n    };\n    EncodedTokenizationResult = class {\n      constructor(tokens, endState) {\n        this.tokens = tokens;\n        this.endState = endState;\n        this._encodedTokenizationResultBrand = void 0;\n      }\n    };\n    (function(HoverVerbosityAction3) {\n      HoverVerbosityAction3[HoverVerbosityAction3[\"Increase\"] = 0] = \"Increase\";\n      HoverVerbosityAction3[HoverVerbosityAction3[\"Decrease\"] = 1] = \"Decrease\";\n    })(HoverVerbosityAction || (HoverVerbosityAction = {}));\n    (function(CompletionItemKinds2) {\n      const byKind = /* @__PURE__ */ new Map();\n      byKind.set(0, Codicon.symbolMethod);\n      byKind.set(1, Codicon.symbolFunction);\n      byKind.set(2, Codicon.symbolConstructor);\n      byKind.set(3, Codicon.symbolField);\n      byKind.set(4, Codicon.symbolVariable);\n      byKind.set(5, Codicon.symbolClass);\n      byKind.set(6, Codicon.symbolStruct);\n      byKind.set(7, Codicon.symbolInterface);\n      byKind.set(8, Codicon.symbolModule);\n      byKind.set(9, Codicon.symbolProperty);\n      byKind.set(10, Codicon.symbolEvent);\n      byKind.set(11, Codicon.symbolOperator);\n      byKind.set(12, Codicon.symbolUnit);\n      byKind.set(13, Codicon.symbolValue);\n      byKind.set(15, Codicon.symbolEnum);\n      byKind.set(14, Codicon.symbolConstant);\n      byKind.set(15, Codicon.symbolEnum);\n      byKind.set(16, Codicon.symbolEnumMember);\n      byKind.set(17, Codicon.symbolKeyword);\n      byKind.set(28, Codicon.symbolSnippet);\n      byKind.set(18, Codicon.symbolText);\n      byKind.set(19, Codicon.symbolColor);\n      byKind.set(20, Codicon.symbolFile);\n      byKind.set(21, Codicon.symbolReference);\n      byKind.set(22, Codicon.symbolCustomColor);\n      byKind.set(23, Codicon.symbolFolder);\n      byKind.set(24, Codicon.symbolTypeParameter);\n      byKind.set(25, Codicon.account);\n      byKind.set(26, Codicon.issues);\n      byKind.set(27, Codicon.tools);\n      function toIcon(kind) {\n        let codicon = byKind.get(kind);\n        if (!codicon) {\n          console.info(\"No codicon found for CompletionItemKind \" + kind);\n          codicon = Codicon.symbolProperty;\n        }\n        return codicon;\n      }\n      CompletionItemKinds2.toIcon = toIcon;\n      function toLabel(kind) {\n        switch (kind) {\n          case 0:\n            return localize(721, \"Method\");\n          case 1:\n            return localize(722, \"Function\");\n          case 2:\n            return localize(723, \"Constructor\");\n          case 3:\n            return localize(724, \"Field\");\n          case 4:\n            return localize(725, \"Variable\");\n          case 5:\n            return localize(726, \"Class\");\n          case 6:\n            return localize(727, \"Struct\");\n          case 7:\n            return localize(728, \"Interface\");\n          case 8:\n            return localize(729, \"Module\");\n          case 9:\n            return localize(730, \"Property\");\n          case 10:\n            return localize(731, \"Event\");\n          case 11:\n            return localize(732, \"Operator\");\n          case 12:\n            return localize(733, \"Unit\");\n          case 13:\n            return localize(734, \"Value\");\n          case 14:\n            return localize(735, \"Constant\");\n          case 15:\n            return localize(736, \"Enum\");\n          case 16:\n            return localize(737, \"Enum Member\");\n          case 17:\n            return localize(738, \"Keyword\");\n          case 18:\n            return localize(739, \"Text\");\n          case 19:\n            return localize(740, \"Color\");\n          case 20:\n            return localize(741, \"File\");\n          case 21:\n            return localize(742, \"Reference\");\n          case 22:\n            return localize(743, \"Custom Color\");\n          case 23:\n            return localize(744, \"Folder\");\n          case 24:\n            return localize(745, \"Type Parameter\");\n          case 25:\n            return localize(746, \"User\");\n          case 26:\n            return localize(747, \"Issue\");\n          case 27:\n            return localize(748, \"Tool\");\n          case 28:\n            return localize(749, \"Snippet\");\n          default:\n            return \"\";\n        }\n      }\n      CompletionItemKinds2.toLabel = toLabel;\n      const data = /* @__PURE__ */ new Map();\n      data.set(\n        \"method\",\n        0\n        /* CompletionItemKind.Method */\n      );\n      data.set(\n        \"function\",\n        1\n        /* CompletionItemKind.Function */\n      );\n      data.set(\n        \"constructor\",\n        2\n        /* CompletionItemKind.Constructor */\n      );\n      data.set(\n        \"field\",\n        3\n        /* CompletionItemKind.Field */\n      );\n      data.set(\n        \"variable\",\n        4\n        /* CompletionItemKind.Variable */\n      );\n      data.set(\n        \"class\",\n        5\n        /* CompletionItemKind.Class */\n      );\n      data.set(\n        \"struct\",\n        6\n        /* CompletionItemKind.Struct */\n      );\n      data.set(\n        \"interface\",\n        7\n        /* CompletionItemKind.Interface */\n      );\n      data.set(\n        \"module\",\n        8\n        /* CompletionItemKind.Module */\n      );\n      data.set(\n        \"property\",\n        9\n        /* CompletionItemKind.Property */\n      );\n      data.set(\n        \"event\",\n        10\n        /* CompletionItemKind.Event */\n      );\n      data.set(\n        \"operator\",\n        11\n        /* CompletionItemKind.Operator */\n      );\n      data.set(\n        \"unit\",\n        12\n        /* CompletionItemKind.Unit */\n      );\n      data.set(\n        \"value\",\n        13\n        /* CompletionItemKind.Value */\n      );\n      data.set(\n        \"constant\",\n        14\n        /* CompletionItemKind.Constant */\n      );\n      data.set(\n        \"enum\",\n        15\n        /* CompletionItemKind.Enum */\n      );\n      data.set(\n        \"enum-member\",\n        16\n        /* CompletionItemKind.EnumMember */\n      );\n      data.set(\n        \"enumMember\",\n        16\n        /* CompletionItemKind.EnumMember */\n      );\n      data.set(\n        \"keyword\",\n        17\n        /* CompletionItemKind.Keyword */\n      );\n      data.set(\n        \"snippet\",\n        28\n        /* CompletionItemKind.Snippet */\n      );\n      data.set(\n        \"text\",\n        18\n        /* CompletionItemKind.Text */\n      );\n      data.set(\n        \"color\",\n        19\n        /* CompletionItemKind.Color */\n      );\n      data.set(\n        \"file\",\n        20\n        /* CompletionItemKind.File */\n      );\n      data.set(\n        \"reference\",\n        21\n        /* CompletionItemKind.Reference */\n      );\n      data.set(\n        \"customcolor\",\n        22\n        /* CompletionItemKind.Customcolor */\n      );\n      data.set(\n        \"folder\",\n        23\n        /* CompletionItemKind.Folder */\n      );\n      data.set(\n        \"type-parameter\",\n        24\n        /* CompletionItemKind.TypeParameter */\n      );\n      data.set(\n        \"typeParameter\",\n        24\n        /* CompletionItemKind.TypeParameter */\n      );\n      data.set(\n        \"account\",\n        25\n        /* CompletionItemKind.User */\n      );\n      data.set(\n        \"issue\",\n        26\n        /* CompletionItemKind.Issue */\n      );\n      data.set(\n        \"tool\",\n        27\n        /* CompletionItemKind.Tool */\n      );\n      function fromString(value, strict) {\n        let res = data.get(value);\n        if (typeof res === \"undefined\" \u0026\u0026 !strict) {\n          res = 9;\n        }\n        return res;\n      }\n      CompletionItemKinds2.fromString = fromString;\n    })(CompletionItemKinds || (CompletionItemKinds = {}));\n    (function(InlineCompletionTriggerKind3) {\n      InlineCompletionTriggerKind3[InlineCompletionTriggerKind3[\"Automatic\"] = 0] = \"Automatic\";\n      InlineCompletionTriggerKind3[InlineCompletionTriggerKind3[\"Explicit\"] = 1] = \"Explicit\";\n    })(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\n    SelectedSuggestionInfo = class {\n      constructor(range2, text2, completionKind, isSnippetText) {\n        this.range = range2;\n        this.text = text2;\n        this.completionKind = completionKind;\n        this.isSnippetText = isSnippetText;\n      }\n      equals(other) {\n        return Range.lift(this.range).equalsRange(other.range) \u0026\u0026 this.text === other.text \u0026\u0026 this.completionKind === other.completionKind \u0026\u0026 this.isSnippetText === other.isSnippetText;\n      }\n    };\n    (function(InlineCompletionDisplayLocationKind3) {\n      InlineCompletionDisplayLocationKind3[InlineCompletionDisplayLocationKind3[\"Code\"] = 1] = \"Code\";\n      InlineCompletionDisplayLocationKind3[InlineCompletionDisplayLocationKind3[\"Label\"] = 2] = \"Label\";\n    })(InlineCompletionDisplayLocationKind || (InlineCompletionDisplayLocationKind = {}));\n    ProviderId = class _ProviderId {\n      static fromExtensionId(extensionId) {\n        return new _ProviderId(extensionId, void 0, void 0);\n      }\n      constructor(extensionId, extensionVersion, providerId) {\n        this.extensionId = extensionId;\n        this.extensionVersion = extensionVersion;\n        this.providerId = providerId;\n      }\n      toString() {\n        let result = \"\";\n        if (this.extensionId) {\n          result += this.extensionId;\n        }\n        if (this.extensionVersion) {\n          result += `@${this.extensionVersion}`;\n        }\n        if (this.providerId) {\n          result += `:${this.providerId}`;\n        }\n        if (result.length === 0) {\n          result = \"unknown\";\n        }\n        return result;\n      }\n    };\n    (function(InlineCompletionEndOfLifeReasonKind3) {\n      InlineCompletionEndOfLifeReasonKind3[InlineCompletionEndOfLifeReasonKind3[\"Accepted\"] = 0] = \"Accepted\";\n      InlineCompletionEndOfLifeReasonKind3[InlineCompletionEndOfLifeReasonKind3[\"Rejected\"] = 1] = \"Rejected\";\n      InlineCompletionEndOfLifeReasonKind3[InlineCompletionEndOfLifeReasonKind3[\"Ignored\"] = 2] = \"Ignored\";\n    })(InlineCompletionEndOfLifeReasonKind || (InlineCompletionEndOfLifeReasonKind = {}));\n    (function(DocumentPasteTriggerKind2) {\n      DocumentPasteTriggerKind2[DocumentPasteTriggerKind2[\"Automatic\"] = 0] = \"Automatic\";\n      DocumentPasteTriggerKind2[DocumentPasteTriggerKind2[\"PasteAs\"] = 1] = \"PasteAs\";\n    })(DocumentPasteTriggerKind || (DocumentPasteTriggerKind = {}));\n    (function(SignatureHelpTriggerKind3) {\n      SignatureHelpTriggerKind3[SignatureHelpTriggerKind3[\"Invoke\"] = 1] = \"Invoke\";\n      SignatureHelpTriggerKind3[SignatureHelpTriggerKind3[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n      SignatureHelpTriggerKind3[SignatureHelpTriggerKind3[\"ContentChange\"] = 3] = \"ContentChange\";\n    })(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {}));\n    (function(DocumentHighlightKind3) {\n      DocumentHighlightKind3[DocumentHighlightKind3[\"Text\"] = 0] = \"Text\";\n      DocumentHighlightKind3[DocumentHighlightKind3[\"Read\"] = 1] = \"Read\";\n      DocumentHighlightKind3[DocumentHighlightKind3[\"Write\"] = 2] = \"Write\";\n    })(DocumentHighlightKind || (DocumentHighlightKind = {}));\n    symbolKindNames = {\n      [\n        17\n        /* SymbolKind.Array */\n      ]: localize(750, \"array\"),\n      [\n        16\n        /* SymbolKind.Boolean */\n      ]: localize(751, \"boolean\"),\n      [\n        4\n        /* SymbolKind.Class */\n      ]: localize(752, \"class\"),\n      [\n        13\n        /* SymbolKind.Constant */\n      ]: localize(753, \"constant\"),\n      [\n        8\n        /* SymbolKind.Constructor */\n      ]: localize(754, \"constructor\"),\n      [\n        9\n        /* SymbolKind.Enum */\n      ]: localize(755, \"enumeration\"),\n      [\n        21\n        /* SymbolKind.EnumMember */\n      ]: localize(756, \"enumeration member\"),\n      [\n        23\n        /* SymbolKind.Event */\n      ]: localize(757, \"event\"),\n      [\n        7\n        /* SymbolKind.Field */\n      ]: localize(758, \"field\"),\n      [\n        0\n        /* SymbolKind.File */\n      ]: localize(759, \"file\"),\n      [\n        11\n        /* SymbolKind.Function */\n      ]: localize(760, \"function\"),\n      [\n        10\n        /* SymbolKind.Interface */\n      ]: localize(761, \"interface\"),\n      [\n        19\n        /* SymbolKind.Key */\n      ]: localize(762, \"key\"),\n      [\n        5\n        /* SymbolKind.Method */\n      ]: localize(763, \"method\"),\n      [\n        1\n        /* SymbolKind.Module */\n      ]: localize(764, \"module\"),\n      [\n        2\n        /* SymbolKind.Namespace */\n      ]: localize(765, \"namespace\"),\n      [\n        20\n        /* SymbolKind.Null */\n      ]: localize(766, \"null\"),\n      [\n        15\n        /* SymbolKind.Number */\n      ]: localize(767, \"number\"),\n      [\n        18\n        /* SymbolKind.Object */\n      ]: localize(768, \"object\"),\n      [\n        24\n        /* SymbolKind.Operator */\n      ]: localize(769, \"operator\"),\n      [\n        3\n        /* SymbolKind.Package */\n      ]: localize(770, \"package\"),\n      [\n        6\n        /* SymbolKind.Property */\n      ]: localize(771, \"property\"),\n      [\n        14\n        /* SymbolKind.String */\n      ]: localize(772, \"string\"),\n      [\n        22\n        /* SymbolKind.Struct */\n      ]: localize(773, \"struct\"),\n      [\n        25\n        /* SymbolKind.TypeParameter */\n      ]: localize(774, \"type parameter\"),\n      [\n        12\n        /* SymbolKind.Variable */\n      ]: localize(775, \"variable\")\n    };\n    (function(SymbolKinds2) {\n      const byKind = /* @__PURE__ */ new Map();\n      byKind.set(0, Codicon.symbolFile);\n      byKind.set(1, Codicon.symbolModule);\n      byKind.set(2, Codicon.symbolNamespace);\n      byKind.set(3, Codicon.symbolPackage);\n      byKind.set(4, Codicon.symbolClass);\n      byKind.set(5, Codicon.symbolMethod);\n      byKind.set(6, Codicon.symbolProperty);\n      byKind.set(7, Codicon.symbolField);\n      byKind.set(8, Codicon.symbolConstructor);\n      byKind.set(9, Codicon.symbolEnum);\n      byKind.set(10, Codicon.symbolInterface);\n      byKind.set(11, Codicon.symbolFunction);\n      byKind.set(12, Codicon.symbolVariable);\n      byKind.set(13, Codicon.symbolConstant);\n      byKind.set(14, Codicon.symbolString);\n      byKind.set(15, Codicon.symbolNumber);\n      byKind.set(16, Codicon.symbolBoolean);\n      byKind.set(17, Codicon.symbolArray);\n      byKind.set(18, Codicon.symbolObject);\n      byKind.set(19, Codicon.symbolKey);\n      byKind.set(20, Codicon.symbolNull);\n      byKind.set(21, Codicon.symbolEnumMember);\n      byKind.set(22, Codicon.symbolStruct);\n      byKind.set(23, Codicon.symbolEvent);\n      byKind.set(24, Codicon.symbolOperator);\n      byKind.set(25, Codicon.symbolTypeParameter);\n      function toIcon(kind) {\n        let icon = byKind.get(kind);\n        if (!icon) {\n          console.info(\"No codicon found for SymbolKind \" + kind);\n          icon = Codicon.symbolProperty;\n        }\n        return icon;\n      }\n      SymbolKinds2.toIcon = toIcon;\n      const byCompletionKind = /* @__PURE__ */ new Map();\n      byCompletionKind.set(\n        0,\n        20\n        /* CompletionItemKind.File */\n      );\n      byCompletionKind.set(\n        1,\n        8\n        /* CompletionItemKind.Module */\n      );\n      byCompletionKind.set(\n        2,\n        8\n        /* CompletionItemKind.Module */\n      );\n      byCompletionKind.set(\n        3,\n        8\n        /* CompletionItemKind.Module */\n      );\n      byCompletionKind.set(\n        4,\n        5\n        /* CompletionItemKind.Class */\n      );\n      byCompletionKind.set(\n        5,\n        0\n        /* CompletionItemKind.Method */\n      );\n      byCompletionKind.set(\n        6,\n        9\n        /* CompletionItemKind.Property */\n      );\n      byCompletionKind.set(\n        7,\n        3\n        /* CompletionItemKind.Field */\n      );\n      byCompletionKind.set(\n        8,\n        2\n        /* CompletionItemKind.Constructor */\n      );\n      byCompletionKind.set(\n        9,\n        15\n        /* CompletionItemKind.Enum */\n      );\n      byCompletionKind.set(\n        10,\n        7\n        /* CompletionItemKind.Interface */\n      );\n      byCompletionKind.set(\n        11,\n        1\n        /* CompletionItemKind.Function */\n      );\n      byCompletionKind.set(\n        12,\n        4\n        /* CompletionItemKind.Variable */\n      );\n      byCompletionKind.set(\n        13,\n        14\n        /* CompletionItemKind.Constant */\n      );\n      byCompletionKind.set(\n        14,\n        18\n        /* CompletionItemKind.Text */\n      );\n      byCompletionKind.set(\n        15,\n        13\n        /* CompletionItemKind.Value */\n      );\n      byCompletionKind.set(\n        16,\n        13\n        /* CompletionItemKind.Value */\n      );\n      byCompletionKind.set(\n        17,\n        13\n        /* CompletionItemKind.Value */\n      );\n      byCompletionKind.set(\n        18,\n        13\n        /* CompletionItemKind.Value */\n      );\n      byCompletionKind.set(\n        19,\n        17\n        /* CompletionItemKind.Keyword */\n      );\n      byCompletionKind.set(\n        20,\n        13\n        /* CompletionItemKind.Value */\n      );\n      byCompletionKind.set(\n        21,\n        16\n        /* CompletionItemKind.EnumMember */\n      );\n      byCompletionKind.set(\n        22,\n        6\n        /* CompletionItemKind.Struct */\n      );\n      byCompletionKind.set(\n        23,\n        10\n        /* CompletionItemKind.Event */\n      );\n      byCompletionKind.set(\n        24,\n        11\n        /* CompletionItemKind.Operator */\n      );\n      byCompletionKind.set(\n        25,\n        24\n        /* CompletionItemKind.TypeParameter */\n      );\n      function toCompletionKind(kind) {\n        let completionKind = byCompletionKind.get(kind);\n        if (completionKind === void 0) {\n          console.info(\"No completion kind found for SymbolKind \" + kind);\n          completionKind = 20;\n        }\n        return completionKind;\n      }\n      SymbolKinds2.toCompletionKind = toCompletionKind;\n    })(SymbolKinds || (SymbolKinds = {}));\n    FoldingRangeKind = class _FoldingRangeKind {\n      static {\n        this.Comment = new _FoldingRangeKind(\"comment\");\n      }\n      static {\n        this.Imports = new _FoldingRangeKind(\"imports\");\n      }\n      static {\n        this.Region = new _FoldingRangeKind(\"region\");\n      }\n      /**\n       * Returns a {@link FoldingRangeKind} for the given value.\n       *\n       * @param value of the kind.\n       */\n      static fromValue(value) {\n        switch (value) {\n          case \"comment\":\n            return _FoldingRangeKind.Comment;\n          case \"imports\":\n            return _FoldingRangeKind.Imports;\n          case \"region\":\n            return _FoldingRangeKind.Region;\n        }\n        return new _FoldingRangeKind(value);\n      }\n      /**\n       * Creates a new {@link FoldingRangeKind}.\n       *\n       * @param value of the kind.\n       */\n      constructor(value) {\n        this.value = value;\n      }\n    };\n    (function(NewSymbolNameTag3) {\n      NewSymbolNameTag3[NewSymbolNameTag3[\"AIGenerated\"] = 1] = \"AIGenerated\";\n    })(NewSymbolNameTag || (NewSymbolNameTag = {}));\n    (function(NewSymbolNameTriggerKind3) {\n      NewSymbolNameTriggerKind3[NewSymbolNameTriggerKind3[\"Invoke\"] = 0] = \"Invoke\";\n      NewSymbolNameTriggerKind3[NewSymbolNameTriggerKind3[\"Automatic\"] = 1] = \"Automatic\";\n    })(NewSymbolNameTriggerKind || (NewSymbolNameTriggerKind = {}));\n    (function(Command3) {\n      function is(obj) {\n        if (!obj || typeof obj !== \"object\") {\n          return false;\n        }\n        return typeof obj.id === \"string\" \u0026\u0026 typeof obj.title === \"string\";\n      }\n      Command3.is = is;\n    })(Command2 || (Command2 = {}));\n    (function(InlayHintKind3) {\n      InlayHintKind3[InlayHintKind3[\"Type\"] = 1] = \"Type\";\n      InlayHintKind3[InlayHintKind3[\"Parameter\"] = 2] = \"Parameter\";\n    })(InlayHintKind || (InlayHintKind = {}));\n    LazyTokenizationSupport = class {\n      constructor(createSupport) {\n        this.createSupport = createSupport;\n        this._tokenizationSupport = null;\n      }\n      dispose() {\n        if (this._tokenizationSupport) {\n          this._tokenizationSupport.then((support) =\u003e {\n            if (support) {\n              support.dispose();\n            }\n          });\n        }\n      }\n      get tokenizationSupport() {\n        if (!this._tokenizationSupport) {\n          this._tokenizationSupport = this.createSupport();\n        }\n        return this._tokenizationSupport;\n      }\n    };\n    TokenizationRegistry2 = new TokenizationRegistry();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/ranges/lineRange.js\nvar LineRange, LineRangeSet;\nvar init_lineRange = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/ranges/lineRange.js\"() {\n    init_errors();\n    init_offsetRange();\n    init_range();\n    init_arraysFind();\n    init_arrays();\n    LineRange = class _LineRange {\n      static ofLength(startLineNumber, length) {\n        return new _LineRange(startLineNumber, startLineNumber + length);\n      }\n      static fromRangeInclusive(range2) {\n        return new _LineRange(range2.startLineNumber, range2.endLineNumber + 1);\n      }\n      static {\n        this.compareByStart = compareBy((l) =\u003e l.startLineNumber, numberComparator);\n      }\n      /**\n       * @param lineRanges An array of arrays of of sorted line ranges.\n       */\n      static joinMany(lineRanges) {\n        if (lineRanges.length === 0) {\n          return [];\n        }\n        let result = new LineRangeSet(lineRanges[0].slice());\n        for (let i2 = 1; i2 \u003c lineRanges.length; i2++) {\n          result = result.getUnion(new LineRangeSet(lineRanges[i2].slice()));\n        }\n        return result.ranges;\n      }\n      static join(lineRanges) {\n        if (lineRanges.length === 0) {\n          throw new BugIndicatingError(\"lineRanges cannot be empty\");\n        }\n        let startLineNumber = lineRanges[0].startLineNumber;\n        let endLineNumberExclusive = lineRanges[0].endLineNumberExclusive;\n        for (let i2 = 1; i2 \u003c lineRanges.length; i2++) {\n          startLineNumber = Math.min(startLineNumber, lineRanges[i2].startLineNumber);\n          endLineNumberExclusive = Math.max(endLineNumberExclusive, lineRanges[i2].endLineNumberExclusive);\n        }\n        return new _LineRange(startLineNumber, endLineNumberExclusive);\n      }\n      /**\n       * @internal\n       */\n      static deserialize(lineRange) {\n        return new _LineRange(lineRange[0], lineRange[1]);\n      }\n      constructor(startLineNumber, endLineNumberExclusive) {\n        if (startLineNumber \u003e endLineNumberExclusive) {\n          throw new BugIndicatingError(`startLineNumber ${startLineNumber} cannot be after endLineNumberExclusive ${endLineNumberExclusive}`);\n        }\n        this.startLineNumber = startLineNumber;\n        this.endLineNumberExclusive = endLineNumberExclusive;\n      }\n      /**\n       * Indicates if this line range contains the given line number.\n       */\n      contains(lineNumber) {\n        return this.startLineNumber \u003c= lineNumber \u0026\u0026 lineNumber \u003c this.endLineNumberExclusive;\n      }\n      /**\n       * Indicates if this line range is empty.\n       */\n      get isEmpty() {\n        return this.startLineNumber === this.endLineNumberExclusive;\n      }\n      /**\n       * Moves this line range by the given offset of line numbers.\n       */\n      delta(offset) {\n        return new _LineRange(this.startLineNumber + offset, this.endLineNumberExclusive + offset);\n      }\n      deltaLength(offset) {\n        return new _LineRange(this.startLineNumber, this.endLineNumberExclusive + offset);\n      }\n      /**\n       * The number of lines this line range spans.\n       */\n      get length() {\n        return this.endLineNumberExclusive - this.startLineNumber;\n      }\n      /**\n       * Creates a line range that combines this and the given line range.\n       */\n      join(other) {\n        return new _LineRange(Math.min(this.startLineNumber, other.startLineNumber), Math.max(this.endLineNumberExclusive, other.endLineNumberExclusive));\n      }\n      toString() {\n        return `[${this.startLineNumber},${this.endLineNumberExclusive})`;\n      }\n      /**\n       * The resulting range is empty if the ranges do not intersect, but touch.\n       * If the ranges don't even touch, the result is undefined.\n       */\n      intersect(other) {\n        const startLineNumber = Math.max(this.startLineNumber, other.startLineNumber);\n        const endLineNumberExclusive = Math.min(this.endLineNumberExclusive, other.endLineNumberExclusive);\n        if (startLineNumber \u003c= endLineNumberExclusive) {\n          return new _LineRange(startLineNumber, endLineNumberExclusive);\n        }\n        return void 0;\n      }\n      intersectsStrict(other) {\n        return this.startLineNumber \u003c other.endLineNumberExclusive \u0026\u0026 other.startLineNumber \u003c this.endLineNumberExclusive;\n      }\n      intersectsOrTouches(other) {\n        return this.startLineNumber \u003c= other.endLineNumberExclusive \u0026\u0026 other.startLineNumber \u003c= this.endLineNumberExclusive;\n      }\n      equals(b) {\n        return this.startLineNumber === b.startLineNumber \u0026\u0026 this.endLineNumberExclusive === b.endLineNumberExclusive;\n      }\n      toInclusiveRange() {\n        if (this.isEmpty) {\n          return null;\n        }\n        return new Range(this.startLineNumber, 1, this.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER);\n      }\n      /**\n       * @deprecated Using this function is discouraged because it might lead to bugs: The end position is not guaranteed to be a valid position!\n      */\n      toExclusiveRange() {\n        return new Range(this.startLineNumber, 1, this.endLineNumberExclusive, 1);\n      }\n      mapToLineArray(f) {\n        const result = [];\n        for (let lineNumber = this.startLineNumber; lineNumber \u003c this.endLineNumberExclusive; lineNumber++) {\n          result.push(f(lineNumber));\n        }\n        return result;\n      }\n      forEach(f) {\n        for (let lineNumber = this.startLineNumber; lineNumber \u003c this.endLineNumberExclusive; lineNumber++) {\n          f(lineNumber);\n        }\n      }\n      /**\n       * @internal\n       */\n      serialize() {\n        return [this.startLineNumber, this.endLineNumberExclusive];\n      }\n      /**\n       * Converts this 1-based line range to a 0-based offset range (subtracts 1!).\n       * @internal\n       */\n      toOffsetRange() {\n        return new OffsetRange(this.startLineNumber - 1, this.endLineNumberExclusive - 1);\n      }\n      addMargin(marginTop, marginBottom) {\n        return new _LineRange(this.startLineNumber - marginTop, this.endLineNumberExclusive + marginBottom);\n      }\n    };\n    LineRangeSet = class _LineRangeSet {\n      constructor(_normalizedRanges = []) {\n        this._normalizedRanges = _normalizedRanges;\n      }\n      get ranges() {\n        return this._normalizedRanges;\n      }\n      addRange(range2) {\n        if (range2.length === 0) {\n          return;\n        }\n        const joinRangeStartIdx = findFirstIdxMonotonousOrArrLen(this._normalizedRanges, (r) =\u003e r.endLineNumberExclusive \u003e= range2.startLineNumber);\n        const joinRangeEndIdxExclusive = findLastIdxMonotonous(this._normalizedRanges, (r) =\u003e r.startLineNumber \u003c= range2.endLineNumberExclusive) + 1;\n        if (joinRangeStartIdx === joinRangeEndIdxExclusive) {\n          this._normalizedRanges.splice(joinRangeStartIdx, 0, range2);\n        } else if (joinRangeStartIdx === joinRangeEndIdxExclusive - 1) {\n          const joinRange = this._normalizedRanges[joinRangeStartIdx];\n          this._normalizedRanges[joinRangeStartIdx] = joinRange.join(range2);\n        } else {\n          const joinRange = this._normalizedRanges[joinRangeStartIdx].join(this._normalizedRanges[joinRangeEndIdxExclusive - 1]).join(range2);\n          this._normalizedRanges.splice(joinRangeStartIdx, joinRangeEndIdxExclusive - joinRangeStartIdx, joinRange);\n        }\n      }\n      contains(lineNumber) {\n        const rangeThatStartsBeforeEnd = findLastMonotonous(this._normalizedRanges, (r) =\u003e r.startLineNumber \u003c= lineNumber);\n        return !!rangeThatStartsBeforeEnd \u0026\u0026 rangeThatStartsBeforeEnd.endLineNumberExclusive \u003e lineNumber;\n      }\n      intersects(range2) {\n        const rangeThatStartsBeforeEnd = findLastMonotonous(this._normalizedRanges, (r) =\u003e r.startLineNumber \u003c range2.endLineNumberExclusive);\n        return !!rangeThatStartsBeforeEnd \u0026\u0026 rangeThatStartsBeforeEnd.endLineNumberExclusive \u003e range2.startLineNumber;\n      }\n      getUnion(other) {\n        if (this._normalizedRanges.length === 0) {\n          return other;\n        }\n        if (other._normalizedRanges.length === 0) {\n          return this;\n        }\n        const result = [];\n        let i1 = 0;\n        let i2 = 0;\n        let current = null;\n        while (i1 \u003c this._normalizedRanges.length || i2 \u003c other._normalizedRanges.length) {\n          let next = null;\n          if (i1 \u003c this._normalizedRanges.length \u0026\u0026 i2 \u003c other._normalizedRanges.length) {\n            const lineRange1 = this._normalizedRanges[i1];\n            const lineRange2 = other._normalizedRanges[i2];\n            if (lineRange1.startLineNumber \u003c lineRange2.startLineNumber) {\n              next = lineRange1;\n              i1++;\n            } else {\n              next = lineRange2;\n              i2++;\n            }\n          } else if (i1 \u003c this._normalizedRanges.length) {\n            next = this._normalizedRanges[i1];\n            i1++;\n          } else {\n            next = other._normalizedRanges[i2];\n            i2++;\n          }\n          if (current === null) {\n            current = next;\n          } else {\n            if (current.endLineNumberExclusive \u003e= next.startLineNumber) {\n              current = new LineRange(current.startLineNumber, Math.max(current.endLineNumberExclusive, next.endLineNumberExclusive));\n            } else {\n              result.push(current);\n              current = next;\n            }\n          }\n        }\n        if (current !== null) {\n          result.push(current);\n        }\n        return new _LineRangeSet(result);\n      }\n      /**\n       * Subtracts all ranges in this set from `range` and returns the result.\n       */\n      subtractFrom(range2) {\n        const joinRangeStartIdx = findFirstIdxMonotonousOrArrLen(this._normalizedRanges, (r) =\u003e r.endLineNumberExclusive \u003e= range2.startLineNumber);\n        const joinRangeEndIdxExclusive = findLastIdxMonotonous(this._normalizedRanges, (r) =\u003e r.startLineNumber \u003c= range2.endLineNumberExclusive) + 1;\n        if (joinRangeStartIdx === joinRangeEndIdxExclusive) {\n          return new _LineRangeSet([range2]);\n        }\n        const result = [];\n        let startLineNumber = range2.startLineNumber;\n        for (let i2 = joinRangeStartIdx; i2 \u003c joinRangeEndIdxExclusive; i2++) {\n          const r = this._normalizedRanges[i2];\n          if (r.startLineNumber \u003e startLineNumber) {\n            result.push(new LineRange(startLineNumber, r.startLineNumber));\n          }\n          startLineNumber = r.endLineNumberExclusive;\n        }\n        if (startLineNumber \u003c range2.endLineNumberExclusive) {\n          result.push(new LineRange(startLineNumber, range2.endLineNumberExclusive));\n        }\n        return new _LineRangeSet(result);\n      }\n      toString() {\n        return this._normalizedRanges.map((r) =\u003e r.toString()).join(\", \");\n      }\n      getIntersection(other) {\n        const result = [];\n        let i1 = 0;\n        let i2 = 0;\n        while (i1 \u003c this._normalizedRanges.length \u0026\u0026 i2 \u003c other._normalizedRanges.length) {\n          const r1 = this._normalizedRanges[i1];\n          const r2 = other._normalizedRanges[i2];\n          const i3 = r1.intersect(r2);\n          if (i3 \u0026\u0026 !i3.isEmpty) {\n            result.push(i3);\n          }\n          if (r1.endLineNumberExclusive \u003c r2.endLineNumberExclusive) {\n            i1++;\n          } else {\n            i2++;\n          }\n        }\n        return new _LineRangeSet(result);\n      }\n      getWithDelta(value) {\n        return new _LineRangeSet(this._normalizedRanges.map((r) =\u003e r.delta(value)));\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/text/textLength.js\nvar TextLength;\nvar init_textLength = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/text/textLength.js\"() {\n    init_lineRange();\n    init_position();\n    init_range();\n    TextLength = class _TextLength {\n      static {\n        this.zero = new _TextLength(0, 0);\n      }\n      static betweenPositions(position1, position2) {\n        if (position1.lineNumber === position2.lineNumber) {\n          return new _TextLength(0, position2.column - position1.column);\n        } else {\n          return new _TextLength(position2.lineNumber - position1.lineNumber, position2.column - 1);\n        }\n      }\n      static fromPosition(pos) {\n        return new _TextLength(pos.lineNumber - 1, pos.column - 1);\n      }\n      static ofRange(range2) {\n        return _TextLength.betweenPositions(range2.getStartPosition(), range2.getEndPosition());\n      }\n      static ofText(text2) {\n        let line = 0;\n        let column = 0;\n        for (const c of text2) {\n          if (c === \"\\n\") {\n            line++;\n            column = 0;\n          } else {\n            column++;\n          }\n        }\n        return new _TextLength(line, column);\n      }\n      constructor(lineCount, columnCount) {\n        this.lineCount = lineCount;\n        this.columnCount = columnCount;\n      }\n      isGreaterThanOrEqualTo(other) {\n        if (this.lineCount !== other.lineCount) {\n          return this.lineCount \u003e other.lineCount;\n        }\n        return this.columnCount \u003e= other.columnCount;\n      }\n      add(other) {\n        if (other.lineCount === 0) {\n          return new _TextLength(this.lineCount, this.columnCount + other.columnCount);\n        } else {\n          return new _TextLength(this.lineCount + other.lineCount, other.columnCount);\n        }\n      }\n      createRange(startPosition) {\n        if (this.lineCount === 0) {\n          return new Range(startPosition.lineNumber, startPosition.column, startPosition.lineNumber, startPosition.column + this.columnCount);\n        } else {\n          return new Range(startPosition.lineNumber, startPosition.column, startPosition.lineNumber + this.lineCount, this.columnCount + 1);\n        }\n      }\n      toRange() {\n        return new Range(1, 1, this.lineCount + 1, this.columnCount + 1);\n      }\n      toLineRange() {\n        return LineRange.ofLength(1, this.lineCount + 1);\n      }\n      addToPosition(position) {\n        if (this.lineCount === 0) {\n          return new Position(position.lineNumber, position.column + this.columnCount);\n        } else {\n          return new Position(position.lineNumber + this.lineCount, this.columnCount + 1);\n        }\n      }\n      toString() {\n        return `${this.lineCount},${this.columnCount}`;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/textModelEvents.js\nvar ModelRawFlush, LineInjectedText, ModelRawLineChanged, ModelLineHeightChanged, ModelFontChanged, ModelRawLinesDeleted, ModelRawLinesInserted, ModelRawEOLChanged, ModelRawContentChangedEvent, ModelInjectedTextChangedEvent, ModelLineHeightChangedEvent, ModelFontChangedEvent, InternalModelContentChangeEvent;\nvar init_textModelEvents = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/textModelEvents.js\"() {\n    ModelRawFlush = class {\n      constructor() {\n        this.changeType = 1;\n      }\n    };\n    LineInjectedText = class _LineInjectedText {\n      static applyInjectedText(lineText, injectedTexts) {\n        if (!injectedTexts || injectedTexts.length === 0) {\n          return lineText;\n        }\n        let result = \"\";\n        let lastOriginalOffset = 0;\n        for (const injectedText of injectedTexts) {\n          result += lineText.substring(lastOriginalOffset, injectedText.column - 1);\n          lastOriginalOffset = injectedText.column - 1;\n          result += injectedText.options.content;\n        }\n        result += lineText.substring(lastOriginalOffset);\n        return result;\n      }\n      static fromDecorations(decorations) {\n        const result = [];\n        for (const decoration3 of decorations) {\n          if (decoration3.options.before \u0026\u0026 decoration3.options.before.content.length \u003e 0) {\n            result.push(new _LineInjectedText(decoration3.ownerId, decoration3.range.startLineNumber, decoration3.range.startColumn, decoration3.options.before, 0));\n          }\n          if (decoration3.options.after \u0026\u0026 decoration3.options.after.content.length \u003e 0) {\n            result.push(new _LineInjectedText(decoration3.ownerId, decoration3.range.endLineNumber, decoration3.range.endColumn, decoration3.options.after, 1));\n          }\n        }\n        result.sort((a, b) =\u003e {\n          if (a.lineNumber === b.lineNumber) {\n            if (a.column === b.column) {\n              return a.order - b.order;\n            }\n            return a.column - b.column;\n          }\n          return a.lineNumber - b.lineNumber;\n        });\n        return result;\n      }\n      constructor(ownerId2, lineNumber, column, options2, order) {\n        this.ownerId = ownerId2;\n        this.lineNumber = lineNumber;\n        this.column = column;\n        this.options = options2;\n        this.order = order;\n      }\n    };\n    ModelRawLineChanged = class {\n      constructor(lineNumber, detail, injectedText) {\n        this.changeType = 2;\n        this.lineNumber = lineNumber;\n        this.detail = detail;\n        this.injectedText = injectedText;\n      }\n    };\n    ModelLineHeightChanged = class {\n      constructor(ownerId2, decorationId, lineNumber, lineHeight) {\n        this.ownerId = ownerId2;\n        this.decorationId = decorationId;\n        this.lineNumber = lineNumber;\n        this.lineHeight = lineHeight;\n      }\n    };\n    ModelFontChanged = class {\n      constructor(ownerId2, lineNumber) {\n        this.ownerId = ownerId2;\n        this.lineNumber = lineNumber;\n      }\n    };\n    ModelRawLinesDeleted = class {\n      constructor(fromLineNumber, toLineNumber) {\n        this.changeType = 3;\n        this.fromLineNumber = fromLineNumber;\n        this.toLineNumber = toLineNumber;\n      }\n    };\n    ModelRawLinesInserted = class {\n      constructor(fromLineNumber, toLineNumber, detail, injectedTexts) {\n        this.changeType = 4;\n        this.injectedTexts = injectedTexts;\n        this.fromLineNumber = fromLineNumber;\n        this.toLineNumber = toLineNumber;\n        this.detail = detail;\n      }\n    };\n    ModelRawEOLChanged = class {\n      constructor() {\n        this.changeType = 5;\n      }\n    };\n    ModelRawContentChangedEvent = class _ModelRawContentChangedEvent {\n      constructor(changes, versionId, isUndoing, isRedoing) {\n        this.changes = changes;\n        this.versionId = versionId;\n        this.isUndoing = isUndoing;\n        this.isRedoing = isRedoing;\n        this.resultingSelection = null;\n      }\n      containsEvent(type) {\n        for (let i2 = 0, len = this.changes.length; i2 \u003c len; i2++) {\n          const change = this.changes[i2];\n          if (change.changeType === type) {\n            return true;\n          }\n        }\n        return false;\n      }\n      static merge(a, b) {\n        const changes = [].concat(a.changes).concat(b.changes);\n        const versionId = b.versionId;\n        const isUndoing = a.isUndoing || b.isUndoing;\n        const isRedoing = a.isRedoing || b.isRedoing;\n        return new _ModelRawContentChangedEvent(changes, versionId, isUndoing, isRedoing);\n      }\n    };\n    ModelInjectedTextChangedEvent = class {\n      constructor(changes) {\n        this.changes = changes;\n      }\n    };\n    ModelLineHeightChangedEvent = class {\n      constructor(changes) {\n        this.changes = changes;\n      }\n    };\n    ModelFontChangedEvent = class {\n      constructor(changes) {\n        this.changes = changes;\n      }\n    };\n    InternalModelContentChangeEvent = class _InternalModelContentChangeEvent {\n      constructor(rawContentChangedEvent, contentChangedEvent) {\n        this.rawContentChangedEvent = rawContentChangedEvent;\n        this.contentChangedEvent = contentChangedEvent;\n      }\n      merge(other) {\n        const rawContentChangedEvent = ModelRawContentChangedEvent.merge(this.rawContentChangedEvent, other.rawContentChangedEvent);\n        const contentChangedEvent = _InternalModelContentChangeEvent._mergeChangeEvents(this.contentChangedEvent, other.contentChangedEvent);\n        return new _InternalModelContentChangeEvent(rawContentChangedEvent, contentChangedEvent);\n      }\n      static _mergeChangeEvents(a, b) {\n        const changes = [].concat(a.changes).concat(b.changes);\n        const eol = b.eol;\n        const versionId = b.versionId;\n        const isUndoing = a.isUndoing || b.isUndoing;\n        const isRedoing = a.isRedoing || b.isRedoing;\n        const isFlush = a.isFlush || b.isFlush;\n        const isEolChange = a.isEolChange \u0026\u0026 b.isEolChange;\n        return {\n          changes,\n          eol,\n          isEolChange,\n          versionId,\n          isUndoing,\n          isRedoing,\n          isFlush,\n          detailedReasons: a.detailedReasons.concat(b.detailedReasons),\n          detailedReasonsChangeLengths: a.detailedReasonsChangeLengths.concat(b.detailedReasonsChangeLengths)\n        };\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/misc/eolCounter.js\nfunction countEOL(text2) {\n  let eolCount = 0;\n  let firstLineLength = 0;\n  let lastLineStart = 0;\n  let eol = 0;\n  for (let i2 = 0, len = text2.length; i2 \u003c len; i2++) {\n    const chr = text2.charCodeAt(i2);\n    if (chr === 13) {\n      if (eolCount === 0) {\n        firstLineLength = i2;\n      }\n      eolCount++;\n      if (i2 + 1 \u003c len \u0026\u0026 text2.charCodeAt(i2 + 1) === 10) {\n        eol |= 2;\n        i2++;\n      } else {\n        eol |= 3;\n      }\n      lastLineStart = i2 + 1;\n    } else if (chr === 10) {\n      eol |= 1;\n      if (eolCount === 0) {\n        firstLineLength = i2;\n      }\n      eolCount++;\n      lastLineStart = i2 + 1;\n    }\n  }\n  if (eolCount === 0) {\n    firstLineLength = text2.length;\n  }\n  return [eolCount, firstLineLength, text2.length - lastLineStart, eol];\n}\nvar init_eolCounter = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/misc/eolCounter.js\"() {\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/textModelBracketPairs.js\nvar BracketInfo, BracketPairInfo, BracketPairWithMinIndentationInfo;\nvar init_textModelBracketPairs = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/textModelBracketPairs.js\"() {\n    BracketInfo = class {\n      constructor(range2, nestingLevel, nestingLevelOfEqualBracketType, isInvalid) {\n        this.range = range2;\n        this.nestingLevel = nestingLevel;\n        this.nestingLevelOfEqualBracketType = nestingLevelOfEqualBracketType;\n        this.isInvalid = isInvalid;\n      }\n    };\n    BracketPairInfo = class {\n      constructor(range2, openingBracketRange, closingBracketRange, nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode) {\n        this.range = range2;\n        this.openingBracketRange = openingBracketRange;\n        this.closingBracketRange = closingBracketRange;\n        this.nestingLevel = nestingLevel;\n        this.nestingLevelOfEqualBracketType = nestingLevelOfEqualBracketType;\n        this.bracketPairNode = bracketPairNode;\n      }\n      get openingBracketInfo() {\n        return this.bracketPairNode.openingBracket.bracketInfo;\n      }\n    };\n    BracketPairWithMinIndentationInfo = class extends BracketPairInfo {\n      constructor(range2, openingBracketRange, closingBracketRange, nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode, minVisibleColumnIndentation) {\n        super(range2, openingBracketRange, closingBracketRange, nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode);\n        this.minVisibleColumnIndentation = minVisibleColumnIndentation;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js\nfunction lengthDiff(startLineCount, startColumnCount, endLineCount, endColumnCount) {\n  return startLineCount !== endLineCount ? toLength(endLineCount - startLineCount, endColumnCount) : toLength(0, endColumnCount - startColumnCount);\n}\nfunction lengthIsZero(length) {\n  return length === 0;\n}\nfunction toLength(lineCount, columnCount) {\n  return lineCount * factor + columnCount;\n}\nfunction lengthToObj(length) {\n  const l = length;\n  const lineCount = Math.floor(l / factor);\n  const columnCount = l - lineCount * factor;\n  return new TextLength(lineCount, columnCount);\n}\nfunction lengthGetLineCount(length) {\n  return Math.floor(length / factor);\n}\nfunction lengthGetColumnCountIfZeroLineCount(length) {\n  return length;\n}\nfunction lengthAdd(l1, l2) {\n  let r = l1 + l2;\n  if (l2 \u003e= factor) {\n    r = r - l1 % factor;\n  }\n  return r;\n}\nfunction sumLengths(items, lengthFn) {\n  return items.reduce((a, b) =\u003e lengthAdd(a, lengthFn(b)), lengthZero);\n}\nfunction lengthEquals(length1, length2) {\n  return length1 === length2;\n}\nfunction lengthDiffNonNegative(length1, length2) {\n  const l1 = length1;\n  const l2 = length2;\n  const diff = l2 - l1;\n  if (diff \u003c= 0) {\n    return lengthZero;\n  }\n  const lineCount1 = Math.floor(l1 / factor);\n  const lineCount2 = Math.floor(l2 / factor);\n  const colCount2 = l2 - lineCount2 * factor;\n  if (lineCount1 === lineCount2) {\n    const colCount1 = l1 - lineCount1 * factor;\n    return toLength(0, colCount2 - colCount1);\n  } else {\n    return toLength(lineCount2 - lineCount1, colCount2);\n  }\n}\nfunction lengthLessThan(length1, length2) {\n  return length1 \u003c length2;\n}\nfunction lengthLessThanEqual(length1, length2) {\n  return length1 \u003c= length2;\n}\nfunction lengthGreaterThanEqual(length1, length2) {\n  return length1 \u003e= length2;\n}\nfunction positionToLength(position) {\n  return toLength(position.lineNumber - 1, position.column - 1);\n}\nfunction lengthsToRange(lengthStart, lengthEnd) {\n  const l = lengthStart;\n  const lineCount = Math.floor(l / factor);\n  const colCount = l - lineCount * factor;\n  const l2 = lengthEnd;\n  const lineCount2 = Math.floor(l2 / factor);\n  const colCount2 = l2 - lineCount2 * factor;\n  return new Range(lineCount + 1, colCount + 1, lineCount2 + 1, colCount2 + 1);\n}\nfunction lengthOfString(str) {\n  const lines = splitLines(str);\n  return toLength(lines.length - 1, lines[lines.length - 1].length);\n}\nvar lengthZero, factor;\nvar init_length = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js\"() {\n    init_strings();\n    init_range();\n    init_textLength();\n    lengthZero = 0;\n    factor = 2 ** 26;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/beforeEditPositionMapper.js\nvar TextEditInfo, BeforeEditPositionMapper, TextEditInfoCache;\nvar init_beforeEditPositionMapper = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/beforeEditPositionMapper.js\"() {\n    init_range();\n    init_length();\n    TextEditInfo = class _TextEditInfo {\n      static fromModelContentChanges(changes) {\n        const edits = changes.map((c) =\u003e {\n          const range2 = Range.lift(c.range);\n          return new _TextEditInfo(positionToLength(range2.getStartPosition()), positionToLength(range2.getEndPosition()), lengthOfString(c.text));\n        }).reverse();\n        return edits;\n      }\n      constructor(startOffset, endOffset, newLength) {\n        this.startOffset = startOffset;\n        this.endOffset = endOffset;\n        this.newLength = newLength;\n      }\n      toString() {\n        return `[${lengthToObj(this.startOffset)}...${lengthToObj(this.endOffset)}) -\u003e ${lengthToObj(this.newLength)}`;\n      }\n    };\n    BeforeEditPositionMapper = class {\n      /**\n       * @param edits Must be sorted by offset in ascending order.\n      */\n      constructor(edits) {\n        this.nextEditIdx = 0;\n        this.deltaOldToNewLineCount = 0;\n        this.deltaOldToNewColumnCount = 0;\n        this.deltaLineIdxInOld = -1;\n        this.edits = edits.map((edit2) =\u003e TextEditInfoCache.from(edit2));\n      }\n      /**\n       * @param offset Must be equal to or greater than the last offset this method has been called with.\n      */\n      getOffsetBeforeChange(offset) {\n        this.adjustNextEdit(offset);\n        return this.translateCurToOld(offset);\n      }\n      /**\n       * @param offset Must be equal to or greater than the last offset this method has been called with.\n       * Returns null if there is no edit anymore.\n      */\n      getDistanceToNextChange(offset) {\n        this.adjustNextEdit(offset);\n        const nextEdit = this.edits[this.nextEditIdx];\n        const nextChangeOffset = nextEdit ? this.translateOldToCur(nextEdit.offsetObj) : null;\n        if (nextChangeOffset === null) {\n          return null;\n        }\n        return lengthDiffNonNegative(offset, nextChangeOffset);\n      }\n      translateOldToCur(oldOffsetObj) {\n        if (oldOffsetObj.lineCount === this.deltaLineIdxInOld) {\n          return toLength(oldOffsetObj.lineCount + this.deltaOldToNewLineCount, oldOffsetObj.columnCount + this.deltaOldToNewColumnCount);\n        } else {\n          return toLength(oldOffsetObj.lineCount + this.deltaOldToNewLineCount, oldOffsetObj.columnCount);\n        }\n      }\n      translateCurToOld(newOffset) {\n        const offsetObj = lengthToObj(newOffset);\n        if (offsetObj.lineCount - this.deltaOldToNewLineCount === this.deltaLineIdxInOld) {\n          return toLength(offsetObj.lineCount - this.deltaOldToNewLineCount, offsetObj.columnCount - this.deltaOldToNewColumnCount);\n        } else {\n          return toLength(offsetObj.lineCount - this.deltaOldToNewLineCount, offsetObj.columnCount);\n        }\n      }\n      adjustNextEdit(offset) {\n        while (this.nextEditIdx \u003c this.edits.length) {\n          const nextEdit = this.edits[this.nextEditIdx];\n          const nextEditEndOffsetInCur = this.translateOldToCur(nextEdit.endOffsetAfterObj);\n          if (lengthLessThanEqual(nextEditEndOffsetInCur, offset)) {\n            this.nextEditIdx++;\n            const nextEditEndOffsetInCurObj = lengthToObj(nextEditEndOffsetInCur);\n            const nextEditEndOffsetBeforeInCurObj = lengthToObj(this.translateOldToCur(nextEdit.endOffsetBeforeObj));\n            const lineDelta = nextEditEndOffsetInCurObj.lineCount - nextEditEndOffsetBeforeInCurObj.lineCount;\n            this.deltaOldToNewLineCount += lineDelta;\n            const previousColumnDelta = this.deltaLineIdxInOld === nextEdit.endOffsetBeforeObj.lineCount ? this.deltaOldToNewColumnCount : 0;\n            const columnDelta = nextEditEndOffsetInCurObj.columnCount - nextEditEndOffsetBeforeInCurObj.columnCount;\n            this.deltaOldToNewColumnCount = previousColumnDelta + columnDelta;\n            this.deltaLineIdxInOld = nextEdit.endOffsetBeforeObj.lineCount;\n          } else {\n            break;\n          }\n        }\n      }\n    };\n    TextEditInfoCache = class _TextEditInfoCache {\n      static from(edit2) {\n        return new _TextEditInfoCache(edit2.startOffset, edit2.endOffset, edit2.newLength);\n      }\n      constructor(startOffset, endOffset, textLength) {\n        this.endOffsetBeforeObj = lengthToObj(endOffset);\n        this.endOffsetAfterObj = lengthToObj(lengthAdd(startOffset, textLength));\n        this.offsetObj = lengthToObj(startOffset);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js\nvar emptyArr, SmallImmutableSet, identityKeyProvider, DenseKeyProvider;\nvar init_smallImmutableSet = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js\"() {\n    emptyArr = [];\n    SmallImmutableSet = class _SmallImmutableSet {\n      static {\n        this.cache = new Array(129);\n      }\n      static create(items, additionalItems) {\n        if (items \u003c= 128 \u0026\u0026 additionalItems.length === 0) {\n          let cached = _SmallImmutableSet.cache[items];\n          if (!cached) {\n            cached = new _SmallImmutableSet(items, additionalItems);\n            _SmallImmutableSet.cache[items] = cached;\n          }\n          return cached;\n        }\n        return new _SmallImmutableSet(items, additionalItems);\n      }\n      static {\n        this.empty = _SmallImmutableSet.create(0, emptyArr);\n      }\n      static getEmpty() {\n        return this.empty;\n      }\n      constructor(items, additionalItems) {\n        this.items = items;\n        this.additionalItems = additionalItems;\n      }\n      add(value, keyProvider) {\n        const key = keyProvider.getKey(value);\n        let idx = key \u003e\u003e 5;\n        if (idx === 0) {\n          const newItem = 1 \u003c\u003c key | this.items;\n          if (newItem === this.items) {\n            return this;\n          }\n          return _SmallImmutableSet.create(newItem, this.additionalItems);\n        }\n        idx--;\n        const newItems = this.additionalItems.slice(0);\n        while (newItems.length \u003c idx) {\n          newItems.push(0);\n        }\n        newItems[idx] |= 1 \u003c\u003c (key \u0026 31);\n        return _SmallImmutableSet.create(this.items, newItems);\n      }\n      merge(other) {\n        const merged = this.items | other.items;\n        if (this.additionalItems === emptyArr \u0026\u0026 other.additionalItems === emptyArr) {\n          if (merged === this.items) {\n            return this;\n          }\n          if (merged === other.items) {\n            return other;\n          }\n          return _SmallImmutableSet.create(merged, emptyArr);\n        }\n        const newItems = [];\n        for (let i2 = 0; i2 \u003c Math.max(this.additionalItems.length, other.additionalItems.length); i2++) {\n          const item1 = this.additionalItems[i2] || 0;\n          const item2 = other.additionalItems[i2] || 0;\n          newItems.push(item1 | item2);\n        }\n        return _SmallImmutableSet.create(merged, newItems);\n      }\n      intersects(other) {\n        if ((this.items \u0026 other.items) !== 0) {\n          return true;\n        }\n        for (let i2 = 0; i2 \u003c Math.min(this.additionalItems.length, other.additionalItems.length); i2++) {\n          if ((this.additionalItems[i2] \u0026 other.additionalItems[i2]) !== 0) {\n            return true;\n          }\n        }\n        return false;\n      }\n    };\n    identityKeyProvider = {\n      getKey(value) {\n        return value;\n      }\n    };\n    DenseKeyProvider = class {\n      constructor() {\n        this.items = /* @__PURE__ */ new Map();\n      }\n      getKey(value) {\n        let existing = this.items.get(value);\n        if (existing === void 0) {\n          existing = this.items.size;\n          this.items.set(value, existing);\n        }\n        return existing;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/ast.js\nvar BaseAstNode, PairAstNode, ListAstNode, TwoThreeListAstNode, Immutable23ListAstNode, ArrayListAstNode, ImmutableArrayListAstNode, emptyArray, ImmutableLeafAstNode, TextAstNode, BracketAstNode, InvalidBracketAstNode;\nvar init_ast = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/ast.js\"() {\n    init_errors();\n    init_cursorColumns();\n    init_length();\n    init_smallImmutableSet();\n    BaseAstNode = class {\n      /**\n       * The length of the entire node, which should equal the sum of lengths of all children.\n      */\n      get length() {\n        return this._length;\n      }\n      constructor(length) {\n        this._length = length;\n      }\n    };\n    PairAstNode = class _PairAstNode extends BaseAstNode {\n      static create(openingBracket, child, closingBracket) {\n        let length = openingBracket.length;\n        if (child) {\n          length = lengthAdd(length, child.length);\n        }\n        if (closingBracket) {\n          length = lengthAdd(length, closingBracket.length);\n        }\n        return new _PairAstNode(length, openingBracket, child, closingBracket, child ? child.missingOpeningBracketIds : SmallImmutableSet.getEmpty());\n      }\n      get kind() {\n        return 2;\n      }\n      get listHeight() {\n        return 0;\n      }\n      get childrenLength() {\n        return 3;\n      }\n      getChild(idx) {\n        switch (idx) {\n          case 0:\n            return this.openingBracket;\n          case 1:\n            return this.child;\n          case 2:\n            return this.closingBracket;\n        }\n        throw new Error(\"Invalid child index\");\n      }\n      /**\n       * Avoid using this property, it allocates an array!\n      */\n      get children() {\n        const result = [];\n        result.push(this.openingBracket);\n        if (this.child) {\n          result.push(this.child);\n        }\n        if (this.closingBracket) {\n          result.push(this.closingBracket);\n        }\n        return result;\n      }\n      constructor(length, openingBracket, child, closingBracket, missingOpeningBracketIds) {\n        super(length);\n        this.openingBracket = openingBracket;\n        this.child = child;\n        this.closingBracket = closingBracket;\n        this.missingOpeningBracketIds = missingOpeningBracketIds;\n      }\n      canBeReused(openBracketIds) {\n        if (this.closingBracket === null) {\n          return false;\n        }\n        if (openBracketIds.intersects(this.missingOpeningBracketIds)) {\n          return false;\n        }\n        return true;\n      }\n      deepClone() {\n        return new _PairAstNode(this.length, this.openingBracket.deepClone(), this.child \u0026\u0026 this.child.deepClone(), this.closingBracket \u0026\u0026 this.closingBracket.deepClone(), this.missingOpeningBracketIds);\n      }\n      computeMinIndentation(offset, textModel) {\n        return this.child ? this.child.computeMinIndentation(lengthAdd(offset, this.openingBracket.length), textModel) : Number.MAX_SAFE_INTEGER;\n      }\n    };\n    ListAstNode = class extends BaseAstNode {\n      /**\n       * This method uses more memory-efficient list nodes that can only store 2 or 3 children.\n      */\n      static create23(item1, item2, item3, immutable = false) {\n        let length = item1.length;\n        let missingBracketIds = item1.missingOpeningBracketIds;\n        if (item1.listHeight !== item2.listHeight) {\n          throw new Error(\"Invalid list heights\");\n        }\n        length = lengthAdd(length, item2.length);\n        missingBracketIds = missingBracketIds.merge(item2.missingOpeningBracketIds);\n        if (item3) {\n          if (item1.listHeight !== item3.listHeight) {\n            throw new Error(\"Invalid list heights\");\n          }\n          length = lengthAdd(length, item3.length);\n          missingBracketIds = missingBracketIds.merge(item3.missingOpeningBracketIds);\n        }\n        return immutable ? new Immutable23ListAstNode(length, item1.listHeight + 1, item1, item2, item3, missingBracketIds) : new TwoThreeListAstNode(length, item1.listHeight + 1, item1, item2, item3, missingBracketIds);\n      }\n      static getEmpty() {\n        return new ImmutableArrayListAstNode(lengthZero, 0, [], SmallImmutableSet.getEmpty());\n      }\n      get kind() {\n        return 4;\n      }\n      get missingOpeningBracketIds() {\n        return this._missingOpeningBracketIds;\n      }\n      /**\n       * Use ListAstNode.create.\n      */\n      constructor(length, listHeight, _missingOpeningBracketIds) {\n        super(length);\n        this.listHeight = listHeight;\n        this._missingOpeningBracketIds = _missingOpeningBracketIds;\n        this.cachedMinIndentation = -1;\n      }\n      throwIfImmutable() {\n      }\n      makeLastElementMutable() {\n        this.throwIfImmutable();\n        const childCount = this.childrenLength;\n        if (childCount === 0) {\n          return void 0;\n        }\n        const lastChild = this.getChild(childCount - 1);\n        const mutable = lastChild.kind === 4 ? lastChild.toMutable() : lastChild;\n        if (lastChild !== mutable) {\n          this.setChild(childCount - 1, mutable);\n        }\n        return mutable;\n      }\n      makeFirstElementMutable() {\n        this.throwIfImmutable();\n        const childCount = this.childrenLength;\n        if (childCount === 0) {\n          return void 0;\n        }\n        const firstChild = this.getChild(0);\n        const mutable = firstChild.kind === 4 ? firstChild.toMutable() : firstChild;\n        if (firstChild !== mutable) {\n          this.setChild(0, mutable);\n        }\n        return mutable;\n      }\n      canBeReused(openBracketIds) {\n        if (openBracketIds.intersects(this.missingOpeningBracketIds)) {\n          return false;\n        }\n        if (this.childrenLength === 0) {\n          return false;\n        }\n        let lastChild = this;\n        while (lastChild.kind === 4) {\n          const lastLength = lastChild.childrenLength;\n          if (lastLength === 0) {\n            throw new BugIndicatingError();\n          }\n          lastChild = lastChild.getChild(lastLength - 1);\n        }\n        return lastChild.canBeReused(openBracketIds);\n      }\n      handleChildrenChanged() {\n        this.throwIfImmutable();\n        const count = this.childrenLength;\n        let length = this.getChild(0).length;\n        let unopenedBrackets = this.getChild(0).missingOpeningBracketIds;\n        for (let i2 = 1; i2 \u003c count; i2++) {\n          const child = this.getChild(i2);\n          length = lengthAdd(length, child.length);\n          unopenedBrackets = unopenedBrackets.merge(child.missingOpeningBracketIds);\n        }\n        this._length = length;\n        this._missingOpeningBracketIds = unopenedBrackets;\n        this.cachedMinIndentation = -1;\n      }\n      computeMinIndentation(offset, textModel) {\n        if (this.cachedMinIndentation !== -1) {\n          return this.cachedMinIndentation;\n        }\n        let minIndentation = Number.MAX_SAFE_INTEGER;\n        let childOffset = offset;\n        for (let i2 = 0; i2 \u003c this.childrenLength; i2++) {\n          const child = this.getChild(i2);\n          if (child) {\n            minIndentation = Math.min(minIndentation, child.computeMinIndentation(childOffset, textModel));\n            childOffset = lengthAdd(childOffset, child.length);\n          }\n        }\n        this.cachedMinIndentation = minIndentation;\n        return minIndentation;\n      }\n    };\n    TwoThreeListAstNode = class _TwoThreeListAstNode extends ListAstNode {\n      get childrenLength() {\n        return this._item3 !== null ? 3 : 2;\n      }\n      getChild(idx) {\n        switch (idx) {\n          case 0:\n            return this._item1;\n          case 1:\n            return this._item2;\n          case 2:\n            return this._item3;\n        }\n        throw new Error(\"Invalid child index\");\n      }\n      setChild(idx, node) {\n        switch (idx) {\n          case 0:\n            this._item1 = node;\n            return;\n          case 1:\n            this._item2 = node;\n            return;\n          case 2:\n            this._item3 = node;\n            return;\n        }\n        throw new Error(\"Invalid child index\");\n      }\n      get children() {\n        return this._item3 ? [this._item1, this._item2, this._item3] : [this._item1, this._item2];\n      }\n      get item1() {\n        return this._item1;\n      }\n      get item2() {\n        return this._item2;\n      }\n      get item3() {\n        return this._item3;\n      }\n      constructor(length, listHeight, _item1, _item2, _item3, missingOpeningBracketIds) {\n        super(length, listHeight, missingOpeningBracketIds);\n        this._item1 = _item1;\n        this._item2 = _item2;\n        this._item3 = _item3;\n      }\n      deepClone() {\n        return new _TwoThreeListAstNode(this.length, this.listHeight, this._item1.deepClone(), this._item2.deepClone(), this._item3 ? this._item3.deepClone() : null, this.missingOpeningBracketIds);\n      }\n      appendChildOfSameHeight(node) {\n        if (this._item3) {\n          throw new Error(\"Cannot append to a full (2,3) tree node\");\n        }\n        this.throwIfImmutable();\n        this._item3 = node;\n        this.handleChildrenChanged();\n      }\n      unappendChild() {\n        if (!this._item3) {\n          throw new Error(\"Cannot remove from a non-full (2,3) tree node\");\n        }\n        this.throwIfImmutable();\n        const result = this._item3;\n        this._item3 = null;\n        this.handleChildrenChanged();\n        return result;\n      }\n      prependChildOfSameHeight(node) {\n        if (this._item3) {\n          throw new Error(\"Cannot prepend to a full (2,3) tree node\");\n        }\n        this.throwIfImmutable();\n        this._item3 = this._item2;\n        this._item2 = this._item1;\n        this._item1 = node;\n        this.handleChildrenChanged();\n      }\n      unprependChild() {\n        if (!this._item3) {\n          throw new Error(\"Cannot remove from a non-full (2,3) tree node\");\n        }\n        this.throwIfImmutable();\n        const result = this._item1;\n        this._item1 = this._item2;\n        this._item2 = this._item3;\n        this._item3 = null;\n        this.handleChildrenChanged();\n        return result;\n      }\n      toMutable() {\n        return this;\n      }\n    };\n    Immutable23ListAstNode = class extends TwoThreeListAstNode {\n      toMutable() {\n        return new TwoThreeListAstNode(this.length, this.listHeight, this.item1, this.item2, this.item3, this.missingOpeningBracketIds);\n      }\n      throwIfImmutable() {\n        throw new Error(\"this instance is immutable\");\n      }\n    };\n    ArrayListAstNode = class _ArrayListAstNode extends ListAstNode {\n      get childrenLength() {\n        return this._children.length;\n      }\n      getChild(idx) {\n        return this._children[idx];\n      }\n      setChild(idx, child) {\n        this._children[idx] = child;\n      }\n      get children() {\n        return this._children;\n      }\n      constructor(length, listHeight, _children, missingOpeningBracketIds) {\n        super(length, listHeight, missingOpeningBracketIds);\n        this._children = _children;\n      }\n      deepClone() {\n        const children = new Array(this._children.length);\n        for (let i2 = 0; i2 \u003c this._children.length; i2++) {\n          children[i2] = this._children[i2].deepClone();\n        }\n        return new _ArrayListAstNode(this.length, this.listHeight, children, this.missingOpeningBracketIds);\n      }\n      appendChildOfSameHeight(node) {\n        this.throwIfImmutable();\n        this._children.push(node);\n        this.handleChildrenChanged();\n      }\n      unappendChild() {\n        this.throwIfImmutable();\n        const item = this._children.pop();\n        this.handleChildrenChanged();\n        return item;\n      }\n      prependChildOfSameHeight(node) {\n        this.throwIfImmutable();\n        this._children.unshift(node);\n        this.handleChildrenChanged();\n      }\n      unprependChild() {\n        this.throwIfImmutable();\n        const item = this._children.shift();\n        this.handleChildrenChanged();\n        return item;\n      }\n      toMutable() {\n        return this;\n      }\n    };\n    ImmutableArrayListAstNode = class extends ArrayListAstNode {\n      toMutable() {\n        return new ArrayListAstNode(this.length, this.listHeight, [...this.children], this.missingOpeningBracketIds);\n      }\n      throwIfImmutable() {\n        throw new Error(\"this instance is immutable\");\n      }\n    };\n    emptyArray = [];\n    ImmutableLeafAstNode = class extends BaseAstNode {\n      get listHeight() {\n        return 0;\n      }\n      get childrenLength() {\n        return 0;\n      }\n      getChild(idx) {\n        return null;\n      }\n      get children() {\n        return emptyArray;\n      }\n      deepClone() {\n        return this;\n      }\n    };\n    TextAstNode = class extends ImmutableLeafAstNode {\n      get kind() {\n        return 0;\n      }\n      get missingOpeningBracketIds() {\n        return SmallImmutableSet.getEmpty();\n      }\n      canBeReused(_openedBracketIds) {\n        return true;\n      }\n      computeMinIndentation(offset, textModel) {\n        const start = lengthToObj(offset);\n        const startLineNumber = (start.columnCount === 0 ? start.lineCount : start.lineCount + 1) + 1;\n        const endLineNumber = lengthGetLineCount(lengthAdd(offset, this.length)) + 1;\n        let result = Number.MAX_SAFE_INTEGER;\n        for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n          const firstNonWsColumn = textModel.getLineFirstNonWhitespaceColumn(lineNumber);\n          const lineContent = textModel.getLineContent(lineNumber);\n          if (firstNonWsColumn === 0) {\n            continue;\n          }\n          const visibleColumn = CursorColumns.visibleColumnFromColumn(lineContent, firstNonWsColumn, textModel.getOptions().tabSize);\n          result = Math.min(result, visibleColumn);\n        }\n        return result;\n      }\n    };\n    BracketAstNode = class _BracketAstNode extends ImmutableLeafAstNode {\n      static create(length, bracketInfo, bracketIds) {\n        const node = new _BracketAstNode(length, bracketInfo, bracketIds);\n        return node;\n      }\n      get kind() {\n        return 1;\n      }\n      get missingOpeningBracketIds() {\n        return SmallImmutableSet.getEmpty();\n      }\n      constructor(length, bracketInfo, bracketIds) {\n        super(length);\n        this.bracketInfo = bracketInfo;\n        this.bracketIds = bracketIds;\n      }\n      get text() {\n        return this.bracketInfo.bracketText;\n      }\n      get languageId() {\n        return this.bracketInfo.languageId;\n      }\n      canBeReused(_openedBracketIds) {\n        return false;\n      }\n      computeMinIndentation(offset, textModel) {\n        return Number.MAX_SAFE_INTEGER;\n      }\n    };\n    InvalidBracketAstNode = class extends ImmutableLeafAstNode {\n      get kind() {\n        return 3;\n      }\n      constructor(closingBrackets, length) {\n        super(length);\n        this.missingOpeningBracketIds = closingBrackets;\n      }\n      canBeReused(openedBracketIds) {\n        return !openedBracketIds.intersects(this.missingOpeningBracketIds);\n      }\n      computeMinIndentation(offset, textModel) {\n        return Number.MAX_SAFE_INTEGER;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/tokenizer.js\nvar Token2, TextBufferTokenizer, NonPeekableTextBufferTokenizer, FastTokenizer;\nvar init_tokenizer = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/tokenizer.js\"() {\n    init_errors();\n    init_encodedTokenAttributes();\n    init_ast();\n    init_length();\n    init_smallImmutableSet();\n    Token2 = class {\n      constructor(length, kind, bracketId, bracketIds, astNode) {\n        this.length = length;\n        this.kind = kind;\n        this.bracketId = bracketId;\n        this.bracketIds = bracketIds;\n        this.astNode = astNode;\n      }\n    };\n    TextBufferTokenizer = class {\n      constructor(textModel, bracketTokens) {\n        this.textModel = textModel;\n        this.bracketTokens = bracketTokens;\n        this.reader = new NonPeekableTextBufferTokenizer(this.textModel, this.bracketTokens);\n        this._offset = lengthZero;\n        this.didPeek = false;\n        this.peeked = null;\n        this.textBufferLineCount = textModel.getLineCount();\n        this.textBufferLastLineLength = textModel.getLineLength(this.textBufferLineCount);\n      }\n      get offset() {\n        return this._offset;\n      }\n      get length() {\n        return toLength(this.textBufferLineCount - 1, this.textBufferLastLineLength);\n      }\n      skip(length) {\n        this.didPeek = false;\n        this._offset = lengthAdd(this._offset, length);\n        const obj = lengthToObj(this._offset);\n        this.reader.setPosition(obj.lineCount, obj.columnCount);\n      }\n      read() {\n        let token;\n        if (this.peeked) {\n          this.didPeek = false;\n          token = this.peeked;\n        } else {\n          token = this.reader.read();\n        }\n        if (token) {\n          this._offset = lengthAdd(this._offset, token.length);\n        }\n        return token;\n      }\n      peek() {\n        if (!this.didPeek) {\n          this.peeked = this.reader.read();\n          this.didPeek = true;\n        }\n        return this.peeked;\n      }\n    };\n    NonPeekableTextBufferTokenizer = class {\n      constructor(textModel, bracketTokens) {\n        this.textModel = textModel;\n        this.bracketTokens = bracketTokens;\n        this.lineIdx = 0;\n        this.line = null;\n        this.lineCharOffset = 0;\n        this.lineTokens = null;\n        this.lineTokenOffset = 0;\n        this.peekedToken = null;\n        this.textBufferLineCount = textModel.getLineCount();\n        this.textBufferLastLineLength = textModel.getLineLength(this.textBufferLineCount);\n      }\n      setPosition(lineIdx, column) {\n        if (lineIdx === this.lineIdx) {\n          this.lineCharOffset = column;\n          if (this.line !== null) {\n            this.lineTokenOffset = this.lineCharOffset === 0 ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset);\n          }\n        } else {\n          this.lineIdx = lineIdx;\n          this.lineCharOffset = column;\n          this.line = null;\n        }\n        this.peekedToken = null;\n      }\n      read() {\n        if (this.peekedToken) {\n          const token = this.peekedToken;\n          this.peekedToken = null;\n          this.lineCharOffset += lengthGetColumnCountIfZeroLineCount(token.length);\n          return token;\n        }\n        if (this.lineIdx \u003e this.textBufferLineCount - 1 || this.lineIdx === this.textBufferLineCount - 1 \u0026\u0026 this.lineCharOffset \u003e= this.textBufferLastLineLength) {\n          return null;\n        }\n        if (this.line === null) {\n          this.lineTokens = this.textModel.tokenization.getLineTokens(this.lineIdx + 1);\n          this.line = this.lineTokens.getLineContent();\n          this.lineTokenOffset = this.lineCharOffset === 0 ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset);\n        }\n        const startLineIdx = this.lineIdx;\n        const startLineCharOffset = this.lineCharOffset;\n        let lengthHeuristic = 0;\n        while (true) {\n          const lineTokens = this.lineTokens;\n          const tokenCount = lineTokens.getCount();\n          let peekedBracketToken = null;\n          if (this.lineTokenOffset \u003c tokenCount) {\n            const tokenMetadata = lineTokens.getMetadata(this.lineTokenOffset);\n            while (this.lineTokenOffset + 1 \u003c tokenCount \u0026\u0026 tokenMetadata === lineTokens.getMetadata(this.lineTokenOffset + 1)) {\n              this.lineTokenOffset++;\n            }\n            const isOther = TokenMetadata.getTokenType(tokenMetadata) === 0;\n            const containsBracketType = TokenMetadata.containsBalancedBrackets(tokenMetadata);\n            const endOffset = lineTokens.getEndOffset(this.lineTokenOffset);\n            if (containsBracketType \u0026\u0026 isOther \u0026\u0026 this.lineCharOffset \u003c endOffset) {\n              const languageId = lineTokens.getLanguageId(this.lineTokenOffset);\n              const text2 = this.line.substring(this.lineCharOffset, endOffset);\n              const brackets = this.bracketTokens.getSingleLanguageBracketTokens(languageId);\n              const regexp = brackets.regExpGlobal;\n              if (regexp) {\n                regexp.lastIndex = 0;\n                const match2 = regexp.exec(text2);\n                if (match2) {\n                  peekedBracketToken = brackets.getToken(match2[0]);\n                  if (peekedBracketToken) {\n                    this.lineCharOffset += match2.index;\n                  }\n                }\n              }\n            }\n            lengthHeuristic += endOffset - this.lineCharOffset;\n            if (peekedBracketToken) {\n              if (startLineIdx !== this.lineIdx || startLineCharOffset !== this.lineCharOffset) {\n                this.peekedToken = peekedBracketToken;\n                break;\n              } else {\n                this.lineCharOffset += lengthGetColumnCountIfZeroLineCount(peekedBracketToken.length);\n                return peekedBracketToken;\n              }\n            } else {\n              this.lineTokenOffset++;\n              this.lineCharOffset = endOffset;\n            }\n          } else {\n            if (this.lineIdx === this.textBufferLineCount - 1) {\n              break;\n            }\n            this.lineIdx++;\n            this.lineTokens = this.textModel.tokenization.getLineTokens(this.lineIdx + 1);\n            this.lineTokenOffset = 0;\n            this.line = this.lineTokens.getLineContent();\n            this.lineCharOffset = 0;\n            lengthHeuristic += 33;\n            if (lengthHeuristic \u003e 1e3) {\n              break;\n            }\n          }\n          if (lengthHeuristic \u003e 1500) {\n            break;\n          }\n        }\n        const length = lengthDiff(startLineIdx, startLineCharOffset, this.lineIdx, this.lineCharOffset);\n        return new Token2(length, 0, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n      }\n    };\n    FastTokenizer = class {\n      constructor(text2, brackets) {\n        this.text = text2;\n        this._offset = lengthZero;\n        this.idx = 0;\n        const regExpStr = brackets.getRegExpStr();\n        const regexp = regExpStr ? new RegExp(regExpStr + \"|\\n\", \"gi\") : null;\n        const tokens = [];\n        let match2;\n        let curLineCount = 0;\n        let lastLineBreakOffset = 0;\n        let lastTokenEndOffset = 0;\n        let lastTokenEndLine = 0;\n        const smallTextTokens0Line = [];\n        for (let i2 = 0; i2 \u003c 60; i2++) {\n          smallTextTokens0Line.push(new Token2(toLength(0, i2), 0, -1, SmallImmutableSet.getEmpty(), new TextAstNode(toLength(0, i2))));\n        }\n        const smallTextTokens1Line = [];\n        for (let i2 = 0; i2 \u003c 60; i2++) {\n          smallTextTokens1Line.push(new Token2(toLength(1, i2), 0, -1, SmallImmutableSet.getEmpty(), new TextAstNode(toLength(1, i2))));\n        }\n        if (regexp) {\n          regexp.lastIndex = 0;\n          while ((match2 = regexp.exec(text2)) !== null) {\n            const curOffset = match2.index;\n            const value = match2[0];\n            if (value === \"\\n\") {\n              curLineCount++;\n              lastLineBreakOffset = curOffset + 1;\n            } else {\n              if (lastTokenEndOffset !== curOffset) {\n                let token;\n                if (lastTokenEndLine === curLineCount) {\n                  const colCount = curOffset - lastTokenEndOffset;\n                  if (colCount \u003c smallTextTokens0Line.length) {\n                    token = smallTextTokens0Line[colCount];\n                  } else {\n                    const length = toLength(0, colCount);\n                    token = new Token2(length, 0, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n                  }\n                } else {\n                  const lineCount = curLineCount - lastTokenEndLine;\n                  const colCount = curOffset - lastLineBreakOffset;\n                  if (lineCount === 1 \u0026\u0026 colCount \u003c smallTextTokens1Line.length) {\n                    token = smallTextTokens1Line[colCount];\n                  } else {\n                    const length = toLength(lineCount, colCount);\n                    token = new Token2(length, 0, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n                  }\n                }\n                tokens.push(token);\n              }\n              tokens.push(brackets.getToken(value));\n              lastTokenEndOffset = curOffset + value.length;\n              lastTokenEndLine = curLineCount;\n            }\n          }\n        }\n        const offset = text2.length;\n        if (lastTokenEndOffset !== offset) {\n          const length = lastTokenEndLine === curLineCount ? toLength(0, offset - lastTokenEndOffset) : toLength(curLineCount - lastTokenEndLine, offset - lastLineBreakOffset);\n          tokens.push(new Token2(length, 0, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length)));\n        }\n        this.length = toLength(curLineCount, offset - lastLineBreakOffset);\n        this.tokens = tokens;\n      }\n      get offset() {\n        return this._offset;\n      }\n      read() {\n        return this.tokens[this.idx++] || null;\n      }\n      peek() {\n        return this.tokens[this.idx] || null;\n      }\n      skip(length) {\n        throw new NotSupportedError();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/brackets.js\nfunction prepareBracketForRegExp2(str) {\n  let escaped = escapeRegExpCharacters(str);\n  if (/^[\\w ]+/.test(str)) {\n    escaped = `\\\\b${escaped}`;\n  }\n  if (/[\\w ]+$/.test(str)) {\n    escaped = `${escaped}\\\\b`;\n  }\n  return escaped;\n}\nvar BracketTokens, LanguageAgnosticBracketTokens;\nvar init_brackets = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/brackets.js\"() {\n    init_strings();\n    init_ast();\n    init_length();\n    init_smallImmutableSet();\n    init_tokenizer();\n    BracketTokens = class _BracketTokens {\n      static createFromLanguage(configuration, denseKeyProvider) {\n        function getId(bracketInfo) {\n          return denseKeyProvider.getKey(`${bracketInfo.languageId}:::${bracketInfo.bracketText}`);\n        }\n        const map = /* @__PURE__ */ new Map();\n        for (const openingBracket of configuration.bracketsNew.openingBrackets) {\n          const length = toLength(0, openingBracket.bracketText.length);\n          const openingTextId = getId(openingBracket);\n          const bracketIds = SmallImmutableSet.getEmpty().add(openingTextId, identityKeyProvider);\n          map.set(openingBracket.bracketText, new Token2(length, 1, openingTextId, bracketIds, BracketAstNode.create(length, openingBracket, bracketIds)));\n        }\n        for (const closingBracket of configuration.bracketsNew.closingBrackets) {\n          const length = toLength(0, closingBracket.bracketText.length);\n          let bracketIds = SmallImmutableSet.getEmpty();\n          const closingBrackets = closingBracket.getOpeningBrackets();\n          for (const bracket of closingBrackets) {\n            bracketIds = bracketIds.add(getId(bracket), identityKeyProvider);\n          }\n          map.set(closingBracket.bracketText, new Token2(length, 2, getId(closingBrackets[0]), bracketIds, BracketAstNode.create(length, closingBracket, bracketIds)));\n        }\n        return new _BracketTokens(map);\n      }\n      constructor(map) {\n        this.map = map;\n        this.hasRegExp = false;\n        this._regExpGlobal = null;\n      }\n      getRegExpStr() {\n        if (this.isEmpty) {\n          return null;\n        } else {\n          const keys = [...this.map.keys()];\n          keys.sort();\n          keys.reverse();\n          return keys.map((k) =\u003e prepareBracketForRegExp2(k)).join(\"|\");\n        }\n      }\n      /**\n       * Returns null if there is no such regexp (because there are no brackets).\n      */\n      get regExpGlobal() {\n        if (!this.hasRegExp) {\n          const regExpStr = this.getRegExpStr();\n          this._regExpGlobal = regExpStr ? new RegExp(regExpStr, \"gi\") : null;\n          this.hasRegExp = true;\n        }\n        return this._regExpGlobal;\n      }\n      getToken(value) {\n        return this.map.get(value.toLowerCase());\n      }\n      findClosingTokenText(openingBracketIds) {\n        for (const [closingText, info] of this.map) {\n          if (info.kind === 2 \u0026\u0026 info.bracketIds.intersects(openingBracketIds)) {\n            return closingText;\n          }\n        }\n        return void 0;\n      }\n      get isEmpty() {\n        return this.map.size === 0;\n      }\n    };\n    LanguageAgnosticBracketTokens = class {\n      constructor(denseKeyProvider, getLanguageConfiguration) {\n        this.denseKeyProvider = denseKeyProvider;\n        this.getLanguageConfiguration = getLanguageConfiguration;\n        this.languageIdToBracketTokens = /* @__PURE__ */ new Map();\n      }\n      didLanguageChange(languageId) {\n        return this.languageIdToBracketTokens.has(languageId);\n      }\n      getSingleLanguageBracketTokens(languageId) {\n        let singleLanguageBracketTokens = this.languageIdToBracketTokens.get(languageId);\n        if (!singleLanguageBracketTokens) {\n          singleLanguageBracketTokens = BracketTokens.createFromLanguage(this.getLanguageConfiguration(languageId), this.denseKeyProvider);\n          this.languageIdToBracketTokens.set(languageId, singleLanguageBracketTokens);\n        }\n        return singleLanguageBracketTokens;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/concat23Trees.js\nfunction concat23Trees(items) {\n  if (items.length === 0) {\n    return null;\n  }\n  if (items.length === 1) {\n    return items[0];\n  }\n  let i2 = 0;\n  function readNode() {\n    if (i2 \u003e= items.length) {\n      return null;\n    }\n    const start = i2;\n    const height = items[start].listHeight;\n    i2++;\n    while (i2 \u003c items.length \u0026\u0026 items[i2].listHeight === height) {\n      i2++;\n    }\n    if (i2 - start \u003e= 2) {\n      return concat23TreesOfSameHeight(start === 0 \u0026\u0026 i2 === items.length ? items : items.slice(start, i2), false);\n    } else {\n      return items[start];\n    }\n  }\n  let first2 = readNode();\n  let second = readNode();\n  if (!second) {\n    return first2;\n  }\n  for (let item = readNode(); item; item = readNode()) {\n    if (heightDiff(first2, second) \u003c= heightDiff(second, item)) {\n      first2 = concat(first2, second);\n      second = item;\n    } else {\n      second = concat(second, item);\n    }\n  }\n  const result = concat(first2, second);\n  return result;\n}\nfunction concat23TreesOfSameHeight(items, createImmutableLists = false) {\n  if (items.length === 0) {\n    return null;\n  }\n  if (items.length === 1) {\n    return items[0];\n  }\n  let length = items.length;\n  while (length \u003e 3) {\n    const newLength = length \u003e\u003e 1;\n    for (let i2 = 0; i2 \u003c newLength; i2++) {\n      const j = i2 \u003c\u003c 1;\n      items[i2] = ListAstNode.create23(items[j], items[j + 1], j + 3 === length ? items[j + 2] : null, createImmutableLists);\n    }\n    length = newLength;\n  }\n  return ListAstNode.create23(items[0], items[1], length \u003e= 3 ? items[2] : null, createImmutableLists);\n}\nfunction heightDiff(node1, node2) {\n  return Math.abs(node1.listHeight - node2.listHeight);\n}\nfunction concat(node1, node2) {\n  if (node1.listHeight === node2.listHeight) {\n    return ListAstNode.create23(node1, node2, null, false);\n  } else if (node1.listHeight \u003e node2.listHeight) {\n    return append2(node1, node2);\n  } else {\n    return prepend2(node2, node1);\n  }\n}\nfunction append2(list2, nodeToAppend) {\n  list2 = list2.toMutable();\n  let curNode = list2;\n  const parents = [];\n  let nodeToAppendOfCorrectHeight;\n  while (true) {\n    if (nodeToAppend.listHeight === curNode.listHeight) {\n      nodeToAppendOfCorrectHeight = nodeToAppend;\n      break;\n    }\n    if (curNode.kind !== 4) {\n      throw new Error(\"unexpected\");\n    }\n    parents.push(curNode);\n    curNode = curNode.makeLastElementMutable();\n  }\n  for (let i2 = parents.length - 1; i2 \u003e= 0; i2--) {\n    const parent = parents[i2];\n    if (nodeToAppendOfCorrectHeight) {\n      if (parent.childrenLength \u003e= 3) {\n        nodeToAppendOfCorrectHeight = ListAstNode.create23(parent.unappendChild(), nodeToAppendOfCorrectHeight, null, false);\n      } else {\n        parent.appendChildOfSameHeight(nodeToAppendOfCorrectHeight);\n        nodeToAppendOfCorrectHeight = void 0;\n      }\n    } else {\n      parent.handleChildrenChanged();\n    }\n  }\n  if (nodeToAppendOfCorrectHeight) {\n    return ListAstNode.create23(list2, nodeToAppendOfCorrectHeight, null, false);\n  } else {\n    return list2;\n  }\n}\nfunction prepend2(list2, nodeToAppend) {\n  list2 = list2.toMutable();\n  let curNode = list2;\n  const parents = [];\n  while (nodeToAppend.listHeight !== curNode.listHeight) {\n    if (curNode.kind !== 4) {\n      throw new Error(\"unexpected\");\n    }\n    parents.push(curNode);\n    curNode = curNode.makeFirstElementMutable();\n  }\n  let nodeToPrependOfCorrectHeight = nodeToAppend;\n  for (let i2 = parents.length - 1; i2 \u003e= 0; i2--) {\n    const parent = parents[i2];\n    if (nodeToPrependOfCorrectHeight) {\n      if (parent.childrenLength \u003e= 3) {\n        nodeToPrependOfCorrectHeight = ListAstNode.create23(nodeToPrependOfCorrectHeight, parent.unprependChild(), null, false);\n      } else {\n        parent.prependChildOfSameHeight(nodeToPrependOfCorrectHeight);\n        nodeToPrependOfCorrectHeight = void 0;\n      }\n    } else {\n      parent.handleChildrenChanged();\n    }\n  }\n  if (nodeToPrependOfCorrectHeight) {\n    return ListAstNode.create23(nodeToPrependOfCorrectHeight, list2, null, false);\n  } else {\n    return list2;\n  }\n}\nvar init_concat23Trees = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/concat23Trees.js\"() {\n    init_ast();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/nodeReader.js\nfunction getNextChildIdx(node, curIdx = -1) {\n  while (true) {\n    curIdx++;\n    if (curIdx \u003e= node.childrenLength) {\n      return -1;\n    }\n    if (node.getChild(curIdx)) {\n      return curIdx;\n    }\n  }\n}\nfunction lastOrUndefined(arr) {\n  return arr.length \u003e 0 ? arr[arr.length - 1] : void 0;\n}\nvar NodeReader;\nvar init_nodeReader = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/nodeReader.js\"() {\n    init_length();\n    NodeReader = class {\n      constructor(node) {\n        this.lastOffset = lengthZero;\n        this.nextNodes = [node];\n        this.offsets = [lengthZero];\n        this.idxs = [];\n      }\n      /**\n       * Returns the longest node at `offset` that satisfies the predicate.\n       * @param offset must be greater than or equal to the last offset this method has been called with!\n      */\n      readLongestNodeAt(offset, predicate) {\n        if (lengthLessThan(offset, this.lastOffset)) {\n          throw new Error(\"Invalid offset\");\n        }\n        this.lastOffset = offset;\n        while (true) {\n          const curNode = lastOrUndefined(this.nextNodes);\n          if (!curNode) {\n            return void 0;\n          }\n          const curNodeOffset = lastOrUndefined(this.offsets);\n          if (lengthLessThan(offset, curNodeOffset)) {\n            return void 0;\n          }\n          if (lengthLessThan(curNodeOffset, offset)) {\n            if (lengthAdd(curNodeOffset, curNode.length) \u003c= offset) {\n              this.nextNodeAfterCurrent();\n            } else {\n              const nextChildIdx = getNextChildIdx(curNode);\n              if (nextChildIdx !== -1) {\n                this.nextNodes.push(curNode.getChild(nextChildIdx));\n                this.offsets.push(curNodeOffset);\n                this.idxs.push(nextChildIdx);\n              } else {\n                this.nextNodeAfterCurrent();\n              }\n            }\n          } else {\n            if (predicate(curNode)) {\n              this.nextNodeAfterCurrent();\n              return curNode;\n            } else {\n              const nextChildIdx = getNextChildIdx(curNode);\n              if (nextChildIdx === -1) {\n                this.nextNodeAfterCurrent();\n                return void 0;\n              } else {\n                this.nextNodes.push(curNode.getChild(nextChildIdx));\n                this.offsets.push(curNodeOffset);\n                this.idxs.push(nextChildIdx);\n              }\n            }\n          }\n        }\n      }\n      // Navigates to the longest node that continues after the current node.\n      nextNodeAfterCurrent() {\n        while (true) {\n          const currentOffset = lastOrUndefined(this.offsets);\n          const currentNode = lastOrUndefined(this.nextNodes);\n          this.nextNodes.pop();\n          this.offsets.pop();\n          if (this.idxs.length === 0) {\n            break;\n          }\n          const parent = lastOrUndefined(this.nextNodes);\n          const nextChildIdx = getNextChildIdx(parent, this.idxs[this.idxs.length - 1]);\n          if (nextChildIdx !== -1) {\n            this.nextNodes.push(parent.getChild(nextChildIdx));\n            this.offsets.push(lengthAdd(currentOffset, currentNode.length));\n            this.idxs[this.idxs.length - 1] = nextChildIdx;\n            break;\n          } else {\n            this.idxs.pop();\n          }\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/parser.js\nfunction parseDocument(tokenizer, edits, oldNode, createImmutableLists) {\n  const parser2 = new Parser2(tokenizer, edits, oldNode, createImmutableLists);\n  return parser2.parseDocument();\n}\nvar Parser2;\nvar init_parser = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/parser.js\"() {\n    init_ast();\n    init_beforeEditPositionMapper();\n    init_smallImmutableSet();\n    init_length();\n    init_concat23Trees();\n    init_nodeReader();\n    Parser2 = class {\n      constructor(tokenizer, edits, oldNode, createImmutableLists) {\n        this.tokenizer = tokenizer;\n        this.createImmutableLists = createImmutableLists;\n        this._itemsConstructed = 0;\n        this._itemsFromCache = 0;\n        if (oldNode \u0026\u0026 createImmutableLists) {\n          throw new Error(\"Not supported\");\n        }\n        this.oldNodeReader = oldNode ? new NodeReader(oldNode) : void 0;\n        this.positionMapper = new BeforeEditPositionMapper(edits);\n      }\n      parseDocument() {\n        this._itemsConstructed = 0;\n        this._itemsFromCache = 0;\n        let result = this.parseList(SmallImmutableSet.getEmpty(), 0);\n        if (!result) {\n          result = ListAstNode.getEmpty();\n        }\n        return result;\n      }\n      parseList(openedBracketIds, level) {\n        const items = [];\n        while (true) {\n          let child = this.tryReadChildFromCache(openedBracketIds);\n          if (!child) {\n            const token = this.tokenizer.peek();\n            if (!token || token.kind === 2 \u0026\u0026 token.bracketIds.intersects(openedBracketIds)) {\n              break;\n            }\n            child = this.parseChild(openedBracketIds, level + 1);\n          }\n          if (child.kind === 4 \u0026\u0026 child.childrenLength === 0) {\n            continue;\n          }\n          items.push(child);\n        }\n        const result = this.oldNodeReader ? concat23Trees(items) : concat23TreesOfSameHeight(items, this.createImmutableLists);\n        return result;\n      }\n      tryReadChildFromCache(openedBracketIds) {\n        if (this.oldNodeReader) {\n          const maxCacheableLength = this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);\n          if (maxCacheableLength === null || !lengthIsZero(maxCacheableLength)) {\n            const cachedNode = this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset), (curNode) =\u003e {\n              if (maxCacheableLength !== null \u0026\u0026 !lengthLessThan(curNode.length, maxCacheableLength)) {\n                return false;\n              }\n              const canBeReused = curNode.canBeReused(openedBracketIds);\n              return canBeReused;\n            });\n            if (cachedNode) {\n              this._itemsFromCache++;\n              this.tokenizer.skip(cachedNode.length);\n              return cachedNode;\n            }\n          }\n        }\n        return void 0;\n      }\n      parseChild(openedBracketIds, level) {\n        this._itemsConstructed++;\n        const token = this.tokenizer.read();\n        switch (token.kind) {\n          case 2:\n            return new InvalidBracketAstNode(token.bracketIds, token.length);\n          case 0:\n            return token.astNode;\n          case 1: {\n            if (level \u003e 300) {\n              return new TextAstNode(token.length);\n            }\n            const set = openedBracketIds.merge(token.bracketIds);\n            const child = this.parseList(set, level + 1);\n            const nextToken = this.tokenizer.peek();\n            if (nextToken \u0026\u0026 nextToken.kind === 2 \u0026\u0026 (nextToken.bracketId === token.bracketId || nextToken.bracketIds.intersects(token.bracketIds))) {\n              this.tokenizer.read();\n              return PairAstNode.create(token.astNode, child, nextToken.astNode);\n            } else {\n              return PairAstNode.create(token.astNode, child, null);\n            }\n          }\n          default:\n            throw new Error(\"unexpected\");\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/combineTextEditInfos.js\nfunction combineTextEditInfos(textEditInfoFirst, textEditInfoSecond) {\n  if (textEditInfoFirst.length === 0) {\n    return textEditInfoSecond;\n  }\n  if (textEditInfoSecond.length === 0) {\n    return textEditInfoFirst;\n  }\n  const s0ToS1Map = new ArrayQueue(toLengthMapping(textEditInfoFirst));\n  const s1ToS2Map = toLengthMapping(textEditInfoSecond);\n  s1ToS2Map.push({ modified: false, lengthBefore: void 0, lengthAfter: void 0 });\n  let curItem = s0ToS1Map.dequeue();\n  function nextS0ToS1MapWithS1LengthOf(s1Length) {\n    if (s1Length === void 0) {\n      const arr = s0ToS1Map.takeWhile((v) =\u003e true) || [];\n      if (curItem) {\n        arr.unshift(curItem);\n      }\n      return arr;\n    }\n    const result2 = [];\n    while (curItem \u0026\u0026 !lengthIsZero(s1Length)) {\n      const [item, remainingItem] = curItem.splitAt(s1Length);\n      result2.push(item);\n      s1Length = lengthDiffNonNegative(item.lengthAfter, s1Length);\n      curItem = remainingItem ?? s0ToS1Map.dequeue();\n    }\n    if (!lengthIsZero(s1Length)) {\n      result2.push(new LengthMapping(false, s1Length, s1Length));\n    }\n    return result2;\n  }\n  const result = [];\n  function pushEdit(startOffset, endOffset, newLength) {\n    if (result.length \u003e 0 \u0026\u0026 lengthEquals(result[result.length - 1].endOffset, startOffset)) {\n      const lastResult = result[result.length - 1];\n      result[result.length - 1] = new TextEditInfo(lastResult.startOffset, endOffset, lengthAdd(lastResult.newLength, newLength));\n    } else {\n      result.push({ startOffset, endOffset, newLength });\n    }\n  }\n  let s0offset = lengthZero;\n  for (const s1ToS2 of s1ToS2Map) {\n    const s0ToS1Map2 = nextS0ToS1MapWithS1LengthOf(s1ToS2.lengthBefore);\n    if (s1ToS2.modified) {\n      const s0Length = sumLengths(s0ToS1Map2, (s) =\u003e s.lengthBefore);\n      const s0EndOffset = lengthAdd(s0offset, s0Length);\n      pushEdit(s0offset, s0EndOffset, s1ToS2.lengthAfter);\n      s0offset = s0EndOffset;\n    } else {\n      for (const s1 of s0ToS1Map2) {\n        const s0startOffset = s0offset;\n        s0offset = lengthAdd(s0offset, s1.lengthBefore);\n        if (s1.modified) {\n          pushEdit(s0startOffset, s0offset, s1.lengthAfter);\n        }\n      }\n    }\n  }\n  return result;\n}\nfunction toLengthMapping(textEditInfos) {\n  const result = [];\n  let lastOffset = lengthZero;\n  for (const textEditInfo of textEditInfos) {\n    const spaceLength = lengthDiffNonNegative(lastOffset, textEditInfo.startOffset);\n    if (!lengthIsZero(spaceLength)) {\n      result.push(new LengthMapping(false, spaceLength, spaceLength));\n    }\n    const lengthBefore = lengthDiffNonNegative(textEditInfo.startOffset, textEditInfo.endOffset);\n    result.push(new LengthMapping(true, lengthBefore, textEditInfo.newLength));\n    lastOffset = textEditInfo.endOffset;\n  }\n  return result;\n}\nvar LengthMapping;\nvar init_combineTextEditInfos = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/combineTextEditInfos.js\"() {\n    init_arrays();\n    init_beforeEditPositionMapper();\n    init_length();\n    LengthMapping = class _LengthMapping {\n      constructor(modified, lengthBefore, lengthAfter) {\n        this.modified = modified;\n        this.lengthBefore = lengthBefore;\n        this.lengthAfter = lengthAfter;\n      }\n      splitAt(lengthAfter) {\n        const remainingLengthAfter = lengthDiffNonNegative(lengthAfter, this.lengthAfter);\n        if (lengthEquals(remainingLengthAfter, lengthZero)) {\n          return [this, void 0];\n        } else if (this.modified) {\n          return [\n            new _LengthMapping(this.modified, this.lengthBefore, lengthAfter),\n            new _LengthMapping(this.modified, lengthZero, remainingLengthAfter)\n          ];\n        } else {\n          return [\n            new _LengthMapping(this.modified, lengthAfter, lengthAfter),\n            new _LengthMapping(this.modified, remainingLengthAfter, remainingLengthAfter)\n          ];\n        }\n      }\n      toString() {\n        return `${this.modified ? \"M\" : \"U\"}:${lengthToObj(this.lengthBefore)} -\u003e ${lengthToObj(this.lengthAfter)}`;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/bracketPairsTree.js\nfunction getFirstBracketBefore(node, nodeOffsetStart, nodeOffsetEnd, position) {\n  if (node.kind === 4 || node.kind === 2) {\n    const lengths = [];\n    for (const child of node.children) {\n      nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n      lengths.push({ nodeOffsetStart, nodeOffsetEnd });\n      nodeOffsetStart = nodeOffsetEnd;\n    }\n    for (let i2 = lengths.length - 1; i2 \u003e= 0; i2--) {\n      const { nodeOffsetStart: nodeOffsetStart2, nodeOffsetEnd: nodeOffsetEnd2 } = lengths[i2];\n      if (lengthLessThan(nodeOffsetStart2, position)) {\n        const result = getFirstBracketBefore(node.children[i2], nodeOffsetStart2, nodeOffsetEnd2, position);\n        if (result) {\n          return result;\n        }\n      }\n    }\n    return null;\n  } else if (node.kind === 3) {\n    return null;\n  } else if (node.kind === 1) {\n    const range2 = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n    return {\n      bracketInfo: node.bracketInfo,\n      range: range2\n    };\n  }\n  return null;\n}\nfunction getFirstBracketAfter(node, nodeOffsetStart, nodeOffsetEnd, position) {\n  if (node.kind === 4 || node.kind === 2) {\n    for (const child of node.children) {\n      nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n      if (lengthLessThan(position, nodeOffsetEnd)) {\n        const result = getFirstBracketAfter(child, nodeOffsetStart, nodeOffsetEnd, position);\n        if (result) {\n          return result;\n        }\n      }\n      nodeOffsetStart = nodeOffsetEnd;\n    }\n    return null;\n  } else if (node.kind === 3) {\n    return null;\n  } else if (node.kind === 1) {\n    const range2 = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n    return {\n      bracketInfo: node.bracketInfo,\n      range: range2\n    };\n  }\n  return null;\n}\nfunction collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, nestingLevelOfEqualBracketType, levelPerBracketType, onlyColorizedBrackets, parentPairIsIncomplete = false) {\n  if (level \u003e 200) {\n    return true;\n  }\n  whileLoop: while (true) {\n    switch (node.kind) {\n      case 4: {\n        const childCount = node.childrenLength;\n        for (let i2 = 0; i2 \u003c childCount; i2++) {\n          const child = node.getChild(i2);\n          if (!child) {\n            continue;\n          }\n          nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n          if (lengthLessThanEqual(nodeOffsetStart, endOffset) \u0026\u0026 lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n            const childEndsAfterEnd = lengthGreaterThanEqual(nodeOffsetEnd, endOffset);\n            if (childEndsAfterEnd) {\n              node = child;\n              continue whileLoop;\n            }\n            const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, 0, levelPerBracketType, onlyColorizedBrackets);\n            if (!shouldContinue) {\n              return false;\n            }\n          }\n          nodeOffsetStart = nodeOffsetEnd;\n        }\n        return true;\n      }\n      case 2: {\n        const colorize2 = !onlyColorizedBrackets || !node.closingBracket || node.closingBracket.bracketInfo.closesColorized(node.openingBracket.bracketInfo);\n        let levelPerBracket = 0;\n        if (levelPerBracketType) {\n          let existing = levelPerBracketType.get(node.openingBracket.text);\n          if (existing === void 0) {\n            existing = 0;\n          }\n          levelPerBracket = existing;\n          if (colorize2) {\n            existing++;\n            levelPerBracketType.set(node.openingBracket.text, existing);\n          }\n        }\n        const childCount = node.childrenLength;\n        for (let i2 = 0; i2 \u003c childCount; i2++) {\n          const child = node.getChild(i2);\n          if (!child) {\n            continue;\n          }\n          nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n          if (lengthLessThanEqual(nodeOffsetStart, endOffset) \u0026\u0026 lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n            const childEndsAfterEnd = lengthGreaterThanEqual(nodeOffsetEnd, endOffset);\n            if (childEndsAfterEnd \u0026\u0026 child.kind !== 1) {\n              node = child;\n              if (colorize2) {\n                level++;\n                nestingLevelOfEqualBracketType = levelPerBracket + 1;\n              } else {\n                nestingLevelOfEqualBracketType = levelPerBracket;\n              }\n              continue whileLoop;\n            }\n            if (colorize2 || child.kind !== 1 || !node.closingBracket) {\n              const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, colorize2 ? level + 1 : level, colorize2 ? levelPerBracket + 1 : levelPerBracket, levelPerBracketType, onlyColorizedBrackets, !node.closingBracket);\n              if (!shouldContinue) {\n                return false;\n              }\n            }\n          }\n          nodeOffsetStart = nodeOffsetEnd;\n        }\n        levelPerBracketType?.set(node.openingBracket.text, levelPerBracket);\n        return true;\n      }\n      case 3: {\n        const range2 = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n        return push(new BracketInfo(range2, level - 1, 0, true));\n      }\n      case 1: {\n        const range2 = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n        return push(new BracketInfo(range2, level - 1, nestingLevelOfEqualBracketType - 1, parentPairIsIncomplete));\n      }\n      case 0:\n        return true;\n    }\n  }\n}\nfunction collectBracketPairs(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, context, level, levelPerBracketType) {\n  if (level \u003e 200) {\n    return true;\n  }\n  let shouldContinue = true;\n  if (node.kind === 2) {\n    let levelPerBracket = 0;\n    if (levelPerBracketType) {\n      let existing = levelPerBracketType.get(node.openingBracket.text);\n      if (existing === void 0) {\n        existing = 0;\n      }\n      levelPerBracket = existing;\n      existing++;\n      levelPerBracketType.set(node.openingBracket.text, existing);\n    }\n    const openingBracketEnd = lengthAdd(nodeOffsetStart, node.openingBracket.length);\n    let minIndentation = -1;\n    if (context.includeMinIndentation) {\n      minIndentation = node.computeMinIndentation(nodeOffsetStart, context.textModel);\n    }\n    shouldContinue = context.push(new BracketPairWithMinIndentationInfo(lengthsToRange(nodeOffsetStart, nodeOffsetEnd), lengthsToRange(nodeOffsetStart, openingBracketEnd), node.closingBracket ? lengthsToRange(lengthAdd(openingBracketEnd, node.child?.length || lengthZero), nodeOffsetEnd) : void 0, level, levelPerBracket, node, minIndentation));\n    nodeOffsetStart = openingBracketEnd;\n    if (shouldContinue \u0026\u0026 node.child) {\n      const child = node.child;\n      nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n      if (lengthLessThanEqual(nodeOffsetStart, endOffset) \u0026\u0026 lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n        shouldContinue = collectBracketPairs(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, context, level + 1, levelPerBracketType);\n        if (!shouldContinue) {\n          return false;\n        }\n      }\n    }\n    levelPerBracketType?.set(node.openingBracket.text, levelPerBracket);\n  } else {\n    let curOffset = nodeOffsetStart;\n    for (const child of node.children) {\n      const childOffset = curOffset;\n      curOffset = lengthAdd(curOffset, child.length);\n      if (lengthLessThanEqual(childOffset, endOffset) \u0026\u0026 lengthLessThanEqual(startOffset, curOffset)) {\n        shouldContinue = collectBracketPairs(child, childOffset, curOffset, startOffset, endOffset, context, level, levelPerBracketType);\n        if (!shouldContinue) {\n          return false;\n        }\n      }\n    }\n  }\n  return shouldContinue;\n}\nvar BracketPairsTree, CollectBracketPairsContext;\nvar init_bracketPairsTree = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/bracketPairsTree.js\"() {\n    init_event();\n    init_lifecycle();\n    init_textModelBracketPairs();\n    init_beforeEditPositionMapper();\n    init_brackets();\n    init_length();\n    init_parser();\n    init_smallImmutableSet();\n    init_tokenizer();\n    init_arrays();\n    init_combineTextEditInfos();\n    BracketPairsTree = class extends Disposable {\n      didLanguageChange(languageId) {\n        return this.brackets.didLanguageChange(languageId);\n      }\n      constructor(textModel, getLanguageConfiguration) {\n        super();\n        this.textModel = textModel;\n        this.getLanguageConfiguration = getLanguageConfiguration;\n        this.didChangeEmitter = new Emitter();\n        this.denseKeyProvider = new DenseKeyProvider();\n        this.brackets = new LanguageAgnosticBracketTokens(this.denseKeyProvider, this.getLanguageConfiguration);\n        this.onDidChange = this.didChangeEmitter.event;\n        this.queuedTextEditsForInitialAstWithoutTokens = [];\n        this.queuedTextEdits = [];\n        if (!textModel.tokenization.hasTokens) {\n          const brackets = this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId());\n          const tokenizer = new FastTokenizer(this.textModel.getValue(), brackets);\n          this.initialAstWithoutTokens = parseDocument(tokenizer, [], void 0, true);\n          this.astWithTokens = this.initialAstWithoutTokens;\n        } else if (textModel.tokenization.backgroundTokenizationState === 2) {\n          this.initialAstWithoutTokens = void 0;\n          this.astWithTokens = this.parseDocumentFromTextBuffer([], void 0, false);\n        } else {\n          this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer([], void 0, true);\n          this.astWithTokens = this.initialAstWithoutTokens;\n        }\n      }\n      //#region TextModel events\n      handleDidChangeBackgroundTokenizationState() {\n        if (this.textModel.tokenization.backgroundTokenizationState === 2) {\n          const wasUndefined = this.initialAstWithoutTokens === void 0;\n          this.initialAstWithoutTokens = void 0;\n          if (!wasUndefined) {\n            this.didChangeEmitter.fire();\n          }\n        }\n      }\n      handleDidChangeTokens({ ranges }) {\n        const edits = ranges.map((r) =\u003e new TextEditInfo(toLength(r.fromLineNumber - 1, 0), toLength(r.toLineNumber, 0), toLength(r.toLineNumber - r.fromLineNumber + 1, 0)));\n        this.handleEdits(edits, true);\n        if (!this.initialAstWithoutTokens) {\n          this.didChangeEmitter.fire();\n        }\n      }\n      handleContentChanged(change) {\n        const edits = TextEditInfo.fromModelContentChanges(change.changes);\n        this.handleEdits(edits, false);\n      }\n      handleEdits(edits, tokenChange) {\n        const result = combineTextEditInfos(this.queuedTextEdits, edits);\n        this.queuedTextEdits = result;\n        if (this.initialAstWithoutTokens \u0026\u0026 !tokenChange) {\n          this.queuedTextEditsForInitialAstWithoutTokens = combineTextEditInfos(this.queuedTextEditsForInitialAstWithoutTokens, edits);\n        }\n      }\n      //#endregion\n      flushQueue() {\n        if (this.queuedTextEdits.length \u003e 0) {\n          this.astWithTokens = this.parseDocumentFromTextBuffer(this.queuedTextEdits, this.astWithTokens, false);\n          this.queuedTextEdits = [];\n        }\n        if (this.queuedTextEditsForInitialAstWithoutTokens.length \u003e 0) {\n          if (this.initialAstWithoutTokens) {\n            this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens, this.initialAstWithoutTokens, false);\n          }\n          this.queuedTextEditsForInitialAstWithoutTokens = [];\n        }\n      }\n      /**\n       * @pure (only if isPure = true)\n      */\n      parseDocumentFromTextBuffer(edits, previousAst, immutable) {\n        const isPure = false;\n        const previousAstClone = isPure ? previousAst?.deepClone() : previousAst;\n        const tokenizer = new TextBufferTokenizer(this.textModel, this.brackets);\n        const result = parseDocument(tokenizer, edits, previousAstClone, immutable);\n        return result;\n      }\n      getBracketsInRange(range2, onlyColorizedBrackets) {\n        this.flushQueue();\n        const startOffset = toLength(range2.startLineNumber - 1, range2.startColumn - 1);\n        const endOffset = toLength(range2.endLineNumber - 1, range2.endColumn - 1);\n        return new CallbackIterable((cb) =\u003e {\n          const node = this.initialAstWithoutTokens || this.astWithTokens;\n          collectBrackets(node, lengthZero, node.length, startOffset, endOffset, cb, 0, 0, /* @__PURE__ */ new Map(), onlyColorizedBrackets);\n        });\n      }\n      getBracketPairsInRange(range2, includeMinIndentation) {\n        this.flushQueue();\n        const startLength = positionToLength(range2.getStartPosition());\n        const endLength = positionToLength(range2.getEndPosition());\n        return new CallbackIterable((cb) =\u003e {\n          const node = this.initialAstWithoutTokens || this.astWithTokens;\n          const context = new CollectBracketPairsContext(cb, includeMinIndentation, this.textModel);\n          collectBracketPairs(node, lengthZero, node.length, startLength, endLength, context, 0, /* @__PURE__ */ new Map());\n        });\n      }\n      getFirstBracketAfter(position) {\n        this.flushQueue();\n        const node = this.initialAstWithoutTokens || this.astWithTokens;\n        return getFirstBracketAfter(node, lengthZero, node.length, positionToLength(position));\n      }\n      getFirstBracketBefore(position) {\n        this.flushQueue();\n        const node = this.initialAstWithoutTokens || this.astWithTokens;\n        return getFirstBracketBefore(node, lengthZero, node.length, positionToLength(position));\n      }\n    };\n    CollectBracketPairsContext = class {\n      constructor(push, includeMinIndentation, textModel) {\n        this.push = push;\n        this.includeMinIndentation = includeMinIndentation;\n        this.textModel = textModel;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js\nfunction createDisposableRef(object, disposable) {\n  return {\n    object,\n    dispose: () =\u003e disposable?.dispose()\n  };\n}\nfunction createTimeBasedContinueBracketSearchPredicate(maxDuration) {\n  if (typeof maxDuration === \"undefined\") {\n    return () =\u003e true;\n  } else {\n    const startTime = Date.now();\n    return () =\u003e {\n      return Date.now() - startTime \u003c= maxDuration;\n    };\n  }\n}\nfunction stripBracketSearchCanceled(result) {\n  if (result instanceof BracketSearchCanceled) {\n    return null;\n  }\n  return result;\n}\nvar BracketPairsTextModelPart, BracketSearchCanceled;\nvar init_bracketPairsImpl = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js\"() {\n    init_arrays();\n    init_event();\n    init_lifecycle();\n    init_range();\n    init_supports();\n    init_richEditBrackets();\n    init_bracketPairsTree();\n    BracketPairsTextModelPart = class extends Disposable {\n      get canBuildAST() {\n        const maxSupportedDocumentLength = (\n          /* max lines */\n          5e4 * /* average column count */\n          100\n        );\n        return this.textModel.getValueLength() \u003c= maxSupportedDocumentLength;\n      }\n      constructor(textModel, languageConfigurationService) {\n        super();\n        this.textModel = textModel;\n        this.languageConfigurationService = languageConfigurationService;\n        this.bracketPairsTree = this._register(new MutableDisposable());\n        this.onDidChangeEmitter = new Emitter();\n        this.onDidChange = this.onDidChangeEmitter.event;\n        this.bracketsRequested = false;\n      }\n      //#region TextModel events\n      handleLanguageConfigurationServiceChange(e) {\n        if (!e.languageId || this.bracketPairsTree.value?.object.didLanguageChange(e.languageId)) {\n          this.bracketPairsTree.clear();\n          this.updateBracketPairsTree();\n        }\n      }\n      handleDidChangeOptions(e) {\n        this.bracketPairsTree.clear();\n        this.updateBracketPairsTree();\n      }\n      handleDidChangeLanguage(e) {\n        this.bracketPairsTree.clear();\n        this.updateBracketPairsTree();\n      }\n      handleDidChangeContent(change) {\n        this.bracketPairsTree.value?.object.handleContentChanged(change);\n      }\n      handleDidChangeBackgroundTokenizationState() {\n        this.bracketPairsTree.value?.object.handleDidChangeBackgroundTokenizationState();\n      }\n      handleDidChangeTokens(e) {\n        this.bracketPairsTree.value?.object.handleDidChangeTokens(e);\n      }\n      //#endregion\n      updateBracketPairsTree() {\n        if (this.bracketsRequested \u0026\u0026 this.canBuildAST) {\n          if (!this.bracketPairsTree.value) {\n            const store = new DisposableStore();\n            this.bracketPairsTree.value = createDisposableRef(store.add(new BracketPairsTree(this.textModel, (languageId) =\u003e {\n              return this.languageConfigurationService.getLanguageConfiguration(languageId);\n            })), store);\n            store.add(this.bracketPairsTree.value.object.onDidChange((e) =\u003e this.onDidChangeEmitter.fire(e)));\n            this.onDidChangeEmitter.fire();\n          }\n        } else {\n          if (this.bracketPairsTree.value) {\n            this.bracketPairsTree.clear();\n            this.onDidChangeEmitter.fire();\n          }\n        }\n      }\n      /**\n       * Returns all bracket pairs that intersect the given range.\n       * The result is sorted by the start position.\n      */\n      getBracketPairsInRange(range2) {\n        this.bracketsRequested = true;\n        this.updateBracketPairsTree();\n        return this.bracketPairsTree.value?.object.getBracketPairsInRange(range2, false) || CallbackIterable.empty;\n      }\n      getBracketPairsInRangeWithMinIndentation(range2) {\n        this.bracketsRequested = true;\n        this.updateBracketPairsTree();\n        return this.bracketPairsTree.value?.object.getBracketPairsInRange(range2, true) || CallbackIterable.empty;\n      }\n      getBracketsInRange(range2, onlyColorizedBrackets = false) {\n        this.bracketsRequested = true;\n        this.updateBracketPairsTree();\n        return this.bracketPairsTree.value?.object.getBracketsInRange(range2, onlyColorizedBrackets) || CallbackIterable.empty;\n      }\n      findMatchingBracketUp(_bracket, _position, maxDuration) {\n        const position = this.textModel.validatePosition(_position);\n        const languageId = this.textModel.getLanguageIdAtPosition(position.lineNumber, position.column);\n        if (this.canBuildAST) {\n          const closingBracketInfo = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew.getClosingBracketInfo(_bracket);\n          if (!closingBracketInfo) {\n            return null;\n          }\n          const bracketPair = this.getBracketPairsInRange(Range.fromPositions(_position, _position)).findLast((b) =\u003e closingBracketInfo.closes(b.openingBracketInfo));\n          if (bracketPair) {\n            return bracketPair.openingBracketRange;\n          }\n          return null;\n        } else {\n          const bracket = _bracket.toLowerCase();\n          const bracketsSupport = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n          if (!bracketsSupport) {\n            return null;\n          }\n          const data = bracketsSupport.textIsBracket[bracket];\n          if (!data) {\n            return null;\n          }\n          return stripBracketSearchCanceled(this._findMatchingBracketUp(data, position, createTimeBasedContinueBracketSearchPredicate(maxDuration)));\n        }\n      }\n      matchBracket(position, maxDuration) {\n        if (this.canBuildAST) {\n          const bracketPair = this.getBracketPairsInRange(Range.fromPositions(position, position)).filter((item) =\u003e item.closingBracketRange !== void 0 \u0026\u0026 (item.openingBracketRange.containsPosition(position) || item.closingBracketRange.containsPosition(position))).findLastMaxBy(compareBy((item) =\u003e item.openingBracketRange.containsPosition(position) ? item.openingBracketRange : item.closingBracketRange, Range.compareRangesUsingStarts));\n          if (bracketPair) {\n            return [bracketPair.openingBracketRange, bracketPair.closingBracketRange];\n          }\n          return null;\n        } else {\n          const continueSearchPredicate = createTimeBasedContinueBracketSearchPredicate(maxDuration);\n          return this._matchBracket(this.textModel.validatePosition(position), continueSearchPredicate);\n        }\n      }\n      _establishBracketSearchOffsets(position, lineTokens, modeBrackets, tokenIndex) {\n        const tokenCount = lineTokens.getCount();\n        const currentLanguageId = lineTokens.getLanguageId(tokenIndex);\n        let searchStartOffset = Math.max(0, position.column - 1 - modeBrackets.maxBracketLength);\n        for (let i2 = tokenIndex - 1; i2 \u003e= 0; i2--) {\n          const tokenEndOffset = lineTokens.getEndOffset(i2);\n          if (tokenEndOffset \u003c= searchStartOffset) {\n            break;\n          }\n          if (ignoreBracketsInToken(lineTokens.getStandardTokenType(i2)) || lineTokens.getLanguageId(i2) !== currentLanguageId) {\n            searchStartOffset = tokenEndOffset;\n            break;\n          }\n        }\n        let searchEndOffset = Math.min(lineTokens.getLineContent().length, position.column - 1 + modeBrackets.maxBracketLength);\n        for (let i2 = tokenIndex + 1; i2 \u003c tokenCount; i2++) {\n          const tokenStartOffset = lineTokens.getStartOffset(i2);\n          if (tokenStartOffset \u003e= searchEndOffset) {\n            break;\n          }\n          if (ignoreBracketsInToken(lineTokens.getStandardTokenType(i2)) || lineTokens.getLanguageId(i2) !== currentLanguageId) {\n            searchEndOffset = tokenStartOffset;\n            break;\n          }\n        }\n        return { searchStartOffset, searchEndOffset };\n      }\n      _matchBracket(position, continueSearchPredicate) {\n        const lineNumber = position.lineNumber;\n        const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n        const lineText = this.textModel.getLineContent(lineNumber);\n        const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n        if (tokenIndex \u003c 0) {\n          return null;\n        }\n        const currentModeBrackets = this.languageConfigurationService.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex)).brackets;\n        if (currentModeBrackets \u0026\u0026 !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex))) {\n          let { searchStartOffset, searchEndOffset } = this._establishBracketSearchOffsets(position, lineTokens, currentModeBrackets, tokenIndex);\n          let bestResult = null;\n          while (true) {\n            const foundBracket = BracketsUtils.findNextBracketInRange(currentModeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (!foundBracket) {\n              break;\n            }\n            if (foundBracket.startColumn \u003c= position.column \u0026\u0026 position.column \u003c= foundBracket.endColumn) {\n              const foundBracketText = lineText.substring(foundBracket.startColumn - 1, foundBracket.endColumn - 1).toLowerCase();\n              const r = this._matchFoundBracket(foundBracket, currentModeBrackets.textIsBracket[foundBracketText], currentModeBrackets.textIsOpenBracket[foundBracketText], continueSearchPredicate);\n              if (r) {\n                if (r instanceof BracketSearchCanceled) {\n                  return null;\n                }\n                bestResult = r;\n              }\n            }\n            searchStartOffset = foundBracket.endColumn - 1;\n          }\n          if (bestResult) {\n            return bestResult;\n          }\n        }\n        if (tokenIndex \u003e 0 \u0026\u0026 lineTokens.getStartOffset(tokenIndex) === position.column - 1) {\n          const prevTokenIndex = tokenIndex - 1;\n          const prevModeBrackets = this.languageConfigurationService.getLanguageConfiguration(lineTokens.getLanguageId(prevTokenIndex)).brackets;\n          if (prevModeBrackets \u0026\u0026 !ignoreBracketsInToken(lineTokens.getStandardTokenType(prevTokenIndex))) {\n            const { searchStartOffset, searchEndOffset } = this._establishBracketSearchOffsets(position, lineTokens, prevModeBrackets, prevTokenIndex);\n            const foundBracket = BracketsUtils.findPrevBracketInRange(prevModeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (foundBracket \u0026\u0026 foundBracket.startColumn \u003c= position.column \u0026\u0026 position.column \u003c= foundBracket.endColumn) {\n              const foundBracketText = lineText.substring(foundBracket.startColumn - 1, foundBracket.endColumn - 1).toLowerCase();\n              const r = this._matchFoundBracket(foundBracket, prevModeBrackets.textIsBracket[foundBracketText], prevModeBrackets.textIsOpenBracket[foundBracketText], continueSearchPredicate);\n              if (r) {\n                if (r instanceof BracketSearchCanceled) {\n                  return null;\n                }\n                return r;\n              }\n            }\n          }\n        }\n        return null;\n      }\n      _matchFoundBracket(foundBracket, data, isOpen, continueSearchPredicate) {\n        if (!data) {\n          return null;\n        }\n        const matched = isOpen ? this._findMatchingBracketDown(data, foundBracket.getEndPosition(), continueSearchPredicate) : this._findMatchingBracketUp(data, foundBracket.getStartPosition(), continueSearchPredicate);\n        if (!matched) {\n          return null;\n        }\n        if (matched instanceof BracketSearchCanceled) {\n          return matched;\n        }\n        return [foundBracket, matched];\n      }\n      _findMatchingBracketUp(bracket, position, continueSearchPredicate) {\n        const languageId = bracket.languageId;\n        const reversedBracketRegex = bracket.reversedRegex;\n        let count = -1;\n        let totalCallCount = 0;\n        const searchPrevMatchingBracketInRange = (lineNumber, lineText, searchStartOffset, searchEndOffset) =\u003e {\n          while (true) {\n            if (continueSearchPredicate \u0026\u0026 ++totalCallCount % 100 === 0 \u0026\u0026 !continueSearchPredicate()) {\n              return BracketSearchCanceled.INSTANCE;\n            }\n            const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (!r) {\n              break;\n            }\n            const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n            if (bracket.isOpen(hitText)) {\n              count++;\n            } else if (bracket.isClose(hitText)) {\n              count--;\n            }\n            if (count === 0) {\n              return r;\n            }\n            searchEndOffset = r.startColumn - 1;\n          }\n          return null;\n        };\n        for (let lineNumber = position.lineNumber; lineNumber \u003e= 1; lineNumber--) {\n          const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n          const tokenCount = lineTokens.getCount();\n          const lineText = this.textModel.getLineContent(lineNumber);\n          let tokenIndex = tokenCount - 1;\n          let searchStartOffset = lineText.length;\n          let searchEndOffset = lineText.length;\n          if (lineNumber === position.lineNumber) {\n            tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n            searchStartOffset = position.column - 1;\n            searchEndOffset = position.column - 1;\n          }\n          let prevSearchInToken = true;\n          for (; tokenIndex \u003e= 0; tokenIndex--) {\n            const searchInToken = lineTokens.getLanguageId(tokenIndex) === languageId \u0026\u0026 !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex));\n            if (searchInToken) {\n              if (prevSearchInToken) {\n                searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n              } else {\n                searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n              }\n            } else {\n              if (prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n                const r = searchPrevMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                  return r;\n                }\n              }\n            }\n            prevSearchInToken = searchInToken;\n          }\n          if (prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n            const r = searchPrevMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (r) {\n              return r;\n            }\n          }\n        }\n        return null;\n      }\n      _findMatchingBracketDown(bracket, position, continueSearchPredicate) {\n        const languageId = bracket.languageId;\n        const bracketRegex = bracket.forwardRegex;\n        let count = 1;\n        let totalCallCount = 0;\n        const searchNextMatchingBracketInRange = (lineNumber, lineText, searchStartOffset, searchEndOffset) =\u003e {\n          while (true) {\n            if (continueSearchPredicate \u0026\u0026 ++totalCallCount % 100 === 0 \u0026\u0026 !continueSearchPredicate()) {\n              return BracketSearchCanceled.INSTANCE;\n            }\n            const r = BracketsUtils.findNextBracketInRange(bracketRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (!r) {\n              break;\n            }\n            const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n            if (bracket.isOpen(hitText)) {\n              count++;\n            } else if (bracket.isClose(hitText)) {\n              count--;\n            }\n            if (count === 0) {\n              return r;\n            }\n            searchStartOffset = r.endColumn - 1;\n          }\n          return null;\n        };\n        const lineCount = this.textModel.getLineCount();\n        for (let lineNumber = position.lineNumber; lineNumber \u003c= lineCount; lineNumber++) {\n          const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n          const tokenCount = lineTokens.getCount();\n          const lineText = this.textModel.getLineContent(lineNumber);\n          let tokenIndex = 0;\n          let searchStartOffset = 0;\n          let searchEndOffset = 0;\n          if (lineNumber === position.lineNumber) {\n            tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n            searchStartOffset = position.column - 1;\n            searchEndOffset = position.column - 1;\n          }\n          let prevSearchInToken = true;\n          for (; tokenIndex \u003c tokenCount; tokenIndex++) {\n            const searchInToken = lineTokens.getLanguageId(tokenIndex) === languageId \u0026\u0026 !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex));\n            if (searchInToken) {\n              if (prevSearchInToken) {\n                searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n              } else {\n                searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n              }\n            } else {\n              if (prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n                const r = searchNextMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                  return r;\n                }\n              }\n            }\n            prevSearchInToken = searchInToken;\n          }\n          if (prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n            const r = searchNextMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (r) {\n              return r;\n            }\n          }\n        }\n        return null;\n      }\n      findPrevBracket(_position) {\n        const position = this.textModel.validatePosition(_position);\n        if (this.canBuildAST) {\n          this.bracketsRequested = true;\n          this.updateBracketPairsTree();\n          return this.bracketPairsTree.value?.object.getFirstBracketBefore(position) || null;\n        }\n        let languageId = null;\n        let modeBrackets = null;\n        let bracketConfig = null;\n        for (let lineNumber = position.lineNumber; lineNumber \u003e= 1; lineNumber--) {\n          const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n          const tokenCount = lineTokens.getCount();\n          const lineText = this.textModel.getLineContent(lineNumber);\n          let tokenIndex = tokenCount - 1;\n          let searchStartOffset = lineText.length;\n          let searchEndOffset = lineText.length;\n          if (lineNumber === position.lineNumber) {\n            tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n            searchStartOffset = position.column - 1;\n            searchEndOffset = position.column - 1;\n            const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n            if (languageId !== tokenLanguageId) {\n              languageId = tokenLanguageId;\n              modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n              bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n            }\n          }\n          let prevSearchInToken = true;\n          for (; tokenIndex \u003e= 0; tokenIndex--) {\n            const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n            if (languageId !== tokenLanguageId) {\n              if (modeBrackets \u0026\u0026 bracketConfig \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n                const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                  return this._toFoundBracket(bracketConfig, r);\n                }\n                prevSearchInToken = false;\n              }\n              languageId = tokenLanguageId;\n              modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n              bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n            }\n            const searchInToken = !!modeBrackets \u0026\u0026 !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex));\n            if (searchInToken) {\n              if (prevSearchInToken) {\n                searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n              } else {\n                searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n              }\n            } else {\n              if (bracketConfig \u0026\u0026 modeBrackets \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n                const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                  return this._toFoundBracket(bracketConfig, r);\n                }\n              }\n            }\n            prevSearchInToken = searchInToken;\n          }\n          if (bracketConfig \u0026\u0026 modeBrackets \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n            const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (r) {\n              return this._toFoundBracket(bracketConfig, r);\n            }\n          }\n        }\n        return null;\n      }\n      findNextBracket(_position) {\n        const position = this.textModel.validatePosition(_position);\n        if (this.canBuildAST) {\n          this.bracketsRequested = true;\n          this.updateBracketPairsTree();\n          return this.bracketPairsTree.value?.object.getFirstBracketAfter(position) || null;\n        }\n        const lineCount = this.textModel.getLineCount();\n        let languageId = null;\n        let modeBrackets = null;\n        let bracketConfig = null;\n        for (let lineNumber = position.lineNumber; lineNumber \u003c= lineCount; lineNumber++) {\n          const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n          const tokenCount = lineTokens.getCount();\n          const lineText = this.textModel.getLineContent(lineNumber);\n          let tokenIndex = 0;\n          let searchStartOffset = 0;\n          let searchEndOffset = 0;\n          if (lineNumber === position.lineNumber) {\n            tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n            searchStartOffset = position.column - 1;\n            searchEndOffset = position.column - 1;\n            const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n            if (languageId !== tokenLanguageId) {\n              languageId = tokenLanguageId;\n              modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n              bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n            }\n          }\n          let prevSearchInToken = true;\n          for (; tokenIndex \u003c tokenCount; tokenIndex++) {\n            const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n            if (languageId !== tokenLanguageId) {\n              if (bracketConfig \u0026\u0026 modeBrackets \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n                const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                  return this._toFoundBracket(bracketConfig, r);\n                }\n                prevSearchInToken = false;\n              }\n              languageId = tokenLanguageId;\n              modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n              bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n            }\n            const searchInToken = !!modeBrackets \u0026\u0026 !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex));\n            if (searchInToken) {\n              if (prevSearchInToken) {\n                searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n              } else {\n                searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n              }\n            } else {\n              if (bracketConfig \u0026\u0026 modeBrackets \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n                const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                  return this._toFoundBracket(bracketConfig, r);\n                }\n              }\n            }\n            prevSearchInToken = searchInToken;\n          }\n          if (bracketConfig \u0026\u0026 modeBrackets \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n            const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (r) {\n              return this._toFoundBracket(bracketConfig, r);\n            }\n          }\n        }\n        return null;\n      }\n      findEnclosingBrackets(_position, maxDuration) {\n        const position = this.textModel.validatePosition(_position);\n        if (this.canBuildAST) {\n          const range2 = Range.fromPositions(position);\n          const bracketPair = this.getBracketPairsInRange(Range.fromPositions(position, position)).findLast((item) =\u003e item.closingBracketRange !== void 0 \u0026\u0026 item.range.strictContainsRange(range2));\n          if (bracketPair) {\n            return [bracketPair.openingBracketRange, bracketPair.closingBracketRange];\n          }\n          return null;\n        }\n        const continueSearchPredicate = createTimeBasedContinueBracketSearchPredicate(maxDuration);\n        const lineCount = this.textModel.getLineCount();\n        const savedCounts = /* @__PURE__ */ new Map();\n        let counts = [];\n        const resetCounts = (languageId2, modeBrackets2) =\u003e {\n          if (!savedCounts.has(languageId2)) {\n            const tmp = [];\n            for (let i2 = 0, len = modeBrackets2 ? modeBrackets2.brackets.length : 0; i2 \u003c len; i2++) {\n              tmp[i2] = 0;\n            }\n            savedCounts.set(languageId2, tmp);\n          }\n          counts = savedCounts.get(languageId2);\n        };\n        let totalCallCount = 0;\n        const searchInRange = (modeBrackets2, lineNumber, lineText, searchStartOffset, searchEndOffset) =\u003e {\n          while (true) {\n            if (continueSearchPredicate \u0026\u0026 ++totalCallCount % 100 === 0 \u0026\u0026 !continueSearchPredicate()) {\n              return BracketSearchCanceled.INSTANCE;\n            }\n            const r = BracketsUtils.findNextBracketInRange(modeBrackets2.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (!r) {\n              break;\n            }\n            const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n            const bracket = modeBrackets2.textIsBracket[hitText];\n            if (bracket) {\n              if (bracket.isOpen(hitText)) {\n                counts[bracket.index]++;\n              } else if (bracket.isClose(hitText)) {\n                counts[bracket.index]--;\n              }\n              if (counts[bracket.index] === -1) {\n                return this._matchFoundBracket(r, bracket, false, continueSearchPredicate);\n              }\n            }\n            searchStartOffset = r.endColumn - 1;\n          }\n          return null;\n        };\n        let languageId = null;\n        let modeBrackets = null;\n        for (let lineNumber = position.lineNumber; lineNumber \u003c= lineCount; lineNumber++) {\n          const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n          const tokenCount = lineTokens.getCount();\n          const lineText = this.textModel.getLineContent(lineNumber);\n          let tokenIndex = 0;\n          let searchStartOffset = 0;\n          let searchEndOffset = 0;\n          if (lineNumber === position.lineNumber) {\n            tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n            searchStartOffset = position.column - 1;\n            searchEndOffset = position.column - 1;\n            const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n            if (languageId !== tokenLanguageId) {\n              languageId = tokenLanguageId;\n              modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n              resetCounts(languageId, modeBrackets);\n            }\n          }\n          let prevSearchInToken = true;\n          for (; tokenIndex \u003c tokenCount; tokenIndex++) {\n            const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n            if (languageId !== tokenLanguageId) {\n              if (modeBrackets \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n                const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                  return stripBracketSearchCanceled(r);\n                }\n                prevSearchInToken = false;\n              }\n              languageId = tokenLanguageId;\n              modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n              resetCounts(languageId, modeBrackets);\n            }\n            const searchInToken = !!modeBrackets \u0026\u0026 !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex));\n            if (searchInToken) {\n              if (prevSearchInToken) {\n                searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n              } else {\n                searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n                searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n              }\n            } else {\n              if (modeBrackets \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n                const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n                if (r) {\n                  return stripBracketSearchCanceled(r);\n                }\n              }\n            }\n            prevSearchInToken = searchInToken;\n          }\n          if (modeBrackets \u0026\u0026 prevSearchInToken \u0026\u0026 searchStartOffset !== searchEndOffset) {\n            const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n            if (r) {\n              return stripBracketSearchCanceled(r);\n            }\n          }\n        }\n        return null;\n      }\n      _toFoundBracket(bracketConfig, r) {\n        if (!r) {\n          return null;\n        }\n        let text2 = this.textModel.getValueInRange(r);\n        text2 = text2.toLowerCase();\n        const bracketInfo = bracketConfig.getBracketInfo(text2);\n        if (!bracketInfo) {\n          return null;\n        }\n        return {\n          range: r,\n          bracketInfo\n        };\n      }\n    };\n    BracketSearchCanceled = class _BracketSearchCanceled {\n      static {\n        this.INSTANCE = new _BracketSearchCanceled();\n      }\n      constructor() {\n        this._searchCanceledBrand = void 0;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js\nvar ColorizedBracketPairsDecorationProvider, ColorProvider;\nvar init_colorizedBracketPairsDecorationProvider = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js\"() {\n    init_event();\n    init_lifecycle();\n    init_range();\n    init_editorColorRegistry();\n    init_themeService();\n    ColorizedBracketPairsDecorationProvider = class extends Disposable {\n      constructor(textModel) {\n        super();\n        this.textModel = textModel;\n        this.colorProvider = new ColorProvider();\n        this.onDidChangeEmitter = new Emitter();\n        this.onDidChange = this.onDidChangeEmitter.event;\n        this.colorizationOptions = textModel.getOptions().bracketPairColorizationOptions;\n        this._register(textModel.bracketPairs.onDidChange((e) =\u003e {\n          this.onDidChangeEmitter.fire();\n        }));\n      }\n      //#region TextModel events\n      handleDidChangeOptions(e) {\n        this.colorizationOptions = this.textModel.getOptions().bracketPairColorizationOptions;\n      }\n      //#endregion\n      getDecorationsInRange(range2, ownerId2, filterOutValidation, onlyMinimapDecorations) {\n        if (onlyMinimapDecorations) {\n          return [];\n        }\n        if (ownerId2 === void 0) {\n          return [];\n        }\n        if (!this.colorizationOptions.enabled) {\n          return [];\n        }\n        const result = this.textModel.bracketPairs.getBracketsInRange(range2, true).map((bracket) =\u003e ({\n          id: `bracket${bracket.range.toString()}-${bracket.nestingLevel}`,\n          options: {\n            description: \"BracketPairColorization\",\n            inlineClassName: this.colorProvider.getInlineClassName(bracket, this.colorizationOptions.independentColorPoolPerBracketType)\n          },\n          ownerId: 0,\n          range: bracket.range\n        })).toArray();\n        return result;\n      }\n      getAllDecorations(ownerId2, filterOutValidation) {\n        if (ownerId2 === void 0) {\n          return [];\n        }\n        if (!this.colorizationOptions.enabled) {\n          return [];\n        }\n        return this.getDecorationsInRange(new Range(1, 1, this.textModel.getLineCount(), 1), ownerId2, filterOutValidation);\n      }\n    };\n    ColorProvider = class {\n      constructor() {\n        this.unexpectedClosingBracketClassName = \"unexpected-closing-bracket\";\n      }\n      getInlineClassName(bracket, independentColorPoolPerBracketType) {\n        if (bracket.isInvalid) {\n          return this.unexpectedClosingBracketClassName;\n        }\n        return this.getInlineClassNameOfLevel(independentColorPoolPerBracketType ? bracket.nestingLevelOfEqualBracketType : bracket.nestingLevel);\n      }\n      getInlineClassNameOfLevel(level) {\n        return `bracket-highlighting-${level % 30}`;\n      }\n    };\n    registerThemingParticipant((theme, collector) =\u003e {\n      const colors = [\n        editorBracketHighlightingForeground1,\n        editorBracketHighlightingForeground2,\n        editorBracketHighlightingForeground3,\n        editorBracketHighlightingForeground4,\n        editorBracketHighlightingForeground5,\n        editorBracketHighlightingForeground6\n      ];\n      const colorProvider = new ColorProvider();\n      collector.addRule(`.monaco-editor .${colorProvider.unexpectedClosingBracketClassName} { color: ${theme.getColor(editorBracketHighlightingUnexpectedBracketForeground)}; }`);\n      const colorValues = colors.map((c) =\u003e theme.getColor(c)).filter((c) =\u003e !!c).filter((c) =\u003e !c.isTransparent());\n      for (let level = 0; level \u003c 30; level++) {\n        const color = colorValues[level % colorValues.length];\n        collector.addRule(`.monaco-editor .${colorProvider.getInlineClassNameOfLevel(level)} { color: ${color}; }`);\n      }\n    });\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/textChange.js\nfunction escapeNewLine(str) {\n  return str.replace(/\\n/g, \"\\\\n\").replace(/\\r/g, \"\\\\r\");\n}\nfunction compressConsecutiveTextChanges(prevEdits, currEdits) {\n  if (prevEdits === null || prevEdits.length === 0) {\n    return currEdits;\n  }\n  const compressor = new TextChangeCompressor(prevEdits, currEdits);\n  return compressor.compress();\n}\nvar TextChange, TextChangeCompressor;\nvar init_textChange = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/textChange.js\"() {\n    init_buffer();\n    init_stringBuilder();\n    TextChange = class _TextChange {\n      get oldLength() {\n        return this.oldText.length;\n      }\n      get oldEnd() {\n        return this.oldPosition + this.oldText.length;\n      }\n      get newLength() {\n        return this.newText.length;\n      }\n      get newEnd() {\n        return this.newPosition + this.newText.length;\n      }\n      constructor(oldPosition, oldText, newPosition, newText) {\n        this.oldPosition = oldPosition;\n        this.oldText = oldText;\n        this.newPosition = newPosition;\n        this.newText = newText;\n      }\n      toString() {\n        if (this.oldText.length === 0) {\n          return `(insert@${this.oldPosition} \"${escapeNewLine(this.newText)}\")`;\n        }\n        if (this.newText.length === 0) {\n          return `(delete@${this.oldPosition} \"${escapeNewLine(this.oldText)}\")`;\n        }\n        return `(replace@${this.oldPosition} \"${escapeNewLine(this.oldText)}\" with \"${escapeNewLine(this.newText)}\")`;\n      }\n      static _writeStringSize(str) {\n        return 4 + 2 * str.length;\n      }\n      static _writeString(b, str, offset) {\n        const len = str.length;\n        writeUInt32BE(b, len, offset);\n        offset += 4;\n        for (let i2 = 0; i2 \u003c len; i2++) {\n          writeUInt16LE(b, str.charCodeAt(i2), offset);\n          offset += 2;\n        }\n        return offset;\n      }\n      static _readString(b, offset) {\n        const len = readUInt32BE(b, offset);\n        offset += 4;\n        return decodeUTF16LE(b, offset, len);\n      }\n      writeSize() {\n        return 4 + 4 + _TextChange._writeStringSize(this.oldText) + _TextChange._writeStringSize(this.newText);\n      }\n      write(b, offset) {\n        writeUInt32BE(b, this.oldPosition, offset);\n        offset += 4;\n        writeUInt32BE(b, this.newPosition, offset);\n        offset += 4;\n        offset = _TextChange._writeString(b, this.oldText, offset);\n        offset = _TextChange._writeString(b, this.newText, offset);\n        return offset;\n      }\n      static read(b, offset, dest) {\n        const oldPosition = readUInt32BE(b, offset);\n        offset += 4;\n        const newPosition = readUInt32BE(b, offset);\n        offset += 4;\n        const oldText = _TextChange._readString(b, offset);\n        offset += _TextChange._writeStringSize(oldText);\n        const newText = _TextChange._readString(b, offset);\n        offset += _TextChange._writeStringSize(newText);\n        dest.push(new _TextChange(oldPosition, oldText, newPosition, newText));\n        return offset;\n      }\n    };\n    TextChangeCompressor = class _TextChangeCompressor {\n      constructor(prevEdits, currEdits) {\n        this._prevEdits = prevEdits;\n        this._currEdits = currEdits;\n        this._result = [];\n        this._resultLen = 0;\n        this._prevLen = this._prevEdits.length;\n        this._prevDeltaOffset = 0;\n        this._currLen = this._currEdits.length;\n        this._currDeltaOffset = 0;\n      }\n      compress() {\n        let prevIndex = 0;\n        let currIndex = 0;\n        let prevEdit = this._getPrev(prevIndex);\n        let currEdit = this._getCurr(currIndex);\n        while (prevIndex \u003c this._prevLen || currIndex \u003c this._currLen) {\n          if (prevEdit === null) {\n            this._acceptCurr(currEdit);\n            currEdit = this._getCurr(++currIndex);\n            continue;\n          }\n          if (currEdit === null) {\n            this._acceptPrev(prevEdit);\n            prevEdit = this._getPrev(++prevIndex);\n            continue;\n          }\n          if (currEdit.oldEnd \u003c= prevEdit.newPosition) {\n            this._acceptCurr(currEdit);\n            currEdit = this._getCurr(++currIndex);\n            continue;\n          }\n          if (prevEdit.newEnd \u003c= currEdit.oldPosition) {\n            this._acceptPrev(prevEdit);\n            prevEdit = this._getPrev(++prevIndex);\n            continue;\n          }\n          if (currEdit.oldPosition \u003c prevEdit.newPosition) {\n            const [e1, e2] = _TextChangeCompressor._splitCurr(currEdit, prevEdit.newPosition - currEdit.oldPosition);\n            this._acceptCurr(e1);\n            currEdit = e2;\n            continue;\n          }\n          if (prevEdit.newPosition \u003c currEdit.oldPosition) {\n            const [e1, e2] = _TextChangeCompressor._splitPrev(prevEdit, currEdit.oldPosition - prevEdit.newPosition);\n            this._acceptPrev(e1);\n            prevEdit = e2;\n            continue;\n          }\n          let mergePrev;\n          let mergeCurr;\n          if (currEdit.oldEnd === prevEdit.newEnd) {\n            mergePrev = prevEdit;\n            mergeCurr = currEdit;\n            prevEdit = this._getPrev(++prevIndex);\n            currEdit = this._getCurr(++currIndex);\n          } else if (currEdit.oldEnd \u003c prevEdit.newEnd) {\n            const [e1, e2] = _TextChangeCompressor._splitPrev(prevEdit, currEdit.oldLength);\n            mergePrev = e1;\n            mergeCurr = currEdit;\n            prevEdit = e2;\n            currEdit = this._getCurr(++currIndex);\n          } else {\n            const [e1, e2] = _TextChangeCompressor._splitCurr(currEdit, prevEdit.newLength);\n            mergePrev = prevEdit;\n            mergeCurr = e1;\n            prevEdit = this._getPrev(++prevIndex);\n            currEdit = e2;\n          }\n          this._result[this._resultLen++] = new TextChange(mergePrev.oldPosition, mergePrev.oldText, mergeCurr.newPosition, mergeCurr.newText);\n          this._prevDeltaOffset += mergePrev.newLength - mergePrev.oldLength;\n          this._currDeltaOffset += mergeCurr.newLength - mergeCurr.oldLength;\n        }\n        const merged = _TextChangeCompressor._merge(this._result);\n        const cleaned = _TextChangeCompressor._removeNoOps(merged);\n        return cleaned;\n      }\n      _acceptCurr(currEdit) {\n        this._result[this._resultLen++] = _TextChangeCompressor._rebaseCurr(this._prevDeltaOffset, currEdit);\n        this._currDeltaOffset += currEdit.newLength - currEdit.oldLength;\n      }\n      _getCurr(currIndex) {\n        return currIndex \u003c this._currLen ? this._currEdits[currIndex] : null;\n      }\n      _acceptPrev(prevEdit) {\n        this._result[this._resultLen++] = _TextChangeCompressor._rebasePrev(this._currDeltaOffset, prevEdit);\n        this._prevDeltaOffset += prevEdit.newLength - prevEdit.oldLength;\n      }\n      _getPrev(prevIndex) {\n        return prevIndex \u003c this._prevLen ? this._prevEdits[prevIndex] : null;\n      }\n      static _rebaseCurr(prevDeltaOffset, currEdit) {\n        return new TextChange(currEdit.oldPosition - prevDeltaOffset, currEdit.oldText, currEdit.newPosition, currEdit.newText);\n      }\n      static _rebasePrev(currDeltaOffset, prevEdit) {\n        return new TextChange(prevEdit.oldPosition, prevEdit.oldText, prevEdit.newPosition + currDeltaOffset, prevEdit.newText);\n      }\n      static _splitPrev(edit2, offset) {\n        const preText = edit2.newText.substr(0, offset);\n        const postText = edit2.newText.substr(offset);\n        return [\n          new TextChange(edit2.oldPosition, edit2.oldText, edit2.newPosition, preText),\n          new TextChange(edit2.oldEnd, \"\", edit2.newPosition + offset, postText)\n        ];\n      }\n      static _splitCurr(edit2, offset) {\n        const preText = edit2.oldText.substr(0, offset);\n        const postText = edit2.oldText.substr(offset);\n        return [\n          new TextChange(edit2.oldPosition, preText, edit2.newPosition, edit2.newText),\n          new TextChange(edit2.oldPosition + offset, postText, edit2.newEnd, \"\")\n        ];\n      }\n      static _merge(edits) {\n        if (edits.length === 0) {\n          return edits;\n        }\n        const result = [];\n        let resultLen = 0;\n        let prev = edits[0];\n        for (let i2 = 1; i2 \u003c edits.length; i2++) {\n          const curr = edits[i2];\n          if (prev.oldEnd === curr.oldPosition) {\n            prev = new TextChange(prev.oldPosition, prev.oldText + curr.oldText, prev.newPosition, prev.newText + curr.newText);\n          } else {\n            result[resultLen++] = prev;\n            prev = curr;\n          }\n        }\n        result[resultLen++] = prev;\n        return result;\n      }\n      static _removeNoOps(edits) {\n        if (edits.length === 0) {\n          return edits;\n        }\n        const result = [];\n        let resultLen = 0;\n        for (let i2 = 0; i2 \u003c edits.length; i2++) {\n          const edit2 = edits[i2];\n          if (edit2.oldText === edit2.newText) {\n            continue;\n          }\n          result[resultLen++] = edit2;\n        }\n        return result;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/textModelEditSource.js\nfunction createEditSource(metadata) {\n  return new TextModelEditSource(metadata, privateSymbol);\n}\nfunction toProperties(version) {\n  if (!version) {\n    return {};\n  }\n  return {\n    $extensionId: version.extensionId,\n    $extensionVersion: version.extensionVersion,\n    $providerId: version.providerId\n  };\n}\nfunction avoidPathRedaction(str) {\n  if (str === void 0) {\n    return void 0;\n  }\n  return str.replaceAll(\"/\", \"|\");\n}\nfunction toEditIdentity(id) {\n  return id;\n}\nvar privateSymbol, TextModelEditSource, EditSources, EditSuggestionId;\nvar init_textModelEditSource = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/textModelEditSource.js\"() {\n    init_uuid();\n    privateSymbol = Symbol(\"TextModelEditSource\");\n    TextModelEditSource = class {\n      constructor(metadata, _privateCtorGuard) {\n        this.metadata = metadata;\n      }\n      toString() {\n        return `${this.metadata.source}`;\n      }\n      getType() {\n        const metadata = this.metadata;\n        switch (metadata.source) {\n          case \"cursor\":\n            return metadata.kind;\n          case \"inlineCompletionAccept\":\n            return metadata.source + (metadata.$nes ? \":nes\" : \"\");\n          case \"unknown\":\n            return metadata.name || \"unknown\";\n          default:\n            return metadata.source;\n        }\n      }\n      /**\n       * Converts the metadata to a key string.\n       * Only includes properties/values that have `level` many `$` prefixes or less.\n      */\n      toKey(level, filter = {}) {\n        const metadata = this.metadata;\n        const keys = Object.entries(metadata).filter(([key, value]) =\u003e {\n          const filterVal = filter[key];\n          if (filterVal !== void 0) {\n            return filterVal;\n          }\n          const prefixCount = (key.match(/\\$/g) || []).length;\n          return prefixCount \u003c= level \u0026\u0026 value !== void 0 \u0026\u0026 value !== null \u0026\u0026 value !== \"\";\n        }).map(([key, value]) =\u003e `${key}:${value}`);\n        return keys.join(\"-\");\n      }\n    };\n    EditSources = {\n      unknown(data) {\n        return createEditSource({\n          source: \"unknown\",\n          name: data.name\n        });\n      },\n      rename: () =\u003e createEditSource({ source: \"rename\" }),\n      chatApplyEdits(data) {\n        return createEditSource({\n          source: \"Chat.applyEdits\",\n          $modelId: avoidPathRedaction(data.modelId),\n          $extensionId: data.extensionId?.extensionId,\n          $extensionVersion: data.extensionId?.version,\n          $$languageId: data.languageId,\n          $$sessionId: data.sessionId,\n          $$requestId: data.requestId,\n          $$mode: data.mode,\n          $$codeBlockSuggestionId: data.codeBlockSuggestionId\n        });\n      },\n      chatUndoEdits: () =\u003e createEditSource({ source: \"Chat.undoEdits\" }),\n      chatReset: () =\u003e createEditSource({ source: \"Chat.reset\" }),\n      inlineCompletionAccept(data) {\n        return createEditSource({\n          source: \"inlineCompletionAccept\",\n          $nes: data.nes,\n          ...toProperties(data.providerId),\n          $$requestUuid: data.requestUuid,\n          $$languageId: data.languageId\n        });\n      },\n      inlineCompletionPartialAccept(data) {\n        return createEditSource({\n          source: \"inlineCompletionPartialAccept\",\n          type: data.type,\n          $nes: data.nes,\n          ...toProperties(data.providerId),\n          $$requestUuid: data.requestUuid,\n          $$languageId: data.languageId\n        });\n      },\n      inlineChatApplyEdit(data) {\n        return createEditSource({\n          source: \"inlineChat.applyEdits\",\n          $modelId: avoidPathRedaction(data.modelId),\n          $extensionId: data.extensionId?.extensionId,\n          $extensionVersion: data.extensionId?.version,\n          $$requestId: data.requestId,\n          $$languageId: data.languageId\n        });\n      },\n      reloadFromDisk: () =\u003e createEditSource({ source: \"reloadFromDisk\" }),\n      cursor(data) {\n        return createEditSource({\n          source: \"cursor\",\n          kind: data.kind,\n          detailedSource: data.detailedSource\n        });\n      },\n      setValue: () =\u003e createEditSource({ source: \"setValue\" }),\n      eolChange: () =\u003e createEditSource({ source: \"eolChange\" }),\n      applyEdits: () =\u003e createEditSource({ source: \"applyEdits\" }),\n      snippet: () =\u003e createEditSource({ source: \"snippet\" }),\n      suggest: (data) =\u003e createEditSource({ source: \"suggest\", ...toProperties(data.providerId) }),\n      codeAction: (data) =\u003e createEditSource({ source: \"codeAction\", $kind: data.kind, ...toProperties(data.providerId) })\n    };\n    (function(EditSuggestionId2) {\n      function newId() {\n        const id = prefixedUuid(\"sgt\");\n        return toEditIdentity(id);\n      }\n      EditSuggestionId2.newId = newId;\n    })(EditSuggestionId || (EditSuggestionId = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/editStack.js\nfunction uriGetComparisonKey(resource) {\n  return resource.toString();\n}\nfunction getModelEOL(model) {\n  const eol = model.getEOL();\n  if (eol === \"\\n\") {\n    return 0;\n  } else {\n    return 1;\n  }\n}\nfunction isEditStackElement(element) {\n  if (!element) {\n    return false;\n  }\n  return element instanceof SingleModelEditStackElement || element instanceof MultiModelEditStackElement;\n}\nvar SingleModelEditStackData, SingleModelEditStackElement, MultiModelEditStackElement, EditStack;\nvar init_editStack = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/editStack.js\"() {\n    init_nls();\n    init_errors();\n    init_selection();\n    init_uri();\n    init_textChange();\n    init_buffer();\n    init_resources();\n    init_textModelEditSource();\n    SingleModelEditStackData = class _SingleModelEditStackData {\n      static create(model, beforeCursorState) {\n        const alternativeVersionId = model.getAlternativeVersionId();\n        const eol = getModelEOL(model);\n        return new _SingleModelEditStackData(alternativeVersionId, alternativeVersionId, eol, eol, beforeCursorState, beforeCursorState, []);\n      }\n      constructor(beforeVersionId, afterVersionId, beforeEOL, afterEOL, beforeCursorState, afterCursorState, changes) {\n        this.beforeVersionId = beforeVersionId;\n        this.afterVersionId = afterVersionId;\n        this.beforeEOL = beforeEOL;\n        this.afterEOL = afterEOL;\n        this.beforeCursorState = beforeCursorState;\n        this.afterCursorState = afterCursorState;\n        this.changes = changes;\n      }\n      append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n        if (textChanges.length \u003e 0) {\n          this.changes = compressConsecutiveTextChanges(this.changes, textChanges);\n        }\n        this.afterEOL = afterEOL;\n        this.afterVersionId = afterVersionId;\n        this.afterCursorState = afterCursorState;\n      }\n      static _writeSelectionsSize(selections) {\n        return 4 + 4 * 4 * (selections ? selections.length : 0);\n      }\n      static _writeSelections(b, selections, offset) {\n        writeUInt32BE(b, selections ? selections.length : 0, offset);\n        offset += 4;\n        if (selections) {\n          for (const selection of selections) {\n            writeUInt32BE(b, selection.selectionStartLineNumber, offset);\n            offset += 4;\n            writeUInt32BE(b, selection.selectionStartColumn, offset);\n            offset += 4;\n            writeUInt32BE(b, selection.positionLineNumber, offset);\n            offset += 4;\n            writeUInt32BE(b, selection.positionColumn, offset);\n            offset += 4;\n          }\n        }\n        return offset;\n      }\n      static _readSelections(b, offset, dest) {\n        const count = readUInt32BE(b, offset);\n        offset += 4;\n        for (let i2 = 0; i2 \u003c count; i2++) {\n          const selectionStartLineNumber = readUInt32BE(b, offset);\n          offset += 4;\n          const selectionStartColumn = readUInt32BE(b, offset);\n          offset += 4;\n          const positionLineNumber = readUInt32BE(b, offset);\n          offset += 4;\n          const positionColumn = readUInt32BE(b, offset);\n          offset += 4;\n          dest.push(new Selection(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn));\n        }\n        return offset;\n      }\n      serialize() {\n        let necessarySize = 4 + 4 + 1 + 1 + _SingleModelEditStackData._writeSelectionsSize(this.beforeCursorState) + _SingleModelEditStackData._writeSelectionsSize(this.afterCursorState) + 4;\n        for (const change of this.changes) {\n          necessarySize += change.writeSize();\n        }\n        const b = new Uint8Array(necessarySize);\n        let offset = 0;\n        writeUInt32BE(b, this.beforeVersionId, offset);\n        offset += 4;\n        writeUInt32BE(b, this.afterVersionId, offset);\n        offset += 4;\n        writeUInt8(b, this.beforeEOL, offset);\n        offset += 1;\n        writeUInt8(b, this.afterEOL, offset);\n        offset += 1;\n        offset = _SingleModelEditStackData._writeSelections(b, this.beforeCursorState, offset);\n        offset = _SingleModelEditStackData._writeSelections(b, this.afterCursorState, offset);\n        writeUInt32BE(b, this.changes.length, offset);\n        offset += 4;\n        for (const change of this.changes) {\n          offset = change.write(b, offset);\n        }\n        return b.buffer;\n      }\n      static deserialize(source) {\n        const b = new Uint8Array(source);\n        let offset = 0;\n        const beforeVersionId = readUInt32BE(b, offset);\n        offset += 4;\n        const afterVersionId = readUInt32BE(b, offset);\n        offset += 4;\n        const beforeEOL = readUInt8(b, offset);\n        offset += 1;\n        const afterEOL = readUInt8(b, offset);\n        offset += 1;\n        const beforeCursorState = [];\n        offset = _SingleModelEditStackData._readSelections(b, offset, beforeCursorState);\n        const afterCursorState = [];\n        offset = _SingleModelEditStackData._readSelections(b, offset, afterCursorState);\n        const changeCount = readUInt32BE(b, offset);\n        offset += 4;\n        const changes = [];\n        for (let i2 = 0; i2 \u003c changeCount; i2++) {\n          offset = TextChange.read(b, offset, changes);\n        }\n        return new _SingleModelEditStackData(beforeVersionId, afterVersionId, beforeEOL, afterEOL, beforeCursorState, afterCursorState, changes);\n      }\n    };\n    SingleModelEditStackElement = class {\n      get type() {\n        return 0;\n      }\n      get resource() {\n        if (URI.isUri(this.model)) {\n          return this.model;\n        }\n        return this.model.uri;\n      }\n      constructor(label, code, model, beforeCursorState) {\n        this.label = label;\n        this.code = code;\n        this.model = model;\n        this._data = SingleModelEditStackData.create(model, beforeCursorState);\n      }\n      toString() {\n        const data = this._data instanceof SingleModelEditStackData ? this._data : SingleModelEditStackData.deserialize(this._data);\n        return data.changes.map((change) =\u003e change.toString()).join(\", \");\n      }\n      matchesResource(resource) {\n        const uri = URI.isUri(this.model) ? this.model : this.model.uri;\n        return uri.toString() === resource.toString();\n      }\n      setModel(model) {\n        this.model = model;\n      }\n      canAppend(model) {\n        return this.model === model \u0026\u0026 this._data instanceof SingleModelEditStackData;\n      }\n      append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n        if (this._data instanceof SingleModelEditStackData) {\n          this._data.append(model, textChanges, afterEOL, afterVersionId, afterCursorState);\n        }\n      }\n      close() {\n        if (this._data instanceof SingleModelEditStackData) {\n          this._data = this._data.serialize();\n        }\n      }\n      open() {\n        if (!(this._data instanceof SingleModelEditStackData)) {\n          this._data = SingleModelEditStackData.deserialize(this._data);\n        }\n      }\n      undo() {\n        if (URI.isUri(this.model)) {\n          throw new Error(`Invalid SingleModelEditStackElement`);\n        }\n        if (this._data instanceof SingleModelEditStackData) {\n          this._data = this._data.serialize();\n        }\n        const data = SingleModelEditStackData.deserialize(this._data);\n        this.model._applyUndo(data.changes, data.beforeEOL, data.beforeVersionId, data.beforeCursorState);\n      }\n      redo() {\n        if (URI.isUri(this.model)) {\n          throw new Error(`Invalid SingleModelEditStackElement`);\n        }\n        if (this._data instanceof SingleModelEditStackData) {\n          this._data = this._data.serialize();\n        }\n        const data = SingleModelEditStackData.deserialize(this._data);\n        this.model._applyRedo(data.changes, data.afterEOL, data.afterVersionId, data.afterCursorState);\n      }\n      heapSize() {\n        if (this._data instanceof SingleModelEditStackData) {\n          this._data = this._data.serialize();\n        }\n        return this._data.byteLength + 168;\n      }\n    };\n    MultiModelEditStackElement = class {\n      get resources() {\n        return this._editStackElementsArr.map((editStackElement) =\u003e editStackElement.resource);\n      }\n      constructor(label, code, editStackElements) {\n        this.label = label;\n        this.code = code;\n        this.type = 1;\n        this._isOpen = true;\n        this._editStackElementsArr = editStackElements.slice(0);\n        this._editStackElementsMap = /* @__PURE__ */ new Map();\n        for (const editStackElement of this._editStackElementsArr) {\n          const key = uriGetComparisonKey(editStackElement.resource);\n          this._editStackElementsMap.set(key, editStackElement);\n        }\n        this._delegate = null;\n      }\n      prepareUndoRedo() {\n        if (this._delegate) {\n          return this._delegate.prepareUndoRedo(this);\n        }\n      }\n      matchesResource(resource) {\n        const key = uriGetComparisonKey(resource);\n        return this._editStackElementsMap.has(key);\n      }\n      setModel(model) {\n        const key = uriGetComparisonKey(URI.isUri(model) ? model : model.uri);\n        if (this._editStackElementsMap.has(key)) {\n          this._editStackElementsMap.get(key).setModel(model);\n        }\n      }\n      canAppend(model) {\n        if (!this._isOpen) {\n          return false;\n        }\n        const key = uriGetComparisonKey(model.uri);\n        if (this._editStackElementsMap.has(key)) {\n          const editStackElement = this._editStackElementsMap.get(key);\n          return editStackElement.canAppend(model);\n        }\n        return false;\n      }\n      append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n        const key = uriGetComparisonKey(model.uri);\n        const editStackElement = this._editStackElementsMap.get(key);\n        editStackElement.append(model, textChanges, afterEOL, afterVersionId, afterCursorState);\n      }\n      close() {\n        this._isOpen = false;\n      }\n      open() {\n      }\n      undo() {\n        this._isOpen = false;\n        for (const editStackElement of this._editStackElementsArr) {\n          editStackElement.undo();\n        }\n      }\n      redo() {\n        for (const editStackElement of this._editStackElementsArr) {\n          editStackElement.redo();\n        }\n      }\n      heapSize(resource) {\n        const key = uriGetComparisonKey(resource);\n        if (this._editStackElementsMap.has(key)) {\n          const editStackElement = this._editStackElementsMap.get(key);\n          return editStackElement.heapSize();\n        }\n        return 0;\n      }\n      split() {\n        return this._editStackElementsArr;\n      }\n      toString() {\n        const result = [];\n        for (const editStackElement of this._editStackElementsArr) {\n          result.push(`${basename2(editStackElement.resource)}: ${editStackElement}`);\n        }\n        return `{${result.join(\", \")}}`;\n      }\n    };\n    EditStack = class _EditStack {\n      constructor(model, undoRedoService) {\n        this._model = model;\n        this._undoRedoService = undoRedoService;\n      }\n      pushStackElement() {\n        const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n        if (isEditStackElement(lastElement)) {\n          lastElement.close();\n        }\n      }\n      popStackElement() {\n        const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n        if (isEditStackElement(lastElement)) {\n          lastElement.open();\n        }\n      }\n      clear() {\n        this._undoRedoService.removeElements(this._model.uri);\n      }\n      _getOrCreateEditStackElement(beforeCursorState, group) {\n        const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n        if (isEditStackElement(lastElement) \u0026\u0026 lastElement.canAppend(this._model)) {\n          return lastElement;\n        }\n        const newElement = new SingleModelEditStackElement(localize(778, \"Typing\"), \"undoredo.textBufferEdit\", this._model, beforeCursorState);\n        this._undoRedoService.pushElement(newElement, group);\n        return newElement;\n      }\n      pushEOL(eol) {\n        const editStackElement = this._getOrCreateEditStackElement(null, void 0);\n        this._model.setEOL(eol);\n        editStackElement.append(this._model, [], getModelEOL(this._model), this._model.getAlternativeVersionId(), null);\n      }\n      pushEditOperation(beforeCursorState, editOperations, cursorStateComputer, group, reason = EditSources.unknown({ name: \"pushEditOperation\" })) {\n        const editStackElement = this._getOrCreateEditStackElement(beforeCursorState, group);\n        const inverseEditOperations = this._model.applyEdits(editOperations, true, reason);\n        const afterCursorState = _EditStack._computeCursorState(cursorStateComputer, inverseEditOperations);\n        const textChanges = inverseEditOperations.map((op, index) =\u003e ({ index, textChange: op.textChange }));\n        textChanges.sort((a, b) =\u003e {\n          if (a.textChange.oldPosition === b.textChange.oldPosition) {\n            return a.index - b.index;\n          }\n          return a.textChange.oldPosition - b.textChange.oldPosition;\n        });\n        editStackElement.append(this._model, textChanges.map((op) =\u003e op.textChange), getModelEOL(this._model), this._model.getAlternativeVersionId(), afterCursorState);\n        return afterCursorState;\n      }\n      static _computeCursorState(cursorStateComputer, inverseEditOperations) {\n        try {\n          return cursorStateComputer ? cursorStateComputer(inverseEditOperations) : null;\n        } catch (e) {\n          onUnexpectedError(e);\n          return null;\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/indentationGuesser.js\nfunction spacesDiff(a, aLength, b, bLength, result) {\n  result.spacesDiff = 0;\n  result.looksLikeAlignment = false;\n  let i2;\n  for (i2 = 0; i2 \u003c aLength \u0026\u0026 i2 \u003c bLength; i2++) {\n    const aCharCode = a.charCodeAt(i2);\n    const bCharCode = b.charCodeAt(i2);\n    if (aCharCode !== bCharCode) {\n      break;\n    }\n  }\n  let aSpacesCnt = 0, aTabsCount = 0;\n  for (let j = i2; j \u003c aLength; j++) {\n    const aCharCode = a.charCodeAt(j);\n    if (aCharCode === 32) {\n      aSpacesCnt++;\n    } else {\n      aTabsCount++;\n    }\n  }\n  let bSpacesCnt = 0, bTabsCount = 0;\n  for (let j = i2; j \u003c bLength; j++) {\n    const bCharCode = b.charCodeAt(j);\n    if (bCharCode === 32) {\n      bSpacesCnt++;\n    } else {\n      bTabsCount++;\n    }\n  }\n  if (aSpacesCnt \u003e 0 \u0026\u0026 aTabsCount \u003e 0) {\n    return;\n  }\n  if (bSpacesCnt \u003e 0 \u0026\u0026 bTabsCount \u003e 0) {\n    return;\n  }\n  const tabsDiff = Math.abs(aTabsCount - bTabsCount);\n  const spacesDiff2 = Math.abs(aSpacesCnt - bSpacesCnt);\n  if (tabsDiff === 0) {\n    result.spacesDiff = spacesDiff2;\n    if (spacesDiff2 \u003e 0 \u0026\u0026 0 \u003c= bSpacesCnt - 1 \u0026\u0026 bSpacesCnt - 1 \u003c a.length \u0026\u0026 bSpacesCnt \u003c b.length) {\n      if (b.charCodeAt(bSpacesCnt) !== 32 \u0026\u0026 a.charCodeAt(bSpacesCnt - 1) === 32) {\n        if (a.charCodeAt(a.length - 1) === 44) {\n          result.looksLikeAlignment = true;\n        }\n      }\n    }\n    return;\n  }\n  if (spacesDiff2 % tabsDiff === 0) {\n    result.spacesDiff = spacesDiff2 / tabsDiff;\n    return;\n  }\n}\nfunction guessIndentation(source, defaultTabSize, defaultInsertSpaces) {\n  const linesCount = Math.min(source.getLineCount(), 1e4);\n  let linesIndentedWithTabsCount = 0;\n  let linesIndentedWithSpacesCount = 0;\n  let previousLineText = \"\";\n  let previousLineIndentation = 0;\n  const ALLOWED_TAB_SIZE_GUESSES = [2, 4, 6, 8, 3, 5, 7];\n  const MAX_ALLOWED_TAB_SIZE_GUESS = 8;\n  const spacesDiffCount = [0, 0, 0, 0, 0, 0, 0, 0, 0];\n  const tmp = new SpacesDiffResult();\n  for (let lineNumber = 1; lineNumber \u003c= linesCount; lineNumber++) {\n    const currentLineLength = source.getLineLength(lineNumber);\n    const currentLineText = source.getLineContent(lineNumber);\n    const useCurrentLineText = currentLineLength \u003c= 65536;\n    let currentLineHasContent = false;\n    let currentLineIndentation = 0;\n    let currentLineSpacesCount = 0;\n    let currentLineTabsCount = 0;\n    for (let j = 0, lenJ = currentLineLength; j \u003c lenJ; j++) {\n      const charCode = useCurrentLineText ? currentLineText.charCodeAt(j) : source.getLineCharCode(lineNumber, j);\n      if (charCode === 9) {\n        currentLineTabsCount++;\n      } else if (charCode === 32) {\n        currentLineSpacesCount++;\n      } else {\n        currentLineHasContent = true;\n        currentLineIndentation = j;\n        break;\n      }\n    }\n    if (!currentLineHasContent) {\n      continue;\n    }\n    if (currentLineTabsCount \u003e 0) {\n      linesIndentedWithTabsCount++;\n    } else if (currentLineSpacesCount \u003e 1) {\n      linesIndentedWithSpacesCount++;\n    }\n    spacesDiff(previousLineText, previousLineIndentation, currentLineText, currentLineIndentation, tmp);\n    if (tmp.looksLikeAlignment) {\n      if (!(defaultInsertSpaces \u0026\u0026 defaultTabSize === tmp.spacesDiff)) {\n        continue;\n      }\n    }\n    const currentSpacesDiff = tmp.spacesDiff;\n    if (currentSpacesDiff \u003c= MAX_ALLOWED_TAB_SIZE_GUESS) {\n      spacesDiffCount[currentSpacesDiff]++;\n    }\n    previousLineText = currentLineText;\n    previousLineIndentation = currentLineIndentation;\n  }\n  let insertSpaces = defaultInsertSpaces;\n  if (linesIndentedWithTabsCount !== linesIndentedWithSpacesCount) {\n    insertSpaces = linesIndentedWithTabsCount \u003c linesIndentedWithSpacesCount;\n  }\n  let tabSize = defaultTabSize;\n  if (insertSpaces) {\n    let tabSizeScore = insertSpaces ? 0 : 0.1 * linesCount;\n    ALLOWED_TAB_SIZE_GUESSES.forEach((possibleTabSize) =\u003e {\n      const possibleTabSizeScore = spacesDiffCount[possibleTabSize];\n      if (possibleTabSizeScore \u003e tabSizeScore) {\n        tabSizeScore = possibleTabSizeScore;\n        tabSize = possibleTabSize;\n      }\n    });\n    if (tabSize === 4 \u0026\u0026 spacesDiffCount[4] \u003e 0 \u0026\u0026 spacesDiffCount[2] \u003e 0 \u0026\u0026 spacesDiffCount[2] \u003e= spacesDiffCount[4] / 2) {\n      tabSize = 2;\n    }\n  }\n  return {\n    insertSpaces,\n    tabSize\n  };\n}\nvar SpacesDiffResult;\nvar init_indentationGuesser = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/indentationGuesser.js\"() {\n    SpacesDiffResult = class {\n      constructor() {\n        this.spacesDiff = 0;\n        this.looksLikeAlignment = false;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/intervalTree.js\nfunction getNodeColor(node) {\n  return (node.metadata \u0026 1) \u003e\u003e\u003e 0;\n}\nfunction setNodeColor(node, color) {\n  node.metadata = node.metadata \u0026 254 | color \u003c\u003c 0;\n}\nfunction getNodeIsVisited(node) {\n  return (node.metadata \u0026 2) \u003e\u003e\u003e 1 === 1;\n}\nfunction setNodeIsVisited(node, value) {\n  node.metadata = node.metadata \u0026 253 | (value ? 1 : 0) \u003c\u003c 1;\n}\nfunction getNodeIsForValidation(node) {\n  return (node.metadata \u0026 4) \u003e\u003e\u003e 2 === 1;\n}\nfunction setNodeIsForValidation(node, value) {\n  node.metadata = node.metadata \u0026 251 | (value ? 1 : 0) \u003c\u003c 2;\n}\nfunction getNodeIsInGlyphMargin(node) {\n  return (node.metadata \u0026 64) \u003e\u003e\u003e 6 === 1;\n}\nfunction setNodeIsInGlyphMargin(node, value) {\n  node.metadata = node.metadata \u0026 191 | (value ? 1 : 0) \u003c\u003c 6;\n}\nfunction getNodeAffectsFont(node) {\n  return (node.metadata \u0026 128) \u003e\u003e\u003e 7 === 1;\n}\nfunction setNodeAffectsFont(node, value) {\n  node.metadata = node.metadata \u0026 127 | (value ? 1 : 0) \u003c\u003c 7;\n}\nfunction getNodeStickiness(node) {\n  return (node.metadata \u0026 24) \u003e\u003e\u003e 3;\n}\nfunction _setNodeStickiness(node, stickiness) {\n  node.metadata = node.metadata \u0026 231 | stickiness \u003c\u003c 3;\n}\nfunction getCollapseOnReplaceEdit(node) {\n  return (node.metadata \u0026 32) \u003e\u003e\u003e 5 === 1;\n}\nfunction setCollapseOnReplaceEdit(node, value) {\n  node.metadata = node.metadata \u0026 223 | (value ? 1 : 0) \u003c\u003c 5;\n}\nfunction normalizeDelta(T) {\n  let node = T.root;\n  let delta = 0;\n  while (node !== SENTINEL) {\n    if (node.left !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.left)) {\n      node = node.left;\n      continue;\n    }\n    if (node.right !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.right)) {\n      delta += node.delta;\n      node = node.right;\n      continue;\n    }\n    node.start = delta + node.start;\n    node.end = delta + node.end;\n    node.delta = 0;\n    recomputeMaxEnd(node);\n    setNodeIsVisited(node, true);\n    setNodeIsVisited(node.left, false);\n    setNodeIsVisited(node.right, false);\n    if (node === node.parent.right) {\n      delta -= node.parent.delta;\n    }\n    node = node.parent;\n  }\n  setNodeIsVisited(T.root, false);\n}\nfunction adjustMarkerBeforeColumn(markerOffset, markerStickToPreviousCharacter, checkOffset, moveSemantics) {\n  if (markerOffset \u003c checkOffset) {\n    return true;\n  }\n  if (markerOffset \u003e checkOffset) {\n    return false;\n  }\n  if (moveSemantics === 1) {\n    return false;\n  }\n  if (moveSemantics === 2) {\n    return true;\n  }\n  return markerStickToPreviousCharacter;\n}\nfunction nodeAcceptEdit(node, start, end, textLength, forceMoveMarkers) {\n  const nodeStickiness = getNodeStickiness(node);\n  const startStickToPreviousCharacter = nodeStickiness === 0 || nodeStickiness === 2;\n  const endStickToPreviousCharacter = nodeStickiness === 1 || nodeStickiness === 2;\n  const deletingCnt = end - start;\n  const insertingCnt = textLength;\n  const commonLength = Math.min(deletingCnt, insertingCnt);\n  const nodeStart = node.start;\n  let startDone = false;\n  const nodeEnd = node.end;\n  let endDone = false;\n  if (start \u003c= nodeStart \u0026\u0026 nodeEnd \u003c= end \u0026\u0026 getCollapseOnReplaceEdit(node)) {\n    node.start = start;\n    startDone = true;\n    node.end = start;\n    endDone = true;\n  }\n  {\n    const moveSemantics = forceMoveMarkers ? 1 : deletingCnt \u003e 0 ? 2 : 0;\n    if (!startDone \u0026\u0026 adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, start, moveSemantics)) {\n      startDone = true;\n    }\n    if (!endDone \u0026\u0026 adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, start, moveSemantics)) {\n      endDone = true;\n    }\n  }\n  if (commonLength \u003e 0 \u0026\u0026 !forceMoveMarkers) {\n    const moveSemantics = deletingCnt \u003e insertingCnt ? 2 : 0;\n    if (!startDone \u0026\u0026 adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, start + commonLength, moveSemantics)) {\n      startDone = true;\n    }\n    if (!endDone \u0026\u0026 adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, start + commonLength, moveSemantics)) {\n      endDone = true;\n    }\n  }\n  {\n    const moveSemantics = forceMoveMarkers ? 1 : 0;\n    if (!startDone \u0026\u0026 adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, end, moveSemantics)) {\n      node.start = start + insertingCnt;\n      startDone = true;\n    }\n    if (!endDone \u0026\u0026 adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, end, moveSemantics)) {\n      node.end = start + insertingCnt;\n      endDone = true;\n    }\n  }\n  const deltaColumn = insertingCnt - deletingCnt;\n  if (!startDone) {\n    node.start = Math.max(0, nodeStart + deltaColumn);\n  }\n  if (!endDone) {\n    node.end = Math.max(0, nodeEnd + deltaColumn);\n  }\n  if (node.start \u003e node.end) {\n    node.end = node.start;\n  }\n}\nfunction searchForEditing(T, start, end) {\n  let node = T.root;\n  let delta = 0;\n  let nodeMaxEnd = 0;\n  let nodeStart = 0;\n  let nodeEnd = 0;\n  const result = [];\n  let resultLen = 0;\n  while (node !== SENTINEL) {\n    if (getNodeIsVisited(node)) {\n      setNodeIsVisited(node.left, false);\n      setNodeIsVisited(node.right, false);\n      if (node === node.parent.right) {\n        delta -= node.parent.delta;\n      }\n      node = node.parent;\n      continue;\n    }\n    if (!getNodeIsVisited(node.left)) {\n      nodeMaxEnd = delta + node.maxEnd;\n      if (nodeMaxEnd \u003c start) {\n        setNodeIsVisited(node, true);\n        continue;\n      }\n      if (node.left !== SENTINEL) {\n        node = node.left;\n        continue;\n      }\n    }\n    nodeStart = delta + node.start;\n    if (nodeStart \u003e end) {\n      setNodeIsVisited(node, true);\n      continue;\n    }\n    nodeEnd = delta + node.end;\n    if (nodeEnd \u003e= start) {\n      node.setCachedOffsets(nodeStart, nodeEnd, 0);\n      result[resultLen++] = node;\n    }\n    setNodeIsVisited(node, true);\n    if (node.right !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.right)) {\n      delta += node.delta;\n      node = node.right;\n      continue;\n    }\n  }\n  setNodeIsVisited(T.root, false);\n  return result;\n}\nfunction noOverlapReplace(T, start, end, textLength) {\n  let node = T.root;\n  let delta = 0;\n  let nodeMaxEnd = 0;\n  let nodeStart = 0;\n  const editDelta = textLength - (end - start);\n  while (node !== SENTINEL) {\n    if (getNodeIsVisited(node)) {\n      setNodeIsVisited(node.left, false);\n      setNodeIsVisited(node.right, false);\n      if (node === node.parent.right) {\n        delta -= node.parent.delta;\n      }\n      recomputeMaxEnd(node);\n      node = node.parent;\n      continue;\n    }\n    if (!getNodeIsVisited(node.left)) {\n      nodeMaxEnd = delta + node.maxEnd;\n      if (nodeMaxEnd \u003c start) {\n        setNodeIsVisited(node, true);\n        continue;\n      }\n      if (node.left !== SENTINEL) {\n        node = node.left;\n        continue;\n      }\n    }\n    nodeStart = delta + node.start;\n    if (nodeStart \u003e end) {\n      node.start += editDelta;\n      node.end += editDelta;\n      node.delta += editDelta;\n      if (node.delta \u003c -1073741824 || node.delta \u003e 1073741824) {\n        T.requestNormalizeDelta = true;\n      }\n      setNodeIsVisited(node, true);\n      continue;\n    }\n    setNodeIsVisited(node, true);\n    if (node.right !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.right)) {\n      delta += node.delta;\n      node = node.right;\n      continue;\n    }\n  }\n  setNodeIsVisited(T.root, false);\n}\nfunction collectNodesFromOwner(T, ownerId2) {\n  let node = T.root;\n  const result = [];\n  let resultLen = 0;\n  while (node !== SENTINEL) {\n    if (getNodeIsVisited(node)) {\n      setNodeIsVisited(node.left, false);\n      setNodeIsVisited(node.right, false);\n      node = node.parent;\n      continue;\n    }\n    if (node.left !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.left)) {\n      node = node.left;\n      continue;\n    }\n    if (node.ownerId === ownerId2) {\n      result[resultLen++] = node;\n    }\n    setNodeIsVisited(node, true);\n    if (node.right !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.right)) {\n      node = node.right;\n      continue;\n    }\n  }\n  setNodeIsVisited(T.root, false);\n  return result;\n}\nfunction collectNodesPostOrder(T) {\n  let node = T.root;\n  const result = [];\n  let resultLen = 0;\n  while (node !== SENTINEL) {\n    if (getNodeIsVisited(node)) {\n      setNodeIsVisited(node.left, false);\n      setNodeIsVisited(node.right, false);\n      node = node.parent;\n      continue;\n    }\n    if (node.left !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.left)) {\n      node = node.left;\n      continue;\n    }\n    if (node.right !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.right)) {\n      node = node.right;\n      continue;\n    }\n    result[resultLen++] = node;\n    setNodeIsVisited(node, true);\n  }\n  setNodeIsVisited(T.root, false);\n  return result;\n}\nfunction search(T, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations) {\n  let node = T.root;\n  let delta = 0;\n  let nodeStart = 0;\n  let nodeEnd = 0;\n  const result = [];\n  let resultLen = 0;\n  while (node !== SENTINEL) {\n    if (getNodeIsVisited(node)) {\n      setNodeIsVisited(node.left, false);\n      setNodeIsVisited(node.right, false);\n      if (node === node.parent.right) {\n        delta -= node.parent.delta;\n      }\n      node = node.parent;\n      continue;\n    }\n    if (node.left !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.left)) {\n      node = node.left;\n      continue;\n    }\n    nodeStart = delta + node.start;\n    nodeEnd = delta + node.end;\n    node.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n    let include = true;\n    if (filterOwnerId \u0026\u0026 node.ownerId \u0026\u0026 node.ownerId !== filterOwnerId) {\n      include = false;\n    }\n    if (filterOutValidation \u0026\u0026 getNodeIsForValidation(node)) {\n      include = false;\n    }\n    if (filterFontDecorations2 \u0026\u0026 getNodeAffectsFont(node)) {\n      include = false;\n    }\n    if (onlyMarginDecorations \u0026\u0026 !getNodeIsInGlyphMargin(node)) {\n      include = false;\n    }\n    if (include) {\n      result[resultLen++] = node;\n    }\n    setNodeIsVisited(node, true);\n    if (node.right !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.right)) {\n      delta += node.delta;\n      node = node.right;\n      continue;\n    }\n  }\n  setNodeIsVisited(T.root, false);\n  return result;\n}\nfunction intervalSearch(T, intervalStart, intervalEnd, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations) {\n  let node = T.root;\n  let delta = 0;\n  let nodeMaxEnd = 0;\n  let nodeStart = 0;\n  let nodeEnd = 0;\n  const result = [];\n  let resultLen = 0;\n  while (node !== SENTINEL) {\n    if (getNodeIsVisited(node)) {\n      setNodeIsVisited(node.left, false);\n      setNodeIsVisited(node.right, false);\n      if (node === node.parent.right) {\n        delta -= node.parent.delta;\n      }\n      node = node.parent;\n      continue;\n    }\n    if (!getNodeIsVisited(node.left)) {\n      nodeMaxEnd = delta + node.maxEnd;\n      if (nodeMaxEnd \u003c intervalStart) {\n        setNodeIsVisited(node, true);\n        continue;\n      }\n      if (node.left !== SENTINEL) {\n        node = node.left;\n        continue;\n      }\n    }\n    nodeStart = delta + node.start;\n    if (nodeStart \u003e intervalEnd) {\n      setNodeIsVisited(node, true);\n      continue;\n    }\n    nodeEnd = delta + node.end;\n    if (nodeEnd \u003e= intervalStart) {\n      node.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n      let include = true;\n      if (filterOwnerId \u0026\u0026 node.ownerId \u0026\u0026 node.ownerId !== filterOwnerId) {\n        include = false;\n      }\n      if (filterOutValidation \u0026\u0026 getNodeIsForValidation(node)) {\n        include = false;\n      }\n      if (filterFontDecorations2 \u0026\u0026 getNodeAffectsFont(node)) {\n        include = false;\n      }\n      if (onlyMarginDecorations \u0026\u0026 !getNodeIsInGlyphMargin(node)) {\n        include = false;\n      }\n      if (include) {\n        result[resultLen++] = node;\n      }\n    }\n    setNodeIsVisited(node, true);\n    if (node.right !== SENTINEL \u0026\u0026 !getNodeIsVisited(node.right)) {\n      delta += node.delta;\n      node = node.right;\n      continue;\n    }\n  }\n  setNodeIsVisited(T.root, false);\n  return result;\n}\nfunction rbTreeInsert(T, newNode) {\n  if (T.root === SENTINEL) {\n    newNode.parent = SENTINEL;\n    newNode.left = SENTINEL;\n    newNode.right = SENTINEL;\n    setNodeColor(\n      newNode,\n      0\n      /* NodeColor.Black */\n    );\n    T.root = newNode;\n    return T.root;\n  }\n  treeInsert(T, newNode);\n  recomputeMaxEndWalkToRoot(newNode.parent);\n  let x = newNode;\n  while (x !== T.root \u0026\u0026 getNodeColor(x.parent) === 1) {\n    if (x.parent === x.parent.parent.left) {\n      const y = x.parent.parent.right;\n      if (getNodeColor(y) === 1) {\n        setNodeColor(\n          x.parent,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          y,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          x.parent.parent,\n          1\n          /* NodeColor.Red */\n        );\n        x = x.parent.parent;\n      } else {\n        if (x === x.parent.right) {\n          x = x.parent;\n          leftRotate2(T, x);\n        }\n        setNodeColor(\n          x.parent,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          x.parent.parent,\n          1\n          /* NodeColor.Red */\n        );\n        rightRotate(T, x.parent.parent);\n      }\n    } else {\n      const y = x.parent.parent.left;\n      if (getNodeColor(y) === 1) {\n        setNodeColor(\n          x.parent,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          y,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          x.parent.parent,\n          1\n          /* NodeColor.Red */\n        );\n        x = x.parent.parent;\n      } else {\n        if (x === x.parent.left) {\n          x = x.parent;\n          rightRotate(T, x);\n        }\n        setNodeColor(\n          x.parent,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          x.parent.parent,\n          1\n          /* NodeColor.Red */\n        );\n        leftRotate2(T, x.parent.parent);\n      }\n    }\n  }\n  setNodeColor(\n    T.root,\n    0\n    /* NodeColor.Black */\n  );\n  return newNode;\n}\nfunction treeInsert(T, z) {\n  let delta = 0;\n  let x = T.root;\n  const zAbsoluteStart = z.start;\n  const zAbsoluteEnd = z.end;\n  while (true) {\n    const cmp3 = intervalCompare(zAbsoluteStart, zAbsoluteEnd, x.start + delta, x.end + delta);\n    if (cmp3 \u003c 0) {\n      if (x.left === SENTINEL) {\n        z.start -= delta;\n        z.end -= delta;\n        z.maxEnd -= delta;\n        x.left = z;\n        break;\n      } else {\n        x = x.left;\n      }\n    } else {\n      if (x.right === SENTINEL) {\n        z.start -= delta + x.delta;\n        z.end -= delta + x.delta;\n        z.maxEnd -= delta + x.delta;\n        x.right = z;\n        break;\n      } else {\n        delta += x.delta;\n        x = x.right;\n      }\n    }\n  }\n  z.parent = x;\n  z.left = SENTINEL;\n  z.right = SENTINEL;\n  setNodeColor(\n    z,\n    1\n    /* NodeColor.Red */\n  );\n}\nfunction rbTreeDelete(T, z) {\n  let x;\n  let y;\n  if (z.left === SENTINEL) {\n    x = z.right;\n    y = z;\n    x.delta += z.delta;\n    if (x.delta \u003c -1073741824 || x.delta \u003e 1073741824) {\n      T.requestNormalizeDelta = true;\n    }\n    x.start += z.delta;\n    x.end += z.delta;\n  } else if (z.right === SENTINEL) {\n    x = z.left;\n    y = z;\n  } else {\n    y = leftest(z.right);\n    x = y.right;\n    x.start += y.delta;\n    x.end += y.delta;\n    x.delta += y.delta;\n    if (x.delta \u003c -1073741824 || x.delta \u003e 1073741824) {\n      T.requestNormalizeDelta = true;\n    }\n    y.start += z.delta;\n    y.end += z.delta;\n    y.delta = z.delta;\n    if (y.delta \u003c -1073741824 || y.delta \u003e 1073741824) {\n      T.requestNormalizeDelta = true;\n    }\n  }\n  if (y === T.root) {\n    T.root = x;\n    setNodeColor(\n      x,\n      0\n      /* NodeColor.Black */\n    );\n    z.detach();\n    resetSentinel();\n    recomputeMaxEnd(x);\n    T.root.parent = SENTINEL;\n    return;\n  }\n  const yWasRed = getNodeColor(y) === 1;\n  if (y === y.parent.left) {\n    y.parent.left = x;\n  } else {\n    y.parent.right = x;\n  }\n  if (y === z) {\n    x.parent = y.parent;\n  } else {\n    if (y.parent === z) {\n      x.parent = y;\n    } else {\n      x.parent = y.parent;\n    }\n    y.left = z.left;\n    y.right = z.right;\n    y.parent = z.parent;\n    setNodeColor(y, getNodeColor(z));\n    if (z === T.root) {\n      T.root = y;\n    } else {\n      if (z === z.parent.left) {\n        z.parent.left = y;\n      } else {\n        z.parent.right = y;\n      }\n    }\n    if (y.left !== SENTINEL) {\n      y.left.parent = y;\n    }\n    if (y.right !== SENTINEL) {\n      y.right.parent = y;\n    }\n  }\n  z.detach();\n  if (yWasRed) {\n    recomputeMaxEndWalkToRoot(x.parent);\n    if (y !== z) {\n      recomputeMaxEndWalkToRoot(y);\n      recomputeMaxEndWalkToRoot(y.parent);\n    }\n    resetSentinel();\n    return;\n  }\n  recomputeMaxEndWalkToRoot(x);\n  recomputeMaxEndWalkToRoot(x.parent);\n  if (y !== z) {\n    recomputeMaxEndWalkToRoot(y);\n    recomputeMaxEndWalkToRoot(y.parent);\n  }\n  let w;\n  while (x !== T.root \u0026\u0026 getNodeColor(x) === 0) {\n    if (x === x.parent.left) {\n      w = x.parent.right;\n      if (getNodeColor(w) === 1) {\n        setNodeColor(\n          w,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          x.parent,\n          1\n          /* NodeColor.Red */\n        );\n        leftRotate2(T, x.parent);\n        w = x.parent.right;\n      }\n      if (getNodeColor(w.left) === 0 \u0026\u0026 getNodeColor(w.right) === 0) {\n        setNodeColor(\n          w,\n          1\n          /* NodeColor.Red */\n        );\n        x = x.parent;\n      } else {\n        if (getNodeColor(w.right) === 0) {\n          setNodeColor(\n            w.left,\n            0\n            /* NodeColor.Black */\n          );\n          setNodeColor(\n            w,\n            1\n            /* NodeColor.Red */\n          );\n          rightRotate(T, w);\n          w = x.parent.right;\n        }\n        setNodeColor(w, getNodeColor(x.parent));\n        setNodeColor(\n          x.parent,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          w.right,\n          0\n          /* NodeColor.Black */\n        );\n        leftRotate2(T, x.parent);\n        x = T.root;\n      }\n    } else {\n      w = x.parent.left;\n      if (getNodeColor(w) === 1) {\n        setNodeColor(\n          w,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          x.parent,\n          1\n          /* NodeColor.Red */\n        );\n        rightRotate(T, x.parent);\n        w = x.parent.left;\n      }\n      if (getNodeColor(w.left) === 0 \u0026\u0026 getNodeColor(w.right) === 0) {\n        setNodeColor(\n          w,\n          1\n          /* NodeColor.Red */\n        );\n        x = x.parent;\n      } else {\n        if (getNodeColor(w.left) === 0) {\n          setNodeColor(\n            w.right,\n            0\n            /* NodeColor.Black */\n          );\n          setNodeColor(\n            w,\n            1\n            /* NodeColor.Red */\n          );\n          leftRotate2(T, w);\n          w = x.parent.left;\n        }\n        setNodeColor(w, getNodeColor(x.parent));\n        setNodeColor(\n          x.parent,\n          0\n          /* NodeColor.Black */\n        );\n        setNodeColor(\n          w.left,\n          0\n          /* NodeColor.Black */\n        );\n        rightRotate(T, x.parent);\n        x = T.root;\n      }\n    }\n  }\n  setNodeColor(\n    x,\n    0\n    /* NodeColor.Black */\n  );\n  resetSentinel();\n}\nfunction leftest(node) {\n  while (node.left !== SENTINEL) {\n    node = node.left;\n  }\n  return node;\n}\nfunction resetSentinel() {\n  SENTINEL.parent = SENTINEL;\n  SENTINEL.delta = 0;\n  SENTINEL.start = 0;\n  SENTINEL.end = 0;\n}\nfunction leftRotate2(T, x) {\n  const y = x.right;\n  y.delta += x.delta;\n  if (y.delta \u003c -1073741824 || y.delta \u003e 1073741824) {\n    T.requestNormalizeDelta = true;\n  }\n  y.start += x.delta;\n  y.end += x.delta;\n  x.right = y.left;\n  if (y.left !== SENTINEL) {\n    y.left.parent = x;\n  }\n  y.parent = x.parent;\n  if (x.parent === SENTINEL) {\n    T.root = y;\n  } else if (x === x.parent.left) {\n    x.parent.left = y;\n  } else {\n    x.parent.right = y;\n  }\n  y.left = x;\n  x.parent = y;\n  recomputeMaxEnd(x);\n  recomputeMaxEnd(y);\n}\nfunction rightRotate(T, y) {\n  const x = y.left;\n  y.delta -= x.delta;\n  if (y.delta \u003c -1073741824 || y.delta \u003e 1073741824) {\n    T.requestNormalizeDelta = true;\n  }\n  y.start -= x.delta;\n  y.end -= x.delta;\n  y.left = x.right;\n  if (x.right !== SENTINEL) {\n    x.right.parent = y;\n  }\n  x.parent = y.parent;\n  if (y.parent === SENTINEL) {\n    T.root = x;\n  } else if (y === y.parent.right) {\n    y.parent.right = x;\n  } else {\n    y.parent.left = x;\n  }\n  x.right = y;\n  y.parent = x;\n  recomputeMaxEnd(y);\n  recomputeMaxEnd(x);\n}\nfunction computeMaxEnd(node) {\n  let maxEnd = node.end;\n  if (node.left !== SENTINEL) {\n    const leftMaxEnd = node.left.maxEnd;\n    if (leftMaxEnd \u003e maxEnd) {\n      maxEnd = leftMaxEnd;\n    }\n  }\n  if (node.right !== SENTINEL) {\n    const rightMaxEnd = node.right.maxEnd + node.delta;\n    if (rightMaxEnd \u003e maxEnd) {\n      maxEnd = rightMaxEnd;\n    }\n  }\n  return maxEnd;\n}\nfunction recomputeMaxEnd(node) {\n  node.maxEnd = computeMaxEnd(node);\n}\nfunction recomputeMaxEndWalkToRoot(node) {\n  while (node !== SENTINEL) {\n    const maxEnd = computeMaxEnd(node);\n    if (node.maxEnd === maxEnd) {\n      return;\n    }\n    node.maxEnd = maxEnd;\n    node = node.parent;\n  }\n}\nfunction intervalCompare(aStart, aEnd, bStart, bEnd) {\n  if (aStart === bStart) {\n    return aEnd - bEnd;\n  }\n  return aStart - bStart;\n}\nvar IntervalNode, SENTINEL, IntervalTree;\nvar init_intervalTree = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/intervalTree.js\"() {\n    IntervalNode = class {\n      constructor(id, start, end) {\n        this.metadata = 0;\n        this.parent = this;\n        this.left = this;\n        this.right = this;\n        setNodeColor(\n          this,\n          1\n          /* NodeColor.Red */\n        );\n        this.start = start;\n        this.end = end;\n        this.delta = 0;\n        this.maxEnd = end;\n        this.id = id;\n        this.ownerId = 0;\n        this.options = null;\n        setNodeIsForValidation(this, false);\n        setNodeIsInGlyphMargin(this, false);\n        _setNodeStickiness(\n          this,\n          1\n          /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n        );\n        setCollapseOnReplaceEdit(this, false);\n        setNodeAffectsFont(this, false);\n        this.cachedVersionId = 0;\n        this.cachedAbsoluteStart = start;\n        this.cachedAbsoluteEnd = end;\n        this.range = null;\n        setNodeIsVisited(this, false);\n      }\n      reset(versionId, start, end, range2) {\n        this.start = start;\n        this.end = end;\n        this.maxEnd = end;\n        this.cachedVersionId = versionId;\n        this.cachedAbsoluteStart = start;\n        this.cachedAbsoluteEnd = end;\n        this.range = range2;\n      }\n      setOptions(options2) {\n        this.options = options2;\n        const className2 = this.options.className;\n        setNodeIsForValidation(this, className2 === \"squiggly-error\" || className2 === \"squiggly-warning\" || className2 === \"squiggly-info\");\n        setNodeIsInGlyphMargin(this, this.options.glyphMarginClassName !== null);\n        _setNodeStickiness(this, this.options.stickiness);\n        setCollapseOnReplaceEdit(this, this.options.collapseOnReplaceEdit);\n        setNodeAffectsFont(this, this.options.affectsFont ?? false);\n      }\n      setCachedOffsets(absoluteStart, absoluteEnd, cachedVersionId) {\n        if (this.cachedVersionId !== cachedVersionId) {\n          this.range = null;\n        }\n        this.cachedVersionId = cachedVersionId;\n        this.cachedAbsoluteStart = absoluteStart;\n        this.cachedAbsoluteEnd = absoluteEnd;\n      }\n      detach() {\n        this.parent = null;\n        this.left = null;\n        this.right = null;\n      }\n    };\n    SENTINEL = new IntervalNode(null, 0, 0);\n    SENTINEL.parent = SENTINEL;\n    SENTINEL.left = SENTINEL;\n    SENTINEL.right = SENTINEL;\n    setNodeColor(\n      SENTINEL,\n      0\n      /* NodeColor.Black */\n    );\n    IntervalTree = class {\n      constructor() {\n        this.root = SENTINEL;\n        this.requestNormalizeDelta = false;\n      }\n      intervalSearch(start, end, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations) {\n        if (this.root === SENTINEL) {\n          return [];\n        }\n        return intervalSearch(this, start, end, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n      }\n      search(filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations) {\n        if (this.root === SENTINEL) {\n          return [];\n        }\n        return search(this, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n      }\n      /**\n       * Will not set `cachedAbsoluteStart` nor `cachedAbsoluteEnd` on the returned nodes!\n       */\n      collectNodesFromOwner(ownerId2) {\n        return collectNodesFromOwner(this, ownerId2);\n      }\n      /**\n       * Will not set `cachedAbsoluteStart` nor `cachedAbsoluteEnd` on the returned nodes!\n       */\n      collectNodesPostOrder() {\n        return collectNodesPostOrder(this);\n      }\n      insert(node) {\n        rbTreeInsert(this, node);\n        this._normalizeDeltaIfNecessary();\n      }\n      delete(node) {\n        rbTreeDelete(this, node);\n        this._normalizeDeltaIfNecessary();\n      }\n      resolveNode(node, cachedVersionId) {\n        const initialNode = node;\n        let delta = 0;\n        while (node !== this.root) {\n          if (node === node.parent.right) {\n            delta += node.parent.delta;\n          }\n          node = node.parent;\n        }\n        const nodeStart = initialNode.start + delta;\n        const nodeEnd = initialNode.end + delta;\n        initialNode.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n      }\n      acceptReplace(offset, length, textLength, forceMoveMarkers) {\n        const nodesOfInterest = searchForEditing(this, offset, offset + length);\n        for (let i2 = 0, len = nodesOfInterest.length; i2 \u003c len; i2++) {\n          const node = nodesOfInterest[i2];\n          rbTreeDelete(this, node);\n        }\n        this._normalizeDeltaIfNecessary();\n        noOverlapReplace(this, offset, offset + length, textLength);\n        this._normalizeDeltaIfNecessary();\n        for (let i2 = 0, len = nodesOfInterest.length; i2 \u003c len; i2++) {\n          const node = nodesOfInterest[i2];\n          node.start = node.cachedAbsoluteStart;\n          node.end = node.cachedAbsoluteEnd;\n          nodeAcceptEdit(node, offset, offset + length, textLength, forceMoveMarkers);\n          node.maxEnd = node.end;\n          rbTreeInsert(this, node);\n        }\n        this._normalizeDeltaIfNecessary();\n      }\n      _normalizeDeltaIfNecessary() {\n        if (!this.requestNormalizeDelta) {\n          return;\n        }\n        this.requestNormalizeDelta = false;\n        normalizeDelta(this);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase.js\nfunction leftest2(node) {\n  while (node.left !== SENTINEL2) {\n    node = node.left;\n  }\n  return node;\n}\nfunction righttest(node) {\n  while (node.right !== SENTINEL2) {\n    node = node.right;\n  }\n  return node;\n}\nfunction calculateSize(node) {\n  if (node === SENTINEL2) {\n    return 0;\n  }\n  return node.size_left + node.piece.length + calculateSize(node.right);\n}\nfunction calculateLF(node) {\n  if (node === SENTINEL2) {\n    return 0;\n  }\n  return node.lf_left + node.piece.lineFeedCnt + calculateLF(node.right);\n}\nfunction resetSentinel2() {\n  SENTINEL2.parent = SENTINEL2;\n}\nfunction leftRotate3(tree, x) {\n  const y = x.right;\n  y.size_left += x.size_left + (x.piece ? x.piece.length : 0);\n  y.lf_left += x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);\n  x.right = y.left;\n  if (y.left !== SENTINEL2) {\n    y.left.parent = x;\n  }\n  y.parent = x.parent;\n  if (x.parent === SENTINEL2) {\n    tree.root = y;\n  } else if (x.parent.left === x) {\n    x.parent.left = y;\n  } else {\n    x.parent.right = y;\n  }\n  y.left = x;\n  x.parent = y;\n}\nfunction rightRotate2(tree, y) {\n  const x = y.left;\n  y.left = x.right;\n  if (x.right !== SENTINEL2) {\n    x.right.parent = y;\n  }\n  x.parent = y.parent;\n  y.size_left -= x.size_left + (x.piece ? x.piece.length : 0);\n  y.lf_left -= x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);\n  if (y.parent === SENTINEL2) {\n    tree.root = x;\n  } else if (y === y.parent.right) {\n    y.parent.right = x;\n  } else {\n    y.parent.left = x;\n  }\n  x.right = y;\n  y.parent = x;\n}\nfunction rbDelete(tree, z) {\n  let x;\n  let y;\n  if (z.left === SENTINEL2) {\n    y = z;\n    x = y.right;\n  } else if (z.right === SENTINEL2) {\n    y = z;\n    x = y.left;\n  } else {\n    y = leftest2(z.right);\n    x = y.right;\n  }\n  if (y === tree.root) {\n    tree.root = x;\n    x.color = 0;\n    z.detach();\n    resetSentinel2();\n    tree.root.parent = SENTINEL2;\n    return;\n  }\n  const yWasRed = y.color === 1;\n  if (y === y.parent.left) {\n    y.parent.left = x;\n  } else {\n    y.parent.right = x;\n  }\n  if (y === z) {\n    x.parent = y.parent;\n    recomputeTreeMetadata(tree, x);\n  } else {\n    if (y.parent === z) {\n      x.parent = y;\n    } else {\n      x.parent = y.parent;\n    }\n    recomputeTreeMetadata(tree, x);\n    y.left = z.left;\n    y.right = z.right;\n    y.parent = z.parent;\n    y.color = z.color;\n    if (z === tree.root) {\n      tree.root = y;\n    } else {\n      if (z === z.parent.left) {\n        z.parent.left = y;\n      } else {\n        z.parent.right = y;\n      }\n    }\n    if (y.left !== SENTINEL2) {\n      y.left.parent = y;\n    }\n    if (y.right !== SENTINEL2) {\n      y.right.parent = y;\n    }\n    y.size_left = z.size_left;\n    y.lf_left = z.lf_left;\n    recomputeTreeMetadata(tree, y);\n  }\n  z.detach();\n  if (x.parent.left === x) {\n    const newSizeLeft = calculateSize(x);\n    const newLFLeft = calculateLF(x);\n    if (newSizeLeft !== x.parent.size_left || newLFLeft !== x.parent.lf_left) {\n      const delta = newSizeLeft - x.parent.size_left;\n      const lf_delta = newLFLeft - x.parent.lf_left;\n      x.parent.size_left = newSizeLeft;\n      x.parent.lf_left = newLFLeft;\n      updateTreeMetadata(tree, x.parent, delta, lf_delta);\n    }\n  }\n  recomputeTreeMetadata(tree, x.parent);\n  if (yWasRed) {\n    resetSentinel2();\n    return;\n  }\n  let w;\n  while (x !== tree.root \u0026\u0026 x.color === 0) {\n    if (x === x.parent.left) {\n      w = x.parent.right;\n      if (w.color === 1) {\n        w.color = 0;\n        x.parent.color = 1;\n        leftRotate3(tree, x.parent);\n        w = x.parent.right;\n      }\n      if (w.left.color === 0 \u0026\u0026 w.right.color === 0) {\n        w.color = 1;\n        x = x.parent;\n      } else {\n        if (w.right.color === 0) {\n          w.left.color = 0;\n          w.color = 1;\n          rightRotate2(tree, w);\n          w = x.parent.right;\n        }\n        w.color = x.parent.color;\n        x.parent.color = 0;\n        w.right.color = 0;\n        leftRotate3(tree, x.parent);\n        x = tree.root;\n      }\n    } else {\n      w = x.parent.left;\n      if (w.color === 1) {\n        w.color = 0;\n        x.parent.color = 1;\n        rightRotate2(tree, x.parent);\n        w = x.parent.left;\n      }\n      if (w.left.color === 0 \u0026\u0026 w.right.color === 0) {\n        w.color = 1;\n        x = x.parent;\n      } else {\n        if (w.left.color === 0) {\n          w.right.color = 0;\n          w.color = 1;\n          leftRotate3(tree, w);\n          w = x.parent.left;\n        }\n        w.color = x.parent.color;\n        x.parent.color = 0;\n        w.left.color = 0;\n        rightRotate2(tree, x.parent);\n        x = tree.root;\n      }\n    }\n  }\n  x.color = 0;\n  resetSentinel2();\n}\nfunction fixInsert(tree, x) {\n  recomputeTreeMetadata(tree, x);\n  while (x !== tree.root \u0026\u0026 x.parent.color === 1) {\n    if (x.parent === x.parent.parent.left) {\n      const y = x.parent.parent.right;\n      if (y.color === 1) {\n        x.parent.color = 0;\n        y.color = 0;\n        x.parent.parent.color = 1;\n        x = x.parent.parent;\n      } else {\n        if (x === x.parent.right) {\n          x = x.parent;\n          leftRotate3(tree, x);\n        }\n        x.parent.color = 0;\n        x.parent.parent.color = 1;\n        rightRotate2(tree, x.parent.parent);\n      }\n    } else {\n      const y = x.parent.parent.left;\n      if (y.color === 1) {\n        x.parent.color = 0;\n        y.color = 0;\n        x.parent.parent.color = 1;\n        x = x.parent.parent;\n      } else {\n        if (x === x.parent.left) {\n          x = x.parent;\n          rightRotate2(tree, x);\n        }\n        x.parent.color = 0;\n        x.parent.parent.color = 1;\n        leftRotate3(tree, x.parent.parent);\n      }\n    }\n  }\n  tree.root.color = 0;\n}\nfunction updateTreeMetadata(tree, x, delta, lineFeedCntDelta) {\n  while (x !== tree.root \u0026\u0026 x !== SENTINEL2) {\n    if (x.parent.left === x) {\n      x.parent.size_left += delta;\n      x.parent.lf_left += lineFeedCntDelta;\n    }\n    x = x.parent;\n  }\n}\nfunction recomputeTreeMetadata(tree, x) {\n  let delta = 0;\n  let lf_delta = 0;\n  if (x === tree.root) {\n    return;\n  }\n  while (x !== tree.root \u0026\u0026 x === x.parent.right) {\n    x = x.parent;\n  }\n  if (x === tree.root) {\n    return;\n  }\n  x = x.parent;\n  delta = calculateSize(x.left) - x.size_left;\n  lf_delta = calculateLF(x.left) - x.lf_left;\n  x.size_left += delta;\n  x.lf_left += lf_delta;\n  while (x !== tree.root \u0026\u0026 (delta !== 0 || lf_delta !== 0)) {\n    if (x.parent.left === x) {\n      x.parent.size_left += delta;\n      x.parent.lf_left += lf_delta;\n    }\n    x = x.parent;\n  }\n}\nvar TreeNode, SENTINEL2;\nvar init_rbTreeBase = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase.js\"() {\n    TreeNode = class {\n      constructor(piece, color) {\n        this.piece = piece;\n        this.color = color;\n        this.size_left = 0;\n        this.lf_left = 0;\n        this.parent = this;\n        this.left = this;\n        this.right = this;\n      }\n      next() {\n        if (this.right !== SENTINEL2) {\n          return leftest2(this.right);\n        }\n        let node = this;\n        while (node.parent !== SENTINEL2) {\n          if (node.parent.left === node) {\n            break;\n          }\n          node = node.parent;\n        }\n        if (node.parent === SENTINEL2) {\n          return SENTINEL2;\n        } else {\n          return node.parent;\n        }\n      }\n      prev() {\n        if (this.left !== SENTINEL2) {\n          return righttest(this.left);\n        }\n        let node = this;\n        while (node.parent !== SENTINEL2) {\n          if (node.parent.right === node) {\n            break;\n          }\n          node = node.parent;\n        }\n        if (node.parent === SENTINEL2) {\n          return SENTINEL2;\n        } else {\n          return node.parent;\n        }\n      }\n      detach() {\n        this.parent = null;\n        this.left = null;\n        this.right = null;\n      }\n    };\n    SENTINEL2 = new TreeNode(\n      null,\n      0\n      /* NodeColor.Black */\n    );\n    SENTINEL2.parent = SENTINEL2;\n    SENTINEL2.left = SENTINEL2;\n    SENTINEL2.right = SENTINEL2;\n    SENTINEL2.color = 0;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelSearch.js\nfunction isMultilineRegexSource(searchString) {\n  if (!searchString || searchString.length === 0) {\n    return false;\n  }\n  for (let i2 = 0, len = searchString.length; i2 \u003c len; i2++) {\n    const chCode = searchString.charCodeAt(i2);\n    if (chCode === 10) {\n      return true;\n    }\n    if (chCode === 92) {\n      i2++;\n      if (i2 \u003e= len) {\n        break;\n      }\n      const nextChCode = searchString.charCodeAt(i2);\n      if (nextChCode === 110 || nextChCode === 114 || nextChCode === 87) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\nfunction createFindMatch(range2, rawMatches, captureMatches) {\n  if (!captureMatches) {\n    return new FindMatch(range2, null);\n  }\n  const matches = [];\n  for (let i2 = 0, len = rawMatches.length; i2 \u003c len; i2++) {\n    matches[i2] = rawMatches[i2];\n  }\n  return new FindMatch(range2, matches);\n}\nfunction leftIsWordBounday(wordSeparators2, text2, textLength, matchStartIndex, matchLength) {\n  if (matchStartIndex === 0) {\n    return true;\n  }\n  const charBefore = text2.charCodeAt(matchStartIndex - 1);\n  if (wordSeparators2.get(charBefore) !== 0) {\n    return true;\n  }\n  if (charBefore === 13 || charBefore === 10) {\n    return true;\n  }\n  if (matchLength \u003e 0) {\n    const firstCharInMatch = text2.charCodeAt(matchStartIndex);\n    if (wordSeparators2.get(firstCharInMatch) !== 0) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction rightIsWordBounday(wordSeparators2, text2, textLength, matchStartIndex, matchLength) {\n  if (matchStartIndex + matchLength === textLength) {\n    return true;\n  }\n  const charAfter = text2.charCodeAt(matchStartIndex + matchLength);\n  if (wordSeparators2.get(charAfter) !== 0) {\n    return true;\n  }\n  if (charAfter === 13 || charAfter === 10) {\n    return true;\n  }\n  if (matchLength \u003e 0) {\n    const lastCharInMatch = text2.charCodeAt(matchStartIndex + matchLength - 1);\n    if (wordSeparators2.get(lastCharInMatch) !== 0) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction isValidMatch(wordSeparators2, text2, textLength, matchStartIndex, matchLength) {\n  return leftIsWordBounday(wordSeparators2, text2, textLength, matchStartIndex, matchLength) \u0026\u0026 rightIsWordBounday(wordSeparators2, text2, textLength, matchStartIndex, matchLength);\n}\nvar LIMIT_FIND_COUNT, SearchParams, LineFeedCounter, TextModelSearch, Searcher;\nvar init_textModelSearch = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelSearch.js\"() {\n    init_strings();\n    init_wordCharacterClassifier();\n    init_position();\n    init_range();\n    init_model2();\n    LIMIT_FIND_COUNT = 999;\n    SearchParams = class {\n      constructor(searchString, isRegex, matchCase, wordSeparators2) {\n        this.searchString = searchString;\n        this.isRegex = isRegex;\n        this.matchCase = matchCase;\n        this.wordSeparators = wordSeparators2;\n      }\n      parseSearchRequest() {\n        if (this.searchString === \"\") {\n          return null;\n        }\n        let multiline;\n        if (this.isRegex) {\n          multiline = isMultilineRegexSource(this.searchString);\n        } else {\n          multiline = this.searchString.indexOf(\"\\n\") \u003e= 0;\n        }\n        let regex = null;\n        try {\n          regex = createRegExp(this.searchString, this.isRegex, {\n            matchCase: this.matchCase,\n            wholeWord: false,\n            multiline,\n            global: true,\n            unicode: true\n          });\n        } catch (err) {\n          return null;\n        }\n        if (!regex) {\n          return null;\n        }\n        let canUseSimpleSearch = !this.isRegex \u0026\u0026 !multiline;\n        if (canUseSimpleSearch \u0026\u0026 this.searchString.toLowerCase() !== this.searchString.toUpperCase()) {\n          canUseSimpleSearch = this.matchCase;\n        }\n        return new SearchData(regex, this.wordSeparators ? getMapForWordSeparators(this.wordSeparators, []) : null, canUseSimpleSearch ? this.searchString : null);\n      }\n    };\n    LineFeedCounter = class {\n      constructor(text2) {\n        const lineFeedsOffsets = [];\n        let lineFeedsOffsetsLen = 0;\n        for (let i2 = 0, textLen = text2.length; i2 \u003c textLen; i2++) {\n          if (text2.charCodeAt(i2) === 10) {\n            lineFeedsOffsets[lineFeedsOffsetsLen++] = i2;\n          }\n        }\n        this._lineFeedsOffsets = lineFeedsOffsets;\n      }\n      findLineFeedCountBeforeOffset(offset) {\n        const lineFeedsOffsets = this._lineFeedsOffsets;\n        let min = 0;\n        let max = lineFeedsOffsets.length - 1;\n        if (max === -1) {\n          return 0;\n        }\n        if (offset \u003c= lineFeedsOffsets[0]) {\n          return 0;\n        }\n        while (min \u003c max) {\n          const mid = min + ((max - min) / 2 \u003e\u003e 0);\n          if (lineFeedsOffsets[mid] \u003e= offset) {\n            max = mid - 1;\n          } else {\n            if (lineFeedsOffsets[mid + 1] \u003e= offset) {\n              min = mid;\n              max = mid;\n            } else {\n              min = mid + 1;\n            }\n          }\n        }\n        return min + 1;\n      }\n    };\n    TextModelSearch = class {\n      static findMatches(model, searchParams, searchRange, captureMatches, limitResultCount) {\n        const searchData = searchParams.parseSearchRequest();\n        if (!searchData) {\n          return [];\n        }\n        if (searchData.regex.multiline) {\n          return this._doFindMatchesMultiline(model, searchRange, new Searcher(searchData.wordSeparators, searchData.regex), captureMatches, limitResultCount);\n        }\n        return this._doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount);\n      }\n      /**\n       * Multiline search always executes on the lines concatenated with \\n.\n       * We must therefore compensate for the count of \\n in case the model is CRLF\n       */\n      static _getMultilineMatchRange(model, deltaOffset, text2, lfCounter, matchIndex, match0) {\n        let startOffset;\n        let lineFeedCountBeforeMatch = 0;\n        if (lfCounter) {\n          lineFeedCountBeforeMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex);\n          startOffset = deltaOffset + matchIndex + lineFeedCountBeforeMatch;\n        } else {\n          startOffset = deltaOffset + matchIndex;\n        }\n        let endOffset;\n        if (lfCounter) {\n          const lineFeedCountBeforeEndOfMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex + match0.length);\n          const lineFeedCountInMatch = lineFeedCountBeforeEndOfMatch - lineFeedCountBeforeMatch;\n          endOffset = startOffset + match0.length + lineFeedCountInMatch;\n        } else {\n          endOffset = startOffset + match0.length;\n        }\n        const startPosition = model.getPositionAt(startOffset);\n        const endPosition = model.getPositionAt(endOffset);\n        return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column);\n      }\n      static _doFindMatchesMultiline(model, searchRange, searcher, captureMatches, limitResultCount) {\n        const deltaOffset = model.getOffsetAt(searchRange.getStartPosition());\n        const text2 = model.getValueInRange(\n          searchRange,\n          1\n          /* EndOfLinePreference.LF */\n        );\n        const lfCounter = model.getEOL() === \"\\r\\n\" ? new LineFeedCounter(text2) : null;\n        const result = [];\n        let counter = 0;\n        let m;\n        searcher.reset(0);\n        while (m = searcher.next(text2)) {\n          result[counter++] = createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text2, lfCounter, m.index, m[0]), m, captureMatches);\n          if (counter \u003e= limitResultCount) {\n            return result;\n          }\n        }\n        return result;\n      }\n      static _doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount) {\n        const result = [];\n        let resultLen = 0;\n        if (searchRange.startLineNumber === searchRange.endLineNumber) {\n          const text3 = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1, searchRange.endColumn - 1);\n          resultLen = this._findMatchesInLine(searchData, text3, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount);\n          return result;\n        }\n        const text2 = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1);\n        resultLen = this._findMatchesInLine(searchData, text2, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount);\n        for (let lineNumber = searchRange.startLineNumber + 1; lineNumber \u003c searchRange.endLineNumber \u0026\u0026 resultLen \u003c limitResultCount; lineNumber++) {\n          resultLen = this._findMatchesInLine(searchData, model.getLineContent(lineNumber), lineNumber, 0, resultLen, result, captureMatches, limitResultCount);\n        }\n        if (resultLen \u003c limitResultCount) {\n          const text3 = model.getLineContent(searchRange.endLineNumber).substring(0, searchRange.endColumn - 1);\n          resultLen = this._findMatchesInLine(searchData, text3, searchRange.endLineNumber, 0, resultLen, result, captureMatches, limitResultCount);\n        }\n        return result;\n      }\n      static _findMatchesInLine(searchData, text2, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) {\n        const wordSeparators2 = searchData.wordSeparators;\n        if (!captureMatches \u0026\u0026 searchData.simpleSearch) {\n          const searchString = searchData.simpleSearch;\n          const searchStringLen = searchString.length;\n          const textLength = text2.length;\n          let lastMatchIndex = -searchStringLen;\n          while ((lastMatchIndex = text2.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) {\n            if (!wordSeparators2 || isValidMatch(wordSeparators2, text2, textLength, lastMatchIndex, searchStringLen)) {\n              result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null);\n              if (resultLen \u003e= limitResultCount) {\n                return resultLen;\n              }\n            }\n          }\n          return resultLen;\n        }\n        const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n        let m;\n        searcher.reset(0);\n        do {\n          m = searcher.next(text2);\n          if (m) {\n            result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches);\n            if (resultLen \u003e= limitResultCount) {\n              return resultLen;\n            }\n          }\n        } while (m);\n        return resultLen;\n      }\n      static findNextMatch(model, searchParams, searchStart, captureMatches) {\n        const searchData = searchParams.parseSearchRequest();\n        if (!searchData) {\n          return null;\n        }\n        const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n        if (searchData.regex.multiline) {\n          return this._doFindNextMatchMultiline(model, searchStart, searcher, captureMatches);\n        }\n        return this._doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches);\n      }\n      static _doFindNextMatchMultiline(model, searchStart, searcher, captureMatches) {\n        const searchTextStart = new Position(searchStart.lineNumber, 1);\n        const deltaOffset = model.getOffsetAt(searchTextStart);\n        const lineCount = model.getLineCount();\n        const text2 = model.getValueInRange(\n          new Range(searchTextStart.lineNumber, searchTextStart.column, lineCount, model.getLineMaxColumn(lineCount)),\n          1\n          /* EndOfLinePreference.LF */\n        );\n        const lfCounter = model.getEOL() === \"\\r\\n\" ? new LineFeedCounter(text2) : null;\n        searcher.reset(searchStart.column - 1);\n        const m = searcher.next(text2);\n        if (m) {\n          return createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text2, lfCounter, m.index, m[0]), m, captureMatches);\n        }\n        if (searchStart.lineNumber !== 1 || searchStart.column !== 1) {\n          return this._doFindNextMatchMultiline(model, new Position(1, 1), searcher, captureMatches);\n        }\n        return null;\n      }\n      static _doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches) {\n        const lineCount = model.getLineCount();\n        const startLineNumber = searchStart.lineNumber;\n        const text2 = model.getLineContent(startLineNumber);\n        const r = this._findFirstMatchInLine(searcher, text2, startLineNumber, searchStart.column, captureMatches);\n        if (r) {\n          return r;\n        }\n        for (let i2 = 1; i2 \u003c= lineCount; i2++) {\n          const lineIndex = (startLineNumber + i2 - 1) % lineCount;\n          const text3 = model.getLineContent(lineIndex + 1);\n          const r2 = this._findFirstMatchInLine(searcher, text3, lineIndex + 1, 1, captureMatches);\n          if (r2) {\n            return r2;\n          }\n        }\n        return null;\n      }\n      static _findFirstMatchInLine(searcher, text2, lineNumber, fromColumn, captureMatches) {\n        searcher.reset(fromColumn - 1);\n        const m = searcher.next(text2);\n        if (m) {\n          return createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches);\n        }\n        return null;\n      }\n      static findPreviousMatch(model, searchParams, searchStart, captureMatches) {\n        const searchData = searchParams.parseSearchRequest();\n        if (!searchData) {\n          return null;\n        }\n        const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n        if (searchData.regex.multiline) {\n          return this._doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches);\n        }\n        return this._doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches);\n      }\n      static _doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches) {\n        const matches = this._doFindMatchesMultiline(model, new Range(1, 1, searchStart.lineNumber, searchStart.column), searcher, captureMatches, 10 * LIMIT_FIND_COUNT);\n        if (matches.length \u003e 0) {\n          return matches[matches.length - 1];\n        }\n        const lineCount = model.getLineCount();\n        if (searchStart.lineNumber !== lineCount || searchStart.column !== model.getLineMaxColumn(lineCount)) {\n          return this._doFindPreviousMatchMultiline(model, new Position(lineCount, model.getLineMaxColumn(lineCount)), searcher, captureMatches);\n        }\n        return null;\n      }\n      static _doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches) {\n        const lineCount = model.getLineCount();\n        const startLineNumber = searchStart.lineNumber;\n        const text2 = model.getLineContent(startLineNumber).substring(0, searchStart.column - 1);\n        const r = this._findLastMatchInLine(searcher, text2, startLineNumber, captureMatches);\n        if (r) {\n          return r;\n        }\n        for (let i2 = 1; i2 \u003c= lineCount; i2++) {\n          const lineIndex = (lineCount + startLineNumber - i2 - 1) % lineCount;\n          const text3 = model.getLineContent(lineIndex + 1);\n          const r2 = this._findLastMatchInLine(searcher, text3, lineIndex + 1, captureMatches);\n          if (r2) {\n            return r2;\n          }\n        }\n        return null;\n      }\n      static _findLastMatchInLine(searcher, text2, lineNumber, captureMatches) {\n        let bestResult = null;\n        let m;\n        searcher.reset(0);\n        while (m = searcher.next(text2)) {\n          bestResult = createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches);\n        }\n        return bestResult;\n      }\n    };\n    Searcher = class {\n      constructor(wordSeparators2, searchRegex) {\n        this._wordSeparators = wordSeparators2;\n        this._searchRegex = searchRegex;\n        this._prevMatchStartIndex = -1;\n        this._prevMatchLength = 0;\n      }\n      reset(lastIndex) {\n        this._searchRegex.lastIndex = lastIndex;\n        this._prevMatchStartIndex = -1;\n        this._prevMatchLength = 0;\n      }\n      next(text2) {\n        const textLength = text2.length;\n        let m;\n        do {\n          if (this._prevMatchStartIndex + this._prevMatchLength === textLength) {\n            return null;\n          }\n          m = this._searchRegex.exec(text2);\n          if (!m) {\n            return null;\n          }\n          const matchStartIndex = m.index;\n          const matchLength = m[0].length;\n          if (matchStartIndex === this._prevMatchStartIndex \u0026\u0026 matchLength === this._prevMatchLength) {\n            if (matchLength === 0) {\n              if (getNextCodePoint(text2, textLength, this._searchRegex.lastIndex) \u003e 65535) {\n                this._searchRegex.lastIndex += 2;\n              } else {\n                this._searchRegex.lastIndex += 1;\n              }\n              continue;\n            }\n            return null;\n          }\n          this._prevMatchStartIndex = matchStartIndex;\n          this._prevMatchLength = matchLength;\n          if (!this._wordSeparators || isValidMatch(this._wordSeparators, text2, textLength, matchStartIndex, matchLength)) {\n            return m;\n          }\n        } while (m);\n        return null;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js\nfunction createUintArray(arr) {\n  let r;\n  if (arr[arr.length - 1] \u003c 65536) {\n    r = new Uint16Array(arr.length);\n  } else {\n    r = new Uint32Array(arr.length);\n  }\n  r.set(arr, 0);\n  return r;\n}\nfunction createLineStartsFast(str, readonly = true) {\n  const r = [0];\n  let rLength = 1;\n  for (let i2 = 0, len = str.length; i2 \u003c len; i2++) {\n    const chr = str.charCodeAt(i2);\n    if (chr === 13) {\n      if (i2 + 1 \u003c len \u0026\u0026 str.charCodeAt(i2 + 1) === 10) {\n        r[rLength++] = i2 + 2;\n        i2++;\n      } else {\n        r[rLength++] = i2 + 1;\n      }\n    } else if (chr === 10) {\n      r[rLength++] = i2 + 1;\n    }\n  }\n  if (readonly) {\n    return createUintArray(r);\n  } else {\n    return r;\n  }\n}\nfunction createLineStarts(r, str) {\n  r.length = 0;\n  r[0] = 0;\n  let rLength = 1;\n  let cr = 0, lf = 0, crlf = 0;\n  let isBasicASCII2 = true;\n  for (let i2 = 0, len = str.length; i2 \u003c len; i2++) {\n    const chr = str.charCodeAt(i2);\n    if (chr === 13) {\n      if (i2 + 1 \u003c len \u0026\u0026 str.charCodeAt(i2 + 1) === 10) {\n        crlf++;\n        r[rLength++] = i2 + 2;\n        i2++;\n      } else {\n        cr++;\n        r[rLength++] = i2 + 1;\n      }\n    } else if (chr === 10) {\n      lf++;\n      r[rLength++] = i2 + 1;\n    } else {\n      if (isBasicASCII2) {\n        if (chr !== 9 \u0026\u0026 (chr \u003c 32 || chr \u003e 126)) {\n          isBasicASCII2 = false;\n        }\n      }\n    }\n  }\n  const result = new LineStarts(createUintArray(r), cr, lf, crlf, isBasicASCII2);\n  r.length = 0;\n  return result;\n}\nvar AverageBufferSize, LineStarts, Piece, StringBuffer, PieceTreeSnapshot, PieceTreeSearchCache, PieceTreeBase;\nvar init_pieceTreeBase = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js\"() {\n    init_position();\n    init_range();\n    init_model2();\n    init_rbTreeBase();\n    init_textModelSearch();\n    AverageBufferSize = 65535;\n    LineStarts = class {\n      constructor(lineStarts, cr, lf, crlf, isBasicASCII2) {\n        this.lineStarts = lineStarts;\n        this.cr = cr;\n        this.lf = lf;\n        this.crlf = crlf;\n        this.isBasicASCII = isBasicASCII2;\n      }\n    };\n    Piece = class {\n      constructor(bufferIndex, start, end, lineFeedCnt, length) {\n        this.bufferIndex = bufferIndex;\n        this.start = start;\n        this.end = end;\n        this.lineFeedCnt = lineFeedCnt;\n        this.length = length;\n      }\n    };\n    StringBuffer = class {\n      constructor(buffer, lineStarts) {\n        this.buffer = buffer;\n        this.lineStarts = lineStarts;\n      }\n    };\n    PieceTreeSnapshot = class {\n      constructor(tree, BOM) {\n        this._pieces = [];\n        this._tree = tree;\n        this._BOM = BOM;\n        this._index = 0;\n        if (tree.root !== SENTINEL2) {\n          tree.iterate(tree.root, (node) =\u003e {\n            if (node !== SENTINEL2) {\n              this._pieces.push(node.piece);\n            }\n            return true;\n          });\n        }\n      }\n      read() {\n        if (this._pieces.length === 0) {\n          if (this._index === 0) {\n            this._index++;\n            return this._BOM;\n          } else {\n            return null;\n          }\n        }\n        if (this._index \u003e this._pieces.length - 1) {\n          return null;\n        }\n        if (this._index === 0) {\n          return this._BOM + this._tree.getPieceContent(this._pieces[this._index++]);\n        }\n        return this._tree.getPieceContent(this._pieces[this._index++]);\n      }\n    };\n    PieceTreeSearchCache = class {\n      constructor(limit) {\n        this._limit = limit;\n        this._cache = [];\n      }\n      get(offset) {\n        for (let i2 = this._cache.length - 1; i2 \u003e= 0; i2--) {\n          const nodePos = this._cache[i2];\n          if (nodePos.nodeStartOffset \u003c= offset \u0026\u0026 nodePos.nodeStartOffset + nodePos.node.piece.length \u003e= offset) {\n            return nodePos;\n          }\n        }\n        return null;\n      }\n      get2(lineNumber) {\n        for (let i2 = this._cache.length - 1; i2 \u003e= 0; i2--) {\n          const nodePos = this._cache[i2];\n          if (nodePos.nodeStartLineNumber \u0026\u0026 nodePos.nodeStartLineNumber \u003c lineNumber \u0026\u0026 nodePos.nodeStartLineNumber + nodePos.node.piece.lineFeedCnt \u003e= lineNumber) {\n            return nodePos;\n          }\n        }\n        return null;\n      }\n      set(nodePosition) {\n        if (this._cache.length \u003e= this._limit) {\n          this._cache.shift();\n        }\n        this._cache.push(nodePosition);\n      }\n      validate(offset) {\n        let hasInvalidVal = false;\n        const tmp = this._cache;\n        for (let i2 = 0; i2 \u003c tmp.length; i2++) {\n          const nodePos = tmp[i2];\n          if (nodePos.node.parent === null || nodePos.nodeStartOffset \u003e= offset) {\n            tmp[i2] = null;\n            hasInvalidVal = true;\n            continue;\n          }\n        }\n        if (hasInvalidVal) {\n          const newArr = [];\n          for (const entry of tmp) {\n            if (entry !== null) {\n              newArr.push(entry);\n            }\n          }\n          this._cache = newArr;\n        }\n      }\n    };\n    PieceTreeBase = class {\n      constructor(chunks, eol, eolNormalized) {\n        this.create(chunks, eol, eolNormalized);\n      }\n      create(chunks, eol, eolNormalized) {\n        this._buffers = [\n          new StringBuffer(\"\", [0])\n        ];\n        this._lastChangeBufferPos = { line: 0, column: 0 };\n        this.root = SENTINEL2;\n        this._lineCnt = 1;\n        this._length = 0;\n        this._EOL = eol;\n        this._EOLLength = eol.length;\n        this._EOLNormalized = eolNormalized;\n        let lastNode = null;\n        for (let i2 = 0, len = chunks.length; i2 \u003c len; i2++) {\n          if (chunks[i2].buffer.length \u003e 0) {\n            if (!chunks[i2].lineStarts) {\n              chunks[i2].lineStarts = createLineStartsFast(chunks[i2].buffer);\n            }\n            const piece = new Piece(i2 + 1, { line: 0, column: 0 }, { line: chunks[i2].lineStarts.length - 1, column: chunks[i2].buffer.length - chunks[i2].lineStarts[chunks[i2].lineStarts.length - 1] }, chunks[i2].lineStarts.length - 1, chunks[i2].buffer.length);\n            this._buffers.push(chunks[i2]);\n            lastNode = this.rbInsertRight(lastNode, piece);\n          }\n        }\n        this._searchCache = new PieceTreeSearchCache(1);\n        this._lastVisitedLine = { lineNumber: 0, value: \"\" };\n        this.computeBufferMetadata();\n      }\n      normalizeEOL(eol) {\n        const averageBufferSize = AverageBufferSize;\n        const min = averageBufferSize - Math.floor(averageBufferSize / 3);\n        const max = min * 2;\n        let tempChunk = \"\";\n        let tempChunkLen = 0;\n        const chunks = [];\n        this.iterate(this.root, (node) =\u003e {\n          const str = this.getNodeContent(node);\n          const len = str.length;\n          if (tempChunkLen \u003c= min || tempChunkLen + len \u003c max) {\n            tempChunk += str;\n            tempChunkLen += len;\n            return true;\n          }\n          const text2 = tempChunk.replace(/\\r\\n|\\r|\\n/g, eol);\n          chunks.push(new StringBuffer(text2, createLineStartsFast(text2)));\n          tempChunk = str;\n          tempChunkLen = len;\n          return true;\n        });\n        if (tempChunkLen \u003e 0) {\n          const text2 = tempChunk.replace(/\\r\\n|\\r|\\n/g, eol);\n          chunks.push(new StringBuffer(text2, createLineStartsFast(text2)));\n        }\n        this.create(chunks, eol, true);\n      }\n      // #region Buffer API\n      getEOL() {\n        return this._EOL;\n      }\n      setEOL(newEOL) {\n        this._EOL = newEOL;\n        this._EOLLength = this._EOL.length;\n        this.normalizeEOL(newEOL);\n      }\n      createSnapshot(BOM) {\n        return new PieceTreeSnapshot(this, BOM);\n      }\n      getOffsetAt(lineNumber, column) {\n        let leftLen = 0;\n        let x = this.root;\n        while (x !== SENTINEL2) {\n          if (x.left !== SENTINEL2 \u0026\u0026 x.lf_left + 1 \u003e= lineNumber) {\n            x = x.left;\n          } else if (x.lf_left + x.piece.lineFeedCnt + 1 \u003e= lineNumber) {\n            leftLen += x.size_left;\n            const accumualtedValInCurrentIndex = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n            return leftLen += accumualtedValInCurrentIndex + column - 1;\n          } else {\n            lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n            leftLen += x.size_left + x.piece.length;\n            x = x.right;\n          }\n        }\n        return leftLen;\n      }\n      getPositionAt(offset) {\n        offset = Math.floor(offset);\n        offset = Math.max(0, offset);\n        let x = this.root;\n        let lfCnt = 0;\n        const originalOffset = offset;\n        while (x !== SENTINEL2) {\n          if (x.size_left !== 0 \u0026\u0026 x.size_left \u003e= offset) {\n            x = x.left;\n          } else if (x.size_left + x.piece.length \u003e= offset) {\n            const out = this.getIndexOf(x, offset - x.size_left);\n            lfCnt += x.lf_left + out.index;\n            if (out.index === 0) {\n              const lineStartOffset = this.getOffsetAt(lfCnt + 1, 1);\n              const column = originalOffset - lineStartOffset;\n              return new Position(lfCnt + 1, column + 1);\n            }\n            return new Position(lfCnt + 1, out.remainder + 1);\n          } else {\n            offset -= x.size_left + x.piece.length;\n            lfCnt += x.lf_left + x.piece.lineFeedCnt;\n            if (x.right === SENTINEL2) {\n              const lineStartOffset = this.getOffsetAt(lfCnt + 1, 1);\n              const column = originalOffset - offset - lineStartOffset;\n              return new Position(lfCnt + 1, column + 1);\n            } else {\n              x = x.right;\n            }\n          }\n        }\n        return new Position(1, 1);\n      }\n      getValueInRange(range2, eol) {\n        if (range2.startLineNumber === range2.endLineNumber \u0026\u0026 range2.startColumn === range2.endColumn) {\n          return \"\";\n        }\n        const startPosition = this.nodeAt2(range2.startLineNumber, range2.startColumn);\n        const endPosition = this.nodeAt2(range2.endLineNumber, range2.endColumn);\n        const value = this.getValueInRange2(startPosition, endPosition);\n        if (eol) {\n          if (eol !== this._EOL || !this._EOLNormalized) {\n            return value.replace(/\\r\\n|\\r|\\n/g, eol);\n          }\n          if (eol === this.getEOL() \u0026\u0026 this._EOLNormalized) {\n            if (eol === \"\\r\\n\") {\n            }\n            return value;\n          }\n          return value.replace(/\\r\\n|\\r|\\n/g, eol);\n        }\n        return value;\n      }\n      getValueInRange2(startPosition, endPosition) {\n        if (startPosition.node === endPosition.node) {\n          const node = startPosition.node;\n          const buffer2 = this._buffers[node.piece.bufferIndex].buffer;\n          const startOffset2 = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start);\n          return buffer2.substring(startOffset2 + startPosition.remainder, startOffset2 + endPosition.remainder);\n        }\n        let x = startPosition.node;\n        const buffer = this._buffers[x.piece.bufferIndex].buffer;\n        const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n        let ret = buffer.substring(startOffset + startPosition.remainder, startOffset + x.piece.length);\n        x = x.next();\n        while (x !== SENTINEL2) {\n          const buffer2 = this._buffers[x.piece.bufferIndex].buffer;\n          const startOffset2 = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n          if (x === endPosition.node) {\n            ret += buffer2.substring(startOffset2, startOffset2 + endPosition.remainder);\n            break;\n          } else {\n            ret += buffer2.substr(startOffset2, x.piece.length);\n          }\n          x = x.next();\n        }\n        return ret;\n      }\n      getLinesContent() {\n        const lines = [];\n        let linesLength = 0;\n        let currentLine = \"\";\n        let danglingCR = false;\n        this.iterate(this.root, (node) =\u003e {\n          if (node === SENTINEL2) {\n            return true;\n          }\n          const piece = node.piece;\n          let pieceLength = piece.length;\n          if (pieceLength === 0) {\n            return true;\n          }\n          const buffer = this._buffers[piece.bufferIndex].buffer;\n          const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n          const pieceStartLine = piece.start.line;\n          const pieceEndLine = piece.end.line;\n          let pieceStartOffset = lineStarts[pieceStartLine] + piece.start.column;\n          if (danglingCR) {\n            if (buffer.charCodeAt(pieceStartOffset) === 10) {\n              pieceStartOffset++;\n              pieceLength--;\n            }\n            lines[linesLength++] = currentLine;\n            currentLine = \"\";\n            danglingCR = false;\n            if (pieceLength === 0) {\n              return true;\n            }\n          }\n          if (pieceStartLine === pieceEndLine) {\n            if (!this._EOLNormalized \u0026\u0026 buffer.charCodeAt(pieceStartOffset + pieceLength - 1) === 13) {\n              danglingCR = true;\n              currentLine += buffer.substr(pieceStartOffset, pieceLength - 1);\n            } else {\n              currentLine += buffer.substr(pieceStartOffset, pieceLength);\n            }\n            return true;\n          }\n          currentLine += this._EOLNormalized ? buffer.substring(pieceStartOffset, Math.max(pieceStartOffset, lineStarts[pieceStartLine + 1] - this._EOLLength)) : buffer.substring(pieceStartOffset, lineStarts[pieceStartLine + 1]).replace(/(\\r\\n|\\r|\\n)$/, \"\");\n          lines[linesLength++] = currentLine;\n          for (let line = pieceStartLine + 1; line \u003c pieceEndLine; line++) {\n            currentLine = this._EOLNormalized ? buffer.substring(lineStarts[line], lineStarts[line + 1] - this._EOLLength) : buffer.substring(lineStarts[line], lineStarts[line + 1]).replace(/(\\r\\n|\\r|\\n)$/, \"\");\n            lines[linesLength++] = currentLine;\n          }\n          if (!this._EOLNormalized \u0026\u0026 buffer.charCodeAt(lineStarts[pieceEndLine] + piece.end.column - 1) === 13) {\n            danglingCR = true;\n            if (piece.end.column === 0) {\n              linesLength--;\n            } else {\n              currentLine = buffer.substr(lineStarts[pieceEndLine], piece.end.column - 1);\n            }\n          } else {\n            currentLine = buffer.substr(lineStarts[pieceEndLine], piece.end.column);\n          }\n          return true;\n        });\n        if (danglingCR) {\n          lines[linesLength++] = currentLine;\n          currentLine = \"\";\n        }\n        lines[linesLength++] = currentLine;\n        return lines;\n      }\n      getLength() {\n        return this._length;\n      }\n      getLineCount() {\n        return this._lineCnt;\n      }\n      getLineContent(lineNumber) {\n        if (this._lastVisitedLine.lineNumber === lineNumber) {\n          return this._lastVisitedLine.value;\n        }\n        this._lastVisitedLine.lineNumber = lineNumber;\n        if (lineNumber === this._lineCnt) {\n          this._lastVisitedLine.value = this.getLineRawContent(lineNumber);\n        } else if (this._EOLNormalized) {\n          this._lastVisitedLine.value = this.getLineRawContent(lineNumber, this._EOLLength);\n        } else {\n          this._lastVisitedLine.value = this.getLineRawContent(lineNumber).replace(/(\\r\\n|\\r|\\n)$/, \"\");\n        }\n        return this._lastVisitedLine.value;\n      }\n      _getCharCode(nodePos) {\n        if (nodePos.remainder === nodePos.node.piece.length) {\n          const matchingNode = nodePos.node.next();\n          if (!matchingNode) {\n            return 0;\n          }\n          const buffer = this._buffers[matchingNode.piece.bufferIndex];\n          const startOffset = this.offsetInBuffer(matchingNode.piece.bufferIndex, matchingNode.piece.start);\n          return buffer.buffer.charCodeAt(startOffset);\n        } else {\n          const buffer = this._buffers[nodePos.node.piece.bufferIndex];\n          const startOffset = this.offsetInBuffer(nodePos.node.piece.bufferIndex, nodePos.node.piece.start);\n          const targetOffset = startOffset + nodePos.remainder;\n          return buffer.buffer.charCodeAt(targetOffset);\n        }\n      }\n      getLineCharCode(lineNumber, index) {\n        const nodePos = this.nodeAt2(lineNumber, index + 1);\n        return this._getCharCode(nodePos);\n      }\n      getLineLength(lineNumber) {\n        if (lineNumber === this.getLineCount()) {\n          const startOffset = this.getOffsetAt(lineNumber, 1);\n          return this.getLength() - startOffset;\n        }\n        return this.getOffsetAt(lineNumber + 1, 1) - this.getOffsetAt(lineNumber, 1) - this._EOLLength;\n      }\n      getNearestChunk(offset) {\n        const nodePos = this.nodeAt(offset);\n        if (nodePos.remainder === nodePos.node.piece.length) {\n          const matchingNode = nodePos.node.next();\n          if (!matchingNode || matchingNode === SENTINEL2) {\n            return \"\";\n          }\n          const buffer = this._buffers[matchingNode.piece.bufferIndex];\n          const startOffset = this.offsetInBuffer(matchingNode.piece.bufferIndex, matchingNode.piece.start);\n          return buffer.buffer.substring(startOffset, startOffset + matchingNode.piece.length);\n        } else {\n          const buffer = this._buffers[nodePos.node.piece.bufferIndex];\n          const startOffset = this.offsetInBuffer(nodePos.node.piece.bufferIndex, nodePos.node.piece.start);\n          const targetOffset = startOffset + nodePos.remainder;\n          const targetEnd = startOffset + nodePos.node.piece.length;\n          return buffer.buffer.substring(targetOffset, targetEnd);\n        }\n      }\n      findMatchesInNode(node, searcher, startLineNumber, startColumn, startCursor, endCursor, searchData, captureMatches, limitResultCount, resultLen, result) {\n        const buffer = this._buffers[node.piece.bufferIndex];\n        const startOffsetInBuffer = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start);\n        const start = this.offsetInBuffer(node.piece.bufferIndex, startCursor);\n        const end = this.offsetInBuffer(node.piece.bufferIndex, endCursor);\n        let m;\n        const ret = { line: 0, column: 0 };\n        let searchText;\n        let offsetInBuffer;\n        if (searcher._wordSeparators) {\n          searchText = buffer.buffer.substring(start, end);\n          offsetInBuffer = (offset) =\u003e offset + start;\n          searcher.reset(0);\n        } else {\n          searchText = buffer.buffer;\n          offsetInBuffer = (offset) =\u003e offset;\n          searcher.reset(start);\n        }\n        do {\n          m = searcher.next(searchText);\n          if (m) {\n            if (offsetInBuffer(m.index) \u003e= end) {\n              return resultLen;\n            }\n            this.positionInBuffer(node, offsetInBuffer(m.index) - startOffsetInBuffer, ret);\n            const lineFeedCnt = this.getLineFeedCnt(node.piece.bufferIndex, startCursor, ret);\n            const retStartColumn = ret.line === startCursor.line ? ret.column - startCursor.column + startColumn : ret.column + 1;\n            const retEndColumn = retStartColumn + m[0].length;\n            result[resultLen++] = createFindMatch(new Range(startLineNumber + lineFeedCnt, retStartColumn, startLineNumber + lineFeedCnt, retEndColumn), m, captureMatches);\n            if (offsetInBuffer(m.index) + m[0].length \u003e= end) {\n              return resultLen;\n            }\n            if (resultLen \u003e= limitResultCount) {\n              return resultLen;\n            }\n          }\n        } while (m);\n        return resultLen;\n      }\n      findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n        const result = [];\n        let resultLen = 0;\n        const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n        let startPosition = this.nodeAt2(searchRange.startLineNumber, searchRange.startColumn);\n        if (startPosition === null) {\n          return [];\n        }\n        const endPosition = this.nodeAt2(searchRange.endLineNumber, searchRange.endColumn);\n        if (endPosition === null) {\n          return [];\n        }\n        let start = this.positionInBuffer(startPosition.node, startPosition.remainder);\n        const end = this.positionInBuffer(endPosition.node, endPosition.remainder);\n        if (startPosition.node === endPosition.node) {\n          this.findMatchesInNode(startPosition.node, searcher, searchRange.startLineNumber, searchRange.startColumn, start, end, searchData, captureMatches, limitResultCount, resultLen, result);\n          return result;\n        }\n        let startLineNumber = searchRange.startLineNumber;\n        let currentNode = startPosition.node;\n        while (currentNode !== endPosition.node) {\n          const lineBreakCnt = this.getLineFeedCnt(currentNode.piece.bufferIndex, start, currentNode.piece.end);\n          if (lineBreakCnt \u003e= 1) {\n            const lineStarts = this._buffers[currentNode.piece.bufferIndex].lineStarts;\n            const startOffsetInBuffer = this.offsetInBuffer(currentNode.piece.bufferIndex, currentNode.piece.start);\n            const nextLineStartOffset = lineStarts[start.line + lineBreakCnt];\n            const startColumn3 = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn : 1;\n            resultLen = this.findMatchesInNode(currentNode, searcher, startLineNumber, startColumn3, start, this.positionInBuffer(currentNode, nextLineStartOffset - startOffsetInBuffer), searchData, captureMatches, limitResultCount, resultLen, result);\n            if (resultLen \u003e= limitResultCount) {\n              return result;\n            }\n            startLineNumber += lineBreakCnt;\n          }\n          const startColumn2 = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn - 1 : 0;\n          if (startLineNumber === searchRange.endLineNumber) {\n            const text2 = this.getLineContent(startLineNumber).substring(startColumn2, searchRange.endColumn - 1);\n            resultLen = this._findMatchesInLine(searchData, searcher, text2, searchRange.endLineNumber, startColumn2, resultLen, result, captureMatches, limitResultCount);\n            return result;\n          }\n          resultLen = this._findMatchesInLine(searchData, searcher, this.getLineContent(startLineNumber).substr(startColumn2), startLineNumber, startColumn2, resultLen, result, captureMatches, limitResultCount);\n          if (resultLen \u003e= limitResultCount) {\n            return result;\n          }\n          startLineNumber++;\n          startPosition = this.nodeAt2(startLineNumber, 1);\n          currentNode = startPosition.node;\n          start = this.positionInBuffer(startPosition.node, startPosition.remainder);\n        }\n        if (startLineNumber === searchRange.endLineNumber) {\n          const startColumn2 = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn - 1 : 0;\n          const text2 = this.getLineContent(startLineNumber).substring(startColumn2, searchRange.endColumn - 1);\n          resultLen = this._findMatchesInLine(searchData, searcher, text2, searchRange.endLineNumber, startColumn2, resultLen, result, captureMatches, limitResultCount);\n          return result;\n        }\n        const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn : 1;\n        resultLen = this.findMatchesInNode(endPosition.node, searcher, startLineNumber, startColumn, start, end, searchData, captureMatches, limitResultCount, resultLen, result);\n        return result;\n      }\n      _findMatchesInLine(searchData, searcher, text2, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) {\n        const wordSeparators2 = searchData.wordSeparators;\n        if (!captureMatches \u0026\u0026 searchData.simpleSearch) {\n          const searchString = searchData.simpleSearch;\n          const searchStringLen = searchString.length;\n          const textLength = text2.length;\n          let lastMatchIndex = -searchStringLen;\n          while ((lastMatchIndex = text2.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) {\n            if (!wordSeparators2 || isValidMatch(wordSeparators2, text2, textLength, lastMatchIndex, searchStringLen)) {\n              result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null);\n              if (resultLen \u003e= limitResultCount) {\n                return resultLen;\n              }\n            }\n          }\n          return resultLen;\n        }\n        let m;\n        searcher.reset(0);\n        do {\n          m = searcher.next(text2);\n          if (m) {\n            result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches);\n            if (resultLen \u003e= limitResultCount) {\n              return resultLen;\n            }\n          }\n        } while (m);\n        return resultLen;\n      }\n      // #endregion\n      // #region Piece Table\n      insert(offset, value, eolNormalized = false) {\n        this._EOLNormalized = this._EOLNormalized \u0026\u0026 eolNormalized;\n        this._lastVisitedLine.lineNumber = 0;\n        this._lastVisitedLine.value = \"\";\n        if (this.root !== SENTINEL2) {\n          const { node, remainder, nodeStartOffset } = this.nodeAt(offset);\n          const piece = node.piece;\n          const bufferIndex = piece.bufferIndex;\n          const insertPosInBuffer = this.positionInBuffer(node, remainder);\n          if (node.piece.bufferIndex === 0 \u0026\u0026 piece.end.line === this._lastChangeBufferPos.line \u0026\u0026 piece.end.column === this._lastChangeBufferPos.column \u0026\u0026 nodeStartOffset + piece.length === offset \u0026\u0026 value.length \u003c AverageBufferSize) {\n            this.appendToNode(node, value);\n            this.computeBufferMetadata();\n            return;\n          }\n          if (nodeStartOffset === offset) {\n            this.insertContentToNodeLeft(value, node);\n            this._searchCache.validate(offset);\n          } else if (nodeStartOffset + node.piece.length \u003e offset) {\n            const nodesToDel = [];\n            let newRightPiece = new Piece(piece.bufferIndex, insertPosInBuffer, piece.end, this.getLineFeedCnt(piece.bufferIndex, insertPosInBuffer, piece.end), this.offsetInBuffer(bufferIndex, piece.end) - this.offsetInBuffer(bufferIndex, insertPosInBuffer));\n            if (this.shouldCheckCRLF() \u0026\u0026 this.endWithCR(value)) {\n              const headOfRight = this.nodeCharCodeAt(node, remainder);\n              if (headOfRight === 10) {\n                const newStart = { line: newRightPiece.start.line + 1, column: 0 };\n                newRightPiece = new Piece(newRightPiece.bufferIndex, newStart, newRightPiece.end, this.getLineFeedCnt(newRightPiece.bufferIndex, newStart, newRightPiece.end), newRightPiece.length - 1);\n                value += \"\\n\";\n              }\n            }\n            if (this.shouldCheckCRLF() \u0026\u0026 this.startWithLF(value)) {\n              const tailOfLeft = this.nodeCharCodeAt(node, remainder - 1);\n              if (tailOfLeft === 13) {\n                const previousPos = this.positionInBuffer(node, remainder - 1);\n                this.deleteNodeTail(node, previousPos);\n                value = \"\\r\" + value;\n                if (node.piece.length === 0) {\n                  nodesToDel.push(node);\n                }\n              } else {\n                this.deleteNodeTail(node, insertPosInBuffer);\n              }\n            } else {\n              this.deleteNodeTail(node, insertPosInBuffer);\n            }\n            const newPieces = this.createNewPieces(value);\n            if (newRightPiece.length \u003e 0) {\n              this.rbInsertRight(node, newRightPiece);\n            }\n            let tmpNode = node;\n            for (let k = 0; k \u003c newPieces.length; k++) {\n              tmpNode = this.rbInsertRight(tmpNode, newPieces[k]);\n            }\n            this.deleteNodes(nodesToDel);\n          } else {\n            this.insertContentToNodeRight(value, node);\n          }\n        } else {\n          const pieces = this.createNewPieces(value);\n          let node = this.rbInsertLeft(null, pieces[0]);\n          for (let k = 1; k \u003c pieces.length; k++) {\n            node = this.rbInsertRight(node, pieces[k]);\n          }\n        }\n        this.computeBufferMetadata();\n      }\n      delete(offset, cnt) {\n        this._lastVisitedLine.lineNumber = 0;\n        this._lastVisitedLine.value = \"\";\n        if (cnt \u003c= 0 || this.root === SENTINEL2) {\n          return;\n        }\n        const startPosition = this.nodeAt(offset);\n        const endPosition = this.nodeAt(offset + cnt);\n        const startNode = startPosition.node;\n        const endNode = endPosition.node;\n        if (startNode === endNode) {\n          const startSplitPosInBuffer2 = this.positionInBuffer(startNode, startPosition.remainder);\n          const endSplitPosInBuffer2 = this.positionInBuffer(startNode, endPosition.remainder);\n          if (startPosition.nodeStartOffset === offset) {\n            if (cnt === startNode.piece.length) {\n              const next = startNode.next();\n              rbDelete(this, startNode);\n              this.validateCRLFWithPrevNode(next);\n              this.computeBufferMetadata();\n              return;\n            }\n            this.deleteNodeHead(startNode, endSplitPosInBuffer2);\n            this._searchCache.validate(offset);\n            this.validateCRLFWithPrevNode(startNode);\n            this.computeBufferMetadata();\n            return;\n          }\n          if (startPosition.nodeStartOffset + startNode.piece.length === offset + cnt) {\n            this.deleteNodeTail(startNode, startSplitPosInBuffer2);\n            this.validateCRLFWithNextNode(startNode);\n            this.computeBufferMetadata();\n            return;\n          }\n          this.shrinkNode(startNode, startSplitPosInBuffer2, endSplitPosInBuffer2);\n          this.computeBufferMetadata();\n          return;\n        }\n        const nodesToDel = [];\n        const startSplitPosInBuffer = this.positionInBuffer(startNode, startPosition.remainder);\n        this.deleteNodeTail(startNode, startSplitPosInBuffer);\n        this._searchCache.validate(offset);\n        if (startNode.piece.length === 0) {\n          nodesToDel.push(startNode);\n        }\n        const endSplitPosInBuffer = this.positionInBuffer(endNode, endPosition.remainder);\n        this.deleteNodeHead(endNode, endSplitPosInBuffer);\n        if (endNode.piece.length === 0) {\n          nodesToDel.push(endNode);\n        }\n        const secondNode = startNode.next();\n        for (let node = secondNode; node !== SENTINEL2 \u0026\u0026 node !== endNode; node = node.next()) {\n          nodesToDel.push(node);\n        }\n        const prev = startNode.piece.length === 0 ? startNode.prev() : startNode;\n        this.deleteNodes(nodesToDel);\n        this.validateCRLFWithNextNode(prev);\n        this.computeBufferMetadata();\n      }\n      insertContentToNodeLeft(value, node) {\n        const nodesToDel = [];\n        if (this.shouldCheckCRLF() \u0026\u0026 this.endWithCR(value) \u0026\u0026 this.startWithLF(node)) {\n          const piece = node.piece;\n          const newStart = { line: piece.start.line + 1, column: 0 };\n          const nPiece = new Piece(piece.bufferIndex, newStart, piece.end, this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end), piece.length - 1);\n          node.piece = nPiece;\n          value += \"\\n\";\n          updateTreeMetadata(this, node, -1, -1);\n          if (node.piece.length === 0) {\n            nodesToDel.push(node);\n          }\n        }\n        const newPieces = this.createNewPieces(value);\n        let newNode = this.rbInsertLeft(node, newPieces[newPieces.length - 1]);\n        for (let k = newPieces.length - 2; k \u003e= 0; k--) {\n          newNode = this.rbInsertLeft(newNode, newPieces[k]);\n        }\n        this.validateCRLFWithPrevNode(newNode);\n        this.deleteNodes(nodesToDel);\n      }\n      insertContentToNodeRight(value, node) {\n        if (this.adjustCarriageReturnFromNext(value, node)) {\n          value += \"\\n\";\n        }\n        const newPieces = this.createNewPieces(value);\n        const newNode = this.rbInsertRight(node, newPieces[0]);\n        let tmpNode = newNode;\n        for (let k = 1; k \u003c newPieces.length; k++) {\n          tmpNode = this.rbInsertRight(tmpNode, newPieces[k]);\n        }\n        this.validateCRLFWithPrevNode(newNode);\n      }\n      positionInBuffer(node, remainder, ret) {\n        const piece = node.piece;\n        const bufferIndex = node.piece.bufferIndex;\n        const lineStarts = this._buffers[bufferIndex].lineStarts;\n        const startOffset = lineStarts[piece.start.line] + piece.start.column;\n        const offset = startOffset + remainder;\n        let low = piece.start.line;\n        let high = piece.end.line;\n        let mid = 0;\n        let midStop = 0;\n        let midStart = 0;\n        while (low \u003c= high) {\n          mid = low + (high - low) / 2 | 0;\n          midStart = lineStarts[mid];\n          if (mid === high) {\n            break;\n          }\n          midStop = lineStarts[mid + 1];\n          if (offset \u003c midStart) {\n            high = mid - 1;\n          } else if (offset \u003e= midStop) {\n            low = mid + 1;\n          } else {\n            break;\n          }\n        }\n        if (ret) {\n          ret.line = mid;\n          ret.column = offset - midStart;\n          return null;\n        }\n        return {\n          line: mid,\n          column: offset - midStart\n        };\n      }\n      getLineFeedCnt(bufferIndex, start, end) {\n        if (end.column === 0) {\n          return end.line - start.line;\n        }\n        const lineStarts = this._buffers[bufferIndex].lineStarts;\n        if (end.line === lineStarts.length - 1) {\n          return end.line - start.line;\n        }\n        const nextLineStartOffset = lineStarts[end.line + 1];\n        const endOffset = lineStarts[end.line] + end.column;\n        if (nextLineStartOffset \u003e endOffset + 1) {\n          return end.line - start.line;\n        }\n        const previousCharOffset = endOffset - 1;\n        const buffer = this._buffers[bufferIndex].buffer;\n        if (buffer.charCodeAt(previousCharOffset) === 13) {\n          return end.line - start.line + 1;\n        } else {\n          return end.line - start.line;\n        }\n      }\n      offsetInBuffer(bufferIndex, cursor) {\n        const lineStarts = this._buffers[bufferIndex].lineStarts;\n        return lineStarts[cursor.line] + cursor.column;\n      }\n      deleteNodes(nodes) {\n        for (let i2 = 0; i2 \u003c nodes.length; i2++) {\n          rbDelete(this, nodes[i2]);\n        }\n      }\n      createNewPieces(text2) {\n        if (text2.length \u003e AverageBufferSize) {\n          const newPieces = [];\n          while (text2.length \u003e AverageBufferSize) {\n            const lastChar = text2.charCodeAt(AverageBufferSize - 1);\n            let splitText;\n            if (lastChar === 13 || lastChar \u003e= 55296 \u0026\u0026 lastChar \u003c= 56319) {\n              splitText = text2.substring(0, AverageBufferSize - 1);\n              text2 = text2.substring(AverageBufferSize - 1);\n            } else {\n              splitText = text2.substring(0, AverageBufferSize);\n              text2 = text2.substring(AverageBufferSize);\n            }\n            const lineStarts3 = createLineStartsFast(splitText);\n            newPieces.push(new Piece(\n              this._buffers.length,\n              /* buffer index */\n              { line: 0, column: 0 },\n              { line: lineStarts3.length - 1, column: splitText.length - lineStarts3[lineStarts3.length - 1] },\n              lineStarts3.length - 1,\n              splitText.length\n            ));\n            this._buffers.push(new StringBuffer(splitText, lineStarts3));\n          }\n          const lineStarts2 = createLineStartsFast(text2);\n          newPieces.push(new Piece(\n            this._buffers.length,\n            /* buffer index */\n            { line: 0, column: 0 },\n            { line: lineStarts2.length - 1, column: text2.length - lineStarts2[lineStarts2.length - 1] },\n            lineStarts2.length - 1,\n            text2.length\n          ));\n          this._buffers.push(new StringBuffer(text2, lineStarts2));\n          return newPieces;\n        }\n        let startOffset = this._buffers[0].buffer.length;\n        const lineStarts = createLineStartsFast(text2, false);\n        let start = this._lastChangeBufferPos;\n        if (this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 1] === startOffset \u0026\u0026 startOffset !== 0 \u0026\u0026 this.startWithLF(text2) \u0026\u0026 this.endWithCR(this._buffers[0].buffer)) {\n          this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line, column: this._lastChangeBufferPos.column + 1 };\n          start = this._lastChangeBufferPos;\n          for (let i2 = 0; i2 \u003c lineStarts.length; i2++) {\n            lineStarts[i2] += startOffset + 1;\n          }\n          this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n          this._buffers[0].buffer += \"_\" + text2;\n          startOffset += 1;\n        } else {\n          if (startOffset !== 0) {\n            for (let i2 = 0; i2 \u003c lineStarts.length; i2++) {\n              lineStarts[i2] += startOffset;\n            }\n          }\n          this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n          this._buffers[0].buffer += text2;\n        }\n        const endOffset = this._buffers[0].buffer.length;\n        const endIndex = this._buffers[0].lineStarts.length - 1;\n        const endColumn = endOffset - this._buffers[0].lineStarts[endIndex];\n        const endPos = { line: endIndex, column: endColumn };\n        const newPiece = new Piece(\n          0,\n          /** todo@peng */\n          start,\n          endPos,\n          this.getLineFeedCnt(0, start, endPos),\n          endOffset - startOffset\n        );\n        this._lastChangeBufferPos = endPos;\n        return [newPiece];\n      }\n      getLineRawContent(lineNumber, endOffset = 0) {\n        let x = this.root;\n        let ret = \"\";\n        const cache = this._searchCache.get2(lineNumber);\n        if (cache) {\n          x = cache.node;\n          const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - cache.nodeStartLineNumber - 1);\n          const buffer = this._buffers[x.piece.bufferIndex].buffer;\n          const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n          if (cache.nodeStartLineNumber + x.piece.lineFeedCnt === lineNumber) {\n            ret = buffer.substring(startOffset + prevAccumulatedValue, startOffset + x.piece.length);\n          } else {\n            const accumulatedValue = this.getAccumulatedValue(x, lineNumber - cache.nodeStartLineNumber);\n            return buffer.substring(startOffset + prevAccumulatedValue, startOffset + accumulatedValue - endOffset);\n          }\n        } else {\n          let nodeStartOffset = 0;\n          const originalLineNumber = lineNumber;\n          while (x !== SENTINEL2) {\n            if (x.left !== SENTINEL2 \u0026\u0026 x.lf_left \u003e= lineNumber - 1) {\n              x = x.left;\n            } else if (x.lf_left + x.piece.lineFeedCnt \u003e lineNumber - 1) {\n              const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n              const accumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 1);\n              const buffer = this._buffers[x.piece.bufferIndex].buffer;\n              const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n              nodeStartOffset += x.size_left;\n              this._searchCache.set({\n                node: x,\n                nodeStartOffset,\n                nodeStartLineNumber: originalLineNumber - (lineNumber - 1 - x.lf_left)\n              });\n              return buffer.substring(startOffset + prevAccumulatedValue, startOffset + accumulatedValue - endOffset);\n            } else if (x.lf_left + x.piece.lineFeedCnt === lineNumber - 1) {\n              const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n              const buffer = this._buffers[x.piece.bufferIndex].buffer;\n              const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n              ret = buffer.substring(startOffset + prevAccumulatedValue, startOffset + x.piece.length);\n              break;\n            } else {\n              lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n              nodeStartOffset += x.size_left + x.piece.length;\n              x = x.right;\n            }\n          }\n        }\n        x = x.next();\n        while (x !== SENTINEL2) {\n          const buffer = this._buffers[x.piece.bufferIndex].buffer;\n          if (x.piece.lineFeedCnt \u003e 0) {\n            const accumulatedValue = this.getAccumulatedValue(x, 0);\n            const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n            ret += buffer.substring(startOffset, startOffset + accumulatedValue - endOffset);\n            return ret;\n          } else {\n            const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n            ret += buffer.substr(startOffset, x.piece.length);\n          }\n          x = x.next();\n        }\n        return ret;\n      }\n      computeBufferMetadata() {\n        let x = this.root;\n        let lfCnt = 1;\n        let len = 0;\n        while (x !== SENTINEL2) {\n          lfCnt += x.lf_left + x.piece.lineFeedCnt;\n          len += x.size_left + x.piece.length;\n          x = x.right;\n        }\n        this._lineCnt = lfCnt;\n        this._length = len;\n        this._searchCache.validate(this._length);\n      }\n      // #region node operations\n      getIndexOf(node, accumulatedValue) {\n        const piece = node.piece;\n        const pos = this.positionInBuffer(node, accumulatedValue);\n        const lineCnt = pos.line - piece.start.line;\n        if (this.offsetInBuffer(piece.bufferIndex, piece.end) - this.offsetInBuffer(piece.bufferIndex, piece.start) === accumulatedValue) {\n          const realLineCnt = this.getLineFeedCnt(node.piece.bufferIndex, piece.start, pos);\n          if (realLineCnt !== lineCnt) {\n            return { index: realLineCnt, remainder: 0 };\n          }\n        }\n        return { index: lineCnt, remainder: pos.column };\n      }\n      getAccumulatedValue(node, index) {\n        if (index \u003c 0) {\n          return 0;\n        }\n        const piece = node.piece;\n        const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n        const expectedLineStartIndex = piece.start.line + index + 1;\n        if (expectedLineStartIndex \u003e piece.end.line) {\n          return lineStarts[piece.end.line] + piece.end.column - lineStarts[piece.start.line] - piece.start.column;\n        } else {\n          return lineStarts[expectedLineStartIndex] - lineStarts[piece.start.line] - piece.start.column;\n        }\n      }\n      deleteNodeTail(node, pos) {\n        const piece = node.piece;\n        const originalLFCnt = piece.lineFeedCnt;\n        const originalEndOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n        const newEnd = pos;\n        const newEndOffset = this.offsetInBuffer(piece.bufferIndex, newEnd);\n        const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, piece.start, newEnd);\n        const lf_delta = newLineFeedCnt - originalLFCnt;\n        const size_delta = newEndOffset - originalEndOffset;\n        const newLength = piece.length + size_delta;\n        node.piece = new Piece(piece.bufferIndex, piece.start, newEnd, newLineFeedCnt, newLength);\n        updateTreeMetadata(this, node, size_delta, lf_delta);\n      }\n      deleteNodeHead(node, pos) {\n        const piece = node.piece;\n        const originalLFCnt = piece.lineFeedCnt;\n        const originalStartOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n        const newStart = pos;\n        const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end);\n        const newStartOffset = this.offsetInBuffer(piece.bufferIndex, newStart);\n        const lf_delta = newLineFeedCnt - originalLFCnt;\n        const size_delta = originalStartOffset - newStartOffset;\n        const newLength = piece.length + size_delta;\n        node.piece = new Piece(piece.bufferIndex, newStart, piece.end, newLineFeedCnt, newLength);\n        updateTreeMetadata(this, node, size_delta, lf_delta);\n      }\n      shrinkNode(node, start, end) {\n        const piece = node.piece;\n        const originalStartPos = piece.start;\n        const originalEndPos = piece.end;\n        const oldLength = piece.length;\n        const oldLFCnt = piece.lineFeedCnt;\n        const newEnd = start;\n        const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, piece.start, newEnd);\n        const newLength = this.offsetInBuffer(piece.bufferIndex, start) - this.offsetInBuffer(piece.bufferIndex, originalStartPos);\n        node.piece = new Piece(piece.bufferIndex, piece.start, newEnd, newLineFeedCnt, newLength);\n        updateTreeMetadata(this, node, newLength - oldLength, newLineFeedCnt - oldLFCnt);\n        const newPiece = new Piece(piece.bufferIndex, end, originalEndPos, this.getLineFeedCnt(piece.bufferIndex, end, originalEndPos), this.offsetInBuffer(piece.bufferIndex, originalEndPos) - this.offsetInBuffer(piece.bufferIndex, end));\n        const newNode = this.rbInsertRight(node, newPiece);\n        this.validateCRLFWithPrevNode(newNode);\n      }\n      appendToNode(node, value) {\n        if (this.adjustCarriageReturnFromNext(value, node)) {\n          value += \"\\n\";\n        }\n        const hitCRLF = this.shouldCheckCRLF() \u0026\u0026 this.startWithLF(value) \u0026\u0026 this.endWithCR(node);\n        const startOffset = this._buffers[0].buffer.length;\n        this._buffers[0].buffer += value;\n        const lineStarts = createLineStartsFast(value, false);\n        for (let i2 = 0; i2 \u003c lineStarts.length; i2++) {\n          lineStarts[i2] += startOffset;\n        }\n        if (hitCRLF) {\n          const prevStartOffset = this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 2];\n          this._buffers[0].lineStarts.pop();\n          this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line - 1, column: startOffset - prevStartOffset };\n        }\n        this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n        const endIndex = this._buffers[0].lineStarts.length - 1;\n        const endColumn = this._buffers[0].buffer.length - this._buffers[0].lineStarts[endIndex];\n        const newEnd = { line: endIndex, column: endColumn };\n        const newLength = node.piece.length + value.length;\n        const oldLineFeedCnt = node.piece.lineFeedCnt;\n        const newLineFeedCnt = this.getLineFeedCnt(0, node.piece.start, newEnd);\n        const lf_delta = newLineFeedCnt - oldLineFeedCnt;\n        node.piece = new Piece(node.piece.bufferIndex, node.piece.start, newEnd, newLineFeedCnt, newLength);\n        this._lastChangeBufferPos = newEnd;\n        updateTreeMetadata(this, node, value.length, lf_delta);\n      }\n      nodeAt(offset) {\n        let x = this.root;\n        const cache = this._searchCache.get(offset);\n        if (cache) {\n          return {\n            node: cache.node,\n            nodeStartOffset: cache.nodeStartOffset,\n            remainder: offset - cache.nodeStartOffset\n          };\n        }\n        let nodeStartOffset = 0;\n        while (x !== SENTINEL2) {\n          if (x.size_left \u003e offset) {\n            x = x.left;\n          } else if (x.size_left + x.piece.length \u003e= offset) {\n            nodeStartOffset += x.size_left;\n            const ret = {\n              node: x,\n              remainder: offset - x.size_left,\n              nodeStartOffset\n            };\n            this._searchCache.set(ret);\n            return ret;\n          } else {\n            offset -= x.size_left + x.piece.length;\n            nodeStartOffset += x.size_left + x.piece.length;\n            x = x.right;\n          }\n        }\n        return null;\n      }\n      nodeAt2(lineNumber, column) {\n        let x = this.root;\n        let nodeStartOffset = 0;\n        while (x !== SENTINEL2) {\n          if (x.left !== SENTINEL2 \u0026\u0026 x.lf_left \u003e= lineNumber - 1) {\n            x = x.left;\n          } else if (x.lf_left + x.piece.lineFeedCnt \u003e lineNumber - 1) {\n            const prevAccumualtedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n            const accumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 1);\n            nodeStartOffset += x.size_left;\n            return {\n              node: x,\n              remainder: Math.min(prevAccumualtedValue + column - 1, accumulatedValue),\n              nodeStartOffset\n            };\n          } else if (x.lf_left + x.piece.lineFeedCnt === lineNumber - 1) {\n            const prevAccumualtedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n            if (prevAccumualtedValue + column - 1 \u003c= x.piece.length) {\n              return {\n                node: x,\n                remainder: prevAccumualtedValue + column - 1,\n                nodeStartOffset\n              };\n            } else {\n              column -= x.piece.length - prevAccumualtedValue;\n              break;\n            }\n          } else {\n            lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n            nodeStartOffset += x.size_left + x.piece.length;\n            x = x.right;\n          }\n        }\n        x = x.next();\n        while (x !== SENTINEL2) {\n          if (x.piece.lineFeedCnt \u003e 0) {\n            const accumulatedValue = this.getAccumulatedValue(x, 0);\n            const nodeStartOffset2 = this.offsetOfNode(x);\n            return {\n              node: x,\n              remainder: Math.min(column - 1, accumulatedValue),\n              nodeStartOffset: nodeStartOffset2\n            };\n          } else {\n            if (x.piece.length \u003e= column - 1) {\n              const nodeStartOffset2 = this.offsetOfNode(x);\n              return {\n                node: x,\n                remainder: column - 1,\n                nodeStartOffset: nodeStartOffset2\n              };\n            } else {\n              column -= x.piece.length;\n            }\n          }\n          x = x.next();\n        }\n        return null;\n      }\n      nodeCharCodeAt(node, offset) {\n        if (node.piece.lineFeedCnt \u003c 1) {\n          return -1;\n        }\n        const buffer = this._buffers[node.piece.bufferIndex];\n        const newOffset = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start) + offset;\n        return buffer.buffer.charCodeAt(newOffset);\n      }\n      offsetOfNode(node) {\n        if (!node) {\n          return 0;\n        }\n        let pos = node.size_left;\n        while (node !== this.root) {\n          if (node.parent.right === node) {\n            pos += node.parent.size_left + node.parent.piece.length;\n          }\n          node = node.parent;\n        }\n        return pos;\n      }\n      // #endregion\n      // #region CRLF\n      shouldCheckCRLF() {\n        return !(this._EOLNormalized \u0026\u0026 this._EOL === \"\\n\");\n      }\n      startWithLF(val) {\n        if (typeof val === \"string\") {\n          return val.charCodeAt(0) === 10;\n        }\n        if (val === SENTINEL2 || val.piece.lineFeedCnt === 0) {\n          return false;\n        }\n        const piece = val.piece;\n        const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n        const line = piece.start.line;\n        const startOffset = lineStarts[line] + piece.start.column;\n        if (line === lineStarts.length - 1) {\n          return false;\n        }\n        const nextLineOffset = lineStarts[line + 1];\n        if (nextLineOffset \u003e startOffset + 1) {\n          return false;\n        }\n        return this._buffers[piece.bufferIndex].buffer.charCodeAt(startOffset) === 10;\n      }\n      endWithCR(val) {\n        if (typeof val === \"string\") {\n          return val.charCodeAt(val.length - 1) === 13;\n        }\n        if (val === SENTINEL2 || val.piece.lineFeedCnt === 0) {\n          return false;\n        }\n        return this.nodeCharCodeAt(val, val.piece.length - 1) === 13;\n      }\n      validateCRLFWithPrevNode(nextNode) {\n        if (this.shouldCheckCRLF() \u0026\u0026 this.startWithLF(nextNode)) {\n          const node = nextNode.prev();\n          if (this.endWithCR(node)) {\n            this.fixCRLF(node, nextNode);\n          }\n        }\n      }\n      validateCRLFWithNextNode(node) {\n        if (this.shouldCheckCRLF() \u0026\u0026 this.endWithCR(node)) {\n          const nextNode = node.next();\n          if (this.startWithLF(nextNode)) {\n            this.fixCRLF(node, nextNode);\n          }\n        }\n      }\n      fixCRLF(prev, next) {\n        const nodesToDel = [];\n        const lineStarts = this._buffers[prev.piece.bufferIndex].lineStarts;\n        let newEnd;\n        if (prev.piece.end.column === 0) {\n          newEnd = { line: prev.piece.end.line - 1, column: lineStarts[prev.piece.end.line] - lineStarts[prev.piece.end.line - 1] - 1 };\n        } else {\n          newEnd = { line: prev.piece.end.line, column: prev.piece.end.column - 1 };\n        }\n        const prevNewLength = prev.piece.length - 1;\n        const prevNewLFCnt = prev.piece.lineFeedCnt - 1;\n        prev.piece = new Piece(prev.piece.bufferIndex, prev.piece.start, newEnd, prevNewLFCnt, prevNewLength);\n        updateTreeMetadata(this, prev, -1, -1);\n        if (prev.piece.length === 0) {\n          nodesToDel.push(prev);\n        }\n        const newStart = { line: next.piece.start.line + 1, column: 0 };\n        const newLength = next.piece.length - 1;\n        const newLineFeedCnt = this.getLineFeedCnt(next.piece.bufferIndex, newStart, next.piece.end);\n        next.piece = new Piece(next.piece.bufferIndex, newStart, next.piece.end, newLineFeedCnt, newLength);\n        updateTreeMetadata(this, next, -1, -1);\n        if (next.piece.length === 0) {\n          nodesToDel.push(next);\n        }\n        const pieces = this.createNewPieces(\"\\r\\n\");\n        this.rbInsertRight(prev, pieces[0]);\n        for (let i2 = 0; i2 \u003c nodesToDel.length; i2++) {\n          rbDelete(this, nodesToDel[i2]);\n        }\n      }\n      adjustCarriageReturnFromNext(value, node) {\n        if (this.shouldCheckCRLF() \u0026\u0026 this.endWithCR(value)) {\n          const nextNode = node.next();\n          if (this.startWithLF(nextNode)) {\n            value += \"\\n\";\n            if (nextNode.piece.length === 1) {\n              rbDelete(this, nextNode);\n            } else {\n              const piece = nextNode.piece;\n              const newStart = { line: piece.start.line + 1, column: 0 };\n              const newLength = piece.length - 1;\n              const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end);\n              nextNode.piece = new Piece(piece.bufferIndex, newStart, piece.end, newLineFeedCnt, newLength);\n              updateTreeMetadata(this, nextNode, -1, -1);\n            }\n            return true;\n          }\n        }\n        return false;\n      }\n      // #endregion\n      // #endregion\n      // #region Tree operations\n      iterate(node, callback) {\n        if (node === SENTINEL2) {\n          return callback(SENTINEL2);\n        }\n        const leftRet = this.iterate(node.left, callback);\n        if (!leftRet) {\n          return leftRet;\n        }\n        return callback(node) \u0026\u0026 this.iterate(node.right, callback);\n      }\n      getNodeContent(node) {\n        if (node === SENTINEL2) {\n          return \"\";\n        }\n        const buffer = this._buffers[node.piece.bufferIndex];\n        const piece = node.piece;\n        const startOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n        const endOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n        const currentContent = buffer.buffer.substring(startOffset, endOffset);\n        return currentContent;\n      }\n      getPieceContent(piece) {\n        const buffer = this._buffers[piece.bufferIndex];\n        const startOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n        const endOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n        const currentContent = buffer.buffer.substring(startOffset, endOffset);\n        return currentContent;\n      }\n      /**\n       *      node              node\n       *     /  \\              /  \\\n       *    a   b    \u003c----   a    b\n       *                         /\n       *                        z\n       */\n      rbInsertRight(node, p) {\n        const z = new TreeNode(\n          p,\n          1\n          /* NodeColor.Red */\n        );\n        z.left = SENTINEL2;\n        z.right = SENTINEL2;\n        z.parent = SENTINEL2;\n        z.size_left = 0;\n        z.lf_left = 0;\n        const x = this.root;\n        if (x === SENTINEL2) {\n          this.root = z;\n          z.color = 0;\n        } else if (node.right === SENTINEL2) {\n          node.right = z;\n          z.parent = node;\n        } else {\n          const nextNode = leftest2(node.right);\n          nextNode.left = z;\n          z.parent = nextNode;\n        }\n        fixInsert(this, z);\n        return z;\n      }\n      /**\n       *      node              node\n       *     /  \\              /  \\\n       *    a   b     ----\u003e   a    b\n       *                       \\\n       *                        z\n       */\n      rbInsertLeft(node, p) {\n        const z = new TreeNode(\n          p,\n          1\n          /* NodeColor.Red */\n        );\n        z.left = SENTINEL2;\n        z.right = SENTINEL2;\n        z.parent = SENTINEL2;\n        z.size_left = 0;\n        z.lf_left = 0;\n        if (this.root === SENTINEL2) {\n          this.root = z;\n          z.color = 0;\n        } else if (node.left === SENTINEL2) {\n          node.left = z;\n          z.parent = node;\n        } else {\n          const prevNode = righttest(node.left);\n          prevNode.right = z;\n          z.parent = prevNode;\n        }\n        fixInsert(this, z);\n        return z;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js\nvar PieceTreeTextBuffer;\nvar init_pieceTreeTextBuffer = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js\"() {\n    init_event();\n    init_strings();\n    init_range();\n    init_model2();\n    init_pieceTreeBase();\n    init_eolCounter();\n    init_textChange();\n    init_lifecycle();\n    PieceTreeTextBuffer = class _PieceTreeTextBuffer extends Disposable {\n      constructor(chunks, BOM, eol, containsRTL2, containsUnusualLineTerminators2, isBasicASCII2, eolNormalized) {\n        super();\n        this._onDidChangeContent = this._register(new Emitter());\n        this._BOM = BOM;\n        this._mightContainNonBasicASCII = !isBasicASCII2;\n        this._mightContainRTL = containsRTL2;\n        this._mightContainUnusualLineTerminators = containsUnusualLineTerminators2;\n        this._pieceTree = new PieceTreeBase(chunks, eol, eolNormalized);\n      }\n      mightContainRTL() {\n        return this._mightContainRTL;\n      }\n      mightContainUnusualLineTerminators() {\n        return this._mightContainUnusualLineTerminators;\n      }\n      resetMightContainUnusualLineTerminators() {\n        this._mightContainUnusualLineTerminators = false;\n      }\n      mightContainNonBasicASCII() {\n        return this._mightContainNonBasicASCII;\n      }\n      getBOM() {\n        return this._BOM;\n      }\n      getEOL() {\n        return this._pieceTree.getEOL();\n      }\n      createSnapshot(preserveBOM) {\n        return this._pieceTree.createSnapshot(preserveBOM ? this._BOM : \"\");\n      }\n      getOffsetAt(lineNumber, column) {\n        return this._pieceTree.getOffsetAt(lineNumber, column);\n      }\n      getPositionAt(offset) {\n        return this._pieceTree.getPositionAt(offset);\n      }\n      getRangeAt(start, length) {\n        const end = start + length;\n        const startPosition = this.getPositionAt(start);\n        const endPosition = this.getPositionAt(end);\n        return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column);\n      }\n      getValueInRange(range2, eol = 0) {\n        if (range2.isEmpty()) {\n          return \"\";\n        }\n        const lineEnding = this._getEndOfLine(eol);\n        return this._pieceTree.getValueInRange(range2, lineEnding);\n      }\n      getValueLengthInRange(range2, eol = 0) {\n        if (range2.isEmpty()) {\n          return 0;\n        }\n        if (range2.startLineNumber === range2.endLineNumber) {\n          return range2.endColumn - range2.startColumn;\n        }\n        const startOffset = this.getOffsetAt(range2.startLineNumber, range2.startColumn);\n        const endOffset = this.getOffsetAt(range2.endLineNumber, range2.endColumn);\n        let eolOffsetCompensation = 0;\n        const desiredEOL = this._getEndOfLine(eol);\n        const actualEOL = this.getEOL();\n        if (desiredEOL.length !== actualEOL.length) {\n          const delta = desiredEOL.length - actualEOL.length;\n          const eolCount = range2.endLineNumber - range2.startLineNumber;\n          eolOffsetCompensation = delta * eolCount;\n        }\n        return endOffset - startOffset + eolOffsetCompensation;\n      }\n      getCharacterCountInRange(range2, eol = 0) {\n        if (this._mightContainNonBasicASCII) {\n          let result = 0;\n          const fromLineNumber = range2.startLineNumber;\n          const toLineNumber = range2.endLineNumber;\n          for (let lineNumber = fromLineNumber; lineNumber \u003c= toLineNumber; lineNumber++) {\n            const lineContent = this.getLineContent(lineNumber);\n            const fromOffset = lineNumber === fromLineNumber ? range2.startColumn - 1 : 0;\n            const toOffset = lineNumber === toLineNumber ? range2.endColumn - 1 : lineContent.length;\n            for (let offset = fromOffset; offset \u003c toOffset; offset++) {\n              if (isHighSurrogate(lineContent.charCodeAt(offset))) {\n                result = result + 1;\n                offset = offset + 1;\n              } else {\n                result = result + 1;\n              }\n            }\n          }\n          result += this._getEndOfLine(eol).length * (toLineNumber - fromLineNumber);\n          return result;\n        }\n        return this.getValueLengthInRange(range2, eol);\n      }\n      getNearestChunk(offset) {\n        return this._pieceTree.getNearestChunk(offset);\n      }\n      getLength() {\n        return this._pieceTree.getLength();\n      }\n      getLineCount() {\n        return this._pieceTree.getLineCount();\n      }\n      getLinesContent() {\n        return this._pieceTree.getLinesContent();\n      }\n      getLineContent(lineNumber) {\n        return this._pieceTree.getLineContent(lineNumber);\n      }\n      getLineCharCode(lineNumber, index) {\n        return this._pieceTree.getLineCharCode(lineNumber, index);\n      }\n      getLineLength(lineNumber) {\n        return this._pieceTree.getLineLength(lineNumber);\n      }\n      getLineFirstNonWhitespaceColumn(lineNumber) {\n        const result = firstNonWhitespaceIndex(this.getLineContent(lineNumber));\n        if (result === -1) {\n          return 0;\n        }\n        return result + 1;\n      }\n      getLineLastNonWhitespaceColumn(lineNumber) {\n        const result = lastNonWhitespaceIndex(this.getLineContent(lineNumber));\n        if (result === -1) {\n          return 0;\n        }\n        return result + 2;\n      }\n      _getEndOfLine(eol) {\n        switch (eol) {\n          case 1:\n            return \"\\n\";\n          case 2:\n            return \"\\r\\n\";\n          case 0:\n            return this.getEOL();\n          default:\n            throw new Error(\"Unknown EOL preference\");\n        }\n      }\n      setEOL(newEOL) {\n        this._pieceTree.setEOL(newEOL);\n      }\n      applyEdits(rawOperations, recordTrimAutoWhitespace, computeUndoEdits) {\n        let mightContainRTL = this._mightContainRTL;\n        let mightContainUnusualLineTerminators = this._mightContainUnusualLineTerminators;\n        let mightContainNonBasicASCII = this._mightContainNonBasicASCII;\n        let canReduceOperations = true;\n        let operations = [];\n        for (let i2 = 0; i2 \u003c rawOperations.length; i2++) {\n          const op = rawOperations[i2];\n          if (canReduceOperations \u0026\u0026 op._isTracked) {\n            canReduceOperations = false;\n          }\n          const validatedRange = op.range;\n          if (op.text) {\n            let textMightContainNonBasicASCII = true;\n            if (!mightContainNonBasicASCII) {\n              textMightContainNonBasicASCII = !isBasicASCII(op.text);\n              mightContainNonBasicASCII = textMightContainNonBasicASCII;\n            }\n            if (!mightContainRTL \u0026\u0026 textMightContainNonBasicASCII) {\n              mightContainRTL = containsRTL(op.text);\n            }\n            if (!mightContainUnusualLineTerminators \u0026\u0026 textMightContainNonBasicASCII) {\n              mightContainUnusualLineTerminators = containsUnusualLineTerminators(op.text);\n            }\n          }\n          let validText = \"\";\n          let eolCount = 0;\n          let firstLineLength = 0;\n          let lastLineLength = 0;\n          if (op.text) {\n            let strEOL;\n            [eolCount, firstLineLength, lastLineLength, strEOL] = countEOL(op.text);\n            const bufferEOL = this.getEOL();\n            const expectedStrEOL = bufferEOL === \"\\r\\n\" ? 2 : 1;\n            if (strEOL === 0 || strEOL === expectedStrEOL) {\n              validText = op.text;\n            } else {\n              validText = op.text.replace(/\\r\\n|\\r|\\n/g, bufferEOL);\n            }\n          }\n          operations[i2] = {\n            sortIndex: i2,\n            identifier: op.identifier || null,\n            range: validatedRange,\n            rangeOffset: this.getOffsetAt(validatedRange.startLineNumber, validatedRange.startColumn),\n            rangeLength: this.getValueLengthInRange(validatedRange),\n            text: validText,\n            eolCount,\n            firstLineLength,\n            lastLineLength,\n            forceMoveMarkers: Boolean(op.forceMoveMarkers),\n            isAutoWhitespaceEdit: op.isAutoWhitespaceEdit || false\n          };\n        }\n        operations.sort(_PieceTreeTextBuffer._sortOpsAscending);\n        let hasTouchingRanges = false;\n        for (let i2 = 0, count = operations.length - 1; i2 \u003c count; i2++) {\n          const rangeEnd = operations[i2].range.getEndPosition();\n          const nextRangeStart = operations[i2 + 1].range.getStartPosition();\n          if (nextRangeStart.isBeforeOrEqual(rangeEnd)) {\n            if (nextRangeStart.isBefore(rangeEnd)) {\n              throw new Error(\"Overlapping ranges are not allowed!\");\n            }\n            hasTouchingRanges = true;\n          }\n        }\n        if (canReduceOperations) {\n          operations = this._reduceOperations(operations);\n        }\n        const reverseRanges = computeUndoEdits || recordTrimAutoWhitespace ? _PieceTreeTextBuffer._getInverseEditRanges(operations) : [];\n        const newTrimAutoWhitespaceCandidates = [];\n        if (recordTrimAutoWhitespace) {\n          for (let i2 = 0; i2 \u003c operations.length; i2++) {\n            const op = operations[i2];\n            const reverseRange = reverseRanges[i2];\n            if (op.isAutoWhitespaceEdit \u0026\u0026 op.range.isEmpty()) {\n              for (let lineNumber = reverseRange.startLineNumber; lineNumber \u003c= reverseRange.endLineNumber; lineNumber++) {\n                let currentLineContent = \"\";\n                if (lineNumber === reverseRange.startLineNumber) {\n                  currentLineContent = this.getLineContent(op.range.startLineNumber);\n                  if (firstNonWhitespaceIndex(currentLineContent) !== -1) {\n                    continue;\n                  }\n                }\n                newTrimAutoWhitespaceCandidates.push({ lineNumber, oldContent: currentLineContent });\n              }\n            }\n          }\n        }\n        let reverseOperations = null;\n        if (computeUndoEdits) {\n          let reverseRangeDeltaOffset = 0;\n          reverseOperations = [];\n          for (let i2 = 0; i2 \u003c operations.length; i2++) {\n            const op = operations[i2];\n            const reverseRange = reverseRanges[i2];\n            const bufferText = this.getValueInRange(op.range);\n            const reverseRangeOffset = op.rangeOffset + reverseRangeDeltaOffset;\n            reverseRangeDeltaOffset += op.text.length - bufferText.length;\n            reverseOperations[i2] = {\n              sortIndex: op.sortIndex,\n              identifier: op.identifier,\n              range: reverseRange,\n              text: bufferText,\n              textChange: new TextChange(op.rangeOffset, bufferText, reverseRangeOffset, op.text)\n            };\n          }\n          if (!hasTouchingRanges) {\n            reverseOperations.sort((a, b) =\u003e a.sortIndex - b.sortIndex);\n          }\n        }\n        this._mightContainRTL = mightContainRTL;\n        this._mightContainUnusualLineTerminators = mightContainUnusualLineTerminators;\n        this._mightContainNonBasicASCII = mightContainNonBasicASCII;\n        const contentChanges = this._doApplyEdits(operations);\n        let trimAutoWhitespaceLineNumbers = null;\n        if (recordTrimAutoWhitespace \u0026\u0026 newTrimAutoWhitespaceCandidates.length \u003e 0) {\n          newTrimAutoWhitespaceCandidates.sort((a, b) =\u003e b.lineNumber - a.lineNumber);\n          trimAutoWhitespaceLineNumbers = [];\n          for (let i2 = 0, len = newTrimAutoWhitespaceCandidates.length; i2 \u003c len; i2++) {\n            const lineNumber = newTrimAutoWhitespaceCandidates[i2].lineNumber;\n            if (i2 \u003e 0 \u0026\u0026 newTrimAutoWhitespaceCandidates[i2 - 1].lineNumber === lineNumber) {\n              continue;\n            }\n            const prevContent = newTrimAutoWhitespaceCandidates[i2].oldContent;\n            const lineContent = this.getLineContent(lineNumber);\n            if (lineContent.length === 0 || lineContent === prevContent || firstNonWhitespaceIndex(lineContent) !== -1) {\n              continue;\n            }\n            trimAutoWhitespaceLineNumbers.push(lineNumber);\n          }\n        }\n        this._onDidChangeContent.fire();\n        return new ApplyEditsResult(reverseOperations, contentChanges, trimAutoWhitespaceLineNumbers);\n      }\n      /**\n       * Transform operations such that they represent the same logic edit,\n       * but that they also do not cause OOM crashes.\n       */\n      _reduceOperations(operations) {\n        if (operations.length \u003c 1e3) {\n          return operations;\n        }\n        return [this._toSingleEditOperation(operations)];\n      }\n      _toSingleEditOperation(operations) {\n        let forceMoveMarkers = false;\n        const firstEditRange = operations[0].range;\n        const lastEditRange = operations[operations.length - 1].range;\n        const entireEditRange = new Range(firstEditRange.startLineNumber, firstEditRange.startColumn, lastEditRange.endLineNumber, lastEditRange.endColumn);\n        let lastEndLineNumber = firstEditRange.startLineNumber;\n        let lastEndColumn = firstEditRange.startColumn;\n        const result = [];\n        for (let i2 = 0, len = operations.length; i2 \u003c len; i2++) {\n          const operation = operations[i2];\n          const range2 = operation.range;\n          forceMoveMarkers = forceMoveMarkers || operation.forceMoveMarkers;\n          result.push(this.getValueInRange(new Range(lastEndLineNumber, lastEndColumn, range2.startLineNumber, range2.startColumn)));\n          if (operation.text.length \u003e 0) {\n            result.push(operation.text);\n          }\n          lastEndLineNumber = range2.endLineNumber;\n          lastEndColumn = range2.endColumn;\n        }\n        const text2 = result.join(\"\");\n        const [eolCount, firstLineLength, lastLineLength] = countEOL(text2);\n        return {\n          sortIndex: 0,\n          identifier: operations[0].identifier,\n          range: entireEditRange,\n          rangeOffset: this.getOffsetAt(entireEditRange.startLineNumber, entireEditRange.startColumn),\n          rangeLength: this.getValueLengthInRange(\n            entireEditRange,\n            0\n            /* EndOfLinePreference.TextDefined */\n          ),\n          text: text2,\n          eolCount,\n          firstLineLength,\n          lastLineLength,\n          forceMoveMarkers,\n          isAutoWhitespaceEdit: false\n        };\n      }\n      _doApplyEdits(operations) {\n        operations.sort(_PieceTreeTextBuffer._sortOpsDescending);\n        const contentChanges = [];\n        for (let i2 = 0; i2 \u003c operations.length; i2++) {\n          const op = operations[i2];\n          const startLineNumber = op.range.startLineNumber;\n          const startColumn = op.range.startColumn;\n          const endLineNumber = op.range.endLineNumber;\n          const endColumn = op.range.endColumn;\n          if (startLineNumber === endLineNumber \u0026\u0026 startColumn === endColumn \u0026\u0026 op.text.length === 0) {\n            continue;\n          }\n          if (op.text) {\n            this._pieceTree.delete(op.rangeOffset, op.rangeLength);\n            this._pieceTree.insert(op.rangeOffset, op.text, true);\n          } else {\n            this._pieceTree.delete(op.rangeOffset, op.rangeLength);\n          }\n          const contentChangeRange = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n          contentChanges.push({\n            range: contentChangeRange,\n            rangeLength: op.rangeLength,\n            text: op.text,\n            rangeOffset: op.rangeOffset,\n            forceMoveMarkers: op.forceMoveMarkers\n          });\n        }\n        return contentChanges;\n      }\n      findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n        return this._pieceTree.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n      }\n      /**\n       * Assumes `operations` are validated and sorted ascending\n       */\n      static _getInverseEditRanges(operations) {\n        const result = [];\n        let prevOpEndLineNumber = 0;\n        let prevOpEndColumn = 0;\n        let prevOp = null;\n        for (let i2 = 0, len = operations.length; i2 \u003c len; i2++) {\n          const op = operations[i2];\n          let startLineNumber;\n          let startColumn;\n          if (prevOp) {\n            if (prevOp.range.endLineNumber === op.range.startLineNumber) {\n              startLineNumber = prevOpEndLineNumber;\n              startColumn = prevOpEndColumn + (op.range.startColumn - prevOp.range.endColumn);\n            } else {\n              startLineNumber = prevOpEndLineNumber + (op.range.startLineNumber - prevOp.range.endLineNumber);\n              startColumn = op.range.startColumn;\n            }\n          } else {\n            startLineNumber = op.range.startLineNumber;\n            startColumn = op.range.startColumn;\n          }\n          let resultRange;\n          if (op.text.length \u003e 0) {\n            const lineCount = op.eolCount + 1;\n            if (lineCount === 1) {\n              resultRange = new Range(startLineNumber, startColumn, startLineNumber, startColumn + op.firstLineLength);\n            } else {\n              resultRange = new Range(startLineNumber, startColumn, startLineNumber + lineCount - 1, op.lastLineLength + 1);\n            }\n          } else {\n            resultRange = new Range(startLineNumber, startColumn, startLineNumber, startColumn);\n          }\n          prevOpEndLineNumber = resultRange.endLineNumber;\n          prevOpEndColumn = resultRange.endColumn;\n          result.push(resultRange);\n          prevOp = op;\n        }\n        return result;\n      }\n      static _sortOpsAscending(a, b) {\n        const r = Range.compareRangesUsingEnds(a.range, b.range);\n        if (r === 0) {\n          return a.sortIndex - b.sortIndex;\n        }\n        return r;\n      }\n      static _sortOpsDescending(a, b) {\n        const r = Range.compareRangesUsingEnds(a.range, b.range);\n        if (r === 0) {\n          return b.sortIndex - a.sortIndex;\n        }\n        return -r;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js\nvar PieceTreeTextBufferFactory, PieceTreeTextBufferBuilder;\nvar init_pieceTreeTextBufferBuilder = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js\"() {\n    init_strings();\n    init_pieceTreeBase();\n    init_pieceTreeTextBuffer();\n    PieceTreeTextBufferFactory = class {\n      constructor(_chunks, _bom, _cr, _lf, _crlf, _containsRTL, _containsUnusualLineTerminators, _isBasicASCII, _normalizeEOL) {\n        this._chunks = _chunks;\n        this._bom = _bom;\n        this._cr = _cr;\n        this._lf = _lf;\n        this._crlf = _crlf;\n        this._containsRTL = _containsRTL;\n        this._containsUnusualLineTerminators = _containsUnusualLineTerminators;\n        this._isBasicASCII = _isBasicASCII;\n        this._normalizeEOL = _normalizeEOL;\n      }\n      _getEOL(defaultEOL) {\n        const totalEOLCount = this._cr + this._lf + this._crlf;\n        const totalCRCount = this._cr + this._crlf;\n        if (totalEOLCount === 0) {\n          return defaultEOL === 1 ? \"\\n\" : \"\\r\\n\";\n        }\n        if (totalCRCount \u003e totalEOLCount / 2) {\n          return \"\\r\\n\";\n        }\n        return \"\\n\";\n      }\n      create(defaultEOL) {\n        const eol = this._getEOL(defaultEOL);\n        const chunks = this._chunks;\n        if (this._normalizeEOL \u0026\u0026 (eol === \"\\r\\n\" \u0026\u0026 (this._cr \u003e 0 || this._lf \u003e 0) || eol === \"\\n\" \u0026\u0026 (this._cr \u003e 0 || this._crlf \u003e 0))) {\n          for (let i2 = 0, len = chunks.length; i2 \u003c len; i2++) {\n            const str = chunks[i2].buffer.replace(/\\r\\n|\\r|\\n/g, eol);\n            const newLineStart = createLineStartsFast(str);\n            chunks[i2] = new StringBuffer(str, newLineStart);\n          }\n        }\n        const textBuffer = new PieceTreeTextBuffer(chunks, this._bom, eol, this._containsRTL, this._containsUnusualLineTerminators, this._isBasicASCII, this._normalizeEOL);\n        return { textBuffer, disposable: textBuffer };\n      }\n    };\n    PieceTreeTextBufferBuilder = class {\n      constructor() {\n        this.chunks = [];\n        this.BOM = \"\";\n        this._hasPreviousChar = false;\n        this._previousChar = 0;\n        this._tmpLineStarts = [];\n        this.cr = 0;\n        this.lf = 0;\n        this.crlf = 0;\n        this.containsRTL = false;\n        this.containsUnusualLineTerminators = false;\n        this.isBasicASCII = true;\n      }\n      acceptChunk(chunk) {\n        if (chunk.length === 0) {\n          return;\n        }\n        if (this.chunks.length === 0) {\n          if (startsWithUTF8BOM(chunk)) {\n            this.BOM = UTF8_BOM_CHARACTER;\n            chunk = chunk.substr(1);\n          }\n        }\n        const lastChar = chunk.charCodeAt(chunk.length - 1);\n        if (lastChar === 13 || lastChar \u003e= 55296 \u0026\u0026 lastChar \u003c= 56319) {\n          this._acceptChunk1(chunk.substr(0, chunk.length - 1), false);\n          this._hasPreviousChar = true;\n          this._previousChar = lastChar;\n        } else {\n          this._acceptChunk1(chunk, false);\n          this._hasPreviousChar = false;\n          this._previousChar = lastChar;\n        }\n      }\n      _acceptChunk1(chunk, allowEmptyStrings) {\n        if (!allowEmptyStrings \u0026\u0026 chunk.length === 0) {\n          return;\n        }\n        if (this._hasPreviousChar) {\n          this._acceptChunk2(String.fromCharCode(this._previousChar) + chunk);\n        } else {\n          this._acceptChunk2(chunk);\n        }\n      }\n      _acceptChunk2(chunk) {\n        const lineStarts = createLineStarts(this._tmpLineStarts, chunk);\n        this.chunks.push(new StringBuffer(chunk, lineStarts.lineStarts));\n        this.cr += lineStarts.cr;\n        this.lf += lineStarts.lf;\n        this.crlf += lineStarts.crlf;\n        if (!lineStarts.isBasicASCII) {\n          this.isBasicASCII = false;\n          if (!this.containsRTL) {\n            this.containsRTL = containsRTL(chunk);\n          }\n          if (!this.containsUnusualLineTerminators) {\n            this.containsUnusualLineTerminators = containsUnusualLineTerminators(chunk);\n          }\n        }\n      }\n      finish(normalizeEOL = true) {\n        this._finish();\n        return new PieceTreeTextBufferFactory(this.chunks, this.BOM, this.cr, this.lf, this.crlf, this.containsRTL, this.containsUnusualLineTerminators, this.isBasicASCII, normalizeEOL);\n      }\n      _finish() {\n        if (this.chunks.length === 0) {\n          this._acceptChunk1(\"\", true);\n        }\n        if (this._hasPreviousChar) {\n          this._hasPreviousChar = false;\n          const lastChunk = this.chunks[this.chunks.length - 1];\n          lastChunk.buffer += String.fromCharCode(this._previousChar);\n          const newLineStarts = createLineStartsFast(lastChunk.buffer);\n          lastChunk.lineStarts = newLineStarts;\n          if (this._previousChar === 13) {\n            this.cr++;\n          }\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/abstractSyntaxTokenBackend.js\nvar AttachedViews, AttachedViewState, AttachedViewImpl, AttachedViewHandler, AbstractSyntaxTokenBackend;\nvar init_abstractSyntaxTokenBackend = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/abstractSyntaxTokenBackend.js\"() {\n    init_arrays();\n    init_async();\n    init_event();\n    init_lifecycle();\n    init_lineRange();\n    init_observable();\n    init_equals();\n    AttachedViews = class {\n      constructor() {\n        this._onDidChangeVisibleRanges = new Emitter();\n        this.onDidChangeVisibleRanges = this._onDidChangeVisibleRanges.event;\n        this._views = /* @__PURE__ */ new Set();\n        this._viewsChanged = observableSignal(this);\n        this.visibleLineRanges = derivedOpts({\n          owner: this,\n          equalsFn: itemsEquals(itemEquals())\n        }, (reader) =\u003e {\n          this._viewsChanged.read(reader);\n          const ranges = LineRange.joinMany([...this._views].map((view) =\u003e view.state.read(reader)?.visibleLineRanges ?? []));\n          return ranges;\n        });\n      }\n      attachView() {\n        const view = new AttachedViewImpl((state) =\u003e {\n          this._onDidChangeVisibleRanges.fire({ view, state });\n        });\n        this._views.add(view);\n        this._viewsChanged.trigger(void 0);\n        return view;\n      }\n      detachView(view) {\n        this._views.delete(view);\n        this._onDidChangeVisibleRanges.fire({ view, state: void 0 });\n        this._viewsChanged.trigger(void 0);\n      }\n    };\n    AttachedViewState = class {\n      constructor(visibleLineRanges, stabilized) {\n        this.visibleLineRanges = visibleLineRanges;\n        this.stabilized = stabilized;\n      }\n      equals(other) {\n        if (this === other) {\n          return true;\n        }\n        if (!equals(this.visibleLineRanges, other.visibleLineRanges, (a, b) =\u003e a.equals(b))) {\n          return false;\n        }\n        if (this.stabilized !== other.stabilized) {\n          return false;\n        }\n        return true;\n      }\n    };\n    AttachedViewImpl = class {\n      get state() {\n        return this._state;\n      }\n      constructor(handleStateChange) {\n        this.handleStateChange = handleStateChange;\n        this._state = observableValueOpts({ owner: this, equalsFn: equalsIfDefined((a, b) =\u003e a.equals(b)) }, void 0);\n      }\n      setVisibleLines(visibleLines, stabilized) {\n        const visibleLineRanges = visibleLines.map((line) =\u003e new LineRange(line.startLineNumber, line.endLineNumber + 1));\n        const state = new AttachedViewState(visibleLineRanges, stabilized);\n        this._state.set(state, void 0, void 0);\n        this.handleStateChange(state);\n      }\n    };\n    AttachedViewHandler = class extends Disposable {\n      get lineRanges() {\n        return this._lineRanges;\n      }\n      constructor(_refreshTokens) {\n        super();\n        this._refreshTokens = _refreshTokens;\n        this.runner = this._register(new RunOnceScheduler(() =\u003e this.update(), 50));\n        this._computedLineRanges = [];\n        this._lineRanges = [];\n      }\n      update() {\n        if (equals(this._computedLineRanges, this._lineRanges, (a, b) =\u003e a.equals(b))) {\n          return;\n        }\n        this._computedLineRanges = this._lineRanges;\n        this._refreshTokens();\n      }\n      handleStateChange(state) {\n        this._lineRanges = state.visibleLineRanges;\n        if (state.stabilized) {\n          this.runner.cancel();\n          this.update();\n        } else {\n          this.runner.schedule();\n        }\n      }\n    };\n    AbstractSyntaxTokenBackend = class extends Disposable {\n      get backgroundTokenizationState() {\n        return this._backgroundTokenizationState;\n      }\n      constructor(_languageIdCodec, _textModel) {\n        super();\n        this._languageIdCodec = _languageIdCodec;\n        this._textModel = _textModel;\n        this._onDidChangeTokens = this._register(new Emitter());\n        this.onDidChangeTokens = this._onDidChangeTokens.event;\n      }\n      tokenizeIfCheap(lineNumber) {\n        if (this.isCheapToTokenize(lineNumber)) {\n          this.forceTokenization(lineNumber);\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/cursorUtils.js\nfunction gotoNextSibling(newCursor, oldCursor) {\n  const n2 = newCursor.gotoNextSibling();\n  const o = oldCursor.gotoNextSibling();\n  if (n2 !== o) {\n    throw new Error(\"Trees are out of sync\");\n  }\n  return n2 \u0026\u0026 o;\n}\nfunction gotoParent(newCursor, oldCursor) {\n  const n2 = newCursor.gotoParent();\n  const o = oldCursor.gotoParent();\n  if (n2 !== o) {\n    throw new Error(\"Trees are out of sync\");\n  }\n  return n2 \u0026\u0026 o;\n}\nfunction gotoNthChild(newCursor, oldCursor, index) {\n  const n2 = newCursor.gotoFirstChild();\n  const o = oldCursor.gotoFirstChild();\n  if (n2 !== o) {\n    throw new Error(\"Trees are out of sync\");\n  }\n  if (index === 0) {\n    return n2 \u0026\u0026 o;\n  }\n  for (let i2 = 1; i2 \u003c= index; i2++) {\n    const nn = newCursor.gotoNextSibling();\n    const oo = oldCursor.gotoNextSibling();\n    if (nn !== oo) {\n      throw new Error(\"Trees are out of sync\");\n    }\n    if (!nn || !oo) {\n      return false;\n    }\n  }\n  return n2 \u0026\u0026 o;\n}\nfunction nextSiblingOrParentSibling(newCursor, oldCursor) {\n  do {\n    if (newCursor.currentNode.nextSibling) {\n      return gotoNextSibling(newCursor, oldCursor);\n    }\n    if (newCursor.currentNode.parent) {\n      gotoParent(newCursor, oldCursor);\n    }\n  } while (newCursor.currentNode.nextSibling || newCursor.currentNode.parent);\n  return false;\n}\nfunction getClosestPreviousNodes(cursor, tree) {\n  const findPrev = tree.walk();\n  findPrev.resetTo(cursor);\n  const startingNode = cursor.currentNode;\n  do {\n    if (findPrev.currentNode.previousSibling \u0026\u0026 findPrev.currentNode.endIndex - findPrev.currentNode.startIndex !== 0) {\n      findPrev.gotoPreviousSibling();\n    } else {\n      while (!findPrev.currentNode.previousSibling \u0026\u0026 findPrev.currentNode.parent) {\n        findPrev.gotoParent();\n      }\n      findPrev.gotoPreviousSibling();\n    }\n  } while (findPrev.currentNode.endIndex \u003e startingNode.startIndex \u0026\u0026 (findPrev.currentNode.parent || findPrev.currentNode.previousSibling) \u0026\u0026 findPrev.currentNode.id !== startingNode.id);\n  if (findPrev.currentNode.id !== startingNode.id \u0026\u0026 findPrev.currentNode.endIndex \u003c= startingNode.startIndex) {\n    return findPrev.currentNode;\n  } else {\n    return void 0;\n  }\n}\nvar init_cursorUtils = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/cursorUtils.js\"() {\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/treeSitterTree.js\nfunction newTimeOutProgressCallback() {\n  let lastYieldTime = performance.now();\n  return function parseProgressCallback(_state) {\n    const now = performance.now();\n    if (now - lastYieldTime \u003e 50) {\n      lastYieldTime = now;\n      return true;\n    }\n    return false;\n  };\n}\nfunction rangesEqual(a, b) {\n  return a.startPosition.row === b.startPosition.row \u0026\u0026 a.startPosition.column === b.startPosition.column \u0026\u0026 a.endPosition.row === b.endPosition.row \u0026\u0026 a.endPosition.column === b.endPosition.column \u0026\u0026 a.startIndex === b.startIndex \u0026\u0026 a.endIndex === b.endIndex;\n}\nfunction rangesIntersect(a, b) {\n  return a.startIndex \u003c= b.startIndex \u0026\u0026 a.endIndex \u003e= b.startIndex || b.startIndex \u003c= a.startIndex \u0026\u0026 b.endIndex \u003e= a.startIndex;\n}\nvar __decorate21, __param19, TreeSitterTree;\nvar init_treeSitterTree = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/treeSitterTree.js\"() {\n    init_async();\n    init_lifecycle();\n    init_observable();\n    init_platform();\n    init_log();\n    init_telemetry();\n    init_textLength();\n    init_cursorUtils();\n    init_range();\n    __decorate21 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param19 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    TreeSitterTree = class TreeSitterTree2 extends Disposable {\n      constructor(languageId, _ranges, _parser, _parserClass, textModel, _logService, _telemetryService) {\n        super();\n        this.languageId = languageId;\n        this._ranges = _ranges;\n        this._parser = _parser;\n        this._parserClass = _parserClass;\n        this.textModel = textModel;\n        this._logService = _logService;\n        this._telemetryService = _telemetryService;\n        this._tree = observableValue(this, void 0);\n        this.tree = this._tree;\n        this._treeLastParsedVersion = observableValue(this, -1);\n        this.treeLastParsedVersion = this._treeLastParsedVersion;\n        this._onDidChangeContentQueue = new TaskQueue();\n        this._tree = observableValue(this, void 0);\n        this.tree = this._tree;\n        this._register(toDisposable(() =\u003e {\n          this._tree.get()?.delete();\n          this._lastFullyParsed?.delete();\n          this._lastFullyParsedWithEdits?.delete();\n          this._parser.delete();\n        }));\n        this.handleContentChange(void 0, this._ranges);\n      }\n      handleContentChange(e, ranges) {\n        const version = this.textModel.getVersionId();\n        let newRanges = [];\n        if (ranges) {\n          newRanges = this._setRanges(ranges);\n        }\n        if (e) {\n          this._applyEdits(e.changes);\n        }\n        this._onDidChangeContentQueue.clearPending();\n        this._onDidChangeContentQueue.schedule(async () =\u003e {\n          if (this._store.isDisposed) {\n            return;\n          }\n          const oldTree = this._lastFullyParsed;\n          let changedNodes;\n          if (this._lastFullyParsedWithEdits \u0026\u0026 this._lastFullyParsed) {\n            changedNodes = this._findChangedNodes(this._lastFullyParsedWithEdits, this._lastFullyParsed);\n          }\n          const completed = await this._parseAndUpdateTree(version);\n          if (completed) {\n            let ranges2;\n            if (!changedNodes) {\n              if (this._ranges) {\n                ranges2 = this._ranges.map((r) =\u003e ({ newRange: new Range(r.startPosition.row + 1, r.startPosition.column + 1, r.endPosition.row + 1, r.endPosition.column + 1), oldRangeLength: r.endIndex - r.startIndex, newRangeStartOffset: r.startIndex, newRangeEndOffset: r.endIndex }));\n              }\n            } else if (oldTree \u0026\u0026 changedNodes) {\n              ranges2 = this._findTreeChanges(completed, changedNodes, newRanges);\n            }\n            if (!ranges2) {\n              ranges2 = [{ newRange: this.textModel.getFullModelRange(), newRangeStartOffset: 0, newRangeEndOffset: this.textModel.getValueLength() }];\n            }\n            const previousTree = this._tree.get();\n            transaction((tx) =\u003e {\n              this._tree.set(completed, tx, { ranges: ranges2, versionId: version });\n              this._treeLastParsedVersion.set(version, tx);\n            });\n            previousTree?.delete();\n          }\n        });\n      }\n      _applyEdits(changes) {\n        for (const change of changes) {\n          const originalTextLength = TextLength.ofRange(Range.lift(change.range));\n          const newTextLength = TextLength.ofText(change.text);\n          const summedTextLengths = change.text.length === 0 ? newTextLength : originalTextLength.add(newTextLength);\n          const edit2 = {\n            startIndex: change.rangeOffset,\n            oldEndIndex: change.rangeOffset + change.rangeLength,\n            newEndIndex: change.rangeOffset + change.text.length,\n            startPosition: { row: change.range.startLineNumber - 1, column: change.range.startColumn - 1 },\n            oldEndPosition: { row: change.range.endLineNumber - 1, column: change.range.endColumn - 1 },\n            newEndPosition: { row: change.range.startLineNumber + summedTextLengths.lineCount - 1, column: summedTextLengths.lineCount ? summedTextLengths.columnCount : change.range.endColumn + summedTextLengths.columnCount }\n          };\n          this._tree.get()?.edit(edit2);\n          this._lastFullyParsedWithEdits?.edit(edit2);\n        }\n      }\n      _findChangedNodes(newTree, oldTree) {\n        if (this._ranges \u0026\u0026 this._ranges.every((range2) =\u003e range2.startPosition.row !== newTree.rootNode.startPosition.row) || newTree.rootNode.startPosition.row !== 0) {\n          return [];\n        }\n        const newCursor = newTree.walk();\n        const oldCursor = oldTree.walk();\n        const nodes = [];\n        let next = true;\n        do {\n          if (newCursor.currentNode.hasChanges) {\n            const newChildren = newCursor.currentNode.children;\n            const indexChangedChildren = [];\n            const changedChildren = newChildren.filter((c, index) =\u003e {\n              if (c?.hasChanges || oldCursor.currentNode.children.length \u003c= index) {\n                indexChangedChildren.push(index);\n                return true;\n              }\n              return false;\n            });\n            if (changedChildren.length === 0 || newCursor.currentNode.hasError !== oldCursor.currentNode.hasError) {\n              while (newCursor.currentNode.parent \u0026\u0026 next \u0026\u0026 !newCursor.currentNode.isNamed) {\n                next = gotoParent(newCursor, oldCursor);\n              }\n              const newNode = newCursor.currentNode;\n              const closestPreviousNode = getClosestPreviousNodes(newCursor, newTree) ?? newNode;\n              nodes.push({\n                startIndex: closestPreviousNode.startIndex,\n                endIndex: newNode.endIndex,\n                startPosition: closestPreviousNode.startPosition,\n                endPosition: newNode.endPosition\n              });\n              next = nextSiblingOrParentSibling(newCursor, oldCursor);\n            } else if (changedChildren.length \u003e= 1) {\n              next = gotoNthChild(newCursor, oldCursor, indexChangedChildren[0]);\n            }\n          } else {\n            next = nextSiblingOrParentSibling(newCursor, oldCursor);\n          }\n        } while (next);\n        newCursor.delete();\n        oldCursor.delete();\n        return nodes;\n      }\n      _findTreeChanges(newTree, changedNodes, newRanges) {\n        let newRangeIndex = 0;\n        const mergedChanges = [];\n        for (let nodeIndex = 0; nodeIndex \u003c changedNodes.length; nodeIndex++) {\n          const node = changedNodes[nodeIndex];\n          if (mergedChanges.length \u003e 0) {\n            if (node.startIndex \u003e= mergedChanges[mergedChanges.length - 1].newRangeStartOffset \u0026\u0026 node.endIndex \u003c= mergedChanges[mergedChanges.length - 1].newRangeEndOffset) {\n              continue;\n            }\n          }\n          const cursor = newTree.walk();\n          const cursorContainersNode = () =\u003e cursor.startIndex \u003c node.startIndex \u0026\u0026 cursor.endIndex \u003e node.endIndex;\n          while (cursorContainersNode()) {\n            let child = cursor.gotoFirstChild();\n            let foundChild = false;\n            while (child) {\n              if (cursorContainersNode() \u0026\u0026 cursor.currentNode.isNamed) {\n                foundChild = true;\n                break;\n              } else {\n                child = cursor.gotoNextSibling();\n              }\n            }\n            if (!foundChild) {\n              cursor.gotoParent();\n              break;\n            }\n            if (cursor.currentNode.childCount === 0) {\n              break;\n            }\n          }\n          const startPosition = cursor.currentNode.startPosition;\n          const endPosition = cursor.currentNode.endPosition;\n          const startIndex = cursor.currentNode.startIndex;\n          const endIndex = cursor.currentNode.endIndex;\n          const newChange = { newRange: new Range(startPosition.row + 1, startPosition.column + 1, endPosition.row + 1, endPosition.column + 1), newRangeStartOffset: startIndex, newRangeEndOffset: endIndex };\n          if (newRangeIndex \u003c newRanges.length \u0026\u0026 rangesIntersect(newRanges[newRangeIndex], { startIndex, endIndex, startPosition, endPosition })) {\n            if (newRanges[newRangeIndex].startIndex \u003c newChange.newRangeStartOffset) {\n              newChange.newRange = newChange.newRange.setStartPosition(newRanges[newRangeIndex].startPosition.row + 1, newRanges[newRangeIndex].startPosition.column + 1);\n              newChange.newRangeStartOffset = newRanges[newRangeIndex].startIndex;\n            }\n            if (newRanges[newRangeIndex].endIndex \u003e newChange.newRangeEndOffset) {\n              newChange.newRange = newChange.newRange.setEndPosition(newRanges[newRangeIndex].endPosition.row + 1, newRanges[newRangeIndex].endPosition.column + 1);\n              newChange.newRangeEndOffset = newRanges[newRangeIndex].endIndex;\n            }\n            newRangeIndex++;\n          } else if (newRangeIndex \u003c newRanges.length \u0026\u0026 newRanges[newRangeIndex].endIndex \u003c newChange.newRangeStartOffset) {\n            mergedChanges.push({\n              newRange: new Range(newRanges[newRangeIndex].startPosition.row + 1, newRanges[newRangeIndex].startPosition.column + 1, newRanges[newRangeIndex].endPosition.row + 1, newRanges[newRangeIndex].endPosition.column + 1),\n              newRangeStartOffset: newRanges[newRangeIndex].startIndex,\n              newRangeEndOffset: newRanges[newRangeIndex].endIndex\n            });\n          }\n          if (mergedChanges.length \u003e 0 \u0026\u0026 mergedChanges[mergedChanges.length - 1].newRangeEndOffset \u003e= newChange.newRangeStartOffset) {\n            mergedChanges[mergedChanges.length - 1].newRange = Range.fromPositions(mergedChanges[mergedChanges.length - 1].newRange.getStartPosition(), newChange.newRange.getEndPosition());\n            mergedChanges[mergedChanges.length - 1].newRangeEndOffset = newChange.newRangeEndOffset;\n          } else {\n            mergedChanges.push(newChange);\n          }\n        }\n        return this._constrainRanges(mergedChanges);\n      }\n      _constrainRanges(changes) {\n        if (!this._ranges) {\n          return changes;\n        }\n        const constrainedChanges = [];\n        let changesIndex = 0;\n        let rangesIndex = 0;\n        while (changesIndex \u003c changes.length \u0026\u0026 rangesIndex \u003c this._ranges.length) {\n          const change = changes[changesIndex];\n          const range2 = this._ranges[rangesIndex];\n          if (change.newRangeEndOffset \u003c range2.startIndex) {\n            changesIndex++;\n          } else if (change.newRangeStartOffset \u003e range2.endIndex) {\n            rangesIndex++;\n          } else {\n            const newRangeStartOffset = Math.max(change.newRangeStartOffset, range2.startIndex);\n            const newRangeEndOffset = Math.min(change.newRangeEndOffset, range2.endIndex);\n            const newRange = change.newRange.intersectRanges(new Range(range2.startPosition.row + 1, range2.startPosition.column + 1, range2.endPosition.row + 1, range2.endPosition.column + 1));\n            constrainedChanges.push({\n              newRange,\n              newRangeEndOffset,\n              newRangeStartOffset\n            });\n            if (newRangeEndOffset \u003c change.newRangeEndOffset) {\n              change.newRange = Range.fromPositions(newRange.getEndPosition(), change.newRange.getEndPosition());\n              change.newRangeStartOffset = newRangeEndOffset + 1;\n            } else {\n              changesIndex++;\n            }\n          }\n        }\n        return constrainedChanges;\n      }\n      async _parseAndUpdateTree(version) {\n        const tree = await this._parse();\n        if (tree) {\n          this._lastFullyParsed?.delete();\n          this._lastFullyParsed = tree.copy();\n          this._lastFullyParsedWithEdits?.delete();\n          this._lastFullyParsedWithEdits = tree.copy();\n          return tree;\n        } else if (!this._tree.get()) {\n          this._parser.reset();\n        }\n        return void 0;\n      }\n      _parse() {\n        let parseType = \"fullParse\";\n        if (this._tree.get()) {\n          parseType = \"incrementalParse\";\n        }\n        return this._parseAndYield(parseType);\n      }\n      async _parseAndYield(parseType) {\n        let time = 0;\n        let passes = 0;\n        const inProgressVersion = this.textModel.getVersionId();\n        let newTree;\n        const progressCallback = newTimeOutProgressCallback();\n        do {\n          const timer = performance.now();\n          newTree = this._parser.parse((index, position) =\u003e this._parseCallback(index), this._tree.get(), { progressCallback, includedRanges: this._ranges });\n          time += performance.now() - timer;\n          passes++;\n          await new Promise((resolve3) =\u003e setTimeout0(resolve3));\n        } while (!this._store.isDisposed \u0026\u0026 !newTree \u0026\u0026 inProgressVersion === this.textModel.getVersionId());\n        this._sendParseTimeTelemetry(parseType, time, passes);\n        return newTree \u0026\u0026 inProgressVersion === this.textModel.getVersionId() ? newTree : void 0;\n      }\n      _parseCallback(index) {\n        try {\n          return this.textModel.getTextBuffer().getNearestChunk(index);\n        } catch (e) {\n          this._logService.debug(\"Error getting chunk for tree-sitter parsing\", e);\n        }\n        return void 0;\n      }\n      _setRanges(newRanges) {\n        const unKnownRanges = [];\n        if (this._ranges) {\n          for (const newRange of newRanges) {\n            let isFullyIncluded = false;\n            for (let i2 = 0; i2 \u003c this._ranges.length; i2++) {\n              const existingRange = this._ranges[i2];\n              if (rangesEqual(existingRange, newRange) || rangesIntersect(existingRange, newRange)) {\n                isFullyIncluded = true;\n                break;\n              }\n            }\n            if (!isFullyIncluded) {\n              unKnownRanges.push(newRange);\n            }\n          }\n        } else {\n          unKnownRanges.push(...newRanges);\n        }\n        this._ranges = newRanges;\n        return unKnownRanges;\n      }\n      _sendParseTimeTelemetry(parseType, time, passes) {\n        this._logService.debug(`Tree parsing (${parseType}) took ${time} ms and ${passes} passes.`);\n        if (parseType === \"fullParse\") {\n          this._telemetryService.publicLog2(`treeSitter.fullParse`, { languageId: this.languageId, time, passes });\n        } else {\n          this._telemetryService.publicLog2(`treeSitter.incrementalParse`, { languageId: this.languageId, time, passes });\n        }\n      }\n      createParsedTreeSync(src) {\n        const parser2 = new this._parserClass();\n        parser2.setLanguage(this._parser.language);\n        const tree = parser2.parse(src);\n        parser2.delete();\n        return tree ?? void 0;\n      }\n    };\n    TreeSitterTree = __decorate21([\n      __param19(5, ILogService),\n      __param19(6, ITelemetryService)\n    ], TreeSitterTree);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/nullTokenize.js\nfunction nullTokenize(languageId, state) {\n  return new TokenizationResult([new Token(0, \"\", languageId)], state);\n}\nfunction nullTokenizeEncoded(languageId, state) {\n  const tokens = new Uint32Array(2);\n  tokens[0] = 0;\n  tokens[1] = (languageId \u003c\u003c 0 | 0 \u003c\u003c 8 | 0 \u003c\u003c 11 | 1 \u003c\u003c 15 | 2 \u003c\u003c 24) \u003e\u003e\u003e 0;\n  return new EncodedTokenizationResult(tokens, state === null ? NullState : state);\n}\nvar NullState;\nvar init_nullTokenize = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/nullTokenize.js\"() {\n    init_languages();\n    NullState = new class {\n      clone() {\n        return this;\n      }\n      equals(other) {\n        return this === other;\n      }\n    }();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/fixedArray.js\nfunction arrayFill(length, value) {\n  const arr = [];\n  for (let i2 = 0; i2 \u003c length; i2++) {\n    arr[i2] = value;\n  }\n  return arr;\n}\nvar FixedArray;\nvar init_fixedArray = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/fixedArray.js\"() {\n    init_arrays();\n    FixedArray = class {\n      constructor(_default) {\n        this._default = _default;\n        this._store = [];\n      }\n      get(index) {\n        if (index \u003c this._store.length) {\n          return this._store[index];\n        }\n        return this._default;\n      }\n      set(index, value) {\n        while (index \u003e= this._store.length) {\n          this._store[this._store.length] = this._default;\n        }\n        this._store[index] = value;\n      }\n      replace(index, oldLength, newLength) {\n        if (index \u003e= this._store.length) {\n          return;\n        }\n        if (oldLength === 0) {\n          this.insert(index, newLength);\n          return;\n        } else if (newLength === 0) {\n          this.delete(index, oldLength);\n          return;\n        }\n        const before = this._store.slice(0, index);\n        const after2 = this._store.slice(index + oldLength);\n        const insertArr = arrayFill(newLength, this._default);\n        this._store = before.concat(insertArr, after2);\n      }\n      delete(deleteIndex, deleteCount) {\n        if (deleteCount === 0 || deleteIndex \u003e= this._store.length) {\n          return;\n        }\n        this._store.splice(deleteIndex, deleteCount);\n      }\n      insert(insertIndex, insertCount) {\n        if (insertCount === 0 || insertIndex \u003e= this._store.length) {\n          return;\n        }\n        const arr = [];\n        for (let i2 = 0; i2 \u003c insertCount; i2++) {\n          arr[i2] = this._default;\n        }\n        this._store = arrayInsert(this._store, insertIndex, arr);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousMultilineTokens.js\nvar ContiguousMultilineTokens;\nvar init_contiguousMultilineTokens = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousMultilineTokens.js\"() {\n    ContiguousMultilineTokens = class {\n      /**\n       * (Inclusive) start line number for these tokens.\n       */\n      get startLineNumber() {\n        return this._startLineNumber;\n      }\n      /**\n       * (Inclusive) end line number for these tokens.\n       */\n      get endLineNumber() {\n        return this._startLineNumber + this._tokens.length - 1;\n      }\n      constructor(startLineNumber, tokens) {\n        this._startLineNumber = startLineNumber;\n        this._tokens = tokens;\n      }\n      /**\n       * @see {@link _tokens}\n       */\n      getLineTokens(lineNumber) {\n        return this._tokens[lineNumber - this._startLineNumber];\n      }\n      appendLineTokens(lineTokens) {\n        this._tokens.push(lineTokens);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousMultilineTokensBuilder.js\nvar ContiguousMultilineTokensBuilder;\nvar init_contiguousMultilineTokensBuilder = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousMultilineTokensBuilder.js\"() {\n    init_contiguousMultilineTokens();\n    ContiguousMultilineTokensBuilder = class {\n      constructor() {\n        this._tokens = [];\n      }\n      add(lineNumber, lineTokens) {\n        if (this._tokens.length \u003e 0) {\n          const last = this._tokens[this._tokens.length - 1];\n          if (last.endLineNumber + 1 === lineNumber) {\n            last.appendLineTokens(lineTokens);\n            return;\n          }\n        }\n        this._tokens.push(new ContiguousMultilineTokens(lineNumber, [lineTokens]));\n      }\n      finalize() {\n        return this._tokens;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelTokens.js\nfunction findLikelyRelevantLines(model, lineNumber, store) {\n  let nonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);\n  const likelyRelevantLines = [];\n  let initialState = null;\n  for (let i2 = lineNumber - 1; nonWhitespaceColumn \u003e 1 \u0026\u0026 i2 \u003e= 1; i2--) {\n    const newNonWhitespaceIndex = model.getLineFirstNonWhitespaceColumn(i2);\n    if (newNonWhitespaceIndex === 0) {\n      continue;\n    }\n    if (newNonWhitespaceIndex \u003c nonWhitespaceColumn) {\n      likelyRelevantLines.push(model.getLineContent(i2));\n      nonWhitespaceColumn = newNonWhitespaceIndex;\n      initialState = store?.getStartState(i2);\n      if (initialState) {\n        break;\n      }\n    }\n  }\n  likelyRelevantLines.reverse();\n  return { likelyRelevantLines, initialState: initialState ?? void 0 };\n}\nfunction safeTokenize(languageIdCodec, languageId, tokenizationSupport, text2, hasEOL, state) {\n  let r = null;\n  if (tokenizationSupport) {\n    try {\n      r = tokenizationSupport.tokenizeEncoded(text2, hasEOL, state.clone());\n    } catch (e) {\n      onUnexpectedError(e);\n    }\n  }\n  if (!r) {\n    r = nullTokenizeEncoded(languageIdCodec.encodeLanguageId(languageId), state);\n  }\n  LineTokens.convertToEndOffset(r.tokens, text2.length);\n  return r;\n}\nvar TokenizerWithStateStore, TokenizerWithStateStoreAndTextModel, TrackingTokenizationStateStore, TokenizationStateStore, RangePriorityQueueImpl, DefaultBackgroundTokenizer;\nvar init_textModelTokens = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelTokens.js\"() {\n    init_async();\n    init_errors();\n    init_platform();\n    init_stopwatch();\n    init_eolCounter();\n    init_lineRange();\n    init_offsetRange();\n    init_nullTokenize();\n    init_fixedArray();\n    init_contiguousMultilineTokensBuilder();\n    init_lineTokens();\n    TokenizerWithStateStore = class {\n      constructor(lineCount, tokenizationSupport) {\n        this.tokenizationSupport = tokenizationSupport;\n        this.initialState = this.tokenizationSupport.getInitialState();\n        this.store = new TrackingTokenizationStateStore(lineCount);\n      }\n      getStartState(lineNumber) {\n        return this.store.getStartState(lineNumber, this.initialState);\n      }\n      getFirstInvalidLine() {\n        return this.store.getFirstInvalidLine(this.initialState);\n      }\n    };\n    TokenizerWithStateStoreAndTextModel = class extends TokenizerWithStateStore {\n      constructor(lineCount, tokenizationSupport, _textModel, _languageIdCodec) {\n        super(lineCount, tokenizationSupport);\n        this._textModel = _textModel;\n        this._languageIdCodec = _languageIdCodec;\n      }\n      updateTokensUntilLine(builder, lineNumber) {\n        const languageId = this._textModel.getLanguageId();\n        while (true) {\n          const lineToTokenize = this.getFirstInvalidLine();\n          if (!lineToTokenize || lineToTokenize.lineNumber \u003e lineNumber) {\n            break;\n          }\n          const text2 = this._textModel.getLineContent(lineToTokenize.lineNumber);\n          const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text2, true, lineToTokenize.startState);\n          builder.add(lineToTokenize.lineNumber, r.tokens);\n          this.store.setEndState(lineToTokenize.lineNumber, r.endState);\n        }\n      }\n      /** assumes state is up to date */\n      getTokenTypeIfInsertingCharacter(position, character) {\n        const lineStartState = this.getStartState(position.lineNumber);\n        if (!lineStartState) {\n          return 0;\n        }\n        const languageId = this._textModel.getLanguageId();\n        const lineContent = this._textModel.getLineContent(position.lineNumber);\n        const text2 = lineContent.substring(0, position.column - 1) + character + lineContent.substring(position.column - 1);\n        const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text2, true, lineStartState);\n        const lineTokens = new LineTokens(r.tokens, text2, this._languageIdCodec);\n        if (lineTokens.getCount() === 0) {\n          return 0;\n        }\n        const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n        return lineTokens.getStandardTokenType(tokenIndex);\n      }\n      /** assumes state is up to date */\n      tokenizeLinesAt(lineNumber, lines) {\n        const lineStartState = this.getStartState(lineNumber);\n        if (!lineStartState) {\n          return null;\n        }\n        const languageId = this._textModel.getLanguageId();\n        const result = [];\n        let state = lineStartState;\n        for (const line of lines) {\n          const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, line, true, state);\n          result.push(new LineTokens(r.tokens, line, this._languageIdCodec));\n          state = r.endState;\n        }\n        return result;\n      }\n      hasAccurateTokensForLine(lineNumber) {\n        const firstInvalidLineNumber = this.store.getFirstInvalidEndStateLineNumberOrMax();\n        return lineNumber \u003c firstInvalidLineNumber;\n      }\n      isCheapToTokenize(lineNumber) {\n        const firstInvalidLineNumber = this.store.getFirstInvalidEndStateLineNumberOrMax();\n        if (lineNumber \u003c firstInvalidLineNumber) {\n          return true;\n        }\n        if (lineNumber === firstInvalidLineNumber \u0026\u0026 this._textModel.getLineLength(lineNumber) \u003c 2048) {\n          return true;\n        }\n        return false;\n      }\n      /**\n       * The result is not cached.\n       */\n      tokenizeHeuristically(builder, startLineNumber, endLineNumber) {\n        if (endLineNumber \u003c= this.store.getFirstInvalidEndStateLineNumberOrMax()) {\n          return { heuristicTokens: false };\n        }\n        if (startLineNumber \u003c= this.store.getFirstInvalidEndStateLineNumberOrMax()) {\n          this.updateTokensUntilLine(builder, endLineNumber);\n          return { heuristicTokens: false };\n        }\n        let state = this.guessStartState(startLineNumber);\n        const languageId = this._textModel.getLanguageId();\n        for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n          const text2 = this._textModel.getLineContent(lineNumber);\n          const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text2, true, state);\n          builder.add(lineNumber, r.tokens);\n          state = r.endState;\n        }\n        return { heuristicTokens: true };\n      }\n      guessStartState(lineNumber) {\n        let { likelyRelevantLines, initialState } = findLikelyRelevantLines(this._textModel, lineNumber, this);\n        if (!initialState) {\n          initialState = this.tokenizationSupport.getInitialState();\n        }\n        const languageId = this._textModel.getLanguageId();\n        let state = initialState;\n        for (const line of likelyRelevantLines) {\n          const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, line, false, state);\n          state = r.endState;\n        }\n        return state;\n      }\n    };\n    TrackingTokenizationStateStore = class {\n      constructor(lineCount) {\n        this.lineCount = lineCount;\n        this._tokenizationStateStore = new TokenizationStateStore();\n        this._invalidEndStatesLineNumbers = new RangePriorityQueueImpl();\n        this._invalidEndStatesLineNumbers.addRange(new OffsetRange(1, lineCount + 1));\n      }\n      getEndState(lineNumber) {\n        return this._tokenizationStateStore.getEndState(lineNumber);\n      }\n      /**\n       * @returns if the end state has changed.\n       */\n      setEndState(lineNumber, state) {\n        if (!state) {\n          throw new BugIndicatingError(\"Cannot set null/undefined state\");\n        }\n        this._invalidEndStatesLineNumbers.delete(lineNumber);\n        const r = this._tokenizationStateStore.setEndState(lineNumber, state);\n        if (r \u0026\u0026 lineNumber \u003c this.lineCount) {\n          this._invalidEndStatesLineNumbers.addRange(new OffsetRange(lineNumber + 1, lineNumber + 2));\n        }\n        return r;\n      }\n      acceptChange(range2, newLineCount) {\n        this.lineCount += newLineCount - range2.length;\n        this._tokenizationStateStore.acceptChange(range2, newLineCount);\n        this._invalidEndStatesLineNumbers.addRangeAndResize(new OffsetRange(range2.startLineNumber, range2.endLineNumberExclusive), newLineCount);\n      }\n      acceptChanges(changes) {\n        for (const c of changes) {\n          const [eolCount] = countEOL(c.text);\n          this.acceptChange(new LineRange(c.range.startLineNumber, c.range.endLineNumber + 1), eolCount + 1);\n        }\n      }\n      invalidateEndStateRange(range2) {\n        this._invalidEndStatesLineNumbers.addRange(new OffsetRange(range2.startLineNumber, range2.endLineNumberExclusive));\n      }\n      getFirstInvalidEndStateLineNumber() {\n        return this._invalidEndStatesLineNumbers.min;\n      }\n      getFirstInvalidEndStateLineNumberOrMax() {\n        return this.getFirstInvalidEndStateLineNumber() || Number.MAX_SAFE_INTEGER;\n      }\n      allStatesValid() {\n        return this._invalidEndStatesLineNumbers.min === null;\n      }\n      getStartState(lineNumber, initialState) {\n        if (lineNumber === 1) {\n          return initialState;\n        }\n        return this.getEndState(lineNumber - 1);\n      }\n      getFirstInvalidLine(initialState) {\n        const lineNumber = this.getFirstInvalidEndStateLineNumber();\n        if (lineNumber === null) {\n          return null;\n        }\n        const startState = this.getStartState(lineNumber, initialState);\n        if (!startState) {\n          throw new BugIndicatingError(\"Start state must be defined\");\n        }\n        return { lineNumber, startState };\n      }\n    };\n    TokenizationStateStore = class {\n      constructor() {\n        this._lineEndStates = new FixedArray(null);\n      }\n      getEndState(lineNumber) {\n        return this._lineEndStates.get(lineNumber);\n      }\n      setEndState(lineNumber, state) {\n        const oldState = this._lineEndStates.get(lineNumber);\n        if (oldState \u0026\u0026 oldState.equals(state)) {\n          return false;\n        }\n        this._lineEndStates.set(lineNumber, state);\n        return true;\n      }\n      acceptChange(range2, newLineCount) {\n        let length = range2.length;\n        if (newLineCount \u003e 0 \u0026\u0026 length \u003e 0) {\n          length--;\n          newLineCount--;\n        }\n        this._lineEndStates.replace(range2.startLineNumber, length, newLineCount);\n      }\n    };\n    RangePriorityQueueImpl = class {\n      constructor() {\n        this._ranges = [];\n      }\n      get min() {\n        if (this._ranges.length === 0) {\n          return null;\n        }\n        return this._ranges[0].start;\n      }\n      delete(value) {\n        const idx = this._ranges.findIndex((r) =\u003e r.contains(value));\n        if (idx !== -1) {\n          const range2 = this._ranges[idx];\n          if (range2.start === value) {\n            if (range2.endExclusive === value + 1) {\n              this._ranges.splice(idx, 1);\n            } else {\n              this._ranges[idx] = new OffsetRange(value + 1, range2.endExclusive);\n            }\n          } else {\n            if (range2.endExclusive === value + 1) {\n              this._ranges[idx] = new OffsetRange(range2.start, value);\n            } else {\n              this._ranges.splice(idx, 1, new OffsetRange(range2.start, value), new OffsetRange(value + 1, range2.endExclusive));\n            }\n          }\n        }\n      }\n      addRange(range2) {\n        OffsetRange.addRange(range2, this._ranges);\n      }\n      addRangeAndResize(range2, newLength) {\n        let idxFirstMightBeIntersecting = 0;\n        while (!(idxFirstMightBeIntersecting \u003e= this._ranges.length || range2.start \u003c= this._ranges[idxFirstMightBeIntersecting].endExclusive)) {\n          idxFirstMightBeIntersecting++;\n        }\n        let idxFirstIsAfter = idxFirstMightBeIntersecting;\n        while (!(idxFirstIsAfter \u003e= this._ranges.length || range2.endExclusive \u003c this._ranges[idxFirstIsAfter].start)) {\n          idxFirstIsAfter++;\n        }\n        const delta = newLength - range2.length;\n        for (let i2 = idxFirstIsAfter; i2 \u003c this._ranges.length; i2++) {\n          this._ranges[i2] = this._ranges[i2].delta(delta);\n        }\n        if (idxFirstMightBeIntersecting === idxFirstIsAfter) {\n          const newRange = new OffsetRange(range2.start, range2.start + newLength);\n          if (!newRange.isEmpty) {\n            this._ranges.splice(idxFirstMightBeIntersecting, 0, newRange);\n          }\n        } else {\n          const start = Math.min(range2.start, this._ranges[idxFirstMightBeIntersecting].start);\n          const endEx = Math.max(range2.endExclusive, this._ranges[idxFirstIsAfter - 1].endExclusive);\n          const newRange = new OffsetRange(start, endEx + delta);\n          if (!newRange.isEmpty) {\n            this._ranges.splice(idxFirstMightBeIntersecting, idxFirstIsAfter - idxFirstMightBeIntersecting, newRange);\n          } else {\n            this._ranges.splice(idxFirstMightBeIntersecting, idxFirstIsAfter - idxFirstMightBeIntersecting);\n          }\n        }\n      }\n      toString() {\n        return this._ranges.map((r) =\u003e r.toString()).join(\" + \");\n      }\n    };\n    DefaultBackgroundTokenizer = class {\n      constructor(_tokenizerWithStateStore, _backgroundTokenStore) {\n        this._tokenizerWithStateStore = _tokenizerWithStateStore;\n        this._backgroundTokenStore = _backgroundTokenStore;\n        this._isDisposed = false;\n        this._isScheduled = false;\n      }\n      dispose() {\n        this._isDisposed = true;\n      }\n      handleChanges() {\n        this._beginBackgroundTokenization();\n      }\n      _beginBackgroundTokenization() {\n        if (this._isScheduled || !this._tokenizerWithStateStore._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {\n          return;\n        }\n        this._isScheduled = true;\n        runWhenGlobalIdle((deadline) =\u003e {\n          this._isScheduled = false;\n          this._backgroundTokenizeWithDeadline(deadline);\n        });\n      }\n      /**\n       * Tokenize until the deadline occurs, but try to yield every 1-2ms.\n       */\n      _backgroundTokenizeWithDeadline(deadline) {\n        const endTime = Date.now() + deadline.timeRemaining();\n        const execute = () =\u003e {\n          if (this._isDisposed || !this._tokenizerWithStateStore._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {\n            return;\n          }\n          this._backgroundTokenizeForAtLeast1ms();\n          if (Date.now() \u003c endTime) {\n            setTimeout0(execute);\n          } else {\n            this._beginBackgroundTokenization();\n          }\n        };\n        execute();\n      }\n      /**\n       * Tokenize for at least 1ms.\n       */\n      _backgroundTokenizeForAtLeast1ms() {\n        const lineCount = this._tokenizerWithStateStore._textModel.getLineCount();\n        const builder = new ContiguousMultilineTokensBuilder();\n        const sw = StopWatch.create(false);\n        do {\n          if (sw.elapsed() \u003e 1) {\n            break;\n          }\n          const tokenizedLineNumber = this._tokenizeOneInvalidLine(builder);\n          if (tokenizedLineNumber \u003e= lineCount) {\n            break;\n          }\n        } while (this._hasLinesToTokenize());\n        this._backgroundTokenStore.setTokens(builder.finalize());\n        this.checkFinished();\n      }\n      _hasLinesToTokenize() {\n        if (!this._tokenizerWithStateStore) {\n          return false;\n        }\n        return !this._tokenizerWithStateStore.store.allStatesValid();\n      }\n      _tokenizeOneInvalidLine(builder) {\n        const firstInvalidLine = this._tokenizerWithStateStore?.getFirstInvalidLine();\n        if (!firstInvalidLine) {\n          return this._tokenizerWithStateStore._textModel.getLineCount() + 1;\n        }\n        this._tokenizerWithStateStore.updateTokensUntilLine(builder, firstInvalidLine.lineNumber);\n        return firstInvalidLine.lineNumber;\n      }\n      checkFinished() {\n        if (this._isDisposed) {\n          return;\n        }\n        if (this._tokenizerWithStateStore.store.allStatesValid()) {\n          this._backgroundTokenStore.backgroundTokenizationFinished();\n        }\n      }\n      requestTokens(startLineNumber, endLineNumberExclusive) {\n        this._tokenizerWithStateStore.store.invalidateEndStateRange(new LineRange(startLineNumber, endLineNumberExclusive));\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/tokenStore.js\nfunction isLeaf(node) {\n  return node.token !== void 0;\n}\nfunction append3(node, nodeToAppend) {\n  let curNode = node;\n  const parents = [];\n  let nodeToAppendOfCorrectHeight;\n  while (true) {\n    if (nodeToAppend.height === curNode.height) {\n      nodeToAppendOfCorrectHeight = nodeToAppend;\n      break;\n    }\n    if (isLeaf(curNode)) {\n      throw new Error(\"unexpected\");\n    }\n    parents.push(curNode);\n    curNode = curNode.lastChild();\n  }\n  for (let i2 = parents.length - 1; i2 \u003e= 0; i2--) {\n    const parent = parents[i2];\n    if (nodeToAppendOfCorrectHeight) {\n      if (parent.children.length \u003e= 3) {\n        const newList = ListNode.create(parent.unappendChild(), nodeToAppendOfCorrectHeight);\n        nodeToAppendOfCorrectHeight = newList;\n      } else {\n        parent.appendChild(nodeToAppendOfCorrectHeight);\n        nodeToAppendOfCorrectHeight = void 0;\n      }\n    }\n  }\n  if (nodeToAppendOfCorrectHeight) {\n    const newList = new ListNode(nodeToAppendOfCorrectHeight.height + 1);\n    newList.appendChild(node);\n    newList.appendChild(nodeToAppendOfCorrectHeight);\n    return newList;\n  } else {\n    return node;\n  }\n}\nfunction prepend3(list2, nodeToAppend) {\n  let curNode = list2;\n  const parents = [];\n  while (nodeToAppend.height !== curNode.height) {\n    if (isLeaf(curNode)) {\n      throw new Error(\"unexpected\");\n    }\n    parents.push(curNode);\n    curNode = curNode.children[0];\n  }\n  let nodeToPrependOfCorrectHeight = nodeToAppend;\n  for (let i2 = parents.length - 1; i2 \u003e= 0; i2--) {\n    const parent = parents[i2];\n    if (nodeToPrependOfCorrectHeight) {\n      if (parent.children.length \u003e= 3) {\n        nodeToPrependOfCorrectHeight = ListNode.create(nodeToPrependOfCorrectHeight, parent.unprependChild());\n      } else {\n        parent.prependChild(nodeToPrependOfCorrectHeight);\n        nodeToPrependOfCorrectHeight = void 0;\n      }\n    }\n  }\n  if (nodeToPrependOfCorrectHeight) {\n    return ListNode.create(nodeToPrependOfCorrectHeight, list2);\n  } else {\n    return list2;\n  }\n}\nfunction concat2(node1, node2) {\n  if (node1.height === node2.height) {\n    return ListNode.create(node1, node2);\n  } else if (node1.height \u003e node2.height) {\n    return append3(node1, node2);\n  } else {\n    return prepend3(node2, node1);\n  }\n}\nvar ListNode, TokenQuality, TokenStore;\nvar init_tokenStore = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/tokenStore.js\"() {\n    ListNode = class _ListNode {\n      get children() {\n        return this._children;\n      }\n      get length() {\n        return this._length;\n      }\n      constructor(height) {\n        this.height = height;\n        this._children = [];\n        this._length = 0;\n      }\n      static create(node1, node2) {\n        const list2 = new _ListNode(node1.height + 1);\n        list2.appendChild(node1);\n        list2.appendChild(node2);\n        return list2;\n      }\n      canAppendChild() {\n        return this._children.length \u003c 3;\n      }\n      appendChild(node) {\n        if (!this.canAppendChild()) {\n          throw new Error(\"Cannot insert more than 3 children in a ListNode\");\n        }\n        this._children.push(node);\n        this._length += node.length;\n        this._updateParentLength(node.length);\n        if (!isLeaf(node)) {\n          node.parent = this;\n        }\n      }\n      _updateParentLength(delta) {\n        let updateParent = this.parent;\n        while (updateParent) {\n          updateParent._length += delta;\n          updateParent = updateParent.parent;\n        }\n      }\n      unappendChild() {\n        const child = this._children.pop();\n        this._length -= child.length;\n        this._updateParentLength(-child.length);\n        return child;\n      }\n      prependChild(node) {\n        if (this._children.length \u003e= 3) {\n          throw new Error(\"Cannot prepend more than 3 children in a ListNode\");\n        }\n        this._children.unshift(node);\n        this._length += node.length;\n        this._updateParentLength(node.length);\n        if (!isLeaf(node)) {\n          node.parent = this;\n        }\n      }\n      unprependChild() {\n        const child = this._children.shift();\n        this._length -= child.length;\n        this._updateParentLength(-child.length);\n        return child;\n      }\n      lastChild() {\n        return this._children[this._children.length - 1];\n      }\n      dispose() {\n        this._children.splice(0, this._children.length);\n      }\n    };\n    (function(TokenQuality2) {\n      TokenQuality2[TokenQuality2[\"None\"] = 0] = \"None\";\n      TokenQuality2[TokenQuality2[\"ViewportGuess\"] = 1] = \"ViewportGuess\";\n      TokenQuality2[TokenQuality2[\"EditGuess\"] = 2] = \"EditGuess\";\n      TokenQuality2[TokenQuality2[\"Accurate\"] = 3] = \"Accurate\";\n    })(TokenQuality || (TokenQuality = {}));\n    TokenStore = class {\n      constructor(_textModel) {\n        this._textModel = _textModel;\n        this._root = this.createEmptyRoot();\n      }\n      createEmptyRoot() {\n        return {\n          length: this._textModel.getValueLength(),\n          token: 0,\n          height: 0,\n          tokenQuality: TokenQuality.None\n        };\n      }\n      /**\n       *\n       * @param update all the tokens for the document in sequence\n       */\n      buildStore(tokens, tokenQuality) {\n        this._root = this.createFromUpdates(tokens, tokenQuality);\n      }\n      createFromUpdates(tokens, tokenQuality) {\n        if (tokens.length === 0) {\n          return this.createEmptyRoot();\n        }\n        let newRoot = {\n          length: tokens[0].length,\n          token: tokens[0].token,\n          height: 0,\n          tokenQuality\n        };\n        for (let j = 1; j \u003c tokens.length; j++) {\n          newRoot = append3(newRoot, { length: tokens[j].length, token: tokens[j].token, height: 0, tokenQuality });\n        }\n        return newRoot;\n      }\n      /**\n       *\n       * @param tokens tokens are in sequence in the document.\n       */\n      update(length, tokens, tokenQuality) {\n        if (tokens.length === 0) {\n          return;\n        }\n        this.replace(length, tokens[0].startOffsetInclusive, tokens, tokenQuality);\n      }\n      delete(length, startOffset) {\n        this.replace(length, startOffset, [], TokenQuality.EditGuess);\n      }\n      /**\n       *\n       * @param tokens tokens are in sequence in the document.\n       */\n      replace(length, updateOffsetStart, tokens, tokenQuality) {\n        const firstUnchangedOffsetAfterUpdate = updateOffsetStart + length;\n        const precedingNodes = [];\n        const postcedingNodes = [];\n        const stack = [{ node: this._root, offset: 0 }];\n        while (stack.length \u003e 0) {\n          const node = stack.pop();\n          const currentOffset = node.offset;\n          if (currentOffset \u003c updateOffsetStart \u0026\u0026 currentOffset + node.node.length \u003c= updateOffsetStart) {\n            if (!isLeaf(node.node)) {\n              node.node.parent = void 0;\n            }\n            precedingNodes.push(node.node);\n            continue;\n          } else if (isLeaf(node.node) \u0026\u0026 currentOffset \u003c updateOffsetStart) {\n            precedingNodes.push({ length: updateOffsetStart - currentOffset, token: node.node.token, height: 0, tokenQuality: node.node.tokenQuality });\n          }\n          if (updateOffsetStart \u003c= currentOffset \u0026\u0026 currentOffset + node.node.length \u003c= firstUnchangedOffsetAfterUpdate) {\n            continue;\n          }\n          if (currentOffset \u003e= firstUnchangedOffsetAfterUpdate) {\n            if (!isLeaf(node.node)) {\n              node.node.parent = void 0;\n            }\n            postcedingNodes.push(node.node);\n            continue;\n          } else if (isLeaf(node.node) \u0026\u0026 currentOffset + node.node.length \u003e firstUnchangedOffsetAfterUpdate) {\n            postcedingNodes.push({ length: currentOffset + node.node.length - firstUnchangedOffsetAfterUpdate, token: node.node.token, height: 0, tokenQuality: node.node.tokenQuality });\n            continue;\n          }\n          if (!isLeaf(node.node)) {\n            let childOffset = currentOffset + node.node.length;\n            for (let i2 = node.node.children.length - 1; i2 \u003e= 0; i2--) {\n              childOffset -= node.node.children[i2].length;\n              stack.push({ node: node.node.children[i2], offset: childOffset });\n            }\n          }\n        }\n        let allNodes;\n        if (tokens.length \u003e 0) {\n          allNodes = precedingNodes.concat(this.createFromUpdates(tokens, tokenQuality), postcedingNodes);\n        } else {\n          allNodes = precedingNodes.concat(postcedingNodes);\n        }\n        let newRoot = allNodes[0];\n        for (let i2 = 1; i2 \u003c allNodes.length; i2++) {\n          newRoot = concat2(newRoot, allNodes[i2]);\n        }\n        this._root = newRoot ?? this.createEmptyRoot();\n      }\n      /**\n       *\n       * @param startOffsetInclusive\n       * @param endOffsetExclusive\n       * @param visitor Return true from visitor to exit early\n       * @returns\n       */\n      traverseInOrderInRange(startOffsetInclusive, endOffsetExclusive, visitor) {\n        const stack = [{ node: this._root, offset: 0 }];\n        while (stack.length \u003e 0) {\n          const { node, offset } = stack.pop();\n          const nodeEnd = offset + node.length;\n          if (nodeEnd \u003c= startOffsetInclusive || offset \u003e= endOffsetExclusive) {\n            continue;\n          }\n          if (visitor(node, offset)) {\n            return;\n          }\n          if (!isLeaf(node)) {\n            let childOffset = offset + node.length;\n            for (let i2 = node.children.length - 1; i2 \u003e= 0; i2--) {\n              childOffset -= node.children[i2].length;\n              stack.push({ node: node.children[i2], offset: childOffset });\n            }\n          }\n        }\n      }\n      getTokenAt(offset) {\n        let result;\n        this.traverseInOrderInRange(offset, this._root.length, (node, offset2) =\u003e {\n          if (isLeaf(node)) {\n            result = { token: node.token, startOffsetInclusive: offset2, length: node.length };\n            return true;\n          }\n          return false;\n        });\n        return result;\n      }\n      getTokensInRange(startOffsetInclusive, endOffsetExclusive) {\n        const result = [];\n        this.traverseInOrderInRange(startOffsetInclusive, endOffsetExclusive, (node, offset) =\u003e {\n          if (isLeaf(node)) {\n            let clippedLength = node.length;\n            let clippedOffset = offset;\n            if (offset \u003c startOffsetInclusive \u0026\u0026 offset + node.length \u003e endOffsetExclusive) {\n              clippedOffset = startOffsetInclusive;\n              clippedLength = endOffsetExclusive - startOffsetInclusive;\n            } else if (offset \u003c startOffsetInclusive) {\n              clippedLength -= startOffsetInclusive - offset;\n              clippedOffset = startOffsetInclusive;\n            } else if (offset + node.length \u003e endOffsetExclusive) {\n              clippedLength -= offset + node.length - endOffsetExclusive;\n            }\n            result.push({ token: node.token, startOffsetInclusive: clippedOffset, length: clippedLength });\n          }\n          return false;\n        });\n        return result;\n      }\n      markForRefresh(startOffsetInclusive, endOffsetExclusive) {\n        this.traverseInOrderInRange(startOffsetInclusive, endOffsetExclusive, (node) =\u003e {\n          if (isLeaf(node)) {\n            node.tokenQuality = TokenQuality.None;\n          }\n          return false;\n        });\n      }\n      rangeHasTokens(startOffsetInclusive, endOffsetExclusive, minimumTokenQuality) {\n        let hasAny = true;\n        this.traverseInOrderInRange(startOffsetInclusive, endOffsetExclusive, (node) =\u003e {\n          if (isLeaf(node) \u0026\u0026 node.tokenQuality \u003c minimumTokenQuality) {\n            hasAny = false;\n          }\n          return false;\n        });\n        return hasAny;\n      }\n      rangeNeedsRefresh(startOffsetInclusive, endOffsetExclusive) {\n        let needsRefresh = false;\n        this.traverseInOrderInRange(startOffsetInclusive, endOffsetExclusive, (node) =\u003e {\n          if (isLeaf(node) \u0026\u0026 node.tokenQuality !== TokenQuality.Accurate) {\n            needsRefresh = true;\n          }\n          return false;\n        });\n        return needsRefresh;\n      }\n      getNeedsRefresh() {\n        const result = [];\n        this.traverseInOrderInRange(0, this._textModel.getValueLength(), (node, offset) =\u003e {\n          if (isLeaf(node) \u0026\u0026 node.tokenQuality !== TokenQuality.Accurate) {\n            if (result.length \u003e 0 \u0026\u0026 result[result.length - 1].endOffset === offset) {\n              result[result.length - 1].endOffset += node.length;\n            } else {\n              result.push({ startOffset: offset, endOffset: offset + node.length });\n            }\n          }\n          return false;\n        });\n        return result;\n      }\n      dispose() {\n        const stack = [[this._root, false]];\n        while (stack.length \u003e 0) {\n          const [node, visited] = stack.pop();\n          if (isLeaf(node)) {\n          } else if (!visited) {\n            stack.push([node, true]);\n            for (let i2 = node.children.length - 1; i2 \u003e= 0; i2--) {\n              stack.push([node.children[i2], false]);\n            }\n          } else {\n            node.dispose();\n            node.parent = void 0;\n          }\n        }\n        this._root = void 0;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/treeSitter/treeSitterThemeService.js\nvar ITreeSitterThemeService;\nvar init_treeSitterThemeService = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/treeSitter/treeSitterThemeService.js\"() {\n    init_instantiation();\n    ITreeSitterThemeService = createDecorator(\"treeSitterThemeService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/treeSitterTokenizationImpl.js\nvar __decorate22, __param20, TreeSitterTokenizationImpl, TREESITTER_BASE_SCOPES, BRACKETS;\nvar init_treeSitterTokenizationImpl = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/treeSitterTokenizationImpl.js\"() {\n    init_event();\n    init_lifecycle();\n    init_platform();\n    init_stopwatch();\n    init_textModelTokens();\n    init_tokenStore();\n    init_observable();\n    init_lineTokens();\n    init_position();\n    init_range();\n    init_types();\n    init_treeSitterThemeService();\n    init_errors();\n    __decorate22 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param20 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    TreeSitterTokenizationImpl = class TreeSitterTokenizationImpl2 extends Disposable {\n      get _textModel() {\n        return this._tree.textModel;\n      }\n      constructor(_tree, _highlightingQueries, _languageIdCodec, _visibleLineRanges, _treeSitterThemeService) {\n        super();\n        this._tree = _tree;\n        this._highlightingQueries = _highlightingQueries;\n        this._languageIdCodec = _languageIdCodec;\n        this._visibleLineRanges = _visibleLineRanges;\n        this._treeSitterThemeService = _treeSitterThemeService;\n        this._onDidChangeTokens = this._register(new Emitter());\n        this.onDidChangeTokens = this._onDidChangeTokens.event;\n        this._onDidCompleteBackgroundTokenization = this._register(new Emitter());\n        this.onDidChangeBackgroundTokenization = this._onDidCompleteBackgroundTokenization.event;\n        this._encodedLanguageId = this._languageIdCodec.encodeLanguageId(this._tree.languageId);\n        this._register(runOnChange(this._treeSitterThemeService.onChange, () =\u003e {\n          this._updateTheme();\n        }));\n        this._tokenStore = this._register(new TokenStore(this._textModel));\n        this._accurateVersion = this._textModel.getVersionId();\n        this._guessVersion = this._textModel.getVersionId();\n        this._tokenStore.buildStore(this._createEmptyTokens(), TokenQuality.None);\n        this._register(autorun((reader) =\u003e {\n          const visibleLineRanges = this._visibleLineRanges.read(reader);\n          this._parseAndTokenizeViewPort(visibleLineRanges);\n        }));\n        this._register(autorunHandleChanges({\n          owner: this,\n          changeTracker: recordChanges({ tree: this._tree.tree })\n        }, (reader, ctx) =\u003e {\n          const changeEvent = ctx.changes.at(0)?.change;\n          if (ctx.changes.length \u003e 1) {\n            throw new BugIndicatingError(\"The tree changed twice in one transaction. This is currently not supported and should not happen.\");\n          }\n          if (!changeEvent) {\n            if (ctx.tree) {\n              this._firstTreeUpdate(this._tree.treeLastParsedVersion.read(reader));\n            }\n          } else {\n            if (this.hasTokens()) {\n              for (const range2 of changeEvent.ranges) {\n                this._markForRefresh(range2.newRange);\n              }\n            }\n            if (!this.hasTokens()) {\n              this._firstTreeUpdate(changeEvent.versionId);\n            } else {\n              this._handleTreeUpdate(changeEvent.ranges, changeEvent.versionId);\n            }\n          }\n        }));\n      }\n      handleContentChanged(e) {\n        this._guessVersion = e.versionId;\n        for (const change of e.changes) {\n          if (change.text.length \u003e change.rangeLength) {\n            const offset = change.rangeOffset \u003e 0 ? change.rangeOffset - 1 : change.rangeOffset;\n            const oldToken = this._tokenStore.getTokenAt(offset);\n            let newToken;\n            if (oldToken) {\n              newToken = { startOffsetInclusive: oldToken.startOffsetInclusive, length: oldToken.length + change.text.length - change.rangeLength, token: oldToken.token };\n              this._tokenStore.markForRefresh(offset, change.rangeOffset + (change.text.length \u003e change.rangeLength ? change.text.length : change.rangeLength));\n            } else {\n              newToken = { startOffsetInclusive: offset, length: change.text.length, token: 0 };\n            }\n            this._tokenStore.update(oldToken?.length ?? 0, [newToken], TokenQuality.EditGuess);\n          } else if (change.text.length \u003c change.rangeLength) {\n            const deletedCharCount = change.rangeLength - change.text.length;\n            this._tokenStore.delete(deletedCharCount, change.rangeOffset);\n          }\n        }\n      }\n      getLineTokens(lineNumber) {\n        const content = this._textModel.getLineContent(lineNumber);\n        const rawTokens = this.getTokens(lineNumber);\n        return new LineTokens(rawTokens, content, this._languageIdCodec);\n      }\n      _createEmptyTokens() {\n        const emptyToken = this._emptyToken();\n        const modelEndOffset = this._textModel.getValueLength();\n        const emptyTokens = [this._emptyTokensForOffsetAndLength(0, modelEndOffset, emptyToken)];\n        return emptyTokens;\n      }\n      _emptyToken() {\n        return this._treeSitterThemeService.findMetadata([], this._encodedLanguageId, false, void 0);\n      }\n      _emptyTokensForOffsetAndLength(offset, length, emptyToken) {\n        return { token: emptyToken, length: offset + length, startOffsetInclusive: 0 };\n      }\n      hasAccurateTokensForLine(lineNumber) {\n        return this.hasTokens(new Range(lineNumber, 1, lineNumber, this._textModel.getLineMaxColumn(lineNumber)));\n      }\n      tokenizeLinesAt(lineNumber, lines) {\n        const rawLineTokens = this._guessTokensForLinesContent(lineNumber, lines);\n        const lineTokens = [];\n        if (!rawLineTokens) {\n          return null;\n        }\n        for (let i2 = 0; i2 \u003c rawLineTokens.length; i2++) {\n          lineTokens.push(new LineTokens(rawLineTokens[i2], lines[i2], this._languageIdCodec));\n        }\n        return lineTokens;\n      }\n      _rangeHasTokens(range2, minimumTokenQuality) {\n        return this._tokenStore.rangeHasTokens(this._textModel.getOffsetAt(range2.getStartPosition()), this._textModel.getOffsetAt(range2.getEndPosition()), minimumTokenQuality);\n      }\n      hasTokens(accurateForRange) {\n        if (!accurateForRange || this._guessVersion === this._accurateVersion) {\n          return true;\n        }\n        return !this._tokenStore.rangeNeedsRefresh(this._textModel.getOffsetAt(accurateForRange.getStartPosition()), this._textModel.getOffsetAt(accurateForRange.getEndPosition()));\n      }\n      getTokens(line) {\n        const lineStartOffset = this._textModel.getOffsetAt({ lineNumber: line, column: 1 });\n        const lineEndOffset = this._textModel.getOffsetAt({ lineNumber: line, column: this._textModel.getLineLength(line) + 1 });\n        const lineTokens = this._tokenStore.getTokensInRange(lineStartOffset, lineEndOffset);\n        const result = new Uint32Array(lineTokens.length * 2);\n        for (let i2 = 0; i2 \u003c lineTokens.length; i2++) {\n          result[i2 * 2] = lineTokens[i2].startOffsetInclusive - lineStartOffset + lineTokens[i2].length;\n          result[i2 * 2 + 1] = lineTokens[i2].token;\n        }\n        return result;\n      }\n      getTokensInRange(range2, rangeStartOffset, rangeEndOffset, captures) {\n        const tokens = captures ? this._tokenizeCapturesWithMetadata(captures, rangeStartOffset, rangeEndOffset) : this._tokenize(range2, rangeStartOffset, rangeEndOffset);\n        if (tokens?.endOffsetsAndMetadata) {\n          return this._rangeTokensAsUpdates(rangeStartOffset, tokens.endOffsetsAndMetadata);\n        }\n        return void 0;\n      }\n      _updateTokensInStore(version, updates, tokenQuality) {\n        this._accurateVersion = version;\n        for (const update of updates) {\n          const lastToken = update.newTokens.length \u003e 0 ? update.newTokens[update.newTokens.length - 1] : void 0;\n          let oldRangeLength;\n          if (lastToken \u0026\u0026 this._guessVersion \u003e= version) {\n            oldRangeLength = lastToken.startOffsetInclusive + lastToken.length - update.newTokens[0].startOffsetInclusive;\n          } else if (update.oldRangeLength) {\n            oldRangeLength = update.oldRangeLength;\n          } else {\n            oldRangeLength = 0;\n          }\n          this._tokenStore.update(oldRangeLength, update.newTokens, tokenQuality);\n        }\n      }\n      _markForRefresh(range2) {\n        this._tokenStore.markForRefresh(this._textModel.getOffsetAt(range2.getStartPosition()), this._textModel.getOffsetAt(range2.getEndPosition()));\n      }\n      _getNeedsRefresh() {\n        const needsRefreshOffsetRanges = this._tokenStore.getNeedsRefresh();\n        if (!needsRefreshOffsetRanges) {\n          return [];\n        }\n        return needsRefreshOffsetRanges.map((range2) =\u003e ({\n          range: Range.fromPositions(this._textModel.getPositionAt(range2.startOffset), this._textModel.getPositionAt(range2.endOffset)),\n          startOffset: range2.startOffset,\n          endOffset: range2.endOffset\n        }));\n      }\n      _parseAndTokenizeViewPort(lineRanges) {\n        const viewportRanges = lineRanges.map((r) =\u003e r.toInclusiveRange()).filter(isDefined);\n        for (const range2 of viewportRanges) {\n          const startOffsetOfRangeInDocument = this._textModel.getOffsetAt(range2.getStartPosition());\n          const endOffsetOfRangeInDocument = this._textModel.getOffsetAt(range2.getEndPosition());\n          const version = this._textModel.getVersionId();\n          if (this._rangeHasTokens(range2, TokenQuality.ViewportGuess)) {\n            continue;\n          }\n          const content = this._textModel.getValueInRange(range2);\n          const tokenUpdates = this._forceParseAndTokenizeContent(range2, startOffsetOfRangeInDocument, endOffsetOfRangeInDocument, content, true);\n          if (!tokenUpdates || this._rangeHasTokens(range2, TokenQuality.ViewportGuess)) {\n            continue;\n          }\n          if (tokenUpdates.length === 0) {\n            continue;\n          }\n          const lastToken = tokenUpdates[tokenUpdates.length - 1];\n          const oldRangeLength = lastToken.startOffsetInclusive + lastToken.length - tokenUpdates[0].startOffsetInclusive;\n          this._updateTokensInStore(version, [{ newTokens: tokenUpdates, oldRangeLength }], TokenQuality.ViewportGuess);\n          this._onDidChangeTokens.fire({ changes: { semanticTokensApplied: false, ranges: [{ fromLineNumber: range2.startLineNumber, toLineNumber: range2.endLineNumber }] } });\n        }\n      }\n      _guessTokensForLinesContent(lineNumber, lines) {\n        if (lines.length === 0) {\n          return void 0;\n        }\n        const lineContent = lines.join(this._textModel.getEOL());\n        const range2 = new Range(1, 1, lineNumber + lines.length, lines[lines.length - 1].length + 1);\n        const startOffset = this._textModel.getOffsetAt({ lineNumber, column: 1 });\n        const tokens = this._forceParseAndTokenizeContent(range2, startOffset, startOffset + lineContent.length, lineContent, false);\n        if (!tokens) {\n          return void 0;\n        }\n        const tokensByLine = new Array(lines.length);\n        let tokensIndex = 0;\n        let tokenStartOffset = 0;\n        let lineStartOffset = 0;\n        for (let i2 = 0; i2 \u003c lines.length; i2++) {\n          const tokensForLine = [];\n          let moveToNextLine = false;\n          for (let j = tokensIndex; !moveToNextLine \u0026\u0026 j \u003c tokens.length; j++) {\n            const token = tokens[j];\n            const lineAdjustedEndOffset = token.endOffset - lineStartOffset;\n            const lineAdjustedStartOffset = tokenStartOffset - lineStartOffset;\n            if (lineAdjustedEndOffset \u003c= lines[i2].length) {\n              tokensForLine.push({ endOffset: lineAdjustedEndOffset, metadata: token.metadata });\n              tokensIndex++;\n            } else if (lineAdjustedStartOffset \u003c lines[i2].length) {\n              const partialToken = { endOffset: lines[i2].length, metadata: token.metadata };\n              tokensForLine.push(partialToken);\n              moveToNextLine = true;\n            } else {\n              moveToNextLine = true;\n            }\n            tokenStartOffset = token.endOffset;\n          }\n          tokensByLine[i2] = this._endOffsetTokensToUint32Array(tokensForLine);\n          lineStartOffset += lines[i2].length + this._textModel.getEOL().length;\n        }\n        return tokensByLine;\n      }\n      _forceParseAndTokenizeContent(range2, startOffsetOfRangeInDocument, endOffsetOfRangeInDocument, content, asUpdate) {\n        const likelyRelevantLines = findLikelyRelevantLines(this._textModel, range2.startLineNumber).likelyRelevantLines;\n        const likelyRelevantPrefix = likelyRelevantLines.join(this._textModel.getEOL());\n        const tree = this._tree.createParsedTreeSync(`${likelyRelevantPrefix}${content}`);\n        if (!tree) {\n          return;\n        }\n        const treeRange = new Range(1, 1, range2.endLineNumber - range2.startLineNumber + 1 + likelyRelevantLines.length, range2.endColumn);\n        const captures = this.captureAtRange(treeRange);\n        const tokens = this._tokenizeCapturesWithMetadata(captures, likelyRelevantPrefix.length, endOffsetOfRangeInDocument - startOffsetOfRangeInDocument + likelyRelevantPrefix.length);\n        tree.delete();\n        if (!tokens) {\n          return;\n        }\n        if (asUpdate) {\n          return this._rangeTokensAsUpdates(startOffsetOfRangeInDocument, tokens.endOffsetsAndMetadata, likelyRelevantPrefix.length);\n        } else {\n          return tokens.endOffsetsAndMetadata;\n        }\n      }\n      _firstTreeUpdate(versionId) {\n        return this._setViewPortTokens(versionId);\n      }\n      _setViewPortTokens(versionId) {\n        const rangeChanges = this._visibleLineRanges.get().map((lineRange) =\u003e {\n          const range2 = lineRange.toInclusiveRange();\n          if (!range2) {\n            return void 0;\n          }\n          const newRangeStartOffset = this._textModel.getOffsetAt(range2.getStartPosition());\n          const newRangeEndOffset = this._textModel.getOffsetAt(range2.getEndPosition());\n          return {\n            newRange: range2,\n            newRangeEndOffset,\n            newRangeStartOffset\n          };\n        }).filter(isDefined);\n        return this._handleTreeUpdate(rangeChanges, versionId);\n      }\n      /**\n       * Do not await in this method, it will cause a race\n       */\n      _handleTreeUpdate(ranges, versionId) {\n        const rangeChanges = [];\n        const chunkSize = 1e3;\n        for (let i2 = 0; i2 \u003c ranges.length; i2++) {\n          const rangeLinesLength = ranges[i2].newRange.endLineNumber - ranges[i2].newRange.startLineNumber;\n          if (rangeLinesLength \u003e chunkSize) {\n            const fullRangeEndLineNumber = ranges[i2].newRange.endLineNumber;\n            let chunkLineStart = ranges[i2].newRange.startLineNumber;\n            let chunkColumnStart = ranges[i2].newRange.startColumn;\n            let chunkLineEnd = chunkLineStart + chunkSize;\n            do {\n              const chunkStartingPosition = new Position(chunkLineStart, chunkColumnStart);\n              const chunkEndColumn = chunkLineEnd === ranges[i2].newRange.endLineNumber ? ranges[i2].newRange.endColumn : this._textModel.getLineMaxColumn(chunkLineEnd);\n              const chunkEndPosition = new Position(chunkLineEnd, chunkEndColumn);\n              const chunkRange = Range.fromPositions(chunkStartingPosition, chunkEndPosition);\n              rangeChanges.push({\n                range: chunkRange,\n                startOffset: this._textModel.getOffsetAt(chunkRange.getStartPosition()),\n                endOffset: this._textModel.getOffsetAt(chunkRange.getEndPosition())\n              });\n              chunkLineStart = chunkLineEnd + 1;\n              chunkColumnStart = 1;\n              if (chunkLineEnd \u003c fullRangeEndLineNumber \u0026\u0026 chunkLineEnd + chunkSize \u003e fullRangeEndLineNumber) {\n                chunkLineEnd = fullRangeEndLineNumber;\n              } else {\n                chunkLineEnd = chunkLineEnd + chunkSize;\n              }\n            } while (chunkLineEnd \u003c= fullRangeEndLineNumber);\n          } else {\n            if (i2 === 0 || rangeChanges[i2 - 1].endOffset \u003c ranges[i2].newRangeStartOffset) {\n              rangeChanges.push({\n                range: ranges[i2].newRange,\n                startOffset: ranges[i2].newRangeStartOffset,\n                endOffset: ranges[i2].newRangeEndOffset\n              });\n            } else if (rangeChanges[i2 - 1].endOffset \u003c ranges[i2].newRangeEndOffset) {\n              const startPosition = this._textModel.getPositionAt(rangeChanges[i2 - 1].endOffset + 1);\n              const range2 = new Range(startPosition.lineNumber, startPosition.column, ranges[i2].newRange.endLineNumber, ranges[i2].newRange.endColumn);\n              rangeChanges.push({\n                range: range2,\n                startOffset: rangeChanges[i2 - 1].endOffset + 1,\n                endOffset: ranges[i2].newRangeEndOffset\n              });\n            }\n          }\n        }\n        const captures = rangeChanges.map((range2) =\u003e this._getCaptures(range2.range));\n        return this._updateTreeForRanges(rangeChanges, versionId, captures).then(() =\u003e {\n          if (!this._textModel.isDisposed() \u0026\u0026 this._tree.treeLastParsedVersion.get() === this._textModel.getVersionId()) {\n            this._refreshNeedsRefresh(versionId);\n          }\n        });\n      }\n      async _updateTreeForRanges(rangeChanges, versionId, captures) {\n        let tokenUpdate;\n        for (let i2 = 0; i2 \u003c rangeChanges.length; i2++) {\n          if (!this._textModel.isDisposed() \u0026\u0026 versionId !== this._textModel.getVersionId()) {\n            break;\n          }\n          const capture = captures[i2];\n          const range2 = rangeChanges[i2];\n          const updates = this.getTokensInRange(range2.range, range2.startOffset, range2.endOffset, capture);\n          if (updates) {\n            tokenUpdate = { newTokens: updates };\n          } else {\n            tokenUpdate = { newTokens: [] };\n          }\n          this._updateTokensInStore(versionId, [tokenUpdate], TokenQuality.Accurate);\n          this._onDidChangeTokens.fire({\n            changes: {\n              semanticTokensApplied: false,\n              ranges: [{ fromLineNumber: range2.range.getStartPosition().lineNumber, toLineNumber: range2.range.getEndPosition().lineNumber }]\n            }\n          });\n          await new Promise((resolve3) =\u003e setTimeout0(resolve3));\n        }\n        this._onDidCompleteBackgroundTokenization.fire();\n      }\n      _refreshNeedsRefresh(versionId) {\n        const rangesToRefresh = this._getNeedsRefresh();\n        if (rangesToRefresh.length === 0) {\n          return;\n        }\n        const rangeChanges = new Array(rangesToRefresh.length);\n        for (let i2 = 0; i2 \u003c rangesToRefresh.length; i2++) {\n          const range2 = rangesToRefresh[i2];\n          rangeChanges[i2] = {\n            newRange: range2.range,\n            newRangeStartOffset: range2.startOffset,\n            newRangeEndOffset: range2.endOffset\n          };\n        }\n        this._handleTreeUpdate(rangeChanges, versionId);\n      }\n      _rangeTokensAsUpdates(rangeOffset, endOffsetToken, startingOffsetInArray) {\n        const updates = [];\n        let lastEnd = 0;\n        for (const token of endOffsetToken) {\n          if (token.endOffset \u003c= lastEnd || startingOffsetInArray \u0026\u0026 token.endOffset \u003c startingOffsetInArray) {\n            continue;\n          }\n          let tokenUpdate;\n          if (startingOffsetInArray \u0026\u0026 lastEnd \u003c startingOffsetInArray) {\n            tokenUpdate = { startOffsetInclusive: rangeOffset + startingOffsetInArray, length: token.endOffset - startingOffsetInArray, token: token.metadata };\n          } else {\n            tokenUpdate = { startOffsetInclusive: rangeOffset + lastEnd, length: token.endOffset - lastEnd, token: token.metadata };\n          }\n          updates.push(tokenUpdate);\n          lastEnd = token.endOffset;\n        }\n        return updates;\n      }\n      _updateTheme() {\n        const modelRange = this._textModel.getFullModelRange();\n        this._markForRefresh(modelRange);\n        this._parseAndTokenizeViewPort(this._visibleLineRanges.get());\n      }\n      captureAtRange(range2) {\n        const tree = this._tree.tree.get();\n        if (!tree) {\n          return [];\n        }\n        return this._highlightingQueries.captures(tree.rootNode, { startPosition: { row: range2.startLineNumber - 1, column: range2.startColumn - 1 }, endPosition: { row: range2.endLineNumber - 1, column: range2.endColumn - 1 } }).map((capture) =\u003e ({\n          name: capture.name,\n          text: capture.node.text,\n          node: {\n            startIndex: capture.node.startIndex,\n            endIndex: capture.node.endIndex,\n            startPosition: {\n              lineNumber: capture.node.startPosition.row + 1,\n              column: capture.node.startPosition.column + 1\n            },\n            endPosition: {\n              lineNumber: capture.node.endPosition.row + 1,\n              column: capture.node.endPosition.column + 1\n            }\n          },\n          encodedLanguageId: this._encodedLanguageId\n        }));\n      }\n      captureAtRangeWithInjections(range2) {\n        const captures = this.captureAtRange(range2);\n        for (let i2 = 0; i2 \u003c captures.length; i2++) {\n          const capture = captures[i2];\n          const capStartLine = capture.node.startPosition.lineNumber;\n          const capEndLine = capture.node.endPosition.lineNumber;\n          const capStartColumn = capture.node.startPosition.column;\n          const capEndColumn = capture.node.endPosition.column;\n          const startLine = capStartLine \u003e range2.startLineNumber \u0026\u0026 capStartLine \u003c range2.endLineNumber ? capStartLine : range2.startLineNumber;\n          const endLine = capEndLine \u003e range2.startLineNumber \u0026\u0026 capEndLine \u003c range2.endLineNumber ? capEndLine : range2.endLineNumber;\n          const startColumn = capStartLine === range2.startLineNumber ? capStartColumn \u003c range2.startColumn ? range2.startColumn : capStartColumn : capStartLine \u003c range2.startLineNumber ? range2.startColumn : capStartColumn;\n          const endColumn = capEndLine === range2.endLineNumber ? capEndColumn \u003e range2.endColumn ? range2.endColumn : capEndColumn : capEndLine \u003e range2.endLineNumber ? range2.endColumn : capEndColumn;\n          const injectionRange = new Range(startLine, startColumn, endLine, endColumn);\n          const injection = this._getInjectionCaptures(capture, injectionRange);\n          if (injection \u0026\u0026 injection.length \u003e 0) {\n            captures.splice(i2 + 1, 0, ...injection);\n            i2 += injection.length;\n          }\n        }\n        return captures;\n      }\n      /**\n       * Gets the tokens for a given line.\n       * Each token takes 2 elements in the array. The first element is the offset of the end of the token *in the line, not in the document*, and the second element is the metadata.\n       *\n       * @param lineNumber\n       * @returns\n       */\n      tokenizeEncoded(lineNumber) {\n        const tokens = this._tokenizeEncoded(lineNumber);\n        if (!tokens) {\n          return void 0;\n        }\n        const updates = this._rangeTokensAsUpdates(this._textModel.getOffsetAt({ lineNumber, column: 1 }), tokens.result);\n        if (tokens.versionId === this._textModel.getVersionId()) {\n          this._updateTokensInStore(tokens.versionId, [{ newTokens: updates, oldRangeLength: this._textModel.getLineLength(lineNumber) }], TokenQuality.Accurate);\n        }\n      }\n      _getCaptures(range2) {\n        const captures = this.captureAtRangeWithInjections(range2);\n        return captures;\n      }\n      _tokenize(range2, rangeStartOffset, rangeEndOffset) {\n        const captures = this._getCaptures(range2);\n        const result = this._tokenizeCapturesWithMetadata(captures, rangeStartOffset, rangeEndOffset);\n        if (!result) {\n          return void 0;\n        }\n        return { ...result, versionId: this._tree.treeLastParsedVersion.get() };\n      }\n      _createTokensFromCaptures(captures, rangeStartOffset, rangeEndOffset) {\n        const tree = this._tree.tree.get();\n        const stopwatch = StopWatch.create();\n        const rangeLength = rangeEndOffset - rangeStartOffset;\n        const encodedLanguageId = this._languageIdCodec.encodeLanguageId(this._tree.languageId);\n        const baseScope = TREESITTER_BASE_SCOPES[this._tree.languageId] || \"source\";\n        if (captures.length === 0) {\n          if (tree) {\n            stopwatch.stop();\n            const endOffsetsAndMetadata = [{ endOffset: rangeLength, scopes: [], encodedLanguageId }];\n            return { endOffsets: endOffsetsAndMetadata, captureTime: stopwatch.elapsed() };\n          }\n          return void 0;\n        }\n        const endOffsetsAndScopes = Array(captures.length);\n        endOffsetsAndScopes.fill({ endOffset: 0, scopes: [baseScope], encodedLanguageId });\n        let tokenIndex = 0;\n        const increaseSizeOfTokensByOneToken = () =\u003e {\n          endOffsetsAndScopes.push({ endOffset: 0, scopes: [baseScope], encodedLanguageId });\n        };\n        const brackets = (capture, startOffset) =\u003e {\n          return capture.name.includes(\"punctuation\") \u0026\u0026 capture.text ? Array.from(capture.text.matchAll(BRACKETS)).map((match2) =\u003e startOffset + match2.index) : void 0;\n        };\n        const addCurrentTokenToArray = (capture, startOffset, endOffset, position) =\u003e {\n          if (position !== void 0) {\n            const oldScopes = endOffsetsAndScopes[position].scopes;\n            let oldBracket = endOffsetsAndScopes[position].bracket;\n            const prevEndOffset = position \u003e 0 ? endOffsetsAndScopes[position - 1].endOffset : 0;\n            if (prevEndOffset !== startOffset) {\n              let preInsertBracket = void 0;\n              if (oldBracket \u0026\u0026 oldBracket.length \u003e 0) {\n                preInsertBracket = [];\n                const postInsertBracket = [];\n                for (let i2 = 0; i2 \u003c oldBracket.length; i2++) {\n                  const bracket = oldBracket[i2];\n                  if (bracket \u003c startOffset) {\n                    preInsertBracket.push(bracket);\n                  } else if (bracket \u003e endOffset) {\n                    postInsertBracket.push(bracket);\n                  }\n                }\n                if (preInsertBracket.length === 0) {\n                  preInsertBracket = void 0;\n                }\n                if (postInsertBracket.length === 0) {\n                  oldBracket = void 0;\n                } else {\n                  oldBracket = postInsertBracket;\n                }\n              }\n              endOffsetsAndScopes.splice(position, 0, { endOffset: startOffset, scopes: [...oldScopes], bracket: preInsertBracket, encodedLanguageId: capture.encodedLanguageId });\n              position++;\n              increaseSizeOfTokensByOneToken();\n              tokenIndex++;\n            }\n            endOffsetsAndScopes.splice(position, 0, { endOffset, scopes: [...oldScopes, capture.name], bracket: brackets(capture, startOffset), encodedLanguageId: capture.encodedLanguageId });\n            endOffsetsAndScopes[tokenIndex].bracket = oldBracket;\n          } else {\n            endOffsetsAndScopes[tokenIndex] = { endOffset, scopes: [baseScope, capture.name], bracket: brackets(capture, startOffset), encodedLanguageId: capture.encodedLanguageId };\n          }\n          tokenIndex++;\n        };\n        for (let captureIndex = 0; captureIndex \u003c captures.length; captureIndex++) {\n          const capture = captures[captureIndex];\n          const tokenEndIndex = capture.node.endIndex \u003c rangeEndOffset ? capture.node.endIndex \u003c rangeStartOffset ? rangeStartOffset : capture.node.endIndex : rangeEndOffset;\n          const tokenStartIndex = capture.node.startIndex \u003c rangeStartOffset ? rangeStartOffset : capture.node.startIndex;\n          const endOffset = tokenEndIndex - rangeStartOffset;\n          let previousEndOffset;\n          const currentTokenLength = tokenEndIndex - tokenStartIndex;\n          if (captureIndex \u003e 0) {\n            previousEndOffset = endOffsetsAndScopes[tokenIndex - 1].endOffset;\n          } else {\n            previousEndOffset = tokenStartIndex - rangeStartOffset - 1;\n          }\n          const startOffset = endOffset - currentTokenLength;\n          if (previousEndOffset \u003e= 0 \u0026\u0026 previousEndOffset \u003c startOffset) {\n            endOffsetsAndScopes[tokenIndex] = { endOffset: startOffset, scopes: [baseScope], encodedLanguageId: this._encodedLanguageId };\n            tokenIndex++;\n            increaseSizeOfTokensByOneToken();\n          }\n          if (currentTokenLength \u003c 0) {\n            continue;\n          }\n          if (previousEndOffset \u003e= endOffset) {\n            let withinTokenIndex = tokenIndex - 1;\n            let previousTokenEndOffset = endOffsetsAndScopes[withinTokenIndex].endOffset;\n            let previousTokenStartOffset = withinTokenIndex \u003e= 2 ? endOffsetsAndScopes[withinTokenIndex - 1].endOffset : 0;\n            do {\n              if (previousTokenStartOffset + currentTokenLength === previousTokenEndOffset) {\n                if (previousTokenStartOffset === startOffset) {\n                  endOffsetsAndScopes[withinTokenIndex].scopes.push(capture.name);\n                  const oldBracket = endOffsetsAndScopes[withinTokenIndex].bracket;\n                  endOffsetsAndScopes[withinTokenIndex].bracket = oldBracket \u0026\u0026 oldBracket.length \u003e 0 ? oldBracket : brackets(capture, startOffset);\n                }\n              } else if (previousTokenStartOffset \u003c= startOffset) {\n                addCurrentTokenToArray(capture, startOffset, endOffset, withinTokenIndex);\n                break;\n              }\n              withinTokenIndex--;\n              previousTokenStartOffset = withinTokenIndex \u003e= 1 ? endOffsetsAndScopes[withinTokenIndex - 1].endOffset : 0;\n              previousTokenEndOffset = withinTokenIndex \u003e= 0 ? endOffsetsAndScopes[withinTokenIndex].endOffset : 0;\n            } while (previousTokenEndOffset \u003e startOffset);\n          } else {\n            addCurrentTokenToArray(capture, startOffset, endOffset);\n          }\n        }\n        if (endOffsetsAndScopes[tokenIndex - 1].endOffset \u003c rangeLength) {\n          if (rangeLength - endOffsetsAndScopes[tokenIndex - 1].endOffset \u003e 0) {\n            increaseSizeOfTokensByOneToken();\n            endOffsetsAndScopes[tokenIndex] = { endOffset: rangeLength, scopes: endOffsetsAndScopes[tokenIndex].scopes, encodedLanguageId: this._encodedLanguageId };\n            tokenIndex++;\n          }\n        }\n        for (let i2 = 0; i2 \u003c endOffsetsAndScopes.length; i2++) {\n          const token = endOffsetsAndScopes[i2];\n          if (token.endOffset === 0 \u0026\u0026 i2 !== 0) {\n            endOffsetsAndScopes.splice(i2, endOffsetsAndScopes.length - i2);\n            break;\n          }\n        }\n        const captureTime = stopwatch.elapsed();\n        return { endOffsets: endOffsetsAndScopes, captureTime };\n      }\n      _getInjectionCaptures(parentCapture, range2) {\n        return [];\n      }\n      _tokenizeCapturesWithMetadata(captures, rangeStartOffset, rangeEndOffset) {\n        const stopwatch = StopWatch.create();\n        const emptyTokens = this._createTokensFromCaptures(captures, rangeStartOffset, rangeEndOffset);\n        if (!emptyTokens) {\n          return void 0;\n        }\n        const endOffsetsAndScopes = emptyTokens.endOffsets;\n        for (let i2 = 0; i2 \u003c endOffsetsAndScopes.length; i2++) {\n          const token = endOffsetsAndScopes[i2];\n          token.metadata = this._treeSitterThemeService.findMetadata(token.scopes, token.encodedLanguageId, !!token.bracket \u0026\u0026 token.bracket.length \u003e 0, void 0);\n        }\n        const metadataTime = stopwatch.elapsed();\n        return { endOffsetsAndMetadata: endOffsetsAndScopes, captureTime: emptyTokens.captureTime, metadataTime };\n      }\n      _tokenizeEncoded(lineNumber) {\n        const lineOffset = this._textModel.getOffsetAt({ lineNumber, column: 1 });\n        const maxLine = this._textModel.getLineCount();\n        const lineEndOffset = lineNumber + 1 \u003c= maxLine ? this._textModel.getOffsetAt({ lineNumber: lineNumber + 1, column: 1 }) : this._textModel.getValueLength();\n        const lineLength = lineEndOffset - lineOffset;\n        const result = this._tokenize(new Range(lineNumber, 1, lineNumber, lineLength + 1), lineOffset, lineEndOffset);\n        if (!result) {\n          return void 0;\n        }\n        return { result: result.endOffsetsAndMetadata, captureTime: result.captureTime, metadataTime: result.metadataTime, versionId: result.versionId };\n      }\n      _endOffsetTokensToUint32Array(endOffsetsAndMetadata) {\n        const uint32Array = new Uint32Array(endOffsetsAndMetadata.length * 2);\n        for (let i2 = 0; i2 \u003c endOffsetsAndMetadata.length; i2++) {\n          uint32Array[i2 * 2] = endOffsetsAndMetadata[i2].endOffset;\n          uint32Array[i2 * 2 + 1] = endOffsetsAndMetadata[i2].metadata;\n        }\n        return uint32Array;\n      }\n    };\n    TreeSitterTokenizationImpl = __decorate22([\n      __param20(4, ITreeSitterThemeService)\n    ], TreeSitterTokenizationImpl);\n    TREESITTER_BASE_SCOPES = {\n      \"css\": \"source.css\",\n      \"typescript\": \"source.ts\",\n      \"ini\": \"source.ini\",\n      \"regex\": \"source.regex\"\n    };\n    BRACKETS = /[\\{\\}\\[\\]\\\u003c\\\u003e\\(\\)]/g;\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/treeSitter/treeSitterLibraryService.js\nvar ITreeSitterLibraryService;\nvar init_treeSitterLibraryService = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/treeSitter/treeSitterLibraryService.js\"() {\n    init_instantiation();\n    ITreeSitterLibraryService = createDecorator(\"treeSitterLibraryService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.js\nvar __decorate23, __param21, TreeSitterSyntaxTokenBackend;\nvar init_treeSitterSyntaxTokenBackend = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.js\"() {\n    init_event();\n    init_lifecycle();\n    init_lineTokens();\n    init_abstractSyntaxTokenBackend();\n    init_observable();\n    init_treeSitterTree();\n    init_instantiation();\n    init_treeSitterTokenizationImpl();\n    init_treeSitterLibraryService();\n    __decorate23 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param21 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    TreeSitterSyntaxTokenBackend = class TreeSitterSyntaxTokenBackend2 extends AbstractSyntaxTokenBackend {\n      constructor(_languageIdObs, languageIdCodec, textModel, visibleLineRanges, _treeSitterLibraryService, _instantiationService) {\n        super(languageIdCodec, textModel);\n        this._languageIdObs = _languageIdObs;\n        this._treeSitterLibraryService = _treeSitterLibraryService;\n        this._instantiationService = _instantiationService;\n        this._backgroundTokenizationState = 1;\n        this._onDidChangeBackgroundTokenizationState = this._register(new Emitter());\n        this.onDidChangeBackgroundTokenizationState = this._onDidChangeBackgroundTokenizationState.event;\n        const parserClassPromise = new ObservablePromise(this._treeSitterLibraryService.getParserClass());\n        const parserClassObs = derived(this, (reader) =\u003e {\n          const parser2 = parserClassPromise.promiseResult?.read(reader)?.getDataOrThrow();\n          return parser2;\n        });\n        this._tree = derived(this, (reader) =\u003e {\n          const parserClass = parserClassObs.read(reader);\n          if (!parserClass) {\n            return void 0;\n          }\n          const currentLanguage = this._languageIdObs.read(reader);\n          const treeSitterLang = this._treeSitterLibraryService.getLanguage(currentLanguage, reader);\n          if (!treeSitterLang) {\n            return void 0;\n          }\n          const parser2 = new parserClass();\n          reader.store.add(toDisposable(() =\u003e {\n            parser2.delete();\n          }));\n          parser2.setLanguage(treeSitterLang);\n          const queries = this._treeSitterLibraryService.getInjectionQueries(currentLanguage, reader);\n          if (queries === void 0) {\n            return void 0;\n          }\n          return reader.store.add(this._instantiationService.createInstance(\n            TreeSitterTree,\n            currentLanguage,\n            void 0,\n            parser2,\n            parserClass,\n            /*queries, */\n            this._textModel\n          ));\n        });\n        this._tokenizationImpl = derived(this, (reader) =\u003e {\n          const treeModel = this._tree.read(reader);\n          if (!treeModel) {\n            return void 0;\n          }\n          const queries = this._treeSitterLibraryService.getHighlightingQueries(treeModel.languageId, reader);\n          if (!queries) {\n            return void 0;\n          }\n          return reader.store.add(this._instantiationService.createInstance(TreeSitterTokenizationImpl, treeModel, queries, this._languageIdCodec, visibleLineRanges));\n        });\n        this._register(autorun((reader) =\u003e {\n          const tokModel = this._tokenizationImpl.read(reader);\n          if (!tokModel) {\n            return;\n          }\n          reader.store.add(tokModel.onDidChangeTokens((e) =\u003e {\n            this._onDidChangeTokens.fire(e.changes);\n          }));\n          reader.store.add(tokModel.onDidChangeBackgroundTokenization((e) =\u003e {\n            this._backgroundTokenizationState = 2;\n            this._onDidChangeBackgroundTokenizationState.fire();\n          }));\n        }));\n      }\n      getLineTokens(lineNumber) {\n        const model = this._tokenizationImpl.get();\n        if (!model) {\n          const content = this._textModel.getLineContent(lineNumber);\n          return LineTokens.createEmpty(content, this._languageIdCodec);\n        }\n        return model.getLineTokens(lineNumber);\n      }\n      todo_resetTokenization(fireTokenChangeEvent = true) {\n        if (fireTokenChangeEvent) {\n          this._onDidChangeTokens.fire({\n            semanticTokensApplied: false,\n            ranges: [\n              {\n                fromLineNumber: 1,\n                toLineNumber: this._textModel.getLineCount()\n              }\n            ]\n          });\n        }\n      }\n      handleDidChangeAttached() {\n      }\n      handleDidChangeContent(e) {\n        if (e.isFlush) {\n          this.todo_resetTokenization(false);\n        } else {\n          const model = this._tokenizationImpl.get();\n          model?.handleContentChanged(e);\n        }\n        const treeModel = this._tree.get();\n        treeModel?.handleContentChange(e);\n      }\n      forceTokenization(lineNumber) {\n        const model = this._tokenizationImpl.get();\n        if (!model) {\n          return;\n        }\n        if (!model.hasAccurateTokensForLine(lineNumber)) {\n          model.tokenizeEncoded(lineNumber);\n        }\n      }\n      hasAccurateTokensForLine(lineNumber) {\n        const model = this._tokenizationImpl.get();\n        if (!model) {\n          return false;\n        }\n        return model.hasAccurateTokensForLine(lineNumber);\n      }\n      isCheapToTokenize(lineNumber) {\n        return true;\n      }\n      getTokenTypeIfInsertingCharacter(lineNumber, column, character) {\n        return 0;\n      }\n      tokenizeLinesAt(lineNumber, lines) {\n        const model = this._tokenizationImpl.get();\n        if (!model) {\n          return null;\n        }\n        return model.tokenizeLinesAt(lineNumber, lines);\n      }\n      get hasTokens() {\n        const model = this._tokenizationImpl.get();\n        if (!model) {\n          return false;\n        }\n        return model.hasTokens();\n      }\n    };\n    TreeSitterSyntaxTokenBackend = __decorate23([\n      __param21(4, ITreeSitterLibraryService),\n      __param21(5, IInstantiationService)\n    ], TreeSitterSyntaxTokenBackend);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/sparseTokensStore.js\nvar SparseTokensStore;\nvar init_sparseTokensStore = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/sparseTokensStore.js\"() {\n    init_arrays();\n    init_lineTokens();\n    SparseTokensStore = class _SparseTokensStore {\n      constructor(languageIdCodec) {\n        this._pieces = [];\n        this._isComplete = false;\n        this._languageIdCodec = languageIdCodec;\n      }\n      flush() {\n        this._pieces = [];\n        this._isComplete = false;\n      }\n      isEmpty() {\n        return this._pieces.length === 0;\n      }\n      set(pieces, isComplete, textModel = void 0) {\n        this._pieces = pieces || [];\n        this._isComplete = isComplete;\n        if (textModel) {\n          for (const p of this._pieces) {\n            p.reportIfInvalid(textModel);\n          }\n        }\n      }\n      setPartial(_range, pieces) {\n        let range2 = _range;\n        if (pieces.length \u003e 0) {\n          const _firstRange = pieces[0].getRange();\n          const _lastRange = pieces[pieces.length - 1].getRange();\n          if (!_firstRange || !_lastRange) {\n            return _range;\n          }\n          range2 = _range.plusRange(_firstRange).plusRange(_lastRange);\n        }\n        let insertPosition = null;\n        for (let i2 = 0, len = this._pieces.length; i2 \u003c len; i2++) {\n          const piece = this._pieces[i2];\n          if (piece.endLineNumber \u003c range2.startLineNumber) {\n            continue;\n          }\n          if (piece.startLineNumber \u003e range2.endLineNumber) {\n            insertPosition = insertPosition || { index: i2 };\n            break;\n          }\n          piece.removeTokens(range2);\n          if (piece.isEmpty()) {\n            this._pieces.splice(i2, 1);\n            i2--;\n            len--;\n            continue;\n          }\n          if (piece.endLineNumber \u003c range2.startLineNumber) {\n            continue;\n          }\n          if (piece.startLineNumber \u003e range2.endLineNumber) {\n            insertPosition = insertPosition || { index: i2 };\n            continue;\n          }\n          const [a, b] = piece.split(range2);\n          if (a.isEmpty()) {\n            insertPosition = insertPosition || { index: i2 };\n            continue;\n          }\n          if (b.isEmpty()) {\n            continue;\n          }\n          this._pieces.splice(i2, 1, a, b);\n          i2++;\n          len++;\n          insertPosition = insertPosition || { index: i2 };\n        }\n        insertPosition = insertPosition || { index: this._pieces.length };\n        if (pieces.length \u003e 0) {\n          this._pieces = arrayInsert(this._pieces, insertPosition.index, pieces);\n        }\n        return range2;\n      }\n      isComplete() {\n        return this._isComplete;\n      }\n      addSparseTokens(lineNumber, aTokens) {\n        if (aTokens.getTextLength() === 0) {\n          return aTokens;\n        }\n        const pieces = this._pieces;\n        if (pieces.length === 0) {\n          return aTokens;\n        }\n        const pieceIndex = _SparseTokensStore._findFirstPieceWithLine(pieces, lineNumber);\n        const bTokens = pieces[pieceIndex].getLineTokens(lineNumber);\n        if (!bTokens) {\n          return aTokens;\n        }\n        const aLen = aTokens.getCount();\n        const bLen = bTokens.getCount();\n        let aIndex = 0;\n        const result = [];\n        let resultLen = 0;\n        let lastEndOffset = 0;\n        const emitToken = (endOffset, metadata) =\u003e {\n          if (endOffset === lastEndOffset) {\n            return;\n          }\n          lastEndOffset = endOffset;\n          result[resultLen++] = endOffset;\n          result[resultLen++] = metadata;\n        };\n        for (let bIndex = 0; bIndex \u003c bLen; bIndex++) {\n          const bStartCharacter = Math.min(bTokens.getStartCharacter(bIndex), aTokens.getTextLength());\n          const bEndCharacter = Math.min(bTokens.getEndCharacter(bIndex), aTokens.getTextLength());\n          const bMetadata = bTokens.getMetadata(bIndex);\n          const bMask = ((bMetadata \u0026 1 ? 2048 : 0) | (bMetadata \u0026 2 ? 4096 : 0) | (bMetadata \u0026 4 ? 8192 : 0) | (bMetadata \u0026 8 ? 16384 : 0) | (bMetadata \u0026 16 ? 16744448 : 0) | (bMetadata \u0026 32 ? 4278190080 : 0)) \u003e\u003e\u003e 0;\n          const aMask = ~bMask \u003e\u003e\u003e 0;\n          while (aIndex \u003c aLen \u0026\u0026 aTokens.getEndOffset(aIndex) \u003c= bStartCharacter) {\n            emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex));\n            aIndex++;\n          }\n          if (aIndex \u003c aLen \u0026\u0026 aTokens.getStartOffset(aIndex) \u003c bStartCharacter) {\n            emitToken(bStartCharacter, aTokens.getMetadata(aIndex));\n          }\n          while (aIndex \u003c aLen \u0026\u0026 aTokens.getEndOffset(aIndex) \u003c bEndCharacter) {\n            emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex) \u0026 aMask | bMetadata \u0026 bMask);\n            aIndex++;\n          }\n          if (aIndex \u003c aLen) {\n            emitToken(bEndCharacter, aTokens.getMetadata(aIndex) \u0026 aMask | bMetadata \u0026 bMask);\n            if (aTokens.getEndOffset(aIndex) === bEndCharacter) {\n              aIndex++;\n            }\n          } else {\n            const aMergeIndex = Math.min(Math.max(0, aIndex - 1), aLen - 1);\n            emitToken(bEndCharacter, aTokens.getMetadata(aMergeIndex) \u0026 aMask | bMetadata \u0026 bMask);\n          }\n        }\n        while (aIndex \u003c aLen) {\n          emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex));\n          aIndex++;\n        }\n        return new LineTokens(new Uint32Array(result), aTokens.getLineContent(), this._languageIdCodec);\n      }\n      static _findFirstPieceWithLine(pieces, lineNumber) {\n        let low = 0;\n        let high = pieces.length - 1;\n        while (low \u003c high) {\n          let mid = low + Math.floor((high - low) / 2);\n          if (pieces[mid].endLineNumber \u003c lineNumber) {\n            low = mid + 1;\n          } else if (pieces[mid].startLineNumber \u003e lineNumber) {\n            high = mid - 1;\n          } else {\n            while (mid \u003e low \u0026\u0026 pieces[mid - 1].startLineNumber \u003c= lineNumber \u0026\u0026 lineNumber \u003c= pieces[mid - 1].endLineNumber) {\n              mid--;\n            }\n            return mid;\n          }\n        }\n        return low;\n      }\n      acceptEdit(range2, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n        for (const piece of this._pieces) {\n          piece.acceptEdit(range2, eolCount, firstLineLength, lastLineLength, firstCharCode);\n        }\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousTokensEditing.js\nfunction toUint32Array(arr) {\n  if (arr instanceof Uint32Array) {\n    return arr;\n  } else {\n    return new Uint32Array(arr);\n  }\n}\nvar EMPTY_LINE_TOKENS, ContiguousTokensEditing;\nvar init_contiguousTokensEditing = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousTokensEditing.js\"() {\n    init_lineTokens();\n    EMPTY_LINE_TOKENS = new Uint32Array(0).buffer;\n    ContiguousTokensEditing = class _ContiguousTokensEditing {\n      static deleteBeginning(lineTokens, toChIndex) {\n        if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n          return lineTokens;\n        }\n        return _ContiguousTokensEditing.delete(lineTokens, 0, toChIndex);\n      }\n      static deleteEnding(lineTokens, fromChIndex) {\n        if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n          return lineTokens;\n        }\n        const tokens = toUint32Array(lineTokens);\n        const lineTextLength = tokens[tokens.length - 2];\n        return _ContiguousTokensEditing.delete(lineTokens, fromChIndex, lineTextLength);\n      }\n      static delete(lineTokens, fromChIndex, toChIndex) {\n        if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS || fromChIndex === toChIndex) {\n          return lineTokens;\n        }\n        const tokens = toUint32Array(lineTokens);\n        const tokensCount = tokens.length \u003e\u003e\u003e 1;\n        if (fromChIndex === 0 \u0026\u0026 tokens[tokens.length - 2] === toChIndex) {\n          return EMPTY_LINE_TOKENS;\n        }\n        const fromTokenIndex = LineTokens.findIndexInTokensArray(tokens, fromChIndex);\n        const fromTokenStartOffset = fromTokenIndex \u003e 0 ? tokens[fromTokenIndex - 1 \u003c\u003c 1] : 0;\n        const fromTokenEndOffset = tokens[fromTokenIndex \u003c\u003c 1];\n        if (toChIndex \u003c fromTokenEndOffset) {\n          const delta2 = toChIndex - fromChIndex;\n          for (let i2 = fromTokenIndex; i2 \u003c tokensCount; i2++) {\n            tokens[i2 \u003c\u003c 1] -= delta2;\n          }\n          return lineTokens;\n        }\n        let dest;\n        let lastEnd;\n        if (fromTokenStartOffset !== fromChIndex) {\n          tokens[fromTokenIndex \u003c\u003c 1] = fromChIndex;\n          dest = fromTokenIndex + 1 \u003c\u003c 1;\n          lastEnd = fromChIndex;\n        } else {\n          dest = fromTokenIndex \u003c\u003c 1;\n          lastEnd = fromTokenStartOffset;\n        }\n        const delta = toChIndex - fromChIndex;\n        for (let tokenIndex = fromTokenIndex + 1; tokenIndex \u003c tokensCount; tokenIndex++) {\n          const tokenEndOffset = tokens[tokenIndex \u003c\u003c 1] - delta;\n          if (tokenEndOffset \u003e lastEnd) {\n            tokens[dest++] = tokenEndOffset;\n            tokens[dest++] = tokens[(tokenIndex \u003c\u003c 1) + 1];\n            lastEnd = tokenEndOffset;\n          }\n        }\n        if (dest === tokens.length) {\n          return lineTokens;\n        }\n        const tmp = new Uint32Array(dest);\n        tmp.set(tokens.subarray(0, dest), 0);\n        return tmp.buffer;\n      }\n      static append(lineTokens, _otherTokens) {\n        if (_otherTokens === EMPTY_LINE_TOKENS) {\n          return lineTokens;\n        }\n        if (lineTokens === EMPTY_LINE_TOKENS) {\n          return _otherTokens;\n        }\n        if (lineTokens === null) {\n          return lineTokens;\n        }\n        if (_otherTokens === null) {\n          return null;\n        }\n        const myTokens = toUint32Array(lineTokens);\n        const otherTokens = toUint32Array(_otherTokens);\n        const otherTokensCount = otherTokens.length \u003e\u003e\u003e 1;\n        const result = new Uint32Array(myTokens.length + otherTokens.length);\n        result.set(myTokens, 0);\n        let dest = myTokens.length;\n        const delta = myTokens[myTokens.length - 2];\n        for (let i2 = 0; i2 \u003c otherTokensCount; i2++) {\n          result[dest++] = otherTokens[i2 \u003c\u003c 1] + delta;\n          result[dest++] = otherTokens[(i2 \u003c\u003c 1) + 1];\n        }\n        return result.buffer;\n      }\n      static insert(lineTokens, chIndex, textLength) {\n        if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n          return lineTokens;\n        }\n        const tokens = toUint32Array(lineTokens);\n        const tokensCount = tokens.length \u003e\u003e\u003e 1;\n        let fromTokenIndex = LineTokens.findIndexInTokensArray(tokens, chIndex);\n        if (fromTokenIndex \u003e 0) {\n          const fromTokenStartOffset = tokens[fromTokenIndex - 1 \u003c\u003c 1];\n          if (fromTokenStartOffset === chIndex) {\n            fromTokenIndex--;\n          }\n        }\n        for (let tokenIndex = fromTokenIndex; tokenIndex \u003c tokensCount; tokenIndex++) {\n          tokens[tokenIndex \u003c\u003c 1] += textLength;\n        }\n        return lineTokens;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousTokensStore.js\nfunction getDefaultMetadata(topLevelLanguageId) {\n  return (topLevelLanguageId \u003c\u003c 0 | 0 \u003c\u003c 8 | 0 \u003c\u003c 11 | 1 \u003c\u003c 15 | 2 \u003c\u003c 24 | 1024) \u003e\u003e\u003e 0;\n}\nvar ContiguousTokensStore;\nvar init_contiguousTokensStore = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/contiguousTokensStore.js\"() {\n    init_arrays();\n    init_position();\n    init_contiguousTokensEditing();\n    init_lineTokens();\n    init_encodedTokenAttributes();\n    ContiguousTokensStore = class _ContiguousTokensStore {\n      constructor(languageIdCodec) {\n        this._lineTokens = [];\n        this._len = 0;\n        this._languageIdCodec = languageIdCodec;\n      }\n      flush() {\n        this._lineTokens = [];\n        this._len = 0;\n      }\n      get hasTokens() {\n        return this._lineTokens.length \u003e 0;\n      }\n      getTokens(topLevelLanguageId, lineIndex, lineText) {\n        let rawLineTokens = null;\n        if (lineIndex \u003c this._len) {\n          rawLineTokens = this._lineTokens[lineIndex];\n        }\n        if (rawLineTokens !== null \u0026\u0026 rawLineTokens !== EMPTY_LINE_TOKENS) {\n          return new LineTokens(toUint32Array(rawLineTokens), lineText, this._languageIdCodec);\n        }\n        const lineTokens = new Uint32Array(2);\n        lineTokens[0] = lineText.length;\n        lineTokens[1] = getDefaultMetadata(this._languageIdCodec.encodeLanguageId(topLevelLanguageId));\n        return new LineTokens(lineTokens, lineText, this._languageIdCodec);\n      }\n      static _massageTokens(topLevelLanguageId, lineTextLength, _tokens) {\n        const tokens = _tokens ? toUint32Array(_tokens) : null;\n        if (lineTextLength === 0) {\n          let hasDifferentLanguageId = false;\n          if (tokens \u0026\u0026 tokens.length \u003e 1) {\n            hasDifferentLanguageId = TokenMetadata.getLanguageId(tokens[1]) !== topLevelLanguageId;\n          }\n          if (!hasDifferentLanguageId) {\n            return EMPTY_LINE_TOKENS;\n          }\n        }\n        if (!tokens || tokens.length === 0) {\n          const tokens2 = new Uint32Array(2);\n          tokens2[0] = lineTextLength;\n          tokens2[1] = getDefaultMetadata(topLevelLanguageId);\n          return tokens2.buffer;\n        }\n        tokens[tokens.length - 2] = lineTextLength;\n        if (tokens.byteOffset === 0 \u0026\u0026 tokens.byteLength === tokens.buffer.byteLength) {\n          return tokens.buffer;\n        }\n        return tokens;\n      }\n      _ensureLine(lineIndex) {\n        while (lineIndex \u003e= this._len) {\n          this._lineTokens[this._len] = null;\n          this._len++;\n        }\n      }\n      _deleteLines(start, deleteCount) {\n        if (deleteCount === 0) {\n          return;\n        }\n        if (start + deleteCount \u003e this._len) {\n          deleteCount = this._len - start;\n        }\n        this._lineTokens.splice(start, deleteCount);\n        this._len -= deleteCount;\n      }\n      _insertLines(insertIndex, insertCount) {\n        if (insertCount === 0) {\n          return;\n        }\n        const lineTokens = [];\n        for (let i2 = 0; i2 \u003c insertCount; i2++) {\n          lineTokens[i2] = null;\n        }\n        this._lineTokens = arrayInsert(this._lineTokens, insertIndex, lineTokens);\n        this._len += insertCount;\n      }\n      setTokens(topLevelLanguageId, lineIndex, lineTextLength, _tokens, checkEquality) {\n        const tokens = _ContiguousTokensStore._massageTokens(this._languageIdCodec.encodeLanguageId(topLevelLanguageId), lineTextLength, _tokens);\n        this._ensureLine(lineIndex);\n        const oldTokens = this._lineTokens[lineIndex];\n        this._lineTokens[lineIndex] = tokens;\n        if (checkEquality) {\n          return !_ContiguousTokensStore._equals(oldTokens, tokens);\n        }\n        return false;\n      }\n      static _equals(_a3, _b2) {\n        if (!_a3 || !_b2) {\n          return !_a3 \u0026\u0026 !_b2;\n        }\n        const a = toUint32Array(_a3);\n        const b = toUint32Array(_b2);\n        if (a.length !== b.length) {\n          return false;\n        }\n        for (let i2 = 0, len = a.length; i2 \u003c len; i2++) {\n          if (a[i2] !== b[i2]) {\n            return false;\n          }\n        }\n        return true;\n      }\n      //#region Editing\n      acceptEdit(range2, eolCount, firstLineLength) {\n        this._acceptDeleteRange(range2);\n        this._acceptInsertText(new Position(range2.startLineNumber, range2.startColumn), eolCount, firstLineLength);\n      }\n      _acceptDeleteRange(range2) {\n        const firstLineIndex = range2.startLineNumber - 1;\n        if (firstLineIndex \u003e= this._len) {\n          return;\n        }\n        if (range2.startLineNumber === range2.endLineNumber) {\n          if (range2.startColumn === range2.endColumn) {\n            return;\n          }\n          this._lineTokens[firstLineIndex] = ContiguousTokensEditing.delete(this._lineTokens[firstLineIndex], range2.startColumn - 1, range2.endColumn - 1);\n          return;\n        }\n        this._lineTokens[firstLineIndex] = ContiguousTokensEditing.deleteEnding(this._lineTokens[firstLineIndex], range2.startColumn - 1);\n        const lastLineIndex = range2.endLineNumber - 1;\n        let lastLineTokens = null;\n        if (lastLineIndex \u003c this._len) {\n          lastLineTokens = ContiguousTokensEditing.deleteBeginning(this._lineTokens[lastLineIndex], range2.endColumn - 1);\n        }\n        this._lineTokens[firstLineIndex] = ContiguousTokensEditing.append(this._lineTokens[firstLineIndex], lastLineTokens);\n        this._deleteLines(range2.startLineNumber, range2.endLineNumber - range2.startLineNumber);\n      }\n      _acceptInsertText(position, eolCount, firstLineLength) {\n        if (eolCount === 0 \u0026\u0026 firstLineLength === 0) {\n          return;\n        }\n        const lineIndex = position.lineNumber - 1;\n        if (lineIndex \u003e= this._len) {\n          return;\n        }\n        if (eolCount === 0) {\n          this._lineTokens[lineIndex] = ContiguousTokensEditing.insert(this._lineTokens[lineIndex], position.column - 1, firstLineLength);\n          return;\n        }\n        this._lineTokens[lineIndex] = ContiguousTokensEditing.deleteEnding(this._lineTokens[lineIndex], position.column - 1);\n        this._lineTokens[lineIndex] = ContiguousTokensEditing.insert(this._lineTokens[lineIndex], position.column - 1, firstLineLength);\n        this._insertLines(position.lineNumber, eolCount);\n      }\n      //#endregion\n      setMultilineTokens(tokens, textModel) {\n        if (tokens.length === 0) {\n          return { changes: [] };\n        }\n        const ranges = [];\n        for (let i2 = 0, len = tokens.length; i2 \u003c len; i2++) {\n          const element = tokens[i2];\n          let minChangedLineNumber = 0;\n          let maxChangedLineNumber = 0;\n          let hasChange = false;\n          for (let lineNumber = element.startLineNumber; lineNumber \u003c= element.endLineNumber; lineNumber++) {\n            if (hasChange) {\n              this.setTokens(textModel.getLanguageId(), lineNumber - 1, textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), false);\n              maxChangedLineNumber = lineNumber;\n            } else {\n              const lineHasChange = this.setTokens(textModel.getLanguageId(), lineNumber - 1, textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), true);\n              if (lineHasChange) {\n                hasChange = true;\n                minChangedLineNumber = lineNumber;\n                maxChangedLineNumber = lineNumber;\n              }\n            }\n          }\n          if (hasChange) {\n            ranges.push({ fromLineNumber: minChangedLineNumber, toLineNumber: maxChangedLineNumber });\n          }\n        }\n        return { changes: ranges };\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/tokenizerSyntaxTokenBackend.js\nvar TokenizerSyntaxTokenBackend;\nvar init_tokenizerSyntaxTokenBackend = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/tokenizerSyntaxTokenBackend.js\"() {\n    init_errors();\n    init_event();\n    init_lifecycle();\n    init_eolCounter();\n    init_position();\n    init_lineRange();\n    init_languages();\n    init_contiguousMultilineTokensBuilder();\n    init_contiguousTokensStore();\n    init_textModelTokens();\n    init_abstractSyntaxTokenBackend();\n    TokenizerSyntaxTokenBackend = class extends AbstractSyntaxTokenBackend {\n      constructor(languageIdCodec, textModel, getLanguageId, attachedViews) {\n        super(languageIdCodec, textModel);\n        this.getLanguageId = getLanguageId;\n        this._tokenizer = null;\n        this._backgroundTokenizationState = 1;\n        this._onDidChangeBackgroundTokenizationState = this._register(new Emitter());\n        this.onDidChangeBackgroundTokenizationState = this._onDidChangeBackgroundTokenizationState.event;\n        this._defaultBackgroundTokenizer = null;\n        this._backgroundTokenizer = this._register(new MutableDisposable());\n        this._tokens = new ContiguousTokensStore(this._languageIdCodec);\n        this._debugBackgroundTokenizer = this._register(new MutableDisposable());\n        this._attachedViewStates = this._register(new DisposableMap());\n        this._register(TokenizationRegistry2.onDidChange((e) =\u003e {\n          const languageId = this.getLanguageId();\n          if (e.changedLanguages.indexOf(languageId) === -1) {\n            return;\n          }\n          this.todo_resetTokenization();\n        }));\n        this.todo_resetTokenization();\n        this._register(attachedViews.onDidChangeVisibleRanges(({ view, state }) =\u003e {\n          if (state) {\n            let existing = this._attachedViewStates.get(view);\n            if (!existing) {\n              existing = new AttachedViewHandler(() =\u003e this.refreshRanges(existing.lineRanges));\n              this._attachedViewStates.set(view, existing);\n            }\n            existing.handleStateChange(state);\n          } else {\n            this._attachedViewStates.deleteAndDispose(view);\n          }\n        }));\n      }\n      todo_resetTokenization(fireTokenChangeEvent = true) {\n        this._tokens.flush();\n        this._debugBackgroundTokens?.flush();\n        if (this._debugBackgroundStates) {\n          this._debugBackgroundStates = new TrackingTokenizationStateStore(this._textModel.getLineCount());\n        }\n        if (fireTokenChangeEvent) {\n          this._onDidChangeTokens.fire({\n            semanticTokensApplied: false,\n            ranges: [\n              {\n                fromLineNumber: 1,\n                toLineNumber: this._textModel.getLineCount()\n              }\n            ]\n          });\n        }\n        const initializeTokenization = () =\u003e {\n          if (this._textModel.isTooLargeForTokenization()) {\n            return [null, null];\n          }\n          const tokenizationSupport2 = TokenizationRegistry2.get(this.getLanguageId());\n          if (!tokenizationSupport2) {\n            return [null, null];\n          }\n          let initialState2;\n          try {\n            initialState2 = tokenizationSupport2.getInitialState();\n          } catch (e) {\n            onUnexpectedError(e);\n            return [null, null];\n          }\n          return [tokenizationSupport2, initialState2];\n        };\n        const [tokenizationSupport, initialState] = initializeTokenization();\n        if (tokenizationSupport \u0026\u0026 initialState) {\n          this._tokenizer = new TokenizerWithStateStoreAndTextModel(this._textModel.getLineCount(), tokenizationSupport, this._textModel, this._languageIdCodec);\n        } else {\n          this._tokenizer = null;\n        }\n        this._backgroundTokenizer.clear();\n        this._defaultBackgroundTokenizer = null;\n        if (this._tokenizer) {\n          const b = {\n            setTokens: (tokens) =\u003e {\n              this.setTokens(tokens);\n            },\n            backgroundTokenizationFinished: () =\u003e {\n              if (this._backgroundTokenizationState === 2) {\n                return;\n              }\n              const newState = 2;\n              this._backgroundTokenizationState = newState;\n              this._onDidChangeBackgroundTokenizationState.fire();\n            },\n            setEndState: (lineNumber, state) =\u003e {\n              if (!this._tokenizer) {\n                return;\n              }\n              const firstInvalidEndStateLineNumber = this._tokenizer.store.getFirstInvalidEndStateLineNumber();\n              if (firstInvalidEndStateLineNumber !== null \u0026\u0026 lineNumber \u003e= firstInvalidEndStateLineNumber) {\n                this._tokenizer?.store.setEndState(lineNumber, state);\n              }\n            }\n          };\n          if (tokenizationSupport \u0026\u0026 tokenizationSupport.createBackgroundTokenizer \u0026\u0026 !tokenizationSupport.backgroundTokenizerShouldOnlyVerifyTokens) {\n            this._backgroundTokenizer.value = tokenizationSupport.createBackgroundTokenizer(this._textModel, b);\n          }\n          if (!this._backgroundTokenizer.value \u0026\u0026 !this._textModel.isTooLargeForTokenization()) {\n            this._backgroundTokenizer.value = this._defaultBackgroundTokenizer = new DefaultBackgroundTokenizer(this._tokenizer, b);\n            this._defaultBackgroundTokenizer.handleChanges();\n          }\n          if (tokenizationSupport?.backgroundTokenizerShouldOnlyVerifyTokens \u0026\u0026 tokenizationSupport.createBackgroundTokenizer) {\n            this._debugBackgroundTokens = new ContiguousTokensStore(this._languageIdCodec);\n            this._debugBackgroundStates = new TrackingTokenizationStateStore(this._textModel.getLineCount());\n            this._debugBackgroundTokenizer.clear();\n            this._debugBackgroundTokenizer.value = tokenizationSupport.createBackgroundTokenizer(this._textModel, {\n              setTokens: (tokens) =\u003e {\n                this._debugBackgroundTokens?.setMultilineTokens(tokens, this._textModel);\n              },\n              backgroundTokenizationFinished() {\n              },\n              setEndState: (lineNumber, state) =\u003e {\n                this._debugBackgroundStates?.setEndState(lineNumber, state);\n              }\n            });\n          } else {\n            this._debugBackgroundTokens = void 0;\n            this._debugBackgroundStates = void 0;\n            this._debugBackgroundTokenizer.value = void 0;\n          }\n        }\n        this.refreshAllVisibleLineTokens();\n      }\n      handleDidChangeAttached() {\n        this._defaultBackgroundTokenizer?.handleChanges();\n      }\n      handleDidChangeContent(e) {\n        if (e.isFlush) {\n          this.todo_resetTokenization(false);\n        } else if (!e.isEolChange) {\n          for (const c of e.changes) {\n            const [eolCount, firstLineLength] = countEOL(c.text);\n            this._tokens.acceptEdit(c.range, eolCount, firstLineLength);\n            this._debugBackgroundTokens?.acceptEdit(c.range, eolCount, firstLineLength);\n          }\n          this._debugBackgroundStates?.acceptChanges(e.changes);\n          if (this._tokenizer) {\n            this._tokenizer.store.acceptChanges(e.changes);\n          }\n          this._defaultBackgroundTokenizer?.handleChanges();\n        }\n      }\n      setTokens(tokens) {\n        const { changes } = this._tokens.setMultilineTokens(tokens, this._textModel);\n        if (changes.length \u003e 0) {\n          this._onDidChangeTokens.fire({ semanticTokensApplied: false, ranges: changes });\n        }\n        return { changes };\n      }\n      refreshAllVisibleLineTokens() {\n        const ranges = LineRange.joinMany([...this._attachedViewStates].map(([_, s]) =\u003e s.lineRanges));\n        this.refreshRanges(ranges);\n      }\n      refreshRanges(ranges) {\n        for (const range2 of ranges) {\n          this.refreshRange(range2.startLineNumber, range2.endLineNumberExclusive - 1);\n        }\n      }\n      refreshRange(startLineNumber, endLineNumber) {\n        if (!this._tokenizer) {\n          return;\n        }\n        startLineNumber = Math.max(1, Math.min(this._textModel.getLineCount(), startLineNumber));\n        endLineNumber = Math.min(this._textModel.getLineCount(), endLineNumber);\n        const builder = new ContiguousMultilineTokensBuilder();\n        const { heuristicTokens } = this._tokenizer.tokenizeHeuristically(builder, startLineNumber, endLineNumber);\n        const changedTokens = this.setTokens(builder.finalize());\n        if (heuristicTokens) {\n          for (const c of changedTokens.changes) {\n            this._backgroundTokenizer.value?.requestTokens(c.fromLineNumber, c.toLineNumber + 1);\n          }\n        }\n        this._defaultBackgroundTokenizer?.checkFinished();\n      }\n      forceTokenization(lineNumber) {\n        const builder = new ContiguousMultilineTokensBuilder();\n        this._tokenizer?.updateTokensUntilLine(builder, lineNumber);\n        this.setTokens(builder.finalize());\n        this._defaultBackgroundTokenizer?.checkFinished();\n      }\n      hasAccurateTokensForLine(lineNumber) {\n        if (!this._tokenizer) {\n          return true;\n        }\n        return this._tokenizer.hasAccurateTokensForLine(lineNumber);\n      }\n      isCheapToTokenize(lineNumber) {\n        if (!this._tokenizer) {\n          return true;\n        }\n        return this._tokenizer.isCheapToTokenize(lineNumber);\n      }\n      getLineTokens(lineNumber) {\n        const lineText = this._textModel.getLineContent(lineNumber);\n        const result = this._tokens.getTokens(this._textModel.getLanguageId(), lineNumber - 1, lineText);\n        if (this._debugBackgroundTokens \u0026\u0026 this._debugBackgroundStates \u0026\u0026 this._tokenizer) {\n          if (this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax() \u003e lineNumber \u0026\u0026 this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax() \u003e lineNumber) {\n            const backgroundResult = this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(), lineNumber - 1, lineText);\n            if (!result.equals(backgroundResult) \u0026\u0026 this._debugBackgroundTokenizer.value?.reportMismatchingTokens) {\n              this._debugBackgroundTokenizer.value.reportMismatchingTokens(lineNumber);\n            }\n          }\n        }\n        return result;\n      }\n      getTokenTypeIfInsertingCharacter(lineNumber, column, character) {\n        if (!this._tokenizer) {\n          return 0;\n        }\n        const position = this._textModel.validatePosition(new Position(lineNumber, column));\n        this.forceTokenization(position.lineNumber);\n        return this._tokenizer.getTokenTypeIfInsertingCharacter(position, character);\n      }\n      tokenizeLinesAt(lineNumber, lines) {\n        if (!this._tokenizer) {\n          return null;\n        }\n        this.forceTokenization(lineNumber);\n        return this._tokenizer.tokenizeLinesAt(lineNumber, lines);\n      }\n      get hasTokens() {\n        return this._tokens.hasTokens;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/tokenizationTextModelPart.js\nvar __decorate24, __param22, TokenizationTextModelPart_1, TokenizationTextModelPart;\nvar init_tokenizationTextModelPart = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/tokens/tokenizationTextModelPart.js\"() {\n    init_errors();\n    init_event();\n    init_eolCounter();\n    init_position();\n    init_wordHelper();\n    init_language();\n    init_languageConfigurationRegistry();\n    init_textModelPart();\n    init_treeSitterSyntaxTokenBackend();\n    init_sparseTokensStore();\n    init_instantiation();\n    init_tokenizerSyntaxTokenBackend();\n    init_treeSitterLibraryService();\n    init_observable();\n    __decorate24 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param22 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    TokenizationTextModelPart = TokenizationTextModelPart_1 = class TokenizationTextModelPart2 extends TextModelPart {\n      constructor(_textModel, _bracketPairsTextModelPart, _languageId, _attachedViews, _languageService, _languageConfigurationService, _instantiationService, _treeSitterLibraryService) {\n        super();\n        this._textModel = _textModel;\n        this._bracketPairsTextModelPart = _bracketPairsTextModelPart;\n        this._languageId = _languageId;\n        this._attachedViews = _attachedViews;\n        this._languageService = _languageService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this._instantiationService = _instantiationService;\n        this._treeSitterLibraryService = _treeSitterLibraryService;\n        this._languageIdObs = observableValue(this, this._languageId);\n        this._useTreeSitter = derived(this, (reader) =\u003e {\n          const languageId = this._languageIdObs.read(reader);\n          return this._treeSitterLibraryService.supportsLanguage(languageId, reader);\n        });\n        this.tokens = derived(this, (reader) =\u003e {\n          let tokens;\n          if (this._useTreeSitter.read(reader)) {\n            tokens = reader.store.add(this._instantiationService.createInstance(TreeSitterSyntaxTokenBackend, this._languageIdObs, this._languageService.languageIdCodec, this._textModel, this._attachedViews.visibleLineRanges));\n          } else {\n            tokens = reader.store.add(new TokenizerSyntaxTokenBackend(this._languageService.languageIdCodec, this._textModel, () =\u003e this._languageId, this._attachedViews));\n          }\n          reader.store.add(tokens.onDidChangeTokens((e) =\u003e {\n            this._emitModelTokensChangedEvent(e);\n          }));\n          reader.store.add(tokens.onDidChangeBackgroundTokenizationState((e) =\u003e {\n            this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState();\n          }));\n          return tokens;\n        });\n        let hadTokens = false;\n        this.tokens.recomputeInitiallyAndOnChange(this._store, (value) =\u003e {\n          if (hadTokens) {\n            value.todo_resetTokenization();\n          }\n          hadTokens = true;\n        });\n        this._semanticTokens = new SparseTokensStore(this._languageService.languageIdCodec);\n        this._onDidChangeLanguage = this._register(new Emitter());\n        this.onDidChangeLanguage = this._onDidChangeLanguage.event;\n        this._onDidChangeLanguageConfiguration = this._register(new Emitter());\n        this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event;\n        this._onDidChangeTokens = this._register(new Emitter());\n        this.onDidChangeTokens = this._onDidChangeTokens.event;\n      }\n      handleLanguageConfigurationServiceChange(e) {\n        if (e.affects(this._languageId)) {\n          this._onDidChangeLanguageConfiguration.fire({});\n        }\n      }\n      handleDidChangeContent(e) {\n        if (e.isFlush) {\n          this._semanticTokens.flush();\n        } else if (!e.isEolChange) {\n          for (const c of e.changes) {\n            const [eolCount, firstLineLength, lastLineLength] = countEOL(c.text);\n            this._semanticTokens.acceptEdit(\n              c.range,\n              eolCount,\n              firstLineLength,\n              lastLineLength,\n              c.text.length \u003e 0 ? c.text.charCodeAt(0) : 0\n              /* CharCode.Null */\n            );\n          }\n        }\n        this.tokens.get().handleDidChangeContent(e);\n      }\n      handleDidChangeAttached() {\n        this.tokens.get().handleDidChangeAttached();\n      }\n      /**\n       * Includes grammar and semantic tokens.\n       */\n      getLineTokens(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        const syntacticTokens = this.tokens.get().getLineTokens(lineNumber);\n        return this._semanticTokens.addSparseTokens(lineNumber, syntacticTokens);\n      }\n      _emitModelTokensChangedEvent(e) {\n        if (!this._textModel._isDisposing()) {\n          this._bracketPairsTextModelPart.handleDidChangeTokens(e);\n          this._onDidChangeTokens.fire(e);\n        }\n      }\n      // #region Grammar Tokens\n      validateLineNumber(lineNumber) {\n        if (lineNumber \u003c 1 || lineNumber \u003e this._textModel.getLineCount()) {\n          throw new BugIndicatingError(\"Illegal value for lineNumber\");\n        }\n      }\n      get hasTokens() {\n        return this.tokens.get().hasTokens;\n      }\n      resetTokenization() {\n        this.tokens.get().todo_resetTokenization();\n      }\n      get backgroundTokenizationState() {\n        return this.tokens.get().backgroundTokenizationState;\n      }\n      forceTokenization(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        this.tokens.get().forceTokenization(lineNumber);\n      }\n      hasAccurateTokensForLine(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        return this.tokens.get().hasAccurateTokensForLine(lineNumber);\n      }\n      isCheapToTokenize(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        return this.tokens.get().isCheapToTokenize(lineNumber);\n      }\n      tokenizeIfCheap(lineNumber) {\n        this.validateLineNumber(lineNumber);\n        this.tokens.get().tokenizeIfCheap(lineNumber);\n      }\n      getTokenTypeIfInsertingCharacter(lineNumber, column, character) {\n        return this.tokens.get().getTokenTypeIfInsertingCharacter(lineNumber, column, character);\n      }\n      tokenizeLinesAt(lineNumber, lines) {\n        return this.tokens.get().tokenizeLinesAt(lineNumber, lines);\n      }\n      // #endregion\n      // #region Semantic Tokens\n      setSemanticTokens(tokens, isComplete) {\n        this._semanticTokens.set(tokens, isComplete, this._textModel);\n        this._emitModelTokensChangedEvent({\n          semanticTokensApplied: tokens !== null,\n          ranges: [{ fromLineNumber: 1, toLineNumber: this._textModel.getLineCount() }]\n        });\n      }\n      hasCompleteSemanticTokens() {\n        return this._semanticTokens.isComplete();\n      }\n      hasSomeSemanticTokens() {\n        return !this._semanticTokens.isEmpty();\n      }\n      setPartialSemanticTokens(range2, tokens) {\n        if (this.hasCompleteSemanticTokens()) {\n          return;\n        }\n        const changedRange = this._textModel.validateRange(this._semanticTokens.setPartial(range2, tokens));\n        this._emitModelTokensChangedEvent({\n          semanticTokensApplied: true,\n          ranges: [\n            {\n              fromLineNumber: changedRange.startLineNumber,\n              toLineNumber: changedRange.endLineNumber\n            }\n          ]\n        });\n      }\n      // #endregion\n      // #region Utility Methods\n      getWordAtPosition(_position) {\n        this.assertNotDisposed();\n        const position = this._textModel.validatePosition(_position);\n        const lineContent = this._textModel.getLineContent(position.lineNumber);\n        const lineTokens = this.getLineTokens(position.lineNumber);\n        const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n        const [rbStartOffset, rbEndOffset] = TokenizationTextModelPart_1._findLanguageBoundaries(lineTokens, tokenIndex);\n        const rightBiasedWord = getWordAtText(position.column, this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex)).getWordDefinition(), lineContent.substring(rbStartOffset, rbEndOffset), rbStartOffset);\n        if (rightBiasedWord \u0026\u0026 rightBiasedWord.startColumn \u003c= _position.column \u0026\u0026 _position.column \u003c= rightBiasedWord.endColumn) {\n          return rightBiasedWord;\n        }\n        if (tokenIndex \u003e 0 \u0026\u0026 rbStartOffset === position.column - 1) {\n          const [lbStartOffset, lbEndOffset] = TokenizationTextModelPart_1._findLanguageBoundaries(lineTokens, tokenIndex - 1);\n          const leftBiasedWord = getWordAtText(position.column, this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex - 1)).getWordDefinition(), lineContent.substring(lbStartOffset, lbEndOffset), lbStartOffset);\n          if (leftBiasedWord \u0026\u0026 leftBiasedWord.startColumn \u003c= _position.column \u0026\u0026 _position.column \u003c= leftBiasedWord.endColumn) {\n            return leftBiasedWord;\n          }\n        }\n        return null;\n      }\n      getLanguageConfiguration(languageId) {\n        return this._languageConfigurationService.getLanguageConfiguration(languageId);\n      }\n      static _findLanguageBoundaries(lineTokens, tokenIndex) {\n        const languageId = lineTokens.getLanguageId(tokenIndex);\n        let startOffset = 0;\n        for (let i2 = tokenIndex; i2 \u003e= 0 \u0026\u0026 lineTokens.getLanguageId(i2) === languageId; i2--) {\n          startOffset = lineTokens.getStartOffset(i2);\n        }\n        let endOffset = lineTokens.getLineContent().length;\n        for (let i2 = tokenIndex, tokenCount = lineTokens.getCount(); i2 \u003c tokenCount \u0026\u0026 lineTokens.getLanguageId(i2) === languageId; i2++) {\n          endOffset = lineTokens.getEndOffset(i2);\n        }\n        return [startOffset, endOffset];\n      }\n      getWordUntilPosition(position) {\n        const wordAtPosition = this.getWordAtPosition(position);\n        if (!wordAtPosition) {\n          return { word: \"\", startColumn: position.column, endColumn: position.column };\n        }\n        return {\n          word: wordAtPosition.word.substr(0, position.column - wordAtPosition.startColumn),\n          startColumn: wordAtPosition.startColumn,\n          endColumn: position.column\n        };\n      }\n      // #endregion\n      // #region Language Id handling\n      getLanguageId() {\n        return this._languageId;\n      }\n      getLanguageIdAtPosition(lineNumber, column) {\n        const position = this._textModel.validatePosition(new Position(lineNumber, column));\n        const lineTokens = this.getLineTokens(position.lineNumber);\n        return lineTokens.getLanguageId(lineTokens.findTokenIndexAtOffset(position.column - 1));\n      }\n      setLanguageId(languageId, source = \"api\") {\n        if (this._languageId === languageId) {\n          return;\n        }\n        const e = {\n          oldLanguage: this._languageId,\n          newLanguage: languageId,\n          source\n        };\n        this._languageId = languageId;\n        this._languageIdObs.set(languageId, void 0);\n        this._bracketPairsTextModelPart.handleDidChangeLanguage(e);\n        this._onDidChangeLanguage.fire(e);\n        this._onDidChangeLanguageConfiguration.fire({});\n      }\n    };\n    TokenizationTextModelPart = TokenizationTextModelPart_1 = __decorate24([\n      __param22(4, ILanguageService),\n      __param22(5, ILanguageConfigurationService),\n      __param22(6, IInstantiationService),\n      __param22(7, ITreeSitterLibraryService)\n    ], TokenizationTextModelPart);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/undoRedo/common/undoRedo.js\nvar IUndoRedoService, ResourceEditStackSnapshot, UndoRedoGroup, UndoRedoSource;\nvar init_undoRedo = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/undoRedo/common/undoRedo.js\"() {\n    init_instantiation();\n    IUndoRedoService = createDecorator(\"undoRedoService\");\n    ResourceEditStackSnapshot = class {\n      constructor(resource, elements) {\n        this.resource = resource;\n        this.elements = elements;\n      }\n    };\n    UndoRedoGroup = class _UndoRedoGroup {\n      static {\n        this._ID = 0;\n      }\n      constructor() {\n        this.id = _UndoRedoGroup._ID++;\n        this.order = 1;\n      }\n      nextOrder() {\n        if (this.id === 0) {\n          return 0;\n        }\n        return this.order++;\n      }\n      static {\n        this.None = new _UndoRedoGroup();\n      }\n    };\n    UndoRedoSource = class _UndoRedoSource {\n      static {\n        this._ID = 0;\n      }\n      constructor() {\n        this.id = _UndoRedoSource._ID++;\n        this.order = 1;\n      }\n      nextOrder() {\n        if (this.id === 0) {\n          return 0;\n        }\n        return this.order++;\n      }\n      static {\n        this.None = new _UndoRedoSource();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/collections.js\nfunction groupByMap(data, groupFn) {\n  const result = /* @__PURE__ */ new Map();\n  for (const element of data) {\n    const key = groupFn(element);\n    let target = result.get(key);\n    if (!target) {\n      target = [];\n      result.set(key, target);\n    }\n    target.push(element);\n  }\n  return result;\n}\nfunction diffSets(before, after2) {\n  const removed = [];\n  const added = [];\n  for (const element of before) {\n    if (!after2.has(element)) {\n      removed.push(element);\n    }\n  }\n  for (const element of after2) {\n    if (!before.has(element)) {\n      added.push(element);\n    }\n  }\n  return { removed, added };\n}\nfunction intersection(setA, setB) {\n  const result = /* @__PURE__ */ new Set();\n  for (const elem of setB) {\n    if (setA.has(elem)) {\n      result.add(elem);\n    }\n  }\n  return result;\n}\nvar _a2, SetWithKey;\nvar init_collections = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/collections.js\"() {\n    SetWithKey = class {\n      static {\n        _a2 = Symbol.toStringTag;\n      }\n      constructor(values, toKey) {\n        this.toKey = toKey;\n        this._map = /* @__PURE__ */ new Map();\n        this[_a2] = \"SetWithKey\";\n        for (const value of values) {\n          this.add(value);\n        }\n      }\n      get size() {\n        return this._map.size;\n      }\n      add(value) {\n        const key = this.toKey(value);\n        this._map.set(key, value);\n        return this;\n      }\n      delete(value) {\n        return this._map.delete(this.toKey(value));\n      }\n      has(value) {\n        return this._map.has(this.toKey(value));\n      }\n      *entries() {\n        for (const entry of this._map.values()) {\n          yield [entry, entry];\n        }\n      }\n      keys() {\n        return this.values();\n      }\n      *values() {\n        for (const entry of this._map.values()) {\n          yield entry;\n        }\n      }\n      clear() {\n        this._map.clear();\n      }\n      forEach(callbackfn, thisArg) {\n        this._map.forEach((entry) =\u003e callbackfn.call(thisArg, entry, entry, this));\n      }\n      [Symbol.iterator]() {\n        return this.values();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModel.js\nfunction createTextBufferFactory(text2) {\n  const builder = new PieceTreeTextBufferBuilder();\n  builder.acceptChunk(text2);\n  return builder.finish();\n}\nfunction createTextBufferFactoryFromSnapshot(snapshot) {\n  const builder = new PieceTreeTextBufferBuilder();\n  let chunk;\n  while (typeof (chunk = snapshot.read()) === \"string\") {\n    builder.acceptChunk(chunk);\n  }\n  return builder.finish();\n}\nfunction createTextBuffer(value, defaultEOL) {\n  let factory;\n  if (typeof value === \"string\") {\n    factory = createTextBufferFactory(value);\n  } else if (isITextSnapshot(value)) {\n    factory = createTextBufferFactoryFromSnapshot(value);\n  } else {\n    factory = value;\n  }\n  return factory.create(defaultEOL);\n}\nfunction indentOfLine(line) {\n  let indent = 0;\n  for (const c of line) {\n    if (c === \" \" || c === \"\t\") {\n      indent++;\n    } else {\n      break;\n    }\n  }\n  return indent;\n}\nfunction isNodeInOverviewRuler(node) {\n  return node.options.overviewRuler \u0026\u0026 node.options.overviewRuler.color ? true : false;\n}\nfunction isOptionsInjectedText(options2) {\n  return !!options2.after || !!options2.before;\n}\nfunction isNodeInjectedText(node) {\n  return !!node.options.after || !!node.options.before;\n}\nfunction cleanClassName(className2) {\n  return className2.replace(/[^a-z0-9\\-_]/gi, \" \");\n}\nfunction _normalizeOptions(options2) {\n  if (options2 instanceof ModelDecorationOptions) {\n    return options2;\n  }\n  return ModelDecorationOptions.createDynamic(options2);\n}\nvar __decorate25, __param23, TextModel_1, MODEL_ID, LIMIT_FIND_COUNT2, LONG_LINE_BOUNDARY, LINE_HEIGHT_CEILING, TextModelSnapshot, invalidFunc2, TextModel, DecorationsTrees, DecorationOptions, ModelDecorationOverviewRulerOptions, ModelDecorationGlyphMarginOptions, ModelDecorationMinimapOptions, ModelDecorationInjectedTextOptions, ModelDecorationOptions, TRACKED_RANGE_OPTIONS, LineHeightChangingDecoration, LineFontChangingDecoration, DidChangeDecorationsEmitter, DidChangeContentEmitter;\nvar init_textModel = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModel.js\"() {\n    init_arrays();\n    init_color();\n    init_errors();\n    init_event();\n    init_lifecycle();\n    init_strings();\n    init_uri();\n    init_eolCounter();\n    init_indentation();\n    init_position();\n    init_range();\n    init_selection();\n    init_textModelDefaults();\n    init_language();\n    init_languageConfigurationRegistry();\n    init_model2();\n    init_bracketPairsImpl();\n    init_colorizedBracketPairsDecorationProvider();\n    init_editStack();\n    init_guidesTextModelPart();\n    init_indentationGuesser();\n    init_intervalTree();\n    init_pieceTreeTextBuffer();\n    init_pieceTreeTextBufferBuilder();\n    init_textModelSearch();\n    init_tokenizationTextModelPart();\n    init_abstractSyntaxTokenBackend();\n    init_textModelEvents();\n    init_instantiation();\n    init_undoRedo();\n    init_collections();\n    init_textModelEditSource();\n    __decorate25 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param23 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    MODEL_ID = 0;\n    LIMIT_FIND_COUNT2 = 999;\n    LONG_LINE_BOUNDARY = 1e4;\n    LINE_HEIGHT_CEILING = 300;\n    TextModelSnapshot = class {\n      constructor(source) {\n        this._source = source;\n        this._eos = false;\n      }\n      read() {\n        if (this._eos) {\n          return null;\n        }\n        const result = [];\n        let resultCnt = 0;\n        let resultLength = 0;\n        do {\n          const tmp = this._source.read();\n          if (tmp === null) {\n            this._eos = true;\n            if (resultCnt === 0) {\n              return null;\n            } else {\n              return result.join(\"\");\n            }\n          }\n          if (tmp.length \u003e 0) {\n            result[resultCnt++] = tmp;\n            resultLength += tmp.length;\n          }\n          if (resultLength \u003e= 64 * 1024) {\n            return result.join(\"\");\n          }\n        } while (true);\n      }\n    };\n    invalidFunc2 = () =\u003e {\n      throw new Error(`Invalid change accessor`);\n    };\n    TextModel = class TextModel2 extends Disposable {\n      static {\n        TextModel_1 = this;\n      }\n      static {\n        this._MODEL_SYNC_LIMIT = 50 * 1024 * 1024;\n      }\n      static {\n        this.LARGE_FILE_SIZE_THRESHOLD = 20 * 1024 * 1024;\n      }\n      static {\n        this.LARGE_FILE_LINE_COUNT_THRESHOLD = 300 * 1e3;\n      }\n      static {\n        this.LARGE_FILE_HEAP_OPERATION_THRESHOLD = 256 * 1024 * 1024;\n      }\n      static {\n        this.DEFAULT_CREATION_OPTIONS = {\n          isForSimpleWidget: false,\n          tabSize: EDITOR_MODEL_DEFAULTS.tabSize,\n          indentSize: EDITOR_MODEL_DEFAULTS.indentSize,\n          insertSpaces: EDITOR_MODEL_DEFAULTS.insertSpaces,\n          detectIndentation: false,\n          defaultEOL: 1,\n          trimAutoWhitespace: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,\n          largeFileOptimizations: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,\n          bracketPairColorizationOptions: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions\n        };\n      }\n      static resolveOptions(textBuffer, options2) {\n        if (options2.detectIndentation) {\n          const guessedIndentation = guessIndentation(textBuffer, options2.tabSize, options2.insertSpaces);\n          return new TextModelResolvedOptions({\n            tabSize: guessedIndentation.tabSize,\n            indentSize: \"tabSize\",\n            // TODO@Alex: guess indentSize independent of tabSize\n            insertSpaces: guessedIndentation.insertSpaces,\n            trimAutoWhitespace: options2.trimAutoWhitespace,\n            defaultEOL: options2.defaultEOL,\n            bracketPairColorizationOptions: options2.bracketPairColorizationOptions\n          });\n        }\n        return new TextModelResolvedOptions(options2);\n      }\n      get onDidChangeLanguage() {\n        return this._tokenizationTextModelPart.onDidChangeLanguage;\n      }\n      get onDidChangeLanguageConfiguration() {\n        return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration;\n      }\n      get onDidChangeTokens() {\n        return this._tokenizationTextModelPart.onDidChangeTokens;\n      }\n      get onDidChangeOptions() {\n        return this._onDidChangeOptions.event;\n      }\n      get onDidChangeAttached() {\n        return this._onDidChangeAttached.event;\n      }\n      get onDidChangeLineHeight() {\n        return this._onDidChangeLineHeight.event;\n      }\n      get onDidChangeFont() {\n        return this._onDidChangeFont.event;\n      }\n      onDidChangeContent(listener) {\n        return this._eventEmitter.slowEvent((e) =\u003e listener(e.contentChangedEvent));\n      }\n      onDidChangeContentOrInjectedText(listener) {\n        return combinedDisposable(this._eventEmitter.fastEvent((e) =\u003e listener(e)), this._onDidChangeInjectedText.event((e) =\u003e listener(e)));\n      }\n      _isDisposing() {\n        return this.__isDisposing;\n      }\n      get tokenization() {\n        return this._tokenizationTextModelPart;\n      }\n      get bracketPairs() {\n        return this._bracketPairs;\n      }\n      get guides() {\n        return this._guidesTextModelPart;\n      }\n      constructor(source, languageIdOrSelection, creationOptions, associatedResource = null, _undoRedoService, _languageService, _languageConfigurationService, instantiationService) {\n        super();\n        this._undoRedoService = _undoRedoService;\n        this._languageService = _languageService;\n        this._languageConfigurationService = _languageConfigurationService;\n        this.instantiationService = instantiationService;\n        this._onWillDispose = this._register(new Emitter());\n        this.onWillDispose = this._onWillDispose.event;\n        this._onDidChangeDecorations = this._register(new DidChangeDecorationsEmitter((affectedInjectedTextLines, affectedLineHeights, affectedFontLines) =\u003e this.handleBeforeFireDecorationsChangedEvent(affectedInjectedTextLines, affectedLineHeights, affectedFontLines)));\n        this.onDidChangeDecorations = this._onDidChangeDecorations.event;\n        this._onDidChangeOptions = this._register(new Emitter());\n        this._onDidChangeAttached = this._register(new Emitter());\n        this._onDidChangeInjectedText = this._register(new Emitter());\n        this._onDidChangeLineHeight = this._register(new Emitter());\n        this._onDidChangeFont = this._register(new Emitter());\n        this._eventEmitter = this._register(new DidChangeContentEmitter());\n        this._languageSelectionListener = this._register(new MutableDisposable());\n        this._deltaDecorationCallCnt = 0;\n        this._attachedViews = new AttachedViews();\n        MODEL_ID++;\n        this.id = \"$model\" + MODEL_ID;\n        this.isForSimpleWidget = creationOptions.isForSimpleWidget;\n        if (typeof associatedResource === \"undefined\" || associatedResource === null) {\n          this._associatedResource = URI.parse(\"inmemory://model/\" + MODEL_ID);\n        } else {\n          this._associatedResource = associatedResource;\n        }\n        this._attachedEditorCount = 0;\n        const { textBuffer, disposable } = createTextBuffer(source, creationOptions.defaultEOL);\n        this._buffer = textBuffer;\n        this._bufferDisposable = disposable;\n        const bufferLineCount = this._buffer.getLineCount();\n        const bufferTextLength = this._buffer.getValueLengthInRange(\n          new Range(1, 1, bufferLineCount, this._buffer.getLineLength(bufferLineCount) + 1),\n          0\n          /* model.EndOfLinePreference.TextDefined */\n        );\n        if (creationOptions.largeFileOptimizations) {\n          this._isTooLargeForTokenization = bufferTextLength \u003e TextModel_1.LARGE_FILE_SIZE_THRESHOLD || bufferLineCount \u003e TextModel_1.LARGE_FILE_LINE_COUNT_THRESHOLD;\n          this._isTooLargeForHeapOperation = bufferTextLength \u003e TextModel_1.LARGE_FILE_HEAP_OPERATION_THRESHOLD;\n        } else {\n          this._isTooLargeForTokenization = false;\n          this._isTooLargeForHeapOperation = false;\n        }\n        this._options = TextModel_1.resolveOptions(this._buffer, creationOptions);\n        const languageId = typeof languageIdOrSelection === \"string\" ? languageIdOrSelection : languageIdOrSelection.languageId;\n        if (typeof languageIdOrSelection !== \"string\") {\n          this._languageSelectionListener.value = languageIdOrSelection.onDidChange(() =\u003e this._setLanguage(languageIdOrSelection.languageId));\n        }\n        this._bracketPairs = this._register(new BracketPairsTextModelPart(this, this._languageConfigurationService));\n        this._guidesTextModelPart = this._register(new GuidesTextModelPart(this, this._languageConfigurationService));\n        this._decorationProvider = this._register(new ColorizedBracketPairsDecorationProvider(this));\n        this._tokenizationTextModelPart = this.instantiationService.createInstance(TokenizationTextModelPart, this, this._bracketPairs, languageId, this._attachedViews);\n        this._isTooLargeForSyncing = bufferTextLength \u003e TextModel_1._MODEL_SYNC_LIMIT;\n        this._versionId = 1;\n        this._alternativeVersionId = 1;\n        this._initialUndoRedoSnapshot = null;\n        this._isDisposed = false;\n        this.__isDisposing = false;\n        this._instanceId = singleLetterHash(MODEL_ID);\n        this._lastDecorationId = 0;\n        this._decorations = /* @__PURE__ */ Object.create(null);\n        this._decorationsTree = new DecorationsTrees();\n        this._commandManager = new EditStack(this, this._undoRedoService);\n        this._isUndoing = false;\n        this._isRedoing = false;\n        this._trimAutoWhitespaceLines = null;\n        this._register(this._decorationProvider.onDidChange(() =\u003e {\n          this._onDidChangeDecorations.beginDeferredEmit();\n          this._onDidChangeDecorations.fire();\n          this._onDidChangeDecorations.endDeferredEmit();\n        }));\n        this._languageService.requestRichLanguageFeatures(languageId);\n        this._register(this._languageConfigurationService.onDidChange((e) =\u003e {\n          this._bracketPairs.handleLanguageConfigurationServiceChange(e);\n          this._tokenizationTextModelPart.handleLanguageConfigurationServiceChange(e);\n        }));\n      }\n      dispose() {\n        this.__isDisposing = true;\n        this._onWillDispose.fire();\n        this._tokenizationTextModelPart.dispose();\n        this._isDisposed = true;\n        super.dispose();\n        this._bufferDisposable.dispose();\n        this.__isDisposing = false;\n        const emptyDisposedTextBuffer = new PieceTreeTextBuffer([], \"\", \"\\n\", false, false, true, true);\n        emptyDisposedTextBuffer.dispose();\n        this._buffer = emptyDisposedTextBuffer;\n        this._bufferDisposable = Disposable.None;\n      }\n      _assertNotDisposed() {\n        if (this._isDisposed) {\n          throw new BugIndicatingError(\"Model is disposed!\");\n        }\n      }\n      getTextBuffer() {\n        this._assertNotDisposed();\n        return this._buffer;\n      }\n      _emitContentChangedEvent(rawChange, change) {\n        if (this.__isDisposing) {\n          return;\n        }\n        this._tokenizationTextModelPart.handleDidChangeContent(change);\n        this._bracketPairs.handleDidChangeContent(change);\n        this._eventEmitter.fire(new InternalModelContentChangeEvent(rawChange, change));\n      }\n      setValue(value, reason = EditSources.setValue()) {\n        this._assertNotDisposed();\n        if (value === null || value === void 0) {\n          throw illegalArgument();\n        }\n        const { textBuffer, disposable } = createTextBuffer(value, this._options.defaultEOL);\n        this._setValueFromTextBuffer(textBuffer, disposable, reason);\n      }\n      _createContentChanged2(range2, rangeOffset, rangeLength, rangeEndPosition, text2, isUndoing, isRedoing, isFlush, isEolChange, reason) {\n        return {\n          changes: [{\n            range: range2,\n            rangeOffset,\n            rangeLength,\n            text: text2\n          }],\n          eol: this._buffer.getEOL(),\n          isEolChange,\n          versionId: this.getVersionId(),\n          isUndoing,\n          isRedoing,\n          isFlush,\n          detailedReasons: [reason],\n          detailedReasonsChangeLengths: [1]\n        };\n      }\n      _setValueFromTextBuffer(textBuffer, textBufferDisposable, reason) {\n        this._assertNotDisposed();\n        const oldFullModelRange = this.getFullModelRange();\n        const oldModelValueLength = this.getValueLengthInRange(oldFullModelRange);\n        const endLineNumber = this.getLineCount();\n        const endColumn = this.getLineMaxColumn(endLineNumber);\n        this._buffer = textBuffer;\n        this._bufferDisposable.dispose();\n        this._bufferDisposable = textBufferDisposable;\n        this._increaseVersionId();\n        this._decorations = /* @__PURE__ */ Object.create(null);\n        this._decorationsTree = new DecorationsTrees();\n        this._commandManager.clear();\n        this._trimAutoWhitespaceLines = null;\n        this._emitContentChangedEvent(new ModelRawContentChangedEvent([\n          new ModelRawFlush()\n        ], this._versionId, false, false), this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, new Position(endLineNumber, endColumn), this.getValue(), false, false, true, false, reason));\n      }\n      setEOL(eol) {\n        this._assertNotDisposed();\n        const newEOL = eol === 1 ? \"\\r\\n\" : \"\\n\";\n        if (this._buffer.getEOL() === newEOL) {\n          return;\n        }\n        const oldFullModelRange = this.getFullModelRange();\n        const oldModelValueLength = this.getValueLengthInRange(oldFullModelRange);\n        const endLineNumber = this.getLineCount();\n        const endColumn = this.getLineMaxColumn(endLineNumber);\n        this._onBeforeEOLChange();\n        this._buffer.setEOL(newEOL);\n        this._increaseVersionId();\n        this._onAfterEOLChange();\n        this._emitContentChangedEvent(new ModelRawContentChangedEvent([\n          new ModelRawEOLChanged()\n        ], this._versionId, false, false), this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, new Position(endLineNumber, endColumn), this.getValue(), false, false, false, true, EditSources.eolChange()));\n      }\n      _onBeforeEOLChange() {\n        this._decorationsTree.ensureAllNodesHaveRanges(this);\n      }\n      _onAfterEOLChange() {\n        const versionId = this.getVersionId();\n        const allDecorations = this._decorationsTree.collectNodesPostOrder();\n        for (let i2 = 0, len = allDecorations.length; i2 \u003c len; i2++) {\n          const node = allDecorations[i2];\n          const range2 = node.range;\n          const delta = node.cachedAbsoluteStart - node.start;\n          const startOffset = this._buffer.getOffsetAt(range2.startLineNumber, range2.startColumn);\n          const endOffset = this._buffer.getOffsetAt(range2.endLineNumber, range2.endColumn);\n          node.cachedAbsoluteStart = startOffset;\n          node.cachedAbsoluteEnd = endOffset;\n          node.cachedVersionId = versionId;\n          node.start = startOffset - delta;\n          node.end = endOffset - delta;\n          recomputeMaxEnd(node);\n        }\n      }\n      onBeforeAttached() {\n        this._attachedEditorCount++;\n        if (this._attachedEditorCount === 1) {\n          this._tokenizationTextModelPart.handleDidChangeAttached();\n          this._onDidChangeAttached.fire(void 0);\n        }\n        return this._attachedViews.attachView();\n      }\n      onBeforeDetached(view) {\n        this._attachedEditorCount--;\n        if (this._attachedEditorCount === 0) {\n          this._tokenizationTextModelPart.handleDidChangeAttached();\n          this._onDidChangeAttached.fire(void 0);\n        }\n        this._attachedViews.detachView(view);\n      }\n      isAttachedToEditor() {\n        return this._attachedEditorCount \u003e 0;\n      }\n      getAttachedEditorCount() {\n        return this._attachedEditorCount;\n      }\n      isTooLargeForSyncing() {\n        return this._isTooLargeForSyncing;\n      }\n      isTooLargeForTokenization() {\n        return this._isTooLargeForTokenization;\n      }\n      isTooLargeForHeapOperation() {\n        return this._isTooLargeForHeapOperation;\n      }\n      isDisposed() {\n        return this._isDisposed;\n      }\n      isDominatedByLongLines() {\n        this._assertNotDisposed();\n        if (this.isTooLargeForTokenization()) {\n          return false;\n        }\n        let smallLineCharCount = 0;\n        let longLineCharCount = 0;\n        const lineCount = this._buffer.getLineCount();\n        for (let lineNumber = 1; lineNumber \u003c= lineCount; lineNumber++) {\n          const lineLength = this._buffer.getLineLength(lineNumber);\n          if (lineLength \u003e= LONG_LINE_BOUNDARY) {\n            longLineCharCount += lineLength;\n          } else {\n            smallLineCharCount += lineLength;\n          }\n        }\n        return longLineCharCount \u003e smallLineCharCount;\n      }\n      get uri() {\n        return this._associatedResource;\n      }\n      //#region Options\n      getOptions() {\n        this._assertNotDisposed();\n        return this._options;\n      }\n      getFormattingOptions() {\n        return {\n          tabSize: this._options.indentSize,\n          insertSpaces: this._options.insertSpaces\n        };\n      }\n      updateOptions(_newOpts) {\n        this._assertNotDisposed();\n        const tabSize = typeof _newOpts.tabSize !== \"undefined\" ? _newOpts.tabSize : this._options.tabSize;\n        const indentSize = typeof _newOpts.indentSize !== \"undefined\" ? _newOpts.indentSize : this._options.originalIndentSize;\n        const insertSpaces = typeof _newOpts.insertSpaces !== \"undefined\" ? _newOpts.insertSpaces : this._options.insertSpaces;\n        const trimAutoWhitespace = typeof _newOpts.trimAutoWhitespace !== \"undefined\" ? _newOpts.trimAutoWhitespace : this._options.trimAutoWhitespace;\n        const bracketPairColorizationOptions = typeof _newOpts.bracketColorizationOptions !== \"undefined\" ? _newOpts.bracketColorizationOptions : this._options.bracketPairColorizationOptions;\n        const newOpts = new TextModelResolvedOptions({\n          tabSize,\n          indentSize,\n          insertSpaces,\n          defaultEOL: this._options.defaultEOL,\n          trimAutoWhitespace,\n          bracketPairColorizationOptions\n        });\n        if (this._options.equals(newOpts)) {\n          return;\n        }\n        const e = this._options.createChangeEvent(newOpts);\n        this._options = newOpts;\n        this._bracketPairs.handleDidChangeOptions(e);\n        this._decorationProvider.handleDidChangeOptions(e);\n        this._onDidChangeOptions.fire(e);\n      }\n      detectIndentation(defaultInsertSpaces, defaultTabSize) {\n        this._assertNotDisposed();\n        const guessedIndentation = guessIndentation(this._buffer, defaultTabSize, defaultInsertSpaces);\n        this.updateOptions({\n          insertSpaces: guessedIndentation.insertSpaces,\n          tabSize: guessedIndentation.tabSize,\n          indentSize: guessedIndentation.tabSize\n          // TODO@Alex: guess indentSize independent of tabSize\n        });\n      }\n      normalizeIndentation(str) {\n        this._assertNotDisposed();\n        return normalizeIndentation(str, this._options.indentSize, this._options.insertSpaces);\n      }\n      //#endregion\n      //#region Reading\n      getVersionId() {\n        this._assertNotDisposed();\n        return this._versionId;\n      }\n      mightContainRTL() {\n        return this._buffer.mightContainRTL();\n      }\n      mightContainUnusualLineTerminators() {\n        return this._buffer.mightContainUnusualLineTerminators();\n      }\n      removeUnusualLineTerminators(selections = null) {\n        const matches = this.findMatches(\n          UNUSUAL_LINE_TERMINATORS.source,\n          false,\n          true,\n          false,\n          null,\n          false,\n          1073741824\n          /* Constants.MAX_SAFE_SMALL_INTEGER */\n        );\n        this._buffer.resetMightContainUnusualLineTerminators();\n        this.pushEditOperations(selections, matches.map((m) =\u003e ({ range: m.range, text: null })), () =\u003e null);\n      }\n      mightContainNonBasicASCII() {\n        return this._buffer.mightContainNonBasicASCII();\n      }\n      getAlternativeVersionId() {\n        this._assertNotDisposed();\n        return this._alternativeVersionId;\n      }\n      getInitialUndoRedoSnapshot() {\n        this._assertNotDisposed();\n        return this._initialUndoRedoSnapshot;\n      }\n      getOffsetAt(rawPosition) {\n        this._assertNotDisposed();\n        const position = this._validatePosition(\n          rawPosition.lineNumber,\n          rawPosition.column,\n          0\n          /* StringOffsetValidationType.Relaxed */\n        );\n        return this._buffer.getOffsetAt(position.lineNumber, position.column);\n      }\n      getPositionAt(rawOffset) {\n        this._assertNotDisposed();\n        const offset = Math.min(this._buffer.getLength(), Math.max(0, rawOffset));\n        return this._buffer.getPositionAt(offset);\n      }\n      _increaseVersionId() {\n        this._versionId = this._versionId + 1;\n        this._alternativeVersionId = this._versionId;\n      }\n      _overwriteVersionId(versionId) {\n        this._versionId = versionId;\n      }\n      _overwriteAlternativeVersionId(newAlternativeVersionId) {\n        this._alternativeVersionId = newAlternativeVersionId;\n      }\n      _overwriteInitialUndoRedoSnapshot(newInitialUndoRedoSnapshot) {\n        this._initialUndoRedoSnapshot = newInitialUndoRedoSnapshot;\n      }\n      getValue(eol, preserveBOM = false) {\n        this._assertNotDisposed();\n        if (this.isTooLargeForHeapOperation()) {\n          throw new BugIndicatingError(\"Operation would exceed heap memory limits\");\n        }\n        const fullModelRange = this.getFullModelRange();\n        const fullModelValue = this.getValueInRange(fullModelRange, eol);\n        if (preserveBOM) {\n          return this._buffer.getBOM() + fullModelValue;\n        }\n        return fullModelValue;\n      }\n      createSnapshot(preserveBOM = false) {\n        return new TextModelSnapshot(this._buffer.createSnapshot(preserveBOM));\n      }\n      getValueLength(eol, preserveBOM = false) {\n        this._assertNotDisposed();\n        const fullModelRange = this.getFullModelRange();\n        const fullModelValue = this.getValueLengthInRange(fullModelRange, eol);\n        if (preserveBOM) {\n          return this._buffer.getBOM().length + fullModelValue;\n        }\n        return fullModelValue;\n      }\n      getValueInRange(rawRange, eol = 0) {\n        this._assertNotDisposed();\n        return this._buffer.getValueInRange(this.validateRange(rawRange), eol);\n      }\n      getValueLengthInRange(rawRange, eol = 0) {\n        this._assertNotDisposed();\n        return this._buffer.getValueLengthInRange(this.validateRange(rawRange), eol);\n      }\n      getCharacterCountInRange(rawRange, eol = 0) {\n        this._assertNotDisposed();\n        return this._buffer.getCharacterCountInRange(this.validateRange(rawRange), eol);\n      }\n      getLineCount() {\n        this._assertNotDisposed();\n        return this._buffer.getLineCount();\n      }\n      getLineContent(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber \u003c 1 || lineNumber \u003e this.getLineCount()) {\n          throw new BugIndicatingError(\"Illegal value for lineNumber\");\n        }\n        return this._buffer.getLineContent(lineNumber);\n      }\n      getLineLength(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber \u003c 1 || lineNumber \u003e this.getLineCount()) {\n          throw new BugIndicatingError(\"Illegal value for lineNumber\");\n        }\n        return this._buffer.getLineLength(lineNumber);\n      }\n      getLinesContent() {\n        this._assertNotDisposed();\n        if (this.isTooLargeForHeapOperation()) {\n          throw new BugIndicatingError(\"Operation would exceed heap memory limits\");\n        }\n        return this._buffer.getLinesContent();\n      }\n      getEOL() {\n        this._assertNotDisposed();\n        return this._buffer.getEOL();\n      }\n      getEndOfLineSequence() {\n        this._assertNotDisposed();\n        return this._buffer.getEOL() === \"\\n\" ? 0 : 1;\n      }\n      getLineMinColumn(lineNumber) {\n        this._assertNotDisposed();\n        return 1;\n      }\n      getLineMaxColumn(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber \u003c 1 || lineNumber \u003e this.getLineCount()) {\n          throw new BugIndicatingError(\"Illegal value for lineNumber\");\n        }\n        return this._buffer.getLineLength(lineNumber) + 1;\n      }\n      getLineFirstNonWhitespaceColumn(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber \u003c 1 || lineNumber \u003e this.getLineCount()) {\n          throw new BugIndicatingError(\"Illegal value for lineNumber\");\n        }\n        return this._buffer.getLineFirstNonWhitespaceColumn(lineNumber);\n      }\n      getLineLastNonWhitespaceColumn(lineNumber) {\n        this._assertNotDisposed();\n        if (lineNumber \u003c 1 || lineNumber \u003e this.getLineCount()) {\n          throw new BugIndicatingError(\"Illegal value for lineNumber\");\n        }\n        return this._buffer.getLineLastNonWhitespaceColumn(lineNumber);\n      }\n      /**\n       * Validates `range` is within buffer bounds, but allows it to sit in between surrogate pairs, etc.\n       * Will try to not allocate if possible.\n       */\n      _validateRangeRelaxedNoAllocations(range2) {\n        const linesCount = this._buffer.getLineCount();\n        const initialStartLineNumber = range2.startLineNumber;\n        const initialStartColumn = range2.startColumn;\n        let startLineNumber = Math.floor(typeof initialStartLineNumber === \"number\" \u0026\u0026 !isNaN(initialStartLineNumber) ? initialStartLineNumber : 1);\n        let startColumn = Math.floor(typeof initialStartColumn === \"number\" \u0026\u0026 !isNaN(initialStartColumn) ? initialStartColumn : 1);\n        if (startLineNumber \u003c 1) {\n          startLineNumber = 1;\n          startColumn = 1;\n        } else if (startLineNumber \u003e linesCount) {\n          startLineNumber = linesCount;\n          startColumn = this.getLineMaxColumn(startLineNumber);\n        } else {\n          if (startColumn \u003c= 1) {\n            startColumn = 1;\n          } else {\n            const maxColumn = this.getLineMaxColumn(startLineNumber);\n            if (startColumn \u003e= maxColumn) {\n              startColumn = maxColumn;\n            }\n          }\n        }\n        const initialEndLineNumber = range2.endLineNumber;\n        const initialEndColumn = range2.endColumn;\n        let endLineNumber = Math.floor(typeof initialEndLineNumber === \"number\" \u0026\u0026 !isNaN(initialEndLineNumber) ? initialEndLineNumber : 1);\n        let endColumn = Math.floor(typeof initialEndColumn === \"number\" \u0026\u0026 !isNaN(initialEndColumn) ? initialEndColumn : 1);\n        if (endLineNumber \u003c 1) {\n          endLineNumber = 1;\n          endColumn = 1;\n        } else if (endLineNumber \u003e linesCount) {\n          endLineNumber = linesCount;\n          endColumn = this.getLineMaxColumn(endLineNumber);\n        } else {\n          if (endColumn \u003c= 1) {\n            endColumn = 1;\n          } else {\n            const maxColumn = this.getLineMaxColumn(endLineNumber);\n            if (endColumn \u003e= maxColumn) {\n              endColumn = maxColumn;\n            }\n          }\n        }\n        if (initialStartLineNumber === startLineNumber \u0026\u0026 initialStartColumn === startColumn \u0026\u0026 initialEndLineNumber === endLineNumber \u0026\u0026 initialEndColumn === endColumn \u0026\u0026 range2 instanceof Range \u0026\u0026 !(range2 instanceof Selection)) {\n          return range2;\n        }\n        return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n      }\n      _isValidPosition(lineNumber, column, validationType) {\n        if (typeof lineNumber !== \"number\" || typeof column !== \"number\") {\n          return false;\n        }\n        if (isNaN(lineNumber) || isNaN(column)) {\n          return false;\n        }\n        if (lineNumber \u003c 1 || column \u003c 1) {\n          return false;\n        }\n        if ((lineNumber | 0) !== lineNumber || (column | 0) !== column) {\n          return false;\n        }\n        const lineCount = this._buffer.getLineCount();\n        if (lineNumber \u003e lineCount) {\n          return false;\n        }\n        if (column === 1) {\n          return true;\n        }\n        const maxColumn = this.getLineMaxColumn(lineNumber);\n        if (column \u003e maxColumn) {\n          return false;\n        }\n        if (validationType === 1) {\n          const charCodeBefore = this._buffer.getLineCharCode(lineNumber, column - 2);\n          if (isHighSurrogate(charCodeBefore)) {\n            return false;\n          }\n        }\n        return true;\n      }\n      _validatePosition(_lineNumber, _column, validationType) {\n        const lineNumber = Math.floor(typeof _lineNumber === \"number\" \u0026\u0026 !isNaN(_lineNumber) ? _lineNumber : 1);\n        const column = Math.floor(typeof _column === \"number\" \u0026\u0026 !isNaN(_column) ? _column : 1);\n        const lineCount = this._buffer.getLineCount();\n        if (lineNumber \u003c 1) {\n          return new Position(1, 1);\n        }\n        if (lineNumber \u003e lineCount) {\n          return new Position(lineCount, this.getLineMaxColumn(lineCount));\n        }\n        if (column \u003c= 1) {\n          return new Position(lineNumber, 1);\n        }\n        const maxColumn = this.getLineMaxColumn(lineNumber);\n        if (column \u003e= maxColumn) {\n          return new Position(lineNumber, maxColumn);\n        }\n        if (validationType === 1) {\n          const charCodeBefore = this._buffer.getLineCharCode(lineNumber, column - 2);\n          if (isHighSurrogate(charCodeBefore)) {\n            return new Position(lineNumber, column - 1);\n          }\n        }\n        return new Position(lineNumber, column);\n      }\n      validatePosition(position) {\n        const validationType = 1;\n        this._assertNotDisposed();\n        if (position instanceof Position) {\n          if (this._isValidPosition(position.lineNumber, position.column, validationType)) {\n            return position;\n          }\n        }\n        return this._validatePosition(position.lineNumber, position.column, validationType);\n      }\n      isValidRange(range2) {\n        return this._isValidRange(\n          range2,\n          1\n          /* StringOffsetValidationType.SurrogatePairs */\n        );\n      }\n      _isValidRange(range2, validationType) {\n        const startLineNumber = range2.startLineNumber;\n        const startColumn = range2.startColumn;\n        const endLineNumber = range2.endLineNumber;\n        const endColumn = range2.endColumn;\n        if (!this._isValidPosition(\n          startLineNumber,\n          startColumn,\n          0\n          /* StringOffsetValidationType.Relaxed */\n        )) {\n          return false;\n        }\n        if (!this._isValidPosition(\n          endLineNumber,\n          endColumn,\n          0\n          /* StringOffsetValidationType.Relaxed */\n        )) {\n          return false;\n        }\n        if (validationType === 1) {\n          const charCodeBeforeStart = startColumn \u003e 1 ? this._buffer.getLineCharCode(startLineNumber, startColumn - 2) : 0;\n          const charCodeBeforeEnd = endColumn \u003e 1 \u0026\u0026 endColumn \u003c= this._buffer.getLineLength(endLineNumber) ? this._buffer.getLineCharCode(endLineNumber, endColumn - 2) : 0;\n          const startInsideSurrogatePair = isHighSurrogate(charCodeBeforeStart);\n          const endInsideSurrogatePair = isHighSurrogate(charCodeBeforeEnd);\n          if (!startInsideSurrogatePair \u0026\u0026 !endInsideSurrogatePair) {\n            return true;\n          }\n          return false;\n        }\n        return true;\n      }\n      validateRange(_range) {\n        const validationType = 1;\n        this._assertNotDisposed();\n        if (_range instanceof Range \u0026\u0026 !(_range instanceof Selection)) {\n          if (this._isValidRange(_range, validationType)) {\n            return _range;\n          }\n        }\n        const start = this._validatePosition(\n          _range.startLineNumber,\n          _range.startColumn,\n          0\n          /* StringOffsetValidationType.Relaxed */\n        );\n        const end = this._validatePosition(\n          _range.endLineNumber,\n          _range.endColumn,\n          0\n          /* StringOffsetValidationType.Relaxed */\n        );\n        const startLineNumber = start.lineNumber;\n        const startColumn = start.column;\n        const endLineNumber = end.lineNumber;\n        const endColumn = end.column;\n        if (validationType === 1) {\n          const charCodeBeforeStart = startColumn \u003e 1 ? this._buffer.getLineCharCode(startLineNumber, startColumn - 2) : 0;\n          const charCodeBeforeEnd = endColumn \u003e 1 \u0026\u0026 endColumn \u003c= this._buffer.getLineLength(endLineNumber) ? this._buffer.getLineCharCode(endLineNumber, endColumn - 2) : 0;\n          const startInsideSurrogatePair = isHighSurrogate(charCodeBeforeStart);\n          const endInsideSurrogatePair = isHighSurrogate(charCodeBeforeEnd);\n          if (!startInsideSurrogatePair \u0026\u0026 !endInsideSurrogatePair) {\n            return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n          }\n          if (startLineNumber === endLineNumber \u0026\u0026 startColumn === endColumn) {\n            return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn - 1);\n          }\n          if (startInsideSurrogatePair \u0026\u0026 endInsideSurrogatePair) {\n            return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn + 1);\n          }\n          if (startInsideSurrogatePair) {\n            return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn);\n          }\n          return new Range(startLineNumber, startColumn, endLineNumber, endColumn + 1);\n        }\n        return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n      }\n      modifyPosition(rawPosition, offset) {\n        this._assertNotDisposed();\n        const candidate = this.getOffsetAt(rawPosition) + offset;\n        return this.getPositionAt(Math.min(this._buffer.getLength(), Math.max(0, candidate)));\n      }\n      getFullModelRange() {\n        this._assertNotDisposed();\n        const lineCount = this.getLineCount();\n        return new Range(1, 1, lineCount, this.getLineMaxColumn(lineCount));\n      }\n      findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n        return this._buffer.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n      }\n      findMatches(searchString, rawSearchScope, isRegex, matchCase, wordSeparators2, captureMatches, limitResultCount = LIMIT_FIND_COUNT2) {\n        this._assertNotDisposed();\n        let searchRanges = null;\n        if (rawSearchScope !== null) {\n          if (!Array.isArray(rawSearchScope)) {\n            rawSearchScope = [rawSearchScope];\n          }\n          if (rawSearchScope.every((searchScope) =\u003e Range.isIRange(searchScope))) {\n            searchRanges = rawSearchScope.map((searchScope) =\u003e this.validateRange(searchScope));\n          }\n        }\n        if (searchRanges === null) {\n          searchRanges = [this.getFullModelRange()];\n        }\n        searchRanges = searchRanges.sort((d1, d2) =\u003e d1.startLineNumber - d2.startLineNumber || d1.startColumn - d2.startColumn);\n        const uniqueSearchRanges = [];\n        uniqueSearchRanges.push(searchRanges.reduce((prev, curr) =\u003e {\n          if (Range.areIntersecting(prev, curr)) {\n            return prev.plusRange(curr);\n          }\n          uniqueSearchRanges.push(prev);\n          return curr;\n        }));\n        let matchMapper;\n        if (!isRegex \u0026\u0026 searchString.indexOf(\"\\n\") \u003c 0) {\n          const searchParams = new SearchParams(searchString, isRegex, matchCase, wordSeparators2);\n          const searchData = searchParams.parseSearchRequest();\n          if (!searchData) {\n            return [];\n          }\n          matchMapper = (searchRange) =\u003e this.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n        } else {\n          matchMapper = (searchRange) =\u003e TextModelSearch.findMatches(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators2), searchRange, captureMatches, limitResultCount);\n        }\n        return uniqueSearchRanges.map(matchMapper).reduce((arr, matches) =\u003e arr.concat(matches), []);\n      }\n      findNextMatch(searchString, rawSearchStart, isRegex, matchCase, wordSeparators2, captureMatches) {\n        this._assertNotDisposed();\n        const searchStart = this.validatePosition(rawSearchStart);\n        if (!isRegex \u0026\u0026 searchString.indexOf(\"\\n\") \u003c 0) {\n          const searchParams = new SearchParams(searchString, isRegex, matchCase, wordSeparators2);\n          const searchData = searchParams.parseSearchRequest();\n          if (!searchData) {\n            return null;\n          }\n          const lineCount = this.getLineCount();\n          let searchRange = new Range(searchStart.lineNumber, searchStart.column, lineCount, this.getLineMaxColumn(lineCount));\n          let ret = this.findMatchesLineByLine(searchRange, searchData, captureMatches, 1);\n          TextModelSearch.findNextMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators2), searchStart, captureMatches);\n          if (ret.length \u003e 0) {\n            return ret[0];\n          }\n          searchRange = new Range(1, 1, searchStart.lineNumber, this.getLineMaxColumn(searchStart.lineNumber));\n          ret = this.findMatchesLineByLine(searchRange, searchData, captureMatches, 1);\n          if (ret.length \u003e 0) {\n            return ret[0];\n          }\n          return null;\n        }\n        return TextModelSearch.findNextMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators2), searchStart, captureMatches);\n      }\n      findPreviousMatch(searchString, rawSearchStart, isRegex, matchCase, wordSeparators2, captureMatches) {\n        this._assertNotDisposed();\n        const searchStart = this.validatePosition(rawSearchStart);\n        return TextModelSearch.findPreviousMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators2), searchStart, captureMatches);\n      }\n      //#endregion\n      //#region Editing\n      pushStackElement() {\n        this._commandManager.pushStackElement();\n      }\n      popStackElement() {\n        this._commandManager.popStackElement();\n      }\n      pushEOL(eol) {\n        const currentEOL = this.getEOL() === \"\\n\" ? 0 : 1;\n        if (currentEOL === eol) {\n          return;\n        }\n        try {\n          this._onDidChangeDecorations.beginDeferredEmit();\n          this._eventEmitter.beginDeferredEmit();\n          if (this._initialUndoRedoSnapshot === null) {\n            this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri);\n          }\n          this._commandManager.pushEOL(eol);\n        } finally {\n          this._eventEmitter.endDeferredEmit();\n          this._onDidChangeDecorations.endDeferredEmit();\n        }\n      }\n      _validateEditOperation(rawOperation) {\n        if (rawOperation instanceof ValidAnnotatedEditOperation) {\n          return rawOperation;\n        }\n        return new ValidAnnotatedEditOperation(rawOperation.identifier || null, this.validateRange(rawOperation.range), rawOperation.text, rawOperation.forceMoveMarkers || false, rawOperation.isAutoWhitespaceEdit || false, rawOperation._isTracked || false);\n      }\n      _validateEditOperations(rawOperations) {\n        const result = [];\n        for (let i2 = 0, len = rawOperations.length; i2 \u003c len; i2++) {\n          result[i2] = this._validateEditOperation(rawOperations[i2]);\n        }\n        return result;\n      }\n      pushEditOperations(beforeCursorState, editOperations, cursorStateComputer, group, reason) {\n        try {\n          this._onDidChangeDecorations.beginDeferredEmit();\n          this._eventEmitter.beginDeferredEmit();\n          return this._pushEditOperations(beforeCursorState, this._validateEditOperations(editOperations), cursorStateComputer, group, reason);\n        } finally {\n          this._eventEmitter.endDeferredEmit();\n          this._onDidChangeDecorations.endDeferredEmit();\n        }\n      }\n      _pushEditOperations(beforeCursorState, editOperations, cursorStateComputer, group, reason) {\n        if (this._options.trimAutoWhitespace \u0026\u0026 this._trimAutoWhitespaceLines) {\n          const incomingEdits = editOperations.map((op) =\u003e {\n            return {\n              range: this.validateRange(op.range),\n              text: op.text\n            };\n          });\n          let editsAreNearCursors = true;\n          if (beforeCursorState) {\n            for (let i2 = 0, len = beforeCursorState.length; i2 \u003c len; i2++) {\n              const sel = beforeCursorState[i2];\n              let foundEditNearSel = false;\n              for (let j = 0, lenJ = incomingEdits.length; j \u003c lenJ; j++) {\n                const editRange = incomingEdits[j].range;\n                const selIsAbove = editRange.startLineNumber \u003e sel.endLineNumber;\n                const selIsBelow = sel.startLineNumber \u003e editRange.endLineNumber;\n                if (!selIsAbove \u0026\u0026 !selIsBelow) {\n                  foundEditNearSel = true;\n                  break;\n                }\n              }\n              if (!foundEditNearSel) {\n                editsAreNearCursors = false;\n                break;\n              }\n            }\n          }\n          if (editsAreNearCursors) {\n            for (let i2 = 0, len = this._trimAutoWhitespaceLines.length; i2 \u003c len; i2++) {\n              const trimLineNumber = this._trimAutoWhitespaceLines[i2];\n              const maxLineColumn = this.getLineMaxColumn(trimLineNumber);\n              let allowTrimLine = true;\n              for (let j = 0, lenJ = incomingEdits.length; j \u003c lenJ; j++) {\n                const editRange = incomingEdits[j].range;\n                const editText = incomingEdits[j].text;\n                if (trimLineNumber \u003c editRange.startLineNumber || trimLineNumber \u003e editRange.endLineNumber) {\n                  continue;\n                }\n                if (trimLineNumber === editRange.startLineNumber \u0026\u0026 editRange.startColumn === maxLineColumn \u0026\u0026 editRange.isEmpty() \u0026\u0026 editText \u0026\u0026 editText.length \u003e 0 \u0026\u0026 editText.charAt(0) === \"\\n\") {\n                  continue;\n                }\n                if (trimLineNumber === editRange.startLineNumber \u0026\u0026 editRange.startColumn === 1 \u0026\u0026 editRange.isEmpty() \u0026\u0026 editText \u0026\u0026 editText.length \u003e 0 \u0026\u0026 editText.charAt(editText.length - 1) === \"\\n\") {\n                  continue;\n                }\n                allowTrimLine = false;\n                break;\n              }\n              if (allowTrimLine) {\n                const trimRange = new Range(trimLineNumber, 1, trimLineNumber, maxLineColumn);\n                editOperations.push(new ValidAnnotatedEditOperation(null, trimRange, null, false, false, false));\n              }\n            }\n          }\n          this._trimAutoWhitespaceLines = null;\n        }\n        if (this._initialUndoRedoSnapshot === null) {\n          this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri);\n        }\n        return this._commandManager.pushEditOperation(beforeCursorState, editOperations, cursorStateComputer, group, reason);\n      }\n      _applyUndo(changes, eol, resultingAlternativeVersionId, resultingSelection) {\n        const edits = changes.map((change) =\u003e {\n          const rangeStart = this.getPositionAt(change.newPosition);\n          const rangeEnd = this.getPositionAt(change.newEnd);\n          return {\n            range: new Range(rangeStart.lineNumber, rangeStart.column, rangeEnd.lineNumber, rangeEnd.column),\n            text: change.oldText\n          };\n        });\n        this._applyUndoRedoEdits(edits, eol, true, false, resultingAlternativeVersionId, resultingSelection);\n      }\n      _applyRedo(changes, eol, resultingAlternativeVersionId, resultingSelection) {\n        const edits = changes.map((change) =\u003e {\n          const rangeStart = this.getPositionAt(change.oldPosition);\n          const rangeEnd = this.getPositionAt(change.oldEnd);\n          return {\n            range: new Range(rangeStart.lineNumber, rangeStart.column, rangeEnd.lineNumber, rangeEnd.column),\n            text: change.newText\n          };\n        });\n        this._applyUndoRedoEdits(edits, eol, false, true, resultingAlternativeVersionId, resultingSelection);\n      }\n      _applyUndoRedoEdits(edits, eol, isUndoing, isRedoing, resultingAlternativeVersionId, resultingSelection) {\n        try {\n          this._onDidChangeDecorations.beginDeferredEmit();\n          this._eventEmitter.beginDeferredEmit();\n          this._isUndoing = isUndoing;\n          this._isRedoing = isRedoing;\n          this.applyEdits(edits, false);\n          this.setEOL(eol);\n          this._overwriteAlternativeVersionId(resultingAlternativeVersionId);\n        } finally {\n          this._isUndoing = false;\n          this._isRedoing = false;\n          this._eventEmitter.endDeferredEmit(resultingSelection);\n          this._onDidChangeDecorations.endDeferredEmit();\n        }\n      }\n      applyEdits(rawOperations, computeUndoEdits, reason) {\n        try {\n          this._onDidChangeDecorations.beginDeferredEmit();\n          this._eventEmitter.beginDeferredEmit();\n          const operations = this._validateEditOperations(rawOperations);\n          return this._doApplyEdits(operations, computeUndoEdits ?? false, reason ?? EditSources.applyEdits());\n        } finally {\n          this._eventEmitter.endDeferredEmit();\n          this._onDidChangeDecorations.endDeferredEmit();\n        }\n      }\n      _doApplyEdits(rawOperations, computeUndoEdits, reason) {\n        const oldLineCount = this._buffer.getLineCount();\n        const result = this._buffer.applyEdits(rawOperations, this._options.trimAutoWhitespace, computeUndoEdits);\n        const newLineCount = this._buffer.getLineCount();\n        const contentChanges = result.changes;\n        this._trimAutoWhitespaceLines = result.trimAutoWhitespaceLineNumbers;\n        if (contentChanges.length !== 0) {\n          for (let i2 = 0, len = contentChanges.length; i2 \u003c len; i2++) {\n            const change = contentChanges[i2];\n            this._decorationsTree.acceptReplace(change.rangeOffset, change.rangeLength, change.text.length, change.forceMoveMarkers);\n          }\n          const rawContentChanges = [];\n          this._increaseVersionId();\n          let lineCount = oldLineCount;\n          for (let i2 = 0, len = contentChanges.length; i2 \u003c len; i2++) {\n            const change = contentChanges[i2];\n            const [eolCount] = countEOL(change.text);\n            this._onDidChangeDecorations.fire();\n            const startLineNumber = change.range.startLineNumber;\n            const endLineNumber = change.range.endLineNumber;\n            const deletingLinesCnt = endLineNumber - startLineNumber;\n            const insertingLinesCnt = eolCount;\n            const editingLinesCnt = Math.min(deletingLinesCnt, insertingLinesCnt);\n            const changeLineCountDelta = insertingLinesCnt - deletingLinesCnt;\n            const currentEditStartLineNumber = newLineCount - lineCount - changeLineCountDelta + startLineNumber;\n            const firstEditLineNumber = currentEditStartLineNumber;\n            const lastInsertedLineNumber = currentEditStartLineNumber + insertingLinesCnt;\n            const decorationsWithInjectedTextInEditedRange = this._decorationsTree.getInjectedTextInInterval(this, this.getOffsetAt(new Position(firstEditLineNumber, 1)), this.getOffsetAt(new Position(lastInsertedLineNumber, this.getLineMaxColumn(lastInsertedLineNumber))), 0);\n            const injectedTextInEditedRange = LineInjectedText.fromDecorations(decorationsWithInjectedTextInEditedRange);\n            const injectedTextInEditedRangeQueue = new ArrayQueue(injectedTextInEditedRange);\n            for (let j = editingLinesCnt; j \u003e= 0; j--) {\n              const editLineNumber = startLineNumber + j;\n              const currentEditLineNumber = currentEditStartLineNumber + j;\n              injectedTextInEditedRangeQueue.takeFromEndWhile((r) =\u003e r.lineNumber \u003e currentEditLineNumber);\n              const decorationsInCurrentLine = injectedTextInEditedRangeQueue.takeFromEndWhile((r) =\u003e r.lineNumber === currentEditLineNumber);\n              rawContentChanges.push(new ModelRawLineChanged(editLineNumber, this.getLineContent(currentEditLineNumber), decorationsInCurrentLine));\n            }\n            if (editingLinesCnt \u003c deletingLinesCnt) {\n              const spliceStartLineNumber = startLineNumber + editingLinesCnt;\n              rawContentChanges.push(new ModelRawLinesDeleted(spliceStartLineNumber + 1, endLineNumber));\n            }\n            if (editingLinesCnt \u003c insertingLinesCnt) {\n              const injectedTextInEditedRangeQueue2 = new ArrayQueue(injectedTextInEditedRange);\n              const spliceLineNumber = startLineNumber + editingLinesCnt;\n              const cnt = insertingLinesCnt - editingLinesCnt;\n              const fromLineNumber = newLineCount - lineCount - cnt + spliceLineNumber + 1;\n              const injectedTexts = [];\n              const newLines = [];\n              for (let i3 = 0; i3 \u003c cnt; i3++) {\n                const lineNumber = fromLineNumber + i3;\n                newLines[i3] = this.getLineContent(lineNumber);\n                injectedTextInEditedRangeQueue2.takeWhile((r) =\u003e r.lineNumber \u003c lineNumber);\n                injectedTexts[i3] = injectedTextInEditedRangeQueue2.takeWhile((r) =\u003e r.lineNumber === lineNumber);\n              }\n              rawContentChanges.push(new ModelRawLinesInserted(spliceLineNumber + 1, startLineNumber + insertingLinesCnt, newLines, injectedTexts));\n            }\n            lineCount += changeLineCountDelta;\n          }\n          this._emitContentChangedEvent(new ModelRawContentChangedEvent(rawContentChanges, this.getVersionId(), this._isUndoing, this._isRedoing), {\n            changes: contentChanges,\n            eol: this._buffer.getEOL(),\n            isEolChange: false,\n            versionId: this.getVersionId(),\n            isUndoing: this._isUndoing,\n            isRedoing: this._isRedoing,\n            isFlush: false,\n            detailedReasons: [reason],\n            detailedReasonsChangeLengths: [contentChanges.length]\n          });\n        }\n        return result.reverseEdits === null ? void 0 : result.reverseEdits;\n      }\n      undo() {\n        return this._undoRedoService.undo(this.uri);\n      }\n      canUndo() {\n        return this._undoRedoService.canUndo(this.uri);\n      }\n      redo() {\n        return this._undoRedoService.redo(this.uri);\n      }\n      canRedo() {\n        return this._undoRedoService.canRedo(this.uri);\n      }\n      //#endregion\n      //#region Decorations\n      handleBeforeFireDecorationsChangedEvent(affectedInjectedTextLines, affectedLineHeights, affectedFontLines) {\n        if (affectedInjectedTextLines \u0026\u0026 affectedInjectedTextLines.size \u003e 0) {\n          const affectedLines = Array.from(affectedInjectedTextLines);\n          const lineChangeEvents = affectedLines.map((lineNumber) =\u003e new ModelRawLineChanged(lineNumber, this.getLineContent(lineNumber), this._getInjectedTextInLine(lineNumber)));\n          this._onDidChangeInjectedText.fire(new ModelInjectedTextChangedEvent(lineChangeEvents));\n        }\n        if (affectedLineHeights \u0026\u0026 affectedLineHeights.size \u003e 0) {\n          const affectedLines = Array.from(affectedLineHeights);\n          const lineHeightChangeEvent = affectedLines.map((specialLineHeightChange) =\u003e new ModelLineHeightChanged(specialLineHeightChange.ownerId, specialLineHeightChange.decorationId, specialLineHeightChange.lineNumber, specialLineHeightChange.lineHeight));\n          this._onDidChangeLineHeight.fire(new ModelLineHeightChangedEvent(lineHeightChangeEvent));\n        }\n        if (affectedFontLines \u0026\u0026 affectedFontLines.size \u003e 0) {\n          const affectedLines = Array.from(affectedFontLines);\n          const fontChangeEvent = affectedLines.map((fontChange) =\u003e new ModelFontChanged(fontChange.ownerId, fontChange.lineNumber));\n          this._onDidChangeFont.fire(new ModelFontChangedEvent(fontChangeEvent));\n        }\n      }\n      changeDecorations(callback, ownerId2 = 0) {\n        this._assertNotDisposed();\n        try {\n          this._onDidChangeDecorations.beginDeferredEmit();\n          return this._changeDecorations(ownerId2, callback);\n        } finally {\n          this._onDidChangeDecorations.endDeferredEmit();\n        }\n      }\n      _changeDecorations(ownerId2, callback) {\n        const changeAccessor = {\n          addDecoration: (range2, options2) =\u003e {\n            return this._deltaDecorationsImpl(ownerId2, [], [{ range: range2, options: options2 }])[0];\n          },\n          changeDecoration: (id, newRange) =\u003e {\n            this._changeDecorationImpl(ownerId2, id, newRange);\n          },\n          changeDecorationOptions: (id, options2) =\u003e {\n            this._changeDecorationOptionsImpl(ownerId2, id, _normalizeOptions(options2));\n          },\n          removeDecoration: (id) =\u003e {\n            this._deltaDecorationsImpl(ownerId2, [id], []);\n          },\n          deltaDecorations: (oldDecorations, newDecorations) =\u003e {\n            if (oldDecorations.length === 0 \u0026\u0026 newDecorations.length === 0) {\n              return [];\n            }\n            return this._deltaDecorationsImpl(ownerId2, oldDecorations, newDecorations);\n          }\n        };\n        let result = null;\n        try {\n          result = callback(changeAccessor);\n        } catch (e) {\n          onUnexpectedError(e);\n        }\n        changeAccessor.addDecoration = invalidFunc2;\n        changeAccessor.changeDecoration = invalidFunc2;\n        changeAccessor.changeDecorationOptions = invalidFunc2;\n        changeAccessor.removeDecoration = invalidFunc2;\n        changeAccessor.deltaDecorations = invalidFunc2;\n        return result;\n      }\n      deltaDecorations(oldDecorations, newDecorations, ownerId2 = 0) {\n        this._assertNotDisposed();\n        if (!oldDecorations) {\n          oldDecorations = [];\n        }\n        if (oldDecorations.length === 0 \u0026\u0026 newDecorations.length === 0) {\n          return [];\n        }\n        try {\n          this._deltaDecorationCallCnt++;\n          if (this._deltaDecorationCallCnt \u003e 1) {\n            console.warn(`Invoking deltaDecorations recursively could lead to leaking decorations.`);\n            onUnexpectedError(new Error(`Invoking deltaDecorations recursively could lead to leaking decorations.`));\n          }\n          this._onDidChangeDecorations.beginDeferredEmit();\n          return this._deltaDecorationsImpl(ownerId2, oldDecorations, newDecorations);\n        } finally {\n          this._onDidChangeDecorations.endDeferredEmit();\n          this._deltaDecorationCallCnt--;\n        }\n      }\n      _getTrackedRange(id) {\n        return this.getDecorationRange(id);\n      }\n      _setTrackedRange(id, newRange, newStickiness) {\n        const node = id ? this._decorations[id] : null;\n        if (!node) {\n          if (!newRange) {\n            return null;\n          }\n          return this._deltaDecorationsImpl(0, [], [{ range: newRange, options: TRACKED_RANGE_OPTIONS[newStickiness] }], true)[0];\n        }\n        if (!newRange) {\n          this._decorationsTree.delete(node);\n          delete this._decorations[node.id];\n          return null;\n        }\n        const range2 = this._validateRangeRelaxedNoAllocations(newRange);\n        const startOffset = this._buffer.getOffsetAt(range2.startLineNumber, range2.startColumn);\n        const endOffset = this._buffer.getOffsetAt(range2.endLineNumber, range2.endColumn);\n        this._decorationsTree.delete(node);\n        node.reset(this.getVersionId(), startOffset, endOffset, range2);\n        node.setOptions(TRACKED_RANGE_OPTIONS[newStickiness]);\n        this._decorationsTree.insert(node);\n        return node.id;\n      }\n      removeAllDecorationsWithOwnerId(ownerId2) {\n        if (this._isDisposed) {\n          return;\n        }\n        const nodes = this._decorationsTree.collectNodesFromOwner(ownerId2);\n        for (let i2 = 0, len = nodes.length; i2 \u003c len; i2++) {\n          const node = nodes[i2];\n          this._decorationsTree.delete(node);\n          delete this._decorations[node.id];\n        }\n      }\n      getDecorationOptions(decorationId) {\n        const node = this._decorations[decorationId];\n        if (!node) {\n          return null;\n        }\n        return node.options;\n      }\n      getDecorationRange(decorationId) {\n        const node = this._decorations[decorationId];\n        if (!node) {\n          return null;\n        }\n        return this._decorationsTree.getNodeRange(this, node);\n      }\n      getLineDecorations(lineNumber, ownerId2 = 0, filterOutValidation = false, filterFontDecorations2 = false) {\n        if (lineNumber \u003c 1 || lineNumber \u003e this.getLineCount()) {\n          return [];\n        }\n        return this.getLinesDecorations(lineNumber, lineNumber, ownerId2, filterOutValidation, filterFontDecorations2);\n      }\n      getLinesDecorations(_startLineNumber, _endLineNumber, ownerId2 = 0, filterOutValidation = false, filterFontDecorations2 = false, onlyMarginDecorations = false) {\n        const lineCount = this.getLineCount();\n        const startLineNumber = Math.min(lineCount, Math.max(1, _startLineNumber));\n        const endLineNumber = Math.min(lineCount, Math.max(1, _endLineNumber));\n        const endColumn = this.getLineMaxColumn(endLineNumber);\n        const range2 = new Range(startLineNumber, 1, endLineNumber, endColumn);\n        const decorations = this._getDecorationsInRange(range2, ownerId2, filterOutValidation, filterFontDecorations2, onlyMarginDecorations);\n        pushMany(decorations, this._decorationProvider.getDecorationsInRange(range2, ownerId2, filterOutValidation));\n        return decorations;\n      }\n      getDecorationsInRange(range2, ownerId2 = 0, filterOutValidation = false, filterFontDecorations2 = false, onlyMinimapDecorations = false, onlyMarginDecorations = false) {\n        const validatedRange = this.validateRange(range2);\n        const decorations = this._getDecorationsInRange(validatedRange, ownerId2, filterOutValidation, filterFontDecorations2, onlyMarginDecorations);\n        pushMany(decorations, this._decorationProvider.getDecorationsInRange(validatedRange, ownerId2, filterOutValidation, onlyMinimapDecorations));\n        return decorations;\n      }\n      getOverviewRulerDecorations(ownerId2 = 0, filterOutValidation = false, filterFontDecorations2 = false) {\n        return this._decorationsTree.getAll(this, ownerId2, filterOutValidation, filterFontDecorations2, true, false);\n      }\n      getInjectedTextDecorations(ownerId2 = 0) {\n        return this._decorationsTree.getAllInjectedText(this, ownerId2);\n      }\n      getCustomLineHeightsDecorations(ownerId2 = 0) {\n        return this._decorationsTree.getAllCustomLineHeights(this, ownerId2);\n      }\n      _getInjectedTextInLine(lineNumber) {\n        const startOffset = this._buffer.getOffsetAt(lineNumber, 1);\n        const endOffset = startOffset + this._buffer.getLineLength(lineNumber);\n        const result = this._decorationsTree.getInjectedTextInInterval(this, startOffset, endOffset, 0);\n        return LineInjectedText.fromDecorations(result).filter((t) =\u003e t.lineNumber === lineNumber);\n      }\n      getFontDecorationsInRange(range2, ownerId2 = 0) {\n        const startOffset = this._buffer.getOffsetAt(range2.startLineNumber, range2.startColumn);\n        const endOffset = this._buffer.getOffsetAt(range2.endLineNumber, range2.endColumn);\n        return this._decorationsTree.getFontDecorationsInInterval(this, startOffset, endOffset, ownerId2);\n      }\n      getAllDecorations(ownerId2 = 0, filterOutValidation = false, filterFontDecorations2 = false) {\n        let result = this._decorationsTree.getAll(this, ownerId2, filterOutValidation, filterFontDecorations2, false, false);\n        result = result.concat(this._decorationProvider.getAllDecorations(ownerId2, filterOutValidation));\n        return result;\n      }\n      getAllMarginDecorations(ownerId2 = 0) {\n        return this._decorationsTree.getAll(this, ownerId2, false, false, false, true);\n      }\n      _getDecorationsInRange(filterRange, filterOwnerId, filterOutValidation, filterFontDecorations2, onlyMarginDecorations) {\n        const startOffset = this._buffer.getOffsetAt(filterRange.startLineNumber, filterRange.startColumn);\n        const endOffset = this._buffer.getOffsetAt(filterRange.endLineNumber, filterRange.endColumn);\n        return this._decorationsTree.getAllInInterval(this, startOffset, endOffset, filterOwnerId, filterOutValidation, filterFontDecorations2, onlyMarginDecorations);\n      }\n      getRangeAt(start, end) {\n        return this._buffer.getRangeAt(start, end - start);\n      }\n      _changeDecorationImpl(ownerId2, decorationId, _range) {\n        const node = this._decorations[decorationId];\n        if (!node) {\n          return;\n        }\n        if (node.options.after) {\n          const oldRange = this.getDecorationRange(decorationId);\n          this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange.endLineNumber);\n        }\n        if (node.options.before) {\n          const oldRange = this.getDecorationRange(decorationId);\n          this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange.startLineNumber);\n        }\n        if (node.options.lineHeight !== null) {\n          const oldRange = this.getDecorationRange(decorationId);\n          this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(ownerId2, decorationId, oldRange.startLineNumber, null);\n        }\n        if (node.options.affectsFont) {\n          const oldRange = this.getDecorationRange(decorationId);\n          this._onDidChangeDecorations.recordLineAffectedByFontChange(ownerId2, node.id, oldRange.startLineNumber);\n        }\n        const range2 = this._validateRangeRelaxedNoAllocations(_range);\n        const startOffset = this._buffer.getOffsetAt(range2.startLineNumber, range2.startColumn);\n        const endOffset = this._buffer.getOffsetAt(range2.endLineNumber, range2.endColumn);\n        this._decorationsTree.delete(node);\n        node.reset(this.getVersionId(), startOffset, endOffset, range2);\n        this._decorationsTree.insert(node);\n        this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n        if (node.options.after) {\n          this._onDidChangeDecorations.recordLineAffectedByInjectedText(range2.endLineNumber);\n        }\n        if (node.options.before) {\n          this._onDidChangeDecorations.recordLineAffectedByInjectedText(range2.startLineNumber);\n        }\n        if (node.options.lineHeight !== null) {\n          this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(ownerId2, decorationId, range2.startLineNumber, node.options.lineHeight);\n        }\n        if (node.options.affectsFont) {\n          this._onDidChangeDecorations.recordLineAffectedByFontChange(ownerId2, node.id, range2.startLineNumber);\n        }\n      }\n      _changeDecorationOptionsImpl(ownerId2, decorationId, options2) {\n        const node = this._decorations[decorationId];\n        if (!node) {\n          return;\n        }\n        const nodeWasInOverviewRuler = node.options.overviewRuler \u0026\u0026 node.options.overviewRuler.color ? true : false;\n        const nodeIsInOverviewRuler = options2.overviewRuler \u0026\u0026 options2.overviewRuler.color ? true : false;\n        this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n        this._onDidChangeDecorations.checkAffectedAndFire(options2);\n        if (node.options.after || options2.after) {\n          const nodeRange = this._decorationsTree.getNodeRange(this, node);\n          this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.endLineNumber);\n        }\n        if (node.options.before || options2.before) {\n          const nodeRange = this._decorationsTree.getNodeRange(this, node);\n          this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.startLineNumber);\n        }\n        if (node.options.lineHeight !== null || options2.lineHeight !== null) {\n          const nodeRange = this._decorationsTree.getNodeRange(this, node);\n          this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(ownerId2, decorationId, nodeRange.startLineNumber, options2.lineHeight);\n        }\n        if (node.options.affectsFont || options2.affectsFont) {\n          const nodeRange = this._decorationsTree.getNodeRange(this, node);\n          this._onDidChangeDecorations.recordLineAffectedByFontChange(ownerId2, decorationId, nodeRange.startLineNumber);\n        }\n        const movedInOverviewRuler = nodeWasInOverviewRuler !== nodeIsInOverviewRuler;\n        const changedWhetherInjectedText = isOptionsInjectedText(options2) !== isNodeInjectedText(node);\n        if (movedInOverviewRuler || changedWhetherInjectedText) {\n          this._decorationsTree.delete(node);\n          node.setOptions(options2);\n          this._decorationsTree.insert(node);\n        } else {\n          node.setOptions(options2);\n        }\n      }\n      _deltaDecorationsImpl(ownerId2, oldDecorationsIds, newDecorations, suppressEvents = false) {\n        const versionId = this.getVersionId();\n        const oldDecorationsLen = oldDecorationsIds.length;\n        let oldDecorationIndex = 0;\n        const newDecorationsLen = newDecorations.length;\n        let newDecorationIndex = 0;\n        this._onDidChangeDecorations.beginDeferredEmit();\n        try {\n          const result = new Array(newDecorationsLen);\n          while (oldDecorationIndex \u003c oldDecorationsLen || newDecorationIndex \u003c newDecorationsLen) {\n            let node = null;\n            if (oldDecorationIndex \u003c oldDecorationsLen) {\n              let decorationId;\n              do {\n                decorationId = oldDecorationsIds[oldDecorationIndex++];\n                node = this._decorations[decorationId];\n              } while (!node \u0026\u0026 oldDecorationIndex \u003c oldDecorationsLen);\n              if (node) {\n                if (node.options.after) {\n                  const nodeRange = this._decorationsTree.getNodeRange(this, node);\n                  this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.endLineNumber);\n                }\n                if (node.options.before) {\n                  const nodeRange = this._decorationsTree.getNodeRange(this, node);\n                  this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.startLineNumber);\n                }\n                if (node.options.lineHeight !== null) {\n                  const nodeRange = this._decorationsTree.getNodeRange(this, node);\n                  this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(ownerId2, decorationId, nodeRange.startLineNumber, null);\n                }\n                if (node.options.affectsFont) {\n                  const nodeRange = this._decorationsTree.getNodeRange(this, node);\n                  this._onDidChangeDecorations.recordLineAffectedByFontChange(ownerId2, decorationId, nodeRange.startLineNumber);\n                }\n                this._decorationsTree.delete(node);\n                if (!suppressEvents) {\n                  this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n                }\n              }\n            }\n            if (newDecorationIndex \u003c newDecorationsLen) {\n              if (!node) {\n                const internalDecorationId = ++this._lastDecorationId;\n                const decorationId = `${this._instanceId};${internalDecorationId}`;\n                node = new IntervalNode(decorationId, 0, 0);\n                this._decorations[decorationId] = node;\n              }\n              const newDecoration = newDecorations[newDecorationIndex];\n              const range2 = this._validateRangeRelaxedNoAllocations(newDecoration.range);\n              const options2 = _normalizeOptions(newDecoration.options);\n              const startOffset = this._buffer.getOffsetAt(range2.startLineNumber, range2.startColumn);\n              const endOffset = this._buffer.getOffsetAt(range2.endLineNumber, range2.endColumn);\n              node.ownerId = ownerId2;\n              node.reset(versionId, startOffset, endOffset, range2);\n              node.setOptions(options2);\n              if (node.options.after) {\n                this._onDidChangeDecorations.recordLineAffectedByInjectedText(range2.endLineNumber);\n              }\n              if (node.options.before) {\n                this._onDidChangeDecorations.recordLineAffectedByInjectedText(range2.startLineNumber);\n              }\n              if (node.options.lineHeight !== null) {\n                this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(ownerId2, node.id, range2.startLineNumber, node.options.lineHeight);\n              }\n              if (node.options.affectsFont) {\n                this._onDidChangeDecorations.recordLineAffectedByFontChange(ownerId2, node.id, range2.startLineNumber);\n              }\n              if (!suppressEvents) {\n                this._onDidChangeDecorations.checkAffectedAndFire(options2);\n              }\n              this._decorationsTree.insert(node);\n              result[newDecorationIndex] = node.id;\n              newDecorationIndex++;\n            } else {\n              if (node) {\n                delete this._decorations[node.id];\n              }\n            }\n          }\n          return result;\n        } finally {\n          this._onDidChangeDecorations.endDeferredEmit();\n        }\n      }\n      //#endregion\n      //#region Tokenization\n      // TODO move them to the tokenization part.\n      getLanguageId() {\n        return this.tokenization.getLanguageId();\n      }\n      setLanguage(languageIdOrSelection, source) {\n        if (typeof languageIdOrSelection === \"string\") {\n          this._languageSelectionListener.clear();\n          this._setLanguage(languageIdOrSelection, source);\n        } else {\n          this._languageSelectionListener.value = languageIdOrSelection.onDidChange(() =\u003e this._setLanguage(languageIdOrSelection.languageId, source));\n          this._setLanguage(languageIdOrSelection.languageId, source);\n        }\n      }\n      _setLanguage(languageId, source) {\n        this.tokenization.setLanguageId(languageId, source);\n        this._languageService.requestRichLanguageFeatures(languageId);\n      }\n      getLanguageIdAtPosition(lineNumber, column) {\n        return this.tokenization.getLanguageIdAtPosition(lineNumber, column);\n      }\n      getWordAtPosition(position) {\n        return this._tokenizationTextModelPart.getWordAtPosition(position);\n      }\n      getWordUntilPosition(position) {\n        return this._tokenizationTextModelPart.getWordUntilPosition(position);\n      }\n      //#endregion\n      normalizePosition(position, affinity) {\n        return position;\n      }\n      /**\n       * Gets the column at which indentation stops at a given line.\n       * @internal\n      */\n      getLineIndentColumn(lineNumber) {\n        return indentOfLine(this.getLineContent(lineNumber)) + 1;\n      }\n      toString() {\n        return `TextModel(${this.uri.toString()})`;\n      }\n    };\n    TextModel = TextModel_1 = __decorate25([\n      __param23(4, IUndoRedoService),\n      __param23(5, ILanguageService),\n      __param23(6, ILanguageConfigurationService),\n      __param23(7, IInstantiationService)\n    ], TextModel);\n    DecorationsTrees = class {\n      constructor() {\n        this._decorationsTree0 = new IntervalTree();\n        this._decorationsTree1 = new IntervalTree();\n        this._injectedTextDecorationsTree = new IntervalTree();\n      }\n      ensureAllNodesHaveRanges(host) {\n        this.getAll(host, 0, false, false, false, false);\n      }\n      _ensureNodesHaveRanges(host, nodes) {\n        for (const node of nodes) {\n          if (node.range === null) {\n            node.range = host.getRangeAt(node.cachedAbsoluteStart, node.cachedAbsoluteEnd);\n          }\n        }\n        return nodes;\n      }\n      getAllInInterval(host, start, end, filterOwnerId, filterOutValidation, filterFontDecorations2, onlyMarginDecorations) {\n        const versionId = host.getVersionId();\n        const result = this._intervalSearch(start, end, filterOwnerId, filterOutValidation, filterFontDecorations2, versionId, onlyMarginDecorations);\n        return this._ensureNodesHaveRanges(host, result);\n      }\n      _intervalSearch(start, end, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations) {\n        const r0 = this._decorationsTree0.intervalSearch(start, end, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n        const r1 = this._decorationsTree1.intervalSearch(start, end, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n        const r2 = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n        return r0.concat(r1).concat(r2);\n      }\n      getInjectedTextInInterval(host, start, end, filterOwnerId) {\n        const versionId = host.getVersionId();\n        const result = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, false, false, versionId, false);\n        return this._ensureNodesHaveRanges(host, result).filter((i2) =\u003e i2.options.showIfCollapsed || !i2.range.isEmpty());\n      }\n      getFontDecorationsInInterval(host, start, end, filterOwnerId) {\n        const versionId = host.getVersionId();\n        const decorations = this._decorationsTree0.intervalSearch(start, end, filterOwnerId, false, false, versionId, false);\n        return this._ensureNodesHaveRanges(host, decorations).filter((i2) =\u003e i2.options.affectsFont);\n      }\n      getAllInjectedText(host, filterOwnerId) {\n        const versionId = host.getVersionId();\n        const result = this._injectedTextDecorationsTree.search(filterOwnerId, false, false, versionId, false);\n        return this._ensureNodesHaveRanges(host, result).filter((i2) =\u003e i2.options.showIfCollapsed || !i2.range.isEmpty());\n      }\n      getAllCustomLineHeights(host, filterOwnerId) {\n        const versionId = host.getVersionId();\n        const result = this._search(filterOwnerId, false, false, false, versionId, false);\n        return this._ensureNodesHaveRanges(host, result).filter((i2) =\u003e typeof i2.options.lineHeight === \"number\");\n      }\n      getAll(host, filterOwnerId, filterOutValidation, filterFontDecorations2, overviewRulerOnly, onlyMarginDecorations) {\n        const versionId = host.getVersionId();\n        const result = this._search(filterOwnerId, filterOutValidation, filterFontDecorations2, overviewRulerOnly, versionId, onlyMarginDecorations);\n        return this._ensureNodesHaveRanges(host, result);\n      }\n      _search(filterOwnerId, filterOutValidation, filterFontDecorations2, overviewRulerOnly, cachedVersionId, onlyMarginDecorations) {\n        if (overviewRulerOnly) {\n          return this._decorationsTree1.search(filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n        } else {\n          const r0 = this._decorationsTree0.search(filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n          const r1 = this._decorationsTree1.search(filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n          const r2 = this._injectedTextDecorationsTree.search(filterOwnerId, filterOutValidation, filterFontDecorations2, cachedVersionId, onlyMarginDecorations);\n          return r0.concat(r1).concat(r2);\n        }\n      }\n      collectNodesFromOwner(ownerId2) {\n        const r0 = this._decorationsTree0.collectNodesFromOwner(ownerId2);\n        const r1 = this._decorationsTree1.collectNodesFromOwner(ownerId2);\n        const r2 = this._injectedTextDecorationsTree.collectNodesFromOwner(ownerId2);\n        return r0.concat(r1).concat(r2);\n      }\n      collectNodesPostOrder() {\n        const r0 = this._decorationsTree0.collectNodesPostOrder();\n        const r1 = this._decorationsTree1.collectNodesPostOrder();\n        const r2 = this._injectedTextDecorationsTree.collectNodesPostOrder();\n        return r0.concat(r1).concat(r2);\n      }\n      insert(node) {\n        if (isNodeInjectedText(node)) {\n          this._injectedTextDecorationsTree.insert(node);\n        } else if (isNodeInOverviewRuler(node)) {\n          this._decorationsTree1.insert(node);\n        } else {\n          this._decorationsTree0.insert(node);\n        }\n      }\n      delete(node) {\n        if (isNodeInjectedText(node)) {\n          this._injectedTextDecorationsTree.delete(node);\n        } else if (isNodeInOverviewRuler(node)) {\n          this._decorationsTree1.delete(node);\n        } else {\n          this._decorationsTree0.delete(node);\n        }\n      }\n      getNodeRange(host, node) {\n        const versionId = host.getVersionId();\n        if (node.cachedVersionId !== versionId) {\n          this._resolveNode(node, versionId);\n        }\n        if (node.range === null) {\n          node.range = host.getRangeAt(node.cachedAbsoluteStart, node.cachedAbsoluteEnd);\n        }\n        return node.range;\n      }\n      _resolveNode(node, cachedVersionId) {\n        if (isNodeInjectedText(node)) {\n          this._injectedTextDecorationsTree.resolveNode(node, cachedVersionId);\n        } else if (isNodeInOverviewRuler(node)) {\n          this._decorationsTree1.resolveNode(node, cachedVersionId);\n        } else {\n          this._decorationsTree0.resolveNode(node, cachedVersionId);\n        }\n      }\n      acceptReplace(offset, length, textLength, forceMoveMarkers) {\n        this._decorationsTree0.acceptReplace(offset, length, textLength, forceMoveMarkers);\n        this._decorationsTree1.acceptReplace(offset, length, textLength, forceMoveMarkers);\n        this._injectedTextDecorationsTree.acceptReplace(offset, length, textLength, forceMoveMarkers);\n      }\n    };\n    DecorationOptions = class {\n      constructor(options2) {\n        this.color = options2.color || \"\";\n        this.darkColor = options2.darkColor || \"\";\n      }\n    };\n    ModelDecorationOverviewRulerOptions = class extends DecorationOptions {\n      constructor(options2) {\n        super(options2);\n        this._resolvedColor = null;\n        this.position = typeof options2.position === \"number\" ? options2.position : OverviewRulerLane.Center;\n      }\n      getColor(theme) {\n        if (!this._resolvedColor) {\n          if (theme.type !== \"light\" \u0026\u0026 this.darkColor) {\n            this._resolvedColor = this._resolveColor(this.darkColor, theme);\n          } else {\n            this._resolvedColor = this._resolveColor(this.color, theme);\n          }\n        }\n        return this._resolvedColor;\n      }\n      invalidateCachedColor() {\n        this._resolvedColor = null;\n      }\n      _resolveColor(color, theme) {\n        if (typeof color === \"string\") {\n          return color;\n        }\n        const c = color ? theme.getColor(color.id) : null;\n        if (!c) {\n          return \"\";\n        }\n        return c.toString();\n      }\n    };\n    ModelDecorationGlyphMarginOptions = class {\n      constructor(options2) {\n        this.position = options2?.position ?? GlyphMarginLane.Center;\n        this.persistLane = options2?.persistLane;\n      }\n    };\n    ModelDecorationMinimapOptions = class extends DecorationOptions {\n      constructor(options2) {\n        super(options2);\n        this.position = options2.position;\n        this.sectionHeaderStyle = options2.sectionHeaderStyle ?? null;\n        this.sectionHeaderText = options2.sectionHeaderText ?? null;\n      }\n      getColor(theme) {\n        if (!this._resolvedColor) {\n          if (theme.type !== \"light\" \u0026\u0026 this.darkColor) {\n            this._resolvedColor = this._resolveColor(this.darkColor, theme);\n          } else {\n            this._resolvedColor = this._resolveColor(this.color, theme);\n          }\n        }\n        return this._resolvedColor;\n      }\n      invalidateCachedColor() {\n        this._resolvedColor = void 0;\n      }\n      _resolveColor(color, theme) {\n        if (typeof color === \"string\") {\n          return Color.fromHex(color);\n        }\n        return theme.getColor(color.id);\n      }\n    };\n    ModelDecorationInjectedTextOptions = class _ModelDecorationInjectedTextOptions {\n      static from(options2) {\n        if (options2 instanceof _ModelDecorationInjectedTextOptions) {\n          return options2;\n        }\n        return new _ModelDecorationInjectedTextOptions(options2);\n      }\n      constructor(options2) {\n        this.content = options2.content || \"\";\n        this.tokens = options2.tokens ?? null;\n        this.inlineClassName = options2.inlineClassName || null;\n        this.inlineClassNameAffectsLetterSpacing = options2.inlineClassNameAffectsLetterSpacing || false;\n        this.attachedData = options2.attachedData || null;\n        this.cursorStops = options2.cursorStops || null;\n      }\n    };\n    ModelDecorationOptions = class _ModelDecorationOptions {\n      static register(options2) {\n        return new _ModelDecorationOptions(options2);\n      }\n      static createDynamic(options2) {\n        return new _ModelDecorationOptions(options2);\n      }\n      constructor(options2) {\n        this.description = options2.description;\n        this.blockClassName = options2.blockClassName ? cleanClassName(options2.blockClassName) : null;\n        this.blockDoesNotCollapse = options2.blockDoesNotCollapse ?? null;\n        this.blockIsAfterEnd = options2.blockIsAfterEnd ?? null;\n        this.blockPadding = options2.blockPadding ?? null;\n        this.stickiness = options2.stickiness || 0;\n        this.zIndex = options2.zIndex || 0;\n        this.className = options2.className ? cleanClassName(options2.className) : null;\n        this.shouldFillLineOnLineBreak = options2.shouldFillLineOnLineBreak ?? null;\n        this.hoverMessage = options2.hoverMessage || null;\n        this.glyphMarginHoverMessage = options2.glyphMarginHoverMessage || null;\n        this.lineNumberHoverMessage = options2.lineNumberHoverMessage || null;\n        this.isWholeLine = options2.isWholeLine || false;\n        this.lineHeight = options2.lineHeight ? Math.min(options2.lineHeight, LINE_HEIGHT_CEILING) : null;\n        this.fontSize = options2.fontSize || null;\n        this.affectsFont = !!options2.fontSize || !!options2.fontFamily || !!options2.fontWeight || !!options2.fontStyle;\n        this.showIfCollapsed = options2.showIfCollapsed || false;\n        this.collapseOnReplaceEdit = options2.collapseOnReplaceEdit || false;\n        this.overviewRuler = options2.overviewRuler ? new ModelDecorationOverviewRulerOptions(options2.overviewRuler) : null;\n        this.minimap = options2.minimap ? new ModelDecorationMinimapOptions(options2.minimap) : null;\n        this.glyphMargin = options2.glyphMarginClassName ? new ModelDecorationGlyphMarginOptions(options2.glyphMargin) : null;\n        this.glyphMarginClassName = options2.glyphMarginClassName ? cleanClassName(options2.glyphMarginClassName) : null;\n        this.linesDecorationsClassName = options2.linesDecorationsClassName ? cleanClassName(options2.linesDecorationsClassName) : null;\n        this.lineNumberClassName = options2.lineNumberClassName ? cleanClassName(options2.lineNumberClassName) : null;\n        this.linesDecorationsTooltip = options2.linesDecorationsTooltip ? htmlAttributeEncodeValue(options2.linesDecorationsTooltip) : null;\n        this.firstLineDecorationClassName = options2.firstLineDecorationClassName ? cleanClassName(options2.firstLineDecorationClassName) : null;\n        this.marginClassName = options2.marginClassName ? cleanClassName(options2.marginClassName) : null;\n        this.inlineClassName = options2.inlineClassName ? cleanClassName(options2.inlineClassName) : null;\n        this.inlineClassNameAffectsLetterSpacing = options2.inlineClassNameAffectsLetterSpacing || false;\n        this.beforeContentClassName = options2.beforeContentClassName ? cleanClassName(options2.beforeContentClassName) : null;\n        this.afterContentClassName = options2.afterContentClassName ? cleanClassName(options2.afterContentClassName) : null;\n        this.after = options2.after ? ModelDecorationInjectedTextOptions.from(options2.after) : null;\n        this.before = options2.before ? ModelDecorationInjectedTextOptions.from(options2.before) : null;\n        this.hideInCommentTokens = options2.hideInCommentTokens ?? false;\n        this.hideInStringTokens = options2.hideInStringTokens ?? false;\n        this.textDirection = options2.textDirection ?? null;\n      }\n    };\n    ModelDecorationOptions.EMPTY = ModelDecorationOptions.register({ description: \"empty\" });\n    TRACKED_RANGE_OPTIONS = [\n      ModelDecorationOptions.register({\n        description: \"tracked-range-always-grows-when-typing-at-edges\",\n        stickiness: 0\n        /* model.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */\n      }),\n      ModelDecorationOptions.register({\n        description: \"tracked-range-never-grows-when-typing-at-edges\",\n        stickiness: 1\n        /* model.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n      }),\n      ModelDecorationOptions.register({\n        description: \"tracked-range-grows-only-when-typing-before\",\n        stickiness: 2\n        /* model.TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */\n      }),\n      ModelDecorationOptions.register({\n        description: \"tracked-range-grows-only-when-typing-after\",\n        stickiness: 3\n        /* model.TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */\n      })\n    ];\n    LineHeightChangingDecoration = class {\n      static toKey(obj) {\n        return `${obj.ownerId};${obj.decorationId};${obj.lineNumber}`;\n      }\n      constructor(ownerId2, decorationId, lineNumber, lineHeight) {\n        this.ownerId = ownerId2;\n        this.decorationId = decorationId;\n        this.lineNumber = lineNumber;\n        this.lineHeight = lineHeight;\n      }\n    };\n    LineFontChangingDecoration = class {\n      static toKey(obj) {\n        return `${obj.ownerId};${obj.decorationId};${obj.lineNumber}`;\n      }\n      constructor(ownerId2, decorationId, lineNumber) {\n        this.ownerId = ownerId2;\n        this.decorationId = decorationId;\n        this.lineNumber = lineNumber;\n      }\n    };\n    DidChangeDecorationsEmitter = class extends Disposable {\n      constructor(handleBeforeFire) {\n        super();\n        this.handleBeforeFire = handleBeforeFire;\n        this._actual = this._register(new Emitter());\n        this.event = this._actual.event;\n        this._affectedInjectedTextLines = null;\n        this._affectedLineHeights = null;\n        this._affectedFontLines = null;\n        this._deferredCnt = 0;\n        this._shouldFireDeferred = false;\n        this._affectsMinimap = false;\n        this._affectsOverviewRuler = false;\n        this._affectsGlyphMargin = false;\n        this._affectsLineNumber = false;\n      }\n      beginDeferredEmit() {\n        this._deferredCnt++;\n      }\n      endDeferredEmit() {\n        this._deferredCnt--;\n        if (this._deferredCnt === 0) {\n          if (this._shouldFireDeferred) {\n            this.doFire();\n          }\n          this._affectedInjectedTextLines?.clear();\n          this._affectedInjectedTextLines = null;\n          this._affectedLineHeights?.clear();\n          this._affectedLineHeights = null;\n          this._affectedFontLines?.clear();\n          this._affectedFontLines = null;\n        }\n      }\n      recordLineAffectedByInjectedText(lineNumber) {\n        if (!this._affectedInjectedTextLines) {\n          this._affectedInjectedTextLines = /* @__PURE__ */ new Set();\n        }\n        this._affectedInjectedTextLines.add(lineNumber);\n      }\n      recordLineAffectedByLineHeightChange(ownerId2, decorationId, lineNumber, lineHeight) {\n        if (!this._affectedLineHeights) {\n          this._affectedLineHeights = new SetWithKey([], LineHeightChangingDecoration.toKey);\n        }\n        this._affectedLineHeights.add(new LineHeightChangingDecoration(ownerId2, decorationId, lineNumber, lineHeight));\n      }\n      recordLineAffectedByFontChange(ownerId2, decorationId, lineNumber) {\n        if (!this._affectedFontLines) {\n          this._affectedFontLines = new SetWithKey([], LineFontChangingDecoration.toKey);\n        }\n        this._affectedFontLines.add(new LineFontChangingDecoration(ownerId2, decorationId, lineNumber));\n      }\n      checkAffectedAndFire(options2) {\n        this._affectsMinimap ||= !!options2.minimap?.position;\n        this._affectsOverviewRuler ||= !!options2.overviewRuler?.color;\n        this._affectsGlyphMargin ||= !!options2.glyphMarginClassName;\n        this._affectsLineNumber ||= !!options2.lineNumberClassName;\n        this.tryFire();\n      }\n      fire() {\n        this._affectsMinimap = true;\n        this._affectsOverviewRuler = true;\n        this._affectsGlyphMargin = true;\n        this.tryFire();\n      }\n      tryFire() {\n        if (this._deferredCnt === 0) {\n          this.doFire();\n        } else {\n          this._shouldFireDeferred = true;\n        }\n      }\n      doFire() {\n        this.handleBeforeFire(this._affectedInjectedTextLines, this._affectedLineHeights, this._affectedFontLines);\n        const event = {\n          affectsMinimap: this._affectsMinimap,\n          affectsOverviewRuler: this._affectsOverviewRuler,\n          affectsGlyphMargin: this._affectsGlyphMargin,\n          affectsLineNumber: this._affectsLineNumber\n        };\n        this._shouldFireDeferred = false;\n        this._affectsMinimap = false;\n        this._affectsOverviewRuler = false;\n        this._affectsGlyphMargin = false;\n        this._actual.fire(event);\n      }\n    };\n    DidChangeContentEmitter = class extends Disposable {\n      constructor() {\n        super();\n        this._fastEmitter = this._register(new Emitter());\n        this.fastEvent = this._fastEmitter.event;\n        this._slowEmitter = this._register(new Emitter());\n        this.slowEvent = this._slowEmitter.event;\n        this._deferredCnt = 0;\n        this._deferredEvent = null;\n      }\n      beginDeferredEmit() {\n        this._deferredCnt++;\n      }\n      endDeferredEmit(resultingSelection = null) {\n        this._deferredCnt--;\n        if (this._deferredCnt === 0) {\n          if (this._deferredEvent !== null) {\n            this._deferredEvent.rawContentChangedEvent.resultingSelection = resultingSelection;\n            const e = this._deferredEvent;\n            this._deferredEvent = null;\n            this._fastEmitter.fire(e);\n            this._slowEmitter.fire(e);\n          }\n        }\n      }\n      fire(e) {\n        if (this._deferredCnt \u003e 0) {\n          if (this._deferredEvent) {\n            this._deferredEvent = this._deferredEvent.merge(e);\n          } else {\n            this._deferredEvent = e;\n          }\n          return;\n        }\n        this._fastEmitter.fire(e);\n        this._slowEmitter.fire(e);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languageFeatures.js\nvar ILanguageFeaturesService;\nvar init_languageFeatures = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languageFeatures.js\"() {\n    init_instantiation();\n    ILanguageFeaturesService = createDecorator(\"ILanguageFeaturesService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/naturalLanguage/korean.js\nfunction getKoreanAltChars(code) {\n  const result = disassembleKorean(code);\n  if (result \u0026\u0026 result.length \u003e 0) {\n    return new Uint32Array(result);\n  }\n  return void 0;\n}\nfunction disassembleKorean(code) {\n  codeBufferLength = 0;\n  getCodesFromArray(\n    code,\n    modernConsonants,\n    4352\n    /* HangulRangeStartCode.InitialConsonant */\n  );\n  if (codeBufferLength \u003e 0) {\n    return codeBuffer.subarray(0, codeBufferLength);\n  }\n  getCodesFromArray(\n    code,\n    modernVowels,\n    4449\n    /* HangulRangeStartCode.Vowel */\n  );\n  if (codeBufferLength \u003e 0) {\n    return codeBuffer.subarray(0, codeBufferLength);\n  }\n  getCodesFromArray(\n    code,\n    modernFinalConsonants,\n    4520\n    /* HangulRangeStartCode.FinalConsonant */\n  );\n  if (codeBufferLength \u003e 0) {\n    return codeBuffer.subarray(0, codeBufferLength);\n  }\n  getCodesFromArray(\n    code,\n    compatibilityJamo,\n    12593\n    /* HangulRangeStartCode.CompatibilityJamo */\n  );\n  if (codeBufferLength) {\n    return codeBuffer.subarray(0, codeBufferLength);\n  }\n  if (code \u003e= 44032 \u0026\u0026 code \u003c= 55203) {\n    const hangulIndex = code - 44032;\n    const vowelAndFinalConsonantProduct = hangulIndex % 588;\n    const initialConsonantIndex = Math.floor(hangulIndex / 588);\n    const vowelIndex = Math.floor(vowelAndFinalConsonantProduct / 28);\n    const finalConsonantIndex = vowelAndFinalConsonantProduct % 28 - 1;\n    if (initialConsonantIndex \u003c modernConsonants.length) {\n      getCodesFromArray(initialConsonantIndex, modernConsonants, 0);\n    } else if (4352 + initialConsonantIndex - 12593 \u003c compatibilityJamo.length) {\n      getCodesFromArray(\n        4352 + initialConsonantIndex,\n        compatibilityJamo,\n        12593\n        /* HangulRangeStartCode.CompatibilityJamo */\n      );\n    }\n    if (vowelIndex \u003c modernVowels.length) {\n      getCodesFromArray(vowelIndex, modernVowels, 0);\n    } else if (4449 + vowelIndex - 12593 \u003c compatibilityJamo.length) {\n      getCodesFromArray(\n        4449 + vowelIndex - 12593,\n        compatibilityJamo,\n        12593\n        /* HangulRangeStartCode.CompatibilityJamo */\n      );\n    }\n    if (finalConsonantIndex \u003e= 0) {\n      if (finalConsonantIndex \u003c modernFinalConsonants.length) {\n        getCodesFromArray(finalConsonantIndex, modernFinalConsonants, 0);\n      } else if (4520 + finalConsonantIndex - 12593 \u003c compatibilityJamo.length) {\n        getCodesFromArray(\n          4520 + finalConsonantIndex - 12593,\n          compatibilityJamo,\n          12593\n          /* HangulRangeStartCode.CompatibilityJamo */\n        );\n      }\n    }\n    if (codeBufferLength \u003e 0) {\n      return codeBuffer.subarray(0, codeBufferLength);\n    }\n  }\n  return void 0;\n}\nfunction getCodesFromArray(code, array2, arrayStartIndex) {\n  if (code \u003e= arrayStartIndex \u0026\u0026 code \u003c arrayStartIndex + array2.length) {\n    addCodesToBuffer(array2[code - arrayStartIndex]);\n  }\n}\nfunction addCodesToBuffer(codes) {\n  if (codes === 0) {\n    return;\n  }\n  codeBuffer[codeBufferLength++] = codes \u0026 255;\n  if (codes \u003e\u003e 8) {\n    codeBuffer[codeBufferLength++] = codes \u003e\u003e 8 \u0026 255;\n  }\n  if (codes \u003e\u003e 16) {\n    codeBuffer[codeBufferLength++] = codes \u003e\u003e 16 \u0026 255;\n  }\n}\nvar codeBufferLength, codeBuffer, modernConsonants, modernVowels, modernFinalConsonants, compatibilityJamo;\nvar init_korean = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/naturalLanguage/korean.js\"() {\n    codeBufferLength = 0;\n    codeBuffer = new Uint32Array(10);\n    modernConsonants = new Uint8Array([\n      114,\n      // ㄱ\n      82,\n      // ㄲ\n      115,\n      // ㄴ\n      101,\n      // ㄷ\n      69,\n      // ㄸ\n      102,\n      // ㄹ\n      97,\n      // ㅁ\n      113,\n      // ㅂ\n      81,\n      // ㅃ\n      116,\n      // ㅅ\n      84,\n      // ㅆ\n      100,\n      // ㅇ\n      119,\n      // ㅈ\n      87,\n      // ㅉ\n      99,\n      // ㅊ\n      122,\n      // ㅋ\n      120,\n      // ㅌ\n      118,\n      // ㅍ\n      103\n      // ㅎ\n    ]);\n    modernVowels = new Uint16Array([\n      107,\n      //  -\u003e ㅏ\n      111,\n      //  -\u003e ㅐ\n      105,\n      //  -\u003e ㅑ\n      79,\n      //  -\u003e ㅒ\n      106,\n      //  -\u003e ㅓ\n      112,\n      //  -\u003e ㅔ\n      117,\n      //  -\u003e ㅕ\n      80,\n      //  -\u003e ㅖ\n      104,\n      //  -\u003e ㅗ\n      27496,\n      //  -\u003e ㅘ\n      28520,\n      //  -\u003e ㅙ\n      27752,\n      //  -\u003e ㅚ\n      121,\n      //  -\u003e ㅛ\n      110,\n      //  -\u003e ㅜ\n      27246,\n      //  -\u003e ㅝ\n      28782,\n      //  -\u003e ㅞ\n      27758,\n      //  -\u003e ㅟ\n      98,\n      //  -\u003e ㅠ\n      109,\n      //  -\u003e ㅡ\n      27757,\n      //  -\u003e ㅢ\n      108\n      //  -\u003e ㅣ\n    ]);\n    modernFinalConsonants = new Uint16Array([\n      114,\n      // ㄱ\n      82,\n      // ㄲ\n      29810,\n      // ㄳ\n      115,\n      // ㄴ\n      30579,\n      // ㄵ\n      26483,\n      // ㄶ\n      101,\n      // ㄷ\n      102,\n      // ㄹ\n      29286,\n      // ㄺ\n      24934,\n      // ㄻ\n      29030,\n      // ㄼ\n      29798,\n      // ㄽ\n      30822,\n      // ㄾ\n      30310,\n      // ㄿ\n      26470,\n      // ㅀ\n      97,\n      // ㅁ\n      113,\n      // ㅂ\n      29809,\n      // ㅄ\n      116,\n      // ㅅ\n      84,\n      // ㅆ\n      100,\n      // ㅇ\n      119,\n      // ㅈ\n      99,\n      // ㅊ\n      122,\n      // ㅋ\n      120,\n      // ㅌ\n      118,\n      // ㅍ\n      103\n      // ㅎ\n    ]);\n    compatibilityJamo = new Uint16Array([\n      114,\n      // ㄱ\n      82,\n      // ㄲ\n      29810,\n      // ㄳ\n      115,\n      // ㄴ\n      30579,\n      // ㄵ\n      26483,\n      // ㄶ\n      101,\n      // ㄷ\n      69,\n      // ㄸ\n      102,\n      // ㄹ\n      29286,\n      // ㄺ\n      24934,\n      // ㄻ\n      29030,\n      // ㄼ\n      29798,\n      // ㄽ\n      30822,\n      // ㄾ\n      30310,\n      // ㄿ\n      26470,\n      // ㅀ\n      97,\n      // ㅁ\n      113,\n      // ㅂ\n      81,\n      // ㅃ\n      29809,\n      // ㅄ\n      116,\n      // ㅅ\n      84,\n      // ㅆ\n      100,\n      // ㅇ\n      119,\n      // ㅈ\n      87,\n      // ㅉ\n      99,\n      // ㅊ\n      122,\n      // ㅋ\n      120,\n      // ㅌ\n      118,\n      // ㅍ\n      103,\n      // ㅎ\n      107,\n      // ㅏ\n      111,\n      // ㅐ\n      105,\n      // ㅑ\n      79,\n      // ㅒ\n      106,\n      // ㅓ\n      112,\n      // ㅔ\n      117,\n      // ㅕ\n      80,\n      // ㅖ\n      104,\n      // ㅗ\n      27496,\n      // ㅘ\n      28520,\n      // ㅙ\n      27752,\n      // ㅚ\n      121,\n      // ㅛ\n      110,\n      // ㅜ\n      27246,\n      // ㅝ\n      28782,\n      // ㅞ\n      27758,\n      // ㅟ\n      98,\n      // ㅠ\n      109,\n      // ㅡ\n      27757,\n      // ㅢ\n      108\n      // ㅣ\n      // HF: Hangul Filler (everything after this is archaic)\n      // ㅥ\n      // ㅦ\n      // ㅧ\n      // ㅨ\n      // ㅩ\n      // ㅪ\n      // ㅫ\n      // ㅬ\n      // ㅮ\n      // ㅯ\n      // ㅰ\n      // ㅱ\n      // ㅲ\n      // ㅳ\n      // ㅴ\n      // ㅵ\n      // ㅶ\n      // ㅷ\n      // ㅸ\n      // ㅹ\n      // ㅺ\n      // ㅻ\n      // ㅼ\n      // ㅽ\n      // ㅾ\n      // ㅿ\n      // ㆀ\n      // ㆁ\n      // ㆂ\n      // ㆃ\n      // ㆄ\n      // ㆅ\n      // ㆆ\n      // ㆇ\n      // ㆈ\n      // ㆉ\n      // ㆊ\n      // ㆋ\n      // ㆌ\n      // ㆍ\n      // ㆎ\n    ]);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/filters.js\nfunction or(...filter) {\n  return function(word, wordToMatchAgainst) {\n    for (let i2 = 0, len = filter.length; i2 \u003c len; i2++) {\n      const match2 = filter[i2](word, wordToMatchAgainst);\n      if (match2) {\n        return match2;\n      }\n    }\n    return null;\n  };\n}\nfunction _matchesPrefix(ignoreCase, word, wordToMatchAgainst) {\n  if (!wordToMatchAgainst || wordToMatchAgainst.length \u003c word.length) {\n    return null;\n  }\n  let matches;\n  if (ignoreCase) {\n    matches = startsWithIgnoreCase(wordToMatchAgainst, word);\n  } else {\n    matches = wordToMatchAgainst.indexOf(word) === 0;\n  }\n  if (!matches) {\n    return null;\n  }\n  return word.length \u003e 0 ? [{ start: 0, end: word.length }] : [];\n}\nfunction matchesContiguousSubString(word, wordToMatchAgainst) {\n  const index = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());\n  if (index === -1) {\n    return null;\n  }\n  return [{ start: index, end: index + word.length }];\n}\nfunction matchesSubString(word, wordToMatchAgainst) {\n  return _matchesSubString(word.toLowerCase(), wordToMatchAgainst.toLowerCase(), 0, 0);\n}\nfunction _matchesSubString(word, wordToMatchAgainst, i2, j) {\n  if (i2 === word.length) {\n    return [];\n  } else if (j === wordToMatchAgainst.length) {\n    return null;\n  } else {\n    if (word[i2] === wordToMatchAgainst[j]) {\n      let result = null;\n      if (result = _matchesSubString(word, wordToMatchAgainst, i2 + 1, j + 1)) {\n        return join({ start: j, end: j + 1 }, result);\n      }\n      return null;\n    }\n    return _matchesSubString(word, wordToMatchAgainst, i2, j + 1);\n  }\n}\nfunction isLower(code) {\n  return 97 \u003c= code \u0026\u0026 code \u003c= 122;\n}\nfunction isUpper(code) {\n  return 65 \u003c= code \u0026\u0026 code \u003c= 90;\n}\nfunction isNumber2(code) {\n  return 48 \u003c= code \u0026\u0026 code \u003c= 57;\n}\nfunction isWhitespace(code) {\n  return code === 32 || code === 9 || code === 10 || code === 13;\n}\nfunction isWordSeparator(code) {\n  return isWhitespace(code) || wordSeparators.has(code);\n}\nfunction charactersMatch(codeA, codeB) {\n  return codeA === codeB || isWordSeparator(codeA) \u0026\u0026 isWordSeparator(codeB);\n}\nfunction getAlternateCodes(code) {\n  if (alternateCharsCache.has(code)) {\n    return alternateCharsCache.get(code);\n  }\n  let result;\n  const codes = getKoreanAltChars(code);\n  if (codes) {\n    result = codes;\n  }\n  alternateCharsCache.set(code, result);\n  return result;\n}\nfunction isAlphanumeric(code) {\n  return isLower(code) || isUpper(code) || isNumber2(code);\n}\nfunction join(head, tail2) {\n  if (tail2.length === 0) {\n    tail2 = [head];\n  } else if (head.end === tail2[0].start) {\n    tail2[0].start = head.start;\n  } else {\n    tail2.unshift(head);\n  }\n  return tail2;\n}\nfunction nextAnchor(camelCaseWord, start) {\n  for (let i2 = start; i2 \u003c camelCaseWord.length; i2++) {\n    const c = camelCaseWord.charCodeAt(i2);\n    if (isUpper(c) || isNumber2(c) || i2 \u003e 0 \u0026\u0026 !isAlphanumeric(camelCaseWord.charCodeAt(i2 - 1))) {\n      return i2;\n    }\n  }\n  return camelCaseWord.length;\n}\nfunction _matchesCamelCase(word, camelCaseWord, i2, j) {\n  if (i2 === word.length) {\n    return [];\n  } else if (j === camelCaseWord.length) {\n    return null;\n  } else if (word[i2] !== camelCaseWord[j].toLowerCase()) {\n    return null;\n  } else {\n    let result = null;\n    let nextUpperIndex = j + 1;\n    result = _matchesCamelCase(word, camelCaseWord, i2 + 1, j + 1);\n    while (!result \u0026\u0026 (nextUpperIndex = nextAnchor(camelCaseWord, nextUpperIndex)) \u003c camelCaseWord.length) {\n      result = _matchesCamelCase(word, camelCaseWord, i2 + 1, nextUpperIndex);\n      nextUpperIndex++;\n    }\n    return result === null ? null : join({ start: j, end: j + 1 }, result);\n  }\n}\nfunction analyzeCamelCaseWord(word) {\n  let upper = 0, lower = 0, alpha = 0, numeric = 0, code = 0;\n  for (let i2 = 0; i2 \u003c word.length; i2++) {\n    code = word.charCodeAt(i2);\n    if (isUpper(code)) {\n      upper++;\n    }\n    if (isLower(code)) {\n      lower++;\n    }\n    if (isAlphanumeric(code)) {\n      alpha++;\n    }\n    if (isNumber2(code)) {\n      numeric++;\n    }\n  }\n  const upperPercent = upper / word.length;\n  const lowerPercent = lower / word.length;\n  const alphaPercent = alpha / word.length;\n  const numericPercent = numeric / word.length;\n  return { upperPercent, lowerPercent, alphaPercent, numericPercent };\n}\nfunction isUpperCaseWord(analysis) {\n  const { upperPercent, lowerPercent } = analysis;\n  return lowerPercent === 0 \u0026\u0026 upperPercent \u003e 0.6;\n}\nfunction isCamelCaseWord(analysis) {\n  const { upperPercent, lowerPercent, alphaPercent, numericPercent } = analysis;\n  return lowerPercent \u003e 0.2 \u0026\u0026 upperPercent \u003c 0.8 \u0026\u0026 alphaPercent \u003e 0.6 \u0026\u0026 numericPercent \u003c 0.2;\n}\nfunction isCamelCasePattern(word) {\n  let upper = 0, lower = 0, code = 0, whitespace = 0;\n  for (let i2 = 0; i2 \u003c word.length; i2++) {\n    code = word.charCodeAt(i2);\n    if (isUpper(code)) {\n      upper++;\n    }\n    if (isLower(code)) {\n      lower++;\n    }\n    if (isWhitespace(code)) {\n      whitespace++;\n    }\n  }\n  if ((upper === 0 || lower === 0) \u0026\u0026 whitespace === 0) {\n    return word.length \u003c= 30;\n  } else {\n    return upper \u003c= 5;\n  }\n}\nfunction matchesCamelCase(word, camelCaseWord) {\n  if (!camelCaseWord) {\n    return null;\n  }\n  camelCaseWord = camelCaseWord.trim();\n  if (camelCaseWord.length === 0) {\n    return null;\n  }\n  if (!isCamelCasePattern(word)) {\n    return null;\n  }\n  if (camelCaseWord.length \u003e 60) {\n    camelCaseWord = camelCaseWord.substring(0, 60);\n  }\n  const analysis = analyzeCamelCaseWord(camelCaseWord);\n  if (!isCamelCaseWord(analysis)) {\n    if (!isUpperCaseWord(analysis)) {\n      return null;\n    }\n    camelCaseWord = camelCaseWord.toLowerCase();\n  }\n  let result = null;\n  let i2 = 0;\n  word = word.toLowerCase();\n  while (i2 \u003c camelCaseWord.length \u0026\u0026 (result = _matchesCamelCase(word, camelCaseWord, 0, i2)) === null) {\n    i2 = nextAnchor(camelCaseWord, i2 + 1);\n  }\n  return result;\n}\nfunction matchesWords(word, target, contiguous = false) {\n  if (!target || target.length === 0) {\n    return null;\n  }\n  let result = null;\n  let targetIndex = 0;\n  word = word.toLowerCase();\n  target = target.toLowerCase();\n  while (targetIndex \u003c target.length) {\n    result = _matchesWords(word, target, 0, targetIndex, contiguous);\n    if (result !== null) {\n      break;\n    }\n    targetIndex = nextWord(target, targetIndex + 1);\n  }\n  return result;\n}\nfunction _matchesWords(word, target, wordIndex, targetIndex, contiguous) {\n  let targetIndexOffset = 0;\n  if (wordIndex === word.length) {\n    return [];\n  } else if (targetIndex === target.length) {\n    return null;\n  } else if (!charactersMatch(word.charCodeAt(wordIndex), target.charCodeAt(targetIndex))) {\n    const altChars = getAlternateCodes(word.charCodeAt(wordIndex));\n    if (!altChars) {\n      return null;\n    }\n    for (let k = 0; k \u003c altChars.length; k++) {\n      if (!charactersMatch(altChars[k], target.charCodeAt(targetIndex + k))) {\n        return null;\n      }\n    }\n    targetIndexOffset += altChars.length - 1;\n  }\n  let result = null;\n  let nextWordIndex = targetIndex + targetIndexOffset + 1;\n  result = _matchesWords(word, target, wordIndex + 1, nextWordIndex, contiguous);\n  if (!contiguous) {\n    while (!result \u0026\u0026 (nextWordIndex = nextWord(target, nextWordIndex)) \u003c target.length) {\n      result = _matchesWords(word, target, wordIndex + 1, nextWordIndex, contiguous);\n      nextWordIndex++;\n    }\n  }\n  if (!result) {\n    return null;\n  }\n  if (word.charCodeAt(wordIndex) !== target.charCodeAt(targetIndex)) {\n    const altChars = getAlternateCodes(word.charCodeAt(wordIndex));\n    if (!altChars) {\n      return result;\n    }\n    for (let k = 0; k \u003c altChars.length; k++) {\n      if (altChars[k] !== target.charCodeAt(targetIndex + k)) {\n        return result;\n      }\n    }\n  }\n  return join({ start: targetIndex, end: targetIndex + targetIndexOffset + 1 }, result);\n}\nfunction nextWord(word, start) {\n  for (let i2 = start; i2 \u003c word.length; i2++) {\n    if (isWordSeparator(word.charCodeAt(i2)) || i2 \u003e 0 \u0026\u0026 isWordSeparator(word.charCodeAt(i2 - 1))) {\n      return i2;\n    }\n  }\n  return word.length;\n}\nfunction matchesFuzzy(word, wordToMatchAgainst, enableSeparateSubstringMatching = false) {\n  if (typeof word !== \"string\" || typeof wordToMatchAgainst !== \"string\") {\n    return null;\n  }\n  let regexp = fuzzyRegExpCache.get(word);\n  if (!regexp) {\n    regexp = new RegExp(convertSimple2RegExpPattern(word), \"i\");\n    fuzzyRegExpCache.set(word, regexp);\n  }\n  const match2 = regexp.exec(wordToMatchAgainst);\n  if (match2) {\n    return [{ start: match2.index, end: match2.index + match2[0].length }];\n  }\n  return enableSeparateSubstringMatching ? fuzzySeparateFilter(word, wordToMatchAgainst) : fuzzyContiguousFilter(word, wordToMatchAgainst);\n}\nfunction matchesFuzzy2(pattern, word) {\n  const score3 = fuzzyScore(pattern, pattern.toLowerCase(), 0, word, word.toLowerCase(), 0, { firstMatchCanBeWeak: true, boostFullMatch: true });\n  return score3 ? createMatches(score3) : null;\n}\nfunction anyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos) {\n  const max = Math.min(13, pattern.length);\n  for (; patternPos \u003c max; patternPos++) {\n    const result = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, { firstMatchCanBeWeak: true, boostFullMatch: true });\n    if (result) {\n      return result;\n    }\n  }\n  return [0, wordPos];\n}\nfunction createMatches(score3) {\n  if (typeof score3 === \"undefined\") {\n    return [];\n  }\n  const res = [];\n  const wordPos = score3[1];\n  for (let i2 = score3.length - 1; i2 \u003e 1; i2--) {\n    const pos = score3[i2] + wordPos;\n    const last = res[res.length - 1];\n    if (last \u0026\u0026 last.end === pos) {\n      last.end = pos + 1;\n    } else {\n      res.push({ start: pos, end: pos + 1 });\n    }\n  }\n  return res;\n}\nfunction initTable() {\n  const table = [];\n  const row = [];\n  for (let i2 = 0; i2 \u003c= _maxLen; i2++) {\n    row[i2] = 0;\n  }\n  for (let i2 = 0; i2 \u003c= _maxLen; i2++) {\n    table.push(row.slice(0));\n  }\n  return table;\n}\nfunction initArr(maxLen) {\n  const row = [];\n  for (let i2 = 0; i2 \u003c= maxLen; i2++) {\n    row[i2] = 0;\n  }\n  return row;\n}\nfunction printTable(table, pattern, patternLen, word, wordLen) {\n  function pad(s, n2, pad2 = \" \") {\n    while (s.length \u003c n2) {\n      s = pad2 + s;\n    }\n    return s;\n  }\n  let ret = ` |   |${word.split(\"\").map((c) =\u003e pad(c, 3)).join(\"|\")}\n`;\n  for (let i2 = 0; i2 \u003c= patternLen; i2++) {\n    if (i2 === 0) {\n      ret += \" |\";\n    } else {\n      ret += `${pattern[i2 - 1]}|`;\n    }\n    ret += table[i2].slice(0, wordLen + 1).map((n2) =\u003e pad(n2.toString(), 3)).join(\"|\") + \"\\n\";\n  }\n  return ret;\n}\nfunction printTables(pattern, patternStart, word, wordStart) {\n  pattern = pattern.substr(patternStart);\n  word = word.substr(wordStart);\n  console.log(printTable(_table, pattern, pattern.length, word, word.length));\n  console.log(printTable(_arrows, pattern, pattern.length, word, word.length));\n  console.log(printTable(_diag, pattern, pattern.length, word, word.length));\n}\nfunction isSeparatorAtPos(value, index) {\n  if (index \u003c 0 || index \u003e= value.length) {\n    return false;\n  }\n  const code = value.codePointAt(index);\n  switch (code) {\n    case 95:\n    case 45:\n    case 46:\n    case 32:\n    case 47:\n    case 92:\n    case 39:\n    case 34:\n    case 58:\n    case 36:\n    case 60:\n    case 62:\n    case 40:\n    case 41:\n    case 91:\n    case 93:\n    case 123:\n    case 125:\n      return true;\n    case void 0:\n      return false;\n    default:\n      if (isEmojiImprecise(code)) {\n        return true;\n      }\n      return false;\n  }\n}\nfunction isWhitespaceAtPos(value, index) {\n  if (index \u003c 0 || index \u003e= value.length) {\n    return false;\n  }\n  const code = value.charCodeAt(index);\n  switch (code) {\n    case 32:\n    case 9:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isUpperCaseAtPos(pos, word, wordLow) {\n  return word[pos] !== wordLow[pos];\n}\nfunction isPatternInWord(patternLow, patternPos, patternLen, wordLow, wordPos, wordLen, fillMinWordPosArr = false) {\n  while (patternPos \u003c patternLen \u0026\u0026 wordPos \u003c wordLen) {\n    if (patternLow[patternPos] === wordLow[wordPos]) {\n      if (fillMinWordPosArr) {\n        _minWordMatchPos[patternPos] = wordPos;\n      }\n      patternPos += 1;\n    }\n    wordPos += 1;\n  }\n  return patternPos === patternLen;\n}\nfunction fuzzyScore(pattern, patternLow, patternStart, word, wordLow, wordStart, options2 = FuzzyScoreOptions.default) {\n  const patternLen = pattern.length \u003e _maxLen ? _maxLen : pattern.length;\n  const wordLen = word.length \u003e _maxLen ? _maxLen : word.length;\n  if (patternStart \u003e= patternLen || wordStart \u003e= wordLen || patternLen - patternStart \u003e wordLen - wordStart) {\n    return void 0;\n  }\n  if (!isPatternInWord(patternLow, patternStart, patternLen, wordLow, wordStart, wordLen, true)) {\n    return void 0;\n  }\n  _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow);\n  let row = 1;\n  let column = 1;\n  let patternPos = patternStart;\n  let wordPos = wordStart;\n  const hasStrongFirstMatch = [false];\n  for (row = 1, patternPos = patternStart; patternPos \u003c patternLen; row++, patternPos++) {\n    const minWordMatchPos = _minWordMatchPos[patternPos];\n    const maxWordMatchPos = _maxWordMatchPos[patternPos];\n    const nextMaxWordMatchPos = patternPos + 1 \u003c patternLen ? _maxWordMatchPos[patternPos + 1] : wordLen;\n    for (column = minWordMatchPos - wordStart + 1, wordPos = minWordMatchPos; wordPos \u003c nextMaxWordMatchPos; column++, wordPos++) {\n      let score3 = Number.MIN_SAFE_INTEGER;\n      let canComeDiag = false;\n      if (wordPos \u003c= maxWordMatchPos) {\n        score3 = _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos, wordLen, wordStart, _diag[row - 1][column - 1] === 0, hasStrongFirstMatch);\n      }\n      let diagScore = 0;\n      if (score3 !== Number.MIN_SAFE_INTEGER) {\n        canComeDiag = true;\n        diagScore = score3 + _table[row - 1][column - 1];\n      }\n      const canComeLeft = wordPos \u003e minWordMatchPos;\n      const leftScore = canComeLeft ? _table[row][column - 1] + (_diag[row][column - 1] \u003e 0 ? -5 : 0) : 0;\n      const canComeLeftLeft = wordPos \u003e minWordMatchPos + 1 \u0026\u0026 _diag[row][column - 1] \u003e 0;\n      const leftLeftScore = canComeLeftLeft ? _table[row][column - 2] + (_diag[row][column - 2] \u003e 0 ? -5 : 0) : 0;\n      if (canComeLeftLeft \u0026\u0026 (!canComeLeft || leftLeftScore \u003e= leftScore) \u0026\u0026 (!canComeDiag || leftLeftScore \u003e= diagScore)) {\n        _table[row][column] = leftLeftScore;\n        _arrows[row][column] = 3;\n        _diag[row][column] = 0;\n      } else if (canComeLeft \u0026\u0026 (!canComeDiag || leftScore \u003e= diagScore)) {\n        _table[row][column] = leftScore;\n        _arrows[row][column] = 2;\n        _diag[row][column] = 0;\n      } else if (canComeDiag) {\n        _table[row][column] = diagScore;\n        _arrows[row][column] = 1;\n        _diag[row][column] = _diag[row - 1][column - 1] + 1;\n      } else {\n        throw new Error(`not possible`);\n      }\n    }\n  }\n  if (_debug) {\n    printTables(pattern, patternStart, word, wordStart);\n  }\n  if (!hasStrongFirstMatch[0] \u0026\u0026 !options2.firstMatchCanBeWeak) {\n    return void 0;\n  }\n  row--;\n  column--;\n  const result = [_table[row][column], wordStart];\n  let backwardsDiagLength = 0;\n  let maxMatchColumn = 0;\n  while (row \u003e= 1) {\n    let diagColumn = column;\n    do {\n      const arrow = _arrows[row][diagColumn];\n      if (arrow === 3) {\n        diagColumn = diagColumn - 2;\n      } else if (arrow === 2) {\n        diagColumn = diagColumn - 1;\n      } else {\n        break;\n      }\n    } while (diagColumn \u003e= 1);\n    if (backwardsDiagLength \u003e 1 \u0026\u0026 patternLow[patternStart + row - 1] === wordLow[wordStart + column - 1] \u0026\u0026 !isUpperCaseAtPos(diagColumn + wordStart - 1, word, wordLow) \u0026\u0026 backwardsDiagLength + 1 \u003e _diag[row][diagColumn]) {\n      diagColumn = column;\n    }\n    if (diagColumn === column) {\n      backwardsDiagLength++;\n    } else {\n      backwardsDiagLength = 1;\n    }\n    if (!maxMatchColumn) {\n      maxMatchColumn = diagColumn;\n    }\n    row--;\n    column = diagColumn - 1;\n    result.push(column);\n  }\n  if (wordLen - wordStart === patternLen \u0026\u0026 options2.boostFullMatch) {\n    result[0] += 2;\n  }\n  const skippedCharsCount = maxMatchColumn - patternLen;\n  result[0] -= skippedCharsCount;\n  return result;\n}\nfunction _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow) {\n  let patternPos = patternLen - 1;\n  let wordPos = wordLen - 1;\n  while (patternPos \u003e= patternStart \u0026\u0026 wordPos \u003e= wordStart) {\n    if (patternLow[patternPos] === wordLow[wordPos]) {\n      _maxWordMatchPos[patternPos] = wordPos;\n      patternPos--;\n    }\n    wordPos--;\n  }\n}\nfunction _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos, wordLen, wordStart, newMatchStart, outFirstMatchStrong) {\n  if (patternLow[patternPos] !== wordLow[wordPos]) {\n    return Number.MIN_SAFE_INTEGER;\n  }\n  let score3 = 1;\n  let isGapLocation = false;\n  if (wordPos === patternPos - patternStart) {\n    score3 = pattern[patternPos] === word[wordPos] ? 7 : 5;\n  } else if (isUpperCaseAtPos(wordPos, word, wordLow) \u0026\u0026 (wordPos === 0 || !isUpperCaseAtPos(wordPos - 1, word, wordLow))) {\n    score3 = pattern[patternPos] === word[wordPos] ? 7 : 5;\n    isGapLocation = true;\n  } else if (isSeparatorAtPos(wordLow, wordPos) \u0026\u0026 (wordPos === 0 || !isSeparatorAtPos(wordLow, wordPos - 1))) {\n    score3 = 5;\n  } else if (isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1)) {\n    score3 = 5;\n    isGapLocation = true;\n  }\n  if (score3 \u003e 1 \u0026\u0026 patternPos === patternStart) {\n    outFirstMatchStrong[0] = true;\n  }\n  if (!isGapLocation) {\n    isGapLocation = isUpperCaseAtPos(wordPos, word, wordLow) || isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1);\n  }\n  if (patternPos === patternStart) {\n    if (wordPos \u003e wordStart) {\n      score3 -= isGapLocation ? 3 : 5;\n    }\n  } else {\n    if (newMatchStart) {\n      score3 += isGapLocation ? 2 : 0;\n    } else {\n      score3 += isGapLocation ? 0 : 1;\n    }\n  }\n  if (wordPos + 1 === wordLen) {\n    score3 -= isGapLocation ? 3 : 5;\n  }\n  return score3;\n}\nfunction fuzzyScoreGracefulAggressive(pattern, lowPattern, patternPos, word, lowWord, wordPos, options2) {\n  return fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, true, options2);\n}\nfunction fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, aggressive, options2) {\n  let top = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, options2);\n  if (top \u0026\u0026 !aggressive) {\n    return top;\n  }\n  if (pattern.length \u003e= 3) {\n    const tries = Math.min(7, pattern.length - 1);\n    for (let movingPatternPos = patternPos + 1; movingPatternPos \u003c tries; movingPatternPos++) {\n      const newPattern = nextTypoPermutation(pattern, movingPatternPos);\n      if (newPattern) {\n        const candidate = fuzzyScore(newPattern, newPattern.toLowerCase(), patternPos, word, lowWord, wordPos, options2);\n        if (candidate) {\n          candidate[0] -= 3;\n          if (!top || candidate[0] \u003e top[0]) {\n            top = candidate;\n          }\n        }\n      }\n    }\n  }\n  return top;\n}\nfunction nextTypoPermutation(pattern, patternPos) {\n  if (patternPos + 1 \u003e= pattern.length) {\n    return void 0;\n  }\n  const swap1 = pattern[patternPos];\n  const swap2 = pattern[patternPos + 1];\n  if (swap1 === swap2) {\n    return void 0;\n  }\n  return pattern.slice(0, patternPos) + swap2 + swap1 + pattern.slice(patternPos + 2);\n}\nvar matchesStrictPrefix, matchesPrefix, wordSeparators, alternateCharsCache, fuzzyContiguousFilter, fuzzySeparateFilter, fuzzyRegExpCache, _maxLen, _minWordMatchPos, _maxWordMatchPos, _diag, _table, _arrows, _debug, FuzzyScore, FuzzyScoreOptions;\nvar init_filters = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/filters.js\"() {\n    init_map();\n    init_korean();\n    init_strings();\n    matchesStrictPrefix = _matchesPrefix.bind(void 0, false);\n    matchesPrefix = _matchesPrefix.bind(void 0, true);\n    wordSeparators = /* @__PURE__ */ new Set();\n    \"()[]{}\u003c\u003e`'\\\"-/;:,.?!\".split(\"\").forEach((s) =\u003e wordSeparators.add(s.charCodeAt(0)));\n    alternateCharsCache = /* @__PURE__ */ new Map();\n    fuzzyContiguousFilter = or(matchesPrefix, matchesCamelCase, matchesContiguousSubString);\n    fuzzySeparateFilter = or(matchesPrefix, matchesCamelCase, matchesSubString);\n    fuzzyRegExpCache = new LRUCache(1e4);\n    _maxLen = 128;\n    _minWordMatchPos = initArr(2 * _maxLen);\n    _maxWordMatchPos = initArr(2 * _maxLen);\n    _diag = initTable();\n    _table = initTable();\n    _arrows = initTable();\n    _debug = false;\n    (function(FuzzyScore2) {\n      FuzzyScore2.Default = [-100, 0];\n      function isDefault(score3) {\n        return !score3 || score3.length === 2 \u0026\u0026 score3[0] === -100 \u0026\u0026 score3[1] === 0;\n      }\n      FuzzyScore2.isDefault = isDefault;\n    })(FuzzyScore || (FuzzyScore = {}));\n    FuzzyScoreOptions = class {\n      static {\n        this.default = { boostFullMatch: true, firstMatchCanBeWeak: false };\n      }\n      constructor(firstMatchCanBeWeak, boostFullMatch) {\n        this.firstMatchCanBeWeak = firstMatchCanBeWeak;\n        this.boostFullMatch = boostFullMatch;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/iconLabels.js\nfunction escapeIcons(text2) {\n  return text2.replace(escapeIconsRegex, (match2, escaped) =\u003e escaped ? match2 : `\\\\${match2}`);\n}\nfunction markdownEscapeEscapedIcons(text2) {\n  return text2.replace(markdownEscapedIconsRegex, (match2) =\u003e `\\\\${match2}`);\n}\nfunction stripIcons(text2) {\n  if (text2.indexOf(iconStartMarker) === -1) {\n    return text2;\n  }\n  return text2.replace(stripIconsRegex, (match2, preWhitespace, escaped, postWhitespace) =\u003e escaped ? match2 : preWhitespace || postWhitespace || \"\");\n}\nfunction getCodiconAriaLabel(text2) {\n  if (!text2) {\n    return \"\";\n  }\n  return text2.replace(/\\$\\((.*?)\\)/g, (_match, codiconName) =\u003e ` ${codiconName} `).trim();\n}\nfunction parseLabelWithIcons(input) {\n  _parseIconsRegex.lastIndex = 0;\n  let text2 = \"\";\n  const iconOffsets = [];\n  let iconsOffset = 0;\n  while (true) {\n    const pos = _parseIconsRegex.lastIndex;\n    const match2 = _parseIconsRegex.exec(input);\n    const chars = input.substring(pos, match2?.index);\n    if (chars.length \u003e 0) {\n      text2 += chars;\n      for (let i2 = 0; i2 \u003c chars.length; i2++) {\n        iconOffsets.push(iconsOffset);\n      }\n    }\n    if (!match2) {\n      break;\n    }\n    iconsOffset += match2[0].length;\n  }\n  return { text: text2, iconOffsets };\n}\nfunction matchesFuzzyIconAware(query, target, enableSeparateSubstringMatching = false) {\n  const { text: text2, iconOffsets } = target;\n  if (!iconOffsets || iconOffsets.length === 0) {\n    return matchesFuzzy(query, text2, enableSeparateSubstringMatching);\n  }\n  const wordToMatchAgainstWithoutIconsTrimmed = ltrim(text2, \" \");\n  const leadingWhitespaceOffset = text2.length - wordToMatchAgainstWithoutIconsTrimmed.length;\n  const matches = matchesFuzzy(query, wordToMatchAgainstWithoutIconsTrimmed, enableSeparateSubstringMatching);\n  if (matches) {\n    for (const match2 of matches) {\n      const iconOffset = iconOffsets[match2.start + leadingWhitespaceOffset] + leadingWhitespaceOffset;\n      match2.start += iconOffset;\n      match2.end += iconOffset;\n    }\n  }\n  return matches;\n}\nvar iconStartMarker, iconsRegex, escapeIconsRegex, markdownEscapedIconsRegex, stripIconsRegex, _parseIconsRegex;\nvar init_iconLabels = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/iconLabels.js\"() {\n    init_filters();\n    init_strings();\n    init_themables();\n    iconStartMarker = \"$(\";\n    iconsRegex = new RegExp(`\\\\$\\\\(${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?\\\\)`, \"g\");\n    escapeIconsRegex = new RegExp(`(\\\\\\\\)?${iconsRegex.source}`, \"g\");\n    markdownEscapedIconsRegex = new RegExp(`\\\\\\\\${iconsRegex.source}`, \"g\");\n    stripIconsRegex = new RegExp(`(\\\\s)?(\\\\\\\\)?${iconsRegex.source}(\\\\s)?`, \"g\");\n    _parseIconsRegex = new RegExp(`\\\\$\\\\(${ThemeIcon.iconNameCharacter}+\\\\)`, \"g\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/htmlContent.js\nfunction isEmptyMarkdownString(oneOrMany) {\n  if (isMarkdownString(oneOrMany)) {\n    return !oneOrMany.value;\n  } else if (Array.isArray(oneOrMany)) {\n    return oneOrMany.every(isEmptyMarkdownString);\n  } else {\n    return true;\n  }\n}\nfunction isMarkdownString(thing) {\n  if (thing instanceof MarkdownString) {\n    return true;\n  } else if (thing \u0026\u0026 typeof thing === \"object\") {\n    return typeof thing.value === \"string\" \u0026\u0026 (typeof thing.isTrusted === \"boolean\" || typeof thing.isTrusted === \"object\" || thing.isTrusted === void 0) \u0026\u0026 (typeof thing.supportThemeIcons === \"boolean\" || thing.supportThemeIcons === void 0);\n  }\n  return false;\n}\nfunction markdownStringEqual(a, b) {\n  if (a === b) {\n    return true;\n  } else if (!a || !b) {\n    return false;\n  } else {\n    return a.value === b.value \u0026\u0026 a.isTrusted === b.isTrusted \u0026\u0026 a.supportThemeIcons === b.supportThemeIcons \u0026\u0026 a.supportHtml === b.supportHtml \u0026\u0026 (a.baseUri === b.baseUri || !!a.baseUri \u0026\u0026 !!b.baseUri \u0026\u0026 isEqual(URI.from(a.baseUri), URI.from(b.baseUri)));\n  }\n}\nfunction escapeMarkdownSyntaxTokens(text2) {\n  return text2.replace(/[\\\\`*_{}[\\]()#+\\-!~]/g, \"\\\\$\u0026\");\n}\nfunction appendEscapedMarkdownCodeBlockFence(code, langId) {\n  const longestFenceLength = code.match(/^`+/gm)?.reduce((a, b) =\u003e a.length \u003e b.length ? a : b).length ?? 0;\n  const desiredFenceLength = longestFenceLength \u003e= 3 ? longestFenceLength + 1 : 3;\n  return [\n    `${\"`\".repeat(desiredFenceLength)}${langId}`,\n    code,\n    `${\"`\".repeat(desiredFenceLength)}`\n  ].join(\"\\n\");\n}\nfunction escapeDoubleQuotes(input) {\n  return input.replace(/\"/g, \"\u0026quot;\");\n}\nfunction removeMarkdownEscapes(text2) {\n  if (!text2) {\n    return text2;\n  }\n  return text2.replace(/\\\\([\\\\`*_{}[\\]()#+\\-.!~])/g, \"$1\");\n}\nfunction parseHrefAndDimensions(href) {\n  const dimensions = [];\n  const splitted = href.split(\"|\").map((s) =\u003e s.trim());\n  href = splitted[0];\n  const parameters = splitted[1];\n  if (parameters) {\n    const heightFromParams = /height=(\\d+)/.exec(parameters);\n    const widthFromParams = /width=(\\d+)/.exec(parameters);\n    const height = heightFromParams ? heightFromParams[1] : \"\";\n    const width2 = widthFromParams ? widthFromParams[1] : \"\";\n    const widthIsFinite = isFinite(parseInt(width2));\n    const heightIsFinite = isFinite(parseInt(height));\n    if (widthIsFinite) {\n      dimensions.push(`width=\"${width2}\"`);\n    }\n    if (heightIsFinite) {\n      dimensions.push(`height=\"${height}\"`);\n    }\n  }\n  return { href, dimensions };\n}\nvar MarkdownString;\nvar init_htmlContent = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/htmlContent.js\"() {\n    init_errors();\n    init_iconLabels();\n    init_resources();\n    init_strings();\n    init_uri();\n    MarkdownString = class {\n      constructor(value = \"\", isTrustedOrOptions = false) {\n        this.value = value;\n        if (typeof this.value !== \"string\") {\n          throw illegalArgument(\"value\");\n        }\n        if (typeof isTrustedOrOptions === \"boolean\") {\n          this.isTrusted = isTrustedOrOptions;\n          this.supportThemeIcons = false;\n          this.supportHtml = false;\n        } else {\n          this.isTrusted = isTrustedOrOptions.isTrusted ?? void 0;\n          this.supportThemeIcons = isTrustedOrOptions.supportThemeIcons ?? false;\n          this.supportHtml = isTrustedOrOptions.supportHtml ?? false;\n        }\n      }\n      appendText(value, newlineStyle = 0) {\n        this.value += escapeMarkdownSyntaxTokens(this.supportThemeIcons ? escapeIcons(value) : value).replace(/([ \\t]+)/g, (_match, g1) =\u003e \"\u0026nbsp;\".repeat(g1.length)).replace(/\\\u003e/gm, \"\\\\\u003e\").replace(/\\n/g, newlineStyle === 1 ? \"\\\\\\n\" : \"\\n\\n\");\n        return this;\n      }\n      appendMarkdown(value) {\n        this.value += value;\n        return this;\n      }\n      appendCodeblock(langId, code) {\n        this.value += `\n${appendEscapedMarkdownCodeBlockFence(code, langId)}\n`;\n        return this;\n      }\n      appendLink(target, label, title) {\n        this.value += \"[\";\n        this.value += this._escape(label, \"]\");\n        this.value += \"](\";\n        this.value += this._escape(String(target), \")\");\n        if (title) {\n          this.value += ` \"${this._escape(this._escape(title, '\"'), \")\")}\"`;\n        }\n        this.value += \")\";\n        return this;\n      }\n      _escape(value, ch) {\n        const r = new RegExp(escapeRegExpCharacters(ch), \"g\");\n        return value.replace(r, (match2, offset) =\u003e {\n          if (value.charAt(offset - 1) !== \"\\\\\") {\n            return `\\\\${match2}`;\n          } else {\n            return match2;\n          }\n        });\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/iconLabel/iconLabels.js\nfunction renderLabelWithIcons(text2) {\n  const elements = new Array();\n  let match2;\n  let textStart = 0, textStop = 0;\n  while ((match2 = labelWithIconsRegex.exec(text2)) !== null) {\n    textStop = match2.index || 0;\n    if (textStart \u003c textStop) {\n      elements.push(text2.substring(textStart, textStop));\n    }\n    textStart = (match2.index || 0) + match2[0].length;\n    const [, escaped, codicon] = match2;\n    elements.push(escaped ? `$(${codicon})` : renderIcon({ id: codicon }));\n  }\n  if (textStart \u003c text2.length) {\n    elements.push(text2.substring(textStart));\n  }\n  return elements;\n}\nfunction renderIcon(icon) {\n  const node = $(`span`);\n  node.classList.add(...ThemeIcon.asClassNameArray(icon));\n  return node;\n}\nvar labelWithIconsRegex;\nvar init_iconLabels2 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/iconLabel/iconLabels.js\"() {\n    init_dom();\n    init_themables();\n    labelWithIconsRegex = new RegExp(`(\\\\\\\\)?\\\\$\\\\((${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?)\\\\)`, \"g\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/numbers.js\nfunction clamp(value, min, max) {\n  return Math.min(Math.max(value, min), max);\n}\nvar MovingAverage, SlidingWindowAverage;\nvar init_numbers = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/numbers.js\"() {\n    MovingAverage = class {\n      constructor() {\n        this._n = 1;\n        this._val = 0;\n      }\n      update(value) {\n        this._val = this._val + (value - this._val) / this._n;\n        this._n += 1;\n        return this._val;\n      }\n      get value() {\n        return this._val;\n      }\n    };\n    SlidingWindowAverage = class {\n      constructor(size2) {\n        this._n = 0;\n        this._val = 0;\n        this._values = [];\n        this._index = 0;\n        this._sum = 0;\n        this._values = new Array(size2);\n        this._values.fill(0, 0, size2);\n      }\n      update(value) {\n        const oldValue = this._values[this._index];\n        this._values[this._index] = value;\n        this._index = (this._index + 1) % this._values.length;\n        this._sum -= oldValue;\n        this._sum += value;\n        if (this._n \u003c this._values.length) {\n          this._n += 1;\n        }\n        this._val = this._sum / this._n;\n        return this._val;\n      }\n      get value() {\n        return this._val;\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/utils.js\nfunction joinCombine(arr1, arr2, keySelector, combine) {\n  if (arr1.length === 0) {\n    return arr2;\n  }\n  if (arr2.length === 0) {\n    return arr1;\n  }\n  const result = [];\n  let i2 = 0;\n  let j = 0;\n  while (i2 \u003c arr1.length \u0026\u0026 j \u003c arr2.length) {\n    const val1 = arr1[i2];\n    const val2 = arr2[j];\n    const key1 = keySelector(val1);\n    const key2 = keySelector(val2);\n    if (key1 \u003c key2) {\n      result.push(val1);\n      i2++;\n    } else if (key1 \u003e key2) {\n      result.push(val2);\n      j++;\n    } else {\n      result.push(combine(val1, val2));\n      i2++;\n      j++;\n    }\n  }\n  while (i2 \u003c arr1.length) {\n    result.push(arr1[i2]);\n    i2++;\n  }\n  while (j \u003c arr2.length) {\n    result.push(arr2[j]);\n    j++;\n  }\n  return result;\n}\nfunction applyObservableDecorations(editor2, decorations) {\n  const d = new DisposableStore();\n  const decorationsCollection = editor2.createDecorationsCollection();\n  d.add(autorunOpts({ debugName: () =\u003e `Apply decorations from ${decorations.debugName}` }, (reader) =\u003e {\n    const d2 = decorations.read(reader);\n    decorationsCollection.set(d2);\n  }));\n  d.add({\n    dispose: () =\u003e {\n      decorationsCollection.clear();\n    }\n  });\n  return d;\n}\nfunction appendRemoveOnDispose(parent, child) {\n  parent.appendChild(child);\n  return toDisposable(() =\u003e {\n    child.remove();\n  });\n}\nfunction prependRemoveOnDispose(parent, child) {\n  parent.prepend(child);\n  return toDisposable(() =\u003e {\n    child.remove();\n  });\n}\nfunction animatedObservable(targetWindow, base, store) {\n  let targetVal = base.get();\n  let startVal = targetVal;\n  let curVal = targetVal;\n  const result = observableValue(\"animatedValue\", targetVal);\n  let animationStartMs = -1;\n  const durationMs = 300;\n  let animationFrame = void 0;\n  store.add(autorunHandleChanges({\n    changeTracker: {\n      createChangeSummary: () =\u003e ({ animate: false }),\n      handleChange: (ctx, s) =\u003e {\n        if (ctx.didChange(base)) {\n          s.animate = s.animate || ctx.change;\n        }\n        return true;\n      }\n    }\n  }, (reader, s) =\u003e {\n    if (animationFrame !== void 0) {\n      targetWindow.cancelAnimationFrame(animationFrame);\n      animationFrame = void 0;\n    }\n    startVal = curVal;\n    targetVal = base.read(reader);\n    animationStartMs = Date.now() - (s.animate ? 0 : durationMs);\n    update();\n  }));\n  function update() {\n    const passedMs = Date.now() - animationStartMs;\n    curVal = Math.floor(easeOutExpo(passedMs, startVal, targetVal - startVal, durationMs));\n    if (passedMs \u003c durationMs) {\n      animationFrame = targetWindow.requestAnimationFrame(update);\n    } else {\n      curVal = targetVal;\n    }\n    result.set(curVal, void 0);\n  }\n  return result;\n}\nfunction easeOutExpo(t, b, c, d) {\n  return t === d ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n}\nfunction applyStyle(domNode, style) {\n  return autorun((reader) =\u003e {\n    for (let [key, val] of Object.entries(style)) {\n      if (val \u0026\u0026 typeof val === \"object\" \u0026\u0026 \"read\" in val) {\n        val = val.read(reader);\n      }\n      if (typeof val === \"number\") {\n        val = `${val}px`;\n      }\n      key = key.replace(/[A-Z]/g, (m) =\u003e \"-\" + m.toLowerCase());\n      domNode.style[key] = val;\n    }\n  });\n}\nfunction applyViewZones(editor2, viewZones, setIsUpdating, zoneIds) {\n  const store = new DisposableStore();\n  const lastViewZoneIds = [];\n  store.add(autorunWithStore((reader, store2) =\u003e {\n    const curViewZones = viewZones.read(reader);\n    const viewZonIdsPerViewZone = /* @__PURE__ */ new Map();\n    const viewZoneIdPerOnChangeObservable = /* @__PURE__ */ new Map();\n    if (setIsUpdating) {\n      setIsUpdating(true);\n    }\n    editor2.changeViewZones((a) =\u003e {\n      for (const id of lastViewZoneIds) {\n        a.removeZone(id);\n        zoneIds?.delete(id);\n      }\n      lastViewZoneIds.length = 0;\n      for (const z of curViewZones) {\n        const id = a.addZone(z);\n        if (z.setZoneId) {\n          z.setZoneId(id);\n        }\n        lastViewZoneIds.push(id);\n        zoneIds?.add(id);\n        viewZonIdsPerViewZone.set(z, id);\n      }\n    });\n    if (setIsUpdating) {\n      setIsUpdating(false);\n    }\n    store2.add(autorunHandleChanges({\n      changeTracker: {\n        createChangeSummary() {\n          return { zoneIds: [] };\n        },\n        handleChange(context, changeSummary) {\n          const id = viewZoneIdPerOnChangeObservable.get(context.changedObservable);\n          if (id !== void 0) {\n            changeSummary.zoneIds.push(id);\n          }\n          return true;\n        }\n      }\n    }, (reader2, changeSummary) =\u003e {\n      for (const vz of curViewZones) {\n        if (vz.onChange) {\n          viewZoneIdPerOnChangeObservable.set(vz.onChange, viewZonIdsPerViewZone.get(vz));\n          vz.onChange.read(reader2);\n        }\n      }\n      if (setIsUpdating) {\n        setIsUpdating(true);\n      }\n      editor2.changeViewZones((a) =\u003e {\n        for (const id of changeSummary.zoneIds) {\n          a.layoutZone(id);\n        }\n      });\n      if (setIsUpdating) {\n        setIsUpdating(false);\n      }\n    }));\n  }));\n  store.add({\n    dispose() {\n      if (setIsUpdating) {\n        setIsUpdating(true);\n      }\n      editor2.changeViewZones((a) =\u003e {\n        for (const id of lastViewZoneIds) {\n          a.removeZone(id);\n        }\n      });\n      zoneIds?.clear();\n      if (setIsUpdating) {\n        setIsUpdating(false);\n      }\n    }\n  });\n  return store;\n}\nfunction translatePosition(posInOriginal, mappings) {\n  const mapping = findLast(mappings, (m) =\u003e m.original.startLineNumber \u003c= posInOriginal.lineNumber);\n  if (!mapping) {\n    return Range.fromPositions(posInOriginal);\n  }\n  if (mapping.original.endLineNumberExclusive \u003c= posInOriginal.lineNumber) {\n    const newLineNumber = posInOriginal.lineNumber - mapping.original.endLineNumberExclusive + mapping.modified.endLineNumberExclusive;\n    return Range.fromPositions(new Position(newLineNumber, posInOriginal.column));\n  }\n  if (!mapping.innerChanges) {\n    return Range.fromPositions(new Position(mapping.modified.startLineNumber, 1));\n  }\n  const innerMapping = findLast(mapping.innerChanges, (m) =\u003e m.originalRange.getStartPosition().isBeforeOrEqual(posInOriginal));\n  if (!innerMapping) {\n    const newLineNumber = posInOriginal.lineNumber - mapping.original.startLineNumber + mapping.modified.startLineNumber;\n    return Range.fromPositions(new Position(newLineNumber, posInOriginal.column));\n  }\n  if (innerMapping.originalRange.containsPosition(posInOriginal)) {\n    return innerMapping.modifiedRange;\n  } else {\n    const l = lengthBetweenPositions(innerMapping.originalRange.getEndPosition(), posInOriginal);\n    return Range.fromPositions(l.addToPosition(innerMapping.modifiedRange.getEndPosition()));\n  }\n}\nfunction lengthBetweenPositions(position1, position2) {\n  if (position1.lineNumber === position2.lineNumber) {\n    return new TextLength(0, position2.column - position1.column);\n  } else {\n    return new TextLength(position2.lineNumber - position1.lineNumber, position2.column - 1);\n  }\n}\nfunction filterWithPrevious(arr, filter) {\n  let prev;\n  return arr.filter((cur) =\u003e {\n    const result = filter(cur, prev);\n    prev = cur;\n    return result;\n  });\n}\nvar ObservableElementSizeObserver, ViewZoneOverlayWidget, PlaceholderViewZone, ManagedOverlayWidget, DisposableCancellationTokenSource, RefCounted, BaseRefCounted, ClonedRefCounted;\nvar init_utils5 = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/utils.js\"() {\n    init_arraysFind();\n    init_cancellation();\n    init_lifecycle();\n    init_observable();\n    init_elementSizeObserver();\n    init_position();\n    init_range();\n    init_textLength();\n    ObservableElementSizeObserver = class extends Disposable {\n      get width() {\n        return this._width;\n      }\n      get height() {\n        return this._height;\n      }\n      get automaticLayout() {\n        return this._automaticLayout;\n      }\n      constructor(element, dimension) {\n        super();\n        this._automaticLayout = false;\n        this.elementSizeObserver = this._register(new ElementSizeObserver(element, dimension));\n        this._width = observableValue(this, this.elementSizeObserver.getWidth());\n        this._height = observableValue(this, this.elementSizeObserver.getHeight());\n        this._register(this.elementSizeObserver.onDidChange((e) =\u003e transaction((tx) =\u003e {\n          this._width.set(this.elementSizeObserver.getWidth(), tx);\n          this._height.set(this.elementSizeObserver.getHeight(), tx);\n        })));\n      }\n      observe(dimension) {\n        this.elementSizeObserver.observe(dimension);\n      }\n      setAutomaticLayout(automaticLayout) {\n        this._automaticLayout = automaticLayout;\n        if (automaticLayout) {\n          this.elementSizeObserver.startObserving();\n        } else {\n          this.elementSizeObserver.stopObserving();\n        }\n      }\n    };\n    ViewZoneOverlayWidget = class extends Disposable {\n      constructor(editor2, viewZone, htmlElement) {\n        super();\n        this._register(new ManagedOverlayWidget(editor2, htmlElement));\n        this._register(applyStyle(htmlElement, {\n          height: viewZone.actualHeight,\n          top: viewZone.actualTop\n        }));\n      }\n    };\n    PlaceholderViewZone = class {\n      get afterLineNumber() {\n        return this._afterLineNumber.get();\n      }\n      constructor(_afterLineNumber, heightInPx) {\n        this._afterLineNumber = _afterLineNumber;\n        this.heightInPx = heightInPx;\n        this.domNode = document.createElement(\"div\");\n        this._actualTop = observableValue(this, void 0);\n        this._actualHeight = observableValue(this, void 0);\n        this.actualTop = this._actualTop;\n        this.actualHeight = this._actualHeight;\n        this.showInHiddenAreas = true;\n        this.onChange = this._afterLineNumber;\n        this.onDomNodeTop = (top) =\u003e {\n          this._actualTop.set(top, void 0);\n        };\n        this.onComputedHeight = (height) =\u003e {\n          this._actualHeight.set(height, void 0);\n        };\n      }\n    };\n    ManagedOverlayWidget = class _ManagedOverlayWidget {\n      static {\n        this._counter = 0;\n      }\n      constructor(_editor, _domElement) {\n        this._editor = _editor;\n        this._domElement = _domElement;\n        this._overlayWidgetId = `managedOverlayWidget-${_ManagedOverlayWidget._counter++}`;\n        this._overlayWidget = {\n          getId: () =\u003e this._overlayWidgetId,\n          getDomNode: () =\u003e this._domElement,\n          getPosition: () =\u003e null\n        };\n        this._editor.addOverlayWidget(this._overlayWidget);\n      }\n      dispose() {\n        this._editor.removeOverlayWidget(this._overlayWidget);\n      }\n    };\n    DisposableCancellationTokenSource = class extends CancellationTokenSource {\n      dispose() {\n        super.dispose(true);\n      }\n    };\n    RefCounted = class {\n      static create(value, debugOwner = void 0) {\n        return new BaseRefCounted(value, value, debugOwner);\n      }\n      static createWithDisposable(value, disposable, debugOwner = void 0) {\n        const store = new DisposableStore();\n        store.add(disposable);\n        store.add(value);\n        return new BaseRefCounted(value, store, debugOwner);\n      }\n    };\n    BaseRefCounted = class extends RefCounted {\n      constructor(object, _disposable, _debugOwner) {\n        super();\n        this.object = object;\n        this._disposable = _disposable;\n        this._debugOwner = _debugOwner;\n        this._refCount = 1;\n        this._isDisposed = false;\n        this._owners = [];\n        if (_debugOwner) {\n          this._addOwner(_debugOwner);\n        }\n      }\n      _addOwner(debugOwner) {\n        if (debugOwner) {\n          this._owners.push(debugOwner);\n        }\n      }\n      createNewRef(debugOwner) {\n        this._refCount++;\n        if (debugOwner) {\n          this._addOwner(debugOwner);\n        }\n        return new ClonedRefCounted(this, debugOwner);\n      }\n      dispose() {\n        if (this._isDisposed) {\n          return;\n        }\n        this._isDisposed = true;\n        this._decreaseRefCount(this._debugOwner);\n      }\n      _decreaseRefCount(debugOwner) {\n        this._refCount--;\n        if (this._refCount === 0) {\n          this._disposable.dispose();\n        }\n        if (debugOwner) {\n          const idx = this._owners.indexOf(debugOwner);\n          if (idx !== -1) {\n            this._owners.splice(idx, 1);\n          }\n        }\n      }\n    };\n    ClonedRefCounted = class extends RefCounted {\n      constructor(_base, _debugOwner) {\n        super();\n        this._base = _base;\n        this._debugOwner = _debugOwner;\n        this._isDisposed = false;\n      }\n      get object() {\n        return this._base.object;\n      }\n      createNewRef(debugOwner) {\n        return this._base.createNewRef(debugOwner);\n      }\n      dispose() {\n        if (this._isDisposed) {\n          return;\n        }\n        this._isDisposed = true;\n        this._base._decreaseRefCount(this._debugOwner);\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/editorWorker.js\nvar IEditorWorkerService;\nvar init_editorWorker = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/editorWorker.js\"() {\n    init_instantiation();\n    IEditorWorkerService = createDecorator(\"editorWorkerService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/2d/point.js\nvar Point;\nvar init_point = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/2d/point.js\"() {\n    Point = class _Point {\n      static equals(a, b) {\n        return a.x === b.x \u0026\u0026 a.y === b.y;\n      }\n      constructor(x, y) {\n        this.x = x;\n        this.y = y;\n      }\n      add(other) {\n        return new _Point(this.x + other.x, this.y + other.y);\n      }\n      deltaX(delta) {\n        return new _Point(this.x + delta, this.y);\n      }\n      deltaY(delta) {\n        return new _Point(this.x, this.y + delta);\n      }\n      toString() {\n        return `(${this.x},${this.y})`;\n      }\n      subtract(other) {\n        return new _Point(this.x - other.x, this.y - other.y);\n      }\n      scale(factor2) {\n        return new _Point(this.x * factor2, this.y * factor2);\n      }\n      mapComponents(map) {\n        return new _Point(map(this.x), map(this.y));\n      }\n      isZero() {\n        return this.x === 0 \u0026\u0026 this.y === 0;\n      }\n      withThreshold(threshold) {\n        return this.mapComponents((axisVal) =\u003e {\n          if (axisVal \u003e threshold) {\n            return axisVal - threshold;\n          } else if (axisVal \u003c -threshold) {\n            return axisVal + threshold;\n          }\n          return 0;\n        });\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/observableCodeEditor.js\nfunction observableCodeEditor(editor2) {\n  return ObservableCodeEditor.get(editor2);\n}\nvar ObservableCodeEditor;\nvar init_observableCodeEditor = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/observableCodeEditor.js\"() {\n    init_equals();\n    init_lifecycle();\n    init_observable();\n    init_lineRange();\n    init_offsetRange();\n    init_position();\n    init_selection();\n    init_point();\n    ObservableCodeEditor = class _ObservableCodeEditor extends Disposable {\n      static {\n        this._map = /* @__PURE__ */ new Map();\n      }\n      /**\n       * Make sure that editor is not disposed yet!\n      */\n      static get(editor2) {\n        let result = _ObservableCodeEditor._map.get(editor2);\n        if (!result) {\n          result = new _ObservableCodeEditor(editor2);\n          _ObservableCodeEditor._map.set(editor2, result);\n          const d = editor2.onDidDispose(() =\u003e {\n            const item = _ObservableCodeEditor._map.get(editor2);\n            if (item) {\n              _ObservableCodeEditor._map.delete(editor2);\n              item.dispose();\n              d.dispose();\n            }\n          });\n        }\n        return result;\n      }\n      _beginUpdate() {\n        this._updateCounter++;\n        if (this._updateCounter === 1) {\n          this._currentTransaction = new TransactionImpl(() =\u003e {\n          });\n        }\n      }\n      _endUpdate() {\n        this._updateCounter--;\n        if (this._updateCounter === 0) {\n          const t = this._currentTransaction;\n          this._currentTransaction = void 0;\n          t.finish();\n        }\n      }\n      constructor(editor2) {\n        super();\n        this.editor = editor2;\n        this._updateCounter = 0;\n        this._currentTransaction = void 0;\n        this._model = observableValue(this, this.editor.getModel());\n        this.model = this._model;\n        this.isReadonly = observableFromEvent(this, this.editor.onDidChangeConfiguration, () =\u003e this.editor.getOption(\n          103\n          /* EditorOption.readOnly */\n        ));\n        this._versionId = observableValueOpts({ owner: this, lazy: true }, this.editor.getModel()?.getVersionId() ?? null);\n        this.versionId = this._versionId;\n        this._selections = observableValueOpts({ owner: this, equalsFn: equalsIfDefined(itemsEquals(Selection.selectionsEqual)), lazy: true }, this.editor.getSelections() ?? null);\n        this.selections = this._selections;\n        this.positions = derivedOpts({ owner: this, equalsFn: equalsIfDefined(itemsEquals(Position.equals)) }, (reader) =\u003e this.selections.read(reader)?.map((s) =\u003e s.getStartPosition()) ?? null);\n        this.isFocused = observableFromEvent(this, (e) =\u003e {\n          const d1 = this.editor.onDidFocusEditorWidget(e);\n          const d2 = this.editor.onDidBlurEditorWidget(e);\n          return {\n            dispose() {\n              d1.dispose();\n              d2.dispose();\n            }\n          };\n        }, () =\u003e this.editor.hasWidgetFocus());\n        this.isTextFocused = observableFromEvent(this, (e) =\u003e {\n          const d1 = this.editor.onDidFocusEditorText(e);\n          const d2 = this.editor.onDidBlurEditorText(e);\n          return {\n            dispose() {\n              d1.dispose();\n              d2.dispose();\n            }\n          };\n        }, () =\u003e this.editor.hasTextFocus());\n        this.inComposition = observableFromEvent(this, (e) =\u003e {\n          const d1 = this.editor.onDidCompositionStart(() =\u003e {\n            e(void 0);\n          });\n          const d2 = this.editor.onDidCompositionEnd(() =\u003e {\n            e(void 0);\n          });\n          return {\n            dispose() {\n              d1.dispose();\n              d2.dispose();\n            }\n          };\n        }, () =\u003e this.editor.inComposition);\n        this.value = derivedWithSetter(this, (reader) =\u003e {\n          this.versionId.read(reader);\n          return this.model.read(reader)?.getValue() ?? \"\";\n        }, (value, tx) =\u003e {\n          const model = this.model.get();\n          if (model !== null) {\n            if (value !== model.getValue()) {\n              model.setValue(value);\n            }\n          }\n        });\n        this.valueIsEmpty = derived(this, (reader) =\u003e {\n          this.versionId.read(reader);\n          return this.editor.getModel()?.getValueLength() === 0;\n        });\n        this.cursorSelection = derivedOpts({ owner: this, equalsFn: equalsIfDefined(Selection.selectionsEqual) }, (reader) =\u003e this.selections.read(reader)?.[0] ?? null);\n        this.cursorPosition = derivedOpts({ owner: this, equalsFn: Position.equals }, (reader) =\u003e this.selections.read(reader)?.[0]?.getPosition() ?? null);\n        this.cursorLineNumber = derived(this, (reader) =\u003e this.cursorPosition.read(reader)?.lineNumber ?? null);\n        this.onDidType = observableSignal(this);\n        this.onDidPaste = observableSignal(this);\n        this.scrollTop = observableFromEvent(this.editor.onDidScrollChange, () =\u003e this.editor.getScrollTop());\n        this.scrollLeft = observableFromEvent(this.editor.onDidScrollChange, () =\u003e this.editor.getScrollLeft());\n        this.layoutInfo = observableFromEvent(this.editor.onDidLayoutChange, () =\u003e this.editor.getLayoutInfo());\n        this.layoutInfoContentLeft = this.layoutInfo.map((l) =\u003e l.contentLeft);\n        this.layoutInfoDecorationsLeft = this.layoutInfo.map((l) =\u003e l.decorationsLeft);\n        this.layoutInfoWidth = this.layoutInfo.map((l) =\u003e l.width);\n        this.layoutInfoHeight = this.layoutInfo.map((l) =\u003e l.height);\n        this.layoutInfoMinimap = this.layoutInfo.map((l) =\u003e l.minimap);\n        this.layoutInfoVerticalScrollbarWidth = this.layoutInfo.map((l) =\u003e l.verticalScrollbarWidth);\n        this.contentWidth = observableFromEvent(this.editor.onDidContentSizeChange, () =\u003e this.editor.getContentWidth());\n        this.contentHeight = observableFromEvent(this.editor.onDidContentSizeChange, () =\u003e this.editor.getContentHeight());\n        this._widgetCounter = 0;\n        this.openedPeekWidgets = observableValue(this, 0);\n        this._register(this.editor.onBeginUpdate(() =\u003e this._beginUpdate()));\n        this._register(this.editor.onEndUpdate(() =\u003e this._endUpdate()));\n        this._register(this.editor.onDidChangeModel(() =\u003e {\n          this._beginUpdate();\n          try {\n            this._model.set(this.editor.getModel(), this._currentTransaction);\n            this._forceUpdate();\n          } finally {\n            this._endUpdate();\n          }\n        }));\n        this._register(this.editor.onDidType((e) =\u003e {\n          this._beginUpdate();\n          try {\n            this._forceUpdate();\n            this.onDidType.trigger(this._currentTransaction, e);\n          } finally {\n            this._endUpdate();\n          }\n        }));\n        this._register(this.editor.onDidPaste((e) =\u003e {\n          this._beginUpdate();\n          try {\n            this._forceUpdate();\n            this.onDidPaste.trigger(this._currentTransaction, e);\n          } finally {\n            this._endUpdate();\n          }\n        }));\n        this._register(this.editor.onDidChangeModelContent((e) =\u003e {\n          this._beginUpdate();\n          try {\n            this._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, e);\n            this._forceUpdate();\n          } finally {\n            this._endUpdate();\n          }\n        }));\n        this._register(this.editor.onDidChangeCursorSelection((e) =\u003e {\n          this._beginUpdate();\n          try {\n            this._selections.set(this.editor.getSelections(), this._currentTransaction, e);\n            this._forceUpdate();\n          } finally {\n            this._endUpdate();\n          }\n        }));\n        this.domNode = derived((reader) =\u003e {\n          this.model.read(reader);\n          return this.editor.getDomNode();\n        });\n      }\n      forceUpdate(cb) {\n        this._beginUpdate();\n        try {\n          this._forceUpdate();\n          if (!cb) {\n            return void 0;\n          }\n          return cb(this._currentTransaction);\n        } finally {\n          this._endUpdate();\n        }\n      }\n      _forceUpdate() {\n        this._beginUpdate();\n        try {\n          this._model.set(this.editor.getModel(), this._currentTransaction);\n          this._versionId.set(this.editor.getModel()?.getVersionId() ?? null, this._currentTransaction, void 0);\n          this._selections.set(this.editor.getSelections(), this._currentTransaction, void 0);\n        } finally {\n          this._endUpdate();\n        }\n      }\n      getOption(id, debugLocation = DebugLocation.ofCaller()) {\n        return observableFromEvent(this, (cb) =\u003e this.editor.onDidChangeConfiguration((e) =\u003e {\n          if (e.hasChanged(id)) {\n            cb(void 0);\n          }\n        }), () =\u003e this.editor.getOption(id), debugLocation);\n      }\n      setDecorations(decorations) {\n        const d = new DisposableStore();\n        const decorationsCollection = this.editor.createDecorationsCollection();\n        d.add(autorunOpts({ owner: this, debugName: () =\u003e `Apply decorations from ${decorations.debugName}` }, (reader) =\u003e {\n          const d2 = decorations.read(reader);\n          decorationsCollection.set(d2);\n        }));\n        d.add({\n          dispose: () =\u003e {\n            decorationsCollection.clear();\n          }\n        });\n        return d;\n      }\n      createOverlayWidget(widget) {\n        const overlayWidgetId = \"observableOverlayWidget\" + this._widgetCounter++;\n        const w = {\n          getDomNode: () =\u003e widget.domNode,\n          getPosition: () =\u003e widget.position.get(),\n          getId: () =\u003e overlayWidgetId,\n          allowEditorOverflow: widget.allowEditorOverflow,\n          getMinContentWidthInPx: () =\u003e widget.minContentWidthInPx.get()\n        };\n        this.editor.addOverlayWidget(w);\n        const d = autorun((reader) =\u003e {\n          widget.position.read(reader);\n          widget.minContentWidthInPx.read(reader);\n          this.editor.layoutOverlayWidget(w);\n        });\n        return toDisposable(() =\u003e {\n          d.dispose();\n          this.editor.removeOverlayWidget(w);\n        });\n      }\n      createContentWidget(widget) {\n        const contentWidgetId = \"observableContentWidget\" + this._widgetCounter++;\n        const w = {\n          getDomNode: () =\u003e widget.domNode,\n          getPosition: () =\u003e widget.position.get(),\n          getId: () =\u003e contentWidgetId,\n          allowEditorOverflow: widget.allowEditorOverflow\n        };\n        this.editor.addContentWidget(w);\n        const d = autorun((reader) =\u003e {\n          widget.position.read(reader);\n          this.editor.layoutContentWidget(w);\n        });\n        return toDisposable(() =\u003e {\n          d.dispose();\n          this.editor.removeContentWidget(w);\n        });\n      }\n      observeLineOffsetRange(lineRange, store) {\n        const start = this.observePosition(lineRange.map((r) =\u003e new Position(r.startLineNumber, 1)), store);\n        const end = this.observePosition(lineRange.map((r) =\u003e new Position(r.endLineNumberExclusive + 1, 1)), store);\n        return derived((reader) =\u003e {\n          start.read(reader);\n          end.read(reader);\n          const range2 = lineRange.read(reader);\n          const lineCount = this.model.read(reader)?.getLineCount();\n          const s = (typeof lineCount !== \"undefined\" \u0026\u0026 range2.startLineNumber \u003e lineCount ? this.editor.getBottomForLineNumber(lineCount) : this.editor.getTopForLineNumber(range2.startLineNumber)) - this.scrollTop.read(reader);\n          const e = range2.isEmpty ? s : this.editor.getBottomForLineNumber(range2.endLineNumberExclusive - 1) - this.scrollTop.read(reader);\n          return new OffsetRange(s, e);\n        });\n      }\n      observePosition(position, store) {\n        let pos = position.get();\n        const result = observableValueOpts({ owner: this, debugName: () =\u003e `topLeftOfPosition${pos?.toString()}`, equalsFn: equalsIfDefined(Point.equals) }, new Point(0, 0));\n        const contentWidgetId = `observablePositionWidget` + this._widgetCounter++;\n        const domNode = document.createElement(\"div\");\n        const w = {\n          getDomNode: () =\u003e domNode,\n          getPosition: () =\u003e {\n            return pos ? { preference: [\n              0\n              /* ContentWidgetPositionPreference.EXACT */\n            ], position: position.get() } : null;\n          },\n          getId: () =\u003e contentWidgetId,\n          allowEditorOverflow: false,\n          afterRender: (position2, coordinate) =\u003e {\n            const model = this._model.get();\n            if (model \u0026\u0026 pos \u0026\u0026 pos.lineNumber \u003e model.getLineCount()) {\n              result.set(new Point(0, this.editor.getBottomForLineNumber(model.getLineCount()) - this.scrollTop.get()), void 0);\n            } else {\n              result.set(coordinate ? new Point(coordinate.left, coordinate.top) : null, void 0);\n            }\n          }\n        };\n        this.editor.addContentWidget(w);\n        store.add(autorun((reader) =\u003e {\n          pos = position.read(reader);\n          this.editor.layoutContentWidget(w);\n        }));\n        store.add(toDisposable(() =\u003e {\n          this.editor.removeContentWidget(w);\n        }));\n        return result;\n      }\n      isTargetHovered(predicate, store) {\n        const isHovered = observableValue(\"isInjectedTextHovered\", false);\n        store.add(this.editor.onMouseMove((e) =\u003e {\n          const val = predicate(e);\n          isHovered.set(val, void 0);\n        }));\n        store.add(this.editor.onMouseLeave((E) =\u003e {\n          isHovered.set(false, void 0);\n        }));\n        return isHovered;\n      }\n      observeLineHeightForPosition(position) {\n        return derived((reader) =\u003e {\n          const pos = position instanceof Position ? position : position.read(reader);\n          if (pos === null) {\n            return null;\n          }\n          this.getOption(\n            75\n            /* EditorOption.lineHeight */\n          ).read(reader);\n          return this.editor.getLineHeightForPosition(pos);\n        });\n      }\n      observeLineHeightForLine(lineNumber) {\n        if (typeof lineNumber === \"number\") {\n          return this.observeLineHeightForPosition(new Position(lineNumber, 1));\n        }\n        return derived((reader) =\u003e {\n          const line = lineNumber.read(reader);\n          if (line === null) {\n            return null;\n          }\n          return this.observeLineHeightForPosition(new Position(line, 1)).read(reader);\n        });\n      }\n      observeLineHeightsForLineRange(lineNumber) {\n        return derived((reader) =\u003e {\n          const range2 = lineNumber instanceof LineRange ? lineNumber : lineNumber.read(reader);\n          const heights = [];\n          for (let i2 = range2.startLineNumber; i2 \u003c range2.endLineNumberExclusive; i2++) {\n            heights.push(this.observeLineHeightForLine(i2).read(reader));\n          }\n          return heights;\n        });\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js\nvar __decorate42, __param37, HideUnchangedRegionsFeature_1, HideUnchangedRegionsFeature, CompactCollapsedCodeOverlayWidget, CollapsedCodeOverlayWidget;\nvar init_hideUnchangedRegionsFeature = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js\"() {\n    init_dom();\n    init_iconLabels2();\n    init_codicons();\n    init_htmlContent();\n    init_lifecycle();\n    init_observable();\n    init_themables();\n    init_types();\n    init_nls();\n    init_instantiation();\n    init_lineRange();\n    init_position();\n    init_range();\n    init_languages();\n    init_observableCodeEditor();\n    init_utils5();\n    __decorate42 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param37 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    HideUnchangedRegionsFeature = class HideUnchangedRegionsFeature2 extends Disposable {\n      static {\n        HideUnchangedRegionsFeature_1 = this;\n      }\n      static {\n        this._breadcrumbsSourceFactory = observableValue(HideUnchangedRegionsFeature_1, () =\u003e ({\n          dispose() {\n          },\n          getBreadcrumbItems(startRange, reader) {\n            return [];\n          }\n        }));\n      }\n      static setBreadcrumbsSourceFactory(factory) {\n        this._breadcrumbsSourceFactory.set(factory, void 0);\n      }\n      get isUpdatingHiddenAreas() {\n        return this._isUpdatingHiddenAreas;\n      }\n      constructor(_editors, _diffModel, _options, _instantiationService) {\n        super();\n        this._editors = _editors;\n        this._diffModel = _diffModel;\n        this._options = _options;\n        this._instantiationService = _instantiationService;\n        this._modifiedOutlineSource = derivedDisposable(this, (reader) =\u003e {\n          const m = this._editors.modifiedModel.read(reader);\n          const factory = HideUnchangedRegionsFeature_1._breadcrumbsSourceFactory.read(reader);\n          return !m || !factory ? void 0 : factory(m, this._instantiationService);\n        });\n        this._isUpdatingHiddenAreas = false;\n        this._register(this._editors.original.onDidChangeCursorPosition((e) =\u003e {\n          if (e.reason === 1) {\n            return;\n          }\n          const m = this._diffModel.get();\n          transaction((tx) =\u003e {\n            for (const s of this._editors.original.getSelections() || []) {\n              m?.ensureOriginalLineIsVisible(s.getStartPosition().lineNumber, 0, tx);\n              m?.ensureOriginalLineIsVisible(s.getEndPosition().lineNumber, 0, tx);\n            }\n          });\n        }));\n        this._register(this._editors.modified.onDidChangeCursorPosition((e) =\u003e {\n          if (e.reason === 1) {\n            return;\n          }\n          const m = this._diffModel.get();\n          transaction((tx) =\u003e {\n            for (const s of this._editors.modified.getSelections() || []) {\n              m?.ensureModifiedLineIsVisible(s.getStartPosition().lineNumber, 0, tx);\n              m?.ensureModifiedLineIsVisible(s.getEndPosition().lineNumber, 0, tx);\n            }\n          });\n        }));\n        const unchangedRegions = this._diffModel.map((m, reader) =\u003e {\n          const regions = m?.unchangedRegions.read(reader) ?? [];\n          if (regions.length === 1 \u0026\u0026 regions[0].modifiedLineNumber === 1 \u0026\u0026 regions[0].lineCount === this._editors.modifiedModel.read(reader)?.getLineCount()) {\n            return [];\n          }\n          return regions;\n        });\n        this.viewZones = derived(this, (reader) =\u003e {\n          const modifiedOutlineSource = this._modifiedOutlineSource.read(reader);\n          if (!modifiedOutlineSource) {\n            return { origViewZones: [], modViewZones: [] };\n          }\n          const origViewZones = [];\n          const modViewZones = [];\n          const sideBySide = this._options.renderSideBySide.read(reader);\n          const compactMode = this._options.compactMode.read(reader);\n          const curUnchangedRegions = unchangedRegions.read(reader);\n          for (let i2 = 0; i2 \u003c curUnchangedRegions.length; i2++) {\n            const r = curUnchangedRegions[i2];\n            if (r.shouldHideControls(reader)) {\n              continue;\n            }\n            if (compactMode \u0026\u0026 (i2 === 0 || i2 === curUnchangedRegions.length - 1)) {\n              continue;\n            }\n            if (compactMode) {\n              {\n                const d = derived(this, (reader2) =\u003e (\n                  /** @description hiddenOriginalRangeStart */\n                  r.getHiddenOriginalRange(reader2).startLineNumber - 1\n                ));\n                const origVz = new PlaceholderViewZone(d, 12);\n                origViewZones.push(origVz);\n                reader.store.add(new CompactCollapsedCodeOverlayWidget(this._editors.original, origVz, r, !sideBySide));\n              }\n              {\n                const d = derived(this, (reader2) =\u003e (\n                  /** @description hiddenModifiedRangeStart */\n                  r.getHiddenModifiedRange(reader2).startLineNumber - 1\n                ));\n                const modViewZone = new PlaceholderViewZone(d, 12);\n                modViewZones.push(modViewZone);\n                reader.store.add(new CompactCollapsedCodeOverlayWidget(this._editors.modified, modViewZone, r));\n              }\n            } else {\n              {\n                const d = derived(this, (reader2) =\u003e (\n                  /** @description hiddenOriginalRangeStart */\n                  r.getHiddenOriginalRange(reader2).startLineNumber - 1\n                ));\n                const origVz = new PlaceholderViewZone(d, 24);\n                origViewZones.push(origVz);\n                reader.store.add(new CollapsedCodeOverlayWidget(this._editors.original, origVz, r, r.originalUnchangedRange, !sideBySide, modifiedOutlineSource, (l) =\u003e this._diffModel.get().ensureModifiedLineIsVisible(l, 2, void 0), this._options));\n              }\n              {\n                const d = derived(this, (reader2) =\u003e (\n                  /** @description hiddenModifiedRangeStart */\n                  r.getHiddenModifiedRange(reader2).startLineNumber - 1\n                ));\n                const modViewZone = new PlaceholderViewZone(d, 24);\n                modViewZones.push(modViewZone);\n                reader.store.add(new CollapsedCodeOverlayWidget(this._editors.modified, modViewZone, r, r.modifiedUnchangedRange, false, modifiedOutlineSource, (l) =\u003e this._diffModel.get().ensureModifiedLineIsVisible(l, 2, void 0), this._options));\n              }\n            }\n          }\n          return { origViewZones, modViewZones };\n        });\n        const unchangedLinesDecoration = {\n          description: \"unchanged lines\",\n          className: \"diff-unchanged-lines\",\n          isWholeLine: true\n        };\n        const unchangedLinesDecorationShow = {\n          description: \"Fold Unchanged\",\n          glyphMarginHoverMessage: new MarkdownString(void 0, { isTrusted: true, supportThemeIcons: true }).appendMarkdown(localize(121, \"Fold Unchanged Region\")),\n          glyphMarginClassName: \"fold-unchanged \" + ThemeIcon.asClassName(Codicon.fold),\n          zIndex: 10001\n        };\n        this._register(applyObservableDecorations(this._editors.original, derived(this, (reader) =\u003e {\n          const curUnchangedRegions = unchangedRegions.read(reader);\n          const result = curUnchangedRegions.map((r) =\u003e ({\n            range: r.originalUnchangedRange.toInclusiveRange(),\n            options: unchangedLinesDecoration\n          }));\n          for (const r of curUnchangedRegions) {\n            if (r.shouldHideControls(reader)) {\n              result.push({\n                range: Range.fromPositions(new Position(r.originalLineNumber, 1)),\n                options: unchangedLinesDecorationShow\n              });\n            }\n          }\n          return result;\n        })));\n        this._register(applyObservableDecorations(this._editors.modified, derived(this, (reader) =\u003e {\n          const curUnchangedRegions = unchangedRegions.read(reader);\n          const result = curUnchangedRegions.map((r) =\u003e ({\n            range: r.modifiedUnchangedRange.toInclusiveRange(),\n            options: unchangedLinesDecoration\n          }));\n          for (const r of curUnchangedRegions) {\n            if (r.shouldHideControls(reader)) {\n              result.push({\n                range: LineRange.ofLength(r.modifiedLineNumber, 1).toInclusiveRange(),\n                options: unchangedLinesDecorationShow\n              });\n            }\n          }\n          return result;\n        })));\n        this._register(autorun((reader) =\u003e {\n          const curUnchangedRegions = unchangedRegions.read(reader);\n          this._isUpdatingHiddenAreas = true;\n          try {\n            this._editors.original.setHiddenAreas(curUnchangedRegions.map((r) =\u003e r.getHiddenOriginalRange(reader).toInclusiveRange()).filter(isDefined));\n            this._editors.modified.setHiddenAreas(curUnchangedRegions.map((r) =\u003e r.getHiddenModifiedRange(reader).toInclusiveRange()).filter(isDefined));\n          } finally {\n            this._isUpdatingHiddenAreas = false;\n          }\n        }));\n        this._register(this._editors.modified.onMouseUp((event) =\u003e {\n          if (!event.event.rightButton \u0026\u0026 event.target.position \u0026\u0026 event.target.element?.className.includes(\"fold-unchanged\")) {\n            const lineNumber = event.target.position.lineNumber;\n            const model = this._diffModel.get();\n            if (!model) {\n              return;\n            }\n            const region = model.unchangedRegions.get().find((r) =\u003e r.modifiedUnchangedRange.contains(lineNumber));\n            if (!region) {\n              return;\n            }\n            region.collapseAll(void 0);\n            event.event.stopPropagation();\n            event.event.preventDefault();\n          }\n        }));\n        this._register(this._editors.original.onMouseUp((event) =\u003e {\n          if (!event.event.rightButton \u0026\u0026 event.target.position \u0026\u0026 event.target.element?.className.includes(\"fold-unchanged\")) {\n            const lineNumber = event.target.position.lineNumber;\n            const model = this._diffModel.get();\n            if (!model) {\n              return;\n            }\n            const region = model.unchangedRegions.get().find((r) =\u003e r.originalUnchangedRange.contains(lineNumber));\n            if (!region) {\n              return;\n            }\n            region.collapseAll(void 0);\n            event.event.stopPropagation();\n            event.event.preventDefault();\n          }\n        }));\n      }\n    };\n    HideUnchangedRegionsFeature = HideUnchangedRegionsFeature_1 = __decorate42([\n      __param37(3, IInstantiationService)\n    ], HideUnchangedRegionsFeature);\n    CompactCollapsedCodeOverlayWidget = class extends ViewZoneOverlayWidget {\n      constructor(editor2, _viewZone, _unchangedRegion, _hide = false) {\n        const root = h(\"div.diff-hidden-lines-widget\");\n        super(editor2, _viewZone, root.root);\n        this._unchangedRegion = _unchangedRegion;\n        this._hide = _hide;\n        this._nodes = h(\"div.diff-hidden-lines-compact\", [\n          h(\"div.line-left\", []),\n          h(\"div.text@text\", []),\n          h(\"div.line-right\", [])\n        ]);\n        root.root.appendChild(this._nodes.root);\n        if (this._hide) {\n          this._nodes.root.replaceChildren();\n        }\n        this._register(autorun((reader) =\u003e {\n          if (!this._hide) {\n            const lineCount = this._unchangedRegion.getHiddenModifiedRange(reader).length;\n            const linesHiddenText = localize(122, \"{0} hidden lines\", lineCount);\n            this._nodes.text.innerText = linesHiddenText;\n          }\n        }));\n      }\n    };\n    CollapsedCodeOverlayWidget = class extends ViewZoneOverlayWidget {\n      constructor(_editor, _viewZone, _unchangedRegion, _unchangedRegionRange, _hide, _modifiedOutlineSource, _revealModifiedHiddenLine, _options) {\n        const root = h(\"div.diff-hidden-lines-widget\");\n        super(_editor, _viewZone, root.root);\n        this._editor = _editor;\n        this._unchangedRegion = _unchangedRegion;\n        this._unchangedRegionRange = _unchangedRegionRange;\n        this._hide = _hide;\n        this._modifiedOutlineSource = _modifiedOutlineSource;\n        this._revealModifiedHiddenLine = _revealModifiedHiddenLine;\n        this._options = _options;\n        this._nodes = h(\"div.diff-hidden-lines\", [\n          h(\"div.top@top\", { title: localize(123, \"Click or drag to show more above\") }),\n          h(\"div.center@content\", { style: { display: \"flex\" } }, [\n            h(\"div@first\", { style: { display: \"flex\", justifyContent: \"center\", alignItems: \"center\", flexShrink: \"0\" } }, [$(\"a\", { title: localize(124, \"Show Unchanged Region\"), role: \"button\", onclick: () =\u003e {\n              this._unchangedRegion.showAll(void 0);\n            } }, ...renderLabelWithIcons(\"$(unfold)\"))]),\n            h(\"div@others\", { style: { display: \"flex\", justifyContent: \"center\", alignItems: \"center\" } })\n          ]),\n          h(\"div.bottom@bottom\", { title: localize(125, \"Click or drag to show more below\"), role: \"button\" })\n        ]);\n        root.root.appendChild(this._nodes.root);\n        if (!this._hide) {\n          this._register(applyStyle(this._nodes.first, { width: observableCodeEditor(this._editor).layoutInfoContentLeft }));\n        } else {\n          reset(this._nodes.first);\n        }\n        this._register(autorun((reader) =\u003e {\n          const isFullyRevealed = this._unchangedRegion.visibleLineCountTop.read(reader) + this._unchangedRegion.visibleLineCountBottom.read(reader) === this._unchangedRegion.lineCount;\n          this._nodes.bottom.classList.toggle(\"canMoveTop\", !isFullyRevealed);\n          this._nodes.bottom.classList.toggle(\"canMoveBottom\", this._unchangedRegion.visibleLineCountBottom.read(reader) \u003e 0);\n          this._nodes.top.classList.toggle(\"canMoveTop\", this._unchangedRegion.visibleLineCountTop.read(reader) \u003e 0);\n          this._nodes.top.classList.toggle(\"canMoveBottom\", !isFullyRevealed);\n          const isDragged = this._unchangedRegion.isDragged.read(reader);\n          const domNode = this._editor.getDomNode();\n          if (domNode) {\n            domNode.classList.toggle(\"draggingUnchangedRegion\", !!isDragged);\n            if (isDragged === \"top\") {\n              domNode.classList.toggle(\"canMoveTop\", this._unchangedRegion.visibleLineCountTop.read(reader) \u003e 0);\n              domNode.classList.toggle(\"canMoveBottom\", !isFullyRevealed);\n            } else if (isDragged === \"bottom\") {\n              domNode.classList.toggle(\"canMoveTop\", !isFullyRevealed);\n              domNode.classList.toggle(\"canMoveBottom\", this._unchangedRegion.visibleLineCountBottom.read(reader) \u003e 0);\n            } else {\n              domNode.classList.toggle(\"canMoveTop\", false);\n              domNode.classList.toggle(\"canMoveBottom\", false);\n            }\n          }\n        }));\n        const editor2 = this._editor;\n        this._register(addDisposableListener(this._nodes.top, \"mousedown\", (e) =\u003e {\n          if (e.button !== 0) {\n            return;\n          }\n          this._nodes.top.classList.toggle(\"dragging\", true);\n          this._nodes.root.classList.toggle(\"dragging\", true);\n          e.preventDefault();\n          const startTop = e.clientY;\n          let didMove = false;\n          const cur = this._unchangedRegion.visibleLineCountTop.get();\n          this._unchangedRegion.isDragged.set(\"top\", void 0);\n          const window2 = getWindow(this._nodes.top);\n          const mouseMoveListener = addDisposableListener(window2, \"mousemove\", (e2) =\u003e {\n            const currentTop = e2.clientY;\n            const delta = currentTop - startTop;\n            didMove = didMove || Math.abs(delta) \u003e 2;\n            const lineDelta = Math.round(delta / editor2.getOption(\n              75\n              /* EditorOption.lineHeight */\n            ));\n            const newVal = Math.max(0, Math.min(cur + lineDelta, this._unchangedRegion.getMaxVisibleLineCountTop()));\n            this._unchangedRegion.visibleLineCountTop.set(newVal, void 0);\n          });\n          const mouseUpListener = addDisposableListener(window2, \"mouseup\", (e2) =\u003e {\n            if (!didMove) {\n              this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(), void 0);\n            }\n            this._nodes.top.classList.toggle(\"dragging\", false);\n            this._nodes.root.classList.toggle(\"dragging\", false);\n            this._unchangedRegion.isDragged.set(void 0, void 0);\n            mouseMoveListener.dispose();\n            mouseUpListener.dispose();\n          });\n        }));\n        this._register(addDisposableListener(this._nodes.bottom, \"mousedown\", (e) =\u003e {\n          if (e.button !== 0) {\n            return;\n          }\n          this._nodes.bottom.classList.toggle(\"dragging\", true);\n          this._nodes.root.classList.toggle(\"dragging\", true);\n          e.preventDefault();\n          const startTop = e.clientY;\n          let didMove = false;\n          const cur = this._unchangedRegion.visibleLineCountBottom.get();\n          this._unchangedRegion.isDragged.set(\"bottom\", void 0);\n          const window2 = getWindow(this._nodes.bottom);\n          const mouseMoveListener = addDisposableListener(window2, \"mousemove\", (e2) =\u003e {\n            const currentTop = e2.clientY;\n            const delta = currentTop - startTop;\n            didMove = didMove || Math.abs(delta) \u003e 2;\n            const lineDelta = Math.round(delta / editor2.getOption(\n              75\n              /* EditorOption.lineHeight */\n            ));\n            const newVal = Math.max(0, Math.min(cur - lineDelta, this._unchangedRegion.getMaxVisibleLineCountBottom()));\n            const top = this._unchangedRegionRange.endLineNumberExclusive \u003e editor2.getModel().getLineCount() ? editor2.getContentHeight() : editor2.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n            this._unchangedRegion.visibleLineCountBottom.set(newVal, void 0);\n            const top2 = this._unchangedRegionRange.endLineNumberExclusive \u003e editor2.getModel().getLineCount() ? editor2.getContentHeight() : editor2.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n            editor2.setScrollTop(editor2.getScrollTop() + (top2 - top));\n          });\n          const mouseUpListener = addDisposableListener(window2, \"mouseup\", (e2) =\u003e {\n            this._unchangedRegion.isDragged.set(void 0, void 0);\n            if (!didMove) {\n              const top = editor2.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n              this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(), void 0);\n              const top2 = editor2.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);\n              editor2.setScrollTop(editor2.getScrollTop() + (top2 - top));\n            }\n            this._nodes.bottom.classList.toggle(\"dragging\", false);\n            this._nodes.root.classList.toggle(\"dragging\", false);\n            mouseMoveListener.dispose();\n            mouseUpListener.dispose();\n          });\n        }));\n        this._register(autorun((reader) =\u003e {\n          const children = [];\n          if (!this._hide) {\n            const lineCount = _unchangedRegion.getHiddenModifiedRange(reader).length;\n            const linesHiddenText = localize(126, \"{0} hidden lines\", lineCount);\n            const span = $(\"span\", { title: localize(127, \"Double click to unfold\") }, linesHiddenText);\n            span.addEventListener(\"dblclick\", (e) =\u003e {\n              if (e.button !== 0) {\n                return;\n              }\n              e.preventDefault();\n              this._unchangedRegion.showAll(void 0);\n            });\n            children.push(span);\n            const range2 = this._unchangedRegion.getHiddenModifiedRange(reader);\n            const items = this._modifiedOutlineSource.getBreadcrumbItems(range2, reader);\n            if (items.length \u003e 0) {\n              children.push($(\"span\", void 0, \"\\xA0\\xA0|\\xA0\\xA0\"));\n              for (let i2 = 0; i2 \u003c items.length; i2++) {\n                const item = items[i2];\n                const icon = SymbolKinds.toIcon(item.kind);\n                const divItem = h(\"div.breadcrumb-item\", {\n                  style: { display: \"flex\", alignItems: \"center\" }\n                }, [\n                  renderIcon(icon),\n                  \"\\xA0\",\n                  item.name,\n                  ...i2 === items.length - 1 ? [] : [renderIcon(Codicon.chevronRight)]\n                ]).root;\n                children.push(divItem);\n                divItem.onclick = () =\u003e {\n                  this._revealModifiedHiddenLine(item.startLineNumber);\n                };\n              }\n            }\n          }\n          reset(this._nodes.others, ...children);\n        }));\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js\nvar IEditorCancellationTokens, ctxCancellableOperation, EditorKeybindingCancellationTokenSource;\nvar init_keybindingCancellation = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js\"() {\n    init_editorExtensions();\n    init_contextkey();\n    init_cancellation();\n    init_linkedList();\n    init_instantiation();\n    init_extensions();\n    init_nls();\n    IEditorCancellationTokens = createDecorator(\"IEditorCancelService\");\n    ctxCancellableOperation = new RawContextKey(\"cancellableOperation\", false, localize(931, \"Whether the editor runs a cancellable operation, e.g. like 'Peek References'\"));\n    registerSingleton(\n      IEditorCancellationTokens,\n      class {\n        constructor() {\n          this._tokens = /* @__PURE__ */ new WeakMap();\n        }\n        add(editor2, cts) {\n          let data = this._tokens.get(editor2);\n          if (!data) {\n            data = editor2.invokeWithinContext((accessor) =\u003e {\n              const key = ctxCancellableOperation.bindTo(accessor.get(IContextKeyService));\n              const tokens = new LinkedList();\n              return { key, tokens };\n            });\n            this._tokens.set(editor2, data);\n          }\n          let removeFn;\n          data.key.set(true);\n          removeFn = data.tokens.push(cts);\n          return () =\u003e {\n            if (removeFn) {\n              removeFn();\n              data.key.set(!data.tokens.isEmpty());\n              removeFn = void 0;\n            }\n          };\n        }\n        cancel(editor2) {\n          const data = this._tokens.get(editor2);\n          if (!data) {\n            return;\n          }\n          const cts = data.tokens.pop();\n          if (cts) {\n            cts.cancel();\n            data.key.set(!data.tokens.isEmpty());\n          }\n        }\n      },\n      1\n      /* InstantiationType.Delayed */\n    );\n    EditorKeybindingCancellationTokenSource = class extends CancellationTokenSource {\n      constructor(editor2, parent) {\n        super(parent);\n        this.editor = editor2;\n        this._unregister = editor2.invokeWithinContext((accessor) =\u003e accessor.get(IEditorCancellationTokens).add(editor2, this));\n      }\n      dispose() {\n        this._unregister();\n        super.dispose();\n      }\n    };\n    registerEditorCommand(new class extends EditorCommand {\n      constructor() {\n        super({\n          id: \"editor.cancelOperation\",\n          kbOpts: {\n            weight: 100,\n            primary: 9\n            /* KeyCode.Escape */\n          },\n          precondition: ctxCancellableOperation\n        });\n      }\n      runEditorCommand(accessor, editor2) {\n        accessor.get(IEditorCancellationTokens).cancel(editor2);\n      }\n    }());\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/editorState/browser/editorState.js\nvar EditorState, EditorStateCancellationTokenSource, TextModelCancellationTokenSource;\nvar init_editorState = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/editorState/browser/editorState.js\"() {\n    init_strings();\n    init_range();\n    init_cancellation();\n    init_lifecycle();\n    init_keybindingCancellation();\n    EditorState = class _EditorState {\n      constructor(editor2, flags) {\n        this.flags = flags;\n        if ((this.flags \u0026 1) !== 0) {\n          const model = editor2.getModel();\n          this.modelVersionId = model ? format(\"{0}#{1}\", model.uri.toString(), model.getVersionId()) : null;\n        } else {\n          this.modelVersionId = null;\n        }\n        if ((this.flags \u0026 4) !== 0) {\n          this.position = editor2.getPosition();\n        } else {\n          this.position = null;\n        }\n        if ((this.flags \u0026 2) !== 0) {\n          this.selection = editor2.getSelection();\n        } else {\n          this.selection = null;\n        }\n        if ((this.flags \u0026 8) !== 0) {\n          this.scrollLeft = editor2.getScrollLeft();\n          this.scrollTop = editor2.getScrollTop();\n        } else {\n          this.scrollLeft = -1;\n          this.scrollTop = -1;\n        }\n      }\n      _equals(other) {\n        if (!(other instanceof _EditorState)) {\n          return false;\n        }\n        const state = other;\n        if (this.modelVersionId !== state.modelVersionId) {\n          return false;\n        }\n        if (this.scrollLeft !== state.scrollLeft || this.scrollTop !== state.scrollTop) {\n          return false;\n        }\n        if (!this.position \u0026\u0026 state.position || this.position \u0026\u0026 !state.position || this.position \u0026\u0026 state.position \u0026\u0026 !this.position.equals(state.position)) {\n          return false;\n        }\n        if (!this.selection \u0026\u0026 state.selection || this.selection \u0026\u0026 !state.selection || this.selection \u0026\u0026 state.selection \u0026\u0026 !this.selection.equalsRange(state.selection)) {\n          return false;\n        }\n        return true;\n      }\n      validate(editor2) {\n        return this._equals(new _EditorState(editor2, this.flags));\n      }\n    };\n    EditorStateCancellationTokenSource = class extends EditorKeybindingCancellationTokenSource {\n      constructor(editor2, flags, range2, parent) {\n        super(editor2, parent);\n        this._listener = new DisposableStore();\n        if (flags \u0026 4) {\n          this._listener.add(editor2.onDidChangeCursorPosition((e) =\u003e {\n            if (!range2 || !Range.containsPosition(range2, e.position)) {\n              this.cancel();\n            }\n          }));\n        }\n        if (flags \u0026 2) {\n          this._listener.add(editor2.onDidChangeCursorSelection((e) =\u003e {\n            if (!range2 || !Range.containsRange(range2, e.selection)) {\n              this.cancel();\n            }\n          }));\n        }\n        if (flags \u0026 8) {\n          this._listener.add(editor2.onDidScrollChange((_) =\u003e this.cancel()));\n        }\n        if (flags \u0026 1) {\n          this._listener.add(editor2.onDidChangeModel((_) =\u003e this.cancel()));\n          this._listener.add(editor2.onDidChangeModelContent((_) =\u003e this.cancel()));\n        }\n      }\n      dispose() {\n        this._listener.dispose();\n        super.dispose();\n      }\n    };\n    TextModelCancellationTokenSource = class extends CancellationTokenSource {\n      constructor(model, parent) {\n        super(parent);\n        this._listener = model.onDidChangeContent(() =\u003e this.cancel());\n      }\n      dispose() {\n        this._listener.dispose();\n        super.dispose();\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/environment/common/environment.js\nvar IEnvironmentService;\nvar init_environment = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/environment/common/environment.js\"() {\n    init_instantiation();\n    IEnvironmentService = createDecorator(\"environmentService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languageFeatureDebounce.js\nvar __decorate57, __param52, ILanguageFeatureDebounceService, IdentityHash, NullDebounceInformation, FeatureDebounceInformation, LanguageFeatureDebounceService;\nvar init_languageFeatureDebounce = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languageFeatureDebounce.js\"() {\n    init_hash();\n    init_map();\n    init_numbers();\n    init_environment();\n    init_extensions();\n    init_instantiation();\n    init_log();\n    init_network();\n    __decorate57 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param52 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    ILanguageFeatureDebounceService = createDecorator(\"ILanguageFeatureDebounceService\");\n    (function(IdentityHash2) {\n      const _hashes = /* @__PURE__ */ new WeakMap();\n      let pool = 0;\n      function of(obj) {\n        let value = _hashes.get(obj);\n        if (value === void 0) {\n          value = ++pool;\n          _hashes.set(obj, value);\n        }\n        return value;\n      }\n      IdentityHash2.of = of;\n    })(IdentityHash || (IdentityHash = {}));\n    NullDebounceInformation = class {\n      constructor(_default) {\n        this._default = _default;\n      }\n      get(_model) {\n        return this._default;\n      }\n      update(_model, _value) {\n        return this._default;\n      }\n      default() {\n        return this._default;\n      }\n    };\n    FeatureDebounceInformation = class {\n      constructor(_logService, _name, _registry2, _default, _min, _max) {\n        this._logService = _logService;\n        this._name = _name;\n        this._registry = _registry2;\n        this._default = _default;\n        this._min = _min;\n        this._max = _max;\n        this._cache = new LRUCache(50, 0.7);\n      }\n      _key(model) {\n        return model.id + this._registry.all(model).reduce((hashVal, obj) =\u003e doHash(IdentityHash.of(obj), hashVal), 0);\n      }\n      get(model) {\n        const key = this._key(model);\n        const avg = this._cache.get(key);\n        return avg ? clamp(avg.value, this._min, this._max) : this.default();\n      }\n      update(model, value) {\n        const key = this._key(model);\n        let avg = this._cache.get(key);\n        if (!avg) {\n          avg = new SlidingWindowAverage(6);\n          this._cache.set(key, avg);\n        }\n        const newValue = clamp(avg.update(value), this._min, this._max);\n        if (!matchesScheme(model.uri, \"output\")) {\n          this._logService.trace(`[DEBOUNCE: ${this._name}] for ${model.uri.toString()} is ${newValue}ms`);\n        }\n        return newValue;\n      }\n      _overall() {\n        const result = new MovingAverage();\n        for (const [, avg] of this._cache) {\n          result.update(avg.value);\n        }\n        return result.value;\n      }\n      default() {\n        const value = this._overall() | 0 || this._default;\n        return clamp(value, this._min, this._max);\n      }\n    };\n    LanguageFeatureDebounceService = class LanguageFeatureDebounceService2 {\n      constructor(_logService, envService) {\n        this._logService = _logService;\n        this._data = /* @__PURE__ */ new Map();\n        this._isDev = envService.isExtensionDevelopment || !envService.isBuilt;\n      }\n      for(feature, name, config) {\n        const min = config?.min ?? 50;\n        const max = config?.max ?? min ** 2;\n        const extra = config?.key ?? void 0;\n        const key = `${IdentityHash.of(feature)},${min}${extra ? \",\" + extra : \"\"}`;\n        let info = this._data.get(key);\n        if (!info) {\n          if (this._isDev) {\n            this._logService.debug(`[DEBOUNCE: ${name}] is disabled in developed mode`);\n            info = new NullDebounceInformation(min * 1.5);\n          } else {\n            info = new FeatureDebounceInformation(\n              this._logService,\n              name,\n              feature,\n              this._overallAverage() | 0 || min * 1.5,\n              // default is overall default or derived from min-value\n              min,\n              max\n            );\n          }\n          this._data.set(key, info);\n        }\n        return info;\n      }\n      _overallAverage() {\n        const result = new MovingAverage();\n        for (const info of this._data.values()) {\n          result.update(info.default());\n        }\n        return result.value;\n      }\n    };\n    LanguageFeatureDebounceService = __decorate57([\n      __param52(0, ILogService),\n      __param52(1, IEnvironmentService)\n    ], LanguageFeatureDebounceService);\n    registerSingleton(\n      ILanguageFeatureDebounceService,\n      LanguageFeatureDebounceService,\n      1\n      /* InstantiationType.Delayed */\n    );\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/documentSymbols/browser/outlineModel.js\nvar __decorate90, __param84, TreeElement, OutlineElement, OutlineGroup, OutlineModel, IOutlineModelService, OutlineModelService;\nvar init_outlineModel = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/documentSymbols/browser/outlineModel.js\"() {\n    init_arrays();\n    init_cancellation();\n    init_errors();\n    init_iterator();\n    init_map();\n    init_position();\n    init_range();\n    init_languageFeatureDebounce();\n    init_instantiation();\n    init_extensions();\n    init_model();\n    init_lifecycle();\n    init_languageFeatures();\n    __decorate90 = function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    __param84 = function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    TreeElement = class {\n      remove() {\n        this.parent?.children.delete(this.id);\n      }\n      static findId(candidate, container) {\n        let candidateId;\n        if (typeof candidate === \"string\") {\n          candidateId = `${container.id}/${candidate}`;\n        } else {\n          candidateId = `${container.id}/${candidate.name}`;\n          if (container.children.get(candidateId) !== void 0) {\n            candidateId = `${container.id}/${candidate.name}_${candidate.range.startLineNumber}_${candidate.range.startColumn}`;\n          }\n        }\n        let id = candidateId;\n        for (let i2 = 0; container.children.get(id) !== void 0; i2++) {\n          id = `${candidateId}_${i2}`;\n        }\n        return id;\n      }\n      static empty(element) {\n        return element.children.size === 0;\n      }\n    };\n    OutlineElement = class extends TreeElement {\n      constructor(id, parent, symbol) {\n        super();\n        this.id = id;\n        this.parent = parent;\n        this.symbol = symbol;\n        this.children = /* @__PURE__ */ new Map();\n      }\n    };\n    OutlineGroup = class extends TreeElement {\n      constructor(id, parent, label, order) {\n        super();\n        this.id = id;\n        this.parent = parent;\n        this.label = label;\n        this.order = order;\n        this.children = /* @__PURE__ */ new Map();\n      }\n    };\n    OutlineModel = class _OutlineModel extends TreeElement {\n      static create(registry, textModel, token) {\n        const cts = new CancellationTokenSource(token);\n        const result = new _OutlineModel(textModel.uri);\n        const provider = registry.ordered(textModel);\n        const promises = provider.map((provider2, index) =\u003e {\n          const id = TreeElement.findId(`provider_${index}`, result);\n          const group = new OutlineGroup(id, result, provider2.displayName ?? \"Unknown Outline Provider\", index);\n          return Promise.resolve(provider2.provideDocumentSymbols(textModel, cts.token)).then((result2) =\u003e {\n            for (const info of result2 || []) {\n              _OutlineModel._makeOutlineElement(info, group);\n            }\n            return group;\n          }, (err) =\u003e {\n            onUnexpectedExternalError(err);\n            return group;\n          }).then((group2) =\u003e {\n            if (!TreeElement.empty(group2)) {\n              result._groups.set(id, group2);\n            } else {\n              group2.remove();\n            }\n          });\n        });\n        const listener = registry.onDidChange(() =\u003e {\n          const newProvider = registry.ordered(textModel);\n          if (!equals(newProvider, provider)) {\n            cts.cancel();\n          }\n        });\n        return Promise.all(promises).then(() =\u003e {\n          if (cts.token.isCancellationRequested \u0026\u0026 !token.isCancellationRequested) {\n            return _OutlineModel.create(registry, textModel, token);\n          } else {\n            return result._compact();\n          }\n        }).finally(() =\u003e {\n          cts.dispose();\n          listener.dispose();\n          cts.dispose();\n        });\n      }\n      static _makeOutlineElement(info, container) {\n        const id = TreeElement.findId(info, container);\n        const res = new OutlineElement(id, container, info);\n        if (info.children) {\n          for (const childInfo of info.children) {\n            _OutlineModel._makeOutlineElement(childInfo, res);\n          }\n        }\n        container.children.set(res.id, res);\n      }\n      constructor(uri) {\n        super();\n        this.uri = uri;\n        this.id = \"root\";\n        this.parent = void 0;\n        this._groups = /* @__PURE__ */ new Map();\n        this.children = /* @__PURE__ */ new Map();\n        this.id = \"root\";\n        this.parent = void 0;\n      }\n      _compact() {\n        let count = 0;\n        for (const [key, group] of this._groups) {\n          if (group.children.size === 0) {\n            this._groups.delete(key);\n          } else {\n            count += 1;\n          }\n        }\n        if (count !== 1) {\n          this.children = this._groups;\n        } else {\n          const group = Iterable.first(this._groups.values());\n          for (const [, child] of group.children) {\n            child.parent = this;\n            this.children.set(child.id, child);\n          }\n        }\n        return this;\n      }\n      getTopLevelSymbols() {\n        const roots = [];\n        for (const child of this.children.values()) {\n          if (child instanceof OutlineElement) {\n            roots.push(child.symbol);\n          } else {\n            roots.push(...Iterable.map(child.children.values(), (child2) =\u003e child2.symbol));\n          }\n        }\n        return roots.sort((a, b) =\u003e Range.compareRangesUsingStarts(a.range, b.range));\n      }\n      asListOfDocumentSymbols() {\n        const roots = this.getTopLevelSymbols();\n        const bucket = [];\n        _OutlineModel._flattenDocumentSymbols(bucket, roots, \"\");\n        return bucket.sort((a, b) =\u003e Position.compare(Range.getStartPosition(a.range), Range.getStartPosition(b.range)) || Position.compare(Range.getEndPosition(b.range), Range.getEndPosition(a.range)));\n      }\n      static _flattenDocumentSymbols(bucket, entries2, overrideContainerLabel) {\n        for (const entry of entries2) {\n          bucket.push({\n            kind: entry.kind,\n            tags: entry.tags,\n            name: entry.name,\n            detail: entry.detail,\n            containerName: entry.containerName || overrideContainerLabel,\n            range: entry.range,\n            selectionRange: entry.selectionRange,\n            children: void 0\n            // we flatten it...\n          });\n          if (entry.children) {\n            _OutlineModel._flattenDocumentSymbols(bucket, entry.children, entry.name);\n          }\n        }\n      }\n    };\n    IOutlineModelService = createDecorator(\"IOutlineModelService\");\n    OutlineModelService = class OutlineModelService2 {\n      constructor(_languageFeaturesService, debounces, modelService) {\n        this._languageFeaturesService = _languageFeaturesService;\n        this._disposables = new DisposableStore();\n        this._cache = new LRUCache(15, 0.7);\n        this._debounceInformation = debounces.for(_languageFeaturesService.documentSymbolProvider, \"DocumentSymbols\", { min: 350 });\n        this._disposables.add(modelService.onModelRemoved((textModel) =\u003e {\n          this._cache.delete(textModel.id);\n        }));\n      }\n      dispose() {\n        this._disposables.dispose();\n      }\n      async getOrCreate(textModel, token) {\n        const registry = this._languageFeaturesService.documentSymbolProvider;\n        const provider = registry.ordered(textModel);\n        let data = this._cache.get(textModel.id);\n        if (!data || data.versionId !== textModel.getVersionId() || !equals(data.provider, provider)) {\n          const source = new CancellationTokenSource();\n          data = {\n            versionId: textModel.getVersionId(),\n            provider,\n            promiseCnt: 0,\n            source,\n            promise: OutlineModel.create(registry, textModel, source.token),\n            model: void 0\n          };\n          this._cache.set(textModel.id, data);\n          const now = Date.now();\n          data.promise.then((outlineModel) =\u003e {\n            data.model = outlineModel;\n            this._debounceInformation.update(textModel, Date.now() - now);\n          }).catch((_err) =\u003e {\n            this._cache.delete(textModel.id);\n          });\n        }\n        if (data.model) {\n          return data.model;\n        }\n        data.promiseCnt += 1;\n        const listener = token.onCancellationRequested(() =\u003e {\n          if (--data.promiseCnt === 0) {\n            data.source.cancel();\n            this._cache.delete(textModel.id);\n          }\n        });\n        try {\n          return await data.promise;\n        } finally {\n          listener.dispose();\n        }\n      }\n    };\n    OutlineModelService = __decorate90([\n      __param84(0, ILanguageFeaturesService),\n      __param84(1, ILanguageFeatureDebounceService),\n      __param84(2, IModelService)\n    ], OutlineModelService);\n    registerSingleton(\n      IOutlineModelService,\n      OutlineModelService,\n      1\n      /* InstantiationType.Delayed */\n    );\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplaceCommand.js\nvar InPlaceReplaceCommand;\nvar init_inPlaceReplaceCommand = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplaceCommand.js\"() {\n    init_selection();\n    InPlaceReplaceCommand = class {\n      constructor(editRange, originalSelection, text2) {\n        this._editRange = editRange;\n        this._originalSelection = originalSelection;\n        this._text = text2;\n      }\n      getEditOperations(model, builder) {\n        builder.addTrackedEditOperation(this._editRange, this._text);\n      }\n      computeCursorState(model, helper) {\n        const inverseEditOperations = helper.getInverseEditOperations();\n        const srcRange = inverseEditOperations[0].range;\n        if (!this._originalSelection.isEmpty()) {\n          return new Selection(srcRange.endLineNumber, srcRange.endColumn - this._text.length, srcRange.endLineNumber, srcRange.endColumn);\n        }\n        return new Selection(srcRange.endLineNumber, Math.min(this._originalSelection.positionColumn, srcRange.endColumn), srcRange.endLineNumber, Math.min(this._originalSelection.positionColumn, srcRange.endColumn));\n      }\n    };\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.css\nvar init_inPlaceReplace = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.css\"() {\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js\nvar require_inPlaceReplace = __commonJS({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js\"(exports) {\n    init_async();\n    init_errors();\n    init_editorState();\n    init_editorExtensions();\n    init_range();\n    init_selection();\n    init_editorContextKeys();\n    init_textModel();\n    init_editorWorker();\n    init_nls();\n    init_inPlaceReplaceCommand();\n    init_inPlaceReplace();\n    var __decorate194 = exports \u0026\u0026 exports.__decorate || function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    var __param187 = exports \u0026\u0026 exports.__param || function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    var InPlaceReplaceController_1;\n    var InPlaceReplaceController = class InPlaceReplaceController {\n      static {\n        InPlaceReplaceController_1 = this;\n      }\n      static {\n        this.ID = \"editor.contrib.inPlaceReplaceController\";\n      }\n      static get(editor2) {\n        return editor2.getContribution(InPlaceReplaceController_1.ID);\n      }\n      static {\n        this.DECORATION = ModelDecorationOptions.register({\n          description: \"in-place-replace\",\n          className: \"valueSetReplacement\"\n        });\n      }\n      constructor(editor2, editorWorkerService) {\n        this.editor = editor2;\n        this.editorWorkerService = editorWorkerService;\n        this.decorations = this.editor.createDecorationsCollection();\n      }\n      dispose() {\n      }\n      run(source, up) {\n        this.currentRequest?.cancel();\n        const editorSelection = this.editor.getSelection();\n        const model = this.editor.getModel();\n        if (!model || !editorSelection) {\n          return void 0;\n        }\n        let selection = editorSelection;\n        if (selection.startLineNumber !== selection.endLineNumber) {\n          return void 0;\n        }\n        const state = new EditorState(\n          this.editor,\n          1 | 4\n          /* CodeEditorStateFlag.Position */\n        );\n        const modelURI = model.uri;\n        if (!this.editorWorkerService.canNavigateValueSet(modelURI)) {\n          return Promise.resolve(void 0);\n        }\n        this.currentRequest = createCancelablePromise((token) =\u003e this.editorWorkerService.navigateValueSet(modelURI, selection, up));\n        return this.currentRequest.then((result) =\u003e {\n          if (!result || !result.range || !result.value) {\n            return;\n          }\n          if (!state.validate(this.editor)) {\n            return;\n          }\n          const editRange = Range.lift(result.range);\n          let highlightRange = result.range;\n          const diff = result.value.length - (selection.endColumn - selection.startColumn);\n          highlightRange = {\n            startLineNumber: highlightRange.startLineNumber,\n            startColumn: highlightRange.startColumn,\n            endLineNumber: highlightRange.endLineNumber,\n            endColumn: highlightRange.startColumn + result.value.length\n          };\n          if (diff \u003e 1) {\n            selection = new Selection(selection.startLineNumber, selection.startColumn, selection.endLineNumber, selection.endColumn + diff - 1);\n          }\n          const command = new InPlaceReplaceCommand(editRange, selection, result.value);\n          this.editor.pushUndoStop();\n          this.editor.executeCommand(source, command);\n          this.editor.pushUndoStop();\n          this.decorations.set([{\n            range: highlightRange,\n            options: InPlaceReplaceController_1.DECORATION\n          }]);\n          this.decorationRemover?.cancel();\n          this.decorationRemover = timeout(350);\n          this.decorationRemover.then(() =\u003e this.decorations.clear()).catch(onUnexpectedError);\n        }).catch(onUnexpectedError);\n      }\n    };\n    InPlaceReplaceController = InPlaceReplaceController_1 = __decorate194([\n      __param187(1, IEditorWorkerService)\n    ], InPlaceReplaceController);\n    var InPlaceReplaceUp = class extends EditorAction {\n      constructor() {\n        super({\n          id: \"editor.action.inPlaceReplace.up\",\n          label: localize2(1227, \"Replace with Previous Value\"),\n          precondition: EditorContextKeys.writable,\n          kbOpts: {\n            kbExpr: EditorContextKeys.editorTextFocus,\n            primary: 2048 | 1024 | 87,\n            weight: 100\n            /* KeybindingWeight.EditorContrib */\n          }\n        });\n      }\n      run(accessor, editor2) {\n        const controller = InPlaceReplaceController.get(editor2);\n        if (!controller) {\n          return Promise.resolve(void 0);\n        }\n        return controller.run(this.id, false);\n      }\n    };\n    var InPlaceReplaceDown = class extends EditorAction {\n      constructor() {\n        super({\n          id: \"editor.action.inPlaceReplace.down\",\n          label: localize2(1228, \"Replace with Next Value\"),\n          precondition: EditorContextKeys.writable,\n          kbOpts: {\n            kbExpr: EditorContextKeys.editorTextFocus,\n            primary: 2048 | 1024 | 89,\n            weight: 100\n            /* KeybindingWeight.EditorContrib */\n          }\n        });\n      }\n      run(accessor, editor2) {\n        const controller = InPlaceReplaceController.get(editor2);\n        if (!controller) {\n          return Promise.resolve(void 0);\n        }\n        return controller.run(this.id, true);\n      }\n    };\n    registerEditorContribution(\n      InPlaceReplaceController.ID,\n      InPlaceReplaceController,\n      4\n      /* EditorContributionInstantiation.Lazy */\n    );\n    registerEditorAction(InPlaceReplaceUp);\n    registerEditorAction(InPlaceReplaceDown);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js\nvar require_contribution = __commonJS({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js\"(exports) {\n    init_arrays();\n    init_observable();\n    init_hideUnchangedRegionsFeature();\n    init_utils5();\n    init_languageFeatures();\n    init_outlineModel();\n    init_lifecycle();\n    init_event();\n    var __decorate194 = exports \u0026\u0026 exports.__decorate || function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    var __param187 = exports \u0026\u0026 exports.__param || function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    var DiffEditorBreadcrumbsSource = class DiffEditorBreadcrumbsSource extends Disposable {\n      constructor(_textModel, _languageFeaturesService, _outlineModelService) {\n        super();\n        this._textModel = _textModel;\n        this._languageFeaturesService = _languageFeaturesService;\n        this._outlineModelService = _outlineModelService;\n        this._currentModel = observableValue(this, void 0);\n        const documentSymbolProviderChanged = observableSignalFromEvent(\"documentSymbolProvider.onDidChange\", this._languageFeaturesService.documentSymbolProvider.onDidChange);\n        const textModelChanged = observableSignalFromEvent(\"_textModel.onDidChangeContent\", Event.debounce((e) =\u003e this._textModel.onDidChangeContent(e), () =\u003e void 0, 100));\n        this._register(autorunWithStore(async (reader, store) =\u003e {\n          documentSymbolProviderChanged.read(reader);\n          textModelChanged.read(reader);\n          const src = store.add(new DisposableCancellationTokenSource());\n          const model = await this._outlineModelService.getOrCreate(this._textModel, src.token);\n          if (store.isDisposed) {\n            return;\n          }\n          this._currentModel.set(model, void 0);\n        }));\n      }\n      getBreadcrumbItems(startRange, reader) {\n        const m = this._currentModel.read(reader);\n        if (!m) {\n          return [];\n        }\n        const symbols = m.asListOfDocumentSymbols().filter((s) =\u003e startRange.contains(s.range.startLineNumber) \u0026\u0026 !startRange.contains(s.range.endLineNumber));\n        symbols.sort(reverseOrder(compareBy((s) =\u003e s.range.endLineNumber - s.range.startLineNumber, numberComparator)));\n        return symbols.map((s) =\u003e ({ name: s.name, kind: s.kind, startLineNumber: s.range.startLineNumber }));\n      }\n    };\n    DiffEditorBreadcrumbsSource = __decorate194([\n      __param187(1, ILanguageFeaturesService),\n      __param187(2, IOutlineModelService)\n    ], DiffEditorBreadcrumbsSource);\n    HideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((textModel, instantiationService) =\u003e {\n      return instantiationService.createInstance(DiffEditorBreadcrumbsSource, textModel);\n    });\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/standaloneStrings.js\nvar InspectTokensNLS, GoToLineNLS, QuickHelpNLS, QuickCommandNLS, QuickOutlineNLS, StandaloneCodeEditorNLS, ToggleHighContrastNLS, StandaloneServicesNLS;\nvar init_standaloneStrings = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/standaloneStrings.js\"() {\n    init_nls();\n    (function(InspectTokensNLS2) {\n      InspectTokensNLS2.inspectTokensAction = localize(779, \"Developer: Inspect Tokens\");\n    })(InspectTokensNLS || (InspectTokensNLS = {}));\n    (function(GoToLineNLS2) {\n      GoToLineNLS2.gotoLineActionLabel = localize(780, \"Go to Line/Column...\");\n    })(GoToLineNLS || (GoToLineNLS = {}));\n    (function(QuickHelpNLS2) {\n      QuickHelpNLS2.helpQuickAccessActionLabel = localize(781, \"Show all Quick Access Providers\");\n    })(QuickHelpNLS || (QuickHelpNLS = {}));\n    (function(QuickCommandNLS2) {\n      QuickCommandNLS2.quickCommandActionLabel = localize(782, \"Command Palette\");\n      QuickCommandNLS2.quickCommandHelp = localize(783, \"Show And Run Commands\");\n    })(QuickCommandNLS || (QuickCommandNLS = {}));\n    (function(QuickOutlineNLS2) {\n      QuickOutlineNLS2.quickOutlineActionLabel = localize(784, \"Go to Symbol...\");\n      QuickOutlineNLS2.quickOutlineByCategoryActionLabel = localize(785, \"Go to Symbol by Category...\");\n    })(QuickOutlineNLS || (QuickOutlineNLS = {}));\n    (function(StandaloneCodeEditorNLS2) {\n      StandaloneCodeEditorNLS2.editorViewAccessibleLabel = localize(786, \"Editor content\");\n    })(StandaloneCodeEditorNLS || (StandaloneCodeEditorNLS = {}));\n    (function(ToggleHighContrastNLS2) {\n      ToggleHighContrastNLS2.toggleHighContrast = localize(787, \"Toggle High Contrast Theme\");\n    })(ToggleHighContrastNLS || (ToggleHighContrastNLS = {}));\n    (function(StandaloneServicesNLS2) {\n      StandaloneServicesNLS2.bulkEditServiceSummary = localize(788, \"Made {0} edits in {1} files\");\n    })(StandaloneServicesNLS || (StandaloneServicesNLS = {}));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.css\nvar init_inspectTokens = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.css\"() {\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/common/standaloneTheme.js\nvar IStandaloneThemeService;\nvar init_standaloneTheme = __esm({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/common/standaloneTheme.js\"() {\n    init_instantiation();\n    IStandaloneThemeService = createDecorator(\"themeService\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js\nvar require_inspectTokens = __commonJS({\n  \"node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js\"(exports) {\n    init_inspectTokens();\n    init_dom();\n    init_color();\n    init_lifecycle();\n    init_editorExtensions();\n    init_languages();\n    init_encodedTokenAttributes();\n    init_nullTokenize();\n    init_language();\n    init_standaloneTheme();\n    init_standaloneStrings();\n    var __decorate194 = exports \u0026\u0026 exports.__decorate || function(decorators, target, key, desc) {\n      var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n      if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n      else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n      return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n    };\n    var __param187 = exports \u0026\u0026 exports.__param || function(paramIndex, decorator) {\n      return function(target, key) {\n        decorator(target, key, paramIndex);\n      };\n    };\n    var InspectTokensController_1;\n    var InspectTokensController = class InspectTokensController extends Disposable {\n      static {\n        InspectTokensController_1 = this;\n      }\n      static {\n        this.ID = \"editor.contrib.inspectTokens\";\n      }\n      static get(editor2) {\n        return editor2.getContribution(InspectTokensController_1.ID);\n      }\n      constructor(editor2, standaloneColorService, languageService) {\n        super();\n        this._editor = editor2;\n        this._languageService = languageService;\n        this._widget = null;\n        this._register(this._editor.onDidChangeModel((e) =\u003e this.stop()));\n        this._register(this._editor.onDidChangeModelLanguage((e) =\u003e this.stop()));\n        this._register(TokenizationRegistry2.onDidChange((e) =\u003e this.stop()));\n        this._register(this._editor.onKeyUp((e) =\u003e e.keyCode === 9 \u0026\u0026 this.stop()));\n      }\n      dispose() {\n        this.stop();\n        super.dispose();\n      }\n      launch() {\n        if (this._widget) {\n          return;\n        }\n        if (!this._editor.hasModel()) {\n          return;\n        }\n        this._widget = new InspectTokensWidget(this._editor, this._languageService);\n      }\n      stop() {\n        if (this._widget) {\n          this._widget.dispose();\n          this._widget = null;\n        }\n      }\n    };\n    InspectTokensController = InspectTokensController_1 = __decorate194([\n      __param187(1, IStandaloneThemeService),\n      __param187(2, ILanguageService)\n    ], InspectTokensController);\n    var InspectTokens = class extends EditorAction {\n      constructor() {\n        super({\n          id: \"editor.action.inspectTokens\",\n          label: InspectTokensNLS.inspectTokensAction,\n          alias: \"Developer: Inspect Tokens\",\n          precondition: void 0\n        });\n      }\n      run(accessor, editor2) {\n        const controller = InspectTokensController.get(editor2);\n        controller?.launch();\n      }\n    };\n    function renderTokenText(tokenText) {\n      let result = \"\";\n      for (let charIndex = 0, len = tokenText.length; charIndex \u003c len; charIndex++) {\n        const charCode = tokenText.charCodeAt(charIndex);\n        switch (charCode) {\n          case 9:\n            result += \"\\u2192\";\n            break;\n          case 32:\n            result += \"\\xB7\";\n            break;\n          default:\n            result += String.fromCharCode(charCode);\n        }\n      }\n      return result;\n    }\n    function getSafeTokenizationSupport2(languageIdCodec, languageId) {\n      const tokenizationSupport = TokenizationRegistry2.get(languageId);\n      if (tokenizationSupport) {\n        return tokenizationSupport;\n      }\n      const encodedLanguageId = languageIdCodec.encodeLanguageId(languageId);\n      return {\n        getInitialState: () =\u003e NullState,\n        tokenize: (line, hasEOL, state) =\u003e nullTokenize(languageId, state),\n        tokenizeEncoded: (line, hasEOL, state) =\u003e nullTokenizeEncoded(encodedLanguageId, state)\n      };\n    }\n    var InspectTokensWidget = class _InspectTokensWidget extends Disposable {\n      static {\n        this._ID = \"editor.contrib.inspectTokensWidget\";\n      }\n      constructor(editor2, languageService) {\n        super();\n        this.allowEditorOverflow = true;\n        this._editor = editor2;\n        this._languageService = languageService;\n        this._model = this._editor.getModel();\n        this._domNode = document.createElement(\"div\");\n        this._domNode.className = \"tokens-inspect-widget\";\n        this._tokenizationSupport = getSafeTokenizationSupport2(this._languageService.languageIdCodec, this._model.getLanguageId());\n        this._compute(this._editor.getPosition());\n        this._register(this._editor.onDidChangeCursorPosition((e) =\u003e this._compute(this._editor.getPosition())));\n        this._editor.addContentWidget(this);\n      }\n      dispose() {\n        this._editor.removeContentWidget(this);\n        super.dispose();\n      }\n      getId() {\n        return _InspectTokensWidget._ID;\n      }\n      _compute(position) {\n        const data = this._getTokensAtLine(position.lineNumber);\n        let token1Index = 0;\n        for (let i2 = data.tokens1.length - 1; i2 \u003e= 0; i2--) {\n          const t = data.tokens1[i2];\n          if (position.column - 1 \u003e= t.offset) {\n            token1Index = i2;\n            break;\n          }\n        }\n        let token2Index = 0;\n        for (let i2 = data.tokens2.length \u003e\u003e\u003e 1; i2 \u003e= 0; i2--) {\n          if (position.column - 1 \u003e= data.tokens2[i2 \u003c\u003c 1]) {\n            token2Index = i2;\n            break;\n          }\n        }\n        const lineContent = this._model.getLineContent(position.lineNumber);\n        let tokenText = \"\";\n        if (token1Index \u003c data.tokens1.length) {\n          const tokenStartIndex = data.tokens1[token1Index].offset;\n          const tokenEndIndex = token1Index + 1 \u003c data.tokens1.length ? data.tokens1[token1Index + 1].offset : lineContent.length;\n          tokenText = lineContent.substring(tokenStartIndex, tokenEndIndex);\n        }\n        reset(this._domNode, $(\"h2.tm-token\", void 0, renderTokenText(tokenText), $(\"span.tm-token-length\", void 0, `${tokenText.length} ${tokenText.length === 1 ? \"char\" : \"chars\"}`)));\n        append(this._domNode, $(\"hr.tokens-inspect-separator\", { \"style\": \"clear:both\" }));\n        const metadata = (token2Index \u003c\u003c 1) + 1 \u003c data.tokens2.length ? this._decodeMetadata(data.tokens2[(token2Index \u003c\u003c 1) + 1]) : null;\n        append(this._domNode, $(\"table.tm-metadata-table\", void 0, $(\"tbody\", void 0, $(\"tr\", void 0, $(\"td.tm-metadata-key\", void 0, \"language\"), $(\"td.tm-metadata-value\", void 0, `${metadata ? metadata.languageId : \"-?-\"}`)), $(\"tr\", void 0, $(\"td.tm-metadata-key\", void 0, \"token type\"), $(\"td.tm-metadata-value\", void 0, `${metadata ? this._tokenTypeToString(metadata.tokenType) : \"-?-\"}`)), $(\"tr\", void 0, $(\"td.tm-metadata-key\", void 0, \"font style\"), $(\"td.tm-metadata-value\", void 0, `${metadata ? this._fontStyleToString(metadata.fontStyle) : \"-?-\"}`)), $(\"tr\", void 0, $(\"td.tm-metadata-key\", void 0, \"foreground\"), $(\"td.tm-metadata-value\", void 0, `${metadata ? Color.Format.CSS.formatHex(metadata.foreground) : \"-?-\"}`)), $(\"tr\", void 0, $(\"td.tm-metadata-key\", void 0, \"background\"), $(\"td.tm-metadata-value\", void 0, `${metadata ? Color.Format.CSS.formatHex(metadata.background) : \"-?-\"}`)))));\n        append(this._domNode, $(\"hr.tokens-inspect-separator\"));\n        if (token1Index \u003c data.tokens1.length) {\n          append(this._domNode, $(\"span.tm-token-type\", void 0, data.tokens1[token1Index].type));\n        }\n        this._editor.layoutContentWidget(this);\n      }\n      _decodeMetadata(metadata) {\n        const colorMap = TokenizationRegistry2.getColorMap();\n        const languageId = TokenMetadata.getLanguageId(metadata);\n        const tokenType = TokenMetadata.getTokenType(metadata);\n        const fontStyle = TokenMetadata.getFontStyle(metadata);\n        const foreground2 = TokenMetadata.getForeground(metadata);\n        const background = TokenMetadata.getBackground(metadata);\n        return {\n          languageId: this._languageService.languageIdCodec.decodeLanguageId(languageId),\n          tokenType,\n          fontStyle,\n          foreground: colorMap[foreground2],\n          background: colorMap[background]\n        };\n      }\n      _tokenTypeToString(tokenType) {\n        switch (tokenType) {\n          case 0:\n            return \"Other\";\n          case 1:\n            return \"Comment\";\n          case 2:\n            return \"String\";\n          case 3:\n            return \"RegEx\";\n          default:\n            return \"??\";\n        }\n      }\n      _fontStyleToString(fontStyle) {\n        let r = \"\";\n        if (fontStyle \u0026 1) {\n          r += \"italic \";\n        }\n        if (fontStyle \u0026 2) {\n          r += \"bold \";\n        }\n        if (fontStyle \u0026 4) {\n          r += \"underline \";\n        }\n        if (fontStyle \u0026 8) {\n          r += \"strikethrough \";\n        }\n        if (r.length === 0) {\n          r = \"---\";\n        }\n        return r;\n      }\n      _getTokensAtLine(lineNumber) {\n        const stateBeforeLine = this._getStateBeforeLine(lineNumber);\n        const tokenizationResult1 = this._tokenizationSupport.tokenize(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n        const tokenizationResult2 = this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n        return {\n          startState: stateBeforeLine,\n          tokens1: tokenizationResult1.tokens,\n          tokens2: tokenizationResult2.tokens,\n          endState: tokenizationResult1.endState\n        };\n      }\n      _getStateBeforeLine(lineNumber) {\n        let state = this._tokenizationSupport.getInitialState();\n        for (let i2 = 1; i2 \u003c lineNumber; i2++) {\n          const tokenizationResult = this._tokenizationSupport.tokenize(this._model.getLineContent(i2), true, state);\n          state = tokenizationResult.endState;\n        }\n        return state;\n      }\n      getDomNode() {\n        return this._domNode;\n      }\n      getPosition() {\n        return {\n          position: this._editor.getPosition(),\n          preference: [\n            2,\n            1\n            /* ContentWidgetPositionPreference.ABOVE */\n          ]\n        };\n      }\n    };\n    registerEditorContribution(\n      InspectTokensController.ID,\n      InspectTokensController,\n      4\n      /* EditorContributionInstantiation.Lazy */\n    );\n    registerEditorAction(InspectTokens);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/coreCommands.js\ninit_nls();\ninit_browser();\ninit_types();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/aria/aria.js\ninit_dom();\nvar MAX_MESSAGE_LENGTH = 2e4;\nvar ariaContainer;\nvar alertContainer;\nvar alertContainer2;\nvar statusContainer;\nvar statusContainer2;\nfunction setARIAContainer(parent) {\n  ariaContainer = document.createElement(\"div\");\n  ariaContainer.className = \"monaco-aria-container\";\n  const createAlertContainer = () =\u003e {\n    const element = document.createElement(\"div\");\n    element.className = \"monaco-alert\";\n    element.setAttribute(\"role\", \"alert\");\n    element.setAttribute(\"aria-atomic\", \"true\");\n    ariaContainer.appendChild(element);\n    return element;\n  };\n  alertContainer = createAlertContainer();\n  alertContainer2 = createAlertContainer();\n  const createStatusContainer = () =\u003e {\n    const element = document.createElement(\"div\");\n    element.className = \"monaco-status\";\n    element.setAttribute(\"aria-live\", \"polite\");\n    element.setAttribute(\"aria-atomic\", \"true\");\n    ariaContainer.appendChild(element);\n    return element;\n  };\n  statusContainer = createStatusContainer();\n  statusContainer2 = createStatusContainer();\n  parent.appendChild(ariaContainer);\n}\nfunction alert(msg) {\n  if (!ariaContainer) {\n    return;\n  }\n  if (alertContainer.textContent !== msg) {\n    clearNode(alertContainer2);\n    insertMessage(alertContainer, msg);\n  } else {\n    clearNode(alertContainer);\n    insertMessage(alertContainer2, msg);\n  }\n}\nfunction status(msg) {\n  if (!ariaContainer) {\n    return;\n  }\n  if (statusContainer.textContent !== msg) {\n    clearNode(statusContainer2);\n    insertMessage(statusContainer, msg);\n  } else {\n    clearNode(statusContainer);\n    insertMessage(statusContainer2, msg);\n  }\n}\nfunction insertMessage(target, msg) {\n  clearNode(target);\n  if (msg.length \u003e MAX_MESSAGE_LENGTH) {\n    msg = msg.substr(0, MAX_MESSAGE_LENGTH);\n  }\n  target.textContent = msg;\n  target.style.visibility = \"hidden\";\n  target.style.visibility = \"visible\";\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/coreCommands.js\ninit_editorExtensions();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursorCommon.js\ninit_position();\ninit_range();\ninit_selection();\ninit_supports();\ninit_cursorColumns();\ninit_indentation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/inputMode.js\ninit_event();\nvar InputModeImpl = class {\n  constructor() {\n    this._inputMode = \"insert\";\n    this._onDidChangeInputMode = new Emitter();\n    this.onDidChangeInputMode = this._onDidChangeInputMode.event;\n  }\n  getInputMode() {\n    return this._inputMode;\n  }\n};\nvar InputMode = new InputModeImpl();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursorCommon.js\nvar autoCloseAlways = () =\u003e true;\nvar autoCloseNever = () =\u003e false;\nvar autoCloseBeforeWhitespace = (chr) =\u003e chr === \" \" || chr === \"\t\";\nvar CursorConfiguration = class {\n  static shouldRecreate(e) {\n    return e.hasChanged(\n      164\n      /* EditorOption.layoutInfo */\n    ) || e.hasChanged(\n      147\n      /* EditorOption.wordSeparators */\n    ) || e.hasChanged(\n      45\n      /* EditorOption.emptySelectionClipboard */\n    ) || e.hasChanged(\n      85\n      /* EditorOption.multiCursorMergeOverlapping */\n    ) || e.hasChanged(\n      87\n      /* EditorOption.multiCursorPaste */\n    ) || e.hasChanged(\n      88\n      /* EditorOption.multiCursorLimit */\n    ) || e.hasChanged(\n      10\n      /* EditorOption.autoClosingBrackets */\n    ) || e.hasChanged(\n      11\n      /* EditorOption.autoClosingComments */\n    ) || e.hasChanged(\n      15\n      /* EditorOption.autoClosingQuotes */\n    ) || e.hasChanged(\n      13\n      /* EditorOption.autoClosingDelete */\n    ) || e.hasChanged(\n      14\n      /* EditorOption.autoClosingOvertype */\n    ) || e.hasChanged(\n      20\n      /* EditorOption.autoSurround */\n    ) || e.hasChanged(\n      144\n      /* EditorOption.useTabStops */\n    ) || e.hasChanged(\n      140\n      /* EditorOption.trimWhitespaceOnDelete */\n    ) || e.hasChanged(\n      59\n      /* EditorOption.fontInfo */\n    ) || e.hasChanged(\n      103\n      /* EditorOption.readOnly */\n    ) || e.hasChanged(\n      146\n      /* EditorOption.wordSegmenterLocales */\n    ) || e.hasChanged(\n      92\n      /* EditorOption.overtypeOnPaste */\n    );\n  }\n  constructor(languageId, modelOptions, configuration, languageConfigurationService) {\n    this.languageConfigurationService = languageConfigurationService;\n    this._cursorMoveConfigurationBrand = void 0;\n    this._languageId = languageId;\n    const options2 = configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this.readOnly = options2.get(\n      103\n      /* EditorOption.readOnly */\n    );\n    this.tabSize = modelOptions.tabSize;\n    this.indentSize = modelOptions.indentSize;\n    this.insertSpaces = modelOptions.insertSpaces;\n    this.stickyTabStops = options2.get(\n      131\n      /* EditorOption.stickyTabStops */\n    );\n    this.lineHeight = fontInfo.lineHeight;\n    this.typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n    this.pageSize = Math.max(1, Math.floor(layoutInfo.height / this.lineHeight) - 2);\n    this.useTabStops = options2.get(\n      144\n      /* EditorOption.useTabStops */\n    );\n    this.trimWhitespaceOnDelete = options2.get(\n      140\n      /* EditorOption.trimWhitespaceOnDelete */\n    );\n    this.wordSeparators = options2.get(\n      147\n      /* EditorOption.wordSeparators */\n    );\n    this.emptySelectionClipboard = options2.get(\n      45\n      /* EditorOption.emptySelectionClipboard */\n    );\n    this.copyWithSyntaxHighlighting = options2.get(\n      31\n      /* EditorOption.copyWithSyntaxHighlighting */\n    );\n    this.multiCursorMergeOverlapping = options2.get(\n      85\n      /* EditorOption.multiCursorMergeOverlapping */\n    );\n    this.multiCursorPaste = options2.get(\n      87\n      /* EditorOption.multiCursorPaste */\n    );\n    this.multiCursorLimit = options2.get(\n      88\n      /* EditorOption.multiCursorLimit */\n    );\n    this.autoClosingBrackets = options2.get(\n      10\n      /* EditorOption.autoClosingBrackets */\n    );\n    this.autoClosingComments = options2.get(\n      11\n      /* EditorOption.autoClosingComments */\n    );\n    this.autoClosingQuotes = options2.get(\n      15\n      /* EditorOption.autoClosingQuotes */\n    );\n    this.autoClosingDelete = options2.get(\n      13\n      /* EditorOption.autoClosingDelete */\n    );\n    this.autoClosingOvertype = options2.get(\n      14\n      /* EditorOption.autoClosingOvertype */\n    );\n    this.autoSurround = options2.get(\n      20\n      /* EditorOption.autoSurround */\n    );\n    this.autoIndent = options2.get(\n      16\n      /* EditorOption.autoIndent */\n    );\n    this.wordSegmenterLocales = options2.get(\n      146\n      /* EditorOption.wordSegmenterLocales */\n    );\n    this.overtypeOnPaste = options2.get(\n      92\n      /* EditorOption.overtypeOnPaste */\n    );\n    this.surroundingPairs = {};\n    this._electricChars = null;\n    this.shouldAutoCloseBefore = {\n      quote: this._getShouldAutoClose(languageId, this.autoClosingQuotes, true),\n      comment: this._getShouldAutoClose(languageId, this.autoClosingComments, false),\n      bracket: this._getShouldAutoClose(languageId, this.autoClosingBrackets, false)\n    };\n    this.autoClosingPairs = this.languageConfigurationService.getLanguageConfiguration(languageId).getAutoClosingPairs();\n    const surroundingPairs = this.languageConfigurationService.getLanguageConfiguration(languageId).getSurroundingPairs();\n    if (surroundingPairs) {\n      for (const pair of surroundingPairs) {\n        this.surroundingPairs[pair.open] = pair.close;\n      }\n    }\n    const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n    this.blockCommentStartToken = commentsConfiguration?.blockCommentStartToken ?? null;\n  }\n  get electricChars() {\n    if (!this._electricChars) {\n      this._electricChars = {};\n      const electricChars = this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter?.getElectricCharacters();\n      if (electricChars) {\n        for (const char of electricChars) {\n          this._electricChars[char] = true;\n        }\n      }\n    }\n    return this._electricChars;\n  }\n  get inputMode() {\n    return InputMode.getInputMode();\n  }\n  /**\n   * Should return opening bracket type to match indentation with\n   */\n  onElectricCharacter(character, context, column) {\n    const scopedLineTokens = createScopedLineTokens(context, column - 1);\n    const electricCharacterSupport = this.languageConfigurationService.getLanguageConfiguration(scopedLineTokens.languageId).electricCharacter;\n    if (!electricCharacterSupport) {\n      return null;\n    }\n    return electricCharacterSupport.onElectricCharacter(character, scopedLineTokens, column - scopedLineTokens.firstCharOffset);\n  }\n  normalizeIndentation(str) {\n    return normalizeIndentation(str, this.indentSize, this.insertSpaces);\n  }\n  _getShouldAutoClose(languageId, autoCloseConfig, forQuotes) {\n    switch (autoCloseConfig) {\n      case \"beforeWhitespace\":\n        return autoCloseBeforeWhitespace;\n      case \"languageDefined\":\n        return this._getLanguageDefinedShouldAutoClose(languageId, forQuotes);\n      case \"always\":\n        return autoCloseAlways;\n      case \"never\":\n        return autoCloseNever;\n    }\n  }\n  _getLanguageDefinedShouldAutoClose(languageId, forQuotes) {\n    const autoCloseBeforeSet = this.languageConfigurationService.getLanguageConfiguration(languageId).getAutoCloseBeforeSet(forQuotes);\n    return (c) =\u003e autoCloseBeforeSet.indexOf(c) !== -1;\n  }\n  /**\n   * Returns a visible column from a column.\n   * @see {@link CursorColumns}\n   */\n  visibleColumnFromColumn(model, position) {\n    return CursorColumns.visibleColumnFromColumn(model.getLineContent(position.lineNumber), position.column, this.tabSize);\n  }\n  /**\n   * Returns a visible column from a column.\n   * @see {@link CursorColumns}\n   */\n  columnFromVisibleColumn(model, lineNumber, visibleColumn) {\n    const result = CursorColumns.columnFromVisibleColumn(model.getLineContent(lineNumber), visibleColumn, this.tabSize);\n    const minColumn = model.getLineMinColumn(lineNumber);\n    if (result \u003c minColumn) {\n      return minColumn;\n    }\n    const maxColumn = model.getLineMaxColumn(lineNumber);\n    if (result \u003e maxColumn) {\n      return maxColumn;\n    }\n    return result;\n  }\n};\nvar CursorState = class _CursorState {\n  static fromModelState(modelState) {\n    return new PartialModelCursorState(modelState);\n  }\n  static fromViewState(viewState) {\n    return new PartialViewCursorState(viewState);\n  }\n  static fromModelSelection(modelSelection) {\n    const selection = Selection.liftSelection(modelSelection);\n    const modelState = new SingleCursorState(Range.fromPositions(selection.getSelectionStart()), 0, 0, selection.getPosition(), 0);\n    return _CursorState.fromModelState(modelState);\n  }\n  static fromModelSelections(modelSelections) {\n    const states = [];\n    for (let i2 = 0, len = modelSelections.length; i2 \u003c len; i2++) {\n      states[i2] = this.fromModelSelection(modelSelections[i2]);\n    }\n    return states;\n  }\n  constructor(modelState, viewState) {\n    this._cursorStateBrand = void 0;\n    this.modelState = modelState;\n    this.viewState = viewState;\n  }\n  equals(other) {\n    return this.viewState.equals(other.viewState) \u0026\u0026 this.modelState.equals(other.modelState);\n  }\n};\nvar PartialModelCursorState = class {\n  constructor(modelState) {\n    this.modelState = modelState;\n    this.viewState = null;\n  }\n};\nvar PartialViewCursorState = class {\n  constructor(viewState) {\n    this.modelState = null;\n    this.viewState = viewState;\n  }\n};\nvar SingleCursorState = class _SingleCursorState {\n  constructor(selectionStart, selectionStartKind, selectionStartLeftoverVisibleColumns, position, leftoverVisibleColumns) {\n    this.selectionStart = selectionStart;\n    this.selectionStartKind = selectionStartKind;\n    this.selectionStartLeftoverVisibleColumns = selectionStartLeftoverVisibleColumns;\n    this.position = position;\n    this.leftoverVisibleColumns = leftoverVisibleColumns;\n    this._singleCursorStateBrand = void 0;\n    this.selection = _SingleCursorState._computeSelection(this.selectionStart, this.position);\n  }\n  equals(other) {\n    return this.selectionStartLeftoverVisibleColumns === other.selectionStartLeftoverVisibleColumns \u0026\u0026 this.leftoverVisibleColumns === other.leftoverVisibleColumns \u0026\u0026 this.selectionStartKind === other.selectionStartKind \u0026\u0026 this.position.equals(other.position) \u0026\u0026 this.selectionStart.equalsRange(other.selectionStart);\n  }\n  hasSelection() {\n    return !this.selection.isEmpty() || !this.selectionStart.isEmpty();\n  }\n  move(inSelectionMode, lineNumber, column, leftoverVisibleColumns) {\n    if (inSelectionMode) {\n      return new _SingleCursorState(this.selectionStart, this.selectionStartKind, this.selectionStartLeftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);\n    } else {\n      return new _SingleCursorState(new Range(lineNumber, column, lineNumber, column), 0, leftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);\n    }\n  }\n  static _computeSelection(selectionStart, position) {\n    if (selectionStart.isEmpty() || !position.isBeforeOrEqual(selectionStart.getStartPosition())) {\n      return Selection.fromPositions(selectionStart.getStartPosition(), position);\n    } else {\n      return Selection.fromPositions(selectionStart.getEndPosition(), position);\n    }\n  }\n};\nvar EditOperationResult = class {\n  constructor(type, commands, opts) {\n    this._editOperationResultBrand = void 0;\n    this.type = type;\n    this.commands = commands;\n    this.shouldPushStackElementBefore = opts.shouldPushStackElementBefore;\n    this.shouldPushStackElementAfter = opts.shouldPushStackElementAfter;\n  }\n};\nfunction isQuote(ch) {\n  return ch === \"'\" || ch === '\"' || ch === \"`\";\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorColumnSelection.js\ninit_position();\ninit_range();\nvar ColumnSelection = class _ColumnSelection {\n  static columnSelect(config, model, fromLineNumber, fromVisibleColumn, toLineNumber, toVisibleColumn) {\n    const lineCount = Math.abs(toLineNumber - fromLineNumber) + 1;\n    const reversed = fromLineNumber \u003e toLineNumber;\n    const isRTL = fromVisibleColumn \u003e toVisibleColumn;\n    const isLTR = fromVisibleColumn \u003c toVisibleColumn;\n    const result = [];\n    for (let i2 = 0; i2 \u003c lineCount; i2++) {\n      const lineNumber = fromLineNumber + (reversed ? -i2 : i2);\n      const startColumn = config.columnFromVisibleColumn(model, lineNumber, fromVisibleColumn);\n      const endColumn = config.columnFromVisibleColumn(model, lineNumber, toVisibleColumn);\n      const visibleStartColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, startColumn));\n      const visibleEndColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, endColumn));\n      if (isLTR) {\n        if (visibleStartColumn \u003e toVisibleColumn) {\n          continue;\n        }\n        if (visibleEndColumn \u003c fromVisibleColumn) {\n          continue;\n        }\n      }\n      if (isRTL) {\n        if (visibleEndColumn \u003e fromVisibleColumn) {\n          continue;\n        }\n        if (visibleStartColumn \u003c toVisibleColumn) {\n          continue;\n        }\n      }\n      result.push(new SingleCursorState(new Range(lineNumber, startColumn, lineNumber, startColumn), 0, 0, new Position(lineNumber, endColumn), 0));\n    }\n    if (result.length === 0) {\n      for (let i2 = 0; i2 \u003c lineCount; i2++) {\n        const lineNumber = fromLineNumber + (reversed ? -i2 : i2);\n        const maxColumn = model.getLineMaxColumn(lineNumber);\n        result.push(new SingleCursorState(new Range(lineNumber, maxColumn, lineNumber, maxColumn), 0, 0, new Position(lineNumber, maxColumn), 0));\n      }\n    }\n    return {\n      viewStates: result,\n      reversed,\n      fromLineNumber,\n      fromVisualColumn: fromVisibleColumn,\n      toLineNumber,\n      toVisualColumn: toVisibleColumn\n    };\n  }\n  static columnSelectLeft(config, model, prevColumnSelectData) {\n    let toViewVisualColumn = prevColumnSelectData.toViewVisualColumn;\n    if (toViewVisualColumn \u003e 0) {\n      toViewVisualColumn--;\n    }\n    return _ColumnSelection.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, prevColumnSelectData.toViewLineNumber, toViewVisualColumn);\n  }\n  static columnSelectRight(config, model, prevColumnSelectData) {\n    let maxVisualViewColumn = 0;\n    const minViewLineNumber = Math.min(prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.toViewLineNumber);\n    const maxViewLineNumber = Math.max(prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.toViewLineNumber);\n    for (let lineNumber = minViewLineNumber; lineNumber \u003c= maxViewLineNumber; lineNumber++) {\n      const lineMaxViewColumn = model.getLineMaxColumn(lineNumber);\n      const lineMaxVisualViewColumn = config.visibleColumnFromColumn(model, new Position(lineNumber, lineMaxViewColumn));\n      maxVisualViewColumn = Math.max(maxVisualViewColumn, lineMaxVisualViewColumn);\n    }\n    let toViewVisualColumn = prevColumnSelectData.toViewVisualColumn;\n    if (toViewVisualColumn \u003c maxVisualViewColumn) {\n      toViewVisualColumn++;\n    }\n    return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, prevColumnSelectData.toViewLineNumber, toViewVisualColumn);\n  }\n  static columnSelectUp(config, model, prevColumnSelectData, isPaged) {\n    const linesCount = isPaged ? config.pageSize : 1;\n    const toViewLineNumber = Math.max(1, prevColumnSelectData.toViewLineNumber - linesCount);\n    return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, toViewLineNumber, prevColumnSelectData.toViewVisualColumn);\n  }\n  static columnSelectDown(config, model, prevColumnSelectData, isPaged) {\n    const linesCount = isPaged ? config.pageSize : 1;\n    const toViewLineNumber = Math.min(model.getLineCount(), prevColumnSelectData.toViewLineNumber + linesCount);\n    return this.columnSelect(config, model, prevColumnSelectData.fromViewLineNumber, prevColumnSelectData.fromViewVisualColumn, toViewLineNumber, prevColumnSelectData.toViewVisualColumn);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorDeleteOperations.js\ninit_strings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/commands/replaceCommand.js\ninit_position();\ninit_range();\ninit_selection();\nvar ReplaceCommand = class {\n  constructor(range2, text2, insertsAutoWhitespace = false) {\n    this._range = range2;\n    this._text = text2;\n    this.insertsAutoWhitespace = insertsAutoWhitespace;\n  }\n  getEditOperations(model, builder) {\n    builder.addTrackedEditOperation(this._range, this._text);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const srcRange = inverseEditOperations[0].range;\n    return Selection.fromPositions(srcRange.getEndPosition());\n  }\n};\nvar ReplaceOvertypeCommand = class {\n  constructor(range2, text2, insertsAutoWhitespace = false) {\n    this._range = range2;\n    this._text = text2;\n    this.insertsAutoWhitespace = insertsAutoWhitespace;\n  }\n  getEditOperations(model, builder) {\n    const intialStartPosition = this._range.getStartPosition();\n    const initialEndPosition = this._range.getEndPosition();\n    const initialEndLineNumber = initialEndPosition.lineNumber;\n    const offsetDelta = this._text.length + (this._range.isEmpty() ? 0 : -1);\n    let endPosition = addPositiveOffsetToModelPosition(model, initialEndPosition, offsetDelta);\n    if (endPosition.lineNumber \u003e initialEndLineNumber) {\n      endPosition = new Position(initialEndLineNumber, model.getLineMaxColumn(initialEndLineNumber));\n    }\n    const replaceRange = Range.fromPositions(intialStartPosition, endPosition);\n    builder.addTrackedEditOperation(replaceRange, this._text);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const srcRange = inverseEditOperations[0].range;\n    return Selection.fromPositions(srcRange.getEndPosition());\n  }\n};\nvar ReplaceCommandThatSelectsText = class {\n  constructor(range2, text2) {\n    this._range = range2;\n    this._text = text2;\n  }\n  getEditOperations(model, builder) {\n    builder.addTrackedEditOperation(this._range, this._text);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const srcRange = inverseEditOperations[0].range;\n    return Selection.fromRange(\n      srcRange,\n      0\n      /* SelectionDirection.LTR */\n    );\n  }\n};\nvar ReplaceCommandWithoutChangingPosition = class {\n  constructor(range2, text2, insertsAutoWhitespace = false) {\n    this._range = range2;\n    this._text = text2;\n    this.insertsAutoWhitespace = insertsAutoWhitespace;\n  }\n  getEditOperations(model, builder) {\n    builder.addTrackedEditOperation(this._range, this._text);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const srcRange = inverseEditOperations[0].range;\n    return Selection.fromPositions(srcRange.getStartPosition());\n  }\n};\nvar ReplaceCommandWithOffsetCursorState = class {\n  constructor(range2, text2, lineNumberDeltaOffset, columnDeltaOffset, insertsAutoWhitespace = false) {\n    this._range = range2;\n    this._text = text2;\n    this._columnDeltaOffset = columnDeltaOffset;\n    this._lineNumberDeltaOffset = lineNumberDeltaOffset;\n    this.insertsAutoWhitespace = insertsAutoWhitespace;\n  }\n  getEditOperations(model, builder) {\n    builder.addTrackedEditOperation(this._range, this._text);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const srcRange = inverseEditOperations[0].range;\n    return Selection.fromPositions(srcRange.getEndPosition().delta(this._lineNumberDeltaOffset, this._columnDeltaOffset));\n  }\n};\nvar ReplaceOvertypeCommandOnCompositionEnd = class {\n  constructor(range2) {\n    this._range = range2;\n  }\n  getEditOperations(model, builder) {\n    const text2 = model.getValueInRange(this._range);\n    const initialEndPosition = this._range.getEndPosition();\n    const initialEndLineNumber = initialEndPosition.lineNumber;\n    let endPosition = addPositiveOffsetToModelPosition(model, initialEndPosition, text2.length);\n    if (endPosition.lineNumber \u003e initialEndLineNumber) {\n      endPosition = new Position(initialEndLineNumber, model.getLineMaxColumn(initialEndLineNumber));\n    }\n    const replaceRange = Range.fromPositions(initialEndPosition, endPosition);\n    builder.addTrackedEditOperation(replaceRange, \"\");\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const srcRange = inverseEditOperations[0].range;\n    return Selection.fromPositions(srcRange.getEndPosition());\n  }\n};\nvar ReplaceCommandThatPreservesSelection = class {\n  constructor(editRange, text2, initialSelection, forceMoveMarkers = false) {\n    this._range = editRange;\n    this._text = text2;\n    this._initialSelection = initialSelection;\n    this._forceMoveMarkers = forceMoveMarkers;\n    this._selectionId = null;\n  }\n  getEditOperations(model, builder) {\n    builder.addTrackedEditOperation(this._range, this._text, this._forceMoveMarkers);\n    this._selectionId = builder.trackSelection(this._initialSelection);\n  }\n  computeCursorState(model, helper) {\n    return helper.getTrackedSelection(this._selectionId);\n  }\n};\nfunction addPositiveOffsetToModelPosition(model, position, offset) {\n  if (offset \u003c 0) {\n    throw new Error(\"Unexpected negative delta\");\n  }\n  const lineCount = model.getLineCount();\n  let endPosition = new Position(lineCount, model.getLineMaxColumn(lineCount));\n  for (let lineNumber = position.lineNumber; lineNumber \u003c= lineCount; lineNumber++) {\n    if (lineNumber === position.lineNumber) {\n      const futureOffset = offset - model.getLineMaxColumn(position.lineNumber) + position.column;\n      if (futureOffset \u003c= 0) {\n        endPosition = new Position(position.lineNumber, position.column + offset);\n        break;\n      }\n      offset = futureOffset;\n    } else {\n      const futureOffset = offset - model.getLineMaxColumn(lineNumber);\n      if (futureOffset \u003c= 0) {\n        endPosition = new Position(lineNumber, offset);\n        break;\n      }\n      offset = futureOffset;\n    }\n  }\n  return endPosition;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorDeleteOperations.js\ninit_cursorColumns();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorMoveOperations.js\ninit_strings();\ninit_cursorColumns();\ninit_position();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorAtomicMoveOperations.js\ninit_cursorColumns();\nvar AtomicTabMoveOperations = class _AtomicTabMoveOperations {\n  /**\n   * Get the visible column at the position. If we get to a non-whitespace character first\n   * or past the end of string then return -1.\n   *\n   * **Note** `position` and the return value are 0-based.\n   */\n  static whitespaceVisibleColumn(lineContent, position, tabSize) {\n    const lineLength = lineContent.length;\n    let visibleColumn = 0;\n    let prevTabStopPosition = -1;\n    let prevTabStopVisibleColumn = -1;\n    for (let i2 = 0; i2 \u003c lineLength; i2++) {\n      if (i2 === position) {\n        return [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn];\n      }\n      if (visibleColumn % tabSize === 0) {\n        prevTabStopPosition = i2;\n        prevTabStopVisibleColumn = visibleColumn;\n      }\n      const chCode = lineContent.charCodeAt(i2);\n      switch (chCode) {\n        case 32:\n          visibleColumn += 1;\n          break;\n        case 9:\n          visibleColumn = CursorColumns.nextRenderTabStop(visibleColumn, tabSize);\n          break;\n        default:\n          return [-1, -1, -1];\n      }\n    }\n    if (position === lineLength) {\n      return [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn];\n    }\n    return [-1, -1, -1];\n  }\n  /**\n   * Return the position that should result from a move left, right or to the\n   * nearest tab, if atomic tabs are enabled. Left and right are used for the\n   * arrow key movements, nearest is used for mouse selection. It returns\n   * -1 if atomic tabs are not relevant and you should fall back to normal\n   * behaviour.\n   *\n   * **Note**: `position` and the return value are 0-based.\n   */\n  static atomicPosition(lineContent, position, tabSize, direction) {\n    const lineLength = lineContent.length;\n    const [prevTabStopPosition, prevTabStopVisibleColumn, visibleColumn] = _AtomicTabMoveOperations.whitespaceVisibleColumn(lineContent, position, tabSize);\n    if (visibleColumn === -1) {\n      return -1;\n    }\n    let left;\n    switch (direction) {\n      case 0:\n        left = true;\n        break;\n      case 1:\n        left = false;\n        break;\n      case 2:\n        if (visibleColumn % tabSize === 0) {\n          return position;\n        }\n        left = visibleColumn % tabSize \u003c= tabSize / 2;\n        break;\n    }\n    if (left) {\n      if (prevTabStopPosition === -1) {\n        return -1;\n      }\n      let currentVisibleColumn2 = prevTabStopVisibleColumn;\n      for (let i2 = prevTabStopPosition; i2 \u003c lineLength; ++i2) {\n        if (currentVisibleColumn2 === prevTabStopVisibleColumn + tabSize) {\n          return prevTabStopPosition;\n        }\n        const chCode = lineContent.charCodeAt(i2);\n        switch (chCode) {\n          case 32:\n            currentVisibleColumn2 += 1;\n            break;\n          case 9:\n            currentVisibleColumn2 = CursorColumns.nextRenderTabStop(currentVisibleColumn2, tabSize);\n            break;\n          default:\n            return -1;\n        }\n      }\n      if (currentVisibleColumn2 === prevTabStopVisibleColumn + tabSize) {\n        return prevTabStopPosition;\n      }\n      return -1;\n    }\n    const targetVisibleColumn = CursorColumns.nextRenderTabStop(visibleColumn, tabSize);\n    let currentVisibleColumn = visibleColumn;\n    for (let i2 = position; i2 \u003c lineLength; i2++) {\n      if (currentVisibleColumn === targetVisibleColumn) {\n        return i2;\n      }\n      const chCode = lineContent.charCodeAt(i2);\n      switch (chCode) {\n        case 32:\n          currentVisibleColumn += 1;\n          break;\n        case 9:\n          currentVisibleColumn = CursorColumns.nextRenderTabStop(currentVisibleColumn, tabSize);\n          break;\n        default:\n          return -1;\n      }\n    }\n    if (currentVisibleColumn === targetVisibleColumn) {\n      return lineLength;\n    }\n    return -1;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorMoveOperations.js\nvar CursorPosition = class {\n  constructor(lineNumber, column, leftoverVisibleColumns) {\n    this._cursorPositionBrand = void 0;\n    this.lineNumber = lineNumber;\n    this.column = column;\n    this.leftoverVisibleColumns = leftoverVisibleColumns;\n  }\n};\nvar MoveOperations = class _MoveOperations {\n  static leftPosition(model, position) {\n    if (position.column \u003e model.getLineMinColumn(position.lineNumber)) {\n      return position.delta(void 0, -prevCharLength(model.getLineContent(position.lineNumber), position.column - 1));\n    } else if (position.lineNumber \u003e 1) {\n      const newLineNumber = position.lineNumber - 1;\n      return new Position(newLineNumber, model.getLineMaxColumn(newLineNumber));\n    } else {\n      return position;\n    }\n  }\n  static leftPositionAtomicSoftTabs(model, position, tabSize) {\n    if (position.column \u003c= model.getLineIndentColumn(position.lineNumber)) {\n      const minColumn = model.getLineMinColumn(position.lineNumber);\n      const lineContent = model.getLineContent(position.lineNumber);\n      const newPosition = AtomicTabMoveOperations.atomicPosition(\n        lineContent,\n        position.column - 1,\n        tabSize,\n        0\n        /* Direction.Left */\n      );\n      if (newPosition !== -1 \u0026\u0026 newPosition + 1 \u003e= minColumn) {\n        return new Position(position.lineNumber, newPosition + 1);\n      }\n    }\n    return this.leftPosition(model, position);\n  }\n  static left(config, model, position) {\n    const pos = config.stickyTabStops ? _MoveOperations.leftPositionAtomicSoftTabs(model, position, config.tabSize) : _MoveOperations.leftPosition(model, position);\n    return new CursorPosition(pos.lineNumber, pos.column, 0);\n  }\n  /**\n   * @param noOfColumns Must be either `1`\n   * or `Math.round(viewModel.getLineContent(viewLineNumber).length / 2)` (for half lines).\n  */\n  static moveLeft(config, model, cursor, inSelectionMode, noOfColumns) {\n    let lineNumber, column;\n    if (cursor.hasSelection() \u0026\u0026 !inSelectionMode) {\n      lineNumber = cursor.selection.startLineNumber;\n      column = cursor.selection.startColumn;\n    } else {\n      const pos = cursor.position.delta(void 0, -(noOfColumns - 1));\n      const normalizedPos = model.normalizePosition(\n        _MoveOperations.clipPositionColumn(pos, model),\n        0\n        /* PositionAffinity.Left */\n      );\n      const p = _MoveOperations.left(config, model, normalizedPos);\n      lineNumber = p.lineNumber;\n      column = p.column;\n    }\n    return cursor.move(inSelectionMode, lineNumber, column, 0);\n  }\n  /**\n   * Adjusts the column so that it is within min/max of the line.\n  */\n  static clipPositionColumn(position, model) {\n    return new Position(position.lineNumber, _MoveOperations.clipRange(position.column, model.getLineMinColumn(position.lineNumber), model.getLineMaxColumn(position.lineNumber)));\n  }\n  static clipRange(value, min, max) {\n    if (value \u003c min) {\n      return min;\n    }\n    if (value \u003e max) {\n      return max;\n    }\n    return value;\n  }\n  static rightPosition(model, lineNumber, column) {\n    if (column \u003c model.getLineMaxColumn(lineNumber)) {\n      column = column + nextCharLength(model.getLineContent(lineNumber), column - 1);\n    } else if (lineNumber \u003c model.getLineCount()) {\n      lineNumber = lineNumber + 1;\n      column = model.getLineMinColumn(lineNumber);\n    }\n    return new Position(lineNumber, column);\n  }\n  static rightPositionAtomicSoftTabs(model, lineNumber, column, tabSize, indentSize) {\n    if (column \u003c model.getLineIndentColumn(lineNumber)) {\n      const lineContent = model.getLineContent(lineNumber);\n      const newPosition = AtomicTabMoveOperations.atomicPosition(\n        lineContent,\n        column - 1,\n        tabSize,\n        1\n        /* Direction.Right */\n      );\n      if (newPosition !== -1) {\n        return new Position(lineNumber, newPosition + 1);\n      }\n    }\n    return this.rightPosition(model, lineNumber, column);\n  }\n  static right(config, model, position) {\n    const pos = config.stickyTabStops ? _MoveOperations.rightPositionAtomicSoftTabs(model, position.lineNumber, position.column, config.tabSize, config.indentSize) : _MoveOperations.rightPosition(model, position.lineNumber, position.column);\n    return new CursorPosition(pos.lineNumber, pos.column, 0);\n  }\n  static moveRight(config, model, cursor, inSelectionMode, noOfColumns) {\n    let lineNumber, column;\n    if (cursor.hasSelection() \u0026\u0026 !inSelectionMode) {\n      lineNumber = cursor.selection.endLineNumber;\n      column = cursor.selection.endColumn;\n    } else {\n      const pos = cursor.position.delta(void 0, noOfColumns - 1);\n      const normalizedPos = model.normalizePosition(\n        _MoveOperations.clipPositionColumn(pos, model),\n        1\n        /* PositionAffinity.Right */\n      );\n      const r = _MoveOperations.right(config, model, normalizedPos);\n      lineNumber = r.lineNumber;\n      column = r.column;\n    }\n    return cursor.move(inSelectionMode, lineNumber, column, 0);\n  }\n  static vertical(config, model, lineNumber, column, leftoverVisibleColumns, newLineNumber, allowMoveOnEdgeLine, normalizationAffinity) {\n    const currentVisibleColumn = CursorColumns.visibleColumnFromColumn(model.getLineContent(lineNumber), column, config.tabSize) + leftoverVisibleColumns;\n    const lineCount = model.getLineCount();\n    const wasOnFirstPosition = lineNumber === 1 \u0026\u0026 column === 1;\n    const wasOnLastPosition = lineNumber === lineCount \u0026\u0026 column === model.getLineMaxColumn(lineNumber);\n    const wasAtEdgePosition = newLineNumber \u003c lineNumber ? wasOnFirstPosition : wasOnLastPosition;\n    lineNumber = newLineNumber;\n    if (lineNumber \u003c 1) {\n      lineNumber = 1;\n      if (allowMoveOnEdgeLine) {\n        column = model.getLineMinColumn(lineNumber);\n      } else {\n        column = Math.min(model.getLineMaxColumn(lineNumber), column);\n      }\n    } else if (lineNumber \u003e lineCount) {\n      lineNumber = lineCount;\n      if (allowMoveOnEdgeLine) {\n        column = model.getLineMaxColumn(lineNumber);\n      } else {\n        column = Math.min(model.getLineMaxColumn(lineNumber), column);\n      }\n    } else {\n      column = config.columnFromVisibleColumn(model, lineNumber, currentVisibleColumn);\n    }\n    if (wasAtEdgePosition) {\n      leftoverVisibleColumns = 0;\n    } else {\n      leftoverVisibleColumns = currentVisibleColumn - CursorColumns.visibleColumnFromColumn(model.getLineContent(lineNumber), column, config.tabSize);\n    }\n    if (normalizationAffinity !== void 0) {\n      const position = new Position(lineNumber, column);\n      const newPosition = model.normalizePosition(position, normalizationAffinity);\n      leftoverVisibleColumns = leftoverVisibleColumns + (column - newPosition.column);\n      lineNumber = newPosition.lineNumber;\n      column = newPosition.column;\n    }\n    return new CursorPosition(lineNumber, column, leftoverVisibleColumns);\n  }\n  static down(config, model, lineNumber, column, leftoverVisibleColumns, count, allowMoveOnLastLine) {\n    return this.vertical(\n      config,\n      model,\n      lineNumber,\n      column,\n      leftoverVisibleColumns,\n      lineNumber + count,\n      allowMoveOnLastLine,\n      4\n      /* PositionAffinity.RightOfInjectedText */\n    );\n  }\n  static moveDown(config, model, cursor, inSelectionMode, linesCount) {\n    let lineNumber, column;\n    if (cursor.hasSelection() \u0026\u0026 !inSelectionMode) {\n      lineNumber = cursor.selection.endLineNumber;\n      column = cursor.selection.endColumn;\n    } else {\n      lineNumber = cursor.position.lineNumber;\n      column = cursor.position.column;\n    }\n    let i2 = 0;\n    let r;\n    do {\n      r = _MoveOperations.down(config, model, lineNumber + i2, column, cursor.leftoverVisibleColumns, linesCount, true);\n      const np = model.normalizePosition(\n        new Position(r.lineNumber, r.column),\n        2\n        /* PositionAffinity.None */\n      );\n      if (np.lineNumber \u003e lineNumber) {\n        break;\n      }\n    } while (i2++ \u003c 10 \u0026\u0026 lineNumber + i2 \u003c model.getLineCount());\n    return cursor.move(inSelectionMode, r.lineNumber, r.column, r.leftoverVisibleColumns);\n  }\n  static translateDown(config, model, cursor) {\n    const selection = cursor.selection;\n    const selectionStart = _MoveOperations.down(config, model, selection.selectionStartLineNumber, selection.selectionStartColumn, cursor.selectionStartLeftoverVisibleColumns, 1, false);\n    const position = _MoveOperations.down(config, model, selection.positionLineNumber, selection.positionColumn, cursor.leftoverVisibleColumns, 1, false);\n    return new SingleCursorState(new Range(selectionStart.lineNumber, selectionStart.column, selectionStart.lineNumber, selectionStart.column), 0, selectionStart.leftoverVisibleColumns, new Position(position.lineNumber, position.column), position.leftoverVisibleColumns);\n  }\n  static up(config, model, lineNumber, column, leftoverVisibleColumns, count, allowMoveOnFirstLine) {\n    return this.vertical(\n      config,\n      model,\n      lineNumber,\n      column,\n      leftoverVisibleColumns,\n      lineNumber - count,\n      allowMoveOnFirstLine,\n      3\n      /* PositionAffinity.LeftOfInjectedText */\n    );\n  }\n  static moveUp(config, model, cursor, inSelectionMode, linesCount) {\n    let lineNumber, column;\n    if (cursor.hasSelection() \u0026\u0026 !inSelectionMode) {\n      lineNumber = cursor.selection.startLineNumber;\n      column = cursor.selection.startColumn;\n    } else {\n      lineNumber = cursor.position.lineNumber;\n      column = cursor.position.column;\n    }\n    const r = _MoveOperations.up(config, model, lineNumber, column, cursor.leftoverVisibleColumns, linesCount, true);\n    return cursor.move(inSelectionMode, r.lineNumber, r.column, r.leftoverVisibleColumns);\n  }\n  static translateUp(config, model, cursor) {\n    const selection = cursor.selection;\n    const selectionStart = _MoveOperations.up(config, model, selection.selectionStartLineNumber, selection.selectionStartColumn, cursor.selectionStartLeftoverVisibleColumns, 1, false);\n    const position = _MoveOperations.up(config, model, selection.positionLineNumber, selection.positionColumn, cursor.leftoverVisibleColumns, 1, false);\n    return new SingleCursorState(new Range(selectionStart.lineNumber, selectionStart.column, selectionStart.lineNumber, selectionStart.column), 0, selectionStart.leftoverVisibleColumns, new Position(position.lineNumber, position.column), position.leftoverVisibleColumns);\n  }\n  static _isBlankLine(model, lineNumber) {\n    if (model.getLineFirstNonWhitespaceColumn(lineNumber) === 0) {\n      return true;\n    }\n    return false;\n  }\n  static moveToPrevBlankLine(config, model, cursor, inSelectionMode) {\n    let lineNumber = cursor.position.lineNumber;\n    while (lineNumber \u003e 1 \u0026\u0026 this._isBlankLine(model, lineNumber)) {\n      lineNumber--;\n    }\n    while (lineNumber \u003e 1 \u0026\u0026 !this._isBlankLine(model, lineNumber)) {\n      lineNumber--;\n    }\n    return cursor.move(inSelectionMode, lineNumber, model.getLineMinColumn(lineNumber), 0);\n  }\n  static moveToNextBlankLine(config, model, cursor, inSelectionMode) {\n    const lineCount = model.getLineCount();\n    let lineNumber = cursor.position.lineNumber;\n    while (lineNumber \u003c lineCount \u0026\u0026 this._isBlankLine(model, lineNumber)) {\n      lineNumber++;\n    }\n    while (lineNumber \u003c lineCount \u0026\u0026 !this._isBlankLine(model, lineNumber)) {\n      lineNumber++;\n    }\n    return cursor.move(inSelectionMode, lineNumber, model.getLineMinColumn(lineNumber), 0);\n  }\n  static moveToBeginningOfLine(config, model, cursor, inSelectionMode) {\n    const lineNumber = cursor.position.lineNumber;\n    const minColumn = model.getLineMinColumn(lineNumber);\n    const firstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(lineNumber) || minColumn;\n    let column;\n    const relevantColumnNumber = cursor.position.column;\n    if (relevantColumnNumber === firstNonBlankColumn) {\n      column = minColumn;\n    } else {\n      column = firstNonBlankColumn;\n    }\n    return cursor.move(inSelectionMode, lineNumber, column, 0);\n  }\n  static moveToEndOfLine(config, model, cursor, inSelectionMode, sticky) {\n    const lineNumber = cursor.position.lineNumber;\n    const maxColumn = model.getLineMaxColumn(lineNumber);\n    return cursor.move(inSelectionMode, lineNumber, maxColumn, sticky ? 1073741824 - maxColumn : 0);\n  }\n  static moveToBeginningOfBuffer(config, model, cursor, inSelectionMode) {\n    return cursor.move(inSelectionMode, 1, 1, 0);\n  }\n  static moveToEndOfBuffer(config, model, cursor, inSelectionMode) {\n    const lastLineNumber = model.getLineCount();\n    const lastColumn = model.getLineMaxColumn(lastLineNumber);\n    return cursor.move(inSelectionMode, lastLineNumber, lastColumn, 0);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorDeleteOperations.js\ninit_range();\ninit_position();\nvar DeleteOperations = class _DeleteOperations {\n  static deleteRight(prevEditOperationType, config, model, selections) {\n    const commands = [];\n    let shouldPushStackElementBefore = prevEditOperationType !== 3;\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      const deleteSelection = this.getDeleteRightRange(selection, model, config);\n      if (deleteSelection.isEmpty()) {\n        commands[i2] = null;\n        continue;\n      }\n      if (deleteSelection.startLineNumber !== deleteSelection.endLineNumber) {\n        shouldPushStackElementBefore = true;\n      }\n      commands[i2] = new ReplaceCommand(deleteSelection, \"\");\n    }\n    return [shouldPushStackElementBefore, commands];\n  }\n  static getDeleteRightRange(selection, model, config) {\n    if (!selection.isEmpty()) {\n      return selection;\n    }\n    const position = selection.getPosition();\n    const rightOfPosition = MoveOperations.right(config, model, position);\n    if (config.trimWhitespaceOnDelete \u0026\u0026 rightOfPosition.lineNumber !== position.lineNumber) {\n      const currentLineHasContent = model.getLineFirstNonWhitespaceColumn(position.lineNumber) \u003e 0;\n      const firstNonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(rightOfPosition.lineNumber);\n      if (currentLineHasContent \u0026\u0026 firstNonWhitespaceColumn \u003e 0) {\n        return new Range(rightOfPosition.lineNumber, firstNonWhitespaceColumn, position.lineNumber, position.column);\n      }\n    }\n    return new Range(rightOfPosition.lineNumber, rightOfPosition.column, position.lineNumber, position.column);\n  }\n  static isAutoClosingPairDelete(autoClosingDelete, autoClosingBrackets, autoClosingQuotes, autoClosingPairsOpen, model, selections, autoClosedCharacters) {\n    if (autoClosingBrackets === \"never\" \u0026\u0026 autoClosingQuotes === \"never\") {\n      return false;\n    }\n    if (autoClosingDelete === \"never\") {\n      return false;\n    }\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      const position = selection.getPosition();\n      if (!selection.isEmpty()) {\n        return false;\n      }\n      const lineText = model.getLineContent(position.lineNumber);\n      if (position.column \u003c 2 || position.column \u003e= lineText.length + 1) {\n        return false;\n      }\n      const character = lineText.charAt(position.column - 2);\n      const autoClosingPairCandidates = autoClosingPairsOpen.get(character);\n      if (!autoClosingPairCandidates) {\n        return false;\n      }\n      if (isQuote(character)) {\n        if (autoClosingQuotes === \"never\") {\n          return false;\n        }\n      } else {\n        if (autoClosingBrackets === \"never\") {\n          return false;\n        }\n      }\n      const afterCharacter = lineText.charAt(position.column - 1);\n      let foundAutoClosingPair = false;\n      for (const autoClosingPairCandidate of autoClosingPairCandidates) {\n        if (autoClosingPairCandidate.open === character \u0026\u0026 autoClosingPairCandidate.close === afterCharacter) {\n          foundAutoClosingPair = true;\n        }\n      }\n      if (!foundAutoClosingPair) {\n        return false;\n      }\n      if (autoClosingDelete === \"auto\") {\n        let found = false;\n        for (let j = 0, lenJ = autoClosedCharacters.length; j \u003c lenJ; j++) {\n          const autoClosedCharacter = autoClosedCharacters[j];\n          if (position.lineNumber === autoClosedCharacter.startLineNumber \u0026\u0026 position.column === autoClosedCharacter.startColumn) {\n            found = true;\n            break;\n          }\n        }\n        if (!found) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n  static _runAutoClosingPairDelete(config, model, selections) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const position = selections[i2].getPosition();\n      const deleteSelection = new Range(position.lineNumber, position.column - 1, position.lineNumber, position.column + 1);\n      commands[i2] = new ReplaceCommand(deleteSelection, \"\");\n    }\n    return [true, commands];\n  }\n  static deleteLeft(prevEditOperationType, config, model, selections, autoClosedCharacters) {\n    if (this.isAutoClosingPairDelete(config.autoClosingDelete, config.autoClosingBrackets, config.autoClosingQuotes, config.autoClosingPairs.autoClosingPairsOpenByEnd, model, selections, autoClosedCharacters)) {\n      return this._runAutoClosingPairDelete(config, model, selections);\n    }\n    const commands = [];\n    let shouldPushStackElementBefore = prevEditOperationType !== 2;\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const deleteRange = _DeleteOperations.getDeleteLeftRange(selections[i2], model, config);\n      if (deleteRange.isEmpty()) {\n        commands[i2] = null;\n        continue;\n      }\n      if (deleteRange.startLineNumber !== deleteRange.endLineNumber) {\n        shouldPushStackElementBefore = true;\n      }\n      commands[i2] = new ReplaceCommand(deleteRange, \"\");\n    }\n    return [shouldPushStackElementBefore, commands];\n  }\n  static getDeleteLeftRange(selection, model, config) {\n    if (!selection.isEmpty()) {\n      return selection;\n    }\n    const position = selection.getPosition();\n    if (config.useTabStops \u0026\u0026 position.column \u003e 1) {\n      const lineContent = model.getLineContent(position.lineNumber);\n      const firstNonWhitespaceIndex2 = firstNonWhitespaceIndex(lineContent);\n      const lastIndentationColumn = firstNonWhitespaceIndex2 === -1 ? (\n        /* entire string is whitespace */\n        lineContent.length + 1\n      ) : firstNonWhitespaceIndex2 + 1;\n      if (position.column \u003c= lastIndentationColumn) {\n        const fromVisibleColumn = config.visibleColumnFromColumn(model, position);\n        const toVisibleColumn = CursorColumns.prevIndentTabStop(fromVisibleColumn, config.indentSize);\n        const toColumn = config.columnFromVisibleColumn(model, position.lineNumber, toVisibleColumn);\n        return new Range(position.lineNumber, toColumn, position.lineNumber, position.column);\n      }\n    }\n    return Range.fromPositions(_DeleteOperations.getPositionAfterDeleteLeft(position, model), position);\n  }\n  static getPositionAfterDeleteLeft(position, model) {\n    if (position.column \u003e 1) {\n      const idx = getLeftDeleteOffset(position.column - 1, model.getLineContent(position.lineNumber));\n      return position.with(void 0, idx + 1);\n    } else if (position.lineNumber \u003e 1) {\n      const newLine = position.lineNumber - 1;\n      return new Position(newLine, model.getLineMaxColumn(newLine));\n    } else {\n      return position;\n    }\n  }\n  static cut(config, model, selections) {\n    const commands = [];\n    let lastCutRange = null;\n    selections.sort((a, b) =\u003e Position.compare(a.getStartPosition(), b.getEndPosition()));\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      if (selection.isEmpty()) {\n        if (config.emptySelectionClipboard) {\n          const position = selection.getPosition();\n          let startLineNumber, startColumn, endLineNumber, endColumn;\n          if (position.lineNumber \u003c model.getLineCount()) {\n            startLineNumber = position.lineNumber;\n            startColumn = 1;\n            endLineNumber = position.lineNumber + 1;\n            endColumn = 1;\n          } else if (position.lineNumber \u003e 1 \u0026\u0026 lastCutRange?.endLineNumber !== position.lineNumber) {\n            startLineNumber = position.lineNumber - 1;\n            startColumn = model.getLineMaxColumn(position.lineNumber - 1);\n            endLineNumber = position.lineNumber;\n            endColumn = model.getLineMaxColumn(position.lineNumber);\n          } else {\n            startLineNumber = position.lineNumber;\n            startColumn = 1;\n            endLineNumber = position.lineNumber;\n            endColumn = model.getLineMaxColumn(position.lineNumber);\n          }\n          const deleteSelection = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n          lastCutRange = deleteSelection;\n          if (!deleteSelection.isEmpty()) {\n            commands[i2] = new ReplaceCommand(deleteSelection, \"\");\n          } else {\n            commands[i2] = null;\n          }\n        } else {\n          commands[i2] = null;\n        }\n      } else {\n        commands[i2] = new ReplaceCommand(selection, \"\");\n      }\n    }\n    return new EditOperationResult(0, commands, {\n      shouldPushStackElementBefore: true,\n      shouldPushStackElementAfter: true\n    });\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorMoveCommands.js\ninit_types();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorWordOperations.js\ninit_strings();\ninit_wordCharacterClassifier();\ninit_position();\ninit_range();\nvar WordOperations = class _WordOperations {\n  static _createWord(lineContent, wordType, nextCharClass, start, end) {\n    return { start, end, wordType, nextCharClass };\n  }\n  static _createIntlWord(intlWord, nextCharClass) {\n    return { start: intlWord.index, end: intlWord.index + intlWord.segment.length, wordType: 1, nextCharClass };\n  }\n  static _findPreviousWordOnLine(wordSeparators2, model, position) {\n    const lineContent = model.getLineContent(position.lineNumber);\n    return this._doFindPreviousWordOnLine(lineContent, wordSeparators2, position);\n  }\n  static _doFindPreviousWordOnLine(lineContent, wordSeparators2, position) {\n    let wordType = 0;\n    const previousIntlWord = wordSeparators2.findPrevIntlWordBeforeOrAtOffset(lineContent, position.column - 2);\n    for (let chIndex = position.column - 2; chIndex \u003e= 0; chIndex--) {\n      const chCode = lineContent.charCodeAt(chIndex);\n      const chClass = wordSeparators2.get(chCode);\n      if (previousIntlWord \u0026\u0026 chIndex === previousIntlWord.index) {\n        return this._createIntlWord(previousIntlWord, chClass);\n      }\n      if (chClass === 0) {\n        if (wordType === 2) {\n          return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators2, wordType, chIndex + 1));\n        }\n        wordType = 1;\n      } else if (chClass === 2) {\n        if (wordType === 1) {\n          return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators2, wordType, chIndex + 1));\n        }\n        wordType = 2;\n      } else if (chClass === 1) {\n        if (wordType !== 0) {\n          return this._createWord(lineContent, wordType, chClass, chIndex + 1, this._findEndOfWord(lineContent, wordSeparators2, wordType, chIndex + 1));\n        }\n      }\n    }\n    if (wordType !== 0) {\n      return this._createWord(lineContent, wordType, 1, 0, this._findEndOfWord(lineContent, wordSeparators2, wordType, 0));\n    }\n    return null;\n  }\n  static _findEndOfWord(lineContent, wordSeparators2, wordType, startIndex) {\n    const nextIntlWord = wordSeparators2.findNextIntlWordAtOrAfterOffset(lineContent, startIndex);\n    const len = lineContent.length;\n    for (let chIndex = startIndex; chIndex \u003c len; chIndex++) {\n      const chCode = lineContent.charCodeAt(chIndex);\n      const chClass = wordSeparators2.get(chCode);\n      if (nextIntlWord \u0026\u0026 chIndex === nextIntlWord.index + nextIntlWord.segment.length) {\n        return chIndex;\n      }\n      if (chClass === 1) {\n        return chIndex;\n      }\n      if (wordType === 1 \u0026\u0026 chClass === 2) {\n        return chIndex;\n      }\n      if (wordType === 2 \u0026\u0026 chClass === 0) {\n        return chIndex;\n      }\n    }\n    return len;\n  }\n  static _findNextWordOnLine(wordSeparators2, model, position) {\n    const lineContent = model.getLineContent(position.lineNumber);\n    return this._doFindNextWordOnLine(lineContent, wordSeparators2, position);\n  }\n  static _doFindNextWordOnLine(lineContent, wordSeparators2, position) {\n    let wordType = 0;\n    const len = lineContent.length;\n    const nextIntlWord = wordSeparators2.findNextIntlWordAtOrAfterOffset(lineContent, position.column - 1);\n    for (let chIndex = position.column - 1; chIndex \u003c len; chIndex++) {\n      const chCode = lineContent.charCodeAt(chIndex);\n      const chClass = wordSeparators2.get(chCode);\n      if (nextIntlWord \u0026\u0026 chIndex === nextIntlWord.index) {\n        return this._createIntlWord(nextIntlWord, chClass);\n      }\n      if (chClass === 0) {\n        if (wordType === 2) {\n          return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators2, wordType, chIndex - 1), chIndex);\n        }\n        wordType = 1;\n      } else if (chClass === 2) {\n        if (wordType === 1) {\n          return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators2, wordType, chIndex - 1), chIndex);\n        }\n        wordType = 2;\n      } else if (chClass === 1) {\n        if (wordType !== 0) {\n          return this._createWord(lineContent, wordType, chClass, this._findStartOfWord(lineContent, wordSeparators2, wordType, chIndex - 1), chIndex);\n        }\n      }\n    }\n    if (wordType !== 0) {\n      return this._createWord(lineContent, wordType, 1, this._findStartOfWord(lineContent, wordSeparators2, wordType, len - 1), len);\n    }\n    return null;\n  }\n  static _findStartOfWord(lineContent, wordSeparators2, wordType, startIndex) {\n    const previousIntlWord = wordSeparators2.findPrevIntlWordBeforeOrAtOffset(lineContent, startIndex);\n    for (let chIndex = startIndex; chIndex \u003e= 0; chIndex--) {\n      const chCode = lineContent.charCodeAt(chIndex);\n      const chClass = wordSeparators2.get(chCode);\n      if (previousIntlWord \u0026\u0026 chIndex === previousIntlWord.index) {\n        return chIndex;\n      }\n      if (chClass === 1) {\n        return chIndex + 1;\n      }\n      if (wordType === 1 \u0026\u0026 chClass === 2) {\n        return chIndex + 1;\n      }\n      if (wordType === 2 \u0026\u0026 chClass === 0) {\n        return chIndex + 1;\n      }\n    }\n    return 0;\n  }\n  static moveWordLeft(wordSeparators2, model, position, wordNavigationType, hasMulticursor) {\n    let lineNumber = position.lineNumber;\n    let column = position.column;\n    if (column === 1) {\n      if (lineNumber \u003e 1) {\n        lineNumber = lineNumber - 1;\n        column = model.getLineMaxColumn(lineNumber);\n      }\n    }\n    let prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, column));\n    if (wordNavigationType === 0) {\n      return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n    }\n    if (wordNavigationType === 1) {\n      if (!hasMulticursor \u0026\u0026 prevWordOnLine \u0026\u0026 prevWordOnLine.wordType === 2 \u0026\u0026 prevWordOnLine.end - prevWordOnLine.start === 1 \u0026\u0026 prevWordOnLine.nextCharClass === 0) {\n        prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, prevWordOnLine.start + 1));\n      }\n      return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n    }\n    if (wordNavigationType === 3) {\n      while (prevWordOnLine \u0026\u0026 prevWordOnLine.wordType === 2) {\n        prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, prevWordOnLine.start + 1));\n      }\n      return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);\n    }\n    if (prevWordOnLine \u0026\u0026 column \u003c= prevWordOnLine.end + 1) {\n      prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, prevWordOnLine.start + 1));\n    }\n    return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.end + 1 : 1);\n  }\n  static _moveWordPartLeft(model, position) {\n    const lineNumber = position.lineNumber;\n    const maxColumn = model.getLineMaxColumn(lineNumber);\n    if (position.column === 1) {\n      return lineNumber \u003e 1 ? new Position(lineNumber - 1, model.getLineMaxColumn(lineNumber - 1)) : position;\n    }\n    const lineContent = model.getLineContent(lineNumber);\n    for (let column = position.column - 1; column \u003e 1; column--) {\n      const left = lineContent.charCodeAt(column - 2);\n      const right = lineContent.charCodeAt(column - 1);\n      if (left === 95 \u0026\u0026 right !== 95) {\n        return new Position(lineNumber, column);\n      }\n      if (left === 45 \u0026\u0026 right !== 45) {\n        return new Position(lineNumber, column);\n      }\n      if ((isLowerAsciiLetter(left) || isAsciiDigit(left)) \u0026\u0026 isUpperAsciiLetter(right)) {\n        return new Position(lineNumber, column);\n      }\n      if (isUpperAsciiLetter(left) \u0026\u0026 isUpperAsciiLetter(right)) {\n        if (column + 1 \u003c maxColumn) {\n          const rightRight = lineContent.charCodeAt(column);\n          if (isLowerAsciiLetter(rightRight) || isAsciiDigit(rightRight)) {\n            return new Position(lineNumber, column);\n          }\n        }\n      }\n    }\n    return new Position(lineNumber, 1);\n  }\n  static moveWordRight(wordSeparators2, model, position, wordNavigationType) {\n    let lineNumber = position.lineNumber;\n    let column = position.column;\n    let movedDown = false;\n    if (column === model.getLineMaxColumn(lineNumber)) {\n      if (lineNumber \u003c model.getLineCount()) {\n        movedDown = true;\n        lineNumber = lineNumber + 1;\n        column = 1;\n      }\n    }\n    let nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, column));\n    if (wordNavigationType === 2) {\n      if (nextWordOnLine \u0026\u0026 nextWordOnLine.wordType === 2) {\n        if (nextWordOnLine.end - nextWordOnLine.start === 1 \u0026\u0026 nextWordOnLine.nextCharClass === 0) {\n          nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, nextWordOnLine.end + 1));\n        }\n      }\n      if (nextWordOnLine) {\n        column = nextWordOnLine.end + 1;\n      } else {\n        column = model.getLineMaxColumn(lineNumber);\n      }\n    } else if (wordNavigationType === 3) {\n      if (movedDown) {\n        column = 0;\n      }\n      while (nextWordOnLine \u0026\u0026 (nextWordOnLine.wordType === 2 || nextWordOnLine.start + 1 \u003c= column)) {\n        nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, nextWordOnLine.end + 1));\n      }\n      if (nextWordOnLine) {\n        column = nextWordOnLine.start + 1;\n      } else {\n        column = model.getLineMaxColumn(lineNumber);\n      }\n    } else {\n      if (nextWordOnLine \u0026\u0026 !movedDown \u0026\u0026 column \u003e= nextWordOnLine.start + 1) {\n        nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, nextWordOnLine.end + 1));\n      }\n      if (nextWordOnLine) {\n        column = nextWordOnLine.start + 1;\n      } else {\n        column = model.getLineMaxColumn(lineNumber);\n      }\n    }\n    return new Position(lineNumber, column);\n  }\n  static _moveWordPartRight(model, position) {\n    const lineNumber = position.lineNumber;\n    const maxColumn = model.getLineMaxColumn(lineNumber);\n    if (position.column === maxColumn) {\n      return lineNumber \u003c model.getLineCount() ? new Position(lineNumber + 1, 1) : position;\n    }\n    const lineContent = model.getLineContent(lineNumber);\n    for (let column = position.column + 1; column \u003c maxColumn; column++) {\n      const left = lineContent.charCodeAt(column - 2);\n      const right = lineContent.charCodeAt(column - 1);\n      if (left !== 95 \u0026\u0026 right === 95) {\n        return new Position(lineNumber, column);\n      }\n      if (left !== 45 \u0026\u0026 right === 45) {\n        return new Position(lineNumber, column);\n      }\n      if ((isLowerAsciiLetter(left) || isAsciiDigit(left)) \u0026\u0026 isUpperAsciiLetter(right)) {\n        return new Position(lineNumber, column);\n      }\n      if (isUpperAsciiLetter(left) \u0026\u0026 isUpperAsciiLetter(right)) {\n        if (column + 1 \u003c maxColumn) {\n          const rightRight = lineContent.charCodeAt(column);\n          if (isLowerAsciiLetter(rightRight) || isAsciiDigit(rightRight)) {\n            return new Position(lineNumber, column);\n          }\n        }\n      }\n    }\n    return new Position(lineNumber, maxColumn);\n  }\n  static _deleteWordLeftWhitespace(model, position) {\n    const lineContent = model.getLineContent(position.lineNumber);\n    const startIndex = position.column - 2;\n    const lastNonWhitespace = lastNonWhitespaceIndex(lineContent, startIndex);\n    if (lastNonWhitespace + 1 \u003c startIndex) {\n      return new Range(position.lineNumber, lastNonWhitespace + 2, position.lineNumber, position.column);\n    }\n    return null;\n  }\n  static deleteWordLeft(ctx, wordNavigationType) {\n    const wordSeparators2 = ctx.wordSeparators;\n    const model = ctx.model;\n    const selection = ctx.selection;\n    const whitespaceHeuristics = ctx.whitespaceHeuristics;\n    if (!selection.isEmpty()) {\n      return selection;\n    }\n    if (DeleteOperations.isAutoClosingPairDelete(ctx.autoClosingDelete, ctx.autoClosingBrackets, ctx.autoClosingQuotes, ctx.autoClosingPairs.autoClosingPairsOpenByEnd, ctx.model, [ctx.selection], ctx.autoClosedCharacters)) {\n      const position2 = ctx.selection.getPosition();\n      return new Range(position2.lineNumber, position2.column - 1, position2.lineNumber, position2.column + 1);\n    }\n    const position = new Position(selection.positionLineNumber, selection.positionColumn);\n    let lineNumber = position.lineNumber;\n    let column = position.column;\n    if (lineNumber === 1 \u0026\u0026 column === 1) {\n      return null;\n    }\n    if (whitespaceHeuristics) {\n      const r = this._deleteWordLeftWhitespace(model, position);\n      if (r) {\n        return r;\n      }\n    }\n    let prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, position);\n    if (wordNavigationType === 0) {\n      if (prevWordOnLine) {\n        column = prevWordOnLine.start + 1;\n      } else {\n        if (column \u003e 1) {\n          column = 1;\n        } else {\n          lineNumber--;\n          column = model.getLineMaxColumn(lineNumber);\n        }\n      }\n    } else {\n      if (prevWordOnLine \u0026\u0026 column \u003c= prevWordOnLine.end + 1) {\n        prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, new Position(lineNumber, prevWordOnLine.start + 1));\n      }\n      if (prevWordOnLine) {\n        column = prevWordOnLine.end + 1;\n      } else {\n        if (column \u003e 1) {\n          column = 1;\n        } else {\n          lineNumber--;\n          column = model.getLineMaxColumn(lineNumber);\n        }\n      }\n    }\n    return new Range(lineNumber, column, position.lineNumber, position.column);\n  }\n  static deleteInsideWord(wordSeparators2, model, selection) {\n    if (!selection.isEmpty()) {\n      return selection;\n    }\n    const position = new Position(selection.positionLineNumber, selection.positionColumn);\n    const r = this._deleteInsideWordWhitespace(model, position);\n    if (r) {\n      return r;\n    }\n    return this._deleteInsideWordDetermineDeleteRange(wordSeparators2, model, position);\n  }\n  static _charAtIsWhitespace(str, index) {\n    const charCode = str.charCodeAt(index);\n    return charCode === 32 || charCode === 9;\n  }\n  static _deleteInsideWordWhitespace(model, position) {\n    const lineContent = model.getLineContent(position.lineNumber);\n    const lineContentLength = lineContent.length;\n    if (lineContentLength === 0) {\n      return null;\n    }\n    let leftIndex = Math.max(position.column - 2, 0);\n    if (!this._charAtIsWhitespace(lineContent, leftIndex)) {\n      return null;\n    }\n    let rightIndex = Math.min(position.column - 1, lineContentLength - 1);\n    if (!this._charAtIsWhitespace(lineContent, rightIndex)) {\n      return null;\n    }\n    while (leftIndex \u003e 0 \u0026\u0026 this._charAtIsWhitespace(lineContent, leftIndex - 1)) {\n      leftIndex--;\n    }\n    while (rightIndex + 1 \u003c lineContentLength \u0026\u0026 this._charAtIsWhitespace(lineContent, rightIndex + 1)) {\n      rightIndex++;\n    }\n    return new Range(position.lineNumber, leftIndex + 1, position.lineNumber, rightIndex + 2);\n  }\n  static _deleteInsideWordDetermineDeleteRange(wordSeparators2, model, position) {\n    const lineContent = model.getLineContent(position.lineNumber);\n    const lineLength = lineContent.length;\n    if (lineLength === 0) {\n      if (position.lineNumber \u003e 1) {\n        return new Range(position.lineNumber - 1, model.getLineMaxColumn(position.lineNumber - 1), position.lineNumber, 1);\n      } else {\n        if (position.lineNumber \u003c model.getLineCount()) {\n          return new Range(position.lineNumber, 1, position.lineNumber + 1, 1);\n        } else {\n          return new Range(position.lineNumber, 1, position.lineNumber, 1);\n        }\n      }\n    }\n    const touchesWord = (word) =\u003e {\n      return word.start + 1 \u003c= position.column \u0026\u0026 position.column \u003c= word.end + 1;\n    };\n    const createRangeWithPosition = (startColumn, endColumn) =\u003e {\n      startColumn = Math.min(startColumn, position.column);\n      endColumn = Math.max(endColumn, position.column);\n      return new Range(position.lineNumber, startColumn, position.lineNumber, endColumn);\n    };\n    const deleteWordAndAdjacentWhitespace = (word) =\u003e {\n      let startColumn = word.start + 1;\n      let endColumn = word.end + 1;\n      let expandedToTheRight = false;\n      while (endColumn - 1 \u003c lineLength \u0026\u0026 this._charAtIsWhitespace(lineContent, endColumn - 1)) {\n        expandedToTheRight = true;\n        endColumn++;\n      }\n      if (!expandedToTheRight) {\n        while (startColumn \u003e 1 \u0026\u0026 this._charAtIsWhitespace(lineContent, startColumn - 2)) {\n          startColumn--;\n        }\n      }\n      return createRangeWithPosition(startColumn, endColumn);\n    };\n    const prevWordOnLine = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, position);\n    if (prevWordOnLine \u0026\u0026 touchesWord(prevWordOnLine)) {\n      return deleteWordAndAdjacentWhitespace(prevWordOnLine);\n    }\n    const nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, position);\n    if (nextWordOnLine \u0026\u0026 touchesWord(nextWordOnLine)) {\n      return deleteWordAndAdjacentWhitespace(nextWordOnLine);\n    }\n    if (prevWordOnLine \u0026\u0026 nextWordOnLine) {\n      return createRangeWithPosition(prevWordOnLine.end + 1, nextWordOnLine.start + 1);\n    }\n    if (prevWordOnLine) {\n      return createRangeWithPosition(prevWordOnLine.start + 1, prevWordOnLine.end + 1);\n    }\n    if (nextWordOnLine) {\n      return createRangeWithPosition(nextWordOnLine.start + 1, nextWordOnLine.end + 1);\n    }\n    return createRangeWithPosition(1, lineLength + 1);\n  }\n  static _deleteWordPartLeft(model, selection) {\n    if (!selection.isEmpty()) {\n      return selection;\n    }\n    const pos = selection.getPosition();\n    const toPosition = _WordOperations._moveWordPartLeft(model, pos);\n    return new Range(pos.lineNumber, pos.column, toPosition.lineNumber, toPosition.column);\n  }\n  static _findFirstNonWhitespaceChar(str, startIndex) {\n    const len = str.length;\n    for (let chIndex = startIndex; chIndex \u003c len; chIndex++) {\n      const ch = str.charAt(chIndex);\n      if (ch !== \" \" \u0026\u0026 ch !== \"\t\") {\n        return chIndex;\n      }\n    }\n    return len;\n  }\n  static _deleteWordRightWhitespace(model, position) {\n    const lineContent = model.getLineContent(position.lineNumber);\n    const startIndex = position.column - 1;\n    const firstNonWhitespace = this._findFirstNonWhitespaceChar(lineContent, startIndex);\n    if (startIndex + 1 \u003c firstNonWhitespace) {\n      return new Range(position.lineNumber, position.column, position.lineNumber, firstNonWhitespace + 1);\n    }\n    return null;\n  }\n  static deleteWordRight(ctx, wordNavigationType) {\n    const wordSeparators2 = ctx.wordSeparators;\n    const model = ctx.model;\n    const selection = ctx.selection;\n    const whitespaceHeuristics = ctx.whitespaceHeuristics;\n    if (!selection.isEmpty()) {\n      return selection;\n    }\n    const position = new Position(selection.positionLineNumber, selection.positionColumn);\n    let lineNumber = position.lineNumber;\n    let column = position.column;\n    const lineCount = model.getLineCount();\n    const maxColumn = model.getLineMaxColumn(lineNumber);\n    if (lineNumber === lineCount \u0026\u0026 column === maxColumn) {\n      return null;\n    }\n    if (whitespaceHeuristics) {\n      const r = this._deleteWordRightWhitespace(model, position);\n      if (r) {\n        return r;\n      }\n    }\n    let nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, position);\n    if (wordNavigationType === 2) {\n      if (nextWordOnLine) {\n        column = nextWordOnLine.end + 1;\n      } else {\n        if (column \u003c maxColumn || lineNumber === lineCount) {\n          column = maxColumn;\n        } else {\n          lineNumber++;\n          nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, 1));\n          if (nextWordOnLine) {\n            column = nextWordOnLine.start + 1;\n          } else {\n            column = model.getLineMaxColumn(lineNumber);\n          }\n        }\n      }\n    } else {\n      if (nextWordOnLine \u0026\u0026 column \u003e= nextWordOnLine.start + 1) {\n        nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, nextWordOnLine.end + 1));\n      }\n      if (nextWordOnLine) {\n        column = nextWordOnLine.start + 1;\n      } else {\n        if (column \u003c maxColumn || lineNumber === lineCount) {\n          column = maxColumn;\n        } else {\n          lineNumber++;\n          nextWordOnLine = _WordOperations._findNextWordOnLine(wordSeparators2, model, new Position(lineNumber, 1));\n          if (nextWordOnLine) {\n            column = nextWordOnLine.start + 1;\n          } else {\n            column = model.getLineMaxColumn(lineNumber);\n          }\n        }\n      }\n    }\n    return new Range(lineNumber, column, position.lineNumber, position.column);\n  }\n  static _deleteWordPartRight(model, selection) {\n    if (!selection.isEmpty()) {\n      return selection;\n    }\n    const pos = selection.getPosition();\n    const toPosition = _WordOperations._moveWordPartRight(model, pos);\n    return new Range(pos.lineNumber, pos.column, toPosition.lineNumber, toPosition.column);\n  }\n  static _createWordAtPosition(model, lineNumber, word) {\n    const range2 = new Range(lineNumber, word.start + 1, lineNumber, word.end + 1);\n    return {\n      word: model.getValueInRange(range2),\n      startColumn: range2.startColumn,\n      endColumn: range2.endColumn\n    };\n  }\n  static getWordAtPosition(model, _wordSeparators, _intlSegmenterLocales, position) {\n    const wordSeparators2 = getMapForWordSeparators(_wordSeparators, _intlSegmenterLocales);\n    const prevWord = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, position);\n    if (prevWord \u0026\u0026 prevWord.wordType === 1 \u0026\u0026 prevWord.start \u003c= position.column - 1 \u0026\u0026 position.column - 1 \u003c= prevWord.end) {\n      return _WordOperations._createWordAtPosition(model, position.lineNumber, prevWord);\n    }\n    const nextWord2 = _WordOperations._findNextWordOnLine(wordSeparators2, model, position);\n    if (nextWord2 \u0026\u0026 nextWord2.wordType === 1 \u0026\u0026 nextWord2.start \u003c= position.column - 1 \u0026\u0026 position.column - 1 \u003c= nextWord2.end) {\n      return _WordOperations._createWordAtPosition(model, position.lineNumber, nextWord2);\n    }\n    return null;\n  }\n  static word(config, model, cursor, inSelectionMode, position) {\n    const wordSeparators2 = getMapForWordSeparators(config.wordSeparators, config.wordSegmenterLocales);\n    const prevWord = _WordOperations._findPreviousWordOnLine(wordSeparators2, model, position);\n    const nextWord2 = _WordOperations._findNextWordOnLine(wordSeparators2, model, position);\n    if (!inSelectionMode) {\n      let startColumn2;\n      let endColumn2;\n      if (prevWord \u0026\u0026 prevWord.wordType === 1 \u0026\u0026 prevWord.start \u003c= position.column - 1 \u0026\u0026 position.column - 1 \u003c= prevWord.end) {\n        startColumn2 = prevWord.start + 1;\n        endColumn2 = prevWord.end + 1;\n      } else if (nextWord2 \u0026\u0026 nextWord2.wordType === 1 \u0026\u0026 nextWord2.start \u003c= position.column - 1 \u0026\u0026 position.column - 1 \u003c= nextWord2.end) {\n        startColumn2 = nextWord2.start + 1;\n        endColumn2 = nextWord2.end + 1;\n      } else {\n        if (prevWord) {\n          startColumn2 = prevWord.end + 1;\n        } else {\n          startColumn2 = 1;\n        }\n        if (nextWord2) {\n          endColumn2 = nextWord2.start + 1;\n        } else {\n          endColumn2 = model.getLineMaxColumn(position.lineNumber);\n        }\n      }\n      return new SingleCursorState(new Range(position.lineNumber, startColumn2, position.lineNumber, endColumn2), 1, 0, new Position(position.lineNumber, endColumn2), 0);\n    }\n    let startColumn;\n    let endColumn;\n    if (prevWord \u0026\u0026 prevWord.wordType === 1 \u0026\u0026 prevWord.start \u003c position.column - 1 \u0026\u0026 position.column - 1 \u003c prevWord.end) {\n      startColumn = prevWord.start + 1;\n      endColumn = prevWord.end + 1;\n    } else if (nextWord2 \u0026\u0026 nextWord2.wordType === 1 \u0026\u0026 nextWord2.start \u003c position.column - 1 \u0026\u0026 position.column - 1 \u003c nextWord2.end) {\n      startColumn = nextWord2.start + 1;\n      endColumn = nextWord2.end + 1;\n    } else {\n      startColumn = position.column;\n      endColumn = position.column;\n    }\n    const lineNumber = position.lineNumber;\n    let column;\n    if (cursor.selectionStart.containsPosition(position)) {\n      column = cursor.selectionStart.endColumn;\n    } else if (position.isBeforeOrEqual(cursor.selectionStart.getStartPosition())) {\n      column = startColumn;\n      const possiblePosition = new Position(lineNumber, column);\n      if (cursor.selectionStart.containsPosition(possiblePosition)) {\n        column = cursor.selectionStart.endColumn;\n      }\n    } else {\n      column = endColumn;\n      const possiblePosition = new Position(lineNumber, column);\n      if (cursor.selectionStart.containsPosition(possiblePosition)) {\n        column = cursor.selectionStart.startColumn;\n      }\n    }\n    return cursor.move(true, lineNumber, column, 0);\n  }\n};\nvar WordPartOperations = class extends WordOperations {\n  static deleteWordPartLeft(ctx) {\n    const candidates = enforceDefined([\n      WordOperations.deleteWordLeft(\n        ctx,\n        0\n        /* WordNavigationType.WordStart */\n      ),\n      WordOperations.deleteWordLeft(\n        ctx,\n        2\n        /* WordNavigationType.WordEnd */\n      ),\n      WordOperations._deleteWordPartLeft(ctx.model, ctx.selection)\n    ]);\n    candidates.sort(Range.compareRangesUsingEnds);\n    return candidates[2];\n  }\n  static deleteWordPartRight(ctx) {\n    const candidates = enforceDefined([\n      WordOperations.deleteWordRight(\n        ctx,\n        0\n        /* WordNavigationType.WordStart */\n      ),\n      WordOperations.deleteWordRight(\n        ctx,\n        2\n        /* WordNavigationType.WordEnd */\n      ),\n      WordOperations._deleteWordPartRight(ctx.model, ctx.selection)\n    ]);\n    candidates.sort(Range.compareRangesUsingStarts);\n    return candidates[0];\n  }\n  static moveWordPartLeft(wordSeparators2, model, position, hasMulticursor) {\n    const candidates = enforceDefined([\n      WordOperations.moveWordLeft(wordSeparators2, model, position, 0, hasMulticursor),\n      WordOperations.moveWordLeft(wordSeparators2, model, position, 2, hasMulticursor),\n      WordOperations._moveWordPartLeft(model, position)\n    ]);\n    candidates.sort(Position.compare);\n    return candidates[2];\n  }\n  static moveWordPartRight(wordSeparators2, model, position) {\n    const candidates = enforceDefined([\n      WordOperations.moveWordRight(\n        wordSeparators2,\n        model,\n        position,\n        0\n        /* WordNavigationType.WordStart */\n      ),\n      WordOperations.moveWordRight(\n        wordSeparators2,\n        model,\n        position,\n        2\n        /* WordNavigationType.WordEnd */\n      ),\n      WordOperations._moveWordPartRight(model, position)\n    ]);\n    candidates.sort(Position.compare);\n    return candidates[0];\n  }\n};\nfunction enforceDefined(arr) {\n  return arr.filter((el) =\u003e Boolean(el));\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorMoveCommands.js\ninit_position();\ninit_range();\ninit_model2();\nvar CursorMoveCommands = class {\n  static addCursorDown(viewModel, cursors, useLogicalLine) {\n    const result = [];\n    let resultLen = 0;\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState);\n      if (useLogicalLine) {\n        result[resultLen++] = CursorState.fromModelState(MoveOperations.translateDown(viewModel.cursorConfig, viewModel.model, cursor.modelState));\n      } else {\n        result[resultLen++] = CursorState.fromViewState(MoveOperations.translateDown(viewModel.cursorConfig, viewModel, cursor.viewState));\n      }\n    }\n    return result;\n  }\n  static addCursorUp(viewModel, cursors, useLogicalLine) {\n    const result = [];\n    let resultLen = 0;\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[resultLen++] = new CursorState(cursor.modelState, cursor.viewState);\n      if (useLogicalLine) {\n        result[resultLen++] = CursorState.fromModelState(MoveOperations.translateUp(viewModel.cursorConfig, viewModel.model, cursor.modelState));\n      } else {\n        result[resultLen++] = CursorState.fromViewState(MoveOperations.translateUp(viewModel.cursorConfig, viewModel, cursor.viewState));\n      }\n    }\n    return result;\n  }\n  static moveToBeginningOfLine(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[i2] = this._moveToLineStart(viewModel, cursor, inSelectionMode);\n    }\n    return result;\n  }\n  static _moveToLineStart(viewModel, cursor, inSelectionMode) {\n    const currentViewStateColumn = cursor.viewState.position.column;\n    const currentModelStateColumn = cursor.modelState.position.column;\n    const isFirstLineOfWrappedLine = currentViewStateColumn === currentModelStateColumn;\n    const currentViewStatelineNumber = cursor.viewState.position.lineNumber;\n    const firstNonBlankColumn = viewModel.getLineFirstNonWhitespaceColumn(currentViewStatelineNumber);\n    const isBeginningOfViewLine = currentViewStateColumn === firstNonBlankColumn;\n    if (!isFirstLineOfWrappedLine \u0026\u0026 !isBeginningOfViewLine) {\n      return this._moveToLineStartByView(viewModel, cursor, inSelectionMode);\n    } else {\n      return this._moveToLineStartByModel(viewModel, cursor, inSelectionMode);\n    }\n  }\n  static _moveToLineStartByView(viewModel, cursor, inSelectionMode) {\n    return CursorState.fromViewState(MoveOperations.moveToBeginningOfLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode));\n  }\n  static _moveToLineStartByModel(viewModel, cursor, inSelectionMode) {\n    return CursorState.fromModelState(MoveOperations.moveToBeginningOfLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n  }\n  static moveToEndOfLine(viewModel, cursors, inSelectionMode, sticky) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[i2] = this._moveToLineEnd(viewModel, cursor, inSelectionMode, sticky);\n    }\n    return result;\n  }\n  static _moveToLineEnd(viewModel, cursor, inSelectionMode, sticky) {\n    const viewStatePosition = cursor.viewState.position;\n    const viewModelMaxColumn = viewModel.getLineMaxColumn(viewStatePosition.lineNumber);\n    const isEndOfViewLine = viewStatePosition.column === viewModelMaxColumn;\n    const modelStatePosition = cursor.modelState.position;\n    const modelMaxColumn = viewModel.model.getLineMaxColumn(modelStatePosition.lineNumber);\n    const isEndLineOfWrappedLine = viewModelMaxColumn - viewStatePosition.column === modelMaxColumn - modelStatePosition.column;\n    if (isEndOfViewLine || isEndLineOfWrappedLine) {\n      return this._moveToLineEndByModel(viewModel, cursor, inSelectionMode, sticky);\n    } else {\n      return this._moveToLineEndByView(viewModel, cursor, inSelectionMode, sticky);\n    }\n  }\n  static _moveToLineEndByView(viewModel, cursor, inSelectionMode, sticky) {\n    return CursorState.fromViewState(MoveOperations.moveToEndOfLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, sticky));\n  }\n  static _moveToLineEndByModel(viewModel, cursor, inSelectionMode, sticky) {\n    return CursorState.fromModelState(MoveOperations.moveToEndOfLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, sticky));\n  }\n  static expandLineSelection(viewModel, cursors) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      const startLineNumber = cursor.modelState.selection.startLineNumber;\n      const lineCount = viewModel.model.getLineCount();\n      let endLineNumber = cursor.modelState.selection.endLineNumber;\n      let endColumn;\n      if (endLineNumber === lineCount) {\n        endColumn = viewModel.model.getLineMaxColumn(lineCount);\n      } else {\n        endLineNumber++;\n        endColumn = 1;\n      }\n      result[i2] = CursorState.fromModelState(new SingleCursorState(new Range(startLineNumber, 1, startLineNumber, 1), 0, 0, new Position(endLineNumber, endColumn), 0));\n    }\n    return result;\n  }\n  static moveToBeginningOfBuffer(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[i2] = CursorState.fromModelState(MoveOperations.moveToBeginningOfBuffer(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n    }\n    return result;\n  }\n  static moveToEndOfBuffer(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[i2] = CursorState.fromModelState(MoveOperations.moveToEndOfBuffer(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode));\n    }\n    return result;\n  }\n  static selectAll(viewModel, cursor) {\n    const lineCount = viewModel.model.getLineCount();\n    const maxColumn = viewModel.model.getLineMaxColumn(lineCount);\n    return CursorState.fromModelState(new SingleCursorState(new Range(1, 1, 1, 1), 0, 0, new Position(lineCount, maxColumn), 0));\n  }\n  static line(viewModel, cursor, inSelectionMode, _position, _viewPosition) {\n    const position = viewModel.model.validatePosition(_position);\n    const viewPosition = _viewPosition ? viewModel.coordinatesConverter.validateViewPosition(new Position(_viewPosition.lineNumber, _viewPosition.column), position) : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position);\n    if (!inSelectionMode) {\n      const lineCount = viewModel.model.getLineCount();\n      let selectToLineNumber = position.lineNumber + 1;\n      let selectToColumn = 1;\n      if (selectToLineNumber \u003e lineCount) {\n        selectToLineNumber = lineCount;\n        selectToColumn = viewModel.model.getLineMaxColumn(selectToLineNumber);\n      }\n      return CursorState.fromModelState(new SingleCursorState(new Range(position.lineNumber, 1, selectToLineNumber, selectToColumn), 2, 0, new Position(selectToLineNumber, selectToColumn), 0));\n    }\n    const enteringLineNumber = cursor.modelState.selectionStart.getStartPosition().lineNumber;\n    if (position.lineNumber \u003c enteringLineNumber) {\n      return CursorState.fromViewState(cursor.viewState.move(true, viewPosition.lineNumber, 1, 0));\n    } else if (position.lineNumber \u003e enteringLineNumber) {\n      const lineCount = viewModel.getLineCount();\n      let selectToViewLineNumber = viewPosition.lineNumber + 1;\n      let selectToViewColumn = 1;\n      if (selectToViewLineNumber \u003e lineCount) {\n        selectToViewLineNumber = lineCount;\n        selectToViewColumn = viewModel.getLineMaxColumn(selectToViewLineNumber);\n      }\n      return CursorState.fromViewState(cursor.viewState.move(true, selectToViewLineNumber, selectToViewColumn, 0));\n    } else {\n      const endPositionOfSelectionStart = cursor.modelState.selectionStart.getEndPosition();\n      return CursorState.fromModelState(cursor.modelState.move(true, endPositionOfSelectionStart.lineNumber, endPositionOfSelectionStart.column, 0));\n    }\n  }\n  static word(viewModel, cursor, inSelectionMode, _position) {\n    const position = viewModel.model.validatePosition(_position);\n    return CursorState.fromModelState(WordOperations.word(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, position));\n  }\n  static cancelSelection(viewModel, cursor) {\n    if (!cursor.modelState.hasSelection()) {\n      return new CursorState(cursor.modelState, cursor.viewState);\n    }\n    const lineNumber = cursor.viewState.position.lineNumber;\n    const column = cursor.viewState.position.column;\n    return CursorState.fromViewState(new SingleCursorState(new Range(lineNumber, column, lineNumber, column), 0, 0, new Position(lineNumber, column), 0));\n  }\n  static moveTo(viewModel, cursor, inSelectionMode, _position, _viewPosition) {\n    if (inSelectionMode) {\n      if (cursor.modelState.selectionStartKind === 1) {\n        return this.word(viewModel, cursor, inSelectionMode, _position);\n      }\n      if (cursor.modelState.selectionStartKind === 2) {\n        return this.line(viewModel, cursor, inSelectionMode, _position, _viewPosition);\n      }\n    }\n    const position = viewModel.model.validatePosition(_position);\n    const viewPosition = _viewPosition ? viewModel.coordinatesConverter.validateViewPosition(new Position(_viewPosition.lineNumber, _viewPosition.column), position) : viewModel.coordinatesConverter.convertModelPositionToViewPosition(position);\n    return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, viewPosition.lineNumber, viewPosition.column, 0));\n  }\n  static simpleMove(viewModel, cursors, direction, inSelectionMode, value, unit) {\n    switch (direction) {\n      case 0: {\n        if (unit === 4) {\n          return this._moveHalfLineLeft(viewModel, cursors, inSelectionMode);\n        } else {\n          return this._moveLeft(viewModel, cursors, inSelectionMode, value);\n        }\n      }\n      case 1: {\n        if (unit === 4) {\n          return this._moveHalfLineRight(viewModel, cursors, inSelectionMode);\n        } else {\n          return this._moveRight(viewModel, cursors, inSelectionMode, value);\n        }\n      }\n      case 2: {\n        if (unit === 2) {\n          return this._moveUpByViewLines(viewModel, cursors, inSelectionMode, value);\n        } else {\n          return this._moveUpByModelLines(viewModel, cursors, inSelectionMode, value);\n        }\n      }\n      case 3: {\n        if (unit === 2) {\n          return this._moveDownByViewLines(viewModel, cursors, inSelectionMode, value);\n        } else {\n          return this._moveDownByModelLines(viewModel, cursors, inSelectionMode, value);\n        }\n      }\n      case 4: {\n        if (unit === 2) {\n          return cursors.map((cursor) =\u003e CursorState.fromViewState(MoveOperations.moveToPrevBlankLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode)));\n        } else {\n          return cursors.map((cursor) =\u003e CursorState.fromModelState(MoveOperations.moveToPrevBlankLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode)));\n        }\n      }\n      case 5: {\n        if (unit === 2) {\n          return cursors.map((cursor) =\u003e CursorState.fromViewState(MoveOperations.moveToNextBlankLine(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode)));\n        } else {\n          return cursors.map((cursor) =\u003e CursorState.fromModelState(MoveOperations.moveToNextBlankLine(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode)));\n        }\n      }\n      case 6: {\n        return this._moveToViewMinColumn(viewModel, cursors, inSelectionMode);\n      }\n      case 7: {\n        return this._moveToViewFirstNonWhitespaceColumn(viewModel, cursors, inSelectionMode);\n      }\n      case 8: {\n        return this._moveToViewCenterColumn(viewModel, cursors, inSelectionMode);\n      }\n      case 9: {\n        return this._moveToViewMaxColumn(viewModel, cursors, inSelectionMode);\n      }\n      case 10: {\n        return this._moveToViewLastNonWhitespaceColumn(viewModel, cursors, inSelectionMode);\n      }\n      default:\n        return null;\n    }\n  }\n  static viewportMove(viewModel, cursors, direction, inSelectionMode, value) {\n    const visibleViewRange = viewModel.getCompletelyVisibleViewRange();\n    const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);\n    switch (direction) {\n      case 11: {\n        const modelLineNumber = this._firstLineNumberInRange(viewModel.model, visibleModelRange, value);\n        const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n        return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n      }\n      case 13: {\n        const modelLineNumber = this._lastLineNumberInRange(viewModel.model, visibleModelRange, value);\n        const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n        return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n      }\n      case 12: {\n        const modelLineNumber = Math.round((visibleModelRange.startLineNumber + visibleModelRange.endLineNumber) / 2);\n        const modelColumn = viewModel.model.getLineFirstNonWhitespaceColumn(modelLineNumber);\n        return [this._moveToModelPosition(viewModel, cursors[0], inSelectionMode, modelLineNumber, modelColumn)];\n      }\n      case 14: {\n        const result = [];\n        for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n          const cursor = cursors[i2];\n          result[i2] = this.findPositionInViewportIfOutside(viewModel, cursor, visibleViewRange, inSelectionMode);\n        }\n        return result;\n      }\n      default:\n        return null;\n    }\n  }\n  static findPositionInViewportIfOutside(viewModel, cursor, visibleViewRange, inSelectionMode) {\n    const viewLineNumber = cursor.viewState.position.lineNumber;\n    if (visibleViewRange.startLineNumber \u003c= viewLineNumber \u0026\u0026 viewLineNumber \u003c= visibleViewRange.endLineNumber - 1) {\n      return new CursorState(cursor.modelState, cursor.viewState);\n    } else {\n      let newViewLineNumber;\n      if (viewLineNumber \u003e visibleViewRange.endLineNumber - 1) {\n        newViewLineNumber = visibleViewRange.endLineNumber - 1;\n      } else if (viewLineNumber \u003c visibleViewRange.startLineNumber) {\n        newViewLineNumber = visibleViewRange.startLineNumber;\n      } else {\n        newViewLineNumber = viewLineNumber;\n      }\n      const position = MoveOperations.vertical(viewModel.cursorConfig, viewModel, viewLineNumber, cursor.viewState.position.column, cursor.viewState.leftoverVisibleColumns, newViewLineNumber, false);\n      return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, position.lineNumber, position.column, position.leftoverVisibleColumns));\n    }\n  }\n  /**\n   * Find the nth line start included in the range (from the start).\n   */\n  static _firstLineNumberInRange(model, range2, count) {\n    let startLineNumber = range2.startLineNumber;\n    if (range2.startColumn !== model.getLineMinColumn(startLineNumber)) {\n      startLineNumber++;\n    }\n    return Math.min(range2.endLineNumber, startLineNumber + count - 1);\n  }\n  /**\n   * Find the nth line start included in the range (from the end).\n   */\n  static _lastLineNumberInRange(model, range2, count) {\n    let startLineNumber = range2.startLineNumber;\n    if (range2.startColumn !== model.getLineMinColumn(startLineNumber)) {\n      startLineNumber++;\n    }\n    return Math.max(startLineNumber, range2.endLineNumber - count + 1);\n  }\n  static _moveLeft(viewModel, cursors, inSelectionMode, noOfColumns) {\n    return cursors.map((cursor) =\u003e {\n      const direction = viewModel.getTextDirection(cursor.viewState.position.lineNumber);\n      const isRtl = direction === TextDirection.RTL;\n      return CursorState.fromViewState(isRtl ? MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns) : MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns));\n    });\n  }\n  static _moveHalfLineLeft(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      const viewLineNumber = cursor.viewState.position.lineNumber;\n      const halfLine = Math.round(viewModel.getLineLength(viewLineNumber) / 2);\n      result[i2] = CursorState.fromViewState(MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, halfLine));\n    }\n    return result;\n  }\n  static _moveRight(viewModel, cursors, inSelectionMode, noOfColumns) {\n    return cursors.map((cursor) =\u003e {\n      const direction = viewModel.getTextDirection(cursor.viewState.position.lineNumber);\n      const isRtl = direction === TextDirection.RTL;\n      return CursorState.fromViewState(isRtl ? MoveOperations.moveLeft(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns) : MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, noOfColumns));\n    });\n  }\n  static _moveHalfLineRight(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      const viewLineNumber = cursor.viewState.position.lineNumber;\n      const halfLine = Math.round(viewModel.getLineLength(viewLineNumber) / 2);\n      result[i2] = CursorState.fromViewState(MoveOperations.moveRight(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, halfLine));\n    }\n    return result;\n  }\n  static _moveDownByViewLines(viewModel, cursors, inSelectionMode, linesCount) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[i2] = CursorState.fromViewState(MoveOperations.moveDown(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, linesCount));\n    }\n    return result;\n  }\n  static _moveDownByModelLines(viewModel, cursors, inSelectionMode, linesCount) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[i2] = CursorState.fromModelState(MoveOperations.moveDown(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, linesCount));\n    }\n    return result;\n  }\n  static _moveUpByViewLines(viewModel, cursors, inSelectionMode, linesCount) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[i2] = CursorState.fromViewState(MoveOperations.moveUp(viewModel.cursorConfig, viewModel, cursor.viewState, inSelectionMode, linesCount));\n    }\n    return result;\n  }\n  static _moveUpByModelLines(viewModel, cursors, inSelectionMode, linesCount) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      result[i2] = CursorState.fromModelState(MoveOperations.moveUp(viewModel.cursorConfig, viewModel.model, cursor.modelState, inSelectionMode, linesCount));\n    }\n    return result;\n  }\n  static _moveToViewPosition(viewModel, cursor, inSelectionMode, toViewLineNumber, toViewColumn) {\n    return CursorState.fromViewState(cursor.viewState.move(inSelectionMode, toViewLineNumber, toViewColumn, 0));\n  }\n  static _moveToModelPosition(viewModel, cursor, inSelectionMode, toModelLineNumber, toModelColumn) {\n    return CursorState.fromModelState(cursor.modelState.move(inSelectionMode, toModelLineNumber, toModelColumn, 0));\n  }\n  static _moveToViewMinColumn(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      const viewLineNumber = cursor.viewState.position.lineNumber;\n      const viewColumn = viewModel.getLineMinColumn(viewLineNumber);\n      result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n    }\n    return result;\n  }\n  static _moveToViewFirstNonWhitespaceColumn(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      const viewLineNumber = cursor.viewState.position.lineNumber;\n      const viewColumn = viewModel.getLineFirstNonWhitespaceColumn(viewLineNumber);\n      result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n    }\n    return result;\n  }\n  static _moveToViewCenterColumn(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      const viewLineNumber = cursor.viewState.position.lineNumber;\n      const viewColumn = Math.round((viewModel.getLineMaxColumn(viewLineNumber) + viewModel.getLineMinColumn(viewLineNumber)) / 2);\n      result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n    }\n    return result;\n  }\n  static _moveToViewMaxColumn(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      const viewLineNumber = cursor.viewState.position.lineNumber;\n      const viewColumn = viewModel.getLineMaxColumn(viewLineNumber);\n      result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n    }\n    return result;\n  }\n  static _moveToViewLastNonWhitespaceColumn(viewModel, cursors, inSelectionMode) {\n    const result = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      const cursor = cursors[i2];\n      const viewLineNumber = cursor.viewState.position.lineNumber;\n      const viewColumn = viewModel.getLineLastNonWhitespaceColumn(viewLineNumber);\n      result[i2] = this._moveToViewPosition(viewModel, cursor, inSelectionMode, viewLineNumber, viewColumn);\n    }\n    return result;\n  }\n};\nvar CursorMove;\n(function(CursorMove2) {\n  const isCursorMoveArgs = function(arg) {\n    if (!isObject(arg)) {\n      return false;\n    }\n    const cursorMoveArg = arg;\n    if (!isString(cursorMoveArg.to)) {\n      return false;\n    }\n    if (!isUndefined(cursorMoveArg.select) \u0026\u0026 !isBoolean(cursorMoveArg.select)) {\n      return false;\n    }\n    if (!isUndefined(cursorMoveArg.by) \u0026\u0026 !isString(cursorMoveArg.by)) {\n      return false;\n    }\n    if (!isUndefined(cursorMoveArg.value) \u0026\u0026 !isNumber(cursorMoveArg.value)) {\n      return false;\n    }\n    return true;\n  };\n  CursorMove2.metadata = {\n    description: \"Move cursor to a logical position in the view\",\n    args: [\n      {\n        name: \"Cursor move argument object\",\n        description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory logical position value providing where to move the cursor.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n\t\t\t\t\t\t'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n\t\t\t\t\t\t'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n\t\t\t\t\t\t'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'line', 'wrappedLine', 'character', 'halfLine'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'select': If 'true' makes the selection. Default is 'false'.\n\t\t\t\t`,\n        constraint: isCursorMoveArgs,\n        schema: {\n          \"type\": \"object\",\n          \"required\": [\"to\"],\n          \"properties\": {\n            \"to\": {\n              \"type\": \"string\",\n              \"enum\": [\"left\", \"right\", \"up\", \"down\", \"prevBlankLine\", \"nextBlankLine\", \"wrappedLineStart\", \"wrappedLineEnd\", \"wrappedLineColumnCenter\", \"wrappedLineFirstNonWhitespaceCharacter\", \"wrappedLineLastNonWhitespaceCharacter\", \"viewPortTop\", \"viewPortCenter\", \"viewPortBottom\", \"viewPortIfOutside\"]\n            },\n            \"by\": {\n              \"type\": \"string\",\n              \"enum\": [\"line\", \"wrappedLine\", \"character\", \"halfLine\"]\n            },\n            \"value\": {\n              \"type\": \"number\",\n              \"default\": 1\n            },\n            \"select\": {\n              \"type\": \"boolean\",\n              \"default\": false\n            }\n          }\n        }\n      }\n    ]\n  };\n  CursorMove2.RawDirection = {\n    Left: \"left\",\n    Right: \"right\",\n    Up: \"up\",\n    Down: \"down\",\n    PrevBlankLine: \"prevBlankLine\",\n    NextBlankLine: \"nextBlankLine\",\n    WrappedLineStart: \"wrappedLineStart\",\n    WrappedLineFirstNonWhitespaceCharacter: \"wrappedLineFirstNonWhitespaceCharacter\",\n    WrappedLineColumnCenter: \"wrappedLineColumnCenter\",\n    WrappedLineEnd: \"wrappedLineEnd\",\n    WrappedLineLastNonWhitespaceCharacter: \"wrappedLineLastNonWhitespaceCharacter\",\n    ViewPortTop: \"viewPortTop\",\n    ViewPortCenter: \"viewPortCenter\",\n    ViewPortBottom: \"viewPortBottom\",\n    ViewPortIfOutside: \"viewPortIfOutside\"\n  };\n  CursorMove2.RawUnit = {\n    Line: \"line\",\n    WrappedLine: \"wrappedLine\",\n    Character: \"character\",\n    HalfLine: \"halfLine\"\n  };\n  function parse4(args) {\n    if (!args.to) {\n      return null;\n    }\n    let direction;\n    switch (args.to) {\n      case CursorMove2.RawDirection.Left:\n        direction = 0;\n        break;\n      case CursorMove2.RawDirection.Right:\n        direction = 1;\n        break;\n      case CursorMove2.RawDirection.Up:\n        direction = 2;\n        break;\n      case CursorMove2.RawDirection.Down:\n        direction = 3;\n        break;\n      case CursorMove2.RawDirection.PrevBlankLine:\n        direction = 4;\n        break;\n      case CursorMove2.RawDirection.NextBlankLine:\n        direction = 5;\n        break;\n      case CursorMove2.RawDirection.WrappedLineStart:\n        direction = 6;\n        break;\n      case CursorMove2.RawDirection.WrappedLineFirstNonWhitespaceCharacter:\n        direction = 7;\n        break;\n      case CursorMove2.RawDirection.WrappedLineColumnCenter:\n        direction = 8;\n        break;\n      case CursorMove2.RawDirection.WrappedLineEnd:\n        direction = 9;\n        break;\n      case CursorMove2.RawDirection.WrappedLineLastNonWhitespaceCharacter:\n        direction = 10;\n        break;\n      case CursorMove2.RawDirection.ViewPortTop:\n        direction = 11;\n        break;\n      case CursorMove2.RawDirection.ViewPortBottom:\n        direction = 13;\n        break;\n      case CursorMove2.RawDirection.ViewPortCenter:\n        direction = 12;\n        break;\n      case CursorMove2.RawDirection.ViewPortIfOutside:\n        direction = 14;\n        break;\n      default:\n        return null;\n    }\n    let unit = 0;\n    switch (args.by) {\n      case CursorMove2.RawUnit.Line:\n        unit = 1;\n        break;\n      case CursorMove2.RawUnit.WrappedLine:\n        unit = 2;\n        break;\n      case CursorMove2.RawUnit.Character:\n        unit = 3;\n        break;\n      case CursorMove2.RawUnit.HalfLine:\n        unit = 4;\n        break;\n    }\n    return {\n      direction,\n      unit,\n      select: !!args.select,\n      value: args.value || 1\n    };\n  }\n  CursorMove2.parse = parse4;\n})(CursorMove || (CursorMove = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/commands/shiftCommand.js\ninit_strings();\ninit_cursorColumns();\ninit_range();\ninit_selection();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/enterAction.js\ninit_languageConfiguration();\ninit_languageConfigurationRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/indentationLineProcessor.js\ninit_strings();\ninit_supports();\ninit_lineTokens();\nvar ProcessedIndentRulesSupport = class {\n  constructor(model, indentRulesSupport, languageConfigurationService) {\n    this._indentRulesSupport = indentRulesSupport;\n    this._indentationLineProcessor = new IndentationLineProcessor(model, languageConfigurationService);\n  }\n  /**\n   * Apply the new indentation and return whether the indentation level should be increased after the given line number\n   */\n  shouldIncrease(lineNumber, newIndentation) {\n    const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n    return this._indentRulesSupport.shouldIncrease(processedLine);\n  }\n  /**\n   * Apply the new indentation and return whether the indentation level should be decreased after the given line number\n   */\n  shouldDecrease(lineNumber, newIndentation) {\n    const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n    return this._indentRulesSupport.shouldDecrease(processedLine);\n  }\n  /**\n   * Apply the new indentation and return whether the indentation level should remain unchanged at the given line number\n   */\n  shouldIgnore(lineNumber, newIndentation) {\n    const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n    return this._indentRulesSupport.shouldIgnore(processedLine);\n  }\n  /**\n   * Apply the new indentation and return whether the indentation level should increase on the line after the given line number\n   */\n  shouldIndentNextLine(lineNumber, newIndentation) {\n    const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n    return this._indentRulesSupport.shouldIndentNextLine(processedLine);\n  }\n};\nvar IndentationContextProcessor = class {\n  constructor(model, languageConfigurationService) {\n    this.model = model;\n    this.indentationLineProcessor = new IndentationLineProcessor(model, languageConfigurationService);\n  }\n  /**\n   * Returns the processed text, stripped from the language configuration brackets within the string, comment and regex tokens, around the given range\n   */\n  getProcessedTokenContextAroundRange(range2) {\n    const beforeRangeProcessedTokens = this._getProcessedTokensBeforeRange(range2);\n    const afterRangeProcessedTokens = this._getProcessedTokensAfterRange(range2);\n    const previousLineProcessedTokens = this._getProcessedPreviousLineTokens(range2);\n    return { beforeRangeProcessedTokens, afterRangeProcessedTokens, previousLineProcessedTokens };\n  }\n  _getProcessedTokensBeforeRange(range2) {\n    this.model.tokenization.forceTokenization(range2.startLineNumber);\n    const lineTokens = this.model.tokenization.getLineTokens(range2.startLineNumber);\n    const scopedLineTokens = createScopedLineTokens(lineTokens, range2.startColumn - 1);\n    let slicedTokens;\n    if (isLanguageDifferentFromLineStart(this.model, range2.getStartPosition())) {\n      const columnIndexWithinScope = range2.startColumn - 1 - scopedLineTokens.firstCharOffset;\n      const firstCharacterOffset = scopedLineTokens.firstCharOffset;\n      const lastCharacterOffset = firstCharacterOffset + columnIndexWithinScope;\n      slicedTokens = lineTokens.sliceAndInflate(firstCharacterOffset, lastCharacterOffset, 0);\n    } else {\n      const columnWithinLine = range2.startColumn - 1;\n      slicedTokens = lineTokens.sliceAndInflate(0, columnWithinLine, 0);\n    }\n    const processedTokens = this.indentationLineProcessor.getProcessedTokens(slicedTokens);\n    return processedTokens;\n  }\n  _getProcessedTokensAfterRange(range2) {\n    const position = range2.isEmpty() ? range2.getStartPosition() : range2.getEndPosition();\n    this.model.tokenization.forceTokenization(position.lineNumber);\n    const lineTokens = this.model.tokenization.getLineTokens(position.lineNumber);\n    const scopedLineTokens = createScopedLineTokens(lineTokens, position.column - 1);\n    const columnIndexWithinScope = position.column - 1 - scopedLineTokens.firstCharOffset;\n    const firstCharacterOffset = scopedLineTokens.firstCharOffset + columnIndexWithinScope;\n    const lastCharacterOffset = scopedLineTokens.firstCharOffset + scopedLineTokens.getLineLength();\n    const slicedTokens = lineTokens.sliceAndInflate(firstCharacterOffset, lastCharacterOffset, 0);\n    const processedTokens = this.indentationLineProcessor.getProcessedTokens(slicedTokens);\n    return processedTokens;\n  }\n  _getProcessedPreviousLineTokens(range2) {\n    const getScopedLineTokensAtEndColumnOfLine = (lineNumber) =\u003e {\n      this.model.tokenization.forceTokenization(lineNumber);\n      const lineTokens2 = this.model.tokenization.getLineTokens(lineNumber);\n      const endColumnOfLine = this.model.getLineMaxColumn(lineNumber) - 1;\n      const scopedLineTokensAtEndColumn = createScopedLineTokens(lineTokens2, endColumnOfLine);\n      return scopedLineTokensAtEndColumn;\n    };\n    this.model.tokenization.forceTokenization(range2.startLineNumber);\n    const lineTokens = this.model.tokenization.getLineTokens(range2.startLineNumber);\n    const scopedLineTokens = createScopedLineTokens(lineTokens, range2.startColumn - 1);\n    const emptyTokens = LineTokens.createEmpty(\"\", scopedLineTokens.languageIdCodec);\n    const previousLineNumber = range2.startLineNumber - 1;\n    const isFirstLine = previousLineNumber === 0;\n    if (isFirstLine) {\n      return emptyTokens;\n    }\n    const canScopeExtendOnPreviousLine = scopedLineTokens.firstCharOffset === 0;\n    if (!canScopeExtendOnPreviousLine) {\n      return emptyTokens;\n    }\n    const scopedLineTokensAtEndColumnOfPreviousLine = getScopedLineTokensAtEndColumnOfLine(previousLineNumber);\n    const doesLanguageContinueOnPreviousLine = scopedLineTokens.languageId === scopedLineTokensAtEndColumnOfPreviousLine.languageId;\n    if (!doesLanguageContinueOnPreviousLine) {\n      return emptyTokens;\n    }\n    const previousSlicedLineTokens = scopedLineTokensAtEndColumnOfPreviousLine.toIViewLineTokens();\n    const processedTokens = this.indentationLineProcessor.getProcessedTokens(previousSlicedLineTokens);\n    return processedTokens;\n  }\n};\nvar IndentationLineProcessor = class {\n  constructor(model, languageConfigurationService) {\n    this.model = model;\n    this.languageConfigurationService = languageConfigurationService;\n  }\n  /**\n   * Get the processed line for the given line number and potentially adjust the indentation level.\n   * Remove the language configuration brackets from the regex, string and comment tokens.\n   */\n  getProcessedLine(lineNumber, newIndentation) {\n    const replaceIndentation = (line, newIndentation2) =\u003e {\n      const currentIndentation = getLeadingWhitespace(line);\n      const adjustedLine = newIndentation2 + line.substring(currentIndentation.length);\n      return adjustedLine;\n    };\n    this.model.tokenization.forceTokenization?.(lineNumber);\n    const tokens = this.model.tokenization.getLineTokens(lineNumber);\n    let processedLine = this.getProcessedTokens(tokens).getLineContent();\n    if (newIndentation !== void 0) {\n      processedLine = replaceIndentation(processedLine, newIndentation);\n    }\n    return processedLine;\n  }\n  /**\n   * Process the line with the given tokens, remove the language configuration brackets from the regex, string and comment tokens.\n   */\n  getProcessedTokens(tokens) {\n    const shouldRemoveBracketsFromTokenType = (tokenType) =\u003e {\n      return tokenType === 2 || tokenType === 3 || tokenType === 1;\n    };\n    const languageId = tokens.getLanguageId(0);\n    const bracketsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n    const bracketsRegExp = bracketsConfiguration.getBracketRegExp({ global: true });\n    const textAndMetadata = [];\n    tokens.forEach((tokenIndex) =\u003e {\n      const tokenType = tokens.getStandardTokenType(tokenIndex);\n      let text2 = tokens.getTokenText(tokenIndex);\n      if (shouldRemoveBracketsFromTokenType(tokenType)) {\n        text2 = text2.replace(bracketsRegExp, \"\");\n      }\n      const metadata = tokens.getMetadata(tokenIndex);\n      textAndMetadata.push({ text: text2, metadata });\n    });\n    const processedLineTokens = LineTokens.createFromTextAndMetadata(textAndMetadata, tokens.languageIdCodec);\n    return processedLineTokens;\n  }\n};\nfunction isLanguageDifferentFromLineStart(model, position) {\n  model.tokenization.forceTokenization(position.lineNumber);\n  const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n  const scopedLineTokens = createScopedLineTokens(lineTokens, position.column - 1);\n  const doesScopeStartAtOffsetZero = scopedLineTokens.firstCharOffset === 0;\n  const isScopedLanguageEqualToFirstLanguageOnLine = lineTokens.getLanguageId(0) === scopedLineTokens.languageId;\n  const languageIsDifferentFromLineStart = !doesScopeStartAtOffsetZero \u0026\u0026 !isScopedLanguageEqualToFirstLanguageOnLine;\n  return languageIsDifferentFromLineStart;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/enterAction.js\nfunction getEnterAction(autoIndent, model, range2, languageConfigurationService) {\n  model.tokenization.forceTokenization(range2.startLineNumber);\n  const languageId = model.getLanguageIdAtPosition(range2.startLineNumber, range2.startColumn);\n  const richEditSupport = languageConfigurationService.getLanguageConfiguration(languageId);\n  if (!richEditSupport) {\n    return null;\n  }\n  const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);\n  const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range2);\n  const previousLineText = processedContextTokens.previousLineProcessedTokens.getLineContent();\n  const beforeEnterText = processedContextTokens.beforeRangeProcessedTokens.getLineContent();\n  const afterEnterText = processedContextTokens.afterRangeProcessedTokens.getLineContent();\n  const enterResult = richEditSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);\n  if (!enterResult) {\n    return null;\n  }\n  const indentAction = enterResult.indentAction;\n  let appendText = enterResult.appendText;\n  const removeText = enterResult.removeText || 0;\n  if (!appendText) {\n    if (indentAction === IndentAction.Indent || indentAction === IndentAction.IndentOutdent) {\n      appendText = \"\t\";\n    } else {\n      appendText = \"\";\n    }\n  } else if (indentAction === IndentAction.Indent) {\n    appendText = \"\t\" + appendText;\n  }\n  let indentation = getIndentationAtPosition(model, range2.startLineNumber, range2.startColumn);\n  if (removeText) {\n    indentation = indentation.substring(0, indentation.length - removeText);\n  }\n  return {\n    indentAction,\n    appendText,\n    removeText,\n    indentation\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/commands/shiftCommand.js\ninit_languageConfigurationRegistry();\nvar __decorate3 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param3 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ShiftCommand_1;\nvar repeatCache = /* @__PURE__ */ Object.create(null);\nfunction cachedStringRepeat(str, count) {\n  if (count \u003c= 0) {\n    return \"\";\n  }\n  if (!repeatCache[str]) {\n    repeatCache[str] = [\"\", str];\n  }\n  const cache = repeatCache[str];\n  for (let i2 = cache.length; i2 \u003c= count; i2++) {\n    cache[i2] = cache[i2 - 1] + str;\n  }\n  return cache[count];\n}\nvar ShiftCommand = ShiftCommand_1 = class ShiftCommand2 {\n  static unshiftIndent(line, column, tabSize, indentSize, insertSpaces) {\n    const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(line, column, tabSize);\n    if (insertSpaces) {\n      const indent = cachedStringRepeat(\" \", indentSize);\n      const desiredTabStop = CursorColumns.prevIndentTabStop(contentStartVisibleColumn, indentSize);\n      const indentCount = desiredTabStop / indentSize;\n      return cachedStringRepeat(indent, indentCount);\n    } else {\n      const indent = \"\t\";\n      const desiredTabStop = CursorColumns.prevRenderTabStop(contentStartVisibleColumn, tabSize);\n      const indentCount = desiredTabStop / tabSize;\n      return cachedStringRepeat(indent, indentCount);\n    }\n  }\n  static shiftIndent(line, column, tabSize, indentSize, insertSpaces) {\n    const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(line, column, tabSize);\n    if (insertSpaces) {\n      const indent = cachedStringRepeat(\" \", indentSize);\n      const desiredTabStop = CursorColumns.nextIndentTabStop(contentStartVisibleColumn, indentSize);\n      const indentCount = desiredTabStop / indentSize;\n      return cachedStringRepeat(indent, indentCount);\n    } else {\n      const indent = \"\t\";\n      const desiredTabStop = CursorColumns.nextRenderTabStop(contentStartVisibleColumn, tabSize);\n      const indentCount = desiredTabStop / tabSize;\n      return cachedStringRepeat(indent, indentCount);\n    }\n  }\n  constructor(range2, opts, _languageConfigurationService) {\n    this._languageConfigurationService = _languageConfigurationService;\n    this._opts = opts;\n    this._selection = range2;\n    this._selectionId = null;\n    this._useLastEditRangeForCursorEndPosition = false;\n    this._selectionStartColumnStaysPut = false;\n  }\n  _addEditOperation(builder, range2, text2) {\n    if (this._useLastEditRangeForCursorEndPosition) {\n      builder.addTrackedEditOperation(range2, text2);\n    } else {\n      builder.addEditOperation(range2, text2);\n    }\n  }\n  getEditOperations(model, builder) {\n    const startLine = this._selection.startLineNumber;\n    let endLine = this._selection.endLineNumber;\n    if (this._selection.endColumn === 1 \u0026\u0026 startLine !== endLine) {\n      endLine = endLine - 1;\n    }\n    const { tabSize, indentSize, insertSpaces } = this._opts;\n    const shouldIndentEmptyLines = startLine === endLine;\n    if (this._opts.useTabStops) {\n      if (this._selection.isEmpty()) {\n        if (/^\\s*$/.test(model.getLineContent(startLine))) {\n          this._useLastEditRangeForCursorEndPosition = true;\n        }\n      }\n      let previousLineExtraSpaces = 0, extraSpaces = 0;\n      for (let lineNumber = startLine; lineNumber \u003c= endLine; lineNumber++, previousLineExtraSpaces = extraSpaces) {\n        extraSpaces = 0;\n        const lineText = model.getLineContent(lineNumber);\n        let indentationEndIndex = firstNonWhitespaceIndex(lineText);\n        if (this._opts.isUnshift \u0026\u0026 (lineText.length === 0 || indentationEndIndex === 0)) {\n          continue;\n        }\n        if (!shouldIndentEmptyLines \u0026\u0026 !this._opts.isUnshift \u0026\u0026 lineText.length === 0) {\n          continue;\n        }\n        if (indentationEndIndex === -1) {\n          indentationEndIndex = lineText.length;\n        }\n        if (lineNumber \u003e 1) {\n          const contentStartVisibleColumn = CursorColumns.visibleColumnFromColumn(lineText, indentationEndIndex + 1, tabSize);\n          if (contentStartVisibleColumn % indentSize !== 0) {\n            if (model.tokenization.isCheapToTokenize(lineNumber - 1)) {\n              const enterAction = getEnterAction(this._opts.autoIndent, model, new Range(lineNumber - 1, model.getLineMaxColumn(lineNumber - 1), lineNumber - 1, model.getLineMaxColumn(lineNumber - 1)), this._languageConfigurationService);\n              if (enterAction) {\n                extraSpaces = previousLineExtraSpaces;\n                if (enterAction.appendText) {\n                  for (let j = 0, lenJ = enterAction.appendText.length; j \u003c lenJ \u0026\u0026 extraSpaces \u003c indentSize; j++) {\n                    if (enterAction.appendText.charCodeAt(j) === 32) {\n                      extraSpaces++;\n                    } else {\n                      break;\n                    }\n                  }\n                }\n                if (enterAction.removeText) {\n                  extraSpaces = Math.max(0, extraSpaces - enterAction.removeText);\n                }\n                for (let j = 0; j \u003c extraSpaces; j++) {\n                  if (indentationEndIndex === 0 || lineText.charCodeAt(indentationEndIndex - 1) !== 32) {\n                    break;\n                  }\n                  indentationEndIndex--;\n                }\n              }\n            }\n          }\n        }\n        if (this._opts.isUnshift \u0026\u0026 indentationEndIndex === 0) {\n          continue;\n        }\n        let desiredIndent;\n        if (this._opts.isUnshift) {\n          desiredIndent = ShiftCommand_1.unshiftIndent(lineText, indentationEndIndex + 1, tabSize, indentSize, insertSpaces);\n        } else {\n          desiredIndent = ShiftCommand_1.shiftIndent(lineText, indentationEndIndex + 1, tabSize, indentSize, insertSpaces);\n        }\n        this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, indentationEndIndex + 1), desiredIndent);\n        if (lineNumber === startLine \u0026\u0026 !this._selection.isEmpty()) {\n          this._selectionStartColumnStaysPut = this._selection.startColumn \u003c= indentationEndIndex + 1;\n        }\n      }\n    } else {\n      if (!this._opts.isUnshift \u0026\u0026 this._selection.isEmpty() \u0026\u0026 model.getLineLength(startLine) === 0) {\n        this._useLastEditRangeForCursorEndPosition = true;\n      }\n      const oneIndent = insertSpaces ? cachedStringRepeat(\" \", indentSize) : \"\t\";\n      for (let lineNumber = startLine; lineNumber \u003c= endLine; lineNumber++) {\n        const lineText = model.getLineContent(lineNumber);\n        let indentationEndIndex = firstNonWhitespaceIndex(lineText);\n        if (this._opts.isUnshift \u0026\u0026 (lineText.length === 0 || indentationEndIndex === 0)) {\n          continue;\n        }\n        if (!shouldIndentEmptyLines \u0026\u0026 !this._opts.isUnshift \u0026\u0026 lineText.length === 0) {\n          continue;\n        }\n        if (indentationEndIndex === -1) {\n          indentationEndIndex = lineText.length;\n        }\n        if (this._opts.isUnshift \u0026\u0026 indentationEndIndex === 0) {\n          continue;\n        }\n        if (this._opts.isUnshift) {\n          indentationEndIndex = Math.min(indentationEndIndex, indentSize);\n          for (let i2 = 0; i2 \u003c indentationEndIndex; i2++) {\n            const chr = lineText.charCodeAt(i2);\n            if (chr === 9) {\n              indentationEndIndex = i2 + 1;\n              break;\n            }\n          }\n          this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, indentationEndIndex + 1), \"\");\n        } else {\n          this._addEditOperation(builder, new Range(lineNumber, 1, lineNumber, 1), oneIndent);\n          if (lineNumber === startLine \u0026\u0026 !this._selection.isEmpty()) {\n            this._selectionStartColumnStaysPut = this._selection.startColumn === 1;\n          }\n        }\n      }\n    }\n    this._selectionId = builder.trackSelection(this._selection);\n  }\n  computeCursorState(model, helper) {\n    if (this._useLastEditRangeForCursorEndPosition) {\n      const lastOp = helper.getInverseEditOperations()[0];\n      return new Selection(lastOp.range.endLineNumber, lastOp.range.endColumn, lastOp.range.endLineNumber, lastOp.range.endColumn);\n    }\n    const result = helper.getTrackedSelection(this._selectionId);\n    if (this._selectionStartColumnStaysPut) {\n      const initialStartColumn = this._selection.startColumn;\n      const resultStartColumn = result.startColumn;\n      if (resultStartColumn \u003c= initialStartColumn) {\n        return result;\n      }\n      if (result.getDirection() === 0) {\n        return new Selection(result.startLineNumber, initialStartColumn, result.endLineNumber, result.endColumn);\n      }\n      return new Selection(result.endLineNumber, result.endColumn, result.startLineNumber, initialStartColumn);\n    }\n    return result;\n  }\n};\nShiftCommand = ShiftCommand_1 = __decorate3([\n  __param3(2, ILanguageConfigurationService)\n], ShiftCommand);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/commands/surroundSelectionCommand.js\ninit_range();\ninit_selection();\nvar SurroundSelectionCommand = class {\n  constructor(range2, charBeforeSelection, charAfterSelection) {\n    this._range = range2;\n    this._charBeforeSelection = charBeforeSelection;\n    this._charAfterSelection = charAfterSelection;\n  }\n  getEditOperations(model, builder) {\n    builder.addTrackedEditOperation(new Range(this._range.startLineNumber, this._range.startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection);\n    builder.addTrackedEditOperation(new Range(this._range.endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection || null);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const firstOperationRange = inverseEditOperations[0].range;\n    const secondOperationRange = inverseEditOperations[1].range;\n    return new Selection(firstOperationRange.endLineNumber, firstOperationRange.endColumn, secondOperationRange.endLineNumber, secondOperationRange.endColumn - this._charAfterSelection.length);\n  }\n};\nvar CompositionSurroundSelectionCommand = class {\n  constructor(_position, _text, _charAfter) {\n    this._position = _position;\n    this._text = _text;\n    this._charAfter = _charAfter;\n  }\n  getEditOperations(model, builder) {\n    builder.addTrackedEditOperation(new Range(this._position.lineNumber, this._position.column, this._position.lineNumber, this._position.column), this._text + this._charAfter);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const opRange = inverseEditOperations[0].range;\n    return new Selection(opRange.endLineNumber, opRange.startColumn, opRange.endLineNumber, opRange.endColumn - this._charAfter.length);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorTypeEditOperations.js\ninit_errors();\ninit_strings();\ninit_wordCharacterClassifier();\ninit_range();\ninit_position();\ninit_languageConfiguration();\ninit_languageConfigurationRegistry();\ninit_supports();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/autoIndent.js\ninit_strings();\ninit_languageConfiguration();\nfunction getPrecedingValidLine(model, lineNumber, processedIndentRulesSupport) {\n  const languageId = model.tokenization.getLanguageIdAtPosition(lineNumber, 0);\n  if (lineNumber \u003e 1) {\n    let lastLineNumber;\n    let resultLineNumber = -1;\n    for (lastLineNumber = lineNumber - 1; lastLineNumber \u003e= 1; lastLineNumber--) {\n      if (model.tokenization.getLanguageIdAtPosition(lastLineNumber, 0) !== languageId) {\n        return resultLineNumber;\n      }\n      const text2 = model.getLineContent(lastLineNumber);\n      if (processedIndentRulesSupport.shouldIgnore(lastLineNumber) || /^\\s+$/.test(text2) || text2 === \"\") {\n        resultLineNumber = lastLineNumber;\n        continue;\n      }\n      return lastLineNumber;\n    }\n  }\n  return -1;\n}\nfunction getInheritIndentForLine(autoIndent, model, lineNumber, honorIntentialIndent = true, languageConfigurationService) {\n  if (autoIndent \u003c 4) {\n    return null;\n  }\n  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(model.tokenization.getLanguageId()).indentRulesSupport;\n  if (!indentRulesSupport) {\n    return null;\n  }\n  const processedIndentRulesSupport = new ProcessedIndentRulesSupport(model, indentRulesSupport, languageConfigurationService);\n  if (lineNumber \u003c= 1) {\n    return {\n      indentation: \"\",\n      action: null\n    };\n  }\n  for (let priorLineNumber = lineNumber - 1; priorLineNumber \u003e 0; priorLineNumber--) {\n    if (model.getLineContent(priorLineNumber) !== \"\") {\n      break;\n    }\n    if (priorLineNumber === 1) {\n      return {\n        indentation: \"\",\n        action: null\n      };\n    }\n  }\n  const precedingUnIgnoredLine = getPrecedingValidLine(model, lineNumber, processedIndentRulesSupport);\n  if (precedingUnIgnoredLine \u003c 0) {\n    return null;\n  } else if (precedingUnIgnoredLine \u003c 1) {\n    return {\n      indentation: \"\",\n      action: null\n    };\n  }\n  if (processedIndentRulesSupport.shouldIncrease(precedingUnIgnoredLine) || processedIndentRulesSupport.shouldIndentNextLine(precedingUnIgnoredLine)) {\n    const precedingUnIgnoredLineContent = model.getLineContent(precedingUnIgnoredLine);\n    return {\n      indentation: getLeadingWhitespace(precedingUnIgnoredLineContent),\n      action: IndentAction.Indent,\n      line: precedingUnIgnoredLine\n    };\n  } else if (processedIndentRulesSupport.shouldDecrease(precedingUnIgnoredLine)) {\n    const precedingUnIgnoredLineContent = model.getLineContent(precedingUnIgnoredLine);\n    return {\n      indentation: getLeadingWhitespace(precedingUnIgnoredLineContent),\n      action: null,\n      line: precedingUnIgnoredLine\n    };\n  } else {\n    if (precedingUnIgnoredLine === 1) {\n      return {\n        indentation: getLeadingWhitespace(model.getLineContent(precedingUnIgnoredLine)),\n        action: null,\n        line: precedingUnIgnoredLine\n      };\n    }\n    const previousLine = precedingUnIgnoredLine - 1;\n    const previousLineIndentMetadata = indentRulesSupport.getIndentMetadata(model.getLineContent(previousLine));\n    if (!(previousLineIndentMetadata \u0026 (1 | 2)) \u0026\u0026 previousLineIndentMetadata \u0026 4) {\n      let stopLine = 0;\n      for (let i2 = previousLine - 1; i2 \u003e 0; i2--) {\n        if (processedIndentRulesSupport.shouldIndentNextLine(i2)) {\n          continue;\n        }\n        stopLine = i2;\n        break;\n      }\n      return {\n        indentation: getLeadingWhitespace(model.getLineContent(stopLine + 1)),\n        action: null,\n        line: stopLine + 1\n      };\n    }\n    if (honorIntentialIndent) {\n      return {\n        indentation: getLeadingWhitespace(model.getLineContent(precedingUnIgnoredLine)),\n        action: null,\n        line: precedingUnIgnoredLine\n      };\n    } else {\n      for (let i2 = precedingUnIgnoredLine; i2 \u003e 0; i2--) {\n        if (processedIndentRulesSupport.shouldIncrease(i2)) {\n          return {\n            indentation: getLeadingWhitespace(model.getLineContent(i2)),\n            action: IndentAction.Indent,\n            line: i2\n          };\n        } else if (processedIndentRulesSupport.shouldIndentNextLine(i2)) {\n          let stopLine = 0;\n          for (let j = i2 - 1; j \u003e 0; j--) {\n            if (processedIndentRulesSupport.shouldIndentNextLine(i2)) {\n              continue;\n            }\n            stopLine = j;\n            break;\n          }\n          return {\n            indentation: getLeadingWhitespace(model.getLineContent(stopLine + 1)),\n            action: null,\n            line: stopLine + 1\n          };\n        } else if (processedIndentRulesSupport.shouldDecrease(i2)) {\n          return {\n            indentation: getLeadingWhitespace(model.getLineContent(i2)),\n            action: null,\n            line: i2\n          };\n        }\n      }\n      return {\n        indentation: getLeadingWhitespace(model.getLineContent(1)),\n        action: null,\n        line: 1\n      };\n    }\n  }\n}\nfunction getGoodIndentForLine(autoIndent, virtualModel, languageId, lineNumber, indentConverter, languageConfigurationService) {\n  if (autoIndent \u003c 4) {\n    return null;\n  }\n  const richEditSupport = languageConfigurationService.getLanguageConfiguration(languageId);\n  if (!richEditSupport) {\n    return null;\n  }\n  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;\n  if (!indentRulesSupport) {\n    return null;\n  }\n  const processedIndentRulesSupport = new ProcessedIndentRulesSupport(virtualModel, indentRulesSupport, languageConfigurationService);\n  const indent = getInheritIndentForLine(autoIndent, virtualModel, lineNumber, void 0, languageConfigurationService);\n  if (indent) {\n    const inheritLine = indent.line;\n    if (inheritLine !== void 0) {\n      let shouldApplyEnterRules = true;\n      for (let inBetweenLine = inheritLine; inBetweenLine \u003c lineNumber - 1; inBetweenLine++) {\n        if (!/^\\s*$/.test(virtualModel.getLineContent(inBetweenLine))) {\n          shouldApplyEnterRules = false;\n          break;\n        }\n      }\n      if (shouldApplyEnterRules) {\n        const enterResult = richEditSupport.onEnter(autoIndent, \"\", virtualModel.getLineContent(inheritLine), \"\");\n        if (enterResult) {\n          let indentation = getLeadingWhitespace(virtualModel.getLineContent(inheritLine));\n          if (enterResult.removeText) {\n            indentation = indentation.substring(0, indentation.length - enterResult.removeText);\n          }\n          if (enterResult.indentAction === IndentAction.Indent || enterResult.indentAction === IndentAction.IndentOutdent) {\n            indentation = indentConverter.shiftIndent(indentation);\n          } else if (enterResult.indentAction === IndentAction.Outdent) {\n            indentation = indentConverter.unshiftIndent(indentation);\n          }\n          if (processedIndentRulesSupport.shouldDecrease(lineNumber)) {\n            indentation = indentConverter.unshiftIndent(indentation);\n          }\n          if (enterResult.appendText) {\n            indentation += enterResult.appendText;\n          }\n          return getLeadingWhitespace(indentation);\n        }\n      }\n    }\n    if (processedIndentRulesSupport.shouldDecrease(lineNumber)) {\n      if (indent.action === IndentAction.Indent) {\n        return indent.indentation;\n      } else {\n        return indentConverter.unshiftIndent(indent.indentation);\n      }\n    } else {\n      if (indent.action === IndentAction.Indent) {\n        return indentConverter.shiftIndent(indent.indentation);\n      } else {\n        return indent.indentation;\n      }\n    }\n  }\n  return null;\n}\nfunction getIndentForEnter(autoIndent, model, range2, indentConverter, languageConfigurationService) {\n  if (autoIndent \u003c 4) {\n    return null;\n  }\n  const languageId = model.getLanguageIdAtPosition(range2.startLineNumber, range2.startColumn);\n  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;\n  if (!indentRulesSupport) {\n    return null;\n  }\n  model.tokenization.forceTokenization(range2.startLineNumber);\n  const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);\n  const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range2);\n  const afterEnterProcessedTokens = processedContextTokens.afterRangeProcessedTokens;\n  const beforeEnterProcessedTokens = processedContextTokens.beforeRangeProcessedTokens;\n  const beforeEnterIndent = getLeadingWhitespace(beforeEnterProcessedTokens.getLineContent());\n  const virtualModel = createVirtualModelWithModifiedTokensAtLine(model, range2.startLineNumber, beforeEnterProcessedTokens);\n  const languageIsDifferentFromLineStart = isLanguageDifferentFromLineStart(model, range2.getStartPosition());\n  const currentLine = model.getLineContent(range2.startLineNumber);\n  const currentLineIndent = getLeadingWhitespace(currentLine);\n  const afterEnterAction = getInheritIndentForLine(autoIndent, virtualModel, range2.startLineNumber + 1, void 0, languageConfigurationService);\n  if (!afterEnterAction) {\n    const beforeEnter = languageIsDifferentFromLineStart ? currentLineIndent : beforeEnterIndent;\n    return {\n      beforeEnter,\n      afterEnter: beforeEnter\n    };\n  }\n  let afterEnterIndent = languageIsDifferentFromLineStart ? currentLineIndent : afterEnterAction.indentation;\n  if (afterEnterAction.action === IndentAction.Indent) {\n    afterEnterIndent = indentConverter.shiftIndent(afterEnterIndent);\n  }\n  if (indentRulesSupport.shouldDecrease(afterEnterProcessedTokens.getLineContent())) {\n    afterEnterIndent = indentConverter.unshiftIndent(afterEnterIndent);\n  }\n  return {\n    beforeEnter: languageIsDifferentFromLineStart ? currentLineIndent : beforeEnterIndent,\n    afterEnter: afterEnterIndent\n  };\n}\nfunction getIndentActionForType(cursorConfig, model, range2, ch, indentConverter, languageConfigurationService) {\n  const autoIndent = cursorConfig.autoIndent;\n  if (autoIndent \u003c 4) {\n    return null;\n  }\n  const languageIsDifferentFromLineStart = isLanguageDifferentFromLineStart(model, range2.getStartPosition());\n  if (languageIsDifferentFromLineStart) {\n    return null;\n  }\n  const languageId = model.getLanguageIdAtPosition(range2.startLineNumber, range2.startColumn);\n  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(languageId).indentRulesSupport;\n  if (!indentRulesSupport) {\n    return null;\n  }\n  const indentationContextProcessor = new IndentationContextProcessor(model, languageConfigurationService);\n  const processedContextTokens = indentationContextProcessor.getProcessedTokenContextAroundRange(range2);\n  const beforeRangeText = processedContextTokens.beforeRangeProcessedTokens.getLineContent();\n  const afterRangeText = processedContextTokens.afterRangeProcessedTokens.getLineContent();\n  const textAroundRange = beforeRangeText + afterRangeText;\n  const textAroundRangeWithCharacter = beforeRangeText + ch + afterRangeText;\n  if (!indentRulesSupport.shouldDecrease(textAroundRange) \u0026\u0026 indentRulesSupport.shouldDecrease(textAroundRangeWithCharacter)) {\n    const r = getInheritIndentForLine(autoIndent, model, range2.startLineNumber, false, languageConfigurationService);\n    if (!r) {\n      return null;\n    }\n    let indentation = r.indentation;\n    if (r.action !== IndentAction.Indent) {\n      indentation = indentConverter.unshiftIndent(indentation);\n    }\n    return indentation;\n  }\n  const previousLineNumber = range2.startLineNumber - 1;\n  if (previousLineNumber \u003e 0) {\n    const previousLine = model.getLineContent(previousLineNumber);\n    if (indentRulesSupport.shouldIndentNextLine(previousLine) \u0026\u0026 indentRulesSupport.shouldIncrease(textAroundRangeWithCharacter)) {\n      const inheritedIndentationData = getInheritIndentForLine(autoIndent, model, range2.startLineNumber, false, languageConfigurationService);\n      const inheritedIndentation = inheritedIndentationData?.indentation;\n      if (inheritedIndentation !== void 0) {\n        const currentLine = model.getLineContent(range2.startLineNumber);\n        const actualCurrentIndentation = getLeadingWhitespace(currentLine);\n        const inferredCurrentIndentation = indentConverter.shiftIndent(inheritedIndentation);\n        const inferredIndentationEqualsActual = inferredCurrentIndentation === actualCurrentIndentation;\n        const textAroundRangeContainsOnlyWhitespace = /^\\s*$/.test(textAroundRange);\n        const autoClosingPairs = cursorConfig.autoClosingPairs.autoClosingPairsOpenByEnd.get(ch);\n        const autoClosingPairExists = autoClosingPairs \u0026\u0026 autoClosingPairs.length \u003e 0;\n        const isChFirstNonWhitespaceCharacterAndInAutoClosingPair = autoClosingPairExists \u0026\u0026 textAroundRangeContainsOnlyWhitespace;\n        if (inferredIndentationEqualsActual \u0026\u0026 isChFirstNonWhitespaceCharacterAndInAutoClosingPair) {\n          return inheritedIndentation;\n        }\n      }\n    }\n  }\n  return null;\n}\nfunction getIndentMetadata(model, lineNumber, languageConfigurationService) {\n  const indentRulesSupport = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).indentRulesSupport;\n  if (!indentRulesSupport) {\n    return null;\n  }\n  if (lineNumber \u003c 1 || lineNumber \u003e model.getLineCount()) {\n    return null;\n  }\n  return indentRulesSupport.getIndentMetadata(model.getLineContent(lineNumber));\n}\nfunction createVirtualModelWithModifiedTokensAtLine(model, modifiedLineNumber, modifiedTokens) {\n  const virtualModel = {\n    tokenization: {\n      getLineTokens: (lineNumber) =\u003e {\n        if (lineNumber === modifiedLineNumber) {\n          return modifiedTokens;\n        } else {\n          return model.tokenization.getLineTokens(lineNumber);\n        }\n      },\n      getLanguageId: () =\u003e {\n        return model.getLanguageId();\n      },\n      getLanguageIdAtPosition: (lineNumber, column) =\u003e {\n        return model.getLanguageIdAtPosition(lineNumber, column);\n      }\n    },\n    getLineContent: (lineNumber) =\u003e {\n      if (lineNumber === modifiedLineNumber) {\n        return modifiedTokens.getLineContent();\n      } else {\n        return model.getLineContent(lineNumber);\n      }\n    }\n  };\n  return virtualModel;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorTypeEditOperations.js\nvar AutoIndentOperation = class {\n  static getEdits(config, model, selections, ch, isDoingComposition) {\n    if (!isDoingComposition \u0026\u0026 this._isAutoIndentType(config, model, selections)) {\n      const indentationForSelections = [];\n      for (const selection of selections) {\n        const indentation = this._findActualIndentationForSelection(config, model, selection, ch);\n        if (indentation === null) {\n          return;\n        }\n        indentationForSelections.push({ selection, indentation });\n      }\n      const autoClosingPairClose = AutoClosingOpenCharTypeOperation.getAutoClosingPairClose(config, model, selections, ch, false);\n      return this._getIndentationAndAutoClosingPairEdits(config, model, indentationForSelections, ch, autoClosingPairClose);\n    }\n    return;\n  }\n  static _isAutoIndentType(config, model, selections) {\n    if (config.autoIndent \u003c 4) {\n      return false;\n    }\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      if (!model.tokenization.isCheapToTokenize(selections[i2].getEndPosition().lineNumber)) {\n        return false;\n      }\n    }\n    return true;\n  }\n  static _findActualIndentationForSelection(config, model, selection, ch) {\n    const actualIndentation = getIndentActionForType(config, model, selection, ch, {\n      shiftIndent: (indentation) =\u003e {\n        return shiftIndent(config, indentation);\n      },\n      unshiftIndent: (indentation) =\u003e {\n        return unshiftIndent(config, indentation);\n      }\n    }, config.languageConfigurationService);\n    if (actualIndentation === null) {\n      return null;\n    }\n    const currentIndentation = getIndentationAtPosition(model, selection.startLineNumber, selection.startColumn);\n    if (actualIndentation === config.normalizeIndentation(currentIndentation)) {\n      return null;\n    }\n    return actualIndentation;\n  }\n  static _getIndentationAndAutoClosingPairEdits(config, model, indentationForSelections, ch, autoClosingPairClose) {\n    const commands = indentationForSelections.map(({ selection, indentation }) =\u003e {\n      if (autoClosingPairClose !== null) {\n        const indentationEdit = this._getEditFromIndentationAndSelection(config, model, indentation, selection, ch, false);\n        return new TypeWithIndentationAndAutoClosingCommand(indentationEdit, selection, ch, autoClosingPairClose);\n      } else {\n        const indentationEdit = this._getEditFromIndentationAndSelection(config, model, indentation, selection, ch, true);\n        return typeCommand(indentationEdit.range, indentationEdit.text, false);\n      }\n    });\n    const editOptions = { shouldPushStackElementBefore: true, shouldPushStackElementAfter: false };\n    return new EditOperationResult(4, commands, editOptions);\n  }\n  static _getEditFromIndentationAndSelection(config, model, indentation, selection, ch, includeChInEdit = true) {\n    const startLineNumber = selection.startLineNumber;\n    const firstNonWhitespaceColumn = model.getLineFirstNonWhitespaceColumn(startLineNumber);\n    let text2 = config.normalizeIndentation(indentation);\n    if (firstNonWhitespaceColumn !== 0) {\n      const startLine = model.getLineContent(startLineNumber);\n      text2 += startLine.substring(firstNonWhitespaceColumn - 1, selection.startColumn - 1);\n    }\n    text2 += includeChInEdit ? ch : \"\";\n    const range2 = new Range(startLineNumber, 1, selection.endLineNumber, selection.endColumn);\n    return { range: range2, text: text2 };\n  }\n};\nvar AutoClosingOvertypeOperation = class {\n  static getEdits(prevEditOperationType, config, model, selections, autoClosedCharacters, ch) {\n    if (isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {\n      return this._runAutoClosingOvertype(prevEditOperationType, selections, ch);\n    }\n    return;\n  }\n  static _runAutoClosingOvertype(prevEditOperationType, selections, ch) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      const position = selection.getPosition();\n      const typeSelection = new Range(position.lineNumber, position.column, position.lineNumber, position.column + 1);\n      commands[i2] = new ReplaceCommand(typeSelection, ch);\n    }\n    return new EditOperationResult(4, commands, {\n      shouldPushStackElementBefore: shouldPushStackElementBetween(\n        prevEditOperationType,\n        4\n        /* EditOperationType.TypingOther */\n      ),\n      shouldPushStackElementAfter: false\n    });\n  }\n};\nvar AutoClosingOvertypeWithInterceptorsOperation = class {\n  static getEdits(config, model, selections, autoClosedCharacters, ch) {\n    if (isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {\n      const commands = selections.map((s) =\u003e new ReplaceCommand(new Range(s.positionLineNumber, s.positionColumn, s.positionLineNumber, s.positionColumn + 1), \"\", false));\n      return new EditOperationResult(4, commands, {\n        shouldPushStackElementBefore: true,\n        shouldPushStackElementAfter: false\n      });\n    }\n    return;\n  }\n};\nvar AutoClosingOpenCharTypeOperation = class {\n  static getEdits(config, model, selections, ch, chIsAlreadyTyped, isDoingComposition) {\n    if (!isDoingComposition) {\n      const autoClosingPairClose = this.getAutoClosingPairClose(config, model, selections, ch, chIsAlreadyTyped);\n      if (autoClosingPairClose !== null) {\n        return this._runAutoClosingOpenCharType(selections, ch, chIsAlreadyTyped, autoClosingPairClose);\n      }\n    }\n    return;\n  }\n  static _runAutoClosingOpenCharType(selections, ch, chIsAlreadyTyped, autoClosingPairClose) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      commands[i2] = new TypeWithAutoClosingCommand(selection, ch, !chIsAlreadyTyped, autoClosingPairClose);\n    }\n    return new EditOperationResult(4, commands, {\n      shouldPushStackElementBefore: true,\n      shouldPushStackElementAfter: false\n    });\n  }\n  static getAutoClosingPairClose(config, model, selections, ch, chIsAlreadyTyped) {\n    for (const selection of selections) {\n      if (!selection.isEmpty()) {\n        return null;\n      }\n    }\n    const positions = selections.map((s) =\u003e {\n      const position = s.getPosition();\n      if (chIsAlreadyTyped) {\n        return { lineNumber: position.lineNumber, beforeColumn: position.column - ch.length, afterColumn: position.column };\n      } else {\n        return { lineNumber: position.lineNumber, beforeColumn: position.column, afterColumn: position.column };\n      }\n    });\n    const pair = this._findAutoClosingPairOpen(config, model, positions.map((p) =\u003e new Position(p.lineNumber, p.beforeColumn)), ch);\n    if (!pair) {\n      return null;\n    }\n    let autoCloseConfig;\n    let shouldAutoCloseBefore;\n    const chIsQuote = isQuote(ch);\n    if (chIsQuote) {\n      autoCloseConfig = config.autoClosingQuotes;\n      shouldAutoCloseBefore = config.shouldAutoCloseBefore.quote;\n    } else {\n      const pairIsForComments = config.blockCommentStartToken ? pair.open.includes(config.blockCommentStartToken) : false;\n      if (pairIsForComments) {\n        autoCloseConfig = config.autoClosingComments;\n        shouldAutoCloseBefore = config.shouldAutoCloseBefore.comment;\n      } else {\n        autoCloseConfig = config.autoClosingBrackets;\n        shouldAutoCloseBefore = config.shouldAutoCloseBefore.bracket;\n      }\n    }\n    if (autoCloseConfig === \"never\") {\n      return null;\n    }\n    const containedPair = this._findContainedAutoClosingPair(config, pair);\n    const containedPairClose = containedPair ? containedPair.close : \"\";\n    let isContainedPairPresent = true;\n    for (const position of positions) {\n      const { lineNumber, beforeColumn, afterColumn } = position;\n      const lineText = model.getLineContent(lineNumber);\n      const lineBefore = lineText.substring(0, beforeColumn - 1);\n      const lineAfter = lineText.substring(afterColumn - 1);\n      if (!lineAfter.startsWith(containedPairClose)) {\n        isContainedPairPresent = false;\n      }\n      if (lineAfter.length \u003e 0) {\n        const characterAfter = lineAfter.charAt(0);\n        const isBeforeCloseBrace = this._isBeforeClosingBrace(config, lineAfter);\n        if (!isBeforeCloseBrace \u0026\u0026 !shouldAutoCloseBefore(characterAfter)) {\n          return null;\n        }\n      }\n      if (pair.open.length === 1 \u0026\u0026 (ch === \"'\" || ch === '\"') \u0026\u0026 autoCloseConfig !== \"always\") {\n        const wordSeparators2 = getMapForWordSeparators(config.wordSeparators, []);\n        if (lineBefore.length \u003e 0) {\n          const characterBefore = lineBefore.charCodeAt(lineBefore.length - 1);\n          if (wordSeparators2.get(characterBefore) === 0) {\n            return null;\n          }\n        }\n      }\n      if (!model.tokenization.isCheapToTokenize(lineNumber)) {\n        return null;\n      }\n      model.tokenization.forceTokenization(lineNumber);\n      const lineTokens = model.tokenization.getLineTokens(lineNumber);\n      const scopedLineTokens = createScopedLineTokens(lineTokens, beforeColumn - 1);\n      if (!pair.shouldAutoClose(scopedLineTokens, beforeColumn - scopedLineTokens.firstCharOffset)) {\n        return null;\n      }\n      const neutralCharacter = pair.findNeutralCharacter();\n      if (neutralCharacter) {\n        const tokenType = model.tokenization.getTokenTypeIfInsertingCharacter(lineNumber, beforeColumn, neutralCharacter);\n        if (!pair.isOK(tokenType)) {\n          return null;\n        }\n      }\n    }\n    if (isContainedPairPresent) {\n      return pair.close.substring(0, pair.close.length - containedPairClose.length);\n    } else {\n      return pair.close;\n    }\n  }\n  /**\n   * Find another auto-closing pair that is contained by the one passed in.\n   *\n   * e.g. when having [(,)] and [(*,*)] as auto-closing pairs\n   * this method will find [(,)] as a containment pair for [(*,*)]\n   */\n  static _findContainedAutoClosingPair(config, pair) {\n    if (pair.open.length \u003c= 1) {\n      return null;\n    }\n    const lastChar = pair.close.charAt(pair.close.length - 1);\n    const candidates = config.autoClosingPairs.autoClosingPairsCloseByEnd.get(lastChar) || [];\n    let result = null;\n    for (const candidate of candidates) {\n      if (candidate.open !== pair.open \u0026\u0026 pair.open.includes(candidate.open) \u0026\u0026 pair.close.endsWith(candidate.close)) {\n        if (!result || candidate.open.length \u003e result.open.length) {\n          result = candidate;\n        }\n      }\n    }\n    return result;\n  }\n  /**\n   * Determine if typing `ch` at all `positions` in the `model` results in an\n   * auto closing open sequence being typed.\n   *\n   * Auto closing open sequences can consist of multiple characters, which\n   * can lead to ambiguities. In such a case, the longest auto-closing open\n   * sequence is returned.\n   */\n  static _findAutoClosingPairOpen(config, model, positions, ch) {\n    const candidates = config.autoClosingPairs.autoClosingPairsOpenByEnd.get(ch);\n    if (!candidates) {\n      return null;\n    }\n    let result = null;\n    for (const candidate of candidates) {\n      if (result === null || candidate.open.length \u003e result.open.length) {\n        let candidateIsMatch = true;\n        for (const position of positions) {\n          const relevantText = model.getValueInRange(new Range(position.lineNumber, position.column - candidate.open.length + 1, position.lineNumber, position.column));\n          if (relevantText + ch !== candidate.open) {\n            candidateIsMatch = false;\n            break;\n          }\n        }\n        if (candidateIsMatch) {\n          result = candidate;\n        }\n      }\n    }\n    return result;\n  }\n  static _isBeforeClosingBrace(config, lineAfter) {\n    const nextChar = lineAfter.charAt(0);\n    const potentialStartingBraces = config.autoClosingPairs.autoClosingPairsOpenByStart.get(nextChar) || [];\n    const potentialClosingBraces = config.autoClosingPairs.autoClosingPairsCloseByStart.get(nextChar) || [];\n    const isBeforeStartingBrace = potentialStartingBraces.some((x) =\u003e lineAfter.startsWith(x.open));\n    const isBeforeClosingBrace = potentialClosingBraces.some((x) =\u003e lineAfter.startsWith(x.close));\n    return !isBeforeStartingBrace \u0026\u0026 isBeforeClosingBrace;\n  }\n};\nvar CompositionEndOvertypeOperation = class {\n  static getEdits(config, compositions) {\n    const isOvertypeMode = config.inputMode === \"overtype\";\n    if (!isOvertypeMode) {\n      return null;\n    }\n    const commands = compositions.map((composition) =\u003e new ReplaceOvertypeCommandOnCompositionEnd(composition.insertedTextRange));\n    return new EditOperationResult(4, commands, {\n      shouldPushStackElementBefore: true,\n      shouldPushStackElementAfter: false\n    });\n  }\n};\nvar SurroundSelectionOperation = class {\n  static getEdits(config, model, selections, ch, isDoingComposition) {\n    if (!isDoingComposition \u0026\u0026 this._isSurroundSelectionType(config, model, selections, ch)) {\n      return this._runSurroundSelectionType(config, selections, ch);\n    }\n    return;\n  }\n  static _runSurroundSelectionType(config, selections, ch) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      const closeCharacter = config.surroundingPairs[ch];\n      commands[i2] = new SurroundSelectionCommand(selection, ch, closeCharacter);\n    }\n    return new EditOperationResult(0, commands, {\n      shouldPushStackElementBefore: true,\n      shouldPushStackElementAfter: true\n    });\n  }\n  static _isSurroundSelectionType(config, model, selections, ch) {\n    if (!shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {\n      return false;\n    }\n    const isTypingAQuoteCharacter = isQuote(ch);\n    for (const selection of selections) {\n      if (selection.isEmpty()) {\n        return false;\n      }\n      let selectionContainsOnlyWhitespace = true;\n      for (let lineNumber = selection.startLineNumber; lineNumber \u003c= selection.endLineNumber; lineNumber++) {\n        const lineText = model.getLineContent(lineNumber);\n        const startIndex = lineNumber === selection.startLineNumber ? selection.startColumn - 1 : 0;\n        const endIndex = lineNumber === selection.endLineNumber ? selection.endColumn - 1 : lineText.length;\n        const selectedText = lineText.substring(startIndex, endIndex);\n        if (/[^ \\t]/.test(selectedText)) {\n          selectionContainsOnlyWhitespace = false;\n          break;\n        }\n      }\n      if (selectionContainsOnlyWhitespace) {\n        return false;\n      }\n      if (isTypingAQuoteCharacter \u0026\u0026 selection.startLineNumber === selection.endLineNumber \u0026\u0026 selection.startColumn + 1 === selection.endColumn) {\n        const selectionText = model.getValueInRange(selection);\n        if (isQuote(selectionText)) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n};\nvar InterceptorElectricCharOperation = class {\n  static getEdits(prevEditOperationType, config, model, selections, ch, isDoingComposition) {\n    if (!isDoingComposition \u0026\u0026 this._isTypeInterceptorElectricChar(config, model, selections)) {\n      const r = this._typeInterceptorElectricChar(prevEditOperationType, config, model, selections[0], ch);\n      if (r) {\n        return r;\n      }\n    }\n    return;\n  }\n  static _isTypeInterceptorElectricChar(config, model, selections) {\n    if (selections.length === 1 \u0026\u0026 model.tokenization.isCheapToTokenize(selections[0].getEndPosition().lineNumber)) {\n      return true;\n    }\n    return false;\n  }\n  static _typeInterceptorElectricChar(prevEditOperationType, config, model, selection, ch) {\n    if (!config.electricChars.hasOwnProperty(ch) || !selection.isEmpty()) {\n      return null;\n    }\n    const position = selection.getPosition();\n    model.tokenization.forceTokenization(position.lineNumber);\n    const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n    let electricAction;\n    try {\n      electricAction = config.onElectricCharacter(ch, lineTokens, position.column);\n    } catch (e) {\n      onUnexpectedError(e);\n      return null;\n    }\n    if (!electricAction) {\n      return null;\n    }\n    if (electricAction.matchOpenBracket) {\n      const endColumn = (lineTokens.getLineContent() + ch).lastIndexOf(electricAction.matchOpenBracket) + 1;\n      const match2 = model.bracketPairs.findMatchingBracketUp(\n        electricAction.matchOpenBracket,\n        {\n          lineNumber: position.lineNumber,\n          column: endColumn\n        },\n        500\n        /* give at most 500ms to compute */\n      );\n      if (match2) {\n        if (match2.startLineNumber === position.lineNumber) {\n          return null;\n        }\n        const matchLine = model.getLineContent(match2.startLineNumber);\n        const matchLineIndentation = getLeadingWhitespace(matchLine);\n        const newIndentation = config.normalizeIndentation(matchLineIndentation);\n        const lineText = model.getLineContent(position.lineNumber);\n        const lineFirstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(position.lineNumber) || position.column;\n        const prefix = lineText.substring(lineFirstNonBlankColumn - 1, position.column - 1);\n        const typeText = newIndentation + prefix + ch;\n        const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, position.column);\n        const command = new ReplaceCommand(typeSelection, typeText);\n        return new EditOperationResult(getTypingOperation(typeText, prevEditOperationType), [command], {\n          shouldPushStackElementBefore: false,\n          shouldPushStackElementAfter: true\n        });\n      }\n    }\n    return null;\n  }\n};\nvar SimpleCharacterTypeOperation = class {\n  static getEdits(config, prevEditOperationType, selections, ch, isDoingComposition) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const ChosenReplaceCommand = config.inputMode === \"overtype\" \u0026\u0026 !isDoingComposition ? ReplaceOvertypeCommand : ReplaceCommand;\n      commands[i2] = new ChosenReplaceCommand(selections[i2], ch);\n    }\n    const opType = getTypingOperation(ch, prevEditOperationType);\n    return new EditOperationResult(opType, commands, {\n      shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),\n      shouldPushStackElementAfter: false\n    });\n  }\n};\nvar EnterOperation = class {\n  static getEdits(config, model, selections, ch, isDoingComposition) {\n    if (!isDoingComposition \u0026\u0026 ch === \"\\n\") {\n      const commands = [];\n      for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n        commands[i2] = this._enter(config, model, false, selections[i2]);\n      }\n      return new EditOperationResult(4, commands, {\n        shouldPushStackElementBefore: true,\n        shouldPushStackElementAfter: false\n      });\n    }\n    return;\n  }\n  static _enter(config, model, keepPosition, range2) {\n    if (config.autoIndent === 0) {\n      return typeCommand(range2, \"\\n\", keepPosition);\n    }\n    if (!model.tokenization.isCheapToTokenize(range2.getStartPosition().lineNumber) || config.autoIndent === 1) {\n      const lineText2 = model.getLineContent(range2.startLineNumber);\n      const indentation2 = getLeadingWhitespace(lineText2).substring(0, range2.startColumn - 1);\n      return typeCommand(range2, \"\\n\" + config.normalizeIndentation(indentation2), keepPosition);\n    }\n    const r = getEnterAction(config.autoIndent, model, range2, config.languageConfigurationService);\n    if (r) {\n      if (r.indentAction === IndentAction.None) {\n        return typeCommand(range2, \"\\n\" + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);\n      } else if (r.indentAction === IndentAction.Indent) {\n        return typeCommand(range2, \"\\n\" + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);\n      } else if (r.indentAction === IndentAction.IndentOutdent) {\n        const normalIndent = config.normalizeIndentation(r.indentation);\n        const increasedIndent = config.normalizeIndentation(r.indentation + r.appendText);\n        const typeText = \"\\n\" + increasedIndent + \"\\n\" + normalIndent;\n        if (keepPosition) {\n          return new ReplaceCommandWithoutChangingPosition(range2, typeText, true);\n        } else {\n          return new ReplaceCommandWithOffsetCursorState(range2, typeText, -1, increasedIndent.length - normalIndent.length, true);\n        }\n      } else if (r.indentAction === IndentAction.Outdent) {\n        const actualIndentation = unshiftIndent(config, r.indentation);\n        return typeCommand(range2, \"\\n\" + config.normalizeIndentation(actualIndentation + r.appendText), keepPosition);\n      }\n    }\n    const lineText = model.getLineContent(range2.startLineNumber);\n    const indentation = getLeadingWhitespace(lineText).substring(0, range2.startColumn - 1);\n    if (config.autoIndent \u003e= 4) {\n      const ir = getIndentForEnter(config.autoIndent, model, range2, {\n        unshiftIndent: (indent) =\u003e {\n          return unshiftIndent(config, indent);\n        },\n        shiftIndent: (indent) =\u003e {\n          return shiftIndent(config, indent);\n        },\n        normalizeIndentation: (indent) =\u003e {\n          return config.normalizeIndentation(indent);\n        }\n      }, config.languageConfigurationService);\n      if (ir) {\n        let oldEndViewColumn = config.visibleColumnFromColumn(model, range2.getEndPosition());\n        const oldEndColumn = range2.endColumn;\n        const newLineContent = model.getLineContent(range2.endLineNumber);\n        const firstNonWhitespace = firstNonWhitespaceIndex(newLineContent);\n        if (firstNonWhitespace \u003e= 0) {\n          range2 = range2.setEndPosition(range2.endLineNumber, Math.max(range2.endColumn, firstNonWhitespace + 1));\n        } else {\n          range2 = range2.setEndPosition(range2.endLineNumber, model.getLineMaxColumn(range2.endLineNumber));\n        }\n        if (keepPosition) {\n          return new ReplaceCommandWithoutChangingPosition(range2, \"\\n\" + config.normalizeIndentation(ir.afterEnter), true);\n        } else {\n          let offset = 0;\n          if (oldEndColumn \u003c= firstNonWhitespace + 1) {\n            if (!config.insertSpaces) {\n              oldEndViewColumn = Math.ceil(oldEndViewColumn / config.indentSize);\n            }\n            offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0);\n          }\n          return new ReplaceCommandWithOffsetCursorState(range2, \"\\n\" + config.normalizeIndentation(ir.afterEnter), 0, offset, true);\n        }\n      }\n    }\n    return typeCommand(range2, \"\\n\" + config.normalizeIndentation(indentation), keepPosition);\n  }\n  static lineInsertBefore(config, model, selections) {\n    if (model === null || selections === null) {\n      return [];\n    }\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      let lineNumber = selections[i2].positionLineNumber;\n      if (lineNumber === 1) {\n        commands[i2] = new ReplaceCommandWithoutChangingPosition(new Range(1, 1, 1, 1), \"\\n\");\n      } else {\n        lineNumber--;\n        const column = model.getLineMaxColumn(lineNumber);\n        commands[i2] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));\n      }\n    }\n    return commands;\n  }\n  static lineInsertAfter(config, model, selections) {\n    if (model === null || selections === null) {\n      return [];\n    }\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const lineNumber = selections[i2].positionLineNumber;\n      const column = model.getLineMaxColumn(lineNumber);\n      commands[i2] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));\n    }\n    return commands;\n  }\n  static lineBreakInsert(config, model, selections) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      commands[i2] = this._enter(config, model, true, selections[i2]);\n    }\n    return commands;\n  }\n};\nvar PasteOperation = class {\n  static getEdits(config, model, selections, text2, pasteOnNewLine, multicursorText) {\n    const distributedPaste = this._distributePasteToCursors(config, selections, text2, pasteOnNewLine, multicursorText);\n    if (distributedPaste) {\n      selections = selections.sort(Range.compareRangesUsingStarts);\n      return this._distributedPaste(config, model, selections, distributedPaste);\n    } else {\n      return this._simplePaste(config, model, selections, text2, pasteOnNewLine);\n    }\n  }\n  static _distributePasteToCursors(config, selections, text2, pasteOnNewLine, multicursorText) {\n    if (pasteOnNewLine) {\n      return null;\n    }\n    if (selections.length === 1) {\n      return null;\n    }\n    if (multicursorText \u0026\u0026 multicursorText.length === selections.length) {\n      return multicursorText;\n    }\n    if (config.multiCursorPaste === \"spread\") {\n      if (text2.charCodeAt(text2.length - 1) === 10) {\n        text2 = text2.substring(0, text2.length - 1);\n      }\n      if (text2.charCodeAt(text2.length - 1) === 13) {\n        text2 = text2.substring(0, text2.length - 1);\n      }\n      const lines = splitLines(text2);\n      if (lines.length === selections.length) {\n        return lines;\n      }\n    }\n    return null;\n  }\n  static _distributedPaste(config, model, selections, text2) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const shouldOvertypeOnPaste = config.overtypeOnPaste \u0026\u0026 config.inputMode === \"overtype\";\n      const ChosenReplaceCommand = shouldOvertypeOnPaste ? ReplaceOvertypeCommand : ReplaceCommand;\n      commands[i2] = new ChosenReplaceCommand(selections[i2], text2[i2]);\n    }\n    return new EditOperationResult(0, commands, {\n      shouldPushStackElementBefore: true,\n      shouldPushStackElementAfter: true\n    });\n  }\n  static _simplePaste(config, model, selections, text2, pasteOnNewLine) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      const position = selection.getPosition();\n      if (pasteOnNewLine \u0026\u0026 !selection.isEmpty()) {\n        pasteOnNewLine = false;\n      }\n      if (pasteOnNewLine \u0026\u0026 text2.indexOf(\"\\n\") !== text2.length - 1) {\n        pasteOnNewLine = false;\n      }\n      if (pasteOnNewLine) {\n        const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, 1);\n        commands[i2] = new ReplaceCommandThatPreservesSelection(typeSelection, text2, selection, true);\n      } else {\n        const shouldOvertypeOnPaste = config.overtypeOnPaste \u0026\u0026 config.inputMode === \"overtype\";\n        const ChosenReplaceCommand = shouldOvertypeOnPaste ? ReplaceOvertypeCommand : ReplaceCommand;\n        commands[i2] = new ChosenReplaceCommand(selection, text2);\n      }\n    }\n    return new EditOperationResult(0, commands, {\n      shouldPushStackElementBefore: true,\n      shouldPushStackElementAfter: true\n    });\n  }\n};\nvar CompositionOperation = class {\n  static getEdits(prevEditOperationType, config, model, selections, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n    const commands = selections.map((selection) =\u003e this._compositionType(model, selection, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta));\n    return new EditOperationResult(4, commands, {\n      shouldPushStackElementBefore: shouldPushStackElementBetween(\n        prevEditOperationType,\n        4\n        /* EditOperationType.TypingOther */\n      ),\n      shouldPushStackElementAfter: false\n    });\n  }\n  static _compositionType(model, selection, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n    if (!selection.isEmpty()) {\n      return null;\n    }\n    const pos = selection.getPosition();\n    const startColumn = Math.max(1, pos.column - replacePrevCharCnt);\n    const endColumn = Math.min(model.getLineMaxColumn(pos.lineNumber), pos.column + replaceNextCharCnt);\n    const range2 = new Range(pos.lineNumber, startColumn, pos.lineNumber, endColumn);\n    return new ReplaceCommandWithOffsetCursorState(range2, text2, 0, positionDelta);\n  }\n};\nvar TypeWithoutInterceptorsOperation = class {\n  static getEdits(prevEditOperationType, selections, str) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      commands[i2] = new ReplaceCommand(selections[i2], str);\n    }\n    const opType = getTypingOperation(str, prevEditOperationType);\n    return new EditOperationResult(opType, commands, {\n      shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),\n      shouldPushStackElementAfter: false\n    });\n  }\n};\nvar TabOperation = class {\n  static getCommands(config, model, selections) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      if (selection.isEmpty()) {\n        const lineText = model.getLineContent(selection.startLineNumber);\n        if (/^\\s*$/.test(lineText) \u0026\u0026 model.tokenization.isCheapToTokenize(selection.startLineNumber)) {\n          let goodIndent = this._goodIndentForLine(config, model, selection.startLineNumber);\n          goodIndent = goodIndent || \"\t\";\n          const possibleTypeText = config.normalizeIndentation(goodIndent);\n          if (!lineText.startsWith(possibleTypeText)) {\n            commands[i2] = new ReplaceCommand(new Range(selection.startLineNumber, 1, selection.startLineNumber, lineText.length + 1), possibleTypeText, true);\n            continue;\n          }\n        }\n        commands[i2] = this._replaceJumpToNextIndent(config, model, selection, true);\n      } else {\n        if (selection.startLineNumber === selection.endLineNumber) {\n          const lineMaxColumn = model.getLineMaxColumn(selection.startLineNumber);\n          if (selection.startColumn !== 1 || selection.endColumn !== lineMaxColumn) {\n            commands[i2] = this._replaceJumpToNextIndent(config, model, selection, false);\n            continue;\n          }\n        }\n        commands[i2] = new ShiftCommand(selection, {\n          isUnshift: false,\n          tabSize: config.tabSize,\n          indentSize: config.indentSize,\n          insertSpaces: config.insertSpaces,\n          useTabStops: config.useTabStops,\n          autoIndent: config.autoIndent\n        }, config.languageConfigurationService);\n      }\n    }\n    return commands;\n  }\n  static _goodIndentForLine(config, model, lineNumber) {\n    let action = null;\n    let indentation = \"\";\n    const expectedIndentAction = getInheritIndentForLine(config.autoIndent, model, lineNumber, false, config.languageConfigurationService);\n    if (expectedIndentAction) {\n      action = expectedIndentAction.action;\n      indentation = expectedIndentAction.indentation;\n    } else if (lineNumber \u003e 1) {\n      let lastLineNumber;\n      for (lastLineNumber = lineNumber - 1; lastLineNumber \u003e= 1; lastLineNumber--) {\n        const lineText = model.getLineContent(lastLineNumber);\n        const nonWhitespaceIdx = lastNonWhitespaceIndex(lineText);\n        if (nonWhitespaceIdx \u003e= 0) {\n          break;\n        }\n      }\n      if (lastLineNumber \u003c 1) {\n        return null;\n      }\n      const maxColumn = model.getLineMaxColumn(lastLineNumber);\n      const expectedEnterAction = getEnterAction(config.autoIndent, model, new Range(lastLineNumber, maxColumn, lastLineNumber, maxColumn), config.languageConfigurationService);\n      if (expectedEnterAction) {\n        indentation = expectedEnterAction.indentation + expectedEnterAction.appendText;\n      }\n    }\n    if (action) {\n      if (action === IndentAction.Indent) {\n        indentation = shiftIndent(config, indentation);\n      }\n      if (action === IndentAction.Outdent) {\n        indentation = unshiftIndent(config, indentation);\n      }\n      indentation = config.normalizeIndentation(indentation);\n    }\n    if (!indentation) {\n      return null;\n    }\n    return indentation;\n  }\n  static _replaceJumpToNextIndent(config, model, selection, insertsAutoWhitespace) {\n    let typeText = \"\";\n    const position = selection.getStartPosition();\n    if (config.insertSpaces) {\n      const visibleColumnFromColumn = config.visibleColumnFromColumn(model, position);\n      const indentSize = config.indentSize;\n      const spacesCnt = indentSize - visibleColumnFromColumn % indentSize;\n      for (let i2 = 0; i2 \u003c spacesCnt; i2++) {\n        typeText += \" \";\n      }\n    } else {\n      typeText = \"\t\";\n    }\n    return new ReplaceCommand(selection, typeText, insertsAutoWhitespace);\n  }\n};\nvar BaseTypeWithAutoClosingCommand = class extends ReplaceCommandWithOffsetCursorState {\n  constructor(selection, text2, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter) {\n    super(selection, text2, lineNumberDeltaOffset, columnDeltaOffset);\n    this._openCharacter = openCharacter;\n    this._closeCharacter = closeCharacter;\n    this.closeCharacterRange = null;\n    this.enclosingRange = null;\n  }\n  _computeCursorStateWithRange(model, range2, helper) {\n    this.closeCharacterRange = new Range(range2.startLineNumber, range2.endColumn - this._closeCharacter.length, range2.endLineNumber, range2.endColumn);\n    this.enclosingRange = new Range(range2.startLineNumber, range2.endColumn - this._openCharacter.length - this._closeCharacter.length, range2.endLineNumber, range2.endColumn);\n    return super.computeCursorState(model, helper);\n  }\n};\nvar TypeWithAutoClosingCommand = class extends BaseTypeWithAutoClosingCommand {\n  constructor(selection, openCharacter, insertOpenCharacter, closeCharacter) {\n    const text2 = (insertOpenCharacter ? openCharacter : \"\") + closeCharacter;\n    const lineNumberDeltaOffset = 0;\n    const columnDeltaOffset = -closeCharacter.length;\n    super(selection, text2, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    const range2 = inverseEditOperations[0].range;\n    return this._computeCursorStateWithRange(model, range2, helper);\n  }\n};\nvar TypeWithIndentationAndAutoClosingCommand = class extends BaseTypeWithAutoClosingCommand {\n  constructor(autoIndentationEdit, selection, openCharacter, closeCharacter) {\n    const text2 = openCharacter + closeCharacter;\n    const lineNumberDeltaOffset = 0;\n    const columnDeltaOffset = openCharacter.length;\n    super(selection, text2, lineNumberDeltaOffset, columnDeltaOffset, openCharacter, closeCharacter);\n    this._autoIndentationEdit = autoIndentationEdit;\n    this._autoClosingEdit = { range: selection, text: text2 };\n  }\n  getEditOperations(model, builder) {\n    builder.addTrackedEditOperation(this._autoIndentationEdit.range, this._autoIndentationEdit.text);\n    builder.addTrackedEditOperation(this._autoClosingEdit.range, this._autoClosingEdit.text);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    if (inverseEditOperations.length !== 2) {\n      throw new Error(\"There should be two inverse edit operations!\");\n    }\n    const range1 = inverseEditOperations[0].range;\n    const range2 = inverseEditOperations[1].range;\n    const range3 = range1.plusRange(range2);\n    return this._computeCursorStateWithRange(model, range3, helper);\n  }\n};\nfunction getTypingOperation(typedText, previousTypingOperation) {\n  if (typedText === \" \") {\n    return previousTypingOperation === 5 || previousTypingOperation === 6 ? 6 : 5;\n  }\n  return 4;\n}\nfunction shouldPushStackElementBetween(previousTypingOperation, typingOperation) {\n  if (isTypingOperation(previousTypingOperation) \u0026\u0026 !isTypingOperation(typingOperation)) {\n    return true;\n  }\n  if (previousTypingOperation === 5) {\n    return false;\n  }\n  return normalizeOperationType(previousTypingOperation) !== normalizeOperationType(typingOperation);\n}\nfunction normalizeOperationType(type) {\n  return type === 6 || type === 5 ? \"space\" : type;\n}\nfunction isTypingOperation(type) {\n  return type === 4 || type === 5 || type === 6;\n}\nfunction isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch) {\n  if (config.autoClosingOvertype === \"never\") {\n    return false;\n  }\n  if (!config.autoClosingPairs.autoClosingPairsCloseSingleChar.has(ch)) {\n    return false;\n  }\n  for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n    const selection = selections[i2];\n    if (!selection.isEmpty()) {\n      return false;\n    }\n    const position = selection.getPosition();\n    const lineText = model.getLineContent(position.lineNumber);\n    const afterCharacter = lineText.charAt(position.column - 1);\n    if (afterCharacter !== ch) {\n      return false;\n    }\n    const chIsQuote = isQuote(ch);\n    const beforeCharacter = position.column \u003e 2 ? lineText.charCodeAt(position.column - 2) : 0;\n    if (beforeCharacter === 92 \u0026\u0026 chIsQuote) {\n      return false;\n    }\n    if (config.autoClosingOvertype === \"auto\") {\n      let found = false;\n      for (let j = 0, lenJ = autoClosedCharacters.length; j \u003c lenJ; j++) {\n        const autoClosedCharacter = autoClosedCharacters[j];\n        if (position.lineNumber === autoClosedCharacter.startLineNumber \u0026\u0026 position.column === autoClosedCharacter.startColumn) {\n          found = true;\n          break;\n        }\n      }\n      if (!found) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\nfunction typeCommand(range2, text2, keepPosition) {\n  if (keepPosition) {\n    return new ReplaceCommandWithoutChangingPosition(range2, text2, true);\n  } else {\n    return new ReplaceCommand(range2, text2, true);\n  }\n}\nfunction shiftIndent(config, indentation, count) {\n  count = count || 1;\n  return ShiftCommand.shiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);\n}\nfunction unshiftIndent(config, indentation, count) {\n  count = count || 1;\n  return ShiftCommand.unshiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);\n}\nfunction shouldSurroundChar(config, ch) {\n  if (isQuote(ch)) {\n    return config.autoSurround === \"quotes\" || config.autoSurround === \"languageDefined\";\n  } else {\n    return config.autoSurround === \"brackets\" || config.autoSurround === \"languageDefined\";\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorTypeOperations.js\nvar TypeOperations = class {\n  static indent(config, model, selections) {\n    if (model === null || selections === null) {\n      return [];\n    }\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      commands[i2] = new ShiftCommand(selections[i2], {\n        isUnshift: false,\n        tabSize: config.tabSize,\n        indentSize: config.indentSize,\n        insertSpaces: config.insertSpaces,\n        useTabStops: config.useTabStops,\n        autoIndent: config.autoIndent\n      }, config.languageConfigurationService);\n    }\n    return commands;\n  }\n  static outdent(config, model, selections) {\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      commands[i2] = new ShiftCommand(selections[i2], {\n        isUnshift: true,\n        tabSize: config.tabSize,\n        indentSize: config.indentSize,\n        insertSpaces: config.insertSpaces,\n        useTabStops: config.useTabStops,\n        autoIndent: config.autoIndent\n      }, config.languageConfigurationService);\n    }\n    return commands;\n  }\n  static paste(config, model, selections, text2, pasteOnNewLine, multicursorText) {\n    return PasteOperation.getEdits(config, model, selections, text2, pasteOnNewLine, multicursorText);\n  }\n  static tab(config, model, selections) {\n    return TabOperation.getCommands(config, model, selections);\n  }\n  static compositionType(prevEditOperationType, config, model, selections, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n    return CompositionOperation.getEdits(prevEditOperationType, config, model, selections, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta);\n  }\n  /**\n   * This is very similar with typing, but the character is already in the text buffer!\n   */\n  static compositionEndWithInterceptors(prevEditOperationType, config, model, compositions, selections, autoClosedCharacters) {\n    if (!compositions) {\n      return null;\n    }\n    let insertedText = null;\n    for (const composition of compositions) {\n      if (insertedText === null) {\n        insertedText = composition.insertedText;\n      } else if (insertedText !== composition.insertedText) {\n        return null;\n      }\n    }\n    if (!insertedText || insertedText.length !== 1) {\n      return CompositionEndOvertypeOperation.getEdits(config, compositions);\n    }\n    const ch = insertedText;\n    let hasDeletion = false;\n    for (const composition of compositions) {\n      if (composition.deletedText.length !== 0) {\n        hasDeletion = true;\n        break;\n      }\n    }\n    if (hasDeletion) {\n      if (!shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {\n        return null;\n      }\n      const isTypingAQuoteCharacter = isQuote(ch);\n      for (const composition of compositions) {\n        if (composition.deletedSelectionStart !== 0 || composition.deletedSelectionEnd !== composition.deletedText.length) {\n          return null;\n        }\n        if (/^[ \\t]+$/.test(composition.deletedText)) {\n          return null;\n        }\n        if (isTypingAQuoteCharacter \u0026\u0026 isQuote(composition.deletedText)) {\n          return null;\n        }\n      }\n      const positions = [];\n      for (const selection of selections) {\n        if (!selection.isEmpty()) {\n          return null;\n        }\n        positions.push(selection.getPosition());\n      }\n      if (positions.length !== compositions.length) {\n        return null;\n      }\n      const commands = [];\n      for (let i2 = 0, len = positions.length; i2 \u003c len; i2++) {\n        commands.push(new CompositionSurroundSelectionCommand(positions[i2], compositions[i2].deletedText, config.surroundingPairs[ch]));\n      }\n      return new EditOperationResult(4, commands, {\n        shouldPushStackElementBefore: true,\n        shouldPushStackElementAfter: false\n      });\n    }\n    const autoClosingOvertypeEdits = AutoClosingOvertypeWithInterceptorsOperation.getEdits(config, model, selections, autoClosedCharacters, ch);\n    if (autoClosingOvertypeEdits !== void 0) {\n      return autoClosingOvertypeEdits;\n    }\n    const autoClosingOpenCharEdits = AutoClosingOpenCharTypeOperation.getEdits(config, model, selections, ch, true, false);\n    if (autoClosingOpenCharEdits !== void 0) {\n      return autoClosingOpenCharEdits;\n    }\n    return CompositionEndOvertypeOperation.getEdits(config, compositions);\n  }\n  static typeWithInterceptors(isDoingComposition, prevEditOperationType, config, model, selections, autoClosedCharacters, ch) {\n    const enterEdits = EnterOperation.getEdits(config, model, selections, ch, isDoingComposition);\n    if (enterEdits !== void 0) {\n      return enterEdits;\n    }\n    const autoIndentEdits = AutoIndentOperation.getEdits(config, model, selections, ch, isDoingComposition);\n    if (autoIndentEdits !== void 0) {\n      return autoIndentEdits;\n    }\n    const autoClosingOverTypeEdits = AutoClosingOvertypeOperation.getEdits(prevEditOperationType, config, model, selections, autoClosedCharacters, ch);\n    if (autoClosingOverTypeEdits !== void 0) {\n      return autoClosingOverTypeEdits;\n    }\n    const autoClosingOpenCharEdits = AutoClosingOpenCharTypeOperation.getEdits(config, model, selections, ch, false, isDoingComposition);\n    if (autoClosingOpenCharEdits !== void 0) {\n      return autoClosingOpenCharEdits;\n    }\n    const surroundSelectionEdits = SurroundSelectionOperation.getEdits(config, model, selections, ch, isDoingComposition);\n    if (surroundSelectionEdits !== void 0) {\n      return surroundSelectionEdits;\n    }\n    const interceptorElectricCharOperation = InterceptorElectricCharOperation.getEdits(prevEditOperationType, config, model, selections, ch, isDoingComposition);\n    if (interceptorElectricCharOperation !== void 0) {\n      return interceptorElectricCharOperation;\n    }\n    return SimpleCharacterTypeOperation.getEdits(config, prevEditOperationType, selections, ch, isDoingComposition);\n  }\n  static typeWithoutInterceptors(prevEditOperationType, config, model, selections, str) {\n    return TypeWithoutInterceptorsOperation.getEdits(prevEditOperationType, selections, str);\n  }\n};\nvar CompositionOutcome = class {\n  constructor(deletedText, deletedSelectionStart, deletedSelectionEnd, insertedText, insertedSelectionStart, insertedSelectionEnd, insertedTextRange) {\n    this.deletedText = deletedText;\n    this.deletedSelectionStart = deletedSelectionStart;\n    this.deletedSelectionEnd = deletedSelectionEnd;\n    this.insertedText = insertedText;\n    this.insertedSelectionStart = insertedSelectionStart;\n    this.insertedSelectionEnd = insertedSelectionEnd;\n    this.insertedTextRange = insertedTextRange;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/coreCommands.js\ninit_position();\ninit_range();\ninit_editorContextKeys();\ninit_contextkey();\ninit_keybindingsRegistry();\ninit_dom();\nvar CORE_WEIGHT = 0;\nvar CoreEditorCommand = class extends EditorCommand {\n  runEditorCommand(accessor, editor2, args) {\n    const viewModel = editor2._getViewModel();\n    if (!viewModel) {\n      return;\n    }\n    this.runCoreEditorCommand(viewModel, args || {});\n  }\n};\nvar EditorScroll_;\n(function(EditorScroll_2) {\n  const isEditorScrollArgs = function(arg) {\n    if (!isObject(arg)) {\n      return false;\n    }\n    const scrollArg = arg;\n    if (!isString(scrollArg.to)) {\n      return false;\n    }\n    if (!isUndefined(scrollArg.by) \u0026\u0026 !isString(scrollArg.by)) {\n      return false;\n    }\n    if (!isUndefined(scrollArg.value) \u0026\u0026 !isNumber(scrollArg.value)) {\n      return false;\n    }\n    if (!isUndefined(scrollArg.revealCursor) \u0026\u0026 !isBoolean(scrollArg.revealCursor)) {\n      return false;\n    }\n    return true;\n  };\n  EditorScroll_2.metadata = {\n    description: \"Scroll editor in the given direction\",\n    args: [\n      {\n        name: \"Editor scroll argument object\",\n        description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t`,\n        constraint: isEditorScrollArgs,\n        schema: {\n          \"type\": \"object\",\n          \"required\": [\"to\"],\n          \"properties\": {\n            \"to\": {\n              \"type\": \"string\",\n              \"enum\": [\"up\", \"down\"]\n            },\n            \"by\": {\n              \"type\": \"string\",\n              \"enum\": [\"line\", \"wrappedLine\", \"page\", \"halfPage\", \"editor\"]\n            },\n            \"value\": {\n              \"type\": \"number\",\n              \"default\": 1\n            },\n            \"revealCursor\": {\n              \"type\": \"boolean\"\n            }\n          }\n        }\n      }\n    ]\n  };\n  EditorScroll_2.RawDirection = {\n    Up: \"up\",\n    Right: \"right\",\n    Down: \"down\",\n    Left: \"left\"\n  };\n  EditorScroll_2.RawUnit = {\n    Line: \"line\",\n    WrappedLine: \"wrappedLine\",\n    Page: \"page\",\n    HalfPage: \"halfPage\",\n    Editor: \"editor\",\n    Column: \"column\"\n  };\n  function parse4(args) {\n    let direction;\n    switch (args.to) {\n      case EditorScroll_2.RawDirection.Up:\n        direction = 1;\n        break;\n      case EditorScroll_2.RawDirection.Right:\n        direction = 2;\n        break;\n      case EditorScroll_2.RawDirection.Down:\n        direction = 3;\n        break;\n      case EditorScroll_2.RawDirection.Left:\n        direction = 4;\n        break;\n      default:\n        return null;\n    }\n    let unit;\n    switch (args.by) {\n      case EditorScroll_2.RawUnit.Line:\n        unit = 1;\n        break;\n      case EditorScroll_2.RawUnit.WrappedLine:\n        unit = 2;\n        break;\n      case EditorScroll_2.RawUnit.Page:\n        unit = 3;\n        break;\n      case EditorScroll_2.RawUnit.HalfPage:\n        unit = 4;\n        break;\n      case EditorScroll_2.RawUnit.Editor:\n        unit = 5;\n        break;\n      case EditorScroll_2.RawUnit.Column:\n        unit = 6;\n        break;\n      default:\n        unit = 2;\n    }\n    const value = Math.floor(args.value || 1);\n    const revealCursor = !!args.revealCursor;\n    return {\n      direction,\n      unit,\n      value,\n      revealCursor,\n      select: !!args.select\n    };\n  }\n  EditorScroll_2.parse = parse4;\n})(EditorScroll_ || (EditorScroll_ = {}));\nvar RevealLine_;\n(function(RevealLine_2) {\n  const isRevealLineArgs = function(arg) {\n    if (!isObject(arg)) {\n      return false;\n    }\n    const reveaLineArg = arg;\n    if (!isNumber(reveaLineArg.lineNumber) \u0026\u0026 !isString(reveaLineArg.lineNumber)) {\n      return false;\n    }\n    if (!isUndefined(reveaLineArg.at) \u0026\u0026 !isString(reveaLineArg.at)) {\n      return false;\n    }\n    return true;\n  };\n  RevealLine_2.metadata = {\n    description: \"Reveal the given line at the given logical position\",\n    args: [\n      {\n        name: \"Reveal line argument object\",\n        description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed.\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t\\`\\`\\`\n\t\t\t\t`,\n        constraint: isRevealLineArgs,\n        schema: {\n          \"type\": \"object\",\n          \"required\": [\"lineNumber\"],\n          \"properties\": {\n            \"lineNumber\": {\n              \"type\": [\"number\", \"string\"]\n            },\n            \"at\": {\n              \"type\": \"string\",\n              \"enum\": [\"top\", \"center\", \"bottom\"]\n            }\n          }\n        }\n      }\n    ]\n  };\n  RevealLine_2.RawAtArgument = {\n    Top: \"top\",\n    Center: \"center\",\n    Bottom: \"bottom\"\n  };\n})(RevealLine_ || (RevealLine_ = {}));\nvar EditorOrNativeTextInputCommand = class {\n  constructor(target) {\n    target.addImplementation(1e4, \"code-editor\", (accessor, args) =\u003e {\n      const focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n      if (focusedEditor \u0026\u0026 focusedEditor.hasTextFocus()) {\n        return this._runEditorCommand(accessor, focusedEditor, args);\n      }\n      return false;\n    });\n    target.addImplementation(1e3, \"generic-dom-input-textarea\", (accessor, args) =\u003e {\n      const activeElement = getActiveElement();\n      if (activeElement \u0026\u0026 isEditableElement(activeElement)) {\n        this.runDOMCommand(activeElement);\n        return true;\n      }\n      return false;\n    });\n    target.addImplementation(0, \"generic-dom\", (accessor, args) =\u003e {\n      const activeEditor = accessor.get(ICodeEditorService).getActiveCodeEditor();\n      if (activeEditor) {\n        activeEditor.focus();\n        return this._runEditorCommand(accessor, activeEditor, args);\n      }\n      return false;\n    });\n  }\n  _runEditorCommand(accessor, editor2, args) {\n    const result = this.runEditorCommand(accessor, editor2, args);\n    if (result) {\n      return result;\n    }\n    return true;\n  }\n};\nvar CoreNavigationCommands;\n(function(CoreNavigationCommands2) {\n  class BaseMoveToCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      if (!args.position) {\n        return;\n      }\n      viewModel.model.pushStackElement();\n      const cursorStateChanged = viewModel.setCursorStates(args.source, 3, [\n        CursorMoveCommands.moveTo(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position, args.viewPosition)\n      ]);\n      if (cursorStateChanged \u0026\u0026 args.revealType !== 2) {\n        viewModel.revealAllCursors(args.source, true, true);\n      }\n    }\n  }\n  CoreNavigationCommands2.MoveTo = registerEditorCommand(new BaseMoveToCommand({\n    id: \"_moveTo\",\n    inSelectionMode: false,\n    precondition: void 0\n  }));\n  CoreNavigationCommands2.MoveToSelect = registerEditorCommand(new BaseMoveToCommand({\n    id: \"_moveToSelect\",\n    inSelectionMode: true,\n    precondition: void 0\n  }));\n  class ColumnSelectCommand extends CoreEditorCommand {\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      const result = this._getColumnSelectResult(viewModel, viewModel.getPrimaryCursorState(), viewModel.getCursorColumnSelectData(), args);\n      if (result === null) {\n        return;\n      }\n      viewModel.setCursorStates(args.source, 3, result.viewStates.map((viewState) =\u003e CursorState.fromViewState(viewState)));\n      viewModel.setCursorColumnSelectData({\n        isReal: true,\n        fromViewLineNumber: result.fromLineNumber,\n        fromViewVisualColumn: result.fromVisualColumn,\n        toViewLineNumber: result.toLineNumber,\n        toViewVisualColumn: result.toVisualColumn\n      });\n      if (result.reversed) {\n        viewModel.revealTopMostCursor(args.source);\n      } else {\n        viewModel.revealBottomMostCursor(args.source);\n      }\n    }\n  }\n  CoreNavigationCommands2.ColumnSelect = registerEditorCommand(new class extends ColumnSelectCommand {\n    constructor() {\n      super({\n        id: \"columnSelect\",\n        precondition: void 0\n      });\n    }\n    _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n      if (typeof args.position === \"undefined\" || typeof args.viewPosition === \"undefined\" || typeof args.mouseColumn === \"undefined\") {\n        return null;\n      }\n      const validatedPosition = viewModel.model.validatePosition(args.position);\n      const validatedViewPosition = viewModel.coordinatesConverter.validateViewPosition(new Position(args.viewPosition.lineNumber, args.viewPosition.column), validatedPosition);\n      const fromViewLineNumber = args.doColumnSelect ? prevColumnSelectData.fromViewLineNumber : validatedViewPosition.lineNumber;\n      const fromViewVisualColumn = args.doColumnSelect ? prevColumnSelectData.fromViewVisualColumn : args.mouseColumn - 1;\n      return ColumnSelection.columnSelect(viewModel.cursorConfig, viewModel, fromViewLineNumber, fromViewVisualColumn, validatedViewPosition.lineNumber, args.mouseColumn - 1);\n    }\n  }());\n  CoreNavigationCommands2.CursorColumnSelectLeft = registerEditorCommand(new class extends ColumnSelectCommand {\n    constructor() {\n      super({\n        id: \"cursorColumnSelectLeft\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 2048 | 1024 | 512 | 15,\n          linux: { primary: 0 }\n        }\n      });\n    }\n    _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n      return ColumnSelection.columnSelectLeft(viewModel.cursorConfig, viewModel, prevColumnSelectData);\n    }\n  }());\n  CoreNavigationCommands2.CursorColumnSelectRight = registerEditorCommand(new class extends ColumnSelectCommand {\n    constructor() {\n      super({\n        id: \"cursorColumnSelectRight\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 2048 | 1024 | 512 | 17,\n          linux: { primary: 0 }\n        }\n      });\n    }\n    _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n      return ColumnSelection.columnSelectRight(viewModel.cursorConfig, viewModel, prevColumnSelectData);\n    }\n  }());\n  class ColumnSelectUpCommand extends ColumnSelectCommand {\n    constructor(opts) {\n      super(opts);\n      this._isPaged = opts.isPaged;\n    }\n    _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n      return ColumnSelection.columnSelectUp(viewModel.cursorConfig, viewModel, prevColumnSelectData, this._isPaged);\n    }\n  }\n  CoreNavigationCommands2.CursorColumnSelectUp = registerEditorCommand(new ColumnSelectUpCommand({\n    isPaged: false,\n    id: \"cursorColumnSelectUp\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 2048 | 1024 | 512 | 16,\n      linux: { primary: 0 }\n    }\n  }));\n  CoreNavigationCommands2.CursorColumnSelectPageUp = registerEditorCommand(new ColumnSelectUpCommand({\n    isPaged: true,\n    id: \"cursorColumnSelectPageUp\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 2048 | 1024 | 512 | 11,\n      linux: { primary: 0 }\n    }\n  }));\n  class ColumnSelectDownCommand extends ColumnSelectCommand {\n    constructor(opts) {\n      super(opts);\n      this._isPaged = opts.isPaged;\n    }\n    _getColumnSelectResult(viewModel, primary, prevColumnSelectData, args) {\n      return ColumnSelection.columnSelectDown(viewModel.cursorConfig, viewModel, prevColumnSelectData, this._isPaged);\n    }\n  }\n  CoreNavigationCommands2.CursorColumnSelectDown = registerEditorCommand(new ColumnSelectDownCommand({\n    isPaged: false,\n    id: \"cursorColumnSelectDown\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 2048 | 1024 | 512 | 18,\n      linux: { primary: 0 }\n    }\n  }));\n  CoreNavigationCommands2.CursorColumnSelectPageDown = registerEditorCommand(new ColumnSelectDownCommand({\n    isPaged: true,\n    id: \"cursorColumnSelectPageDown\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 2048 | 1024 | 512 | 12,\n      linux: { primary: 0 }\n    }\n  }));\n  class CursorMoveImpl extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"cursorMove\",\n        precondition: void 0,\n        metadata: CursorMove.metadata\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      const parsed = CursorMove.parse(args);\n      if (!parsed) {\n        return;\n      }\n      this._runCursorMove(viewModel, args.source, parsed);\n    }\n    _runCursorMove(viewModel, source, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(source, 3, CursorMoveImpl._move(viewModel, viewModel.getCursorStates(), args));\n      viewModel.revealAllCursors(source, true);\n    }\n    static _move(viewModel, cursors, args) {\n      const inSelectionMode = args.select;\n      const value = args.value;\n      switch (args.direction) {\n        case 0:\n        case 1:\n        case 2:\n        case 3:\n        case 4:\n        case 5:\n        case 6:\n        case 7:\n        case 8:\n        case 9:\n        case 10:\n          return CursorMoveCommands.simpleMove(viewModel, cursors, args.direction, inSelectionMode, value, args.unit);\n        case 11:\n        case 13:\n        case 12:\n        case 14:\n          return CursorMoveCommands.viewportMove(viewModel, cursors, args.direction, inSelectionMode, value);\n        default:\n          return null;\n      }\n    }\n  }\n  CoreNavigationCommands2.CursorMoveImpl = CursorMoveImpl;\n  CoreNavigationCommands2.CursorMove = registerEditorCommand(new CursorMoveImpl());\n  class CursorMoveBasedCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._staticArgs = opts.args;\n    }\n    runCoreEditorCommand(viewModel, dynamicArgs) {\n      let args = this._staticArgs;\n      if (this._staticArgs.value === -1) {\n        args = {\n          direction: this._staticArgs.direction,\n          unit: this._staticArgs.unit,\n          select: this._staticArgs.select,\n          value: dynamicArgs.pageSize || viewModel.cursorConfig.pageSize\n        };\n      }\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(dynamicArgs.source, 3, CursorMoveCommands.simpleMove(viewModel, viewModel.getCursorStates(), args.direction, args.select, args.value, args.unit));\n      viewModel.revealAllCursors(dynamicArgs.source, true);\n    }\n  }\n  CoreNavigationCommands2.CursorLeft = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 0,\n      unit: 0,\n      select: false,\n      value: 1\n    },\n    id: \"cursorLeft\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 15,\n      mac: { primary: 15, secondary: [\n        256 | 32\n        /* KeyCode.KeyB */\n      ] }\n    }\n  }));\n  CoreNavigationCommands2.CursorLeftSelect = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 0,\n      unit: 0,\n      select: true,\n      value: 1\n    },\n    id: \"cursorLeftSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 1024 | 15\n      /* KeyCode.LeftArrow */\n    }\n  }));\n  CoreNavigationCommands2.CursorRight = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 1,\n      unit: 0,\n      select: false,\n      value: 1\n    },\n    id: \"cursorRight\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 17,\n      mac: { primary: 17, secondary: [\n        256 | 36\n        /* KeyCode.KeyF */\n      ] }\n    }\n  }));\n  CoreNavigationCommands2.CursorRightSelect = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 1,\n      unit: 0,\n      select: true,\n      value: 1\n    },\n    id: \"cursorRightSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 1024 | 17\n      /* KeyCode.RightArrow */\n    }\n  }));\n  CoreNavigationCommands2.CursorUp = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 2,\n      unit: 2,\n      select: false,\n      value: 1\n    },\n    id: \"cursorUp\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 16,\n      mac: { primary: 16, secondary: [\n        256 | 46\n        /* KeyCode.KeyP */\n      ] }\n    }\n  }));\n  CoreNavigationCommands2.CursorUpSelect = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 2,\n      unit: 2,\n      select: true,\n      value: 1\n    },\n    id: \"cursorUpSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 1024 | 16,\n      secondary: [\n        2048 | 1024 | 16\n        /* KeyCode.UpArrow */\n      ],\n      mac: {\n        primary: 1024 | 16\n        /* KeyCode.UpArrow */\n      },\n      linux: {\n        primary: 1024 | 16\n        /* KeyCode.UpArrow */\n      }\n    }\n  }));\n  CoreNavigationCommands2.CursorPageUp = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 2,\n      unit: 2,\n      select: false,\n      value: -1\n      /* Constants.PAGE_SIZE_MARKER */\n    },\n    id: \"cursorPageUp\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 11\n      /* KeyCode.PageUp */\n    }\n  }));\n  CoreNavigationCommands2.CursorPageUpSelect = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 2,\n      unit: 2,\n      select: true,\n      value: -1\n      /* Constants.PAGE_SIZE_MARKER */\n    },\n    id: \"cursorPageUpSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 1024 | 11\n      /* KeyCode.PageUp */\n    }\n  }));\n  CoreNavigationCommands2.CursorDown = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 3,\n      unit: 2,\n      select: false,\n      value: 1\n    },\n    id: \"cursorDown\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 18,\n      mac: { primary: 18, secondary: [\n        256 | 44\n        /* KeyCode.KeyN */\n      ] }\n    }\n  }));\n  CoreNavigationCommands2.CursorDownSelect = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 3,\n      unit: 2,\n      select: true,\n      value: 1\n    },\n    id: \"cursorDownSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 1024 | 18,\n      secondary: [\n        2048 | 1024 | 18\n        /* KeyCode.DownArrow */\n      ],\n      mac: {\n        primary: 1024 | 18\n        /* KeyCode.DownArrow */\n      },\n      linux: {\n        primary: 1024 | 18\n        /* KeyCode.DownArrow */\n      }\n    }\n  }));\n  CoreNavigationCommands2.CursorPageDown = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 3,\n      unit: 2,\n      select: false,\n      value: -1\n      /* Constants.PAGE_SIZE_MARKER */\n    },\n    id: \"cursorPageDown\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 12\n      /* KeyCode.PageDown */\n    }\n  }));\n  CoreNavigationCommands2.CursorPageDownSelect = registerEditorCommand(new CursorMoveBasedCommand({\n    args: {\n      direction: 3,\n      unit: 2,\n      select: true,\n      value: -1\n      /* Constants.PAGE_SIZE_MARKER */\n    },\n    id: \"cursorPageDownSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 1024 | 12\n      /* KeyCode.PageDown */\n    }\n  }));\n  CoreNavigationCommands2.CreateCursor = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"createCursor\",\n        precondition: void 0\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      if (!args.position) {\n        return;\n      }\n      let newState;\n      if (args.wholeLine) {\n        newState = CursorMoveCommands.line(viewModel, viewModel.getPrimaryCursorState(), false, args.position, args.viewPosition);\n      } else {\n        newState = CursorMoveCommands.moveTo(viewModel, viewModel.getPrimaryCursorState(), false, args.position, args.viewPosition);\n      }\n      const states = viewModel.getCursorStates();\n      if (states.length \u003e 1) {\n        const newModelPosition = newState.modelState ? newState.modelState.position : null;\n        const newViewPosition = newState.viewState ? newState.viewState.position : null;\n        for (let i2 = 0, len = states.length; i2 \u003c len; i2++) {\n          const state = states[i2];\n          if (newModelPosition \u0026\u0026 !state.modelState.selection.containsPosition(newModelPosition)) {\n            continue;\n          }\n          if (newViewPosition \u0026\u0026 !state.viewState.selection.containsPosition(newViewPosition)) {\n            continue;\n          }\n          states.splice(i2, 1);\n          viewModel.model.pushStackElement();\n          viewModel.setCursorStates(args.source, 3, states);\n          return;\n        }\n      }\n      states.push(newState);\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, states);\n    }\n  }());\n  CoreNavigationCommands2.LastCursorMoveToSelect = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"_lastCursorMoveToSelect\",\n        precondition: void 0\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      if (!args.position) {\n        return;\n      }\n      const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n      const states = viewModel.getCursorStates();\n      const newStates = states.slice(0);\n      newStates[lastAddedCursorIndex] = CursorMoveCommands.moveTo(viewModel, states[lastAddedCursorIndex], true, args.position, args.viewPosition);\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, newStates);\n    }\n  }());\n  class HomeCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, CursorMoveCommands.moveToBeginningOfLine(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n      viewModel.revealAllCursors(args.source, true);\n    }\n  }\n  CoreNavigationCommands2.CursorHome = registerEditorCommand(new HomeCommand({\n    inSelectionMode: false,\n    id: \"cursorHome\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 14,\n      mac: { primary: 14, secondary: [\n        2048 | 15\n        /* KeyCode.LeftArrow */\n      ] }\n    }\n  }));\n  CoreNavigationCommands2.CursorHomeSelect = registerEditorCommand(new HomeCommand({\n    inSelectionMode: true,\n    id: \"cursorHomeSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 1024 | 14,\n      mac: { primary: 1024 | 14, secondary: [\n        2048 | 1024 | 15\n        /* KeyCode.LeftArrow */\n      ] }\n    }\n  }));\n  class LineStartCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, this._exec(viewModel.getCursorStates()));\n      viewModel.revealAllCursors(args.source, true);\n    }\n    _exec(cursors) {\n      const result = [];\n      for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n        const cursor = cursors[i2];\n        const lineNumber = cursor.modelState.position.lineNumber;\n        result[i2] = CursorState.fromModelState(cursor.modelState.move(this._inSelectionMode, lineNumber, 1, 0));\n      }\n      return result;\n    }\n  }\n  CoreNavigationCommands2.CursorLineStart = registerEditorCommand(new LineStartCommand({\n    inSelectionMode: false,\n    id: \"cursorLineStart\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 0,\n      mac: {\n        primary: 256 | 31\n        /* KeyCode.KeyA */\n      }\n    }\n  }));\n  CoreNavigationCommands2.CursorLineStartSelect = registerEditorCommand(new LineStartCommand({\n    inSelectionMode: true,\n    id: \"cursorLineStartSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 0,\n      mac: {\n        primary: 256 | 1024 | 31\n        /* KeyCode.KeyA */\n      }\n    }\n  }));\n  class EndCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, CursorMoveCommands.moveToEndOfLine(viewModel, viewModel.getCursorStates(), this._inSelectionMode, args.sticky || false));\n      viewModel.revealAllCursors(args.source, true);\n    }\n  }\n  CoreNavigationCommands2.CursorEnd = registerEditorCommand(new EndCommand({\n    inSelectionMode: false,\n    id: \"cursorEnd\",\n    precondition: void 0,\n    kbOpts: {\n      args: { sticky: false },\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 13,\n      mac: { primary: 13, secondary: [\n        2048 | 17\n        /* KeyCode.RightArrow */\n      ] }\n    },\n    metadata: {\n      description: `Go to End`,\n      args: [{\n        name: \"args\",\n        schema: {\n          type: \"object\",\n          properties: {\n            \"sticky\": {\n              description: localize(61, \"Stick to the end even when going to longer lines\"),\n              type: \"boolean\",\n              default: false\n            }\n          }\n        }\n      }]\n    }\n  }));\n  CoreNavigationCommands2.CursorEndSelect = registerEditorCommand(new EndCommand({\n    inSelectionMode: true,\n    id: \"cursorEndSelect\",\n    precondition: void 0,\n    kbOpts: {\n      args: { sticky: false },\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 1024 | 13,\n      mac: { primary: 1024 | 13, secondary: [\n        2048 | 1024 | 17\n        /* KeyCode.RightArrow */\n      ] }\n    },\n    metadata: {\n      description: `Select to End`,\n      args: [{\n        name: \"args\",\n        schema: {\n          type: \"object\",\n          properties: {\n            \"sticky\": {\n              description: localize(62, \"Stick to the end even when going to longer lines\"),\n              type: \"boolean\",\n              default: false\n            }\n          }\n        }\n      }]\n    }\n  }));\n  class LineEndCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, this._exec(viewModel, viewModel.getCursorStates()));\n      viewModel.revealAllCursors(args.source, true);\n    }\n    _exec(viewModel, cursors) {\n      const result = [];\n      for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n        const cursor = cursors[i2];\n        const lineNumber = cursor.modelState.position.lineNumber;\n        const maxColumn = viewModel.model.getLineMaxColumn(lineNumber);\n        result[i2] = CursorState.fromModelState(cursor.modelState.move(this._inSelectionMode, lineNumber, maxColumn, 0));\n      }\n      return result;\n    }\n  }\n  CoreNavigationCommands2.CursorLineEnd = registerEditorCommand(new LineEndCommand({\n    inSelectionMode: false,\n    id: \"cursorLineEnd\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 0,\n      mac: {\n        primary: 256 | 35\n        /* KeyCode.KeyE */\n      }\n    }\n  }));\n  CoreNavigationCommands2.CursorLineEndSelect = registerEditorCommand(new LineEndCommand({\n    inSelectionMode: true,\n    id: \"cursorLineEndSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 0,\n      mac: {\n        primary: 256 | 1024 | 35\n        /* KeyCode.KeyE */\n      }\n    }\n  }));\n  class TopCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, CursorMoveCommands.moveToBeginningOfBuffer(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n      viewModel.revealAllCursors(args.source, true);\n    }\n  }\n  CoreNavigationCommands2.CursorTop = registerEditorCommand(new TopCommand({\n    inSelectionMode: false,\n    id: \"cursorTop\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 2048 | 14,\n      mac: {\n        primary: 2048 | 16\n        /* KeyCode.UpArrow */\n      }\n    }\n  }));\n  CoreNavigationCommands2.CursorTopSelect = registerEditorCommand(new TopCommand({\n    inSelectionMode: true,\n    id: \"cursorTopSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 2048 | 1024 | 14,\n      mac: {\n        primary: 2048 | 1024 | 16\n        /* KeyCode.UpArrow */\n      }\n    }\n  }));\n  class BottomCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, CursorMoveCommands.moveToEndOfBuffer(viewModel, viewModel.getCursorStates(), this._inSelectionMode));\n      viewModel.revealAllCursors(args.source, true);\n    }\n  }\n  CoreNavigationCommands2.CursorBottom = registerEditorCommand(new BottomCommand({\n    inSelectionMode: false,\n    id: \"cursorBottom\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 2048 | 13,\n      mac: {\n        primary: 2048 | 18\n        /* KeyCode.DownArrow */\n      }\n    }\n  }));\n  CoreNavigationCommands2.CursorBottomSelect = registerEditorCommand(new BottomCommand({\n    inSelectionMode: true,\n    id: \"cursorBottomSelect\",\n    precondition: void 0,\n    kbOpts: {\n      weight: CORE_WEIGHT,\n      kbExpr: EditorContextKeys.textInputFocus,\n      primary: 2048 | 1024 | 13,\n      mac: {\n        primary: 2048 | 1024 | 18\n        /* KeyCode.DownArrow */\n      }\n    }\n  }));\n  class EditorScrollImpl extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"editorScroll\",\n        precondition: void 0,\n        metadata: EditorScroll_.metadata\n      });\n    }\n    determineScrollMethod(args) {\n      const horizontalUnits = [\n        6\n        /* EditorScroll_.Unit.Column */\n      ];\n      const verticalUnits = [\n        1,\n        2,\n        3,\n        4,\n        5,\n        6\n        /* EditorScroll_.Unit.Column */\n      ];\n      const horizontalDirections = [\n        4,\n        2\n        /* EditorScroll_.Direction.Right */\n      ];\n      const verticalDirections = [\n        1,\n        3\n        /* EditorScroll_.Direction.Down */\n      ];\n      if (horizontalUnits.includes(args.unit) \u0026\u0026 horizontalDirections.includes(args.direction)) {\n        return this._runHorizontalEditorScroll.bind(this);\n      }\n      if (verticalUnits.includes(args.unit) \u0026\u0026 verticalDirections.includes(args.direction)) {\n        return this._runVerticalEditorScroll.bind(this);\n      }\n      return null;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      const parsed = EditorScroll_.parse(args);\n      if (!parsed) {\n        return;\n      }\n      const runEditorScroll = this.determineScrollMethod(parsed);\n      if (!runEditorScroll) {\n        return;\n      }\n      runEditorScroll(viewModel, args.source, parsed);\n    }\n    _runVerticalEditorScroll(viewModel, source, args) {\n      const desiredScrollTop = this._computeDesiredScrollTop(viewModel, args);\n      if (args.revealCursor) {\n        const desiredVisibleViewRange = viewModel.getCompletelyVisibleViewRangeAtScrollTop(desiredScrollTop);\n        viewModel.setCursorStates(source, 3, [\n          CursorMoveCommands.findPositionInViewportIfOutside(viewModel, viewModel.getPrimaryCursorState(), desiredVisibleViewRange, args.select)\n        ]);\n      }\n      viewModel.viewLayout.setScrollPosition(\n        { scrollTop: desiredScrollTop },\n        0\n        /* ScrollType.Smooth */\n      );\n    }\n    _computeDesiredScrollTop(viewModel, args) {\n      if (args.unit === 1) {\n        const futureViewport = viewModel.viewLayout.getFutureViewport();\n        const visibleViewRange = viewModel.getCompletelyVisibleViewRangeAtScrollTop(futureViewport.top);\n        const visibleModelRange = viewModel.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);\n        let desiredTopModelLineNumber;\n        if (args.direction === 1) {\n          desiredTopModelLineNumber = Math.max(1, visibleModelRange.startLineNumber - args.value);\n        } else {\n          desiredTopModelLineNumber = Math.min(viewModel.model.getLineCount(), visibleModelRange.startLineNumber + args.value);\n        }\n        const viewPosition = viewModel.coordinatesConverter.convertModelPositionToViewPosition(new Position(desiredTopModelLineNumber, 1));\n        return viewModel.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber);\n      }\n      if (args.unit === 5) {\n        let desiredTopModelLineNumber = 0;\n        if (args.direction === 3) {\n          desiredTopModelLineNumber = viewModel.model.getLineCount() - viewModel.cursorConfig.pageSize;\n        }\n        return viewModel.viewLayout.getVerticalOffsetForLineNumber(desiredTopModelLineNumber);\n      }\n      let noOfLines;\n      if (args.unit === 3) {\n        noOfLines = viewModel.cursorConfig.pageSize * args.value;\n      } else if (args.unit === 4) {\n        noOfLines = Math.round(viewModel.cursorConfig.pageSize / 2) * args.value;\n      } else {\n        noOfLines = args.value;\n      }\n      const deltaLines = (args.direction === 1 ? -1 : 1) * noOfLines;\n      return viewModel.viewLayout.getCurrentScrollTop() + deltaLines * viewModel.cursorConfig.lineHeight;\n    }\n    _runHorizontalEditorScroll(viewModel, source, args) {\n      const desiredScrollLeft = this._computeDesiredScrollLeft(viewModel, args);\n      viewModel.viewLayout.setScrollPosition(\n        { scrollLeft: desiredScrollLeft },\n        0\n        /* ScrollType.Smooth */\n      );\n    }\n    _computeDesiredScrollLeft(viewModel, args) {\n      const deltaColumns = (args.direction === 4 ? -1 : 1) * args.value;\n      return viewModel.viewLayout.getCurrentScrollLeft() + deltaColumns * viewModel.cursorConfig.typicalHalfwidthCharacterWidth;\n    }\n  }\n  CoreNavigationCommands2.EditorScrollImpl = EditorScrollImpl;\n  CoreNavigationCommands2.EditorScroll = registerEditorCommand(new EditorScrollImpl());\n  CoreNavigationCommands2.ScrollLineUp = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"scrollLineUp\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 2048 | 16,\n          mac: {\n            primary: 256 | 11\n            /* KeyCode.PageUp */\n          }\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {\n        to: EditorScroll_.RawDirection.Up,\n        by: EditorScroll_.RawUnit.WrappedLine,\n        value: 1,\n        revealCursor: false,\n        select: false,\n        source: args.source\n      });\n    }\n  }());\n  CoreNavigationCommands2.ScrollPageUp = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"scrollPageUp\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 2048 | 11,\n          win: {\n            primary: 512 | 11\n            /* KeyCode.PageUp */\n          },\n          linux: {\n            primary: 512 | 11\n            /* KeyCode.PageUp */\n          }\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {\n        to: EditorScroll_.RawDirection.Up,\n        by: EditorScroll_.RawUnit.Page,\n        value: 1,\n        revealCursor: false,\n        select: false,\n        source: args.source\n      });\n    }\n  }());\n  CoreNavigationCommands2.ScrollEditorTop = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"scrollEditorTop\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {\n        to: EditorScroll_.RawDirection.Up,\n        by: EditorScroll_.RawUnit.Editor,\n        value: 1,\n        revealCursor: false,\n        select: false,\n        source: args.source\n      });\n    }\n  }());\n  CoreNavigationCommands2.ScrollLineDown = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"scrollLineDown\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 2048 | 18,\n          mac: {\n            primary: 256 | 12\n            /* KeyCode.PageDown */\n          }\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {\n        to: EditorScroll_.RawDirection.Down,\n        by: EditorScroll_.RawUnit.WrappedLine,\n        value: 1,\n        revealCursor: false,\n        select: false,\n        source: args.source\n      });\n    }\n  }());\n  CoreNavigationCommands2.ScrollPageDown = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"scrollPageDown\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 2048 | 12,\n          win: {\n            primary: 512 | 12\n            /* KeyCode.PageDown */\n          },\n          linux: {\n            primary: 512 | 12\n            /* KeyCode.PageDown */\n          }\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {\n        to: EditorScroll_.RawDirection.Down,\n        by: EditorScroll_.RawUnit.Page,\n        value: 1,\n        revealCursor: false,\n        select: false,\n        source: args.source\n      });\n    }\n  }());\n  CoreNavigationCommands2.ScrollEditorBottom = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"scrollEditorBottom\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {\n        to: EditorScroll_.RawDirection.Down,\n        by: EditorScroll_.RawUnit.Editor,\n        value: 1,\n        revealCursor: false,\n        select: false,\n        source: args.source\n      });\n    }\n  }());\n  CoreNavigationCommands2.ScrollLeft = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"scrollLeft\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {\n        to: EditorScroll_.RawDirection.Left,\n        by: EditorScroll_.RawUnit.Column,\n        value: 2,\n        revealCursor: false,\n        select: false,\n        source: args.source\n      });\n    }\n  }());\n  CoreNavigationCommands2.ScrollRight = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"scrollRight\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      CoreNavigationCommands2.EditorScroll.runCoreEditorCommand(viewModel, {\n        to: EditorScroll_.RawDirection.Right,\n        by: EditorScroll_.RawUnit.Column,\n        value: 2,\n        revealCursor: false,\n        select: false,\n        source: args.source\n      });\n    }\n  }());\n  class WordCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      if (!args.position) {\n        return;\n      }\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, [\n        CursorMoveCommands.word(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position)\n      ]);\n      if (args.revealType !== 2) {\n        viewModel.revealAllCursors(args.source, true, true);\n      }\n    }\n  }\n  CoreNavigationCommands2.WordSelect = registerEditorCommand(new WordCommand({\n    inSelectionMode: false,\n    id: \"_wordSelect\",\n    precondition: void 0\n  }));\n  CoreNavigationCommands2.WordSelectDrag = registerEditorCommand(new WordCommand({\n    inSelectionMode: true,\n    id: \"_wordSelectDrag\",\n    precondition: void 0\n  }));\n  CoreNavigationCommands2.LastCursorWordSelect = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"lastCursorWordSelect\",\n        precondition: void 0\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      if (!args.position) {\n        return;\n      }\n      const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n      const states = viewModel.getCursorStates();\n      const newStates = states.slice(0);\n      const lastAddedState = states[lastAddedCursorIndex];\n      newStates[lastAddedCursorIndex] = CursorMoveCommands.word(viewModel, lastAddedState, lastAddedState.modelState.hasSelection(), args.position);\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, newStates);\n    }\n  }());\n  class LineCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      if (!args.position) {\n        return;\n      }\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, [\n        CursorMoveCommands.line(viewModel, viewModel.getPrimaryCursorState(), this._inSelectionMode, args.position, args.viewPosition)\n      ]);\n      if (args.revealType !== 2) {\n        viewModel.revealAllCursors(args.source, false, true);\n      }\n    }\n  }\n  CoreNavigationCommands2.LineSelect = registerEditorCommand(new LineCommand({\n    inSelectionMode: false,\n    id: \"_lineSelect\",\n    precondition: void 0\n  }));\n  CoreNavigationCommands2.LineSelectDrag = registerEditorCommand(new LineCommand({\n    inSelectionMode: true,\n    id: \"_lineSelectDrag\",\n    precondition: void 0\n  }));\n  class LastCursorLineCommand extends CoreEditorCommand {\n    constructor(opts) {\n      super(opts);\n      this._inSelectionMode = opts.inSelectionMode;\n    }\n    runCoreEditorCommand(viewModel, args) {\n      if (!args.position) {\n        return;\n      }\n      const lastAddedCursorIndex = viewModel.getLastAddedCursorIndex();\n      const states = viewModel.getCursorStates();\n      const newStates = states.slice(0);\n      newStates[lastAddedCursorIndex] = CursorMoveCommands.line(viewModel, states[lastAddedCursorIndex], this._inSelectionMode, args.position, args.viewPosition);\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, newStates);\n    }\n  }\n  CoreNavigationCommands2.LastCursorLineSelect = registerEditorCommand(new LastCursorLineCommand({\n    inSelectionMode: false,\n    id: \"lastCursorLineSelect\",\n    precondition: void 0\n  }));\n  CoreNavigationCommands2.LastCursorLineSelectDrag = registerEditorCommand(new LastCursorLineCommand({\n    inSelectionMode: true,\n    id: \"lastCursorLineSelectDrag\",\n    precondition: void 0\n  }));\n  CoreNavigationCommands2.CancelSelection = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"cancelSelection\",\n        precondition: EditorContextKeys.hasNonEmptySelection,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 9,\n          secondary: [\n            1024 | 9\n            /* KeyCode.Escape */\n          ]\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, [\n        CursorMoveCommands.cancelSelection(viewModel, viewModel.getPrimaryCursorState())\n      ]);\n      viewModel.revealAllCursors(args.source, true);\n    }\n  }());\n  CoreNavigationCommands2.RemoveSecondaryCursors = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"removeSecondaryCursors\",\n        precondition: EditorContextKeys.hasMultipleSelections,\n        kbOpts: {\n          weight: CORE_WEIGHT + 1,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 9,\n          secondary: [\n            1024 | 9\n            /* KeyCode.Escape */\n          ]\n        }\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, [\n        viewModel.getPrimaryCursorState()\n      ]);\n      viewModel.revealAllCursors(args.source, true);\n      status(localize(63, \"Removed secondary cursors\"));\n    }\n  }());\n  CoreNavigationCommands2.RevealLine = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"revealLine\",\n        precondition: void 0,\n        metadata: RevealLine_.metadata\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      const revealLineArg = args;\n      const lineNumberArg = revealLineArg.lineNumber || 0;\n      let lineNumber = typeof lineNumberArg === \"number\" ? lineNumberArg + 1 : parseInt(lineNumberArg) + 1;\n      if (lineNumber \u003c 1) {\n        lineNumber = 1;\n      }\n      const lineCount = viewModel.model.getLineCount();\n      if (lineNumber \u003e lineCount) {\n        lineNumber = lineCount;\n      }\n      const range2 = new Range(lineNumber, 1, lineNumber, viewModel.model.getLineMaxColumn(lineNumber));\n      let revealAt = 0;\n      if (revealLineArg.at) {\n        switch (revealLineArg.at) {\n          case RevealLine_.RawAtArgument.Top:\n            revealAt = 3;\n            break;\n          case RevealLine_.RawAtArgument.Center:\n            revealAt = 1;\n            break;\n          case RevealLine_.RawAtArgument.Bottom:\n            revealAt = 4;\n            break;\n          default:\n            break;\n        }\n      }\n      const viewRange = viewModel.coordinatesConverter.convertModelRangeToViewRange(range2);\n      viewModel.revealRange(\n        args.source,\n        false,\n        viewRange,\n        revealAt,\n        0\n        /* ScrollType.Smooth */\n      );\n    }\n  }());\n  CoreNavigationCommands2.SelectAll = new class extends EditorOrNativeTextInputCommand {\n    constructor() {\n      super(SelectAllCommand);\n    }\n    runDOMCommand(activeElement) {\n      if (isFirefox) {\n        activeElement.focus();\n        activeElement.select();\n      }\n      activeElement.ownerDocument.execCommand(\"selectAll\");\n    }\n    runEditorCommand(accessor, editor2, args) {\n      const viewModel = editor2._getViewModel();\n      if (!viewModel) {\n        return;\n      }\n      this.runCoreEditorCommand(viewModel, args);\n    }\n    runCoreEditorCommand(viewModel, args) {\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(\"keyboard\", 3, [\n        CursorMoveCommands.selectAll(viewModel, viewModel.getPrimaryCursorState())\n      ]);\n    }\n  }();\n  CoreNavigationCommands2.SetSelection = registerEditorCommand(new class extends CoreEditorCommand {\n    constructor() {\n      super({\n        id: \"setSelection\",\n        precondition: void 0\n      });\n    }\n    runCoreEditorCommand(viewModel, args) {\n      if (!args.selection) {\n        return;\n      }\n      viewModel.model.pushStackElement();\n      viewModel.setCursorStates(args.source, 3, [\n        CursorState.fromModelSelection(args.selection)\n      ]);\n    }\n  }());\n})(CoreNavigationCommands || (CoreNavigationCommands = {}));\nvar columnSelectionCondition = ContextKeyExpr.and(EditorContextKeys.textInputFocus, EditorContextKeys.columnSelection);\nfunction registerColumnSelection(id, keybinding) {\n  KeybindingsRegistry.registerKeybindingRule({\n    id,\n    primary: keybinding,\n    when: columnSelectionCondition,\n    weight: CORE_WEIGHT + 1\n  });\n}\nregisterColumnSelection(\n  CoreNavigationCommands.CursorColumnSelectLeft.id,\n  1024 | 15\n  /* KeyCode.LeftArrow */\n);\nregisterColumnSelection(\n  CoreNavigationCommands.CursorColumnSelectRight.id,\n  1024 | 17\n  /* KeyCode.RightArrow */\n);\nregisterColumnSelection(\n  CoreNavigationCommands.CursorColumnSelectUp.id,\n  1024 | 16\n  /* KeyCode.UpArrow */\n);\nregisterColumnSelection(\n  CoreNavigationCommands.CursorColumnSelectPageUp.id,\n  1024 | 11\n  /* KeyCode.PageUp */\n);\nregisterColumnSelection(\n  CoreNavigationCommands.CursorColumnSelectDown.id,\n  1024 | 18\n  /* KeyCode.DownArrow */\n);\nregisterColumnSelection(\n  CoreNavigationCommands.CursorColumnSelectPageDown.id,\n  1024 | 12\n  /* KeyCode.PageDown */\n);\nfunction registerCommand2(command) {\n  command.register();\n  return command;\n}\nvar CoreEditingCommands;\n(function(CoreEditingCommands2) {\n  class CoreEditingCommand extends EditorCommand {\n    runEditorCommand(accessor, editor2, args) {\n      const viewModel = editor2._getViewModel();\n      if (!viewModel) {\n        return;\n      }\n      this.runCoreEditingCommand(editor2, viewModel, args || {});\n    }\n  }\n  CoreEditingCommands2.CoreEditingCommand = CoreEditingCommand;\n  CoreEditingCommands2.LineBreakInsert = registerEditorCommand(new class extends CoreEditingCommand {\n    constructor() {\n      super({\n        id: \"lineBreakInsert\",\n        precondition: EditorContextKeys.writable,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 0,\n          mac: {\n            primary: 256 | 45\n            /* KeyCode.KeyO */\n          }\n        }\n      });\n    }\n    runCoreEditingCommand(editor2, viewModel, args) {\n      editor2.pushUndoStop();\n      editor2.executeCommands(this.id, EnterOperation.lineBreakInsert(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) =\u003e s.modelState.selection)));\n    }\n  }());\n  CoreEditingCommands2.Outdent = registerEditorCommand(new class extends CoreEditingCommand {\n    constructor() {\n      super({\n        id: \"outdent\",\n        precondition: EditorContextKeys.writable,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, EditorContextKeys.tabDoesNotMoveFocus),\n          primary: 1024 | 2\n          /* KeyCode.Tab */\n        }\n      });\n    }\n    runCoreEditingCommand(editor2, viewModel, args) {\n      editor2.pushUndoStop();\n      editor2.executeCommands(this.id, TypeOperations.outdent(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) =\u003e s.modelState.selection)));\n      editor2.pushUndoStop();\n    }\n  }());\n  CoreEditingCommands2.Tab = registerEditorCommand(new class extends CoreEditingCommand {\n    constructor() {\n      super({\n        id: \"tab\",\n        precondition: EditorContextKeys.writable,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, EditorContextKeys.tabDoesNotMoveFocus),\n          primary: 2\n          /* KeyCode.Tab */\n        }\n      });\n    }\n    runCoreEditingCommand(editor2, viewModel, args) {\n      editor2.pushUndoStop();\n      editor2.executeCommands(this.id, TypeOperations.tab(viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) =\u003e s.modelState.selection)));\n      editor2.pushUndoStop();\n    }\n  }());\n  CoreEditingCommands2.DeleteLeft = registerEditorCommand(new class extends CoreEditingCommand {\n    constructor() {\n      super({\n        id: \"deleteLeft\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 1,\n          secondary: [\n            1024 | 1\n            /* KeyCode.Backspace */\n          ],\n          mac: { primary: 1, secondary: [\n            1024 | 1,\n            256 | 38,\n            256 | 1\n            /* KeyCode.Backspace */\n          ] }\n        }\n      });\n    }\n    runCoreEditingCommand(editor2, viewModel, args) {\n      const [shouldPushStackElementBefore, commands] = DeleteOperations.deleteLeft(viewModel.getPrevEditOperationType(), viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) =\u003e s.modelState.selection), viewModel.getCursorAutoClosedCharacters());\n      if (shouldPushStackElementBefore) {\n        editor2.pushUndoStop();\n      }\n      editor2.executeCommands(this.id, commands);\n      viewModel.setPrevEditOperationType(\n        2\n        /* EditOperationType.DeletingLeft */\n      );\n    }\n  }());\n  CoreEditingCommands2.DeleteRight = registerEditorCommand(new class extends CoreEditingCommand {\n    constructor() {\n      super({\n        id: \"deleteRight\",\n        precondition: void 0,\n        kbOpts: {\n          weight: CORE_WEIGHT,\n          kbExpr: EditorContextKeys.textInputFocus,\n          primary: 20,\n          mac: { primary: 20, secondary: [\n            256 | 34,\n            256 | 20\n            /* KeyCode.Delete */\n          ] }\n        }\n      });\n    }\n    runCoreEditingCommand(editor2, viewModel, args) {\n      const [shouldPushStackElementBefore, commands] = DeleteOperations.deleteRight(viewModel.getPrevEditOperationType(), viewModel.cursorConfig, viewModel.model, viewModel.getCursorStates().map((s) =\u003e s.modelState.selection));\n      if (shouldPushStackElementBefore) {\n        editor2.pushUndoStop();\n      }\n      editor2.executeCommands(this.id, commands);\n      viewModel.setPrevEditOperationType(\n        3\n        /* EditOperationType.DeletingRight */\n      );\n    }\n  }());\n  CoreEditingCommands2.Undo = new class extends EditorOrNativeTextInputCommand {\n    constructor() {\n      super(UndoCommand);\n    }\n    runDOMCommand(activeElement) {\n      activeElement.ownerDocument.execCommand(\"undo\");\n    }\n    runEditorCommand(accessor, editor2, args) {\n      if (!editor2.hasModel() || editor2.getOption(\n        103\n        /* EditorOption.readOnly */\n      ) === true) {\n        return;\n      }\n      return editor2.getModel().undo();\n    }\n  }();\n  CoreEditingCommands2.Redo = new class extends EditorOrNativeTextInputCommand {\n    constructor() {\n      super(RedoCommand);\n    }\n    runDOMCommand(activeElement) {\n      activeElement.ownerDocument.execCommand(\"redo\");\n    }\n    runEditorCommand(accessor, editor2, args) {\n      if (!editor2.hasModel() || editor2.getOption(\n        103\n        /* EditorOption.readOnly */\n      ) === true) {\n        return;\n      }\n      return editor2.getModel().redo();\n    }\n  }();\n})(CoreEditingCommands || (CoreEditingCommands = {}));\nvar EditorHandlerCommand = class extends Command {\n  constructor(id, handlerId, metadata) {\n    super({\n      id,\n      precondition: void 0,\n      metadata\n    });\n    this._handlerId = handlerId;\n  }\n  runCommand(accessor, args) {\n    const editor2 = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n    if (!editor2) {\n      return;\n    }\n    editor2.trigger(\"keyboard\", this._handlerId, args);\n  }\n};\nfunction registerOverwritableCommand(handlerId, metadata) {\n  registerCommand2(new EditorHandlerCommand(\"default:\" + handlerId, handlerId));\n  registerCommand2(new EditorHandlerCommand(handlerId, handlerId, metadata));\n}\nregisterOverwritableCommand(\"type\", {\n  description: `Type`,\n  args: [{\n    name: \"args\",\n    schema: {\n      \"type\": \"object\",\n      \"required\": [\"text\"],\n      \"properties\": {\n        \"text\": {\n          \"type\": \"string\"\n        }\n      }\n    }\n  }]\n});\nregisterOverwritableCommand(\n  \"replacePreviousChar\"\n  /* Handler.ReplacePreviousChar */\n);\nregisterOverwritableCommand(\n  \"compositionType\"\n  /* Handler.CompositionType */\n);\nregisterOverwritableCommand(\n  \"compositionStart\"\n  /* Handler.CompositionStart */\n);\nregisterOverwritableCommand(\n  \"compositionEnd\"\n  /* Handler.CompositionEnd */\n);\nregisterOverwritableCommand(\n  \"paste\"\n  /* Handler.Paste */\n);\nregisterOverwritableCommand(\n  \"cut\"\n  /* Handler.Cut */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/markerDecorations.js\ninit_instantiation();\nvar IMarkerDecorationsService = createDecorator(\"markerDecorationsService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/markerDecorations.js\ninit_editorExtensions();\nvar __decorate4 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param4 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MarkerDecorationsContribution = class MarkerDecorationsContribution2 {\n  static {\n    this.ID = \"editor.contrib.markerDecorations\";\n  }\n  constructor(_editor, _markerDecorationsService) {\n  }\n  dispose() {\n  }\n};\nMarkerDecorationsContribution = __decorate4([\n  __param4(1, IMarkerDecorationsService)\n], MarkerDecorationsContribution);\nregisterEditorContribution(\n  MarkerDecorationsContribution.ID,\n  MarkerDecorationsContribution,\n  0\n  /* EditorContributionInstantiation.Eager */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js\ninit_dom();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_network();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/fastDomNode.js\nvar FastDomNode = class {\n  constructor(domNode) {\n    this.domNode = domNode;\n    this._maxWidth = \"\";\n    this._width = \"\";\n    this._height = \"\";\n    this._top = \"\";\n    this._left = \"\";\n    this._bottom = \"\";\n    this._right = \"\";\n    this._paddingLeft = \"\";\n    this._fontFamily = \"\";\n    this._fontWeight = \"\";\n    this._fontSize = \"\";\n    this._fontStyle = \"\";\n    this._fontFeatureSettings = \"\";\n    this._fontVariationSettings = \"\";\n    this._textDecoration = \"\";\n    this._lineHeight = \"\";\n    this._letterSpacing = \"\";\n    this._className = \"\";\n    this._display = \"\";\n    this._position = \"\";\n    this._visibility = \"\";\n    this._color = \"\";\n    this._backgroundColor = \"\";\n    this._layerHint = false;\n    this._contain = \"none\";\n    this._boxShadow = \"\";\n  }\n  focus() {\n    this.domNode.focus();\n  }\n  setMaxWidth(_maxWidth) {\n    const maxWidth = numberAsPixels(_maxWidth);\n    if (this._maxWidth === maxWidth) {\n      return;\n    }\n    this._maxWidth = maxWidth;\n    this.domNode.style.maxWidth = this._maxWidth;\n  }\n  setWidth(_width) {\n    const width2 = numberAsPixels(_width);\n    if (this._width === width2) {\n      return;\n    }\n    this._width = width2;\n    this.domNode.style.width = this._width;\n  }\n  setHeight(_height) {\n    const height = numberAsPixels(_height);\n    if (this._height === height) {\n      return;\n    }\n    this._height = height;\n    this.domNode.style.height = this._height;\n  }\n  setTop(_top) {\n    const top = numberAsPixels(_top);\n    if (this._top === top) {\n      return;\n    }\n    this._top = top;\n    this.domNode.style.top = this._top;\n  }\n  setLeft(_left) {\n    const left = numberAsPixels(_left);\n    if (this._left === left) {\n      return;\n    }\n    this._left = left;\n    this.domNode.style.left = this._left;\n  }\n  setBottom(_bottom) {\n    const bottom = numberAsPixels(_bottom);\n    if (this._bottom === bottom) {\n      return;\n    }\n    this._bottom = bottom;\n    this.domNode.style.bottom = this._bottom;\n  }\n  setRight(_right) {\n    const right = numberAsPixels(_right);\n    if (this._right === right) {\n      return;\n    }\n    this._right = right;\n    this.domNode.style.right = this._right;\n  }\n  setPaddingLeft(_paddingLeft) {\n    const paddingLeft = numberAsPixels(_paddingLeft);\n    if (this._paddingLeft === paddingLeft) {\n      return;\n    }\n    this._paddingLeft = paddingLeft;\n    this.domNode.style.paddingLeft = this._paddingLeft;\n  }\n  setFontFamily(fontFamily) {\n    if (this._fontFamily === fontFamily) {\n      return;\n    }\n    this._fontFamily = fontFamily;\n    this.domNode.style.fontFamily = this._fontFamily;\n  }\n  setFontWeight(fontWeight) {\n    if (this._fontWeight === fontWeight) {\n      return;\n    }\n    this._fontWeight = fontWeight;\n    this.domNode.style.fontWeight = this._fontWeight;\n  }\n  setFontSize(_fontSize) {\n    const fontSize = numberAsPixels(_fontSize);\n    if (this._fontSize === fontSize) {\n      return;\n    }\n    this._fontSize = fontSize;\n    this.domNode.style.fontSize = this._fontSize;\n  }\n  setFontStyle(fontStyle) {\n    if (this._fontStyle === fontStyle) {\n      return;\n    }\n    this._fontStyle = fontStyle;\n    this.domNode.style.fontStyle = this._fontStyle;\n  }\n  setFontFeatureSettings(fontFeatureSettings) {\n    if (this._fontFeatureSettings === fontFeatureSettings) {\n      return;\n    }\n    this._fontFeatureSettings = fontFeatureSettings;\n    this.domNode.style.fontFeatureSettings = this._fontFeatureSettings;\n  }\n  setFontVariationSettings(fontVariationSettings) {\n    if (this._fontVariationSettings === fontVariationSettings) {\n      return;\n    }\n    this._fontVariationSettings = fontVariationSettings;\n    this.domNode.style.fontVariationSettings = this._fontVariationSettings;\n  }\n  setTextDecoration(textDecoration) {\n    if (this._textDecoration === textDecoration) {\n      return;\n    }\n    this._textDecoration = textDecoration;\n    this.domNode.style.textDecoration = this._textDecoration;\n  }\n  setLineHeight(_lineHeight) {\n    const lineHeight = numberAsPixels(_lineHeight);\n    if (this._lineHeight === lineHeight) {\n      return;\n    }\n    this._lineHeight = lineHeight;\n    this.domNode.style.lineHeight = this._lineHeight;\n  }\n  setLetterSpacing(_letterSpacing) {\n    const letterSpacing = numberAsPixels(_letterSpacing);\n    if (this._letterSpacing === letterSpacing) {\n      return;\n    }\n    this._letterSpacing = letterSpacing;\n    this.domNode.style.letterSpacing = this._letterSpacing;\n  }\n  setClassName(className2) {\n    if (this._className === className2) {\n      return;\n    }\n    this._className = className2;\n    this.domNode.className = this._className;\n  }\n  toggleClassName(className2, shouldHaveIt) {\n    this.domNode.classList.toggle(className2, shouldHaveIt);\n    this._className = this.domNode.className;\n  }\n  setDisplay(display) {\n    if (this._display === display) {\n      return;\n    }\n    this._display = display;\n    this.domNode.style.display = this._display;\n  }\n  setPosition(position) {\n    if (this._position === position) {\n      return;\n    }\n    this._position = position;\n    this.domNode.style.position = this._position;\n  }\n  setVisibility(visibility) {\n    if (this._visibility === visibility) {\n      return;\n    }\n    this._visibility = visibility;\n    this.domNode.style.visibility = this._visibility;\n  }\n  setColor(color) {\n    if (this._color === color) {\n      return;\n    }\n    this._color = color;\n    this.domNode.style.color = this._color;\n  }\n  setBackgroundColor(backgroundColor) {\n    if (this._backgroundColor === backgroundColor) {\n      return;\n    }\n    this._backgroundColor = backgroundColor;\n    this.domNode.style.backgroundColor = this._backgroundColor;\n  }\n  setLayerHinting(layerHint) {\n    if (this._layerHint === layerHint) {\n      return;\n    }\n    this._layerHint = layerHint;\n    this.domNode.style.transform = this._layerHint ? \"translate3d(0px, 0px, 0px)\" : \"\";\n  }\n  setBoxShadow(boxShadow) {\n    if (this._boxShadow === boxShadow) {\n      return;\n    }\n    this._boxShadow = boxShadow;\n    this.domNode.style.boxShadow = boxShadow;\n  }\n  setContain(contain) {\n    if (this._contain === contain) {\n      return;\n    }\n    this._contain = contain;\n    this.domNode.style.contain = this._contain;\n  }\n  setAttribute(name, value) {\n    this.domNode.setAttribute(name, value);\n  }\n  removeAttribute(name) {\n    this.domNode.removeAttribute(name);\n  }\n  appendChild(child) {\n    this.domNode.appendChild(child.domNode);\n  }\n  removeChild(child) {\n    this.domNode.removeChild(child.domNode);\n  }\n};\nfunction numberAsPixels(value) {\n  return typeof value === \"number\" ? `${value}px` : value;\n}\nfunction createFastDomNode(domNode) {\n  return new FastDomNode(domNode);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/domFontInfo.js\nfunction applyFontInfo(domNode, fontInfo) {\n  if (domNode instanceof FastDomNode) {\n    domNode.setFontFamily(fontInfo.getMassagedFontFamily());\n    domNode.setFontWeight(fontInfo.fontWeight);\n    domNode.setFontSize(fontInfo.fontSize);\n    domNode.setFontFeatureSettings(fontInfo.fontFeatureSettings);\n    domNode.setFontVariationSettings(fontInfo.fontVariationSettings);\n    domNode.setLineHeight(fontInfo.lineHeight);\n    domNode.setLetterSpacing(fontInfo.letterSpacing);\n  } else {\n    domNode.style.fontFamily = fontInfo.getMassagedFontFamily();\n    domNode.style.fontWeight = fontInfo.fontWeight;\n    domNode.style.fontSize = fontInfo.fontSize + \"px\";\n    domNode.style.fontFeatureSettings = fontInfo.fontFeatureSettings;\n    domNode.style.fontVariationSettings = fontInfo.fontVariationSettings;\n    domNode.style.lineHeight = fontInfo.lineHeight + \"px\";\n    domNode.style.letterSpacing = fontInfo.letterSpacing + \"px\";\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/editorConfiguration.js\ninit_browser();\ninit_arrays();\ninit_event();\ninit_lifecycle();\ninit_objects();\ninit_platform();\ninit_elementSizeObserver();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/fontMeasurements.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/pixelRatio.js\ninit_dom();\ninit_event();\ninit_lifecycle();\nvar DevicePixelRatioMonitor = class extends Disposable {\n  constructor(targetWindow) {\n    super();\n    this._onDidChange = this._register(new Emitter());\n    this.onDidChange = this._onDidChange.event;\n    this._listener = () =\u003e this._handleChange(targetWindow, true);\n    this._mediaQueryList = null;\n    this._handleChange(targetWindow, false);\n  }\n  _handleChange(targetWindow, fireEvent) {\n    this._mediaQueryList?.removeEventListener(\"change\", this._listener);\n    this._mediaQueryList = targetWindow.matchMedia(`(resolution: ${targetWindow.devicePixelRatio}dppx)`);\n    this._mediaQueryList.addEventListener(\"change\", this._listener);\n    if (fireEvent) {\n      this._onDidChange.fire();\n    }\n  }\n};\nvar PixelRatioMonitorImpl = class extends Disposable {\n  get value() {\n    return this._value;\n  }\n  constructor(targetWindow) {\n    super();\n    this._onDidChange = this._register(new Emitter());\n    this.onDidChange = this._onDidChange.event;\n    this._value = this._getPixelRatio(targetWindow);\n    const dprMonitor = this._register(new DevicePixelRatioMonitor(targetWindow));\n    this._register(dprMonitor.onDidChange(() =\u003e {\n      this._value = this._getPixelRatio(targetWindow);\n      this._onDidChange.fire(this._value);\n    }));\n  }\n  _getPixelRatio(targetWindow) {\n    const ctx = document.createElement(\"canvas\").getContext(\"2d\");\n    const dpr = targetWindow.devicePixelRatio || 1;\n    const bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;\n    return dpr / bsr;\n  }\n};\nvar PixelRatioMonitorFacade = class {\n  constructor() {\n    this.mapWindowIdToPixelRatioMonitor = /* @__PURE__ */ new Map();\n  }\n  _getOrCreatePixelRatioMonitor(targetWindow) {\n    const targetWindowId = getWindowId(targetWindow);\n    let pixelRatioMonitor = this.mapWindowIdToPixelRatioMonitor.get(targetWindowId);\n    if (!pixelRatioMonitor) {\n      pixelRatioMonitor = markAsSingleton(new PixelRatioMonitorImpl(targetWindow));\n      this.mapWindowIdToPixelRatioMonitor.set(targetWindowId, pixelRatioMonitor);\n      markAsSingleton(Event.once(onDidUnregisterWindow)(({ vscodeWindowId }) =\u003e {\n        if (vscodeWindowId === targetWindowId) {\n          pixelRatioMonitor?.dispose();\n          this.mapWindowIdToPixelRatioMonitor.delete(targetWindowId);\n        }\n      }));\n    }\n    return pixelRatioMonitor;\n  }\n  getInstance(targetWindow) {\n    return this._getOrCreatePixelRatioMonitor(targetWindow);\n  }\n};\nvar PixelRatio = new PixelRatioMonitorFacade();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/fontMeasurements.js\ninit_event();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/charWidthReader.js\nvar CharWidthRequest = class {\n  constructor(chr, type) {\n    this.chr = chr;\n    this.type = type;\n    this.width = 0;\n  }\n  fulfill(width2) {\n    this.width = width2;\n  }\n};\nvar DomCharWidthReader = class _DomCharWidthReader {\n  constructor(bareFontInfo, requests) {\n    this._bareFontInfo = bareFontInfo;\n    this._requests = requests;\n    this._container = null;\n    this._testElements = null;\n  }\n  read(targetWindow) {\n    this._createDomElements();\n    targetWindow.document.body.appendChild(this._container);\n    this._readFromDomElements();\n    this._container?.remove();\n    this._container = null;\n    this._testElements = null;\n  }\n  _createDomElements() {\n    const container = document.createElement(\"div\");\n    container.style.position = \"absolute\";\n    container.style.top = \"-50000px\";\n    container.style.width = \"50000px\";\n    const regularDomNode = document.createElement(\"div\");\n    applyFontInfo(regularDomNode, this._bareFontInfo);\n    container.appendChild(regularDomNode);\n    const boldDomNode = document.createElement(\"div\");\n    applyFontInfo(boldDomNode, this._bareFontInfo);\n    boldDomNode.style.fontWeight = \"bold\";\n    container.appendChild(boldDomNode);\n    const italicDomNode = document.createElement(\"div\");\n    applyFontInfo(italicDomNode, this._bareFontInfo);\n    italicDomNode.style.fontStyle = \"italic\";\n    container.appendChild(italicDomNode);\n    const testElements = [];\n    for (const request of this._requests) {\n      let parent;\n      if (request.type === 0) {\n        parent = regularDomNode;\n      }\n      if (request.type === 2) {\n        parent = boldDomNode;\n      }\n      if (request.type === 1) {\n        parent = italicDomNode;\n      }\n      parent.appendChild(document.createElement(\"br\"));\n      const testElement = document.createElement(\"span\");\n      _DomCharWidthReader._render(testElement, request);\n      parent.appendChild(testElement);\n      testElements.push(testElement);\n    }\n    this._container = container;\n    this._testElements = testElements;\n  }\n  static _render(testElement, request) {\n    if (request.chr === \" \") {\n      let htmlString = \"\\xA0\";\n      for (let i2 = 0; i2 \u003c 8; i2++) {\n        htmlString += htmlString;\n      }\n      testElement.innerText = htmlString;\n    } else {\n      let testString = request.chr;\n      for (let i2 = 0; i2 \u003c 8; i2++) {\n        testString += testString;\n      }\n      testElement.textContent = testString;\n    }\n  }\n  _readFromDomElements() {\n    for (let i2 = 0, len = this._requests.length; i2 \u003c len; i2++) {\n      const request = this._requests[i2];\n      const testElement = this._testElements[i2];\n      request.fulfill(testElement.offsetWidth / 256);\n    }\n  }\n};\nfunction readCharWidths(targetWindow, bareFontInfo, requests) {\n  const reader = new DomCharWidthReader(bareFontInfo, requests);\n  reader.read(targetWindow);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/config/editorOptions.js\ninit_arrays();\ninit_objects();\ninit_platform();\ninit_textModelDefaults();\ninit_wordHelper();\ninit_nls();\nvar MINIMAP_GUTTER_WIDTH = 8;\nvar ConfigurationChangedEvent = class {\n  /**\n   * @internal\n   */\n  constructor(values) {\n    this._values = values;\n  }\n  hasChanged(id) {\n    return this._values[id];\n  }\n};\nvar ComputeOptionsMemory = class {\n  constructor() {\n    this.stableMinimapLayoutInput = null;\n    this.stableFitMaxMinimapScale = 0;\n    this.stableFitRemainingWidth = 0;\n  }\n};\nvar BaseEditorOption = class {\n  constructor(id, name, defaultValue, schema) {\n    this.id = id;\n    this.name = name;\n    this.defaultValue = defaultValue;\n    this.schema = schema;\n  }\n  applyUpdate(value, update) {\n    return applyUpdate(value, update);\n  }\n  compute(env2, options2, value) {\n    return value;\n  }\n};\nvar ApplyUpdateResult = class {\n  constructor(newValue, didChange) {\n    this.newValue = newValue;\n    this.didChange = didChange;\n  }\n};\nfunction applyUpdate(value, update) {\n  if (typeof value !== \"object\" || typeof update !== \"object\" || !value || !update) {\n    return new ApplyUpdateResult(update, value !== update);\n  }\n  if (Array.isArray(value) || Array.isArray(update)) {\n    const arrayEquals = Array.isArray(value) \u0026\u0026 Array.isArray(update) \u0026\u0026 equals(value, update);\n    return new ApplyUpdateResult(update, !arrayEquals);\n  }\n  let didChange = false;\n  for (const key in update) {\n    if (update.hasOwnProperty(key)) {\n      const result = applyUpdate(value[key], update[key]);\n      if (result.didChange) {\n        value[key] = result.newValue;\n        didChange = true;\n      }\n    }\n  }\n  return new ApplyUpdateResult(value, didChange);\n}\nvar ComputedEditorOption = class {\n  constructor(id) {\n    this.schema = void 0;\n    this.id = id;\n    this.name = \"_never_\";\n    this.defaultValue = void 0;\n  }\n  applyUpdate(value, update) {\n    return applyUpdate(value, update);\n  }\n  validate(input) {\n    return this.defaultValue;\n  }\n};\nvar SimpleEditorOption = class {\n  constructor(id, name, defaultValue, schema) {\n    this.id = id;\n    this.name = name;\n    this.defaultValue = defaultValue;\n    this.schema = schema;\n  }\n  applyUpdate(value, update) {\n    return applyUpdate(value, update);\n  }\n  validate(input) {\n    if (typeof input === \"undefined\") {\n      return this.defaultValue;\n    }\n    return input;\n  }\n  compute(env2, options2, value) {\n    return value;\n  }\n};\nfunction boolean(value, defaultValue) {\n  if (typeof value === \"undefined\") {\n    return defaultValue;\n  }\n  if (value === \"false\") {\n    return false;\n  }\n  return Boolean(value);\n}\nvar EditorBooleanOption = class extends SimpleEditorOption {\n  constructor(id, name, defaultValue, schema = void 0) {\n    if (typeof schema !== \"undefined\") {\n      schema.type = \"boolean\";\n      schema.default = defaultValue;\n    }\n    super(id, name, defaultValue, schema);\n  }\n  validate(input) {\n    return boolean(input, this.defaultValue);\n  }\n};\nfunction clampedInt(value, defaultValue, minimum, maximum) {\n  if (typeof value === \"undefined\") {\n    return defaultValue;\n  }\n  let r = parseInt(value, 10);\n  if (isNaN(r)) {\n    return defaultValue;\n  }\n  r = Math.max(minimum, r);\n  r = Math.min(maximum, r);\n  return r | 0;\n}\nvar EditorIntOption = class _EditorIntOption extends SimpleEditorOption {\n  static clampedInt(value, defaultValue, minimum, maximum) {\n    return clampedInt(value, defaultValue, minimum, maximum);\n  }\n  constructor(id, name, defaultValue, minimum, maximum, schema = void 0) {\n    if (typeof schema !== \"undefined\") {\n      schema.type = \"integer\";\n      schema.default = defaultValue;\n      schema.minimum = minimum;\n      schema.maximum = maximum;\n    }\n    super(id, name, defaultValue, schema);\n    this.minimum = minimum;\n    this.maximum = maximum;\n  }\n  validate(input) {\n    return _EditorIntOption.clampedInt(input, this.defaultValue, this.minimum, this.maximum);\n  }\n};\nfunction clampedFloat(value, defaultValue, minimum, maximum) {\n  if (typeof value === \"undefined\") {\n    return defaultValue;\n  }\n  const r = EditorFloatOption.float(value, defaultValue);\n  return EditorFloatOption.clamp(r, minimum, maximum);\n}\nvar EditorFloatOption = class _EditorFloatOption extends SimpleEditorOption {\n  static clamp(n2, min, max) {\n    if (n2 \u003c min) {\n      return min;\n    }\n    if (n2 \u003e max) {\n      return max;\n    }\n    return n2;\n  }\n  static float(value, defaultValue) {\n    if (typeof value === \"number\") {\n      return value;\n    }\n    if (typeof value === \"undefined\") {\n      return defaultValue;\n    }\n    const r = parseFloat(value);\n    return isNaN(r) ? defaultValue : r;\n  }\n  constructor(id, name, defaultValue, validationFn, schema, minimum, maximum) {\n    if (typeof schema !== \"undefined\") {\n      schema.type = \"number\";\n      schema.default = defaultValue;\n      schema.minimum = minimum;\n      schema.maximum = maximum;\n    }\n    super(id, name, defaultValue, schema);\n    this.validationFn = validationFn;\n    this.minimum = minimum;\n    this.maximum = maximum;\n  }\n  validate(input) {\n    return this.validationFn(_EditorFloatOption.float(input, this.defaultValue));\n  }\n};\nvar EditorStringOption = class _EditorStringOption extends SimpleEditorOption {\n  static string(value, defaultValue) {\n    if (typeof value !== \"string\") {\n      return defaultValue;\n    }\n    return value;\n  }\n  constructor(id, name, defaultValue, schema = void 0) {\n    if (typeof schema !== \"undefined\") {\n      schema.type = \"string\";\n      schema.default = defaultValue;\n    }\n    super(id, name, defaultValue, schema);\n  }\n  validate(input) {\n    return _EditorStringOption.string(input, this.defaultValue);\n  }\n};\nfunction stringSet(value, defaultValue, allowedValues, renamedValues) {\n  if (typeof value !== \"string\") {\n    return defaultValue;\n  }\n  if (renamedValues \u0026\u0026 value in renamedValues) {\n    return renamedValues[value];\n  }\n  if (allowedValues.indexOf(value) === -1) {\n    return defaultValue;\n  }\n  return value;\n}\nvar EditorStringEnumOption = class extends SimpleEditorOption {\n  constructor(id, name, defaultValue, allowedValues, schema = void 0) {\n    if (typeof schema !== \"undefined\") {\n      schema.type = \"string\";\n      schema.enum = allowedValues;\n      schema.default = defaultValue;\n    }\n    super(id, name, defaultValue, schema);\n    this._allowedValues = allowedValues;\n  }\n  validate(input) {\n    return stringSet(input, this.defaultValue, this._allowedValues);\n  }\n};\nvar EditorEnumOption = class extends BaseEditorOption {\n  constructor(id, name, defaultValue, defaultStringValue, allowedValues, convert, schema = void 0) {\n    if (typeof schema !== \"undefined\") {\n      schema.type = \"string\";\n      schema.enum = allowedValues;\n      schema.default = defaultStringValue;\n    }\n    super(id, name, defaultValue, schema);\n    this._allowedValues = allowedValues;\n    this._convert = convert;\n  }\n  validate(input) {\n    if (typeof input !== \"string\") {\n      return this.defaultValue;\n    }\n    if (this._allowedValues.indexOf(input) === -1) {\n      return this.defaultValue;\n    }\n    return this._convert(input);\n  }\n};\nfunction _autoIndentFromString(autoIndent) {\n  switch (autoIndent) {\n    case \"none\":\n      return 0;\n    case \"keep\":\n      return 1;\n    case \"brackets\":\n      return 2;\n    case \"advanced\":\n      return 3;\n    case \"full\":\n      return 4;\n  }\n}\nvar EditorAccessibilitySupport = class extends BaseEditorOption {\n  constructor() {\n    super(2, \"accessibilitySupport\", 0, {\n      type: \"string\",\n      enum: [\"auto\", \"on\", \"off\"],\n      enumDescriptions: [\n        localize(198, \"Use platform APIs to detect when a Screen Reader is attached.\"),\n        localize(199, \"Optimize for usage with a Screen Reader.\"),\n        localize(200, \"Assume a screen reader is not attached.\")\n      ],\n      default: \"auto\",\n      tags: [\"accessibility\"],\n      description: localize(201, \"Controls if the UI should run in a mode where it is optimized for screen readers.\")\n    });\n  }\n  validate(input) {\n    switch (input) {\n      case \"auto\":\n        return 0;\n      case \"off\":\n        return 1;\n      case \"on\":\n        return 2;\n    }\n    return this.defaultValue;\n  }\n  compute(env2, options2, value) {\n    if (value === 0) {\n      return env2.accessibilitySupport;\n    }\n    return value;\n  }\n};\nvar EditorComments = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      insertSpace: true,\n      ignoreEmptyLines: true\n    };\n    super(29, \"comments\", defaults, {\n      \"editor.comments.insertSpace\": {\n        type: \"boolean\",\n        default: defaults.insertSpace,\n        description: localize(202, \"Controls whether a space character is inserted when commenting.\")\n      },\n      \"editor.comments.ignoreEmptyLines\": {\n        type: \"boolean\",\n        default: defaults.ignoreEmptyLines,\n        description: localize(203, \"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      insertSpace: boolean(input.insertSpace, this.defaultValue.insertSpace),\n      ignoreEmptyLines: boolean(input.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines)\n    };\n  }\n};\nfunction cursorBlinkingStyleFromString(cursorBlinkingStyle) {\n  switch (cursorBlinkingStyle) {\n    case \"blink\":\n      return 1;\n    case \"smooth\":\n      return 2;\n    case \"phase\":\n      return 3;\n    case \"expand\":\n      return 4;\n    case \"solid\":\n      return 5;\n  }\n}\nvar TextEditorCursorStyle;\n(function(TextEditorCursorStyle3) {\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"Line\"] = 1] = \"Line\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"Block\"] = 2] = \"Block\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"Underline\"] = 3] = \"Underline\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"LineThin\"] = 4] = \"LineThin\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"BlockOutline\"] = 5] = \"BlockOutline\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"UnderlineThin\"] = 6] = \"UnderlineThin\";\n})(TextEditorCursorStyle || (TextEditorCursorStyle = {}));\nfunction cursorStyleFromString(cursorStyle) {\n  switch (cursorStyle) {\n    case \"line\":\n      return TextEditorCursorStyle.Line;\n    case \"block\":\n      return TextEditorCursorStyle.Block;\n    case \"underline\":\n      return TextEditorCursorStyle.Underline;\n    case \"line-thin\":\n      return TextEditorCursorStyle.LineThin;\n    case \"block-outline\":\n      return TextEditorCursorStyle.BlockOutline;\n    case \"underline-thin\":\n      return TextEditorCursorStyle.UnderlineThin;\n  }\n}\nvar EditorClassName = class extends ComputedEditorOption {\n  constructor() {\n    super(\n      161\n      /* EditorOption.editorClassName */\n    );\n  }\n  compute(env2, options2, _) {\n    const classNames2 = [\"monaco-editor\"];\n    if (options2.get(\n      48\n      /* EditorOption.extraEditorClassName */\n    )) {\n      classNames2.push(options2.get(\n        48\n        /* EditorOption.extraEditorClassName */\n      ));\n    }\n    if (env2.extraEditorClassName) {\n      classNames2.push(env2.extraEditorClassName);\n    }\n    if (options2.get(\n      82\n      /* EditorOption.mouseStyle */\n    ) === \"default\") {\n      classNames2.push(\"mouse-default\");\n    } else if (options2.get(\n      82\n      /* EditorOption.mouseStyle */\n    ) === \"copy\") {\n      classNames2.push(\"mouse-copy\");\n    }\n    if (options2.get(\n      126\n      /* EditorOption.showUnused */\n    )) {\n      classNames2.push(\"showUnused\");\n    }\n    if (options2.get(\n      156\n      /* EditorOption.showDeprecated */\n    )) {\n      classNames2.push(\"showDeprecated\");\n    }\n    return classNames2.join(\" \");\n  }\n};\nvar EditorEmptySelectionClipboard = class extends EditorBooleanOption {\n  constructor() {\n    super(45, \"emptySelectionClipboard\", true, { description: localize(204, \"Controls whether copying without a selection copies the current line.\") });\n  }\n  compute(env2, options2, value) {\n    return value \u0026\u0026 env2.emptySelectionClipboard;\n  }\n};\nvar EditorFind = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      cursorMoveOnType: true,\n      findOnType: true,\n      seedSearchStringFromSelection: \"always\",\n      autoFindInSelection: \"never\",\n      globalFindClipboard: false,\n      addExtraSpaceOnTop: true,\n      loop: true,\n      history: \"workspace\",\n      replaceHistory: \"workspace\"\n    };\n    super(50, \"find\", defaults, {\n      \"editor.find.cursorMoveOnType\": {\n        type: \"boolean\",\n        default: defaults.cursorMoveOnType,\n        description: localize(205, \"Controls whether the cursor should jump to find matches while typing.\")\n      },\n      \"editor.find.seedSearchStringFromSelection\": {\n        type: \"string\",\n        enum: [\"never\", \"always\", \"selection\"],\n        default: defaults.seedSearchStringFromSelection,\n        enumDescriptions: [\n          localize(206, \"Never seed search string from the editor selection.\"),\n          localize(207, \"Always seed search string from the editor selection, including word at cursor position.\"),\n          localize(208, \"Only seed search string from the editor selection.\")\n        ],\n        description: localize(209, \"Controls whether the search string in the Find Widget is seeded from the editor selection.\")\n      },\n      \"editor.find.autoFindInSelection\": {\n        type: \"string\",\n        enum: [\"never\", \"always\", \"multiline\"],\n        default: defaults.autoFindInSelection,\n        enumDescriptions: [\n          localize(210, \"Never turn on Find in Selection automatically (default).\"),\n          localize(211, \"Always turn on Find in Selection automatically.\"),\n          localize(212, \"Turn on Find in Selection automatically when multiple lines of content are selected.\")\n        ],\n        description: localize(213, \"Controls the condition for turning on Find in Selection automatically.\")\n      },\n      \"editor.find.globalFindClipboard\": {\n        type: \"boolean\",\n        default: defaults.globalFindClipboard,\n        description: localize(214, \"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\"),\n        included: isMacintosh\n      },\n      \"editor.find.addExtraSpaceOnTop\": {\n        type: \"boolean\",\n        default: defaults.addExtraSpaceOnTop,\n        description: localize(215, \"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.\")\n      },\n      \"editor.find.loop\": {\n        type: \"boolean\",\n        default: defaults.loop,\n        description: localize(216, \"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.\")\n      },\n      \"editor.find.history\": {\n        type: \"string\",\n        enum: [\"never\", \"workspace\"],\n        default: \"workspace\",\n        enumDescriptions: [\n          localize(217, \"Do not store search history from the find widget.\"),\n          localize(218, \"Store search history across the active workspace\")\n        ],\n        description: localize(219, \"Controls how the find widget history should be stored\")\n      },\n      \"editor.find.replaceHistory\": {\n        type: \"string\",\n        enum: [\"never\", \"workspace\"],\n        default: \"workspace\",\n        enumDescriptions: [\n          localize(220, \"Do not store history from the replace widget.\"),\n          localize(221, \"Store replace history across the active workspace\")\n        ],\n        description: localize(222, \"Controls how the replace widget history should be stored\")\n      },\n      \"editor.find.findOnType\": {\n        type: \"boolean\",\n        default: defaults.findOnType,\n        description: localize(223, \"Controls whether the Find Widget should search as you type.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      cursorMoveOnType: boolean(input.cursorMoveOnType, this.defaultValue.cursorMoveOnType),\n      findOnType: boolean(input.findOnType, this.defaultValue.findOnType),\n      seedSearchStringFromSelection: typeof _input.seedSearchStringFromSelection === \"boolean\" ? _input.seedSearchStringFromSelection ? \"always\" : \"never\" : stringSet(input.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection, [\"never\", \"always\", \"selection\"]),\n      autoFindInSelection: typeof _input.autoFindInSelection === \"boolean\" ? _input.autoFindInSelection ? \"always\" : \"never\" : stringSet(input.autoFindInSelection, this.defaultValue.autoFindInSelection, [\"never\", \"always\", \"multiline\"]),\n      globalFindClipboard: boolean(input.globalFindClipboard, this.defaultValue.globalFindClipboard),\n      addExtraSpaceOnTop: boolean(input.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop),\n      loop: boolean(input.loop, this.defaultValue.loop),\n      history: stringSet(input.history, this.defaultValue.history, [\"never\", \"workspace\"]),\n      replaceHistory: stringSet(input.replaceHistory, this.defaultValue.replaceHistory, [\"never\", \"workspace\"])\n    };\n  }\n};\nvar EditorFontLigatures = class _EditorFontLigatures extends BaseEditorOption {\n  static {\n    this.OFF = '\"liga\" off, \"calt\" off';\n  }\n  static {\n    this.ON = '\"liga\" on, \"calt\" on';\n  }\n  constructor() {\n    super(60, \"fontLigatures\", _EditorFontLigatures.OFF, {\n      anyOf: [\n        {\n          type: \"boolean\",\n          description: localize(224, \"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.\")\n        },\n        {\n          type: \"string\",\n          description: localize(225, \"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.\")\n        }\n      ],\n      description: localize(226, \"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property.\"),\n      default: false\n    });\n  }\n  validate(input) {\n    if (typeof input === \"undefined\") {\n      return this.defaultValue;\n    }\n    if (typeof input === \"string\") {\n      if (input === \"false\" || input.length === 0) {\n        return _EditorFontLigatures.OFF;\n      }\n      if (input === \"true\") {\n        return _EditorFontLigatures.ON;\n      }\n      return input;\n    }\n    if (Boolean(input)) {\n      return _EditorFontLigatures.ON;\n    }\n    return _EditorFontLigatures.OFF;\n  }\n};\nvar EditorFontVariations = class _EditorFontVariations extends BaseEditorOption {\n  static {\n    this.OFF = \"normal\";\n  }\n  static {\n    this.TRANSLATE = \"translate\";\n  }\n  constructor() {\n    super(63, \"fontVariations\", _EditorFontVariations.OFF, {\n      anyOf: [\n        {\n          type: \"boolean\",\n          description: localize(227, \"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.\")\n        },\n        {\n          type: \"string\",\n          description: localize(228, \"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.\")\n        }\n      ],\n      description: localize(229, \"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property.\"),\n      default: false\n    });\n  }\n  validate(input) {\n    if (typeof input === \"undefined\") {\n      return this.defaultValue;\n    }\n    if (typeof input === \"string\") {\n      if (input === \"false\") {\n        return _EditorFontVariations.OFF;\n      }\n      if (input === \"true\") {\n        return _EditorFontVariations.TRANSLATE;\n      }\n      return input;\n    }\n    if (Boolean(input)) {\n      return _EditorFontVariations.TRANSLATE;\n    }\n    return _EditorFontVariations.OFF;\n  }\n  compute(env2, options2, value) {\n    return env2.fontInfo.fontVariationSettings;\n  }\n};\nvar EditorFontInfo = class extends ComputedEditorOption {\n  constructor() {\n    super(\n      59\n      /* EditorOption.fontInfo */\n    );\n  }\n  compute(env2, options2, _) {\n    return env2.fontInfo;\n  }\n};\nvar EffectiveCursorStyle = class extends ComputedEditorOption {\n  constructor() {\n    super(\n      160\n      /* EditorOption.effectiveCursorStyle */\n    );\n  }\n  compute(env2, options2, _) {\n    return env2.inputMode === \"overtype\" ? options2.get(\n      91\n      /* EditorOption.overtypeCursorStyle */\n    ) : options2.get(\n      34\n      /* EditorOption.cursorStyle */\n    );\n  }\n};\nvar EffectiveEditContextEnabled = class extends ComputedEditorOption {\n  constructor() {\n    super(\n      169\n      /* EditorOption.effectiveEditContext */\n    );\n  }\n  compute(env2, options2) {\n    return env2.editContextSupported \u0026\u0026 options2.get(\n      44\n      /* EditorOption.editContext */\n    );\n  }\n};\nvar EffectiveAllowVariableFonts = class extends ComputedEditorOption {\n  constructor() {\n    super(\n      171\n      /* EditorOption.effectiveAllowVariableFonts */\n    );\n  }\n  compute(env2, options2) {\n    const accessibilitySupport = env2.accessibilitySupport;\n    if (accessibilitySupport === 2) {\n      return options2.get(\n        7\n        /* EditorOption.allowVariableFontsInAccessibilityMode */\n      );\n    } else {\n      return options2.get(\n        6\n        /* EditorOption.allowVariableFonts */\n      );\n    }\n  }\n};\nvar EditorFontSize = class extends SimpleEditorOption {\n  constructor() {\n    super(61, \"fontSize\", EDITOR_FONT_DEFAULTS.fontSize, {\n      type: \"number\",\n      minimum: 6,\n      maximum: 100,\n      default: EDITOR_FONT_DEFAULTS.fontSize,\n      description: localize(230, \"Controls the font size in pixels.\")\n    });\n  }\n  validate(input) {\n    const r = EditorFloatOption.float(input, this.defaultValue);\n    if (r === 0) {\n      return EDITOR_FONT_DEFAULTS.fontSize;\n    }\n    return EditorFloatOption.clamp(r, 6, 100);\n  }\n  compute(env2, options2, value) {\n    return env2.fontInfo.fontSize;\n  }\n};\nvar EditorFontWeight = class _EditorFontWeight extends BaseEditorOption {\n  static {\n    this.SUGGESTION_VALUES = [\"normal\", \"bold\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\"];\n  }\n  static {\n    this.MINIMUM_VALUE = 1;\n  }\n  static {\n    this.MAXIMUM_VALUE = 1e3;\n  }\n  constructor() {\n    super(62, \"fontWeight\", EDITOR_FONT_DEFAULTS.fontWeight, {\n      anyOf: [\n        {\n          type: \"number\",\n          minimum: _EditorFontWeight.MINIMUM_VALUE,\n          maximum: _EditorFontWeight.MAXIMUM_VALUE,\n          errorMessage: localize(231, 'Only \"normal\" and \"bold\" keywords or numbers between 1 and 1000 are allowed.')\n        },\n        {\n          type: \"string\",\n          pattern: \"^(normal|bold|1000|[1-9][0-9]{0,2})$\"\n        },\n        {\n          enum: _EditorFontWeight.SUGGESTION_VALUES\n        }\n      ],\n      default: EDITOR_FONT_DEFAULTS.fontWeight,\n      description: localize(232, 'Controls the font weight. Accepts \"normal\" and \"bold\" keywords or numbers between 1 and 1000.')\n    });\n  }\n  validate(input) {\n    if (input === \"normal\" || input === \"bold\") {\n      return input;\n    }\n    return String(EditorIntOption.clampedInt(input, EDITOR_FONT_DEFAULTS.fontWeight, _EditorFontWeight.MINIMUM_VALUE, _EditorFontWeight.MAXIMUM_VALUE));\n  }\n};\nvar EditorGoToLocation = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      multiple: \"peek\",\n      multipleDefinitions: \"peek\",\n      multipleTypeDefinitions: \"peek\",\n      multipleDeclarations: \"peek\",\n      multipleImplementations: \"peek\",\n      multipleReferences: \"peek\",\n      multipleTests: \"peek\",\n      alternativeDefinitionCommand: \"editor.action.goToReferences\",\n      alternativeTypeDefinitionCommand: \"editor.action.goToReferences\",\n      alternativeDeclarationCommand: \"editor.action.goToReferences\",\n      alternativeImplementationCommand: \"\",\n      alternativeReferenceCommand: \"\",\n      alternativeTestsCommand: \"\"\n    };\n    const jsonSubset = {\n      type: \"string\",\n      enum: [\"peek\", \"gotoAndPeek\", \"goto\"],\n      default: defaults.multiple,\n      enumDescriptions: [\n        localize(233, \"Show Peek view of the results (default)\"),\n        localize(234, \"Go to the primary result and show a Peek view\"),\n        localize(235, \"Go to the primary result and enable Peek-less navigation to others\")\n      ]\n    };\n    const alternativeCommandOptions = [\"\", \"editor.action.referenceSearch.trigger\", \"editor.action.goToReferences\", \"editor.action.peekImplementation\", \"editor.action.goToImplementation\", \"editor.action.peekTypeDefinition\", \"editor.action.goToTypeDefinition\", \"editor.action.peekDeclaration\", \"editor.action.revealDeclaration\", \"editor.action.peekDefinition\", \"editor.action.revealDefinitionAside\", \"editor.action.revealDefinition\"];\n    super(67, \"gotoLocation\", defaults, {\n      \"editor.gotoLocation.multiple\": {\n        deprecationMessage: localize(236, \"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\")\n      },\n      \"editor.gotoLocation.multipleDefinitions\": {\n        description: localize(237, \"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\"),\n        ...jsonSubset\n      },\n      \"editor.gotoLocation.multipleTypeDefinitions\": {\n        description: localize(238, \"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\"),\n        ...jsonSubset\n      },\n      \"editor.gotoLocation.multipleDeclarations\": {\n        description: localize(239, \"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\"),\n        ...jsonSubset\n      },\n      \"editor.gotoLocation.multipleImplementations\": {\n        description: localize(240, \"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\"),\n        ...jsonSubset\n      },\n      \"editor.gotoLocation.multipleReferences\": {\n        description: localize(241, \"Controls the behavior the 'Go to References'-command when multiple target locations exist.\"),\n        ...jsonSubset\n      },\n      \"editor.gotoLocation.alternativeDefinitionCommand\": {\n        type: \"string\",\n        default: defaults.alternativeDefinitionCommand,\n        enum: alternativeCommandOptions,\n        description: localize(242, \"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\")\n      },\n      \"editor.gotoLocation.alternativeTypeDefinitionCommand\": {\n        type: \"string\",\n        default: defaults.alternativeTypeDefinitionCommand,\n        enum: alternativeCommandOptions,\n        description: localize(243, \"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\")\n      },\n      \"editor.gotoLocation.alternativeDeclarationCommand\": {\n        type: \"string\",\n        default: defaults.alternativeDeclarationCommand,\n        enum: alternativeCommandOptions,\n        description: localize(244, \"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\")\n      },\n      \"editor.gotoLocation.alternativeImplementationCommand\": {\n        type: \"string\",\n        default: defaults.alternativeImplementationCommand,\n        enum: alternativeCommandOptions,\n        description: localize(245, \"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\")\n      },\n      \"editor.gotoLocation.alternativeReferenceCommand\": {\n        type: \"string\",\n        default: defaults.alternativeReferenceCommand,\n        enum: alternativeCommandOptions,\n        description: localize(246, \"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      multiple: stringSet(input.multiple, this.defaultValue.multiple, [\"peek\", \"gotoAndPeek\", \"goto\"]),\n      multipleDefinitions: input.multipleDefinitions ?? stringSet(input.multipleDefinitions, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n      multipleTypeDefinitions: input.multipleTypeDefinitions ?? stringSet(input.multipleTypeDefinitions, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n      multipleDeclarations: input.multipleDeclarations ?? stringSet(input.multipleDeclarations, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n      multipleImplementations: input.multipleImplementations ?? stringSet(input.multipleImplementations, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n      multipleReferences: input.multipleReferences ?? stringSet(input.multipleReferences, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n      multipleTests: input.multipleTests ?? stringSet(input.multipleTests, \"peek\", [\"peek\", \"gotoAndPeek\", \"goto\"]),\n      alternativeDefinitionCommand: EditorStringOption.string(input.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand),\n      alternativeTypeDefinitionCommand: EditorStringOption.string(input.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand),\n      alternativeDeclarationCommand: EditorStringOption.string(input.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand),\n      alternativeImplementationCommand: EditorStringOption.string(input.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand),\n      alternativeReferenceCommand: EditorStringOption.string(input.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand),\n      alternativeTestsCommand: EditorStringOption.string(input.alternativeTestsCommand, this.defaultValue.alternativeTestsCommand)\n    };\n  }\n};\nvar EditorHover = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      enabled: true,\n      delay: 300,\n      hidingDelay: 300,\n      sticky: true,\n      above: true\n    };\n    super(69, \"hover\", defaults, {\n      \"editor.hover.enabled\": {\n        type: \"boolean\",\n        default: defaults.enabled,\n        description: localize(247, \"Controls whether the hover is shown.\")\n      },\n      \"editor.hover.delay\": {\n        type: \"number\",\n        default: defaults.delay,\n        minimum: 0,\n        maximum: 1e4,\n        description: localize(248, \"Controls the delay in milliseconds after which the hover is shown.\")\n      },\n      \"editor.hover.sticky\": {\n        type: \"boolean\",\n        default: defaults.sticky,\n        description: localize(249, \"Controls whether the hover should remain visible when mouse is moved over it.\")\n      },\n      \"editor.hover.hidingDelay\": {\n        type: \"integer\",\n        minimum: 0,\n        default: defaults.hidingDelay,\n        markdownDescription: localize(250, \"Controls the delay in milliseconds after which the hover is hidden. Requires `#editor.hover.sticky#` to be enabled.\")\n      },\n      \"editor.hover.above\": {\n        type: \"boolean\",\n        default: defaults.above,\n        description: localize(251, \"Prefer showing hovers above the line, if there's space.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      enabled: boolean(input.enabled, this.defaultValue.enabled),\n      delay: EditorIntOption.clampedInt(input.delay, this.defaultValue.delay, 0, 1e4),\n      sticky: boolean(input.sticky, this.defaultValue.sticky),\n      hidingDelay: EditorIntOption.clampedInt(input.hidingDelay, this.defaultValue.hidingDelay, 0, 6e5),\n      above: boolean(input.above, this.defaultValue.above)\n    };\n  }\n};\nvar EditorLayoutInfoComputer = class _EditorLayoutInfoComputer extends ComputedEditorOption {\n  constructor() {\n    super(\n      164\n      /* EditorOption.layoutInfo */\n    );\n  }\n  compute(env2, options2, _) {\n    return _EditorLayoutInfoComputer.computeLayout(options2, {\n      memory: env2.memory,\n      outerWidth: env2.outerWidth,\n      outerHeight: env2.outerHeight,\n      isDominatedByLongLines: env2.isDominatedByLongLines,\n      lineHeight: env2.fontInfo.lineHeight,\n      viewLineCount: env2.viewLineCount,\n      lineNumbersDigitCount: env2.lineNumbersDigitCount,\n      typicalHalfwidthCharacterWidth: env2.fontInfo.typicalHalfwidthCharacterWidth,\n      maxDigitWidth: globalThis.__monaco_maxDigitWidth || env2.fontInfo.maxDigitWidth,\n      pixelRatio: env2.pixelRatio,\n      glyphMarginDecorationLaneCount: env2.glyphMarginDecorationLaneCount\n    });\n  }\n  static computeContainedMinimapLineCount(input) {\n    const typicalViewportLineCount = input.height / input.lineHeight;\n    const extraLinesBeforeFirstLine = Math.floor(input.paddingTop / input.lineHeight);\n    let extraLinesBeyondLastLine = Math.floor(input.paddingBottom / input.lineHeight);\n    if (input.scrollBeyondLastLine) {\n      extraLinesBeyondLastLine = Math.max(extraLinesBeyondLastLine, typicalViewportLineCount - 1);\n    }\n    const desiredRatio = (extraLinesBeforeFirstLine + input.viewLineCount + extraLinesBeyondLastLine) / (input.pixelRatio * input.height);\n    const minimapLineCount = Math.floor(input.viewLineCount / desiredRatio);\n    return { typicalViewportLineCount, extraLinesBeforeFirstLine, extraLinesBeyondLastLine, desiredRatio, minimapLineCount };\n  }\n  static _computeMinimapLayout(input, memory) {\n    const outerWidth = input.outerWidth;\n    const outerHeight = input.outerHeight;\n    const pixelRatio = input.pixelRatio;\n    if (!input.minimap.enabled) {\n      return {\n        renderMinimap: 0,\n        minimapLeft: 0,\n        minimapWidth: 0,\n        minimapHeightIsEditorHeight: false,\n        minimapIsSampling: false,\n        minimapScale: 1,\n        minimapLineHeight: 1,\n        minimapCanvasInnerWidth: 0,\n        minimapCanvasInnerHeight: Math.floor(pixelRatio * outerHeight),\n        minimapCanvasOuterWidth: 0,\n        minimapCanvasOuterHeight: outerHeight\n      };\n    }\n    const stableMinimapLayoutInput = memory.stableMinimapLayoutInput;\n    const couldUseMemory = stableMinimapLayoutInput \u0026\u0026 input.outerHeight === stableMinimapLayoutInput.outerHeight \u0026\u0026 input.lineHeight === stableMinimapLayoutInput.lineHeight \u0026\u0026 input.typicalHalfwidthCharacterWidth === stableMinimapLayoutInput.typicalHalfwidthCharacterWidth \u0026\u0026 input.pixelRatio === stableMinimapLayoutInput.pixelRatio \u0026\u0026 input.scrollBeyondLastLine === stableMinimapLayoutInput.scrollBeyondLastLine \u0026\u0026 input.paddingTop === stableMinimapLayoutInput.paddingTop \u0026\u0026 input.paddingBottom === stableMinimapLayoutInput.paddingBottom \u0026\u0026 input.minimap.enabled === stableMinimapLayoutInput.minimap.enabled \u0026\u0026 input.minimap.side === stableMinimapLayoutInput.minimap.side \u0026\u0026 input.minimap.size === stableMinimapLayoutInput.minimap.size \u0026\u0026 input.minimap.showSlider === stableMinimapLayoutInput.minimap.showSlider \u0026\u0026 input.minimap.renderCharacters === stableMinimapLayoutInput.minimap.renderCharacters \u0026\u0026 input.minimap.maxColumn === stableMinimapLayoutInput.minimap.maxColumn \u0026\u0026 input.minimap.scale === stableMinimapLayoutInput.minimap.scale \u0026\u0026 input.verticalScrollbarWidth === stableMinimapLayoutInput.verticalScrollbarWidth \u0026\u0026 input.isViewportWrapping === stableMinimapLayoutInput.isViewportWrapping;\n    const lineHeight = input.lineHeight;\n    const typicalHalfwidthCharacterWidth = input.typicalHalfwidthCharacterWidth;\n    const scrollBeyondLastLine = input.scrollBeyondLastLine;\n    const minimapRenderCharacters = input.minimap.renderCharacters;\n    let minimapScale = pixelRatio \u003e= 2 ? Math.round(input.minimap.scale * 2) : input.minimap.scale;\n    const minimapMaxColumn = input.minimap.maxColumn;\n    const minimapSize = input.minimap.size;\n    const minimapSide = input.minimap.side;\n    const verticalScrollbarWidth = input.verticalScrollbarWidth;\n    const viewLineCount = input.viewLineCount;\n    const remainingWidth = input.remainingWidth;\n    const isViewportWrapping = input.isViewportWrapping;\n    const baseCharHeight = minimapRenderCharacters ? 2 : 3;\n    let minimapCanvasInnerHeight = Math.floor(pixelRatio * outerHeight);\n    const minimapCanvasOuterHeight = minimapCanvasInnerHeight / pixelRatio;\n    let minimapHeightIsEditorHeight = false;\n    let minimapIsSampling = false;\n    let minimapLineHeight = baseCharHeight * minimapScale;\n    let minimapCharWidth = minimapScale / pixelRatio;\n    let minimapWidthMultiplier = 1;\n    if (minimapSize === \"fill\" || minimapSize === \"fit\") {\n      const { typicalViewportLineCount, extraLinesBeforeFirstLine, extraLinesBeyondLastLine, desiredRatio, minimapLineCount } = _EditorLayoutInfoComputer.computeContainedMinimapLineCount({\n        viewLineCount,\n        scrollBeyondLastLine,\n        paddingTop: input.paddingTop,\n        paddingBottom: input.paddingBottom,\n        height: outerHeight,\n        lineHeight,\n        pixelRatio\n      });\n      const ratio = viewLineCount / minimapLineCount;\n      if (ratio \u003e 1) {\n        minimapHeightIsEditorHeight = true;\n        minimapIsSampling = true;\n        minimapScale = 1;\n        minimapLineHeight = 1;\n        minimapCharWidth = minimapScale / pixelRatio;\n      } else {\n        let fitBecomesFill = false;\n        let maxMinimapScale = minimapScale + 1;\n        if (minimapSize === \"fit\") {\n          const effectiveMinimapHeight = Math.ceil((extraLinesBeforeFirstLine + viewLineCount + extraLinesBeyondLastLine) * minimapLineHeight);\n          if (isViewportWrapping \u0026\u0026 couldUseMemory \u0026\u0026 remainingWidth \u003c= memory.stableFitRemainingWidth) {\n            fitBecomesFill = true;\n            maxMinimapScale = memory.stableFitMaxMinimapScale;\n          } else {\n            fitBecomesFill = effectiveMinimapHeight \u003e minimapCanvasInnerHeight;\n          }\n        }\n        if (minimapSize === \"fill\" || fitBecomesFill) {\n          minimapHeightIsEditorHeight = true;\n          const configuredMinimapScale = minimapScale;\n          minimapLineHeight = Math.min(lineHeight * pixelRatio, Math.max(1, Math.floor(1 / desiredRatio)));\n          if (isViewportWrapping \u0026\u0026 couldUseMemory \u0026\u0026 remainingWidth \u003c= memory.stableFitRemainingWidth) {\n            maxMinimapScale = memory.stableFitMaxMinimapScale;\n          }\n          minimapScale = Math.min(maxMinimapScale, Math.max(1, Math.floor(minimapLineHeight / baseCharHeight)));\n          if (minimapScale \u003e configuredMinimapScale) {\n            minimapWidthMultiplier = Math.min(2, minimapScale / configuredMinimapScale);\n          }\n          minimapCharWidth = minimapScale / pixelRatio / minimapWidthMultiplier;\n          minimapCanvasInnerHeight = Math.ceil(Math.max(typicalViewportLineCount, extraLinesBeforeFirstLine + viewLineCount + extraLinesBeyondLastLine) * minimapLineHeight);\n          if (isViewportWrapping) {\n            memory.stableMinimapLayoutInput = input;\n            memory.stableFitRemainingWidth = remainingWidth;\n            memory.stableFitMaxMinimapScale = minimapScale;\n          } else {\n            memory.stableMinimapLayoutInput = null;\n            memory.stableFitRemainingWidth = 0;\n          }\n        }\n      }\n    }\n    const minimapMaxWidth = Math.floor(minimapMaxColumn * minimapCharWidth);\n    const minimapWidth = Math.min(minimapMaxWidth, Math.max(0, Math.floor((remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth / (typicalHalfwidthCharacterWidth + minimapCharWidth))) + MINIMAP_GUTTER_WIDTH);\n    let minimapCanvasInnerWidth = Math.floor(pixelRatio * minimapWidth);\n    const minimapCanvasOuterWidth = minimapCanvasInnerWidth / pixelRatio;\n    minimapCanvasInnerWidth = Math.floor(minimapCanvasInnerWidth * minimapWidthMultiplier);\n    const renderMinimap = minimapRenderCharacters ? 1 : 2;\n    const minimapLeft = minimapSide === \"left\" ? 0 : outerWidth - minimapWidth - verticalScrollbarWidth;\n    return {\n      renderMinimap,\n      minimapLeft,\n      minimapWidth,\n      minimapHeightIsEditorHeight,\n      minimapIsSampling,\n      minimapScale,\n      minimapLineHeight,\n      minimapCanvasInnerWidth,\n      minimapCanvasInnerHeight,\n      minimapCanvasOuterWidth,\n      minimapCanvasOuterHeight\n    };\n  }\n  static computeLayout(options2, env2) {\n    const outerWidth = env2.outerWidth | 0;\n    const outerHeight = env2.outerHeight | 0;\n    const lineHeight = env2.lineHeight | 0;\n    const lineNumbersDigitCount = env2.lineNumbersDigitCount | 0;\n    const typicalHalfwidthCharacterWidth = env2.typicalHalfwidthCharacterWidth;\n    const maxDigitWidth = env2.maxDigitWidth;\n    const pixelRatio = env2.pixelRatio;\n    const viewLineCount = env2.viewLineCount;\n    const wordWrapOverride2 = options2.get(\n      153\n      /* EditorOption.wordWrapOverride2 */\n    );\n    const wordWrapOverride1 = wordWrapOverride2 === \"inherit\" ? options2.get(\n      152\n      /* EditorOption.wordWrapOverride1 */\n    ) : wordWrapOverride2;\n    const wordWrap = wordWrapOverride1 === \"inherit\" ? options2.get(\n      148\n      /* EditorOption.wordWrap */\n    ) : wordWrapOverride1;\n    const wordWrapColumn = options2.get(\n      151\n      /* EditorOption.wordWrapColumn */\n    );\n    const isDominatedByLongLines = env2.isDominatedByLongLines;\n    const showGlyphMargin = options2.get(\n      66\n      /* EditorOption.glyphMargin */\n    );\n    const showLineNumbers = options2.get(\n      76\n      /* EditorOption.lineNumbers */\n    ).renderType !== 0;\n    const lineNumbersMinChars = options2.get(\n      77\n      /* EditorOption.lineNumbersMinChars */\n    );\n    const scrollBeyondLastLine = options2.get(\n      118\n      /* EditorOption.scrollBeyondLastLine */\n    );\n    const padding = options2.get(\n      95\n      /* EditorOption.padding */\n    );\n    const minimap = options2.get(\n      81\n      /* EditorOption.minimap */\n    );\n    const scrollbar = options2.get(\n      116\n      /* EditorOption.scrollbar */\n    );\n    const verticalScrollbarWidth = scrollbar.verticalScrollbarSize;\n    const verticalScrollbarHasArrows = scrollbar.verticalHasArrows;\n    const scrollbarArrowSize = scrollbar.arrowSize;\n    const horizontalScrollbarHeight = scrollbar.horizontalScrollbarSize;\n    const folding = options2.get(\n      52\n      /* EditorOption.folding */\n    );\n    const showFoldingDecoration = options2.get(\n      125\n      /* EditorOption.showFoldingControls */\n    ) !== \"never\";\n    let lineDecorationsWidth = options2.get(\n      74\n      /* EditorOption.lineDecorationsWidth */\n    );\n    if (folding \u0026\u0026 showFoldingDecoration) {\n      lineDecorationsWidth += 16;\n    }\n    let lineNumbersWidth = 0;\n    if (showLineNumbers) {\n      const digitCount2 = Math.max(lineNumbersDigitCount, lineNumbersMinChars);\n      lineNumbersWidth = Math.round(digitCount2 * maxDigitWidth);\n    }\n    let glyphMarginWidth = 0;\n    if (showGlyphMargin) {\n      glyphMarginWidth = lineHeight * env2.glyphMarginDecorationLaneCount;\n    }\n    let glyphMarginLeft = 0;\n    let lineNumbersLeft = glyphMarginLeft + glyphMarginWidth;\n    let decorationsLeft = lineNumbersLeft + lineNumbersWidth;\n    let contentLeft = decorationsLeft + lineDecorationsWidth;\n    const remainingWidth = outerWidth - glyphMarginWidth - lineNumbersWidth - lineDecorationsWidth;\n    let isWordWrapMinified = false;\n    let isViewportWrapping = false;\n    let wrappingColumn = -1;\n    if (options2.get(\n      2\n      /* EditorOption.accessibilitySupport */\n    ) === 2 \u0026\u0026 wordWrapOverride1 === \"inherit\" \u0026\u0026 isDominatedByLongLines) {\n      isWordWrapMinified = true;\n      isViewportWrapping = true;\n    } else if (wordWrap === \"on\" || wordWrap === \"bounded\") {\n      isViewportWrapping = true;\n    } else if (wordWrap === \"wordWrapColumn\") {\n      wrappingColumn = wordWrapColumn;\n    }\n    const minimapLayout = _EditorLayoutInfoComputer._computeMinimapLayout({\n      outerWidth,\n      outerHeight,\n      lineHeight,\n      typicalHalfwidthCharacterWidth,\n      pixelRatio,\n      scrollBeyondLastLine,\n      paddingTop: padding.top,\n      paddingBottom: padding.bottom,\n      minimap,\n      verticalScrollbarWidth,\n      viewLineCount,\n      remainingWidth,\n      isViewportWrapping\n    }, env2.memory || new ComputeOptionsMemory());\n    if (minimapLayout.renderMinimap !== 0 \u0026\u0026 minimapLayout.minimapLeft === 0) {\n      glyphMarginLeft += minimapLayout.minimapWidth;\n      lineNumbersLeft += minimapLayout.minimapWidth;\n      decorationsLeft += minimapLayout.minimapWidth;\n      contentLeft += minimapLayout.minimapWidth;\n    }\n    const contentWidth = remainingWidth - minimapLayout.minimapWidth;\n    const viewportColumn = Math.max(1, Math.floor((contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth));\n    const verticalArrowSize = verticalScrollbarHasArrows ? scrollbarArrowSize : 0;\n    if (isViewportWrapping) {\n      wrappingColumn = Math.max(1, viewportColumn);\n      if (wordWrap === \"bounded\") {\n        wrappingColumn = Math.min(wrappingColumn, wordWrapColumn);\n      }\n    }\n    return {\n      width: outerWidth,\n      height: outerHeight,\n      glyphMarginLeft,\n      glyphMarginWidth,\n      glyphMarginDecorationLaneCount: env2.glyphMarginDecorationLaneCount,\n      lineNumbersLeft,\n      lineNumbersWidth,\n      decorationsLeft,\n      decorationsWidth: lineDecorationsWidth,\n      contentLeft,\n      contentWidth,\n      minimap: minimapLayout,\n      viewportColumn,\n      isWordWrapMinified,\n      isViewportWrapping,\n      wrappingColumn,\n      verticalScrollbarWidth,\n      horizontalScrollbarHeight,\n      overviewRuler: {\n        top: verticalArrowSize,\n        width: verticalScrollbarWidth,\n        height: outerHeight - 2 * verticalArrowSize,\n        right: 0\n      }\n    };\n  }\n};\nvar WrappingStrategy = class extends BaseEditorOption {\n  constructor() {\n    super(155, \"wrappingStrategy\", \"simple\", {\n      \"editor.wrappingStrategy\": {\n        enumDescriptions: [\n          localize(252, \"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.\"),\n          localize(253, \"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.\")\n        ],\n        type: \"string\",\n        enum: [\"simple\", \"advanced\"],\n        default: \"simple\",\n        description: localize(254, \"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.\")\n      }\n    });\n  }\n  validate(input) {\n    return stringSet(input, \"simple\", [\"simple\", \"advanced\"]);\n  }\n  compute(env2, options2, value) {\n    const accessibilitySupport = options2.get(\n      2\n      /* EditorOption.accessibilitySupport */\n    );\n    if (accessibilitySupport === 2) {\n      return \"advanced\";\n    }\n    return value;\n  }\n};\nvar ShowLightbulbIconMode;\n(function(ShowLightbulbIconMode3) {\n  ShowLightbulbIconMode3[\"Off\"] = \"off\";\n  ShowLightbulbIconMode3[\"OnCode\"] = \"onCode\";\n  ShowLightbulbIconMode3[\"On\"] = \"on\";\n})(ShowLightbulbIconMode || (ShowLightbulbIconMode = {}));\nvar EditorLightbulb = class extends BaseEditorOption {\n  constructor() {\n    const defaults = { enabled: ShowLightbulbIconMode.OnCode };\n    super(73, \"lightbulb\", defaults, {\n      \"editor.lightbulb.enabled\": {\n        type: \"string\",\n        enum: [ShowLightbulbIconMode.Off, ShowLightbulbIconMode.OnCode, ShowLightbulbIconMode.On],\n        default: defaults.enabled,\n        enumDescriptions: [\n          localize(255, \"Disable the code action menu.\"),\n          localize(256, \"Show the code action menu when the cursor is on lines with code.\"),\n          localize(257, \"Show the code action menu when the cursor is on lines with code or on empty lines.\")\n        ],\n        description: localize(258, \"Enables the Code Action lightbulb in the editor.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      enabled: stringSet(input.enabled, this.defaultValue.enabled, [ShowLightbulbIconMode.Off, ShowLightbulbIconMode.OnCode, ShowLightbulbIconMode.On])\n    };\n  }\n};\nvar EditorStickyScroll = class extends BaseEditorOption {\n  constructor() {\n    const defaults = { enabled: true, maxLineCount: 5, defaultModel: \"outlineModel\", scrollWithEditor: true };\n    super(130, \"stickyScroll\", defaults, {\n      \"editor.stickyScroll.enabled\": {\n        type: \"boolean\",\n        default: defaults.enabled,\n        description: localize(259, \"Shows the nested current scopes during the scroll at the top of the editor.\")\n      },\n      \"editor.stickyScroll.maxLineCount\": {\n        type: \"number\",\n        default: defaults.maxLineCount,\n        minimum: 1,\n        maximum: 20,\n        description: localize(260, \"Defines the maximum number of sticky lines to show.\")\n      },\n      \"editor.stickyScroll.defaultModel\": {\n        type: \"string\",\n        enum: [\"outlineModel\", \"foldingProviderModel\", \"indentationModel\"],\n        default: defaults.defaultModel,\n        description: localize(261, \"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.\")\n      },\n      \"editor.stickyScroll.scrollWithEditor\": {\n        type: \"boolean\",\n        default: defaults.scrollWithEditor,\n        description: localize(262, \"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      enabled: boolean(input.enabled, this.defaultValue.enabled),\n      maxLineCount: EditorIntOption.clampedInt(input.maxLineCount, this.defaultValue.maxLineCount, 1, 20),\n      defaultModel: stringSet(input.defaultModel, this.defaultValue.defaultModel, [\"outlineModel\", \"foldingProviderModel\", \"indentationModel\"]),\n      scrollWithEditor: boolean(input.scrollWithEditor, this.defaultValue.scrollWithEditor)\n    };\n  }\n};\nvar EditorInlayHints = class extends BaseEditorOption {\n  constructor() {\n    const defaults = { enabled: \"on\", fontSize: 0, fontFamily: \"\", padding: false, maximumLength: 43 };\n    super(158, \"inlayHints\", defaults, {\n      \"editor.inlayHints.enabled\": {\n        type: \"string\",\n        default: defaults.enabled,\n        description: localize(263, \"Enables the inlay hints in the editor.\"),\n        enum: [\"on\", \"onUnlessPressed\", \"offUnlessPressed\", \"off\"],\n        markdownEnumDescriptions: [\n          localize(264, \"Inlay hints are enabled\"),\n          localize(265, \"Inlay hints are showing by default and hide when holding {0}\", isMacintosh ? `Ctrl+Option` : `Ctrl+Alt`),\n          localize(266, \"Inlay hints are hidden by default and show when holding {0}\", isMacintosh ? `Ctrl+Option` : `Ctrl+Alt`),\n          localize(267, \"Inlay hints are disabled\")\n        ]\n      },\n      \"editor.inlayHints.fontSize\": {\n        type: \"number\",\n        default: defaults.fontSize,\n        markdownDescription: localize(268, \"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.\", \"`#editor.fontSize#`\", \"`5`\")\n      },\n      \"editor.inlayHints.fontFamily\": {\n        type: \"string\",\n        default: defaults.fontFamily,\n        markdownDescription: localize(269, \"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.\", \"`#editor.fontFamily#`\")\n      },\n      \"editor.inlayHints.padding\": {\n        type: \"boolean\",\n        default: defaults.padding,\n        description: localize(270, \"Enables the padding around the inlay hints in the editor.\")\n      },\n      \"editor.inlayHints.maximumLength\": {\n        type: \"number\",\n        default: defaults.maximumLength,\n        markdownDescription: localize(271, \"Maximum overall length of inlay hints, for a single line, before they get truncated by the editor. Set to `0` to never truncate\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    if (typeof input.enabled === \"boolean\") {\n      input.enabled = input.enabled ? \"on\" : \"off\";\n    }\n    return {\n      enabled: stringSet(input.enabled, this.defaultValue.enabled, [\"on\", \"off\", \"offUnlessPressed\", \"onUnlessPressed\"]),\n      fontSize: EditorIntOption.clampedInt(input.fontSize, this.defaultValue.fontSize, 0, 100),\n      fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily),\n      padding: boolean(input.padding, this.defaultValue.padding),\n      maximumLength: EditorIntOption.clampedInt(input.maximumLength, this.defaultValue.maximumLength, 0, Number.MAX_SAFE_INTEGER)\n    };\n  }\n};\nvar EditorLineDecorationsWidth = class extends BaseEditorOption {\n  constructor() {\n    super(74, \"lineDecorationsWidth\", 10);\n  }\n  validate(input) {\n    if (typeof input === \"string\" \u0026\u0026 /^\\d+(\\.\\d+)?ch$/.test(input)) {\n      const multiple = parseFloat(input.substring(0, input.length - 2));\n      return -multiple;\n    } else {\n      return EditorIntOption.clampedInt(input, this.defaultValue, 0, 1e3);\n    }\n  }\n  compute(env2, options2, value) {\n    if (value \u003c 0) {\n      return EditorIntOption.clampedInt(-value * env2.fontInfo.typicalHalfwidthCharacterWidth, this.defaultValue, 0, 1e3);\n    } else {\n      return value;\n    }\n  }\n};\nvar EditorLineHeight = class extends EditorFloatOption {\n  constructor() {\n    super(75, \"lineHeight\", EDITOR_FONT_DEFAULTS.lineHeight, (x) =\u003e EditorFloatOption.clamp(x, 0, 150), { markdownDescription: localize(272, \"Controls the line height. \\n - Use 0 to automatically compute the line height from the font size.\\n - Values between 0 and 8 will be used as a multiplier with the font size.\\n - Values greater than or equal to 8 will be used as effective values.\") }, 0, 150);\n  }\n  compute(env2, options2, value) {\n    return env2.fontInfo.lineHeight;\n  }\n};\nvar EditorMinimap = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      enabled: true,\n      size: \"proportional\",\n      side: \"right\",\n      showSlider: \"mouseover\",\n      autohide: \"none\",\n      renderCharacters: true,\n      maxColumn: 120,\n      scale: 1,\n      showRegionSectionHeaders: true,\n      showMarkSectionHeaders: true,\n      markSectionHeaderRegex: \"\\\\bMARK:\\\\s*(?\u003cseparator\u003e-?)\\\\s*(?\u003clabel\u003e.*)$\",\n      sectionHeaderFontSize: 9,\n      sectionHeaderLetterSpacing: 1\n    };\n    super(81, \"minimap\", defaults, {\n      \"editor.minimap.enabled\": {\n        type: \"boolean\",\n        default: defaults.enabled,\n        description: localize(273, \"Controls whether the minimap is shown.\")\n      },\n      \"editor.minimap.autohide\": {\n        type: \"string\",\n        enum: [\"none\", \"mouseover\", \"scroll\"],\n        enumDescriptions: [\n          localize(274, \"The minimap is always shown.\"),\n          localize(275, \"The minimap is hidden when mouse is not over the minimap and shown when mouse is over the minimap.\"),\n          localize(276, \"The minimap is only shown when the editor is scrolled\")\n        ],\n        default: defaults.autohide,\n        description: localize(277, \"Controls whether the minimap is hidden automatically.\")\n      },\n      \"editor.minimap.size\": {\n        type: \"string\",\n        enum: [\"proportional\", \"fill\", \"fit\"],\n        enumDescriptions: [\n          localize(278, \"The minimap has the same size as the editor contents (and might scroll).\"),\n          localize(279, \"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).\"),\n          localize(280, \"The minimap will shrink as necessary to never be larger than the editor (no scrolling).\")\n        ],\n        default: defaults.size,\n        description: localize(281, \"Controls the size of the minimap.\")\n      },\n      \"editor.minimap.side\": {\n        type: \"string\",\n        enum: [\"left\", \"right\"],\n        default: defaults.side,\n        description: localize(282, \"Controls the side where to render the minimap.\")\n      },\n      \"editor.minimap.showSlider\": {\n        type: \"string\",\n        enum: [\"always\", \"mouseover\"],\n        default: defaults.showSlider,\n        description: localize(283, \"Controls when the minimap slider is shown.\")\n      },\n      \"editor.minimap.scale\": {\n        type: \"number\",\n        default: defaults.scale,\n        minimum: 1,\n        maximum: 3,\n        enum: [1, 2, 3],\n        description: localize(284, \"Scale of content drawn in the minimap: 1, 2 or 3.\")\n      },\n      \"editor.minimap.renderCharacters\": {\n        type: \"boolean\",\n        default: defaults.renderCharacters,\n        description: localize(285, \"Render the actual characters on a line as opposed to color blocks.\")\n      },\n      \"editor.minimap.maxColumn\": {\n        type: \"number\",\n        default: defaults.maxColumn,\n        description: localize(286, \"Limit the width of the minimap to render at most a certain number of columns.\")\n      },\n      \"editor.minimap.showRegionSectionHeaders\": {\n        type: \"boolean\",\n        default: defaults.showRegionSectionHeaders,\n        description: localize(287, \"Controls whether named regions are shown as section headers in the minimap.\")\n      },\n      \"editor.minimap.showMarkSectionHeaders\": {\n        type: \"boolean\",\n        default: defaults.showMarkSectionHeaders,\n        description: localize(288, \"Controls whether MARK: comments are shown as section headers in the minimap.\")\n      },\n      \"editor.minimap.markSectionHeaderRegex\": {\n        type: \"string\",\n        default: defaults.markSectionHeaderRegex,\n        description: localize(289, \"Defines the regular expression used to find section headers in comments. The regex must contain a named match group `label` (written as `(?\u003clabel\u003e.+)`) that encapsulates the section header, otherwise it will not work. Optionally you can include another match group named `separator`. Use \\\\n in the pattern to match multi-line headers.\")\n      },\n      \"editor.minimap.sectionHeaderFontSize\": {\n        type: \"number\",\n        default: defaults.sectionHeaderFontSize,\n        description: localize(290, \"Controls the font size of section headers in the minimap.\")\n      },\n      \"editor.minimap.sectionHeaderLetterSpacing\": {\n        type: \"number\",\n        default: defaults.sectionHeaderLetterSpacing,\n        description: localize(291, \"Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    let markSectionHeaderRegex = this.defaultValue.markSectionHeaderRegex;\n    const inputRegex = _input.markSectionHeaderRegex;\n    if (typeof inputRegex === \"string\") {\n      try {\n        new RegExp(inputRegex, \"d\");\n        markSectionHeaderRegex = inputRegex;\n      } catch {\n      }\n    }\n    return {\n      enabled: boolean(input.enabled, this.defaultValue.enabled),\n      autohide: stringSet(input.autohide, this.defaultValue.autohide, [\"none\", \"mouseover\", \"scroll\"]),\n      size: stringSet(input.size, this.defaultValue.size, [\"proportional\", \"fill\", \"fit\"]),\n      side: stringSet(input.side, this.defaultValue.side, [\"right\", \"left\"]),\n      showSlider: stringSet(input.showSlider, this.defaultValue.showSlider, [\"always\", \"mouseover\"]),\n      renderCharacters: boolean(input.renderCharacters, this.defaultValue.renderCharacters),\n      scale: EditorIntOption.clampedInt(input.scale, 1, 1, 3),\n      maxColumn: EditorIntOption.clampedInt(input.maxColumn, this.defaultValue.maxColumn, 1, 1e4),\n      showRegionSectionHeaders: boolean(input.showRegionSectionHeaders, this.defaultValue.showRegionSectionHeaders),\n      showMarkSectionHeaders: boolean(input.showMarkSectionHeaders, this.defaultValue.showMarkSectionHeaders),\n      markSectionHeaderRegex,\n      sectionHeaderFontSize: EditorFloatOption.clamp(input.sectionHeaderFontSize ?? this.defaultValue.sectionHeaderFontSize, 4, 32),\n      sectionHeaderLetterSpacing: EditorFloatOption.clamp(input.sectionHeaderLetterSpacing ?? this.defaultValue.sectionHeaderLetterSpacing, 0, 5)\n    };\n  }\n};\nfunction _multiCursorModifierFromString(multiCursorModifier) {\n  if (multiCursorModifier === \"ctrlCmd\") {\n    return isMacintosh ? \"metaKey\" : \"ctrlKey\";\n  }\n  return \"altKey\";\n}\nvar EditorPadding = class extends BaseEditorOption {\n  constructor() {\n    super(95, \"padding\", { top: 0, bottom: 0 }, {\n      \"editor.padding.top\": {\n        type: \"number\",\n        default: 0,\n        minimum: 0,\n        maximum: 1e3,\n        description: localize(292, \"Controls the amount of space between the top edge of the editor and the first line.\")\n      },\n      \"editor.padding.bottom\": {\n        type: \"number\",\n        default: 0,\n        minimum: 0,\n        maximum: 1e3,\n        description: localize(293, \"Controls the amount of space between the bottom edge of the editor and the last line.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      top: EditorIntOption.clampedInt(input.top, 0, 0, 1e3),\n      bottom: EditorIntOption.clampedInt(input.bottom, 0, 0, 1e3)\n    };\n  }\n};\nvar EditorParameterHints = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      enabled: true,\n      cycle: true\n    };\n    super(97, \"parameterHints\", defaults, {\n      \"editor.parameterHints.enabled\": {\n        type: \"boolean\",\n        default: defaults.enabled,\n        description: localize(294, \"Enables a pop-up that shows parameter documentation and type information as you type.\")\n      },\n      \"editor.parameterHints.cycle\": {\n        type: \"boolean\",\n        default: defaults.cycle,\n        description: localize(295, \"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      enabled: boolean(input.enabled, this.defaultValue.enabled),\n      cycle: boolean(input.cycle, this.defaultValue.cycle)\n    };\n  }\n};\nvar EditorPixelRatio = class extends ComputedEditorOption {\n  constructor() {\n    super(\n      162\n      /* EditorOption.pixelRatio */\n    );\n  }\n  compute(env2, options2, _) {\n    return env2.pixelRatio;\n  }\n};\nvar PlaceholderOption = class extends BaseEditorOption {\n  constructor() {\n    super(99, \"placeholder\", void 0);\n  }\n  validate(input) {\n    if (typeof input === \"undefined\") {\n      return this.defaultValue;\n    }\n    if (typeof input === \"string\") {\n      return input;\n    }\n    return this.defaultValue;\n  }\n};\nvar EditorQuickSuggestions = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      other: \"on\",\n      comments: \"off\",\n      strings: \"off\"\n    };\n    const types = [\n      { type: \"boolean\" },\n      {\n        type: \"string\",\n        enum: [\"on\", \"inline\", \"off\"],\n        enumDescriptions: [localize(296, \"Quick suggestions show inside the suggest widget\"), localize(297, \"Quick suggestions show as ghost text\"), localize(298, \"Quick suggestions are disabled\")]\n      }\n    ];\n    super(101, \"quickSuggestions\", defaults, {\n      type: \"object\",\n      additionalProperties: false,\n      properties: {\n        strings: {\n          anyOf: types,\n          default: defaults.strings,\n          description: localize(299, \"Enable quick suggestions inside strings.\")\n        },\n        comments: {\n          anyOf: types,\n          default: defaults.comments,\n          description: localize(300, \"Enable quick suggestions inside comments.\")\n        },\n        other: {\n          anyOf: types,\n          default: defaults.other,\n          description: localize(301, \"Enable quick suggestions outside of strings and comments.\")\n        }\n      },\n      default: defaults,\n      markdownDescription: localize(302, \"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the {0}-setting which controls if suggestions are triggered by special characters.\", \"`#editor.suggestOnTriggerCharacters#`\")\n    });\n    this.defaultValue = defaults;\n  }\n  validate(input) {\n    if (typeof input === \"boolean\") {\n      const value = input ? \"on\" : \"off\";\n      return { comments: value, strings: value, other: value };\n    }\n    if (!input || typeof input !== \"object\") {\n      return this.defaultValue;\n    }\n    const { other, comments, strings } = input;\n    const allowedValues = [\"on\", \"inline\", \"off\"];\n    let validatedOther;\n    let validatedComments;\n    let validatedStrings;\n    if (typeof other === \"boolean\") {\n      validatedOther = other ? \"on\" : \"off\";\n    } else {\n      validatedOther = stringSet(other, this.defaultValue.other, allowedValues);\n    }\n    if (typeof comments === \"boolean\") {\n      validatedComments = comments ? \"on\" : \"off\";\n    } else {\n      validatedComments = stringSet(comments, this.defaultValue.comments, allowedValues);\n    }\n    if (typeof strings === \"boolean\") {\n      validatedStrings = strings ? \"on\" : \"off\";\n    } else {\n      validatedStrings = stringSet(strings, this.defaultValue.strings, allowedValues);\n    }\n    return {\n      other: validatedOther,\n      comments: validatedComments,\n      strings: validatedStrings\n    };\n  }\n};\nvar EditorRenderLineNumbersOption = class extends BaseEditorOption {\n  constructor() {\n    super(76, \"lineNumbers\", { renderType: 1, renderFn: null }, {\n      type: \"string\",\n      enum: [\"off\", \"on\", \"relative\", \"interval\"],\n      enumDescriptions: [\n        localize(303, \"Line numbers are not rendered.\"),\n        localize(304, \"Line numbers are rendered as absolute number.\"),\n        localize(305, \"Line numbers are rendered as distance in lines to cursor position.\"),\n        localize(306, \"Line numbers are rendered every 10 lines.\")\n      ],\n      default: \"on\",\n      description: localize(307, \"Controls the display of line numbers.\")\n    });\n  }\n  validate(lineNumbers) {\n    let renderType = this.defaultValue.renderType;\n    let renderFn = this.defaultValue.renderFn;\n    if (typeof lineNumbers !== \"undefined\") {\n      if (typeof lineNumbers === \"function\") {\n        renderType = 4;\n        renderFn = lineNumbers;\n      } else if (lineNumbers === \"interval\") {\n        renderType = 3;\n      } else if (lineNumbers === \"relative\") {\n        renderType = 2;\n      } else if (lineNumbers === \"on\") {\n        renderType = 1;\n      } else {\n        renderType = 0;\n      }\n    }\n    return {\n      renderType,\n      renderFn\n    };\n  }\n};\nfunction filterValidationDecorations(options2) {\n  const renderValidationDecorations = options2.get(\n    111\n    /* EditorOption.renderValidationDecorations */\n  );\n  if (renderValidationDecorations === \"editable\") {\n    return options2.get(\n      103\n      /* EditorOption.readOnly */\n    );\n  }\n  return renderValidationDecorations === \"on\" ? false : true;\n}\nfunction filterFontDecorations(options2) {\n  return !options2.get(\n    171\n    /* EditorOption.effectiveAllowVariableFonts */\n  );\n}\nvar EditorRulers = class extends BaseEditorOption {\n  constructor() {\n    const defaults = [];\n    const columnSchema = { type: \"number\", description: localize(308, \"Number of monospace characters at which this editor ruler will render.\") };\n    super(115, \"rulers\", defaults, {\n      type: \"array\",\n      items: {\n        anyOf: [\n          columnSchema,\n          {\n            type: [\n              \"object\"\n            ],\n            properties: {\n              column: columnSchema,\n              color: {\n                type: \"string\",\n                description: localize(309, \"Color of this editor ruler.\"),\n                format: \"color-hex\"\n              }\n            }\n          }\n        ]\n      },\n      default: defaults,\n      description: localize(310, \"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\")\n    });\n  }\n  validate(input) {\n    if (Array.isArray(input)) {\n      const rulers = [];\n      for (const _element of input) {\n        if (typeof _element === \"number\") {\n          rulers.push({\n            column: EditorIntOption.clampedInt(_element, 0, 0, 1e4),\n            color: null\n          });\n        } else if (_element \u0026\u0026 typeof _element === \"object\") {\n          const element = _element;\n          rulers.push({\n            column: EditorIntOption.clampedInt(element.column, 0, 0, 1e4),\n            color: element.color\n          });\n        }\n      }\n      rulers.sort((a, b) =\u003e a.column - b.column);\n      return rulers;\n    }\n    return this.defaultValue;\n  }\n};\nvar ReadonlyMessage = class extends BaseEditorOption {\n  constructor() {\n    const defaults = void 0;\n    super(104, \"readOnlyMessage\", defaults);\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    return _input;\n  }\n};\nfunction _scrollbarVisibilityFromString(visibility, defaultValue) {\n  if (typeof visibility !== \"string\") {\n    return defaultValue;\n  }\n  switch (visibility) {\n    case \"hidden\":\n      return 2;\n    case \"visible\":\n      return 3;\n    default:\n      return 1;\n  }\n}\nvar EditorScrollbar = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      vertical: 1,\n      horizontal: 1,\n      arrowSize: 11,\n      useShadows: true,\n      verticalHasArrows: false,\n      horizontalHasArrows: false,\n      horizontalScrollbarSize: 12,\n      horizontalSliderSize: 12,\n      verticalScrollbarSize: 14,\n      verticalSliderSize: 14,\n      handleMouseWheel: true,\n      alwaysConsumeMouseWheel: true,\n      scrollByPage: false,\n      ignoreHorizontalScrollbarInContentHeight: false\n    };\n    super(116, \"scrollbar\", defaults, {\n      \"editor.scrollbar.vertical\": {\n        type: \"string\",\n        enum: [\"auto\", \"visible\", \"hidden\"],\n        enumDescriptions: [\n          localize(311, \"The vertical scrollbar will be visible only when necessary.\"),\n          localize(312, \"The vertical scrollbar will always be visible.\"),\n          localize(313, \"The vertical scrollbar will always be hidden.\")\n        ],\n        default: \"auto\",\n        description: localize(314, \"Controls the visibility of the vertical scrollbar.\")\n      },\n      \"editor.scrollbar.horizontal\": {\n        type: \"string\",\n        enum: [\"auto\", \"visible\", \"hidden\"],\n        enumDescriptions: [\n          localize(315, \"The horizontal scrollbar will be visible only when necessary.\"),\n          localize(316, \"The horizontal scrollbar will always be visible.\"),\n          localize(317, \"The horizontal scrollbar will always be hidden.\")\n        ],\n        default: \"auto\",\n        description: localize(318, \"Controls the visibility of the horizontal scrollbar.\")\n      },\n      \"editor.scrollbar.verticalScrollbarSize\": {\n        type: \"number\",\n        default: defaults.verticalScrollbarSize,\n        description: localize(319, \"The width of the vertical scrollbar.\")\n      },\n      \"editor.scrollbar.horizontalScrollbarSize\": {\n        type: \"number\",\n        default: defaults.horizontalScrollbarSize,\n        description: localize(320, \"The height of the horizontal scrollbar.\")\n      },\n      \"editor.scrollbar.scrollByPage\": {\n        type: \"boolean\",\n        default: defaults.scrollByPage,\n        description: localize(321, \"Controls whether clicks scroll by page or jump to click position.\")\n      },\n      \"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight\": {\n        type: \"boolean\",\n        default: defaults.ignoreHorizontalScrollbarInContentHeight,\n        description: localize(322, \"When set, the horizontal scrollbar will not increase the size of the editor's content.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    const horizontalScrollbarSize = EditorIntOption.clampedInt(input.horizontalScrollbarSize, this.defaultValue.horizontalScrollbarSize, 0, 1e3);\n    const verticalScrollbarSize = EditorIntOption.clampedInt(input.verticalScrollbarSize, this.defaultValue.verticalScrollbarSize, 0, 1e3);\n    return {\n      arrowSize: EditorIntOption.clampedInt(input.arrowSize, this.defaultValue.arrowSize, 0, 1e3),\n      vertical: _scrollbarVisibilityFromString(input.vertical, this.defaultValue.vertical),\n      horizontal: _scrollbarVisibilityFromString(input.horizontal, this.defaultValue.horizontal),\n      useShadows: boolean(input.useShadows, this.defaultValue.useShadows),\n      verticalHasArrows: boolean(input.verticalHasArrows, this.defaultValue.verticalHasArrows),\n      horizontalHasArrows: boolean(input.horizontalHasArrows, this.defaultValue.horizontalHasArrows),\n      handleMouseWheel: boolean(input.handleMouseWheel, this.defaultValue.handleMouseWheel),\n      alwaysConsumeMouseWheel: boolean(input.alwaysConsumeMouseWheel, this.defaultValue.alwaysConsumeMouseWheel),\n      horizontalScrollbarSize,\n      horizontalSliderSize: EditorIntOption.clampedInt(input.horizontalSliderSize, horizontalScrollbarSize, 0, 1e3),\n      verticalScrollbarSize,\n      verticalSliderSize: EditorIntOption.clampedInt(input.verticalSliderSize, verticalScrollbarSize, 0, 1e3),\n      scrollByPage: boolean(input.scrollByPage, this.defaultValue.scrollByPage),\n      ignoreHorizontalScrollbarInContentHeight: boolean(input.ignoreHorizontalScrollbarInContentHeight, this.defaultValue.ignoreHorizontalScrollbarInContentHeight)\n    };\n  }\n};\nvar inUntrustedWorkspace = \"inUntrustedWorkspace\";\nvar unicodeHighlightConfigKeys = {\n  allowedCharacters: \"editor.unicodeHighlight.allowedCharacters\",\n  invisibleCharacters: \"editor.unicodeHighlight.invisibleCharacters\",\n  nonBasicASCII: \"editor.unicodeHighlight.nonBasicASCII\",\n  ambiguousCharacters: \"editor.unicodeHighlight.ambiguousCharacters\",\n  includeComments: \"editor.unicodeHighlight.includeComments\",\n  includeStrings: \"editor.unicodeHighlight.includeStrings\",\n  allowedLocales: \"editor.unicodeHighlight.allowedLocales\"\n};\nvar UnicodeHighlight = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      nonBasicASCII: inUntrustedWorkspace,\n      invisibleCharacters: true,\n      ambiguousCharacters: true,\n      includeComments: inUntrustedWorkspace,\n      includeStrings: true,\n      allowedCharacters: {},\n      allowedLocales: { _os: true, _vscode: true }\n    };\n    super(141, \"unicodeHighlight\", defaults, {\n      [unicodeHighlightConfigKeys.nonBasicASCII]: {\n        restricted: true,\n        type: [\"boolean\", \"string\"],\n        enum: [true, false, inUntrustedWorkspace],\n        default: defaults.nonBasicASCII,\n        description: localize(323, \"Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.\")\n      },\n      [unicodeHighlightConfigKeys.invisibleCharacters]: {\n        restricted: true,\n        type: \"boolean\",\n        default: defaults.invisibleCharacters,\n        description: localize(324, \"Controls whether characters that just reserve space or have no width at all are highlighted.\")\n      },\n      [unicodeHighlightConfigKeys.ambiguousCharacters]: {\n        restricted: true,\n        type: \"boolean\",\n        default: defaults.ambiguousCharacters,\n        description: localize(325, \"Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.\")\n      },\n      [unicodeHighlightConfigKeys.includeComments]: {\n        restricted: true,\n        type: [\"boolean\", \"string\"],\n        enum: [true, false, inUntrustedWorkspace],\n        default: defaults.includeComments,\n        description: localize(326, \"Controls whether characters in comments should also be subject to Unicode highlighting.\")\n      },\n      [unicodeHighlightConfigKeys.includeStrings]: {\n        restricted: true,\n        type: [\"boolean\", \"string\"],\n        enum: [true, false, inUntrustedWorkspace],\n        default: defaults.includeStrings,\n        description: localize(327, \"Controls whether characters in strings should also be subject to Unicode highlighting.\")\n      },\n      [unicodeHighlightConfigKeys.allowedCharacters]: {\n        restricted: true,\n        type: \"object\",\n        default: defaults.allowedCharacters,\n        description: localize(328, \"Defines allowed characters that are not being highlighted.\"),\n        additionalProperties: {\n          type: \"boolean\"\n        }\n      },\n      [unicodeHighlightConfigKeys.allowedLocales]: {\n        restricted: true,\n        type: \"object\",\n        additionalProperties: {\n          type: \"boolean\"\n        },\n        default: defaults.allowedLocales,\n        description: localize(329, \"Unicode characters that are common in allowed locales are not being highlighted.\")\n      }\n    });\n  }\n  applyUpdate(value, update) {\n    let didChange = false;\n    if (update.allowedCharacters \u0026\u0026 value) {\n      if (!equals2(value.allowedCharacters, update.allowedCharacters)) {\n        value = { ...value, allowedCharacters: update.allowedCharacters };\n        didChange = true;\n      }\n    }\n    if (update.allowedLocales \u0026\u0026 value) {\n      if (!equals2(value.allowedLocales, update.allowedLocales)) {\n        value = { ...value, allowedLocales: update.allowedLocales };\n        didChange = true;\n      }\n    }\n    const result = super.applyUpdate(value, update);\n    if (didChange) {\n      return new ApplyUpdateResult(result.newValue, true);\n    }\n    return result;\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      nonBasicASCII: primitiveSet(input.nonBasicASCII, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n      invisibleCharacters: boolean(input.invisibleCharacters, this.defaultValue.invisibleCharacters),\n      ambiguousCharacters: boolean(input.ambiguousCharacters, this.defaultValue.ambiguousCharacters),\n      includeComments: primitiveSet(input.includeComments, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n      includeStrings: primitiveSet(input.includeStrings, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n      allowedCharacters: this.validateBooleanMap(_input.allowedCharacters, this.defaultValue.allowedCharacters),\n      allowedLocales: this.validateBooleanMap(_input.allowedLocales, this.defaultValue.allowedLocales)\n    };\n  }\n  validateBooleanMap(map, defaultValue) {\n    if (typeof map !== \"object\" || !map) {\n      return defaultValue;\n    }\n    const result = {};\n    for (const [key, value] of Object.entries(map)) {\n      if (value === true) {\n        result[key] = true;\n      }\n    }\n    return result;\n  }\n};\nvar InlineEditorSuggest = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      enabled: true,\n      mode: \"subwordSmart\",\n      showToolbar: \"onHover\",\n      suppressSuggestions: false,\n      keepOnBlur: false,\n      fontFamily: \"default\",\n      syntaxHighlightingEnabled: true,\n      minShowDelay: 0,\n      edits: {\n        enabled: true,\n        showCollapsed: false,\n        renderSideBySide: \"auto\",\n        allowCodeShifting: \"always\"\n      },\n      triggerCommandOnProviderChange: false,\n      experimental: {\n        suppressInlineSuggestions: \"\",\n        showOnSuggestConflict: \"never\"\n      }\n    };\n    super(71, \"inlineSuggest\", defaults, {\n      \"editor.inlineSuggest.enabled\": {\n        type: \"boolean\",\n        default: defaults.enabled,\n        description: localize(330, \"Controls whether to automatically show inline suggestions in the editor.\")\n      },\n      \"editor.inlineSuggest.showToolbar\": {\n        type: \"string\",\n        default: defaults.showToolbar,\n        enum: [\"always\", \"onHover\", \"never\"],\n        enumDescriptions: [\n          localize(331, \"Show the inline suggestion toolbar whenever an inline suggestion is shown.\"),\n          localize(332, \"Show the inline suggestion toolbar when hovering over an inline suggestion.\"),\n          localize(333, \"Never show the inline suggestion toolbar.\")\n        ],\n        description: localize(334, \"Controls when to show the inline suggestion toolbar.\")\n      },\n      \"editor.inlineSuggest.syntaxHighlightingEnabled\": {\n        type: \"boolean\",\n        default: defaults.syntaxHighlightingEnabled,\n        description: localize(335, \"Controls whether to show syntax highlighting for inline suggestions in the editor.\")\n      },\n      \"editor.inlineSuggest.suppressSuggestions\": {\n        type: \"boolean\",\n        default: defaults.suppressSuggestions,\n        description: localize(336, \"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.\")\n      },\n      \"editor.inlineSuggest.minShowDelay\": {\n        type: \"number\",\n        default: 0,\n        minimum: 0,\n        maximum: 1e4,\n        description: localize(337, \"Controls the minimal delay in milliseconds after which inline suggestions are shown after typing.\")\n      },\n      \"editor.inlineSuggest.experimental.suppressInlineSuggestions\": {\n        type: \"string\",\n        default: defaults.experimental.suppressInlineSuggestions,\n        tags: [\"experimental\"],\n        description: localize(338, \"Suppresses inline completions for specified extension IDs -- comma separated.\"),\n        experiment: {\n          mode: \"auto\"\n        }\n      },\n      \"editor.inlineSuggest.triggerCommandOnProviderChange\": {\n        type: \"boolean\",\n        default: defaults.triggerCommandOnProviderChange,\n        tags: [\"experimental\"],\n        description: localize(339, \"Controls whether to trigger a command when the inline suggestion provider changes.\"),\n        experiment: {\n          mode: \"auto\"\n        }\n      },\n      \"editor.inlineSuggest.experimental.showOnSuggestConflict\": {\n        type: \"string\",\n        default: defaults.experimental.showOnSuggestConflict,\n        tags: [\"experimental\"],\n        enum: [\"always\", \"never\", \"whenSuggestListIsIncomplete\"],\n        description: localize(340, \"Controls whether to show inline suggestions when there is a suggest conflict.\"),\n        experiment: {\n          mode: \"auto\"\n        }\n      },\n      \"editor.inlineSuggest.fontFamily\": {\n        type: \"string\",\n        default: defaults.fontFamily,\n        description: localize(341, \"Controls the font family of the inline suggestions.\")\n      },\n      \"editor.inlineSuggest.edits.allowCodeShifting\": {\n        type: \"string\",\n        default: defaults.edits.allowCodeShifting,\n        description: localize(342, \"Controls whether showing a suggestion will shift the code to make space for the suggestion inline.\"),\n        enum: [\"always\", \"horizontal\", \"never\"],\n        tags: [\"nextEditSuggestions\"]\n      },\n      \"editor.inlineSuggest.edits.renderSideBySide\": {\n        type: \"string\",\n        default: defaults.edits.renderSideBySide,\n        description: localize(343, \"Controls whether larger suggestions can be shown side by side.\"),\n        enum: [\"auto\", \"never\"],\n        enumDescriptions: [\n          localize(344, \"Larger suggestions will show side by side if there is enough space, otherwise they will be shown below.\"),\n          localize(345, \"Larger suggestions are never shown side by side and will always be shown below.\")\n        ],\n        tags: [\"nextEditSuggestions\"]\n      },\n      \"editor.inlineSuggest.edits.showCollapsed\": {\n        type: \"boolean\",\n        default: defaults.edits.showCollapsed,\n        description: localize(346, \"Controls whether the suggestion will show as collapsed until jumping to it.\"),\n        tags: [\"nextEditSuggestions\"]\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      enabled: boolean(input.enabled, this.defaultValue.enabled),\n      mode: stringSet(input.mode, this.defaultValue.mode, [\"prefix\", \"subword\", \"subwordSmart\"]),\n      showToolbar: stringSet(input.showToolbar, this.defaultValue.showToolbar, [\"always\", \"onHover\", \"never\"]),\n      suppressSuggestions: boolean(input.suppressSuggestions, this.defaultValue.suppressSuggestions),\n      keepOnBlur: boolean(input.keepOnBlur, this.defaultValue.keepOnBlur),\n      fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily),\n      syntaxHighlightingEnabled: boolean(input.syntaxHighlightingEnabled, this.defaultValue.syntaxHighlightingEnabled),\n      minShowDelay: EditorIntOption.clampedInt(input.minShowDelay, 0, 0, 1e4),\n      edits: {\n        enabled: boolean(input.edits?.enabled, this.defaultValue.edits.enabled),\n        showCollapsed: boolean(input.edits?.showCollapsed, this.defaultValue.edits.showCollapsed),\n        allowCodeShifting: stringSet(input.edits?.allowCodeShifting, this.defaultValue.edits.allowCodeShifting, [\"always\", \"horizontal\", \"never\"]),\n        renderSideBySide: stringSet(input.edits?.renderSideBySide, this.defaultValue.edits.renderSideBySide, [\"never\", \"auto\"])\n      },\n      triggerCommandOnProviderChange: boolean(input.triggerCommandOnProviderChange, this.defaultValue.triggerCommandOnProviderChange),\n      experimental: {\n        suppressInlineSuggestions: EditorStringOption.string(input.experimental?.suppressInlineSuggestions, this.defaultValue.experimental.suppressInlineSuggestions),\n        showOnSuggestConflict: stringSet(input.experimental?.showOnSuggestConflict, this.defaultValue.experimental.showOnSuggestConflict, [\"always\", \"never\", \"whenSuggestListIsIncomplete\"])\n      }\n    };\n  }\n};\nvar BracketPairColorization = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      enabled: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,\n      independentColorPoolPerBracketType: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType\n    };\n    super(21, \"bracketPairColorization\", defaults, {\n      \"editor.bracketPairColorization.enabled\": {\n        type: \"boolean\",\n        default: defaults.enabled,\n        markdownDescription: localize(347, \"Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.\", \"`#workbench.colorCustomizations#`\")\n      },\n      \"editor.bracketPairColorization.independentColorPoolPerBracketType\": {\n        type: \"boolean\",\n        default: defaults.independentColorPoolPerBracketType,\n        description: localize(348, \"Controls whether each bracket type has its own independent color pool.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      enabled: boolean(input.enabled, this.defaultValue.enabled),\n      independentColorPoolPerBracketType: boolean(input.independentColorPoolPerBracketType, this.defaultValue.independentColorPoolPerBracketType)\n    };\n  }\n};\nvar GuideOptions = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      bracketPairs: false,\n      bracketPairsHorizontal: \"active\",\n      highlightActiveBracketPair: true,\n      indentation: true,\n      highlightActiveIndentation: true\n    };\n    super(22, \"guides\", defaults, {\n      \"editor.guides.bracketPairs\": {\n        type: [\"boolean\", \"string\"],\n        enum: [true, \"active\", false],\n        enumDescriptions: [\n          localize(349, \"Enables bracket pair guides.\"),\n          localize(350, \"Enables bracket pair guides only for the active bracket pair.\"),\n          localize(351, \"Disables bracket pair guides.\")\n        ],\n        default: defaults.bracketPairs,\n        description: localize(352, \"Controls whether bracket pair guides are enabled or not.\")\n      },\n      \"editor.guides.bracketPairsHorizontal\": {\n        type: [\"boolean\", \"string\"],\n        enum: [true, \"active\", false],\n        enumDescriptions: [\n          localize(353, \"Enables horizontal guides as addition to vertical bracket pair guides.\"),\n          localize(354, \"Enables horizontal guides only for the active bracket pair.\"),\n          localize(355, \"Disables horizontal bracket pair guides.\")\n        ],\n        default: defaults.bracketPairsHorizontal,\n        description: localize(356, \"Controls whether horizontal bracket pair guides are enabled or not.\")\n      },\n      \"editor.guides.highlightActiveBracketPair\": {\n        type: \"boolean\",\n        default: defaults.highlightActiveBracketPair,\n        description: localize(357, \"Controls whether the editor should highlight the active bracket pair.\")\n      },\n      \"editor.guides.indentation\": {\n        type: \"boolean\",\n        default: defaults.indentation,\n        description: localize(358, \"Controls whether the editor should render indent guides.\")\n      },\n      \"editor.guides.highlightActiveIndentation\": {\n        type: [\"boolean\", \"string\"],\n        enum: [true, \"always\", false],\n        enumDescriptions: [\n          localize(359, \"Highlights the active indent guide.\"),\n          localize(360, \"Highlights the active indent guide even if bracket guides are highlighted.\"),\n          localize(361, \"Do not highlight the active indent guide.\")\n        ],\n        default: defaults.highlightActiveIndentation,\n        description: localize(362, \"Controls whether the editor should highlight the active indent guide.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      bracketPairs: primitiveSet(input.bracketPairs, this.defaultValue.bracketPairs, [true, false, \"active\"]),\n      bracketPairsHorizontal: primitiveSet(input.bracketPairsHorizontal, this.defaultValue.bracketPairsHorizontal, [true, false, \"active\"]),\n      highlightActiveBracketPair: boolean(input.highlightActiveBracketPair, this.defaultValue.highlightActiveBracketPair),\n      indentation: boolean(input.indentation, this.defaultValue.indentation),\n      highlightActiveIndentation: primitiveSet(input.highlightActiveIndentation, this.defaultValue.highlightActiveIndentation, [true, false, \"always\"])\n    };\n  }\n};\nfunction primitiveSet(value, defaultValue, allowedValues) {\n  const idx = allowedValues.indexOf(value);\n  if (idx === -1) {\n    return defaultValue;\n  }\n  return allowedValues[idx];\n}\nvar EditorSuggest = class extends BaseEditorOption {\n  constructor() {\n    const defaults = {\n      insertMode: \"insert\",\n      filterGraceful: true,\n      snippetsPreventQuickSuggestions: false,\n      localityBonus: false,\n      shareSuggestSelections: false,\n      selectionMode: \"always\",\n      showIcons: true,\n      showStatusBar: false,\n      preview: false,\n      previewMode: \"subwordSmart\",\n      showInlineDetails: true,\n      showMethods: true,\n      showFunctions: true,\n      showConstructors: true,\n      showDeprecated: true,\n      matchOnWordStartOnly: true,\n      showFields: true,\n      showVariables: true,\n      showClasses: true,\n      showStructs: true,\n      showInterfaces: true,\n      showModules: true,\n      showProperties: true,\n      showEvents: true,\n      showOperators: true,\n      showUnits: true,\n      showValues: true,\n      showConstants: true,\n      showEnums: true,\n      showEnumMembers: true,\n      showKeywords: true,\n      showWords: true,\n      showColors: true,\n      showFiles: true,\n      showReferences: true,\n      showFolders: true,\n      showTypeParameters: true,\n      showSnippets: true,\n      showUsers: true,\n      showIssues: true\n    };\n    super(133, \"suggest\", defaults, {\n      \"editor.suggest.insertMode\": {\n        type: \"string\",\n        enum: [\"insert\", \"replace\"],\n        enumDescriptions: [\n          localize(363, \"Insert suggestion without overwriting text right of the cursor.\"),\n          localize(364, \"Insert suggestion and overwrite text right of the cursor.\")\n        ],\n        default: defaults.insertMode,\n        description: localize(365, \"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\")\n      },\n      \"editor.suggest.filterGraceful\": {\n        type: \"boolean\",\n        default: defaults.filterGraceful,\n        description: localize(366, \"Controls whether filtering and sorting suggestions accounts for small typos.\")\n      },\n      \"editor.suggest.localityBonus\": {\n        type: \"boolean\",\n        default: defaults.localityBonus,\n        description: localize(367, \"Controls whether sorting favors words that appear close to the cursor.\")\n      },\n      \"editor.suggest.shareSuggestSelections\": {\n        type: \"boolean\",\n        default: defaults.shareSuggestSelections,\n        markdownDescription: localize(368, \"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\")\n      },\n      \"editor.suggest.selectionMode\": {\n        type: \"string\",\n        enum: [\"always\", \"never\", \"whenTriggerCharacter\", \"whenQuickSuggestion\"],\n        enumDescriptions: [\n          localize(369, \"Always select a suggestion when automatically triggering IntelliSense.\"),\n          localize(370, \"Never select a suggestion when automatically triggering IntelliSense.\"),\n          localize(371, \"Select a suggestion only when triggering IntelliSense from a trigger character.\"),\n          localize(372, \"Select a suggestion only when triggering IntelliSense as you type.\")\n        ],\n        default: defaults.selectionMode,\n        markdownDescription: localize(373, \"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions ({0} and {1}) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.\", \"`#editor.quickSuggestions#`\", \"`#editor.suggestOnTriggerCharacters#`\")\n      },\n      \"editor.suggest.snippetsPreventQuickSuggestions\": {\n        type: \"boolean\",\n        default: defaults.snippetsPreventQuickSuggestions,\n        description: localize(374, \"Controls whether an active snippet prevents quick suggestions.\")\n      },\n      \"editor.suggest.showIcons\": {\n        type: \"boolean\",\n        default: defaults.showIcons,\n        description: localize(375, \"Controls whether to show or hide icons in suggestions.\")\n      },\n      \"editor.suggest.showStatusBar\": {\n        type: \"boolean\",\n        default: defaults.showStatusBar,\n        description: localize(376, \"Controls the visibility of the status bar at the bottom of the suggest widget.\")\n      },\n      \"editor.suggest.preview\": {\n        type: \"boolean\",\n        default: defaults.preview,\n        description: localize(377, \"Controls whether to preview the suggestion outcome in the editor.\")\n      },\n      \"editor.suggest.showInlineDetails\": {\n        type: \"boolean\",\n        default: defaults.showInlineDetails,\n        description: localize(378, \"Controls whether suggest details show inline with the label or only in the details widget.\")\n      },\n      \"editor.suggest.maxVisibleSuggestions\": {\n        type: \"number\",\n        deprecationMessage: localize(379, \"This setting is deprecated. The suggest widget can now be resized.\")\n      },\n      \"editor.suggest.filteredTypes\": {\n        type: \"object\",\n        deprecationMessage: localize(380, \"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\")\n      },\n      \"editor.suggest.showMethods\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(381, \"When enabled IntelliSense shows `method`-suggestions.\")\n      },\n      \"editor.suggest.showFunctions\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(382, \"When enabled IntelliSense shows `function`-suggestions.\")\n      },\n      \"editor.suggest.showConstructors\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(383, \"When enabled IntelliSense shows `constructor`-suggestions.\")\n      },\n      \"editor.suggest.showDeprecated\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(384, \"When enabled IntelliSense shows `deprecated`-suggestions.\")\n      },\n      \"editor.suggest.matchOnWordStartOnly\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(385, \"When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.\")\n      },\n      \"editor.suggest.showFields\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(386, \"When enabled IntelliSense shows `field`-suggestions.\")\n      },\n      \"editor.suggest.showVariables\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(387, \"When enabled IntelliSense shows `variable`-suggestions.\")\n      },\n      \"editor.suggest.showClasses\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(388, \"When enabled IntelliSense shows `class`-suggestions.\")\n      },\n      \"editor.suggest.showStructs\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(389, \"When enabled IntelliSense shows `struct`-suggestions.\")\n      },\n      \"editor.suggest.showInterfaces\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(390, \"When enabled IntelliSense shows `interface`-suggestions.\")\n      },\n      \"editor.suggest.showModules\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(391, \"When enabled IntelliSense shows `module`-suggestions.\")\n      },\n      \"editor.suggest.showProperties\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(392, \"When enabled IntelliSense shows `property`-suggestions.\")\n      },\n      \"editor.suggest.showEvents\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(393, \"When enabled IntelliSense shows `event`-suggestions.\")\n      },\n      \"editor.suggest.showOperators\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(394, \"When enabled IntelliSense shows `operator`-suggestions.\")\n      },\n      \"editor.suggest.showUnits\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(395, \"When enabled IntelliSense shows `unit`-suggestions.\")\n      },\n      \"editor.suggest.showValues\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(396, \"When enabled IntelliSense shows `value`-suggestions.\")\n      },\n      \"editor.suggest.showConstants\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(397, \"When enabled IntelliSense shows `constant`-suggestions.\")\n      },\n      \"editor.suggest.showEnums\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(398, \"When enabled IntelliSense shows `enum`-suggestions.\")\n      },\n      \"editor.suggest.showEnumMembers\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(399, \"When enabled IntelliSense shows `enumMember`-suggestions.\")\n      },\n      \"editor.suggest.showKeywords\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(400, \"When enabled IntelliSense shows `keyword`-suggestions.\")\n      },\n      \"editor.suggest.showWords\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(401, \"When enabled IntelliSense shows `text`-suggestions.\")\n      },\n      \"editor.suggest.showColors\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(402, \"When enabled IntelliSense shows `color`-suggestions.\")\n      },\n      \"editor.suggest.showFiles\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(403, \"When enabled IntelliSense shows `file`-suggestions.\")\n      },\n      \"editor.suggest.showReferences\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(404, \"When enabled IntelliSense shows `reference`-suggestions.\")\n      },\n      \"editor.suggest.showCustomcolors\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(405, \"When enabled IntelliSense shows `customcolor`-suggestions.\")\n      },\n      \"editor.suggest.showFolders\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(406, \"When enabled IntelliSense shows `folder`-suggestions.\")\n      },\n      \"editor.suggest.showTypeParameters\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(407, \"When enabled IntelliSense shows `typeParameter`-suggestions.\")\n      },\n      \"editor.suggest.showSnippets\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(408, \"When enabled IntelliSense shows `snippet`-suggestions.\")\n      },\n      \"editor.suggest.showUsers\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(409, \"When enabled IntelliSense shows `user`-suggestions.\")\n      },\n      \"editor.suggest.showIssues\": {\n        type: \"boolean\",\n        default: true,\n        markdownDescription: localize(410, \"When enabled IntelliSense shows `issues`-suggestions.\")\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      insertMode: stringSet(input.insertMode, this.defaultValue.insertMode, [\"insert\", \"replace\"]),\n      filterGraceful: boolean(input.filterGraceful, this.defaultValue.filterGraceful),\n      snippetsPreventQuickSuggestions: boolean(input.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful),\n      localityBonus: boolean(input.localityBonus, this.defaultValue.localityBonus),\n      shareSuggestSelections: boolean(input.shareSuggestSelections, this.defaultValue.shareSuggestSelections),\n      selectionMode: stringSet(input.selectionMode, this.defaultValue.selectionMode, [\"always\", \"never\", \"whenQuickSuggestion\", \"whenTriggerCharacter\"]),\n      showIcons: boolean(input.showIcons, this.defaultValue.showIcons),\n      showStatusBar: boolean(input.showStatusBar, this.defaultValue.showStatusBar),\n      preview: boolean(input.preview, this.defaultValue.preview),\n      previewMode: stringSet(input.previewMode, this.defaultValue.previewMode, [\"prefix\", \"subword\", \"subwordSmart\"]),\n      showInlineDetails: boolean(input.showInlineDetails, this.defaultValue.showInlineDetails),\n      showMethods: boolean(input.showMethods, this.defaultValue.showMethods),\n      showFunctions: boolean(input.showFunctions, this.defaultValue.showFunctions),\n      showConstructors: boolean(input.showConstructors, this.defaultValue.showConstructors),\n      showDeprecated: boolean(input.showDeprecated, this.defaultValue.showDeprecated),\n      matchOnWordStartOnly: boolean(input.matchOnWordStartOnly, this.defaultValue.matchOnWordStartOnly),\n      showFields: boolean(input.showFields, this.defaultValue.showFields),\n      showVariables: boolean(input.showVariables, this.defaultValue.showVariables),\n      showClasses: boolean(input.showClasses, this.defaultValue.showClasses),\n      showStructs: boolean(input.showStructs, this.defaultValue.showStructs),\n      showInterfaces: boolean(input.showInterfaces, this.defaultValue.showInterfaces),\n      showModules: boolean(input.showModules, this.defaultValue.showModules),\n      showProperties: boolean(input.showProperties, this.defaultValue.showProperties),\n      showEvents: boolean(input.showEvents, this.defaultValue.showEvents),\n      showOperators: boolean(input.showOperators, this.defaultValue.showOperators),\n      showUnits: boolean(input.showUnits, this.defaultValue.showUnits),\n      showValues: boolean(input.showValues, this.defaultValue.showValues),\n      showConstants: boolean(input.showConstants, this.defaultValue.showConstants),\n      showEnums: boolean(input.showEnums, this.defaultValue.showEnums),\n      showEnumMembers: boolean(input.showEnumMembers, this.defaultValue.showEnumMembers),\n      showKeywords: boolean(input.showKeywords, this.defaultValue.showKeywords),\n      showWords: boolean(input.showWords, this.defaultValue.showWords),\n      showColors: boolean(input.showColors, this.defaultValue.showColors),\n      showFiles: boolean(input.showFiles, this.defaultValue.showFiles),\n      showReferences: boolean(input.showReferences, this.defaultValue.showReferences),\n      showFolders: boolean(input.showFolders, this.defaultValue.showFolders),\n      showTypeParameters: boolean(input.showTypeParameters, this.defaultValue.showTypeParameters),\n      showSnippets: boolean(input.showSnippets, this.defaultValue.showSnippets),\n      showUsers: boolean(input.showUsers, this.defaultValue.showUsers),\n      showIssues: boolean(input.showIssues, this.defaultValue.showIssues)\n    };\n  }\n};\nvar SmartSelect = class extends BaseEditorOption {\n  constructor() {\n    super(128, \"smartSelect\", {\n      selectLeadingAndTrailingWhitespace: true,\n      selectSubwords: true\n    }, {\n      \"editor.smartSelect.selectLeadingAndTrailingWhitespace\": {\n        description: localize(411, \"Whether leading and trailing whitespace should always be selected.\"),\n        default: true,\n        type: \"boolean\"\n      },\n      \"editor.smartSelect.selectSubwords\": {\n        description: localize(412, \"Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected.\"),\n        default: true,\n        type: \"boolean\"\n      }\n    });\n  }\n  validate(input) {\n    if (!input || typeof input !== \"object\") {\n      return this.defaultValue;\n    }\n    return {\n      selectLeadingAndTrailingWhitespace: boolean(input.selectLeadingAndTrailingWhitespace, this.defaultValue.selectLeadingAndTrailingWhitespace),\n      selectSubwords: boolean(input.selectSubwords, this.defaultValue.selectSubwords)\n    };\n  }\n};\nvar WordSegmenterLocales = class extends BaseEditorOption {\n  constructor() {\n    const defaults = [];\n    super(146, \"wordSegmenterLocales\", defaults, {\n      anyOf: [\n        {\n          type: \"string\"\n        },\n        {\n          type: \"array\",\n          items: {\n            type: \"string\"\n          }\n        }\n      ],\n      description: localize(413, \"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\"),\n      type: \"array\",\n      items: {\n        type: \"string\"\n      },\n      default: defaults\n    });\n  }\n  validate(input) {\n    if (typeof input === \"string\") {\n      input = [input];\n    }\n    if (Array.isArray(input)) {\n      const validLocales = [];\n      for (const locale of input) {\n        if (typeof locale === \"string\") {\n          try {\n            if (Intl.Segmenter.supportedLocalesOf(locale).length \u003e 0) {\n              validLocales.push(locale);\n            }\n          } catch {\n          }\n        }\n      }\n      return validLocales;\n    }\n    return this.defaultValue;\n  }\n};\nvar WrappingIndentOption = class extends BaseEditorOption {\n  constructor() {\n    super(154, \"wrappingIndent\", 1, {\n      \"editor.wrappingIndent\": {\n        type: \"string\",\n        enum: [\"none\", \"same\", \"indent\", \"deepIndent\"],\n        enumDescriptions: [\n          localize(414, \"No indentation. Wrapped lines begin at column 1.\"),\n          localize(415, \"Wrapped lines get the same indentation as the parent.\"),\n          localize(416, \"Wrapped lines get +1 indentation toward the parent.\"),\n          localize(417, \"Wrapped lines get +2 indentation toward the parent.\")\n        ],\n        description: localize(418, \"Controls the indentation of wrapped lines.\"),\n        default: \"same\"\n      }\n    });\n  }\n  validate(input) {\n    switch (input) {\n      case \"none\":\n        return 0;\n      case \"same\":\n        return 1;\n      case \"indent\":\n        return 2;\n      case \"deepIndent\":\n        return 3;\n    }\n    return 1;\n  }\n  compute(env2, options2, value) {\n    const accessibilitySupport = options2.get(\n      2\n      /* EditorOption.accessibilitySupport */\n    );\n    if (accessibilitySupport === 2) {\n      return 0;\n    }\n    return value;\n  }\n};\nvar EditorWrappingInfoComputer = class extends ComputedEditorOption {\n  constructor() {\n    super(\n      165\n      /* EditorOption.wrappingInfo */\n    );\n  }\n  compute(env2, options2, _) {\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    return {\n      isDominatedByLongLines: env2.isDominatedByLongLines,\n      isWordWrapMinified: layoutInfo.isWordWrapMinified,\n      isViewportWrapping: layoutInfo.isViewportWrapping,\n      wrappingColumn: layoutInfo.wrappingColumn\n    };\n  }\n};\nvar EditorDropIntoEditor = class extends BaseEditorOption {\n  constructor() {\n    const defaults = { enabled: true, showDropSelector: \"afterDrop\" };\n    super(43, \"dropIntoEditor\", defaults, {\n      \"editor.dropIntoEditor.enabled\": {\n        type: \"boolean\",\n        default: defaults.enabled,\n        markdownDescription: localize(419, \"Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).\")\n      },\n      \"editor.dropIntoEditor.showDropSelector\": {\n        type: \"string\",\n        markdownDescription: localize(420, \"Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped.\"),\n        enum: [\n          \"afterDrop\",\n          \"never\"\n        ],\n        enumDescriptions: [\n          localize(421, \"Show the drop selector widget after a file is dropped into the editor.\"),\n          localize(422, \"Never show the drop selector widget. Instead the default drop provider is always used.\")\n        ],\n        default: \"afterDrop\"\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      enabled: boolean(input.enabled, this.defaultValue.enabled),\n      showDropSelector: stringSet(input.showDropSelector, this.defaultValue.showDropSelector, [\"afterDrop\", \"never\"])\n    };\n  }\n};\nvar EditorPasteAs = class extends BaseEditorOption {\n  constructor() {\n    const defaults = { enabled: true, showPasteSelector: \"afterPaste\" };\n    super(96, \"pasteAs\", defaults, {\n      \"editor.pasteAs.enabled\": {\n        type: \"boolean\",\n        default: defaults.enabled,\n        markdownDescription: localize(423, \"Controls whether you can paste content in different ways.\")\n      },\n      \"editor.pasteAs.showPasteSelector\": {\n        type: \"string\",\n        markdownDescription: localize(424, \"Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted.\"),\n        enum: [\n          \"afterPaste\",\n          \"never\"\n        ],\n        enumDescriptions: [\n          localize(425, \"Show the paste selector widget after content is pasted into the editor.\"),\n          localize(426, \"Never show the paste selector widget. Instead the default pasting behavior is always used.\")\n        ],\n        default: \"afterPaste\"\n      }\n    });\n  }\n  validate(_input) {\n    if (!_input || typeof _input !== \"object\") {\n      return this.defaultValue;\n    }\n    const input = _input;\n    return {\n      enabled: boolean(input.enabled, this.defaultValue.enabled),\n      showPasteSelector: stringSet(input.showPasteSelector, this.defaultValue.showPasteSelector, [\"afterPaste\", \"never\"])\n    };\n  }\n};\nvar DEFAULT_WINDOWS_FONT_FAMILY = \"Consolas, 'Courier New', monospace\";\nvar DEFAULT_MAC_FONT_FAMILY = \"Menlo, Monaco, 'Courier New', monospace\";\nvar DEFAULT_LINUX_FONT_FAMILY = \"'Droid Sans Mono', 'monospace', monospace\";\nvar EDITOR_FONT_DEFAULTS = {\n  fontFamily: isMacintosh ? DEFAULT_MAC_FONT_FAMILY : isWindows ? DEFAULT_WINDOWS_FONT_FAMILY : DEFAULT_LINUX_FONT_FAMILY,\n  fontWeight: \"normal\",\n  fontSize: isMacintosh ? 12 : 14,\n  lineHeight: 0,\n  letterSpacing: 0\n};\nvar editorOptionsRegistry = [];\nfunction register2(option2) {\n  editorOptionsRegistry[option2.id] = option2;\n  return option2;\n}\nvar EditorOptions = {\n  acceptSuggestionOnCommitCharacter: register2(new EditorBooleanOption(0, \"acceptSuggestionOnCommitCharacter\", true, { markdownDescription: localize(427, \"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.\") })),\n  acceptSuggestionOnEnter: register2(new EditorStringEnumOption(1, \"acceptSuggestionOnEnter\", \"on\", [\"on\", \"smart\", \"off\"], {\n    markdownEnumDescriptions: [\n      \"\",\n      localize(428, \"Only accept a suggestion with `Enter` when it makes a textual change.\"),\n      \"\"\n    ],\n    markdownDescription: localize(429, \"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\")\n  })),\n  accessibilitySupport: register2(new EditorAccessibilitySupport()),\n  accessibilityPageSize: register2(new EditorIntOption(3, \"accessibilityPageSize\", 500, 1, 1073741824, {\n    description: localize(430, \"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.\"),\n    tags: [\"accessibility\"]\n  })),\n  allowOverflow: register2(new EditorBooleanOption(4, \"allowOverflow\", true)),\n  allowVariableLineHeights: register2(new EditorBooleanOption(5, \"allowVariableLineHeights\", true, {\n    description: localize(431, \"Controls whether to allow using variable line heights in the editor.\")\n  })),\n  allowVariableFonts: register2(new EditorBooleanOption(6, \"allowVariableFonts\", true, {\n    description: localize(432, \"Controls whether to allow using variable fonts in the editor.\")\n  })),\n  allowVariableFontsInAccessibilityMode: register2(new EditorBooleanOption(7, \"allowVariableFontsInAccessibilityMode\", false, {\n    description: localize(433, \"Controls whether to allow using variable fonts in the editor in the accessibility mode.\"),\n    tags: [\"accessibility\"]\n  })),\n  ariaLabel: register2(new EditorStringOption(8, \"ariaLabel\", localize(434, \"Editor content\"))),\n  ariaRequired: register2(new EditorBooleanOption(9, \"ariaRequired\", false, void 0)),\n  screenReaderAnnounceInlineSuggestion: register2(new EditorBooleanOption(12, \"screenReaderAnnounceInlineSuggestion\", true, {\n    description: localize(435, \"Control whether inline suggestions are announced by a screen reader.\"),\n    tags: [\"accessibility\"]\n  })),\n  autoClosingBrackets: register2(new EditorStringEnumOption(10, \"autoClosingBrackets\", \"languageDefined\", [\"always\", \"languageDefined\", \"beforeWhitespace\", \"never\"], {\n    enumDescriptions: [\n      \"\",\n      localize(436, \"Use language configurations to determine when to autoclose brackets.\"),\n      localize(437, \"Autoclose brackets only when the cursor is to the left of whitespace.\"),\n      \"\"\n    ],\n    description: localize(438, \"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\")\n  })),\n  autoClosingComments: register2(new EditorStringEnumOption(11, \"autoClosingComments\", \"languageDefined\", [\"always\", \"languageDefined\", \"beforeWhitespace\", \"never\"], {\n    enumDescriptions: [\n      \"\",\n      localize(439, \"Use language configurations to determine when to autoclose comments.\"),\n      localize(440, \"Autoclose comments only when the cursor is to the left of whitespace.\"),\n      \"\"\n    ],\n    description: localize(441, \"Controls whether the editor should automatically close comments after the user adds an opening comment.\")\n  })),\n  autoClosingDelete: register2(new EditorStringEnumOption(13, \"autoClosingDelete\", \"auto\", [\"always\", \"auto\", \"never\"], {\n    enumDescriptions: [\n      \"\",\n      localize(442, \"Remove adjacent closing quotes or brackets only if they were automatically inserted.\"),\n      \"\"\n    ],\n    description: localize(443, \"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.\")\n  })),\n  autoClosingOvertype: register2(new EditorStringEnumOption(14, \"autoClosingOvertype\", \"auto\", [\"always\", \"auto\", \"never\"], {\n    enumDescriptions: [\n      \"\",\n      localize(444, \"Type over closing quotes or brackets only if they were automatically inserted.\"),\n      \"\"\n    ],\n    description: localize(445, \"Controls whether the editor should type over closing quotes or brackets.\")\n  })),\n  autoClosingQuotes: register2(new EditorStringEnumOption(15, \"autoClosingQuotes\", \"languageDefined\", [\"always\", \"languageDefined\", \"beforeWhitespace\", \"never\"], {\n    enumDescriptions: [\n      \"\",\n      localize(446, \"Use language configurations to determine when to autoclose quotes.\"),\n      localize(447, \"Autoclose quotes only when the cursor is to the left of whitespace.\"),\n      \"\"\n    ],\n    description: localize(448, \"Controls whether the editor should automatically close quotes after the user adds an opening quote.\")\n  })),\n  autoIndent: register2(new EditorEnumOption(16, \"autoIndent\", 4, \"full\", [\"none\", \"keep\", \"brackets\", \"advanced\", \"full\"], _autoIndentFromString, {\n    enumDescriptions: [\n      localize(449, \"The editor will not insert indentation automatically.\"),\n      localize(450, \"The editor will keep the current line's indentation.\"),\n      localize(451, \"The editor will keep the current line's indentation and honor language defined brackets.\"),\n      localize(452, \"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\"),\n      localize(453, \"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.\")\n    ],\n    description: localize(454, \"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\")\n  })),\n  autoIndentOnPaste: register2(new EditorBooleanOption(17, \"autoIndentOnPaste\", false, { description: localize(455, \"Controls whether the editor should automatically auto-indent the pasted content.\") })),\n  autoIndentOnPasteWithinString: register2(new EditorBooleanOption(18, \"autoIndentOnPasteWithinString\", true, { description: localize(456, \"Controls whether the editor should automatically auto-indent the pasted content when pasted within a string. This takes effect when autoIndentOnPaste is true.\") })),\n  automaticLayout: register2(new EditorBooleanOption(19, \"automaticLayout\", false)),\n  autoSurround: register2(new EditorStringEnumOption(20, \"autoSurround\", \"languageDefined\", [\"languageDefined\", \"quotes\", \"brackets\", \"never\"], {\n    enumDescriptions: [\n      localize(457, \"Use language configurations to determine when to automatically surround selections.\"),\n      localize(458, \"Surround with quotes but not brackets.\"),\n      localize(459, \"Surround with brackets but not quotes.\"),\n      \"\"\n    ],\n    description: localize(460, \"Controls whether the editor should automatically surround selections when typing quotes or brackets.\")\n  })),\n  bracketPairColorization: register2(new BracketPairColorization()),\n  bracketPairGuides: register2(new GuideOptions()),\n  stickyTabStops: register2(new EditorBooleanOption(131, \"stickyTabStops\", false, { description: localize(461, \"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.\") })),\n  codeLens: register2(new EditorBooleanOption(23, \"codeLens\", true, { description: localize(462, \"Controls whether the editor shows CodeLens.\") })),\n  codeLensFontFamily: register2(new EditorStringOption(24, \"codeLensFontFamily\", \"\", { description: localize(463, \"Controls the font family for CodeLens.\") })),\n  codeLensFontSize: register2(new EditorIntOption(25, \"codeLensFontSize\", 0, 0, 100, {\n    type: \"number\",\n    default: 0,\n    minimum: 0,\n    maximum: 100,\n    markdownDescription: localize(464, \"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.\")\n  })),\n  colorDecorators: register2(new EditorBooleanOption(26, \"colorDecorators\", true, { description: localize(465, \"Controls whether the editor should render the inline color decorators and color picker.\") })),\n  colorDecoratorActivatedOn: register2(new EditorStringEnumOption(167, \"colorDecoratorsActivatedOn\", \"clickAndHover\", [\"clickAndHover\", \"hover\", \"click\"], {\n    enumDescriptions: [\n      localize(466, \"Make the color picker appear both on click and hover of the color decorator\"),\n      localize(467, \"Make the color picker appear on hover of the color decorator\"),\n      localize(468, \"Make the color picker appear on click of the color decorator\")\n    ],\n    description: localize(469, \"Controls the condition to make a color picker appear from a color decorator.\")\n  })),\n  colorDecoratorsLimit: register2(new EditorIntOption(27, \"colorDecoratorsLimit\", 500, 1, 1e6, {\n    markdownDescription: localize(470, \"Controls the max number of color decorators that can be rendered in an editor at once.\")\n  })),\n  columnSelection: register2(new EditorBooleanOption(28, \"columnSelection\", false, { description: localize(471, \"Enable that the selection with the mouse and keys is doing column selection.\") })),\n  comments: register2(new EditorComments()),\n  contextmenu: register2(new EditorBooleanOption(30, \"contextmenu\", true)),\n  copyWithSyntaxHighlighting: register2(new EditorBooleanOption(31, \"copyWithSyntaxHighlighting\", true, { description: localize(472, \"Controls whether syntax highlighting should be copied into the clipboard.\") })),\n  cursorBlinking: register2(new EditorEnumOption(32, \"cursorBlinking\", 1, \"blink\", [\"blink\", \"smooth\", \"phase\", \"expand\", \"solid\"], cursorBlinkingStyleFromString, { description: localize(473, \"Control the cursor animation style.\") })),\n  cursorSmoothCaretAnimation: register2(new EditorStringEnumOption(33, \"cursorSmoothCaretAnimation\", \"off\", [\"off\", \"explicit\", \"on\"], {\n    enumDescriptions: [\n      localize(474, \"Smooth caret animation is disabled.\"),\n      localize(475, \"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture.\"),\n      localize(476, \"Smooth caret animation is always enabled.\")\n    ],\n    description: localize(477, \"Controls whether the smooth caret animation should be enabled.\")\n  })),\n  cursorStyle: register2(new EditorEnumOption(34, \"cursorStyle\", TextEditorCursorStyle.Line, \"line\", [\"line\", \"block\", \"underline\", \"line-thin\", \"block-outline\", \"underline-thin\"], cursorStyleFromString, { description: localize(478, \"Controls the cursor style in insert input mode.\") })),\n  overtypeCursorStyle: register2(new EditorEnumOption(91, \"overtypeCursorStyle\", TextEditorCursorStyle.Block, \"block\", [\"line\", \"block\", \"underline\", \"line-thin\", \"block-outline\", \"underline-thin\"], cursorStyleFromString, { description: localize(479, \"Controls the cursor style in overtype input mode.\") })),\n  cursorSurroundingLines: register2(new EditorIntOption(35, \"cursorSurroundingLines\", 0, 0, 1073741824, { description: localize(480, \"Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.\") })),\n  cursorSurroundingLinesStyle: register2(new EditorStringEnumOption(36, \"cursorSurroundingLinesStyle\", \"default\", [\"default\", \"all\"], {\n    enumDescriptions: [\n      localize(481, \"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\"),\n      localize(482, \"`cursorSurroundingLines` is enforced always.\")\n    ],\n    markdownDescription: localize(483, \"Controls when `#editor.cursorSurroundingLines#` should be enforced.\")\n  })),\n  cursorWidth: register2(new EditorIntOption(37, \"cursorWidth\", 0, 0, 1073741824, { markdownDescription: localize(484, \"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\") })),\n  cursorHeight: register2(new EditorIntOption(38, \"cursorHeight\", 0, 0, 1073741824, { markdownDescription: localize(485, \"Controls the height of the cursor when `#editor.cursorStyle#` is set to `line`. Cursor's max height depends on line height.\") })),\n  disableLayerHinting: register2(new EditorBooleanOption(39, \"disableLayerHinting\", false)),\n  disableMonospaceOptimizations: register2(new EditorBooleanOption(40, \"disableMonospaceOptimizations\", false)),\n  domReadOnly: register2(new EditorBooleanOption(41, \"domReadOnly\", false)),\n  dragAndDrop: register2(new EditorBooleanOption(42, \"dragAndDrop\", true, { description: localize(486, \"Controls whether the editor should allow moving selections via drag and drop.\") })),\n  emptySelectionClipboard: register2(new EditorEmptySelectionClipboard()),\n  dropIntoEditor: register2(new EditorDropIntoEditor()),\n  editContext: register2(new EditorBooleanOption(44, \"editContext\", true, {\n    description: localize(487, \"Sets whether the EditContext API should be used instead of the text area to power input in the editor.\"),\n    included: isChrome2 || isEdge || isNative\n  })),\n  renderRichScreenReaderContent: register2(new EditorBooleanOption(106, \"renderRichScreenReaderContent\", false, {\n    markdownDescription: localize(488, \"Whether to render rich screen reader content when the `#editor.editContext#` setting is enabled.\")\n  })),\n  stickyScroll: register2(new EditorStickyScroll()),\n  experimentalGpuAcceleration: register2(new EditorStringEnumOption(46, \"experimentalGpuAcceleration\", \"off\", [\"off\", \"on\"], {\n    tags: [\"experimental\"],\n    enumDescriptions: [\n      localize(489, \"Use regular DOM-based rendering.\"),\n      localize(490, \"Use GPU acceleration.\")\n    ],\n    description: localize(491, \"Controls whether to use the experimental GPU acceleration to render the editor.\")\n  })),\n  experimentalWhitespaceRendering: register2(new EditorStringEnumOption(47, \"experimentalWhitespaceRendering\", \"svg\", [\"svg\", \"font\", \"off\"], {\n    enumDescriptions: [\n      localize(492, \"Use a new rendering method with svgs.\"),\n      localize(493, \"Use a new rendering method with font characters.\"),\n      localize(494, \"Use the stable rendering method.\")\n    ],\n    description: localize(495, \"Controls whether whitespace is rendered with a new, experimental method.\")\n  })),\n  extraEditorClassName: register2(new EditorStringOption(48, \"extraEditorClassName\", \"\")),\n  fastScrollSensitivity: register2(new EditorFloatOption(49, \"fastScrollSensitivity\", 5, (x) =\u003e x \u003c= 0 ? 5 : x, { markdownDescription: localize(496, \"Scrolling speed multiplier when pressing `Alt`.\") })),\n  find: register2(new EditorFind()),\n  fixedOverflowWidgets: register2(new EditorBooleanOption(51, \"fixedOverflowWidgets\", false)),\n  folding: register2(new EditorBooleanOption(52, \"folding\", true, { description: localize(497, \"Controls whether the editor has code folding enabled.\") })),\n  foldingStrategy: register2(new EditorStringEnumOption(53, \"foldingStrategy\", \"auto\", [\"auto\", \"indentation\"], {\n    enumDescriptions: [\n      localize(498, \"Use a language-specific folding strategy if available, else the indentation-based one.\"),\n      localize(499, \"Use the indentation-based folding strategy.\")\n    ],\n    description: localize(500, \"Controls the strategy for computing folding ranges.\")\n  })),\n  foldingHighlight: register2(new EditorBooleanOption(54, \"foldingHighlight\", true, { description: localize(501, \"Controls whether the editor should highlight folded ranges.\") })),\n  foldingImportsByDefault: register2(new EditorBooleanOption(55, \"foldingImportsByDefault\", false, { description: localize(502, \"Controls whether the editor automatically collapses import ranges.\") })),\n  foldingMaximumRegions: register2(new EditorIntOption(\n    56,\n    \"foldingMaximumRegions\",\n    5e3,\n    10,\n    65e3,\n    // limit must be less than foldingRanges MAX_FOLDING_REGIONS\n    { description: localize(503, \"The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.\") }\n  )),\n  unfoldOnClickAfterEndOfLine: register2(new EditorBooleanOption(57, \"unfoldOnClickAfterEndOfLine\", false, { description: localize(504, \"Controls whether clicking on the empty content after a folded line will unfold the line.\") })),\n  fontFamily: register2(new EditorStringOption(58, \"fontFamily\", EDITOR_FONT_DEFAULTS.fontFamily, { description: localize(505, \"Controls the font family.\") })),\n  fontInfo: register2(new EditorFontInfo()),\n  fontLigatures2: register2(new EditorFontLigatures()),\n  fontSize: register2(new EditorFontSize()),\n  fontWeight: register2(new EditorFontWeight()),\n  fontVariations: register2(new EditorFontVariations()),\n  formatOnPaste: register2(new EditorBooleanOption(64, \"formatOnPaste\", false, { description: localize(506, \"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.\") })),\n  formatOnType: register2(new EditorBooleanOption(65, \"formatOnType\", false, { description: localize(507, \"Controls whether the editor should automatically format the line after typing.\") })),\n  glyphMargin: register2(new EditorBooleanOption(66, \"glyphMargin\", true, { description: localize(508, \"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\") })),\n  gotoLocation: register2(new EditorGoToLocation()),\n  hideCursorInOverviewRuler: register2(new EditorBooleanOption(68, \"hideCursorInOverviewRuler\", false, { description: localize(509, \"Controls whether the cursor should be hidden in the overview ruler.\") })),\n  hover: register2(new EditorHover()),\n  inDiffEditor: register2(new EditorBooleanOption(70, \"inDiffEditor\", false)),\n  inertialScroll: register2(new EditorBooleanOption(157, \"inertialScroll\", false, { description: localize(510, \"Make scrolling inertial - mostly useful with touchpad on linux.\") })),\n  letterSpacing: register2(new EditorFloatOption(72, \"letterSpacing\", EDITOR_FONT_DEFAULTS.letterSpacing, (x) =\u003e EditorFloatOption.clamp(x, -5, 20), { description: localize(511, \"Controls the letter spacing in pixels.\") })),\n  lightbulb: register2(new EditorLightbulb()),\n  lineDecorationsWidth: register2(new EditorLineDecorationsWidth()),\n  lineHeight: register2(new EditorLineHeight()),\n  lineNumbers: register2(new EditorRenderLineNumbersOption()),\n  lineNumbersMinChars: register2(new EditorIntOption(77, \"lineNumbersMinChars\", 5, 1, 300)),\n  linkedEditing: register2(new EditorBooleanOption(78, \"linkedEditing\", false, { description: localize(512, \"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.\") })),\n  links: register2(new EditorBooleanOption(79, \"links\", true, { description: localize(513, \"Controls whether the editor should detect links and make them clickable.\") })),\n  matchBrackets: register2(new EditorStringEnumOption(80, \"matchBrackets\", \"always\", [\"always\", \"near\", \"never\"], { description: localize(514, \"Highlight matching brackets.\") })),\n  minimap: register2(new EditorMinimap()),\n  mouseStyle: register2(new EditorStringEnumOption(82, \"mouseStyle\", \"text\", [\"text\", \"default\", \"copy\"])),\n  mouseWheelScrollSensitivity: register2(new EditorFloatOption(83, \"mouseWheelScrollSensitivity\", 1, (x) =\u003e x === 0 ? 1 : x, { markdownDescription: localize(515, \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\") })),\n  mouseWheelZoom: register2(new EditorBooleanOption(84, \"mouseWheelZoom\", false, {\n    markdownDescription: isMacintosh ? localize(516, \"Zoom the font of the editor when using mouse wheel and holding `Cmd`.\") : localize(517, \"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\")\n  })),\n  multiCursorMergeOverlapping: register2(new EditorBooleanOption(85, \"multiCursorMergeOverlapping\", true, { description: localize(518, \"Merge multiple cursors when they are overlapping.\") })),\n  multiCursorModifier: register2(new EditorEnumOption(86, \"multiCursorModifier\", \"altKey\", \"alt\", [\"ctrlCmd\", \"alt\"], _multiCursorModifierFromString, {\n    markdownEnumDescriptions: [\n      localize(519, \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n      localize(520, \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n    ],\n    markdownDescription: localize(521, \"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\")\n  })),\n  multiCursorPaste: register2(new EditorStringEnumOption(87, \"multiCursorPaste\", \"spread\", [\"spread\", \"full\"], {\n    markdownEnumDescriptions: [\n      localize(522, \"Each cursor pastes a single line of the text.\"),\n      localize(523, \"Each cursor pastes the full text.\")\n    ],\n    markdownDescription: localize(524, \"Controls pasting when the line count of the pasted text matches the cursor count.\")\n  })),\n  multiCursorLimit: register2(new EditorIntOption(88, \"multiCursorLimit\", 1e4, 1, 1e5, {\n    markdownDescription: localize(525, \"Controls the max number of cursors that can be in an active editor at once.\")\n  })),\n  occurrencesHighlight: register2(new EditorStringEnumOption(89, \"occurrencesHighlight\", \"singleFile\", [\"off\", \"singleFile\", \"multiFile\"], {\n    markdownEnumDescriptions: [\n      localize(526, \"Does not highlight occurrences.\"),\n      localize(527, \"Highlights occurrences only in the current file.\"),\n      localize(528, \"Experimental: Highlights occurrences across all valid open files.\")\n    ],\n    markdownDescription: localize(529, \"Controls whether occurrences should be highlighted across open files.\")\n  })),\n  occurrencesHighlightDelay: register2(new EditorIntOption(90, \"occurrencesHighlightDelay\", 0, 0, 2e3, {\n    description: localize(530, \"Controls the delay in milliseconds after which occurrences are highlighted.\"),\n    tags: [\"preview\"]\n  })),\n  overtypeOnPaste: register2(new EditorBooleanOption(92, \"overtypeOnPaste\", true, { description: localize(531, \"Controls whether pasting should overtype.\") })),\n  overviewRulerBorder: register2(new EditorBooleanOption(93, \"overviewRulerBorder\", true, { description: localize(532, \"Controls whether a border should be drawn around the overview ruler.\") })),\n  overviewRulerLanes: register2(new EditorIntOption(94, \"overviewRulerLanes\", 3, 0, 3)),\n  padding: register2(new EditorPadding()),\n  pasteAs: register2(new EditorPasteAs()),\n  parameterHints: register2(new EditorParameterHints()),\n  peekWidgetDefaultFocus: register2(new EditorStringEnumOption(98, \"peekWidgetDefaultFocus\", \"tree\", [\"tree\", \"editor\"], {\n    enumDescriptions: [\n      localize(533, \"Focus the tree when opening peek\"),\n      localize(534, \"Focus the editor when opening peek\")\n    ],\n    description: localize(535, \"Controls whether to focus the inline editor or the tree in the peek widget.\")\n  })),\n  placeholder: register2(new PlaceholderOption()),\n  definitionLinkOpensInPeek: register2(new EditorBooleanOption(100, \"definitionLinkOpensInPeek\", false, { description: localize(536, \"Controls whether the Go to Definition mouse gesture always opens the peek widget.\") })),\n  quickSuggestions: register2(new EditorQuickSuggestions()),\n  quickSuggestionsDelay: register2(new EditorIntOption(102, \"quickSuggestionsDelay\", 10, 0, 1073741824, {\n    description: localize(537, \"Controls the delay in milliseconds after which quick suggestions will show up.\"),\n    experiment: {\n      mode: \"auto\"\n    }\n  })),\n  readOnly: register2(new EditorBooleanOption(103, \"readOnly\", false)),\n  readOnlyMessage: register2(new ReadonlyMessage()),\n  renameOnType: register2(new EditorBooleanOption(105, \"renameOnType\", false, { description: localize(538, \"Controls whether the editor auto renames on type.\"), markdownDeprecationMessage: localize(539, \"Deprecated, use `#editor.linkedEditing#` instead.\") })),\n  renderControlCharacters: register2(new EditorBooleanOption(107, \"renderControlCharacters\", true, { description: localize(540, \"Controls whether the editor should render control characters.\"), restricted: true })),\n  renderFinalNewline: register2(new EditorStringEnumOption(108, \"renderFinalNewline\", isLinux ? \"dimmed\" : \"on\", [\"off\", \"on\", \"dimmed\"], { description: localize(541, \"Render last line number when the file ends with a newline.\") })),\n  renderLineHighlight: register2(new EditorStringEnumOption(109, \"renderLineHighlight\", \"line\", [\"none\", \"gutter\", \"line\", \"all\"], {\n    enumDescriptions: [\n      \"\",\n      \"\",\n      \"\",\n      localize(542, \"Highlights both the gutter and the current line.\")\n    ],\n    description: localize(543, \"Controls how the editor should render the current line highlight.\")\n  })),\n  renderLineHighlightOnlyWhenFocus: register2(new EditorBooleanOption(110, \"renderLineHighlightOnlyWhenFocus\", false, { description: localize(544, \"Controls if the editor should render the current line highlight only when the editor is focused.\") })),\n  renderValidationDecorations: register2(new EditorStringEnumOption(111, \"renderValidationDecorations\", \"editable\", [\"editable\", \"on\", \"off\"])),\n  renderWhitespace: register2(new EditorStringEnumOption(112, \"renderWhitespace\", \"selection\", [\"none\", \"boundary\", \"selection\", \"trailing\", \"all\"], {\n    enumDescriptions: [\n      \"\",\n      localize(545, \"Render whitespace characters except for single spaces between words.\"),\n      localize(546, \"Render whitespace characters only on selected text.\"),\n      localize(547, \"Render only trailing whitespace characters.\"),\n      \"\"\n    ],\n    description: localize(548, \"Controls how the editor should render whitespace characters.\")\n  })),\n  revealHorizontalRightPadding: register2(new EditorIntOption(113, \"revealHorizontalRightPadding\", 15, 0, 1e3)),\n  roundedSelection: register2(new EditorBooleanOption(114, \"roundedSelection\", true, { description: localize(549, \"Controls whether selections should have rounded corners.\") })),\n  rulers: register2(new EditorRulers()),\n  scrollbar: register2(new EditorScrollbar()),\n  scrollBeyondLastColumn: register2(new EditorIntOption(117, \"scrollBeyondLastColumn\", 4, 0, 1073741824, { description: localize(550, \"Controls the number of extra characters beyond which the editor will scroll horizontally.\") })),\n  scrollBeyondLastLine: register2(new EditorBooleanOption(118, \"scrollBeyondLastLine\", true, { description: localize(551, \"Controls whether the editor will scroll beyond the last line.\") })),\n  scrollOnMiddleClick: register2(new EditorBooleanOption(170, \"scrollOnMiddleClick\", false, { description: localize(552, \"Controls whether the editor will scroll when the middle button is pressed.\") })),\n  scrollPredominantAxis: register2(new EditorBooleanOption(119, \"scrollPredominantAxis\", true, { description: localize(553, \"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.\") })),\n  selectionClipboard: register2(new EditorBooleanOption(120, \"selectionClipboard\", true, {\n    description: localize(554, \"Controls whether the Linux primary clipboard should be supported.\"),\n    included: isLinux\n  })),\n  selectionHighlight: register2(new EditorBooleanOption(121, \"selectionHighlight\", true, { description: localize(555, \"Controls whether the editor should highlight matches similar to the selection.\") })),\n  selectionHighlightMaxLength: register2(new EditorIntOption(122, \"selectionHighlightMaxLength\", 200, 0, 1073741824, { description: localize(556, \"Controls how many characters can be in the selection before similiar matches are not highlighted. Set to zero for unlimited.\") })),\n  selectionHighlightMultiline: register2(new EditorBooleanOption(123, \"selectionHighlightMultiline\", false, { description: localize(557, \"Controls whether the editor should highlight selection matches that span multiple lines.\") })),\n  selectOnLineNumbers: register2(new EditorBooleanOption(124, \"selectOnLineNumbers\", true)),\n  showFoldingControls: register2(new EditorStringEnumOption(125, \"showFoldingControls\", \"mouseover\", [\"always\", \"never\", \"mouseover\"], {\n    enumDescriptions: [\n      localize(558, \"Always show the folding controls.\"),\n      localize(559, \"Never show the folding controls and reduce the gutter size.\"),\n      localize(560, \"Only show the folding controls when the mouse is over the gutter.\")\n    ],\n    description: localize(561, \"Controls when the folding controls on the gutter are shown.\")\n  })),\n  showUnused: register2(new EditorBooleanOption(126, \"showUnused\", true, { description: localize(562, \"Controls fading out of unused code.\") })),\n  showDeprecated: register2(new EditorBooleanOption(156, \"showDeprecated\", true, { description: localize(563, \"Controls strikethrough deprecated variables.\") })),\n  inlayHints: register2(new EditorInlayHints()),\n  snippetSuggestions: register2(new EditorStringEnumOption(127, \"snippetSuggestions\", \"inline\", [\"top\", \"bottom\", \"inline\", \"none\"], {\n    enumDescriptions: [\n      localize(564, \"Show snippet suggestions on top of other suggestions.\"),\n      localize(565, \"Show snippet suggestions below other suggestions.\"),\n      localize(566, \"Show snippets suggestions with other suggestions.\"),\n      localize(567, \"Do not show snippet suggestions.\")\n    ],\n    description: localize(568, \"Controls whether snippets are shown with other suggestions and how they are sorted.\")\n  })),\n  smartSelect: register2(new SmartSelect()),\n  smoothScrolling: register2(new EditorBooleanOption(129, \"smoothScrolling\", false, { description: localize(569, \"Controls whether the editor will scroll using an animation.\") })),\n  stopRenderingLineAfter: register2(new EditorIntOption(\n    132,\n    \"stopRenderingLineAfter\",\n    1e4,\n    -1,\n    1073741824\n    /* Constants.MAX_SAFE_SMALL_INTEGER */\n  )),\n  suggest: register2(new EditorSuggest()),\n  inlineSuggest: register2(new InlineEditorSuggest()),\n  inlineCompletionsAccessibilityVerbose: register2(new EditorBooleanOption(168, \"inlineCompletionsAccessibilityVerbose\", false, { description: localize(570, \"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.\") })),\n  suggestFontSize: register2(new EditorIntOption(134, \"suggestFontSize\", 0, 0, 1e3, { markdownDescription: localize(571, \"Font size for the suggest widget. When set to {0}, the value of {1} is used.\", \"`0`\", \"`#editor.fontSize#`\") })),\n  suggestLineHeight: register2(new EditorIntOption(135, \"suggestLineHeight\", 0, 0, 1e3, { markdownDescription: localize(572, \"Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.\", \"`0`\", \"`#editor.lineHeight#`\") })),\n  suggestOnTriggerCharacters: register2(new EditorBooleanOption(136, \"suggestOnTriggerCharacters\", true, { description: localize(573, \"Controls whether suggestions should automatically show up when typing trigger characters.\") })),\n  suggestSelection: register2(new EditorStringEnumOption(137, \"suggestSelection\", \"first\", [\"first\", \"recentlyUsed\", \"recentlyUsedByPrefix\"], {\n    markdownEnumDescriptions: [\n      localize(574, \"Always select the first suggestion.\"),\n      localize(575, \"Select recent suggestions unless further typing selects one, e.g. `console.| -\u003e console.log` because `log` has been completed recently.\"),\n      localize(576, \"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -\u003e console` and `con -\u003e const`.\")\n    ],\n    description: localize(577, \"Controls how suggestions are pre-selected when showing the suggest list.\")\n  })),\n  tabCompletion: register2(new EditorStringEnumOption(138, \"tabCompletion\", \"off\", [\"on\", \"off\", \"onlySnippets\"], {\n    enumDescriptions: [\n      localize(578, \"Tab complete will insert the best matching suggestion when pressing tab.\"),\n      localize(579, \"Disable tab completions.\"),\n      localize(580, \"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\")\n    ],\n    description: localize(581, \"Enables tab completions.\")\n  })),\n  tabIndex: register2(new EditorIntOption(\n    139,\n    \"tabIndex\",\n    0,\n    -1,\n    1073741824\n    /* Constants.MAX_SAFE_SMALL_INTEGER */\n  )),\n  trimWhitespaceOnDelete: register2(new EditorBooleanOption(140, \"trimWhitespaceOnDelete\", false, { description: localize(582, \"Controls whether the editor will also delete the next line's indentation whitespace when deleting a newline.\") })),\n  unicodeHighlight: register2(new UnicodeHighlight()),\n  unusualLineTerminators: register2(new EditorStringEnumOption(142, \"unusualLineTerminators\", \"prompt\", [\"auto\", \"off\", \"prompt\"], {\n    enumDescriptions: [\n      localize(583, \"Unusual line terminators are automatically removed.\"),\n      localize(584, \"Unusual line terminators are ignored.\"),\n      localize(585, \"Unusual line terminators prompt to be removed.\")\n    ],\n    description: localize(586, \"Remove unusual line terminators that might cause problems.\")\n  })),\n  useShadowDOM: register2(new EditorBooleanOption(143, \"useShadowDOM\", true)),\n  useTabStops: register2(new EditorBooleanOption(144, \"useTabStops\", true, { description: localize(587, \"Spaces and tabs are inserted and deleted in alignment with tab stops.\") })),\n  wordBreak: register2(new EditorStringEnumOption(145, \"wordBreak\", \"normal\", [\"normal\", \"keepAll\"], {\n    markdownEnumDescriptions: [\n      localize(588, \"Use the default line break rule.\"),\n      localize(589, \"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.\")\n    ],\n    description: localize(590, \"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.\")\n  })),\n  wordSegmenterLocales: register2(new WordSegmenterLocales()),\n  wordSeparators: register2(new EditorStringOption(147, \"wordSeparators\", USUAL_WORD_SEPARATORS, { description: localize(591, \"Characters that will be used as word separators when doing word related navigations or operations.\") })),\n  wordWrap: register2(new EditorStringEnumOption(148, \"wordWrap\", \"off\", [\"off\", \"on\", \"wordWrapColumn\", \"bounded\"], {\n    markdownEnumDescriptions: [\n      localize(592, \"Lines will never wrap.\"),\n      localize(593, \"Lines will wrap at the viewport width.\"),\n      localize(594, \"Lines will wrap at `#editor.wordWrapColumn#`.\"),\n      localize(595, \"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\")\n    ],\n    description: localize(596, \"Controls how lines should wrap.\")\n  })),\n  wordWrapBreakAfterCharacters: register2(new EditorStringOption(\n    149,\n    \"wordWrapBreakAfterCharacters\",\n    // allow-any-unicode-next-line\n    \" \t})]?|/\u0026.,;\\xA2\\xB0\\u2032\\u2033\\u2030\\u2103\\u3001\\u3002\\uFF61\\uFF64\\uFFE0\\uFF0C\\uFF0E\\uFF1A\\uFF1B\\uFF1F\\uFF01\\uFF05\\u30FB\\uFF65\\u309D\\u309E\\u30FD\\u30FE\\u30FC\\u30A1\\u30A3\\u30A5\\u30A7\\u30A9\\u30C3\\u30E3\\u30E5\\u30E7\\u30EE\\u30F5\\u30F6\\u3041\\u3043\\u3045\\u3047\\u3049\\u3063\\u3083\\u3085\\u3087\\u308E\\u3095\\u3096\\u31F0\\u31F1\\u31F2\\u31F3\\u31F4\\u31F5\\u31F6\\u31F7\\u31F8\\u31F9\\u31FA\\u31FB\\u31FC\\u31FD\\u31FE\\u31FF\\u3005\\u303B\\uFF67\\uFF68\\uFF69\\uFF6A\\uFF6B\\uFF6C\\uFF6D\\uFF6E\\uFF6F\\uFF70\\u201D\\u3009\\u300B\\u300D\\u300F\\u3011\\u3015\\uFF09\\uFF3D\\uFF5D\\uFF63\"\n  )),\n  wordWrapBreakBeforeCharacters: register2(new EditorStringOption(\n    150,\n    \"wordWrapBreakBeforeCharacters\",\n    // allow-any-unicode-next-line\n    \"([{\\u2018\\u201C\\u3008\\u300A\\u300C\\u300E\\u3010\\u3014\\uFF08\\uFF3B\\uFF5B\\uFF62\\xA3\\xA5\\uFF04\\uFFE1\\uFFE5+\\uFF0B\"\n  )),\n  wordWrapColumn: register2(new EditorIntOption(151, \"wordWrapColumn\", 80, 1, 1073741824, {\n    markdownDescription: localize(597, \"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\")\n  })),\n  wordWrapOverride1: register2(new EditorStringEnumOption(152, \"wordWrapOverride1\", \"inherit\", [\"off\", \"on\", \"inherit\"])),\n  wordWrapOverride2: register2(new EditorStringEnumOption(153, \"wordWrapOverride2\", \"inherit\", [\"off\", \"on\", \"inherit\"])),\n  wrapOnEscapedLineFeeds: register2(new EditorBooleanOption(159, \"wrapOnEscapedLineFeeds\", false, { markdownDescription: localize(598, 'Controls whether literal `\\\\n` shall trigger a wordWrap when `#editor.wordWrap#` is enabled.\\n\\nFor example:\\n```c\\nchar* str=\"hello\\\\nworld\"\\n```\\nwill be displayed as\\n```c\\nchar* str=\"hello\\\\n\\n           world\"\\n```') })),\n  // Leave these at the end (because they have dependencies!)\n  effectiveCursorStyle: register2(new EffectiveCursorStyle()),\n  editorClassName: register2(new EditorClassName()),\n  defaultColorDecorators: register2(new EditorStringEnumOption(166, \"defaultColorDecorators\", \"auto\", [\"auto\", \"always\", \"never\"], {\n    enumDescriptions: [\n      localize(599, \"Show default color decorators only when no extension provides colors decorators.\"),\n      localize(600, \"Always show default color decorators.\"),\n      localize(601, \"Never show default color decorators.\")\n    ],\n    description: localize(602, \"Controls whether inline color decorations should be shown using the default document color provider.\")\n  })),\n  pixelRatio: register2(new EditorPixelRatio()),\n  tabFocusMode: register2(new EditorBooleanOption(163, \"tabFocusMode\", false, { markdownDescription: localize(603, \"Controls whether the editor receives tabs or defers them to the workbench for navigation.\") })),\n  layoutInfo: register2(new EditorLayoutInfoComputer()),\n  wrappingInfo: register2(new EditorWrappingInfoComputer()),\n  wrappingIndent: register2(new WrappingIndentOption()),\n  wrappingStrategy: register2(new WrappingStrategy()),\n  effectiveEditContextEnabled: register2(new EffectiveEditContextEnabled()),\n  effectiveAllowVariableFonts: register2(new EffectiveAllowVariableFonts())\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/config/fontInfo.js\ninit_platform();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/config/editorZoom.js\ninit_event();\nvar EditorZoom = new class {\n  constructor() {\n    this._zoomLevel = 0;\n    this._onDidChangeZoomLevel = new Emitter();\n    this.onDidChangeZoomLevel = this._onDidChangeZoomLevel.event;\n  }\n  getZoomLevel() {\n    return this._zoomLevel;\n  }\n  setZoomLevel(zoomLevel) {\n    zoomLevel = Math.min(Math.max(-5, zoomLevel), 20);\n    if (this._zoomLevel === zoomLevel) {\n      return;\n    }\n    this._zoomLevel = zoomLevel;\n    this._onDidChangeZoomLevel.fire(this._zoomLevel);\n  }\n}();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/config/fontInfo.js\nvar GOLDEN_LINE_HEIGHT_RATIO = isMacintosh ? 1.5 : 1.35;\nvar MINIMUM_LINE_HEIGHT = 8;\nvar BareFontInfo = class _BareFontInfo {\n  /**\n   * @internal\n   */\n  static createFromValidatedSettings(options2, pixelRatio, ignoreEditorZoom) {\n    const fontFamily = options2.get(\n      58\n      /* EditorOption.fontFamily */\n    );\n    const fontWeight = options2.get(\n      62\n      /* EditorOption.fontWeight */\n    );\n    const fontSize = options2.get(\n      61\n      /* EditorOption.fontSize */\n    );\n    const fontFeatureSettings = options2.get(\n      60\n      /* EditorOption.fontLigatures */\n    );\n    const fontVariationSettings = options2.get(\n      63\n      /* EditorOption.fontVariations */\n    );\n    const lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const letterSpacing = options2.get(\n      72\n      /* EditorOption.letterSpacing */\n    );\n    return _BareFontInfo._create(fontFamily, fontWeight, fontSize, fontFeatureSettings, fontVariationSettings, lineHeight, letterSpacing, pixelRatio, ignoreEditorZoom);\n  }\n  /**\n   * @internal\n   */\n  static _create(fontFamily, fontWeight, fontSize, fontFeatureSettings, fontVariationSettings, lineHeight, letterSpacing, pixelRatio, ignoreEditorZoom) {\n    if (lineHeight === 0) {\n      lineHeight = GOLDEN_LINE_HEIGHT_RATIO * fontSize;\n    } else if (lineHeight \u003c MINIMUM_LINE_HEIGHT) {\n      lineHeight = lineHeight * fontSize;\n    }\n    lineHeight = Math.round(lineHeight);\n    if (lineHeight \u003c MINIMUM_LINE_HEIGHT) {\n      lineHeight = MINIMUM_LINE_HEIGHT;\n    }\n    const editorZoomLevelMultiplier = 1 + (ignoreEditorZoom ? 0 : EditorZoom.getZoomLevel() * 0.1);\n    fontSize *= editorZoomLevelMultiplier;\n    lineHeight *= editorZoomLevelMultiplier;\n    if (fontVariationSettings === EditorFontVariations.TRANSLATE) {\n      if (fontWeight === \"normal\" || fontWeight === \"bold\") {\n        fontVariationSettings = EditorFontVariations.OFF;\n      } else {\n        const fontWeightAsNumber = parseInt(fontWeight, 10);\n        fontVariationSettings = `'wght' ${fontWeightAsNumber}`;\n        fontWeight = \"normal\";\n      }\n    }\n    return new _BareFontInfo({\n      pixelRatio,\n      fontFamily,\n      fontWeight,\n      fontSize,\n      fontFeatureSettings,\n      fontVariationSettings,\n      lineHeight,\n      letterSpacing\n    });\n  }\n  /**\n   * @internal\n   */\n  constructor(opts) {\n    this._bareFontInfoBrand = void 0;\n    this.pixelRatio = opts.pixelRatio;\n    this.fontFamily = String(opts.fontFamily);\n    this.fontWeight = String(opts.fontWeight);\n    this.fontSize = opts.fontSize;\n    this.fontFeatureSettings = opts.fontFeatureSettings;\n    this.fontVariationSettings = opts.fontVariationSettings;\n    this.lineHeight = opts.lineHeight | 0;\n    this.letterSpacing = opts.letterSpacing;\n  }\n  /**\n   * @internal\n   */\n  getId() {\n    return `${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`;\n  }\n  /**\n   * @internal\n   */\n  getMassagedFontFamily() {\n    const fallbackFontFamily = EDITOR_FONT_DEFAULTS.fontFamily;\n    const fontFamily = _BareFontInfo._wrapInQuotes(this.fontFamily);\n    if (fallbackFontFamily \u0026\u0026 this.fontFamily !== fallbackFontFamily) {\n      return `${fontFamily}, ${fallbackFontFamily}`;\n    }\n    return fontFamily;\n  }\n  static _wrapInQuotes(fontFamily) {\n    if (/[,\"']/.test(fontFamily)) {\n      return fontFamily;\n    }\n    if (/[+ ]/.test(fontFamily)) {\n      return `\"${fontFamily}\"`;\n    }\n    return fontFamily;\n  }\n};\nvar SERIALIZED_FONT_INFO_VERSION = 2;\nvar FontInfo = class extends BareFontInfo {\n  /**\n   * @internal\n   */\n  constructor(opts, isTrusted) {\n    super(opts);\n    this._editorStylingBrand = void 0;\n    this.version = SERIALIZED_FONT_INFO_VERSION;\n    this.isTrusted = isTrusted;\n    this.isMonospace = opts.isMonospace;\n    this.typicalHalfwidthCharacterWidth = opts.typicalHalfwidthCharacterWidth;\n    this.typicalFullwidthCharacterWidth = opts.typicalFullwidthCharacterWidth;\n    this.canUseHalfwidthRightwardsArrow = opts.canUseHalfwidthRightwardsArrow;\n    this.spaceWidth = opts.spaceWidth;\n    this.middotWidth = opts.middotWidth;\n    this.wsmiddotWidth = opts.wsmiddotWidth;\n    this.maxDigitWidth = opts.maxDigitWidth;\n  }\n  /**\n   * @internal\n   */\n  equals(other) {\n    return this.fontFamily === other.fontFamily \u0026\u0026 this.fontWeight === other.fontWeight \u0026\u0026 this.fontSize === other.fontSize \u0026\u0026 this.fontFeatureSettings === other.fontFeatureSettings \u0026\u0026 this.fontVariationSettings === other.fontVariationSettings \u0026\u0026 this.lineHeight === other.lineHeight \u0026\u0026 this.letterSpacing === other.letterSpacing \u0026\u0026 this.typicalHalfwidthCharacterWidth === other.typicalHalfwidthCharacterWidth \u0026\u0026 this.typicalFullwidthCharacterWidth === other.typicalFullwidthCharacterWidth \u0026\u0026 this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow \u0026\u0026 this.spaceWidth === other.spaceWidth \u0026\u0026 this.middotWidth === other.middotWidth \u0026\u0026 this.wsmiddotWidth === other.wsmiddotWidth \u0026\u0026 this.maxDigitWidth === other.maxDigitWidth;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/fontMeasurements.js\nvar FontMeasurementsImpl = class extends Disposable {\n  constructor() {\n    super(...arguments);\n    this._cache = /* @__PURE__ */ new Map();\n    this._evictUntrustedReadingsTimeout = -1;\n    this._onDidChange = this._register(new Emitter());\n    this.onDidChange = this._onDidChange.event;\n  }\n  dispose() {\n    if (this._evictUntrustedReadingsTimeout !== -1) {\n      clearTimeout(this._evictUntrustedReadingsTimeout);\n      this._evictUntrustedReadingsTimeout = -1;\n    }\n    super.dispose();\n  }\n  /**\n   * Clear all cached font information and trigger a change event.\n   */\n  clearAllFontInfos() {\n    this._cache.clear();\n    this._onDidChange.fire();\n  }\n  _ensureCache(targetWindow) {\n    const windowId = getWindowId(targetWindow);\n    let cache = this._cache.get(windowId);\n    if (!cache) {\n      cache = new FontMeasurementsCache();\n      this._cache.set(windowId, cache);\n    }\n    return cache;\n  }\n  _writeToCache(targetWindow, item, value) {\n    const cache = this._ensureCache(targetWindow);\n    cache.put(item, value);\n    if (!value.isTrusted \u0026\u0026 this._evictUntrustedReadingsTimeout === -1) {\n      this._evictUntrustedReadingsTimeout = targetWindow.setTimeout(() =\u003e {\n        this._evictUntrustedReadingsTimeout = -1;\n        this._evictUntrustedReadings(targetWindow);\n      }, 5e3);\n    }\n  }\n  _evictUntrustedReadings(targetWindow) {\n    const cache = this._ensureCache(targetWindow);\n    const values = cache.getValues();\n    let somethingRemoved = false;\n    for (const item of values) {\n      if (!item.isTrusted) {\n        somethingRemoved = true;\n        cache.remove(item);\n      }\n    }\n    if (somethingRemoved) {\n      this._onDidChange.fire();\n    }\n  }\n  /**\n   * Read font information.\n   */\n  readFontInfo(targetWindow, bareFontInfo) {\n    const cache = this._ensureCache(targetWindow);\n    if (!cache.has(bareFontInfo)) {\n      let readConfig = this._actualReadFontInfo(targetWindow, bareFontInfo);\n      if (readConfig.typicalHalfwidthCharacterWidth \u003c= 2 || readConfig.typicalFullwidthCharacterWidth \u003c= 2 || readConfig.spaceWidth \u003c= 2 || readConfig.maxDigitWidth \u003c= 2) {\n        readConfig = new FontInfo({\n          pixelRatio: PixelRatio.getInstance(targetWindow).value,\n          fontFamily: readConfig.fontFamily,\n          fontWeight: readConfig.fontWeight,\n          fontSize: readConfig.fontSize,\n          fontFeatureSettings: readConfig.fontFeatureSettings,\n          fontVariationSettings: readConfig.fontVariationSettings,\n          lineHeight: readConfig.lineHeight,\n          letterSpacing: readConfig.letterSpacing,\n          isMonospace: readConfig.isMonospace,\n          typicalHalfwidthCharacterWidth: Math.max(readConfig.typicalHalfwidthCharacterWidth, 5),\n          typicalFullwidthCharacterWidth: Math.max(readConfig.typicalFullwidthCharacterWidth, 5),\n          canUseHalfwidthRightwardsArrow: readConfig.canUseHalfwidthRightwardsArrow,\n          spaceWidth: Math.max(readConfig.spaceWidth, 5),\n          middotWidth: Math.max(readConfig.middotWidth, 5),\n          wsmiddotWidth: Math.max(readConfig.wsmiddotWidth, 5),\n          maxDigitWidth: Math.max(readConfig.maxDigitWidth, 5)\n        }, false);\n      }\n      this._writeToCache(targetWindow, bareFontInfo, readConfig);\n    }\n    return cache.get(bareFontInfo);\n  }\n  _createRequest(chr, type, all, monospace) {\n    const result = new CharWidthRequest(chr, type);\n    all.push(result);\n    monospace?.push(result);\n    return result;\n  }\n  _actualReadFontInfo(targetWindow, bareFontInfo) {\n    const all = [];\n    const monospace = [];\n    const typicalHalfwidthCharacter = this._createRequest(\"n\", 0, all, monospace);\n    const typicalFullwidthCharacter = this._createRequest(\"\\uFF4D\", 0, all, null);\n    const space = this._createRequest(\" \", 0, all, monospace);\n    const digit0 = this._createRequest(\"0\", 0, all, monospace);\n    const digit1 = this._createRequest(\"1\", 0, all, monospace);\n    const digit2 = this._createRequest(\"2\", 0, all, monospace);\n    const digit3 = this._createRequest(\"3\", 0, all, monospace);\n    const digit4 = this._createRequest(\"4\", 0, all, monospace);\n    const digit5 = this._createRequest(\"5\", 0, all, monospace);\n    const digit6 = this._createRequest(\"6\", 0, all, monospace);\n    const digit7 = this._createRequest(\"7\", 0, all, monospace);\n    const digit8 = this._createRequest(\"8\", 0, all, monospace);\n    const digit9 = this._createRequest(\"9\", 0, all, monospace);\n    const rightwardsArrow = this._createRequest(\"\\u2192\", 0, all, monospace);\n    const halfwidthRightwardsArrow = this._createRequest(\"\\uFFEB\", 0, all, null);\n    const middot = this._createRequest(\"\\xB7\", 0, all, monospace);\n    const wsmiddotWidth = this._createRequest(String.fromCharCode(11825), 0, all, null);\n    const monospaceTestChars = \"|/-_ilm%\";\n    for (let i2 = 0, len = monospaceTestChars.length; i2 \u003c len; i2++) {\n      this._createRequest(monospaceTestChars.charAt(i2), 0, all, monospace);\n      this._createRequest(monospaceTestChars.charAt(i2), 1, all, monospace);\n      this._createRequest(monospaceTestChars.charAt(i2), 2, all, monospace);\n    }\n    readCharWidths(targetWindow, bareFontInfo, all);\n    const maxDigitWidth = Math.max(digit0.width, digit1.width, digit2.width, digit3.width, digit4.width, digit5.width, digit6.width, digit7.width, digit8.width, digit9.width);\n    let isMonospace = bareFontInfo.fontFeatureSettings === EditorFontLigatures.OFF;\n    const referenceWidth = monospace[0].width;\n    for (let i2 = 1, len = monospace.length; isMonospace \u0026\u0026 i2 \u003c len; i2++) {\n      const diff = referenceWidth - monospace[i2].width;\n      if (diff \u003c -1e-3 || diff \u003e 1e-3) {\n        isMonospace = false;\n        break;\n      }\n    }\n    let canUseHalfwidthRightwardsArrow = true;\n    if (isMonospace \u0026\u0026 halfwidthRightwardsArrow.width !== referenceWidth) {\n      canUseHalfwidthRightwardsArrow = false;\n    }\n    if (halfwidthRightwardsArrow.width \u003e rightwardsArrow.width) {\n      canUseHalfwidthRightwardsArrow = false;\n    }\n    return new FontInfo({\n      pixelRatio: PixelRatio.getInstance(targetWindow).value,\n      fontFamily: bareFontInfo.fontFamily,\n      fontWeight: bareFontInfo.fontWeight,\n      fontSize: bareFontInfo.fontSize,\n      fontFeatureSettings: bareFontInfo.fontFeatureSettings,\n      fontVariationSettings: bareFontInfo.fontVariationSettings,\n      lineHeight: bareFontInfo.lineHeight,\n      letterSpacing: bareFontInfo.letterSpacing,\n      isMonospace,\n      typicalHalfwidthCharacterWidth: typicalHalfwidthCharacter.width,\n      typicalFullwidthCharacterWidth: typicalFullwidthCharacter.width,\n      canUseHalfwidthRightwardsArrow,\n      spaceWidth: space.width,\n      middotWidth: middot.width,\n      wsmiddotWidth: wsmiddotWidth.width,\n      maxDigitWidth\n    }, true);\n  }\n};\nvar FontMeasurementsCache = class {\n  constructor() {\n    this._keys = /* @__PURE__ */ Object.create(null);\n    this._values = /* @__PURE__ */ Object.create(null);\n  }\n  has(item) {\n    const itemId = item.getId();\n    return !!this._values[itemId];\n  }\n  get(item) {\n    const itemId = item.getId();\n    return this._values[itemId];\n  }\n  put(item, value) {\n    const itemId = item.getId();\n    this._keys[itemId] = item;\n    this._values[itemId] = value;\n  }\n  remove(item) {\n    const itemId = item.getId();\n    delete this._keys[itemId];\n    delete this._values[itemId];\n  }\n  getValues() {\n    return Object.keys(this._keys).map((id) =\u003e this._values[id]);\n  }\n};\nvar FontMeasurements = new FontMeasurementsImpl();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/migrateOptions.js\nvar EditorSettingMigration = class _EditorSettingMigration {\n  static {\n    this.items = [];\n  }\n  constructor(key, migrate) {\n    this.key = key;\n    this.migrate = migrate;\n  }\n  apply(options2) {\n    const value = _EditorSettingMigration._read(options2, this.key);\n    const read = (key) =\u003e _EditorSettingMigration._read(options2, key);\n    const write = (key, value2) =\u003e _EditorSettingMigration._write(options2, key, value2);\n    this.migrate(value, read, write);\n  }\n  static _read(source, key) {\n    if (typeof source === \"undefined\") {\n      return void 0;\n    }\n    const firstDotIndex = key.indexOf(\".\");\n    if (firstDotIndex \u003e= 0) {\n      const firstSegment = key.substring(0, firstDotIndex);\n      return this._read(source[firstSegment], key.substring(firstDotIndex + 1));\n    }\n    return source[key];\n  }\n  static _write(target, key, value) {\n    const firstDotIndex = key.indexOf(\".\");\n    if (firstDotIndex \u003e= 0) {\n      const firstSegment = key.substring(0, firstDotIndex);\n      target[firstSegment] = target[firstSegment] || {};\n      this._write(target[firstSegment], key.substring(firstDotIndex + 1), value);\n      return;\n    }\n    target[key] = value;\n  }\n};\nfunction registerEditorSettingMigration(key, migrate) {\n  EditorSettingMigration.items.push(new EditorSettingMigration(key, migrate));\n}\nfunction registerSimpleEditorSettingMigration(key, values) {\n  registerEditorSettingMigration(key, (value, read, write) =\u003e {\n    if (typeof value !== \"undefined\") {\n      for (const [oldValue, newValue] of values) {\n        if (value === oldValue) {\n          write(key, newValue);\n          return;\n        }\n      }\n    }\n  });\n}\nfunction migrateOptions(options2) {\n  EditorSettingMigration.items.forEach((migration) =\u003e migration.apply(options2));\n}\nregisterSimpleEditorSettingMigration(\"wordWrap\", [[true, \"on\"], [false, \"off\"]]);\nregisterSimpleEditorSettingMigration(\"lineNumbers\", [[true, \"on\"], [false, \"off\"]]);\nregisterSimpleEditorSettingMigration(\"cursorBlinking\", [[\"visible\", \"solid\"]]);\nregisterSimpleEditorSettingMigration(\"renderWhitespace\", [[true, \"boundary\"], [false, \"none\"]]);\nregisterSimpleEditorSettingMigration(\"renderLineHighlight\", [[true, \"line\"], [false, \"none\"]]);\nregisterSimpleEditorSettingMigration(\"acceptSuggestionOnEnter\", [[true, \"on\"], [false, \"off\"]]);\nregisterSimpleEditorSettingMigration(\"tabCompletion\", [[false, \"off\"], [true, \"onlySnippets\"]]);\nregisterSimpleEditorSettingMigration(\"hover\", [[true, { enabled: true }], [false, { enabled: false }]]);\nregisterSimpleEditorSettingMigration(\"parameterHints\", [[true, { enabled: true }], [false, { enabled: false }]]);\nregisterSimpleEditorSettingMigration(\"autoIndent\", [[false, \"advanced\"], [true, \"full\"]]);\nregisterSimpleEditorSettingMigration(\"matchBrackets\", [[true, \"always\"], [false, \"never\"]]);\nregisterSimpleEditorSettingMigration(\"renderFinalNewline\", [[true, \"on\"], [false, \"off\"]]);\nregisterSimpleEditorSettingMigration(\"cursorSmoothCaretAnimation\", [[true, \"on\"], [false, \"off\"]]);\nregisterSimpleEditorSettingMigration(\"occurrencesHighlight\", [[true, \"singleFile\"], [false, \"off\"]]);\nregisterSimpleEditorSettingMigration(\"wordBasedSuggestions\", [[true, \"matchingDocuments\"], [false, \"off\"]]);\nregisterSimpleEditorSettingMigration(\"defaultColorDecorators\", [[true, \"auto\"], [false, \"never\"]]);\nregisterSimpleEditorSettingMigration(\"minimap.autohide\", [[true, \"mouseover\"], [false, \"none\"]]);\nregisterEditorSettingMigration(\"autoClosingBrackets\", (value, read, write) =\u003e {\n  if (value === false) {\n    write(\"autoClosingBrackets\", \"never\");\n    if (typeof read(\"autoClosingQuotes\") === \"undefined\") {\n      write(\"autoClosingQuotes\", \"never\");\n    }\n    if (typeof read(\"autoSurround\") === \"undefined\") {\n      write(\"autoSurround\", \"never\");\n    }\n  }\n});\nregisterEditorSettingMigration(\"renderIndentGuides\", (value, read, write) =\u003e {\n  if (typeof value !== \"undefined\") {\n    write(\"renderIndentGuides\", void 0);\n    if (typeof read(\"guides.indentation\") === \"undefined\") {\n      write(\"guides.indentation\", !!value);\n    }\n  }\n});\nregisterEditorSettingMigration(\"highlightActiveIndentGuide\", (value, read, write) =\u003e {\n  if (typeof value !== \"undefined\") {\n    write(\"highlightActiveIndentGuide\", void 0);\n    if (typeof read(\"guides.highlightActiveIndentation\") === \"undefined\") {\n      write(\"guides.highlightActiveIndentation\", !!value);\n    }\n  }\n});\nvar suggestFilteredTypesMapping = {\n  method: \"showMethods\",\n  function: \"showFunctions\",\n  constructor: \"showConstructors\",\n  deprecated: \"showDeprecated\",\n  field: \"showFields\",\n  variable: \"showVariables\",\n  class: \"showClasses\",\n  struct: \"showStructs\",\n  interface: \"showInterfaces\",\n  module: \"showModules\",\n  property: \"showProperties\",\n  event: \"showEvents\",\n  operator: \"showOperators\",\n  unit: \"showUnits\",\n  value: \"showValues\",\n  constant: \"showConstants\",\n  enum: \"showEnums\",\n  enumMember: \"showEnumMembers\",\n  keyword: \"showKeywords\",\n  text: \"showWords\",\n  color: \"showColors\",\n  file: \"showFiles\",\n  reference: \"showReferences\",\n  folder: \"showFolders\",\n  typeParameter: \"showTypeParameters\",\n  snippet: \"showSnippets\"\n};\nregisterEditorSettingMigration(\"suggest.filteredTypes\", (value, read, write) =\u003e {\n  if (value \u0026\u0026 typeof value === \"object\") {\n    for (const entry of Object.entries(suggestFilteredTypesMapping)) {\n      const v = value[entry[0]];\n      if (v === false) {\n        if (typeof read(`suggest.${entry[1]}`) === \"undefined\") {\n          write(`suggest.${entry[1]}`, false);\n        }\n      }\n    }\n    write(\"suggest.filteredTypes\", void 0);\n  }\n});\nregisterEditorSettingMigration(\"quickSuggestions\", (input, read, write) =\u003e {\n  if (typeof input === \"boolean\") {\n    const value = input ? \"on\" : \"off\";\n    const newValue = { comments: value, strings: value, other: value };\n    write(\"quickSuggestions\", newValue);\n  }\n});\nregisterEditorSettingMigration(\"experimental.stickyScroll.enabled\", (value, read, write) =\u003e {\n  if (typeof value === \"boolean\") {\n    write(\"experimental.stickyScroll.enabled\", void 0);\n    if (typeof read(\"stickyScroll.enabled\") === \"undefined\") {\n      write(\"stickyScroll.enabled\", value);\n    }\n  }\n});\nregisterEditorSettingMigration(\"experimental.stickyScroll.maxLineCount\", (value, read, write) =\u003e {\n  if (typeof value === \"number\") {\n    write(\"experimental.stickyScroll.maxLineCount\", void 0);\n    if (typeof read(\"stickyScroll.maxLineCount\") === \"undefined\") {\n      write(\"stickyScroll.maxLineCount\", value);\n    }\n  }\n});\nregisterEditorSettingMigration(\"editor.experimentalEditContextEnabled\", (value, read, write) =\u003e {\n  if (typeof value === \"boolean\") {\n    write(\"editor.experimentalEditContextEnabled\", void 0);\n    if (typeof read(\"editor.editContext\") === \"undefined\") {\n      write(\"editor.editContext\", value);\n    }\n  }\n});\nregisterEditorSettingMigration(\"codeActionsOnSave\", (value, read, write) =\u003e {\n  if (value \u0026\u0026 typeof value === \"object\") {\n    let toBeModified = false;\n    const newValue = {};\n    for (const entry of Object.entries(value)) {\n      if (typeof entry[1] === \"boolean\") {\n        toBeModified = true;\n        newValue[entry[0]] = entry[1] ? \"explicit\" : \"never\";\n      } else {\n        newValue[entry[0]] = entry[1];\n      }\n    }\n    if (toBeModified) {\n      write(`codeActionsOnSave`, newValue);\n    }\n  }\n});\nregisterEditorSettingMigration(\"codeActionWidget.includeNearbyQuickfixes\", (value, read, write) =\u003e {\n  if (typeof value === \"boolean\") {\n    write(\"codeActionWidget.includeNearbyQuickfixes\", void 0);\n    if (typeof read(\"codeActionWidget.includeNearbyQuickFixes\") === \"undefined\") {\n      write(\"codeActionWidget.includeNearbyQuickFixes\", value);\n    }\n  }\n});\nregisterEditorSettingMigration(\"lightbulb.enabled\", (value, read, write) =\u003e {\n  if (typeof value === \"boolean\") {\n    write(\"lightbulb.enabled\", value ? void 0 : \"off\");\n  }\n});\nregisterEditorSettingMigration(\"inlineSuggest.edits.codeShifting\", (value, read, write) =\u003e {\n  if (typeof value === \"boolean\") {\n    write(\"inlineSuggest.edits.codeShifting\", void 0);\n    write(\"inlineSuggest.edits.allowCodeShifting\", value ? \"always\" : \"never\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/tabFocus.js\ninit_event();\nvar TabFocusImpl = class {\n  constructor() {\n    this._tabFocus = false;\n    this._onDidChangeTabFocus = new Emitter();\n    this.onDidChangeTabFocus = this._onDidChangeTabFocus.event;\n  }\n  getTabFocusMode() {\n    return this._tabFocus;\n  }\n  setTabFocusMode(tabFocusMode) {\n    this._tabFocus = tabFocusMode;\n    this._onDidChangeTabFocus.fire(this._tabFocus);\n  }\n};\nvar TabFocus = new TabFocusImpl();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/accessibility/common/accessibility.js\ninit_contextkey();\ninit_instantiation();\nvar IAccessibilityService = createDecorator(\"accessibilityService\");\nvar CONTEXT_ACCESSIBILITY_MODE_ENABLED = new RawContextKey(\"accessibilityModeEnabled\", false);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/config/editorConfiguration.js\ninit_dom();\nvar __decorate5 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param5 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar EditorConfiguration = class EditorConfiguration2 extends Disposable {\n  constructor(isSimpleWidget, contextMenuId, options2, container, _accessibilityService) {\n    super();\n    this._accessibilityService = _accessibilityService;\n    this._onDidChange = this._register(new Emitter());\n    this.onDidChange = this._onDidChange.event;\n    this._onDidChangeFast = this._register(new Emitter());\n    this.onDidChangeFast = this._onDidChangeFast.event;\n    this._isDominatedByLongLines = false;\n    this._viewLineCount = 1;\n    this._lineNumbersDigitCount = 1;\n    this._reservedHeight = 0;\n    this._glyphMarginDecorationLaneCount = 1;\n    this._computeOptionsMemory = new ComputeOptionsMemory();\n    this.isSimpleWidget = isSimpleWidget;\n    this.contextMenuId = contextMenuId;\n    this._containerObserver = this._register(new ElementSizeObserver(container, options2.dimension));\n    this._targetWindowId = getWindow(container).vscodeWindowId;\n    this._rawOptions = deepCloneAndMigrateOptions(options2);\n    this._validatedOptions = EditorOptionsUtil.validateOptions(this._rawOptions);\n    this.options = this._computeOptions();\n    if (this.options.get(\n      19\n      /* EditorOption.automaticLayout */\n    )) {\n      this._containerObserver.startObserving();\n    }\n    this._register(EditorZoom.onDidChangeZoomLevel(() =\u003e this._recomputeOptions()));\n    this._register(TabFocus.onDidChangeTabFocus(() =\u003e this._recomputeOptions()));\n    this._register(this._containerObserver.onDidChange(() =\u003e this._recomputeOptions()));\n    this._register(FontMeasurements.onDidChange(() =\u003e this._recomputeOptions()));\n    this._register(PixelRatio.getInstance(getWindow(container)).onDidChange(() =\u003e this._recomputeOptions()));\n    this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(() =\u003e this._recomputeOptions()));\n    this._register(InputMode.onDidChangeInputMode(() =\u003e this._recomputeOptions()));\n  }\n  _recomputeOptions() {\n    const newOptions = this._computeOptions();\n    const changeEvent = EditorOptionsUtil.checkEquals(this.options, newOptions);\n    if (changeEvent === null) {\n      return;\n    }\n    this.options = newOptions;\n    this._onDidChangeFast.fire(changeEvent);\n    this._onDidChange.fire(changeEvent);\n  }\n  _computeOptions() {\n    const partialEnv = this._readEnvConfiguration();\n    const bareFontInfo = BareFontInfo.createFromValidatedSettings(this._validatedOptions, partialEnv.pixelRatio, this.isSimpleWidget);\n    const fontInfo = this._readFontInfo(bareFontInfo);\n    const env2 = {\n      memory: this._computeOptionsMemory,\n      outerWidth: partialEnv.outerWidth,\n      outerHeight: partialEnv.outerHeight - this._reservedHeight,\n      fontInfo,\n      extraEditorClassName: partialEnv.extraEditorClassName,\n      isDominatedByLongLines: this._isDominatedByLongLines,\n      viewLineCount: this._viewLineCount,\n      lineNumbersDigitCount: this._lineNumbersDigitCount,\n      emptySelectionClipboard: partialEnv.emptySelectionClipboard,\n      pixelRatio: partialEnv.pixelRatio,\n      tabFocusMode: this._validatedOptions.get(\n        163\n        /* EditorOption.tabFocusMode */\n      ) || TabFocus.getTabFocusMode(),\n      inputMode: InputMode.getInputMode(),\n      accessibilitySupport: partialEnv.accessibilitySupport,\n      glyphMarginDecorationLaneCount: this._glyphMarginDecorationLaneCount,\n      editContextSupported: partialEnv.editContextSupported\n    };\n    return EditorOptionsUtil.computeOptions(this._validatedOptions, env2);\n  }\n  _readEnvConfiguration() {\n    return {\n      extraEditorClassName: getExtraEditorClassName(),\n      outerWidth: this._containerObserver.getWidth(),\n      outerHeight: this._containerObserver.getHeight(),\n      emptySelectionClipboard: isWebKit || isFirefox,\n      pixelRatio: PixelRatio.getInstance(getWindowById(this._targetWindowId, true).window).value,\n      editContextSupported: typeof globalThis.EditContext === \"function\",\n      accessibilitySupport: this._accessibilityService.isScreenReaderOptimized() ? 2 : this._accessibilityService.getAccessibilitySupport()\n    };\n  }\n  _readFontInfo(bareFontInfo) {\n    return FontMeasurements.readFontInfo(getWindowById(this._targetWindowId, true).window, bareFontInfo);\n  }\n  getRawOptions() {\n    return this._rawOptions;\n  }\n  updateOptions(_newOptions) {\n    const newOptions = deepCloneAndMigrateOptions(_newOptions);\n    const didChange = EditorOptionsUtil.applyUpdate(this._rawOptions, newOptions);\n    if (!didChange) {\n      return;\n    }\n    this._validatedOptions = EditorOptionsUtil.validateOptions(this._rawOptions);\n    this._recomputeOptions();\n  }\n  observeContainer(dimension) {\n    this._containerObserver.observe(dimension);\n  }\n  setIsDominatedByLongLines(isDominatedByLongLines) {\n    if (this._isDominatedByLongLines === isDominatedByLongLines) {\n      return;\n    }\n    this._isDominatedByLongLines = isDominatedByLongLines;\n    this._recomputeOptions();\n  }\n  setModelLineCount(modelLineCount) {\n    const lineNumbersDigitCount = digitCount(modelLineCount);\n    if (this._lineNumbersDigitCount === lineNumbersDigitCount) {\n      return;\n    }\n    this._lineNumbersDigitCount = lineNumbersDigitCount;\n    this._recomputeOptions();\n  }\n  setViewLineCount(viewLineCount) {\n    if (this._viewLineCount === viewLineCount) {\n      return;\n    }\n    this._viewLineCount = viewLineCount;\n    this._recomputeOptions();\n  }\n  setReservedHeight(reservedHeight) {\n    if (this._reservedHeight === reservedHeight) {\n      return;\n    }\n    this._reservedHeight = reservedHeight;\n    this._recomputeOptions();\n  }\n  setGlyphMarginDecorationLaneCount(decorationLaneCount) {\n    if (this._glyphMarginDecorationLaneCount === decorationLaneCount) {\n      return;\n    }\n    this._glyphMarginDecorationLaneCount = decorationLaneCount;\n    this._recomputeOptions();\n  }\n};\nEditorConfiguration = __decorate5([\n  __param5(4, IAccessibilityService)\n], EditorConfiguration);\nfunction digitCount(n2) {\n  let r = 0;\n  while (n2) {\n    n2 = Math.floor(n2 / 10);\n    r++;\n  }\n  return r ? r : 1;\n}\nfunction getExtraEditorClassName() {\n  let extra = \"\";\n  if (isSafari || isWebkitWebView) {\n    extra += \"no-minimap-shadow \";\n    extra += \"enable-user-select \";\n  } else {\n    extra += \"no-user-select \";\n  }\n  if (isMacintosh) {\n    extra += \"mac \";\n  }\n  return extra;\n}\nvar ValidatedEditorOptions = class {\n  constructor() {\n    this._values = [];\n  }\n  _read(option2) {\n    return this._values[option2];\n  }\n  get(id) {\n    return this._values[id];\n  }\n  _write(option2, value) {\n    this._values[option2] = value;\n  }\n};\nvar ComputedEditorOptions = class {\n  constructor() {\n    this._values = [];\n  }\n  _read(id) {\n    if (id \u003e= this._values.length) {\n      throw new Error(\"Cannot read uninitialized value\");\n    }\n    return this._values[id];\n  }\n  get(id) {\n    return this._read(id);\n  }\n  _write(id, value) {\n    this._values[id] = value;\n  }\n};\nvar EditorOptionsUtil = class _EditorOptionsUtil {\n  static validateOptions(options2) {\n    const result = new ValidatedEditorOptions();\n    for (const editorOption of editorOptionsRegistry) {\n      const value = editorOption.name === \"_never_\" ? void 0 : options2[editorOption.name];\n      result._write(editorOption.id, editorOption.validate(value));\n    }\n    return result;\n  }\n  static computeOptions(options2, env2) {\n    const result = new ComputedEditorOptions();\n    for (const editorOption of editorOptionsRegistry) {\n      result._write(editorOption.id, editorOption.compute(env2, result, options2._read(editorOption.id)));\n    }\n    return result;\n  }\n  static _deepEquals(a, b) {\n    if (typeof a !== \"object\" || typeof b !== \"object\" || !a || !b) {\n      return a === b;\n    }\n    if (Array.isArray(a) || Array.isArray(b)) {\n      return Array.isArray(a) \u0026\u0026 Array.isArray(b) ? equals(a, b) : false;\n    }\n    if (Object.keys(a).length !== Object.keys(b).length) {\n      return false;\n    }\n    for (const key in a) {\n      if (!_EditorOptionsUtil._deepEquals(a[key], b[key])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  static checkEquals(a, b) {\n    const result = [];\n    let somethingChanged = false;\n    for (const editorOption of editorOptionsRegistry) {\n      const changed = !_EditorOptionsUtil._deepEquals(a._read(editorOption.id), b._read(editorOption.id));\n      result[editorOption.id] = changed;\n      if (changed) {\n        somethingChanged = true;\n      }\n    }\n    return somethingChanged ? new ConfigurationChangedEvent(result) : null;\n  }\n  /**\n   * Returns true if something changed.\n   * Modifies `options`.\n  */\n  static applyUpdate(options2, update) {\n    let changed = false;\n    for (const editorOption of editorOptionsRegistry) {\n      if (update.hasOwnProperty(editorOption.name)) {\n        const result = editorOption.applyUpdate(options2[editorOption.name], update[editorOption.name]);\n        options2[editorOption.name] = result.newValue;\n        changed = changed || result.didChange;\n      }\n    }\n    return changed;\n  }\n};\nfunction deepCloneAndMigrateOptions(_options) {\n  const options2 = deepClone(_options);\n  migrateOptions(options2);\n  return options2;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js\ninit_editorExtensions();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/performance.js\nvar inputLatency;\n(function(inputLatency2) {\n  const totalKeydownTime = { total: 0, min: Number.MAX_VALUE, max: 0 };\n  const totalInputTime = { ...totalKeydownTime };\n  const totalRenderTime = { ...totalKeydownTime };\n  const totalInputLatencyTime = { ...totalKeydownTime };\n  let measurementsCount = 0;\n  const state = {\n    keydown: 0,\n    input: 0,\n    render: 0\n  };\n  function onKeyDown() {\n    recordIfFinished();\n    performance.mark(\"inputlatency/start\");\n    performance.mark(\"keydown/start\");\n    state.keydown = 1;\n    queueMicrotask(markKeyDownEnd);\n  }\n  inputLatency2.onKeyDown = onKeyDown;\n  function markKeyDownEnd() {\n    if (state.keydown === 1) {\n      performance.mark(\"keydown/end\");\n      state.keydown = 2;\n    }\n  }\n  function onBeforeInput() {\n    performance.mark(\"input/start\");\n    state.input = 1;\n    scheduleRecordIfFinishedTask();\n  }\n  inputLatency2.onBeforeInput = onBeforeInput;\n  function onInput() {\n    if (state.input === 0) {\n      onBeforeInput();\n    }\n    queueMicrotask(markInputEnd);\n  }\n  inputLatency2.onInput = onInput;\n  function markInputEnd() {\n    if (state.input === 1) {\n      performance.mark(\"input/end\");\n      state.input = 2;\n    }\n  }\n  function onKeyUp() {\n    recordIfFinished();\n  }\n  inputLatency2.onKeyUp = onKeyUp;\n  function onSelectionChange() {\n    recordIfFinished();\n  }\n  inputLatency2.onSelectionChange = onSelectionChange;\n  function onRenderStart() {\n    if (state.keydown === 2 \u0026\u0026 state.input === 2 \u0026\u0026 state.render === 0) {\n      performance.mark(\"render/start\");\n      state.render = 1;\n      queueMicrotask(markRenderEnd);\n      scheduleRecordIfFinishedTask();\n    }\n  }\n  inputLatency2.onRenderStart = onRenderStart;\n  function markRenderEnd() {\n    if (state.render === 1) {\n      performance.mark(\"render/end\");\n      state.render = 2;\n    }\n  }\n  function scheduleRecordIfFinishedTask() {\n    setTimeout(recordIfFinished);\n  }\n  function recordIfFinished() {\n    if (state.keydown === 2 \u0026\u0026 state.input === 2 \u0026\u0026 state.render === 2) {\n      performance.mark(\"inputlatency/end\");\n      performance.measure(\"keydown\", \"keydown/start\", \"keydown/end\");\n      performance.measure(\"input\", \"input/start\", \"input/end\");\n      performance.measure(\"render\", \"render/start\", \"render/end\");\n      performance.measure(\"inputlatency\", \"inputlatency/start\", \"inputlatency/end\");\n      addMeasure(\"keydown\", totalKeydownTime);\n      addMeasure(\"input\", totalInputTime);\n      addMeasure(\"render\", totalRenderTime);\n      addMeasure(\"inputlatency\", totalInputLatencyTime);\n      measurementsCount++;\n      reset2();\n    }\n  }\n  function addMeasure(entryName, cumulativeMeasurement) {\n    const duration = performance.getEntriesByName(entryName)[0].duration;\n    cumulativeMeasurement.total += duration;\n    cumulativeMeasurement.min = Math.min(cumulativeMeasurement.min, duration);\n    cumulativeMeasurement.max = Math.max(cumulativeMeasurement.max, duration);\n  }\n  function reset2() {\n    performance.clearMarks(\"keydown/start\");\n    performance.clearMarks(\"keydown/end\");\n    performance.clearMarks(\"input/start\");\n    performance.clearMarks(\"input/end\");\n    performance.clearMarks(\"render/start\");\n    performance.clearMarks(\"render/end\");\n    performance.clearMarks(\"inputlatency/start\");\n    performance.clearMarks(\"inputlatency/end\");\n    performance.clearMeasures(\"keydown\");\n    performance.clearMeasures(\"input\");\n    performance.clearMeasures(\"render\");\n    performance.clearMeasures(\"inputlatency\");\n    state.keydown = 0;\n    state.input = 0;\n    state.render = 0;\n  }\n  function getAndClearMeasurements() {\n    if (measurementsCount === 0) {\n      return void 0;\n    }\n    const result = {\n      keydown: cumulativeToFinalMeasurement(totalKeydownTime),\n      input: cumulativeToFinalMeasurement(totalInputTime),\n      render: cumulativeToFinalMeasurement(totalRenderTime),\n      total: cumulativeToFinalMeasurement(totalInputLatencyTime),\n      sampleCount: measurementsCount\n    };\n    clearCumulativeMeasurement(totalKeydownTime);\n    clearCumulativeMeasurement(totalInputTime);\n    clearCumulativeMeasurement(totalRenderTime);\n    clearCumulativeMeasurement(totalInputLatencyTime);\n    measurementsCount = 0;\n    return result;\n  }\n  inputLatency2.getAndClearMeasurements = getAndClearMeasurements;\n  function cumulativeToFinalMeasurement(cumulative) {\n    return {\n      average: cumulative.total / measurementsCount,\n      max: cumulative.max,\n      min: cumulative.min\n    };\n  }\n  function clearCumulativeMeasurement(cumulative) {\n    cumulative.total = 0;\n    cumulative.min = Number.MAX_VALUE;\n    cumulative.max = 0;\n  }\n})(inputLatency || (inputLatency = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view.js\ninit_errors();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/editorDom.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/domStylesheets.js\ninit_lifecycle();\ninit_observable();\ninit_dom();\ninit_window();\nvar globalStylesheets = /* @__PURE__ */ new Map();\nfunction createStyleSheet2() {\n  return new WrappedStyleElement();\n}\nvar WrappedStyleElement = class {\n  constructor() {\n    this._currentCssStyle = \"\";\n    this._styleSheet = void 0;\n  }\n  setStyle(cssStyle) {\n    if (cssStyle === this._currentCssStyle) {\n      return;\n    }\n    this._currentCssStyle = cssStyle;\n    if (!this._styleSheet) {\n      this._styleSheet = createStyleSheet(mainWindow.document.head, (s) =\u003e s.textContent = cssStyle);\n    } else {\n      this._styleSheet.textContent = cssStyle;\n    }\n  }\n  dispose() {\n    if (this._styleSheet) {\n      this._styleSheet.remove();\n      this._styleSheet = void 0;\n    }\n  }\n};\nfunction createStyleSheet(container = mainWindow.document.head, beforeAppend, disposableStore) {\n  const style = document.createElement(\"style\");\n  style.type = \"text/css\";\n  style.media = \"screen\";\n  beforeAppend?.(style);\n  container.appendChild(style);\n  if (disposableStore) {\n    disposableStore.add(toDisposable(() =\u003e style.remove()));\n  }\n  if (container === mainWindow.document.head) {\n    const globalStylesheetClones = /* @__PURE__ */ new Set();\n    globalStylesheets.set(style, globalStylesheetClones);\n    for (const { window: targetWindow, disposables } of getWindows()) {\n      if (targetWindow === mainWindow) {\n        continue;\n      }\n      const cloneDisposable = disposables.add(cloneGlobalStyleSheet(style, globalStylesheetClones, targetWindow));\n      disposableStore?.add(cloneDisposable);\n    }\n  }\n  return style;\n}\nfunction cloneGlobalStyleSheet(globalStylesheet, globalStylesheetClones, targetWindow) {\n  const disposables = new DisposableStore();\n  const clone2 = globalStylesheet.cloneNode(true);\n  targetWindow.document.head.appendChild(clone2);\n  disposables.add(toDisposable(() =\u003e clone2.remove()));\n  for (const rule of getDynamicStyleSheetRules(globalStylesheet)) {\n    clone2.sheet?.insertRule(rule.cssText, clone2.sheet?.cssRules.length);\n  }\n  disposables.add(sharedMutationObserver.observe(globalStylesheet, disposables, { childList: true })(() =\u003e {\n    clone2.textContent = globalStylesheet.textContent;\n  }));\n  globalStylesheetClones.add(clone2);\n  disposables.add(toDisposable(() =\u003e globalStylesheetClones.delete(clone2)));\n  return disposables;\n}\nvar _sharedStyleSheet = null;\nfunction getSharedStyleSheet() {\n  if (!_sharedStyleSheet) {\n    _sharedStyleSheet = createStyleSheet();\n  }\n  return _sharedStyleSheet;\n}\nfunction getDynamicStyleSheetRules(style) {\n  if (style?.sheet?.rules) {\n    return style.sheet.rules;\n  }\n  if (style?.sheet?.cssRules) {\n    return style.sheet.cssRules;\n  }\n  return [];\n}\nfunction createCSSRule(selector, cssText, style = getSharedStyleSheet()) {\n  if (!style || !cssText) {\n    return;\n  }\n  style.sheet?.insertRule(`${selector} {${cssText}}`, 0);\n  for (const clonedGlobalStylesheet of globalStylesheets.get(style) ?? []) {\n    createCSSRule(selector, cssText, clonedGlobalStylesheet);\n  }\n}\nfunction removeCSSRulesContainingSelector(ruleName, style = getSharedStyleSheet()) {\n  if (!style) {\n    return;\n  }\n  const rules = getDynamicStyleSheetRules(style);\n  const toDelete = [];\n  for (let i2 = 0; i2 \u003c rules.length; i2++) {\n    const rule = rules[i2];\n    if (isCSSStyleRule(rule) \u0026\u0026 rule.selectorText.indexOf(ruleName) !== -1) {\n      toDelete.push(i2);\n    }\n  }\n  for (let i2 = toDelete.length - 1; i2 \u003e= 0; i2--) {\n    style.sheet?.deleteRule(toDelete[i2]);\n  }\n  for (const clonedGlobalStylesheet of globalStylesheets.get(style) ?? []) {\n    removeCSSRulesContainingSelector(ruleName, clonedGlobalStylesheet);\n  }\n}\nfunction isCSSStyleRule(rule) {\n  return typeof rule.selectorText === \"string\";\n}\nfunction createStyleSheetFromObservable(css) {\n  const store = new DisposableStore();\n  const w = store.add(createStyleSheet2());\n  store.add(autorun((reader) =\u003e {\n    w.setStyle(css.read(reader));\n  }));\n  return store;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/globalPointerMoveMonitor.js\ninit_dom();\ninit_lifecycle();\nvar GlobalPointerMoveMonitor = class {\n  constructor() {\n    this._hooks = new DisposableStore();\n    this._pointerMoveCallback = null;\n    this._onStopCallback = null;\n  }\n  dispose() {\n    this.stopMonitoring(false);\n    this._hooks.dispose();\n  }\n  stopMonitoring(invokeStopCallback, browserEvent) {\n    if (!this.isMonitoring()) {\n      return;\n    }\n    this._hooks.clear();\n    this._pointerMoveCallback = null;\n    const onStopCallback = this._onStopCallback;\n    this._onStopCallback = null;\n    if (invokeStopCallback \u0026\u0026 onStopCallback) {\n      onStopCallback(browserEvent);\n    }\n  }\n  isMonitoring() {\n    return !!this._pointerMoveCallback;\n  }\n  startMonitoring(initialElement, pointerId, initialButtons, pointerMoveCallback, onStopCallback) {\n    if (this.isMonitoring()) {\n      this.stopMonitoring(false);\n    }\n    this._pointerMoveCallback = pointerMoveCallback;\n    this._onStopCallback = onStopCallback;\n    let eventSource = initialElement;\n    try {\n      initialElement.setPointerCapture(pointerId);\n      this._hooks.add(toDisposable(() =\u003e {\n        try {\n          initialElement.releasePointerCapture(pointerId);\n        } catch (err) {\n        }\n      }));\n    } catch (err) {\n      eventSource = getWindow(initialElement);\n    }\n    this._hooks.add(addDisposableListener(eventSource, EventType.POINTER_MOVE, (e) =\u003e {\n      if (e.buttons !== initialButtons) {\n        this.stopMonitoring(true);\n        return;\n      }\n      e.preventDefault();\n      this._pointerMoveCallback(e);\n    }));\n    this._hooks.add(addDisposableListener(eventSource, EventType.POINTER_UP, (e) =\u003e this.stopMonitoring(true)));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/editorDom.js\ninit_mouseEvent();\ninit_async();\ninit_lifecycle();\ninit_colorRegistry();\nvar PageCoordinates = class {\n  constructor(x, y) {\n    this.x = x;\n    this.y = y;\n    this._pageCoordinatesBrand = void 0;\n  }\n  toClientCoordinates(targetWindow) {\n    return new ClientCoordinates(this.x - targetWindow.scrollX, this.y - targetWindow.scrollY);\n  }\n};\nvar ClientCoordinates = class {\n  constructor(clientX, clientY) {\n    this.clientX = clientX;\n    this.clientY = clientY;\n    this._clientCoordinatesBrand = void 0;\n  }\n  toPageCoordinates(targetWindow) {\n    return new PageCoordinates(this.clientX + targetWindow.scrollX, this.clientY + targetWindow.scrollY);\n  }\n};\nvar EditorPagePosition = class {\n  constructor(x, y, width2, height) {\n    this.x = x;\n    this.y = y;\n    this.width = width2;\n    this.height = height;\n    this._editorPagePositionBrand = void 0;\n  }\n};\nvar CoordinatesRelativeToEditor = class {\n  constructor(x, y) {\n    this.x = x;\n    this.y = y;\n    this._positionRelativeToEditorBrand = void 0;\n  }\n};\nfunction createEditorPagePosition(editorViewDomNode) {\n  const editorPos = getDomNodePagePosition(editorViewDomNode);\n  return new EditorPagePosition(editorPos.left, editorPos.top, editorPos.width, editorPos.height);\n}\nfunction createCoordinatesRelativeToEditor(editorViewDomNode, editorPagePosition, pos) {\n  const scaleX = editorPagePosition.width / editorViewDomNode.offsetWidth;\n  const scaleY = editorPagePosition.height / editorViewDomNode.offsetHeight;\n  const relativeX = (pos.x - editorPagePosition.x) / scaleX;\n  const relativeY = (pos.y - editorPagePosition.y) / scaleY;\n  return new CoordinatesRelativeToEditor(relativeX, relativeY);\n}\nvar EditorMouseEvent = class extends StandardMouseEvent {\n  constructor(e, isFromPointerCapture, editorViewDomNode) {\n    super(getWindow(editorViewDomNode), e);\n    this._editorMouseEventBrand = void 0;\n    this.isFromPointerCapture = isFromPointerCapture;\n    this.pos = new PageCoordinates(this.posx, this.posy);\n    this.editorPos = createEditorPagePosition(editorViewDomNode);\n    this.relativePos = createCoordinatesRelativeToEditor(editorViewDomNode, this.editorPos, this.pos);\n  }\n};\nvar EditorMouseEventFactory = class {\n  constructor(editorViewDomNode) {\n    this._editorViewDomNode = editorViewDomNode;\n  }\n  _create(e) {\n    return new EditorMouseEvent(e, false, this._editorViewDomNode);\n  }\n  onContextMenu(target, callback) {\n    return addDisposableListener(target, EventType.CONTEXT_MENU, (e) =\u003e {\n      callback(this._create(e));\n    });\n  }\n  onMouseUp(target, callback) {\n    return addDisposableListener(target, EventType.MOUSE_UP, (e) =\u003e {\n      callback(this._create(e));\n    });\n  }\n  onMouseDown(target, callback) {\n    return addDisposableListener(target, EventType.MOUSE_DOWN, (e) =\u003e {\n      callback(this._create(e));\n    });\n  }\n  onPointerDown(target, callback) {\n    return addDisposableListener(target, EventType.POINTER_DOWN, (e) =\u003e {\n      callback(this._create(e), e.pointerId);\n    });\n  }\n  onMouseLeave(target, callback) {\n    return addDisposableListener(target, EventType.MOUSE_LEAVE, (e) =\u003e {\n      callback(this._create(e));\n    });\n  }\n  onMouseMove(target, callback) {\n    return addDisposableListener(target, EventType.MOUSE_MOVE, (e) =\u003e callback(this._create(e)));\n  }\n};\nvar EditorPointerEventFactory = class {\n  constructor(editorViewDomNode) {\n    this._editorViewDomNode = editorViewDomNode;\n  }\n  _create(e) {\n    return new EditorMouseEvent(e, false, this._editorViewDomNode);\n  }\n  onPointerUp(target, callback) {\n    return addDisposableListener(target, \"pointerup\", (e) =\u003e {\n      callback(this._create(e));\n    });\n  }\n  onPointerDown(target, callback) {\n    return addDisposableListener(target, EventType.POINTER_DOWN, (e) =\u003e {\n      callback(this._create(e), e.pointerId);\n    });\n  }\n  onPointerLeave(target, callback) {\n    return addDisposableListener(target, EventType.POINTER_LEAVE, (e) =\u003e {\n      callback(this._create(e));\n    });\n  }\n  onPointerMove(target, callback) {\n    return addDisposableListener(target, \"pointermove\", (e) =\u003e callback(this._create(e)));\n  }\n};\nvar GlobalEditorPointerMoveMonitor = class extends Disposable {\n  constructor(editorViewDomNode) {\n    super();\n    this._editorViewDomNode = editorViewDomNode;\n    this._globalPointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n    this._keydownListener = null;\n  }\n  startMonitoring(initialElement, pointerId, initialButtons, pointerMoveCallback, onStopCallback) {\n    this._keydownListener = addStandardDisposableListener(initialElement.ownerDocument, \"keydown\", (e) =\u003e {\n      const chord = e.toKeyCodeChord();\n      if (chord.isModifierKey()) {\n        return;\n      }\n      this._globalPointerMoveMonitor.stopMonitoring(true, e.browserEvent);\n    }, true);\n    this._globalPointerMoveMonitor.startMonitoring(initialElement, pointerId, initialButtons, (e) =\u003e {\n      pointerMoveCallback(new EditorMouseEvent(e, true, this._editorViewDomNode));\n    }, (e) =\u003e {\n      this._keydownListener.dispose();\n      onStopCallback(e);\n    });\n  }\n  stopMonitoring() {\n    this._globalPointerMoveMonitor.stopMonitoring(true);\n  }\n};\nvar DynamicCssRules = class _DynamicCssRules {\n  static {\n    this._idPool = 0;\n  }\n  constructor(_editor) {\n    this._editor = _editor;\n    this._instanceId = ++_DynamicCssRules._idPool;\n    this._counter = 0;\n    this._rules = new DisposableMap();\n    this._garbageCollectionScheduler = new RunOnceScheduler(() =\u003e this.garbageCollect(), 1e3);\n  }\n  dispose() {\n    this._rules.dispose();\n    this._garbageCollectionScheduler.dispose();\n  }\n  createClassNameRef(options2) {\n    const rule = this.getOrCreateRule(options2);\n    rule.increaseRefCount();\n    return {\n      className: rule.className,\n      dispose: () =\u003e {\n        rule.decreaseRefCount();\n        this._garbageCollectionScheduler.schedule();\n      }\n    };\n  }\n  getOrCreateRule(properties) {\n    const key = this.computeUniqueKey(properties);\n    let existingRule = this._rules.get(key);\n    if (!existingRule) {\n      const counter = this._counter++;\n      existingRule = new RefCountedCssRule(key, `dyn-rule-${this._instanceId}-${counter}`, isInShadowDOM(this._editor.getContainerDomNode()) ? this._editor.getContainerDomNode() : void 0, properties);\n      this._rules.set(key, existingRule);\n    }\n    return existingRule;\n  }\n  computeUniqueKey(properties) {\n    return JSON.stringify(properties);\n  }\n  garbageCollect() {\n    for (const rule of this._rules.values()) {\n      if (!rule.hasReferences()) {\n        this._rules.deleteAndDispose(rule.key);\n      }\n    }\n  }\n};\nvar RefCountedCssRule = class {\n  constructor(key, className2, _containerElement, properties) {\n    this.key = key;\n    this.className = className2;\n    this.properties = properties;\n    this._referenceCount = 0;\n    this._styleElementDisposables = new DisposableStore();\n    this._styleElement = createStyleSheet(_containerElement, void 0, this._styleElementDisposables);\n    this._styleElement.textContent = this.getCssText(this.className, this.properties);\n  }\n  getCssText(className2, properties) {\n    let str = `.${className2} {`;\n    for (const prop in properties) {\n      const value = properties[prop];\n      let cssValue;\n      if (typeof value === \"object\") {\n        cssValue = asCssVariable(value.id);\n      } else {\n        cssValue = value;\n      }\n      const cssPropName = camelToDashes(prop);\n      str += `\n\t${cssPropName}: ${cssValue};`;\n    }\n    str += `\n}`;\n    return str;\n  }\n  dispose() {\n    this._styleElementDisposables.dispose();\n    this._styleElement = void 0;\n  }\n  increaseRefCount() {\n    this._referenceCount++;\n  }\n  decreaseRefCount() {\n    this._referenceCount--;\n  }\n  hasReferences() {\n    return this._referenceCount \u003e 0;\n  }\n};\nfunction camelToDashes(str) {\n  return str.replace(/(^[A-Z])/, ([first2]) =\u003e first2.toLowerCase()).replace(/([A-Z])/g, ([letter]) =\u003e `-${letter.toLowerCase()}`);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewEventHandler.js\ninit_lifecycle();\nvar ViewEventHandler = class extends Disposable {\n  constructor() {\n    super();\n    this._shouldRender = true;\n  }\n  shouldRender() {\n    return this._shouldRender;\n  }\n  forceShouldRender() {\n    this._shouldRender = true;\n  }\n  setShouldRender() {\n    this._shouldRender = true;\n  }\n  onDidRender() {\n    this._shouldRender = false;\n  }\n  // --- begin event handlers\n  onCompositionStart(e) {\n    return false;\n  }\n  onCompositionEnd(e) {\n    return false;\n  }\n  onConfigurationChanged(e) {\n    return false;\n  }\n  onCursorStateChanged(e) {\n    return false;\n  }\n  onDecorationsChanged(e) {\n    return false;\n  }\n  onFlushed(e) {\n    return false;\n  }\n  onFocusChanged(e) {\n    return false;\n  }\n  onLanguageConfigurationChanged(e) {\n    return false;\n  }\n  onLineMappingChanged(e) {\n    return false;\n  }\n  onLinesChanged(e) {\n    return false;\n  }\n  onLinesDeleted(e) {\n    return false;\n  }\n  onLinesInserted(e) {\n    return false;\n  }\n  onRevealRangeRequest(e) {\n    return false;\n  }\n  onScrollChanged(e) {\n    return false;\n  }\n  onThemeChanged(e) {\n    return false;\n  }\n  onTokensChanged(e) {\n    return false;\n  }\n  onTokensColorsChanged(e) {\n    return false;\n  }\n  onZonesChanged(e) {\n    return false;\n  }\n  // --- end event handlers\n  handleEvents(events) {\n    let shouldRender = false;\n    for (let i2 = 0, len = events.length; i2 \u003c len; i2++) {\n      const e = events[i2];\n      switch (e.type) {\n        case 0:\n          if (this.onCompositionStart(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 1:\n          if (this.onCompositionEnd(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 2:\n          if (this.onConfigurationChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 3:\n          if (this.onCursorStateChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 4:\n          if (this.onDecorationsChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 5:\n          if (this.onFlushed(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 6:\n          if (this.onFocusChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 7:\n          if (this.onLanguageConfigurationChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 8:\n          if (this.onLineMappingChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 9:\n          if (this.onLinesChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 10:\n          if (this.onLinesDeleted(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 11:\n          if (this.onLinesInserted(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 12:\n          if (this.onRevealRangeRequest(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 13:\n          if (this.onScrollChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 15:\n          if (this.onTokensChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 14:\n          if (this.onThemeChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 16:\n          if (this.onTokensColorsChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        case 17:\n          if (this.onZonesChanged(e)) {\n            shouldRender = true;\n          }\n          break;\n        default:\n          console.info(\"View received unknown event: \");\n          console.info(e);\n      }\n    }\n    if (shouldRender) {\n      this._shouldRender = true;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/viewPart.js\nvar ViewPart = class extends ViewEventHandler {\n  constructor(context) {\n    super();\n    this._context = context;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    super.dispose();\n  }\n};\nvar PartFingerprints = class {\n  static write(target, partId) {\n    target.setAttribute(\"data-mprt\", String(partId));\n  }\n  static read(target) {\n    const r = target.getAttribute(\"data-mprt\");\n    if (r === null) {\n      return 0;\n    }\n    return parseInt(r, 10);\n  }\n  static collect(child, stopAt) {\n    const result = [];\n    let resultLen = 0;\n    while (child \u0026\u0026 child !== child.ownerDocument.body) {\n      if (child === stopAt) {\n        break;\n      }\n      if (child.nodeType === child.ELEMENT_NODE) {\n        result[resultLen++] = this.read(child);\n      }\n      child = child.parentElement;\n    }\n    const r = new Uint8Array(resultLen);\n    for (let i2 = 0; i2 \u003c resultLen; i2++) {\n      r[i2] = result[resultLen - i2 - 1];\n    }\n    return r;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLines/viewLine.js\ninit_browser();\ninit_platform();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/renderingContext.js\nvar RestrictedRenderingContext = class {\n  constructor(viewLayout, viewportData) {\n    this._restrictedRenderingContextBrand = void 0;\n    this._viewLayout = viewLayout;\n    this.viewportData = viewportData;\n    this.scrollWidth = this._viewLayout.getScrollWidth();\n    this.scrollHeight = this._viewLayout.getScrollHeight();\n    this.visibleRange = this.viewportData.visibleRange;\n    this.bigNumbersDelta = this.viewportData.bigNumbersDelta;\n    const vInfo = this._viewLayout.getCurrentViewport();\n    this.scrollTop = vInfo.top;\n    this.scrollLeft = vInfo.left;\n    this.viewportWidth = vInfo.width;\n    this.viewportHeight = vInfo.height;\n  }\n  getScrolledTopFromAbsoluteTop(absoluteTop) {\n    return absoluteTop - this.scrollTop;\n  }\n  getVerticalOffsetForLineNumber(lineNumber, includeViewZones) {\n    return this._viewLayout.getVerticalOffsetForLineNumber(lineNumber, includeViewZones);\n  }\n  getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones) {\n    return this._viewLayout.getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones);\n  }\n  getLineHeightForLineNumber(lineNumber) {\n    return this._viewLayout.getLineHeightForLineNumber(lineNumber);\n  }\n  getDecorationsInViewport() {\n    return this.viewportData.getDecorationsInViewport();\n  }\n};\nvar RenderingContext = class extends RestrictedRenderingContext {\n  constructor(viewLayout, viewportData, viewLines, viewLinesGpu) {\n    super(viewLayout, viewportData);\n    this._renderingContextBrand = void 0;\n    this._viewLines = viewLines;\n    this._viewLinesGpu = viewLinesGpu;\n  }\n  linesVisibleRangesForRange(range2, includeNewLines) {\n    const domRanges = this._viewLines.linesVisibleRangesForRange(range2, includeNewLines);\n    if (!this._viewLinesGpu) {\n      return domRanges ?? null;\n    }\n    const gpuRanges = this._viewLinesGpu.linesVisibleRangesForRange(range2, includeNewLines);\n    if (!domRanges) {\n      return gpuRanges;\n    }\n    if (!gpuRanges) {\n      return domRanges;\n    }\n    return domRanges.concat(gpuRanges).sort((a, b) =\u003e a.lineNumber - b.lineNumber);\n  }\n  visibleRangeForPosition(position) {\n    return this._viewLines.visibleRangeForPosition(position) ?? this._viewLinesGpu?.visibleRangeForPosition(position) ?? null;\n  }\n};\nvar LineVisibleRanges = class {\n  constructor(outsideRenderedLine, lineNumber, ranges, continuesOnNextLine) {\n    this.outsideRenderedLine = outsideRenderedLine;\n    this.lineNumber = lineNumber;\n    this.ranges = ranges;\n    this.continuesOnNextLine = continuesOnNextLine;\n  }\n};\nvar HorizontalRange = class _HorizontalRange {\n  static from(ranges) {\n    const result = new Array(ranges.length);\n    for (let i2 = 0, len = ranges.length; i2 \u003c len; i2++) {\n      const range2 = ranges[i2];\n      result[i2] = new _HorizontalRange(range2.left, range2.width);\n    }\n    return result;\n  }\n  constructor(left, width2) {\n    this._horizontalRangeBrand = void 0;\n    this.left = Math.round(left);\n    this.width = Math.round(width2);\n  }\n  toString() {\n    return `[${this.left},${this.width}]`;\n  }\n};\nvar FloatHorizontalRange = class {\n  constructor(left, width2) {\n    this._floatHorizontalRangeBrand = void 0;\n    this.left = left;\n    this.width = width2;\n  }\n  toString() {\n    return `[${this.left},${this.width}]`;\n  }\n  static compare(a, b) {\n    return a.left - b.left;\n  }\n};\nvar HorizontalPosition = class {\n  constructor(outsideRenderedLine, left) {\n    this.outsideRenderedLine = outsideRenderedLine;\n    this.originalLeft = left;\n    this.left = Math.round(this.originalLeft);\n  }\n};\nvar VisibleRanges = class {\n  constructor(outsideRenderedLine, ranges) {\n    this.outsideRenderedLine = outsideRenderedLine;\n    this.ranges = ranges;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLines/rangeUtil.js\nvar RangeUtil = class {\n  static _createRange() {\n    if (!this._handyReadyRange) {\n      this._handyReadyRange = document.createRange();\n    }\n    return this._handyReadyRange;\n  }\n  static _detachRange(range2, endNode) {\n    range2.selectNodeContents(endNode);\n  }\n  static _readClientRects(startElement, startOffset, endElement, endOffset, endNode) {\n    const range2 = this._createRange();\n    try {\n      range2.setStart(startElement, startOffset);\n      range2.setEnd(endElement, endOffset);\n      return range2.getClientRects();\n    } catch (e) {\n      return null;\n    } finally {\n      this._detachRange(range2, endNode);\n    }\n  }\n  static _mergeAdjacentRanges(ranges) {\n    if (ranges.length === 1) {\n      return ranges;\n    }\n    ranges.sort(FloatHorizontalRange.compare);\n    const result = [];\n    let resultLen = 0;\n    let prev = ranges[0];\n    for (let i2 = 1, len = ranges.length; i2 \u003c len; i2++) {\n      const range2 = ranges[i2];\n      if (prev.left + prev.width + 0.9 \u003e= range2.left) {\n        prev.width = Math.max(prev.width, range2.left + range2.width - prev.left);\n      } else {\n        result[resultLen++] = prev;\n        prev = range2;\n      }\n    }\n    result[resultLen++] = prev;\n    return result;\n  }\n  static _createHorizontalRangesFromClientRects(clientRects, clientRectDeltaLeft, clientRectScale) {\n    if (!clientRects || clientRects.length === 0) {\n      return null;\n    }\n    const result = [];\n    for (let i2 = 0, len = clientRects.length; i2 \u003c len; i2++) {\n      const clientRect = clientRects[i2];\n      result[i2] = new FloatHorizontalRange(Math.max(0, (clientRect.left - clientRectDeltaLeft) / clientRectScale), clientRect.width / clientRectScale);\n    }\n    return this._mergeAdjacentRanges(result);\n  }\n  static readHorizontalRanges(domNode, startChildIndex, startOffset, endChildIndex, endOffset, context) {\n    const min = 0;\n    const max = domNode.children.length - 1;\n    if (min \u003e max) {\n      return null;\n    }\n    startChildIndex = Math.min(max, Math.max(min, startChildIndex));\n    endChildIndex = Math.min(max, Math.max(min, endChildIndex));\n    if (startChildIndex === endChildIndex \u0026\u0026 startOffset === endOffset \u0026\u0026 startOffset === 0 \u0026\u0026 !domNode.children[startChildIndex].firstChild) {\n      const clientRects2 = domNode.children[startChildIndex].getClientRects();\n      context.markDidDomLayout();\n      return this._createHorizontalRangesFromClientRects(clientRects2, context.clientRectDeltaLeft, context.clientRectScale);\n    }\n    if (startChildIndex !== endChildIndex) {\n      if (endChildIndex \u003e 0 \u0026\u0026 endOffset === 0) {\n        endChildIndex--;\n        endOffset = 1073741824;\n      }\n    }\n    let startElement = domNode.children[startChildIndex].firstChild;\n    let endElement = domNode.children[endChildIndex].firstChild;\n    if (!startElement || !endElement) {\n      if (!startElement \u0026\u0026 startOffset === 0 \u0026\u0026 startChildIndex \u003e 0) {\n        startElement = domNode.children[startChildIndex - 1].firstChild;\n        startOffset = 1073741824;\n      }\n      if (!endElement \u0026\u0026 endOffset === 0 \u0026\u0026 endChildIndex \u003e 0) {\n        endElement = domNode.children[endChildIndex - 1].firstChild;\n        endOffset = 1073741824;\n      }\n    }\n    if (!startElement || !endElement) {\n      return null;\n    }\n    startOffset = Math.min(startElement.textContent.length, Math.max(0, startOffset));\n    endOffset = Math.min(endElement.textContent.length, Math.max(0, endOffset));\n    const clientRects = this._readClientRects(startElement, startOffset, endElement, endOffset, context.endNode);\n    context.markDidDomLayout();\n    return this._createHorizontalRangesFromClientRects(clientRects, context.clientRectDeltaLeft, context.clientRectScale);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/lineDecorations.js\ninit_strings();\nvar LineDecoration = class _LineDecoration {\n  constructor(startColumn, endColumn, className2, type) {\n    this.startColumn = startColumn;\n    this.endColumn = endColumn;\n    this.className = className2;\n    this.type = type;\n    this._lineDecorationBrand = void 0;\n  }\n  static _equals(a, b) {\n    return a.startColumn === b.startColumn \u0026\u0026 a.endColumn === b.endColumn \u0026\u0026 a.className === b.className \u0026\u0026 a.type === b.type;\n  }\n  static equalsArr(a, b) {\n    const aLen = a.length;\n    const bLen = b.length;\n    if (aLen !== bLen) {\n      return false;\n    }\n    for (let i2 = 0; i2 \u003c aLen; i2++) {\n      if (!_LineDecoration._equals(a[i2], b[i2])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  static extractWrapped(arr, startOffset, endOffset) {\n    if (arr.length === 0) {\n      return arr;\n    }\n    const startColumn = startOffset + 1;\n    const endColumn = endOffset + 1;\n    const lineLength = endOffset - startOffset;\n    const r = [];\n    let rLength = 0;\n    for (const dec of arr) {\n      if (dec.endColumn \u003c= startColumn || dec.startColumn \u003e= endColumn) {\n        continue;\n      }\n      r[rLength++] = new _LineDecoration(Math.max(1, dec.startColumn - startColumn + 1), Math.min(lineLength + 1, dec.endColumn - startColumn + 1), dec.className, dec.type);\n    }\n    return r;\n  }\n  static filter(lineDecorations, lineNumber, minLineColumn, maxLineColumn) {\n    if (lineDecorations.length === 0) {\n      return [];\n    }\n    const result = [];\n    let resultLen = 0;\n    for (let i2 = 0, len = lineDecorations.length; i2 \u003c len; i2++) {\n      const d = lineDecorations[i2];\n      const range2 = d.range;\n      if (range2.endLineNumber \u003c lineNumber || range2.startLineNumber \u003e lineNumber) {\n        continue;\n      }\n      if (range2.isEmpty() \u0026\u0026 (d.type === 0 || d.type === 3)) {\n        continue;\n      }\n      const startColumn = range2.startLineNumber === lineNumber ? range2.startColumn : minLineColumn;\n      const endColumn = range2.endLineNumber === lineNumber ? range2.endColumn : maxLineColumn;\n      result[resultLen++] = new _LineDecoration(startColumn, endColumn, d.inlineClassName, d.type);\n    }\n    return result;\n  }\n  static _typeCompare(a, b) {\n    const ORDER = [2, 0, 1, 3];\n    return ORDER[a] - ORDER[b];\n  }\n  static compare(a, b) {\n    if (a.startColumn !== b.startColumn) {\n      return a.startColumn - b.startColumn;\n    }\n    if (a.endColumn !== b.endColumn) {\n      return a.endColumn - b.endColumn;\n    }\n    const typeCmp = _LineDecoration._typeCompare(a.type, b.type);\n    if (typeCmp !== 0) {\n      return typeCmp;\n    }\n    if (a.className !== b.className) {\n      return a.className \u003c b.className ? -1 : 1;\n    }\n    return 0;\n  }\n};\nvar DecorationSegment = class {\n  constructor(startOffset, endOffset, className2, metadata) {\n    this.startOffset = startOffset;\n    this.endOffset = endOffset;\n    this.className = className2;\n    this.metadata = metadata;\n  }\n};\nvar Stack = class _Stack {\n  constructor() {\n    this.stopOffsets = [];\n    this.classNames = [];\n    this.metadata = [];\n    this.count = 0;\n  }\n  static _metadata(metadata) {\n    let result = 0;\n    for (let i2 = 0, len = metadata.length; i2 \u003c len; i2++) {\n      result |= metadata[i2];\n    }\n    return result;\n  }\n  consumeLowerThan(maxStopOffset, nextStartOffset, result) {\n    while (this.count \u003e 0 \u0026\u0026 this.stopOffsets[0] \u003c maxStopOffset) {\n      let i2 = 0;\n      while (i2 + 1 \u003c this.count \u0026\u0026 this.stopOffsets[i2] === this.stopOffsets[i2 + 1]) {\n        i2++;\n      }\n      result.push(new DecorationSegment(nextStartOffset, this.stopOffsets[i2], this.classNames.join(\" \"), _Stack._metadata(this.metadata)));\n      nextStartOffset = this.stopOffsets[i2] + 1;\n      this.stopOffsets.splice(0, i2 + 1);\n      this.classNames.splice(0, i2 + 1);\n      this.metadata.splice(0, i2 + 1);\n      this.count -= i2 + 1;\n    }\n    if (this.count \u003e 0 \u0026\u0026 nextStartOffset \u003c maxStopOffset) {\n      result.push(new DecorationSegment(nextStartOffset, maxStopOffset - 1, this.classNames.join(\" \"), _Stack._metadata(this.metadata)));\n      nextStartOffset = maxStopOffset;\n    }\n    return nextStartOffset;\n  }\n  insert(stopOffset, className2, metadata) {\n    if (this.count === 0 || this.stopOffsets[this.count - 1] \u003c= stopOffset) {\n      this.stopOffsets.push(stopOffset);\n      this.classNames.push(className2);\n      this.metadata.push(metadata);\n    } else {\n      for (let i2 = 0; i2 \u003c this.count; i2++) {\n        if (this.stopOffsets[i2] \u003e= stopOffset) {\n          this.stopOffsets.splice(i2, 0, stopOffset);\n          this.classNames.splice(i2, 0, className2);\n          this.metadata.splice(i2, 0, metadata);\n          break;\n        }\n      }\n    }\n    this.count++;\n    return;\n  }\n};\nvar LineDecorationsNormalizer = class {\n  /**\n   * Normalize line decorations. Overlapping decorations will generate multiple segments\n   */\n  static normalize(lineContent, lineDecorations) {\n    if (lineDecorations.length === 0) {\n      return [];\n    }\n    const result = [];\n    const stack = new Stack();\n    let nextStartOffset = 0;\n    for (let i2 = 0, len = lineDecorations.length; i2 \u003c len; i2++) {\n      const d = lineDecorations[i2];\n      let startColumn = d.startColumn;\n      let endColumn = d.endColumn;\n      const className2 = d.className;\n      const metadata = d.type === 1 ? 2 : d.type === 2 ? 4 : 0;\n      if (startColumn \u003e 1) {\n        const charCodeBefore = lineContent.charCodeAt(startColumn - 2);\n        if (isHighSurrogate(charCodeBefore)) {\n          startColumn--;\n        }\n      }\n      if (endColumn \u003e 1) {\n        const charCodeBefore = lineContent.charCodeAt(endColumn - 2);\n        if (isHighSurrogate(charCodeBefore)) {\n          endColumn--;\n        }\n      }\n      const currentStartOffset = startColumn - 1;\n      const currentEndOffset = endColumn - 2;\n      nextStartOffset = stack.consumeLowerThan(currentStartOffset, nextStartOffset, result);\n      if (stack.count === 0) {\n        nextStartOffset = currentStartOffset;\n      }\n      stack.insert(currentEndOffset, className2, metadata);\n    }\n    stack.consumeLowerThan(1073741824, nextStartOffset, result);\n    return result;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/viewLineRenderer.js\ninit_nls();\ninit_strings();\ninit_stringBuilder();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/linePart.js\nvar LinePart = class {\n  constructor(endIndex, type, metadata, containsRTL2) {\n    this.endIndex = endIndex;\n    this.type = type;\n    this.metadata = metadata;\n    this.containsRTL = containsRTL2;\n    this._linePartBrand = void 0;\n  }\n  isWhitespace() {\n    return this.metadata \u0026 1 ? true : false;\n  }\n  isPseudoAfter() {\n    return this.metadata \u0026 4 ? true : false;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/viewLineRenderer.js\ninit_model2();\nvar RenderLineInput = class {\n  get isLTR() {\n    return !this.containsRTL \u0026\u0026 this.textDirection !== TextDirection.RTL;\n  }\n  constructor(useMonospaceOptimizations, canUseHalfwidthRightwardsArrow, lineContent, continuesWithWrappedLine, isBasicASCII2, containsRTL2, fauxIndentLength, lineTokens, lineDecorations, tabSize, startVisibleColumn, spaceWidth, middotWidth, wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures, selectionsOnLine, textDirection, verticalScrollbarSize, renderNewLineWhenEmpty = false) {\n    this.useMonospaceOptimizations = useMonospaceOptimizations;\n    this.canUseHalfwidthRightwardsArrow = canUseHalfwidthRightwardsArrow;\n    this.lineContent = lineContent;\n    this.continuesWithWrappedLine = continuesWithWrappedLine;\n    this.isBasicASCII = isBasicASCII2;\n    this.containsRTL = containsRTL2;\n    this.fauxIndentLength = fauxIndentLength;\n    this.lineTokens = lineTokens;\n    this.lineDecorations = lineDecorations.sort(LineDecoration.compare);\n    this.tabSize = tabSize;\n    this.startVisibleColumn = startVisibleColumn;\n    this.spaceWidth = spaceWidth;\n    this.stopRenderingLineAfter = stopRenderingLineAfter;\n    this.renderWhitespace = renderWhitespace === \"all\" ? 4 : renderWhitespace === \"boundary\" ? 1 : renderWhitespace === \"selection\" ? 2 : renderWhitespace === \"trailing\" ? 3 : 0;\n    this.renderControlCharacters = renderControlCharacters;\n    this.fontLigatures = fontLigatures;\n    this.selectionsOnLine = selectionsOnLine \u0026\u0026 selectionsOnLine.sort((a, b) =\u003e a.start \u003c b.start ? -1 : 1);\n    this.renderNewLineWhenEmpty = renderNewLineWhenEmpty;\n    this.textDirection = textDirection;\n    this.verticalScrollbarSize = verticalScrollbarSize;\n    const wsmiddotDiff = Math.abs(wsmiddotWidth - spaceWidth);\n    const middotDiff = Math.abs(middotWidth - spaceWidth);\n    if (wsmiddotDiff \u003c middotDiff) {\n      this.renderSpaceWidth = wsmiddotWidth;\n      this.renderSpaceCharCode = 11825;\n    } else {\n      this.renderSpaceWidth = middotWidth;\n      this.renderSpaceCharCode = 183;\n    }\n  }\n  sameSelection(otherSelections) {\n    if (this.selectionsOnLine === null) {\n      return otherSelections === null;\n    }\n    if (otherSelections === null) {\n      return false;\n    }\n    if (otherSelections.length !== this.selectionsOnLine.length) {\n      return false;\n    }\n    for (let i2 = 0; i2 \u003c this.selectionsOnLine.length; i2++) {\n      if (!this.selectionsOnLine[i2].equals(otherSelections[i2])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  equals(other) {\n    return this.useMonospaceOptimizations === other.useMonospaceOptimizations \u0026\u0026 this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow \u0026\u0026 this.lineContent === other.lineContent \u0026\u0026 this.continuesWithWrappedLine === other.continuesWithWrappedLine \u0026\u0026 this.isBasicASCII === other.isBasicASCII \u0026\u0026 this.containsRTL === other.containsRTL \u0026\u0026 this.fauxIndentLength === other.fauxIndentLength \u0026\u0026 this.tabSize === other.tabSize \u0026\u0026 this.startVisibleColumn === other.startVisibleColumn \u0026\u0026 this.spaceWidth === other.spaceWidth \u0026\u0026 this.renderSpaceWidth === other.renderSpaceWidth \u0026\u0026 this.renderSpaceCharCode === other.renderSpaceCharCode \u0026\u0026 this.stopRenderingLineAfter === other.stopRenderingLineAfter \u0026\u0026 this.renderWhitespace === other.renderWhitespace \u0026\u0026 this.renderControlCharacters === other.renderControlCharacters \u0026\u0026 this.fontLigatures === other.fontLigatures \u0026\u0026 LineDecoration.equalsArr(this.lineDecorations, other.lineDecorations) \u0026\u0026 this.lineTokens.equals(other.lineTokens) \u0026\u0026 this.sameSelection(other.selectionsOnLine) \u0026\u0026 this.textDirection === other.textDirection \u0026\u0026 this.verticalScrollbarSize === other.verticalScrollbarSize \u0026\u0026 this.renderNewLineWhenEmpty === other.renderNewLineWhenEmpty;\n  }\n};\nvar DomPosition = class {\n  constructor(partIndex, charIndex) {\n    this.partIndex = partIndex;\n    this.charIndex = charIndex;\n  }\n};\nvar CharacterMapping = class _CharacterMapping {\n  static getPartIndex(partData) {\n    return (partData \u0026 4294901760) \u003e\u003e\u003e 16;\n  }\n  static getCharIndex(partData) {\n    return (partData \u0026 65535) \u003e\u003e\u003e 0;\n  }\n  constructor(length, partCount) {\n    this.length = length;\n    this._data = new Uint32Array(this.length);\n    this._horizontalOffset = new Uint32Array(this.length);\n  }\n  setColumnInfo(column, partIndex, charIndex, horizontalOffset) {\n    const partData = (partIndex \u003c\u003c 16 | charIndex \u003c\u003c 0) \u003e\u003e\u003e 0;\n    this._data[column - 1] = partData;\n    this._horizontalOffset[column - 1] = horizontalOffset;\n  }\n  getHorizontalOffset(column) {\n    if (this._horizontalOffset.length === 0) {\n      return 0;\n    }\n    return this._horizontalOffset[column - 1];\n  }\n  charOffsetToPartData(charOffset) {\n    if (this.length === 0) {\n      return 0;\n    }\n    if (charOffset \u003c 0) {\n      return this._data[0];\n    }\n    if (charOffset \u003e= this.length) {\n      return this._data[this.length - 1];\n    }\n    return this._data[charOffset];\n  }\n  getDomPosition(column) {\n    const partData = this.charOffsetToPartData(column - 1);\n    const partIndex = _CharacterMapping.getPartIndex(partData);\n    const charIndex = _CharacterMapping.getCharIndex(partData);\n    return new DomPosition(partIndex, charIndex);\n  }\n  getColumn(domPosition, partLength) {\n    const charOffset = this.partDataToCharOffset(domPosition.partIndex, partLength, domPosition.charIndex);\n    return charOffset + 1;\n  }\n  partDataToCharOffset(partIndex, partLength, charIndex) {\n    if (this.length === 0) {\n      return 0;\n    }\n    const searchEntry = (partIndex \u003c\u003c 16 | charIndex \u003c\u003c 0) \u003e\u003e\u003e 0;\n    let min = 0;\n    let max = this.length - 1;\n    while (min + 1 \u003c max) {\n      const mid = min + max \u003e\u003e\u003e 1;\n      const midEntry = this._data[mid];\n      if (midEntry === searchEntry) {\n        return mid;\n      } else if (midEntry \u003e searchEntry) {\n        max = mid;\n      } else {\n        min = mid;\n      }\n    }\n    if (min === max) {\n      return min;\n    }\n    const minEntry = this._data[min];\n    const maxEntry = this._data[max];\n    if (minEntry === searchEntry) {\n      return min;\n    }\n    if (maxEntry === searchEntry) {\n      return max;\n    }\n    const minPartIndex = _CharacterMapping.getPartIndex(minEntry);\n    const minCharIndex = _CharacterMapping.getCharIndex(minEntry);\n    const maxPartIndex = _CharacterMapping.getPartIndex(maxEntry);\n    let maxCharIndex;\n    if (minPartIndex !== maxPartIndex) {\n      maxCharIndex = partLength;\n    } else {\n      maxCharIndex = _CharacterMapping.getCharIndex(maxEntry);\n    }\n    const minEntryDistance = charIndex - minCharIndex;\n    const maxEntryDistance = maxCharIndex - charIndex;\n    if (minEntryDistance \u003c= maxEntryDistance) {\n      return min;\n    }\n    return max;\n  }\n};\nvar RenderLineOutput = class {\n  constructor(characterMapping, containsForeignElements) {\n    this._renderLineOutputBrand = void 0;\n    this.characterMapping = characterMapping;\n    this.containsForeignElements = containsForeignElements;\n  }\n};\nfunction renderViewLine(input, sb) {\n  if (input.lineContent.length === 0) {\n    if (input.lineDecorations.length \u003e 0) {\n      sb.appendString(`\u003cspan\u003e`);\n      let beforeCount = 0;\n      let afterCount = 0;\n      let containsForeignElements = 0;\n      for (const lineDecoration of input.lineDecorations) {\n        if (lineDecoration.type === 1 || lineDecoration.type === 2) {\n          sb.appendString(`\u003cspan class=\"`);\n          sb.appendString(lineDecoration.className);\n          sb.appendString(`\"\u003e\u003c/span\u003e`);\n          if (lineDecoration.type === 1) {\n            containsForeignElements |= 1;\n            beforeCount++;\n          }\n          if (lineDecoration.type === 2) {\n            containsForeignElements |= 2;\n            afterCount++;\n          }\n        }\n      }\n      sb.appendString(`\u003c/span\u003e`);\n      const characterMapping = new CharacterMapping(1, beforeCount + afterCount);\n      characterMapping.setColumnInfo(1, beforeCount, 0, 0);\n      return new RenderLineOutput(characterMapping, containsForeignElements);\n    }\n    if (input.renderNewLineWhenEmpty) {\n      sb.appendString(\"\u003cspan\u003e\u003cspan\u003e\\n\u003c/span\u003e\u003c/span\u003e\");\n    } else {\n      sb.appendString(\"\u003cspan\u003e\u003cspan\u003e\u003c/span\u003e\u003c/span\u003e\");\n    }\n    return new RenderLineOutput(\n      new CharacterMapping(0, 0),\n      0\n      /* ForeignElementType.None */\n    );\n  }\n  return _renderLine(resolveRenderLineInput(input), sb);\n}\nvar RenderLineOutput2 = class {\n  constructor(characterMapping, html3, containsForeignElements) {\n    this.characterMapping = characterMapping;\n    this.html = html3;\n    this.containsForeignElements = containsForeignElements;\n  }\n};\nfunction renderViewLine2(input) {\n  const sb = new StringBuilder(1e4);\n  const out = renderViewLine(input, sb);\n  return new RenderLineOutput2(out.characterMapping, sb.build(), out.containsForeignElements);\n}\nvar ResolvedRenderLineInput = class {\n  constructor(fontIsMonospace, canUseHalfwidthRightwardsArrow, lineContent, len, isOverflowing, overflowingCharCount, parts, containsForeignElements, fauxIndentLength, tabSize, startVisibleColumn, spaceWidth, renderSpaceCharCode, renderWhitespace, renderControlCharacters) {\n    this.fontIsMonospace = fontIsMonospace;\n    this.canUseHalfwidthRightwardsArrow = canUseHalfwidthRightwardsArrow;\n    this.lineContent = lineContent;\n    this.len = len;\n    this.isOverflowing = isOverflowing;\n    this.overflowingCharCount = overflowingCharCount;\n    this.parts = parts;\n    this.containsForeignElements = containsForeignElements;\n    this.fauxIndentLength = fauxIndentLength;\n    this.tabSize = tabSize;\n    this.startVisibleColumn = startVisibleColumn;\n    this.spaceWidth = spaceWidth;\n    this.renderSpaceCharCode = renderSpaceCharCode;\n    this.renderWhitespace = renderWhitespace;\n    this.renderControlCharacters = renderControlCharacters;\n  }\n};\nfunction resolveRenderLineInput(input) {\n  const lineContent = input.lineContent;\n  let isOverflowing;\n  let overflowingCharCount;\n  let len;\n  if (input.stopRenderingLineAfter !== -1 \u0026\u0026 input.stopRenderingLineAfter \u003c lineContent.length) {\n    isOverflowing = true;\n    overflowingCharCount = lineContent.length - input.stopRenderingLineAfter;\n    len = input.stopRenderingLineAfter;\n  } else {\n    isOverflowing = false;\n    overflowingCharCount = 0;\n    len = lineContent.length;\n  }\n  let tokens = transformAndRemoveOverflowing(lineContent, input.containsRTL, input.lineTokens, input.fauxIndentLength, len);\n  if (input.renderControlCharacters \u0026\u0026 !input.isBasicASCII) {\n    tokens = extractControlCharacters(lineContent, tokens);\n  }\n  if (input.renderWhitespace === 4 || input.renderWhitespace === 1 || input.renderWhitespace === 2 \u0026\u0026 !!input.selectionsOnLine || input.renderWhitespace === 3 \u0026\u0026 !input.continuesWithWrappedLine) {\n    tokens = _applyRenderWhitespace(input, lineContent, len, tokens);\n  }\n  let containsForeignElements = 0;\n  if (input.lineDecorations.length \u003e 0) {\n    for (let i2 = 0, len2 = input.lineDecorations.length; i2 \u003c len2; i2++) {\n      const lineDecoration = input.lineDecorations[i2];\n      if (lineDecoration.type === 3) {\n        containsForeignElements |= 1;\n      } else if (lineDecoration.type === 1) {\n        containsForeignElements |= 1;\n      } else if (lineDecoration.type === 2) {\n        containsForeignElements |= 2;\n      }\n    }\n    tokens = _applyInlineDecorations(lineContent, len, tokens, input.lineDecorations);\n  }\n  if (!input.containsRTL) {\n    tokens = splitLargeTokens(lineContent, tokens, !input.isBasicASCII || input.fontLigatures);\n  }\n  return new ResolvedRenderLineInput(input.useMonospaceOptimizations, input.canUseHalfwidthRightwardsArrow, lineContent, len, isOverflowing, overflowingCharCount, tokens, containsForeignElements, input.fauxIndentLength, input.tabSize, input.startVisibleColumn, input.spaceWidth, input.renderSpaceCharCode, input.renderWhitespace, input.renderControlCharacters);\n}\nfunction transformAndRemoveOverflowing(lineContent, lineContainsRTL, tokens, fauxIndentLength, len) {\n  const result = [];\n  let resultLen = 0;\n  if (fauxIndentLength \u003e 0) {\n    result[resultLen++] = new LinePart(fauxIndentLength, \"\", 0, false);\n  }\n  let startOffset = fauxIndentLength;\n  for (let tokenIndex = 0, tokensLen = tokens.getCount(); tokenIndex \u003c tokensLen; tokenIndex++) {\n    const endIndex = tokens.getEndOffset(tokenIndex);\n    if (endIndex \u003c= fauxIndentLength) {\n      continue;\n    }\n    const type = tokens.getClassName(tokenIndex);\n    if (endIndex \u003e= len) {\n      const tokenContainsRTL2 = lineContainsRTL ? containsRTL(lineContent.substring(startOffset, len)) : false;\n      result[resultLen++] = new LinePart(len, type, 0, tokenContainsRTL2);\n      break;\n    }\n    const tokenContainsRTL = lineContainsRTL ? containsRTL(lineContent.substring(startOffset, endIndex)) : false;\n    result[resultLen++] = new LinePart(endIndex, type, 0, tokenContainsRTL);\n    startOffset = endIndex;\n  }\n  return result;\n}\nfunction splitLargeTokens(lineContent, tokens, onlyAtSpaces) {\n  let lastTokenEndIndex = 0;\n  const result = [];\n  let resultLen = 0;\n  if (onlyAtSpaces) {\n    for (let i2 = 0, len = tokens.length; i2 \u003c len; i2++) {\n      const token = tokens[i2];\n      const tokenEndIndex = token.endIndex;\n      if (lastTokenEndIndex + 50 \u003c tokenEndIndex) {\n        const tokenType = token.type;\n        const tokenMetadata = token.metadata;\n        const tokenContainsRTL = token.containsRTL;\n        let lastSpaceOffset = -1;\n        let currTokenStart = lastTokenEndIndex;\n        for (let j = lastTokenEndIndex; j \u003c tokenEndIndex; j++) {\n          if (lineContent.charCodeAt(j) === 32) {\n            lastSpaceOffset = j;\n          }\n          if (lastSpaceOffset !== -1 \u0026\u0026 j - currTokenStart \u003e= 50) {\n            result[resultLen++] = new LinePart(lastSpaceOffset + 1, tokenType, tokenMetadata, tokenContainsRTL);\n            currTokenStart = lastSpaceOffset + 1;\n            lastSpaceOffset = -1;\n          }\n        }\n        if (currTokenStart !== tokenEndIndex) {\n          result[resultLen++] = new LinePart(tokenEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n        }\n      } else {\n        result[resultLen++] = token;\n      }\n      lastTokenEndIndex = tokenEndIndex;\n    }\n  } else {\n    for (let i2 = 0, len = tokens.length; i2 \u003c len; i2++) {\n      const token = tokens[i2];\n      const tokenEndIndex = token.endIndex;\n      const diff = tokenEndIndex - lastTokenEndIndex;\n      if (diff \u003e 50) {\n        const tokenType = token.type;\n        const tokenMetadata = token.metadata;\n        const tokenContainsRTL = token.containsRTL;\n        const piecesCount = Math.ceil(\n          diff / 50\n          /* Constants.LongToken */\n        );\n        for (let j = 1; j \u003c piecesCount; j++) {\n          const pieceEndIndex = lastTokenEndIndex + j * 50;\n          result[resultLen++] = new LinePart(pieceEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n        }\n        result[resultLen++] = new LinePart(tokenEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n      } else {\n        result[resultLen++] = token;\n      }\n      lastTokenEndIndex = tokenEndIndex;\n    }\n  }\n  return result;\n}\nfunction isControlCharacter(charCode) {\n  if (charCode \u003c 32) {\n    return charCode !== 9;\n  }\n  if (charCode === 127) {\n    return true;\n  }\n  if (charCode \u003e= 8234 \u0026\u0026 charCode \u003c= 8238 || charCode \u003e= 8294 \u0026\u0026 charCode \u003c= 8297 || charCode \u003e= 8206 \u0026\u0026 charCode \u003c= 8207 || charCode === 1564) {\n    return true;\n  }\n  return false;\n}\nfunction extractControlCharacters(lineContent, tokens) {\n  const result = [];\n  let lastLinePart = new LinePart(0, \"\", 0, false);\n  let charOffset = 0;\n  for (const token of tokens) {\n    const tokenEndIndex = token.endIndex;\n    for (; charOffset \u003c tokenEndIndex; charOffset++) {\n      const charCode = lineContent.charCodeAt(charOffset);\n      if (isControlCharacter(charCode)) {\n        if (charOffset \u003e lastLinePart.endIndex) {\n          lastLinePart = new LinePart(charOffset, token.type, token.metadata, token.containsRTL);\n          result.push(lastLinePart);\n        }\n        lastLinePart = new LinePart(charOffset + 1, \"mtkcontrol\", token.metadata, false);\n        result.push(lastLinePart);\n      }\n    }\n    if (charOffset \u003e lastLinePart.endIndex) {\n      lastLinePart = new LinePart(tokenEndIndex, token.type, token.metadata, token.containsRTL);\n      result.push(lastLinePart);\n    }\n  }\n  return result;\n}\nfunction _applyRenderWhitespace(input, lineContent, len, tokens) {\n  const continuesWithWrappedLine = input.continuesWithWrappedLine;\n  const fauxIndentLength = input.fauxIndentLength;\n  const tabSize = input.tabSize;\n  const startVisibleColumn = input.startVisibleColumn;\n  const useMonospaceOptimizations = input.useMonospaceOptimizations;\n  const selections = input.selectionsOnLine;\n  const onlyBoundary = input.renderWhitespace === 1;\n  const onlyTrailing = input.renderWhitespace === 3;\n  const generateLinePartForEachWhitespace = input.renderSpaceWidth !== input.spaceWidth;\n  const result = [];\n  let resultLen = 0;\n  let tokenIndex = 0;\n  let tokenType = tokens[tokenIndex].type;\n  let tokenContainsRTL = tokens[tokenIndex].containsRTL;\n  let tokenEndIndex = tokens[tokenIndex].endIndex;\n  const tokensLength = tokens.length;\n  let lineIsEmptyOrWhitespace = false;\n  let firstNonWhitespaceIndex2 = firstNonWhitespaceIndex(lineContent);\n  let lastNonWhitespaceIndex2;\n  if (firstNonWhitespaceIndex2 === -1) {\n    lineIsEmptyOrWhitespace = true;\n    firstNonWhitespaceIndex2 = len;\n    lastNonWhitespaceIndex2 = len;\n  } else {\n    lastNonWhitespaceIndex2 = lastNonWhitespaceIndex(lineContent);\n  }\n  let wasInWhitespace = false;\n  let currentSelectionIndex = 0;\n  let currentSelection = selections \u0026\u0026 selections[currentSelectionIndex];\n  let tmpIndent = startVisibleColumn % tabSize;\n  for (let charIndex = fauxIndentLength; charIndex \u003c len; charIndex++) {\n    const chCode = lineContent.charCodeAt(charIndex);\n    if (currentSelection \u0026\u0026 currentSelection.endExclusive \u003c= charIndex) {\n      currentSelectionIndex++;\n      currentSelection = selections \u0026\u0026 selections[currentSelectionIndex];\n    }\n    let isInWhitespace;\n    if (charIndex \u003c firstNonWhitespaceIndex2 || charIndex \u003e lastNonWhitespaceIndex2) {\n      isInWhitespace = true;\n    } else if (chCode === 9) {\n      isInWhitespace = true;\n    } else if (chCode === 32) {\n      if (onlyBoundary) {\n        if (wasInWhitespace) {\n          isInWhitespace = true;\n        } else {\n          const nextChCode = charIndex + 1 \u003c len ? lineContent.charCodeAt(charIndex + 1) : 0;\n          isInWhitespace = nextChCode === 32 || nextChCode === 9;\n        }\n      } else {\n        isInWhitespace = true;\n      }\n    } else {\n      isInWhitespace = false;\n    }\n    if (isInWhitespace \u0026\u0026 selections) {\n      isInWhitespace = !!currentSelection \u0026\u0026 currentSelection.start \u003c= charIndex \u0026\u0026 charIndex \u003c currentSelection.endExclusive;\n    }\n    if (isInWhitespace \u0026\u0026 onlyTrailing) {\n      isInWhitespace = lineIsEmptyOrWhitespace || charIndex \u003e lastNonWhitespaceIndex2;\n    }\n    if (isInWhitespace \u0026\u0026 tokenContainsRTL) {\n      if (charIndex \u003e= firstNonWhitespaceIndex2 \u0026\u0026 charIndex \u003c= lastNonWhitespaceIndex2) {\n        isInWhitespace = false;\n      }\n    }\n    if (wasInWhitespace) {\n      if (!isInWhitespace || !useMonospaceOptimizations \u0026\u0026 tmpIndent \u003e= tabSize) {\n        if (generateLinePartForEachWhitespace) {\n          const lastEndIndex = resultLen \u003e 0 ? result[resultLen - 1].endIndex : fauxIndentLength;\n          for (let i2 = lastEndIndex + 1; i2 \u003c= charIndex; i2++) {\n            result[resultLen++] = new LinePart(i2, \"mtkw\", 1, false);\n          }\n        } else {\n          result[resultLen++] = new LinePart(charIndex, \"mtkw\", 1, false);\n        }\n        tmpIndent = tmpIndent % tabSize;\n      }\n    } else {\n      if (charIndex === tokenEndIndex || isInWhitespace \u0026\u0026 charIndex \u003e fauxIndentLength) {\n        result[resultLen++] = new LinePart(charIndex, tokenType, 0, tokenContainsRTL);\n        tmpIndent = tmpIndent % tabSize;\n      }\n    }\n    if (chCode === 9) {\n      tmpIndent = tabSize;\n    } else if (isFullWidthCharacter(chCode)) {\n      tmpIndent += 2;\n    } else {\n      tmpIndent++;\n    }\n    wasInWhitespace = isInWhitespace;\n    while (charIndex === tokenEndIndex) {\n      tokenIndex++;\n      if (tokenIndex \u003c tokensLength) {\n        tokenType = tokens[tokenIndex].type;\n        tokenContainsRTL = tokens[tokenIndex].containsRTL;\n        tokenEndIndex = tokens[tokenIndex].endIndex;\n      } else {\n        break;\n      }\n    }\n  }\n  let generateWhitespace = false;\n  if (wasInWhitespace) {\n    if (continuesWithWrappedLine \u0026\u0026 onlyBoundary) {\n      const lastCharCode = len \u003e 0 ? lineContent.charCodeAt(len - 1) : 0;\n      const prevCharCode = len \u003e 1 ? lineContent.charCodeAt(len - 2) : 0;\n      const isSingleTrailingSpace = lastCharCode === 32 \u0026\u0026 (prevCharCode !== 32 \u0026\u0026 prevCharCode !== 9);\n      if (!isSingleTrailingSpace) {\n        generateWhitespace = true;\n      }\n    } else {\n      generateWhitespace = true;\n    }\n  }\n  if (generateWhitespace) {\n    if (generateLinePartForEachWhitespace) {\n      const lastEndIndex = resultLen \u003e 0 ? result[resultLen - 1].endIndex : fauxIndentLength;\n      for (let i2 = lastEndIndex + 1; i2 \u003c= len; i2++) {\n        result[resultLen++] = new LinePart(i2, \"mtkw\", 1, false);\n      }\n    } else {\n      result[resultLen++] = new LinePart(len, \"mtkw\", 1, false);\n    }\n  } else {\n    result[resultLen++] = new LinePart(len, tokenType, 0, tokenContainsRTL);\n  }\n  return result;\n}\nfunction _applyInlineDecorations(lineContent, len, tokens, _lineDecorations) {\n  _lineDecorations.sort(LineDecoration.compare);\n  const lineDecorations = LineDecorationsNormalizer.normalize(lineContent, _lineDecorations);\n  const lineDecorationsLen = lineDecorations.length;\n  let lineDecorationIndex = 0;\n  const result = [];\n  let resultLen = 0;\n  let lastResultEndIndex = 0;\n  for (let tokenIndex = 0, len2 = tokens.length; tokenIndex \u003c len2; tokenIndex++) {\n    const token = tokens[tokenIndex];\n    const tokenEndIndex = token.endIndex;\n    const tokenType = token.type;\n    const tokenMetadata = token.metadata;\n    const tokenContainsRTL = token.containsRTL;\n    while (lineDecorationIndex \u003c lineDecorationsLen \u0026\u0026 lineDecorations[lineDecorationIndex].startOffset \u003c tokenEndIndex) {\n      const lineDecoration = lineDecorations[lineDecorationIndex];\n      if (lineDecoration.startOffset \u003e lastResultEndIndex) {\n        lastResultEndIndex = lineDecoration.startOffset;\n        result[resultLen++] = new LinePart(lastResultEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n      }\n      if (lineDecoration.endOffset + 1 \u003c= tokenEndIndex) {\n        lastResultEndIndex = lineDecoration.endOffset + 1;\n        result[resultLen++] = new LinePart(lastResultEndIndex, tokenType + \" \" + lineDecoration.className, tokenMetadata | lineDecoration.metadata, tokenContainsRTL);\n        lineDecorationIndex++;\n      } else {\n        lastResultEndIndex = tokenEndIndex;\n        result[resultLen++] = new LinePart(lastResultEndIndex, tokenType + \" \" + lineDecoration.className, tokenMetadata | lineDecoration.metadata, tokenContainsRTL);\n        break;\n      }\n    }\n    if (tokenEndIndex \u003e lastResultEndIndex) {\n      lastResultEndIndex = tokenEndIndex;\n      result[resultLen++] = new LinePart(lastResultEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n    }\n  }\n  const lastTokenEndIndex = tokens[tokens.length - 1].endIndex;\n  if (lineDecorationIndex \u003c lineDecorationsLen \u0026\u0026 lineDecorations[lineDecorationIndex].startOffset === lastTokenEndIndex) {\n    while (lineDecorationIndex \u003c lineDecorationsLen \u0026\u0026 lineDecorations[lineDecorationIndex].startOffset === lastTokenEndIndex) {\n      const lineDecoration = lineDecorations[lineDecorationIndex];\n      result[resultLen++] = new LinePart(lastResultEndIndex, lineDecoration.className, lineDecoration.metadata, false);\n      lineDecorationIndex++;\n    }\n  }\n  return result;\n}\nfunction _renderLine(input, sb) {\n  const fontIsMonospace = input.fontIsMonospace;\n  const canUseHalfwidthRightwardsArrow = input.canUseHalfwidthRightwardsArrow;\n  const containsForeignElements = input.containsForeignElements;\n  const lineContent = input.lineContent;\n  const len = input.len;\n  const isOverflowing = input.isOverflowing;\n  const overflowingCharCount = input.overflowingCharCount;\n  const parts = input.parts;\n  const fauxIndentLength = input.fauxIndentLength;\n  const tabSize = input.tabSize;\n  const startVisibleColumn = input.startVisibleColumn;\n  const spaceWidth = input.spaceWidth;\n  const renderSpaceCharCode = input.renderSpaceCharCode;\n  const renderWhitespace = input.renderWhitespace;\n  const renderControlCharacters = input.renderControlCharacters;\n  const characterMapping = new CharacterMapping(len + 1, parts.length);\n  let lastCharacterMappingDefined = false;\n  let charIndex = 0;\n  let visibleColumn = startVisibleColumn;\n  let charOffsetInPart = 0;\n  let charHorizontalOffset = 0;\n  let partDisplacement = 0;\n  sb.appendString(\"\u003cspan\u003e\");\n  for (let partIndex = 0, tokensLen = parts.length; partIndex \u003c tokensLen; partIndex++) {\n    const part = parts[partIndex];\n    const partEndIndex = part.endIndex;\n    const partType = part.type;\n    const partContainsRTL = part.containsRTL;\n    const partRendersWhitespace = renderWhitespace !== 0 \u0026\u0026 part.isWhitespace();\n    const partRendersWhitespaceWithWidth = partRendersWhitespace \u0026\u0026 !fontIsMonospace \u0026\u0026 (partType === \"mtkw\" || !containsForeignElements);\n    const partIsEmptyAndHasPseudoAfter = charIndex === partEndIndex \u0026\u0026 part.isPseudoAfter();\n    charOffsetInPart = 0;\n    sb.appendString(\"\u003cspan \");\n    if (partContainsRTL) {\n      sb.appendString('style=\"unicode-bidi:isolate\" ');\n    }\n    sb.appendString('class=\"');\n    sb.appendString(partRendersWhitespaceWithWidth ? \"mtkz\" : partType);\n    sb.appendASCIICharCode(\n      34\n      /* CharCode.DoubleQuote */\n    );\n    if (partRendersWhitespace) {\n      let partWidth = 0;\n      {\n        let _charIndex = charIndex;\n        let _visibleColumn = visibleColumn;\n        for (; _charIndex \u003c partEndIndex; _charIndex++) {\n          const charCode = lineContent.charCodeAt(_charIndex);\n          const charWidth = (charCode === 9 ? tabSize - _visibleColumn % tabSize : 1) | 0;\n          partWidth += charWidth;\n          if (_charIndex \u003e= fauxIndentLength) {\n            _visibleColumn += charWidth;\n          }\n        }\n      }\n      if (partRendersWhitespaceWithWidth) {\n        sb.appendString(' style=\"width:');\n        sb.appendString(String(spaceWidth * partWidth));\n        sb.appendString('px\"');\n      }\n      sb.appendASCIICharCode(\n        62\n        /* CharCode.GreaterThan */\n      );\n      for (; charIndex \u003c partEndIndex; charIndex++) {\n        characterMapping.setColumnInfo(charIndex + 1, partIndex - partDisplacement, charOffsetInPart, charHorizontalOffset);\n        partDisplacement = 0;\n        const charCode = lineContent.charCodeAt(charIndex);\n        let producedCharacters;\n        let charWidth;\n        if (charCode === 9) {\n          producedCharacters = tabSize - visibleColumn % tabSize | 0;\n          charWidth = producedCharacters;\n          if (!canUseHalfwidthRightwardsArrow || charWidth \u003e 1) {\n            sb.appendCharCode(8594);\n          } else {\n            sb.appendCharCode(65515);\n          }\n          for (let space = 2; space \u003c= charWidth; space++) {\n            sb.appendCharCode(160);\n          }\n        } else {\n          producedCharacters = 2;\n          charWidth = 1;\n          sb.appendCharCode(renderSpaceCharCode);\n          sb.appendCharCode(8204);\n        }\n        charOffsetInPart += producedCharacters;\n        charHorizontalOffset += charWidth;\n        if (charIndex \u003e= fauxIndentLength) {\n          visibleColumn += charWidth;\n        }\n      }\n    } else {\n      sb.appendASCIICharCode(\n        62\n        /* CharCode.GreaterThan */\n      );\n      for (; charIndex \u003c partEndIndex; charIndex++) {\n        characterMapping.setColumnInfo(charIndex + 1, partIndex - partDisplacement, charOffsetInPart, charHorizontalOffset);\n        partDisplacement = 0;\n        const charCode = lineContent.charCodeAt(charIndex);\n        let producedCharacters = 1;\n        let charWidth = 1;\n        switch (charCode) {\n          case 9:\n            producedCharacters = tabSize - visibleColumn % tabSize;\n            charWidth = producedCharacters;\n            for (let space = 1; space \u003c= producedCharacters; space++) {\n              sb.appendCharCode(160);\n            }\n            break;\n          case 32:\n            sb.appendCharCode(160);\n            break;\n          case 60:\n            sb.appendString(\"\u0026lt;\");\n            break;\n          case 62:\n            sb.appendString(\"\u0026gt;\");\n            break;\n          case 38:\n            sb.appendString(\"\u0026amp;\");\n            break;\n          case 0:\n            if (renderControlCharacters) {\n              sb.appendCharCode(9216);\n            } else {\n              sb.appendString(\"\u0026#00;\");\n            }\n            break;\n          case 65279:\n          case 8232:\n          case 8233:\n          case 133:\n            sb.appendCharCode(65533);\n            break;\n          default:\n            if (isFullWidthCharacter(charCode)) {\n              charWidth++;\n            }\n            if (renderControlCharacters \u0026\u0026 charCode \u003c 32) {\n              sb.appendCharCode(9216 + charCode);\n            } else if (renderControlCharacters \u0026\u0026 charCode === 127) {\n              sb.appendCharCode(9249);\n            } else if (renderControlCharacters \u0026\u0026 isControlCharacter(charCode)) {\n              sb.appendString(\"[U+\");\n              sb.appendString(to4CharHex(charCode));\n              sb.appendString(\"]\");\n              producedCharacters = 8;\n              charWidth = producedCharacters;\n            } else {\n              sb.appendCharCode(charCode);\n            }\n        }\n        charOffsetInPart += producedCharacters;\n        charHorizontalOffset += charWidth;\n        if (charIndex \u003e= fauxIndentLength) {\n          visibleColumn += charWidth;\n        }\n      }\n    }\n    if (partIsEmptyAndHasPseudoAfter) {\n      partDisplacement++;\n    } else {\n      partDisplacement = 0;\n    }\n    if (charIndex \u003e= len \u0026\u0026 !lastCharacterMappingDefined \u0026\u0026 part.isPseudoAfter()) {\n      lastCharacterMappingDefined = true;\n      characterMapping.setColumnInfo(charIndex + 1, partIndex, charOffsetInPart, charHorizontalOffset);\n    }\n    sb.appendString(\"\u003c/span\u003e\");\n  }\n  if (!lastCharacterMappingDefined) {\n    characterMapping.setColumnInfo(len + 1, parts.length - 1, charOffsetInPart, charHorizontalOffset);\n  }\n  if (isOverflowing) {\n    sb.appendString('\u003cspan class=\"mtkoverflow\"\u003e');\n    sb.appendString(localize(789, \"Show more ({0})\", renderOverflowingCharCount(overflowingCharCount)));\n    sb.appendString(\"\u003c/span\u003e\");\n  }\n  sb.appendString(\"\u003c/span\u003e\");\n  return new RenderLineOutput(characterMapping, containsForeignElements);\n}\nfunction to4CharHex(n2) {\n  return n2.toString(16).toUpperCase().padStart(4, \"0\");\n}\nfunction renderOverflowingCharCount(n2) {\n  if (n2 \u003c 1024) {\n    return localize(790, \"{0} chars\", n2);\n  }\n  if (n2 \u003c 1024 * 1024) {\n    return `${(n2 / 1024).toFixed(1)} KB`;\n  }\n  return `${(n2 / 1024 / 1024).toFixed(1)} MB`;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLines/viewLine.js\ninit_theme();\ninit_offsetRange();\ninit_model2();\nvar canUseFastRenderedViewLine = (function() {\n  if (isNative) {\n    return true;\n  }\n  if (isLinux || isFirefox || isSafari) {\n    return false;\n  }\n  return true;\n})();\nvar monospaceAssumptionsAreValid = true;\nvar ViewLine = class _ViewLine {\n  static {\n    this.CLASS_NAME = \"view-line\";\n  }\n  constructor(_viewGpuContext, options2) {\n    this._viewGpuContext = _viewGpuContext;\n    this._options = options2;\n    this._isMaybeInvalid = true;\n    this._renderedViewLine = null;\n  }\n  // --- begin IVisibleLineData\n  getDomNode() {\n    if (this._renderedViewLine \u0026\u0026 this._renderedViewLine.domNode) {\n      return this._renderedViewLine.domNode.domNode;\n    }\n    return null;\n  }\n  setDomNode(domNode) {\n    if (this._renderedViewLine) {\n      this._renderedViewLine.domNode = createFastDomNode(domNode);\n    } else {\n      throw new Error(\"I have no rendered view line to set the dom node to...\");\n    }\n  }\n  onContentChanged() {\n    this._isMaybeInvalid = true;\n  }\n  onTokensChanged() {\n    this._isMaybeInvalid = true;\n  }\n  onDecorationsChanged() {\n    this._isMaybeInvalid = true;\n  }\n  onOptionsChanged(newOptions) {\n    this._isMaybeInvalid = true;\n    this._options = newOptions;\n  }\n  onSelectionChanged() {\n    if (isHighContrast(this._options.themeType) || this._renderedViewLine?.input.renderWhitespace === 2) {\n      this._isMaybeInvalid = true;\n      return true;\n    }\n    return false;\n  }\n  renderLine(lineNumber, deltaTop, lineHeight, viewportData, sb) {\n    if (this._options.useGpu \u0026\u0026 this._viewGpuContext?.canRender(this._options, viewportData, lineNumber)) {\n      this._renderedViewLine?.domNode?.domNode.remove();\n      this._renderedViewLine = null;\n      return false;\n    }\n    if (this._isMaybeInvalid === false) {\n      return false;\n    }\n    this._isMaybeInvalid = false;\n    const lineData = viewportData.getViewLineRenderingData(lineNumber);\n    const options2 = this._options;\n    const actualInlineDecorations = LineDecoration.filter(lineData.inlineDecorations, lineNumber, lineData.minColumn, lineData.maxColumn);\n    const renderWhitespace = lineData.hasVariableFonts || options2.experimentalWhitespaceRendering === \"off\" ? options2.renderWhitespace : \"none\";\n    const allowFastRendering = !lineData.hasVariableFonts;\n    let selectionsOnLine = null;\n    if (isHighContrast(options2.themeType) || renderWhitespace === \"selection\") {\n      const selections = viewportData.selections;\n      for (const selection of selections) {\n        if (selection.endLineNumber \u003c lineNumber || selection.startLineNumber \u003e lineNumber) {\n          continue;\n        }\n        const startColumn = selection.startLineNumber === lineNumber ? selection.startColumn : lineData.minColumn;\n        const endColumn = selection.endLineNumber === lineNumber ? selection.endColumn : lineData.maxColumn;\n        if (startColumn \u003c endColumn) {\n          if (isHighContrast(options2.themeType)) {\n            actualInlineDecorations.push(new LineDecoration(\n              startColumn,\n              endColumn,\n              \"inline-selected-text\",\n              0\n              /* InlineDecorationType.Regular */\n            ));\n          }\n          if (renderWhitespace === \"selection\") {\n            if (!selectionsOnLine) {\n              selectionsOnLine = [];\n            }\n            selectionsOnLine.push(new OffsetRange(startColumn - 1, endColumn - 1));\n          }\n        }\n      }\n    }\n    const renderLineInput = new RenderLineInput(options2.useMonospaceOptimizations, options2.canUseHalfwidthRightwardsArrow, lineData.content, lineData.continuesWithWrappedLine, lineData.isBasicASCII, lineData.containsRTL, lineData.minColumn - 1, lineData.tokens, actualInlineDecorations, lineData.tabSize, lineData.startVisibleColumn, options2.spaceWidth, options2.middotWidth, options2.wsmiddotWidth, options2.stopRenderingLineAfter, renderWhitespace, options2.renderControlCharacters, options2.fontLigatures !== EditorFontLigatures.OFF, selectionsOnLine, lineData.textDirection, options2.verticalScrollbarSize);\n    if (this._renderedViewLine \u0026\u0026 this._renderedViewLine.input.equals(renderLineInput)) {\n      return false;\n    }\n    sb.appendString(\"\u003cdiv \");\n    if (lineData.textDirection === TextDirection.RTL) {\n      sb.appendString('dir=\"rtl\" ');\n    } else if (lineData.containsRTL) {\n      sb.appendString('dir=\"ltr\" ');\n    }\n    sb.appendString('style=\"top:');\n    sb.appendString(String(deltaTop));\n    sb.appendString(\"px;height:\");\n    sb.appendString(String(lineHeight));\n    sb.appendString(\"px;line-height:\");\n    sb.appendString(String(lineHeight));\n    if (lineData.textDirection === TextDirection.RTL) {\n      sb.appendString(\"px;padding-right:\");\n      sb.appendString(String(options2.verticalScrollbarSize));\n    }\n    sb.appendString('px;\" class=\"');\n    sb.appendString(_ViewLine.CLASS_NAME);\n    sb.appendString('\"\u003e');\n    const output = renderViewLine(renderLineInput, sb);\n    sb.appendString(\"\u003c/div\u003e\");\n    let renderedViewLine = null;\n    if (allowFastRendering \u0026\u0026 monospaceAssumptionsAreValid \u0026\u0026 canUseFastRenderedViewLine \u0026\u0026 lineData.isBasicASCII \u0026\u0026 renderLineInput.isLTR \u0026\u0026 options2.useMonospaceOptimizations \u0026\u0026 output.containsForeignElements === 0) {\n      renderedViewLine = new FastRenderedViewLine(this._renderedViewLine ? this._renderedViewLine.domNode : null, renderLineInput, output.characterMapping);\n    }\n    if (!renderedViewLine) {\n      renderedViewLine = createRenderedLine(this._renderedViewLine ? this._renderedViewLine.domNode : null, renderLineInput, output.characterMapping, output.containsForeignElements);\n    }\n    this._renderedViewLine = renderedViewLine;\n    return true;\n  }\n  layoutLine(lineNumber, deltaTop, lineHeight) {\n    if (this._renderedViewLine \u0026\u0026 this._renderedViewLine.domNode) {\n      this._renderedViewLine.domNode.setTop(deltaTop);\n      this._renderedViewLine.domNode.setHeight(lineHeight);\n      this._renderedViewLine.domNode.setLineHeight(lineHeight);\n    }\n  }\n  // --- end IVisibleLineData\n  isRenderedRTL() {\n    if (!this._renderedViewLine) {\n      return false;\n    }\n    return this._renderedViewLine.input.textDirection === TextDirection.RTL;\n  }\n  getWidth(context) {\n    if (!this._renderedViewLine) {\n      return 0;\n    }\n    return this._renderedViewLine.getWidth(context);\n  }\n  getWidthIsFast() {\n    if (!this._renderedViewLine) {\n      return true;\n    }\n    return this._renderedViewLine.getWidthIsFast();\n  }\n  needsMonospaceFontCheck() {\n    if (!this._renderedViewLine) {\n      return false;\n    }\n    return this._renderedViewLine instanceof FastRenderedViewLine;\n  }\n  monospaceAssumptionsAreValid() {\n    if (!this._renderedViewLine) {\n      return monospaceAssumptionsAreValid;\n    }\n    if (this._renderedViewLine instanceof FastRenderedViewLine) {\n      return this._renderedViewLine.monospaceAssumptionsAreValid();\n    }\n    return monospaceAssumptionsAreValid;\n  }\n  onMonospaceAssumptionsInvalidated() {\n    if (this._renderedViewLine \u0026\u0026 this._renderedViewLine instanceof FastRenderedViewLine) {\n      this._renderedViewLine = this._renderedViewLine.toSlowRenderedLine();\n    }\n  }\n  getVisibleRangesForRange(lineNumber, startColumn, endColumn, context) {\n    if (!this._renderedViewLine) {\n      return null;\n    }\n    startColumn = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, startColumn));\n    endColumn = Math.min(this._renderedViewLine.input.lineContent.length + 1, Math.max(1, endColumn));\n    const stopRenderingLineAfter = this._renderedViewLine.input.stopRenderingLineAfter;\n    if (stopRenderingLineAfter !== -1 \u0026\u0026 startColumn \u003e stopRenderingLineAfter + 1 \u0026\u0026 endColumn \u003e stopRenderingLineAfter + 1) {\n      return new VisibleRanges(true, [new FloatHorizontalRange(this.getWidth(context), 0)]);\n    }\n    if (stopRenderingLineAfter !== -1 \u0026\u0026 startColumn \u003e stopRenderingLineAfter + 1) {\n      startColumn = stopRenderingLineAfter + 1;\n    }\n    if (stopRenderingLineAfter !== -1 \u0026\u0026 endColumn \u003e stopRenderingLineAfter + 1) {\n      endColumn = stopRenderingLineAfter + 1;\n    }\n    const horizontalRanges = this._renderedViewLine.getVisibleRangesForRange(lineNumber, startColumn, endColumn, context);\n    if (horizontalRanges \u0026\u0026 horizontalRanges.length \u003e 0) {\n      return new VisibleRanges(false, horizontalRanges);\n    }\n    return null;\n  }\n  getColumnOfNodeOffset(spanNode, offset) {\n    if (!this._renderedViewLine) {\n      return 1;\n    }\n    return this._renderedViewLine.getColumnOfNodeOffset(spanNode, offset);\n  }\n};\nvar FastRenderedViewLine = class {\n  constructor(domNode, renderLineInput, characterMapping) {\n    this._cachedWidth = -1;\n    this.domNode = domNode;\n    this.input = renderLineInput;\n    const keyColumnCount = Math.floor(\n      renderLineInput.lineContent.length / 300\n      /* Constants.MaxMonospaceDistance */\n    );\n    if (keyColumnCount \u003e 0) {\n      this._keyColumnPixelOffsetCache = new Float32Array(keyColumnCount);\n      for (let i2 = 0; i2 \u003c keyColumnCount; i2++) {\n        this._keyColumnPixelOffsetCache[i2] = -1;\n      }\n    } else {\n      this._keyColumnPixelOffsetCache = null;\n    }\n    this._characterMapping = characterMapping;\n    this._charWidth = renderLineInput.spaceWidth;\n  }\n  getWidth(context) {\n    if (!this.domNode || this.input.lineContent.length \u003c 300) {\n      const horizontalOffset = this._characterMapping.getHorizontalOffset(this._characterMapping.length);\n      return Math.round(this._charWidth * horizontalOffset);\n    }\n    if (this._cachedWidth === -1) {\n      this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth;\n      context?.markDidDomLayout();\n    }\n    return this._cachedWidth;\n  }\n  getWidthIsFast() {\n    return this.input.lineContent.length \u003c 300 || this._cachedWidth !== -1;\n  }\n  monospaceAssumptionsAreValid() {\n    if (!this.domNode) {\n      return monospaceAssumptionsAreValid;\n    }\n    if (this.input.lineContent.length \u003c 300) {\n      const expectedWidth = this.getWidth(null);\n      const actualWidth = this.domNode.domNode.firstChild.offsetWidth;\n      if (Math.abs(expectedWidth - actualWidth) \u003e= 2) {\n        console.warn(`monospace assumptions have been violated, therefore disabling monospace optimizations!`);\n        monospaceAssumptionsAreValid = false;\n      }\n    }\n    return monospaceAssumptionsAreValid;\n  }\n  toSlowRenderedLine() {\n    return createRenderedLine(\n      this.domNode,\n      this.input,\n      this._characterMapping,\n      0\n      /* ForeignElementType.None */\n    );\n  }\n  getVisibleRangesForRange(lineNumber, startColumn, endColumn, context) {\n    const startPosition = this._getColumnPixelOffset(lineNumber, startColumn, context);\n    const endPosition = this._getColumnPixelOffset(lineNumber, endColumn, context);\n    return [new FloatHorizontalRange(startPosition, endPosition - startPosition)];\n  }\n  _getColumnPixelOffset(lineNumber, column, context) {\n    if (column \u003c= 300) {\n      const horizontalOffset2 = this._characterMapping.getHorizontalOffset(column);\n      return this._charWidth * horizontalOffset2;\n    }\n    const keyColumnOrdinal = Math.floor(\n      (column - 1) / 300\n      /* Constants.MaxMonospaceDistance */\n    ) - 1;\n    const keyColumn = (keyColumnOrdinal + 1) * 300 + 1;\n    let keyColumnPixelOffset = -1;\n    if (this._keyColumnPixelOffsetCache) {\n      keyColumnPixelOffset = this._keyColumnPixelOffsetCache[keyColumnOrdinal];\n      if (keyColumnPixelOffset === -1) {\n        keyColumnPixelOffset = this._actualReadPixelOffset(lineNumber, keyColumn, context);\n        this._keyColumnPixelOffsetCache[keyColumnOrdinal] = keyColumnPixelOffset;\n      }\n    }\n    if (keyColumnPixelOffset === -1) {\n      const horizontalOffset2 = this._characterMapping.getHorizontalOffset(column);\n      return this._charWidth * horizontalOffset2;\n    }\n    const keyColumnHorizontalOffset = this._characterMapping.getHorizontalOffset(keyColumn);\n    const horizontalOffset = this._characterMapping.getHorizontalOffset(column);\n    return keyColumnPixelOffset + this._charWidth * (horizontalOffset - keyColumnHorizontalOffset);\n  }\n  _getReadingTarget(myDomNode) {\n    return myDomNode.domNode.firstChild;\n  }\n  _actualReadPixelOffset(lineNumber, column, context) {\n    if (!this.domNode) {\n      return -1;\n    }\n    const domPosition = this._characterMapping.getDomPosition(column);\n    const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode), domPosition.partIndex, domPosition.charIndex, domPosition.partIndex, domPosition.charIndex, context);\n    if (!r || r.length === 0) {\n      return -1;\n    }\n    return r[0].left;\n  }\n  getColumnOfNodeOffset(spanNode, offset) {\n    return getColumnOfNodeOffset(this._characterMapping, spanNode, offset);\n  }\n};\nvar RenderedViewLine = class {\n  constructor(domNode, renderLineInput, characterMapping, containsForeignElements) {\n    this.domNode = domNode;\n    this.input = renderLineInput;\n    this._characterMapping = characterMapping;\n    this._isWhitespaceOnly = /^\\s*$/.test(renderLineInput.lineContent);\n    this._containsForeignElements = containsForeignElements;\n    this._cachedWidth = -1;\n    this._pixelOffsetCache = null;\n    if (renderLineInput.isLTR) {\n      this._pixelOffsetCache = new Float32Array(Math.max(2, this._characterMapping.length + 1));\n      for (let column = 0, len = this._characterMapping.length; column \u003c= len; column++) {\n        this._pixelOffsetCache[column] = -1;\n      }\n    }\n  }\n  // --- Reading from the DOM methods\n  _getReadingTarget(myDomNode) {\n    return myDomNode.domNode.firstChild;\n  }\n  /**\n   * Width of the line in pixels\n   */\n  getWidth(context) {\n    if (!this.domNode) {\n      return 0;\n    }\n    if (this._cachedWidth === -1) {\n      this._cachedWidth = this._getReadingTarget(this.domNode).offsetWidth;\n      context?.markDidDomLayout();\n    }\n    return this._cachedWidth;\n  }\n  getWidthIsFast() {\n    if (this._cachedWidth === -1) {\n      return false;\n    }\n    return true;\n  }\n  /**\n   * Visible ranges for a model range\n   */\n  getVisibleRangesForRange(lineNumber, startColumn, endColumn, context) {\n    if (!this.domNode) {\n      return null;\n    }\n    if (this._pixelOffsetCache !== null) {\n      const startOffset = this._readPixelOffset(this.domNode, lineNumber, startColumn, context);\n      if (startOffset === -1) {\n        return null;\n      }\n      const endOffset = this._readPixelOffset(this.domNode, lineNumber, endColumn, context);\n      if (endOffset === -1) {\n        return null;\n      }\n      return [new FloatHorizontalRange(startOffset, endOffset - startOffset)];\n    }\n    return this._readVisibleRangesForRange(this.domNode, lineNumber, startColumn, endColumn, context);\n  }\n  _readVisibleRangesForRange(domNode, lineNumber, startColumn, endColumn, context) {\n    if (startColumn === endColumn) {\n      const pixelOffset = this._readPixelOffset(domNode, lineNumber, startColumn, context);\n      if (pixelOffset === -1) {\n        return null;\n      } else {\n        return [new FloatHorizontalRange(pixelOffset, 0)];\n      }\n    } else {\n      return this._readRawVisibleRangesForRange(domNode, startColumn, endColumn, context);\n    }\n  }\n  _readPixelOffset(domNode, lineNumber, column, context) {\n    if (this.input.isLTR \u0026\u0026 this._characterMapping.length === 0) {\n      if (this._containsForeignElements === 0) {\n        return 0;\n      }\n      if (this._containsForeignElements === 2) {\n        return 0;\n      }\n      if (this._containsForeignElements === 1) {\n        return this.getWidth(context);\n      }\n      const readingTarget = this._getReadingTarget(domNode);\n      if (readingTarget.firstChild) {\n        context.markDidDomLayout();\n        return readingTarget.firstChild.offsetWidth;\n      } else {\n        return 0;\n      }\n    }\n    if (this._pixelOffsetCache !== null) {\n      const cachedPixelOffset = this._pixelOffsetCache[column];\n      if (cachedPixelOffset !== -1) {\n        return cachedPixelOffset;\n      }\n      const result = this._actualReadPixelOffset(domNode, lineNumber, column, context);\n      this._pixelOffsetCache[column] = result;\n      return result;\n    }\n    return this._actualReadPixelOffset(domNode, lineNumber, column, context);\n  }\n  _actualReadPixelOffset(domNode, lineNumber, column, context) {\n    if (this._characterMapping.length === 0) {\n      const r2 = RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), 0, 0, 0, 0, context);\n      if (!r2 || r2.length === 0) {\n        return -1;\n      }\n      return r2[0].left;\n    }\n    if (this.input.isLTR \u0026\u0026 column === this._characterMapping.length \u0026\u0026 this._isWhitespaceOnly \u0026\u0026 this._containsForeignElements === 0) {\n      return this.getWidth(context);\n    }\n    const domPosition = this._characterMapping.getDomPosition(column);\n    const r = RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), domPosition.partIndex, domPosition.charIndex, domPosition.partIndex, domPosition.charIndex, context);\n    if (!r || r.length === 0) {\n      return -1;\n    }\n    const result = r[0].left;\n    if (this.input.isBasicASCII) {\n      const horizontalOffset = this._characterMapping.getHorizontalOffset(column);\n      const expectedResult = Math.round(this.input.spaceWidth * horizontalOffset);\n      if (Math.abs(expectedResult - result) \u003c= 1) {\n        return expectedResult;\n      }\n    }\n    return result;\n  }\n  _readRawVisibleRangesForRange(domNode, startColumn, endColumn, context) {\n    if (this.input.isLTR \u0026\u0026 startColumn === 1 \u0026\u0026 endColumn === this._characterMapping.length) {\n      return [new FloatHorizontalRange(0, this.getWidth(context))];\n    }\n    const startDomPosition = this._characterMapping.getDomPosition(startColumn);\n    const endDomPosition = this._characterMapping.getDomPosition(endColumn);\n    return RangeUtil.readHorizontalRanges(this._getReadingTarget(domNode), startDomPosition.partIndex, startDomPosition.charIndex, endDomPosition.partIndex, endDomPosition.charIndex, context);\n  }\n  /**\n   * Returns the column for the text found at a specific offset inside a rendered dom node\n   */\n  getColumnOfNodeOffset(spanNode, offset) {\n    return getColumnOfNodeOffset(this._characterMapping, spanNode, offset);\n  }\n};\nvar WebKitRenderedViewLine = class extends RenderedViewLine {\n  _readVisibleRangesForRange(domNode, lineNumber, startColumn, endColumn, context) {\n    const output = super._readVisibleRangesForRange(domNode, lineNumber, startColumn, endColumn, context);\n    if (!output || output.length === 0 || startColumn === endColumn || startColumn === 1 \u0026\u0026 endColumn === this._characterMapping.length) {\n      return output;\n    }\n    if (this.input.isLTR) {\n      const endPixelOffset = this._readPixelOffset(domNode, lineNumber, endColumn, context);\n      if (endPixelOffset !== -1) {\n        const lastRange = output[output.length - 1];\n        if (lastRange.left \u003c endPixelOffset) {\n          lastRange.width = endPixelOffset - lastRange.left;\n        }\n      }\n    }\n    return output;\n  }\n};\nvar createRenderedLine = (function() {\n  if (isWebKit) {\n    return createWebKitRenderedLine;\n  }\n  return createNormalRenderedLine;\n})();\nfunction createWebKitRenderedLine(domNode, renderLineInput, characterMapping, containsForeignElements) {\n  return new WebKitRenderedViewLine(domNode, renderLineInput, characterMapping, containsForeignElements);\n}\nfunction createNormalRenderedLine(domNode, renderLineInput, characterMapping, containsForeignElements) {\n  return new RenderedViewLine(domNode, renderLineInput, characterMapping, containsForeignElements);\n}\nfunction getColumnOfNodeOffset(characterMapping, spanNode, offset) {\n  const spanNodeTextContentLength = spanNode.textContent.length;\n  let spanIndex = -1;\n  while (spanNode) {\n    spanNode = spanNode.previousSibling;\n    spanIndex++;\n  }\n  return characterMapping.getColumn(new DomPosition(spanIndex, offset), spanNodeTextContentLength);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/mouseTarget.js\ninit_position();\ninit_range();\ninit_cursorColumns();\ninit_dom();\ninit_model2();\ninit_lazy();\nvar UnknownHitTestResult = class {\n  constructor(hitTarget = null) {\n    this.hitTarget = hitTarget;\n    this.type = 0;\n  }\n};\nvar ContentHitTestResult = class {\n  get hitTarget() {\n    return this.spanNode;\n  }\n  constructor(position, spanNode, injectedText) {\n    this.position = position;\n    this.spanNode = spanNode;\n    this.injectedText = injectedText;\n    this.type = 1;\n  }\n};\nvar HitTestResult;\n(function(HitTestResult2) {\n  function createFromDOMInfo(ctx, spanNode, offset) {\n    const position = ctx.getPositionFromDOMInfo(spanNode, offset);\n    if (position) {\n      return new ContentHitTestResult(position, spanNode, null);\n    }\n    return new UnknownHitTestResult(spanNode);\n  }\n  HitTestResult2.createFromDOMInfo = createFromDOMInfo;\n})(HitTestResult || (HitTestResult = {}));\nvar PointerHandlerLastRenderData = class {\n  constructor(lastViewCursorsRenderData, lastTextareaPosition) {\n    this.lastViewCursorsRenderData = lastViewCursorsRenderData;\n    this.lastTextareaPosition = lastTextareaPosition;\n  }\n};\nvar MouseTarget = class {\n  static _deduceRage(position, range2 = null) {\n    if (!range2 \u0026\u0026 position) {\n      return new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n    }\n    return range2 ?? null;\n  }\n  static createUnknown(element, mouseColumn, position) {\n    return { type: 0, element, mouseColumn, position, range: this._deduceRage(position) };\n  }\n  static createTextarea(element, mouseColumn) {\n    return { type: 1, element, mouseColumn, position: null, range: null };\n  }\n  static createMargin(type, element, mouseColumn, position, range2, detail) {\n    return { type, element, mouseColumn, position, range: range2, detail };\n  }\n  static createViewZone(type, element, mouseColumn, position, detail) {\n    return { type, element, mouseColumn, position, range: this._deduceRage(position), detail };\n  }\n  static createContentText(element, mouseColumn, position, range2, detail) {\n    return { type: 6, element, mouseColumn, position, range: this._deduceRage(position, range2), detail };\n  }\n  static createContentEmpty(element, mouseColumn, position, detail) {\n    return { type: 7, element, mouseColumn, position, range: this._deduceRage(position), detail };\n  }\n  static createContentWidget(element, mouseColumn, detail) {\n    return { type: 9, element, mouseColumn, position: null, range: null, detail };\n  }\n  static createScrollbar(element, mouseColumn, position) {\n    return { type: 11, element, mouseColumn, position, range: this._deduceRage(position) };\n  }\n  static createOverlayWidget(element, mouseColumn, detail) {\n    return { type: 12, element, mouseColumn, position: null, range: null, detail };\n  }\n  static createOutsideEditor(mouseColumn, position, outsidePosition, outsideDistance) {\n    return { type: 13, element: null, mouseColumn, position, range: this._deduceRage(position), outsidePosition, outsideDistance };\n  }\n  static _typeToString(type) {\n    if (type === 1) {\n      return \"TEXTAREA\";\n    }\n    if (type === 2) {\n      return \"GUTTER_GLYPH_MARGIN\";\n    }\n    if (type === 3) {\n      return \"GUTTER_LINE_NUMBERS\";\n    }\n    if (type === 4) {\n      return \"GUTTER_LINE_DECORATIONS\";\n    }\n    if (type === 5) {\n      return \"GUTTER_VIEW_ZONE\";\n    }\n    if (type === 6) {\n      return \"CONTENT_TEXT\";\n    }\n    if (type === 7) {\n      return \"CONTENT_EMPTY\";\n    }\n    if (type === 8) {\n      return \"CONTENT_VIEW_ZONE\";\n    }\n    if (type === 9) {\n      return \"CONTENT_WIDGET\";\n    }\n    if (type === 10) {\n      return \"OVERVIEW_RULER\";\n    }\n    if (type === 11) {\n      return \"SCROLLBAR\";\n    }\n    if (type === 12) {\n      return \"OVERLAY_WIDGET\";\n    }\n    return \"UNKNOWN\";\n  }\n  static toString(target) {\n    return this._typeToString(target.type) + \": \" + target.position + \" - \" + target.range + \" - \" + JSON.stringify(target.detail);\n  }\n};\nvar ElementPath = class {\n  static isTextArea(path) {\n    return path.length === 2 \u0026\u0026 path[0] === 3 \u0026\u0026 path[1] === 7;\n  }\n  static isChildOfViewLines(path) {\n    return path.length \u003e= 4 \u0026\u0026 path[0] === 3 \u0026\u0026 path[3] === 8;\n  }\n  static isStrictChildOfViewLines(path) {\n    return path.length \u003e 4 \u0026\u0026 path[0] === 3 \u0026\u0026 path[3] === 8;\n  }\n  static isChildOfScrollableElement(path) {\n    return path.length \u003e= 2 \u0026\u0026 path[0] === 3 \u0026\u0026 path[1] === 6;\n  }\n  static isChildOfMinimap(path) {\n    return path.length \u003e= 2 \u0026\u0026 path[0] === 3 \u0026\u0026 path[1] === 9;\n  }\n  static isChildOfContentWidgets(path) {\n    return path.length \u003e= 4 \u0026\u0026 path[0] === 3 \u0026\u0026 path[3] === 1;\n  }\n  static isChildOfOverflowGuard(path) {\n    return path.length \u003e= 1 \u0026\u0026 path[0] === 3;\n  }\n  static isChildOfOverflowingContentWidgets(path) {\n    return path.length \u003e= 1 \u0026\u0026 path[0] === 2;\n  }\n  static isChildOfOverlayWidgets(path) {\n    return path.length \u003e= 2 \u0026\u0026 path[0] === 3 \u0026\u0026 path[1] === 4;\n  }\n  static isChildOfOverflowingOverlayWidgets(path) {\n    return path.length \u003e= 1 \u0026\u0026 path[0] === 5;\n  }\n};\nvar HitTestContext = class _HitTestContext {\n  constructor(context, viewHelper, lastRenderData) {\n    this.viewModel = context.viewModel;\n    const options2 = context.configuration.options;\n    this.layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this.viewDomNode = viewHelper.viewDomNode;\n    this.viewLinesGpu = viewHelper.viewLinesGpu;\n    this.lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this.stickyTabStops = options2.get(\n      131\n      /* EditorOption.stickyTabStops */\n    );\n    this.typicalHalfwidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n    this.lastRenderData = lastRenderData;\n    this._context = context;\n    this._viewHelper = viewHelper;\n  }\n  getZoneAtCoord(mouseVerticalOffset) {\n    return _HitTestContext.getZoneAtCoord(this._context, mouseVerticalOffset);\n  }\n  static getZoneAtCoord(context, mouseVerticalOffset) {\n    const viewZoneWhitespace = context.viewLayout.getWhitespaceAtVerticalOffset(mouseVerticalOffset);\n    if (viewZoneWhitespace) {\n      const viewZoneMiddle = viewZoneWhitespace.verticalOffset + viewZoneWhitespace.height / 2;\n      const lineCount = context.viewModel.getLineCount();\n      let positionBefore = null;\n      let position;\n      let positionAfter = null;\n      if (viewZoneWhitespace.afterLineNumber !== lineCount) {\n        positionAfter = new Position(viewZoneWhitespace.afterLineNumber + 1, 1);\n      }\n      if (viewZoneWhitespace.afterLineNumber \u003e 0) {\n        positionBefore = new Position(viewZoneWhitespace.afterLineNumber, context.viewModel.getLineMaxColumn(viewZoneWhitespace.afterLineNumber));\n      }\n      if (positionAfter === null) {\n        position = positionBefore;\n      } else if (positionBefore === null) {\n        position = positionAfter;\n      } else if (mouseVerticalOffset \u003c viewZoneMiddle) {\n        position = positionBefore;\n      } else {\n        position = positionAfter;\n      }\n      return {\n        viewZoneId: viewZoneWhitespace.id,\n        afterLineNumber: viewZoneWhitespace.afterLineNumber,\n        positionBefore,\n        positionAfter,\n        position\n      };\n    }\n    return null;\n  }\n  getFullLineRangeAtCoord(mouseVerticalOffset) {\n    if (this._context.viewLayout.isAfterLines(mouseVerticalOffset)) {\n      const lineNumber2 = this._context.viewModel.getLineCount();\n      const maxLineColumn2 = this._context.viewModel.getLineMaxColumn(lineNumber2);\n      return {\n        range: new Range(lineNumber2, maxLineColumn2, lineNumber2, maxLineColumn2),\n        isAfterLines: true\n      };\n    }\n    const lineNumber = this._context.viewLayout.getLineNumberAtVerticalOffset(mouseVerticalOffset);\n    const maxLineColumn = this._context.viewModel.getLineMaxColumn(lineNumber);\n    return {\n      range: new Range(lineNumber, 1, lineNumber, maxLineColumn),\n      isAfterLines: false\n    };\n  }\n  getLineNumberAtVerticalOffset(mouseVerticalOffset) {\n    return this._context.viewLayout.getLineNumberAtVerticalOffset(mouseVerticalOffset);\n  }\n  isAfterLines(mouseVerticalOffset) {\n    return this._context.viewLayout.isAfterLines(mouseVerticalOffset);\n  }\n  isInTopPadding(mouseVerticalOffset) {\n    return this._context.viewLayout.isInTopPadding(mouseVerticalOffset);\n  }\n  isInBottomPadding(mouseVerticalOffset) {\n    return this._context.viewLayout.isInBottomPadding(mouseVerticalOffset);\n  }\n  getVerticalOffsetForLineNumber(lineNumber) {\n    return this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber);\n  }\n  findAttribute(element, attr) {\n    return _HitTestContext._findAttribute(element, attr, this._viewHelper.viewDomNode);\n  }\n  static _findAttribute(element, attr, stopAt) {\n    while (element \u0026\u0026 element !== element.ownerDocument.body) {\n      if (element.hasAttribute \u0026\u0026 element.hasAttribute(attr)) {\n        return element.getAttribute(attr);\n      }\n      if (element === stopAt) {\n        return null;\n      }\n      element = element.parentNode;\n    }\n    return null;\n  }\n  getLineWidth(lineNumber) {\n    return this._viewHelper.getLineWidth(lineNumber);\n  }\n  isRtl(lineNumber) {\n    return this.viewModel.getTextDirection(lineNumber) === TextDirection.RTL;\n  }\n  visibleRangeForPosition(lineNumber, column) {\n    return this._viewHelper.visibleRangeForPosition(lineNumber, column);\n  }\n  getPositionFromDOMInfo(spanNode, offset) {\n    return this._viewHelper.getPositionFromDOMInfo(spanNode, offset);\n  }\n  getCurrentScrollTop() {\n    return this._context.viewLayout.getCurrentScrollTop();\n  }\n  getCurrentScrollLeft() {\n    return this._context.viewLayout.getCurrentScrollLeft();\n  }\n};\nvar BareHitTestRequest = class {\n  constructor(ctx, editorPos, pos, relativePos) {\n    this.editorPos = editorPos;\n    this.pos = pos;\n    this.relativePos = relativePos;\n    this.mouseVerticalOffset = Math.max(0, ctx.getCurrentScrollTop() + this.relativePos.y);\n    this.mouseContentHorizontalOffset = ctx.getCurrentScrollLeft() + this.relativePos.x - ctx.layoutInfo.contentLeft;\n    this.isInMarginArea = this.relativePos.x \u003c ctx.layoutInfo.contentLeft \u0026\u0026 this.relativePos.x \u003e= ctx.layoutInfo.glyphMarginLeft;\n    this.isInContentArea = !this.isInMarginArea;\n    this.mouseColumn = Math.max(0, MouseTargetFactory._getMouseColumn(this.mouseContentHorizontalOffset, ctx.typicalHalfwidthCharacterWidth));\n  }\n};\nvar HitTestRequest = class extends BareHitTestRequest {\n  get target() {\n    if (this._useHitTestTarget) {\n      return this.hitTestResult.value.hitTarget;\n    }\n    return this._eventTarget;\n  }\n  get targetPath() {\n    if (this._targetPathCacheElement !== this.target) {\n      this._targetPathCacheElement = this.target;\n      this._targetPathCacheValue = PartFingerprints.collect(this.target, this._ctx.viewDomNode);\n    }\n    return this._targetPathCacheValue;\n  }\n  constructor(ctx, editorPos, pos, relativePos, eventTarget) {\n    super(ctx, editorPos, pos, relativePos);\n    this.hitTestResult = new Lazy(() =\u003e MouseTargetFactory.doHitTest(this._ctx, this));\n    this._targetPathCacheElement = null;\n    this._targetPathCacheValue = new Uint8Array(0);\n    this._ctx = ctx;\n    this._eventTarget = eventTarget;\n    const hasEventTarget = Boolean(this._eventTarget);\n    this._useHitTestTarget = !hasEventTarget;\n  }\n  toString() {\n    return `pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset}\n\ttarget: ${this.target ? this.target.outerHTML : null}`;\n  }\n  get wouldBenefitFromHitTestTargetSwitch() {\n    return !this._useHitTestTarget \u0026\u0026 this.hitTestResult.value.hitTarget !== null \u0026\u0026 this.target !== this.hitTestResult.value.hitTarget;\n  }\n  switchToHitTestTarget() {\n    this._useHitTestTarget = true;\n  }\n  _getMouseColumn(position = null) {\n    if (position \u0026\u0026 position.column \u003c this._ctx.viewModel.getLineMaxColumn(position.lineNumber)) {\n      return CursorColumns.visibleColumnFromColumn(this._ctx.viewModel.getLineContent(position.lineNumber), position.column, this._ctx.viewModel.model.getOptions().tabSize) + 1;\n    }\n    return this.mouseColumn;\n  }\n  fulfillUnknown(position = null) {\n    return MouseTarget.createUnknown(this.target, this._getMouseColumn(position), position);\n  }\n  fulfillTextarea() {\n    return MouseTarget.createTextarea(this.target, this._getMouseColumn());\n  }\n  fulfillMargin(type, position, range2, detail) {\n    return MouseTarget.createMargin(type, this.target, this._getMouseColumn(position), position, range2, detail);\n  }\n  fulfillViewZone(type, position, detail) {\n    return MouseTarget.createViewZone(type, this.target, this._getMouseColumn(position), position, detail);\n  }\n  fulfillContentText(position, range2, detail) {\n    return MouseTarget.createContentText(this.target, this._getMouseColumn(position), position, range2, detail);\n  }\n  fulfillContentEmpty(position, detail) {\n    return MouseTarget.createContentEmpty(this.target, this._getMouseColumn(position), position, detail);\n  }\n  fulfillContentWidget(detail) {\n    return MouseTarget.createContentWidget(this.target, this._getMouseColumn(), detail);\n  }\n  fulfillScrollbar(position) {\n    return MouseTarget.createScrollbar(this.target, this._getMouseColumn(position), position);\n  }\n  fulfillOverlayWidget(detail) {\n    return MouseTarget.createOverlayWidget(this.target, this._getMouseColumn(), detail);\n  }\n};\nvar EMPTY_CONTENT_AFTER_LINES = { isAfterLines: true };\nfunction createEmptyContentDataInLines(horizontalDistanceToText) {\n  return {\n    isAfterLines: false,\n    horizontalDistanceToText\n  };\n}\nvar MouseTargetFactory = class _MouseTargetFactory {\n  constructor(context, viewHelper) {\n    this._context = context;\n    this._viewHelper = viewHelper;\n  }\n  mouseTargetIsWidget(e) {\n    const t = e.target;\n    const path = PartFingerprints.collect(t, this._viewHelper.viewDomNode);\n    if (ElementPath.isChildOfContentWidgets(path) || ElementPath.isChildOfOverflowingContentWidgets(path)) {\n      return true;\n    }\n    if (ElementPath.isChildOfOverlayWidgets(path) || ElementPath.isChildOfOverflowingOverlayWidgets(path)) {\n      return true;\n    }\n    return false;\n  }\n  createMouseTarget(lastRenderData, editorPos, pos, relativePos, target) {\n    const ctx = new HitTestContext(this._context, this._viewHelper, lastRenderData);\n    const request = new HitTestRequest(ctx, editorPos, pos, relativePos, target);\n    try {\n      const r = _MouseTargetFactory._createMouseTarget(ctx, request);\n      if (r.type === 6) {\n        if (ctx.stickyTabStops \u0026\u0026 r.position !== null) {\n          const position = _MouseTargetFactory._snapToSoftTabBoundary(r.position, ctx.viewModel);\n          const range2 = Range.fromPositions(position, position).plusRange(r.range);\n          return request.fulfillContentText(position, range2, r.detail);\n        }\n      }\n      return r;\n    } catch (err) {\n      return request.fulfillUnknown();\n    }\n  }\n  static _createMouseTarget(ctx, request) {\n    if (request.target === null) {\n      return request.fulfillUnknown();\n    }\n    const resolvedRequest = request;\n    let result = null;\n    if (!ElementPath.isChildOfOverflowGuard(request.targetPath) \u0026\u0026 !ElementPath.isChildOfOverflowingContentWidgets(request.targetPath) \u0026\u0026 !ElementPath.isChildOfOverflowingOverlayWidgets(request.targetPath)) {\n      result = result || request.fulfillUnknown();\n    }\n    result = result || _MouseTargetFactory._hitTestContentWidget(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestOverlayWidget(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestMinimap(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestScrollbarSlider(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestViewZone(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestMargin(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestViewCursor(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestTextArea(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestViewLines(ctx, resolvedRequest);\n    result = result || _MouseTargetFactory._hitTestScrollbar(ctx, resolvedRequest);\n    return result || request.fulfillUnknown();\n  }\n  static _hitTestContentWidget(ctx, request) {\n    if (ElementPath.isChildOfContentWidgets(request.targetPath) || ElementPath.isChildOfOverflowingContentWidgets(request.targetPath)) {\n      const widgetId = ctx.findAttribute(request.target, \"widgetId\");\n      if (widgetId) {\n        return request.fulfillContentWidget(widgetId);\n      } else {\n        return request.fulfillUnknown();\n      }\n    }\n    return null;\n  }\n  static _hitTestOverlayWidget(ctx, request) {\n    if (ElementPath.isChildOfOverlayWidgets(request.targetPath) || ElementPath.isChildOfOverflowingOverlayWidgets(request.targetPath)) {\n      const widgetId = ctx.findAttribute(request.target, \"widgetId\");\n      if (widgetId) {\n        return request.fulfillOverlayWidget(widgetId);\n      } else {\n        return request.fulfillUnknown();\n      }\n    }\n    return null;\n  }\n  static _hitTestViewCursor(ctx, request) {\n    if (request.target) {\n      const lastViewCursorsRenderData = ctx.lastRenderData.lastViewCursorsRenderData;\n      for (const d of lastViewCursorsRenderData) {\n        if (request.target === d.domNode) {\n          return request.fulfillContentText(d.position, null, { mightBeForeignElement: false, injectedText: null });\n        }\n      }\n    }\n    if (request.isInContentArea) {\n      const lastViewCursorsRenderData = ctx.lastRenderData.lastViewCursorsRenderData;\n      const mouseContentHorizontalOffset = request.mouseContentHorizontalOffset;\n      const mouseVerticalOffset = request.mouseVerticalOffset;\n      for (const d of lastViewCursorsRenderData) {\n        if (mouseContentHorizontalOffset \u003c d.contentLeft) {\n          continue;\n        }\n        if (mouseContentHorizontalOffset \u003e d.contentLeft + d.width) {\n          continue;\n        }\n        const cursorVerticalOffset = ctx.getVerticalOffsetForLineNumber(d.position.lineNumber);\n        if (cursorVerticalOffset \u003c= mouseVerticalOffset \u0026\u0026 mouseVerticalOffset \u003c= cursorVerticalOffset + d.height) {\n          return request.fulfillContentText(d.position, null, { mightBeForeignElement: false, injectedText: null });\n        }\n      }\n    }\n    return null;\n  }\n  static _hitTestViewZone(ctx, request) {\n    const viewZoneData = ctx.getZoneAtCoord(request.mouseVerticalOffset);\n    if (viewZoneData) {\n      const mouseTargetType = request.isInContentArea ? 8 : 5;\n      return request.fulfillViewZone(mouseTargetType, viewZoneData.position, viewZoneData);\n    }\n    return null;\n  }\n  static _hitTestTextArea(ctx, request) {\n    if (ElementPath.isTextArea(request.targetPath)) {\n      if (ctx.lastRenderData.lastTextareaPosition) {\n        return request.fulfillContentText(ctx.lastRenderData.lastTextareaPosition, null, { mightBeForeignElement: false, injectedText: null });\n      }\n      return request.fulfillTextarea();\n    }\n    return null;\n  }\n  static _hitTestMargin(ctx, request) {\n    if (request.isInMarginArea) {\n      const res = ctx.getFullLineRangeAtCoord(request.mouseVerticalOffset);\n      const pos = res.range.getStartPosition();\n      let offset = Math.abs(request.relativePos.x);\n      const detail = {\n        isAfterLines: res.isAfterLines,\n        glyphMarginLeft: ctx.layoutInfo.glyphMarginLeft,\n        glyphMarginWidth: ctx.layoutInfo.glyphMarginWidth,\n        lineNumbersWidth: ctx.layoutInfo.lineNumbersWidth,\n        offsetX: offset\n      };\n      offset -= ctx.layoutInfo.glyphMarginLeft;\n      if (offset \u003c= ctx.layoutInfo.glyphMarginWidth) {\n        const modelCoordinate = ctx.viewModel.coordinatesConverter.convertViewPositionToModelPosition(res.range.getStartPosition());\n        const lanes = ctx.viewModel.glyphLanes.getLanesAtLine(modelCoordinate.lineNumber);\n        detail.glyphMarginLane = lanes[Math.floor(offset / ctx.lineHeight)];\n        return request.fulfillMargin(2, pos, res.range, detail);\n      }\n      offset -= ctx.layoutInfo.glyphMarginWidth;\n      if (offset \u003c= ctx.layoutInfo.lineNumbersWidth) {\n        return request.fulfillMargin(3, pos, res.range, detail);\n      }\n      offset -= ctx.layoutInfo.lineNumbersWidth;\n      return request.fulfillMargin(4, pos, res.range, detail);\n    }\n    return null;\n  }\n  static _hitTestViewLines(ctx, request) {\n    if (!ElementPath.isChildOfViewLines(request.targetPath)) {\n      return null;\n    }\n    if (ctx.isInTopPadding(request.mouseVerticalOffset)) {\n      return request.fulfillContentEmpty(new Position(1, 1), EMPTY_CONTENT_AFTER_LINES);\n    }\n    if (ctx.isAfterLines(request.mouseVerticalOffset) || ctx.isInBottomPadding(request.mouseVerticalOffset)) {\n      const lineCount = ctx.viewModel.getLineCount();\n      const maxLineColumn = ctx.viewModel.getLineMaxColumn(lineCount);\n      return request.fulfillContentEmpty(new Position(lineCount, maxLineColumn), EMPTY_CONTENT_AFTER_LINES);\n    }\n    if (ElementPath.isStrictChildOfViewLines(request.targetPath)) {\n      const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n      const lineLength = ctx.viewModel.getLineLength(lineNumber);\n      const lineWidth = ctx.getLineWidth(lineNumber);\n      if (lineLength === 0) {\n        const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n        return request.fulfillContentEmpty(new Position(lineNumber, 1), detail);\n      }\n      const isRtl = ctx.isRtl(lineNumber);\n      if (isRtl) {\n        if (request.mouseContentHorizontalOffset + lineWidth \u003c= ctx.layoutInfo.contentWidth - ctx.layoutInfo.verticalScrollbarWidth) {\n          const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n          const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber));\n          return request.fulfillContentEmpty(pos, detail);\n        }\n      } else if (request.mouseContentHorizontalOffset \u003e= lineWidth) {\n        const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n        const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber));\n        return request.fulfillContentEmpty(pos, detail);\n      }\n    } else {\n      if (ctx.viewLinesGpu) {\n        const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n        if (ctx.viewModel.getLineLength(lineNumber) === 0) {\n          const lineWidth2 = ctx.getLineWidth(lineNumber);\n          const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth2);\n          return request.fulfillContentEmpty(new Position(lineNumber, 1), detail);\n        }\n        const lineWidth = ctx.getLineWidth(lineNumber);\n        const isRtl = ctx.isRtl(lineNumber);\n        if (isRtl) {\n          if (request.mouseContentHorizontalOffset + lineWidth \u003c= ctx.layoutInfo.contentWidth - ctx.layoutInfo.verticalScrollbarWidth) {\n            const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n            const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber));\n            return request.fulfillContentEmpty(pos, detail);\n          }\n        } else if (request.mouseContentHorizontalOffset \u003e= lineWidth) {\n          const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n          const pos = new Position(lineNumber, ctx.viewModel.getLineMaxColumn(lineNumber));\n          return request.fulfillContentEmpty(pos, detail);\n        }\n        const position = ctx.viewLinesGpu.getPositionAtCoordinate(lineNumber, request.mouseContentHorizontalOffset);\n        if (position) {\n          const detail = {\n            injectedText: null,\n            mightBeForeignElement: false\n          };\n          return request.fulfillContentText(position, Range.fromPositions(position, position), detail);\n        }\n      }\n    }\n    const hitTestResult = request.hitTestResult.value;\n    if (hitTestResult.type === 1) {\n      return _MouseTargetFactory.createMouseTargetFromHitTestPosition(ctx, request, hitTestResult.spanNode, hitTestResult.position, hitTestResult.injectedText);\n    }\n    if (request.wouldBenefitFromHitTestTargetSwitch) {\n      request.switchToHitTestTarget();\n      return this._createMouseTarget(ctx, request);\n    }\n    return request.fulfillUnknown();\n  }\n  static _hitTestMinimap(ctx, request) {\n    if (ElementPath.isChildOfMinimap(request.targetPath)) {\n      const possibleLineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n      const maxColumn = ctx.viewModel.getLineMaxColumn(possibleLineNumber);\n      return request.fulfillScrollbar(new Position(possibleLineNumber, maxColumn));\n    }\n    return null;\n  }\n  static _hitTestScrollbarSlider(ctx, request) {\n    if (ElementPath.isChildOfScrollableElement(request.targetPath)) {\n      if (request.target \u0026\u0026 request.target.nodeType === 1) {\n        const className2 = request.target.className;\n        if (className2 \u0026\u0026 /\\b(slider|scrollbar)\\b/.test(className2)) {\n          const possibleLineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n          const maxColumn = ctx.viewModel.getLineMaxColumn(possibleLineNumber);\n          return request.fulfillScrollbar(new Position(possibleLineNumber, maxColumn));\n        }\n      }\n    }\n    return null;\n  }\n  static _hitTestScrollbar(ctx, request) {\n    if (ElementPath.isChildOfScrollableElement(request.targetPath)) {\n      const possibleLineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n      const maxColumn = ctx.viewModel.getLineMaxColumn(possibleLineNumber);\n      return request.fulfillScrollbar(new Position(possibleLineNumber, maxColumn));\n    }\n    return null;\n  }\n  getMouseColumn(relativePos) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const mouseContentHorizontalOffset = this._context.viewLayout.getCurrentScrollLeft() + relativePos.x - layoutInfo.contentLeft;\n    return _MouseTargetFactory._getMouseColumn(mouseContentHorizontalOffset, options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth);\n  }\n  static _getMouseColumn(mouseContentHorizontalOffset, typicalHalfwidthCharacterWidth) {\n    if (mouseContentHorizontalOffset \u003c 0) {\n      return 1;\n    }\n    const chars = Math.round(mouseContentHorizontalOffset / typicalHalfwidthCharacterWidth);\n    return chars + 1;\n  }\n  static createMouseTargetFromHitTestPosition(ctx, request, spanNode, pos, injectedText) {\n    const lineNumber = pos.lineNumber;\n    const column = pos.column;\n    const lineWidth = ctx.getLineWidth(lineNumber);\n    if (request.mouseContentHorizontalOffset \u003e lineWidth) {\n      const detail = createEmptyContentDataInLines(request.mouseContentHorizontalOffset - lineWidth);\n      return request.fulfillContentEmpty(pos, detail);\n    }\n    const visibleRange = ctx.visibleRangeForPosition(lineNumber, column);\n    if (!visibleRange) {\n      return request.fulfillUnknown(pos);\n    }\n    const columnHorizontalOffset = visibleRange.left;\n    if (Math.abs(request.mouseContentHorizontalOffset - columnHorizontalOffset) \u003c 1) {\n      return request.fulfillContentText(pos, null, { mightBeForeignElement: !!injectedText, injectedText });\n    }\n    const points = [];\n    points.push({ offset: visibleRange.left, column });\n    if (column \u003e 1) {\n      const visibleRange2 = ctx.visibleRangeForPosition(lineNumber, column - 1);\n      if (visibleRange2) {\n        points.push({ offset: visibleRange2.left, column: column - 1 });\n      }\n    }\n    const lineMaxColumn = ctx.viewModel.getLineMaxColumn(lineNumber);\n    if (column \u003c lineMaxColumn) {\n      const visibleRange2 = ctx.visibleRangeForPosition(lineNumber, column + 1);\n      if (visibleRange2) {\n        points.push({ offset: visibleRange2.left, column: column + 1 });\n      }\n    }\n    points.sort((a, b) =\u003e a.offset - b.offset);\n    const mouseCoordinates = request.pos.toClientCoordinates(getWindow(ctx.viewDomNode));\n    const spanNodeClientRect = spanNode.getBoundingClientRect();\n    const mouseIsOverSpanNode = spanNodeClientRect.left \u003c= mouseCoordinates.clientX \u0026\u0026 mouseCoordinates.clientX \u003c= spanNodeClientRect.right;\n    let rng = null;\n    for (let i2 = 1; i2 \u003c points.length; i2++) {\n      const prev = points[i2 - 1];\n      const curr = points[i2];\n      if (prev.offset \u003c= request.mouseContentHorizontalOffset \u0026\u0026 request.mouseContentHorizontalOffset \u003c= curr.offset) {\n        rng = new Range(lineNumber, prev.column, lineNumber, curr.column);\n        const prevDelta = Math.abs(prev.offset - request.mouseContentHorizontalOffset);\n        const nextDelta = Math.abs(curr.offset - request.mouseContentHorizontalOffset);\n        pos = prevDelta \u003c nextDelta ? new Position(lineNumber, prev.column) : new Position(lineNumber, curr.column);\n        break;\n      }\n    }\n    return request.fulfillContentText(pos, rng, { mightBeForeignElement: !mouseIsOverSpanNode || !!injectedText, injectedText });\n  }\n  /**\n   * Most probably WebKit browsers and Edge\n   */\n  static _doHitTestWithCaretRangeFromPoint(ctx, request) {\n    const lineNumber = ctx.getLineNumberAtVerticalOffset(request.mouseVerticalOffset);\n    const lineStartVerticalOffset = ctx.getVerticalOffsetForLineNumber(lineNumber);\n    const lineEndVerticalOffset = lineStartVerticalOffset + ctx.lineHeight;\n    const isBelowLastLine = lineNumber === ctx.viewModel.getLineCount() \u0026\u0026 request.mouseVerticalOffset \u003e lineEndVerticalOffset;\n    if (!isBelowLastLine) {\n      const lineCenteredVerticalOffset = Math.floor((lineStartVerticalOffset + lineEndVerticalOffset) / 2);\n      let adjustedPageY = request.pos.y + (lineCenteredVerticalOffset - request.mouseVerticalOffset);\n      if (adjustedPageY \u003c= request.editorPos.y) {\n        adjustedPageY = request.editorPos.y + 1;\n      }\n      if (adjustedPageY \u003e= request.editorPos.y + request.editorPos.height) {\n        adjustedPageY = request.editorPos.y + request.editorPos.height - 1;\n      }\n      const adjustedPage = new PageCoordinates(request.pos.x, adjustedPageY);\n      const r = this._actualDoHitTestWithCaretRangeFromPoint(ctx, adjustedPage.toClientCoordinates(getWindow(ctx.viewDomNode)));\n      if (r.type === 1) {\n        return r;\n      }\n    }\n    return this._actualDoHitTestWithCaretRangeFromPoint(ctx, request.pos.toClientCoordinates(getWindow(ctx.viewDomNode)));\n  }\n  static _actualDoHitTestWithCaretRangeFromPoint(ctx, coords) {\n    const shadowRoot = getShadowRoot(ctx.viewDomNode);\n    let range2;\n    if (shadowRoot) {\n      if (typeof shadowRoot.caretRangeFromPoint === \"undefined\") {\n        range2 = shadowCaretRangeFromPoint(shadowRoot, coords.clientX, coords.clientY);\n      } else {\n        range2 = shadowRoot.caretRangeFromPoint(coords.clientX, coords.clientY);\n      }\n    } else {\n      range2 = ctx.viewDomNode.ownerDocument.caretRangeFromPoint(coords.clientX, coords.clientY);\n    }\n    if (!range2 || !range2.startContainer) {\n      return new UnknownHitTestResult();\n    }\n    const startContainer = range2.startContainer;\n    if (startContainer.nodeType === startContainer.TEXT_NODE) {\n      const parent1 = startContainer.parentNode;\n      const parent2 = parent1 ? parent1.parentNode : null;\n      const parent3 = parent2 ? parent2.parentNode : null;\n      const parent3ClassName = parent3 \u0026\u0026 parent3.nodeType === parent3.ELEMENT_NODE ? parent3.className : null;\n      if (parent3ClassName === ViewLine.CLASS_NAME) {\n        return HitTestResult.createFromDOMInfo(ctx, parent1, range2.startOffset);\n      } else {\n        return new UnknownHitTestResult(startContainer.parentNode);\n      }\n    } else if (startContainer.nodeType === startContainer.ELEMENT_NODE) {\n      const parent1 = startContainer.parentNode;\n      const parent2 = parent1 ? parent1.parentNode : null;\n      const parent2ClassName = parent2 \u0026\u0026 parent2.nodeType === parent2.ELEMENT_NODE ? parent2.className : null;\n      if (parent2ClassName === ViewLine.CLASS_NAME) {\n        return HitTestResult.createFromDOMInfo(ctx, startContainer, startContainer.textContent.length);\n      } else {\n        return new UnknownHitTestResult(startContainer);\n      }\n    }\n    return new UnknownHitTestResult();\n  }\n  /**\n   * Most probably Gecko\n   */\n  static _doHitTestWithCaretPositionFromPoint(ctx, coords) {\n    const hitResult = ctx.viewDomNode.ownerDocument.caretPositionFromPoint(coords.clientX, coords.clientY);\n    if (hitResult.offsetNode.nodeType === hitResult.offsetNode.TEXT_NODE) {\n      const parent1 = hitResult.offsetNode.parentNode;\n      const parent2 = parent1 ? parent1.parentNode : null;\n      const parent3 = parent2 ? parent2.parentNode : null;\n      const parent3ClassName = parent3 \u0026\u0026 parent3.nodeType === parent3.ELEMENT_NODE ? parent3.className : null;\n      if (parent3ClassName === ViewLine.CLASS_NAME) {\n        return HitTestResult.createFromDOMInfo(ctx, hitResult.offsetNode.parentNode, hitResult.offset);\n      } else {\n        return new UnknownHitTestResult(hitResult.offsetNode.parentNode);\n      }\n    }\n    if (hitResult.offsetNode.nodeType === hitResult.offsetNode.ELEMENT_NODE) {\n      const parent1 = hitResult.offsetNode.parentNode;\n      const parent1ClassName = parent1 \u0026\u0026 parent1.nodeType === parent1.ELEMENT_NODE ? parent1.className : null;\n      const parent2 = parent1 ? parent1.parentNode : null;\n      const parent2ClassName = parent2 \u0026\u0026 parent2.nodeType === parent2.ELEMENT_NODE ? parent2.className : null;\n      if (parent1ClassName === ViewLine.CLASS_NAME) {\n        const tokenSpan = hitResult.offsetNode.childNodes[Math.min(hitResult.offset, hitResult.offsetNode.childNodes.length - 1)];\n        if (tokenSpan) {\n          return HitTestResult.createFromDOMInfo(ctx, tokenSpan, 0);\n        }\n      } else if (parent2ClassName === ViewLine.CLASS_NAME) {\n        return HitTestResult.createFromDOMInfo(ctx, hitResult.offsetNode, 0);\n      }\n    }\n    return new UnknownHitTestResult(hitResult.offsetNode);\n  }\n  static _snapToSoftTabBoundary(position, viewModel) {\n    const lineContent = viewModel.getLineContent(position.lineNumber);\n    const { tabSize } = viewModel.model.getOptions();\n    const newPosition = AtomicTabMoveOperations.atomicPosition(\n      lineContent,\n      position.column - 1,\n      tabSize,\n      2\n      /* Direction.Nearest */\n    );\n    if (newPosition !== -1) {\n      return new Position(position.lineNumber, newPosition + 1);\n    }\n    return position;\n  }\n  static doHitTest(ctx, request) {\n    let result = new UnknownHitTestResult();\n    if (typeof ctx.viewDomNode.ownerDocument.caretRangeFromPoint === \"function\") {\n      result = this._doHitTestWithCaretRangeFromPoint(ctx, request);\n    } else if (ctx.viewDomNode.ownerDocument.caretPositionFromPoint) {\n      result = this._doHitTestWithCaretPositionFromPoint(ctx, request.pos.toClientCoordinates(getWindow(ctx.viewDomNode)));\n    }\n    if (result.type === 1) {\n      const injectedText = ctx.viewModel.getInjectedTextAt(result.position);\n      const normalizedPosition = ctx.viewModel.normalizePosition(\n        result.position,\n        2\n        /* PositionAffinity.None */\n      );\n      if (injectedText || !normalizedPosition.equals(result.position)) {\n        result = new ContentHitTestResult(normalizedPosition, result.spanNode, injectedText);\n      }\n    }\n    return result;\n  }\n};\nfunction shadowCaretRangeFromPoint(shadowRoot, x, y) {\n  const range2 = document.createRange();\n  let el = shadowRoot.elementFromPoint(x, y);\n  if (el?.hasChildNodes()) {\n    while (el \u0026\u0026 el.firstChild \u0026\u0026 el.firstChild.nodeType !== el.firstChild.TEXT_NODE \u0026\u0026 el.lastChild \u0026\u0026 el.lastChild.firstChild) {\n      el = el.lastChild;\n    }\n    const rect = el.getBoundingClientRect();\n    const elWindow = getWindow(el);\n    const fontStyle = elWindow.getComputedStyle(el, null).getPropertyValue(\"font-style\");\n    const fontVariant = elWindow.getComputedStyle(el, null).getPropertyValue(\"font-variant\");\n    const fontWeight = elWindow.getComputedStyle(el, null).getPropertyValue(\"font-weight\");\n    const fontSize = elWindow.getComputedStyle(el, null).getPropertyValue(\"font-size\");\n    const lineHeight = elWindow.getComputedStyle(el, null).getPropertyValue(\"line-height\");\n    const fontFamily = elWindow.getComputedStyle(el, null).getPropertyValue(\"font-family\");\n    const font = `${fontStyle} ${fontVariant} ${fontWeight} ${fontSize}/${lineHeight} ${fontFamily}`;\n    const text2 = el.innerText;\n    let pixelCursor = rect.left;\n    let offset = 0;\n    let step;\n    if (x \u003e rect.left + rect.width) {\n      offset = text2.length;\n    } else {\n      const charWidthReader = CharWidthReader.getInstance();\n      for (let i2 = 0; i2 \u003c text2.length + 1; i2++) {\n        step = charWidthReader.getCharWidth(text2.charAt(i2), font) / 2;\n        pixelCursor += step;\n        if (x \u003c pixelCursor) {\n          offset = i2;\n          break;\n        }\n        pixelCursor += step;\n      }\n    }\n    range2.setStart(el.firstChild, offset);\n    range2.setEnd(el.firstChild, offset);\n  }\n  return range2;\n}\nvar CharWidthReader = class _CharWidthReader {\n  static {\n    this._INSTANCE = null;\n  }\n  static getInstance() {\n    if (!_CharWidthReader._INSTANCE) {\n      _CharWidthReader._INSTANCE = new _CharWidthReader();\n    }\n    return _CharWidthReader._INSTANCE;\n  }\n  constructor() {\n    this._cache = {};\n    this._canvas = document.createElement(\"canvas\");\n  }\n  getCharWidth(char, font) {\n    const cacheKey = char + font;\n    if (this._cache[cacheKey]) {\n      return this._cache[cacheKey];\n    }\n    const context = this._canvas.getContext(\"2d\");\n    context.font = font;\n    const metrics = context.measureText(char);\n    const width2 = metrics.width;\n    this._cache[cacheKey] = width2;\n    return width2;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/pointerHandler.js\ninit_canIUse();\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/touch.js\ninit_dom();\ninit_window();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/decorators.js\nfunction memoize(_target, key, descriptor) {\n  let fnKey = null;\n  let fn = null;\n  if (typeof descriptor.value === \"function\") {\n    fnKey = \"value\";\n    fn = descriptor.value;\n    if (fn.length !== 0) {\n      console.warn(\"Memoize should only be used in functions with zero parameters\");\n    }\n  } else if (typeof descriptor.get === \"function\") {\n    fnKey = \"get\";\n    fn = descriptor.get;\n  }\n  if (!fn) {\n    throw new Error(\"not supported\");\n  }\n  const memoizeKey = `$memoize$${key}`;\n  descriptor[fnKey] = function(...args) {\n    if (!this.hasOwnProperty(memoizeKey)) {\n      Object.defineProperty(this, memoizeKey, {\n        configurable: false,\n        enumerable: false,\n        writable: false,\n        value: fn.apply(this, args)\n      });\n    }\n    return this[memoizeKey];\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/touch.js\ninit_event();\ninit_lifecycle();\ninit_linkedList();\nvar __decorate6 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar EventType2;\n(function(EventType3) {\n  EventType3.Tap = \"-monaco-gesturetap\";\n  EventType3.Change = \"-monaco-gesturechange\";\n  EventType3.Start = \"-monaco-gesturestart\";\n  EventType3.End = \"-monaco-gesturesend\";\n  EventType3.Contextmenu = \"-monaco-gesturecontextmenu\";\n})(EventType2 || (EventType2 = {}));\nvar Gesture = class _Gesture extends Disposable {\n  static {\n    this.SCROLL_FRICTION = -5e-3;\n  }\n  static {\n    this.HOLD_DELAY = 700;\n  }\n  static {\n    this.CLEAR_TAP_COUNT_TIME = 400;\n  }\n  // ms\n  constructor() {\n    super();\n    this.dispatched = false;\n    this.targets = new LinkedList();\n    this.ignoreTargets = new LinkedList();\n    this.activeTouches = {};\n    this.handle = null;\n    this._lastSetTapCountTime = 0;\n    this._register(Event.runAndSubscribe(onDidRegisterWindow, ({ window: window2, disposables }) =\u003e {\n      disposables.add(addDisposableListener(window2.document, \"touchstart\", (e) =\u003e this.onTouchStart(e), { passive: false }));\n      disposables.add(addDisposableListener(window2.document, \"touchend\", (e) =\u003e this.onTouchEnd(window2, e)));\n      disposables.add(addDisposableListener(window2.document, \"touchmove\", (e) =\u003e this.onTouchMove(e), { passive: false }));\n    }, { window: mainWindow, disposables: this._store }));\n  }\n  static addTarget(element) {\n    if (!_Gesture.isTouchDevice()) {\n      return Disposable.None;\n    }\n    if (!_Gesture.INSTANCE) {\n      _Gesture.INSTANCE = markAsSingleton(new _Gesture());\n    }\n    const remove = _Gesture.INSTANCE.targets.push(element);\n    return toDisposable(remove);\n  }\n  static ignoreTarget(element) {\n    if (!_Gesture.isTouchDevice()) {\n      return Disposable.None;\n    }\n    if (!_Gesture.INSTANCE) {\n      _Gesture.INSTANCE = markAsSingleton(new _Gesture());\n    }\n    const remove = _Gesture.INSTANCE.ignoreTargets.push(element);\n    return toDisposable(remove);\n  }\n  static isTouchDevice() {\n    return \"ontouchstart\" in mainWindow || navigator.maxTouchPoints \u003e 0;\n  }\n  dispose() {\n    if (this.handle) {\n      this.handle.dispose();\n      this.handle = null;\n    }\n    super.dispose();\n  }\n  onTouchStart(e) {\n    const timestamp = Date.now();\n    if (this.handle) {\n      this.handle.dispose();\n      this.handle = null;\n    }\n    for (let i2 = 0, len = e.targetTouches.length; i2 \u003c len; i2++) {\n      const touch = e.targetTouches.item(i2);\n      this.activeTouches[touch.identifier] = {\n        id: touch.identifier,\n        initialTarget: touch.target,\n        initialTimeStamp: timestamp,\n        initialPageX: touch.pageX,\n        initialPageY: touch.pageY,\n        rollingTimestamps: [timestamp],\n        rollingPageX: [touch.pageX],\n        rollingPageY: [touch.pageY]\n      };\n      const evt = this.newGestureEvent(EventType2.Start, touch.target);\n      evt.pageX = touch.pageX;\n      evt.pageY = touch.pageY;\n      this.dispatchEvent(evt);\n    }\n    if (this.dispatched) {\n      e.preventDefault();\n      e.stopPropagation();\n      this.dispatched = false;\n    }\n  }\n  onTouchEnd(targetWindow, e) {\n    const timestamp = Date.now();\n    const activeTouchCount = Object.keys(this.activeTouches).length;\n    for (let i2 = 0, len = e.changedTouches.length; i2 \u003c len; i2++) {\n      const touch = e.changedTouches.item(i2);\n      if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {\n        console.warn(\"move of an UNKNOWN touch\", touch);\n        continue;\n      }\n      const data = this.activeTouches[touch.identifier], holdTime = Date.now() - data.initialTimeStamp;\n      if (holdTime \u003c _Gesture.HOLD_DELAY \u0026\u0026 Math.abs(data.initialPageX - data.rollingPageX.at(-1)) \u003c 30 \u0026\u0026 Math.abs(data.initialPageY - data.rollingPageY.at(-1)) \u003c 30) {\n        const evt = this.newGestureEvent(EventType2.Tap, data.initialTarget);\n        evt.pageX = data.rollingPageX.at(-1);\n        evt.pageY = data.rollingPageY.at(-1);\n        this.dispatchEvent(evt);\n      } else if (holdTime \u003e= _Gesture.HOLD_DELAY \u0026\u0026 Math.abs(data.initialPageX - data.rollingPageX.at(-1)) \u003c 30 \u0026\u0026 Math.abs(data.initialPageY - data.rollingPageY.at(-1)) \u003c 30) {\n        const evt = this.newGestureEvent(EventType2.Contextmenu, data.initialTarget);\n        evt.pageX = data.rollingPageX.at(-1);\n        evt.pageY = data.rollingPageY.at(-1);\n        this.dispatchEvent(evt);\n      } else if (activeTouchCount === 1) {\n        const finalX = data.rollingPageX.at(-1);\n        const finalY = data.rollingPageY.at(-1);\n        const deltaT = data.rollingTimestamps.at(-1) - data.rollingTimestamps[0];\n        const deltaX = finalX - data.rollingPageX[0];\n        const deltaY = finalY - data.rollingPageY[0];\n        const dispatchTo = [...this.targets].filter((t) =\u003e data.initialTarget instanceof Node \u0026\u0026 t.contains(data.initialTarget));\n        this.inertia(\n          targetWindow,\n          dispatchTo,\n          timestamp,\n          // time now\n          Math.abs(deltaX) / deltaT,\n          // speed\n          deltaX \u003e 0 ? 1 : -1,\n          // x direction\n          finalX,\n          // x now\n          Math.abs(deltaY) / deltaT,\n          // y speed\n          deltaY \u003e 0 ? 1 : -1,\n          // y direction\n          finalY\n          // y now\n        );\n      }\n      this.dispatchEvent(this.newGestureEvent(EventType2.End, data.initialTarget));\n      delete this.activeTouches[touch.identifier];\n    }\n    if (this.dispatched) {\n      e.preventDefault();\n      e.stopPropagation();\n      this.dispatched = false;\n    }\n  }\n  newGestureEvent(type, initialTarget) {\n    const event = document.createEvent(\"CustomEvent\");\n    event.initEvent(type, false, true);\n    event.initialTarget = initialTarget;\n    event.tapCount = 0;\n    return event;\n  }\n  dispatchEvent(event) {\n    if (event.type === EventType2.Tap) {\n      const currentTime = (/* @__PURE__ */ new Date()).getTime();\n      let setTapCount = 0;\n      if (currentTime - this._lastSetTapCountTime \u003e _Gesture.CLEAR_TAP_COUNT_TIME) {\n        setTapCount = 1;\n      } else {\n        setTapCount = 2;\n      }\n      this._lastSetTapCountTime = currentTime;\n      event.tapCount = setTapCount;\n    } else if (event.type === EventType2.Change || event.type === EventType2.Contextmenu) {\n      this._lastSetTapCountTime = 0;\n    }\n    if (event.initialTarget instanceof Node) {\n      for (const ignoreTarget of this.ignoreTargets) {\n        if (ignoreTarget.contains(event.initialTarget)) {\n          return;\n        }\n      }\n      const targets = [];\n      for (const target of this.targets) {\n        if (target.contains(event.initialTarget)) {\n          let depth = 0;\n          let now = event.initialTarget;\n          while (now \u0026\u0026 now !== target) {\n            depth++;\n            now = now.parentElement;\n          }\n          targets.push([depth, target]);\n        }\n      }\n      targets.sort((a, b) =\u003e a[0] - b[0]);\n      for (const [_, target] of targets) {\n        target.dispatchEvent(event);\n        this.dispatched = true;\n      }\n    }\n  }\n  inertia(targetWindow, dispatchTo, t1, vX, dirX, x, vY, dirY, y) {\n    this.handle = scheduleAtNextAnimationFrame(targetWindow, () =\u003e {\n      const now = Date.now();\n      const deltaT = now - t1;\n      let delta_pos_x = 0, delta_pos_y = 0;\n      let stopped = true;\n      vX += _Gesture.SCROLL_FRICTION * deltaT;\n      vY += _Gesture.SCROLL_FRICTION * deltaT;\n      if (vX \u003e 0) {\n        stopped = false;\n        delta_pos_x = dirX * vX * deltaT;\n      }\n      if (vY \u003e 0) {\n        stopped = false;\n        delta_pos_y = dirY * vY * deltaT;\n      }\n      const evt = this.newGestureEvent(EventType2.Change);\n      evt.translationX = delta_pos_x;\n      evt.translationY = delta_pos_y;\n      dispatchTo.forEach((d) =\u003e d.dispatchEvent(evt));\n      if (!stopped) {\n        this.inertia(targetWindow, dispatchTo, now, vX, dirX, x + delta_pos_x, vY, dirY, y + delta_pos_y);\n      }\n    });\n  }\n  onTouchMove(e) {\n    const timestamp = Date.now();\n    for (let i2 = 0, len = e.changedTouches.length; i2 \u003c len; i2++) {\n      const touch = e.changedTouches.item(i2);\n      if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {\n        console.warn(\"end of an UNKNOWN touch\", touch);\n        continue;\n      }\n      const data = this.activeTouches[touch.identifier];\n      const evt = this.newGestureEvent(EventType2.Change, data.initialTarget);\n      evt.translationX = touch.pageX - data.rollingPageX.at(-1);\n      evt.translationY = touch.pageY - data.rollingPageY.at(-1);\n      evt.pageX = touch.pageX;\n      evt.pageY = touch.pageY;\n      this.dispatchEvent(evt);\n      if (data.rollingPageX.length \u003e 3) {\n        data.rollingPageX.shift();\n        data.rollingPageY.shift();\n        data.rollingTimestamps.shift();\n      }\n      data.rollingPageX.push(touch.pageX);\n      data.rollingPageY.push(touch.pageY);\n      data.rollingTimestamps.push(timestamp);\n    }\n    if (this.dispatched) {\n      e.preventDefault();\n      e.stopPropagation();\n      this.dispatched = false;\n    }\n  }\n};\n__decorate6([\n  memoize\n], Gesture, \"isTouchDevice\", null);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/pointerHandler.js\ninit_window();\ninit_lifecycle();\ninit_platform();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/mouseHandler.js\ninit_dom();\ninit_mouseEvent();\ninit_lifecycle();\ninit_platform();\ninit_position();\ninit_selection();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/scrollableElement.js\ninit_browser();\ninit_dom();\ninit_mouseEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/horizontalScrollbar.js\ninit_mouseEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/abstractScrollbar.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/widget.js\ninit_dom();\ninit_keyboardEvent();\ninit_mouseEvent();\ninit_lifecycle();\nvar Widget = class extends Disposable {\n  onclick(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.CLICK, (e) =\u003e listener(new StandardMouseEvent(getWindow(domNode), e))));\n  }\n  onmousedown(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.MOUSE_DOWN, (e) =\u003e listener(new StandardMouseEvent(getWindow(domNode), e))));\n  }\n  onmouseover(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.MOUSE_OVER, (e) =\u003e listener(new StandardMouseEvent(getWindow(domNode), e))));\n  }\n  onmouseleave(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.MOUSE_LEAVE, (e) =\u003e listener(new StandardMouseEvent(getWindow(domNode), e))));\n  }\n  onkeydown(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.KEY_DOWN, (e) =\u003e listener(new StandardKeyboardEvent(e))));\n  }\n  onkeyup(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.KEY_UP, (e) =\u003e listener(new StandardKeyboardEvent(e))));\n  }\n  oninput(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.INPUT, listener));\n  }\n  onblur(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.BLUR, listener));\n  }\n  onfocus(domNode, listener) {\n    this._register(addDisposableListener(domNode, EventType.FOCUS, listener));\n  }\n  ignoreGesture(domNode) {\n    return Gesture.ignoreTarget(domNode);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/scrollbarArrow.js\ninit_async();\ninit_themables();\ninit_dom();\nvar ARROW_IMG_SIZE = 11;\nvar ScrollbarArrow = class extends Widget {\n  constructor(opts) {\n    super();\n    this._onActivate = opts.onActivate;\n    this.bgDomNode = document.createElement(\"div\");\n    this.bgDomNode.className = \"arrow-background\";\n    this.bgDomNode.style.position = \"absolute\";\n    this.bgDomNode.style.width = opts.bgWidth + \"px\";\n    this.bgDomNode.style.height = opts.bgHeight + \"px\";\n    if (typeof opts.top !== \"undefined\") {\n      this.bgDomNode.style.top = \"0px\";\n    }\n    if (typeof opts.left !== \"undefined\") {\n      this.bgDomNode.style.left = \"0px\";\n    }\n    if (typeof opts.bottom !== \"undefined\") {\n      this.bgDomNode.style.bottom = \"0px\";\n    }\n    if (typeof opts.right !== \"undefined\") {\n      this.bgDomNode.style.right = \"0px\";\n    }\n    this.domNode = document.createElement(\"div\");\n    this.domNode.className = opts.className;\n    this.domNode.classList.add(...ThemeIcon.asClassNameArray(opts.icon));\n    this.domNode.style.position = \"absolute\";\n    this.domNode.style.width = ARROW_IMG_SIZE + \"px\";\n    this.domNode.style.height = ARROW_IMG_SIZE + \"px\";\n    if (typeof opts.top !== \"undefined\") {\n      this.domNode.style.top = opts.top + \"px\";\n    }\n    if (typeof opts.left !== \"undefined\") {\n      this.domNode.style.left = opts.left + \"px\";\n    }\n    if (typeof opts.bottom !== \"undefined\") {\n      this.domNode.style.bottom = opts.bottom + \"px\";\n    }\n    if (typeof opts.right !== \"undefined\") {\n      this.domNode.style.right = opts.right + \"px\";\n    }\n    this._pointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n    this._register(addStandardDisposableListener(this.bgDomNode, EventType.POINTER_DOWN, (e) =\u003e this._arrowPointerDown(e)));\n    this._register(addStandardDisposableListener(this.domNode, EventType.POINTER_DOWN, (e) =\u003e this._arrowPointerDown(e)));\n    this._pointerdownRepeatTimer = this._register(new WindowIntervalTimer());\n    this._pointerdownScheduleRepeatTimer = this._register(new TimeoutTimer());\n  }\n  _arrowPointerDown(e) {\n    if (!e.target || !(e.target instanceof Element)) {\n      return;\n    }\n    const scheduleRepeater = () =\u003e {\n      this._pointerdownRepeatTimer.cancelAndSet(() =\u003e this._onActivate(), 1e3 / 24, getWindow(e));\n    };\n    this._onActivate();\n    this._pointerdownRepeatTimer.cancel();\n    this._pointerdownScheduleRepeatTimer.cancelAndSet(scheduleRepeater, 200);\n    this._pointerMoveMonitor.startMonitoring(e.target, e.pointerId, e.buttons, (pointerMoveData) =\u003e {\n    }, () =\u003e {\n      this._pointerdownRepeatTimer.cancel();\n      this._pointerdownScheduleRepeatTimer.cancel();\n    });\n    e.preventDefault();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js\ninit_async();\ninit_lifecycle();\nvar ScrollbarVisibilityController = class extends Disposable {\n  constructor(visibility, visibleClassName, invisibleClassName) {\n    super();\n    this._visibility = visibility;\n    this._visibleClassName = visibleClassName;\n    this._invisibleClassName = invisibleClassName;\n    this._domNode = null;\n    this._isVisible = false;\n    this._isNeeded = false;\n    this._rawShouldBeVisible = false;\n    this._shouldBeVisible = false;\n    this._revealTimer = this._register(new TimeoutTimer());\n  }\n  setVisibility(visibility) {\n    if (this._visibility !== visibility) {\n      this._visibility = visibility;\n      this._updateShouldBeVisible();\n    }\n  }\n  // ----------------- Hide / Reveal\n  setShouldBeVisible(rawShouldBeVisible) {\n    this._rawShouldBeVisible = rawShouldBeVisible;\n    this._updateShouldBeVisible();\n  }\n  _applyVisibilitySetting() {\n    if (this._visibility === 2) {\n      return false;\n    }\n    if (this._visibility === 3) {\n      return true;\n    }\n    return this._rawShouldBeVisible;\n  }\n  _updateShouldBeVisible() {\n    const shouldBeVisible = this._applyVisibilitySetting();\n    if (this._shouldBeVisible !== shouldBeVisible) {\n      this._shouldBeVisible = shouldBeVisible;\n      this.ensureVisibility();\n    }\n  }\n  setIsNeeded(isNeeded) {\n    if (this._isNeeded !== isNeeded) {\n      this._isNeeded = isNeeded;\n      this.ensureVisibility();\n    }\n  }\n  setDomNode(domNode) {\n    this._domNode = domNode;\n    this._domNode.setClassName(this._invisibleClassName);\n    this.setShouldBeVisible(false);\n  }\n  ensureVisibility() {\n    if (!this._isNeeded) {\n      this._hide(false);\n      return;\n    }\n    if (this._shouldBeVisible) {\n      this._reveal();\n    } else {\n      this._hide(true);\n    }\n  }\n  _reveal() {\n    if (this._isVisible) {\n      return;\n    }\n    this._isVisible = true;\n    this._revealTimer.setIfNotSet(() =\u003e {\n      this._domNode?.setClassName(this._visibleClassName);\n    }, 0);\n  }\n  _hide(withFadeAway) {\n    this._revealTimer.cancel();\n    if (!this._isVisible) {\n      return;\n    }\n    this._isVisible = false;\n    this._domNode?.setClassName(this._invisibleClassName + (withFadeAway ? \" fade\" : \"\"));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/abstractScrollbar.js\ninit_platform();\nvar POINTER_DRAG_RESET_DISTANCE = 140;\nvar AbstractScrollbar = class extends Widget {\n  constructor(opts) {\n    super();\n    this._lazyRender = opts.lazyRender;\n    this._host = opts.host;\n    this._scrollable = opts.scrollable;\n    this._scrollByPage = opts.scrollByPage;\n    this._scrollbarState = opts.scrollbarState;\n    this._visibilityController = this._register(new ScrollbarVisibilityController(opts.visibility, \"visible scrollbar \" + opts.extraScrollbarClassName, \"invisible scrollbar \" + opts.extraScrollbarClassName));\n    this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n    this._pointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n    this._shouldRender = true;\n    this.domNode = createFastDomNode(document.createElement(\"div\"));\n    this.domNode.setAttribute(\"role\", \"presentation\");\n    this.domNode.setAttribute(\"aria-hidden\", \"true\");\n    this._visibilityController.setDomNode(this.domNode);\n    this.domNode.setPosition(\"absolute\");\n    this._register(addDisposableListener(this.domNode.domNode, EventType.POINTER_DOWN, (e) =\u003e this._domNodePointerDown(e)));\n  }\n  // ----------------- creation\n  /**\n   * Creates the dom node for an arrow \u0026 adds it to the container\n   */\n  _createArrow(opts) {\n    const arrow = this._register(new ScrollbarArrow(opts));\n    this.domNode.domNode.appendChild(arrow.bgDomNode);\n    this.domNode.domNode.appendChild(arrow.domNode);\n  }\n  /**\n   * Creates the slider dom node, adds it to the container \u0026 hooks up the events\n   */\n  _createSlider(top, left, width2, height) {\n    this.slider = createFastDomNode(document.createElement(\"div\"));\n    this.slider.setClassName(\"slider\");\n    this.slider.setPosition(\"absolute\");\n    this.slider.setTop(top);\n    this.slider.setLeft(left);\n    if (typeof width2 === \"number\") {\n      this.slider.setWidth(width2);\n    }\n    if (typeof height === \"number\") {\n      this.slider.setHeight(height);\n    }\n    this.slider.setLayerHinting(true);\n    this.slider.setContain(\"strict\");\n    this.domNode.domNode.appendChild(this.slider.domNode);\n    this._register(addDisposableListener(this.slider.domNode, EventType.POINTER_DOWN, (e) =\u003e {\n      if (e.button === 0) {\n        e.preventDefault();\n        this._sliderPointerDown(e);\n      }\n    }));\n    this.onclick(this.slider.domNode, (e) =\u003e {\n      if (e.leftButton) {\n        e.stopPropagation();\n      }\n    });\n  }\n  // ----------------- Update state\n  _onElementSize(visibleSize) {\n    if (this._scrollbarState.setVisibleSize(visibleSize)) {\n      this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n      this._shouldRender = true;\n      if (!this._lazyRender) {\n        this.render();\n      }\n    }\n    return this._shouldRender;\n  }\n  _onElementScrollSize(elementScrollSize) {\n    if (this._scrollbarState.setScrollSize(elementScrollSize)) {\n      this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n      this._shouldRender = true;\n      if (!this._lazyRender) {\n        this.render();\n      }\n    }\n    return this._shouldRender;\n  }\n  _onElementScrollPosition(elementScrollPosition) {\n    if (this._scrollbarState.setScrollPosition(elementScrollPosition)) {\n      this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n      this._shouldRender = true;\n      if (!this._lazyRender) {\n        this.render();\n      }\n    }\n    return this._shouldRender;\n  }\n  // ----------------- rendering\n  beginReveal() {\n    this._visibilityController.setShouldBeVisible(true);\n  }\n  beginHide() {\n    this._visibilityController.setShouldBeVisible(false);\n  }\n  render() {\n    if (!this._shouldRender) {\n      return;\n    }\n    this._shouldRender = false;\n    this._renderDomNode(this._scrollbarState.getRectangleLargeSize(), this._scrollbarState.getRectangleSmallSize());\n    this._updateSlider(this._scrollbarState.getSliderSize(), this._scrollbarState.getArrowSize() + this._scrollbarState.getSliderPosition());\n  }\n  // ----------------- DOM events\n  _domNodePointerDown(e) {\n    if (e.target !== this.domNode.domNode) {\n      return;\n    }\n    this._onPointerDown(e);\n  }\n  delegatePointerDown(e) {\n    const domTop = this.domNode.domNode.getClientRects()[0].top;\n    const sliderStart = domTop + this._scrollbarState.getSliderPosition();\n    const sliderStop = domTop + this._scrollbarState.getSliderPosition() + this._scrollbarState.getSliderSize();\n    const pointerPos = this._sliderPointerPosition(e);\n    if (sliderStart \u003c= pointerPos \u0026\u0026 pointerPos \u003c= sliderStop) {\n      if (e.button === 0) {\n        e.preventDefault();\n        this._sliderPointerDown(e);\n      }\n    } else {\n      this._onPointerDown(e);\n    }\n  }\n  _onPointerDown(e) {\n    let offsetX;\n    let offsetY;\n    if (e.target === this.domNode.domNode \u0026\u0026 typeof e.offsetX === \"number\" \u0026\u0026 typeof e.offsetY === \"number\") {\n      offsetX = e.offsetX;\n      offsetY = e.offsetY;\n    } else {\n      const domNodePosition = getDomNodePagePosition(this.domNode.domNode);\n      offsetX = e.pageX - domNodePosition.left;\n      offsetY = e.pageY - domNodePosition.top;\n    }\n    const isMouse = e.pointerType === \"mouse\";\n    const isLeftClick = e.button === 0;\n    if (isLeftClick || !isMouse) {\n      const offset = this._pointerDownRelativePosition(offsetX, offsetY);\n      this._setDesiredScrollPositionNow(this._scrollByPage ? this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(offset) : this._scrollbarState.getDesiredScrollPositionFromOffset(offset));\n    }\n    if (isLeftClick) {\n      e.preventDefault();\n      this._sliderPointerDown(e);\n    }\n  }\n  _sliderPointerDown(e) {\n    if (!e.target || !(e.target instanceof Element)) {\n      return;\n    }\n    const initialPointerPosition = this._sliderPointerPosition(e);\n    const initialPointerOrthogonalPosition = this._sliderOrthogonalPointerPosition(e);\n    const initialScrollbarState = this._scrollbarState.clone();\n    this.slider.toggleClassName(\"active\", true);\n    this._pointerMoveMonitor.startMonitoring(e.target, e.pointerId, e.buttons, (pointerMoveData) =\u003e {\n      const pointerOrthogonalPosition = this._sliderOrthogonalPointerPosition(pointerMoveData);\n      const pointerOrthogonalDelta = Math.abs(pointerOrthogonalPosition - initialPointerOrthogonalPosition);\n      if (isWindows \u0026\u0026 pointerOrthogonalDelta \u003e POINTER_DRAG_RESET_DISTANCE) {\n        this._setDesiredScrollPositionNow(initialScrollbarState.getScrollPosition());\n        return;\n      }\n      const pointerPosition = this._sliderPointerPosition(pointerMoveData);\n      const pointerDelta = pointerPosition - initialPointerPosition;\n      this._setDesiredScrollPositionNow(initialScrollbarState.getDesiredScrollPositionFromDelta(pointerDelta));\n    }, () =\u003e {\n      this.slider.toggleClassName(\"active\", false);\n      this._host.onDragEnd();\n    });\n    this._host.onDragStart();\n  }\n  _setDesiredScrollPositionNow(_desiredScrollPosition) {\n    const desiredScrollPosition = {};\n    this.writeScrollPosition(desiredScrollPosition, _desiredScrollPosition);\n    this._scrollable.setScrollPositionNow(desiredScrollPosition);\n  }\n  updateScrollbarSize(scrollbarSize) {\n    this._updateScrollbarSize(scrollbarSize);\n    this._scrollbarState.setScrollbarSize(scrollbarSize);\n    this._shouldRender = true;\n    if (!this._lazyRender) {\n      this.render();\n    }\n  }\n  isNeeded() {\n    return this._scrollbarState.isNeeded();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/scrollbarState.js\nvar MINIMUM_SLIDER_SIZE = 20;\nvar ScrollbarState = class _ScrollbarState {\n  constructor(arrowSize, scrollbarSize, oppositeScrollbarSize, visibleSize, scrollSize, scrollPosition) {\n    this._scrollbarSize = Math.round(scrollbarSize);\n    this._oppositeScrollbarSize = Math.round(oppositeScrollbarSize);\n    this._arrowSize = Math.round(arrowSize);\n    this._visibleSize = visibleSize;\n    this._scrollSize = scrollSize;\n    this._scrollPosition = scrollPosition;\n    this._computedAvailableSize = 0;\n    this._computedIsNeeded = false;\n    this._computedSliderSize = 0;\n    this._computedSliderRatio = 0;\n    this._computedSliderPosition = 0;\n    this._refreshComputedValues();\n  }\n  clone() {\n    return new _ScrollbarState(this._arrowSize, this._scrollbarSize, this._oppositeScrollbarSize, this._visibleSize, this._scrollSize, this._scrollPosition);\n  }\n  setVisibleSize(visibleSize) {\n    const iVisibleSize = Math.round(visibleSize);\n    if (this._visibleSize !== iVisibleSize) {\n      this._visibleSize = iVisibleSize;\n      this._refreshComputedValues();\n      return true;\n    }\n    return false;\n  }\n  setScrollSize(scrollSize) {\n    const iScrollSize = Math.round(scrollSize);\n    if (this._scrollSize !== iScrollSize) {\n      this._scrollSize = iScrollSize;\n      this._refreshComputedValues();\n      return true;\n    }\n    return false;\n  }\n  setScrollPosition(scrollPosition) {\n    const iScrollPosition = Math.round(scrollPosition);\n    if (this._scrollPosition !== iScrollPosition) {\n      this._scrollPosition = iScrollPosition;\n      this._refreshComputedValues();\n      return true;\n    }\n    return false;\n  }\n  setScrollbarSize(scrollbarSize) {\n    this._scrollbarSize = Math.round(scrollbarSize);\n  }\n  setOppositeScrollbarSize(oppositeScrollbarSize) {\n    this._oppositeScrollbarSize = Math.round(oppositeScrollbarSize);\n  }\n  static _computeValues(oppositeScrollbarSize, arrowSize, visibleSize, scrollSize, scrollPosition) {\n    const computedAvailableSize = Math.max(0, visibleSize - oppositeScrollbarSize);\n    const computedRepresentableSize = Math.max(0, computedAvailableSize - 2 * arrowSize);\n    const computedIsNeeded = scrollSize \u003e 0 \u0026\u0026 scrollSize \u003e visibleSize;\n    if (!computedIsNeeded) {\n      return {\n        computedAvailableSize: Math.round(computedAvailableSize),\n        computedIsNeeded,\n        computedSliderSize: Math.round(computedRepresentableSize),\n        computedSliderRatio: 0,\n        computedSliderPosition: 0\n      };\n    }\n    const computedSliderSize = Math.round(Math.max(MINIMUM_SLIDER_SIZE, Math.floor(visibleSize * computedRepresentableSize / scrollSize)));\n    const computedSliderRatio = (computedRepresentableSize - computedSliderSize) / (scrollSize - visibleSize);\n    const computedSliderPosition = scrollPosition * computedSliderRatio;\n    return {\n      computedAvailableSize: Math.round(computedAvailableSize),\n      computedIsNeeded,\n      computedSliderSize: Math.round(computedSliderSize),\n      computedSliderRatio,\n      computedSliderPosition: Math.round(computedSliderPosition)\n    };\n  }\n  _refreshComputedValues() {\n    const r = _ScrollbarState._computeValues(this._oppositeScrollbarSize, this._arrowSize, this._visibleSize, this._scrollSize, this._scrollPosition);\n    this._computedAvailableSize = r.computedAvailableSize;\n    this._computedIsNeeded = r.computedIsNeeded;\n    this._computedSliderSize = r.computedSliderSize;\n    this._computedSliderRatio = r.computedSliderRatio;\n    this._computedSliderPosition = r.computedSliderPosition;\n  }\n  getArrowSize() {\n    return this._arrowSize;\n  }\n  getScrollPosition() {\n    return this._scrollPosition;\n  }\n  getRectangleLargeSize() {\n    return this._computedAvailableSize;\n  }\n  getRectangleSmallSize() {\n    return this._scrollbarSize;\n  }\n  isNeeded() {\n    return this._computedIsNeeded;\n  }\n  getSliderSize() {\n    return this._computedSliderSize;\n  }\n  getSliderPosition() {\n    return this._computedSliderPosition;\n  }\n  /**\n   * Compute a desired `scrollPosition` such that `offset` ends up in the center of the slider.\n   * `offset` is based on the same coordinate system as the `sliderPosition`.\n   */\n  getDesiredScrollPositionFromOffset(offset) {\n    if (!this._computedIsNeeded) {\n      return 0;\n    }\n    const desiredSliderPosition = offset - this._arrowSize - this._computedSliderSize / 2;\n    return Math.round(desiredSliderPosition / this._computedSliderRatio);\n  }\n  /**\n   * Compute a desired `scrollPosition` from if offset is before or after the slider position.\n   * If offset is before slider, treat as a page up (or left).  If after, page down (or right).\n   * `offset` and `_computedSliderPosition` are based on the same coordinate system.\n   * `_visibleSize` corresponds to a \"page\" of lines in the returned coordinate system.\n   */\n  getDesiredScrollPositionFromOffsetPaged(offset) {\n    if (!this._computedIsNeeded) {\n      return 0;\n    }\n    const correctedOffset = offset - this._arrowSize;\n    let desiredScrollPosition = this._scrollPosition;\n    if (correctedOffset \u003c this._computedSliderPosition) {\n      desiredScrollPosition -= this._visibleSize;\n    } else {\n      desiredScrollPosition += this._visibleSize;\n    }\n    return desiredScrollPosition;\n  }\n  /**\n   * Compute a desired `scrollPosition` such that the slider moves by `delta`.\n   */\n  getDesiredScrollPositionFromDelta(delta) {\n    if (!this._computedIsNeeded) {\n      return 0;\n    }\n    const desiredSliderPosition = this._computedSliderPosition + delta;\n    return Math.round(desiredSliderPosition / this._computedSliderRatio);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/horizontalScrollbar.js\ninit_codicons();\nvar HorizontalScrollbar = class extends AbstractScrollbar {\n  constructor(scrollable, options2, host) {\n    const scrollDimensions = scrollable.getScrollDimensions();\n    const scrollPosition = scrollable.getCurrentScrollPosition();\n    super({\n      lazyRender: options2.lazyRender,\n      host,\n      scrollbarState: new ScrollbarState(options2.horizontalHasArrows ? options2.arrowSize : 0, options2.horizontal === 2 ? 0 : options2.horizontalScrollbarSize, options2.vertical === 2 ? 0 : options2.verticalScrollbarSize, scrollDimensions.width, scrollDimensions.scrollWidth, scrollPosition.scrollLeft),\n      visibility: options2.horizontal,\n      extraScrollbarClassName: \"horizontal\",\n      scrollable,\n      scrollByPage: options2.scrollByPage\n    });\n    if (options2.horizontalHasArrows) {\n      const arrowDelta = (options2.arrowSize - ARROW_IMG_SIZE) / 2;\n      const scrollbarDelta = (options2.horizontalScrollbarSize - ARROW_IMG_SIZE) / 2;\n      this._createArrow({\n        className: \"scra\",\n        icon: Codicon.scrollbarButtonLeft,\n        top: scrollbarDelta,\n        left: arrowDelta,\n        bottom: void 0,\n        right: void 0,\n        bgWidth: options2.arrowSize,\n        bgHeight: options2.horizontalScrollbarSize,\n        onActivate: () =\u003e this._host.onMouseWheel(new StandardWheelEvent(null, 1, 0))\n      });\n      this._createArrow({\n        className: \"scra\",\n        icon: Codicon.scrollbarButtonRight,\n        top: scrollbarDelta,\n        left: void 0,\n        bottom: void 0,\n        right: arrowDelta,\n        bgWidth: options2.arrowSize,\n        bgHeight: options2.horizontalScrollbarSize,\n        onActivate: () =\u003e this._host.onMouseWheel(new StandardWheelEvent(null, -1, 0))\n      });\n    }\n    this._createSlider(Math.floor((options2.horizontalScrollbarSize - options2.horizontalSliderSize) / 2), 0, void 0, options2.horizontalSliderSize);\n  }\n  _updateSlider(sliderSize, sliderPosition) {\n    this.slider.setWidth(sliderSize);\n    this.slider.setLeft(sliderPosition);\n  }\n  _renderDomNode(largeSize, smallSize) {\n    this.domNode.setWidth(largeSize);\n    this.domNode.setHeight(smallSize);\n    this.domNode.setLeft(0);\n    this.domNode.setBottom(0);\n  }\n  onDidScroll(e) {\n    this._shouldRender = this._onElementScrollSize(e.scrollWidth) || this._shouldRender;\n    this._shouldRender = this._onElementScrollPosition(e.scrollLeft) || this._shouldRender;\n    this._shouldRender = this._onElementSize(e.width) || this._shouldRender;\n    return this._shouldRender;\n  }\n  _pointerDownRelativePosition(offsetX, offsetY) {\n    return offsetX;\n  }\n  _sliderPointerPosition(e) {\n    return e.pageX;\n  }\n  _sliderOrthogonalPointerPosition(e) {\n    return e.pageY;\n  }\n  _updateScrollbarSize(size2) {\n    this.slider.setHeight(size2);\n  }\n  writeScrollPosition(target, scrollPosition) {\n    target.scrollLeft = scrollPosition;\n  }\n  updateOptions(options2) {\n    this.updateScrollbarSize(options2.horizontal === 2 ? 0 : options2.horizontalScrollbarSize);\n    this._scrollbarState.setOppositeScrollbarSize(options2.vertical === 2 ? 0 : options2.verticalScrollbarSize);\n    this._visibilityController.setVisibility(options2.horizontal);\n    this._scrollByPage = options2.scrollByPage;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/verticalScrollbar.js\ninit_mouseEvent();\ninit_codicons();\nvar VerticalScrollbar = class extends AbstractScrollbar {\n  constructor(scrollable, options2, host) {\n    const scrollDimensions = scrollable.getScrollDimensions();\n    const scrollPosition = scrollable.getCurrentScrollPosition();\n    super({\n      lazyRender: options2.lazyRender,\n      host,\n      scrollbarState: new ScrollbarState(\n        options2.verticalHasArrows ? options2.arrowSize : 0,\n        options2.vertical === 2 ? 0 : options2.verticalScrollbarSize,\n        // give priority to vertical scroll bar over horizontal and let it scroll all the way to the bottom\n        0,\n        scrollDimensions.height,\n        scrollDimensions.scrollHeight,\n        scrollPosition.scrollTop\n      ),\n      visibility: options2.vertical,\n      extraScrollbarClassName: \"vertical\",\n      scrollable,\n      scrollByPage: options2.scrollByPage\n    });\n    if (options2.verticalHasArrows) {\n      const arrowDelta = (options2.arrowSize - ARROW_IMG_SIZE) / 2;\n      const scrollbarDelta = (options2.verticalScrollbarSize - ARROW_IMG_SIZE) / 2;\n      this._createArrow({\n        className: \"scra\",\n        icon: Codicon.scrollbarButtonUp,\n        top: arrowDelta,\n        left: scrollbarDelta,\n        bottom: void 0,\n        right: void 0,\n        bgWidth: options2.verticalScrollbarSize,\n        bgHeight: options2.arrowSize,\n        onActivate: () =\u003e this._host.onMouseWheel(new StandardWheelEvent(null, 0, 1))\n      });\n      this._createArrow({\n        className: \"scra\",\n        icon: Codicon.scrollbarButtonDown,\n        top: void 0,\n        left: scrollbarDelta,\n        bottom: arrowDelta,\n        right: void 0,\n        bgWidth: options2.verticalScrollbarSize,\n        bgHeight: options2.arrowSize,\n        onActivate: () =\u003e this._host.onMouseWheel(new StandardWheelEvent(null, 0, -1))\n      });\n    }\n    this._createSlider(0, Math.floor((options2.verticalScrollbarSize - options2.verticalSliderSize) / 2), options2.verticalSliderSize, void 0);\n  }\n  _updateSlider(sliderSize, sliderPosition) {\n    this.slider.setHeight(sliderSize);\n    this.slider.setTop(sliderPosition);\n  }\n  _renderDomNode(largeSize, smallSize) {\n    this.domNode.setWidth(smallSize);\n    this.domNode.setHeight(largeSize);\n    this.domNode.setRight(0);\n    this.domNode.setTop(0);\n  }\n  onDidScroll(e) {\n    this._shouldRender = this._onElementScrollSize(e.scrollHeight) || this._shouldRender;\n    this._shouldRender = this._onElementScrollPosition(e.scrollTop) || this._shouldRender;\n    this._shouldRender = this._onElementSize(e.height) || this._shouldRender;\n    return this._shouldRender;\n  }\n  _pointerDownRelativePosition(offsetX, offsetY) {\n    return offsetY;\n  }\n  _sliderPointerPosition(e) {\n    return e.pageY;\n  }\n  _sliderOrthogonalPointerPosition(e) {\n    return e.pageX;\n  }\n  _updateScrollbarSize(size2) {\n    this.slider.setWidth(size2);\n  }\n  writeScrollPosition(target, scrollPosition) {\n    target.scrollTop = scrollPosition;\n  }\n  updateOptions(options2) {\n    this.updateScrollbarSize(options2.vertical === 2 ? 0 : options2.verticalScrollbarSize);\n    this._scrollbarState.setOppositeScrollbarSize(0);\n    this._visibilityController.setVisibility(options2.vertical);\n    this._scrollByPage = options2.scrollByPage;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/scrollableElement.js\ninit_async();\ninit_event();\ninit_lifecycle();\ninit_platform();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/scrollable.js\ninit_event();\ninit_lifecycle();\nvar ScrollState = class _ScrollState {\n  constructor(_forceIntegerValues, width2, scrollWidth, scrollLeft, height, scrollHeight, scrollTop) {\n    this._forceIntegerValues = _forceIntegerValues;\n    this._scrollStateBrand = void 0;\n    if (this._forceIntegerValues) {\n      width2 = width2 | 0;\n      scrollWidth = scrollWidth | 0;\n      scrollLeft = scrollLeft | 0;\n      height = height | 0;\n      scrollHeight = scrollHeight | 0;\n      scrollTop = scrollTop | 0;\n    }\n    this.rawScrollLeft = scrollLeft;\n    this.rawScrollTop = scrollTop;\n    if (width2 \u003c 0) {\n      width2 = 0;\n    }\n    if (scrollLeft + width2 \u003e scrollWidth) {\n      scrollLeft = scrollWidth - width2;\n    }\n    if (scrollLeft \u003c 0) {\n      scrollLeft = 0;\n    }\n    if (height \u003c 0) {\n      height = 0;\n    }\n    if (scrollTop + height \u003e scrollHeight) {\n      scrollTop = scrollHeight - height;\n    }\n    if (scrollTop \u003c 0) {\n      scrollTop = 0;\n    }\n    this.width = width2;\n    this.scrollWidth = scrollWidth;\n    this.scrollLeft = scrollLeft;\n    this.height = height;\n    this.scrollHeight = scrollHeight;\n    this.scrollTop = scrollTop;\n  }\n  equals(other) {\n    return this.rawScrollLeft === other.rawScrollLeft \u0026\u0026 this.rawScrollTop === other.rawScrollTop \u0026\u0026 this.width === other.width \u0026\u0026 this.scrollWidth === other.scrollWidth \u0026\u0026 this.scrollLeft === other.scrollLeft \u0026\u0026 this.height === other.height \u0026\u0026 this.scrollHeight === other.scrollHeight \u0026\u0026 this.scrollTop === other.scrollTop;\n  }\n  withScrollDimensions(update, useRawScrollPositions) {\n    return new _ScrollState(this._forceIntegerValues, typeof update.width !== \"undefined\" ? update.width : this.width, typeof update.scrollWidth !== \"undefined\" ? update.scrollWidth : this.scrollWidth, useRawScrollPositions ? this.rawScrollLeft : this.scrollLeft, typeof update.height !== \"undefined\" ? update.height : this.height, typeof update.scrollHeight !== \"undefined\" ? update.scrollHeight : this.scrollHeight, useRawScrollPositions ? this.rawScrollTop : this.scrollTop);\n  }\n  withScrollPosition(update) {\n    return new _ScrollState(this._forceIntegerValues, this.width, this.scrollWidth, typeof update.scrollLeft !== \"undefined\" ? update.scrollLeft : this.rawScrollLeft, this.height, this.scrollHeight, typeof update.scrollTop !== \"undefined\" ? update.scrollTop : this.rawScrollTop);\n  }\n  createScrollEvent(previous, inSmoothScrolling) {\n    const widthChanged = this.width !== previous.width;\n    const scrollWidthChanged = this.scrollWidth !== previous.scrollWidth;\n    const scrollLeftChanged = this.scrollLeft !== previous.scrollLeft;\n    const heightChanged = this.height !== previous.height;\n    const scrollHeightChanged = this.scrollHeight !== previous.scrollHeight;\n    const scrollTopChanged = this.scrollTop !== previous.scrollTop;\n    return {\n      inSmoothScrolling,\n      oldWidth: previous.width,\n      oldScrollWidth: previous.scrollWidth,\n      oldScrollLeft: previous.scrollLeft,\n      width: this.width,\n      scrollWidth: this.scrollWidth,\n      scrollLeft: this.scrollLeft,\n      oldHeight: previous.height,\n      oldScrollHeight: previous.scrollHeight,\n      oldScrollTop: previous.scrollTop,\n      height: this.height,\n      scrollHeight: this.scrollHeight,\n      scrollTop: this.scrollTop,\n      widthChanged,\n      scrollWidthChanged,\n      scrollLeftChanged,\n      heightChanged,\n      scrollHeightChanged,\n      scrollTopChanged\n    };\n  }\n};\nvar Scrollable = class extends Disposable {\n  constructor(options2) {\n    super();\n    this._scrollableBrand = void 0;\n    this._onScroll = this._register(new Emitter());\n    this.onScroll = this._onScroll.event;\n    this._smoothScrollDuration = options2.smoothScrollDuration;\n    this._scheduleAtNextAnimationFrame = options2.scheduleAtNextAnimationFrame;\n    this._state = new ScrollState(options2.forceIntegerValues, 0, 0, 0, 0, 0, 0);\n    this._smoothScrolling = null;\n  }\n  dispose() {\n    if (this._smoothScrolling) {\n      this._smoothScrolling.dispose();\n      this._smoothScrolling = null;\n    }\n    super.dispose();\n  }\n  setSmoothScrollDuration(smoothScrollDuration) {\n    this._smoothScrollDuration = smoothScrollDuration;\n  }\n  validateScrollPosition(scrollPosition) {\n    return this._state.withScrollPosition(scrollPosition);\n  }\n  getScrollDimensions() {\n    return this._state;\n  }\n  setScrollDimensions(dimensions, useRawScrollPositions) {\n    const newState = this._state.withScrollDimensions(dimensions, useRawScrollPositions);\n    this._setState(newState, Boolean(this._smoothScrolling));\n    this._smoothScrolling?.acceptScrollDimensions(this._state);\n  }\n  /**\n   * Returns the final scroll position that the instance will have once the smooth scroll animation concludes.\n   * If no scroll animation is occurring, it will return the current scroll position instead.\n   */\n  getFutureScrollPosition() {\n    if (this._smoothScrolling) {\n      return this._smoothScrolling.to;\n    }\n    return this._state;\n  }\n  /**\n   * Returns the current scroll position.\n   * Note: This result might be an intermediate scroll position, as there might be an ongoing smooth scroll animation.\n   */\n  getCurrentScrollPosition() {\n    return this._state;\n  }\n  setScrollPositionNow(update) {\n    const newState = this._state.withScrollPosition(update);\n    if (this._smoothScrolling) {\n      this._smoothScrolling.dispose();\n      this._smoothScrolling = null;\n    }\n    this._setState(newState, false);\n  }\n  setScrollPositionSmooth(update, reuseAnimation) {\n    if (this._smoothScrollDuration === 0) {\n      return this.setScrollPositionNow(update);\n    }\n    if (this._smoothScrolling) {\n      update = {\n        scrollLeft: typeof update.scrollLeft === \"undefined\" ? this._smoothScrolling.to.scrollLeft : update.scrollLeft,\n        scrollTop: typeof update.scrollTop === \"undefined\" ? this._smoothScrolling.to.scrollTop : update.scrollTop\n      };\n      const validTarget = this._state.withScrollPosition(update);\n      if (this._smoothScrolling.to.scrollLeft === validTarget.scrollLeft \u0026\u0026 this._smoothScrolling.to.scrollTop === validTarget.scrollTop) {\n        return;\n      }\n      let newSmoothScrolling;\n      if (reuseAnimation) {\n        newSmoothScrolling = new SmoothScrollingOperation(this._smoothScrolling.from, validTarget, this._smoothScrolling.startTime, this._smoothScrolling.duration);\n      } else {\n        newSmoothScrolling = this._smoothScrolling.combine(this._state, validTarget, this._smoothScrollDuration);\n      }\n      this._smoothScrolling.dispose();\n      this._smoothScrolling = newSmoothScrolling;\n    } else {\n      const validTarget = this._state.withScrollPosition(update);\n      this._smoothScrolling = SmoothScrollingOperation.start(this._state, validTarget, this._smoothScrollDuration);\n    }\n    this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() =\u003e {\n      if (!this._smoothScrolling) {\n        return;\n      }\n      this._smoothScrolling.animationFrameDisposable = null;\n      this._performSmoothScrolling();\n    });\n  }\n  hasPendingScrollAnimation() {\n    return Boolean(this._smoothScrolling);\n  }\n  _performSmoothScrolling() {\n    if (!this._smoothScrolling) {\n      return;\n    }\n    const update = this._smoothScrolling.tick();\n    const newState = this._state.withScrollPosition(update);\n    this._setState(newState, true);\n    if (!this._smoothScrolling) {\n      return;\n    }\n    if (update.isDone) {\n      this._smoothScrolling.dispose();\n      this._smoothScrolling = null;\n      return;\n    }\n    this._smoothScrolling.animationFrameDisposable = this._scheduleAtNextAnimationFrame(() =\u003e {\n      if (!this._smoothScrolling) {\n        return;\n      }\n      this._smoothScrolling.animationFrameDisposable = null;\n      this._performSmoothScrolling();\n    });\n  }\n  _setState(newState, inSmoothScrolling) {\n    const oldState = this._state;\n    if (oldState.equals(newState)) {\n      return;\n    }\n    this._state = newState;\n    this._onScroll.fire(this._state.createScrollEvent(oldState, inSmoothScrolling));\n  }\n};\nvar SmoothScrollingUpdate = class {\n  constructor(scrollLeft, scrollTop, isDone) {\n    this.scrollLeft = scrollLeft;\n    this.scrollTop = scrollTop;\n    this.isDone = isDone;\n  }\n};\nfunction createEaseOutCubic(from, to) {\n  const delta = to - from;\n  return function(completion) {\n    return from + delta * easeOutCubic(completion);\n  };\n}\nfunction createComposed(a, b, cut) {\n  return function(completion) {\n    if (completion \u003c cut) {\n      return a(completion / cut);\n    }\n    return b((completion - cut) / (1 - cut));\n  };\n}\nvar SmoothScrollingOperation = class _SmoothScrollingOperation {\n  constructor(from, to, startTime, duration) {\n    this.from = from;\n    this.to = to;\n    this.duration = duration;\n    this.startTime = startTime;\n    this.animationFrameDisposable = null;\n    this._initAnimations();\n  }\n  _initAnimations() {\n    this.scrollLeft = this._initAnimation(this.from.scrollLeft, this.to.scrollLeft, this.to.width);\n    this.scrollTop = this._initAnimation(this.from.scrollTop, this.to.scrollTop, this.to.height);\n  }\n  _initAnimation(from, to, viewportSize) {\n    const delta = Math.abs(from - to);\n    if (delta \u003e 2.5 * viewportSize) {\n      let stop1, stop2;\n      if (from \u003c to) {\n        stop1 = from + 0.75 * viewportSize;\n        stop2 = to - 0.75 * viewportSize;\n      } else {\n        stop1 = from - 0.75 * viewportSize;\n        stop2 = to + 0.75 * viewportSize;\n      }\n      return createComposed(createEaseOutCubic(from, stop1), createEaseOutCubic(stop2, to), 0.33);\n    }\n    return createEaseOutCubic(from, to);\n  }\n  dispose() {\n    if (this.animationFrameDisposable !== null) {\n      this.animationFrameDisposable.dispose();\n      this.animationFrameDisposable = null;\n    }\n  }\n  acceptScrollDimensions(state) {\n    this.to = state.withScrollPosition(this.to);\n    this._initAnimations();\n  }\n  tick() {\n    return this._tick(Date.now());\n  }\n  _tick(now) {\n    const completion = (now - this.startTime) / this.duration;\n    if (completion \u003c 1) {\n      const newScrollLeft = this.scrollLeft(completion);\n      const newScrollTop = this.scrollTop(completion);\n      return new SmoothScrollingUpdate(newScrollLeft, newScrollTop, false);\n    }\n    return new SmoothScrollingUpdate(this.to.scrollLeft, this.to.scrollTop, true);\n  }\n  combine(from, to, duration) {\n    return _SmoothScrollingOperation.start(from, to, duration);\n  }\n  static start(from, to, duration) {\n    duration = duration + 10;\n    const startTime = Date.now() - 10;\n    return new _SmoothScrollingOperation(from, to, startTime, duration);\n  }\n};\nfunction easeInCubic(t) {\n  return Math.pow(t, 3);\n}\nfunction easeOutCubic(t) {\n  return 1 - easeInCubic(1 - t);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/scrollbar/scrollableElement.js\nvar HIDE_TIMEOUT = 500;\nvar SCROLL_WHEEL_SENSITIVITY = 50;\nvar SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED = true;\nvar MouseWheelClassifierItem = class {\n  constructor(timestamp, deltaX, deltaY) {\n    this.timestamp = timestamp;\n    this.deltaX = deltaX;\n    this.deltaY = deltaY;\n    this.score = 0;\n  }\n};\nvar MouseWheelClassifier = class _MouseWheelClassifier {\n  static {\n    this.INSTANCE = new _MouseWheelClassifier();\n  }\n  constructor() {\n    this._capacity = 5;\n    this._memory = [];\n    this._front = -1;\n    this._rear = -1;\n  }\n  isPhysicalMouseWheel() {\n    if (this._front === -1 \u0026\u0026 this._rear === -1) {\n      return false;\n    }\n    let remainingInfluence = 1;\n    let score3 = 0;\n    let iteration = 1;\n    let index = this._rear;\n    do {\n      const influence = index === this._front ? remainingInfluence : Math.pow(2, -iteration);\n      remainingInfluence -= influence;\n      score3 += this._memory[index].score * influence;\n      if (index === this._front) {\n        break;\n      }\n      index = (this._capacity + index - 1) % this._capacity;\n      iteration++;\n    } while (true);\n    return score3 \u003c= 0.5;\n  }\n  acceptStandardWheelEvent(e) {\n    if (isChrome) {\n      const targetWindow = getWindow(e.browserEvent);\n      const pageZoomFactor = getZoomFactor(targetWindow);\n      this.accept(Date.now(), e.deltaX * pageZoomFactor, e.deltaY * pageZoomFactor);\n    } else {\n      this.accept(Date.now(), e.deltaX, e.deltaY);\n    }\n  }\n  accept(timestamp, deltaX, deltaY) {\n    let previousItem = null;\n    const item = new MouseWheelClassifierItem(timestamp, deltaX, deltaY);\n    if (this._front === -1 \u0026\u0026 this._rear === -1) {\n      this._memory[0] = item;\n      this._front = 0;\n      this._rear = 0;\n    } else {\n      previousItem = this._memory[this._rear];\n      this._rear = (this._rear + 1) % this._capacity;\n      if (this._rear === this._front) {\n        this._front = (this._front + 1) % this._capacity;\n      }\n      this._memory[this._rear] = item;\n    }\n    item.score = this._computeScore(item, previousItem);\n  }\n  /**\n   * A score between 0 and 1 for `item`.\n   *  - a score towards 0 indicates that the source appears to be a physical mouse wheel\n   *  - a score towards 1 indicates that the source appears to be a touchpad or magic mouse, etc.\n   */\n  _computeScore(item, previousItem) {\n    if (Math.abs(item.deltaX) \u003e 0 \u0026\u0026 Math.abs(item.deltaY) \u003e 0) {\n      return 1;\n    }\n    let score3 = 0.5;\n    if (!this._isAlmostInt(item.deltaX) || !this._isAlmostInt(item.deltaY)) {\n      score3 += 0.25;\n    }\n    if (previousItem) {\n      const absDeltaX = Math.abs(item.deltaX);\n      const absDeltaY = Math.abs(item.deltaY);\n      const absPreviousDeltaX = Math.abs(previousItem.deltaX);\n      const absPreviousDeltaY = Math.abs(previousItem.deltaY);\n      const minDeltaX = Math.max(Math.min(absDeltaX, absPreviousDeltaX), 1);\n      const minDeltaY = Math.max(Math.min(absDeltaY, absPreviousDeltaY), 1);\n      const maxDeltaX = Math.max(absDeltaX, absPreviousDeltaX);\n      const maxDeltaY = Math.max(absDeltaY, absPreviousDeltaY);\n      const isSameModulo = maxDeltaX % minDeltaX === 0 \u0026\u0026 maxDeltaY % minDeltaY === 0;\n      if (isSameModulo) {\n        score3 -= 0.5;\n      }\n    }\n    return Math.min(Math.max(score3, 0), 1);\n  }\n  _isAlmostInt(value) {\n    const epsilon = Number.EPSILON * 100;\n    const delta = Math.abs(Math.round(value) - value);\n    return delta \u003c 0.01 + epsilon;\n  }\n};\nvar AbstractScrollableElement = class extends Widget {\n  get onScroll() {\n    return this._onScroll.event;\n  }\n  get options() {\n    return this._options;\n  }\n  constructor(element, options2, scrollable) {\n    super();\n    this._inertialTimeout = null;\n    this._inertialSpeed = { X: 0, Y: 0 };\n    this._onScroll = this._register(new Emitter());\n    this._onWillScroll = this._register(new Emitter());\n    element.style.overflow = \"hidden\";\n    this._options = resolveOptions(options2);\n    this._scrollable = scrollable;\n    this._register(this._scrollable.onScroll((e) =\u003e {\n      this._onWillScroll.fire(e);\n      this._onDidScroll(e);\n      this._onScroll.fire(e);\n    }));\n    const scrollbarHost = {\n      onMouseWheel: (mouseWheelEvent) =\u003e this._onMouseWheel(mouseWheelEvent),\n      onDragStart: () =\u003e this._onDragStart(),\n      onDragEnd: () =\u003e this._onDragEnd()\n    };\n    this._verticalScrollbar = this._register(new VerticalScrollbar(this._scrollable, this._options, scrollbarHost));\n    this._horizontalScrollbar = this._register(new HorizontalScrollbar(this._scrollable, this._options, scrollbarHost));\n    this._domNode = document.createElement(\"div\");\n    this._domNode.className = \"monaco-scrollable-element \" + this._options.className;\n    this._domNode.setAttribute(\"role\", \"presentation\");\n    this._domNode.style.position = \"relative\";\n    this._domNode.style.overflow = \"hidden\";\n    this._domNode.appendChild(element);\n    this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode);\n    this._domNode.appendChild(this._verticalScrollbar.domNode.domNode);\n    if (this._options.useShadows) {\n      this._leftShadowDomNode = createFastDomNode(document.createElement(\"div\"));\n      this._leftShadowDomNode.setClassName(\"shadow\");\n      this._domNode.appendChild(this._leftShadowDomNode.domNode);\n      this._topShadowDomNode = createFastDomNode(document.createElement(\"div\"));\n      this._topShadowDomNode.setClassName(\"shadow\");\n      this._domNode.appendChild(this._topShadowDomNode.domNode);\n      this._topLeftShadowDomNode = createFastDomNode(document.createElement(\"div\"));\n      this._topLeftShadowDomNode.setClassName(\"shadow\");\n      this._domNode.appendChild(this._topLeftShadowDomNode.domNode);\n    } else {\n      this._leftShadowDomNode = null;\n      this._topShadowDomNode = null;\n      this._topLeftShadowDomNode = null;\n    }\n    this._listenOnDomNode = this._options.listenOnDomNode || this._domNode;\n    this._mouseWheelToDispose = [];\n    this._setListeningToMouseWheel(this._options.handleMouseWheel);\n    this.onmouseover(this._listenOnDomNode, (e) =\u003e this._onMouseOver(e));\n    this.onmouseleave(this._listenOnDomNode, (e) =\u003e this._onMouseLeave(e));\n    this._hideTimeout = this._register(new TimeoutTimer());\n    this._isDragging = false;\n    this._mouseIsOver = false;\n    this._shouldRender = true;\n    this._revealOnScroll = true;\n  }\n  dispose() {\n    this._mouseWheelToDispose = dispose(this._mouseWheelToDispose);\n    if (this._inertialTimeout) {\n      this._inertialTimeout.dispose();\n      this._inertialTimeout = null;\n    }\n    super.dispose();\n  }\n  /**\n   * Get the generated 'scrollable' dom node\n   */\n  getDomNode() {\n    return this._domNode;\n  }\n  getOverviewRulerLayoutInfo() {\n    return {\n      parent: this._domNode,\n      insertBefore: this._verticalScrollbar.domNode.domNode\n    };\n  }\n  /**\n   * Delegate a pointer down event to the vertical scrollbar.\n   * This is to help with clicking somewhere else and having the scrollbar react.\n   */\n  delegateVerticalScrollbarPointerDown(browserEvent) {\n    this._verticalScrollbar.delegatePointerDown(browserEvent);\n  }\n  getScrollDimensions() {\n    return this._scrollable.getScrollDimensions();\n  }\n  setScrollDimensions(dimensions) {\n    this._scrollable.setScrollDimensions(dimensions, false);\n  }\n  /**\n   * Update the class name of the scrollable element.\n   */\n  updateClassName(newClassName) {\n    this._options.className = newClassName;\n    if (isMacintosh) {\n      this._options.className += \" mac\";\n    }\n    this._domNode.className = \"monaco-scrollable-element \" + this._options.className;\n  }\n  /**\n   * Update configuration options for the scrollbar.\n   */\n  updateOptions(newOptions) {\n    if (typeof newOptions.handleMouseWheel !== \"undefined\") {\n      this._options.handleMouseWheel = newOptions.handleMouseWheel;\n      this._setListeningToMouseWheel(this._options.handleMouseWheel);\n    }\n    if (typeof newOptions.mouseWheelScrollSensitivity !== \"undefined\") {\n      this._options.mouseWheelScrollSensitivity = newOptions.mouseWheelScrollSensitivity;\n    }\n    if (typeof newOptions.fastScrollSensitivity !== \"undefined\") {\n      this._options.fastScrollSensitivity = newOptions.fastScrollSensitivity;\n    }\n    if (typeof newOptions.scrollPredominantAxis !== \"undefined\") {\n      this._options.scrollPredominantAxis = newOptions.scrollPredominantAxis;\n    }\n    if (typeof newOptions.horizontal !== \"undefined\") {\n      this._options.horizontal = newOptions.horizontal;\n    }\n    if (typeof newOptions.vertical !== \"undefined\") {\n      this._options.vertical = newOptions.vertical;\n    }\n    if (typeof newOptions.horizontalScrollbarSize !== \"undefined\") {\n      this._options.horizontalScrollbarSize = newOptions.horizontalScrollbarSize;\n    }\n    if (typeof newOptions.verticalScrollbarSize !== \"undefined\") {\n      this._options.verticalScrollbarSize = newOptions.verticalScrollbarSize;\n    }\n    if (typeof newOptions.scrollByPage !== \"undefined\") {\n      this._options.scrollByPage = newOptions.scrollByPage;\n    }\n    this._horizontalScrollbar.updateOptions(this._options);\n    this._verticalScrollbar.updateOptions(this._options);\n    if (!this._options.lazyRender) {\n      this._render();\n    }\n  }\n  delegateScrollFromMouseWheelEvent(browserEvent) {\n    this._onMouseWheel(new StandardWheelEvent(browserEvent));\n  }\n  async _periodicSync() {\n    let scheduleAgain = false;\n    if (this._inertialSpeed.X !== 0 || this._inertialSpeed.Y !== 0) {\n      this._scrollable.setScrollPositionNow({\n        scrollTop: this._scrollable.getCurrentScrollPosition().scrollTop - this._inertialSpeed.Y * 100,\n        scrollLeft: this._scrollable.getCurrentScrollPosition().scrollLeft - this._inertialSpeed.X * 100\n      });\n      this._inertialSpeed.X *= 0.9;\n      this._inertialSpeed.Y *= 0.9;\n      if (Math.abs(this._inertialSpeed.X) \u003c 0.01) {\n        this._inertialSpeed.X = 0;\n      }\n      if (Math.abs(this._inertialSpeed.Y) \u003c 0.01) {\n        this._inertialSpeed.Y = 0;\n      }\n      scheduleAgain = this._inertialSpeed.X !== 0 || this._inertialSpeed.Y !== 0;\n    }\n    if (scheduleAgain) {\n      if (!this._inertialTimeout) {\n        this._inertialTimeout = new TimeoutTimer();\n      }\n      this._inertialTimeout.cancelAndSet(() =\u003e this._periodicSync(), 1e3 / 60);\n    } else {\n      this._inertialTimeout?.dispose();\n      this._inertialTimeout = null;\n    }\n  }\n  // -------------------- mouse wheel scrolling --------------------\n  _setListeningToMouseWheel(shouldListen) {\n    const isListening = this._mouseWheelToDispose.length \u003e 0;\n    if (isListening === shouldListen) {\n      return;\n    }\n    this._mouseWheelToDispose = dispose(this._mouseWheelToDispose);\n    if (shouldListen) {\n      const onMouseWheel = (browserEvent) =\u003e {\n        this._onMouseWheel(new StandardWheelEvent(browserEvent));\n      };\n      this._mouseWheelToDispose.push(addDisposableListener(this._listenOnDomNode, EventType.MOUSE_WHEEL, onMouseWheel, { passive: false }));\n    }\n  }\n  _onMouseWheel(e) {\n    if (e.browserEvent?.defaultPrevented) {\n      return;\n    }\n    const classifier = MouseWheelClassifier.INSTANCE;\n    if (SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED) {\n      classifier.acceptStandardWheelEvent(e);\n    }\n    let didScroll = false;\n    if (e.deltaY || e.deltaX) {\n      let deltaY = e.deltaY * this._options.mouseWheelScrollSensitivity;\n      let deltaX = e.deltaX * this._options.mouseWheelScrollSensitivity;\n      if (this._options.scrollPredominantAxis) {\n        if (this._options.scrollYToX \u0026\u0026 deltaX + deltaY === 0) {\n          deltaX = deltaY = 0;\n        } else if (Math.abs(deltaY) \u003e= Math.abs(deltaX)) {\n          deltaX = 0;\n        } else {\n          deltaY = 0;\n        }\n      }\n      if (this._options.flipAxes) {\n        [deltaY, deltaX] = [deltaX, deltaY];\n      }\n      const shiftConvert = !isMacintosh \u0026\u0026 e.browserEvent \u0026\u0026 e.browserEvent.shiftKey;\n      if ((this._options.scrollYToX || shiftConvert) \u0026\u0026 !deltaX) {\n        deltaX = deltaY;\n        deltaY = 0;\n      }\n      if (e.browserEvent \u0026\u0026 e.browserEvent.altKey) {\n        deltaX = deltaX * this._options.fastScrollSensitivity;\n        deltaY = deltaY * this._options.fastScrollSensitivity;\n      }\n      const futureScrollPosition = this._scrollable.getFutureScrollPosition();\n      let desiredScrollPosition = {};\n      if (deltaY) {\n        const deltaScrollTop = SCROLL_WHEEL_SENSITIVITY * deltaY;\n        const desiredScrollTop = futureScrollPosition.scrollTop - (deltaScrollTop \u003c 0 ? Math.floor(deltaScrollTop) : Math.ceil(deltaScrollTop));\n        this._verticalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollTop);\n      }\n      if (deltaX) {\n        const deltaScrollLeft = SCROLL_WHEEL_SENSITIVITY * deltaX;\n        const desiredScrollLeft = futureScrollPosition.scrollLeft - (deltaScrollLeft \u003c 0 ? Math.floor(deltaScrollLeft) : Math.ceil(deltaScrollLeft));\n        this._horizontalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollLeft);\n      }\n      desiredScrollPosition = this._scrollable.validateScrollPosition(desiredScrollPosition);\n      if (this._options.inertialScroll \u0026\u0026 (deltaX || deltaY)) {\n        let startPeriodic = false;\n        if (this._inertialSpeed.X === 0 \u0026\u0026 this._inertialSpeed.Y === 0) {\n          startPeriodic = true;\n        }\n        this._inertialSpeed.Y = (deltaY \u003c 0 ? -1 : 1) * Math.abs(deltaY) ** 1.02;\n        this._inertialSpeed.X = (deltaX \u003c 0 ? -1 : 1) * Math.abs(deltaX) ** 1.02;\n        if (startPeriodic) {\n          this._periodicSync();\n        }\n      }\n      if (futureScrollPosition.scrollLeft !== desiredScrollPosition.scrollLeft || futureScrollPosition.scrollTop !== desiredScrollPosition.scrollTop) {\n        const canPerformSmoothScroll = SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED \u0026\u0026 this._options.mouseWheelSmoothScroll \u0026\u0026 classifier.isPhysicalMouseWheel();\n        if (canPerformSmoothScroll) {\n          this._scrollable.setScrollPositionSmooth(desiredScrollPosition);\n        } else {\n          this._scrollable.setScrollPositionNow(desiredScrollPosition);\n        }\n        didScroll = true;\n      }\n    }\n    let consumeMouseWheel = didScroll;\n    if (!consumeMouseWheel \u0026\u0026 this._options.alwaysConsumeMouseWheel) {\n      consumeMouseWheel = true;\n    }\n    if (!consumeMouseWheel \u0026\u0026 this._options.consumeMouseWheelIfScrollbarIsNeeded \u0026\u0026 (this._verticalScrollbar.isNeeded() || this._horizontalScrollbar.isNeeded())) {\n      consumeMouseWheel = true;\n    }\n    if (consumeMouseWheel) {\n      e.preventDefault();\n      e.stopPropagation();\n    }\n  }\n  _onDidScroll(e) {\n    this._shouldRender = this._horizontalScrollbar.onDidScroll(e) || this._shouldRender;\n    this._shouldRender = this._verticalScrollbar.onDidScroll(e) || this._shouldRender;\n    if (this._options.useShadows) {\n      this._shouldRender = true;\n    }\n    if (this._revealOnScroll) {\n      this._reveal();\n    }\n    if (!this._options.lazyRender) {\n      this._render();\n    }\n  }\n  /**\n   * Render / mutate the DOM now.\n   * Should be used together with the ctor option `lazyRender`.\n   */\n  renderNow() {\n    if (!this._options.lazyRender) {\n      throw new Error(\"Please use `lazyRender` together with `renderNow`!\");\n    }\n    this._render();\n  }\n  _render() {\n    if (!this._shouldRender) {\n      return;\n    }\n    this._shouldRender = false;\n    this._horizontalScrollbar.render();\n    this._verticalScrollbar.render();\n    if (this._options.useShadows) {\n      const scrollState = this._scrollable.getCurrentScrollPosition();\n      const enableTop = scrollState.scrollTop \u003e 0;\n      const enableLeft = scrollState.scrollLeft \u003e 0;\n      const leftClassName = enableLeft ? \" left\" : \"\";\n      const topClassName = enableTop ? \" top\" : \"\";\n      const topLeftClassName = enableLeft || enableTop ? \" top-left-corner\" : \"\";\n      this._leftShadowDomNode.setClassName(`shadow${leftClassName}`);\n      this._topShadowDomNode.setClassName(`shadow${topClassName}`);\n      this._topLeftShadowDomNode.setClassName(`shadow${topLeftClassName}${topClassName}${leftClassName}`);\n    }\n  }\n  // -------------------- fade in / fade out --------------------\n  _onDragStart() {\n    this._isDragging = true;\n    this._reveal();\n  }\n  _onDragEnd() {\n    this._isDragging = false;\n    this._hide();\n  }\n  _onMouseLeave(e) {\n    this._mouseIsOver = false;\n    this._hide();\n  }\n  _onMouseOver(e) {\n    this._mouseIsOver = true;\n    this._reveal();\n  }\n  _reveal() {\n    this._verticalScrollbar.beginReveal();\n    this._horizontalScrollbar.beginReveal();\n    this._scheduleHide();\n  }\n  _hide() {\n    if (!this._mouseIsOver \u0026\u0026 !this._isDragging) {\n      this._verticalScrollbar.beginHide();\n      this._horizontalScrollbar.beginHide();\n    }\n  }\n  _scheduleHide() {\n    if (!this._mouseIsOver \u0026\u0026 !this._isDragging) {\n      this._hideTimeout.cancelAndSet(() =\u003e this._hide(), HIDE_TIMEOUT);\n    }\n  }\n};\nvar ScrollableElement = class extends AbstractScrollableElement {\n  constructor(element, options2) {\n    options2 = options2 || {};\n    options2.mouseWheelSmoothScroll = false;\n    const scrollable = new Scrollable({\n      forceIntegerValues: true,\n      smoothScrollDuration: 0,\n      scheduleAtNextAnimationFrame: (callback) =\u003e scheduleAtNextAnimationFrame(getWindow(element), callback)\n    });\n    super(element, options2, scrollable);\n    this._register(scrollable);\n  }\n  setScrollPosition(update) {\n    this._scrollable.setScrollPositionNow(update);\n  }\n};\nvar SmoothScrollableElement = class extends AbstractScrollableElement {\n  constructor(element, options2, scrollable) {\n    super(element, options2, scrollable);\n  }\n  setScrollPosition(update) {\n    if (update.reuseAnimation) {\n      this._scrollable.setScrollPositionSmooth(update, update.reuseAnimation);\n    } else {\n      this._scrollable.setScrollPositionNow(update);\n    }\n  }\n  getScrollPosition() {\n    return this._scrollable.getCurrentScrollPosition();\n  }\n};\nvar DomScrollableElement = class extends AbstractScrollableElement {\n  constructor(element, options2) {\n    options2 = options2 || {};\n    options2.mouseWheelSmoothScroll = false;\n    const scrollable = new Scrollable({\n      forceIntegerValues: false,\n      // See https://github.com/microsoft/vscode/issues/139877\n      smoothScrollDuration: 0,\n      scheduleAtNextAnimationFrame: (callback) =\u003e scheduleAtNextAnimationFrame(getWindow(element), callback)\n    });\n    super(element, options2, scrollable);\n    this._register(scrollable);\n    this._element = element;\n    this._register(this.onScroll((e) =\u003e {\n      if (e.scrollTopChanged) {\n        this._element.scrollTop = e.scrollTop;\n      }\n      if (e.scrollLeftChanged) {\n        this._element.scrollLeft = e.scrollLeft;\n      }\n    }));\n    this.scanDomNode();\n  }\n  setScrollPosition(update) {\n    this._scrollable.setScrollPositionNow(update);\n  }\n  getScrollPosition() {\n    return this._scrollable.getCurrentScrollPosition();\n  }\n  scanDomNode() {\n    this.setScrollDimensions({\n      width: this._element.clientWidth,\n      scrollWidth: this._element.scrollWidth,\n      height: this._element.clientHeight,\n      scrollHeight: this._element.scrollHeight\n    });\n    this.setScrollPosition({\n      scrollLeft: this._element.scrollLeft,\n      scrollTop: this._element.scrollTop\n    });\n  }\n};\nfunction resolveOptions(opts) {\n  const result = {\n    lazyRender: typeof opts.lazyRender !== \"undefined\" ? opts.lazyRender : false,\n    className: typeof opts.className !== \"undefined\" ? opts.className : \"\",\n    useShadows: typeof opts.useShadows !== \"undefined\" ? opts.useShadows : true,\n    handleMouseWheel: typeof opts.handleMouseWheel !== \"undefined\" ? opts.handleMouseWheel : true,\n    flipAxes: typeof opts.flipAxes !== \"undefined\" ? opts.flipAxes : false,\n    consumeMouseWheelIfScrollbarIsNeeded: typeof opts.consumeMouseWheelIfScrollbarIsNeeded !== \"undefined\" ? opts.consumeMouseWheelIfScrollbarIsNeeded : false,\n    alwaysConsumeMouseWheel: typeof opts.alwaysConsumeMouseWheel !== \"undefined\" ? opts.alwaysConsumeMouseWheel : false,\n    scrollYToX: typeof opts.scrollYToX !== \"undefined\" ? opts.scrollYToX : false,\n    mouseWheelScrollSensitivity: typeof opts.mouseWheelScrollSensitivity !== \"undefined\" ? opts.mouseWheelScrollSensitivity : 1,\n    fastScrollSensitivity: typeof opts.fastScrollSensitivity !== \"undefined\" ? opts.fastScrollSensitivity : 5,\n    scrollPredominantAxis: typeof opts.scrollPredominantAxis !== \"undefined\" ? opts.scrollPredominantAxis : true,\n    mouseWheelSmoothScroll: typeof opts.mouseWheelSmoothScroll !== \"undefined\" ? opts.mouseWheelSmoothScroll : true,\n    inertialScroll: typeof opts.inertialScroll !== \"undefined\" ? opts.inertialScroll : false,\n    arrowSize: typeof opts.arrowSize !== \"undefined\" ? opts.arrowSize : 11,\n    listenOnDomNode: typeof opts.listenOnDomNode !== \"undefined\" ? opts.listenOnDomNode : null,\n    horizontal: typeof opts.horizontal !== \"undefined\" ? opts.horizontal : 1,\n    horizontalScrollbarSize: typeof opts.horizontalScrollbarSize !== \"undefined\" ? opts.horizontalScrollbarSize : 10,\n    horizontalSliderSize: typeof opts.horizontalSliderSize !== \"undefined\" ? opts.horizontalSliderSize : 0,\n    horizontalHasArrows: typeof opts.horizontalHasArrows !== \"undefined\" ? opts.horizontalHasArrows : false,\n    vertical: typeof opts.vertical !== \"undefined\" ? opts.vertical : 1,\n    verticalScrollbarSize: typeof opts.verticalScrollbarSize !== \"undefined\" ? opts.verticalScrollbarSize : 10,\n    verticalHasArrows: typeof opts.verticalHasArrows !== \"undefined\" ? opts.verticalHasArrows : false,\n    verticalSliderSize: typeof opts.verticalSliderSize !== \"undefined\" ? opts.verticalSliderSize : 0,\n    scrollByPage: typeof opts.scrollByPage !== \"undefined\" ? opts.scrollByPage : false\n  };\n  result.horizontalSliderSize = typeof opts.horizontalSliderSize !== \"undefined\" ? opts.horizontalSliderSize : result.horizontalScrollbarSize;\n  result.verticalSliderSize = typeof opts.verticalSliderSize !== \"undefined\" ? opts.verticalSliderSize : result.verticalScrollbarSize;\n  if (isMacintosh) {\n    result.className += \" mac\";\n  }\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/dragScrolling.js\ninit_dom();\ninit_lifecycle();\ninit_position();\nvar DragScrolling = class extends Disposable {\n  constructor(_context, _viewHelper, _mouseTargetFactory, _dispatchMouse) {\n    super();\n    this._context = _context;\n    this._viewHelper = _viewHelper;\n    this._mouseTargetFactory = _mouseTargetFactory;\n    this._dispatchMouse = _dispatchMouse;\n    this._operation = null;\n  }\n  dispose() {\n    super.dispose();\n    this.stop();\n  }\n  start(position, mouseEvent) {\n    if (this._operation) {\n      this._operation.setPosition(position, mouseEvent);\n    } else {\n      this._operation = this._createDragScrollingOperation(position, mouseEvent);\n    }\n  }\n  stop() {\n    if (this._operation) {\n      this._operation.dispose();\n      this._operation = null;\n    }\n  }\n};\nvar DragScrollingOperation = class extends Disposable {\n  constructor(_context, _viewHelper, _mouseTargetFactory, _dispatchMouse, position, mouseEvent) {\n    super();\n    this._context = _context;\n    this._viewHelper = _viewHelper;\n    this._mouseTargetFactory = _mouseTargetFactory;\n    this._dispatchMouse = _dispatchMouse;\n    this._position = position;\n    this._mouseEvent = mouseEvent;\n    this._lastTime = Date.now();\n    this._animationFrameDisposable = scheduleAtNextAnimationFrame(getWindow(mouseEvent.browserEvent), () =\u003e this._execute());\n  }\n  dispose() {\n    this._animationFrameDisposable.dispose();\n    super.dispose();\n  }\n  setPosition(position, mouseEvent) {\n    this._position = position;\n    this._mouseEvent = mouseEvent;\n  }\n  /**\n   * update internal state and return elapsed ms since last time\n   */\n  _tick() {\n    const now = Date.now();\n    const elapsed = now - this._lastTime;\n    this._lastTime = now;\n    return elapsed;\n  }\n};\nvar TopBottomDragScrolling = class extends DragScrolling {\n  _createDragScrollingOperation(position, mouseEvent) {\n    return new TopBottomDragScrollingOperation(this._context, this._viewHelper, this._mouseTargetFactory, this._dispatchMouse, position, mouseEvent);\n  }\n};\nvar TopBottomDragScrollingOperation = class extends DragScrollingOperation {\n  /**\n   * get the number of lines per second to auto-scroll\n   */\n  _getScrollSpeed() {\n    const lineHeight = this._context.configuration.options.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const viewportInLines = this._context.configuration.options.get(\n      164\n      /* EditorOption.layoutInfo */\n    ).height / lineHeight;\n    const outsideDistanceInLines = this._position.outsideDistance / lineHeight;\n    if (outsideDistanceInLines \u003c= 1.5) {\n      return Math.max(30, viewportInLines * (1 + outsideDistanceInLines));\n    }\n    if (outsideDistanceInLines \u003c= 3) {\n      return Math.max(60, viewportInLines * (2 + outsideDistanceInLines));\n    }\n    return Math.max(200, viewportInLines * (7 + outsideDistanceInLines));\n  }\n  _execute() {\n    const lineHeight = this._context.configuration.options.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const scrollSpeedInLines = this._getScrollSpeed();\n    const elapsed = this._tick();\n    const scrollInPixels = scrollSpeedInLines * (elapsed / 1e3) * lineHeight;\n    const scrollValue = this._position.outsidePosition === \"above\" ? -scrollInPixels : scrollInPixels;\n    this._context.viewModel.viewLayout.deltaScrollNow(0, scrollValue);\n    this._viewHelper.renderNow();\n    const viewportData = this._context.viewLayout.getLinesViewportData();\n    const edgeLineNumber = this._position.outsidePosition === \"above\" ? viewportData.startLineNumber : viewportData.endLineNumber;\n    let mouseTarget;\n    {\n      const editorPos = createEditorPagePosition(this._viewHelper.viewDomNode);\n      const horizontalScrollbarHeight = this._context.configuration.options.get(\n        164\n        /* EditorOption.layoutInfo */\n      ).horizontalScrollbarHeight;\n      const pos = new PageCoordinates(this._mouseEvent.pos.x, editorPos.y + editorPos.height - horizontalScrollbarHeight - 0.1);\n      const relativePos = createCoordinatesRelativeToEditor(this._viewHelper.viewDomNode, editorPos, pos);\n      mouseTarget = this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(), editorPos, pos, relativePos, null);\n    }\n    if (!mouseTarget.position || mouseTarget.position.lineNumber !== edgeLineNumber) {\n      if (this._position.outsidePosition === \"above\") {\n        mouseTarget = MouseTarget.createOutsideEditor(this._position.mouseColumn, new Position(edgeLineNumber, 1), \"above\", this._position.outsideDistance);\n      } else {\n        mouseTarget = MouseTarget.createOutsideEditor(this._position.mouseColumn, new Position(edgeLineNumber, this._context.viewModel.getLineMaxColumn(edgeLineNumber)), \"below\", this._position.outsideDistance);\n      }\n    }\n    this._dispatchMouse(\n      mouseTarget,\n      true,\n      2\n      /* NavigationCommandRevealType.None */\n    );\n    this._animationFrameDisposable = scheduleAtNextAnimationFrame(getWindow(mouseTarget.element), () =\u003e this._execute());\n  }\n};\nvar LeftRightDragScrolling = class extends DragScrolling {\n  _createDragScrollingOperation(position, mouseEvent) {\n    return new LeftRightDragScrollingOperation(this._context, this._viewHelper, this._mouseTargetFactory, this._dispatchMouse, position, mouseEvent);\n  }\n};\nvar LeftRightDragScrollingOperation = class extends DragScrollingOperation {\n  /**\n   * get the number of cols per second to auto-scroll\n   */\n  _getScrollSpeed() {\n    const charWidth = this._context.configuration.options.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalFullwidthCharacterWidth;\n    const viewportInChars = this._context.configuration.options.get(\n      164\n      /* EditorOption.layoutInfo */\n    ).contentWidth / charWidth;\n    const outsideDistanceInChars = this._position.outsideDistance / charWidth;\n    if (outsideDistanceInChars \u003c= 1.5) {\n      return Math.max(30, viewportInChars * (1 + outsideDistanceInChars));\n    }\n    if (outsideDistanceInChars \u003c= 3) {\n      return Math.max(60, viewportInChars * (2 + outsideDistanceInChars));\n    }\n    return Math.max(200, viewportInChars * (7 + outsideDistanceInChars));\n  }\n  _execute() {\n    const charWidth = this._context.configuration.options.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalFullwidthCharacterWidth;\n    const scrollSpeedInChars = this._getScrollSpeed();\n    const elapsed = this._tick();\n    const scrollInPixels = scrollSpeedInChars * (elapsed / 1e3) * charWidth * 0.5;\n    const scrollValue = this._position.outsidePosition === \"left\" ? -scrollInPixels : scrollInPixels;\n    this._context.viewModel.viewLayout.deltaScrollNow(scrollValue, 0);\n    this._viewHelper.renderNow();\n    if (!this._position.position) {\n      return;\n    }\n    const edgeLineNumber = this._position.position.lineNumber;\n    let mouseTarget;\n    {\n      const editorPos = createEditorPagePosition(this._viewHelper.viewDomNode);\n      const horizontalScrollbarHeight = this._context.configuration.options.get(\n        164\n        /* EditorOption.layoutInfo */\n      ).horizontalScrollbarHeight;\n      const pos = new PageCoordinates(this._mouseEvent.pos.x, editorPos.y + editorPos.height - horizontalScrollbarHeight - 0.1);\n      const relativePos = createCoordinatesRelativeToEditor(this._viewHelper.viewDomNode, editorPos, pos);\n      mouseTarget = this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(), editorPos, pos, relativePos, null);\n    }\n    if (this._position.outsidePosition === \"left\") {\n      mouseTarget = MouseTarget.createOutsideEditor(mouseTarget.mouseColumn, new Position(edgeLineNumber, mouseTarget.mouseColumn), \"left\", this._position.outsideDistance);\n    } else {\n      mouseTarget = MouseTarget.createOutsideEditor(mouseTarget.mouseColumn, new Position(edgeLineNumber, mouseTarget.mouseColumn), \"right\", this._position.outsideDistance);\n    }\n    this._dispatchMouse(\n      mouseTarget,\n      true,\n      2\n      /* NavigationCommandRevealType.None */\n    );\n    this._animationFrameDisposable = scheduleAtNextAnimationFrame(getWindow(mouseTarget.element), () =\u003e this._execute());\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/mouseHandler.js\nvar MouseHandler = class extends ViewEventHandler {\n  constructor(context, viewController, viewHelper) {\n    super();\n    this._mouseLeaveMonitor = null;\n    this._context = context;\n    this.viewController = viewController;\n    this.viewHelper = viewHelper;\n    this.mouseTargetFactory = new MouseTargetFactory(this._context, viewHelper);\n    this._mouseDownOperation = this._register(new MouseDownOperation(this._context, this.viewController, this.viewHelper, this.mouseTargetFactory, (e, testEventTarget) =\u003e this._createMouseTarget(e, testEventTarget), (e) =\u003e this._getMouseColumn(e)));\n    this.lastMouseLeaveTime = -1;\n    this._height = this._context.configuration.options.get(\n      164\n      /* EditorOption.layoutInfo */\n    ).height;\n    const mouseEvents = new EditorMouseEventFactory(this.viewHelper.viewDomNode);\n    this._register(mouseEvents.onContextMenu(this.viewHelper.viewDomNode, (e) =\u003e this._onContextMenu(e, true)));\n    this._register(mouseEvents.onMouseMove(this.viewHelper.viewDomNode, (e) =\u003e {\n      this._onMouseMove(e);\n      if (!this._mouseLeaveMonitor) {\n        this._mouseLeaveMonitor = addDisposableListener(this.viewHelper.viewDomNode.ownerDocument, \"mousemove\", (e2) =\u003e {\n          if (!this.viewHelper.viewDomNode.contains(e2.target)) {\n            this._onMouseLeave(new EditorMouseEvent(e2, false, this.viewHelper.viewDomNode));\n          }\n        });\n      }\n    }));\n    this._register(mouseEvents.onMouseUp(this.viewHelper.viewDomNode, (e) =\u003e this._onMouseUp(e)));\n    this._register(mouseEvents.onMouseLeave(this.viewHelper.viewDomNode, (e) =\u003e this._onMouseLeave(e)));\n    let capturePointerId = 0;\n    this._register(mouseEvents.onPointerDown(this.viewHelper.viewDomNode, (e, pointerId) =\u003e {\n      capturePointerId = pointerId;\n    }));\n    this._register(addDisposableListener(this.viewHelper.viewDomNode, EventType.POINTER_UP, (e) =\u003e {\n      this._mouseDownOperation.onPointerUp();\n    }));\n    this._register(mouseEvents.onMouseDown(this.viewHelper.viewDomNode, (e) =\u003e this._onMouseDown(e, capturePointerId)));\n    this._setupMouseWheelZoomListener();\n    this._context.addEventHandler(this);\n  }\n  _setupMouseWheelZoomListener() {\n    const classifier = MouseWheelClassifier.INSTANCE;\n    let prevMouseWheelTime = 0;\n    let gestureStartZoomLevel = EditorZoom.getZoomLevel();\n    let gestureHasZoomModifiers = false;\n    let gestureAccumulatedDelta = 0;\n    const onMouseWheel = (browserEvent) =\u003e {\n      this.viewController.emitMouseWheel(browserEvent);\n      if (!this._context.configuration.options.get(\n        84\n        /* EditorOption.mouseWheelZoom */\n      )) {\n        return;\n      }\n      const e = new StandardWheelEvent(browserEvent);\n      classifier.acceptStandardWheelEvent(e);\n      if (classifier.isPhysicalMouseWheel()) {\n        if (hasMouseWheelZoomModifiers(browserEvent)) {\n          const zoomLevel = EditorZoom.getZoomLevel();\n          const delta = e.deltaY \u003e 0 ? 1 : -1;\n          EditorZoom.setZoomLevel(zoomLevel + delta);\n          e.preventDefault();\n          e.stopPropagation();\n        }\n      } else {\n        if (Date.now() - prevMouseWheelTime \u003e 50) {\n          gestureStartZoomLevel = EditorZoom.getZoomLevel();\n          gestureHasZoomModifiers = hasMouseWheelZoomModifiers(browserEvent);\n          gestureAccumulatedDelta = 0;\n        }\n        prevMouseWheelTime = Date.now();\n        gestureAccumulatedDelta += e.deltaY;\n        if (gestureHasZoomModifiers) {\n          EditorZoom.setZoomLevel(gestureStartZoomLevel + gestureAccumulatedDelta / 5);\n          e.preventDefault();\n          e.stopPropagation();\n        }\n      }\n    };\n    this._register(addDisposableListener(this.viewHelper.viewDomNode, EventType.MOUSE_WHEEL, onMouseWheel, { capture: true, passive: false }));\n    function hasMouseWheelZoomModifiers(browserEvent) {\n      return isMacintosh ? (browserEvent.metaKey || browserEvent.ctrlKey) \u0026\u0026 !browserEvent.shiftKey \u0026\u0026 !browserEvent.altKey : browserEvent.ctrlKey \u0026\u0026 !browserEvent.metaKey \u0026\u0026 !browserEvent.shiftKey \u0026\u0026 !browserEvent.altKey;\n    }\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    if (this._mouseLeaveMonitor) {\n      this._mouseLeaveMonitor.dispose();\n      this._mouseLeaveMonitor = null;\n    }\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    if (e.hasChanged(\n      164\n      /* EditorOption.layoutInfo */\n    )) {\n      const height = this._context.configuration.options.get(\n        164\n        /* EditorOption.layoutInfo */\n      ).height;\n      if (this._height !== height) {\n        this._height = height;\n        this._mouseDownOperation.onHeightChanged();\n      }\n    }\n    return false;\n  }\n  onCursorStateChanged(e) {\n    this._mouseDownOperation.onCursorStateChanged(e);\n    return false;\n  }\n  onFocusChanged(e) {\n    return false;\n  }\n  // --- end event handlers\n  getTargetAtClientPoint(clientX, clientY) {\n    const clientPos = new ClientCoordinates(clientX, clientY);\n    const pos = clientPos.toPageCoordinates(getWindow(this.viewHelper.viewDomNode));\n    const editorPos = createEditorPagePosition(this.viewHelper.viewDomNode);\n    if (pos.y \u003c editorPos.y || pos.y \u003e editorPos.y + editorPos.height || pos.x \u003c editorPos.x || pos.x \u003e editorPos.x + editorPos.width) {\n      return null;\n    }\n    const relativePos = createCoordinatesRelativeToEditor(this.viewHelper.viewDomNode, editorPos, pos);\n    return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), editorPos, pos, relativePos, null);\n  }\n  _createMouseTarget(e, testEventTarget) {\n    let target = e.target;\n    if (!this.viewHelper.viewDomNode.contains(target)) {\n      const shadowRoot = getShadowRoot(this.viewHelper.viewDomNode);\n      if (shadowRoot) {\n        target = shadowRoot.elementsFromPoint(e.posx, e.posy).find((el) =\u003e this.viewHelper.viewDomNode.contains(el));\n      }\n    }\n    return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(), e.editorPos, e.pos, e.relativePos, testEventTarget ? target : null);\n  }\n  _getMouseColumn(e) {\n    return this.mouseTargetFactory.getMouseColumn(e.relativePos);\n  }\n  _onContextMenu(e, testEventTarget) {\n    this.viewController.emitContextMenu({\n      event: e,\n      target: this._createMouseTarget(e, testEventTarget)\n    });\n  }\n  _onMouseMove(e) {\n    const targetIsWidget = this.mouseTargetFactory.mouseTargetIsWidget(e);\n    if (!targetIsWidget) {\n      e.preventDefault();\n    }\n    if (this._mouseDownOperation.isActive()) {\n      return;\n    }\n    const actualMouseMoveTime = e.timestamp;\n    if (actualMouseMoveTime \u003c this.lastMouseLeaveTime) {\n      return;\n    }\n    this.viewController.emitMouseMove({\n      event: e,\n      target: this._createMouseTarget(e, true)\n    });\n  }\n  _onMouseLeave(e) {\n    if (this._mouseLeaveMonitor) {\n      this._mouseLeaveMonitor.dispose();\n      this._mouseLeaveMonitor = null;\n    }\n    this.lastMouseLeaveTime = (/* @__PURE__ */ new Date()).getTime();\n    this.viewController.emitMouseLeave({\n      event: e,\n      target: null\n    });\n  }\n  _onMouseUp(e) {\n    this.viewController.emitMouseUp({\n      event: e,\n      target: this._createMouseTarget(e, true)\n    });\n  }\n  _onMouseDown(e, pointerId) {\n    const t = this._createMouseTarget(e, true);\n    const targetIsContent = t.type === 6 || t.type === 7;\n    const targetIsGutter = t.type === 2 || t.type === 3 || t.type === 4;\n    const targetIsLineNumbers = t.type === 3;\n    const selectOnLineNumbers = this._context.configuration.options.get(\n      124\n      /* EditorOption.selectOnLineNumbers */\n    );\n    const targetIsViewZone = t.type === 8 || t.type === 5;\n    const targetIsWidget = t.type === 9;\n    let shouldHandle = e.leftButton || e.middleButton;\n    if (isMacintosh \u0026\u0026 e.leftButton \u0026\u0026 e.ctrlKey) {\n      shouldHandle = false;\n    }\n    const focus = () =\u003e {\n      e.preventDefault();\n      this.viewHelper.focusTextArea();\n    };\n    if (shouldHandle \u0026\u0026 (targetIsContent || targetIsLineNumbers \u0026\u0026 selectOnLineNumbers)) {\n      focus();\n      this._mouseDownOperation.start(t.type, e, pointerId);\n    } else if (targetIsGutter) {\n      e.preventDefault();\n    } else if (targetIsViewZone) {\n      const viewZoneData = t.detail;\n      if (shouldHandle \u0026\u0026 this.viewHelper.shouldSuppressMouseDownOnViewZone(viewZoneData.viewZoneId)) {\n        focus();\n        this._mouseDownOperation.start(t.type, e, pointerId);\n        e.preventDefault();\n      }\n    } else if (targetIsWidget \u0026\u0026 this.viewHelper.shouldSuppressMouseDownOnWidget(t.detail)) {\n      focus();\n      e.preventDefault();\n    }\n    this.viewController.emitMouseDown({\n      event: e,\n      target: t\n    });\n  }\n};\nvar MouseDownOperation = class extends Disposable {\n  constructor(_context, _viewController, _viewHelper, _mouseTargetFactory, createMouseTarget, getMouseColumn) {\n    super();\n    this._context = _context;\n    this._viewController = _viewController;\n    this._viewHelper = _viewHelper;\n    this._mouseTargetFactory = _mouseTargetFactory;\n    this._createMouseTarget = createMouseTarget;\n    this._getMouseColumn = getMouseColumn;\n    this._mouseMoveMonitor = this._register(new GlobalEditorPointerMoveMonitor(this._viewHelper.viewDomNode));\n    this._topBottomDragScrolling = this._register(new TopBottomDragScrolling(this._context, this._viewHelper, this._mouseTargetFactory, (position, inSelectionMode, revealType) =\u003e this._dispatchMouse(position, inSelectionMode, revealType)));\n    this._leftRightDragScrolling = this._register(new LeftRightDragScrolling(this._context, this._viewHelper, this._mouseTargetFactory, (position, inSelectionMode, revealType) =\u003e this._dispatchMouse(position, inSelectionMode, revealType)));\n    this._mouseState = new MouseDownState();\n    this._currentSelection = new Selection(1, 1, 1, 1);\n    this._isActive = false;\n    this._lastMouseEvent = null;\n  }\n  dispose() {\n    super.dispose();\n  }\n  isActive() {\n    return this._isActive;\n  }\n  _onMouseDownThenMove(e) {\n    this._lastMouseEvent = e;\n    this._mouseState.setModifiers(e);\n    const position = this._findMousePosition(e, false);\n    if (!position) {\n      return;\n    }\n    if (this._mouseState.isDragAndDrop) {\n      this._viewController.emitMouseDrag({\n        event: e,\n        target: position\n      });\n    } else {\n      if (position.type === 13) {\n        if (position.outsidePosition === \"above\" || position.outsidePosition === \"below\") {\n          this._topBottomDragScrolling.start(position, e);\n          this._leftRightDragScrolling.stop();\n        } else {\n          this._leftRightDragScrolling.start(position, e);\n          this._topBottomDragScrolling.stop();\n        }\n      } else {\n        this._topBottomDragScrolling.stop();\n        this._leftRightDragScrolling.stop();\n        this._dispatchMouse(\n          position,\n          true,\n          1\n          /* NavigationCommandRevealType.Minimal */\n        );\n      }\n    }\n  }\n  start(targetType, e, pointerId) {\n    this._lastMouseEvent = e;\n    this._mouseState.setStartedOnLineNumbers(\n      targetType === 3\n      /* MouseTargetType.GUTTER_LINE_NUMBERS */\n    );\n    this._mouseState.setStartButtons(e);\n    this._mouseState.setModifiers(e);\n    const position = this._findMousePosition(e, true);\n    if (!position || !position.position) {\n      return;\n    }\n    this._mouseState.trySetCount(e.detail, position.position);\n    e.detail = this._mouseState.count;\n    const options2 = this._context.configuration.options;\n    if (!options2.get(\n      103\n      /* EditorOption.readOnly */\n    ) \u0026\u0026 options2.get(\n      42\n      /* EditorOption.dragAndDrop */\n    ) \u0026\u0026 !options2.get(\n      28\n      /* EditorOption.columnSelection */\n    ) \u0026\u0026 !this._mouseState.altKey \u0026\u0026 e.detail \u003c 2 \u0026\u0026 !this._isActive \u0026\u0026 !this._currentSelection.isEmpty() \u0026\u0026 position.type === 6 \u0026\u0026 position.position \u0026\u0026 this._currentSelection.containsPosition(position.position)) {\n      this._mouseState.isDragAndDrop = true;\n      this._isActive = true;\n      this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode, pointerId, e.buttons, (e2) =\u003e this._onMouseDownThenMove(e2), (browserEvent) =\u003e {\n        const position2 = this._findMousePosition(this._lastMouseEvent, false);\n        if (isKeyboardEvent(browserEvent)) {\n          this._viewController.emitMouseDropCanceled();\n        } else {\n          this._viewController.emitMouseDrop({\n            event: this._lastMouseEvent,\n            target: position2 ? this._createMouseTarget(this._lastMouseEvent, true) : null\n            // Ignoring because position is unknown, e.g., Content View Zone\n          });\n        }\n        this._stop();\n      });\n      return;\n    }\n    this._mouseState.isDragAndDrop = false;\n    this._dispatchMouse(\n      position,\n      e.shiftKey,\n      1\n      /* NavigationCommandRevealType.Minimal */\n    );\n    if (!this._isActive) {\n      this._isActive = true;\n      this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode, pointerId, e.buttons, (e2) =\u003e this._onMouseDownThenMove(e2), () =\u003e this._stop());\n    }\n  }\n  _stop() {\n    this._isActive = false;\n    this._topBottomDragScrolling.stop();\n    this._leftRightDragScrolling.stop();\n  }\n  onHeightChanged() {\n    this._mouseMoveMonitor.stopMonitoring();\n  }\n  onPointerUp() {\n    this._mouseMoveMonitor.stopMonitoring();\n  }\n  onCursorStateChanged(e) {\n    this._currentSelection = e.selections[0];\n  }\n  _getPositionOutsideEditor(e) {\n    const editorContent = e.editorPos;\n    const model = this._context.viewModel;\n    const viewLayout = this._context.viewLayout;\n    const mouseColumn = this._getMouseColumn(e);\n    if (e.posy \u003c editorContent.y) {\n      const outsideDistance = editorContent.y - e.posy;\n      const verticalOffset = Math.max(viewLayout.getCurrentScrollTop() - outsideDistance, 0);\n      const viewZoneData = HitTestContext.getZoneAtCoord(this._context, verticalOffset);\n      if (viewZoneData) {\n        const newPosition = this._helpPositionJumpOverViewZone(viewZoneData);\n        if (newPosition) {\n          return MouseTarget.createOutsideEditor(mouseColumn, newPosition, \"above\", outsideDistance);\n        }\n      }\n      const aboveLineNumber = viewLayout.getLineNumberAtVerticalOffset(verticalOffset);\n      return MouseTarget.createOutsideEditor(mouseColumn, new Position(aboveLineNumber, 1), \"above\", outsideDistance);\n    }\n    if (e.posy \u003e editorContent.y + editorContent.height) {\n      const outsideDistance = e.posy - editorContent.y - editorContent.height;\n      const verticalOffset = viewLayout.getCurrentScrollTop() + e.relativePos.y;\n      const viewZoneData = HitTestContext.getZoneAtCoord(this._context, verticalOffset);\n      if (viewZoneData) {\n        const newPosition = this._helpPositionJumpOverViewZone(viewZoneData);\n        if (newPosition) {\n          return MouseTarget.createOutsideEditor(mouseColumn, newPosition, \"below\", outsideDistance);\n        }\n      }\n      const belowLineNumber = viewLayout.getLineNumberAtVerticalOffset(verticalOffset);\n      return MouseTarget.createOutsideEditor(mouseColumn, new Position(belowLineNumber, model.getLineMaxColumn(belowLineNumber)), \"below\", outsideDistance);\n    }\n    const possibleLineNumber = viewLayout.getLineNumberAtVerticalOffset(viewLayout.getCurrentScrollTop() + e.relativePos.y);\n    const layoutInfo = this._context.configuration.options.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const xLeftBoundary = layoutInfo.contentLeft;\n    if (e.relativePos.x \u003c= xLeftBoundary) {\n      const outsideDistance = xLeftBoundary - e.relativePos.x;\n      return MouseTarget.createOutsideEditor(mouseColumn, new Position(possibleLineNumber, 1), \"left\", outsideDistance);\n    }\n    const contentRight = layoutInfo.minimap.minimapLeft === 0 ? layoutInfo.width - layoutInfo.verticalScrollbarWidth : layoutInfo.minimap.minimapLeft;\n    const xRightBoundary = contentRight;\n    if (e.relativePos.x \u003e= xRightBoundary) {\n      const outsideDistance = e.relativePos.x - xRightBoundary;\n      return MouseTarget.createOutsideEditor(mouseColumn, new Position(possibleLineNumber, model.getLineMaxColumn(possibleLineNumber)), \"right\", outsideDistance);\n    }\n    return null;\n  }\n  _findMousePosition(e, testEventTarget) {\n    const positionOutsideEditor = this._getPositionOutsideEditor(e);\n    if (positionOutsideEditor) {\n      return positionOutsideEditor;\n    }\n    const t = this._createMouseTarget(e, testEventTarget);\n    const hintedPosition = t.position;\n    if (!hintedPosition) {\n      return null;\n    }\n    if (t.type === 8 || t.type === 5) {\n      const newPosition = this._helpPositionJumpOverViewZone(t.detail);\n      if (newPosition) {\n        return MouseTarget.createViewZone(t.type, t.element, t.mouseColumn, newPosition, t.detail);\n      }\n    }\n    return t;\n  }\n  _helpPositionJumpOverViewZone(viewZoneData) {\n    const selectionStart = new Position(this._currentSelection.selectionStartLineNumber, this._currentSelection.selectionStartColumn);\n    const positionBefore = viewZoneData.positionBefore;\n    const positionAfter = viewZoneData.positionAfter;\n    if (positionBefore \u0026\u0026 positionAfter) {\n      if (positionBefore.isBefore(selectionStart)) {\n        return positionBefore;\n      } else {\n        return positionAfter;\n      }\n    }\n    return null;\n  }\n  _dispatchMouse(position, inSelectionMode, revealType) {\n    if (!position.position) {\n      return;\n    }\n    this._viewController.dispatchMouse({\n      position: position.position,\n      mouseColumn: position.mouseColumn,\n      startedOnLineNumbers: this._mouseState.startedOnLineNumbers,\n      revealType,\n      inSelectionMode,\n      mouseDownCount: this._mouseState.count,\n      altKey: this._mouseState.altKey,\n      ctrlKey: this._mouseState.ctrlKey,\n      metaKey: this._mouseState.metaKey,\n      shiftKey: this._mouseState.shiftKey,\n      leftButton: this._mouseState.leftButton,\n      middleButton: this._mouseState.middleButton,\n      onInjectedText: position.type === 6 \u0026\u0026 position.detail.injectedText !== null\n    });\n  }\n};\nvar MouseDownState = class _MouseDownState {\n  static {\n    this.CLEAR_MOUSE_DOWN_COUNT_TIME = 400;\n  }\n  // ms\n  get altKey() {\n    return this._altKey;\n  }\n  get ctrlKey() {\n    return this._ctrlKey;\n  }\n  get metaKey() {\n    return this._metaKey;\n  }\n  get shiftKey() {\n    return this._shiftKey;\n  }\n  get leftButton() {\n    return this._leftButton;\n  }\n  get middleButton() {\n    return this._middleButton;\n  }\n  get startedOnLineNumbers() {\n    return this._startedOnLineNumbers;\n  }\n  constructor() {\n    this._altKey = false;\n    this._ctrlKey = false;\n    this._metaKey = false;\n    this._shiftKey = false;\n    this._leftButton = false;\n    this._middleButton = false;\n    this._startedOnLineNumbers = false;\n    this._lastMouseDownPosition = null;\n    this._lastMouseDownPositionEqualCount = 0;\n    this._lastMouseDownCount = 0;\n    this._lastSetMouseDownCountTime = 0;\n    this.isDragAndDrop = false;\n  }\n  get count() {\n    return this._lastMouseDownCount;\n  }\n  setModifiers(source) {\n    this._altKey = source.altKey;\n    this._ctrlKey = source.ctrlKey;\n    this._metaKey = source.metaKey;\n    this._shiftKey = source.shiftKey;\n  }\n  setStartButtons(source) {\n    this._leftButton = source.leftButton;\n    this._middleButton = source.middleButton;\n  }\n  setStartedOnLineNumbers(startedOnLineNumbers) {\n    this._startedOnLineNumbers = startedOnLineNumbers;\n  }\n  trySetCount(setMouseDownCount, newMouseDownPosition) {\n    const currentTime = (/* @__PURE__ */ new Date()).getTime();\n    if (currentTime - this._lastSetMouseDownCountTime \u003e _MouseDownState.CLEAR_MOUSE_DOWN_COUNT_TIME) {\n      setMouseDownCount = 1;\n    }\n    this._lastSetMouseDownCountTime = currentTime;\n    if (setMouseDownCount \u003e this._lastMouseDownCount + 1) {\n      setMouseDownCount = this._lastMouseDownCount + 1;\n    }\n    if (this._lastMouseDownPosition \u0026\u0026 this._lastMouseDownPosition.equals(newMouseDownPosition)) {\n      this._lastMouseDownPositionEqualCount++;\n    } else {\n      this._lastMouseDownPositionEqualCount = 1;\n    }\n    this._lastMouseDownPosition = newMouseDownPosition;\n    this._lastMouseDownCount = Math.min(setMouseDownCount, this._lastMouseDownPositionEqualCount);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js\ninit_browser();\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/event.js\ninit_event();\nvar DomEmitter = class {\n  get event() {\n    return this.emitter.event;\n  }\n  constructor(element, type, useCapture) {\n    const fn = (e) =\u003e this.emitter.fire(e);\n    this.emitter = new Emitter({\n      onWillAddFirstListener: () =\u003e element.addEventListener(type, fn, useCapture),\n      onDidRemoveLastListener: () =\u003e element.removeEventListener(type, fn, useCapture)\n    });\n  }\n  dispose() {\n    this.emitter.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js\ninit_keyboardEvent();\ninit_async();\ninit_event();\ninit_lifecycle();\ninit_strings();\ninit_selection();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/clipboardUtils.js\ninit_platform();\ninit_mime();\nfunction getDataToCopy(viewModel, modelSelections, emptySelectionClipboard, copyWithSyntaxHighlighting) {\n  const rawTextToCopy = viewModel.getPlainTextToCopy(modelSelections, emptySelectionClipboard, isWindows);\n  const newLineCharacter = viewModel.model.getEOL();\n  const isFromEmptySelection = emptySelectionClipboard \u0026\u0026 modelSelections.length === 1 \u0026\u0026 modelSelections[0].isEmpty();\n  const multicursorText = Array.isArray(rawTextToCopy) ? rawTextToCopy : null;\n  const text2 = Array.isArray(rawTextToCopy) ? rawTextToCopy.join(newLineCharacter) : rawTextToCopy;\n  let html3 = void 0;\n  let mode = null;\n  if (CopyOptions.forceCopyWithSyntaxHighlighting || copyWithSyntaxHighlighting \u0026\u0026 text2.length \u003c 65536) {\n    const richText = viewModel.getRichTextToCopy(modelSelections, emptySelectionClipboard);\n    if (richText) {\n      html3 = richText.html;\n      mode = richText.mode;\n    }\n  }\n  const dataToCopy = {\n    isFromEmptySelection,\n    multicursorText,\n    text: text2,\n    html: html3,\n    mode\n  };\n  return dataToCopy;\n}\nvar InMemoryClipboardMetadataManager = class _InMemoryClipboardMetadataManager {\n  static {\n    this.INSTANCE = new _InMemoryClipboardMetadataManager();\n  }\n  constructor() {\n    this._lastState = null;\n  }\n  set(lastCopiedValue, data) {\n    this._lastState = { lastCopiedValue, data };\n  }\n  get(pastedText) {\n    if (this._lastState \u0026\u0026 this._lastState.lastCopiedValue === pastedText) {\n      return this._lastState.data;\n    }\n    this._lastState = null;\n    return null;\n  }\n};\nvar CopyOptions = {\n  forceCopyWithSyntaxHighlighting: false\n};\nvar ClipboardEventUtils = {\n  getTextData(clipboardData) {\n    const text2 = clipboardData.getData(Mimes.text);\n    let metadata = null;\n    const rawmetadata = clipboardData.getData(\"vscode-editor-data\");\n    if (typeof rawmetadata === \"string\") {\n      try {\n        metadata = JSON.parse(rawmetadata);\n        if (metadata.version !== 1) {\n          metadata = null;\n        }\n      } catch (err) {\n      }\n    }\n    if (text2.length === 0 \u0026\u0026 metadata === null \u0026\u0026 clipboardData.files.length \u003e 0) {\n      const files = Array.prototype.slice.call(clipboardData.files, 0);\n      return [files.map((file) =\u003e file.name).join(\"\\n\"), null];\n    }\n    return [text2, metadata];\n  },\n  setTextData(clipboardData, text2, html3, metadata) {\n    clipboardData.setData(Mimes.text, text2);\n    if (typeof html3 === \"string\") {\n      clipboardData.setData(\"text/html\", html3);\n    }\n    clipboardData.setData(\"vscode-editor-data\", JSON.stringify(metadata));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextState.js\ninit_strings();\nvar _debugComposition = false;\nvar TextAreaState = class _TextAreaState {\n  static {\n    this.EMPTY = new _TextAreaState(\"\", 0, 0, null, void 0);\n  }\n  constructor(value, selectionStart, selectionEnd, selection, newlineCountBeforeSelection) {\n    this.value = value;\n    this.selectionStart = selectionStart;\n    this.selectionEnd = selectionEnd;\n    this.selection = selection;\n    this.newlineCountBeforeSelection = newlineCountBeforeSelection;\n  }\n  toString() {\n    return `[ \u003c${this.value}\u003e, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`;\n  }\n  static readFromTextArea(textArea, previousState) {\n    const value = textArea.getValue();\n    const selectionStart = textArea.getSelectionStart();\n    const selectionEnd = textArea.getSelectionEnd();\n    let newlineCountBeforeSelection = void 0;\n    if (previousState) {\n      const valueBeforeSelectionStart = value.substring(0, selectionStart);\n      const previousValueBeforeSelectionStart = previousState.value.substring(0, previousState.selectionStart);\n      if (valueBeforeSelectionStart === previousValueBeforeSelectionStart) {\n        newlineCountBeforeSelection = previousState.newlineCountBeforeSelection;\n      }\n    }\n    return new _TextAreaState(value, selectionStart, selectionEnd, null, newlineCountBeforeSelection);\n  }\n  collapseSelection() {\n    if (this.selectionStart === this.value.length) {\n      return this;\n    }\n    return new _TextAreaState(this.value, this.value.length, this.value.length, null, void 0);\n  }\n  isWrittenToTextArea(textArea, select) {\n    const valuesEqual = this.value === textArea.getValue();\n    if (!select) {\n      return valuesEqual;\n    }\n    const selectionsEqual = this.selectionStart === textArea.getSelectionStart() \u0026\u0026 this.selectionEnd === textArea.getSelectionEnd();\n    return selectionsEqual \u0026\u0026 valuesEqual;\n  }\n  writeToTextArea(reason, textArea, select) {\n    if (_debugComposition) {\n      console.log(`writeToTextArea ${reason}: ${this.toString()}`);\n    }\n    textArea.setValue(reason, this.value);\n    if (select) {\n      textArea.setSelectionRange(reason, this.selectionStart, this.selectionEnd);\n    }\n  }\n  deduceEditorPosition(offset) {\n    if (offset \u003c= this.selectionStart) {\n      const str = this.value.substring(offset, this.selectionStart);\n      return this._finishDeduceEditorPosition(this.selection?.getStartPosition() ?? null, str, -1);\n    }\n    if (offset \u003e= this.selectionEnd) {\n      const str = this.value.substring(this.selectionEnd, offset);\n      return this._finishDeduceEditorPosition(this.selection?.getEndPosition() ?? null, str, 1);\n    }\n    const str1 = this.value.substring(this.selectionStart, offset);\n    if (str1.indexOf(String.fromCharCode(8230)) === -1) {\n      return this._finishDeduceEditorPosition(this.selection?.getStartPosition() ?? null, str1, 1);\n    }\n    const str2 = this.value.substring(offset, this.selectionEnd);\n    return this._finishDeduceEditorPosition(this.selection?.getEndPosition() ?? null, str2, -1);\n  }\n  _finishDeduceEditorPosition(anchor, deltaText, signum) {\n    let lineFeedCnt = 0;\n    let lastLineFeedIndex = -1;\n    while ((lastLineFeedIndex = deltaText.indexOf(\"\\n\", lastLineFeedIndex + 1)) !== -1) {\n      lineFeedCnt++;\n    }\n    return [anchor, signum * deltaText.length, lineFeedCnt];\n  }\n  static deduceInput(previousState, currentState, couldBeEmojiInput) {\n    if (!previousState) {\n      return {\n        text: \"\",\n        replacePrevCharCnt: 0,\n        replaceNextCharCnt: 0,\n        positionDelta: 0\n      };\n    }\n    if (_debugComposition) {\n      console.log(\"------------------------deduceInput\");\n      console.log(`PREVIOUS STATE: ${previousState.toString()}`);\n      console.log(`CURRENT STATE: ${currentState.toString()}`);\n    }\n    const prefixLength = Math.min(commonPrefixLength(previousState.value, currentState.value), previousState.selectionStart, currentState.selectionStart);\n    const suffixLength = Math.min(commonSuffixLength(previousState.value, currentState.value), previousState.value.length - previousState.selectionEnd, currentState.value.length - currentState.selectionEnd);\n    const previousValue = previousState.value.substring(prefixLength, previousState.value.length - suffixLength);\n    const currentValue = currentState.value.substring(prefixLength, currentState.value.length - suffixLength);\n    const previousSelectionStart = previousState.selectionStart - prefixLength;\n    const previousSelectionEnd = previousState.selectionEnd - prefixLength;\n    const currentSelectionStart = currentState.selectionStart - prefixLength;\n    const currentSelectionEnd = currentState.selectionEnd - prefixLength;\n    if (_debugComposition) {\n      console.log(`AFTER DIFFING PREVIOUS STATE: \u003c${previousValue}\u003e, selectionStart: ${previousSelectionStart}, selectionEnd: ${previousSelectionEnd}`);\n      console.log(`AFTER DIFFING CURRENT STATE: \u003c${currentValue}\u003e, selectionStart: ${currentSelectionStart}, selectionEnd: ${currentSelectionEnd}`);\n    }\n    if (currentSelectionStart === currentSelectionEnd) {\n      const replacePreviousCharacters2 = previousState.selectionStart - prefixLength;\n      if (_debugComposition) {\n        console.log(`REMOVE PREVIOUS: ${replacePreviousCharacters2} chars`);\n      }\n      return {\n        text: currentValue,\n        replacePrevCharCnt: replacePreviousCharacters2,\n        replaceNextCharCnt: 0,\n        positionDelta: 0\n      };\n    }\n    const replacePreviousCharacters = previousSelectionEnd - previousSelectionStart;\n    return {\n      text: currentValue,\n      replacePrevCharCnt: replacePreviousCharacters,\n      replaceNextCharCnt: 0,\n      positionDelta: 0\n    };\n  }\n  static deduceAndroidCompositionInput(previousState, currentState) {\n    if (!previousState) {\n      return {\n        text: \"\",\n        replacePrevCharCnt: 0,\n        replaceNextCharCnt: 0,\n        positionDelta: 0\n      };\n    }\n    if (_debugComposition) {\n      console.log(\"------------------------deduceAndroidCompositionInput\");\n      console.log(`PREVIOUS STATE: ${previousState.toString()}`);\n      console.log(`CURRENT STATE: ${currentState.toString()}`);\n    }\n    if (previousState.value === currentState.value) {\n      return {\n        text: \"\",\n        replacePrevCharCnt: 0,\n        replaceNextCharCnt: 0,\n        positionDelta: currentState.selectionEnd - previousState.selectionEnd\n      };\n    }\n    const prefixLength = Math.min(commonPrefixLength(previousState.value, currentState.value), previousState.selectionEnd);\n    const suffixLength = Math.min(commonSuffixLength(previousState.value, currentState.value), previousState.value.length - previousState.selectionEnd);\n    const previousValue = previousState.value.substring(prefixLength, previousState.value.length - suffixLength);\n    const currentValue = currentState.value.substring(prefixLength, currentState.value.length - suffixLength);\n    const previousSelectionStart = previousState.selectionStart - prefixLength;\n    const previousSelectionEnd = previousState.selectionEnd - prefixLength;\n    const currentSelectionStart = currentState.selectionStart - prefixLength;\n    const currentSelectionEnd = currentState.selectionEnd - prefixLength;\n    if (_debugComposition) {\n      console.log(`AFTER DIFFING PREVIOUS STATE: \u003c${previousValue}\u003e, selectionStart: ${previousSelectionStart}, selectionEnd: ${previousSelectionEnd}`);\n      console.log(`AFTER DIFFING CURRENT STATE: \u003c${currentValue}\u003e, selectionStart: ${currentSelectionStart}, selectionEnd: ${currentSelectionEnd}`);\n    }\n    return {\n      text: currentValue,\n      replacePrevCharCnt: previousSelectionEnd,\n      replaceNextCharCnt: previousValue.length - previousSelectionEnd,\n      positionDelta: currentSelectionEnd - currentValue.length\n    };\n  }\n  static fromScreenReaderContentState(screenReaderContentState) {\n    return new _TextAreaState(screenReaderContentState.value, screenReaderContentState.selectionStart, screenReaderContentState.selectionEnd, screenReaderContentState.selection, screenReaderContentState.newlineCountBeforeSelection);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContextInput.js\ninit_uuid();\nvar __decorate7 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param6 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar TextAreaSyntethicEvents;\n(function(TextAreaSyntethicEvents2) {\n  TextAreaSyntethicEvents2.Tap = \"-monaco-textarea-synthetic-tap\";\n})(TextAreaSyntethicEvents || (TextAreaSyntethicEvents = {}));\nvar CompositionContext = class {\n  constructor() {\n    this._lastTypeTextLength = 0;\n  }\n  handleCompositionUpdate(text2) {\n    text2 = text2 || \"\";\n    const typeInput = {\n      text: text2,\n      replacePrevCharCnt: this._lastTypeTextLength,\n      replaceNextCharCnt: 0,\n      positionDelta: 0\n    };\n    this._lastTypeTextLength = text2.length;\n    return typeInput;\n  }\n};\nvar TextAreaInput = class TextAreaInput2 extends Disposable {\n  get textAreaState() {\n    return this._textAreaState;\n  }\n  constructor(_host, _textArea, _OS, _browser, _accessibilityService, _logService) {\n    super();\n    this._host = _host;\n    this._textArea = _textArea;\n    this._OS = _OS;\n    this._browser = _browser;\n    this._accessibilityService = _accessibilityService;\n    this._logService = _logService;\n    this._onFocus = this._register(new Emitter());\n    this.onFocus = this._onFocus.event;\n    this._onBlur = this._register(new Emitter());\n    this.onBlur = this._onBlur.event;\n    this._onKeyDown = this._register(new Emitter());\n    this.onKeyDown = this._onKeyDown.event;\n    this._onKeyUp = this._register(new Emitter());\n    this.onKeyUp = this._onKeyUp.event;\n    this._onCut = this._register(new Emitter());\n    this.onCut = this._onCut.event;\n    this._onPaste = this._register(new Emitter());\n    this.onPaste = this._onPaste.event;\n    this._onType = this._register(new Emitter());\n    this.onType = this._onType.event;\n    this._onCompositionStart = this._register(new Emitter());\n    this.onCompositionStart = this._onCompositionStart.event;\n    this._onCompositionUpdate = this._register(new Emitter());\n    this.onCompositionUpdate = this._onCompositionUpdate.event;\n    this._onCompositionEnd = this._register(new Emitter());\n    this.onCompositionEnd = this._onCompositionEnd.event;\n    this._onSelectionChangeRequest = this._register(new Emitter());\n    this.onSelectionChangeRequest = this._onSelectionChangeRequest.event;\n    this._asyncFocusGainWriteScreenReaderContent = this._register(new MutableDisposable());\n    this._asyncTriggerCut = this._register(new RunOnceScheduler(() =\u003e this._onCut.fire(), 0));\n    this._textAreaState = TextAreaState.EMPTY;\n    this._selectionChangeListener = null;\n    if (this._accessibilityService.isScreenReaderOptimized()) {\n      this.writeNativeTextAreaContent(\"ctor\");\n    }\n    this._register(Event.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized, () =\u003e {\n      if (this._accessibilityService.isScreenReaderOptimized() \u0026\u0026 !this._asyncFocusGainWriteScreenReaderContent.value) {\n        this._asyncFocusGainWriteScreenReaderContent.value = this._register(new RunOnceScheduler(() =\u003e this.writeNativeTextAreaContent(\"asyncFocusGain\"), 0));\n      } else {\n        this._asyncFocusGainWriteScreenReaderContent.clear();\n      }\n    }));\n    this._hasFocus = false;\n    this._currentComposition = null;\n    let lastKeyDown = null;\n    this._register(this._textArea.onKeyDown((_e) =\u003e {\n      const e = new StandardKeyboardEvent(_e);\n      if (e.keyCode === 114 || this._currentComposition \u0026\u0026 e.keyCode === 1) {\n        e.stopPropagation();\n      }\n      if (e.equals(\n        9\n        /* KeyCode.Escape */\n      )) {\n        e.preventDefault();\n      }\n      lastKeyDown = e;\n      this._onKeyDown.fire(e);\n    }));\n    this._register(this._textArea.onKeyUp((_e) =\u003e {\n      const e = new StandardKeyboardEvent(_e);\n      this._onKeyUp.fire(e);\n    }));\n    this._register(this._textArea.onCompositionStart((e) =\u003e {\n      if (_debugComposition) {\n        console.log(`[compositionstart]`, e);\n      }\n      const currentComposition = new CompositionContext();\n      if (this._currentComposition) {\n        this._currentComposition = currentComposition;\n        return;\n      }\n      this._currentComposition = currentComposition;\n      if (this._OS === 2 \u0026\u0026 lastKeyDown \u0026\u0026 lastKeyDown.equals(\n        114\n        /* KeyCode.KEY_IN_COMPOSITION */\n      ) \u0026\u0026 this._textAreaState.selectionStart === this._textAreaState.selectionEnd \u0026\u0026 this._textAreaState.selectionStart \u003e 0 \u0026\u0026 this._textAreaState.value.substr(this._textAreaState.selectionStart - 1, 1) === e.data \u0026\u0026 (lastKeyDown.code === \"ArrowRight\" || lastKeyDown.code === \"ArrowLeft\")) {\n        if (_debugComposition) {\n          console.log(`[compositionstart] Handling long press case on macOS + arrow key`, e);\n        }\n        currentComposition.handleCompositionUpdate(\"x\");\n        this._onCompositionStart.fire({ data: e.data });\n        return;\n      }\n      if (this._browser.isAndroid) {\n        this._onCompositionStart.fire({ data: e.data });\n        return;\n      }\n      this._onCompositionStart.fire({ data: e.data });\n    }));\n    this._register(this._textArea.onCompositionUpdate((e) =\u003e {\n      if (_debugComposition) {\n        console.log(`[compositionupdate]`, e);\n      }\n      const currentComposition = this._currentComposition;\n      if (!currentComposition) {\n        return;\n      }\n      if (this._browser.isAndroid) {\n        const newState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n        const typeInput2 = TextAreaState.deduceAndroidCompositionInput(this._textAreaState, newState);\n        this._textAreaState = newState;\n        this._onType.fire(typeInput2);\n        this._onCompositionUpdate.fire(e);\n        return;\n      }\n      const typeInput = currentComposition.handleCompositionUpdate(e.data);\n      this._textAreaState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n      this._onType.fire(typeInput);\n      this._onCompositionUpdate.fire(e);\n    }));\n    this._register(this._textArea.onCompositionEnd((e) =\u003e {\n      if (_debugComposition) {\n        console.log(`[compositionend]`, e);\n      }\n      const currentComposition = this._currentComposition;\n      if (!currentComposition) {\n        return;\n      }\n      this._currentComposition = null;\n      if (this._browser.isAndroid) {\n        const newState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n        const typeInput2 = TextAreaState.deduceAndroidCompositionInput(this._textAreaState, newState);\n        this._textAreaState = newState;\n        this._onType.fire(typeInput2);\n        this._onCompositionEnd.fire();\n        return;\n      }\n      const typeInput = currentComposition.handleCompositionUpdate(e.data);\n      this._textAreaState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n      this._onType.fire(typeInput);\n      this._onCompositionEnd.fire();\n    }));\n    this._register(this._textArea.onInput((e) =\u003e {\n      if (_debugComposition) {\n        console.log(`[input]`, e);\n      }\n      this._textArea.setIgnoreSelectionChangeTime(\"received input event\");\n      if (this._currentComposition) {\n        return;\n      }\n      const newState = TextAreaState.readFromTextArea(this._textArea, this._textAreaState);\n      const typeInput = TextAreaState.deduceInput(\n        this._textAreaState,\n        newState,\n        /*couldBeEmojiInput*/\n        this._OS === 2\n        /* OperatingSystem.Macintosh */\n      );\n      if (typeInput.replacePrevCharCnt === 0 \u0026\u0026 typeInput.text.length === 1) {\n        if (isHighSurrogate(typeInput.text.charCodeAt(0)) || typeInput.text.charCodeAt(0) === 127) {\n          return;\n        }\n      }\n      this._textAreaState = newState;\n      if (typeInput.text !== \"\" || typeInput.replacePrevCharCnt !== 0 || typeInput.replaceNextCharCnt !== 0 || typeInput.positionDelta !== 0) {\n        if (e.inputType === \"insertFromPaste\") {\n          this._onPaste.fire({\n            text: typeInput.text,\n            metadata: InMemoryClipboardMetadataManager.INSTANCE.get(typeInput.text)\n          });\n        } else {\n          this._onType.fire(typeInput);\n        }\n      }\n    }));\n    this._register(this._textArea.onCut((e) =\u003e {\n      this._logService.trace(`TextAreaInput#onCut`, e);\n      this._textArea.setIgnoreSelectionChangeTime(\"received cut event\");\n      this._ensureClipboardGetsEditorSelection(e);\n      this._asyncTriggerCut.schedule();\n    }));\n    this._register(this._textArea.onCopy((e) =\u003e {\n      this._logService.trace(`TextAreaInput#onCopy`, e);\n      this._ensureClipboardGetsEditorSelection(e);\n    }));\n    this._register(this._textArea.onPaste((e) =\u003e {\n      this._logService.trace(`TextAreaInput#onPaste`, e);\n      this._textArea.setIgnoreSelectionChangeTime(\"received paste event\");\n      e.preventDefault();\n      if (!e.clipboardData) {\n        return;\n      }\n      let [text2, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n      this._logService.trace(`TextAreaInput#onPaste with id : `, metadata?.id, \" with text.length: \", text2.length);\n      if (!text2) {\n        return;\n      }\n      metadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text2);\n      this._logService.trace(`TextAreaInput#onPaste (before onPaste)`);\n      this._onPaste.fire({\n        text: text2,\n        metadata\n      });\n    }));\n    this._register(this._textArea.onFocus(() =\u003e {\n      const hadFocus = this._hasFocus;\n      this._setHasFocus(true);\n      if (this._accessibilityService.isScreenReaderOptimized() \u0026\u0026 this._browser.isSafari \u0026\u0026 !hadFocus \u0026\u0026 this._hasFocus) {\n        if (!this._asyncFocusGainWriteScreenReaderContent.value) {\n          this._asyncFocusGainWriteScreenReaderContent.value = new RunOnceScheduler(() =\u003e this.writeNativeTextAreaContent(\"asyncFocusGain\"), 0);\n        }\n        this._asyncFocusGainWriteScreenReaderContent.value.schedule();\n      }\n    }));\n    this._register(this._textArea.onBlur(() =\u003e {\n      if (this._currentComposition) {\n        this._currentComposition = null;\n        this.writeNativeTextAreaContent(\"blurWithoutCompositionEnd\");\n        this._onCompositionEnd.fire();\n      }\n      this._setHasFocus(false);\n    }));\n    this._register(this._textArea.onSyntheticTap(() =\u003e {\n      if (this._browser.isAndroid \u0026\u0026 this._currentComposition) {\n        this._currentComposition = null;\n        this.writeNativeTextAreaContent(\"tapWithoutCompositionEnd\");\n        this._onCompositionEnd.fire();\n      }\n    }));\n  }\n  _installSelectionChangeListener() {\n    let previousSelectionChangeEventTime = 0;\n    return addDisposableListener(this._textArea.ownerDocument, \"selectionchange\", (e) =\u003e {\n      inputLatency.onSelectionChange();\n      if (!this._hasFocus) {\n        return;\n      }\n      if (this._currentComposition) {\n        return;\n      }\n      if (!this._browser.isChrome) {\n        return;\n      }\n      const now = Date.now();\n      const delta1 = now - previousSelectionChangeEventTime;\n      previousSelectionChangeEventTime = now;\n      if (delta1 \u003c 5) {\n        return;\n      }\n      const delta2 = now - this._textArea.getIgnoreSelectionChangeTime();\n      this._textArea.resetSelectionChangeTime();\n      if (delta2 \u003c 100) {\n        return;\n      }\n      if (!this._textAreaState.selection) {\n        return;\n      }\n      const newValue = this._textArea.getValue();\n      if (this._textAreaState.value !== newValue) {\n        return;\n      }\n      const newSelectionStart = this._textArea.getSelectionStart();\n      const newSelectionEnd = this._textArea.getSelectionEnd();\n      if (this._textAreaState.selectionStart === newSelectionStart \u0026\u0026 this._textAreaState.selectionEnd === newSelectionEnd) {\n        return;\n      }\n      const _newSelectionStartPosition = this._textAreaState.deduceEditorPosition(newSelectionStart);\n      const newSelectionStartPosition = this._host.deduceModelPosition(_newSelectionStartPosition[0], _newSelectionStartPosition[1], _newSelectionStartPosition[2]);\n      const _newSelectionEndPosition = this._textAreaState.deduceEditorPosition(newSelectionEnd);\n      const newSelectionEndPosition = this._host.deduceModelPosition(_newSelectionEndPosition[0], _newSelectionEndPosition[1], _newSelectionEndPosition[2]);\n      const newSelection = new Selection(newSelectionStartPosition.lineNumber, newSelectionStartPosition.column, newSelectionEndPosition.lineNumber, newSelectionEndPosition.column);\n      this._onSelectionChangeRequest.fire(newSelection);\n    });\n  }\n  dispose() {\n    super.dispose();\n    if (this._selectionChangeListener) {\n      this._selectionChangeListener.dispose();\n      this._selectionChangeListener = null;\n    }\n  }\n  focusTextArea() {\n    this._setHasFocus(true);\n    this.refreshFocusState();\n  }\n  isFocused() {\n    return this._hasFocus;\n  }\n  refreshFocusState() {\n    this._setHasFocus(this._textArea.hasFocus());\n  }\n  _setHasFocus(newHasFocus) {\n    if (this._hasFocus === newHasFocus) {\n      return;\n    }\n    this._hasFocus = newHasFocus;\n    if (this._selectionChangeListener) {\n      this._selectionChangeListener.dispose();\n      this._selectionChangeListener = null;\n    }\n    if (this._hasFocus) {\n      this._selectionChangeListener = this._installSelectionChangeListener();\n    }\n    if (this._hasFocus) {\n      this.writeNativeTextAreaContent(\"focusgain\");\n    }\n    if (this._hasFocus) {\n      this._onFocus.fire();\n    } else {\n      this._onBlur.fire();\n    }\n  }\n  _setAndWriteTextAreaState(reason, textAreaState) {\n    if (!this._hasFocus) {\n      textAreaState = textAreaState.collapseSelection();\n    }\n    if (!textAreaState.isWrittenToTextArea(this._textArea, this._hasFocus)) {\n      this._logService.trace(`writeTextAreaState(reason: ${reason})`);\n    }\n    textAreaState.writeToTextArea(reason, this._textArea, this._hasFocus);\n    this._textAreaState = textAreaState;\n  }\n  writeNativeTextAreaContent(reason) {\n    if (!this._accessibilityService.isScreenReaderOptimized() \u0026\u0026 reason === \"render\" || this._currentComposition) {\n      return;\n    }\n    this._setAndWriteTextAreaState(reason, this._host.getScreenReaderContent());\n  }\n  _ensureClipboardGetsEditorSelection(e) {\n    const dataToCopy = this._host.getDataToCopy();\n    let id = void 0;\n    if (this._logService.getLevel() === LogLevel.Trace) {\n      id = generateUuid();\n    }\n    const storedMetadata = {\n      version: 1,\n      id,\n      isFromEmptySelection: dataToCopy.isFromEmptySelection,\n      multicursorText: dataToCopy.multicursorText,\n      mode: dataToCopy.mode\n    };\n    InMemoryClipboardMetadataManager.INSTANCE.set(\n      // When writing \"LINE\\r\\n\" to the clipboard and then pasting,\n      // Firefox pastes \"LINE\\n\", so let's work around this quirk\n      this._browser.isFirefox ? dataToCopy.text.replace(/\\r\\n/g, \"\\n\") : dataToCopy.text,\n      storedMetadata\n    );\n    e.preventDefault();\n    if (e.clipboardData) {\n      ClipboardEventUtils.setTextData(e.clipboardData, dataToCopy.text, dataToCopy.html, storedMetadata);\n    }\n    this._logService.trace(\"TextAreaEditContextInput#_ensureClipboardGetsEditorSelection with id : \", id, \" with text.length: \", dataToCopy.text.length);\n  }\n};\nTextAreaInput = __decorate7([\n  __param6(4, IAccessibilityService),\n  __param6(5, ILogService)\n], TextAreaInput);\nvar TextAreaWrapper = class extends Disposable {\n  get ownerDocument() {\n    return this._actual.ownerDocument;\n  }\n  constructor(_actual) {\n    super();\n    this._actual = _actual;\n    this._onSyntheticTap = this._register(new Emitter());\n    this.onSyntheticTap = this._onSyntheticTap.event;\n    this._ignoreSelectionChangeTime = 0;\n    this.onKeyDown = this._register(new DomEmitter(this._actual, \"keydown\")).event;\n    this.onKeyPress = this._register(new DomEmitter(this._actual, \"keypress\")).event;\n    this.onKeyUp = this._register(new DomEmitter(this._actual, \"keyup\")).event;\n    this.onCompositionStart = this._register(new DomEmitter(this._actual, \"compositionstart\")).event;\n    this.onCompositionUpdate = this._register(new DomEmitter(this._actual, \"compositionupdate\")).event;\n    this.onCompositionEnd = this._register(new DomEmitter(this._actual, \"compositionend\")).event;\n    this.onBeforeInput = this._register(new DomEmitter(this._actual, \"beforeinput\")).event;\n    this.onInput = this._register(new DomEmitter(this._actual, \"input\")).event;\n    this.onCut = this._register(new DomEmitter(this._actual, \"cut\")).event;\n    this.onCopy = this._register(new DomEmitter(this._actual, \"copy\")).event;\n    this.onPaste = this._register(new DomEmitter(this._actual, \"paste\")).event;\n    this.onFocus = this._register(new DomEmitter(this._actual, \"focus\")).event;\n    this.onBlur = this._register(new DomEmitter(this._actual, \"blur\")).event;\n    this._register(this.onKeyDown(() =\u003e inputLatency.onKeyDown()));\n    this._register(this.onBeforeInput(() =\u003e inputLatency.onBeforeInput()));\n    this._register(this.onInput(() =\u003e inputLatency.onInput()));\n    this._register(this.onKeyUp(() =\u003e inputLatency.onKeyUp()));\n    this._register(addDisposableListener(this._actual, TextAreaSyntethicEvents.Tap, () =\u003e this._onSyntheticTap.fire()));\n  }\n  hasFocus() {\n    const shadowRoot = getShadowRoot(this._actual);\n    if (shadowRoot) {\n      return shadowRoot.activeElement === this._actual;\n    } else if (this._actual.isConnected) {\n      return getActiveElement() === this._actual;\n    } else {\n      return false;\n    }\n  }\n  setIgnoreSelectionChangeTime(reason) {\n    this._ignoreSelectionChangeTime = Date.now();\n  }\n  getIgnoreSelectionChangeTime() {\n    return this._ignoreSelectionChangeTime;\n  }\n  resetSelectionChangeTime() {\n    this._ignoreSelectionChangeTime = 0;\n  }\n  getValue() {\n    return this._actual.value;\n  }\n  setValue(reason, value) {\n    const textArea = this._actual;\n    if (textArea.value === value) {\n      return;\n    }\n    this.setIgnoreSelectionChangeTime(\"setValue\");\n    textArea.value = value;\n  }\n  getSelectionStart() {\n    return this._actual.selectionDirection === \"backward\" ? this._actual.selectionEnd : this._actual.selectionStart;\n  }\n  getSelectionEnd() {\n    return this._actual.selectionDirection === \"backward\" ? this._actual.selectionStart : this._actual.selectionEnd;\n  }\n  setSelectionRange(reason, selectionStart, selectionEnd) {\n    const textArea = this._actual;\n    let activeElement = null;\n    const shadowRoot = getShadowRoot(textArea);\n    if (shadowRoot) {\n      activeElement = shadowRoot.activeElement;\n    } else {\n      activeElement = getActiveElement();\n    }\n    const activeWindow = getWindow(activeElement);\n    const currentIsFocused = activeElement === textArea;\n    const currentSelectionStart = textArea.selectionStart;\n    const currentSelectionEnd = textArea.selectionEnd;\n    if (currentIsFocused \u0026\u0026 currentSelectionStart === selectionStart \u0026\u0026 currentSelectionEnd === selectionEnd) {\n      if (isFirefox \u0026\u0026 activeWindow.parent !== activeWindow) {\n        textArea.focus();\n      }\n      return;\n    }\n    if (currentIsFocused) {\n      this.setIgnoreSelectionChangeTime(\"setSelectionRange\");\n      textArea.setSelectionRange(selectionStart, selectionEnd);\n      if (isFirefox \u0026\u0026 activeWindow.parent !== activeWindow) {\n        textArea.focus();\n      }\n      return;\n    }\n    try {\n      const scrollState = saveParentsScrollTop(textArea);\n      this.setIgnoreSelectionChangeTime(\"setSelectionRange\");\n      textArea.focus();\n      textArea.setSelectionRange(selectionStart, selectionEnd);\n      restoreParentsScrollTop(textArea, scrollState);\n    } catch (e) {\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/pointerHandler.js\nvar PointerEventHandler = class extends MouseHandler {\n  constructor(context, viewController, viewHelper) {\n    super(context, viewController, viewHelper);\n    this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode));\n    this._register(addDisposableListener(this.viewHelper.linesContentDomNode, EventType2.Tap, (e) =\u003e this.onTap(e)));\n    this._register(addDisposableListener(this.viewHelper.linesContentDomNode, EventType2.Change, (e) =\u003e this.onChange(e)));\n    this._register(addDisposableListener(this.viewHelper.linesContentDomNode, EventType2.Contextmenu, (e) =\u003e this._onContextMenu(new EditorMouseEvent(e, false, this.viewHelper.viewDomNode), false)));\n    this._lastPointerType = \"mouse\";\n    this._register(addDisposableListener(this.viewHelper.linesContentDomNode, \"pointerdown\", (e) =\u003e {\n      const pointerType = e.pointerType;\n      if (pointerType === \"mouse\") {\n        this._lastPointerType = \"mouse\";\n        return;\n      } else if (pointerType === \"touch\") {\n        this._lastPointerType = \"touch\";\n      } else {\n        this._lastPointerType = \"pen\";\n      }\n    }));\n    const pointerEvents = new EditorPointerEventFactory(this.viewHelper.viewDomNode);\n    this._register(pointerEvents.onPointerMove(this.viewHelper.viewDomNode, (e) =\u003e this._onMouseMove(e)));\n    this._register(pointerEvents.onPointerUp(this.viewHelper.viewDomNode, (e) =\u003e this._onMouseUp(e)));\n    this._register(pointerEvents.onPointerLeave(this.viewHelper.viewDomNode, (e) =\u003e this._onMouseLeave(e)));\n    this._register(pointerEvents.onPointerDown(this.viewHelper.viewDomNode, (e, pointerId) =\u003e this._onMouseDown(e, pointerId)));\n  }\n  onTap(event) {\n    if (!event.initialTarget || !this.viewHelper.linesContentDomNode.contains(event.initialTarget)) {\n      return;\n    }\n    event.preventDefault();\n    this.viewHelper.focusTextArea();\n    this._dispatchGesture(\n      event,\n      /*inSelectionMode*/\n      false\n    );\n  }\n  onChange(event) {\n    if (this._lastPointerType === \"touch\") {\n      this._context.viewModel.viewLayout.deltaScrollNow(-event.translationX, -event.translationY);\n    }\n    if (this._lastPointerType === \"pen\") {\n      this._dispatchGesture(\n        event,\n        /*inSelectionMode*/\n        true\n      );\n    }\n  }\n  _dispatchGesture(event, inSelectionMode) {\n    const target = this._createMouseTarget(new EditorMouseEvent(event, false, this.viewHelper.viewDomNode), false);\n    if (target.position) {\n      this.viewController.dispatchMouse({\n        position: target.position,\n        mouseColumn: target.position.column,\n        startedOnLineNumbers: false,\n        revealType: 1,\n        mouseDownCount: event.tapCount,\n        inSelectionMode,\n        altKey: false,\n        ctrlKey: false,\n        metaKey: false,\n        shiftKey: false,\n        leftButton: false,\n        middleButton: false,\n        onInjectedText: target.type === 6 \u0026\u0026 target.detail.injectedText !== null\n      });\n    }\n  }\n  _onMouseDown(e, pointerId) {\n    if (e.browserEvent.pointerType === \"touch\") {\n      return;\n    }\n    super._onMouseDown(e, pointerId);\n  }\n};\nvar TouchHandler = class extends MouseHandler {\n  constructor(context, viewController, viewHelper) {\n    super(context, viewController, viewHelper);\n    this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode));\n    this._register(addDisposableListener(this.viewHelper.linesContentDomNode, EventType2.Tap, (e) =\u003e this.onTap(e)));\n    this._register(addDisposableListener(this.viewHelper.linesContentDomNode, EventType2.Change, (e) =\u003e this.onChange(e)));\n    this._register(addDisposableListener(this.viewHelper.linesContentDomNode, EventType2.Contextmenu, (e) =\u003e this._onContextMenu(new EditorMouseEvent(e, false, this.viewHelper.viewDomNode), false)));\n  }\n  onTap(event) {\n    event.preventDefault();\n    this.viewHelper.focusTextArea();\n    const target = this._createMouseTarget(new EditorMouseEvent(event, false, this.viewHelper.viewDomNode), false);\n    if (target.position) {\n      const event2 = document.createEvent(\"CustomEvent\");\n      event2.initEvent(TextAreaSyntethicEvents.Tap, false, true);\n      this.viewHelper.dispatchTextAreaEvent(event2);\n      this.viewController.moveTo(\n        target.position,\n        1\n        /* NavigationCommandRevealType.Minimal */\n      );\n    }\n  }\n  onChange(e) {\n    this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX, -e.translationY);\n  }\n};\nvar PointerHandler = class extends Disposable {\n  constructor(context, viewController, viewHelper) {\n    super();\n    const isPhone = isIOS || isAndroid2 \u0026\u0026 isMobile;\n    if (isPhone \u0026\u0026 BrowserFeatures.pointerEvents) {\n      this.handler = this._register(new PointerEventHandler(context, viewController, viewHelper));\n    } else if (mainWindow.TouchEvent) {\n      this.handler = this._register(new TouchHandler(context, viewController, viewHelper));\n    } else {\n      this.handler = this._register(new MouseHandler(context, viewController, viewHelper));\n    }\n  }\n  getTargetAtClientPoint(clientX, clientY) {\n    return this.handler.getTargetAtClientPoint(clientX, clientY);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/viewController.js\ninit_position();\ninit_platform();\nvar ViewController = class {\n  constructor(configuration, viewModel, userInputEvents, commandDelegate) {\n    this.configuration = configuration;\n    this.viewModel = viewModel;\n    this.userInputEvents = userInputEvents;\n    this.commandDelegate = commandDelegate;\n  }\n  paste(text2, pasteOnNewLine, multicursorText, mode) {\n    this.commandDelegate.paste(text2, pasteOnNewLine, multicursorText, mode);\n  }\n  type(text2) {\n    this.commandDelegate.type(text2);\n  }\n  compositionType(text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n    this.commandDelegate.compositionType(text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta);\n  }\n  compositionStart() {\n    this.commandDelegate.startComposition();\n  }\n  compositionEnd() {\n    this.commandDelegate.endComposition();\n  }\n  cut() {\n    this.commandDelegate.cut();\n  }\n  setSelection(modelSelection) {\n    CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel, {\n      source: \"keyboard\",\n      selection: modelSelection\n    });\n  }\n  _validateViewColumn(viewPosition) {\n    const minColumn = this.viewModel.getLineMinColumn(viewPosition.lineNumber);\n    if (viewPosition.column \u003c minColumn) {\n      return new Position(viewPosition.lineNumber, minColumn);\n    }\n    return viewPosition;\n  }\n  _hasMulticursorModifier(data) {\n    switch (this.configuration.options.get(\n      86\n      /* EditorOption.multiCursorModifier */\n    )) {\n      case \"altKey\":\n        return data.altKey;\n      case \"ctrlKey\":\n        return data.ctrlKey;\n      case \"metaKey\":\n        return data.metaKey;\n      default:\n        return false;\n    }\n  }\n  _hasNonMulticursorModifier(data) {\n    switch (this.configuration.options.get(\n      86\n      /* EditorOption.multiCursorModifier */\n    )) {\n      case \"altKey\":\n        return data.ctrlKey || data.metaKey;\n      case \"ctrlKey\":\n        return data.altKey || data.metaKey;\n      case \"metaKey\":\n        return data.ctrlKey || data.altKey;\n      default:\n        return false;\n    }\n  }\n  dispatchMouse(data) {\n    const options2 = this.configuration.options;\n    const selectionClipboardIsOn = isLinux \u0026\u0026 options2.get(\n      120\n      /* EditorOption.selectionClipboard */\n    );\n    const columnSelection = options2.get(\n      28\n      /* EditorOption.columnSelection */\n    );\n    const scrollOnMiddleClick = options2.get(\n      170\n      /* EditorOption.scrollOnMiddleClick */\n    );\n    if (data.middleButton \u0026\u0026 !selectionClipboardIsOn) {\n      if (scrollOnMiddleClick) {\n      } else {\n        this._columnSelect(data.position, data.mouseColumn, data.inSelectionMode);\n      }\n    } else if (data.startedOnLineNumbers) {\n      if (this._hasMulticursorModifier(data)) {\n        if (data.inSelectionMode) {\n          this._lastCursorLineSelect(data.position, data.revealType);\n        } else {\n          this._createCursor(data.position, true);\n        }\n      } else {\n        if (data.inSelectionMode) {\n          this._lineSelectDrag(data.position, data.revealType);\n        } else {\n          this._lineSelect(data.position, data.revealType);\n        }\n      }\n    } else if (data.mouseDownCount \u003e= 4) {\n      this._selectAll();\n    } else if (data.mouseDownCount === 3) {\n      if (this._hasMulticursorModifier(data)) {\n        if (data.inSelectionMode) {\n          this._lastCursorLineSelectDrag(data.position, data.revealType);\n        } else {\n          this._lastCursorLineSelect(data.position, data.revealType);\n        }\n      } else {\n        if (data.inSelectionMode) {\n          this._lineSelectDrag(data.position, data.revealType);\n        } else {\n          this._lineSelect(data.position, data.revealType);\n        }\n      }\n    } else if (data.mouseDownCount === 2) {\n      if (!data.onInjectedText) {\n        if (this._hasMulticursorModifier(data)) {\n          this._lastCursorWordSelect(data.position, data.revealType);\n        } else {\n          if (data.inSelectionMode) {\n            this._wordSelectDrag(data.position, data.revealType);\n          } else {\n            this._wordSelect(data.position, data.revealType);\n          }\n        }\n      }\n    } else {\n      if (this._hasMulticursorModifier(data)) {\n        if (!this._hasNonMulticursorModifier(data)) {\n          if (data.shiftKey) {\n            this._columnSelect(data.position, data.mouseColumn, true);\n          } else {\n            if (data.inSelectionMode) {\n              this._lastCursorMoveToSelect(data.position, data.revealType);\n            } else {\n              this._createCursor(data.position, false);\n            }\n          }\n        }\n      } else {\n        if (data.inSelectionMode) {\n          if (data.altKey) {\n            this._columnSelect(data.position, data.mouseColumn, true);\n          } else {\n            if (columnSelection) {\n              this._columnSelect(data.position, data.mouseColumn, true);\n            } else {\n              this._moveToSelect(data.position, data.revealType);\n            }\n          }\n        } else {\n          this.moveTo(data.position, data.revealType);\n        }\n      }\n    }\n  }\n  _usualArgs(viewPosition, revealType) {\n    viewPosition = this._validateViewColumn(viewPosition);\n    return {\n      source: \"mouse\",\n      position: this._convertViewToModelPosition(viewPosition),\n      viewPosition,\n      revealType\n    };\n  }\n  moveTo(viewPosition, revealType) {\n    CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _moveToSelect(viewPosition, revealType) {\n    CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _columnSelect(viewPosition, mouseColumn, doColumnSelect) {\n    viewPosition = this._validateViewColumn(viewPosition);\n    CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel, {\n      source: \"mouse\",\n      position: this._convertViewToModelPosition(viewPosition),\n      viewPosition,\n      mouseColumn,\n      doColumnSelect\n    });\n  }\n  _createCursor(viewPosition, wholeLine) {\n    viewPosition = this._validateViewColumn(viewPosition);\n    CoreNavigationCommands.CreateCursor.runCoreEditorCommand(this.viewModel, {\n      source: \"mouse\",\n      position: this._convertViewToModelPosition(viewPosition),\n      viewPosition,\n      wholeLine\n    });\n  }\n  _lastCursorMoveToSelect(viewPosition, revealType) {\n    CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _wordSelect(viewPosition, revealType) {\n    CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _wordSelectDrag(viewPosition, revealType) {\n    CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _lastCursorWordSelect(viewPosition, revealType) {\n    CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _lineSelect(viewPosition, revealType) {\n    CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _lineSelectDrag(viewPosition, revealType) {\n    CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _lastCursorLineSelect(viewPosition, revealType) {\n    CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _lastCursorLineSelectDrag(viewPosition, revealType) {\n    CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel, this._usualArgs(viewPosition, revealType));\n  }\n  _selectAll() {\n    CoreNavigationCommands.SelectAll.runCoreEditorCommand(this.viewModel, { source: \"mouse\" });\n  }\n  // ----------------------\n  _convertViewToModelPosition(viewPosition) {\n    return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(viewPosition);\n  }\n  emitKeyDown(e) {\n    this.userInputEvents.emitKeyDown(e);\n  }\n  emitKeyUp(e) {\n    this.userInputEvents.emitKeyUp(e);\n  }\n  emitContextMenu(e) {\n    this.userInputEvents.emitContextMenu(e);\n  }\n  emitMouseMove(e) {\n    this.userInputEvents.emitMouseMove(e);\n  }\n  emitMouseLeave(e) {\n    this.userInputEvents.emitMouseLeave(e);\n  }\n  emitMouseUp(e) {\n    this.userInputEvents.emitMouseUp(e);\n  }\n  emitMouseDown(e) {\n    this.userInputEvents.emitMouseDown(e);\n  }\n  emitMouseDrag(e) {\n    this.userInputEvents.emitMouseDrag(e);\n  }\n  emitMouseDrop(e) {\n    this.userInputEvents.emitMouseDrop(e);\n  }\n  emitMouseDropCanceled() {\n    this.userInputEvents.emitMouseDropCanceled();\n  }\n  emitMouseWheel(e) {\n    this.userInputEvents.emitMouseWheel(e);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/trustedTypes.js\ninit_errors();\nfunction createTrustedTypesPolicy(policyName, policyOptions) {\n  const monacoEnvironment2 = globalThis.MonacoEnvironment;\n  if (monacoEnvironment2?.createTrustedTypesPolicy) {\n    try {\n      return monacoEnvironment2.createTrustedTypesPolicy(policyName, policyOptions);\n    } catch (err) {\n      onUnexpectedError(err);\n      return void 0;\n    }\n  }\n  try {\n    return globalThis.trustedTypes?.createPolicy(policyName, policyOptions);\n  } catch (err) {\n    onUnexpectedError(err);\n    return void 0;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/viewLayer.js\ninit_errors();\ninit_stringBuilder();\nvar RenderedLinesCollection = class {\n  constructor(_lineFactory) {\n    this._lineFactory = _lineFactory;\n    this._set(1, []);\n  }\n  flush() {\n    this._set(1, []);\n  }\n  _set(rendLineNumberStart, lines) {\n    this._lines = lines;\n    this._rendLineNumberStart = rendLineNumberStart;\n  }\n  _get() {\n    return {\n      rendLineNumberStart: this._rendLineNumberStart,\n      lines: this._lines\n    };\n  }\n  /**\n   * @returns Inclusive line number that is inside this collection\n   */\n  getStartLineNumber() {\n    return this._rendLineNumberStart;\n  }\n  /**\n   * @returns Inclusive line number that is inside this collection\n   */\n  getEndLineNumber() {\n    return this._rendLineNumberStart + this._lines.length - 1;\n  }\n  getCount() {\n    return this._lines.length;\n  }\n  getLine(lineNumber) {\n    const lineIndex = lineNumber - this._rendLineNumberStart;\n    if (lineIndex \u003c 0 || lineIndex \u003e= this._lines.length) {\n      throw new BugIndicatingError(\"Illegal value for lineNumber\");\n    }\n    return this._lines[lineIndex];\n  }\n  /**\n   * @returns Lines that were removed from this collection\n   */\n  onLinesDeleted(deleteFromLineNumber, deleteToLineNumber) {\n    if (this.getCount() === 0) {\n      return null;\n    }\n    const startLineNumber = this.getStartLineNumber();\n    const endLineNumber = this.getEndLineNumber();\n    if (deleteToLineNumber \u003c startLineNumber) {\n      const deleteCnt = deleteToLineNumber - deleteFromLineNumber + 1;\n      this._rendLineNumberStart -= deleteCnt;\n      return null;\n    }\n    if (deleteFromLineNumber \u003e endLineNumber) {\n      return null;\n    }\n    let deleteStartIndex = 0;\n    let deleteCount = 0;\n    for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - this._rendLineNumberStart;\n      if (deleteFromLineNumber \u003c= lineNumber \u0026\u0026 lineNumber \u003c= deleteToLineNumber) {\n        if (deleteCount === 0) {\n          deleteStartIndex = lineIndex;\n          deleteCount = 1;\n        } else {\n          deleteCount++;\n        }\n      }\n    }\n    if (deleteFromLineNumber \u003c startLineNumber) {\n      let deleteAboveCount = 0;\n      if (deleteToLineNumber \u003c startLineNumber) {\n        deleteAboveCount = deleteToLineNumber - deleteFromLineNumber + 1;\n      } else {\n        deleteAboveCount = startLineNumber - deleteFromLineNumber;\n      }\n      this._rendLineNumberStart -= deleteAboveCount;\n    }\n    const deleted = this._lines.splice(deleteStartIndex, deleteCount);\n    return deleted;\n  }\n  onLinesChanged(changeFromLineNumber, changeCount) {\n    const changeToLineNumber = changeFromLineNumber + changeCount - 1;\n    if (this.getCount() === 0) {\n      return false;\n    }\n    const startLineNumber = this.getStartLineNumber();\n    const endLineNumber = this.getEndLineNumber();\n    let someoneNotified = false;\n    for (let changedLineNumber = changeFromLineNumber; changedLineNumber \u003c= changeToLineNumber; changedLineNumber++) {\n      if (changedLineNumber \u003e= startLineNumber \u0026\u0026 changedLineNumber \u003c= endLineNumber) {\n        this._lines[changedLineNumber - this._rendLineNumberStart].onContentChanged();\n        someoneNotified = true;\n      }\n    }\n    return someoneNotified;\n  }\n  onLinesInserted(insertFromLineNumber, insertToLineNumber) {\n    if (this.getCount() === 0) {\n      return null;\n    }\n    const insertCnt = insertToLineNumber - insertFromLineNumber + 1;\n    const startLineNumber = this.getStartLineNumber();\n    const endLineNumber = this.getEndLineNumber();\n    if (insertFromLineNumber \u003c= startLineNumber) {\n      this._rendLineNumberStart += insertCnt;\n      return null;\n    }\n    if (insertFromLineNumber \u003e endLineNumber) {\n      return null;\n    }\n    if (insertCnt + insertFromLineNumber \u003e endLineNumber) {\n      const deleted = this._lines.splice(insertFromLineNumber - this._rendLineNumberStart, endLineNumber - insertFromLineNumber + 1);\n      return deleted;\n    }\n    const newLines = [];\n    for (let i2 = 0; i2 \u003c insertCnt; i2++) {\n      newLines[i2] = this._lineFactory.createLine();\n    }\n    const insertIndex = insertFromLineNumber - this._rendLineNumberStart;\n    const beforeLines = this._lines.slice(0, insertIndex);\n    const afterLines = this._lines.slice(insertIndex, this._lines.length - insertCnt);\n    const deletedLines = this._lines.slice(this._lines.length - insertCnt, this._lines.length);\n    this._lines = beforeLines.concat(newLines).concat(afterLines);\n    return deletedLines;\n  }\n  onTokensChanged(ranges) {\n    if (this.getCount() === 0) {\n      return false;\n    }\n    const startLineNumber = this.getStartLineNumber();\n    const endLineNumber = this.getEndLineNumber();\n    let notifiedSomeone = false;\n    for (let i2 = 0, len = ranges.length; i2 \u003c len; i2++) {\n      const rng = ranges[i2];\n      if (rng.toLineNumber \u003c startLineNumber || rng.fromLineNumber \u003e endLineNumber) {\n        continue;\n      }\n      const from = Math.max(startLineNumber, rng.fromLineNumber);\n      const to = Math.min(endLineNumber, rng.toLineNumber);\n      for (let lineNumber = from; lineNumber \u003c= to; lineNumber++) {\n        const lineIndex = lineNumber - this._rendLineNumberStart;\n        this._lines[lineIndex].onTokensChanged();\n        notifiedSomeone = true;\n      }\n    }\n    return notifiedSomeone;\n  }\n};\nvar VisibleLinesCollection = class {\n  constructor(_viewContext, _lineFactory) {\n    this._viewContext = _viewContext;\n    this._lineFactory = _lineFactory;\n    this.domNode = this._createDomNode();\n    this._linesCollection = new RenderedLinesCollection(this._lineFactory);\n  }\n  _createDomNode() {\n    const domNode = createFastDomNode(document.createElement(\"div\"));\n    domNode.setClassName(\"view-layer\");\n    domNode.setPosition(\"absolute\");\n    domNode.domNode.setAttribute(\"role\", \"presentation\");\n    domNode.domNode.setAttribute(\"aria-hidden\", \"true\");\n    return domNode;\n  }\n  // ---- begin view event handlers\n  onConfigurationChanged(e) {\n    if (e.hasChanged(\n      164\n      /* EditorOption.layoutInfo */\n    )) {\n      return true;\n    }\n    return false;\n  }\n  onFlushed(e, flushDom) {\n    if (flushDom) {\n      const start = this._linesCollection.getStartLineNumber();\n      const end = this._linesCollection.getEndLineNumber();\n      for (let i2 = start; i2 \u003c= end; i2++) {\n        this._linesCollection.getLine(i2).getDomNode()?.remove();\n      }\n    }\n    this._linesCollection.flush();\n    return true;\n  }\n  onLinesChanged(e) {\n    return this._linesCollection.onLinesChanged(e.fromLineNumber, e.count);\n  }\n  onLinesDeleted(e) {\n    const deleted = this._linesCollection.onLinesDeleted(e.fromLineNumber, e.toLineNumber);\n    if (deleted) {\n      for (let i2 = 0, len = deleted.length; i2 \u003c len; i2++) {\n        const lineDomNode = deleted[i2].getDomNode();\n        lineDomNode?.remove();\n      }\n    }\n    return true;\n  }\n  onLinesInserted(e) {\n    const deleted = this._linesCollection.onLinesInserted(e.fromLineNumber, e.toLineNumber);\n    if (deleted) {\n      for (let i2 = 0, len = deleted.length; i2 \u003c len; i2++) {\n        const lineDomNode = deleted[i2].getDomNode();\n        lineDomNode?.remove();\n      }\n    }\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onTokensChanged(e) {\n    return this._linesCollection.onTokensChanged(e.ranges);\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // ---- end view event handlers\n  getStartLineNumber() {\n    return this._linesCollection.getStartLineNumber();\n  }\n  getEndLineNumber() {\n    return this._linesCollection.getEndLineNumber();\n  }\n  getVisibleLine(lineNumber) {\n    return this._linesCollection.getLine(lineNumber);\n  }\n  renderLines(viewportData) {\n    const inp = this._linesCollection._get();\n    const renderer = new ViewLayerRenderer(this.domNode.domNode, this._lineFactory, viewportData, this._viewContext);\n    const ctx = {\n      rendLineNumberStart: inp.rendLineNumberStart,\n      lines: inp.lines,\n      linesLength: inp.lines.length\n    };\n    const resCtx = renderer.render(ctx, viewportData.startLineNumber, viewportData.endLineNumber, viewportData.relativeVerticalOffset);\n    this._linesCollection._set(resCtx.rendLineNumberStart, resCtx.lines);\n  }\n};\nvar ViewLayerRenderer = class _ViewLayerRenderer {\n  static {\n    this._ttPolicy = createTrustedTypesPolicy(\"editorViewLayer\", { createHTML: (value) =\u003e value });\n  }\n  constructor(_domNode, _lineFactory, _viewportData, _viewContext) {\n    this._domNode = _domNode;\n    this._lineFactory = _lineFactory;\n    this._viewportData = _viewportData;\n    this._viewContext = _viewContext;\n  }\n  render(inContext, startLineNumber, stopLineNumber, deltaTop) {\n    const ctx = {\n      rendLineNumberStart: inContext.rendLineNumberStart,\n      lines: inContext.lines.slice(0),\n      linesLength: inContext.linesLength\n    };\n    if (ctx.rendLineNumberStart + ctx.linesLength - 1 \u003c startLineNumber || stopLineNumber \u003c ctx.rendLineNumberStart) {\n      ctx.rendLineNumberStart = startLineNumber;\n      ctx.linesLength = stopLineNumber - startLineNumber + 1;\n      ctx.lines = [];\n      for (let x = startLineNumber; x \u003c= stopLineNumber; x++) {\n        ctx.lines[x - startLineNumber] = this._lineFactory.createLine();\n      }\n      this._finishRendering(ctx, true, deltaTop);\n      return ctx;\n    }\n    this._renderUntouchedLines(ctx, Math.max(startLineNumber - ctx.rendLineNumberStart, 0), Math.min(stopLineNumber - ctx.rendLineNumberStart, ctx.linesLength - 1), deltaTop, startLineNumber);\n    if (ctx.rendLineNumberStart \u003e startLineNumber) {\n      const fromLineNumber = startLineNumber;\n      const toLineNumber = Math.min(stopLineNumber, ctx.rendLineNumberStart - 1);\n      if (fromLineNumber \u003c= toLineNumber) {\n        this._insertLinesBefore(ctx, fromLineNumber, toLineNumber, deltaTop, startLineNumber);\n        ctx.linesLength += toLineNumber - fromLineNumber + 1;\n      }\n    } else if (ctx.rendLineNumberStart \u003c startLineNumber) {\n      const removeCnt = Math.min(ctx.linesLength, startLineNumber - ctx.rendLineNumberStart);\n      if (removeCnt \u003e 0) {\n        this._removeLinesBefore(ctx, removeCnt);\n        ctx.linesLength -= removeCnt;\n      }\n    }\n    ctx.rendLineNumberStart = startLineNumber;\n    if (ctx.rendLineNumberStart + ctx.linesLength - 1 \u003c stopLineNumber) {\n      const fromLineNumber = ctx.rendLineNumberStart + ctx.linesLength;\n      const toLineNumber = stopLineNumber;\n      if (fromLineNumber \u003c= toLineNumber) {\n        this._insertLinesAfter(ctx, fromLineNumber, toLineNumber, deltaTop, startLineNumber);\n        ctx.linesLength += toLineNumber - fromLineNumber + 1;\n      }\n    } else if (ctx.rendLineNumberStart + ctx.linesLength - 1 \u003e stopLineNumber) {\n      const fromLineNumber = Math.max(0, stopLineNumber - ctx.rendLineNumberStart + 1);\n      const toLineNumber = ctx.linesLength - 1;\n      const removeCnt = toLineNumber - fromLineNumber + 1;\n      if (removeCnt \u003e 0) {\n        this._removeLinesAfter(ctx, removeCnt);\n        ctx.linesLength -= removeCnt;\n      }\n    }\n    this._finishRendering(ctx, false, deltaTop);\n    return ctx;\n  }\n  _renderUntouchedLines(ctx, startIndex, endIndex, deltaTop, deltaLN) {\n    const rendLineNumberStart = ctx.rendLineNumberStart;\n    const lines = ctx.lines;\n    for (let i2 = startIndex; i2 \u003c= endIndex; i2++) {\n      const lineNumber = rendLineNumberStart + i2;\n      lines[i2].layoutLine(lineNumber, deltaTop[lineNumber - deltaLN], this._lineHeightForLineNumber(lineNumber));\n    }\n  }\n  _insertLinesBefore(ctx, fromLineNumber, toLineNumber, deltaTop, deltaLN) {\n    const newLines = [];\n    let newLinesLen = 0;\n    for (let lineNumber = fromLineNumber; lineNumber \u003c= toLineNumber; lineNumber++) {\n      newLines[newLinesLen++] = this._lineFactory.createLine();\n    }\n    ctx.lines = newLines.concat(ctx.lines);\n  }\n  _removeLinesBefore(ctx, removeCount) {\n    for (let i2 = 0; i2 \u003c removeCount; i2++) {\n      const lineDomNode = ctx.lines[i2].getDomNode();\n      lineDomNode?.remove();\n    }\n    ctx.lines.splice(0, removeCount);\n  }\n  _insertLinesAfter(ctx, fromLineNumber, toLineNumber, deltaTop, deltaLN) {\n    const newLines = [];\n    let newLinesLen = 0;\n    for (let lineNumber = fromLineNumber; lineNumber \u003c= toLineNumber; lineNumber++) {\n      newLines[newLinesLen++] = this._lineFactory.createLine();\n    }\n    ctx.lines = ctx.lines.concat(newLines);\n  }\n  _removeLinesAfter(ctx, removeCount) {\n    const removeIndex = ctx.linesLength - removeCount;\n    for (let i2 = 0; i2 \u003c removeCount; i2++) {\n      const lineDomNode = ctx.lines[removeIndex + i2].getDomNode();\n      lineDomNode?.remove();\n    }\n    ctx.lines.splice(removeIndex, removeCount);\n  }\n  _finishRenderingNewLines(ctx, domNodeIsEmpty, newLinesHTML, wasNew) {\n    if (_ViewLayerRenderer._ttPolicy) {\n      newLinesHTML = _ViewLayerRenderer._ttPolicy.createHTML(newLinesHTML);\n    }\n    const lastChild = this._domNode.lastChild;\n    if (domNodeIsEmpty || !lastChild) {\n      this._domNode.innerHTML = newLinesHTML;\n    } else {\n      lastChild.insertAdjacentHTML(\"afterend\", newLinesHTML);\n    }\n    let currChild = this._domNode.lastChild;\n    for (let i2 = ctx.linesLength - 1; i2 \u003e= 0; i2--) {\n      const line = ctx.lines[i2];\n      if (wasNew[i2]) {\n        line.setDomNode(currChild);\n        currChild = currChild.previousSibling;\n      }\n    }\n  }\n  _finishRenderingInvalidLines(ctx, invalidLinesHTML, wasInvalid) {\n    const hugeDomNode = document.createElement(\"div\");\n    if (_ViewLayerRenderer._ttPolicy) {\n      invalidLinesHTML = _ViewLayerRenderer._ttPolicy.createHTML(invalidLinesHTML);\n    }\n    hugeDomNode.innerHTML = invalidLinesHTML;\n    for (let i2 = 0; i2 \u003c ctx.linesLength; i2++) {\n      const line = ctx.lines[i2];\n      if (wasInvalid[i2]) {\n        const source = hugeDomNode.firstChild;\n        const lineDomNode = line.getDomNode();\n        lineDomNode.parentNode.replaceChild(source, lineDomNode);\n        line.setDomNode(source);\n      }\n    }\n  }\n  static {\n    this._sb = new StringBuilder(1e5);\n  }\n  _finishRendering(ctx, domNodeIsEmpty, deltaTop) {\n    const sb = _ViewLayerRenderer._sb;\n    const linesLength = ctx.linesLength;\n    const lines = ctx.lines;\n    const rendLineNumberStart = ctx.rendLineNumberStart;\n    const wasNew = [];\n    {\n      sb.reset();\n      let hadNewLine = false;\n      for (let i2 = 0; i2 \u003c linesLength; i2++) {\n        const line = lines[i2];\n        wasNew[i2] = false;\n        const lineDomNode = line.getDomNode();\n        if (lineDomNode) {\n          continue;\n        }\n        const renderedLineNumber = i2 + rendLineNumberStart;\n        const renderResult = line.renderLine(renderedLineNumber, deltaTop[i2], this._lineHeightForLineNumber(renderedLineNumber), this._viewportData, sb);\n        if (!renderResult) {\n          continue;\n        }\n        wasNew[i2] = true;\n        hadNewLine = true;\n      }\n      if (hadNewLine) {\n        this._finishRenderingNewLines(ctx, domNodeIsEmpty, sb.build(), wasNew);\n      }\n    }\n    {\n      sb.reset();\n      let hadInvalidLine = false;\n      const wasInvalid = [];\n      for (let i2 = 0; i2 \u003c linesLength; i2++) {\n        const line = lines[i2];\n        wasInvalid[i2] = false;\n        if (wasNew[i2]) {\n          continue;\n        }\n        const renderedLineNumber = i2 + rendLineNumberStart;\n        const renderResult = line.renderLine(renderedLineNumber, deltaTop[i2], this._lineHeightForLineNumber(renderedLineNumber), this._viewportData, sb);\n        if (!renderResult) {\n          continue;\n        }\n        wasInvalid[i2] = true;\n        hadInvalidLine = true;\n      }\n      if (hadInvalidLine) {\n        this._finishRenderingInvalidLines(ctx, sb.build(), wasInvalid);\n      }\n    }\n  }\n  _lineHeightForLineNumber(lineNumber) {\n    return this._viewContext.viewLayout.getLineHeightForLineNumber(lineNumber);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/viewOverlays.js\nvar ViewOverlays = class extends ViewPart {\n  constructor(context) {\n    super(context);\n    this._dynamicOverlays = [];\n    this._isFocused = false;\n    this._visibleLines = new VisibleLinesCollection(this._context, {\n      createLine: () =\u003e new ViewOverlayLine(this._dynamicOverlays)\n    });\n    this.domNode = this._visibleLines.domNode;\n    const options2 = this._context.configuration.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    applyFontInfo(this.domNode, fontInfo);\n    this.domNode.setClassName(\"view-overlays\");\n  }\n  shouldRender() {\n    if (super.shouldRender()) {\n      return true;\n    }\n    for (let i2 = 0, len = this._dynamicOverlays.length; i2 \u003c len; i2++) {\n      const dynamicOverlay = this._dynamicOverlays[i2];\n      if (dynamicOverlay.shouldRender()) {\n        return true;\n      }\n    }\n    return false;\n  }\n  dispose() {\n    super.dispose();\n    for (let i2 = 0, len = this._dynamicOverlays.length; i2 \u003c len; i2++) {\n      const dynamicOverlay = this._dynamicOverlays[i2];\n      dynamicOverlay.dispose();\n    }\n    this._dynamicOverlays = [];\n  }\n  getDomNode() {\n    return this.domNode;\n  }\n  addDynamicOverlay(overlay) {\n    this._dynamicOverlays.push(overlay);\n  }\n  // ----- event handlers\n  onConfigurationChanged(e) {\n    this._visibleLines.onConfigurationChanged(e);\n    const options2 = this._context.configuration.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    applyFontInfo(this.domNode, fontInfo);\n    return true;\n  }\n  onFlushed(e) {\n    return this._visibleLines.onFlushed(e);\n  }\n  onFocusChanged(e) {\n    this._isFocused = e.isFocused;\n    return true;\n  }\n  onLinesChanged(e) {\n    return this._visibleLines.onLinesChanged(e);\n  }\n  onLinesDeleted(e) {\n    return this._visibleLines.onLinesDeleted(e);\n  }\n  onLinesInserted(e) {\n    return this._visibleLines.onLinesInserted(e);\n  }\n  onScrollChanged(e) {\n    return this._visibleLines.onScrollChanged(e) || true;\n  }\n  onTokensChanged(e) {\n    return this._visibleLines.onTokensChanged(e);\n  }\n  onZonesChanged(e) {\n    return this._visibleLines.onZonesChanged(e);\n  }\n  // ----- end event handlers\n  prepareRender(ctx) {\n    const toRender = this._dynamicOverlays.filter((overlay) =\u003e overlay.shouldRender());\n    for (let i2 = 0, len = toRender.length; i2 \u003c len; i2++) {\n      const dynamicOverlay = toRender[i2];\n      dynamicOverlay.prepareRender(ctx);\n      dynamicOverlay.onDidRender();\n    }\n  }\n  render(ctx) {\n    this._viewOverlaysRender(ctx);\n    this.domNode.toggleClassName(\"focused\", this._isFocused);\n  }\n  _viewOverlaysRender(ctx) {\n    this._visibleLines.renderLines(ctx.viewportData);\n  }\n};\nvar ViewOverlayLine = class {\n  constructor(dynamicOverlays) {\n    this._dynamicOverlays = dynamicOverlays;\n    this._domNode = null;\n    this._renderedContent = null;\n  }\n  getDomNode() {\n    if (!this._domNode) {\n      return null;\n    }\n    return this._domNode.domNode;\n  }\n  setDomNode(domNode) {\n    this._domNode = createFastDomNode(domNode);\n  }\n  onContentChanged() {\n  }\n  onTokensChanged() {\n  }\n  renderLine(lineNumber, deltaTop, lineHeight, viewportData, sb) {\n    let result = \"\";\n    for (let i2 = 0, len = this._dynamicOverlays.length; i2 \u003c len; i2++) {\n      const dynamicOverlay = this._dynamicOverlays[i2];\n      result += dynamicOverlay.render(viewportData.startLineNumber, lineNumber);\n    }\n    if (this._renderedContent === result) {\n      return false;\n    }\n    this._renderedContent = result;\n    sb.appendString('\u003cdiv style=\"top:');\n    sb.appendString(String(deltaTop));\n    sb.appendString(\"px;height:\");\n    sb.appendString(String(lineHeight));\n    sb.appendString(\"px;line-height:\");\n    sb.appendString(String(lineHeight));\n    sb.appendString('px;\"\u003e');\n    sb.appendString(result);\n    sb.appendString(\"\u003c/div\u003e\");\n    return true;\n  }\n  layoutLine(lineNumber, deltaTop, lineHeight) {\n    if (this._domNode) {\n      this._domNode.setTop(deltaTop);\n      this._domNode.setHeight(lineHeight);\n      this._domNode.setLineHeight(lineHeight);\n    }\n  }\n};\nvar ContentViewOverlays = class extends ViewOverlays {\n  constructor(context) {\n    super(context);\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._contentWidth = layoutInfo.contentWidth;\n    this.domNode.setHeight(0);\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._contentWidth = layoutInfo.contentWidth;\n    return super.onConfigurationChanged(e) || true;\n  }\n  onScrollChanged(e) {\n    return super.onScrollChanged(e) || e.scrollWidthChanged;\n  }\n  // --- end event handlers\n  _viewOverlaysRender(ctx) {\n    super._viewOverlaysRender(ctx);\n    this.domNode.setWidth(Math.max(ctx.scrollWidth, this._contentWidth));\n  }\n};\nvar MarginViewOverlays = class extends ViewOverlays {\n  constructor(context) {\n    super(context);\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._contentLeft = layoutInfo.contentLeft;\n    this.domNode.setClassName(\"margin-view-overlays\");\n    this.domNode.setWidth(1);\n    applyFontInfo(this.domNode, options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ));\n  }\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    applyFontInfo(this.domNode, options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ));\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._contentLeft = layoutInfo.contentLeft;\n    return super.onConfigurationChanged(e) || true;\n  }\n  onScrollChanged(e) {\n    return super.onScrollChanged(e) || e.scrollHeightChanged;\n  }\n  _viewOverlaysRender(ctx) {\n    super._viewOverlaysRender(ctx);\n    const height = Math.min(ctx.scrollHeight, 1e6);\n    this.domNode.setHeight(height);\n    this.domNode.setWidth(this._contentLeft);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/viewUserInputEvents.js\ninit_position();\nvar ViewUserInputEvents = class _ViewUserInputEvents {\n  constructor(coordinatesConverter) {\n    this.onKeyDown = null;\n    this.onKeyUp = null;\n    this.onContextMenu = null;\n    this.onMouseMove = null;\n    this.onMouseLeave = null;\n    this.onMouseDown = null;\n    this.onMouseUp = null;\n    this.onMouseDrag = null;\n    this.onMouseDrop = null;\n    this.onMouseDropCanceled = null;\n    this.onMouseWheel = null;\n    this._coordinatesConverter = coordinatesConverter;\n  }\n  emitKeyDown(e) {\n    this.onKeyDown?.(e);\n  }\n  emitKeyUp(e) {\n    this.onKeyUp?.(e);\n  }\n  emitContextMenu(e) {\n    this.onContextMenu?.(this._convertViewToModelMouseEvent(e));\n  }\n  emitMouseMove(e) {\n    this.onMouseMove?.(this._convertViewToModelMouseEvent(e));\n  }\n  emitMouseLeave(e) {\n    this.onMouseLeave?.(this._convertViewToModelMouseEvent(e));\n  }\n  emitMouseDown(e) {\n    this.onMouseDown?.(this._convertViewToModelMouseEvent(e));\n  }\n  emitMouseUp(e) {\n    this.onMouseUp?.(this._convertViewToModelMouseEvent(e));\n  }\n  emitMouseDrag(e) {\n    this.onMouseDrag?.(this._convertViewToModelMouseEvent(e));\n  }\n  emitMouseDrop(e) {\n    this.onMouseDrop?.(this._convertViewToModelMouseEvent(e));\n  }\n  emitMouseDropCanceled() {\n    this.onMouseDropCanceled?.();\n  }\n  emitMouseWheel(e) {\n    this.onMouseWheel?.(e);\n  }\n  _convertViewToModelMouseEvent(e) {\n    if (e.target) {\n      return {\n        event: e.event,\n        target: this._convertViewToModelMouseTarget(e.target)\n      };\n    }\n    return e;\n  }\n  _convertViewToModelMouseTarget(target) {\n    return _ViewUserInputEvents.convertViewToModelMouseTarget(target, this._coordinatesConverter);\n  }\n  static convertViewToModelMouseTarget(target, coordinatesConverter) {\n    const result = { ...target };\n    if (result.position) {\n      result.position = coordinatesConverter.convertViewPositionToModelPosition(result.position);\n    }\n    if (result.range) {\n      result.range = coordinatesConverter.convertViewRangeToModelRange(result.range);\n    }\n    if (result.type === 5 || result.type === 8) {\n      result.detail = this.convertViewToModelViewZoneData(result.detail, coordinatesConverter);\n    }\n    return result;\n  }\n  static convertViewToModelViewZoneData(data, coordinatesConverter) {\n    return {\n      viewZoneId: data.viewZoneId,\n      positionBefore: data.positionBefore ? coordinatesConverter.convertViewPositionToModelPosition(data.positionBefore) : data.positionBefore,\n      positionAfter: data.positionAfter ? coordinatesConverter.convertViewPositionToModelPosition(data.positionAfter) : data.positionAfter,\n      position: coordinatesConverter.convertViewPositionToModelPosition(data.position),\n      afterLineNumber: coordinatesConverter.convertViewPositionToModelPosition(new Position(data.afterLineNumber, 1)).lineNumber\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/blockDecorations/blockDecorations.js\nvar BlockDecorations = class extends ViewPart {\n  constructor(context) {\n    super(context);\n    this.blocks = [];\n    this.contentWidth = -1;\n    this.contentLeft = 0;\n    this.domNode = createFastDomNode(document.createElement(\"div\"));\n    this.domNode.setAttribute(\"role\", \"presentation\");\n    this.domNode.setAttribute(\"aria-hidden\", \"true\");\n    this.domNode.setClassName(\"blockDecorations-container\");\n    this.update();\n  }\n  update() {\n    let didChange = false;\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const newContentWidth = layoutInfo.contentWidth - layoutInfo.verticalScrollbarWidth;\n    if (this.contentWidth !== newContentWidth) {\n      this.contentWidth = newContentWidth;\n      didChange = true;\n    }\n    const newContentLeft = layoutInfo.contentLeft;\n    if (this.contentLeft !== newContentLeft) {\n      this.contentLeft = newContentLeft;\n      didChange = true;\n    }\n    return didChange;\n  }\n  dispose() {\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    return this.update();\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged || e.scrollLeftChanged;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n  }\n  render(ctx) {\n    let count = 0;\n    const decorations = ctx.getDecorationsInViewport();\n    for (const decoration3 of decorations) {\n      if (!decoration3.options.blockClassName) {\n        continue;\n      }\n      let block2 = this.blocks[count];\n      if (!block2) {\n        block2 = this.blocks[count] = createFastDomNode(document.createElement(\"div\"));\n        this.domNode.appendChild(block2);\n      }\n      let top;\n      let bottom;\n      if (decoration3.options.blockIsAfterEnd) {\n        top = ctx.getVerticalOffsetAfterLineNumber(decoration3.range.endLineNumber, false);\n        bottom = ctx.getVerticalOffsetAfterLineNumber(decoration3.range.endLineNumber, true);\n      } else {\n        top = ctx.getVerticalOffsetForLineNumber(decoration3.range.startLineNumber, true);\n        bottom = decoration3.range.isEmpty() \u0026\u0026 !decoration3.options.blockDoesNotCollapse ? ctx.getVerticalOffsetForLineNumber(decoration3.range.startLineNumber, false) : ctx.getVerticalOffsetAfterLineNumber(decoration3.range.endLineNumber, true);\n      }\n      const [paddingTop, paddingRight, paddingBottom, paddingLeft] = decoration3.options.blockPadding ?? [0, 0, 0, 0];\n      block2.setClassName(\"blockDecorations-block \" + decoration3.options.blockClassName);\n      block2.setLeft(this.contentLeft - paddingLeft);\n      block2.setWidth(this.contentWidth + paddingLeft + paddingRight);\n      block2.setTop(top - ctx.scrollTop - paddingTop);\n      block2.setHeight(bottom - top + paddingTop + paddingBottom);\n      count++;\n    }\n    for (let i2 = count; i2 \u003c this.blocks.length; i2++) {\n      this.blocks[i2].domNode.remove();\n    }\n    this.blocks.length = count;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js\ninit_dom();\nvar ViewContentWidgets = class extends ViewPart {\n  constructor(context, viewDomNode) {\n    super(context);\n    this._viewDomNode = viewDomNode;\n    this._widgets = {};\n    this.domNode = createFastDomNode(document.createElement(\"div\"));\n    PartFingerprints.write(\n      this.domNode,\n      1\n      /* PartFingerprint.ContentWidgets */\n    );\n    this.domNode.setClassName(\"contentWidgets\");\n    this.domNode.setPosition(\"absolute\");\n    this.domNode.setTop(0);\n    this.overflowingContentWidgetsDomNode = createFastDomNode(document.createElement(\"div\"));\n    PartFingerprints.write(\n      this.overflowingContentWidgetsDomNode,\n      2\n      /* PartFingerprint.OverflowingContentWidgets */\n    );\n    this.overflowingContentWidgetsDomNode.setClassName(\"overflowingContentWidgets\");\n  }\n  dispose() {\n    super.dispose();\n    this._widgets = {};\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const keys = Object.keys(this._widgets);\n    for (const widgetId of keys) {\n      this._widgets[widgetId].onConfigurationChanged(e);\n    }\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLineMappingChanged(e) {\n    this._updateAnchorsViewPositions();\n    return true;\n  }\n  onLinesChanged(e) {\n    this._updateAnchorsViewPositions();\n    return true;\n  }\n  onLinesDeleted(e) {\n    this._updateAnchorsViewPositions();\n    return true;\n  }\n  onLinesInserted(e) {\n    this._updateAnchorsViewPositions();\n    return true;\n  }\n  onScrollChanged(e) {\n    return true;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // ---- end view event handlers\n  _updateAnchorsViewPositions() {\n    const keys = Object.keys(this._widgets);\n    for (const widgetId of keys) {\n      this._widgets[widgetId].updateAnchorViewPosition();\n    }\n  }\n  addWidget(_widget) {\n    const myWidget = new Widget2(this._context, this._viewDomNode, _widget);\n    this._widgets[myWidget.id] = myWidget;\n    if (myWidget.allowEditorOverflow) {\n      this.overflowingContentWidgetsDomNode.appendChild(myWidget.domNode);\n    } else {\n      this.domNode.appendChild(myWidget.domNode);\n    }\n    this.setShouldRender();\n  }\n  setWidgetPosition(widget, primaryAnchor, secondaryAnchor, preference, affinity) {\n    const myWidget = this._widgets[widget.getId()];\n    myWidget.setPosition(primaryAnchor, secondaryAnchor, preference, affinity);\n    this.setShouldRender();\n  }\n  removeWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._widgets.hasOwnProperty(widgetId)) {\n      const myWidget = this._widgets[widgetId];\n      delete this._widgets[widgetId];\n      const domNode = myWidget.domNode.domNode;\n      domNode.remove();\n      domNode.removeAttribute(\"monaco-visible-content-widget\");\n      this.setShouldRender();\n    }\n  }\n  shouldSuppressMouseDownOnWidget(widgetId) {\n    if (this._widgets.hasOwnProperty(widgetId)) {\n      return this._widgets[widgetId].suppressMouseDown;\n    }\n    return false;\n  }\n  onBeforeRender(viewportData) {\n    const keys = Object.keys(this._widgets);\n    for (const widgetId of keys) {\n      this._widgets[widgetId].onBeforeRender(viewportData);\n    }\n  }\n  prepareRender(ctx) {\n    const keys = Object.keys(this._widgets);\n    for (const widgetId of keys) {\n      this._widgets[widgetId].prepareRender(ctx);\n    }\n  }\n  render(ctx) {\n    const keys = Object.keys(this._widgets);\n    for (const widgetId of keys) {\n      this._widgets[widgetId].render(ctx);\n    }\n  }\n};\nvar Widget2 = class {\n  constructor(context, viewDomNode, actual) {\n    this._primaryAnchor = new PositionPair(null, null);\n    this._secondaryAnchor = new PositionPair(null, null);\n    this._context = context;\n    this._viewDomNode = viewDomNode;\n    this._actual = actual;\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const allowOverflow = options2.get(\n      4\n      /* EditorOption.allowOverflow */\n    );\n    this.domNode = createFastDomNode(this._actual.getDomNode());\n    this.id = this._actual.getId();\n    this.allowEditorOverflow = (this._actual.allowEditorOverflow || false) \u0026\u0026 allowOverflow;\n    this.suppressMouseDown = this._actual.suppressMouseDown || false;\n    this._fixedOverflowWidgets = options2.get(\n      51\n      /* EditorOption.fixedOverflowWidgets */\n    );\n    this._contentWidth = layoutInfo.contentWidth;\n    this._contentLeft = layoutInfo.contentLeft;\n    this._affinity = null;\n    this._preference = [];\n    this._cachedDomNodeOffsetWidth = -1;\n    this._cachedDomNodeOffsetHeight = -1;\n    this._maxWidth = this._getMaxWidth();\n    this._isVisible = false;\n    this._renderData = null;\n    this.domNode.setPosition(this._fixedOverflowWidgets \u0026\u0026 this.allowEditorOverflow ? \"fixed\" : \"absolute\");\n    this.domNode.setDisplay(\"none\");\n    this.domNode.setVisibility(\"hidden\");\n    this.domNode.setAttribute(\"widgetId\", this.id);\n    this.domNode.setMaxWidth(this._maxWidth);\n  }\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    if (e.hasChanged(\n      164\n      /* EditorOption.layoutInfo */\n    )) {\n      const layoutInfo = options2.get(\n        164\n        /* EditorOption.layoutInfo */\n      );\n      this._contentLeft = layoutInfo.contentLeft;\n      this._contentWidth = layoutInfo.contentWidth;\n      this._maxWidth = this._getMaxWidth();\n    }\n  }\n  updateAnchorViewPosition() {\n    this._setPosition(this._affinity, this._primaryAnchor.modelPosition, this._secondaryAnchor.modelPosition);\n  }\n  _setPosition(affinity, primaryAnchor, secondaryAnchor) {\n    this._affinity = affinity;\n    this._primaryAnchor = getValidPositionPair(primaryAnchor, this._context.viewModel, this._affinity);\n    this._secondaryAnchor = getValidPositionPair(secondaryAnchor, this._context.viewModel, this._affinity);\n    function getValidPositionPair(position, viewModel, affinity2) {\n      if (!position) {\n        return new PositionPair(null, null);\n      }\n      const validModelPosition = viewModel.model.validatePosition(position);\n      if (viewModel.coordinatesConverter.modelPositionIsVisible(validModelPosition)) {\n        const viewPosition = viewModel.coordinatesConverter.convertModelPositionToViewPosition(validModelPosition, affinity2 ?? void 0);\n        return new PositionPair(position, viewPosition);\n      }\n      return new PositionPair(position, null);\n    }\n  }\n  _getMaxWidth() {\n    const elDocument = this.domNode.domNode.ownerDocument;\n    const elWindow = elDocument.defaultView;\n    return this.allowEditorOverflow ? elWindow?.innerWidth || elDocument.documentElement.offsetWidth || elDocument.body.offsetWidth : this._contentWidth;\n  }\n  setPosition(primaryAnchor, secondaryAnchor, preference, affinity) {\n    this._setPosition(affinity, primaryAnchor, secondaryAnchor);\n    this._preference = preference;\n    if (this._primaryAnchor.viewPosition \u0026\u0026 this._preference \u0026\u0026 this._preference.length \u003e 0) {\n      this.domNode.setDisplay(\"block\");\n    } else {\n      this.domNode.setDisplay(\"none\");\n    }\n    this._cachedDomNodeOffsetWidth = -1;\n    this._cachedDomNodeOffsetHeight = -1;\n  }\n  _layoutBoxInViewport(anchor, width2, height, ctx) {\n    const aboveLineTop = anchor.top;\n    const heightAvailableAboveLine = aboveLineTop;\n    const underLineTop = anchor.top + anchor.height;\n    const heightAvailableUnderLine = ctx.viewportHeight - underLineTop;\n    const aboveTop = aboveLineTop - height;\n    const fitsAbove = heightAvailableAboveLine \u003e= height;\n    const belowTop = underLineTop;\n    const fitsBelow = heightAvailableUnderLine \u003e= height;\n    let left = anchor.left;\n    if (left + width2 \u003e ctx.scrollLeft + ctx.viewportWidth) {\n      left = ctx.scrollLeft + ctx.viewportWidth - width2;\n    }\n    if (left \u003c ctx.scrollLeft) {\n      left = ctx.scrollLeft;\n    }\n    return { fitsAbove, aboveTop, fitsBelow, belowTop, left };\n  }\n  _layoutHorizontalSegmentInPage(windowSize, domNodePosition, left, width2) {\n    const LEFT_PADDING = 15;\n    const RIGHT_PADDING = 15;\n    const MIN_LIMIT = Math.max(LEFT_PADDING, domNodePosition.left - width2);\n    const MAX_LIMIT = Math.min(domNodePosition.left + domNodePosition.width + width2, windowSize.width - RIGHT_PADDING);\n    const elDocument = this._viewDomNode.domNode.ownerDocument;\n    const elWindow = elDocument.defaultView;\n    let absoluteLeft = domNodePosition.left + left - (elWindow?.scrollX ?? 0);\n    if (absoluteLeft + width2 \u003e MAX_LIMIT) {\n      const delta = absoluteLeft - (MAX_LIMIT - width2);\n      absoluteLeft -= delta;\n      left -= delta;\n    }\n    if (absoluteLeft \u003c MIN_LIMIT) {\n      const delta = absoluteLeft - MIN_LIMIT;\n      absoluteLeft -= delta;\n      left -= delta;\n    }\n    return [left, absoluteLeft];\n  }\n  _layoutBoxInPage(anchor, width2, height, ctx) {\n    const aboveTop = anchor.top - height;\n    const belowTop = anchor.top + anchor.height;\n    const domNodePosition = getDomNodePagePosition(this._viewDomNode.domNode);\n    const elDocument = this._viewDomNode.domNode.ownerDocument;\n    const elWindow = elDocument.defaultView;\n    const absoluteAboveTop = domNodePosition.top + aboveTop - (elWindow?.scrollY ?? 0);\n    const absoluteBelowTop = domNodePosition.top + belowTop - (elWindow?.scrollY ?? 0);\n    const windowSize = getClientArea(elDocument.body);\n    const [left, absoluteAboveLeft] = this._layoutHorizontalSegmentInPage(windowSize, domNodePosition, anchor.left - ctx.scrollLeft + this._contentLeft, width2);\n    const TOP_PADDING = 22;\n    const BOTTOM_PADDING = 22;\n    const fitsAbove = absoluteAboveTop \u003e= TOP_PADDING;\n    const fitsBelow = absoluteBelowTop + height \u003c= windowSize.height - BOTTOM_PADDING;\n    if (this._fixedOverflowWidgets) {\n      return {\n        fitsAbove,\n        aboveTop: Math.max(absoluteAboveTop, TOP_PADDING),\n        fitsBelow,\n        belowTop: absoluteBelowTop,\n        left: absoluteAboveLeft\n      };\n    }\n    return { fitsAbove, aboveTop, fitsBelow, belowTop, left };\n  }\n  _prepareRenderWidgetAtExactPositionOverflowing(topLeft) {\n    return new Coordinate(topLeft.top, topLeft.left + this._contentLeft);\n  }\n  /**\n   * Compute the coordinates above and below the primary and secondary anchors.\n   * The content widget *must* touch the primary anchor.\n   * The content widget should touch if possible the secondary anchor.\n   */\n  _getAnchorsCoordinates(ctx) {\n    const primary = getCoordinates(this._primaryAnchor.viewPosition, this._affinity);\n    const secondaryViewPosition = this._secondaryAnchor.viewPosition?.lineNumber === this._primaryAnchor.viewPosition?.lineNumber ? this._secondaryAnchor.viewPosition : null;\n    const secondary = getCoordinates(secondaryViewPosition, this._affinity);\n    return { primary, secondary };\n    function getCoordinates(position, affinity) {\n      if (!position) {\n        return null;\n      }\n      const horizontalPosition = ctx.visibleRangeForPosition(position);\n      if (!horizontalPosition) {\n        return null;\n      }\n      const left = position.column === 1 \u0026\u0026 affinity === 3 ? 0 : horizontalPosition.left;\n      const top = ctx.getVerticalOffsetForLineNumber(position.lineNumber) - ctx.scrollTop;\n      const lineHeight = ctx.getLineHeightForLineNumber(position.lineNumber);\n      return new AnchorCoordinate(top, left, lineHeight);\n    }\n  }\n  _reduceAnchorCoordinates(primary, secondary, width2) {\n    if (!secondary) {\n      return primary;\n    }\n    const fontInfo = this._context.configuration.options.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    let left = secondary.left;\n    if (left \u003c primary.left) {\n      left = Math.max(left, primary.left - width2 + fontInfo.typicalFullwidthCharacterWidth);\n    } else {\n      left = Math.min(left, primary.left + width2 - fontInfo.typicalFullwidthCharacterWidth);\n    }\n    return new AnchorCoordinate(primary.top, left, primary.height);\n  }\n  _prepareRenderWidget(ctx) {\n    if (!this._preference || this._preference.length === 0) {\n      return null;\n    }\n    const { primary, secondary } = this._getAnchorsCoordinates(ctx);\n    if (!primary) {\n      return {\n        kind: \"offViewport\",\n        preserveFocus: this.domNode.domNode.contains(this.domNode.domNode.ownerDocument.activeElement)\n      };\n    }\n    if (this._cachedDomNodeOffsetWidth === -1 || this._cachedDomNodeOffsetHeight === -1) {\n      let preferredDimensions = null;\n      if (typeof this._actual.beforeRender === \"function\") {\n        preferredDimensions = safeInvoke(this._actual.beforeRender, this._actual);\n      }\n      if (preferredDimensions) {\n        this._cachedDomNodeOffsetWidth = preferredDimensions.width;\n        this._cachedDomNodeOffsetHeight = preferredDimensions.height;\n      } else {\n        const domNode = this.domNode.domNode;\n        const clientRect = domNode.getBoundingClientRect();\n        this._cachedDomNodeOffsetWidth = Math.round(clientRect.width);\n        this._cachedDomNodeOffsetHeight = Math.round(clientRect.height);\n      }\n    }\n    const anchor = this._reduceAnchorCoordinates(primary, secondary, this._cachedDomNodeOffsetWidth);\n    let placement;\n    if (this.allowEditorOverflow) {\n      placement = this._layoutBoxInPage(anchor, this._cachedDomNodeOffsetWidth, this._cachedDomNodeOffsetHeight, ctx);\n    } else {\n      placement = this._layoutBoxInViewport(anchor, this._cachedDomNodeOffsetWidth, this._cachedDomNodeOffsetHeight, ctx);\n    }\n    for (let pass = 1; pass \u003c= 2; pass++) {\n      for (const pref of this._preference) {\n        if (pref === 1) {\n          if (!placement) {\n            return null;\n          }\n          if (pass === 2 || placement.fitsAbove) {\n            return {\n              kind: \"inViewport\",\n              coordinate: new Coordinate(placement.aboveTop, placement.left),\n              position: 1\n              /* ContentWidgetPositionPreference.ABOVE */\n            };\n          }\n        } else if (pref === 2) {\n          if (!placement) {\n            return null;\n          }\n          if (pass === 2 || placement.fitsBelow) {\n            return {\n              kind: \"inViewport\",\n              coordinate: new Coordinate(placement.belowTop, placement.left),\n              position: 2\n              /* ContentWidgetPositionPreference.BELOW */\n            };\n          }\n        } else {\n          if (this.allowEditorOverflow) {\n            return {\n              kind: \"inViewport\",\n              coordinate: this._prepareRenderWidgetAtExactPositionOverflowing(new Coordinate(anchor.top, anchor.left)),\n              position: 0\n              /* ContentWidgetPositionPreference.EXACT */\n            };\n          } else {\n            return {\n              kind: \"inViewport\",\n              coordinate: new Coordinate(anchor.top, anchor.left),\n              position: 0\n              /* ContentWidgetPositionPreference.EXACT */\n            };\n          }\n        }\n      }\n    }\n    return null;\n  }\n  /**\n   * On this first pass, we ensure that the content widget (if it is in the viewport) has the max width set correctly.\n   */\n  onBeforeRender(viewportData) {\n    if (!this._primaryAnchor.viewPosition || !this._preference) {\n      return;\n    }\n    if (this._primaryAnchor.viewPosition.lineNumber \u003c viewportData.startLineNumber || this._primaryAnchor.viewPosition.lineNumber \u003e viewportData.endLineNumber) {\n      return;\n    }\n    this.domNode.setMaxWidth(this._maxWidth);\n  }\n  prepareRender(ctx) {\n    this._renderData = this._prepareRenderWidget(ctx);\n  }\n  render(ctx) {\n    if (!this._renderData || this._renderData.kind === \"offViewport\") {\n      if (this._isVisible) {\n        this.domNode.removeAttribute(\"monaco-visible-content-widget\");\n        this._isVisible = false;\n        if (this._renderData?.kind === \"offViewport\" \u0026\u0026 this._renderData.preserveFocus) {\n          this.domNode.setTop(-1e3);\n        } else {\n          this.domNode.setVisibility(\"hidden\");\n        }\n      }\n      if (typeof this._actual.afterRender === \"function\") {\n        safeInvoke(this._actual.afterRender, this._actual, null, null);\n      }\n      return;\n    }\n    if (this.allowEditorOverflow) {\n      this.domNode.setTop(this._renderData.coordinate.top);\n      this.domNode.setLeft(this._renderData.coordinate.left);\n    } else {\n      this.domNode.setTop(this._renderData.coordinate.top + ctx.scrollTop - ctx.bigNumbersDelta);\n      this.domNode.setLeft(this._renderData.coordinate.left);\n    }\n    if (!this._isVisible) {\n      this.domNode.setVisibility(\"inherit\");\n      this.domNode.setAttribute(\"monaco-visible-content-widget\", \"true\");\n      this._isVisible = true;\n    }\n    if (typeof this._actual.afterRender === \"function\") {\n      safeInvoke(this._actual.afterRender, this._actual, this._renderData.position, this._renderData.coordinate);\n    }\n  }\n};\nvar PositionPair = class {\n  constructor(modelPosition, viewPosition) {\n    this.modelPosition = modelPosition;\n    this.viewPosition = viewPosition;\n  }\n};\nvar Coordinate = class {\n  constructor(top, left) {\n    this.top = top;\n    this.left = left;\n    this._coordinateBrand = void 0;\n  }\n};\nvar AnchorCoordinate = class {\n  constructor(top, left, height) {\n    this.top = top;\n    this.left = left;\n    this.height = height;\n    this._anchorCoordinateBrand = void 0;\n  }\n};\nfunction safeInvoke(fn, thisArg, ...args) {\n  try {\n    return fn.call(thisArg, ...args);\n  } catch {\n    return null;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/dynamicViewOverlay.js\nvar DynamicViewOverlay = class extends ViewEventHandler {\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js\ninit_editorColorRegistry();\ninit_arrays();\ninit_themeService();\ninit_selection();\ninit_theme();\ninit_position();\nvar AbstractLineHighlightOverlay = class extends DynamicViewOverlay {\n  constructor(context) {\n    super();\n    this._context = context;\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._renderLineHighlight = options2.get(\n      109\n      /* EditorOption.renderLineHighlight */\n    );\n    this._renderLineHighlightOnlyWhenFocus = options2.get(\n      110\n      /* EditorOption.renderLineHighlightOnlyWhenFocus */\n    );\n    this._wordWrap = layoutInfo.isViewportWrapping;\n    this._contentLeft = layoutInfo.contentLeft;\n    this._contentWidth = layoutInfo.contentWidth;\n    this._selectionIsEmpty = true;\n    this._focused = false;\n    this._cursorLineNumbers = [1];\n    this._selections = [new Selection(1, 1, 1, 1)];\n    this._renderData = null;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    super.dispose();\n  }\n  _readFromSelections() {\n    let hasChanged = false;\n    const lineNumbers = /* @__PURE__ */ new Set();\n    for (const selection of this._selections) {\n      lineNumbers.add(selection.positionLineNumber);\n    }\n    const cursorsLineNumbers = Array.from(lineNumbers);\n    cursorsLineNumbers.sort((a, b) =\u003e a - b);\n    if (!equals(this._cursorLineNumbers, cursorsLineNumbers)) {\n      this._cursorLineNumbers = cursorsLineNumbers;\n      hasChanged = true;\n    }\n    const selectionIsEmpty = this._selections.every((s) =\u003e s.isEmpty());\n    if (this._selectionIsEmpty !== selectionIsEmpty) {\n      this._selectionIsEmpty = selectionIsEmpty;\n      hasChanged = true;\n    }\n    return hasChanged;\n  }\n  // --- begin event handlers\n  onThemeChanged(e) {\n    return this._readFromSelections();\n  }\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._renderLineHighlight = options2.get(\n      109\n      /* EditorOption.renderLineHighlight */\n    );\n    this._renderLineHighlightOnlyWhenFocus = options2.get(\n      110\n      /* EditorOption.renderLineHighlightOnlyWhenFocus */\n    );\n    this._wordWrap = layoutInfo.isViewportWrapping;\n    this._contentLeft = layoutInfo.contentLeft;\n    this._contentWidth = layoutInfo.contentWidth;\n    return true;\n  }\n  onCursorStateChanged(e) {\n    this._selections = e.selections;\n    return this._readFromSelections();\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollWidthChanged || e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  onFocusChanged(e) {\n    if (!this._renderLineHighlightOnlyWhenFocus) {\n      return false;\n    }\n    this._focused = e.isFocused;\n    return true;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n    if (!this._shouldRenderThis()) {\n      this._renderData = null;\n      return;\n    }\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    const renderData = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      renderData[lineIndex] = \"\";\n    }\n    if (this._wordWrap) {\n      const renderedLineWrapped = this._renderOne(ctx, false);\n      for (const cursorLineNumber of this._cursorLineNumbers) {\n        const coordinatesConverter = this._context.viewModel.coordinatesConverter;\n        const modelLineNumber = coordinatesConverter.convertViewPositionToModelPosition(new Position(cursorLineNumber, 1)).lineNumber;\n        const firstViewLineNumber = coordinatesConverter.convertModelPositionToViewPosition(new Position(modelLineNumber, 1)).lineNumber;\n        const lastViewLineNumber = coordinatesConverter.convertModelPositionToViewPosition(new Position(modelLineNumber, this._context.viewModel.model.getLineMaxColumn(modelLineNumber))).lineNumber;\n        const firstLine = Math.max(firstViewLineNumber, visibleStartLineNumber);\n        const lastLine = Math.min(lastViewLineNumber, visibleEndLineNumber);\n        for (let lineNumber = firstLine; lineNumber \u003c= lastLine; lineNumber++) {\n          const lineIndex = lineNumber - visibleStartLineNumber;\n          renderData[lineIndex] = renderedLineWrapped;\n        }\n      }\n    }\n    const renderedLineExact = this._renderOne(ctx, true);\n    for (const cursorLineNumber of this._cursorLineNumbers) {\n      if (cursorLineNumber \u003c visibleStartLineNumber || cursorLineNumber \u003e visibleEndLineNumber) {\n        continue;\n      }\n      const lineIndex = cursorLineNumber - visibleStartLineNumber;\n      renderData[lineIndex] = renderedLineExact;\n    }\n    this._renderData = renderData;\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderData) {\n      return \"\";\n    }\n    const lineIndex = lineNumber - startLineNumber;\n    if (lineIndex \u003e= this._renderData.length) {\n      return \"\";\n    }\n    return this._renderData[lineIndex];\n  }\n  _shouldRenderInMargin() {\n    return (this._renderLineHighlight === \"gutter\" || this._renderLineHighlight === \"all\") \u0026\u0026 (!this._renderLineHighlightOnlyWhenFocus || this._focused);\n  }\n  _shouldRenderInContent() {\n    return (this._renderLineHighlight === \"line\" || this._renderLineHighlight === \"all\") \u0026\u0026 this._selectionIsEmpty \u0026\u0026 (!this._renderLineHighlightOnlyWhenFocus || this._focused);\n  }\n};\nvar CurrentLineHighlightOverlay = class extends AbstractLineHighlightOverlay {\n  _renderOne(ctx, exact) {\n    const className2 = \"current-line\" + (this._shouldRenderInMargin() ? \" current-line-both\" : \"\") + (exact ? \" current-line-exact\" : \"\");\n    return `\u003cdiv class=\"${className2}\" style=\"width:${Math.max(ctx.scrollWidth, this._contentWidth)}px;\"\u003e\u003c/div\u003e`;\n  }\n  _shouldRenderThis() {\n    return this._shouldRenderInContent();\n  }\n  _shouldRenderOther() {\n    return this._shouldRenderInMargin();\n  }\n};\nvar CurrentLineMarginHighlightOverlay = class extends AbstractLineHighlightOverlay {\n  _renderOne(ctx, exact) {\n    const className2 = \"current-line\" + (this._shouldRenderInMargin() ? \" current-line-margin\" : \"\") + (this._shouldRenderOther() ? \" current-line-margin-both\" : \"\") + (this._shouldRenderInMargin() \u0026\u0026 exact ? \" current-line-exact-margin\" : \"\");\n    return `\u003cdiv class=\"${className2}\" style=\"width:${this._contentLeft}px\"\u003e\u003c/div\u003e`;\n  }\n  _shouldRenderThis() {\n    return true;\n  }\n  _shouldRenderOther() {\n    return this._shouldRenderInContent();\n  }\n};\nregisterThemingParticipant((theme, collector) =\u003e {\n  const lineHighlight = theme.getColor(editorLineHighlight);\n  if (lineHighlight) {\n    collector.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${lineHighlight}; }`);\n    collector.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${lineHighlight}; border: none; }`);\n  }\n  if (!lineHighlight || lineHighlight.isTransparent() || theme.defines(editorLineHighlightBorder)) {\n    const lineHighlightBorder = theme.getColor(editorLineHighlightBorder);\n    if (lineHighlightBorder) {\n      collector.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${lineHighlightBorder}; }`);\n      collector.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${lineHighlightBorder}; }`);\n      if (isHighContrast(theme.type)) {\n        collector.addRule(`.monaco-editor .view-overlays .current-line-exact { border-width: 1px; }`);\n        collector.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }`);\n      }\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/decorations/decorations.js\ninit_range();\nvar DecorationsOverlay = class extends DynamicViewOverlay {\n  constructor(context) {\n    super();\n    this._context = context;\n    const options2 = this._context.configuration.options;\n    this._typicalHalfwidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n    this._renderResult = null;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    this._renderResult = null;\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    this._typicalHalfwidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged || e.scrollWidthChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n    const _decorations = ctx.getDecorationsInViewport();\n    let decorations = [];\n    let decorationsLen = 0;\n    for (let i2 = 0, len = _decorations.length; i2 \u003c len; i2++) {\n      const d = _decorations[i2];\n      if (d.options.className) {\n        decorations[decorationsLen++] = d;\n      }\n    }\n    decorations = decorations.sort((a, b) =\u003e {\n      if (a.options.zIndex \u003c b.options.zIndex) {\n        return -1;\n      }\n      if (a.options.zIndex \u003e b.options.zIndex) {\n        return 1;\n      }\n      const aClassName = a.options.className;\n      const bClassName = b.options.className;\n      if (aClassName \u003c bClassName) {\n        return -1;\n      }\n      if (aClassName \u003e bClassName) {\n        return 1;\n      }\n      return Range.compareRangesUsingStarts(a.range, b.range);\n    });\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    const output = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      output[lineIndex] = \"\";\n    }\n    this._renderWholeLineDecorations(ctx, decorations, output);\n    this._renderNormalDecorations(ctx, decorations, output);\n    this._renderResult = output;\n  }\n  _renderWholeLineDecorations(ctx, decorations, output) {\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    for (let i2 = 0, lenI = decorations.length; i2 \u003c lenI; i2++) {\n      const d = decorations[i2];\n      if (!d.options.isWholeLine) {\n        continue;\n      }\n      const decorationOutput = '\u003cdiv class=\"cdr ' + d.options.className + '\" style=\"left:0;width:100%;\"\u003e\u003c/div\u003e';\n      const startLineNumber = Math.max(d.range.startLineNumber, visibleStartLineNumber);\n      const endLineNumber = Math.min(d.range.endLineNumber, visibleEndLineNumber);\n      for (let j = startLineNumber; j \u003c= endLineNumber; j++) {\n        const lineIndex = j - visibleStartLineNumber;\n        output[lineIndex] += decorationOutput;\n      }\n    }\n  }\n  _renderNormalDecorations(ctx, decorations, output) {\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    let prevClassName = null;\n    let prevShowIfCollapsed = false;\n    let prevRange = null;\n    let prevShouldFillLineOnLineBreak = false;\n    for (let i2 = 0, lenI = decorations.length; i2 \u003c lenI; i2++) {\n      const d = decorations[i2];\n      if (d.options.isWholeLine) {\n        continue;\n      }\n      const className2 = d.options.className;\n      const showIfCollapsed = Boolean(d.options.showIfCollapsed);\n      let range2 = d.range;\n      if (showIfCollapsed \u0026\u0026 range2.endColumn === 1 \u0026\u0026 range2.endLineNumber !== range2.startLineNumber) {\n        range2 = new Range(range2.startLineNumber, range2.startColumn, range2.endLineNumber - 1, this._context.viewModel.getLineMaxColumn(range2.endLineNumber - 1));\n      }\n      if (prevClassName === className2 \u0026\u0026 prevShowIfCollapsed === showIfCollapsed \u0026\u0026 Range.areIntersectingOrTouching(prevRange, range2)) {\n        prevRange = Range.plusRange(prevRange, range2);\n        continue;\n      }\n      if (prevClassName !== null) {\n        this._renderNormalDecoration(ctx, prevRange, prevClassName, prevShouldFillLineOnLineBreak, prevShowIfCollapsed, visibleStartLineNumber, output);\n      }\n      prevClassName = className2;\n      prevShowIfCollapsed = showIfCollapsed;\n      prevRange = range2;\n      prevShouldFillLineOnLineBreak = d.options.shouldFillLineOnLineBreak ?? false;\n    }\n    if (prevClassName !== null) {\n      this._renderNormalDecoration(ctx, prevRange, prevClassName, prevShouldFillLineOnLineBreak, prevShowIfCollapsed, visibleStartLineNumber, output);\n    }\n  }\n  _renderNormalDecoration(ctx, range2, className2, shouldFillLineOnLineBreak, showIfCollapsed, visibleStartLineNumber, output) {\n    const linesVisibleRanges = ctx.linesVisibleRangesForRange(\n      range2,\n      /*TODO@Alex*/\n      className2 === \"findMatch\"\n    );\n    if (!linesVisibleRanges) {\n      return;\n    }\n    for (let j = 0, lenJ = linesVisibleRanges.length; j \u003c lenJ; j++) {\n      const lineVisibleRanges = linesVisibleRanges[j];\n      if (lineVisibleRanges.outsideRenderedLine) {\n        continue;\n      }\n      const lineIndex = lineVisibleRanges.lineNumber - visibleStartLineNumber;\n      if (showIfCollapsed \u0026\u0026 lineVisibleRanges.ranges.length === 1) {\n        const singleVisibleRange = lineVisibleRanges.ranges[0];\n        if (singleVisibleRange.width \u003c this._typicalHalfwidthCharacterWidth) {\n          const center = Math.round(singleVisibleRange.left + singleVisibleRange.width / 2);\n          const left = Math.max(0, Math.round(center - this._typicalHalfwidthCharacterWidth / 2));\n          lineVisibleRanges.ranges[0] = new HorizontalRange(left, this._typicalHalfwidthCharacterWidth);\n        }\n      }\n      for (let k = 0, lenK = lineVisibleRanges.ranges.length; k \u003c lenK; k++) {\n        const expandToLeft = shouldFillLineOnLineBreak \u0026\u0026 lineVisibleRanges.continuesOnNextLine \u0026\u0026 lenK === 1;\n        const visibleRange = lineVisibleRanges.ranges[k];\n        const decorationOutput = '\u003cdiv class=\"cdr ' + className2 + '\" style=\"left:' + String(visibleRange.left) + \"px;width:\" + (expandToLeft ? \"100%;\" : String(visibleRange.width) + \"px;\") + '\"\u003e\u003c/div\u003e';\n        output[lineIndex] += decorationOutput;\n      }\n    }\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderResult) {\n      return \"\";\n    }\n    const lineIndex = lineNumber - startLineNumber;\n    if (lineIndex \u003c 0 || lineIndex \u003e= this._renderResult.length) {\n      return \"\";\n    }\n    return this._renderResult[lineIndex];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js\ninit_dom();\ninit_themeService();\nvar EditorScrollbar2 = class extends ViewPart {\n  constructor(context, linesContent, viewDomNode, overflowGuardDomNode) {\n    super(context);\n    const options2 = this._context.configuration.options;\n    const scrollbar = options2.get(\n      116\n      /* EditorOption.scrollbar */\n    );\n    const mouseWheelScrollSensitivity = options2.get(\n      83\n      /* EditorOption.mouseWheelScrollSensitivity */\n    );\n    const fastScrollSensitivity = options2.get(\n      49\n      /* EditorOption.fastScrollSensitivity */\n    );\n    const scrollPredominantAxis = options2.get(\n      119\n      /* EditorOption.scrollPredominantAxis */\n    );\n    const inertialScroll = options2.get(\n      157\n      /* EditorOption.inertialScroll */\n    );\n    const scrollbarOptions = {\n      listenOnDomNode: viewDomNode.domNode,\n      className: \"editor-scrollable \" + getThemeTypeSelector(context.theme.type),\n      useShadows: false,\n      lazyRender: true,\n      vertical: scrollbar.vertical,\n      horizontal: scrollbar.horizontal,\n      verticalHasArrows: scrollbar.verticalHasArrows,\n      horizontalHasArrows: scrollbar.horizontalHasArrows,\n      verticalScrollbarSize: scrollbar.verticalScrollbarSize,\n      verticalSliderSize: scrollbar.verticalSliderSize,\n      horizontalScrollbarSize: scrollbar.horizontalScrollbarSize,\n      horizontalSliderSize: scrollbar.horizontalSliderSize,\n      handleMouseWheel: scrollbar.handleMouseWheel,\n      alwaysConsumeMouseWheel: scrollbar.alwaysConsumeMouseWheel,\n      arrowSize: scrollbar.arrowSize,\n      mouseWheelScrollSensitivity,\n      fastScrollSensitivity,\n      scrollPredominantAxis,\n      scrollByPage: scrollbar.scrollByPage,\n      inertialScroll\n    };\n    this.scrollbar = this._register(new SmoothScrollableElement(linesContent.domNode, scrollbarOptions, this._context.viewLayout.getScrollable()));\n    PartFingerprints.write(\n      this.scrollbar.getDomNode(),\n      6\n      /* PartFingerprint.ScrollableElement */\n    );\n    this.scrollbarDomNode = createFastDomNode(this.scrollbar.getDomNode());\n    this.scrollbarDomNode.setPosition(\"absolute\");\n    this._setLayout();\n    const onBrowserDesperateReveal = (domNode, lookAtScrollTop, lookAtScrollLeft) =\u003e {\n      const newScrollPosition = {};\n      if (lookAtScrollTop) {\n        const deltaTop = domNode.scrollTop;\n        if (deltaTop) {\n          newScrollPosition.scrollTop = this._context.viewLayout.getCurrentScrollTop() + deltaTop;\n          domNode.scrollTop = 0;\n        }\n      }\n      if (lookAtScrollLeft) {\n        const deltaLeft = domNode.scrollLeft;\n        if (deltaLeft) {\n          newScrollPosition.scrollLeft = this._context.viewLayout.getCurrentScrollLeft() + deltaLeft;\n          domNode.scrollLeft = 0;\n        }\n      }\n      this._context.viewModel.viewLayout.setScrollPosition(\n        newScrollPosition,\n        1\n        /* ScrollType.Immediate */\n      );\n    };\n    this._register(addDisposableListener(viewDomNode.domNode, \"scroll\", (e) =\u003e onBrowserDesperateReveal(viewDomNode.domNode, true, true)));\n    this._register(addDisposableListener(linesContent.domNode, \"scroll\", (e) =\u003e onBrowserDesperateReveal(linesContent.domNode, true, false)));\n    this._register(addDisposableListener(overflowGuardDomNode.domNode, \"scroll\", (e) =\u003e onBrowserDesperateReveal(overflowGuardDomNode.domNode, true, false)));\n    this._register(addDisposableListener(this.scrollbarDomNode.domNode, \"scroll\", (e) =\u003e onBrowserDesperateReveal(this.scrollbarDomNode.domNode, true, false)));\n  }\n  dispose() {\n    super.dispose();\n  }\n  _setLayout() {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this.scrollbarDomNode.setLeft(layoutInfo.contentLeft);\n    const minimap = options2.get(\n      81\n      /* EditorOption.minimap */\n    );\n    const side = minimap.side;\n    if (side === \"right\") {\n      this.scrollbarDomNode.setWidth(layoutInfo.contentWidth + layoutInfo.minimap.minimapWidth);\n    } else {\n      this.scrollbarDomNode.setWidth(layoutInfo.contentWidth);\n    }\n    this.scrollbarDomNode.setHeight(layoutInfo.height);\n  }\n  getOverviewRulerLayoutInfo() {\n    return this.scrollbar.getOverviewRulerLayoutInfo();\n  }\n  getDomNode() {\n    return this.scrollbarDomNode;\n  }\n  delegateVerticalScrollbarPointerDown(browserEvent) {\n    this.scrollbar.delegateVerticalScrollbarPointerDown(browserEvent);\n  }\n  delegateScrollFromMouseWheelEvent(browserEvent) {\n    this.scrollbar.delegateScrollFromMouseWheelEvent(browserEvent);\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    if (e.hasChanged(\n      116\n      /* EditorOption.scrollbar */\n    ) || e.hasChanged(\n      83\n      /* EditorOption.mouseWheelScrollSensitivity */\n    ) || e.hasChanged(\n      49\n      /* EditorOption.fastScrollSensitivity */\n    )) {\n      const options2 = this._context.configuration.options;\n      const scrollbar = options2.get(\n        116\n        /* EditorOption.scrollbar */\n      );\n      const mouseWheelScrollSensitivity = options2.get(\n        83\n        /* EditorOption.mouseWheelScrollSensitivity */\n      );\n      const fastScrollSensitivity = options2.get(\n        49\n        /* EditorOption.fastScrollSensitivity */\n      );\n      const scrollPredominantAxis = options2.get(\n        119\n        /* EditorOption.scrollPredominantAxis */\n      );\n      const newOpts = {\n        vertical: scrollbar.vertical,\n        horizontal: scrollbar.horizontal,\n        verticalScrollbarSize: scrollbar.verticalScrollbarSize,\n        horizontalScrollbarSize: scrollbar.horizontalScrollbarSize,\n        scrollByPage: scrollbar.scrollByPage,\n        handleMouseWheel: scrollbar.handleMouseWheel,\n        mouseWheelScrollSensitivity,\n        fastScrollSensitivity,\n        scrollPredominantAxis\n      };\n      this.scrollbar.updateOptions(newOpts);\n    }\n    if (e.hasChanged(\n      164\n      /* EditorOption.layoutInfo */\n    )) {\n      this._setLayout();\n    }\n    return true;\n  }\n  onScrollChanged(e) {\n    return true;\n  }\n  onThemeChanged(e) {\n    this.scrollbar.updateClassName(\"editor-scrollable \" + getThemeTypeSelector(this._context.theme.type));\n    return true;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n  }\n  render(ctx) {\n    this.scrollbar.renderNow();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js\ninit_arrays();\ninit_position();\ninit_range();\ninit_model2();\nvar DecorationToRender = class {\n  constructor(startLineNumber, endLineNumber, className2, tooltip, zIndex) {\n    this.startLineNumber = startLineNumber;\n    this.endLineNumber = endLineNumber;\n    this.className = className2;\n    this.tooltip = tooltip;\n    this._decorationToRenderBrand = void 0;\n    this.zIndex = zIndex ?? 0;\n  }\n};\nvar LineDecorationToRender = class {\n  constructor(className2, zIndex, tooltip) {\n    this.className = className2;\n    this.zIndex = zIndex;\n    this.tooltip = tooltip;\n  }\n};\nvar VisibleLineDecorationsToRender = class {\n  constructor() {\n    this.decorations = [];\n  }\n  add(decoration3) {\n    this.decorations.push(decoration3);\n  }\n  getDecorations() {\n    return this.decorations;\n  }\n};\nvar DedupOverlay = class extends DynamicViewOverlay {\n  /**\n   * Returns an array with an element for each visible line number.\n   */\n  _render(visibleStartLineNumber, visibleEndLineNumber, decorations) {\n    const output = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      output[lineIndex] = new VisibleLineDecorationsToRender();\n    }\n    if (decorations.length === 0) {\n      return output;\n    }\n    decorations.sort((a, b) =\u003e {\n      if (a.className === b.className) {\n        if (a.startLineNumber === b.startLineNumber) {\n          return a.endLineNumber - b.endLineNumber;\n        }\n        return a.startLineNumber - b.startLineNumber;\n      }\n      return a.className \u003c b.className ? -1 : 1;\n    });\n    let prevClassName = null;\n    let prevEndLineIndex = 0;\n    for (let i2 = 0, len = decorations.length; i2 \u003c len; i2++) {\n      const d = decorations[i2];\n      const className2 = d.className;\n      const zIndex = d.zIndex;\n      let startLineIndex = Math.max(d.startLineNumber, visibleStartLineNumber) - visibleStartLineNumber;\n      const endLineIndex = Math.min(d.endLineNumber, visibleEndLineNumber) - visibleStartLineNumber;\n      if (prevClassName === className2) {\n        startLineIndex = Math.max(prevEndLineIndex + 1, startLineIndex);\n        prevEndLineIndex = Math.max(prevEndLineIndex, endLineIndex);\n      } else {\n        prevClassName = className2;\n        prevEndLineIndex = endLineIndex;\n      }\n      for (let i3 = startLineIndex; i3 \u003c= prevEndLineIndex; i3++) {\n        output[i3].add(new LineDecorationToRender(className2, zIndex, d.tooltip));\n      }\n    }\n    return output;\n  }\n};\nvar GlyphMarginWidgets = class extends ViewPart {\n  constructor(context) {\n    super(context);\n    this._widgets = {};\n    this._context = context;\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this.domNode = createFastDomNode(document.createElement(\"div\"));\n    this.domNode.setClassName(\"glyph-margin-widgets\");\n    this.domNode.setPosition(\"absolute\");\n    this.domNode.setTop(0);\n    this._lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._glyphMargin = options2.get(\n      66\n      /* EditorOption.glyphMargin */\n    );\n    this._glyphMarginLeft = layoutInfo.glyphMarginLeft;\n    this._glyphMarginWidth = layoutInfo.glyphMarginWidth;\n    this._glyphMarginDecorationLaneCount = layoutInfo.glyphMarginDecorationLaneCount;\n    this._managedDomNodes = [];\n    this._decorationGlyphsToRender = [];\n  }\n  dispose() {\n    this._managedDomNodes = [];\n    this._decorationGlyphsToRender = [];\n    this._widgets = {};\n    super.dispose();\n  }\n  getWidgets() {\n    return Object.values(this._widgets);\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._glyphMargin = options2.get(\n      66\n      /* EditorOption.glyphMargin */\n    );\n    this._glyphMarginLeft = layoutInfo.glyphMarginLeft;\n    this._glyphMarginWidth = layoutInfo.glyphMarginWidth;\n    this._glyphMarginDecorationLaneCount = layoutInfo.glyphMarginDecorationLaneCount;\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  // --- begin widget management\n  addWidget(widget) {\n    const domNode = createFastDomNode(widget.getDomNode());\n    this._widgets[widget.getId()] = {\n      widget,\n      preference: widget.getPosition(),\n      domNode,\n      renderInfo: null\n    };\n    domNode.setPosition(\"absolute\");\n    domNode.setDisplay(\"none\");\n    domNode.setAttribute(\"widgetId\", widget.getId());\n    this.domNode.appendChild(domNode);\n    this.setShouldRender();\n  }\n  setWidgetPosition(widget, preference) {\n    const myWidget = this._widgets[widget.getId()];\n    if (myWidget.preference.lane === preference.lane \u0026\u0026 myWidget.preference.zIndex === preference.zIndex \u0026\u0026 Range.equalsRange(myWidget.preference.range, preference.range)) {\n      return false;\n    }\n    myWidget.preference = preference;\n    this.setShouldRender();\n    return true;\n  }\n  removeWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._widgets[widgetId]) {\n      const widgetData = this._widgets[widgetId];\n      const domNode = widgetData.domNode.domNode;\n      delete this._widgets[widgetId];\n      domNode.remove();\n      this.setShouldRender();\n    }\n  }\n  // --- end widget management\n  _collectDecorationBasedGlyphRenderRequest(ctx, requests) {\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    const decorations = ctx.getDecorationsInViewport();\n    for (const d of decorations) {\n      const glyphMarginClassName = d.options.glyphMarginClassName;\n      if (!glyphMarginClassName) {\n        continue;\n      }\n      const startLineNumber = Math.max(d.range.startLineNumber, visibleStartLineNumber);\n      const endLineNumber = Math.min(d.range.endLineNumber, visibleEndLineNumber);\n      const lane = d.options.glyphMargin?.position ?? GlyphMarginLane.Center;\n      const zIndex = d.options.zIndex ?? 0;\n      for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n        const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber, 0));\n        const laneIndex = this._context.viewModel.glyphLanes.getLanesAtLine(modelPosition.lineNumber).indexOf(lane);\n        requests.push(new DecorationBasedGlyphRenderRequest(lineNumber, laneIndex, zIndex, glyphMarginClassName));\n      }\n    }\n  }\n  _collectWidgetBasedGlyphRenderRequest(ctx, requests) {\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    for (const widget of Object.values(this._widgets)) {\n      const range2 = widget.preference.range;\n      const { startLineNumber, endLineNumber } = this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(Range.lift(range2));\n      if (!startLineNumber || !endLineNumber || endLineNumber \u003c visibleStartLineNumber || startLineNumber \u003e visibleEndLineNumber) {\n        continue;\n      }\n      const widgetLineNumber = Math.max(startLineNumber, visibleStartLineNumber);\n      const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(widgetLineNumber, 0));\n      const laneIndex = this._context.viewModel.glyphLanes.getLanesAtLine(modelPosition.lineNumber).indexOf(widget.preference.lane);\n      requests.push(new WidgetBasedGlyphRenderRequest(widgetLineNumber, laneIndex, widget.preference.zIndex, widget));\n    }\n  }\n  _collectSortedGlyphRenderRequests(ctx) {\n    const requests = [];\n    this._collectDecorationBasedGlyphRenderRequest(ctx, requests);\n    this._collectWidgetBasedGlyphRenderRequest(ctx, requests);\n    requests.sort((a, b) =\u003e {\n      if (a.lineNumber === b.lineNumber) {\n        if (a.laneIndex === b.laneIndex) {\n          if (a.zIndex === b.zIndex) {\n            if (b.type === a.type) {\n              if (a.type === 0 \u0026\u0026 b.type === 0) {\n                return a.className \u003c b.className ? -1 : 1;\n              }\n              return 0;\n            }\n            return b.type - a.type;\n          }\n          return b.zIndex - a.zIndex;\n        }\n        return a.laneIndex - b.laneIndex;\n      }\n      return a.lineNumber - b.lineNumber;\n    });\n    return requests;\n  }\n  /**\n   * Will store render information in each widget's renderInfo and in `_decorationGlyphsToRender`.\n   */\n  prepareRender(ctx) {\n    if (!this._glyphMargin) {\n      this._decorationGlyphsToRender = [];\n      return;\n    }\n    for (const widget of Object.values(this._widgets)) {\n      widget.renderInfo = null;\n    }\n    const requests = new ArrayQueue(this._collectSortedGlyphRenderRequests(ctx));\n    const decorationGlyphsToRender = [];\n    while (requests.length \u003e 0) {\n      const first2 = requests.peek();\n      if (!first2) {\n        break;\n      }\n      const requestsAtLocation = requests.takeWhile((el) =\u003e el.lineNumber === first2.lineNumber \u0026\u0026 el.laneIndex === first2.laneIndex);\n      if (!requestsAtLocation || requestsAtLocation.length === 0) {\n        break;\n      }\n      const winner = requestsAtLocation[0];\n      if (winner.type === 0) {\n        const classNames2 = [];\n        for (const request of requestsAtLocation) {\n          if (request.zIndex !== winner.zIndex || request.type !== winner.type) {\n            break;\n          }\n          if (classNames2.length === 0 || classNames2[classNames2.length - 1] !== request.className) {\n            classNames2.push(request.className);\n          }\n        }\n        decorationGlyphsToRender.push(winner.accept(classNames2.join(\" \")));\n      } else {\n        winner.widget.renderInfo = {\n          lineNumber: winner.lineNumber,\n          laneIndex: winner.laneIndex\n        };\n      }\n    }\n    this._decorationGlyphsToRender = decorationGlyphsToRender;\n  }\n  render(ctx) {\n    if (!this._glyphMargin) {\n      for (const widget of Object.values(this._widgets)) {\n        widget.domNode.setDisplay(\"none\");\n      }\n      while (this._managedDomNodes.length \u003e 0) {\n        const domNode = this._managedDomNodes.pop();\n        domNode?.domNode.remove();\n      }\n      return;\n    }\n    const width2 = Math.round(this._glyphMarginWidth / this._glyphMarginDecorationLaneCount);\n    for (const widget of Object.values(this._widgets)) {\n      if (!widget.renderInfo) {\n        widget.domNode.setDisplay(\"none\");\n      } else {\n        const top = ctx.viewportData.relativeVerticalOffset[widget.renderInfo.lineNumber - ctx.viewportData.startLineNumber];\n        const left = this._glyphMarginLeft + widget.renderInfo.laneIndex * this._lineHeight;\n        widget.domNode.setDisplay(\"block\");\n        widget.domNode.setTop(top);\n        widget.domNode.setLeft(left);\n        widget.domNode.setWidth(width2);\n        widget.domNode.setHeight(this._lineHeight);\n      }\n    }\n    for (let i2 = 0; i2 \u003c this._decorationGlyphsToRender.length; i2++) {\n      const dec = this._decorationGlyphsToRender[i2];\n      const decLineNumber = dec.lineNumber;\n      const top = ctx.viewportData.relativeVerticalOffset[decLineNumber - ctx.viewportData.startLineNumber];\n      const left = this._glyphMarginLeft + dec.laneIndex * this._lineHeight;\n      let domNode;\n      if (i2 \u003c this._managedDomNodes.length) {\n        domNode = this._managedDomNodes[i2];\n      } else {\n        domNode = createFastDomNode(document.createElement(\"div\"));\n        this._managedDomNodes.push(domNode);\n        this.domNode.appendChild(domNode);\n      }\n      const lineHeight = this._context.viewLayout.getLineHeightForLineNumber(decLineNumber);\n      domNode.setClassName(`cgmr codicon ` + dec.combinedClassName);\n      domNode.setPosition(`absolute`);\n      domNode.setTop(top);\n      domNode.setLeft(left);\n      domNode.setWidth(width2);\n      domNode.setHeight(lineHeight);\n    }\n    while (this._managedDomNodes.length \u003e this._decorationGlyphsToRender.length) {\n      const domNode = this._managedDomNodes.pop();\n      domNode?.domNode.remove();\n    }\n  }\n};\nvar DecorationBasedGlyphRenderRequest = class {\n  constructor(lineNumber, laneIndex, zIndex, className2) {\n    this.lineNumber = lineNumber;\n    this.laneIndex = laneIndex;\n    this.zIndex = zIndex;\n    this.className = className2;\n    this.type = 0;\n  }\n  accept(combinedClassName) {\n    return new DecorationBasedGlyph(this.lineNumber, this.laneIndex, combinedClassName);\n  }\n};\nvar WidgetBasedGlyphRenderRequest = class {\n  constructor(lineNumber, laneIndex, zIndex, widget) {\n    this.lineNumber = lineNumber;\n    this.laneIndex = laneIndex;\n    this.zIndex = zIndex;\n    this.widget = widget;\n    this.type = 1;\n  }\n};\nvar DecorationBasedGlyph = class {\n  constructor(lineNumber, laneIndex, combinedClassName) {\n    this.lineNumber = lineNumber;\n    this.laneIndex = laneIndex;\n    this.combinedClassName = combinedClassName;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.js\ninit_editorColorRegistry();\ninit_themeService();\ninit_position();\ninit_arrays();\ninit_types();\ninit_guidesTextModelPart();\ninit_textModelGuides();\nvar IndentGuidesOverlay = class extends DynamicViewOverlay {\n  constructor(context) {\n    super();\n    this._context = context;\n    this._primaryPosition = null;\n    const options2 = this._context.configuration.options;\n    const wrappingInfo = options2.get(\n      165\n      /* EditorOption.wrappingInfo */\n    );\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._spaceWidth = fontInfo.spaceWidth;\n    this._maxIndentLeft = wrappingInfo.wrappingColumn === -1 ? -1 : wrappingInfo.wrappingColumn * fontInfo.typicalHalfwidthCharacterWidth;\n    this._bracketPairGuideOptions = options2.get(\n      22\n      /* EditorOption.guides */\n    );\n    this._renderResult = null;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    this._renderResult = null;\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const wrappingInfo = options2.get(\n      165\n      /* EditorOption.wrappingInfo */\n    );\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._spaceWidth = fontInfo.spaceWidth;\n    this._maxIndentLeft = wrappingInfo.wrappingColumn === -1 ? -1 : wrappingInfo.wrappingColumn * fontInfo.typicalHalfwidthCharacterWidth;\n    this._bracketPairGuideOptions = options2.get(\n      22\n      /* EditorOption.guides */\n    );\n    return true;\n  }\n  onCursorStateChanged(e) {\n    const selection = e.selections[0];\n    const newPosition = selection.getPosition();\n    if (!this._primaryPosition?.equals(newPosition)) {\n      this._primaryPosition = newPosition;\n      return true;\n    }\n    return false;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  onLanguageConfigurationChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n    if (!this._bracketPairGuideOptions.indentation \u0026\u0026 this._bracketPairGuideOptions.bracketPairs === false) {\n      this._renderResult = null;\n      return;\n    }\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    const scrollWidth = ctx.scrollWidth;\n    const activeCursorPosition = this._primaryPosition;\n    const indents = this.getGuidesByLine(visibleStartLineNumber, Math.min(visibleEndLineNumber + 1, this._context.viewModel.getLineCount()), activeCursorPosition);\n    const output = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      const indent = indents[lineIndex];\n      let result = \"\";\n      const leftOffset = ctx.visibleRangeForPosition(new Position(lineNumber, 1))?.left ?? 0;\n      for (const guide of indent) {\n        const left = guide.column === -1 ? leftOffset + (guide.visibleColumn - 1) * this._spaceWidth : ctx.visibleRangeForPosition(new Position(lineNumber, guide.column)).left;\n        if (left \u003e scrollWidth || this._maxIndentLeft \u003e 0 \u0026\u0026 left \u003e this._maxIndentLeft) {\n          break;\n        }\n        const className2 = guide.horizontalLine ? guide.horizontalLine.top ? \"horizontal-top\" : \"horizontal-bottom\" : \"vertical\";\n        const width2 = guide.horizontalLine ? (ctx.visibleRangeForPosition(new Position(lineNumber, guide.horizontalLine.endColumn))?.left ?? left + this._spaceWidth) - left : this._spaceWidth;\n        result += `\u003cdiv class=\"core-guide ${guide.className} ${className2}\" style=\"left:${left}px;width:${width2}px\"\u003e\u003c/div\u003e`;\n      }\n      output[lineIndex] = result;\n    }\n    this._renderResult = output;\n  }\n  getGuidesByLine(visibleStartLineNumber, visibleEndLineNumber, activeCursorPosition) {\n    const bracketGuides = this._bracketPairGuideOptions.bracketPairs !== false ? this._context.viewModel.getBracketGuidesInRangeByLine(visibleStartLineNumber, visibleEndLineNumber, activeCursorPosition, {\n      highlightActive: this._bracketPairGuideOptions.highlightActiveBracketPair,\n      horizontalGuides: this._bracketPairGuideOptions.bracketPairsHorizontal === true ? HorizontalGuidesState.Enabled : this._bracketPairGuideOptions.bracketPairsHorizontal === \"active\" ? HorizontalGuidesState.EnabledForActive : HorizontalGuidesState.Disabled,\n      includeInactive: this._bracketPairGuideOptions.bracketPairs === true\n    }) : null;\n    const indentGuides = this._bracketPairGuideOptions.indentation ? this._context.viewModel.getLinesIndentGuides(visibleStartLineNumber, visibleEndLineNumber) : null;\n    let activeIndentStartLineNumber = 0;\n    let activeIndentEndLineNumber = 0;\n    let activeIndentLevel = 0;\n    if (this._bracketPairGuideOptions.highlightActiveIndentation !== false \u0026\u0026 activeCursorPosition) {\n      const activeIndentInfo = this._context.viewModel.getActiveIndentGuide(activeCursorPosition.lineNumber, visibleStartLineNumber, visibleEndLineNumber);\n      activeIndentStartLineNumber = activeIndentInfo.startLineNumber;\n      activeIndentEndLineNumber = activeIndentInfo.endLineNumber;\n      activeIndentLevel = activeIndentInfo.indent;\n    }\n    const { indentSize } = this._context.viewModel.model.getOptions();\n    const result = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineGuides = new Array();\n      result.push(lineGuides);\n      const bracketGuidesInLine = bracketGuides ? bracketGuides[lineNumber - visibleStartLineNumber] : [];\n      const bracketGuidesInLineQueue = new ArrayQueue(bracketGuidesInLine);\n      const indentGuidesInLine = indentGuides ? indentGuides[lineNumber - visibleStartLineNumber] : 0;\n      for (let indentLvl = 1; indentLvl \u003c= indentGuidesInLine; indentLvl++) {\n        const indentGuide = (indentLvl - 1) * indentSize + 1;\n        const isActive = (\n          // Disable active indent guide if there are bracket guides.\n          (this._bracketPairGuideOptions.highlightActiveIndentation === \"always\" || bracketGuidesInLine.length === 0) \u0026\u0026 activeIndentStartLineNumber \u003c= lineNumber \u0026\u0026 lineNumber \u003c= activeIndentEndLineNumber \u0026\u0026 indentLvl === activeIndentLevel\n        );\n        lineGuides.push(...bracketGuidesInLineQueue.takeWhile((g) =\u003e g.visibleColumn \u003c indentGuide) || []);\n        const peeked = bracketGuidesInLineQueue.peek();\n        if (!peeked || peeked.visibleColumn !== indentGuide || peeked.horizontalLine) {\n          lineGuides.push(new IndentGuide(indentGuide, -1, `core-guide-indent lvl-${(indentLvl - 1) % 30}` + (isActive ? \" indent-active\" : \"\"), null, -1, -1));\n        }\n      }\n      lineGuides.push(...bracketGuidesInLineQueue.takeWhile((g) =\u003e true) || []);\n    }\n    return result;\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderResult) {\n      return \"\";\n    }\n    const lineIndex = lineNumber - startLineNumber;\n    if (lineIndex \u003c 0 || lineIndex \u003e= this._renderResult.length) {\n      return \"\";\n    }\n    return this._renderResult[lineIndex];\n  }\n};\nfunction transparentToUndefined(color) {\n  if (color \u0026\u0026 color.isTransparent()) {\n    return void 0;\n  }\n  return color;\n}\nregisterThemingParticipant((theme, collector) =\u003e {\n  const colors = [\n    { bracketColor: editorBracketHighlightingForeground1, guideColor: editorBracketPairGuideBackground1, guideColorActive: editorBracketPairGuideActiveBackground1 },\n    { bracketColor: editorBracketHighlightingForeground2, guideColor: editorBracketPairGuideBackground2, guideColorActive: editorBracketPairGuideActiveBackground2 },\n    { bracketColor: editorBracketHighlightingForeground3, guideColor: editorBracketPairGuideBackground3, guideColorActive: editorBracketPairGuideActiveBackground3 },\n    { bracketColor: editorBracketHighlightingForeground4, guideColor: editorBracketPairGuideBackground4, guideColorActive: editorBracketPairGuideActiveBackground4 },\n    { bracketColor: editorBracketHighlightingForeground5, guideColor: editorBracketPairGuideBackground5, guideColorActive: editorBracketPairGuideActiveBackground5 },\n    { bracketColor: editorBracketHighlightingForeground6, guideColor: editorBracketPairGuideBackground6, guideColorActive: editorBracketPairGuideActiveBackground6 }\n  ];\n  const colorProvider = new BracketPairGuidesClassNames();\n  const indentColors = [\n    { indentColor: editorIndentGuide1, indentColorActive: editorActiveIndentGuide1 },\n    { indentColor: editorIndentGuide2, indentColorActive: editorActiveIndentGuide2 },\n    { indentColor: editorIndentGuide3, indentColorActive: editorActiveIndentGuide3 },\n    { indentColor: editorIndentGuide4, indentColorActive: editorActiveIndentGuide4 },\n    { indentColor: editorIndentGuide5, indentColorActive: editorActiveIndentGuide5 },\n    { indentColor: editorIndentGuide6, indentColorActive: editorActiveIndentGuide6 }\n  ];\n  const colorValues = colors.map((c) =\u003e {\n    const bracketColor = theme.getColor(c.bracketColor);\n    const guideColor = theme.getColor(c.guideColor);\n    const guideColorActive = theme.getColor(c.guideColorActive);\n    const effectiveGuideColor = transparentToUndefined(transparentToUndefined(guideColor) ?? bracketColor?.transparent(0.3));\n    const effectiveGuideColorActive = transparentToUndefined(transparentToUndefined(guideColorActive) ?? bracketColor);\n    if (!effectiveGuideColor || !effectiveGuideColorActive) {\n      return void 0;\n    }\n    return {\n      guideColor: effectiveGuideColor,\n      guideColorActive: effectiveGuideColorActive\n    };\n  }).filter(isDefined);\n  const indentColorValues = indentColors.map((c) =\u003e {\n    const indentColor = theme.getColor(c.indentColor);\n    const indentColorActive = theme.getColor(c.indentColorActive);\n    const effectiveIndentColor = transparentToUndefined(indentColor);\n    const effectiveIndentColorActive = transparentToUndefined(indentColorActive);\n    if (!effectiveIndentColor || !effectiveIndentColorActive) {\n      return void 0;\n    }\n    return {\n      indentColor: effectiveIndentColor,\n      indentColorActive: effectiveIndentColorActive\n    };\n  }).filter(isDefined);\n  if (colorValues.length \u003e 0) {\n    for (let level = 0; level \u003c 30; level++) {\n      const colors2 = colorValues[level % colorValues.length];\n      collector.addRule(`.monaco-editor .${colorProvider.getInlineClassNameOfLevel(level).replace(/ /g, \".\")} { --guide-color: ${colors2.guideColor}; --guide-color-active: ${colors2.guideColorActive}; }`);\n    }\n    collector.addRule(`.monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }`);\n    collector.addRule(`.monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }`);\n    collector.addRule(`.monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }`);\n    collector.addRule(`.monaco-editor .vertical.${colorProvider.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`);\n    collector.addRule(`.monaco-editor .horizontal-top.${colorProvider.activeClassName} { border-top: 1px solid var(--guide-color-active); }`);\n    collector.addRule(`.monaco-editor .horizontal-bottom.${colorProvider.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`);\n  }\n  if (indentColorValues.length \u003e 0) {\n    for (let level = 0; level \u003c 30; level++) {\n      const colors2 = indentColorValues[level % indentColorValues.length];\n      collector.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${level} { --indent-color: ${colors2.indentColor}; --indent-color-active: ${colors2.indentColorActive}; }`);\n    }\n    collector.addRule(`.monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }`);\n    collector.addRule(`.monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }`);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js\ninit_platform();\ninit_position();\ninit_range();\ninit_themeService();\ninit_editorColorRegistry();\nvar LineNumbersOverlay = class _LineNumbersOverlay extends DynamicViewOverlay {\n  static {\n    this.CLASS_NAME = \"line-numbers\";\n  }\n  constructor(context) {\n    super();\n    this._context = context;\n    this._readConfig();\n    this._lastCursorModelPosition = new Position(1, 1);\n    this._renderResult = null;\n    this._activeModelLineNumber = 1;\n    this._context.addEventHandler(this);\n  }\n  _readConfig() {\n    const options2 = this._context.configuration.options;\n    this._lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const lineNumbers = options2.get(\n      76\n      /* EditorOption.lineNumbers */\n    );\n    this._renderLineNumbers = lineNumbers.renderType;\n    this._renderCustomLineNumbers = lineNumbers.renderFn;\n    this._renderFinalNewline = options2.get(\n      108\n      /* EditorOption.renderFinalNewline */\n    );\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._lineNumbersLeft = layoutInfo.lineNumbersLeft;\n    this._lineNumbersWidth = layoutInfo.lineNumbersWidth;\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    this._renderResult = null;\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    this._readConfig();\n    return true;\n  }\n  onCursorStateChanged(e) {\n    const primaryViewPosition = e.selections[0].getPosition();\n    this._lastCursorModelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(primaryViewPosition);\n    let shouldRender = false;\n    if (this._activeModelLineNumber !== this._lastCursorModelPosition.lineNumber) {\n      this._activeModelLineNumber = this._lastCursorModelPosition.lineNumber;\n      shouldRender = true;\n    }\n    if (this._renderLineNumbers === 2 || this._renderLineNumbers === 3) {\n      shouldRender = true;\n    }\n    return shouldRender;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return e.affectsLineNumber;\n  }\n  // --- end event handlers\n  _getLineRenderLineNumber(viewLineNumber) {\n    const modelPosition = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(viewLineNumber, 1));\n    if (modelPosition.column !== 1) {\n      return \"\";\n    }\n    const modelLineNumber = modelPosition.lineNumber;\n    if (this._renderCustomLineNumbers) {\n      return this._renderCustomLineNumbers(modelLineNumber);\n    }\n    if (this._renderLineNumbers === 2) {\n      const diff = Math.abs(this._lastCursorModelPosition.lineNumber - modelLineNumber);\n      if (diff === 0) {\n        return '\u003cspan class=\"relative-current-line-number\"\u003e' + modelLineNumber + \"\u003c/span\u003e\";\n      }\n      return String(diff);\n    }\n    if (this._renderLineNumbers === 3) {\n      if (this._lastCursorModelPosition.lineNumber === modelLineNumber) {\n        return String(modelLineNumber);\n      }\n      if (modelLineNumber % 10 === 0) {\n        return String(modelLineNumber);\n      }\n      const finalLineNumber = this._context.viewModel.getLineCount();\n      if (modelLineNumber === finalLineNumber) {\n        return String(modelLineNumber);\n      }\n      return \"\";\n    }\n    return String(modelLineNumber);\n  }\n  prepareRender(ctx) {\n    if (this._renderLineNumbers === 0) {\n      this._renderResult = null;\n      return;\n    }\n    const lineHeightClassName = isLinux ? this._lineHeight % 2 === 0 ? \" lh-even\" : \" lh-odd\" : \"\";\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    const lineNoDecorations = this._context.viewModel.getDecorationsInViewport(ctx.visibleRange).filter((d) =\u003e !!d.options.lineNumberClassName);\n    lineNoDecorations.sort((a, b) =\u003e Range.compareRangesUsingEnds(a.range, b.range));\n    let decorationStartIndex = 0;\n    const lineCount = this._context.viewModel.getLineCount();\n    const output = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      const modelLineNumber = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber, 1)).lineNumber;\n      let renderLineNumber = this._getLineRenderLineNumber(lineNumber);\n      let extraClassNames = \"\";\n      while (decorationStartIndex \u003c lineNoDecorations.length \u0026\u0026 lineNoDecorations[decorationStartIndex].range.endLineNumber \u003c lineNumber) {\n        decorationStartIndex++;\n      }\n      for (let i2 = decorationStartIndex; i2 \u003c lineNoDecorations.length; i2++) {\n        const { range: range2, options: options2 } = lineNoDecorations[i2];\n        if (range2.startLineNumber \u003c= lineNumber) {\n          extraClassNames += \" \" + options2.lineNumberClassName;\n        }\n      }\n      if (!renderLineNumber \u0026\u0026 !extraClassNames) {\n        output[lineIndex] = \"\";\n        continue;\n      }\n      if (lineNumber === lineCount \u0026\u0026 this._context.viewModel.getLineLength(lineNumber) === 0) {\n        if (this._renderFinalNewline === \"off\") {\n          renderLineNumber = \"\";\n        }\n        if (this._renderFinalNewline === \"dimmed\") {\n          extraClassNames += \" dimmed-line-number\";\n        }\n      }\n      if (modelLineNumber === this._activeModelLineNumber) {\n        extraClassNames += \" active-line-number\";\n      }\n      output[lineIndex] = `\u003cdiv class=\"${_LineNumbersOverlay.CLASS_NAME}${lineHeightClassName}${extraClassNames}\" style=\"left:${this._lineNumbersLeft}px;width:${this._lineNumbersWidth}px;\"\u003e${renderLineNumber}\u003c/div\u003e`;\n    }\n    this._renderResult = output;\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderResult) {\n      return \"\";\n    }\n    const lineIndex = lineNumber - startLineNumber;\n    if (lineIndex \u003c 0 || lineIndex \u003e= this._renderResult.length) {\n      return \"\";\n    }\n    return this._renderResult[lineIndex];\n  }\n};\nregisterThemingParticipant((theme, collector) =\u003e {\n  const editorLineNumbersColor = theme.getColor(editorLineNumbers);\n  const editorDimmedLineNumberColor = theme.getColor(editorDimmedLineNumber);\n  if (editorDimmedLineNumberColor) {\n    collector.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${editorDimmedLineNumberColor}; }`);\n  } else if (editorLineNumbersColor) {\n    collector.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${editorLineNumbersColor.transparent(0.4)}; }`);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/mouseCursor/mouseCursor.js\nvar MOUSE_CURSOR_TEXT_CSS_CLASS_NAME = `monaco-mouse-cursor-text`;\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLines/viewLines.js\ninit_async();\ninit_platform();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLines/domReadingContext.js\nvar DomReadingContext = class {\n  get didDomLayout() {\n    return this._didDomLayout;\n  }\n  readClientRect() {\n    if (!this._clientRectRead) {\n      this._clientRectRead = true;\n      const rect = this._domNode.getBoundingClientRect();\n      this.markDidDomLayout();\n      this._clientRectDeltaLeft = rect.left;\n      this._clientRectScale = rect.width / this._domNode.offsetWidth;\n    }\n  }\n  get clientRectDeltaLeft() {\n    if (!this._clientRectRead) {\n      this.readClientRect();\n    }\n    return this._clientRectDeltaLeft;\n  }\n  get clientRectScale() {\n    if (!this._clientRectRead) {\n      this.readClientRect();\n    }\n    return this._clientRectScale;\n  }\n  constructor(_domNode, endNode) {\n    this._domNode = _domNode;\n    this.endNode = endNode;\n    this._didDomLayout = false;\n    this._clientRectDeltaLeft = 0;\n    this._clientRectScale = 1;\n    this._clientRectRead = false;\n  }\n  markDidDomLayout() {\n    this._didDomLayout = true;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLines/viewLines.js\ninit_position();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLines/viewLineOptions.js\nvar ViewLineOptions = class {\n  constructor(config, themeType) {\n    this.themeType = themeType;\n    const options2 = config.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this.renderWhitespace = options2.get(\n      112\n      /* EditorOption.renderWhitespace */\n    );\n    this.experimentalWhitespaceRendering = options2.get(\n      47\n      /* EditorOption.experimentalWhitespaceRendering */\n    );\n    this.renderControlCharacters = options2.get(\n      107\n      /* EditorOption.renderControlCharacters */\n    );\n    this.spaceWidth = fontInfo.spaceWidth;\n    this.middotWidth = fontInfo.middotWidth;\n    this.wsmiddotWidth = fontInfo.wsmiddotWidth;\n    this.useMonospaceOptimizations = fontInfo.isMonospace \u0026\u0026 !options2.get(\n      40\n      /* EditorOption.disableMonospaceOptimizations */\n    );\n    this.canUseHalfwidthRightwardsArrow = fontInfo.canUseHalfwidthRightwardsArrow;\n    this.lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this.stopRenderingLineAfter = options2.get(\n      132\n      /* EditorOption.stopRenderingLineAfter */\n    );\n    this.fontLigatures = options2.get(\n      60\n      /* EditorOption.fontLigatures */\n    );\n    this.verticalScrollbarSize = options2.get(\n      116\n      /* EditorOption.scrollbar */\n    ).verticalScrollbarSize;\n    this.useGpu = options2.get(\n      46\n      /* EditorOption.experimentalGpuAcceleration */\n    ) === \"on\";\n  }\n  equals(other) {\n    return this.themeType === other.themeType \u0026\u0026 this.renderWhitespace === other.renderWhitespace \u0026\u0026 this.experimentalWhitespaceRendering === other.experimentalWhitespaceRendering \u0026\u0026 this.renderControlCharacters === other.renderControlCharacters \u0026\u0026 this.spaceWidth === other.spaceWidth \u0026\u0026 this.middotWidth === other.middotWidth \u0026\u0026 this.wsmiddotWidth === other.wsmiddotWidth \u0026\u0026 this.useMonospaceOptimizations === other.useMonospaceOptimizations \u0026\u0026 this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow \u0026\u0026 this.lineHeight === other.lineHeight \u0026\u0026 this.stopRenderingLineAfter === other.stopRenderingLineAfter \u0026\u0026 this.fontLigatures === other.fontLigatures \u0026\u0026 this.verticalScrollbarSize === other.verticalScrollbarSize \u0026\u0026 this.useGpu === other.useGpu;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLines/viewLines.js\ninit_model2();\nvar LastRenderedData = class {\n  constructor() {\n    this._currentVisibleRange = new Range(1, 1, 1, 1);\n  }\n  getCurrentVisibleRange() {\n    return this._currentVisibleRange;\n  }\n  setCurrentVisibleRange(currentVisibleRange) {\n    this._currentVisibleRange = currentVisibleRange;\n  }\n};\nvar HorizontalRevealRangeRequest = class {\n  constructor(minimalReveal, lineNumber, startColumn, endColumn, startScrollTop, stopScrollTop, scrollType) {\n    this.minimalReveal = minimalReveal;\n    this.lineNumber = lineNumber;\n    this.startColumn = startColumn;\n    this.endColumn = endColumn;\n    this.startScrollTop = startScrollTop;\n    this.stopScrollTop = stopScrollTop;\n    this.scrollType = scrollType;\n    this.type = \"range\";\n    this.minLineNumber = lineNumber;\n    this.maxLineNumber = lineNumber;\n  }\n};\nvar HorizontalRevealSelectionsRequest = class {\n  constructor(minimalReveal, selections, startScrollTop, stopScrollTop, scrollType) {\n    this.minimalReveal = minimalReveal;\n    this.selections = selections;\n    this.startScrollTop = startScrollTop;\n    this.stopScrollTop = stopScrollTop;\n    this.scrollType = scrollType;\n    this.type = \"selections\";\n    let minLineNumber = selections[0].startLineNumber;\n    let maxLineNumber = selections[0].endLineNumber;\n    for (let i2 = 1, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      minLineNumber = Math.min(minLineNumber, selection.startLineNumber);\n      maxLineNumber = Math.max(maxLineNumber, selection.endLineNumber);\n    }\n    this.minLineNumber = minLineNumber;\n    this.maxLineNumber = maxLineNumber;\n  }\n};\nvar ViewLines = class _ViewLines extends ViewPart {\n  static {\n    this.HORIZONTAL_EXTRA_PX = 30;\n  }\n  constructor(context, viewGpuContext, linesContent) {\n    super(context);\n    const conf = this._context.configuration;\n    const options2 = this._context.configuration.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const wrappingInfo = options2.get(\n      165\n      /* EditorOption.wrappingInfo */\n    );\n    this._lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n    this._isViewportWrapping = wrappingInfo.isViewportWrapping;\n    this._revealHorizontalRightPadding = options2.get(\n      113\n      /* EditorOption.revealHorizontalRightPadding */\n    );\n    this._cursorSurroundingLines = options2.get(\n      35\n      /* EditorOption.cursorSurroundingLines */\n    );\n    this._cursorSurroundingLinesStyle = options2.get(\n      36\n      /* EditorOption.cursorSurroundingLinesStyle */\n    );\n    this._canUseLayerHinting = !options2.get(\n      39\n      /* EditorOption.disableLayerHinting */\n    );\n    this._viewLineOptions = new ViewLineOptions(conf, this._context.theme.type);\n    this._linesContent = linesContent;\n    this._textRangeRestingSpot = document.createElement(\"div\");\n    this._visibleLines = new VisibleLinesCollection(this._context, {\n      createLine: () =\u003e new ViewLine(viewGpuContext, this._viewLineOptions)\n    });\n    this.domNode = this._visibleLines.domNode;\n    PartFingerprints.write(\n      this.domNode,\n      8\n      /* PartFingerprint.ViewLines */\n    );\n    this.domNode.setClassName(`view-lines ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);\n    applyFontInfo(this.domNode, fontInfo);\n    this._maxLineWidth = 0;\n    this._asyncUpdateLineWidths = new RunOnceScheduler(() =\u003e {\n      this._updateLineWidthsSlow();\n    }, 200);\n    this._asyncCheckMonospaceFontAssumptions = new RunOnceScheduler(() =\u003e {\n      this._checkMonospaceFontAssumptions();\n    }, 2e3);\n    this._lastRenderedData = new LastRenderedData();\n    this._horizontalRevealRequest = null;\n    this._stickyScrollEnabled = options2.get(\n      130\n      /* EditorOption.stickyScroll */\n    ).enabled;\n    this._maxNumberStickyLines = options2.get(\n      130\n      /* EditorOption.stickyScroll */\n    ).maxLineCount;\n  }\n  dispose() {\n    this._asyncUpdateLineWidths.dispose();\n    this._asyncCheckMonospaceFontAssumptions.dispose();\n    super.dispose();\n  }\n  getDomNode() {\n    return this.domNode;\n  }\n  // ---- begin view event handlers\n  onConfigurationChanged(e) {\n    this._visibleLines.onConfigurationChanged(e);\n    if (e.hasChanged(\n      165\n      /* EditorOption.wrappingInfo */\n    )) {\n      this._maxLineWidth = 0;\n    }\n    const options2 = this._context.configuration.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const wrappingInfo = options2.get(\n      165\n      /* EditorOption.wrappingInfo */\n    );\n    this._lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n    this._isViewportWrapping = wrappingInfo.isViewportWrapping;\n    this._revealHorizontalRightPadding = options2.get(\n      113\n      /* EditorOption.revealHorizontalRightPadding */\n    );\n    this._cursorSurroundingLines = options2.get(\n      35\n      /* EditorOption.cursorSurroundingLines */\n    );\n    this._cursorSurroundingLinesStyle = options2.get(\n      36\n      /* EditorOption.cursorSurroundingLinesStyle */\n    );\n    this._canUseLayerHinting = !options2.get(\n      39\n      /* EditorOption.disableLayerHinting */\n    );\n    this._stickyScrollEnabled = options2.get(\n      130\n      /* EditorOption.stickyScroll */\n    ).enabled;\n    this._maxNumberStickyLines = options2.get(\n      130\n      /* EditorOption.stickyScroll */\n    ).maxLineCount;\n    applyFontInfo(this.domNode, fontInfo);\n    this._onOptionsMaybeChanged();\n    if (e.hasChanged(\n      164\n      /* EditorOption.layoutInfo */\n    )) {\n      this._maxLineWidth = 0;\n    }\n    return true;\n  }\n  _onOptionsMaybeChanged() {\n    const conf = this._context.configuration;\n    const newViewLineOptions = new ViewLineOptions(conf, this._context.theme.type);\n    if (!this._viewLineOptions.equals(newViewLineOptions)) {\n      this._viewLineOptions = newViewLineOptions;\n      const startLineNumber = this._visibleLines.getStartLineNumber();\n      const endLineNumber = this._visibleLines.getEndLineNumber();\n      for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n        const line = this._visibleLines.getVisibleLine(lineNumber);\n        line.onOptionsChanged(this._viewLineOptions);\n      }\n      return true;\n    }\n    return false;\n  }\n  onCursorStateChanged(e) {\n    const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n    const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n    let r = false;\n    for (let lineNumber = rendStartLineNumber; lineNumber \u003c= rendEndLineNumber; lineNumber++) {\n      r = this._visibleLines.getVisibleLine(lineNumber).onSelectionChanged() || r;\n    }\n    return r;\n  }\n  onDecorationsChanged(e) {\n    if (true) {\n      const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n      const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n      for (let lineNumber = rendStartLineNumber; lineNumber \u003c= rendEndLineNumber; lineNumber++) {\n        this._visibleLines.getVisibleLine(lineNumber).onDecorationsChanged();\n      }\n    }\n    return true;\n  }\n  onFlushed(e) {\n    const shouldRender = this._visibleLines.onFlushed(e, this._viewLineOptions.useGpu);\n    this._maxLineWidth = 0;\n    return shouldRender;\n  }\n  onLinesChanged(e) {\n    return this._visibleLines.onLinesChanged(e);\n  }\n  onLinesDeleted(e) {\n    return this._visibleLines.onLinesDeleted(e);\n  }\n  onLinesInserted(e) {\n    return this._visibleLines.onLinesInserted(e);\n  }\n  onRevealRangeRequest(e) {\n    const desiredScrollTop = this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(), e.source, e.minimalReveal, e.range, e.selections, e.verticalType);\n    if (desiredScrollTop === -1) {\n      return false;\n    }\n    let newScrollPosition = this._context.viewLayout.validateScrollPosition({ scrollTop: desiredScrollTop });\n    if (e.revealHorizontal) {\n      if (e.range \u0026\u0026 e.range.startLineNumber !== e.range.endLineNumber) {\n        newScrollPosition = {\n          scrollTop: newScrollPosition.scrollTop,\n          scrollLeft: 0\n        };\n      } else if (e.range) {\n        this._horizontalRevealRequest = new HorizontalRevealRangeRequest(e.minimalReveal, e.range.startLineNumber, e.range.startColumn, e.range.endColumn, this._context.viewLayout.getCurrentScrollTop(), newScrollPosition.scrollTop, e.scrollType);\n      } else if (e.selections \u0026\u0026 e.selections.length \u003e 0) {\n        this._horizontalRevealRequest = new HorizontalRevealSelectionsRequest(e.minimalReveal, e.selections, this._context.viewLayout.getCurrentScrollTop(), newScrollPosition.scrollTop, e.scrollType);\n      }\n    } else {\n      this._horizontalRevealRequest = null;\n    }\n    const scrollTopDelta = Math.abs(this._context.viewLayout.getCurrentScrollTop() - newScrollPosition.scrollTop);\n    const scrollType = scrollTopDelta \u003c= this._lineHeight ? 1 : e.scrollType;\n    this._context.viewModel.viewLayout.setScrollPosition(newScrollPosition, scrollType);\n    return true;\n  }\n  onScrollChanged(e) {\n    if (this._horizontalRevealRequest \u0026\u0026 e.scrollLeftChanged) {\n      this._horizontalRevealRequest = null;\n    }\n    if (this._horizontalRevealRequest \u0026\u0026 e.scrollTopChanged) {\n      const min = Math.min(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest.stopScrollTop);\n      const max = Math.max(this._horizontalRevealRequest.startScrollTop, this._horizontalRevealRequest.stopScrollTop);\n      if (e.scrollTop \u003c min || e.scrollTop \u003e max) {\n        this._horizontalRevealRequest = null;\n      }\n    }\n    this.domNode.setWidth(e.scrollWidth);\n    return this._visibleLines.onScrollChanged(e) || true;\n  }\n  onTokensChanged(e) {\n    return this._visibleLines.onTokensChanged(e);\n  }\n  onZonesChanged(e) {\n    this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth);\n    return this._visibleLines.onZonesChanged(e);\n  }\n  onThemeChanged(e) {\n    return this._onOptionsMaybeChanged();\n  }\n  // ---- end view event handlers\n  // ----------- HELPERS FOR OTHERS\n  getPositionFromDOMInfo(spanNode, offset) {\n    const viewLineDomNode = this._getViewLineDomNode(spanNode);\n    if (viewLineDomNode === null) {\n      return null;\n    }\n    const lineNumber = this._getLineNumberFor(viewLineDomNode);\n    if (lineNumber === -1) {\n      return null;\n    }\n    if (lineNumber \u003c 1 || lineNumber \u003e this._context.viewModel.getLineCount()) {\n      return null;\n    }\n    if (this._context.viewModel.getLineMaxColumn(lineNumber) === 1) {\n      return new Position(lineNumber, 1);\n    }\n    const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n    const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n    if (lineNumber \u003c rendStartLineNumber || lineNumber \u003e rendEndLineNumber) {\n      return null;\n    }\n    let column = this._visibleLines.getVisibleLine(lineNumber).getColumnOfNodeOffset(spanNode, offset);\n    const minColumn = this._context.viewModel.getLineMinColumn(lineNumber);\n    if (column \u003c minColumn) {\n      column = minColumn;\n    }\n    return new Position(lineNumber, column);\n  }\n  _getViewLineDomNode(node) {\n    while (node \u0026\u0026 node.nodeType === 1) {\n      if (node.className === ViewLine.CLASS_NAME) {\n        return node;\n      }\n      node = node.parentElement;\n    }\n    return null;\n  }\n  /**\n   * @returns the line number of this view line dom node.\n   */\n  _getLineNumberFor(domNode) {\n    const startLineNumber = this._visibleLines.getStartLineNumber();\n    const endLineNumber = this._visibleLines.getEndLineNumber();\n    for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n      const line = this._visibleLines.getVisibleLine(lineNumber);\n      if (domNode === line.getDomNode()) {\n        return lineNumber;\n      }\n    }\n    return -1;\n  }\n  getLineWidth(lineNumber) {\n    const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n    const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n    if (lineNumber \u003c rendStartLineNumber || lineNumber \u003e rendEndLineNumber) {\n      return -1;\n    }\n    const context = new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot);\n    const result = this._visibleLines.getVisibleLine(lineNumber).getWidth(context);\n    this._updateLineWidthsSlowIfDomDidLayout(context);\n    return result;\n  }\n  linesVisibleRangesForRange(_range, includeNewLines) {\n    if (this.shouldRender()) {\n      return null;\n    }\n    const originalEndLineNumber = _range.endLineNumber;\n    const range2 = Range.intersectRanges(_range, this._lastRenderedData.getCurrentVisibleRange());\n    if (!range2) {\n      return null;\n    }\n    const visibleRanges = [];\n    let visibleRangesLen = 0;\n    const domReadingContext = new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot);\n    let nextLineModelLineNumber = 0;\n    if (includeNewLines) {\n      nextLineModelLineNumber = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(range2.startLineNumber, 1)).lineNumber;\n    }\n    const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n    const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n    for (let lineNumber = range2.startLineNumber; lineNumber \u003c= range2.endLineNumber; lineNumber++) {\n      if (lineNumber \u003c rendStartLineNumber || lineNumber \u003e rendEndLineNumber) {\n        continue;\n      }\n      const startColumn = lineNumber === range2.startLineNumber ? range2.startColumn : 1;\n      const continuesInNextLine = lineNumber !== originalEndLineNumber;\n      const endColumn = continuesInNextLine ? this._context.viewModel.getLineMaxColumn(lineNumber) : range2.endColumn;\n      const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n      const visibleRangesForLine = visibleLine.getVisibleRangesForRange(lineNumber, startColumn, endColumn, domReadingContext);\n      if (!visibleRangesForLine) {\n        continue;\n      }\n      if (includeNewLines \u0026\u0026 lineNumber \u003c originalEndLineNumber) {\n        const currentLineModelLineNumber = nextLineModelLineNumber;\n        nextLineModelLineNumber = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber + 1, 1)).lineNumber;\n        if (currentLineModelLineNumber !== nextLineModelLineNumber) {\n          const floatHorizontalRange = visibleRangesForLine.ranges[visibleRangesForLine.ranges.length - 1];\n          floatHorizontalRange.width += this._typicalHalfwidthCharacterWidth;\n          if (this._context.viewModel.getTextDirection(currentLineModelLineNumber) === TextDirection.RTL) {\n            floatHorizontalRange.left -= this._typicalHalfwidthCharacterWidth;\n          }\n        }\n      }\n      visibleRanges[visibleRangesLen++] = new LineVisibleRanges(visibleRangesForLine.outsideRenderedLine, lineNumber, HorizontalRange.from(visibleRangesForLine.ranges), continuesInNextLine);\n    }\n    this._updateLineWidthsSlowIfDomDidLayout(domReadingContext);\n    if (visibleRangesLen === 0) {\n      return null;\n    }\n    return visibleRanges;\n  }\n  _visibleRangesForLineRange(lineNumber, startColumn, endColumn) {\n    if (this.shouldRender()) {\n      return null;\n    }\n    if (lineNumber \u003c this._visibleLines.getStartLineNumber() || lineNumber \u003e this._visibleLines.getEndLineNumber()) {\n      return null;\n    }\n    const domReadingContext = new DomReadingContext(this.domNode.domNode, this._textRangeRestingSpot);\n    const result = this._visibleLines.getVisibleLine(lineNumber).getVisibleRangesForRange(lineNumber, startColumn, endColumn, domReadingContext);\n    this._updateLineWidthsSlowIfDomDidLayout(domReadingContext);\n    return result;\n  }\n  _lineIsRenderedRTL(lineNumber) {\n    if (lineNumber \u003c this._visibleLines.getStartLineNumber() || lineNumber \u003e this._visibleLines.getEndLineNumber()) {\n      return false;\n    }\n    const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n    return visibleLine.isRenderedRTL();\n  }\n  visibleRangeForPosition(position) {\n    const visibleRanges = this._visibleRangesForLineRange(position.lineNumber, position.column, position.column);\n    if (!visibleRanges) {\n      return null;\n    }\n    return new HorizontalPosition(visibleRanges.outsideRenderedLine, visibleRanges.ranges[0].left);\n  }\n  /**\n   * Updates the max line width if it is fast to compute.\n   * Returns true if all lines were taken into account.\n   * Returns false if some lines need to be reevaluated (in a slow fashion).\n   */\n  _updateLineWidthsFast() {\n    return this._updateLineWidths(true);\n  }\n  _updateLineWidthsSlow() {\n    this._updateLineWidths(false);\n  }\n  /**\n   * Update the line widths using DOM layout information after someone else\n   * has caused a synchronous layout.\n   */\n  _updateLineWidthsSlowIfDomDidLayout(domReadingContext) {\n    if (!domReadingContext.didDomLayout) {\n      return;\n    }\n    if (this._asyncUpdateLineWidths.isScheduled()) {\n      return;\n    }\n    this._asyncUpdateLineWidths.cancel();\n    this._updateLineWidthsSlow();\n  }\n  _updateLineWidths(fast) {\n    const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n    const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n    let localMaxLineWidth = 1;\n    let allWidthsComputed = true;\n    for (let lineNumber = rendStartLineNumber; lineNumber \u003c= rendEndLineNumber; lineNumber++) {\n      const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n      if (fast \u0026\u0026 !visibleLine.getWidthIsFast()) {\n        allWidthsComputed = false;\n        continue;\n      }\n      localMaxLineWidth = Math.max(localMaxLineWidth, visibleLine.getWidth(null));\n    }\n    if (allWidthsComputed \u0026\u0026 rendStartLineNumber === 1 \u0026\u0026 rendEndLineNumber === this._context.viewModel.getLineCount()) {\n      this._maxLineWidth = 0;\n    }\n    this._ensureMaxLineWidth(localMaxLineWidth);\n    return allWidthsComputed;\n  }\n  _checkMonospaceFontAssumptions() {\n    let longestLineNumber = -1;\n    let longestWidth = -1;\n    const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n    const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n    for (let lineNumber = rendStartLineNumber; lineNumber \u003c= rendEndLineNumber; lineNumber++) {\n      const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n      if (visibleLine.needsMonospaceFontCheck()) {\n        const lineWidth = visibleLine.getWidth(null);\n        if (lineWidth \u003e longestWidth) {\n          longestWidth = lineWidth;\n          longestLineNumber = lineNumber;\n        }\n      }\n    }\n    if (longestLineNumber === -1) {\n      return;\n    }\n    if (!this._visibleLines.getVisibleLine(longestLineNumber).monospaceAssumptionsAreValid()) {\n      for (let lineNumber = rendStartLineNumber; lineNumber \u003c= rendEndLineNumber; lineNumber++) {\n        const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n        visibleLine.onMonospaceAssumptionsInvalidated();\n      }\n    }\n  }\n  prepareRender() {\n    throw new Error(\"Not supported\");\n  }\n  render() {\n    throw new Error(\"Not supported\");\n  }\n  renderText(viewportData) {\n    this._visibleLines.renderLines(viewportData);\n    this._lastRenderedData.setCurrentVisibleRange(viewportData.visibleRange);\n    this.domNode.setWidth(this._context.viewLayout.getScrollWidth());\n    this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(), 1e6));\n    if (this._horizontalRevealRequest) {\n      const horizontalRevealRequest = this._horizontalRevealRequest;\n      if (viewportData.startLineNumber \u003c= horizontalRevealRequest.minLineNumber \u0026\u0026 horizontalRevealRequest.maxLineNumber \u003c= viewportData.endLineNumber) {\n        this._horizontalRevealRequest = null;\n        this.onDidRender();\n        const newScrollLeft = this._computeScrollLeftToReveal(horizontalRevealRequest);\n        if (newScrollLeft) {\n          if (!this._isViewportWrapping \u0026\u0026 !newScrollLeft.hasRTL) {\n            this._ensureMaxLineWidth(newScrollLeft.maxHorizontalOffset);\n          }\n          this._context.viewModel.viewLayout.setScrollPosition({\n            scrollLeft: newScrollLeft.scrollLeft\n          }, horizontalRevealRequest.scrollType);\n        }\n      }\n    }\n    if (!this._updateLineWidthsFast()) {\n      this._asyncUpdateLineWidths.schedule();\n    } else {\n      this._asyncUpdateLineWidths.cancel();\n    }\n    if (isLinux \u0026\u0026 !this._asyncCheckMonospaceFontAssumptions.isScheduled()) {\n      const rendStartLineNumber = this._visibleLines.getStartLineNumber();\n      const rendEndLineNumber = this._visibleLines.getEndLineNumber();\n      for (let lineNumber = rendStartLineNumber; lineNumber \u003c= rendEndLineNumber; lineNumber++) {\n        const visibleLine = this._visibleLines.getVisibleLine(lineNumber);\n        if (visibleLine.needsMonospaceFontCheck()) {\n          this._asyncCheckMonospaceFontAssumptions.schedule();\n          break;\n        }\n      }\n    }\n    this._linesContent.setLayerHinting(this._canUseLayerHinting);\n    this._linesContent.setContain(\"strict\");\n    const adjustedScrollTop = this._context.viewLayout.getCurrentScrollTop() - viewportData.bigNumbersDelta;\n    this._linesContent.setTop(-adjustedScrollTop);\n    this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft());\n  }\n  // --- width\n  _ensureMaxLineWidth(lineWidth) {\n    const iLineWidth = Math.ceil(lineWidth);\n    if (this._maxLineWidth \u003c iLineWidth) {\n      this._maxLineWidth = iLineWidth;\n      this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth);\n    }\n  }\n  _computeScrollTopToRevealRange(viewport, source, minimalReveal, range2, selections, verticalType) {\n    const viewportStartY = viewport.top;\n    const viewportHeight = viewport.height;\n    const viewportEndY = viewportStartY + viewportHeight;\n    let boxIsSingleRange;\n    let boxStartY;\n    let boxEndY;\n    if (selections \u0026\u0026 selections.length \u003e 0) {\n      let minLineNumber = selections[0].startLineNumber;\n      let maxLineNumber = selections[0].endLineNumber;\n      for (let i2 = 1, len = selections.length; i2 \u003c len; i2++) {\n        const selection = selections[i2];\n        minLineNumber = Math.min(minLineNumber, selection.startLineNumber);\n        maxLineNumber = Math.max(maxLineNumber, selection.endLineNumber);\n      }\n      boxIsSingleRange = false;\n      boxStartY = this._context.viewLayout.getVerticalOffsetForLineNumber(minLineNumber);\n      boxEndY = this._context.viewLayout.getVerticalOffsetForLineNumber(maxLineNumber) + this._lineHeight;\n    } else if (range2) {\n      boxIsSingleRange = true;\n      boxStartY = this._context.viewLayout.getVerticalOffsetForLineNumber(range2.startLineNumber);\n      boxEndY = this._context.viewLayout.getVerticalOffsetForLineNumber(range2.endLineNumber) + this._lineHeight;\n    } else {\n      return -1;\n    }\n    const shouldIgnoreScrollOff = (source === \"mouse\" || minimalReveal) \u0026\u0026 this._cursorSurroundingLinesStyle === \"default\";\n    let paddingTop = 0;\n    let paddingBottom = 0;\n    if (!shouldIgnoreScrollOff) {\n      const maxLinesInViewport = viewportHeight / this._lineHeight;\n      const surroundingLines = Math.max(this._cursorSurroundingLines, this._stickyScrollEnabled ? this._maxNumberStickyLines : 0);\n      const context = Math.min(maxLinesInViewport / 2, surroundingLines);\n      paddingTop = context * this._lineHeight;\n      paddingBottom = Math.max(0, context - 1) * this._lineHeight;\n    } else {\n      if (!minimalReveal) {\n        paddingTop = this._lineHeight;\n      }\n    }\n    if (!minimalReveal) {\n      if (verticalType === 0 || verticalType === 4) {\n        paddingBottom += this._lineHeight;\n      }\n    }\n    boxStartY -= paddingTop;\n    boxEndY += paddingBottom;\n    let newScrollTop;\n    if (boxEndY - boxStartY \u003e viewportHeight) {\n      if (!boxIsSingleRange) {\n        return -1;\n      }\n      newScrollTop = boxStartY;\n    } else if (verticalType === 5 || verticalType === 6) {\n      if (verticalType === 6 \u0026\u0026 viewportStartY \u003c= boxStartY \u0026\u0026 boxEndY \u003c= viewportEndY) {\n        newScrollTop = viewportStartY;\n      } else {\n        const desiredGapAbove = Math.max(5 * this._lineHeight, viewportHeight * 0.2);\n        const desiredScrollTop = boxStartY - desiredGapAbove;\n        const minScrollTop = boxEndY - viewportHeight;\n        newScrollTop = Math.max(minScrollTop, desiredScrollTop);\n      }\n    } else if (verticalType === 1 || verticalType === 2) {\n      if (verticalType === 2 \u0026\u0026 viewportStartY \u003c= boxStartY \u0026\u0026 boxEndY \u003c= viewportEndY) {\n        newScrollTop = viewportStartY;\n      } else {\n        const boxMiddleY = (boxStartY + boxEndY) / 2;\n        newScrollTop = Math.max(0, boxMiddleY - viewportHeight / 2);\n      }\n    } else {\n      newScrollTop = this._computeMinimumScrolling(\n        viewportStartY,\n        viewportEndY,\n        boxStartY,\n        boxEndY,\n        verticalType === 3,\n        verticalType === 4\n        /* viewEvents.VerticalRevealType.Bottom */\n      );\n    }\n    return newScrollTop;\n  }\n  _computeScrollLeftToReveal(horizontalRevealRequest) {\n    const viewport = this._context.viewLayout.getCurrentViewport();\n    const layoutInfo = this._context.configuration.options.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const viewportStartX = viewport.left;\n    const viewportEndX = viewportStartX + viewport.width - layoutInfo.verticalScrollbarWidth;\n    let boxStartX = 1073741824;\n    let boxEndX = 0;\n    let hasRTL = false;\n    if (horizontalRevealRequest.type === \"range\") {\n      hasRTL = this._lineIsRenderedRTL(horizontalRevealRequest.lineNumber);\n      const visibleRanges = this._visibleRangesForLineRange(horizontalRevealRequest.lineNumber, horizontalRevealRequest.startColumn, horizontalRevealRequest.endColumn);\n      if (!visibleRanges) {\n        return null;\n      }\n      for (const visibleRange of visibleRanges.ranges) {\n        boxStartX = Math.min(boxStartX, Math.round(visibleRange.left));\n        boxEndX = Math.max(boxEndX, Math.round(visibleRange.left + visibleRange.width));\n      }\n    } else {\n      for (const selection of horizontalRevealRequest.selections) {\n        if (selection.startLineNumber !== selection.endLineNumber) {\n          return null;\n        }\n        const visibleRanges = this._visibleRangesForLineRange(selection.startLineNumber, selection.startColumn, selection.endColumn);\n        hasRTL ||= this._lineIsRenderedRTL(selection.startLineNumber);\n        if (!visibleRanges) {\n          return null;\n        }\n        for (const visibleRange of visibleRanges.ranges) {\n          boxStartX = Math.min(boxStartX, Math.round(visibleRange.left));\n          boxEndX = Math.max(boxEndX, Math.round(visibleRange.left + visibleRange.width));\n        }\n      }\n    }\n    if (!horizontalRevealRequest.minimalReveal) {\n      boxStartX = Math.max(0, boxStartX - _ViewLines.HORIZONTAL_EXTRA_PX);\n      boxEndX += this._revealHorizontalRightPadding;\n    }\n    if (horizontalRevealRequest.type === \"selections\" \u0026\u0026 boxEndX - boxStartX \u003e viewport.width) {\n      return null;\n    }\n    const newScrollLeft = this._computeMinimumScrolling(viewportStartX, viewportEndX, boxStartX, boxEndX);\n    return {\n      scrollLeft: newScrollLeft,\n      maxHorizontalOffset: boxEndX,\n      hasRTL\n    };\n  }\n  _computeMinimumScrolling(viewportStart, viewportEnd, boxStart, boxEnd, revealAtStart, revealAtEnd) {\n    viewportStart = viewportStart | 0;\n    viewportEnd = viewportEnd | 0;\n    boxStart = boxStart | 0;\n    boxEnd = boxEnd | 0;\n    revealAtStart = !!revealAtStart;\n    revealAtEnd = !!revealAtEnd;\n    const viewportLength = viewportEnd - viewportStart;\n    const boxLength = boxEnd - boxStart;\n    if (boxLength \u003c viewportLength) {\n      if (revealAtStart) {\n        return boxStart;\n      }\n      if (revealAtEnd) {\n        return Math.max(0, boxEnd - viewportLength);\n      }\n      if (boxStart \u003c viewportStart) {\n        return boxStart;\n      } else if (boxEnd \u003e viewportEnd) {\n        return Math.max(0, boxEnd - viewportLength);\n      }\n    } else {\n      return boxStart;\n    }\n    return viewportStart;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js\nvar LinesDecorationsOverlay = class extends DedupOverlay {\n  constructor(context) {\n    super();\n    this._context = context;\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._decorationsLeft = layoutInfo.decorationsLeft;\n    this._decorationsWidth = layoutInfo.decorationsWidth;\n    this._renderResult = null;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    this._renderResult = null;\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._decorationsLeft = layoutInfo.decorationsLeft;\n    this._decorationsWidth = layoutInfo.decorationsWidth;\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  _getDecorations(ctx) {\n    const decorations = ctx.getDecorationsInViewport();\n    const r = [];\n    let rLen = 0;\n    for (let i2 = 0, len = decorations.length; i2 \u003c len; i2++) {\n      const d = decorations[i2];\n      const linesDecorationsClassName = d.options.linesDecorationsClassName;\n      const zIndex = d.options.zIndex;\n      if (linesDecorationsClassName) {\n        r[rLen++] = new DecorationToRender(d.range.startLineNumber, d.range.endLineNumber, linesDecorationsClassName, d.options.linesDecorationsTooltip ?? null, zIndex);\n      }\n      const firstLineDecorationClassName = d.options.firstLineDecorationClassName;\n      if (firstLineDecorationClassName) {\n        r[rLen++] = new DecorationToRender(d.range.startLineNumber, d.range.startLineNumber, firstLineDecorationClassName, d.options.linesDecorationsTooltip ?? null, zIndex);\n      }\n    }\n    return r;\n  }\n  prepareRender(ctx) {\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    const toRender = this._render(visibleStartLineNumber, visibleEndLineNumber, this._getDecorations(ctx));\n    const left = this._decorationsLeft.toString();\n    const width2 = this._decorationsWidth.toString();\n    const common = '\" style=\"left:' + left + \"px;width:\" + width2 + 'px;\"\u003e\u003c/div\u003e';\n    const output = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      const decorations = toRender[lineIndex].getDecorations();\n      let lineOutput = \"\";\n      for (const decoration3 of decorations) {\n        let addition = '\u003cdiv class=\"cldr ' + decoration3.className;\n        if (decoration3.tooltip !== null) {\n          addition += '\" title=\"' + decoration3.tooltip;\n        }\n        addition += common;\n        lineOutput += addition;\n      }\n      output[lineIndex] = lineOutput;\n    }\n    this._renderResult = output;\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderResult) {\n      return \"\";\n    }\n    return this._renderResult[lineNumber - startLineNumber];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/margin/margin.js\nvar Margin = class _Margin extends ViewPart {\n  static {\n    this.CLASS_NAME = \"glyph-margin\";\n  }\n  static {\n    this.OUTER_CLASS_NAME = \"margin\";\n  }\n  constructor(context) {\n    super(context);\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._canUseLayerHinting = !options2.get(\n      39\n      /* EditorOption.disableLayerHinting */\n    );\n    this._contentLeft = layoutInfo.contentLeft;\n    this._glyphMarginLeft = layoutInfo.glyphMarginLeft;\n    this._glyphMarginWidth = layoutInfo.glyphMarginWidth;\n    this._domNode = createFastDomNode(document.createElement(\"div\"));\n    this._domNode.setClassName(_Margin.OUTER_CLASS_NAME);\n    this._domNode.setPosition(\"absolute\");\n    this._domNode.setAttribute(\"role\", \"presentation\");\n    this._domNode.setAttribute(\"aria-hidden\", \"true\");\n    this._glyphMarginBackgroundDomNode = createFastDomNode(document.createElement(\"div\"));\n    this._glyphMarginBackgroundDomNode.setClassName(_Margin.CLASS_NAME);\n    this._domNode.appendChild(this._glyphMarginBackgroundDomNode);\n  }\n  dispose() {\n    super.dispose();\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._canUseLayerHinting = !options2.get(\n      39\n      /* EditorOption.disableLayerHinting */\n    );\n    this._contentLeft = layoutInfo.contentLeft;\n    this._glyphMarginLeft = layoutInfo.glyphMarginLeft;\n    this._glyphMarginWidth = layoutInfo.glyphMarginWidth;\n    return true;\n  }\n  onScrollChanged(e) {\n    return super.onScrollChanged(e) || e.scrollTopChanged;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n  }\n  render(ctx) {\n    this._domNode.setLayerHinting(this._canUseLayerHinting);\n    this._domNode.setContain(\"strict\");\n    const adjustedScrollTop = ctx.scrollTop - ctx.bigNumbersDelta;\n    this._domNode.setTop(-adjustedScrollTop);\n    const height = Math.min(ctx.scrollHeight, 1e6);\n    this._domNode.setHeight(height);\n    this._domNode.setWidth(this._contentLeft);\n    this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft);\n    this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth);\n    this._glyphMarginBackgroundDomNode.setHeight(height);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/marginDecorations/marginDecorations.js\nvar MarginViewLineDecorationsOverlay = class extends DedupOverlay {\n  constructor(context) {\n    super();\n    this._context = context;\n    this._renderResult = null;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    this._renderResult = null;\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  _getDecorations(ctx) {\n    const decorations = ctx.getDecorationsInViewport();\n    const r = [];\n    let rLen = 0;\n    for (let i2 = 0, len = decorations.length; i2 \u003c len; i2++) {\n      const d = decorations[i2];\n      const marginClassName = d.options.marginClassName;\n      const zIndex = d.options.zIndex;\n      if (marginClassName) {\n        r[rLen++] = new DecorationToRender(d.range.startLineNumber, d.range.endLineNumber, marginClassName, null, zIndex);\n      }\n    }\n    return r;\n  }\n  prepareRender(ctx) {\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    const toRender = this._render(visibleStartLineNumber, visibleEndLineNumber, this._getDecorations(ctx));\n    const output = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      const decorations = toRender[lineIndex].getDecorations();\n      let lineOutput = \"\";\n      for (const decoration3 of decorations) {\n        lineOutput += '\u003cdiv class=\"cmdr ' + decoration3.className + '\" style=\"\"\u003e\u003c/div\u003e';\n      }\n      output[lineIndex] = lineOutput;\n    }\n    this._renderResult = output;\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderResult) {\n      return \"\";\n    }\n    return this._renderResult[lineNumber - startLineNumber];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/minimap/minimap.js\ninit_dom();\ninit_lifecycle();\ninit_platform();\ninit_strings();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/misc/rgba.js\nvar RGBA8 = class _RGBA8 {\n  static {\n    this.Empty = new _RGBA8(0, 0, 0, 0);\n  }\n  constructor(r, g, b, a) {\n    this._rgba8Brand = void 0;\n    this.r = _RGBA8._clamp(r);\n    this.g = _RGBA8._clamp(g);\n    this.b = _RGBA8._clamp(b);\n    this.a = _RGBA8._clamp(a);\n  }\n  equals(other) {\n    return this.r === other.r \u0026\u0026 this.g === other.g \u0026\u0026 this.b === other.b \u0026\u0026 this.a === other.a;\n  }\n  static _clamp(c) {\n    if (c \u003c 0) {\n      return 0;\n    }\n    if (c \u003e 255) {\n      return 255;\n    }\n    return c | 0;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/minimapTokensColorTracker.js\ninit_event();\ninit_lifecycle();\ninit_languages();\nvar MinimapTokensColorTracker = class _MinimapTokensColorTracker extends Disposable {\n  static {\n    this._INSTANCE = null;\n  }\n  static getInstance() {\n    if (!this._INSTANCE) {\n      this._INSTANCE = markAsSingleton(new _MinimapTokensColorTracker());\n    }\n    return this._INSTANCE;\n  }\n  constructor() {\n    super();\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n    this._updateColorMap();\n    this._register(TokenizationRegistry2.onDidChange((e) =\u003e {\n      if (e.changedColorMap) {\n        this._updateColorMap();\n      }\n    }));\n  }\n  _updateColorMap() {\n    const colorMap = TokenizationRegistry2.getColorMap();\n    if (!colorMap) {\n      this._colors = [RGBA8.Empty];\n      this._backgroundIsLight = true;\n      return;\n    }\n    this._colors = [RGBA8.Empty];\n    for (let colorId = 1; colorId \u003c colorMap.length; colorId++) {\n      const source = colorMap[colorId].rgba;\n      this._colors[colorId] = new RGBA8(source.r, source.g, source.b, Math.round(source.a * 255));\n    }\n    const backgroundLuminosity = colorMap[\n      2\n      /* ColorId.DefaultBackground */\n    ].getRelativeLuminance();\n    this._backgroundIsLight = backgroundLuminosity \u003e= 0.5;\n    this._onDidChange.fire(void 0);\n  }\n  getColor(colorId) {\n    if (colorId \u003c 1 || colorId \u003e= this._colors.length) {\n      colorId = 2;\n    }\n    return this._colors[colorId];\n  }\n  backgroundIsLight() {\n    return this._backgroundIsLight;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/minimap/minimap.js\ninit_colorRegistry();\ninit_selection();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/minimap/minimapCharSheet.js\nvar allCharCodes = (() =\u003e {\n  const v = [];\n  for (let i2 = 32; i2 \u003c= 126; i2++) {\n    v.push(i2);\n  }\n  v.push(\n    65533\n    /* Constants.UNKNOWN_CODE */\n  );\n  return v;\n})();\nvar getCharIndex = (chCode, fontScale) =\u003e {\n  chCode -= 32;\n  if (chCode \u003c 0 || chCode \u003e 96) {\n    if (fontScale \u003c= 2) {\n      return (chCode + 96) % 96;\n    }\n    return 96 - 1;\n  }\n  return chCode;\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/minimap/minimapCharRenderer.js\ninit_uint();\nvar MinimapCharRenderer = class _MinimapCharRenderer {\n  constructor(charData, scale) {\n    this.scale = scale;\n    this._minimapCharRendererBrand = void 0;\n    this.charDataNormal = _MinimapCharRenderer.soften(charData, 12 / 15);\n    this.charDataLight = _MinimapCharRenderer.soften(charData, 50 / 60);\n  }\n  static soften(input, ratio) {\n    const result = new Uint8ClampedArray(input.length);\n    for (let i2 = 0, len = input.length; i2 \u003c len; i2++) {\n      result[i2] = toUint8(input[i2] * ratio);\n    }\n    return result;\n  }\n  renderChar(target, dx, dy, chCode, color, foregroundAlpha, backgroundColor, backgroundAlpha, fontScale, useLighterFont, force1pxHeight) {\n    const charWidth = 1 * this.scale;\n    const charHeight = 2 * this.scale;\n    const renderHeight = force1pxHeight ? 1 : charHeight;\n    if (dx + charWidth \u003e target.width || dy + renderHeight \u003e target.height) {\n      console.warn(\"bad render request outside image data\");\n      return;\n    }\n    const charData = useLighterFont ? this.charDataLight : this.charDataNormal;\n    const charIndex = getCharIndex(chCode, fontScale);\n    const destWidth = target.width * 4;\n    const backgroundR = backgroundColor.r;\n    const backgroundG = backgroundColor.g;\n    const backgroundB = backgroundColor.b;\n    const deltaR = color.r - backgroundR;\n    const deltaG = color.g - backgroundG;\n    const deltaB = color.b - backgroundB;\n    const destAlpha = Math.max(foregroundAlpha, backgroundAlpha);\n    const dest = target.data;\n    let sourceOffset = charIndex * charWidth * charHeight;\n    let row = dy * destWidth + dx * 4;\n    for (let y = 0; y \u003c renderHeight; y++) {\n      let column = row;\n      for (let x = 0; x \u003c charWidth; x++) {\n        const c = charData[sourceOffset++] / 255 * (foregroundAlpha / 255);\n        dest[column++] = backgroundR + deltaR * c;\n        dest[column++] = backgroundG + deltaG * c;\n        dest[column++] = backgroundB + deltaB * c;\n        dest[column++] = destAlpha;\n      }\n      row += destWidth;\n    }\n  }\n  blockRenderChar(target, dx, dy, color, foregroundAlpha, backgroundColor, backgroundAlpha, force1pxHeight) {\n    const charWidth = 1 * this.scale;\n    const charHeight = 2 * this.scale;\n    const renderHeight = force1pxHeight ? 1 : charHeight;\n    if (dx + charWidth \u003e target.width || dy + renderHeight \u003e target.height) {\n      console.warn(\"bad render request outside image data\");\n      return;\n    }\n    const destWidth = target.width * 4;\n    const c = 0.5 * (foregroundAlpha / 255);\n    const backgroundR = backgroundColor.r;\n    const backgroundG = backgroundColor.g;\n    const backgroundB = backgroundColor.b;\n    const deltaR = color.r - backgroundR;\n    const deltaG = color.g - backgroundG;\n    const deltaB = color.b - backgroundB;\n    const colorR = backgroundR + deltaR * c;\n    const colorG = backgroundG + deltaG * c;\n    const colorB = backgroundB + deltaB * c;\n    const destAlpha = Math.max(foregroundAlpha, backgroundAlpha);\n    const dest = target.data;\n    let row = dy * destWidth + dx * 4;\n    for (let y = 0; y \u003c renderHeight; y++) {\n      let column = row;\n      for (let x = 0; x \u003c charWidth; x++) {\n        dest[column++] = colorR;\n        dest[column++] = colorG;\n        dest[column++] = colorB;\n        dest[column++] = destAlpha;\n      }\n      row += destWidth;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/minimap/minimapPreBaked.js\ninit_functional();\nvar charTable = {\n  \"0\": 0,\n  \"1\": 1,\n  \"2\": 2,\n  \"3\": 3,\n  \"4\": 4,\n  \"5\": 5,\n  \"6\": 6,\n  \"7\": 7,\n  \"8\": 8,\n  \"9\": 9,\n  A: 10,\n  B: 11,\n  C: 12,\n  D: 13,\n  E: 14,\n  F: 15\n};\nvar decodeData = (str) =\u003e {\n  const output = new Uint8ClampedArray(str.length / 2);\n  for (let i2 = 0; i2 \u003c str.length; i2 += 2) {\n    output[i2 \u003e\u003e 1] = charTable[str[i2]] \u003c\u003c 4 | charTable[str[i2 + 1]] \u0026 15;\n  }\n  return output;\n};\nvar prebakedMiniMaps = {\n  1: createSingleCallFunction(() =\u003e decodeData(\"0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792\")),\n  2: createSingleCallFunction(() =\u003e decodeData(\"000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126\"))\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/minimap/minimapCharRendererFactory.js\ninit_uint();\nvar MinimapCharRendererFactory = class _MinimapCharRendererFactory {\n  /**\n   * Creates a new character renderer factory with the given scale.\n   */\n  static create(scale, fontFamily) {\n    if (this.lastCreated \u0026\u0026 scale === this.lastCreated.scale \u0026\u0026 fontFamily === this.lastFontFamily) {\n      return this.lastCreated;\n    }\n    let factory;\n    if (prebakedMiniMaps[scale]) {\n      factory = new MinimapCharRenderer(prebakedMiniMaps[scale](), scale);\n    } else {\n      factory = _MinimapCharRendererFactory.createFromSampleData(_MinimapCharRendererFactory.createSampleData(fontFamily).data, scale);\n    }\n    this.lastFontFamily = fontFamily;\n    this.lastCreated = factory;\n    return factory;\n  }\n  /**\n   * Creates the font sample data, writing to a canvas.\n   */\n  static createSampleData(fontFamily) {\n    const canvas = document.createElement(\"canvas\");\n    const ctx = canvas.getContext(\"2d\");\n    canvas.style.height = `${16}px`;\n    canvas.height = 16;\n    canvas.width = 96 * 10;\n    canvas.style.width = 96 * 10 + \"px\";\n    ctx.fillStyle = \"#ffffff\";\n    ctx.font = `bold ${16}px ${fontFamily}`;\n    ctx.textBaseline = \"middle\";\n    let x = 0;\n    for (const code of allCharCodes) {\n      ctx.fillText(String.fromCharCode(code), x, 16 / 2);\n      x += 10;\n    }\n    return ctx.getImageData(\n      0,\n      0,\n      96 * 10,\n      16\n      /* Constants.SAMPLED_CHAR_HEIGHT */\n    );\n  }\n  /**\n   * Creates a character renderer from the canvas sample data.\n   */\n  static createFromSampleData(source, scale) {\n    const expectedLength = 16 * 10 * 4 * 96;\n    if (source.length !== expectedLength) {\n      throw new Error(\"Unexpected source in MinimapCharRenderer\");\n    }\n    const charData = _MinimapCharRendererFactory._downsample(source, scale);\n    return new MinimapCharRenderer(charData, scale);\n  }\n  static _downsampleChar(source, sourceOffset, dest, destOffset, scale) {\n    const width2 = 1 * scale;\n    const height = 2 * scale;\n    let targetIndex = destOffset;\n    let brightest = 0;\n    for (let y = 0; y \u003c height; y++) {\n      const sourceY1 = y / height * 16;\n      const sourceY2 = (y + 1) / height * 16;\n      for (let x = 0; x \u003c width2; x++) {\n        const sourceX1 = x / width2 * 10;\n        const sourceX2 = (x + 1) / width2 * 10;\n        let value = 0;\n        let samples = 0;\n        for (let sy = sourceY1; sy \u003c sourceY2; sy++) {\n          const sourceRow = sourceOffset + Math.floor(sy) * 3840;\n          const yBalance = 1 - (sy - Math.floor(sy));\n          for (let sx = sourceX1; sx \u003c sourceX2; sx++) {\n            const xBalance = 1 - (sx - Math.floor(sx));\n            const sourceIndex = sourceRow + Math.floor(sx) * 4;\n            const weight5 = xBalance * yBalance;\n            samples += weight5;\n            value += source[sourceIndex] * source[sourceIndex + 3] / 255 * weight5;\n          }\n        }\n        const final = value / samples;\n        brightest = Math.max(brightest, final);\n        dest[targetIndex++] = toUint8(final);\n      }\n    }\n    return brightest;\n  }\n  static _downsample(data, scale) {\n    const pixelsPerCharacter = 2 * scale * 1 * scale;\n    const resultLen = pixelsPerCharacter * 96;\n    const result = new Uint8ClampedArray(resultLen);\n    let resultOffset = 0;\n    let sourceOffset = 0;\n    let brightest = 0;\n    for (let charIndex = 0; charIndex \u003c 96; charIndex++) {\n      brightest = Math.max(brightest, this._downsampleChar(data, sourceOffset, result, resultOffset, scale));\n      resultOffset += pixelsPerCharacter;\n      sourceOffset += 10 * 4;\n    }\n    if (brightest \u003e 0) {\n      const adjust = 255 / brightest;\n      for (let i2 = 0; i2 \u003c resultLen; i2++) {\n        result[i2] *= adjust;\n      }\n    }\n    return result;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/minimap/minimap.js\ninit_functional();\ninit_map();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/fonts.js\ninit_window();\ninit_platform();\nvar DEFAULT_FONT_FAMILY = isWindows ? '\"Segoe WPC\", \"Segoe UI\", sans-serif' : isMacintosh ? \"-apple-system, BlinkMacSystemFont, sans-serif\" : 'system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif';\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewModelDecoration.js\nvar ViewModelDecoration = class {\n  constructor(range2, options2) {\n    this._viewModelDecorationBrand = void 0;\n    this.range = range2;\n    this.options = options2;\n  }\n};\nfunction isModelDecorationVisible(model, decoration3) {\n  if (decoration3.options.hideInCommentTokens \u0026\u0026 isModelDecorationInComment(model, decoration3)) {\n    return false;\n  }\n  if (decoration3.options.hideInStringTokens \u0026\u0026 isModelDecorationInString(model, decoration3)) {\n    return false;\n  }\n  return true;\n}\nfunction isModelDecorationInComment(model, decoration3) {\n  return testTokensInRange(\n    model,\n    decoration3.range,\n    (tokenType) =\u003e tokenType === 1\n    /* StandardTokenType.Comment */\n  );\n}\nfunction isModelDecorationInString(model, decoration3) {\n  return testTokensInRange(\n    model,\n    decoration3.range,\n    (tokenType) =\u003e tokenType === 2\n    /* StandardTokenType.String */\n  );\n}\nfunction testTokensInRange(model, range2, callback) {\n  for (let lineNumber = range2.startLineNumber; lineNumber \u003c= range2.endLineNumber; lineNumber++) {\n    const lineTokens = model.tokenization.getLineTokens(lineNumber);\n    const isFirstLine = lineNumber === range2.startLineNumber;\n    const isEndLine = lineNumber === range2.endLineNumber;\n    let tokenIdx = isFirstLine ? lineTokens.findTokenIndexAtOffset(range2.startColumn - 1) : 0;\n    while (tokenIdx \u003c lineTokens.getCount()) {\n      if (isEndLine) {\n        const startOffset = lineTokens.getStartOffset(tokenIdx);\n        if (startOffset \u003e range2.endColumn - 1) {\n          break;\n        }\n      }\n      const callbackResult = callback(lineTokens.getStandardTokenType(tokenIdx));\n      if (!callbackResult) {\n        return false;\n      }\n      tokenIdx++;\n    }\n  }\n  return true;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/minimap/minimap.js\ninit_async();\nvar POINTER_DRAG_RESET_DISTANCE2 = 140;\nvar GUTTER_DECORATION_WIDTH = 2;\nvar MinimapOptions = class _MinimapOptions {\n  constructor(configuration, theme, tokensColorTracker) {\n    const options2 = configuration.options;\n    const pixelRatio = options2.get(\n      162\n      /* EditorOption.pixelRatio */\n    );\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const minimapLayout = layoutInfo.minimap;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const minimapOpts = options2.get(\n      81\n      /* EditorOption.minimap */\n    );\n    this.renderMinimap = minimapLayout.renderMinimap;\n    this.size = minimapOpts.size;\n    this.minimapHeightIsEditorHeight = minimapLayout.minimapHeightIsEditorHeight;\n    this.scrollBeyondLastLine = options2.get(\n      118\n      /* EditorOption.scrollBeyondLastLine */\n    );\n    this.paddingTop = options2.get(\n      95\n      /* EditorOption.padding */\n    ).top;\n    this.paddingBottom = options2.get(\n      95\n      /* EditorOption.padding */\n    ).bottom;\n    this.showSlider = minimapOpts.showSlider;\n    this.autohide = minimapOpts.autohide;\n    this.pixelRatio = pixelRatio;\n    this.typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n    this.lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this.minimapLeft = minimapLayout.minimapLeft;\n    this.minimapWidth = minimapLayout.minimapWidth;\n    this.minimapHeight = layoutInfo.height;\n    this.canvasInnerWidth = minimapLayout.minimapCanvasInnerWidth;\n    this.canvasInnerHeight = minimapLayout.minimapCanvasInnerHeight;\n    this.canvasOuterWidth = minimapLayout.minimapCanvasOuterWidth;\n    this.canvasOuterHeight = minimapLayout.minimapCanvasOuterHeight;\n    this.isSampling = minimapLayout.minimapIsSampling;\n    this.editorHeight = layoutInfo.height;\n    this.fontScale = minimapLayout.minimapScale;\n    this.minimapLineHeight = minimapLayout.minimapLineHeight;\n    this.minimapCharWidth = 1 * this.fontScale;\n    this.sectionHeaderFontFamily = DEFAULT_FONT_FAMILY;\n    this.sectionHeaderFontSize = minimapOpts.sectionHeaderFontSize * pixelRatio;\n    this.sectionHeaderLetterSpacing = minimapOpts.sectionHeaderLetterSpacing;\n    this.sectionHeaderFontColor = _MinimapOptions._getSectionHeaderColor(theme, tokensColorTracker.getColor(\n      1\n      /* ColorId.DefaultForeground */\n    ));\n    this.charRenderer = createSingleCallFunction(() =\u003e MinimapCharRendererFactory.create(this.fontScale, fontInfo.fontFamily));\n    this.defaultBackgroundColor = tokensColorTracker.getColor(\n      2\n      /* ColorId.DefaultBackground */\n    );\n    this.backgroundColor = _MinimapOptions._getMinimapBackground(theme, this.defaultBackgroundColor);\n    this.foregroundAlpha = _MinimapOptions._getMinimapForegroundOpacity(theme);\n  }\n  static _getMinimapBackground(theme, defaultBackgroundColor) {\n    const themeColor = theme.getColor(minimapBackground);\n    if (themeColor) {\n      return new RGBA8(themeColor.rgba.r, themeColor.rgba.g, themeColor.rgba.b, Math.round(255 * themeColor.rgba.a));\n    }\n    return defaultBackgroundColor;\n  }\n  static _getMinimapForegroundOpacity(theme) {\n    const themeColor = theme.getColor(minimapForegroundOpacity);\n    if (themeColor) {\n      return RGBA8._clamp(Math.round(255 * themeColor.rgba.a));\n    }\n    return 255;\n  }\n  static _getSectionHeaderColor(theme, defaultForegroundColor) {\n    const themeColor = theme.getColor(editorForeground);\n    if (themeColor) {\n      return new RGBA8(themeColor.rgba.r, themeColor.rgba.g, themeColor.rgba.b, Math.round(255 * themeColor.rgba.a));\n    }\n    return defaultForegroundColor;\n  }\n  equals(other) {\n    return this.renderMinimap === other.renderMinimap \u0026\u0026 this.size === other.size \u0026\u0026 this.minimapHeightIsEditorHeight === other.minimapHeightIsEditorHeight \u0026\u0026 this.scrollBeyondLastLine === other.scrollBeyondLastLine \u0026\u0026 this.paddingTop === other.paddingTop \u0026\u0026 this.paddingBottom === other.paddingBottom \u0026\u0026 this.showSlider === other.showSlider \u0026\u0026 this.autohide === other.autohide \u0026\u0026 this.pixelRatio === other.pixelRatio \u0026\u0026 this.typicalHalfwidthCharacterWidth === other.typicalHalfwidthCharacterWidth \u0026\u0026 this.lineHeight === other.lineHeight \u0026\u0026 this.minimapLeft === other.minimapLeft \u0026\u0026 this.minimapWidth === other.minimapWidth \u0026\u0026 this.minimapHeight === other.minimapHeight \u0026\u0026 this.canvasInnerWidth === other.canvasInnerWidth \u0026\u0026 this.canvasInnerHeight === other.canvasInnerHeight \u0026\u0026 this.canvasOuterWidth === other.canvasOuterWidth \u0026\u0026 this.canvasOuterHeight === other.canvasOuterHeight \u0026\u0026 this.isSampling === other.isSampling \u0026\u0026 this.editorHeight === other.editorHeight \u0026\u0026 this.fontScale === other.fontScale \u0026\u0026 this.minimapLineHeight === other.minimapLineHeight \u0026\u0026 this.minimapCharWidth === other.minimapCharWidth \u0026\u0026 this.sectionHeaderFontSize === other.sectionHeaderFontSize \u0026\u0026 this.sectionHeaderLetterSpacing === other.sectionHeaderLetterSpacing \u0026\u0026 this.defaultBackgroundColor \u0026\u0026 this.defaultBackgroundColor.equals(other.defaultBackgroundColor) \u0026\u0026 this.backgroundColor \u0026\u0026 this.backgroundColor.equals(other.backgroundColor) \u0026\u0026 this.foregroundAlpha === other.foregroundAlpha;\n  }\n};\nvar MinimapLayout = class _MinimapLayout {\n  constructor(scrollTop, scrollHeight, sliderNeeded, _computedSliderRatio, sliderTop, sliderHeight, topPaddingLineCount, startLineNumber, endLineNumber) {\n    this.scrollTop = scrollTop;\n    this.scrollHeight = scrollHeight;\n    this.sliderNeeded = sliderNeeded;\n    this._computedSliderRatio = _computedSliderRatio;\n    this.sliderTop = sliderTop;\n    this.sliderHeight = sliderHeight;\n    this.topPaddingLineCount = topPaddingLineCount;\n    this.startLineNumber = startLineNumber;\n    this.endLineNumber = endLineNumber;\n  }\n  /**\n   * Compute a desired `scrollPosition` such that the slider moves by `delta`.\n   */\n  getDesiredScrollTopFromDelta(delta) {\n    return Math.round(this.scrollTop + delta / this._computedSliderRatio);\n  }\n  getDesiredScrollTopFromTouchLocation(pageY) {\n    return Math.round((pageY - this.sliderHeight / 2) / this._computedSliderRatio);\n  }\n  /**\n   * Intersect a line range with `this.startLineNumber` and `this.endLineNumber`.\n   */\n  intersectWithViewport(range2) {\n    const startLineNumber = Math.max(this.startLineNumber, range2.startLineNumber);\n    const endLineNumber = Math.min(this.endLineNumber, range2.endLineNumber);\n    if (startLineNumber \u003e endLineNumber) {\n      return null;\n    }\n    return [startLineNumber, endLineNumber];\n  }\n  /**\n   * Get the inner minimap y coordinate for a line number.\n   */\n  getYForLineNumber(lineNumber, minimapLineHeight) {\n    return +(lineNumber - this.startLineNumber + this.topPaddingLineCount) * minimapLineHeight;\n  }\n  static create(options2, viewportStartLineNumber, viewportEndLineNumber, viewportStartLineNumberVerticalOffset, viewportHeight, viewportContainsWhitespaceGaps, lineCount, realLineCount, scrollTop, scrollHeight, previousLayout) {\n    const pixelRatio = options2.pixelRatio;\n    const minimapLineHeight = options2.minimapLineHeight;\n    const minimapLinesFitting = Math.floor(options2.canvasInnerHeight / minimapLineHeight);\n    const lineHeight = options2.lineHeight;\n    if (options2.minimapHeightIsEditorHeight) {\n      let logicalScrollHeight = realLineCount * options2.lineHeight + options2.paddingTop + options2.paddingBottom;\n      if (options2.scrollBeyondLastLine) {\n        logicalScrollHeight += Math.max(0, viewportHeight - options2.lineHeight - options2.paddingBottom);\n      }\n      const sliderHeight2 = Math.max(1, Math.floor(viewportHeight * viewportHeight / logicalScrollHeight));\n      const maxMinimapSliderTop2 = Math.max(0, options2.minimapHeight - sliderHeight2);\n      const computedSliderRatio2 = maxMinimapSliderTop2 / (scrollHeight - viewportHeight);\n      const sliderTop2 = scrollTop * computedSliderRatio2;\n      const sliderNeeded = maxMinimapSliderTop2 \u003e 0;\n      const maxLinesFitting = Math.floor(options2.canvasInnerHeight / options2.minimapLineHeight);\n      const topPaddingLineCount = Math.floor(options2.paddingTop / options2.lineHeight);\n      return new _MinimapLayout(scrollTop, scrollHeight, sliderNeeded, computedSliderRatio2, sliderTop2, sliderHeight2, topPaddingLineCount, 1, Math.min(lineCount, maxLinesFitting));\n    }\n    let sliderHeight;\n    if (viewportContainsWhitespaceGaps \u0026\u0026 viewportEndLineNumber !== lineCount) {\n      const viewportLineCount = viewportEndLineNumber - viewportStartLineNumber + 1;\n      sliderHeight = Math.floor(viewportLineCount * minimapLineHeight / pixelRatio);\n    } else {\n      const expectedViewportLineCount = viewportHeight / lineHeight;\n      sliderHeight = Math.floor(expectedViewportLineCount * minimapLineHeight / pixelRatio);\n    }\n    const extraLinesAtTheTop = Math.floor(options2.paddingTop / lineHeight);\n    let extraLinesAtTheBottom = Math.floor(options2.paddingBottom / lineHeight);\n    if (options2.scrollBeyondLastLine) {\n      const expectedViewportLineCount = viewportHeight / lineHeight;\n      extraLinesAtTheBottom = Math.max(extraLinesAtTheBottom, expectedViewportLineCount - 1);\n    }\n    let maxMinimapSliderTop;\n    if (extraLinesAtTheBottom \u003e 0) {\n      const expectedViewportLineCount = viewportHeight / lineHeight;\n      maxMinimapSliderTop = (extraLinesAtTheTop + lineCount + extraLinesAtTheBottom - expectedViewportLineCount - 1) * minimapLineHeight / pixelRatio;\n    } else {\n      maxMinimapSliderTop = Math.max(0, (extraLinesAtTheTop + lineCount) * minimapLineHeight / pixelRatio - sliderHeight);\n    }\n    maxMinimapSliderTop = Math.min(options2.minimapHeight - sliderHeight, maxMinimapSliderTop);\n    const computedSliderRatio = maxMinimapSliderTop / (scrollHeight - viewportHeight);\n    const sliderTop = scrollTop * computedSliderRatio;\n    if (minimapLinesFitting \u003e= extraLinesAtTheTop + lineCount + extraLinesAtTheBottom) {\n      const sliderNeeded = maxMinimapSliderTop \u003e 0;\n      return new _MinimapLayout(scrollTop, scrollHeight, sliderNeeded, computedSliderRatio, sliderTop, sliderHeight, extraLinesAtTheTop, 1, lineCount);\n    } else {\n      let consideringStartLineNumber;\n      if (viewportStartLineNumber \u003e 1) {\n        consideringStartLineNumber = viewportStartLineNumber + extraLinesAtTheTop;\n      } else {\n        consideringStartLineNumber = Math.max(1, scrollTop / lineHeight);\n      }\n      let topPaddingLineCount;\n      let startLineNumber = Math.max(1, Math.floor(consideringStartLineNumber - sliderTop * pixelRatio / minimapLineHeight));\n      if (startLineNumber \u003c extraLinesAtTheTop) {\n        topPaddingLineCount = extraLinesAtTheTop - startLineNumber + 1;\n        startLineNumber = 1;\n      } else {\n        topPaddingLineCount = 0;\n        startLineNumber = Math.max(1, startLineNumber - extraLinesAtTheTop);\n      }\n      if (previousLayout \u0026\u0026 previousLayout.scrollHeight === scrollHeight) {\n        if (previousLayout.scrollTop \u003e scrollTop) {\n          startLineNumber = Math.min(startLineNumber, previousLayout.startLineNumber);\n          topPaddingLineCount = Math.max(topPaddingLineCount, previousLayout.topPaddingLineCount);\n        }\n        if (previousLayout.scrollTop \u003c scrollTop) {\n          startLineNumber = Math.max(startLineNumber, previousLayout.startLineNumber);\n          topPaddingLineCount = Math.min(topPaddingLineCount, previousLayout.topPaddingLineCount);\n        }\n      }\n      const endLineNumber = Math.min(lineCount, startLineNumber - topPaddingLineCount + minimapLinesFitting - 1);\n      const partialLine = (scrollTop - viewportStartLineNumberVerticalOffset) / lineHeight;\n      let sliderTopAligned;\n      if (scrollTop \u003e= options2.paddingTop) {\n        sliderTopAligned = (viewportStartLineNumber - startLineNumber + topPaddingLineCount + partialLine) * minimapLineHeight / pixelRatio;\n      } else {\n        sliderTopAligned = scrollTop / options2.paddingTop * (topPaddingLineCount + partialLine) * minimapLineHeight / pixelRatio;\n      }\n      return new _MinimapLayout(scrollTop, scrollHeight, true, computedSliderRatio, sliderTopAligned, sliderHeight, topPaddingLineCount, startLineNumber, endLineNumber);\n    }\n  }\n};\nvar MinimapLine = class _MinimapLine {\n  static {\n    this.INVALID = new _MinimapLine(-1);\n  }\n  constructor(dy) {\n    this.dy = dy;\n  }\n  onContentChanged() {\n    this.dy = -1;\n  }\n  onTokensChanged() {\n    this.dy = -1;\n  }\n};\nvar RenderData = class {\n  constructor(renderedLayout, imageData, lines) {\n    this.renderedLayout = renderedLayout;\n    this._imageData = imageData;\n    this._renderedLines = new RenderedLinesCollection({\n      createLine: () =\u003e MinimapLine.INVALID\n    });\n    this._renderedLines._set(renderedLayout.startLineNumber, lines);\n  }\n  /**\n   * Check if the current RenderData matches accurately the new desired layout and no painting is needed.\n   */\n  linesEquals(layout2) {\n    if (!this.scrollEquals(layout2)) {\n      return false;\n    }\n    const tmp = this._renderedLines._get();\n    const lines = tmp.lines;\n    for (let i2 = 0, len = lines.length; i2 \u003c len; i2++) {\n      if (lines[i2].dy === -1) {\n        return false;\n      }\n    }\n    return true;\n  }\n  /**\n   * Check if the current RenderData matches the new layout's scroll position\n   */\n  scrollEquals(layout2) {\n    return this.renderedLayout.startLineNumber === layout2.startLineNumber \u0026\u0026 this.renderedLayout.endLineNumber === layout2.endLineNumber;\n  }\n  _get() {\n    const tmp = this._renderedLines._get();\n    return {\n      imageData: this._imageData,\n      rendLineNumberStart: tmp.rendLineNumberStart,\n      lines: tmp.lines\n    };\n  }\n  onLinesChanged(changeFromLineNumber, changeCount) {\n    return this._renderedLines.onLinesChanged(changeFromLineNumber, changeCount);\n  }\n  onLinesDeleted(deleteFromLineNumber, deleteToLineNumber) {\n    this._renderedLines.onLinesDeleted(deleteFromLineNumber, deleteToLineNumber);\n  }\n  onLinesInserted(insertFromLineNumber, insertToLineNumber) {\n    this._renderedLines.onLinesInserted(insertFromLineNumber, insertToLineNumber);\n  }\n  onTokensChanged(ranges) {\n    return this._renderedLines.onTokensChanged(ranges);\n  }\n};\nvar MinimapBuffers = class _MinimapBuffers {\n  constructor(ctx, WIDTH, HEIGHT, background) {\n    this._backgroundFillData = _MinimapBuffers._createBackgroundFillData(WIDTH, HEIGHT, background);\n    this._buffers = [\n      ctx.createImageData(WIDTH, HEIGHT),\n      ctx.createImageData(WIDTH, HEIGHT)\n    ];\n    this._lastUsedBuffer = 0;\n  }\n  getBuffer() {\n    this._lastUsedBuffer = 1 - this._lastUsedBuffer;\n    const result = this._buffers[this._lastUsedBuffer];\n    result.data.set(this._backgroundFillData);\n    return result;\n  }\n  static _createBackgroundFillData(WIDTH, HEIGHT, background) {\n    const backgroundR = background.r;\n    const backgroundG = background.g;\n    const backgroundB = background.b;\n    const backgroundA = background.a;\n    const result = new Uint8ClampedArray(WIDTH * HEIGHT * 4);\n    let offset = 0;\n    for (let i2 = 0; i2 \u003c HEIGHT; i2++) {\n      for (let j = 0; j \u003c WIDTH; j++) {\n        result[offset] = backgroundR;\n        result[offset + 1] = backgroundG;\n        result[offset + 2] = backgroundB;\n        result[offset + 3] = backgroundA;\n        offset += 4;\n      }\n    }\n    return result;\n  }\n};\nvar MinimapSamplingState = class _MinimapSamplingState {\n  static compute(options2, viewLineCount, oldSamplingState) {\n    if (options2.renderMinimap === 0 || !options2.isSampling) {\n      return [null, []];\n    }\n    const { minimapLineCount } = EditorLayoutInfoComputer.computeContainedMinimapLineCount({\n      viewLineCount,\n      scrollBeyondLastLine: options2.scrollBeyondLastLine,\n      paddingTop: options2.paddingTop,\n      paddingBottom: options2.paddingBottom,\n      height: options2.editorHeight,\n      lineHeight: options2.lineHeight,\n      pixelRatio: options2.pixelRatio\n    });\n    const ratio = viewLineCount / minimapLineCount;\n    const halfRatio = ratio / 2;\n    if (!oldSamplingState || oldSamplingState.minimapLines.length === 0) {\n      const result2 = [];\n      result2[0] = 1;\n      if (minimapLineCount \u003e 1) {\n        for (let i2 = 0, lastIndex = minimapLineCount - 1; i2 \u003c lastIndex; i2++) {\n          result2[i2] = Math.round(i2 * ratio + halfRatio);\n        }\n        result2[minimapLineCount - 1] = viewLineCount;\n      }\n      return [new _MinimapSamplingState(ratio, result2), []];\n    }\n    const oldMinimapLines = oldSamplingState.minimapLines;\n    const oldLength = oldMinimapLines.length;\n    const result = [];\n    let oldIndex = 0;\n    let oldDeltaLineCount = 0;\n    let minViewLineNumber = 1;\n    const MAX_EVENT_COUNT = 10;\n    let events = [];\n    let lastEvent = null;\n    for (let i2 = 0; i2 \u003c minimapLineCount; i2++) {\n      const fromViewLineNumber = Math.max(minViewLineNumber, Math.round(i2 * ratio));\n      const toViewLineNumber = Math.max(fromViewLineNumber, Math.round((i2 + 1) * ratio));\n      while (oldIndex \u003c oldLength \u0026\u0026 oldMinimapLines[oldIndex] \u003c fromViewLineNumber) {\n        if (events.length \u003c MAX_EVENT_COUNT) {\n          const oldMinimapLineNumber = oldIndex + 1 + oldDeltaLineCount;\n          if (lastEvent \u0026\u0026 lastEvent.type === \"deleted\" \u0026\u0026 lastEvent._oldIndex === oldIndex - 1) {\n            lastEvent.deleteToLineNumber++;\n          } else {\n            lastEvent = { type: \"deleted\", _oldIndex: oldIndex, deleteFromLineNumber: oldMinimapLineNumber, deleteToLineNumber: oldMinimapLineNumber };\n            events.push(lastEvent);\n          }\n          oldDeltaLineCount--;\n        }\n        oldIndex++;\n      }\n      let selectedViewLineNumber;\n      if (oldIndex \u003c oldLength \u0026\u0026 oldMinimapLines[oldIndex] \u003c= toViewLineNumber) {\n        selectedViewLineNumber = oldMinimapLines[oldIndex];\n        oldIndex++;\n      } else {\n        if (i2 === 0) {\n          selectedViewLineNumber = 1;\n        } else if (i2 + 1 === minimapLineCount) {\n          selectedViewLineNumber = viewLineCount;\n        } else {\n          selectedViewLineNumber = Math.round(i2 * ratio + halfRatio);\n        }\n        if (events.length \u003c MAX_EVENT_COUNT) {\n          const oldMinimapLineNumber = oldIndex + 1 + oldDeltaLineCount;\n          if (lastEvent \u0026\u0026 lastEvent.type === \"inserted\" \u0026\u0026 lastEvent._i === i2 - 1) {\n            lastEvent.insertToLineNumber++;\n          } else {\n            lastEvent = { type: \"inserted\", _i: i2, insertFromLineNumber: oldMinimapLineNumber, insertToLineNumber: oldMinimapLineNumber };\n            events.push(lastEvent);\n          }\n          oldDeltaLineCount++;\n        }\n      }\n      result[i2] = selectedViewLineNumber;\n      minViewLineNumber = selectedViewLineNumber;\n    }\n    if (events.length \u003c MAX_EVENT_COUNT) {\n      while (oldIndex \u003c oldLength) {\n        const oldMinimapLineNumber = oldIndex + 1 + oldDeltaLineCount;\n        if (lastEvent \u0026\u0026 lastEvent.type === \"deleted\" \u0026\u0026 lastEvent._oldIndex === oldIndex - 1) {\n          lastEvent.deleteToLineNumber++;\n        } else {\n          lastEvent = { type: \"deleted\", _oldIndex: oldIndex, deleteFromLineNumber: oldMinimapLineNumber, deleteToLineNumber: oldMinimapLineNumber };\n          events.push(lastEvent);\n        }\n        oldDeltaLineCount--;\n        oldIndex++;\n      }\n    } else {\n      events = [{ type: \"flush\" }];\n    }\n    return [new _MinimapSamplingState(ratio, result), events];\n  }\n  constructor(samplingRatio, minimapLines) {\n    this.samplingRatio = samplingRatio;\n    this.minimapLines = minimapLines;\n  }\n  modelLineToMinimapLine(lineNumber) {\n    return Math.min(this.minimapLines.length, Math.max(1, Math.round(lineNumber / this.samplingRatio)));\n  }\n  /**\n   * Will return null if the model line ranges are not intersecting with a sampled model line.\n   */\n  modelLineRangeToMinimapLineRange(fromLineNumber, toLineNumber) {\n    let fromLineIndex = this.modelLineToMinimapLine(fromLineNumber) - 1;\n    while (fromLineIndex \u003e 0 \u0026\u0026 this.minimapLines[fromLineIndex - 1] \u003e= fromLineNumber) {\n      fromLineIndex--;\n    }\n    let toLineIndex = this.modelLineToMinimapLine(toLineNumber) - 1;\n    while (toLineIndex + 1 \u003c this.minimapLines.length \u0026\u0026 this.minimapLines[toLineIndex + 1] \u003c= toLineNumber) {\n      toLineIndex++;\n    }\n    if (fromLineIndex === toLineIndex) {\n      const sampledLineNumber = this.minimapLines[fromLineIndex];\n      if (sampledLineNumber \u003c fromLineNumber || sampledLineNumber \u003e toLineNumber) {\n        return null;\n      }\n    }\n    return [fromLineIndex + 1, toLineIndex + 1];\n  }\n  /**\n   * Will always return a range, even if it is not intersecting with a sampled model line.\n   */\n  decorationLineRangeToMinimapLineRange(startLineNumber, endLineNumber) {\n    let minimapLineStart = this.modelLineToMinimapLine(startLineNumber);\n    let minimapLineEnd = this.modelLineToMinimapLine(endLineNumber);\n    if (startLineNumber !== endLineNumber \u0026\u0026 minimapLineEnd === minimapLineStart) {\n      if (minimapLineEnd === this.minimapLines.length) {\n        if (minimapLineStart \u003e 1) {\n          minimapLineStart--;\n        }\n      } else {\n        minimapLineEnd++;\n      }\n    }\n    return [minimapLineStart, minimapLineEnd];\n  }\n  onLinesDeleted(e) {\n    const deletedLineCount = e.toLineNumber - e.fromLineNumber + 1;\n    let changeStartIndex = this.minimapLines.length;\n    let changeEndIndex = 0;\n    for (let i2 = this.minimapLines.length - 1; i2 \u003e= 0; i2--) {\n      if (this.minimapLines[i2] \u003c e.fromLineNumber) {\n        break;\n      }\n      if (this.minimapLines[i2] \u003c= e.toLineNumber) {\n        this.minimapLines[i2] = Math.max(1, e.fromLineNumber - 1);\n        changeStartIndex = Math.min(changeStartIndex, i2);\n        changeEndIndex = Math.max(changeEndIndex, i2);\n      } else {\n        this.minimapLines[i2] -= deletedLineCount;\n      }\n    }\n    return [changeStartIndex, changeEndIndex];\n  }\n  onLinesInserted(e) {\n    const insertedLineCount = e.toLineNumber - e.fromLineNumber + 1;\n    for (let i2 = this.minimapLines.length - 1; i2 \u003e= 0; i2--) {\n      if (this.minimapLines[i2] \u003c e.fromLineNumber) {\n        break;\n      }\n      this.minimapLines[i2] += insertedLineCount;\n    }\n  }\n};\nvar Minimap = class extends ViewPart {\n  constructor(context) {\n    super(context);\n    this._sectionHeaderCache = new LRUCache(10, 1.5);\n    this.tokensColorTracker = MinimapTokensColorTracker.getInstance();\n    this._selections = [];\n    this._minimapSelections = null;\n    this.options = new MinimapOptions(this._context.configuration, this._context.theme, this.tokensColorTracker);\n    const [samplingState] = MinimapSamplingState.compute(this.options, this._context.viewModel.getLineCount(), null);\n    this._samplingState = samplingState;\n    this._shouldCheckSampling = false;\n    this._actual = new InnerMinimap(context.theme, this);\n  }\n  dispose() {\n    this._actual.dispose();\n    super.dispose();\n  }\n  getDomNode() {\n    return this._actual.getDomNode();\n  }\n  _onOptionsMaybeChanged() {\n    const opts = new MinimapOptions(this._context.configuration, this._context.theme, this.tokensColorTracker);\n    if (this.options.equals(opts)) {\n      return false;\n    }\n    this.options = opts;\n    this._recreateLineSampling();\n    this._actual.onDidChangeOptions();\n    return true;\n  }\n  // ---- begin view event handlers\n  onConfigurationChanged(e) {\n    return this._onOptionsMaybeChanged();\n  }\n  onCursorStateChanged(e) {\n    this._selections = e.selections;\n    this._minimapSelections = null;\n    return this._actual.onSelectionChanged();\n  }\n  onDecorationsChanged(e) {\n    if (e.affectsMinimap) {\n      return this._actual.onDecorationsChanged();\n    }\n    return false;\n  }\n  onFlushed(e) {\n    if (this._samplingState) {\n      this._shouldCheckSampling = true;\n    }\n    return this._actual.onFlushed();\n  }\n  onLinesChanged(e) {\n    if (this._samplingState) {\n      const minimapLineRange = this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber, e.fromLineNumber + e.count - 1);\n      if (minimapLineRange) {\n        return this._actual.onLinesChanged(minimapLineRange[0], minimapLineRange[1] - minimapLineRange[0] + 1);\n      } else {\n        return false;\n      }\n    } else {\n      return this._actual.onLinesChanged(e.fromLineNumber, e.count);\n    }\n  }\n  onLinesDeleted(e) {\n    if (this._samplingState) {\n      const [changeStartIndex, changeEndIndex] = this._samplingState.onLinesDeleted(e);\n      if (changeStartIndex \u003c= changeEndIndex) {\n        this._actual.onLinesChanged(changeStartIndex + 1, changeEndIndex - changeStartIndex + 1);\n      }\n      this._shouldCheckSampling = true;\n      return true;\n    } else {\n      return this._actual.onLinesDeleted(e.fromLineNumber, e.toLineNumber);\n    }\n  }\n  onLinesInserted(e) {\n    if (this._samplingState) {\n      this._samplingState.onLinesInserted(e);\n      this._shouldCheckSampling = true;\n      return true;\n    } else {\n      return this._actual.onLinesInserted(e.fromLineNumber, e.toLineNumber);\n    }\n  }\n  onScrollChanged(e) {\n    return this._actual.onScrollChanged(e);\n  }\n  onThemeChanged(e) {\n    this._actual.onThemeChanged();\n    this._onOptionsMaybeChanged();\n    return true;\n  }\n  onTokensChanged(e) {\n    if (this._samplingState) {\n      const ranges = [];\n      for (const range2 of e.ranges) {\n        const minimapLineRange = this._samplingState.modelLineRangeToMinimapLineRange(range2.fromLineNumber, range2.toLineNumber);\n        if (minimapLineRange) {\n          ranges.push({ fromLineNumber: minimapLineRange[0], toLineNumber: minimapLineRange[1] });\n        }\n      }\n      if (ranges.length) {\n        return this._actual.onTokensChanged(ranges);\n      } else {\n        return false;\n      }\n    } else {\n      return this._actual.onTokensChanged(e.ranges);\n    }\n  }\n  onTokensColorsChanged(e) {\n    this._onOptionsMaybeChanged();\n    return this._actual.onTokensColorsChanged();\n  }\n  onZonesChanged(e) {\n    return this._actual.onZonesChanged();\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n    if (this._shouldCheckSampling) {\n      this._shouldCheckSampling = false;\n      this._recreateLineSampling();\n    }\n  }\n  render(ctx) {\n    let viewportStartLineNumber = ctx.visibleRange.startLineNumber;\n    let viewportEndLineNumber = ctx.visibleRange.endLineNumber;\n    if (this._samplingState) {\n      viewportStartLineNumber = this._samplingState.modelLineToMinimapLine(viewportStartLineNumber);\n      viewportEndLineNumber = this._samplingState.modelLineToMinimapLine(viewportEndLineNumber);\n    }\n    const minimapCtx = {\n      viewportContainsWhitespaceGaps: ctx.viewportData.whitespaceViewportData.length \u003e 0,\n      scrollWidth: ctx.scrollWidth,\n      scrollHeight: ctx.scrollHeight,\n      viewportStartLineNumber,\n      viewportEndLineNumber,\n      viewportStartLineNumberVerticalOffset: ctx.getVerticalOffsetForLineNumber(viewportStartLineNumber),\n      scrollTop: ctx.scrollTop,\n      scrollLeft: ctx.scrollLeft,\n      viewportWidth: ctx.viewportWidth,\n      viewportHeight: ctx.viewportHeight\n    };\n    this._actual.render(minimapCtx);\n  }\n  //#region IMinimapModel\n  _recreateLineSampling() {\n    this._minimapSelections = null;\n    const wasSampling = Boolean(this._samplingState);\n    const [samplingState, events] = MinimapSamplingState.compute(this.options, this._context.viewModel.getLineCount(), this._samplingState);\n    this._samplingState = samplingState;\n    if (wasSampling \u0026\u0026 this._samplingState) {\n      for (const event of events) {\n        switch (event.type) {\n          case \"deleted\":\n            this._actual.onLinesDeleted(event.deleteFromLineNumber, event.deleteToLineNumber);\n            break;\n          case \"inserted\":\n            this._actual.onLinesInserted(event.insertFromLineNumber, event.insertToLineNumber);\n            break;\n          case \"flush\":\n            this._actual.onFlushed();\n            break;\n        }\n      }\n    }\n  }\n  getLineCount() {\n    if (this._samplingState) {\n      return this._samplingState.minimapLines.length;\n    }\n    return this._context.viewModel.getLineCount();\n  }\n  getRealLineCount() {\n    return this._context.viewModel.getLineCount();\n  }\n  getLineContent(lineNumber) {\n    if (this._samplingState) {\n      return this._context.viewModel.getLineContent(this._samplingState.minimapLines[lineNumber - 1]);\n    }\n    return this._context.viewModel.getLineContent(lineNumber);\n  }\n  getLineMaxColumn(lineNumber) {\n    if (this._samplingState) {\n      return this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[lineNumber - 1]);\n    }\n    return this._context.viewModel.getLineMaxColumn(lineNumber);\n  }\n  getMinimapLinesRenderingData(startLineNumber, endLineNumber, needed) {\n    if (this._samplingState) {\n      const result = [];\n      for (let lineIndex = 0, lineCount = endLineNumber - startLineNumber + 1; lineIndex \u003c lineCount; lineIndex++) {\n        if (needed[lineIndex]) {\n          result[lineIndex] = this._context.viewModel.getViewLineData(this._samplingState.minimapLines[startLineNumber + lineIndex - 1]);\n        } else {\n          result[lineIndex] = null;\n        }\n      }\n      return result;\n    }\n    return this._context.viewModel.getMinimapLinesRenderingData(startLineNumber, endLineNumber, needed).data;\n  }\n  getSelections() {\n    if (this._minimapSelections === null) {\n      if (this._samplingState) {\n        this._minimapSelections = [];\n        for (const selection of this._selections) {\n          const [minimapLineStart, minimapLineEnd] = this._samplingState.decorationLineRangeToMinimapLineRange(selection.startLineNumber, selection.endLineNumber);\n          this._minimapSelections.push(new Selection(minimapLineStart, selection.startColumn, minimapLineEnd, selection.endColumn));\n        }\n      } else {\n        this._minimapSelections = this._selections;\n      }\n    }\n    return this._minimapSelections;\n  }\n  getMinimapDecorationsInViewport(startLineNumber, endLineNumber) {\n    return this._getMinimapDecorationsInViewport(startLineNumber, endLineNumber).filter((decoration3) =\u003e !decoration3.options.minimap?.sectionHeaderStyle);\n  }\n  getSectionHeaderDecorationsInViewport(startLineNumber, endLineNumber) {\n    const headerHeightInMinimapLines = this.options.sectionHeaderFontSize / this.options.minimapLineHeight;\n    startLineNumber = Math.floor(Math.max(1, startLineNumber - headerHeightInMinimapLines));\n    return this._getMinimapDecorationsInViewport(startLineNumber, endLineNumber).filter((decoration3) =\u003e !!decoration3.options.minimap?.sectionHeaderStyle);\n  }\n  _getMinimapDecorationsInViewport(startLineNumber, endLineNumber) {\n    let visibleRange;\n    if (this._samplingState) {\n      const modelStartLineNumber = this._samplingState.minimapLines[startLineNumber - 1];\n      const modelEndLineNumber = this._samplingState.minimapLines[endLineNumber - 1];\n      visibleRange = new Range(modelStartLineNumber, 1, modelEndLineNumber, this._context.viewModel.getLineMaxColumn(modelEndLineNumber));\n    } else {\n      visibleRange = new Range(startLineNumber, 1, endLineNumber, this._context.viewModel.getLineMaxColumn(endLineNumber));\n    }\n    const decorations = this._context.viewModel.getMinimapDecorationsInRange(visibleRange);\n    if (this._samplingState) {\n      const result = [];\n      for (const decoration3 of decorations) {\n        if (!decoration3.options.minimap) {\n          continue;\n        }\n        const range2 = decoration3.range;\n        const minimapStartLineNumber = this._samplingState.modelLineToMinimapLine(range2.startLineNumber);\n        const minimapEndLineNumber = this._samplingState.modelLineToMinimapLine(range2.endLineNumber);\n        result.push(new ViewModelDecoration(new Range(minimapStartLineNumber, range2.startColumn, minimapEndLineNumber, range2.endColumn), decoration3.options));\n      }\n      return result;\n    }\n    return decorations;\n  }\n  getSectionHeaderText(decoration3, fitWidth) {\n    const headerText = decoration3.options.minimap?.sectionHeaderText;\n    if (!headerText) {\n      return null;\n    }\n    const cachedText = this._sectionHeaderCache.get(headerText);\n    if (cachedText) {\n      return cachedText;\n    }\n    const fittedText = fitWidth(headerText);\n    this._sectionHeaderCache.set(headerText, fittedText);\n    return fittedText;\n  }\n  getOptions() {\n    return this._context.viewModel.model.getOptions();\n  }\n  revealLineNumber(lineNumber) {\n    if (this._samplingState) {\n      lineNumber = this._samplingState.minimapLines[lineNumber - 1];\n    }\n    this._context.viewModel.revealRange(\n      \"mouse\",\n      false,\n      new Range(lineNumber, 1, lineNumber, 1),\n      1,\n      0\n      /* ScrollType.Smooth */\n    );\n  }\n  setScrollTop(scrollTop) {\n    this._context.viewModel.viewLayout.setScrollPosition(\n      {\n        scrollTop\n      },\n      1\n      /* ScrollType.Immediate */\n    );\n  }\n};\nvar InnerMinimap = class _InnerMinimap extends Disposable {\n  constructor(theme, model) {\n    super();\n    this._renderDecorations = false;\n    this._gestureInProgress = false;\n    this._isMouseOverMinimap = false;\n    this._theme = theme;\n    this._model = model;\n    this._lastRenderData = null;\n    this._buffers = null;\n    this._selectionColor = this._theme.getColor(minimapSelection);\n    this._domNode = createFastDomNode(document.createElement(\"div\"));\n    PartFingerprints.write(\n      this._domNode,\n      9\n      /* PartFingerprint.Minimap */\n    );\n    this._domNode.setClassName(this._getMinimapDomNodeClassName());\n    this._domNode.setPosition(\"absolute\");\n    this._domNode.setAttribute(\"role\", \"presentation\");\n    this._domNode.setAttribute(\"aria-hidden\", \"true\");\n    this._shadow = createFastDomNode(document.createElement(\"div\"));\n    this._shadow.setClassName(\"minimap-shadow-hidden\");\n    this._domNode.appendChild(this._shadow);\n    this._canvas = createFastDomNode(document.createElement(\"canvas\"));\n    this._canvas.setPosition(\"absolute\");\n    this._canvas.setLeft(0);\n    this._domNode.appendChild(this._canvas);\n    this._decorationsCanvas = createFastDomNode(document.createElement(\"canvas\"));\n    this._decorationsCanvas.setPosition(\"absolute\");\n    this._decorationsCanvas.setClassName(\"minimap-decorations-layer\");\n    this._decorationsCanvas.setLeft(0);\n    this._domNode.appendChild(this._decorationsCanvas);\n    this._slider = createFastDomNode(document.createElement(\"div\"));\n    this._slider.setPosition(\"absolute\");\n    this._slider.setClassName(\"minimap-slider\");\n    this._slider.setLayerHinting(true);\n    this._slider.setContain(\"strict\");\n    this._domNode.appendChild(this._slider);\n    this._sliderHorizontal = createFastDomNode(document.createElement(\"div\"));\n    this._sliderHorizontal.setPosition(\"absolute\");\n    this._sliderHorizontal.setClassName(\"minimap-slider-horizontal\");\n    this._slider.appendChild(this._sliderHorizontal);\n    this._applyLayout();\n    this._hideDelayedScheduler = this._register(new RunOnceScheduler(() =\u003e this._hideImmediatelyIfMouseIsOutside(), 500));\n    this._register(addStandardDisposableListener(this._domNode.domNode, EventType.MOUSE_OVER, () =\u003e {\n      this._isMouseOverMinimap = true;\n    }));\n    this._register(addStandardDisposableListener(this._domNode.domNode, EventType.MOUSE_LEAVE, () =\u003e {\n      this._isMouseOverMinimap = false;\n    }));\n    this._pointerDownListener = addStandardDisposableListener(this._domNode.domNode, EventType.POINTER_DOWN, (e) =\u003e {\n      e.preventDefault();\n      const isMouse = e.pointerType === \"mouse\";\n      const isLeftClick = e.button === 0;\n      const renderMinimap = this._model.options.renderMinimap;\n      if (renderMinimap === 0) {\n        return;\n      }\n      if (!this._lastRenderData) {\n        return;\n      }\n      if (this._model.options.size !== \"proportional\") {\n        if (isLeftClick \u0026\u0026 this._lastRenderData) {\n          const position = getDomNodePagePosition(this._slider.domNode);\n          const initialPosY = position.top + position.height / 2;\n          this._startSliderDragging(e, initialPosY, this._lastRenderData.renderedLayout);\n        }\n        return;\n      }\n      if (isLeftClick || !isMouse) {\n        const minimapLineHeight = this._model.options.minimapLineHeight;\n        const internalOffsetY = this._model.options.canvasInnerHeight / this._model.options.canvasOuterHeight * e.offsetY;\n        const lineIndex = Math.floor(internalOffsetY / minimapLineHeight);\n        let lineNumber = lineIndex + this._lastRenderData.renderedLayout.startLineNumber - this._lastRenderData.renderedLayout.topPaddingLineCount;\n        lineNumber = Math.min(lineNumber, this._model.getLineCount());\n        this._model.revealLineNumber(lineNumber);\n      }\n    });\n    this._sliderPointerMoveMonitor = new GlobalPointerMoveMonitor();\n    this._sliderPointerDownListener = addStandardDisposableListener(this._slider.domNode, EventType.POINTER_DOWN, (e) =\u003e {\n      e.preventDefault();\n      e.stopPropagation();\n      if (e.button === 0 \u0026\u0026 this._lastRenderData) {\n        this._startSliderDragging(e, e.pageY, this._lastRenderData.renderedLayout);\n      }\n    });\n    this._gestureDisposable = Gesture.addTarget(this._domNode.domNode);\n    this._sliderTouchStartListener = addDisposableListener(this._domNode.domNode, EventType2.Start, (e) =\u003e {\n      e.preventDefault();\n      e.stopPropagation();\n      if (this._lastRenderData) {\n        this._slider.toggleClassName(\"active\", true);\n        this._gestureInProgress = true;\n        this.scrollDueToTouchEvent(e);\n      }\n    }, { passive: false });\n    this._sliderTouchMoveListener = addDisposableListener(this._domNode.domNode, EventType2.Change, (e) =\u003e {\n      e.preventDefault();\n      e.stopPropagation();\n      if (this._lastRenderData \u0026\u0026 this._gestureInProgress) {\n        this.scrollDueToTouchEvent(e);\n      }\n    }, { passive: false });\n    this._sliderTouchEndListener = addStandardDisposableListener(this._domNode.domNode, EventType2.End, (e) =\u003e {\n      e.preventDefault();\n      e.stopPropagation();\n      this._gestureInProgress = false;\n      this._slider.toggleClassName(\"active\", false);\n    });\n  }\n  _hideSoon() {\n    this._hideDelayedScheduler.cancel();\n    this._hideDelayedScheduler.schedule();\n  }\n  _hideImmediatelyIfMouseIsOutside() {\n    if (this._isMouseOverMinimap) {\n      this._hideSoon();\n      return;\n    }\n    this._domNode.toggleClassName(\"active\", false);\n  }\n  _startSliderDragging(e, initialPosY, initialSliderState) {\n    if (!e.target || !(e.target instanceof Element)) {\n      return;\n    }\n    const initialPosX = e.pageX;\n    this._slider.toggleClassName(\"active\", true);\n    const handlePointerMove = (posy, posx) =\u003e {\n      const minimapPosition = getDomNodePagePosition(this._domNode.domNode);\n      const pointerOrthogonalDelta = Math.min(Math.abs(posx - initialPosX), Math.abs(posx - minimapPosition.left), Math.abs(posx - minimapPosition.left - minimapPosition.width));\n      if (isWindows \u0026\u0026 pointerOrthogonalDelta \u003e POINTER_DRAG_RESET_DISTANCE2) {\n        this._model.setScrollTop(initialSliderState.scrollTop);\n        return;\n      }\n      const pointerDelta = posy - initialPosY;\n      this._model.setScrollTop(initialSliderState.getDesiredScrollTopFromDelta(pointerDelta));\n    };\n    if (e.pageY !== initialPosY) {\n      handlePointerMove(e.pageY, initialPosX);\n    }\n    this._sliderPointerMoveMonitor.startMonitoring(e.target, e.pointerId, e.buttons, (pointerMoveData) =\u003e handlePointerMove(pointerMoveData.pageY, pointerMoveData.pageX), () =\u003e {\n      this._slider.toggleClassName(\"active\", false);\n    });\n  }\n  scrollDueToTouchEvent(touch) {\n    const startY = this._domNode.domNode.getBoundingClientRect().top;\n    const scrollTop = this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(touch.pageY - startY);\n    this._model.setScrollTop(scrollTop);\n  }\n  dispose() {\n    this._pointerDownListener.dispose();\n    this._sliderPointerMoveMonitor.dispose();\n    this._sliderPointerDownListener.dispose();\n    this._gestureDisposable.dispose();\n    this._sliderTouchStartListener.dispose();\n    this._sliderTouchMoveListener.dispose();\n    this._sliderTouchEndListener.dispose();\n    super.dispose();\n  }\n  _getMinimapDomNodeClassName() {\n    const class_ = [\"minimap\"];\n    if (this._model.options.showSlider === \"always\") {\n      class_.push(\"slider-always\");\n    } else {\n      class_.push(\"slider-mouseover\");\n    }\n    if (this._model.options.autohide === \"mouseover\") {\n      class_.push(\"minimap-autohide-mouseover\");\n    } else if (this._model.options.autohide === \"scroll\") {\n      class_.push(\"minimap-autohide-scroll\");\n    }\n    return class_.join(\" \");\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  _applyLayout() {\n    this._domNode.setLeft(this._model.options.minimapLeft);\n    this._domNode.setWidth(this._model.options.minimapWidth);\n    this._domNode.setHeight(this._model.options.minimapHeight);\n    this._shadow.setHeight(this._model.options.minimapHeight);\n    this._canvas.setWidth(this._model.options.canvasOuterWidth);\n    this._canvas.setHeight(this._model.options.canvasOuterHeight);\n    this._canvas.domNode.width = this._model.options.canvasInnerWidth;\n    this._canvas.domNode.height = this._model.options.canvasInnerHeight;\n    this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth);\n    this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight);\n    this._decorationsCanvas.domNode.width = this._model.options.canvasInnerWidth;\n    this._decorationsCanvas.domNode.height = this._model.options.canvasInnerHeight;\n    this._slider.setWidth(this._model.options.minimapWidth);\n  }\n  _getBuffer() {\n    if (!this._buffers) {\n      if (this._model.options.canvasInnerWidth \u003e 0 \u0026\u0026 this._model.options.canvasInnerHeight \u003e 0) {\n        this._buffers = new MinimapBuffers(this._canvas.domNode.getContext(\"2d\"), this._model.options.canvasInnerWidth, this._model.options.canvasInnerHeight, this._model.options.backgroundColor);\n      }\n    }\n    return this._buffers ? this._buffers.getBuffer() : null;\n  }\n  // ---- begin view event handlers\n  onDidChangeOptions() {\n    this._lastRenderData = null;\n    this._buffers = null;\n    this._applyLayout();\n    this._domNode.setClassName(this._getMinimapDomNodeClassName());\n  }\n  onSelectionChanged() {\n    this._renderDecorations = true;\n    return true;\n  }\n  onDecorationsChanged() {\n    this._renderDecorations = true;\n    return true;\n  }\n  onFlushed() {\n    this._lastRenderData = null;\n    return true;\n  }\n  onLinesChanged(changeFromLineNumber, changeCount) {\n    if (this._lastRenderData) {\n      return this._lastRenderData.onLinesChanged(changeFromLineNumber, changeCount);\n    }\n    return false;\n  }\n  onLinesDeleted(deleteFromLineNumber, deleteToLineNumber) {\n    this._lastRenderData?.onLinesDeleted(deleteFromLineNumber, deleteToLineNumber);\n    return true;\n  }\n  onLinesInserted(insertFromLineNumber, insertToLineNumber) {\n    this._lastRenderData?.onLinesInserted(insertFromLineNumber, insertToLineNumber);\n    return true;\n  }\n  onScrollChanged(e) {\n    if (this._model.options.autohide === \"scroll\" \u0026\u0026 (e.scrollTopChanged || e.scrollHeightChanged)) {\n      this._domNode.toggleClassName(\"active\", true);\n      this._hideSoon();\n    }\n    this._renderDecorations = true;\n    return true;\n  }\n  onThemeChanged() {\n    this._selectionColor = this._theme.getColor(minimapSelection);\n    this._renderDecorations = true;\n    return true;\n  }\n  onTokensChanged(ranges) {\n    if (this._lastRenderData) {\n      return this._lastRenderData.onTokensChanged(ranges);\n    }\n    return false;\n  }\n  onTokensColorsChanged() {\n    this._lastRenderData = null;\n    this._buffers = null;\n    return true;\n  }\n  onZonesChanged() {\n    this._lastRenderData = null;\n    return true;\n  }\n  // --- end event handlers\n  render(renderingCtx) {\n    const renderMinimap = this._model.options.renderMinimap;\n    if (renderMinimap === 0) {\n      this._shadow.setClassName(\"minimap-shadow-hidden\");\n      this._sliderHorizontal.setWidth(0);\n      this._sliderHorizontal.setHeight(0);\n      return;\n    }\n    if (renderingCtx.scrollLeft + renderingCtx.viewportWidth \u003e= renderingCtx.scrollWidth) {\n      this._shadow.setClassName(\"minimap-shadow-hidden\");\n    } else {\n      this._shadow.setClassName(\"minimap-shadow-visible\");\n    }\n    const layout2 = MinimapLayout.create(this._model.options, renderingCtx.viewportStartLineNumber, renderingCtx.viewportEndLineNumber, renderingCtx.viewportStartLineNumberVerticalOffset, renderingCtx.viewportHeight, renderingCtx.viewportContainsWhitespaceGaps, this._model.getLineCount(), this._model.getRealLineCount(), renderingCtx.scrollTop, renderingCtx.scrollHeight, this._lastRenderData ? this._lastRenderData.renderedLayout : null);\n    this._slider.setDisplay(layout2.sliderNeeded ? \"block\" : \"none\");\n    this._slider.setTop(layout2.sliderTop);\n    this._slider.setHeight(layout2.sliderHeight);\n    this._sliderHorizontal.setLeft(0);\n    this._sliderHorizontal.setWidth(this._model.options.minimapWidth);\n    this._sliderHorizontal.setTop(0);\n    this._sliderHorizontal.setHeight(layout2.sliderHeight);\n    this.renderDecorations(layout2);\n    this._lastRenderData = this.renderLines(layout2);\n  }\n  renderDecorations(layout2) {\n    if (this._renderDecorations) {\n      this._renderDecorations = false;\n      const selections = this._model.getSelections();\n      selections.sort(Range.compareRangesUsingStarts);\n      const decorations = this._model.getMinimapDecorationsInViewport(layout2.startLineNumber, layout2.endLineNumber);\n      decorations.sort((a, b) =\u003e (a.options.zIndex || 0) - (b.options.zIndex || 0));\n      const { canvasInnerWidth, canvasInnerHeight } = this._model.options;\n      const minimapLineHeight = this._model.options.minimapLineHeight;\n      const minimapCharWidth = this._model.options.minimapCharWidth;\n      const tabSize = this._model.getOptions().tabSize;\n      const canvasContext = this._decorationsCanvas.domNode.getContext(\"2d\");\n      canvasContext.clearRect(0, 0, canvasInnerWidth, canvasInnerHeight);\n      const highlightedLines = new ContiguousLineMap(layout2.startLineNumber, layout2.endLineNumber, false);\n      this._renderSelectionLineHighlights(canvasContext, selections, highlightedLines, layout2, minimapLineHeight);\n      this._renderDecorationsLineHighlights(canvasContext, decorations, highlightedLines, layout2, minimapLineHeight);\n      const lineOffsetMap = new ContiguousLineMap(layout2.startLineNumber, layout2.endLineNumber, null);\n      this._renderSelectionsHighlights(canvasContext, selections, lineOffsetMap, layout2, minimapLineHeight, tabSize, minimapCharWidth, canvasInnerWidth);\n      this._renderDecorationsHighlights(canvasContext, decorations, lineOffsetMap, layout2, minimapLineHeight, tabSize, minimapCharWidth, canvasInnerWidth);\n      this._renderSectionHeaders(layout2);\n    }\n  }\n  _renderSelectionLineHighlights(canvasContext, selections, highlightedLines, layout2, minimapLineHeight) {\n    if (!this._selectionColor || this._selectionColor.isTransparent()) {\n      return;\n    }\n    canvasContext.fillStyle = this._selectionColor.transparent(0.5).toString();\n    let y1 = 0;\n    let y2 = 0;\n    for (const selection of selections) {\n      const intersection2 = layout2.intersectWithViewport(selection);\n      if (!intersection2) {\n        continue;\n      }\n      const [startLineNumber, endLineNumber] = intersection2;\n      for (let line = startLineNumber; line \u003c= endLineNumber; line++) {\n        highlightedLines.set(line, true);\n      }\n      const yy1 = layout2.getYForLineNumber(startLineNumber, minimapLineHeight);\n      const yy2 = layout2.getYForLineNumber(endLineNumber, minimapLineHeight);\n      if (y2 \u003e= yy1) {\n        y2 = yy2;\n      } else {\n        if (y2 \u003e y1) {\n          canvasContext.fillRect(MINIMAP_GUTTER_WIDTH, y1, canvasContext.canvas.width, y2 - y1);\n        }\n        y1 = yy1;\n        y2 = yy2;\n      }\n    }\n    if (y2 \u003e y1) {\n      canvasContext.fillRect(MINIMAP_GUTTER_WIDTH, y1, canvasContext.canvas.width, y2 - y1);\n    }\n  }\n  _renderDecorationsLineHighlights(canvasContext, decorations, highlightedLines, layout2, minimapLineHeight) {\n    const highlightColors = /* @__PURE__ */ new Map();\n    for (let i2 = decorations.length - 1; i2 \u003e= 0; i2--) {\n      const decoration3 = decorations[i2];\n      const minimapOptions = decoration3.options.minimap;\n      if (!minimapOptions || minimapOptions.position !== 1) {\n        continue;\n      }\n      const intersection2 = layout2.intersectWithViewport(decoration3.range);\n      if (!intersection2) {\n        continue;\n      }\n      const [startLineNumber, endLineNumber] = intersection2;\n      const decorationColor = minimapOptions.getColor(this._theme.value);\n      if (!decorationColor || decorationColor.isTransparent()) {\n        continue;\n      }\n      let highlightColor = highlightColors.get(decorationColor.toString());\n      if (!highlightColor) {\n        highlightColor = decorationColor.transparent(0.5).toString();\n        highlightColors.set(decorationColor.toString(), highlightColor);\n      }\n      canvasContext.fillStyle = highlightColor;\n      for (let line = startLineNumber; line \u003c= endLineNumber; line++) {\n        if (highlightedLines.has(line)) {\n          continue;\n        }\n        highlightedLines.set(line, true);\n        const y = layout2.getYForLineNumber(startLineNumber, minimapLineHeight);\n        canvasContext.fillRect(MINIMAP_GUTTER_WIDTH, y, canvasContext.canvas.width, minimapLineHeight);\n      }\n    }\n  }\n  _renderSelectionsHighlights(canvasContext, selections, lineOffsetMap, layout2, lineHeight, tabSize, characterWidth, canvasInnerWidth) {\n    if (!this._selectionColor || this._selectionColor.isTransparent()) {\n      return;\n    }\n    for (const selection of selections) {\n      const intersection2 = layout2.intersectWithViewport(selection);\n      if (!intersection2) {\n        continue;\n      }\n      const [startLineNumber, endLineNumber] = intersection2;\n      for (let line = startLineNumber; line \u003c= endLineNumber; line++) {\n        this.renderDecorationOnLine(canvasContext, lineOffsetMap, selection, this._selectionColor, layout2, line, lineHeight, lineHeight, tabSize, characterWidth, canvasInnerWidth);\n      }\n    }\n  }\n  _renderDecorationsHighlights(canvasContext, decorations, lineOffsetMap, layout2, minimapLineHeight, tabSize, characterWidth, canvasInnerWidth) {\n    for (const decoration3 of decorations) {\n      const minimapOptions = decoration3.options.minimap;\n      if (!minimapOptions) {\n        continue;\n      }\n      const intersection2 = layout2.intersectWithViewport(decoration3.range);\n      if (!intersection2) {\n        continue;\n      }\n      const [startLineNumber, endLineNumber] = intersection2;\n      const decorationColor = minimapOptions.getColor(this._theme.value);\n      if (!decorationColor || decorationColor.isTransparent()) {\n        continue;\n      }\n      for (let line = startLineNumber; line \u003c= endLineNumber; line++) {\n        switch (minimapOptions.position) {\n          case 1:\n            this.renderDecorationOnLine(canvasContext, lineOffsetMap, decoration3.range, decorationColor, layout2, line, minimapLineHeight, minimapLineHeight, tabSize, characterWidth, canvasInnerWidth);\n            continue;\n          case 2: {\n            const y = layout2.getYForLineNumber(line, minimapLineHeight);\n            const x = 2;\n            this.renderDecoration(canvasContext, decorationColor, x, y, GUTTER_DECORATION_WIDTH, minimapLineHeight);\n            continue;\n          }\n        }\n      }\n    }\n  }\n  renderDecorationOnLine(canvasContext, lineOffsetMap, decorationRange, decorationColor, layout2, lineNumber, height, minimapLineHeight, tabSize, charWidth, canvasInnerWidth) {\n    const y = layout2.getYForLineNumber(lineNumber, minimapLineHeight);\n    if (y + height \u003c 0 || y \u003e this._model.options.canvasInnerHeight) {\n      return;\n    }\n    const { startLineNumber, endLineNumber } = decorationRange;\n    const startColumn = startLineNumber === lineNumber ? decorationRange.startColumn : 1;\n    const endColumn = endLineNumber === lineNumber ? decorationRange.endColumn : this._model.getLineMaxColumn(lineNumber);\n    const x1 = this.getXOffsetForPosition(lineOffsetMap, lineNumber, startColumn, tabSize, charWidth, canvasInnerWidth);\n    const x2 = this.getXOffsetForPosition(lineOffsetMap, lineNumber, endColumn, tabSize, charWidth, canvasInnerWidth);\n    this.renderDecoration(canvasContext, decorationColor, x1, y, x2 - x1, height);\n  }\n  getXOffsetForPosition(lineOffsetMap, lineNumber, column, tabSize, charWidth, canvasInnerWidth) {\n    if (column === 1) {\n      return MINIMAP_GUTTER_WIDTH;\n    }\n    const minimumXOffset = (column - 1) * charWidth;\n    if (minimumXOffset \u003e= canvasInnerWidth) {\n      return canvasInnerWidth;\n    }\n    let lineIndexToXOffset = lineOffsetMap.get(lineNumber);\n    if (!lineIndexToXOffset) {\n      const lineData = this._model.getLineContent(lineNumber);\n      lineIndexToXOffset = [MINIMAP_GUTTER_WIDTH];\n      let prevx = MINIMAP_GUTTER_WIDTH;\n      for (let i2 = 1; i2 \u003c lineData.length + 1; i2++) {\n        const charCode = lineData.charCodeAt(i2 - 1);\n        const dx = charCode === 9 ? tabSize * charWidth : isFullWidthCharacter(charCode) ? 2 * charWidth : charWidth;\n        const x = prevx + dx;\n        if (x \u003e= canvasInnerWidth) {\n          lineIndexToXOffset[i2] = canvasInnerWidth;\n          break;\n        }\n        lineIndexToXOffset[i2] = x;\n        prevx = x;\n      }\n      lineOffsetMap.set(lineNumber, lineIndexToXOffset);\n    }\n    if (column - 1 \u003c lineIndexToXOffset.length) {\n      return lineIndexToXOffset[column - 1];\n    }\n    return canvasInnerWidth;\n  }\n  renderDecoration(canvasContext, decorationColor, x, y, width2, height) {\n    canvasContext.fillStyle = decorationColor \u0026\u0026 decorationColor.toString() || \"\";\n    canvasContext.fillRect(x, y, width2, height);\n  }\n  _renderSectionHeaders(layout2) {\n    const minimapLineHeight = this._model.options.minimapLineHeight;\n    const sectionHeaderFontSize = this._model.options.sectionHeaderFontSize;\n    const sectionHeaderLetterSpacing = this._model.options.sectionHeaderLetterSpacing;\n    const backgroundFillHeight = sectionHeaderFontSize * 1.5;\n    const { canvasInnerWidth } = this._model.options;\n    const backgroundColor = this._model.options.backgroundColor;\n    const backgroundFill = `rgb(${backgroundColor.r} ${backgroundColor.g} ${backgroundColor.b} / .7)`;\n    const foregroundColor = this._model.options.sectionHeaderFontColor;\n    const foregroundFill = `rgb(${foregroundColor.r} ${foregroundColor.g} ${foregroundColor.b})`;\n    const separatorStroke = foregroundFill;\n    const canvasContext = this._decorationsCanvas.domNode.getContext(\"2d\");\n    canvasContext.letterSpacing = sectionHeaderLetterSpacing + \"px\";\n    canvasContext.font = \"500 \" + sectionHeaderFontSize + \"px \" + this._model.options.sectionHeaderFontFamily;\n    canvasContext.strokeStyle = separatorStroke;\n    canvasContext.lineWidth = 0.4;\n    const decorations = this._model.getSectionHeaderDecorationsInViewport(layout2.startLineNumber, layout2.endLineNumber);\n    decorations.sort((a, b) =\u003e a.range.startLineNumber - b.range.startLineNumber);\n    const fitWidth = _InnerMinimap._fitSectionHeader.bind(null, canvasContext, canvasInnerWidth - MINIMAP_GUTTER_WIDTH);\n    for (const decoration3 of decorations) {\n      const y = layout2.getYForLineNumber(decoration3.range.startLineNumber, minimapLineHeight) + sectionHeaderFontSize;\n      const backgroundFillY = y - sectionHeaderFontSize;\n      const separatorY = backgroundFillY + 2;\n      const headerText = this._model.getSectionHeaderText(decoration3, fitWidth);\n      _InnerMinimap._renderSectionLabel(canvasContext, headerText, decoration3.options.minimap?.sectionHeaderStyle === 2, backgroundFill, foregroundFill, canvasInnerWidth, backgroundFillY, backgroundFillHeight, y, separatorY);\n    }\n  }\n  static _fitSectionHeader(target, maxWidth, headerText) {\n    if (!headerText) {\n      return headerText;\n    }\n    const ellipsis = \"\\u2026\";\n    const width2 = target.measureText(headerText).width;\n    const ellipsisWidth = target.measureText(ellipsis).width;\n    if (width2 \u003c= maxWidth || width2 \u003c= ellipsisWidth) {\n      return headerText;\n    }\n    const len = headerText.length;\n    const averageCharWidth = width2 / headerText.length;\n    const maxCharCount = Math.floor((maxWidth - ellipsisWidth) / averageCharWidth) - 1;\n    let halfCharCount = Math.ceil(maxCharCount / 2);\n    while (halfCharCount \u003e 0 \u0026\u0026 /\\s/.test(headerText[halfCharCount - 1])) {\n      --halfCharCount;\n    }\n    return headerText.substring(0, halfCharCount) + ellipsis + headerText.substring(len - (maxCharCount - halfCharCount));\n  }\n  static _renderSectionLabel(target, headerText, hasSeparatorLine, backgroundFill, foregroundFill, minimapWidth, backgroundFillY, backgroundFillHeight, textY, separatorY) {\n    if (headerText) {\n      target.fillStyle = backgroundFill;\n      target.fillRect(0, backgroundFillY, minimapWidth, backgroundFillHeight);\n      target.fillStyle = foregroundFill;\n      target.fillText(headerText, MINIMAP_GUTTER_WIDTH, textY);\n    }\n    if (hasSeparatorLine) {\n      target.beginPath();\n      target.moveTo(0, separatorY);\n      target.lineTo(minimapWidth, separatorY);\n      target.closePath();\n      target.stroke();\n    }\n  }\n  renderLines(layout2) {\n    const startLineNumber = layout2.startLineNumber;\n    const endLineNumber = layout2.endLineNumber;\n    const minimapLineHeight = this._model.options.minimapLineHeight;\n    if (this._lastRenderData \u0026\u0026 this._lastRenderData.linesEquals(layout2)) {\n      const _lastData = this._lastRenderData._get();\n      return new RenderData(layout2, _lastData.imageData, _lastData.lines);\n    }\n    const imageData = this._getBuffer();\n    if (!imageData) {\n      return null;\n    }\n    const [_dirtyY1, _dirtyY2, needed] = _InnerMinimap._renderUntouchedLines(imageData, layout2.topPaddingLineCount, startLineNumber, endLineNumber, minimapLineHeight, this._lastRenderData);\n    const lineInfo = this._model.getMinimapLinesRenderingData(startLineNumber, endLineNumber, needed);\n    const tabSize = this._model.getOptions().tabSize;\n    const defaultBackground = this._model.options.defaultBackgroundColor;\n    const background = this._model.options.backgroundColor;\n    const foregroundAlpha = this._model.options.foregroundAlpha;\n    const tokensColorTracker = this._model.tokensColorTracker;\n    const useLighterFont = tokensColorTracker.backgroundIsLight();\n    const renderMinimap = this._model.options.renderMinimap;\n    const charRenderer = this._model.options.charRenderer();\n    const fontScale = this._model.options.fontScale;\n    const minimapCharWidth = this._model.options.minimapCharWidth;\n    const baseCharHeight = renderMinimap === 1 ? 2 : 2 + 1;\n    const renderMinimapLineHeight = baseCharHeight * fontScale;\n    const innerLinePadding = minimapLineHeight \u003e renderMinimapLineHeight ? Math.floor((minimapLineHeight - renderMinimapLineHeight) / 2) : 0;\n    const backgroundA = background.a / 255;\n    const renderBackground = new RGBA8(Math.round((background.r - defaultBackground.r) * backgroundA + defaultBackground.r), Math.round((background.g - defaultBackground.g) * backgroundA + defaultBackground.g), Math.round((background.b - defaultBackground.b) * backgroundA + defaultBackground.b), 255);\n    let dy = layout2.topPaddingLineCount * minimapLineHeight;\n    const renderedLines = [];\n    for (let lineIndex = 0, lineCount = endLineNumber - startLineNumber + 1; lineIndex \u003c lineCount; lineIndex++) {\n      if (needed[lineIndex]) {\n        _InnerMinimap._renderLine(imageData, renderBackground, background.a, useLighterFont, renderMinimap, minimapCharWidth, tokensColorTracker, foregroundAlpha, charRenderer, dy, innerLinePadding, tabSize, lineInfo[lineIndex], fontScale, minimapLineHeight);\n      }\n      renderedLines[lineIndex] = new MinimapLine(dy);\n      dy += minimapLineHeight;\n    }\n    const dirtyY1 = _dirtyY1 === -1 ? 0 : _dirtyY1;\n    const dirtyY2 = _dirtyY2 === -1 ? imageData.height : _dirtyY2;\n    const dirtyHeight = dirtyY2 - dirtyY1;\n    const ctx = this._canvas.domNode.getContext(\"2d\");\n    ctx.putImageData(imageData, 0, 0, 0, dirtyY1, imageData.width, dirtyHeight);\n    return new RenderData(layout2, imageData, renderedLines);\n  }\n  static _renderUntouchedLines(target, topPaddingLineCount, startLineNumber, endLineNumber, minimapLineHeight, lastRenderData) {\n    const needed = [];\n    if (!lastRenderData) {\n      for (let i2 = 0, len = endLineNumber - startLineNumber + 1; i2 \u003c len; i2++) {\n        needed[i2] = true;\n      }\n      return [-1, -1, needed];\n    }\n    const _lastData = lastRenderData._get();\n    const lastTargetData = _lastData.imageData.data;\n    const lastStartLineNumber = _lastData.rendLineNumberStart;\n    const lastLines = _lastData.lines;\n    const lastLinesLength = lastLines.length;\n    const WIDTH = target.width;\n    const targetData = target.data;\n    const maxDestPixel = (endLineNumber - startLineNumber + 1) * minimapLineHeight * WIDTH * 4;\n    let dirtyPixel1 = -1;\n    let dirtyPixel2 = -1;\n    let copySourceStart = -1;\n    let copySourceEnd = -1;\n    let copyDestStart = -1;\n    let copyDestEnd = -1;\n    let dest_dy = topPaddingLineCount * minimapLineHeight;\n    for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - startLineNumber;\n      const lastLineIndex = lineNumber - lastStartLineNumber;\n      const source_dy = lastLineIndex \u003e= 0 \u0026\u0026 lastLineIndex \u003c lastLinesLength ? lastLines[lastLineIndex].dy : -1;\n      if (source_dy === -1) {\n        needed[lineIndex] = true;\n        dest_dy += minimapLineHeight;\n        continue;\n      }\n      const sourceStart = source_dy * WIDTH * 4;\n      const sourceEnd = (source_dy + minimapLineHeight) * WIDTH * 4;\n      const destStart = dest_dy * WIDTH * 4;\n      const destEnd = (dest_dy + minimapLineHeight) * WIDTH * 4;\n      if (copySourceEnd === sourceStart \u0026\u0026 copyDestEnd === destStart) {\n        copySourceEnd = sourceEnd;\n        copyDestEnd = destEnd;\n      } else {\n        if (copySourceStart !== -1) {\n          targetData.set(lastTargetData.subarray(copySourceStart, copySourceEnd), copyDestStart);\n          if (dirtyPixel1 === -1 \u0026\u0026 copySourceStart === 0 \u0026\u0026 copySourceStart === copyDestStart) {\n            dirtyPixel1 = copySourceEnd;\n          }\n          if (dirtyPixel2 === -1 \u0026\u0026 copySourceEnd === maxDestPixel \u0026\u0026 copySourceStart === copyDestStart) {\n            dirtyPixel2 = copySourceStart;\n          }\n        }\n        copySourceStart = sourceStart;\n        copySourceEnd = sourceEnd;\n        copyDestStart = destStart;\n        copyDestEnd = destEnd;\n      }\n      needed[lineIndex] = false;\n      dest_dy += minimapLineHeight;\n    }\n    if (copySourceStart !== -1) {\n      targetData.set(lastTargetData.subarray(copySourceStart, copySourceEnd), copyDestStart);\n      if (dirtyPixel1 === -1 \u0026\u0026 copySourceStart === 0 \u0026\u0026 copySourceStart === copyDestStart) {\n        dirtyPixel1 = copySourceEnd;\n      }\n      if (dirtyPixel2 === -1 \u0026\u0026 copySourceEnd === maxDestPixel \u0026\u0026 copySourceStart === copyDestStart) {\n        dirtyPixel2 = copySourceStart;\n      }\n    }\n    const dirtyY1 = dirtyPixel1 === -1 ? -1 : dirtyPixel1 / (WIDTH * 4);\n    const dirtyY2 = dirtyPixel2 === -1 ? -1 : dirtyPixel2 / (WIDTH * 4);\n    return [dirtyY1, dirtyY2, needed];\n  }\n  static _renderLine(target, backgroundColor, backgroundAlpha, useLighterFont, renderMinimap, charWidth, colorTracker, foregroundAlpha, minimapCharRenderer, dy, innerLinePadding, tabSize, lineData, fontScale, minimapLineHeight) {\n    const content = lineData.content;\n    const tokens = lineData.tokens;\n    const maxDx = target.width - charWidth;\n    const force1pxHeight = minimapLineHeight === 1;\n    let dx = MINIMAP_GUTTER_WIDTH;\n    let charIndex = 0;\n    let tabsCharDelta = 0;\n    for (let tokenIndex = 0, tokensLen = tokens.getCount(); tokenIndex \u003c tokensLen; tokenIndex++) {\n      const tokenEndIndex = tokens.getEndOffset(tokenIndex);\n      const tokenColorId = tokens.getForeground(tokenIndex);\n      const tokenColor = colorTracker.getColor(tokenColorId);\n      for (; charIndex \u003c tokenEndIndex; charIndex++) {\n        if (dx \u003e maxDx) {\n          return;\n        }\n        const charCode = content.charCodeAt(charIndex);\n        if (charCode === 9) {\n          const insertSpacesCount = tabSize - (charIndex + tabsCharDelta) % tabSize;\n          tabsCharDelta += insertSpacesCount - 1;\n          dx += insertSpacesCount * charWidth;\n        } else if (charCode === 32) {\n          dx += charWidth;\n        } else {\n          const count = isFullWidthCharacter(charCode) ? 2 : 1;\n          for (let i2 = 0; i2 \u003c count; i2++) {\n            if (renderMinimap === 2) {\n              minimapCharRenderer.blockRenderChar(target, dx, dy + innerLinePadding, tokenColor, foregroundAlpha, backgroundColor, backgroundAlpha, force1pxHeight);\n            } else {\n              minimapCharRenderer.renderChar(target, dx, dy + innerLinePadding, charCode, tokenColor, foregroundAlpha, backgroundColor, backgroundAlpha, fontScale, useLighterFont, force1pxHeight);\n            }\n            dx += charWidth;\n            if (dx \u003e maxDx) {\n              return;\n            }\n          }\n        }\n      }\n    }\n  }\n};\nvar ContiguousLineMap = class {\n  constructor(startLineNumber, endLineNumber, defaultValue) {\n    this._startLineNumber = startLineNumber;\n    this._endLineNumber = endLineNumber;\n    this._defaultValue = defaultValue;\n    this._values = [];\n    for (let i2 = 0, count = this._endLineNumber - this._startLineNumber + 1; i2 \u003c count; i2++) {\n      this._values[i2] = defaultValue;\n    }\n  }\n  has(lineNumber) {\n    return this.get(lineNumber) !== this._defaultValue;\n  }\n  set(lineNumber, value) {\n    if (lineNumber \u003c this._startLineNumber || lineNumber \u003e this._endLineNumber) {\n      return;\n    }\n    this._values[lineNumber - this._startLineNumber] = value;\n  }\n  get(lineNumber) {\n    if (lineNumber \u003c this._startLineNumber || lineNumber \u003e this._endLineNumber) {\n      return this._defaultValue;\n    }\n    return this._values[lineNumber - this._startLineNumber];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js\ninit_dom();\nvar ViewOverlayWidgets = class extends ViewPart {\n  constructor(context, viewDomNode) {\n    super(context);\n    this._viewDomNode = viewDomNode;\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._widgets = {};\n    this._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n    this._minimapWidth = layoutInfo.minimap.minimapWidth;\n    this._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n    this._editorHeight = layoutInfo.height;\n    this._editorWidth = layoutInfo.width;\n    this._viewDomNodeRect = { top: 0, left: 0, width: 0, height: 0 };\n    this._domNode = createFastDomNode(document.createElement(\"div\"));\n    PartFingerprints.write(\n      this._domNode,\n      4\n      /* PartFingerprint.OverlayWidgets */\n    );\n    this._domNode.setClassName(\"overlayWidgets\");\n    this.overflowingOverlayWidgetsDomNode = createFastDomNode(document.createElement(\"div\"));\n    PartFingerprints.write(\n      this.overflowingOverlayWidgetsDomNode,\n      5\n      /* PartFingerprint.OverflowingOverlayWidgets */\n    );\n    this.overflowingOverlayWidgetsDomNode.setClassName(\"overflowingOverlayWidgets\");\n  }\n  dispose() {\n    super.dispose();\n    this._widgets = {};\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  // ---- begin view event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n    this._minimapWidth = layoutInfo.minimap.minimapWidth;\n    this._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n    this._editorHeight = layoutInfo.height;\n    this._editorWidth = layoutInfo.width;\n    return true;\n  }\n  // ---- end view event handlers\n  _widgetCanOverflow(widget) {\n    const options2 = this._context.configuration.options;\n    const allowOverflow = options2.get(\n      4\n      /* EditorOption.allowOverflow */\n    );\n    return (widget.allowEditorOverflow || false) \u0026\u0026 allowOverflow;\n  }\n  addWidget(widget) {\n    const domNode = createFastDomNode(widget.getDomNode());\n    this._widgets[widget.getId()] = {\n      widget,\n      preference: null,\n      domNode\n    };\n    domNode.setPosition(\"absolute\");\n    domNode.setAttribute(\"widgetId\", widget.getId());\n    if (this._widgetCanOverflow(widget)) {\n      this.overflowingOverlayWidgetsDomNode.appendChild(domNode);\n    } else {\n      this._domNode.appendChild(domNode);\n    }\n    this.setShouldRender();\n    this._updateMaxMinWidth();\n  }\n  setWidgetPosition(widget, position) {\n    const widgetData = this._widgets[widget.getId()];\n    const preference = position ? position.preference : null;\n    const stack = position?.stackOridinal;\n    if (widgetData.preference === preference \u0026\u0026 widgetData.stack === stack) {\n      this._updateMaxMinWidth();\n      return false;\n    }\n    widgetData.preference = preference;\n    widgetData.stack = stack;\n    this.setShouldRender();\n    this._updateMaxMinWidth();\n    return true;\n  }\n  removeWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._widgets.hasOwnProperty(widgetId)) {\n      const widgetData = this._widgets[widgetId];\n      const domNode = widgetData.domNode.domNode;\n      delete this._widgets[widgetId];\n      domNode.remove();\n      this.setShouldRender();\n      this._updateMaxMinWidth();\n    }\n  }\n  _updateMaxMinWidth() {\n    let maxMinWidth = 0;\n    const keys = Object.keys(this._widgets);\n    for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n      const widgetId = keys[i2];\n      const widget = this._widgets[widgetId];\n      const widgetMinWidthInPx = widget.widget.getMinContentWidthInPx?.();\n      if (typeof widgetMinWidthInPx !== \"undefined\") {\n        maxMinWidth = Math.max(maxMinWidth, widgetMinWidthInPx);\n      }\n    }\n    this._context.viewLayout.setOverlayWidgetsMinWidth(maxMinWidth);\n  }\n  _renderWidget(widgetData, stackCoordinates) {\n    const domNode = widgetData.domNode;\n    if (widgetData.preference === null) {\n      domNode.setTop(\"\");\n      return;\n    }\n    const maxRight = 2 * this._verticalScrollbarWidth + this._minimapWidth;\n    if (widgetData.preference === 0 || widgetData.preference === 1) {\n      if (widgetData.preference === 1) {\n        const widgetHeight = domNode.domNode.clientHeight;\n        domNode.setTop(this._editorHeight - widgetHeight - 2 * this._horizontalScrollbarHeight);\n      } else {\n        domNode.setTop(0);\n      }\n      if (widgetData.stack !== void 0) {\n        domNode.setTop(stackCoordinates[widgetData.preference]);\n        stackCoordinates[widgetData.preference] += domNode.domNode.clientWidth;\n      } else {\n        domNode.setRight(maxRight);\n      }\n    } else if (widgetData.preference === 2) {\n      domNode.domNode.style.right = \"50%\";\n      if (widgetData.stack !== void 0) {\n        domNode.setTop(stackCoordinates[\n          2\n          /* OverlayWidgetPositionPreference.TOP_CENTER */\n        ]);\n        stackCoordinates[\n          2\n          /* OverlayWidgetPositionPreference.TOP_CENTER */\n        ] += domNode.domNode.clientHeight;\n      } else {\n        domNode.setTop(0);\n      }\n    } else {\n      const { top, left } = widgetData.preference;\n      const fixedOverflowWidgets = this._context.configuration.options.get(\n        51\n        /* EditorOption.fixedOverflowWidgets */\n      );\n      if (fixedOverflowWidgets \u0026\u0026 this._widgetCanOverflow(widgetData.widget)) {\n        const editorBoundingBox = this._viewDomNodeRect;\n        domNode.setTop(top + editorBoundingBox.top);\n        domNode.setLeft(left + editorBoundingBox.left);\n        domNode.setPosition(\"fixed\");\n      } else {\n        domNode.setTop(top);\n        domNode.setLeft(left);\n        domNode.setPosition(\"absolute\");\n      }\n    }\n  }\n  prepareRender(ctx) {\n    this._viewDomNodeRect = getDomNodePagePosition(this._viewDomNode.domNode);\n  }\n  render(ctx) {\n    this._domNode.setWidth(this._editorWidth);\n    const keys = Object.keys(this._widgets);\n    const stackCoordinates = Array.from({ length: 2 + 1 }, () =\u003e 0);\n    keys.sort((a, b) =\u003e (this._widgets[a].stack || 0) - (this._widgets[b].stack || 0));\n    for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n      const widgetId = keys[i2];\n      this._renderWidget(this._widgets[widgetId], stackCoordinates);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js\ninit_color();\ninit_position();\ninit_languages();\ninit_editorColorRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel.js\ninit_arrays();\ninit_strings();\nvar Viewport = class {\n  constructor(top, left, width2, height) {\n    this._viewportBrand = void 0;\n    this.top = top | 0;\n    this.left = left | 0;\n    this.width = width2 | 0;\n    this.height = height | 0;\n  }\n};\nvar MinimapLinesRenderingData = class {\n  constructor(tabSize, data) {\n    this.tabSize = tabSize;\n    this.data = data;\n  }\n};\nvar ViewLineData = class {\n  constructor(content, continuesWithWrappedLine, minColumn, maxColumn, startVisibleColumn, tokens, inlineDecorations) {\n    this._viewLineDataBrand = void 0;\n    this.content = content;\n    this.continuesWithWrappedLine = continuesWithWrappedLine;\n    this.minColumn = minColumn;\n    this.maxColumn = maxColumn;\n    this.startVisibleColumn = startVisibleColumn;\n    this.tokens = tokens;\n    this.inlineDecorations = inlineDecorations;\n  }\n};\nvar ViewLineRenderingData = class _ViewLineRenderingData {\n  constructor(minColumn, maxColumn, content, continuesWithWrappedLine, mightContainRTL, mightContainNonBasicASCII, tokens, inlineDecorations, tabSize, startVisibleColumn, textDirection, hasVariableFonts) {\n    this.minColumn = minColumn;\n    this.maxColumn = maxColumn;\n    this.content = content;\n    this.continuesWithWrappedLine = continuesWithWrappedLine;\n    this.isBasicASCII = _ViewLineRenderingData.isBasicASCII(content, mightContainNonBasicASCII);\n    this.containsRTL = _ViewLineRenderingData.containsRTL(content, this.isBasicASCII, mightContainRTL);\n    this.tokens = tokens;\n    this.inlineDecorations = inlineDecorations;\n    this.tabSize = tabSize;\n    this.startVisibleColumn = startVisibleColumn;\n    this.textDirection = textDirection;\n    this.hasVariableFonts = hasVariableFonts;\n  }\n  static isBasicASCII(lineContent, mightContainNonBasicASCII) {\n    if (mightContainNonBasicASCII) {\n      return isBasicASCII(lineContent);\n    }\n    return true;\n  }\n  static containsRTL(lineContent, isBasicASCII2, mightContainRTL) {\n    if (!isBasicASCII2 \u0026\u0026 mightContainRTL) {\n      return containsRTL(lineContent);\n    }\n    return false;\n  }\n};\nvar OverviewRulerDecorationsGroup = class _OverviewRulerDecorationsGroup {\n  constructor(color, zIndex, data) {\n    this.color = color;\n    this.zIndex = zIndex;\n    this.data = data;\n  }\n  static compareByRenderingProps(a, b) {\n    if (a.zIndex === b.zIndex) {\n      if (a.color \u003c b.color) {\n        return -1;\n      }\n      if (a.color \u003e b.color) {\n        return 1;\n      }\n      return 0;\n    }\n    return a.zIndex - b.zIndex;\n  }\n  static equals(a, b) {\n    return a.color === b.color \u0026\u0026 a.zIndex === b.zIndex \u0026\u0026 equals(a.data, b.data);\n  }\n  static equalsArr(a, b) {\n    return equals(a, b, _OverviewRulerDecorationsGroup.equals);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js\ninit_arrays();\nvar Settings = class {\n  constructor(config, theme) {\n    const options2 = config.options;\n    this.lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this.pixelRatio = options2.get(\n      162\n      /* EditorOption.pixelRatio */\n    );\n    this.overviewRulerLanes = options2.get(\n      94\n      /* EditorOption.overviewRulerLanes */\n    );\n    this.renderBorder = options2.get(\n      93\n      /* EditorOption.overviewRulerBorder */\n    );\n    const borderColor = theme.getColor(editorOverviewRulerBorder);\n    this.borderColor = borderColor ? borderColor.toString() : null;\n    this.hideCursor = options2.get(\n      68\n      /* EditorOption.hideCursorInOverviewRuler */\n    );\n    const cursorColorSingle = theme.getColor(editorCursorForeground);\n    this.cursorColorSingle = cursorColorSingle ? cursorColorSingle.transparent(0.7).toString() : null;\n    const cursorColorPrimary = theme.getColor(editorMultiCursorPrimaryForeground);\n    this.cursorColorPrimary = cursorColorPrimary ? cursorColorPrimary.transparent(0.7).toString() : null;\n    const cursorColorSecondary = theme.getColor(editorMultiCursorSecondaryForeground);\n    this.cursorColorSecondary = cursorColorSecondary ? cursorColorSecondary.transparent(0.7).toString() : null;\n    this.themeType = theme.type;\n    const minimapOpts = options2.get(\n      81\n      /* EditorOption.minimap */\n    );\n    const minimapEnabled = minimapOpts.enabled;\n    const minimapSide = minimapOpts.side;\n    const themeColor = theme.getColor(editorOverviewRulerBackground);\n    const defaultBackground = TokenizationRegistry2.getDefaultBackground();\n    if (themeColor) {\n      this.backgroundColor = themeColor;\n    } else if (minimapEnabled \u0026\u0026 minimapSide === \"right\") {\n      this.backgroundColor = defaultBackground;\n    } else {\n      this.backgroundColor = null;\n    }\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const position = layoutInfo.overviewRuler;\n    this.top = position.top;\n    this.right = position.right;\n    this.domWidth = position.width;\n    this.domHeight = position.height;\n    if (this.overviewRulerLanes === 0) {\n      this.canvasWidth = 0;\n      this.canvasHeight = 0;\n    } else {\n      this.canvasWidth = this.domWidth * this.pixelRatio | 0;\n      this.canvasHeight = this.domHeight * this.pixelRatio | 0;\n    }\n    const [x, w] = this._initLanes(1, this.canvasWidth, this.overviewRulerLanes);\n    this.x = x;\n    this.w = w;\n  }\n  _initLanes(canvasLeftOffset, canvasWidth, laneCount) {\n    const remainingWidth = canvasWidth - canvasLeftOffset;\n    if (laneCount \u003e= 3) {\n      const leftWidth = Math.floor(remainingWidth / 3);\n      const rightWidth = Math.floor(remainingWidth / 3);\n      const centerWidth = remainingWidth - leftWidth - rightWidth;\n      const leftOffset = canvasLeftOffset;\n      const centerOffset = leftOffset + leftWidth;\n      const rightOffset = leftOffset + leftWidth + centerWidth;\n      return [\n        [\n          0,\n          leftOffset,\n          // Left\n          centerOffset,\n          // Center\n          leftOffset,\n          // Left | Center\n          rightOffset,\n          // Right\n          leftOffset,\n          // Left | Right\n          centerOffset,\n          // Center | Right\n          leftOffset\n          // Left | Center | Right\n        ],\n        [\n          0,\n          leftWidth,\n          // Left\n          centerWidth,\n          // Center\n          leftWidth + centerWidth,\n          // Left | Center\n          rightWidth,\n          // Right\n          leftWidth + centerWidth + rightWidth,\n          // Left | Right\n          centerWidth + rightWidth,\n          // Center | Right\n          leftWidth + centerWidth + rightWidth\n          // Left | Center | Right\n        ]\n      ];\n    } else if (laneCount === 2) {\n      const leftWidth = Math.floor(remainingWidth / 2);\n      const rightWidth = remainingWidth - leftWidth;\n      const leftOffset = canvasLeftOffset;\n      const rightOffset = leftOffset + leftWidth;\n      return [\n        [\n          0,\n          leftOffset,\n          // Left\n          leftOffset,\n          // Center\n          leftOffset,\n          // Left | Center\n          rightOffset,\n          // Right\n          leftOffset,\n          // Left | Right\n          leftOffset,\n          // Center | Right\n          leftOffset\n          // Left | Center | Right\n        ],\n        [\n          0,\n          leftWidth,\n          // Left\n          leftWidth,\n          // Center\n          leftWidth,\n          // Left | Center\n          rightWidth,\n          // Right\n          leftWidth + rightWidth,\n          // Left | Right\n          leftWidth + rightWidth,\n          // Center | Right\n          leftWidth + rightWidth\n          // Left | Center | Right\n        ]\n      ];\n    } else {\n      const offset = canvasLeftOffset;\n      const width2 = remainingWidth;\n      return [\n        [\n          0,\n          offset,\n          // Left\n          offset,\n          // Center\n          offset,\n          // Left | Center\n          offset,\n          // Right\n          offset,\n          // Left | Right\n          offset,\n          // Center | Right\n          offset\n          // Left | Center | Right\n        ],\n        [\n          0,\n          width2,\n          // Left\n          width2,\n          // Center\n          width2,\n          // Left | Center\n          width2,\n          // Right\n          width2,\n          // Left | Right\n          width2,\n          // Center | Right\n          width2\n          // Left | Center | Right\n        ]\n      ];\n    }\n  }\n  equals(other) {\n    return this.lineHeight === other.lineHeight \u0026\u0026 this.pixelRatio === other.pixelRatio \u0026\u0026 this.overviewRulerLanes === other.overviewRulerLanes \u0026\u0026 this.renderBorder === other.renderBorder \u0026\u0026 this.borderColor === other.borderColor \u0026\u0026 this.hideCursor === other.hideCursor \u0026\u0026 this.cursorColorSingle === other.cursorColorSingle \u0026\u0026 this.cursorColorPrimary === other.cursorColorPrimary \u0026\u0026 this.cursorColorSecondary === other.cursorColorSecondary \u0026\u0026 this.themeType === other.themeType \u0026\u0026 Color.equals(this.backgroundColor, other.backgroundColor) \u0026\u0026 this.top === other.top \u0026\u0026 this.right === other.right \u0026\u0026 this.domWidth === other.domWidth \u0026\u0026 this.domHeight === other.domHeight \u0026\u0026 this.canvasWidth === other.canvasWidth \u0026\u0026 this.canvasHeight === other.canvasHeight;\n  }\n};\nvar DecorationsOverviewRuler = class extends ViewPart {\n  constructor(context) {\n    super(context);\n    this._actualShouldRender = 0;\n    this._renderedDecorations = [];\n    this._renderedCursorPositions = [];\n    this._domNode = createFastDomNode(document.createElement(\"canvas\"));\n    this._domNode.setClassName(\"decorationsOverviewRuler\");\n    this._domNode.setPosition(\"absolute\");\n    this._domNode.setLayerHinting(true);\n    this._domNode.setContain(\"strict\");\n    this._domNode.setAttribute(\"aria-hidden\", \"true\");\n    this._updateSettings(false);\n    this._tokensColorTrackerListener = TokenizationRegistry2.onDidChange((e) =\u003e {\n      if (e.changedColorMap) {\n        this._updateSettings(true);\n      }\n    });\n    this._cursorPositions = [{ position: new Position(1, 1), color: this._settings.cursorColorSingle }];\n  }\n  dispose() {\n    super.dispose();\n    this._tokensColorTrackerListener.dispose();\n  }\n  _updateSettings(renderNow) {\n    const newSettings = new Settings(this._context.configuration, this._context.theme);\n    if (this._settings \u0026\u0026 this._settings.equals(newSettings)) {\n      return false;\n    }\n    this._settings = newSettings;\n    this._domNode.setTop(this._settings.top);\n    this._domNode.setRight(this._settings.right);\n    this._domNode.setWidth(this._settings.domWidth);\n    this._domNode.setHeight(this._settings.domHeight);\n    this._domNode.domNode.width = this._settings.canvasWidth;\n    this._domNode.domNode.height = this._settings.canvasHeight;\n    if (renderNow) {\n      this._render();\n    }\n    return true;\n  }\n  // ---- begin view event handlers\n  _markRenderingIsNeeded() {\n    this._actualShouldRender = 2;\n    return true;\n  }\n  _markRenderingIsMaybeNeeded() {\n    this._actualShouldRender = 1;\n    return true;\n  }\n  onConfigurationChanged(e) {\n    return this._updateSettings(false) ? this._markRenderingIsNeeded() : false;\n  }\n  onCursorStateChanged(e) {\n    this._cursorPositions = [];\n    for (let i2 = 0, len = e.selections.length; i2 \u003c len; i2++) {\n      let color = this._settings.cursorColorSingle;\n      if (len \u003e 1) {\n        color = i2 === 0 ? this._settings.cursorColorPrimary : this._settings.cursorColorSecondary;\n      }\n      this._cursorPositions.push({ position: e.selections[i2].getPosition(), color });\n    }\n    this._cursorPositions.sort((a, b) =\u003e Position.compare(a.position, b.position));\n    return this._markRenderingIsMaybeNeeded();\n  }\n  onDecorationsChanged(e) {\n    if (e.affectsOverviewRuler) {\n      return this._markRenderingIsMaybeNeeded();\n    }\n    return false;\n  }\n  onFlushed(e) {\n    return this._markRenderingIsNeeded();\n  }\n  onScrollChanged(e) {\n    return e.scrollHeightChanged ? this._markRenderingIsNeeded() : false;\n  }\n  onZonesChanged(e) {\n    return this._markRenderingIsNeeded();\n  }\n  onThemeChanged(e) {\n    return this._updateSettings(false) ? this._markRenderingIsNeeded() : false;\n  }\n  // ---- end view event handlers\n  getDomNode() {\n    return this._domNode.domNode;\n  }\n  prepareRender(ctx) {\n  }\n  render(editorCtx) {\n    this._render();\n    this._actualShouldRender = 0;\n  }\n  _render() {\n    const backgroundColor = this._settings.backgroundColor;\n    if (this._settings.overviewRulerLanes === 0) {\n      this._domNode.setBackgroundColor(backgroundColor ? Color.Format.CSS.formatHexA(backgroundColor) : \"\");\n      this._domNode.setDisplay(\"none\");\n      return;\n    }\n    const decorations = this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);\n    decorations.sort(OverviewRulerDecorationsGroup.compareByRenderingProps);\n    if (this._actualShouldRender === 1 \u0026\u0026 !OverviewRulerDecorationsGroup.equalsArr(this._renderedDecorations, decorations)) {\n      this._actualShouldRender = 2;\n    }\n    if (this._actualShouldRender === 1 \u0026\u0026 !equals(this._renderedCursorPositions, this._cursorPositions, (a, b) =\u003e a.position.lineNumber === b.position.lineNumber \u0026\u0026 a.color === b.color)) {\n      this._actualShouldRender = 2;\n    }\n    if (this._actualShouldRender === 1) {\n      return;\n    }\n    this._renderedDecorations = decorations;\n    this._renderedCursorPositions = this._cursorPositions;\n    this._domNode.setDisplay(\"block\");\n    const canvasWidth = this._settings.canvasWidth;\n    const canvasHeight = this._settings.canvasHeight;\n    const lineHeight = this._settings.lineHeight;\n    const viewLayout = this._context.viewLayout;\n    const outerHeight = this._context.viewLayout.getScrollHeight();\n    const heightRatio = canvasHeight / outerHeight;\n    const minDecorationHeight = 6 * this._settings.pixelRatio | 0;\n    const halfMinDecorationHeight = minDecorationHeight / 2 | 0;\n    const canvasCtx = this._domNode.domNode.getContext(\"2d\");\n    if (backgroundColor) {\n      if (backgroundColor.isOpaque()) {\n        canvasCtx.fillStyle = Color.Format.CSS.formatHexA(backgroundColor);\n        canvasCtx.fillRect(0, 0, canvasWidth, canvasHeight);\n      } else {\n        canvasCtx.clearRect(0, 0, canvasWidth, canvasHeight);\n        canvasCtx.fillStyle = Color.Format.CSS.formatHexA(backgroundColor);\n        canvasCtx.fillRect(0, 0, canvasWidth, canvasHeight);\n      }\n    } else {\n      canvasCtx.clearRect(0, 0, canvasWidth, canvasHeight);\n    }\n    const x = this._settings.x;\n    const w = this._settings.w;\n    for (const decorationGroup of decorations) {\n      const color = decorationGroup.color;\n      const decorationGroupData = decorationGroup.data;\n      canvasCtx.fillStyle = color;\n      let prevLane = 0;\n      let prevY1 = 0;\n      let prevY2 = 0;\n      for (let i2 = 0, len = decorationGroupData.length / 3; i2 \u003c len; i2++) {\n        const lane = decorationGroupData[3 * i2];\n        const startLineNumber = decorationGroupData[3 * i2 + 1];\n        const endLineNumber = decorationGroupData[3 * i2 + 2];\n        let y1 = viewLayout.getVerticalOffsetForLineNumber(startLineNumber) * heightRatio | 0;\n        let y2 = (viewLayout.getVerticalOffsetForLineNumber(endLineNumber) + lineHeight) * heightRatio | 0;\n        const height = y2 - y1;\n        if (height \u003c minDecorationHeight) {\n          let yCenter = (y1 + y2) / 2 | 0;\n          if (yCenter \u003c halfMinDecorationHeight) {\n            yCenter = halfMinDecorationHeight;\n          } else if (yCenter + halfMinDecorationHeight \u003e canvasHeight) {\n            yCenter = canvasHeight - halfMinDecorationHeight;\n          }\n          y1 = yCenter - halfMinDecorationHeight;\n          y2 = yCenter + halfMinDecorationHeight;\n        }\n        if (y1 \u003e prevY2 + 1 || lane !== prevLane) {\n          if (i2 !== 0) {\n            canvasCtx.fillRect(x[prevLane], prevY1, w[prevLane], prevY2 - prevY1);\n          }\n          prevLane = lane;\n          prevY1 = y1;\n          prevY2 = y2;\n        } else {\n          if (y2 \u003e prevY2) {\n            prevY2 = y2;\n          }\n        }\n      }\n      canvasCtx.fillRect(x[prevLane], prevY1, w[prevLane], prevY2 - prevY1);\n    }\n    if (!this._settings.hideCursor) {\n      const cursorHeight = 2 * this._settings.pixelRatio | 0;\n      const halfCursorHeight = cursorHeight / 2 | 0;\n      const cursorX = this._settings.x[\n        7\n        /* OverviewRulerLane.Full */\n      ];\n      const cursorW = this._settings.w[\n        7\n        /* OverviewRulerLane.Full */\n      ];\n      let prevY1 = -100;\n      let prevY2 = -100;\n      let prevColor = null;\n      for (let i2 = 0, len = this._cursorPositions.length; i2 \u003c len; i2++) {\n        const color = this._cursorPositions[i2].color;\n        if (!color) {\n          continue;\n        }\n        const cursor = this._cursorPositions[i2].position;\n        let yCenter = viewLayout.getVerticalOffsetForLineNumber(cursor.lineNumber) * heightRatio | 0;\n        if (yCenter \u003c halfCursorHeight) {\n          yCenter = halfCursorHeight;\n        } else if (yCenter + halfCursorHeight \u003e canvasHeight) {\n          yCenter = canvasHeight - halfCursorHeight;\n        }\n        const y1 = yCenter - halfCursorHeight;\n        const y2 = y1 + cursorHeight;\n        if (y1 \u003e prevY2 + 1 || color !== prevColor) {\n          if (i2 !== 0 \u0026\u0026 prevColor) {\n            canvasCtx.fillRect(cursorX, prevY1, cursorW, prevY2 - prevY1);\n          }\n          prevY1 = y1;\n          prevY2 = y2;\n        } else {\n          if (y2 \u003e prevY2) {\n            prevY2 = y2;\n          }\n        }\n        prevColor = color;\n        canvasCtx.fillStyle = color;\n      }\n      if (prevColor) {\n        canvasCtx.fillRect(cursorX, prevY1, cursorW, prevY2 - prevY1);\n      }\n    }\n    if (this._settings.renderBorder \u0026\u0026 this._settings.borderColor \u0026\u0026 this._settings.overviewRulerLanes \u003e 0) {\n      canvasCtx.beginPath();\n      canvasCtx.lineWidth = 1;\n      canvasCtx.strokeStyle = this._settings.borderColor;\n      canvasCtx.moveTo(0, 0);\n      canvasCtx.lineTo(0, canvasHeight);\n      canvasCtx.moveTo(1, 0);\n      canvasCtx.lineTo(canvasWidth, 0);\n      canvasCtx.stroke();\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/overviewZoneManager.js\nvar ColorZone = class {\n  constructor(from, to, colorId) {\n    this._colorZoneBrand = void 0;\n    this.from = from | 0;\n    this.to = to | 0;\n    this.colorId = colorId | 0;\n  }\n  static compare(a, b) {\n    if (a.colorId === b.colorId) {\n      if (a.from === b.from) {\n        return a.to - b.to;\n      }\n      return a.from - b.from;\n    }\n    return a.colorId - b.colorId;\n  }\n};\nvar OverviewRulerZone = class {\n  constructor(startLineNumber, endLineNumber, heightInLines, color) {\n    this._overviewRulerZoneBrand = void 0;\n    this.startLineNumber = startLineNumber;\n    this.endLineNumber = endLineNumber;\n    this.heightInLines = heightInLines;\n    this.color = color;\n    this._colorZone = null;\n  }\n  static compare(a, b) {\n    if (a.color === b.color) {\n      if (a.startLineNumber === b.startLineNumber) {\n        if (a.heightInLines === b.heightInLines) {\n          return a.endLineNumber - b.endLineNumber;\n        }\n        return a.heightInLines - b.heightInLines;\n      }\n      return a.startLineNumber - b.startLineNumber;\n    }\n    return a.color \u003c b.color ? -1 : 1;\n  }\n  setColorZone(colorZone) {\n    this._colorZone = colorZone;\n  }\n  getColorZones() {\n    return this._colorZone;\n  }\n};\nvar OverviewZoneManager = class {\n  constructor(getVerticalOffsetForLine) {\n    this._getVerticalOffsetForLine = getVerticalOffsetForLine;\n    this._zones = [];\n    this._colorZonesInvalid = false;\n    this._lineHeight = 0;\n    this._domWidth = 0;\n    this._domHeight = 0;\n    this._outerHeight = 0;\n    this._pixelRatio = 1;\n    this._lastAssignedId = 0;\n    this._color2Id = /* @__PURE__ */ Object.create(null);\n    this._id2Color = [];\n  }\n  getId2Color() {\n    return this._id2Color;\n  }\n  setZones(newZones) {\n    this._zones = newZones;\n    this._zones.sort(OverviewRulerZone.compare);\n  }\n  setLineHeight(lineHeight) {\n    if (this._lineHeight === lineHeight) {\n      return false;\n    }\n    this._lineHeight = lineHeight;\n    this._colorZonesInvalid = true;\n    return true;\n  }\n  setPixelRatio(pixelRatio) {\n    this._pixelRatio = pixelRatio;\n    this._colorZonesInvalid = true;\n  }\n  getDOMWidth() {\n    return this._domWidth;\n  }\n  getCanvasWidth() {\n    return this._domWidth * this._pixelRatio;\n  }\n  setDOMWidth(width2) {\n    if (this._domWidth === width2) {\n      return false;\n    }\n    this._domWidth = width2;\n    this._colorZonesInvalid = true;\n    return true;\n  }\n  getDOMHeight() {\n    return this._domHeight;\n  }\n  getCanvasHeight() {\n    return this._domHeight * this._pixelRatio;\n  }\n  setDOMHeight(height) {\n    if (this._domHeight === height) {\n      return false;\n    }\n    this._domHeight = height;\n    this._colorZonesInvalid = true;\n    return true;\n  }\n  getOuterHeight() {\n    return this._outerHeight;\n  }\n  setOuterHeight(outerHeight) {\n    if (this._outerHeight === outerHeight) {\n      return false;\n    }\n    this._outerHeight = outerHeight;\n    this._colorZonesInvalid = true;\n    return true;\n  }\n  resolveColorZones() {\n    const colorZonesInvalid = this._colorZonesInvalid;\n    const lineHeight = Math.floor(this._lineHeight);\n    const totalHeight = Math.floor(this.getCanvasHeight());\n    const outerHeight = Math.floor(this._outerHeight);\n    const heightRatio = totalHeight / outerHeight;\n    const halfMinimumHeight = Math.floor(4 * this._pixelRatio / 2);\n    const allColorZones = [];\n    for (let i2 = 0, len = this._zones.length; i2 \u003c len; i2++) {\n      const zone = this._zones[i2];\n      if (!colorZonesInvalid) {\n        const colorZone2 = zone.getColorZones();\n        if (colorZone2) {\n          allColorZones.push(colorZone2);\n          continue;\n        }\n      }\n      const offset1 = this._getVerticalOffsetForLine(zone.startLineNumber);\n      const offset2 = zone.heightInLines === 0 ? this._getVerticalOffsetForLine(zone.endLineNumber) + lineHeight : offset1 + zone.heightInLines * lineHeight;\n      const y1 = Math.floor(heightRatio * offset1);\n      const y2 = Math.floor(heightRatio * offset2);\n      let ycenter = Math.floor((y1 + y2) / 2);\n      let halfHeight = y2 - ycenter;\n      if (halfHeight \u003c halfMinimumHeight) {\n        halfHeight = halfMinimumHeight;\n      }\n      if (ycenter - halfHeight \u003c 0) {\n        ycenter = halfHeight;\n      }\n      if (ycenter + halfHeight \u003e totalHeight) {\n        ycenter = totalHeight - halfHeight;\n      }\n      const color = zone.color;\n      let colorId = this._color2Id[color];\n      if (!colorId) {\n        colorId = ++this._lastAssignedId;\n        this._color2Id[color] = colorId;\n        this._id2Color[colorId] = color;\n      }\n      const colorZone = new ColorZone(ycenter - halfHeight, ycenter + halfHeight, colorId);\n      zone.setColorZone(colorZone);\n      allColorZones.push(colorZone);\n    }\n    this._colorZonesInvalid = false;\n    allColorZones.sort(ColorZone.compare);\n    return allColorZones;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js\nvar OverviewRuler = class extends ViewEventHandler {\n  constructor(context, cssClassName) {\n    super();\n    this._context = context;\n    const options2 = this._context.configuration.options;\n    this._domNode = createFastDomNode(document.createElement(\"canvas\"));\n    this._domNode.setClassName(cssClassName);\n    this._domNode.setPosition(\"absolute\");\n    this._domNode.setLayerHinting(true);\n    this._domNode.setContain(\"strict\");\n    this._zoneManager = new OverviewZoneManager((lineNumber) =\u003e this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber));\n    this._zoneManager.setDOMWidth(0);\n    this._zoneManager.setDOMHeight(0);\n    this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight());\n    this._zoneManager.setLineHeight(options2.get(\n      75\n      /* EditorOption.lineHeight */\n    ));\n    this._zoneManager.setPixelRatio(options2.get(\n      162\n      /* EditorOption.pixelRatio */\n    ));\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    super.dispose();\n  }\n  // ---- begin view event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    if (e.hasChanged(\n      75\n      /* EditorOption.lineHeight */\n    )) {\n      this._zoneManager.setLineHeight(options2.get(\n        75\n        /* EditorOption.lineHeight */\n      ));\n      this._render();\n    }\n    if (e.hasChanged(\n      162\n      /* EditorOption.pixelRatio */\n    )) {\n      this._zoneManager.setPixelRatio(options2.get(\n        162\n        /* EditorOption.pixelRatio */\n      ));\n      this._domNode.setWidth(this._zoneManager.getDOMWidth());\n      this._domNode.setHeight(this._zoneManager.getDOMHeight());\n      this._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n      this._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n      this._render();\n    }\n    return true;\n  }\n  onFlushed(e) {\n    this._render();\n    return true;\n  }\n  onScrollChanged(e) {\n    if (e.scrollHeightChanged) {\n      this._zoneManager.setOuterHeight(e.scrollHeight);\n      this._render();\n    }\n    return true;\n  }\n  onZonesChanged(e) {\n    this._render();\n    return true;\n  }\n  // ---- end view event handlers\n  getDomNode() {\n    return this._domNode.domNode;\n  }\n  setLayout(position) {\n    this._domNode.setTop(position.top);\n    this._domNode.setRight(position.right);\n    let hasChanged = false;\n    hasChanged = this._zoneManager.setDOMWidth(position.width) || hasChanged;\n    hasChanged = this._zoneManager.setDOMHeight(position.height) || hasChanged;\n    if (hasChanged) {\n      this._domNode.setWidth(this._zoneManager.getDOMWidth());\n      this._domNode.setHeight(this._zoneManager.getDOMHeight());\n      this._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n      this._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n      this._render();\n    }\n  }\n  setZones(zones) {\n    this._zoneManager.setZones(zones);\n    this._render();\n  }\n  _render() {\n    if (this._zoneManager.getOuterHeight() === 0) {\n      return false;\n    }\n    const width2 = this._zoneManager.getCanvasWidth();\n    const height = this._zoneManager.getCanvasHeight();\n    const colorZones = this._zoneManager.resolveColorZones();\n    const id2Color = this._zoneManager.getId2Color();\n    const ctx = this._domNode.domNode.getContext(\"2d\");\n    ctx.clearRect(0, 0, width2, height);\n    if (colorZones.length \u003e 0) {\n      this._renderOneLane(ctx, colorZones, id2Color, width2);\n    }\n    return true;\n  }\n  _renderOneLane(ctx, colorZones, id2Color, width2) {\n    let currentColorId = 0;\n    let currentFrom = 0;\n    let currentTo = 0;\n    for (const zone of colorZones) {\n      const zoneColorId = zone.colorId;\n      const zoneFrom = zone.from;\n      const zoneTo = zone.to;\n      if (zoneColorId !== currentColorId) {\n        ctx.fillRect(0, currentFrom, width2, currentTo - currentFrom);\n        currentColorId = zoneColorId;\n        ctx.fillStyle = id2Color[currentColorId];\n        currentFrom = zoneFrom;\n        currentTo = zoneTo;\n      } else {\n        if (currentTo \u003e= zoneFrom) {\n          currentTo = Math.max(currentTo, zoneTo);\n        } else {\n          ctx.fillRect(0, currentFrom, width2, currentTo - currentFrom);\n          currentFrom = zoneFrom;\n          currentTo = zoneTo;\n        }\n      }\n    }\n    ctx.fillRect(0, currentFrom, width2, currentTo - currentFrom);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/rulers/rulers.js\nvar Rulers = class extends ViewPart {\n  constructor(context) {\n    super(context);\n    this.domNode = createFastDomNode(document.createElement(\"div\"));\n    this.domNode.setAttribute(\"role\", \"presentation\");\n    this.domNode.setAttribute(\"aria-hidden\", \"true\");\n    this.domNode.setClassName(\"view-rulers\");\n    this._renderedRulers = [];\n    const options2 = this._context.configuration.options;\n    this._rulers = options2.get(\n      115\n      /* EditorOption.rulers */\n    );\n    this._typicalHalfwidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n  }\n  dispose() {\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    this._rulers = options2.get(\n      115\n      /* EditorOption.rulers */\n    );\n    this._typicalHalfwidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollHeightChanged;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n  }\n  _ensureRulersCount() {\n    const currentCount = this._renderedRulers.length;\n    const desiredCount = this._rulers.length;\n    if (currentCount === desiredCount) {\n      return;\n    }\n    if (currentCount \u003c desiredCount) {\n      const { tabSize } = this._context.viewModel.model.getOptions();\n      const rulerWidth = tabSize;\n      let addCount = desiredCount - currentCount;\n      while (addCount \u003e 0) {\n        const node = createFastDomNode(document.createElement(\"div\"));\n        node.setClassName(\"view-ruler\");\n        node.setWidth(rulerWidth);\n        this.domNode.appendChild(node);\n        this._renderedRulers.push(node);\n        addCount--;\n      }\n      return;\n    }\n    let removeCount = currentCount - desiredCount;\n    while (removeCount \u003e 0) {\n      const node = this._renderedRulers.pop();\n      this.domNode.removeChild(node);\n      removeCount--;\n    }\n  }\n  render(ctx) {\n    this._ensureRulersCount();\n    for (let i2 = 0, len = this._rulers.length; i2 \u003c len; i2++) {\n      const node = this._renderedRulers[i2];\n      const ruler = this._rulers[i2];\n      node.setBoxShadow(ruler.color ? `1px 0 0 0 ${ruler.color} inset` : ``);\n      node.setHeight(Math.min(ctx.scrollHeight, 1e6));\n      node.setLeft(ruler.column * this._typicalHalfwidthCharacterWidth);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js\nvar ScrollDecorationViewPart = class extends ViewPart {\n  constructor(context) {\n    super(context);\n    this._scrollTop = 0;\n    this._width = 0;\n    this._updateWidth();\n    this._shouldShow = false;\n    const options2 = this._context.configuration.options;\n    const scrollbar = options2.get(\n      116\n      /* EditorOption.scrollbar */\n    );\n    this._useShadows = scrollbar.useShadows;\n    this._domNode = createFastDomNode(document.createElement(\"div\"));\n    this._domNode.setAttribute(\"role\", \"presentation\");\n    this._domNode.setAttribute(\"aria-hidden\", \"true\");\n  }\n  dispose() {\n    super.dispose();\n  }\n  _updateShouldShow() {\n    const newShouldShow = this._useShadows \u0026\u0026 this._scrollTop \u003e 0;\n    if (this._shouldShow !== newShouldShow) {\n      this._shouldShow = newShouldShow;\n      return true;\n    }\n    return false;\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  _updateWidth() {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    if (layoutInfo.minimap.renderMinimap === 0 || layoutInfo.minimap.minimapWidth \u003e 0 \u0026\u0026 layoutInfo.minimap.minimapLeft === 0) {\n      this._width = layoutInfo.width;\n    } else {\n      this._width = layoutInfo.width - layoutInfo.verticalScrollbarWidth;\n    }\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const scrollbar = options2.get(\n      116\n      /* EditorOption.scrollbar */\n    );\n    this._useShadows = scrollbar.useShadows;\n    this._updateWidth();\n    this._updateShouldShow();\n    return true;\n  }\n  onScrollChanged(e) {\n    this._scrollTop = e.scrollTop;\n    return this._updateShouldShow();\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n  }\n  render(ctx) {\n    this._domNode.setWidth(this._width);\n    this._domNode.setClassName(this._shouldShow ? \"scroll-decoration\" : \"\");\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/selections/selections.js\ninit_colorRegistry();\ninit_themeService();\nvar HorizontalRangeWithStyle = class {\n  constructor(other) {\n    this.left = other.left;\n    this.width = other.width;\n    this.startStyle = null;\n    this.endStyle = null;\n  }\n};\nvar LineVisibleRangesWithStyle = class {\n  constructor(lineNumber, ranges) {\n    this.lineNumber = lineNumber;\n    this.ranges = ranges;\n  }\n};\nfunction toStyledRange(item) {\n  return new HorizontalRangeWithStyle(item);\n}\nfunction toStyled(item) {\n  return new LineVisibleRangesWithStyle(item.lineNumber, item.ranges.map(toStyledRange));\n}\nvar SelectionsOverlay = class _SelectionsOverlay extends DynamicViewOverlay {\n  static {\n    this.SELECTION_CLASS_NAME = \"selected-text\";\n  }\n  static {\n    this.SELECTION_TOP_LEFT = \"top-left-radius\";\n  }\n  static {\n    this.SELECTION_BOTTOM_LEFT = \"bottom-left-radius\";\n  }\n  static {\n    this.SELECTION_TOP_RIGHT = \"top-right-radius\";\n  }\n  static {\n    this.SELECTION_BOTTOM_RIGHT = \"bottom-right-radius\";\n  }\n  static {\n    this.EDITOR_BACKGROUND_CLASS_NAME = \"monaco-editor-background\";\n  }\n  static {\n    this.ROUNDED_PIECE_WIDTH = 10;\n  }\n  constructor(context) {\n    super();\n    this._previousFrameVisibleRangesWithStyle = [];\n    this._context = context;\n    const options2 = this._context.configuration.options;\n    this._roundedSelection = options2.get(\n      114\n      /* EditorOption.roundedSelection */\n    );\n    this._typicalHalfwidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n    this._selections = [];\n    this._renderResult = null;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    this._renderResult = null;\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    this._roundedSelection = options2.get(\n      114\n      /* EditorOption.roundedSelection */\n    );\n    this._typicalHalfwidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n    return true;\n  }\n  onCursorStateChanged(e) {\n    this._selections = e.selections.slice(0);\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  _visibleRangesHaveGaps(linesVisibleRanges) {\n    for (let i2 = 0, len = linesVisibleRanges.length; i2 \u003c len; i2++) {\n      const lineVisibleRanges = linesVisibleRanges[i2];\n      if (lineVisibleRanges.ranges.length \u003e 1) {\n        return true;\n      }\n    }\n    return false;\n  }\n  _enrichVisibleRangesWithStyle(viewport, linesVisibleRanges, previousFrame) {\n    const epsilon = this._typicalHalfwidthCharacterWidth / 4;\n    let previousFrameTop = null;\n    let previousFrameBottom = null;\n    if (previousFrame \u0026\u0026 previousFrame.length \u003e 0 \u0026\u0026 linesVisibleRanges.length \u003e 0) {\n      const topLineNumber = linesVisibleRanges[0].lineNumber;\n      if (topLineNumber === viewport.startLineNumber) {\n        for (let i2 = 0; !previousFrameTop \u0026\u0026 i2 \u003c previousFrame.length; i2++) {\n          if (previousFrame[i2].lineNumber === topLineNumber) {\n            previousFrameTop = previousFrame[i2].ranges[0];\n          }\n        }\n      }\n      const bottomLineNumber = linesVisibleRanges[linesVisibleRanges.length - 1].lineNumber;\n      if (bottomLineNumber === viewport.endLineNumber) {\n        for (let i2 = previousFrame.length - 1; !previousFrameBottom \u0026\u0026 i2 \u003e= 0; i2--) {\n          if (previousFrame[i2].lineNumber === bottomLineNumber) {\n            previousFrameBottom = previousFrame[i2].ranges[0];\n          }\n        }\n      }\n      if (previousFrameTop \u0026\u0026 !previousFrameTop.startStyle) {\n        previousFrameTop = null;\n      }\n      if (previousFrameBottom \u0026\u0026 !previousFrameBottom.startStyle) {\n        previousFrameBottom = null;\n      }\n    }\n    for (let i2 = 0, len = linesVisibleRanges.length; i2 \u003c len; i2++) {\n      const curLineRange = linesVisibleRanges[i2].ranges[0];\n      const curLeft = curLineRange.left;\n      const curRight = curLineRange.left + curLineRange.width;\n      const startStyle = {\n        top: 0,\n        bottom: 0\n        /* CornerStyle.EXTERN */\n      };\n      const endStyle = {\n        top: 0,\n        bottom: 0\n        /* CornerStyle.EXTERN */\n      };\n      if (i2 \u003e 0) {\n        const prevLeft = linesVisibleRanges[i2 - 1].ranges[0].left;\n        const prevRight = linesVisibleRanges[i2 - 1].ranges[0].left + linesVisibleRanges[i2 - 1].ranges[0].width;\n        if (abs(curLeft - prevLeft) \u003c epsilon) {\n          startStyle.top = 2;\n        } else if (curLeft \u003e prevLeft) {\n          startStyle.top = 1;\n        }\n        if (abs(curRight - prevRight) \u003c epsilon) {\n          endStyle.top = 2;\n        } else if (prevLeft \u003c curRight \u0026\u0026 curRight \u003c prevRight) {\n          endStyle.top = 1;\n        }\n      } else if (previousFrameTop) {\n        startStyle.top = previousFrameTop.startStyle.top;\n        endStyle.top = previousFrameTop.endStyle.top;\n      }\n      if (i2 + 1 \u003c len) {\n        const nextLeft = linesVisibleRanges[i2 + 1].ranges[0].left;\n        const nextRight = linesVisibleRanges[i2 + 1].ranges[0].left + linesVisibleRanges[i2 + 1].ranges[0].width;\n        if (abs(curLeft - nextLeft) \u003c epsilon) {\n          startStyle.bottom = 2;\n        } else if (nextLeft \u003c curLeft \u0026\u0026 curLeft \u003c nextRight) {\n          startStyle.bottom = 1;\n        }\n        if (abs(curRight - nextRight) \u003c epsilon) {\n          endStyle.bottom = 2;\n        } else if (curRight \u003c nextRight) {\n          endStyle.bottom = 1;\n        }\n      } else if (previousFrameBottom) {\n        startStyle.bottom = previousFrameBottom.startStyle.bottom;\n        endStyle.bottom = previousFrameBottom.endStyle.bottom;\n      }\n      curLineRange.startStyle = startStyle;\n      curLineRange.endStyle = endStyle;\n    }\n  }\n  _getVisibleRangesWithStyle(selection, ctx, previousFrame) {\n    const _linesVisibleRanges = ctx.linesVisibleRangesForRange(selection, true) || [];\n    const linesVisibleRanges = _linesVisibleRanges.map(toStyled);\n    const visibleRangesHaveGaps = this._visibleRangesHaveGaps(linesVisibleRanges);\n    if (!visibleRangesHaveGaps \u0026\u0026 this._roundedSelection) {\n      this._enrichVisibleRangesWithStyle(ctx.visibleRange, linesVisibleRanges, previousFrame);\n    }\n    return linesVisibleRanges;\n  }\n  _createSelectionPiece(top, bottom, className2, left, width2) {\n    return '\u003cdiv class=\"cslr ' + className2 + '\" style=\"top:' + top.toString() + \"px;bottom:\" + bottom.toString() + \"px;left:\" + left.toString() + \"px;width:\" + width2.toString() + 'px;\"\u003e\u003c/div\u003e';\n  }\n  _actualRenderOneSelection(output2, visibleStartLineNumber, hasMultipleSelections, visibleRanges) {\n    if (visibleRanges.length === 0) {\n      return;\n    }\n    const visibleRangesHaveStyle = !!visibleRanges[0].ranges[0].startStyle;\n    const firstLineNumber = visibleRanges[0].lineNumber;\n    const lastLineNumber = visibleRanges[visibleRanges.length - 1].lineNumber;\n    for (let i2 = 0, len = visibleRanges.length; i2 \u003c len; i2++) {\n      const lineVisibleRanges = visibleRanges[i2];\n      const lineNumber = lineVisibleRanges.lineNumber;\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      const top = hasMultipleSelections ? lineNumber === firstLineNumber ? 1 : 0 : 0;\n      const bottom = hasMultipleSelections ? lineNumber !== firstLineNumber \u0026\u0026 lineNumber === lastLineNumber ? 1 : 0 : 0;\n      let innerCornerOutput = \"\";\n      let restOfSelectionOutput = \"\";\n      for (let j = 0, lenJ = lineVisibleRanges.ranges.length; j \u003c lenJ; j++) {\n        const visibleRange = lineVisibleRanges.ranges[j];\n        if (visibleRangesHaveStyle) {\n          const startStyle = visibleRange.startStyle;\n          const endStyle = visibleRange.endStyle;\n          if (startStyle.top === 1 || startStyle.bottom === 1) {\n            innerCornerOutput += this._createSelectionPiece(top, bottom, _SelectionsOverlay.SELECTION_CLASS_NAME, visibleRange.left - _SelectionsOverlay.ROUNDED_PIECE_WIDTH, _SelectionsOverlay.ROUNDED_PIECE_WIDTH);\n            let className3 = _SelectionsOverlay.EDITOR_BACKGROUND_CLASS_NAME;\n            if (startStyle.top === 1) {\n              className3 += \" \" + _SelectionsOverlay.SELECTION_TOP_RIGHT;\n            }\n            if (startStyle.bottom === 1) {\n              className3 += \" \" + _SelectionsOverlay.SELECTION_BOTTOM_RIGHT;\n            }\n            innerCornerOutput += this._createSelectionPiece(top, bottom, className3, visibleRange.left - _SelectionsOverlay.ROUNDED_PIECE_WIDTH, _SelectionsOverlay.ROUNDED_PIECE_WIDTH);\n          }\n          if (endStyle.top === 1 || endStyle.bottom === 1) {\n            innerCornerOutput += this._createSelectionPiece(top, bottom, _SelectionsOverlay.SELECTION_CLASS_NAME, visibleRange.left + visibleRange.width, _SelectionsOverlay.ROUNDED_PIECE_WIDTH);\n            let className3 = _SelectionsOverlay.EDITOR_BACKGROUND_CLASS_NAME;\n            if (endStyle.top === 1) {\n              className3 += \" \" + _SelectionsOverlay.SELECTION_TOP_LEFT;\n            }\n            if (endStyle.bottom === 1) {\n              className3 += \" \" + _SelectionsOverlay.SELECTION_BOTTOM_LEFT;\n            }\n            innerCornerOutput += this._createSelectionPiece(top, bottom, className3, visibleRange.left + visibleRange.width, _SelectionsOverlay.ROUNDED_PIECE_WIDTH);\n          }\n        }\n        let className2 = _SelectionsOverlay.SELECTION_CLASS_NAME;\n        if (visibleRangesHaveStyle) {\n          const startStyle = visibleRange.startStyle;\n          const endStyle = visibleRange.endStyle;\n          if (startStyle.top === 0) {\n            className2 += \" \" + _SelectionsOverlay.SELECTION_TOP_LEFT;\n          }\n          if (startStyle.bottom === 0) {\n            className2 += \" \" + _SelectionsOverlay.SELECTION_BOTTOM_LEFT;\n          }\n          if (endStyle.top === 0) {\n            className2 += \" \" + _SelectionsOverlay.SELECTION_TOP_RIGHT;\n          }\n          if (endStyle.bottom === 0) {\n            className2 += \" \" + _SelectionsOverlay.SELECTION_BOTTOM_RIGHT;\n          }\n        }\n        restOfSelectionOutput += this._createSelectionPiece(top, bottom, className2, visibleRange.left, visibleRange.width);\n      }\n      output2[lineIndex][0] += innerCornerOutput;\n      output2[lineIndex][1] += restOfSelectionOutput;\n    }\n  }\n  prepareRender(ctx) {\n    const output = [];\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      output[lineIndex] = [\"\", \"\"];\n    }\n    const thisFrameVisibleRangesWithStyle = [];\n    for (let i2 = 0, len = this._selections.length; i2 \u003c len; i2++) {\n      const selection = this._selections[i2];\n      if (selection.isEmpty()) {\n        thisFrameVisibleRangesWithStyle[i2] = null;\n        continue;\n      }\n      const visibleRangesWithStyle = this._getVisibleRangesWithStyle(selection, ctx, this._previousFrameVisibleRangesWithStyle[i2]);\n      thisFrameVisibleRangesWithStyle[i2] = visibleRangesWithStyle;\n      this._actualRenderOneSelection(output, visibleStartLineNumber, this._selections.length \u003e 1, visibleRangesWithStyle);\n    }\n    this._previousFrameVisibleRangesWithStyle = thisFrameVisibleRangesWithStyle;\n    this._renderResult = output.map(([internalCorners, restOfSelection]) =\u003e internalCorners + restOfSelection);\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderResult) {\n      return \"\";\n    }\n    const lineIndex = lineNumber - startLineNumber;\n    if (lineIndex \u003c 0 || lineIndex \u003e= this._renderResult.length) {\n      return \"\";\n    }\n    return this._renderResult[lineIndex];\n  }\n};\nregisterThemingParticipant((theme, collector) =\u003e {\n  const editorSelectionForegroundColor = theme.getColor(editorSelectionForeground);\n  if (editorSelectionForegroundColor \u0026\u0026 !editorSelectionForegroundColor.isTransparent()) {\n    collector.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${editorSelectionForegroundColor}; }`);\n  }\n});\nfunction abs(n2) {\n  return n2 \u003c 0 ? -n2 : n2;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.js\ninit_async();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewCursors/viewCursor.js\ninit_dom();\ninit_strings();\ninit_position();\ninit_range();\nvar ViewCursorRenderData = class {\n  constructor(top, left, paddingLeft, width2, height, textContent, textContentClassName) {\n    this.top = top;\n    this.left = left;\n    this.paddingLeft = paddingLeft;\n    this.width = width2;\n    this.height = height;\n    this.textContent = textContent;\n    this.textContentClassName = textContentClassName;\n  }\n};\nvar CursorPlurality;\n(function(CursorPlurality2) {\n  CursorPlurality2[CursorPlurality2[\"Single\"] = 0] = \"Single\";\n  CursorPlurality2[CursorPlurality2[\"MultiPrimary\"] = 1] = \"MultiPrimary\";\n  CursorPlurality2[CursorPlurality2[\"MultiSecondary\"] = 2] = \"MultiSecondary\";\n})(CursorPlurality || (CursorPlurality = {}));\nvar ViewCursor = class {\n  constructor(context, plurality) {\n    this._context = context;\n    const options2 = this._context.configuration.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._cursorStyle = options2.get(\n      160\n      /* EditorOption.effectiveCursorStyle */\n    );\n    this._typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n    this._lineCursorWidth = Math.min(options2.get(\n      37\n      /* EditorOption.cursorWidth */\n    ), this._typicalHalfwidthCharacterWidth);\n    this._lineCursorHeight = options2.get(\n      38\n      /* EditorOption.cursorHeight */\n    );\n    this._isVisible = true;\n    this._domNode = createFastDomNode(document.createElement(\"div\"));\n    this._domNode.setClassName(`cursor ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);\n    this._domNode.setHeight(this._context.viewLayout.getLineHeightForLineNumber(1));\n    this._domNode.setTop(0);\n    this._domNode.setLeft(0);\n    applyFontInfo(this._domNode, fontInfo);\n    this._domNode.setDisplay(\"none\");\n    this._position = new Position(1, 1);\n    this._pluralityClass = \"\";\n    this.setPlurality(plurality);\n    this._lastRenderedContent = \"\";\n    this._renderData = null;\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  getPosition() {\n    return this._position;\n  }\n  setPlurality(plurality) {\n    switch (plurality) {\n      default:\n      case CursorPlurality.Single:\n        this._pluralityClass = \"\";\n        break;\n      case CursorPlurality.MultiPrimary:\n        this._pluralityClass = \"cursor-primary\";\n        break;\n      case CursorPlurality.MultiSecondary:\n        this._pluralityClass = \"cursor-secondary\";\n        break;\n    }\n  }\n  show() {\n    if (!this._isVisible) {\n      this._domNode.setVisibility(\"inherit\");\n      this._isVisible = true;\n    }\n  }\n  hide() {\n    if (this._isVisible) {\n      this._domNode.setVisibility(\"hidden\");\n      this._isVisible = false;\n    }\n  }\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._cursorStyle = options2.get(\n      160\n      /* EditorOption.effectiveCursorStyle */\n    );\n    this._typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n    this._lineCursorWidth = Math.min(options2.get(\n      37\n      /* EditorOption.cursorWidth */\n    ), this._typicalHalfwidthCharacterWidth);\n    this._lineCursorHeight = options2.get(\n      38\n      /* EditorOption.cursorHeight */\n    );\n    applyFontInfo(this._domNode, fontInfo);\n    return true;\n  }\n  onCursorPositionChanged(position, pauseAnimation) {\n    if (pauseAnimation) {\n      this._domNode.domNode.style.transitionProperty = \"none\";\n    } else {\n      this._domNode.domNode.style.transitionProperty = \"\";\n    }\n    this._position = position;\n    return true;\n  }\n  /**\n   * If `this._position` is inside a grapheme, returns the position where the grapheme starts.\n   * Also returns the next grapheme.\n   */\n  _getGraphemeAwarePosition() {\n    const { lineNumber, column } = this._position;\n    const lineContent = this._context.viewModel.getLineContent(lineNumber);\n    const [startOffset, endOffset] = getCharContainingOffset(lineContent, column - 1);\n    return [new Position(lineNumber, startOffset + 1), lineContent.substring(startOffset, endOffset)];\n  }\n  _prepareRender(ctx) {\n    let textContent = \"\";\n    let textContentClassName = \"\";\n    const [position, nextGrapheme] = this._getGraphemeAwarePosition();\n    const lineHeight = this._context.viewLayout.getLineHeightForLineNumber(position.lineNumber);\n    const lineCursorHeight = this._lineCursorHeight === 0 ? lineHeight : Math.min(lineHeight, this._lineCursorHeight);\n    const lineHeightAdjustment = (lineHeight - lineCursorHeight) / 2;\n    if (this._cursorStyle === TextEditorCursorStyle.Line || this._cursorStyle === TextEditorCursorStyle.LineThin) {\n      const visibleRange = ctx.visibleRangeForPosition(position);\n      if (!visibleRange || visibleRange.outsideRenderedLine) {\n        return null;\n      }\n      const window2 = getWindow(this._domNode.domNode);\n      let width3;\n      if (this._cursorStyle === TextEditorCursorStyle.Line) {\n        width3 = computeScreenAwareSize(window2, this._lineCursorWidth \u003e 0 ? this._lineCursorWidth : 2);\n        if (width3 \u003e 2) {\n          textContent = nextGrapheme;\n          textContentClassName = this._getTokenClassName(position);\n        }\n      } else {\n        width3 = computeScreenAwareSize(window2, 1);\n      }\n      let left = visibleRange.left;\n      let paddingLeft = 0;\n      if (width3 \u003e= 2 \u0026\u0026 left \u003e= 1) {\n        paddingLeft = 1;\n        left -= paddingLeft;\n      }\n      const top2 = ctx.getVerticalOffsetForLineNumber(position.lineNumber) - ctx.bigNumbersDelta + lineHeightAdjustment;\n      return new ViewCursorRenderData(top2, left, paddingLeft, width3, lineCursorHeight, textContent, textContentClassName);\n    }\n    const visibleRangeForCharacter = ctx.linesVisibleRangesForRange(new Range(position.lineNumber, position.column, position.lineNumber, position.column + nextGrapheme.length), false);\n    if (!visibleRangeForCharacter || visibleRangeForCharacter.length === 0) {\n      return null;\n    }\n    const firstVisibleRangeForCharacter = visibleRangeForCharacter[0];\n    if (firstVisibleRangeForCharacter.outsideRenderedLine || firstVisibleRangeForCharacter.ranges.length === 0) {\n      return null;\n    }\n    const range2 = firstVisibleRangeForCharacter.ranges[0];\n    const width2 = nextGrapheme === \"\t\" ? this._typicalHalfwidthCharacterWidth : range2.width \u003c 1 ? this._typicalHalfwidthCharacterWidth : range2.width;\n    if (this._cursorStyle === TextEditorCursorStyle.Block) {\n      textContent = nextGrapheme;\n      textContentClassName = this._getTokenClassName(position);\n    }\n    let top = ctx.getVerticalOffsetForLineNumber(position.lineNumber) - ctx.bigNumbersDelta;\n    let height = lineHeight;\n    if (this._cursorStyle === TextEditorCursorStyle.Underline || this._cursorStyle === TextEditorCursorStyle.UnderlineThin) {\n      top += lineHeight - 2;\n      height = 2;\n    }\n    return new ViewCursorRenderData(top, range2.left, 0, width2, height, textContent, textContentClassName);\n  }\n  _getTokenClassName(position) {\n    const lineData = this._context.viewModel.getViewLineData(position.lineNumber);\n    const tokenIndex = lineData.tokens.findTokenIndexAtOffset(position.column - 1);\n    return lineData.tokens.getClassName(tokenIndex);\n  }\n  prepareRender(ctx) {\n    this._renderData = this._prepareRender(ctx);\n  }\n  render(ctx) {\n    if (!this._renderData) {\n      this._domNode.setDisplay(\"none\");\n      return null;\n    }\n    if (this._lastRenderedContent !== this._renderData.textContent) {\n      this._lastRenderedContent = this._renderData.textContent;\n      this._domNode.domNode.textContent = this._lastRenderedContent;\n    }\n    this._domNode.setClassName(`cursor ${this._pluralityClass} ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ${this._renderData.textContentClassName}`);\n    this._domNode.setDisplay(\"block\");\n    this._domNode.setTop(this._renderData.top);\n    this._domNode.setLeft(this._renderData.left);\n    this._domNode.setPaddingLeft(this._renderData.paddingLeft);\n    this._domNode.setWidth(this._renderData.width);\n    this._domNode.setLineHeight(this._renderData.height);\n    this._domNode.setHeight(this._renderData.height);\n    return {\n      domNode: this._domNode.domNode,\n      position: this._position,\n      contentLeft: this._renderData.left,\n      height: this._renderData.height,\n      width: 2\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.js\ninit_editorColorRegistry();\ninit_themeService();\ninit_theme();\ninit_dom();\nvar ViewCursors = class _ViewCursors extends ViewPart {\n  static {\n    this.BLINK_INTERVAL = 500;\n  }\n  constructor(context) {\n    super(context);\n    const options2 = this._context.configuration.options;\n    this._readOnly = options2.get(\n      103\n      /* EditorOption.readOnly */\n    );\n    this._cursorBlinking = options2.get(\n      32\n      /* EditorOption.cursorBlinking */\n    );\n    this._cursorStyle = options2.get(\n      160\n      /* EditorOption.effectiveCursorStyle */\n    );\n    this._cursorSmoothCaretAnimation = options2.get(\n      33\n      /* EditorOption.cursorSmoothCaretAnimation */\n    );\n    this._editContextEnabled = options2.get(\n      169\n      /* EditorOption.effectiveEditContext */\n    );\n    this._selectionIsEmpty = true;\n    this._isComposingInput = false;\n    this._isVisible = false;\n    this._primaryCursor = new ViewCursor(this._context, CursorPlurality.Single);\n    this._secondaryCursors = [];\n    this._renderData = [];\n    this._domNode = createFastDomNode(document.createElement(\"div\"));\n    this._domNode.setAttribute(\"role\", \"presentation\");\n    this._domNode.setAttribute(\"aria-hidden\", \"true\");\n    this._updateDomClassName();\n    this._domNode.appendChild(this._primaryCursor.getDomNode());\n    this._startCursorBlinkAnimation = new TimeoutTimer();\n    this._cursorFlatBlinkInterval = new WindowIntervalTimer();\n    this._blinkingEnabled = false;\n    this._editorHasFocus = false;\n    this._updateBlinking();\n  }\n  dispose() {\n    super.dispose();\n    this._startCursorBlinkAnimation.dispose();\n    this._cursorFlatBlinkInterval.dispose();\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  // --- begin event handlers\n  onCompositionStart(e) {\n    this._isComposingInput = true;\n    this._updateBlinking();\n    return true;\n  }\n  onCompositionEnd(e) {\n    this._isComposingInput = false;\n    this._updateBlinking();\n    return true;\n  }\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    this._readOnly = options2.get(\n      103\n      /* EditorOption.readOnly */\n    );\n    this._cursorBlinking = options2.get(\n      32\n      /* EditorOption.cursorBlinking */\n    );\n    this._cursorStyle = options2.get(\n      160\n      /* EditorOption.effectiveCursorStyle */\n    );\n    this._cursorSmoothCaretAnimation = options2.get(\n      33\n      /* EditorOption.cursorSmoothCaretAnimation */\n    );\n    this._editContextEnabled = options2.get(\n      169\n      /* EditorOption.effectiveEditContext */\n    );\n    this._updateBlinking();\n    this._updateDomClassName();\n    this._primaryCursor.onConfigurationChanged(e);\n    for (let i2 = 0, len = this._secondaryCursors.length; i2 \u003c len; i2++) {\n      this._secondaryCursors[i2].onConfigurationChanged(e);\n    }\n    return true;\n  }\n  _onCursorPositionChanged(position, secondaryPositions, reason) {\n    const pauseAnimation = this._secondaryCursors.length !== secondaryPositions.length || this._cursorSmoothCaretAnimation === \"explicit\" \u0026\u0026 reason !== 3;\n    this._primaryCursor.setPlurality(secondaryPositions.length ? CursorPlurality.MultiPrimary : CursorPlurality.Single);\n    this._primaryCursor.onCursorPositionChanged(position, pauseAnimation);\n    this._updateBlinking();\n    if (this._secondaryCursors.length \u003c secondaryPositions.length) {\n      const addCnt = secondaryPositions.length - this._secondaryCursors.length;\n      for (let i2 = 0; i2 \u003c addCnt; i2++) {\n        const newCursor = new ViewCursor(this._context, CursorPlurality.MultiSecondary);\n        this._domNode.domNode.insertBefore(newCursor.getDomNode().domNode, this._primaryCursor.getDomNode().domNode.nextSibling);\n        this._secondaryCursors.push(newCursor);\n      }\n    } else if (this._secondaryCursors.length \u003e secondaryPositions.length) {\n      const removeCnt = this._secondaryCursors.length - secondaryPositions.length;\n      for (let i2 = 0; i2 \u003c removeCnt; i2++) {\n        this._domNode.removeChild(this._secondaryCursors[0].getDomNode());\n        this._secondaryCursors.splice(0, 1);\n      }\n    }\n    for (let i2 = 0; i2 \u003c secondaryPositions.length; i2++) {\n      this._secondaryCursors[i2].onCursorPositionChanged(secondaryPositions[i2], pauseAnimation);\n    }\n  }\n  onCursorStateChanged(e) {\n    const positions = [];\n    for (let i2 = 0, len = e.selections.length; i2 \u003c len; i2++) {\n      positions[i2] = e.selections[i2].getPosition();\n    }\n    this._onCursorPositionChanged(positions[0], positions.slice(1), e.reason);\n    const selectionIsEmpty = e.selections[0].isEmpty();\n    if (this._selectionIsEmpty !== selectionIsEmpty) {\n      this._selectionIsEmpty = selectionIsEmpty;\n      this._updateDomClassName();\n    }\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onFocusChanged(e) {\n    this._editorHasFocus = e.isFocused;\n    this._updateBlinking();\n    return false;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return true;\n  }\n  onTokensChanged(e) {\n    const shouldRender = (position) =\u003e {\n      for (let i2 = 0, len = e.ranges.length; i2 \u003c len; i2++) {\n        if (e.ranges[i2].fromLineNumber \u003c= position.lineNumber \u0026\u0026 position.lineNumber \u003c= e.ranges[i2].toLineNumber) {\n          return true;\n        }\n      }\n      return false;\n    };\n    if (shouldRender(this._primaryCursor.getPosition())) {\n      return true;\n    }\n    for (const secondaryCursor of this._secondaryCursors) {\n      if (shouldRender(secondaryCursor.getPosition())) {\n        return true;\n      }\n    }\n    return false;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  // ---- blinking logic\n  _getCursorBlinking() {\n    if (this._isComposingInput \u0026\u0026 !this._editContextEnabled) {\n      return 0;\n    }\n    if (!this._editorHasFocus) {\n      return 0;\n    }\n    if (this._readOnly) {\n      return 5;\n    }\n    return this._cursorBlinking;\n  }\n  _updateBlinking() {\n    this._startCursorBlinkAnimation.cancel();\n    this._cursorFlatBlinkInterval.cancel();\n    const blinkingStyle = this._getCursorBlinking();\n    const isHidden = blinkingStyle === 0;\n    const isSolid = blinkingStyle === 5;\n    if (isHidden) {\n      this._hide();\n    } else {\n      this._show();\n    }\n    this._blinkingEnabled = false;\n    this._updateDomClassName();\n    if (!isHidden \u0026\u0026 !isSolid) {\n      if (blinkingStyle === 1) {\n        this._cursorFlatBlinkInterval.cancelAndSet(() =\u003e {\n          if (this._isVisible) {\n            this._hide();\n          } else {\n            this._show();\n          }\n        }, _ViewCursors.BLINK_INTERVAL, getWindow(this._domNode.domNode));\n      } else {\n        this._startCursorBlinkAnimation.setIfNotSet(() =\u003e {\n          this._blinkingEnabled = true;\n          this._updateDomClassName();\n        }, _ViewCursors.BLINK_INTERVAL);\n      }\n    }\n  }\n  // --- end blinking logic\n  _updateDomClassName() {\n    this._domNode.setClassName(this._getClassName());\n  }\n  _getClassName() {\n    let result = \"cursors-layer\";\n    if (!this._selectionIsEmpty) {\n      result += \" has-selection\";\n    }\n    switch (this._cursorStyle) {\n      case TextEditorCursorStyle.Line:\n        result += \" cursor-line-style\";\n        break;\n      case TextEditorCursorStyle.Block:\n        result += \" cursor-block-style\";\n        break;\n      case TextEditorCursorStyle.Underline:\n        result += \" cursor-underline-style\";\n        break;\n      case TextEditorCursorStyle.LineThin:\n        result += \" cursor-line-thin-style\";\n        break;\n      case TextEditorCursorStyle.BlockOutline:\n        result += \" cursor-block-outline-style\";\n        break;\n      case TextEditorCursorStyle.UnderlineThin:\n        result += \" cursor-underline-thin-style\";\n        break;\n      default:\n        result += \" cursor-line-style\";\n    }\n    if (this._blinkingEnabled) {\n      switch (this._getCursorBlinking()) {\n        case 1:\n          result += \" cursor-blink\";\n          break;\n        case 2:\n          result += \" cursor-smooth\";\n          break;\n        case 3:\n          result += \" cursor-phase\";\n          break;\n        case 4:\n          result += \" cursor-expand\";\n          break;\n        case 5:\n          result += \" cursor-solid\";\n          break;\n        default:\n          result += \" cursor-solid\";\n      }\n    } else {\n      result += \" cursor-solid\";\n    }\n    if (this._cursorSmoothCaretAnimation === \"on\" || this._cursorSmoothCaretAnimation === \"explicit\") {\n      result += \" cursor-smooth-caret-animation\";\n    }\n    return result;\n  }\n  _show() {\n    this._primaryCursor.show();\n    for (let i2 = 0, len = this._secondaryCursors.length; i2 \u003c len; i2++) {\n      this._secondaryCursors[i2].show();\n    }\n    this._isVisible = true;\n  }\n  _hide() {\n    this._primaryCursor.hide();\n    for (let i2 = 0, len = this._secondaryCursors.length; i2 \u003c len; i2++) {\n      this._secondaryCursors[i2].hide();\n    }\n    this._isVisible = false;\n  }\n  // ---- IViewPart implementation\n  prepareRender(ctx) {\n    this._primaryCursor.prepareRender(ctx);\n    for (let i2 = 0, len = this._secondaryCursors.length; i2 \u003c len; i2++) {\n      this._secondaryCursors[i2].prepareRender(ctx);\n    }\n  }\n  render(ctx) {\n    const renderData = [];\n    let renderDataLen = 0;\n    const primaryRenderData = this._primaryCursor.render(ctx);\n    if (primaryRenderData) {\n      renderData[renderDataLen++] = primaryRenderData;\n    }\n    for (let i2 = 0, len = this._secondaryCursors.length; i2 \u003c len; i2++) {\n      const secondaryRenderData = this._secondaryCursors[i2].render(ctx);\n      if (secondaryRenderData) {\n        renderData[renderDataLen++] = secondaryRenderData;\n      }\n    }\n    this._renderData = renderData;\n  }\n  getLastRenderData() {\n    return this._renderData;\n  }\n};\nregisterThemingParticipant((theme, collector) =\u003e {\n  const cursorThemes = [\n    { class: \".cursor\", foreground: editorCursorForeground, background: editorCursorBackground },\n    { class: \".cursor-primary\", foreground: editorMultiCursorPrimaryForeground, background: editorMultiCursorPrimaryBackground },\n    { class: \".cursor-secondary\", foreground: editorMultiCursorSecondaryForeground, background: editorMultiCursorSecondaryBackground }\n  ];\n  for (const cursorTheme of cursorThemes) {\n    const caret2 = theme.getColor(cursorTheme.foreground);\n    if (caret2) {\n      let caretBackground = theme.getColor(cursorTheme.background);\n      if (!caretBackground) {\n        caretBackground = caret2.opposite();\n      }\n      collector.addRule(`.monaco-editor .cursors-layer ${cursorTheme.class} { background-color: ${caret2}; border-color: ${caret2}; color: ${caretBackground}; }`);\n      if (isHighContrast(theme.type)) {\n        collector.addRule(`.monaco-editor .cursors-layer.has-selection ${cursorTheme.class} { border-left: 1px solid ${caretBackground}; border-right: 1px solid ${caretBackground}; }`);\n      }\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewZones/viewZones.js\ninit_errors();\ninit_position();\nvar invalidFunc = () =\u003e {\n  throw new Error(`Invalid change accessor`);\n};\nvar ViewZones = class extends ViewPart {\n  constructor(context) {\n    super(context);\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._contentWidth = layoutInfo.contentWidth;\n    this._contentLeft = layoutInfo.contentLeft;\n    this.domNode = createFastDomNode(document.createElement(\"div\"));\n    this.domNode.setClassName(\"view-zones\");\n    this.domNode.setPosition(\"absolute\");\n    this.domNode.setAttribute(\"role\", \"presentation\");\n    this.domNode.setAttribute(\"aria-hidden\", \"true\");\n    this.marginDomNode = createFastDomNode(document.createElement(\"div\"));\n    this.marginDomNode.setClassName(\"margin-view-zones\");\n    this.marginDomNode.setPosition(\"absolute\");\n    this.marginDomNode.setAttribute(\"role\", \"presentation\");\n    this.marginDomNode.setAttribute(\"aria-hidden\", \"true\");\n    this._zones = {};\n  }\n  dispose() {\n    super.dispose();\n    this._zones = {};\n  }\n  // ---- begin view event handlers\n  _recomputeWhitespacesProps() {\n    const whitespaces = this._context.viewLayout.getWhitespaces();\n    const oldWhitespaces = /* @__PURE__ */ new Map();\n    for (const whitespace of whitespaces) {\n      oldWhitespaces.set(whitespace.id, whitespace);\n    }\n    let hadAChange = false;\n    this._context.viewModel.changeWhitespace((whitespaceAccessor) =\u003e {\n      const keys = Object.keys(this._zones);\n      for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n        const id = keys[i2];\n        const zone = this._zones[id];\n        const props = this._computeWhitespaceProps(zone.delegate);\n        zone.isInHiddenArea = props.isInHiddenArea;\n        const oldWhitespace = oldWhitespaces.get(id);\n        if (oldWhitespace \u0026\u0026 (oldWhitespace.afterLineNumber !== props.afterViewLineNumber || oldWhitespace.height !== props.heightInPx)) {\n          whitespaceAccessor.changeOneWhitespace(id, props.afterViewLineNumber, props.heightInPx);\n          this._safeCallOnComputedHeight(zone.delegate, props.heightInPx);\n          hadAChange = true;\n        }\n      }\n    });\n    return hadAChange;\n  }\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._contentWidth = layoutInfo.contentWidth;\n    this._contentLeft = layoutInfo.contentLeft;\n    if (e.hasChanged(\n      75\n      /* EditorOption.lineHeight */\n    )) {\n      this._recomputeWhitespacesProps();\n    }\n    return true;\n  }\n  onLineMappingChanged(e) {\n    return this._recomputeWhitespacesProps();\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged || e.scrollWidthChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  // ---- end view event handlers\n  _getZoneOrdinal(zone) {\n    return zone.ordinal ?? zone.afterColumn ?? 1e4;\n  }\n  _computeWhitespaceProps(zone) {\n    if (zone.afterLineNumber === 0) {\n      return {\n        isInHiddenArea: false,\n        afterViewLineNumber: 0,\n        heightInPx: this._heightInPixels(zone),\n        minWidthInPx: this._minWidthInPixels(zone)\n      };\n    }\n    let zoneAfterModelPosition;\n    if (typeof zone.afterColumn !== \"undefined\") {\n      zoneAfterModelPosition = this._context.viewModel.model.validatePosition({\n        lineNumber: zone.afterLineNumber,\n        column: zone.afterColumn\n      });\n    } else {\n      const validAfterLineNumber = this._context.viewModel.model.validatePosition({\n        lineNumber: zone.afterLineNumber,\n        column: 1\n      }).lineNumber;\n      zoneAfterModelPosition = new Position(validAfterLineNumber, this._context.viewModel.model.getLineMaxColumn(validAfterLineNumber));\n    }\n    let zoneBeforeModelPosition;\n    if (zoneAfterModelPosition.column === this._context.viewModel.model.getLineMaxColumn(zoneAfterModelPosition.lineNumber)) {\n      zoneBeforeModelPosition = this._context.viewModel.model.validatePosition({\n        lineNumber: zoneAfterModelPosition.lineNumber + 1,\n        column: 1\n      });\n    } else {\n      zoneBeforeModelPosition = this._context.viewModel.model.validatePosition({\n        lineNumber: zoneAfterModelPosition.lineNumber,\n        column: zoneAfterModelPosition.column + 1\n      });\n    }\n    const viewPosition = this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(zoneAfterModelPosition, zone.afterColumnAffinity, true);\n    const isVisible = zone.showInHiddenAreas || this._context.viewModel.coordinatesConverter.modelPositionIsVisible(zoneBeforeModelPosition);\n    return {\n      isInHiddenArea: !isVisible,\n      afterViewLineNumber: viewPosition.lineNumber,\n      heightInPx: isVisible ? this._heightInPixels(zone) : 0,\n      minWidthInPx: this._minWidthInPixels(zone)\n    };\n  }\n  changeViewZones(callback) {\n    let zonesHaveChanged = false;\n    this._context.viewModel.changeWhitespace((whitespaceAccessor) =\u003e {\n      const changeAccessor = {\n        addZone: (zone) =\u003e {\n          zonesHaveChanged = true;\n          return this._addZone(whitespaceAccessor, zone);\n        },\n        removeZone: (id) =\u003e {\n          if (!id) {\n            return;\n          }\n          zonesHaveChanged = this._removeZone(whitespaceAccessor, id) || zonesHaveChanged;\n        },\n        layoutZone: (id) =\u003e {\n          if (!id) {\n            return;\n          }\n          zonesHaveChanged = this._layoutZone(whitespaceAccessor, id) || zonesHaveChanged;\n        }\n      };\n      safeInvoke1Arg(callback, changeAccessor);\n      changeAccessor.addZone = invalidFunc;\n      changeAccessor.removeZone = invalidFunc;\n      changeAccessor.layoutZone = invalidFunc;\n    });\n    return zonesHaveChanged;\n  }\n  _addZone(whitespaceAccessor, zone) {\n    const props = this._computeWhitespaceProps(zone);\n    const whitespaceId = whitespaceAccessor.insertWhitespace(props.afterViewLineNumber, this._getZoneOrdinal(zone), props.heightInPx, props.minWidthInPx);\n    const myZone = {\n      whitespaceId,\n      delegate: zone,\n      isInHiddenArea: props.isInHiddenArea,\n      isVisible: false,\n      domNode: createFastDomNode(zone.domNode),\n      marginDomNode: zone.marginDomNode ? createFastDomNode(zone.marginDomNode) : null\n    };\n    this._safeCallOnComputedHeight(myZone.delegate, props.heightInPx);\n    myZone.domNode.setPosition(\"absolute\");\n    myZone.domNode.domNode.style.width = \"100%\";\n    myZone.domNode.setDisplay(\"none\");\n    myZone.domNode.setAttribute(\"monaco-view-zone\", myZone.whitespaceId);\n    this.domNode.appendChild(myZone.domNode);\n    if (myZone.marginDomNode) {\n      myZone.marginDomNode.setPosition(\"absolute\");\n      myZone.marginDomNode.domNode.style.width = \"100%\";\n      myZone.marginDomNode.setDisplay(\"none\");\n      myZone.marginDomNode.setAttribute(\"monaco-view-zone\", myZone.whitespaceId);\n      this.marginDomNode.appendChild(myZone.marginDomNode);\n    }\n    this._zones[myZone.whitespaceId] = myZone;\n    this.setShouldRender();\n    return myZone.whitespaceId;\n  }\n  _removeZone(whitespaceAccessor, id) {\n    if (this._zones.hasOwnProperty(id)) {\n      const zone = this._zones[id];\n      delete this._zones[id];\n      whitespaceAccessor.removeWhitespace(zone.whitespaceId);\n      zone.domNode.removeAttribute(\"monaco-visible-view-zone\");\n      zone.domNode.removeAttribute(\"monaco-view-zone\");\n      zone.domNode.domNode.remove();\n      if (zone.marginDomNode) {\n        zone.marginDomNode.removeAttribute(\"monaco-visible-view-zone\");\n        zone.marginDomNode.removeAttribute(\"monaco-view-zone\");\n        zone.marginDomNode.domNode.remove();\n      }\n      this.setShouldRender();\n      return true;\n    }\n    return false;\n  }\n  _layoutZone(whitespaceAccessor, id) {\n    if (this._zones.hasOwnProperty(id)) {\n      const zone = this._zones[id];\n      const props = this._computeWhitespaceProps(zone.delegate);\n      zone.isInHiddenArea = props.isInHiddenArea;\n      whitespaceAccessor.changeOneWhitespace(zone.whitespaceId, props.afterViewLineNumber, props.heightInPx);\n      this._safeCallOnComputedHeight(zone.delegate, props.heightInPx);\n      this.setShouldRender();\n      return true;\n    }\n    return false;\n  }\n  shouldSuppressMouseDownOnViewZone(id) {\n    if (this._zones.hasOwnProperty(id)) {\n      const zone = this._zones[id];\n      return Boolean(zone.delegate.suppressMouseDown);\n    }\n    return false;\n  }\n  _heightInPixels(zone) {\n    if (typeof zone.heightInPx === \"number\") {\n      return zone.heightInPx;\n    }\n    if (typeof zone.heightInLines === \"number\") {\n      return this._lineHeight * zone.heightInLines;\n    }\n    return this._lineHeight;\n  }\n  _minWidthInPixels(zone) {\n    if (typeof zone.minWidthInPx === \"number\") {\n      return zone.minWidthInPx;\n    }\n    return 0;\n  }\n  _safeCallOnComputedHeight(zone, height) {\n    if (typeof zone.onComputedHeight === \"function\") {\n      try {\n        zone.onComputedHeight(height);\n      } catch (e) {\n        onUnexpectedError(e);\n      }\n    }\n  }\n  _safeCallOnDomNodeTop(zone, top) {\n    if (typeof zone.onDomNodeTop === \"function\") {\n      try {\n        zone.onDomNodeTop(top);\n      } catch (e) {\n        onUnexpectedError(e);\n      }\n    }\n  }\n  prepareRender(ctx) {\n  }\n  render(ctx) {\n    const visibleWhitespaces = ctx.viewportData.whitespaceViewportData;\n    const visibleZones = {};\n    let hasVisibleZone = false;\n    for (const visibleWhitespace of visibleWhitespaces) {\n      if (this._zones[visibleWhitespace.id].isInHiddenArea) {\n        continue;\n      }\n      visibleZones[visibleWhitespace.id] = visibleWhitespace;\n      hasVisibleZone = true;\n    }\n    const keys = Object.keys(this._zones);\n    for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n      const id = keys[i2];\n      const zone = this._zones[id];\n      let newTop = 0;\n      let newHeight = 0;\n      let newDisplay = \"none\";\n      if (visibleZones.hasOwnProperty(id)) {\n        newTop = visibleZones[id].verticalOffset - ctx.bigNumbersDelta;\n        newHeight = visibleZones[id].height;\n        newDisplay = \"block\";\n        if (!zone.isVisible) {\n          zone.domNode.setAttribute(\"monaco-visible-view-zone\", \"true\");\n          zone.isVisible = true;\n        }\n        this._safeCallOnDomNodeTop(zone.delegate, ctx.getScrolledTopFromAbsoluteTop(visibleZones[id].verticalOffset));\n      } else {\n        if (zone.isVisible) {\n          zone.domNode.removeAttribute(\"monaco-visible-view-zone\");\n          zone.isVisible = false;\n        }\n        this._safeCallOnDomNodeTop(zone.delegate, ctx.getScrolledTopFromAbsoluteTop(-1e6));\n      }\n      zone.domNode.setTop(newTop);\n      zone.domNode.setHeight(newHeight);\n      zone.domNode.setDisplay(newDisplay);\n      if (zone.marginDomNode) {\n        zone.marginDomNode.setTop(newTop);\n        zone.marginDomNode.setHeight(newHeight);\n        zone.marginDomNode.setDisplay(newDisplay);\n      }\n    }\n    if (hasVisibleZone) {\n      this.domNode.setWidth(Math.max(ctx.scrollWidth, this._contentWidth));\n      this.marginDomNode.setWidth(this._contentLeft);\n    }\n  }\n};\nfunction safeInvoke1Arg(func, arg1) {\n  try {\n    return func(arg1);\n  } catch (e) {\n    onUnexpectedError(e);\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/whitespace/whitespace.js\ninit_strings();\ninit_position();\ninit_editorColorRegistry();\ninit_offsetRange();\nvar WhitespaceOverlay = class extends DynamicViewOverlay {\n  constructor(context) {\n    super();\n    this._context = context;\n    this._options = new WhitespaceOptions(this._context.configuration);\n    this._selection = [];\n    this._renderResult = null;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    this._renderResult = null;\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const newOptions = new WhitespaceOptions(this._context.configuration);\n    if (this._options.equals(newOptions)) {\n      return e.hasChanged(\n        164\n        /* EditorOption.layoutInfo */\n      );\n    }\n    this._options = newOptions;\n    return true;\n  }\n  onCursorStateChanged(e) {\n    this._selection = e.selections;\n    if (this._options.renderWhitespace === \"selection\") {\n      return true;\n    }\n    return false;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n    if (this._options.renderWhitespace === \"none\") {\n      this._renderResult = null;\n      return;\n    }\n    const startLineNumber = ctx.visibleRange.startLineNumber;\n    const endLineNumber = ctx.visibleRange.endLineNumber;\n    const lineCount = endLineNumber - startLineNumber + 1;\n    const needed = new Array(lineCount);\n    for (let i2 = 0; i2 \u003c lineCount; i2++) {\n      needed[i2] = true;\n    }\n    this._renderResult = [];\n    for (let lineNumber = ctx.viewportData.startLineNumber; lineNumber \u003c= ctx.viewportData.endLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - ctx.viewportData.startLineNumber;\n      const lineData = this._context.viewModel.getViewLineRenderingData(lineNumber);\n      let selectionsOnLine = null;\n      if (this._options.renderWhitespace === \"selection\") {\n        const selections = this._selection;\n        for (const selection of selections) {\n          if (selection.endLineNumber \u003c lineNumber || selection.startLineNumber \u003e lineNumber) {\n            continue;\n          }\n          const startColumn = selection.startLineNumber === lineNumber ? selection.startColumn : lineData.minColumn;\n          const endColumn = selection.endLineNumber === lineNumber ? selection.endColumn : lineData.maxColumn;\n          if (startColumn \u003c endColumn) {\n            if (!selectionsOnLine) {\n              selectionsOnLine = [];\n            }\n            selectionsOnLine.push(new OffsetRange(startColumn - 1, endColumn - 1));\n          }\n        }\n      }\n      this._renderResult[lineIndex] = this._applyRenderWhitespace(ctx, lineNumber, selectionsOnLine, lineData);\n    }\n  }\n  _applyRenderWhitespace(ctx, lineNumber, selections, lineData) {\n    if (lineData.hasVariableFonts) {\n      return \"\";\n    }\n    if (this._options.renderWhitespace === \"selection\" \u0026\u0026 !selections) {\n      return \"\";\n    }\n    if (this._options.renderWhitespace === \"trailing\" \u0026\u0026 lineData.continuesWithWrappedLine) {\n      return \"\";\n    }\n    const color = this._context.theme.getColor(editorWhitespaces);\n    const USE_SVG = this._options.renderWithSVG;\n    const lineContent = lineData.content;\n    const len = this._options.stopRenderingLineAfter === -1 ? lineContent.length : Math.min(this._options.stopRenderingLineAfter, lineContent.length);\n    const continuesWithWrappedLine = lineData.continuesWithWrappedLine;\n    const fauxIndentLength = lineData.minColumn - 1;\n    const onlyBoundary = this._options.renderWhitespace === \"boundary\";\n    const onlyTrailing = this._options.renderWhitespace === \"trailing\";\n    const lineHeight = ctx.getLineHeightForLineNumber(lineNumber);\n    const middotWidth = this._options.middotWidth;\n    const wsmiddotWidth = this._options.wsmiddotWidth;\n    const spaceWidth = this._options.spaceWidth;\n    const wsmiddotDiff = Math.abs(wsmiddotWidth - spaceWidth);\n    const middotDiff = Math.abs(middotWidth - spaceWidth);\n    const renderSpaceCharCode = wsmiddotDiff \u003c middotDiff ? 11825 : 183;\n    const canUseHalfwidthRightwardsArrow = this._options.canUseHalfwidthRightwardsArrow;\n    let result = \"\";\n    let lineIsEmptyOrWhitespace = false;\n    let firstNonWhitespaceIndex2 = firstNonWhitespaceIndex(lineContent);\n    let lastNonWhitespaceIndex2;\n    if (firstNonWhitespaceIndex2 === -1) {\n      lineIsEmptyOrWhitespace = true;\n      firstNonWhitespaceIndex2 = len;\n      lastNonWhitespaceIndex2 = len;\n    } else {\n      lastNonWhitespaceIndex2 = lastNonWhitespaceIndex(lineContent);\n    }\n    let currentSelectionIndex = 0;\n    let currentSelection = selections \u0026\u0026 selections[currentSelectionIndex];\n    let maxLeft = 0;\n    for (let charIndex = fauxIndentLength; charIndex \u003c len; charIndex++) {\n      const chCode = lineContent.charCodeAt(charIndex);\n      if (currentSelection \u0026\u0026 currentSelection.endExclusive \u003c= charIndex) {\n        currentSelectionIndex++;\n        currentSelection = selections \u0026\u0026 selections[currentSelectionIndex];\n      }\n      if (chCode !== 9 \u0026\u0026 chCode !== 32) {\n        continue;\n      }\n      if (onlyTrailing \u0026\u0026 !lineIsEmptyOrWhitespace \u0026\u0026 charIndex \u003c= lastNonWhitespaceIndex2) {\n        continue;\n      }\n      if (onlyBoundary \u0026\u0026 charIndex \u003e= firstNonWhitespaceIndex2 \u0026\u0026 charIndex \u003c= lastNonWhitespaceIndex2 \u0026\u0026 chCode === 32) {\n        const prevChCode = charIndex - 1 \u003e= 0 ? lineContent.charCodeAt(charIndex - 1) : 0;\n        const nextChCode = charIndex + 1 \u003c len ? lineContent.charCodeAt(charIndex + 1) : 0;\n        if (prevChCode !== 32 \u0026\u0026 nextChCode !== 32) {\n          continue;\n        }\n      }\n      if (onlyBoundary \u0026\u0026 continuesWithWrappedLine \u0026\u0026 charIndex === len - 1) {\n        const prevCharCode = charIndex - 1 \u003e= 0 ? lineContent.charCodeAt(charIndex - 1) : 0;\n        const isSingleTrailingSpace = chCode === 32 \u0026\u0026 (prevCharCode !== 32 \u0026\u0026 prevCharCode !== 9);\n        if (isSingleTrailingSpace) {\n          continue;\n        }\n      }\n      if (selections \u0026\u0026 !(currentSelection \u0026\u0026 currentSelection.start \u003c= charIndex \u0026\u0026 charIndex \u003c currentSelection.endExclusive)) {\n        continue;\n      }\n      const visibleRange = ctx.visibleRangeForPosition(new Position(lineNumber, charIndex + 1));\n      if (!visibleRange) {\n        continue;\n      }\n      if (USE_SVG) {\n        maxLeft = Math.max(maxLeft, visibleRange.left);\n        if (chCode === 9) {\n          result += this._renderArrow(lineHeight, spaceWidth, visibleRange.left);\n        } else {\n          result += `\u003ccircle cx=\"${(visibleRange.left + spaceWidth / 2).toFixed(2)}\" cy=\"${(lineHeight / 2).toFixed(2)}\" r=\"${(spaceWidth / 7).toFixed(2)}\" /\u003e`;\n        }\n      } else {\n        if (chCode === 9) {\n          result += `\u003cdiv class=\"mwh\" style=\"left:${visibleRange.left}px;height:${lineHeight}px;\"\u003e${canUseHalfwidthRightwardsArrow ? String.fromCharCode(65515) : String.fromCharCode(8594)}\u003c/div\u003e`;\n        } else {\n          result += `\u003cdiv class=\"mwh\" style=\"left:${visibleRange.left}px;height:${lineHeight}px;\"\u003e${String.fromCharCode(renderSpaceCharCode)}\u003c/div\u003e`;\n        }\n      }\n    }\n    if (USE_SVG) {\n      maxLeft = Math.round(maxLeft + spaceWidth);\n      return `\u003csvg style=\"bottom:0;position:absolute;width:${maxLeft}px;height:${lineHeight}px\" viewBox=\"0 0 ${maxLeft} ${lineHeight}\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"${color}\"\u003e` + result + `\u003c/svg\u003e`;\n    }\n    return result;\n  }\n  _renderArrow(lineHeight, spaceWidth, left) {\n    const strokeWidth = spaceWidth / 7;\n    const width2 = spaceWidth;\n    const dy = lineHeight / 2;\n    const dx = left;\n    const p1 = { x: 0, y: strokeWidth / 2 };\n    const p2 = { x: 100 / 125 * width2, y: p1.y };\n    const p3 = { x: p2.x - 0.2 * p2.x, y: p2.y + 0.2 * p2.x };\n    const p4 = { x: p3.x + 0.1 * p2.x, y: p3.y + 0.1 * p2.x };\n    const p5 = { x: p4.x + 0.35 * p2.x, y: p4.y - 0.35 * p2.x };\n    const p6 = { x: p5.x, y: -p5.y };\n    const p7 = { x: p4.x, y: -p4.y };\n    const p8 = { x: p3.x, y: -p3.y };\n    const p9 = { x: p2.x, y: -p2.y };\n    const p10 = { x: p1.x, y: -p1.y };\n    const p = [p1, p2, p3, p4, p5, p6, p7, p8, p9, p10];\n    const parts = p.map((p11) =\u003e `${(dx + p11.x).toFixed(2)} ${(dy + p11.y).toFixed(2)}`).join(\" L \");\n    return `\u003cpath d=\"M ${parts}\" /\u003e`;\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderResult) {\n      return \"\";\n    }\n    const lineIndex = lineNumber - startLineNumber;\n    if (lineIndex \u003c 0 || lineIndex \u003e= this._renderResult.length) {\n      return \"\";\n    }\n    return this._renderResult[lineIndex];\n  }\n};\nvar WhitespaceOptions = class {\n  constructor(config) {\n    const options2 = config.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const experimentalWhitespaceRendering = options2.get(\n      47\n      /* EditorOption.experimentalWhitespaceRendering */\n    );\n    if (experimentalWhitespaceRendering === \"off\") {\n      this.renderWhitespace = \"none\";\n      this.renderWithSVG = false;\n    } else if (experimentalWhitespaceRendering === \"svg\") {\n      this.renderWhitespace = options2.get(\n        112\n        /* EditorOption.renderWhitespace */\n      );\n      this.renderWithSVG = true;\n    } else {\n      this.renderWhitespace = options2.get(\n        112\n        /* EditorOption.renderWhitespace */\n      );\n      this.renderWithSVG = false;\n    }\n    this.spaceWidth = fontInfo.spaceWidth;\n    this.middotWidth = fontInfo.middotWidth;\n    this.wsmiddotWidth = fontInfo.wsmiddotWidth;\n    this.canUseHalfwidthRightwardsArrow = fontInfo.canUseHalfwidthRightwardsArrow;\n    this.lineHeight = options2.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this.stopRenderingLineAfter = options2.get(\n      132\n      /* EditorOption.stopRenderingLineAfter */\n    );\n  }\n  equals(other) {\n    return this.renderWhitespace === other.renderWhitespace \u0026\u0026 this.renderWithSVG === other.renderWithSVG \u0026\u0026 this.spaceWidth === other.spaceWidth \u0026\u0026 this.middotWidth === other.middotWidth \u0026\u0026 this.wsmiddotWidth === other.wsmiddotWidth \u0026\u0026 this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow \u0026\u0026 this.lineHeight === other.lineHeight \u0026\u0026 this.stopRenderingLineAfter === other.stopRenderingLineAfter;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view.js\ninit_position();\ninit_range();\ninit_selection();\ninit_model2();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/viewLinesViewportData.js\ninit_range();\nvar ViewportData = class {\n  constructor(selections, partialData, whitespaceViewportData, model) {\n    this.selections = selections;\n    this.startLineNumber = partialData.startLineNumber | 0;\n    this.endLineNumber = partialData.endLineNumber | 0;\n    this.relativeVerticalOffset = partialData.relativeVerticalOffset;\n    this.bigNumbersDelta = partialData.bigNumbersDelta | 0;\n    this.lineHeight = partialData.lineHeight | 0;\n    this.whitespaceViewportData = whitespaceViewportData;\n    this._model = model;\n    this.visibleRange = new Range(partialData.startLineNumber, this._model.getLineMinColumn(partialData.startLineNumber), partialData.endLineNumber, this._model.getLineMaxColumn(partialData.endLineNumber));\n  }\n  getViewLineRenderingData(lineNumber) {\n    return this._model.getViewportViewLineRenderingData(this.visibleRange, lineNumber);\n  }\n  getDecorationsInViewport() {\n    return this._model.getDecorationsInViewport(this.visibleRange);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/editorTheme.js\nvar EditorTheme = class {\n  get type() {\n    return this._theme.type;\n  }\n  get value() {\n    return this._theme;\n  }\n  constructor(theme) {\n    this._theme = theme;\n  }\n  update(theme) {\n    this._theme = theme;\n  }\n  getColor(color) {\n    return this._theme.getColor(color);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewContext.js\nvar ViewContext = class {\n  constructor(configuration, theme, model) {\n    this.configuration = configuration;\n    this.theme = new EditorTheme(theme);\n    this.viewModel = model;\n    this.viewLayout = model.viewLayout;\n  }\n  addEventHandler(eventHandler) {\n    this.viewModel.addViewEventHandler(eventHandler);\n  }\n  removeEventHandler(eventHandler) {\n    this.viewModel.removeViewEventHandler(eventHandler);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view.js\ninit_instantiation();\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/viewGpuContext.js\ninit_nls();\ninit_dom();\ninit_errors();\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/atlas/textureAtlas.js\ninit_dom();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_map();\ninit_instantiation();\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/raster/glyphRasterizer.js\ninit_lifecycle();\ninit_platform();\ninit_stringBuilder();\ninit_encodedTokenAttributes();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/gpuUtils.js\ninit_errors();\ninit_lifecycle();\nvar quadVertices = new Float32Array([\n  1,\n  0,\n  1,\n  1,\n  0,\n  1,\n  0,\n  0,\n  0,\n  1,\n  1,\n  0\n]);\nfunction ensureNonNullable(value) {\n  if (!value) {\n    throw new Error(`Value \"${value}\" cannot be null`);\n  }\n  return value;\n}\nfunction observeDevicePixelDimensions(element, parentWindow, callback) {\n  let observer = new parentWindow.ResizeObserver((entries2) =\u003e {\n    const entry = entries2.find((entry2) =\u003e entry2.target === element);\n    if (!entry) {\n      return;\n    }\n    if (!(\"devicePixelContentBoxSize\" in entry)) {\n      observer?.disconnect();\n      observer = void 0;\n      return;\n    }\n    const width2 = entry.devicePixelContentBoxSize[0].inlineSize;\n    const height = entry.devicePixelContentBoxSize[0].blockSize;\n    if (width2 \u003e 0 \u0026\u0026 height \u003e 0) {\n      callback(width2, height);\n    }\n  });\n  try {\n    observer.observe(element, { box: [\"device-pixel-content-box\"] });\n  } catch {\n    observer.disconnect();\n    observer = void 0;\n    throw new BugIndicatingError(\"Could not observe device pixel dimensions\");\n  }\n  return toDisposable(() =\u003e observer?.disconnect());\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/raster/glyphRasterizer.js\nvar __decorate8 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar nextId = 0;\nvar GlyphRasterizer = class extends Disposable {\n  get cacheKey() {\n    return `${this.fontFamily}_${this.fontSize}px`;\n  }\n  constructor(fontSize, fontFamily, devicePixelRatio, _decorationStyleCache) {\n    super();\n    this.fontSize = fontSize;\n    this.fontFamily = fontFamily;\n    this.devicePixelRatio = devicePixelRatio;\n    this._decorationStyleCache = _decorationStyleCache;\n    this.id = nextId++;\n    this._workGlyph = {\n      source: null,\n      boundingBox: {\n        left: 0,\n        bottom: 0,\n        right: 0,\n        top: 0\n      },\n      originOffset: {\n        x: 0,\n        y: 0\n      },\n      fontBoundingBoxAscent: 0,\n      fontBoundingBoxDescent: 0\n    };\n    this._workGlyphConfig = { chars: void 0, tokenMetadata: 0, decorationStyleSetId: 0 };\n    this._antiAliasing = isMacintosh ? \"greyscale\" : \"subpixel\";\n    const devicePixelFontSize = Math.ceil(this.fontSize * devicePixelRatio);\n    this._canvas = new OffscreenCanvas(devicePixelFontSize * 3, devicePixelFontSize * 3);\n    this._ctx = ensureNonNullable(this._canvas.getContext(\"2d\", {\n      willReadFrequently: true,\n      alpha: this._antiAliasing === \"greyscale\"\n    }));\n    this._ctx.textBaseline = \"top\";\n    this._ctx.fillStyle = \"#FFFFFF\";\n    this._ctx.font = `${devicePixelFontSize}px ${this.fontFamily}`;\n    this._textMetrics = this._ctx.measureText(\"A\");\n  }\n  /**\n   * Rasterizes a glyph. Note that the returned object is reused across different glyphs and\n   * therefore is only safe for synchronous access.\n   */\n  rasterizeGlyph(chars, tokenMetadata, decorationStyleSetId, colorMap) {\n    if (chars === \"\") {\n      return {\n        source: this._canvas,\n        boundingBox: { top: 0, left: 0, bottom: -1, right: -1 },\n        originOffset: { x: 0, y: 0 },\n        fontBoundingBoxAscent: 0,\n        fontBoundingBoxDescent: 0\n      };\n    }\n    if (this._workGlyphConfig.chars === chars \u0026\u0026 this._workGlyphConfig.tokenMetadata === tokenMetadata \u0026\u0026 this._workGlyphConfig.decorationStyleSetId === decorationStyleSetId) {\n      return this._workGlyph;\n    }\n    this._workGlyphConfig.chars = chars;\n    this._workGlyphConfig.tokenMetadata = tokenMetadata;\n    this._workGlyphConfig.decorationStyleSetId = decorationStyleSetId;\n    return this._rasterizeGlyph(chars, tokenMetadata, decorationStyleSetId, colorMap);\n  }\n  _rasterizeGlyph(chars, tokenMetadata, decorationStyleSetId, colorMap) {\n    const devicePixelFontSize = Math.ceil(this.fontSize * this.devicePixelRatio);\n    const canvasDim = devicePixelFontSize * 3;\n    if (this._canvas.width !== canvasDim) {\n      this._canvas.width = canvasDim;\n      this._canvas.height = canvasDim;\n    }\n    this._ctx.save();\n    const xSubPixelXOffset = (tokenMetadata \u0026 15) / 10;\n    const bgId = TokenMetadata.getBackground(tokenMetadata);\n    const bg = colorMap[bgId];\n    const decorationStyleSet = this._decorationStyleCache.getStyleSet(decorationStyleSetId);\n    if (this._antiAliasing === \"subpixel\") {\n      this._ctx.fillStyle = bg;\n      this._ctx.fillRect(0, 0, this._canvas.width, this._canvas.height);\n    } else {\n      this._ctx.clearRect(0, 0, this._canvas.width, this._canvas.height);\n    }\n    const fontSb = new StringBuilder(200);\n    const fontStyle = TokenMetadata.getFontStyle(tokenMetadata);\n    if (fontStyle \u0026 1) {\n      fontSb.appendString(\"italic \");\n    }\n    if (decorationStyleSet?.bold !== void 0) {\n      if (decorationStyleSet.bold) {\n        fontSb.appendString(\"bold \");\n      }\n    } else if (fontStyle \u0026 2) {\n      fontSb.appendString(\"bold \");\n    }\n    fontSb.appendString(`${devicePixelFontSize}px ${this.fontFamily}`);\n    this._ctx.font = fontSb.build();\n    const originX = devicePixelFontSize;\n    const originY = devicePixelFontSize;\n    if (decorationStyleSet?.color !== void 0) {\n      this._ctx.fillStyle = `#${decorationStyleSet.color.toString(16).padStart(8, \"0\")}`;\n    } else {\n      this._ctx.fillStyle = colorMap[TokenMetadata.getForeground(tokenMetadata)];\n    }\n    this._ctx.textBaseline = \"top\";\n    if (decorationStyleSet?.opacity !== void 0) {\n      this._ctx.globalAlpha = decorationStyleSet.opacity;\n    }\n    this._ctx.fillText(chars, originX + xSubPixelXOffset, originY);\n    this._ctx.restore();\n    const imageData = this._ctx.getImageData(0, 0, this._canvas.width, this._canvas.height);\n    if (this._antiAliasing === \"subpixel\") {\n      const bgR = parseInt(bg.substring(1, 3), 16);\n      const bgG = parseInt(bg.substring(3, 5), 16);\n      const bgB = parseInt(bg.substring(5, 7), 16);\n      this._clearColor(imageData, bgR, bgG, bgB);\n      this._ctx.putImageData(imageData, 0, 0);\n    }\n    this._findGlyphBoundingBox(imageData, this._workGlyph.boundingBox);\n    this._workGlyph.source = this._canvas;\n    this._workGlyph.originOffset.x = this._workGlyph.boundingBox.left - originX;\n    this._workGlyph.originOffset.y = this._workGlyph.boundingBox.top - originY;\n    this._workGlyph.fontBoundingBoxAscent = this._textMetrics.fontBoundingBoxAscent;\n    this._workGlyph.fontBoundingBoxDescent = this._textMetrics.fontBoundingBoxDescent;\n    return this._workGlyph;\n  }\n  _clearColor(imageData, r, g, b) {\n    for (let offset = 0; offset \u003c imageData.data.length; offset += 4) {\n      if (imageData.data[offset] === r \u0026\u0026 imageData.data[offset + 1] === g \u0026\u0026 imageData.data[offset + 2] === b) {\n        imageData.data[offset + 3] = 0;\n      }\n    }\n  }\n  // TODO: Does this even need to happen when measure text is used?\n  _findGlyphBoundingBox(imageData, outBoundingBox) {\n    const height = this._canvas.height;\n    const width2 = this._canvas.width;\n    let found = false;\n    for (let y = 0; y \u003c height; y++) {\n      for (let x = 0; x \u003c width2; x++) {\n        const alphaOffset = y * width2 * 4 + x * 4 + 3;\n        if (imageData.data[alphaOffset] !== 0) {\n          outBoundingBox.top = y;\n          found = true;\n          break;\n        }\n      }\n      if (found) {\n        break;\n      }\n    }\n    outBoundingBox.left = 0;\n    found = false;\n    for (let x = 0; x \u003c width2; x++) {\n      for (let y = 0; y \u003c height; y++) {\n        const alphaOffset = y * width2 * 4 + x * 4 + 3;\n        if (imageData.data[alphaOffset] !== 0) {\n          outBoundingBox.left = x;\n          found = true;\n          break;\n        }\n      }\n      if (found) {\n        break;\n      }\n    }\n    outBoundingBox.right = width2;\n    found = false;\n    for (let x = width2 - 1; x \u003e= outBoundingBox.left; x--) {\n      for (let y = 0; y \u003c height; y++) {\n        const alphaOffset = y * width2 * 4 + x * 4 + 3;\n        if (imageData.data[alphaOffset] !== 0) {\n          outBoundingBox.right = x;\n          found = true;\n          break;\n        }\n      }\n      if (found) {\n        break;\n      }\n    }\n    outBoundingBox.bottom = outBoundingBox.top;\n    found = false;\n    for (let y = height - 1; y \u003e= 0; y--) {\n      for (let x = 0; x \u003c width2; x++) {\n        const alphaOffset = y * width2 * 4 + x * 4 + 3;\n        if (imageData.data[alphaOffset] !== 0) {\n          outBoundingBox.bottom = y;\n          found = true;\n          break;\n        }\n      }\n      if (found) {\n        break;\n      }\n    }\n  }\n  getTextMetrics(text2) {\n    return this._ctx.measureText(text2);\n  }\n};\n__decorate8([\n  memoize\n], GlyphRasterizer.prototype, \"cacheKey\", null);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/taskQueue.js\ninit_dom();\ninit_lifecycle();\ninit_log();\nvar __decorate9 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param7 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar TaskQueue2 = class TaskQueue3 extends Disposable {\n  constructor(_logService) {\n    super();\n    this._logService = _logService;\n    this._tasks = [];\n    this._i = 0;\n    this._register(toDisposable(() =\u003e this.clear()));\n  }\n  enqueue(task) {\n    this._tasks.push(task);\n    this._start();\n  }\n  clear() {\n    if (this._idleCallback) {\n      this._cancelCallback(this._idleCallback);\n      this._idleCallback = void 0;\n    }\n    this._i = 0;\n    this._tasks.length = 0;\n  }\n  _start() {\n    if (!this._idleCallback) {\n      this._idleCallback = this._requestCallback(this._process.bind(this));\n    }\n  }\n  _process(deadline) {\n    this._idleCallback = void 0;\n    let taskDuration = 0;\n    let longestTask = 0;\n    let lastDeadlineRemaining = deadline.timeRemaining();\n    let deadlineRemaining = 0;\n    while (this._i \u003c this._tasks.length) {\n      taskDuration = Date.now();\n      if (!this._tasks[this._i]()) {\n        this._i++;\n      }\n      taskDuration = Math.max(1, Date.now() - taskDuration);\n      longestTask = Math.max(taskDuration, longestTask);\n      deadlineRemaining = deadline.timeRemaining();\n      if (longestTask * 1.5 \u003e deadlineRemaining) {\n        if (lastDeadlineRemaining - taskDuration \u003c -20) {\n          this._logService.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(lastDeadlineRemaining - taskDuration))}ms`);\n        }\n        this._start();\n        return;\n      }\n      lastDeadlineRemaining = deadlineRemaining;\n    }\n    this.clear();\n  }\n};\nTaskQueue2 = __decorate9([\n  __param7(0, ILogService)\n], TaskQueue2);\nvar PriorityTaskQueue = class extends TaskQueue2 {\n  _requestCallback(callback) {\n    return getActiveWindow().setTimeout(() =\u003e callback(this._createDeadline(16)));\n  }\n  _cancelCallback(identifier) {\n    getActiveWindow().clearTimeout(identifier);\n  }\n  _createDeadline(duration) {\n    const end = Date.now() + duration;\n    return {\n      timeRemaining: () =\u003e Math.max(0, end - Date.now())\n    };\n  }\n};\nvar IdleTaskQueueInternal = class extends TaskQueue2 {\n  _requestCallback(callback) {\n    return getActiveWindow().requestIdleCallback(callback);\n  }\n  _cancelCallback(identifier) {\n    getActiveWindow().cancelIdleCallback(identifier);\n  }\n};\nvar IdleTaskQueue = \"requestIdleCallback\" in getActiveWindow() ? IdleTaskQueueInternal : PriorityTaskQueue;\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/atlas/textureAtlasPage.js\ninit_lifecycle();\ninit_map();\ninit_log();\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/atlas/textureAtlasShelfAllocator.js\ninit_errors();\nvar TextureAtlasShelfAllocator = class {\n  constructor(_canvas, _textureIndex) {\n    this._canvas = _canvas;\n    this._textureIndex = _textureIndex;\n    this._currentRow = {\n      x: 0,\n      y: 0,\n      h: 0\n    };\n    this._allocatedGlyphs = /* @__PURE__ */ new Set();\n    this._nextIndex = 0;\n    this._ctx = ensureNonNullable(this._canvas.getContext(\"2d\", {\n      willReadFrequently: true\n    }));\n  }\n  allocate(rasterizedGlyph) {\n    const glyphWidth = rasterizedGlyph.boundingBox.right - rasterizedGlyph.boundingBox.left + 1;\n    const glyphHeight = rasterizedGlyph.boundingBox.bottom - rasterizedGlyph.boundingBox.top + 1;\n    if (glyphWidth \u003e this._canvas.width || glyphHeight \u003e this._canvas.height) {\n      throw new BugIndicatingError(\"Glyph is too large for the atlas page\");\n    }\n    if (rasterizedGlyph.boundingBox.right - rasterizedGlyph.boundingBox.left + 1 \u003e this._canvas.width - this._currentRow.x) {\n      this._currentRow.x = 0;\n      this._currentRow.y += this._currentRow.h;\n      this._currentRow.h = 1;\n    }\n    if (this._currentRow.y + rasterizedGlyph.boundingBox.bottom - rasterizedGlyph.boundingBox.top + 1 \u003e this._canvas.height) {\n      return void 0;\n    }\n    this._ctx.drawImage(\n      rasterizedGlyph.source,\n      // source\n      rasterizedGlyph.boundingBox.left,\n      rasterizedGlyph.boundingBox.top,\n      glyphWidth,\n      glyphHeight,\n      // destination\n      this._currentRow.x,\n      this._currentRow.y,\n      glyphWidth,\n      glyphHeight\n    );\n    const glyph = {\n      pageIndex: this._textureIndex,\n      glyphIndex: this._nextIndex++,\n      x: this._currentRow.x,\n      y: this._currentRow.y,\n      w: glyphWidth,\n      h: glyphHeight,\n      originOffsetX: rasterizedGlyph.originOffset.x,\n      originOffsetY: rasterizedGlyph.originOffset.y,\n      fontBoundingBoxAscent: rasterizedGlyph.fontBoundingBoxAscent,\n      fontBoundingBoxDescent: rasterizedGlyph.fontBoundingBoxDescent\n    };\n    this._currentRow.x += glyphWidth;\n    this._currentRow.h = Math.max(this._currentRow.h, glyphHeight);\n    this._allocatedGlyphs.add(glyph);\n    return glyph;\n  }\n  getUsagePreview() {\n    const w = this._canvas.width;\n    const h2 = this._canvas.height;\n    const canvas = new OffscreenCanvas(w, h2);\n    const ctx = ensureNonNullable(canvas.getContext(\"2d\"));\n    ctx.fillStyle = \"#808080\";\n    ctx.fillRect(0, 0, w, h2);\n    const rowHeight = /* @__PURE__ */ new Map();\n    const rowWidth = /* @__PURE__ */ new Map();\n    for (const g of this._allocatedGlyphs) {\n      rowHeight.set(g.y, Math.max(rowHeight.get(g.y) ?? 0, g.h));\n      rowWidth.set(g.y, Math.max(rowWidth.get(g.y) ?? 0, g.x + g.w));\n    }\n    for (const g of this._allocatedGlyphs) {\n      ctx.fillStyle = \"#4040FF\";\n      ctx.fillRect(g.x, g.y, g.w, g.h);\n      ctx.fillStyle = \"#FF0000\";\n      ctx.fillRect(g.x, g.y + g.h, g.w, rowHeight.get(g.y) - g.h);\n    }\n    for (const [rowY, rowW] of rowWidth.entries()) {\n      if (rowY !== this._currentRow.y) {\n        ctx.fillStyle = \"#FF0000\";\n        ctx.fillRect(rowW, rowY, w - rowW, rowHeight.get(rowY));\n      }\n    }\n    return canvas.convertToBlob();\n  }\n  getStats() {\n    const w = this._canvas.width;\n    const h2 = this._canvas.height;\n    let usedPixels = 0;\n    let wastedPixels = 0;\n    const totalPixels = w * h2;\n    const rowHeight = /* @__PURE__ */ new Map();\n    const rowWidth = /* @__PURE__ */ new Map();\n    for (const g of this._allocatedGlyphs) {\n      rowHeight.set(g.y, Math.max(rowHeight.get(g.y) ?? 0, g.h));\n      rowWidth.set(g.y, Math.max(rowWidth.get(g.y) ?? 0, g.x + g.w));\n    }\n    for (const g of this._allocatedGlyphs) {\n      usedPixels += g.w * g.h;\n      wastedPixels += g.w * (rowHeight.get(g.y) - g.h);\n    }\n    for (const [rowY, rowW] of rowWidth.entries()) {\n      if (rowY !== this._currentRow.y) {\n        wastedPixels += (w - rowW) * rowHeight.get(rowY);\n      }\n    }\n    return [\n      `page${this._textureIndex}:`,\n      `     Total: ${totalPixels} (${w}x${h2})`,\n      `      Used: ${usedPixels} (${(usedPixels / totalPixels * 100).toPrecision(2)}%)`,\n      `    Wasted: ${wastedPixels} (${(wastedPixels / totalPixels * 100).toPrecision(2)}%)`,\n      `Efficiency: ${(usedPixels / (usedPixels + wastedPixels) * 100).toPrecision(2)}%`\n    ].join(\"\\n\");\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/atlas/textureAtlasSlabAllocator.js\ninit_dom();\ninit_errors();\ninit_map();\nvar TextureAtlasSlabAllocator = class {\n  constructor(_canvas, _textureIndex, options2) {\n    this._canvas = _canvas;\n    this._textureIndex = _textureIndex;\n    this._slabs = [];\n    this._activeSlabsByDims = new NKeyMap();\n    this._unusedRects = [];\n    this._openRegionsByHeight = /* @__PURE__ */ new Map();\n    this._openRegionsByWidth = /* @__PURE__ */ new Map();\n    this._allocatedGlyphs = /* @__PURE__ */ new Set();\n    this._nextIndex = 0;\n    this._ctx = ensureNonNullable(this._canvas.getContext(\"2d\", {\n      willReadFrequently: true\n    }));\n    this._slabW = Math.min(options2?.slabW ?? 64 \u003c\u003c Math.max(Math.floor(getActiveWindow().devicePixelRatio) - 1, 0), this._canvas.width);\n    this._slabH = Math.min(options2?.slabH ?? this._slabW, this._canvas.height);\n    this._slabsPerRow = Math.floor(this._canvas.width / this._slabW);\n    this._slabsPerColumn = Math.floor(this._canvas.height / this._slabH);\n  }\n  allocate(rasterizedGlyph) {\n    const glyphWidth = rasterizedGlyph.boundingBox.right - rasterizedGlyph.boundingBox.left + 1;\n    const glyphHeight = rasterizedGlyph.boundingBox.bottom - rasterizedGlyph.boundingBox.top + 1;\n    if (glyphWidth \u003e this._canvas.width || glyphHeight \u003e this._canvas.height) {\n      throw new BugIndicatingError(\"Glyph is too large for the atlas page\");\n    }\n    if (glyphWidth \u003e this._slabW || glyphHeight \u003e this._slabH) {\n      if (this._allocatedGlyphs.size \u003e 0) {\n        return void 0;\n      }\n      let sizeCandidate = this._canvas.width;\n      while (glyphWidth \u003c sizeCandidate / 2 \u0026\u0026 glyphHeight \u003c sizeCandidate / 2) {\n        sizeCandidate /= 2;\n      }\n      this._slabW = sizeCandidate;\n      this._slabH = sizeCandidate;\n      this._slabsPerRow = Math.floor(this._canvas.width / this._slabW);\n      this._slabsPerColumn = Math.floor(this._canvas.height / this._slabH);\n    }\n    const desiredSlabSize = {\n      // Nearest square number\n      // TODO: This can probably be optimized\n      // w: 1 \u003c\u003c Math.ceil(Math.sqrt(glyphWidth)),\n      // h: 1 \u003c\u003c Math.ceil(Math.sqrt(glyphHeight)),\n      // Nearest x px\n      // w: Math.ceil(glyphWidth / nearestXPixels) * nearestXPixels,\n      // h: Math.ceil(glyphHeight / nearestXPixels) * nearestXPixels,\n      // Round odd numbers up\n      // w: glyphWidth % 0 === 1 ? glyphWidth + 1 : glyphWidth,\n      // h: glyphHeight % 0 === 1 ? glyphHeight + 1 : glyphHeight,\n      // Exact number only\n      w: glyphWidth,\n      h: glyphHeight\n    };\n    let slab = this._activeSlabsByDims.get(desiredSlabSize.w, desiredSlabSize.h);\n    if (slab) {\n      const glyphsPerSlab = Math.floor(this._slabW / slab.entryW) * Math.floor(this._slabH / slab.entryH);\n      if (slab.count \u003e= glyphsPerSlab) {\n        slab = void 0;\n      }\n    }\n    let dx;\n    let dy;\n    if (!slab) {\n      if (glyphWidth \u003c glyphHeight) {\n        const openRegions = this._openRegionsByWidth.get(glyphWidth);\n        if (openRegions?.length) {\n          for (let i2 = openRegions.length - 1; i2 \u003e= 0; i2--) {\n            const r = openRegions[i2];\n            if (r.w \u003e= glyphWidth \u0026\u0026 r.h \u003e= glyphHeight) {\n              dx = r.x;\n              dy = r.y;\n              if (glyphWidth \u003c r.w) {\n                this._unusedRects.push({\n                  x: r.x + glyphWidth,\n                  y: r.y,\n                  w: r.w - glyphWidth,\n                  h: glyphHeight\n                });\n              }\n              r.y += glyphHeight;\n              r.h -= glyphHeight;\n              if (r.h === 0) {\n                if (i2 === openRegions.length - 1) {\n                  openRegions.pop();\n                } else {\n                  this._unusedRects.splice(i2, 1);\n                }\n              }\n              break;\n            }\n          }\n        }\n      } else {\n        const openRegions = this._openRegionsByHeight.get(glyphHeight);\n        if (openRegions?.length) {\n          for (let i2 = openRegions.length - 1; i2 \u003e= 0; i2--) {\n            const r = openRegions[i2];\n            if (r.w \u003e= glyphWidth \u0026\u0026 r.h \u003e= glyphHeight) {\n              dx = r.x;\n              dy = r.y;\n              if (glyphHeight \u003c r.h) {\n                this._unusedRects.push({\n                  x: r.x,\n                  y: r.y + glyphHeight,\n                  w: glyphWidth,\n                  h: r.h - glyphHeight\n                });\n              }\n              r.x += glyphWidth;\n              r.w -= glyphWidth;\n              if (r.h === 0) {\n                if (i2 === openRegions.length - 1) {\n                  openRegions.pop();\n                } else {\n                  this._unusedRects.splice(i2, 1);\n                }\n              }\n              break;\n            }\n          }\n        }\n      }\n    }\n    if (dx === void 0 || dy === void 0) {\n      if (!slab) {\n        if (this._slabs.length \u003e= this._slabsPerRow * this._slabsPerColumn) {\n          return void 0;\n        }\n        slab = {\n          x: Math.floor(this._slabs.length % this._slabsPerRow) * this._slabW,\n          y: Math.floor(this._slabs.length / this._slabsPerRow) * this._slabH,\n          entryW: desiredSlabSize.w,\n          entryH: desiredSlabSize.h,\n          count: 0\n        };\n        const unusedW = this._slabW % slab.entryW;\n        const unusedH = this._slabH % slab.entryH;\n        if (unusedW) {\n          addEntryToMapArray(this._openRegionsByWidth, unusedW, {\n            x: slab.x + this._slabW - unusedW,\n            w: unusedW,\n            y: slab.y,\n            h: this._slabH - (unusedH ?? 0)\n          });\n        }\n        if (unusedH) {\n          addEntryToMapArray(this._openRegionsByHeight, unusedH, {\n            x: slab.x,\n            w: this._slabW,\n            y: slab.y + this._slabH - unusedH,\n            h: unusedH\n          });\n        }\n        this._slabs.push(slab);\n        this._activeSlabsByDims.set(slab, desiredSlabSize.w, desiredSlabSize.h);\n      }\n      const glyphsPerRow = Math.floor(this._slabW / slab.entryW);\n      dx = slab.x + Math.floor(slab.count % glyphsPerRow) * slab.entryW;\n      dy = slab.y + Math.floor(slab.count / glyphsPerRow) * slab.entryH;\n      slab.count++;\n    }\n    this._ctx.drawImage(\n      rasterizedGlyph.source,\n      // source\n      rasterizedGlyph.boundingBox.left,\n      rasterizedGlyph.boundingBox.top,\n      glyphWidth,\n      glyphHeight,\n      // destination\n      dx,\n      dy,\n      glyphWidth,\n      glyphHeight\n    );\n    const glyph = {\n      pageIndex: this._textureIndex,\n      glyphIndex: this._nextIndex++,\n      x: dx,\n      y: dy,\n      w: glyphWidth,\n      h: glyphHeight,\n      originOffsetX: rasterizedGlyph.originOffset.x,\n      originOffsetY: rasterizedGlyph.originOffset.y,\n      fontBoundingBoxAscent: rasterizedGlyph.fontBoundingBoxAscent,\n      fontBoundingBoxDescent: rasterizedGlyph.fontBoundingBoxDescent\n    };\n    this._allocatedGlyphs.add(glyph);\n    return glyph;\n  }\n  getUsagePreview() {\n    const w = this._canvas.width;\n    const h2 = this._canvas.height;\n    const canvas = new OffscreenCanvas(w, h2);\n    const ctx = ensureNonNullable(canvas.getContext(\"2d\"));\n    ctx.fillStyle = \"#808080\";\n    ctx.fillRect(0, 0, w, h2);\n    let slabEntryPixels = 0;\n    let usedPixels = 0;\n    let slabEdgePixels = 0;\n    let restrictedPixels = 0;\n    const slabW = 64 \u003c\u003c Math.floor(getActiveWindow().devicePixelRatio) - 1;\n    const slabH = slabW;\n    for (const slab of this._slabs) {\n      let x = 0;\n      let y = 0;\n      for (let i2 = 0; i2 \u003c slab.count; i2++) {\n        if (x + slab.entryW \u003e slabW) {\n          x = 0;\n          y += slab.entryH;\n        }\n        ctx.fillStyle = \"#FF0000\";\n        ctx.fillRect(slab.x + x, slab.y + y, slab.entryW, slab.entryH);\n        slabEntryPixels += slab.entryW * slab.entryH;\n        x += slab.entryW;\n      }\n      const entriesPerRow = Math.floor(slabW / slab.entryW);\n      const entriesPerCol = Math.floor(slabH / slab.entryH);\n      const thisSlabPixels = slab.entryW * entriesPerRow * slab.entryH * entriesPerCol;\n      slabEdgePixels += slabW * slabH - thisSlabPixels;\n    }\n    for (const g of this._allocatedGlyphs) {\n      usedPixels += g.w * g.h;\n      ctx.fillStyle = \"#4040FF\";\n      ctx.fillRect(g.x, g.y, g.w, g.h);\n    }\n    const unusedRegions = Array.from(this._openRegionsByWidth.values()).flat().concat(Array.from(this._openRegionsByHeight.values()).flat());\n    for (const r of unusedRegions) {\n      ctx.fillStyle = \"#FF000088\";\n      ctx.fillRect(r.x, r.y, r.w, r.h);\n      restrictedPixels += r.w * r.h;\n    }\n    ctx.globalAlpha = 0.5;\n    ctx.drawImage(this._canvas, 0, 0);\n    ctx.globalAlpha = 1;\n    return canvas.convertToBlob();\n  }\n  getStats() {\n    const w = this._canvas.width;\n    const h2 = this._canvas.height;\n    let slabEntryPixels = 0;\n    let usedPixels = 0;\n    let slabEdgePixels = 0;\n    let wastedPixels = 0;\n    let restrictedPixels = 0;\n    const totalPixels = w * h2;\n    const slabW = 64 \u003c\u003c Math.floor(getActiveWindow().devicePixelRatio) - 1;\n    const slabH = slabW;\n    for (const slab of this._slabs) {\n      let x = 0;\n      let y = 0;\n      for (let i2 = 0; i2 \u003c slab.count; i2++) {\n        if (x + slab.entryW \u003e slabW) {\n          x = 0;\n          y += slab.entryH;\n        }\n        slabEntryPixels += slab.entryW * slab.entryH;\n        x += slab.entryW;\n      }\n      const entriesPerRow = Math.floor(slabW / slab.entryW);\n      const entriesPerCol = Math.floor(slabH / slab.entryH);\n      const thisSlabPixels = slab.entryW * entriesPerRow * slab.entryH * entriesPerCol;\n      slabEdgePixels += slabW * slabH - thisSlabPixels;\n    }\n    for (const g of this._allocatedGlyphs) {\n      usedPixels += g.w * g.h;\n    }\n    const unusedRegions = Array.from(this._openRegionsByWidth.values()).flat().concat(Array.from(this._openRegionsByHeight.values()).flat());\n    for (const r of unusedRegions) {\n      restrictedPixels += r.w * r.h;\n    }\n    const edgeUsedPixels = slabEdgePixels - restrictedPixels;\n    wastedPixels = slabEntryPixels - (usedPixels - edgeUsedPixels);\n    const efficiency = usedPixels / (usedPixels + wastedPixels + restrictedPixels);\n    return [\n      `page[${this._textureIndex}]:`,\n      `     Total: ${totalPixels}px (${w}x${h2})`,\n      `      Used: ${usedPixels}px (${(usedPixels / totalPixels * 100).toFixed(2)}%)`,\n      `    Wasted: ${wastedPixels}px (${(wastedPixels / totalPixels * 100).toFixed(2)}%)`,\n      `Restricted: ${restrictedPixels}px (${(restrictedPixels / totalPixels * 100).toFixed(2)}%) (hard to allocate)`,\n      `Efficiency: ${efficiency === 1 ? \"100\" : (efficiency * 100).toFixed(2)}%`,\n      `     Slabs: ${this._slabs.length} of ${Math.floor(this._canvas.width / slabW) * Math.floor(this._canvas.height / slabH)}`\n    ].join(\"\\n\");\n  }\n};\nfunction addEntryToMapArray(map, key, entry) {\n  let list2 = map.get(key);\n  if (!list2) {\n    list2 = [];\n    map.set(key, list2);\n  }\n  list2.push(entry);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/atlas/textureAtlasPage.js\nvar __decorate10 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param8 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar TextureAtlasPage_1;\nvar TextureAtlasPage = class TextureAtlasPage2 extends Disposable {\n  static {\n    TextureAtlasPage_1 = this;\n  }\n  get version() {\n    return this._version;\n  }\n  static {\n    this.maximumGlyphCount = 5e3;\n  }\n  get usedArea() {\n    return this._usedArea;\n  }\n  get source() {\n    return this._canvas;\n  }\n  get glyphs() {\n    return this._glyphInOrderSet.values();\n  }\n  constructor(textureIndex, pageSize, allocatorType, _logService, themeService) {\n    super();\n    this._logService = _logService;\n    this._version = 0;\n    this._usedArea = { left: 0, top: 0, right: 0, bottom: 0 };\n    this._glyphMap = new NKeyMap();\n    this._glyphInOrderSet = /* @__PURE__ */ new Set();\n    this._canvas = new OffscreenCanvas(pageSize, pageSize);\n    this._colorMap = themeService.getColorTheme().tokenColorMap;\n    switch (allocatorType) {\n      case \"shelf\":\n        this._allocator = new TextureAtlasShelfAllocator(this._canvas, textureIndex);\n        break;\n      case \"slab\":\n        this._allocator = new TextureAtlasSlabAllocator(this._canvas, textureIndex);\n        break;\n      default:\n        this._allocator = allocatorType(this._canvas, textureIndex);\n        break;\n    }\n    this._register(toDisposable(() =\u003e {\n      this._canvas.width = 1;\n      this._canvas.height = 1;\n    }));\n  }\n  getGlyph(rasterizer, chars, tokenMetadata, decorationStyleSetId) {\n    return this._glyphMap.get(chars, tokenMetadata, decorationStyleSetId, rasterizer.cacheKey) ?? this._createGlyph(rasterizer, chars, tokenMetadata, decorationStyleSetId);\n  }\n  _createGlyph(rasterizer, chars, tokenMetadata, decorationStyleSetId) {\n    if (this._glyphInOrderSet.size \u003e= TextureAtlasPage_1.maximumGlyphCount) {\n      return void 0;\n    }\n    const rasterizedGlyph = rasterizer.rasterizeGlyph(chars, tokenMetadata, decorationStyleSetId, this._colorMap);\n    const glyph = this._allocator.allocate(rasterizedGlyph);\n    if (glyph === void 0) {\n      return void 0;\n    }\n    this._glyphMap.set(glyph, chars, tokenMetadata, decorationStyleSetId, rasterizer.cacheKey);\n    this._glyphInOrderSet.add(glyph);\n    this._version++;\n    this._usedArea.right = Math.max(this._usedArea.right, glyph.x + glyph.w - 1);\n    this._usedArea.bottom = Math.max(this._usedArea.bottom, glyph.y + glyph.h - 1);\n    if (this._logService.getLevel() === LogLevel.Trace) {\n      this._logService.trace(\"New glyph\", {\n        chars,\n        tokenMetadata,\n        decorationStyleSetId,\n        rasterizedGlyph,\n        glyph\n      });\n    }\n    return glyph;\n  }\n  getUsagePreview() {\n    return this._allocator.getUsagePreview();\n  }\n  getStats() {\n    return this._allocator.getStats();\n  }\n};\nTextureAtlasPage = TextureAtlasPage_1 = __decorate10([\n  __param8(3, ILogService),\n  __param8(4, IThemeService)\n], TextureAtlasPage);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/atlas/textureAtlas.js\nvar __decorate11 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param9 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar TextureAtlas_1;\nvar TextureAtlas = class TextureAtlas2 extends Disposable {\n  static {\n    TextureAtlas_1 = this;\n  }\n  static {\n    this.maximumPageCount = 16;\n  }\n  get pages() {\n    return this._pages;\n  }\n  constructor(_maxTextureSize, options2, _decorationStyleCache, _themeService, _instantiationService) {\n    super();\n    this._maxTextureSize = _maxTextureSize;\n    this._decorationStyleCache = _decorationStyleCache;\n    this._themeService = _themeService;\n    this._instantiationService = _instantiationService;\n    this._warmUpTask = this._register(new MutableDisposable());\n    this._warmedUpRasterizers = /* @__PURE__ */ new Set();\n    this._pages = [];\n    this._glyphPageIndex = new NKeyMap();\n    this._onDidDeleteGlyphs = this._register(new Emitter());\n    this.onDidDeleteGlyphs = this._onDidDeleteGlyphs.event;\n    this._allocatorType = options2?.allocatorType ?? \"slab\";\n    this._register(Event.runAndSubscribe(this._themeService.onDidColorThemeChange, () =\u003e {\n      if (this._colorMap) {\n        this.clear();\n      }\n      this._colorMap = this._themeService.getColorTheme().tokenColorMap;\n    }));\n    const dprFactor = Math.max(1, Math.floor(getActiveWindow().devicePixelRatio));\n    this.pageSize = Math.min(1024 * dprFactor, this._maxTextureSize);\n    this._initFirstPage();\n    this._register(toDisposable(() =\u003e dispose(this._pages)));\n  }\n  _initFirstPage() {\n    const firstPage = this._instantiationService.createInstance(TextureAtlasPage, 0, this.pageSize, this._allocatorType);\n    this._pages.push(firstPage);\n    const nullRasterizer = new GlyphRasterizer(1, \"\", 1, this._decorationStyleCache);\n    firstPage.getGlyph(nullRasterizer, \"\", 0, 0);\n    nullRasterizer.dispose();\n  }\n  clear() {\n    for (const page of this._pages) {\n      page.dispose();\n    }\n    this._pages.length = 0;\n    this._glyphPageIndex.clear();\n    this._warmedUpRasterizers.clear();\n    this._warmUpTask.clear();\n    this._initFirstPage();\n    this._onDidDeleteGlyphs.fire();\n  }\n  getGlyph(rasterizer, chars, tokenMetadata, decorationStyleSetId, x) {\n    tokenMetadata \u0026= ~(255 | 768 | 1024);\n    tokenMetadata |= Math.floor(x % 1 * 10);\n    if (!this._warmedUpRasterizers.has(rasterizer.id)) {\n      this._warmUpAtlas(rasterizer);\n      this._warmedUpRasterizers.add(rasterizer.id);\n    }\n    return this._tryGetGlyph(this._glyphPageIndex.get(chars, tokenMetadata, decorationStyleSetId, rasterizer.cacheKey) ?? 0, rasterizer, chars, tokenMetadata, decorationStyleSetId);\n  }\n  _tryGetGlyph(pageIndex, rasterizer, chars, tokenMetadata, decorationStyleSetId) {\n    this._glyphPageIndex.set(pageIndex, chars, tokenMetadata, decorationStyleSetId, rasterizer.cacheKey);\n    return this._pages[pageIndex].getGlyph(rasterizer, chars, tokenMetadata, decorationStyleSetId) ?? (pageIndex + 1 \u003c this._pages.length ? this._tryGetGlyph(pageIndex + 1, rasterizer, chars, tokenMetadata, decorationStyleSetId) : void 0) ?? this._getGlyphFromNewPage(rasterizer, chars, tokenMetadata, decorationStyleSetId);\n  }\n  _getGlyphFromNewPage(rasterizer, chars, tokenMetadata, decorationStyleSetId) {\n    if (this._pages.length \u003e= TextureAtlas_1.maximumPageCount) {\n      throw new Error(`Attempt to create a texture atlas page past the limit ${TextureAtlas_1.maximumPageCount}`);\n    }\n    this._pages.push(this._instantiationService.createInstance(TextureAtlasPage, this._pages.length, this.pageSize, this._allocatorType));\n    this._glyphPageIndex.set(this._pages.length - 1, chars, tokenMetadata, decorationStyleSetId, rasterizer.cacheKey);\n    return this._pages[this._pages.length - 1].getGlyph(rasterizer, chars, tokenMetadata, decorationStyleSetId);\n  }\n  getStats() {\n    return this._pages.map((e) =\u003e e.getStats());\n  }\n  /**\n   * Warms up the atlas by rasterizing all printable ASCII characters for each token color. This\n   * is distrubuted over multiple idle callbacks to avoid blocking the main thread.\n   */\n  _warmUpAtlas(rasterizer) {\n    const colorMap = this._colorMap;\n    if (!colorMap) {\n      throw new BugIndicatingError(\"Cannot warm atlas without color map\");\n    }\n    this._warmUpTask.value?.clear();\n    const taskQueue = this._warmUpTask.value = this._instantiationService.createInstance(IdleTaskQueue);\n    for (let code = 65; code \u003c= 90; code++) {\n      for (const fgColor of colorMap.keys()) {\n        taskQueue.enqueue(() =\u003e {\n          for (let x = 0; x \u003c 1; x += 0.1) {\n            this.getGlyph(rasterizer, String.fromCharCode(code), fgColor \u003c\u003c 15 \u0026 16744448, 0, x);\n          }\n        });\n      }\n    }\n    for (let code = 97; code \u003c= 122; code++) {\n      for (const fgColor of colorMap.keys()) {\n        taskQueue.enqueue(() =\u003e {\n          for (let x = 0; x \u003c 1; x += 0.1) {\n            this.getGlyph(rasterizer, String.fromCharCode(code), fgColor \u003c\u003c 15 \u0026 16744448, 0, x);\n          }\n        });\n      }\n    }\n    for (let code = 33; code \u003c= 126; code++) {\n      for (const fgColor of colorMap.keys()) {\n        taskQueue.enqueue(() =\u003e {\n          for (let x = 0; x \u003c 1; x += 0.1) {\n            this.getGlyph(rasterizer, String.fromCharCode(code), fgColor \u003c\u003c 15 \u0026 16744448, 0, x);\n          }\n        });\n      }\n    }\n  }\n};\nTextureAtlas = TextureAtlas_1 = __decorate11([\n  __param9(3, IThemeService),\n  __param9(4, IInstantiationService)\n], TextureAtlas);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/viewGpuContext.js\ninit_configuration();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/severity.js\ninit_strings();\nvar Severity;\n(function(Severity3) {\n  Severity3[Severity3[\"Ignore\"] = 0] = \"Ignore\";\n  Severity3[Severity3[\"Info\"] = 1] = \"Info\";\n  Severity3[Severity3[\"Warning\"] = 2] = \"Warning\";\n  Severity3[Severity3[\"Error\"] = 3] = \"Error\";\n})(Severity || (Severity = {}));\n(function(Severity3) {\n  const _error = \"error\";\n  const _warning = \"warning\";\n  const _warn = \"warn\";\n  const _info = \"info\";\n  const _ignore = \"ignore\";\n  function fromValue(value) {\n    if (!value) {\n      return Severity3.Ignore;\n    }\n    if (equalsIgnoreCase(_error, value)) {\n      return Severity3.Error;\n    }\n    if (equalsIgnoreCase(_warning, value) || equalsIgnoreCase(_warn, value)) {\n      return Severity3.Warning;\n    }\n    if (equalsIgnoreCase(_info, value)) {\n      return Severity3.Info;\n    }\n    return Severity3.Ignore;\n  }\n  Severity3.fromValue = fromValue;\n  function toString(severity) {\n    switch (severity) {\n      case Severity3.Error:\n        return _error;\n      case Severity3.Warning:\n        return _warning;\n      case Severity3.Info:\n        return _info;\n      default:\n        return _ignore;\n    }\n  }\n  Severity3.toString = toString;\n})(Severity || (Severity = {}));\nvar severity_default = Severity;\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/notification/common/notification.js\ninit_instantiation();\nvar Severity2 = severity_default;\nvar INotificationService = createDecorator(\"notificationService\");\nvar NoOpNotification = class {\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/gpuDisposable.js\ninit_types();\nvar GPULifecycle;\n(function(GPULifecycle2) {\n  async function requestDevice(fallback2) {\n    try {\n      if (!navigator.gpu) {\n        throw new Error(\"This browser does not support WebGPU\");\n      }\n      const adapter = await navigator.gpu.requestAdapter();\n      if (!adapter) {\n        throw new Error(\"This browser supports WebGPU but it appears to be disabled\");\n      }\n      return wrapDestroyableInDisposable(await adapter.requestDevice());\n    } catch (e) {\n      if (fallback2) {\n        fallback2(e.message);\n      }\n      throw e;\n    }\n  }\n  GPULifecycle2.requestDevice = requestDevice;\n  function createBuffer(device, descriptor, initialValues) {\n    const buffer = device.createBuffer(descriptor);\n    if (initialValues) {\n      device.queue.writeBuffer(buffer, 0, isFunction(initialValues) ? initialValues() : initialValues);\n    }\n    return wrapDestroyableInDisposable(buffer);\n  }\n  GPULifecycle2.createBuffer = createBuffer;\n  function createTexture(device, descriptor) {\n    return wrapDestroyableInDisposable(device.createTexture(descriptor));\n  }\n  GPULifecycle2.createTexture = createTexture;\n})(GPULifecycle || (GPULifecycle = {}));\nfunction wrapDestroyableInDisposable(value) {\n  return {\n    object: value,\n    dispose: () =\u003e value.destroy()\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/rectangleRenderer.js\ninit_dom();\ninit_event();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/objectCollectionBuffer.js\ninit_event();\ninit_lifecycle();\ninit_linkedList();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/bufferDirtyTracker.js\nvar BufferDirtyTracker = class {\n  get dataOffset() {\n    return this._startIndex;\n  }\n  get dirtySize() {\n    if (this._startIndex === void 0 || this._endIndex === void 0) {\n      return void 0;\n    }\n    return this._endIndex - this._startIndex + 1;\n  }\n  get isDirty() {\n    return this._startIndex !== void 0;\n  }\n  /**\n   * Flag the index(es) as modified. Returns the index flagged.\n   * @param index An index to flag.\n   * @param length An optional length to flag. Defaults to 1.\n   */\n  flag(index, length = 1) {\n    this._flag(index);\n    if (length \u003e 1) {\n      this._flag(index + length - 1);\n    }\n    return index;\n  }\n  _flag(index) {\n    if (this._startIndex === void 0 || index \u003c this._startIndex) {\n      this._startIndex = index;\n    }\n    if (this._endIndex === void 0 || index \u003e this._endIndex) {\n      this._endIndex = index;\n    }\n  }\n  clear() {\n    this._startIndex = void 0;\n    this._endIndex = void 0;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/objectCollectionBuffer.js\nfunction createObjectCollectionBuffer(propertySpecs, capacity) {\n  return new ObjectCollectionBuffer(propertySpecs, capacity);\n}\nvar ObjectCollectionBuffer = class extends Disposable {\n  get entryCount() {\n    return this._entries.size;\n  }\n  get dirtyTracker() {\n    return this._dirtyTracker;\n  }\n  constructor(propertySpecs, capacity) {\n    super();\n    this.propertySpecs = propertySpecs;\n    this.capacity = capacity;\n    this._dirtyTracker = new BufferDirtyTracker();\n    this._propertySpecsMap = /* @__PURE__ */ new Map();\n    this._entries = new LinkedList();\n    this._onDidChange = this._register(new Emitter());\n    this._onDidChangeBuffer = this._register(new Emitter());\n    this.onDidChangeBuffer = this._onDidChangeBuffer.event;\n    this.view = new Float32Array(capacity * propertySpecs.length);\n    this.buffer = this.view.buffer;\n    this._entrySize = propertySpecs.length;\n    for (let i2 = 0; i2 \u003c propertySpecs.length; i2++) {\n      const spec = {\n        offset: i2,\n        ...propertySpecs[i2]\n      };\n      this._propertySpecsMap.set(spec.name, spec);\n    }\n    this._register(toDisposable(() =\u003e dispose(this._entries)));\n  }\n  createEntry(data) {\n    if (this._entries.size === this.capacity) {\n      this._expandBuffer();\n      this._onDidChangeBuffer.fire();\n    }\n    const value = new ObjectCollectionBufferEntry(this.view, this._propertySpecsMap, this._dirtyTracker, this._entries.size, data);\n    const removeFromEntries = this._entries.push(value);\n    const listeners = [];\n    listeners.push(Event.forward(value.onDidChange, this._onDidChange));\n    listeners.push(value.onWillDispose(() =\u003e {\n      const deletedEntryIndex = value.i;\n      removeFromEntries();\n      this.view.set(this.view.subarray(deletedEntryIndex * this._entrySize + 2, this._entries.size * this._entrySize + 2), deletedEntryIndex * this._entrySize);\n      for (const entry of this._entries) {\n        if (entry.i \u003e deletedEntryIndex) {\n          entry.i--;\n        }\n      }\n      this._dirtyTracker.flag(deletedEntryIndex, (this._entries.size - deletedEntryIndex) * this._entrySize);\n      dispose(listeners);\n    }));\n    return value;\n  }\n  _expandBuffer() {\n    this.capacity *= 2;\n    const newView = new Float32Array(this.capacity * this._entrySize);\n    newView.set(this.view);\n    this.view = newView;\n    this.buffer = this.view.buffer;\n  }\n};\nvar ObjectCollectionBufferEntry = class extends Disposable {\n  constructor(_view, _propertySpecsMap, _dirtyTracker, i2, data) {\n    super();\n    this._view = _view;\n    this._propertySpecsMap = _propertySpecsMap;\n    this._dirtyTracker = _dirtyTracker;\n    this.i = i2;\n    this._onDidChange = this._register(new Emitter());\n    this.onDidChange = this._onDidChange.event;\n    this._onWillDispose = this._register(new Emitter());\n    this.onWillDispose = this._onWillDispose.event;\n    for (const propertySpec of this._propertySpecsMap.values()) {\n      this._view[this.i * this._propertySpecsMap.size + propertySpec.offset] = data[propertySpec.name];\n    }\n    this._dirtyTracker.flag(this.i * this._propertySpecsMap.size, this._propertySpecsMap.size);\n  }\n  dispose() {\n    this._onWillDispose.fire();\n    super.dispose();\n  }\n  setRaw(data) {\n    if (data.length !== this._propertySpecsMap.size) {\n      throw new Error(`Data length ${data.length} does not match the number of properties in the collection (${this._propertySpecsMap.size})`);\n    }\n    this._view.set(data, this.i * this._propertySpecsMap.size);\n    this._dirtyTracker.flag(this.i * this._propertySpecsMap.size, this._propertySpecsMap.size);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/rectangleRenderer.wgsl.js\nvar rectangleRendererWgsl = (\n  /*wgsl*/\n  `\n\nstruct Vertex {\n\t@location(0) position: vec2f,\n};\n\nstruct LayoutInfo {\n\tcanvasDims: vec2f,\n\tviewportOffset: vec2f,\n\tviewportDims: vec2f,\n}\n\nstruct ScrollOffset {\n\toffset: vec2f,\n}\n\nstruct Shape {\n\tposition: vec2f,\n\tsize: vec2f,\n\tcolor: vec4f,\n};\n\nstruct VSOutput {\n\t@builtin(position) position: vec4f,\n\t@location(1)       color:    vec4f,\n};\n\n// Uniforms\n@group(0) @binding(${1}) var\u003cuniform\u003e       layoutInfo:      LayoutInfo;\n\n// Storage buffers\n@group(0) @binding(${0})            var\u003cstorage, read\u003e shapes:          array\u003cShape\u003e;\n@group(0) @binding(${2})      var\u003cuniform\u003e       scrollOffset:    ScrollOffset;\n\n@vertex fn vs(\n\tvert: Vertex,\n\t@builtin(instance_index) instanceIndex: u32,\n\t@builtin(vertex_index) vertexIndex : u32\n) -\u003e VSOutput {\n\tlet shape = shapes[instanceIndex];\n\n\tvar vsOut: VSOutput;\n\tvsOut.position = vec4f(\n\t\t(\n\t\t\t// Top left corner\n\t\t\tvec2f(-1,  1) +\n\t\t\t// Convert pixel position to clipspace\n\t\t\tvec2f( 2, -2) / layoutInfo.canvasDims *\n\t\t\t// Shape position and size\n\t\t\t(layoutInfo.viewportOffset - scrollOffset.offset + shape.position + vert.position * shape.size)\n\t\t),\n\t\t0.0,\n\t\t1.0\n\t);\n\tvsOut.color = shape.color;\n\treturn vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -\u003e @location(0) vec4f {\n\treturn vsOut.color;\n}\n`\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/rectangleRenderer.js\nvar RectangleRenderer = class extends ViewEventHandler {\n  constructor(_context, _contentLeft, _devicePixelRatio, _canvas, _ctx, device) {\n    super();\n    this._context = _context;\n    this._contentLeft = _contentLeft;\n    this._devicePixelRatio = _devicePixelRatio;\n    this._canvas = _canvas;\n    this._ctx = _ctx;\n    this._shapeBindBuffer = this._register(new MutableDisposable());\n    this._initialized = false;\n    this._shapeCollection = this._register(createObjectCollectionBuffer([\n      { name: \"x\" },\n      { name: \"y\" },\n      { name: \"width\" },\n      { name: \"height\" },\n      { name: \"red\" },\n      { name: \"green\" },\n      { name: \"blue\" },\n      { name: \"alpha\" }\n    ], 32));\n    this._context.addEventHandler(this);\n    this._initWebgpu(device);\n  }\n  async _initWebgpu(device) {\n    this._device = await device;\n    if (this._store.isDisposed) {\n      return;\n    }\n    const presentationFormat = navigator.gpu.getPreferredCanvasFormat();\n    this._ctx.configure({\n      device: this._device,\n      format: presentationFormat,\n      alphaMode: \"premultiplied\"\n    });\n    this._renderPassColorAttachment = {\n      view: null,\n      // Will be filled at render time\n      loadOp: \"load\",\n      storeOp: \"store\"\n    };\n    this._renderPassDescriptor = {\n      label: \"Monaco rectangle renderer render pass\",\n      colorAttachments: [this._renderPassColorAttachment]\n    };\n    let layoutInfoUniformBuffer;\n    {\n      const bufferValues = new Float32Array(\n        6\n        /* Info.FloatsPerEntry */\n      );\n      const updateBufferValues = (canvasDevicePixelWidth = this._canvas.width, canvasDevicePixelHeight = this._canvas.height) =\u003e {\n        bufferValues[\n          0\n          /* Info.Offset_CanvasWidth____ */\n        ] = canvasDevicePixelWidth;\n        bufferValues[\n          1\n          /* Info.Offset_CanvasHeight___ */\n        ] = canvasDevicePixelHeight;\n        bufferValues[\n          2\n          /* Info.Offset_ViewportOffsetX */\n        ] = Math.ceil(this._context.configuration.options.get(\n          164\n          /* EditorOption.layoutInfo */\n        ).contentLeft * getActiveWindow().devicePixelRatio);\n        bufferValues[\n          3\n          /* Info.Offset_ViewportOffsetY */\n        ] = 0;\n        bufferValues[\n          4\n          /* Info.Offset_ViewportWidth__ */\n        ] = bufferValues[\n          0\n          /* Info.Offset_CanvasWidth____ */\n        ] - bufferValues[\n          2\n          /* Info.Offset_ViewportOffsetX */\n        ];\n        bufferValues[\n          5\n          /* Info.Offset_ViewportHeight_ */\n        ] = bufferValues[\n          1\n          /* Info.Offset_CanvasHeight___ */\n        ] - bufferValues[\n          3\n          /* Info.Offset_ViewportOffsetY */\n        ];\n        return bufferValues;\n      };\n      layoutInfoUniformBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n        label: \"Monaco rectangle renderer uniform buffer\",\n        size: 24,\n        usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST\n      }, () =\u003e updateBufferValues())).object;\n      this._register(observeDevicePixelDimensions(this._canvas, getActiveWindow(), (w, h2) =\u003e {\n        this._device.queue.writeBuffer(layoutInfoUniformBuffer, 0, updateBufferValues(w, h2));\n      }));\n    }\n    const scrollOffsetBufferSize = 2;\n    this._scrollOffsetBindBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n      label: \"Monaco rectangle renderer scroll offset buffer\",\n      size: scrollOffsetBufferSize * Float32Array.BYTES_PER_ELEMENT,\n      usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST\n    })).object;\n    this._scrollOffsetValueBuffer = new Float32Array(scrollOffsetBufferSize);\n    const createShapeBindBuffer = () =\u003e {\n      return GPULifecycle.createBuffer(this._device, {\n        label: \"Monaco rectangle renderer shape buffer\",\n        size: this._shapeCollection.buffer.byteLength,\n        usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST\n      });\n    };\n    this._shapeBindBuffer.value = createShapeBindBuffer();\n    this._register(Event.runAndSubscribe(this._shapeCollection.onDidChangeBuffer, () =\u003e {\n      this._shapeBindBuffer.value = createShapeBindBuffer();\n      if (this._pipeline) {\n        this._updateBindGroup(this._pipeline, layoutInfoUniformBuffer);\n      }\n    }));\n    this._vertexBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n      label: \"Monaco rectangle renderer vertex buffer\",\n      size: quadVertices.byteLength,\n      usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST\n    }, quadVertices)).object;\n    const module = this._device.createShaderModule({\n      label: \"Monaco rectangle renderer shader module\",\n      code: rectangleRendererWgsl\n    });\n    this._pipeline = this._device.createRenderPipeline({\n      label: \"Monaco rectangle renderer render pipeline\",\n      layout: \"auto\",\n      vertex: {\n        module,\n        buffers: [\n          {\n            arrayStride: 2 * Float32Array.BYTES_PER_ELEMENT,\n            // 2 floats, 4 bytes each\n            attributes: [\n              { shaderLocation: 0, offset: 0, format: \"float32x2\" }\n              // position\n            ]\n          }\n        ]\n      },\n      fragment: {\n        module,\n        targets: [\n          {\n            format: presentationFormat,\n            blend: {\n              color: {\n                srcFactor: \"src-alpha\",\n                dstFactor: \"one-minus-src-alpha\"\n              },\n              alpha: {\n                srcFactor: \"src-alpha\",\n                dstFactor: \"one-minus-src-alpha\"\n              }\n            }\n          }\n        ]\n      }\n    });\n    this._updateBindGroup(this._pipeline, layoutInfoUniformBuffer);\n    this._initialized = true;\n  }\n  _updateBindGroup(pipeline, layoutInfoUniformBuffer) {\n    this._bindGroup = this._device.createBindGroup({\n      label: \"Monaco rectangle renderer bind group\",\n      layout: pipeline.getBindGroupLayout(0),\n      entries: [\n        { binding: 0, resource: { buffer: this._shapeBindBuffer.value.object } },\n        { binding: 1, resource: { buffer: layoutInfoUniformBuffer } },\n        { binding: 2, resource: { buffer: this._scrollOffsetBindBuffer } }\n      ]\n    });\n  }\n  register(x, y, width2, height, red, green, blue, alpha) {\n    return this._shapeCollection.createEntry({ x, y, width: width2, height, red, green, blue, alpha });\n  }\n  // #region Event handlers\n  onScrollChanged(e) {\n    if (this._device) {\n      const dpr = getActiveWindow().devicePixelRatio;\n      this._scrollOffsetValueBuffer[0] = this._context.viewLayout.getCurrentScrollLeft() * dpr;\n      this._scrollOffsetValueBuffer[1] = this._context.viewLayout.getCurrentScrollTop() * dpr;\n      this._device.queue.writeBuffer(this._scrollOffsetBindBuffer, 0, this._scrollOffsetValueBuffer);\n    }\n    return true;\n  }\n  // #endregion\n  _update() {\n    if (!this._device) {\n      return;\n    }\n    const shapes = this._shapeCollection;\n    if (shapes.dirtyTracker.isDirty) {\n      this._device.queue.writeBuffer(this._shapeBindBuffer.value.object, 0, shapes.buffer, shapes.dirtyTracker.dataOffset, shapes.dirtyTracker.dirtySize * shapes.view.BYTES_PER_ELEMENT);\n      shapes.dirtyTracker.clear();\n    }\n  }\n  draw(viewportData) {\n    if (!this._initialized) {\n      return;\n    }\n    this._update();\n    const encoder = this._device.createCommandEncoder({ label: \"Monaco rectangle renderer command encoder\" });\n    this._renderPassColorAttachment.view = this._ctx.getCurrentTexture().createView();\n    const pass = encoder.beginRenderPass(this._renderPassDescriptor);\n    pass.setPipeline(this._pipeline);\n    pass.setVertexBuffer(0, this._vertexBuffer);\n    pass.setBindGroup(0, this._bindGroup);\n    const contentLeft = Math.ceil(this._contentLeft.get() * this._devicePixelRatio.get());\n    pass.setScissorRect(contentLeft, 0, this._canvas.width - contentLeft, this._canvas.height);\n    pass.draw(quadVertices.length / 2, this._shapeCollection.entryCount);\n    pass.end();\n    const commandBuffer = encoder.finish();\n    this._device.queue.submit([commandBuffer]);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/css/decorationCssRuleExtractor.js\ninit_dom();\ninit_lifecycle();\nvar DecorationCssRuleExtractor = class extends Disposable {\n  constructor() {\n    super();\n    this._ruleCache = /* @__PURE__ */ new Map();\n    this._container = $(\"div.monaco-decoration-css-rule-extractor\");\n    this._dummyElement = $(\"span\");\n    this._container.appendChild(this._dummyElement);\n    this._register(toDisposable(() =\u003e this._container.remove()));\n  }\n  getStyleRules(canvas, decorationClassName) {\n    const existing = this._ruleCache.get(decorationClassName);\n    if (existing) {\n      return existing;\n    }\n    this._dummyElement.className = decorationClassName;\n    canvas.appendChild(this._container);\n    const rules = this._getStyleRules(decorationClassName);\n    this._ruleCache.set(decorationClassName, rules);\n    canvas.removeChild(this._container);\n    return rules;\n  }\n  _getStyleRules(className2) {\n    const rules = [];\n    const doc = getActiveDocument();\n    const stylesheets = [...doc.styleSheets];\n    for (let i2 = 0; i2 \u003c stylesheets.length; i2++) {\n      const stylesheet = stylesheets[i2];\n      for (const rule of stylesheet.cssRules) {\n        if (rule instanceof CSSImportRule) {\n          if (rule.styleSheet) {\n            stylesheets.push(rule.styleSheet);\n          }\n        } else if (rule instanceof CSSStyleRule) {\n          const searchTerm = `.${className2}`;\n          const index = rule.selectorText.indexOf(searchTerm);\n          if (index !== -1) {\n            const endOfResult = index + searchTerm.length;\n            if (rule.selectorText.length === endOfResult || rule.selectorText.substring(endOfResult, endOfResult + 1).match(/[ :]/)) {\n              rules.push(rule);\n            }\n          }\n        }\n      }\n    }\n    return rules;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/viewGpuContext.js\ninit_event();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/css/decorationStyleCache.js\ninit_map();\nvar DecorationStyleCache = class {\n  constructor() {\n    this._nextId = 1;\n    this._cacheById = /* @__PURE__ */ new Map();\n    this._cacheByStyle = new NKeyMap();\n  }\n  getOrCreateEntry(color, bold, opacity) {\n    if (color === void 0 \u0026\u0026 bold === void 0 \u0026\u0026 opacity === void 0) {\n      return 0;\n    }\n    const result = this._cacheByStyle.get(color ?? 0, bold ? 1 : 0, opacity === void 0 ? \"\" : opacity.toFixed(2));\n    if (result) {\n      return result.id;\n    }\n    const id = this._nextId++;\n    const entry = {\n      id,\n      color,\n      bold,\n      opacity\n    };\n    this._cacheById.set(id, entry);\n    this._cacheByStyle.set(entry, color ?? 0, bold ? 1 : 0, opacity === void 0 ? \"\" : opacity.toFixed(2));\n    return id;\n  }\n  getStyleSet(id) {\n    if (id === 0) {\n      return void 0;\n    }\n    return this._cacheById.get(id);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/viewGpuContext.js\nvar __decorate12 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param10 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ViewGpuContext_1;\nvar ViewGpuContext = class ViewGpuContext2 extends Disposable {\n  static {\n    ViewGpuContext_1 = this;\n  }\n  static {\n    this._decorationCssRuleExtractor = new DecorationCssRuleExtractor();\n  }\n  static get decorationCssRuleExtractor() {\n    return ViewGpuContext_1._decorationCssRuleExtractor;\n  }\n  static {\n    this._decorationStyleCache = new DecorationStyleCache();\n  }\n  static get decorationStyleCache() {\n    return ViewGpuContext_1._decorationStyleCache;\n  }\n  /**\n   * The shared texture atlas to use across all views.\n   *\n   * @throws if called before the GPU device is resolved\n   */\n  static get atlas() {\n    if (!ViewGpuContext_1._atlas) {\n      throw new BugIndicatingError(\"Cannot call ViewGpuContext.textureAtlas before device is resolved\");\n    }\n    return ViewGpuContext_1._atlas;\n  }\n  /**\n   * The shared texture atlas to use across all views. This is a convenience alias for\n   * {@link ViewGpuContext.atlas}.\n   *\n   * @throws if called before the GPU device is resolved\n   */\n  get atlas() {\n    return ViewGpuContext_1.atlas;\n  }\n  constructor(context, _instantiationService, _notificationService, configurationService) {\n    super();\n    this._instantiationService = _instantiationService;\n    this._notificationService = _notificationService;\n    this.configurationService = configurationService;\n    this.maxGpuCols = 2e3;\n    this.canvas = createFastDomNode(document.createElement(\"canvas\"));\n    this.canvas.setClassName(\"editorCanvas\");\n    this._register(Event.runAndSubscribe(configurationService.onDidChangeConfiguration, (e) =\u003e {\n      if (!e || e.affectsConfiguration(\"editor.scrollbar.verticalScrollbarSize\")) {\n        const verticalScrollbarSize = configurationService.getValue(\"editor\").scrollbar?.verticalScrollbarSize ?? 14;\n        this.canvas.domNode.style.boxSizing = \"border-box\";\n        this.canvas.domNode.style.paddingRight = `${verticalScrollbarSize}px`;\n      }\n    }));\n    this.ctx = ensureNonNullable(this.canvas.domNode.getContext(\"webgpu\"));\n    if (!ViewGpuContext_1.device) {\n      ViewGpuContext_1.device = GPULifecycle.requestDevice((message) =\u003e {\n        const choices = [{\n          label: localize(73, \"Use DOM-based rendering\"),\n          run: () =\u003e this.configurationService.updateValue(\"editor.experimentalGpuAcceleration\", \"off\")\n        }];\n        this._notificationService.prompt(Severity2.Warning, message, choices);\n      }).then((ref) =\u003e {\n        ViewGpuContext_1.deviceSync = ref.object;\n        if (!ViewGpuContext_1._atlas) {\n          ViewGpuContext_1._atlas = this._instantiationService.createInstance(TextureAtlas, ref.object.limits.maxTextureDimension2D, void 0, ViewGpuContext_1.decorationStyleCache);\n        }\n        return ref.object;\n      });\n    }\n    const dprObs = observableValue(this, getActiveWindow().devicePixelRatio);\n    this._register(addDisposableListener(getActiveWindow(), \"resize\", () =\u003e {\n      dprObs.set(getActiveWindow().devicePixelRatio, void 0);\n    }));\n    this.devicePixelRatio = dprObs;\n    this._register(runOnChange(this.devicePixelRatio, () =\u003e ViewGpuContext_1.atlas?.clear()));\n    const canvasDevicePixelDimensions = observableValue(this, { width: this.canvas.domNode.width, height: this.canvas.domNode.height });\n    this._register(observeDevicePixelDimensions(this.canvas.domNode, getActiveWindow(), (width2, height) =\u003e {\n      this.canvas.domNode.width = width2;\n      this.canvas.domNode.height = height;\n      canvasDevicePixelDimensions.set({ width: width2, height }, void 0);\n    }));\n    this.canvasDevicePixelDimensions = canvasDevicePixelDimensions;\n    const contentLeft = observableValue(this, 0);\n    this._register(this.configurationService.onDidChangeConfiguration((e) =\u003e {\n      contentLeft.set(context.configuration.options.get(\n        164\n        /* EditorOption.layoutInfo */\n      ).contentLeft, void 0);\n    }));\n    this.contentLeft = contentLeft;\n    this.rectangleRenderer = this._instantiationService.createInstance(RectangleRenderer, context, this.contentLeft, this.devicePixelRatio, this.canvas.domNode, this.ctx, ViewGpuContext_1.device);\n  }\n  /**\n   * This method determines which lines can be and are allowed to be rendered using the GPU\n   * renderer. Eventually this should trend all lines, except maybe exceptional cases like\n   * decorations that use class names.\n   */\n  canRender(options2, viewportData, lineNumber) {\n    const data = viewportData.getViewLineRenderingData(lineNumber);\n    if (data.containsRTL || data.maxColumn \u003e this.maxGpuCols) {\n      return false;\n    }\n    if (data.inlineDecorations.length \u003e 0) {\n      let supported = true;\n      for (const decoration3 of data.inlineDecorations) {\n        if (decoration3.type !== 0) {\n          supported = false;\n          break;\n        }\n        const styleRules = ViewGpuContext_1._decorationCssRuleExtractor.getStyleRules(this.canvas.domNode, decoration3.inlineClassName);\n        supported \u0026\u0026= styleRules.every((rule) =\u003e {\n          if (rule.selectorText.includes(\":\")) {\n            return false;\n          }\n          for (const r of rule.style) {\n            if (!supportsCssRule(r, rule.style)) {\n              return false;\n            }\n          }\n          return true;\n        });\n        if (!supported) {\n          break;\n        }\n      }\n      return supported;\n    }\n    return true;\n  }\n  /**\n   * Like {@link canRender} but returns detailed information about why the line cannot be rendered.\n   */\n  canRenderDetailed(options2, viewportData, lineNumber) {\n    const data = viewportData.getViewLineRenderingData(lineNumber);\n    const reasons = [];\n    if (data.containsRTL) {\n      reasons.push(\"containsRTL\");\n    }\n    if (data.maxColumn \u003e this.maxGpuCols) {\n      reasons.push(\"maxColumn \u003e maxGpuCols\");\n    }\n    if (data.inlineDecorations.length \u003e 0) {\n      let supported = true;\n      const problemTypes = [];\n      const problemSelectors = [];\n      const problemRules = [];\n      for (const decoration3 of data.inlineDecorations) {\n        if (decoration3.type !== 0) {\n          problemTypes.push(decoration3.type);\n          supported = false;\n          continue;\n        }\n        const styleRules = ViewGpuContext_1._decorationCssRuleExtractor.getStyleRules(this.canvas.domNode, decoration3.inlineClassName);\n        supported \u0026\u0026= styleRules.every((rule) =\u003e {\n          if (rule.selectorText.includes(\":\")) {\n            problemSelectors.push(rule.selectorText);\n            return false;\n          }\n          for (const r of rule.style) {\n            if (!supportsCssRule(r, rule.style)) {\n              problemRules.push(`${r}: ${rule.style[r]}`);\n              return false;\n            }\n          }\n          return true;\n        });\n        if (!supported) {\n          continue;\n        }\n      }\n      if (problemTypes.length \u003e 0) {\n        reasons.push(`inlineDecorations with unsupported types (${problemTypes.map((e) =\u003e `\\`${e}\\``).join(\", \")})`);\n      }\n      if (problemRules.length \u003e 0) {\n        reasons.push(`inlineDecorations with unsupported CSS rules (${problemRules.map((e) =\u003e `\\`${e}\\``).join(\", \")})`);\n      }\n      if (problemSelectors.length \u003e 0) {\n        reasons.push(`inlineDecorations with unsupported CSS selectors (${problemSelectors.map((e) =\u003e `\\`${e}\\``).join(\", \")})`);\n      }\n    }\n    return reasons;\n  }\n};\nViewGpuContext = ViewGpuContext_1 = __decorate12([\n  __param10(1, IInstantiationService),\n  __param10(2, INotificationService),\n  __param10(3, IConfigurationService)\n], ViewGpuContext);\nvar gpuSupportedDecorationCssRules = [\n  \"color\",\n  \"font-weight\",\n  \"opacity\"\n];\nfunction supportsCssRule(rule, style) {\n  if (!gpuSupportedDecorationCssRules.includes(rule)) {\n    return false;\n  }\n  switch (rule) {\n    default:\n      return true;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLinesGpu/viewLinesGpu.js\ninit_dom();\ninit_errors();\ninit_observable();\ninit_instantiation();\ninit_log();\ninit_position();\ninit_range();\ninit_cursorColumns();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/contentSegmenter.js\ninit_date();\nfunction createContentSegmenter(lineData, options2) {\n  if (lineData.isBasicASCII \u0026\u0026 options2.useMonospaceOptimizations) {\n    return new AsciiContentSegmenter(lineData);\n  }\n  return new GraphemeContentSegmenter(lineData);\n}\nvar AsciiContentSegmenter = class {\n  constructor(lineData) {\n    this._content = lineData.content;\n  }\n  getSegmentAtIndex(index) {\n    return this._content[index];\n  }\n};\nvar GraphemeContentSegmenter = class {\n  constructor(lineData) {\n    this._segments = [];\n    const content = lineData.content;\n    const segmenter = safeIntl.Segmenter(void 0, { granularity: \"grapheme\" }).value;\n    const segmentedContent = Array.from(segmenter.segment(content));\n    let segmenterIndex = 0;\n    for (let x = 0; x \u003c content.length; x++) {\n      const segment = segmentedContent[segmenterIndex];\n      if (!segment) {\n        break;\n      }\n      if (segment.index !== x) {\n        this._segments.push(void 0);\n        continue;\n      }\n      segmenterIndex++;\n      this._segments.push(segment);\n    }\n  }\n  getSegmentAtIndex(index) {\n    return this._segments[index]?.segment;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/renderStrategy/viewportRenderStrategy.js\ninit_dom();\ninit_color();\ninit_errors();\ninit_event();\ninit_cursorColumns();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/renderStrategy/baseRenderStrategy.js\nvar BaseRenderStrategy = class extends ViewEventHandler {\n  get glyphRasterizer() {\n    return this._glyphRasterizer.value;\n  }\n  constructor(_context, _viewGpuContext, _device, _glyphRasterizer) {\n    super();\n    this._context = _context;\n    this._viewGpuContext = _viewGpuContext;\n    this._device = _device;\n    this._glyphRasterizer = _glyphRasterizer;\n    this._context.addEventHandler(this);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/renderStrategy/fullFileRenderStrategy.wgsl.js\nvar fullFileRenderStrategyWgsl = (\n  /*wgsl*/\n  `\nstruct GlyphInfo {\n\tposition: vec2f,\n\tsize: vec2f,\n\torigin: vec2f,\n};\n\nstruct Vertex {\n\t@location(0) position: vec2f,\n};\n\nstruct Cell {\n\tposition: vec2f,\n\tunused1: vec2f,\n\tglyphIndex: f32,\n\ttextureIndex: f32\n};\n\nstruct LayoutInfo {\n\tcanvasDims: vec2f,\n\tviewportOffset: vec2f,\n\tviewportDims: vec2f,\n}\n\nstruct ScrollOffset {\n\toffset: vec2f\n}\n\nstruct VSOutput {\n\t@builtin(position) position:   vec4f,\n\t@location(1)       layerIndex: f32,\n\t@location(0)       texcoord:   vec2f,\n};\n\n// Uniforms\n@group(0) @binding(${4})       var\u003cuniform\u003e       layoutInfo:      LayoutInfo;\n@group(0) @binding(${5})  var\u003cuniform\u003e       atlasDims:       vec2f;\n@group(0) @binding(${6})            var\u003cuniform\u003e       scrollOffset:    ScrollOffset;\n\n// Storage buffers\n@group(0) @binding(${0})               var\u003cstorage, read\u003e glyphInfo:       array\u003carray\u003cGlyphInfo, ${TextureAtlasPage.maximumGlyphCount}\u003e, ${TextureAtlas.maximumPageCount}\u003e;\n@group(0) @binding(${1})                   var\u003cstorage, read\u003e cells:           array\u003cCell\u003e;\n\n@vertex fn vs(\n\tvert: Vertex,\n\t@builtin(instance_index) instanceIndex: u32,\n\t@builtin(vertex_index) vertexIndex : u32\n) -\u003e VSOutput {\n\tlet cell = cells[instanceIndex];\n\tvar glyph = glyphInfo[u32(cell.textureIndex)][u32(cell.glyphIndex)];\n\n\tvar vsOut: VSOutput;\n\t// Multiple vert.position by 2,-2 to get it into clipspace which ranged from -1 to 1\n\tvsOut.position = vec4f(\n\t\t// Make everything relative to top left instead of center\n\t\tvec2f(-1, 1) +\n\t\t((vert.position * vec2f(2, -2)) / layoutInfo.canvasDims) * glyph.size +\n\t\t((cell.position * vec2f(2, -2)) / layoutInfo.canvasDims) +\n\t\t((glyph.origin * vec2f(2, -2)) / layoutInfo.canvasDims) +\n\t\t(((layoutInfo.viewportOffset - scrollOffset.offset * vec2(1, -1)) * 2) / layoutInfo.canvasDims),\n\t\t0.0,\n\t\t1.0\n\t);\n\n\tvsOut.layerIndex = cell.textureIndex;\n\t// Textures are flipped from natural direction on the y-axis, so flip it back\n\tvsOut.texcoord = vert.position;\n\tvsOut.texcoord = (\n\t\t// Glyph offset (0-1)\n\t\t(glyph.position / atlasDims) +\n\t\t// Glyph coordinate (0-1)\n\t\t(vsOut.texcoord * (glyph.size / atlasDims))\n\t);\n\n\treturn vsOut;\n}\n\n@group(0) @binding(${2}) var ourSampler: sampler;\n@group(0) @binding(${3})        var ourTexture: texture_2d_array\u003cf32\u003e;\n\n@fragment fn fs(vsOut: VSOutput) -\u003e @location(0) vec4f {\n\treturn textureSample(ourTexture, ourSampler, vsOut.texcoord, u32(vsOut.layerIndex));\n}\n`\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/renderStrategy/viewportRenderStrategy.js\nvar ViewportRenderStrategy = class _ViewportRenderStrategy extends BaseRenderStrategy {\n  static {\n    this.maxSupportedColumns = 2e3;\n  }\n  get bindGroupEntries() {\n    return [\n      { binding: 1, resource: { buffer: this._cellBindBuffer } },\n      { binding: 6, resource: { buffer: this._scrollOffsetBindBuffer } }\n    ];\n  }\n  constructor(context, viewGpuContext, device, glyphRasterizer) {\n    super(context, viewGpuContext, device, glyphRasterizer);\n    this.type = \"viewport\";\n    this.wgsl = fullFileRenderStrategyWgsl;\n    this._cellBindBufferLineCapacity = 63;\n    this._activeDoubleBufferIndex = 0;\n    this._visibleObjectCount = 0;\n    this._scrollInitialized = false;\n    this._onDidChangeBindGroupEntries = this._register(new Emitter());\n    this.onDidChangeBindGroupEntries = this._onDidChangeBindGroupEntries.event;\n    this._rebuildCellBuffer(this._cellBindBufferLineCapacity);\n    const scrollOffsetBufferSize = 2;\n    this._scrollOffsetBindBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n      label: \"Monaco scroll offset buffer\",\n      size: scrollOffsetBufferSize * Float32Array.BYTES_PER_ELEMENT,\n      usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST\n    })).object;\n    this._scrollOffsetValueBuffer = new Float32Array(scrollOffsetBufferSize);\n  }\n  _rebuildCellBuffer(lineCount) {\n    this._cellBindBuffer?.destroy();\n    const lineCountWithIncrement = (Math.floor(\n      lineCount / 32\n      /* Constants.CellBindBufferCapacityIncrement */\n    ) + 1) * 32;\n    const bufferSize = lineCountWithIncrement * _ViewportRenderStrategy.maxSupportedColumns * 6 * Float32Array.BYTES_PER_ELEMENT;\n    this._cellBindBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n      label: \"Monaco full file cell buffer\",\n      size: bufferSize,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST\n    })).object;\n    this._cellValueBuffers = [\n      new ArrayBuffer(bufferSize),\n      new ArrayBuffer(bufferSize)\n    ];\n    this._cellBindBufferLineCapacity = lineCountWithIncrement;\n    this._onDidChangeBindGroupEntries.fire();\n  }\n  // #region Event handlers\n  // The primary job of these handlers is to:\n  // 1. Invalidate the up to date line cache, which will cause the line to be re-rendered when\n  //    it's _within the viewport_.\n  // 2. Pass relevant events on to the render function so it can force certain line ranges to be\n  //    re-rendered even if they're not in the viewport. For example when a view zone is added,\n  //    there are lines that used to be visible but are no longer, so those ranges must be\n  //    cleared and uploaded to the GPU.\n  onConfigurationChanged(e) {\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onTokensChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    const dpr = getActiveWindow().devicePixelRatio;\n    this._scrollOffsetValueBuffer[0] = (e?.scrollLeft ?? this._context.viewLayout.getCurrentScrollLeft()) * dpr;\n    this._scrollOffsetValueBuffer[1] = (e?.scrollTop ?? this._context.viewLayout.getCurrentScrollTop()) * dpr;\n    this._device.queue.writeBuffer(this._scrollOffsetBindBuffer, 0, this._scrollOffsetValueBuffer);\n    return true;\n  }\n  onThemeChanged(e) {\n    return true;\n  }\n  onLineMappingChanged(e) {\n    return true;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // #endregion\n  reset() {\n    for (const bufferIndex of [0, 1]) {\n      const buffer = new Float32Array(this._cellValueBuffers[bufferIndex]);\n      buffer.fill(0, 0, buffer.length);\n      this._device.queue.writeBuffer(this._cellBindBuffer, 0, buffer.buffer, 0, buffer.byteLength);\n    }\n  }\n  update(viewportData, viewLineOptions) {\n    let chars = \"\";\n    let segment;\n    let charWidth = 0;\n    let y = 0;\n    let x = 0;\n    let absoluteOffsetX = 0;\n    let absoluteOffsetY = 0;\n    let tabXOffset = 0;\n    let glyph;\n    let cellIndex = 0;\n    let tokenStartIndex = 0;\n    let tokenEndIndex = 0;\n    let tokenMetadata = 0;\n    let decorationStyleSetBold;\n    let decorationStyleSetColor;\n    let decorationStyleSetOpacity;\n    let lineData;\n    let decoration3;\n    let fillStartIndex = 0;\n    let fillEndIndex = 0;\n    let tokens;\n    const dpr = getActiveWindow().devicePixelRatio;\n    let contentSegmenter;\n    if (!this._scrollInitialized) {\n      this.onScrollChanged();\n      this._scrollInitialized = true;\n    }\n    if (this._cellBindBufferLineCapacity \u003c viewportData.endLineNumber - viewportData.startLineNumber + 1) {\n      this._rebuildCellBuffer(viewportData.endLineNumber - viewportData.startLineNumber + 1);\n    }\n    const cellBuffer = new Float32Array(this._cellValueBuffers[this._activeDoubleBufferIndex]);\n    cellBuffer.fill(0);\n    const lineIndexCount = _ViewportRenderStrategy.maxSupportedColumns * 6;\n    for (y = viewportData.startLineNumber; y \u003c= viewportData.endLineNumber; y++) {\n      if (!this._viewGpuContext.canRender(viewLineOptions, viewportData, y)) {\n        continue;\n      }\n      lineData = viewportData.getViewLineRenderingData(y);\n      tabXOffset = 0;\n      contentSegmenter = createContentSegmenter(lineData, viewLineOptions);\n      charWidth = viewLineOptions.spaceWidth * dpr;\n      absoluteOffsetX = 0;\n      tokens = lineData.tokens;\n      tokenStartIndex = lineData.minColumn - 1;\n      tokenEndIndex = 0;\n      for (let tokenIndex = 0, tokensLen = tokens.getCount(); tokenIndex \u003c tokensLen; tokenIndex++) {\n        tokenEndIndex = tokens.getEndOffset(tokenIndex);\n        if (tokenEndIndex \u003c= tokenStartIndex) {\n          continue;\n        }\n        tokenMetadata = tokens.getMetadata(tokenIndex);\n        for (x = tokenStartIndex; x \u003c tokenEndIndex; x++) {\n          if (x \u003e _ViewportRenderStrategy.maxSupportedColumns) {\n            break;\n          }\n          segment = contentSegmenter.getSegmentAtIndex(x);\n          if (segment === void 0) {\n            continue;\n          }\n          chars = segment;\n          if (!(lineData.isBasicASCII \u0026\u0026 viewLineOptions.useMonospaceOptimizations)) {\n            charWidth = this.glyphRasterizer.getTextMetrics(chars).width;\n          }\n          decorationStyleSetColor = void 0;\n          decorationStyleSetBold = void 0;\n          decorationStyleSetOpacity = void 0;\n          for (decoration3 of lineData.inlineDecorations) {\n            if (y \u003c decoration3.range.startLineNumber || y \u003e decoration3.range.endLineNumber || y === decoration3.range.startLineNumber \u0026\u0026 x \u003c decoration3.range.startColumn - 1 || y === decoration3.range.endLineNumber \u0026\u0026 x \u003e= decoration3.range.endColumn - 1) {\n              continue;\n            }\n            const rules = ViewGpuContext.decorationCssRuleExtractor.getStyleRules(this._viewGpuContext.canvas.domNode, decoration3.inlineClassName);\n            for (const rule of rules) {\n              for (const r of rule.style) {\n                const value = rule.styleMap.get(r)?.toString() ?? \"\";\n                switch (r) {\n                  case \"color\": {\n                    const parsedColor = Color.Format.CSS.parse(value);\n                    if (!parsedColor) {\n                      throw new BugIndicatingError(\"Invalid color format \" + value);\n                    }\n                    decorationStyleSetColor = parsedColor.toNumber32Bit();\n                    break;\n                  }\n                  case \"font-weight\": {\n                    const parsedValue = parseCssFontWeight(value);\n                    if (parsedValue \u003e= 400) {\n                      decorationStyleSetBold = true;\n                    } else {\n                      decorationStyleSetBold = false;\n                    }\n                    break;\n                  }\n                  case \"opacity\": {\n                    const parsedValue = parseCssOpacity(value);\n                    decorationStyleSetOpacity = parsedValue;\n                    break;\n                  }\n                  default:\n                    throw new BugIndicatingError(\"Unexpected inline decoration style\");\n                }\n              }\n            }\n          }\n          if (chars === \" \" || chars === \"\t\") {\n            cellIndex = ((y - 1) * _ViewportRenderStrategy.maxSupportedColumns + x) * 6;\n            cellBuffer.fill(\n              0,\n              cellIndex,\n              cellIndex + 6\n              /* CellBufferInfo.FloatsPerEntry */\n            );\n            if (chars === \"\t\") {\n              const offsetBefore = x + tabXOffset;\n              tabXOffset = CursorColumns.nextRenderTabStop(x + tabXOffset, lineData.tabSize);\n              absoluteOffsetX += charWidth * (tabXOffset - offsetBefore);\n              tabXOffset -= x + 1;\n            } else {\n              absoluteOffsetX += charWidth;\n            }\n            continue;\n          }\n          const decorationStyleSetId = ViewGpuContext.decorationStyleCache.getOrCreateEntry(decorationStyleSetColor, decorationStyleSetBold, decorationStyleSetOpacity);\n          glyph = this._viewGpuContext.atlas.getGlyph(this.glyphRasterizer, chars, tokenMetadata, decorationStyleSetId, absoluteOffsetX);\n          absoluteOffsetY = Math.round(\n            // Top of layout box (includes line height)\n            viewportData.relativeVerticalOffset[y - viewportData.startLineNumber] * dpr + // Delta from top of layout box (includes line height) to top of the inline box (no line height)\n            Math.floor((viewportData.lineHeight * dpr - (glyph.fontBoundingBoxAscent + glyph.fontBoundingBoxDescent)) / 2) + // Delta from top of inline box (no line height) to top of glyph origin. If the glyph was drawn\n            // with a top baseline for example, this ends up drawing the glyph correctly using the alphabetical\n            // baseline.\n            glyph.fontBoundingBoxAscent\n          );\n          cellIndex = ((y - viewportData.startLineNumber) * _ViewportRenderStrategy.maxSupportedColumns + x) * 6;\n          cellBuffer[\n            cellIndex + 0\n            /* CellBufferInfo.Offset_X */\n          ] = Math.floor(absoluteOffsetX);\n          cellBuffer[\n            cellIndex + 1\n            /* CellBufferInfo.Offset_Y */\n          ] = absoluteOffsetY;\n          cellBuffer[\n            cellIndex + 4\n            /* CellBufferInfo.GlyphIndex */\n          ] = glyph.glyphIndex;\n          cellBuffer[\n            cellIndex + 5\n            /* CellBufferInfo.TextureIndex */\n          ] = glyph.pageIndex;\n          absoluteOffsetX += charWidth;\n        }\n        tokenStartIndex = tokenEndIndex;\n      }\n      fillStartIndex = ((y - viewportData.startLineNumber) * _ViewportRenderStrategy.maxSupportedColumns + tokenEndIndex) * 6;\n      fillEndIndex = (y - viewportData.startLineNumber) * _ViewportRenderStrategy.maxSupportedColumns * 6;\n      cellBuffer.fill(0, fillStartIndex, fillEndIndex);\n    }\n    const visibleObjectCount = (viewportData.endLineNumber - viewportData.startLineNumber + 1) * lineIndexCount;\n    this._device.queue.writeBuffer(this._cellBindBuffer, 0, cellBuffer.buffer, 0, (viewportData.endLineNumber - viewportData.startLineNumber) * lineIndexCount * Float32Array.BYTES_PER_ELEMENT);\n    this._activeDoubleBufferIndex = this._activeDoubleBufferIndex ? 0 : 1;\n    this._visibleObjectCount = visibleObjectCount;\n    return visibleObjectCount;\n  }\n  draw(pass, viewportData) {\n    if (this._visibleObjectCount \u003c= 0) {\n      throw new BugIndicatingError(\"Attempt to draw 0 objects\");\n    }\n    pass.draw(quadVertices.length / 2, this._visibleObjectCount);\n  }\n};\nfunction parseCssFontWeight(value) {\n  switch (value) {\n    case \"lighter\":\n    case \"normal\":\n      return 400;\n    case \"bolder\":\n    case \"bold\":\n      return 700;\n  }\n  return parseInt(value);\n}\nfunction parseCssOpacity(value) {\n  if (value.endsWith(\"%\")) {\n    return parseFloat(value.substring(0, value.length - 1)) / 100;\n  }\n  if (value.match(/^\\d+(?:\\.\\d*)/)) {\n    return parseFloat(value);\n  }\n  return 1;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/gpu/renderStrategy/fullFileRenderStrategy.js\ninit_dom();\ninit_color();\ninit_errors();\ninit_cursorColumns();\nvar FullFileRenderStrategy = class _FullFileRenderStrategy extends BaseRenderStrategy {\n  static {\n    this.maxSupportedLines = 3e3;\n  }\n  static {\n    this.maxSupportedColumns = 200;\n  }\n  get bindGroupEntries() {\n    return [\n      { binding: 1, resource: { buffer: this._cellBindBuffer } },\n      { binding: 6, resource: { buffer: this._scrollOffsetBindBuffer } }\n    ];\n  }\n  constructor(context, viewGpuContext, device, glyphRasterizer) {\n    super(context, viewGpuContext, device, glyphRasterizer);\n    this.type = \"fullfile\";\n    this.wgsl = fullFileRenderStrategyWgsl;\n    this._activeDoubleBufferIndex = 0;\n    this._upToDateLines = [/* @__PURE__ */ new Set(), /* @__PURE__ */ new Set()];\n    this._visibleObjectCount = 0;\n    this._finalRenderedLine = 0;\n    this._scrollInitialized = false;\n    this._queuedBufferUpdates = [[], []];\n    const bufferSize = _FullFileRenderStrategy.maxSupportedLines * _FullFileRenderStrategy.maxSupportedColumns * 6 * Float32Array.BYTES_PER_ELEMENT;\n    this._cellBindBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n      label: \"Monaco full file cell buffer\",\n      size: bufferSize,\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST\n    })).object;\n    this._cellValueBuffers = [\n      new ArrayBuffer(bufferSize),\n      new ArrayBuffer(bufferSize)\n    ];\n    const scrollOffsetBufferSize = 2;\n    this._scrollOffsetBindBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n      label: \"Monaco scroll offset buffer\",\n      size: scrollOffsetBufferSize * Float32Array.BYTES_PER_ELEMENT,\n      usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST\n    })).object;\n    this._scrollOffsetValueBuffer = new Float32Array(scrollOffsetBufferSize);\n  }\n  // #region Event handlers\n  // The primary job of these handlers is to:\n  // 1. Invalidate the up to date line cache, which will cause the line to be re-rendered when\n  //    it's _within the viewport_.\n  // 2. Pass relevant events on to the render function so it can force certain line ranges to be\n  //    re-rendered even if they're not in the viewport. For example when a view zone is added,\n  //    there are lines that used to be visible but are no longer, so those ranges must be\n  //    cleared and uploaded to the GPU.\n  onConfigurationChanged(e) {\n    this._invalidateAllLines();\n    this._queueBufferUpdate(e);\n    return true;\n  }\n  onDecorationsChanged(e) {\n    this._invalidateAllLines();\n    return true;\n  }\n  onTokensChanged(e) {\n    for (const range2 of e.ranges) {\n      this._invalidateLineRange(range2.fromLineNumber, range2.toLineNumber);\n    }\n    return true;\n  }\n  onLinesDeleted(e) {\n    this._invalidateLinesFrom(e.fromLineNumber);\n    this._queueBufferUpdate(e);\n    return true;\n  }\n  onLinesInserted(e) {\n    this._invalidateLinesFrom(e.fromLineNumber);\n    return true;\n  }\n  onLinesChanged(e) {\n    this._invalidateLineRange(e.fromLineNumber, e.fromLineNumber + e.count);\n    return true;\n  }\n  onScrollChanged(e) {\n    const dpr = getActiveWindow().devicePixelRatio;\n    this._scrollOffsetValueBuffer[0] = (e?.scrollLeft ?? this._context.viewLayout.getCurrentScrollLeft()) * dpr;\n    this._scrollOffsetValueBuffer[1] = (e?.scrollTop ?? this._context.viewLayout.getCurrentScrollTop()) * dpr;\n    this._device.queue.writeBuffer(this._scrollOffsetBindBuffer, 0, this._scrollOffsetValueBuffer);\n    return true;\n  }\n  onThemeChanged(e) {\n    this._invalidateAllLines();\n    return true;\n  }\n  onLineMappingChanged(e) {\n    this._invalidateAllLines();\n    this._queueBufferUpdate(e);\n    return true;\n  }\n  onZonesChanged(e) {\n    this._invalidateAllLines();\n    this._queueBufferUpdate(e);\n    return true;\n  }\n  // #endregion\n  _invalidateAllLines() {\n    this._upToDateLines[0].clear();\n    this._upToDateLines[1].clear();\n  }\n  _invalidateLinesFrom(lineNumber) {\n    for (const i2 of [0, 1]) {\n      const upToDateLines = this._upToDateLines[i2];\n      for (const upToDateLine of upToDateLines) {\n        if (upToDateLine \u003e= lineNumber) {\n          upToDateLines.delete(upToDateLine);\n        }\n      }\n    }\n  }\n  _invalidateLineRange(fromLineNumber, toLineNumber) {\n    for (let i2 = fromLineNumber; i2 \u003c= toLineNumber; i2++) {\n      this._upToDateLines[0].delete(i2);\n      this._upToDateLines[1].delete(i2);\n    }\n  }\n  reset() {\n    this._invalidateAllLines();\n    for (const bufferIndex of [0, 1]) {\n      const buffer = new Float32Array(this._cellValueBuffers[bufferIndex]);\n      buffer.fill(0, 0, buffer.length);\n      this._device.queue.writeBuffer(this._cellBindBuffer, 0, buffer.buffer, 0, buffer.byteLength);\n    }\n    this._finalRenderedLine = 0;\n  }\n  update(viewportData, viewLineOptions) {\n    let chars = \"\";\n    let segment;\n    let charWidth = 0;\n    let y = 0;\n    let x = 0;\n    let absoluteOffsetX = 0;\n    let absoluteOffsetY = 0;\n    let tabXOffset = 0;\n    let glyph;\n    let cellIndex = 0;\n    let tokenStartIndex = 0;\n    let tokenEndIndex = 0;\n    let tokenMetadata = 0;\n    let decorationStyleSetBold;\n    let decorationStyleSetColor;\n    let decorationStyleSetOpacity;\n    let lineData;\n    let decoration3;\n    let fillStartIndex = 0;\n    let fillEndIndex = 0;\n    let tokens;\n    const dpr = getActiveWindow().devicePixelRatio;\n    let contentSegmenter;\n    if (!this._scrollInitialized) {\n      this.onScrollChanged();\n      this._scrollInitialized = true;\n    }\n    const cellBuffer = new Float32Array(this._cellValueBuffers[this._activeDoubleBufferIndex]);\n    const lineIndexCount = _FullFileRenderStrategy.maxSupportedColumns * 6;\n    const upToDateLines = this._upToDateLines[this._activeDoubleBufferIndex];\n    let dirtyLineStart = 3e3;\n    let dirtyLineEnd = 0;\n    const queuedBufferUpdates = this._queuedBufferUpdates[this._activeDoubleBufferIndex];\n    while (queuedBufferUpdates.length) {\n      const e = queuedBufferUpdates.shift();\n      switch (e.type) {\n        // TODO: Refine these cases so we're not throwing away everything\n        case 2:\n        case 8:\n        case 17: {\n          cellBuffer.fill(0);\n          dirtyLineStart = 1;\n          dirtyLineEnd = Math.max(dirtyLineEnd, this._finalRenderedLine);\n          this._finalRenderedLine = 0;\n          break;\n        }\n        case 10: {\n          const deletedLineContentStartIndex = (e.fromLineNumber - 1) * _FullFileRenderStrategy.maxSupportedColumns * 6;\n          const deletedLineContentEndIndex = e.toLineNumber * _FullFileRenderStrategy.maxSupportedColumns * 6;\n          const nullContentStartIndex = (this._finalRenderedLine - (e.toLineNumber - e.fromLineNumber + 1)) * _FullFileRenderStrategy.maxSupportedColumns * 6;\n          cellBuffer.set(cellBuffer.subarray(deletedLineContentEndIndex), deletedLineContentStartIndex);\n          cellBuffer.fill(0, nullContentStartIndex);\n          dirtyLineStart = Math.min(dirtyLineStart, e.fromLineNumber);\n          dirtyLineEnd = Math.max(dirtyLineEnd, this._finalRenderedLine);\n          this._finalRenderedLine -= e.toLineNumber - e.fromLineNumber + 1;\n          break;\n        }\n      }\n    }\n    for (y = viewportData.startLineNumber; y \u003c= viewportData.endLineNumber; y++) {\n      if (!this._viewGpuContext.canRender(viewLineOptions, viewportData, y)) {\n        fillStartIndex = (y - 1) * _FullFileRenderStrategy.maxSupportedColumns * 6;\n        fillEndIndex = y * _FullFileRenderStrategy.maxSupportedColumns * 6;\n        cellBuffer.fill(0, fillStartIndex, fillEndIndex);\n        dirtyLineStart = Math.min(dirtyLineStart, y);\n        dirtyLineEnd = Math.max(dirtyLineEnd, y);\n        continue;\n      }\n      if (upToDateLines.has(y)) {\n        continue;\n      }\n      dirtyLineStart = Math.min(dirtyLineStart, y);\n      dirtyLineEnd = Math.max(dirtyLineEnd, y);\n      lineData = viewportData.getViewLineRenderingData(y);\n      tabXOffset = 0;\n      contentSegmenter = createContentSegmenter(lineData, viewLineOptions);\n      charWidth = viewLineOptions.spaceWidth * dpr;\n      absoluteOffsetX = 0;\n      tokens = lineData.tokens;\n      tokenStartIndex = lineData.minColumn - 1;\n      tokenEndIndex = 0;\n      for (let tokenIndex = 0, tokensLen = tokens.getCount(); tokenIndex \u003c tokensLen; tokenIndex++) {\n        tokenEndIndex = tokens.getEndOffset(tokenIndex);\n        if (tokenEndIndex \u003c= tokenStartIndex) {\n          continue;\n        }\n        tokenMetadata = tokens.getMetadata(tokenIndex);\n        for (x = tokenStartIndex; x \u003c tokenEndIndex; x++) {\n          if (x \u003e _FullFileRenderStrategy.maxSupportedColumns) {\n            break;\n          }\n          segment = contentSegmenter.getSegmentAtIndex(x);\n          if (segment === void 0) {\n            continue;\n          }\n          chars = segment;\n          if (!(lineData.isBasicASCII \u0026\u0026 viewLineOptions.useMonospaceOptimizations)) {\n            charWidth = this.glyphRasterizer.getTextMetrics(chars).width;\n          }\n          decorationStyleSetColor = void 0;\n          decorationStyleSetBold = void 0;\n          decorationStyleSetOpacity = void 0;\n          for (decoration3 of lineData.inlineDecorations) {\n            if (y \u003c decoration3.range.startLineNumber || y \u003e decoration3.range.endLineNumber || y === decoration3.range.startLineNumber \u0026\u0026 x \u003c decoration3.range.startColumn - 1 || y === decoration3.range.endLineNumber \u0026\u0026 x \u003e= decoration3.range.endColumn - 1) {\n              continue;\n            }\n            const rules = ViewGpuContext.decorationCssRuleExtractor.getStyleRules(this._viewGpuContext.canvas.domNode, decoration3.inlineClassName);\n            for (const rule of rules) {\n              for (const r of rule.style) {\n                const value = rule.styleMap.get(r)?.toString() ?? \"\";\n                switch (r) {\n                  case \"color\": {\n                    const parsedColor = Color.Format.CSS.parse(value);\n                    if (!parsedColor) {\n                      throw new BugIndicatingError(\"Invalid color format \" + value);\n                    }\n                    decorationStyleSetColor = parsedColor.toNumber32Bit();\n                    break;\n                  }\n                  case \"font-weight\": {\n                    const parsedValue = parseCssFontWeight2(value);\n                    if (parsedValue \u003e= 400) {\n                      decorationStyleSetBold = true;\n                    } else {\n                      decorationStyleSetBold = false;\n                    }\n                    break;\n                  }\n                  case \"opacity\": {\n                    const parsedValue = parseCssOpacity2(value);\n                    decorationStyleSetOpacity = parsedValue;\n                    break;\n                  }\n                  default:\n                    throw new BugIndicatingError(\"Unexpected inline decoration style\");\n                }\n              }\n            }\n          }\n          if (chars === \" \" || chars === \"\t\") {\n            cellIndex = ((y - 1) * _FullFileRenderStrategy.maxSupportedColumns + x) * 6;\n            cellBuffer.fill(\n              0,\n              cellIndex,\n              cellIndex + 6\n              /* CellBufferInfo.FloatsPerEntry */\n            );\n            if (chars === \"\t\") {\n              const offsetBefore = x + tabXOffset;\n              tabXOffset = CursorColumns.nextRenderTabStop(x + tabXOffset, lineData.tabSize);\n              absoluteOffsetX += charWidth * (tabXOffset - offsetBefore);\n              tabXOffset -= x + 1;\n            } else {\n              absoluteOffsetX += charWidth;\n            }\n            continue;\n          }\n          const decorationStyleSetId = ViewGpuContext.decorationStyleCache.getOrCreateEntry(decorationStyleSetColor, decorationStyleSetBold, decorationStyleSetOpacity);\n          glyph = this._viewGpuContext.atlas.getGlyph(this.glyphRasterizer, chars, tokenMetadata, decorationStyleSetId, absoluteOffsetX);\n          absoluteOffsetY = Math.round(\n            // Top of layout box (includes line height)\n            viewportData.relativeVerticalOffset[y - viewportData.startLineNumber] * dpr + // Delta from top of layout box (includes line height) to top of the inline box (no line height)\n            Math.floor((viewportData.lineHeight * dpr - (glyph.fontBoundingBoxAscent + glyph.fontBoundingBoxDescent)) / 2) + // Delta from top of inline box (no line height) to top of glyph origin. If the glyph was drawn\n            // with a top baseline for example, this ends up drawing the glyph correctly using the alphabetical\n            // baseline.\n            glyph.fontBoundingBoxAscent\n          );\n          cellIndex = ((y - 1) * _FullFileRenderStrategy.maxSupportedColumns + x) * 6;\n          cellBuffer[\n            cellIndex + 0\n            /* CellBufferInfo.Offset_X */\n          ] = Math.floor(absoluteOffsetX);\n          cellBuffer[\n            cellIndex + 1\n            /* CellBufferInfo.Offset_Y */\n          ] = absoluteOffsetY;\n          cellBuffer[\n            cellIndex + 4\n            /* CellBufferInfo.GlyphIndex */\n          ] = glyph.glyphIndex;\n          cellBuffer[\n            cellIndex + 5\n            /* CellBufferInfo.TextureIndex */\n          ] = glyph.pageIndex;\n          absoluteOffsetX += charWidth;\n        }\n        tokenStartIndex = tokenEndIndex;\n      }\n      fillStartIndex = ((y - 1) * _FullFileRenderStrategy.maxSupportedColumns + tokenEndIndex) * 6;\n      fillEndIndex = y * _FullFileRenderStrategy.maxSupportedColumns * 6;\n      cellBuffer.fill(0, fillStartIndex, fillEndIndex);\n      upToDateLines.add(y);\n    }\n    const visibleObjectCount = (viewportData.endLineNumber - viewportData.startLineNumber + 1) * lineIndexCount;\n    dirtyLineStart = Math.min(dirtyLineStart, _FullFileRenderStrategy.maxSupportedLines);\n    dirtyLineEnd = Math.min(dirtyLineEnd, _FullFileRenderStrategy.maxSupportedLines);\n    if (dirtyLineStart \u003c= dirtyLineEnd) {\n      this._device.queue.writeBuffer(this._cellBindBuffer, (dirtyLineStart - 1) * lineIndexCount * Float32Array.BYTES_PER_ELEMENT, cellBuffer.buffer, (dirtyLineStart - 1) * lineIndexCount * Float32Array.BYTES_PER_ELEMENT, (dirtyLineEnd - dirtyLineStart + 1) * lineIndexCount * Float32Array.BYTES_PER_ELEMENT);\n    }\n    this._finalRenderedLine = Math.max(this._finalRenderedLine, dirtyLineEnd);\n    this._activeDoubleBufferIndex = this._activeDoubleBufferIndex ? 0 : 1;\n    this._visibleObjectCount = visibleObjectCount;\n    return visibleObjectCount;\n  }\n  draw(pass, viewportData) {\n    if (this._visibleObjectCount \u003c= 0) {\n      throw new BugIndicatingError(\"Attempt to draw 0 objects\");\n    }\n    pass.draw(quadVertices.length / 2, this._visibleObjectCount, void 0, (viewportData.startLineNumber - 1) * _FullFileRenderStrategy.maxSupportedColumns);\n  }\n  /**\n   * Queue updates that need to happen on the active buffer, not just the cache. This will be\n   * deferred to when the actual cell buffer is changed since the active buffer could be locked by\n   * the GPU which would block the main thread.\n   */\n  _queueBufferUpdate(e) {\n    this._queuedBufferUpdates[0].push(e);\n    this._queuedBufferUpdates[1].push(e);\n  }\n};\nfunction parseCssFontWeight2(value) {\n  switch (value) {\n    case \"lighter\":\n    case \"normal\":\n      return 400;\n    case \"bolder\":\n    case \"bold\":\n      return 700;\n  }\n  return parseInt(value);\n}\nfunction parseCssOpacity2(value) {\n  if (value.endsWith(\"%\")) {\n    return parseFloat(value.substring(0, value.length - 1)) / 100;\n  }\n  if (value.match(/^\\d+(?:\\.\\d*)/)) {\n    return parseFloat(value);\n  }\n  return 1;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/viewLinesGpu/viewLinesGpu.js\ninit_lifecycle();\nvar __decorate13 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param11 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ViewLinesGpu = class ViewLinesGpu2 extends ViewPart {\n  constructor(context, _viewGpuContext, _instantiationService, _logService) {\n    super(context);\n    this._viewGpuContext = _viewGpuContext;\n    this._instantiationService = _instantiationService;\n    this._logService = _logService;\n    this._atlasGpuTextureVersions = [];\n    this._initialized = false;\n    this._glyphRasterizer = this._register(new MutableDisposable());\n    this._renderStrategy = this._register(new MutableDisposable());\n    this.canvas = this._viewGpuContext.canvas.domNode;\n    this._register(autorun((reader) =\u003e {\n      this._viewGpuContext.canvasDevicePixelDimensions.read(reader);\n      const lastViewportData = this._lastViewportData;\n      if (lastViewportData) {\n        setTimeout(() =\u003e {\n          if (lastViewportData === this._lastViewportData) {\n            this.renderText(lastViewportData);\n          }\n        });\n      }\n    }));\n    this.initWebgpu();\n  }\n  async initWebgpu() {\n    this._device = ViewGpuContext.deviceSync || await ViewGpuContext.device;\n    if (this._store.isDisposed) {\n      return;\n    }\n    const atlas = ViewGpuContext.atlas;\n    this._register(atlas.onDidDeleteGlyphs(() =\u003e {\n      this._atlasGpuTextureVersions.length = 0;\n      this._atlasGpuTextureVersions[0] = 0;\n      this._atlasGpuTextureVersions[1] = 0;\n      this._renderStrategy.value.reset();\n    }));\n    const presentationFormat = navigator.gpu.getPreferredCanvasFormat();\n    this._viewGpuContext.ctx.configure({\n      device: this._device,\n      format: presentationFormat,\n      alphaMode: \"premultiplied\"\n    });\n    this._renderPassColorAttachment = {\n      view: null,\n      // Will be filled at render time\n      loadOp: \"load\",\n      storeOp: \"store\"\n    };\n    this._renderPassDescriptor = {\n      label: \"Monaco render pass\",\n      colorAttachments: [this._renderPassColorAttachment]\n    };\n    let layoutInfoUniformBuffer;\n    {\n      const bufferValues = new Float32Array(\n        6\n        /* Info.FloatsPerEntry */\n      );\n      const updateBufferValues = (canvasDevicePixelWidth = this.canvas.width, canvasDevicePixelHeight = this.canvas.height) =\u003e {\n        bufferValues[\n          0\n          /* Info.Offset_CanvasWidth____ */\n        ] = canvasDevicePixelWidth;\n        bufferValues[\n          1\n          /* Info.Offset_CanvasHeight___ */\n        ] = canvasDevicePixelHeight;\n        bufferValues[\n          2\n          /* Info.Offset_ViewportOffsetX */\n        ] = Math.ceil(this._context.configuration.options.get(\n          164\n          /* EditorOption.layoutInfo */\n        ).contentLeft * getActiveWindow().devicePixelRatio);\n        bufferValues[\n          3\n          /* Info.Offset_ViewportOffsetY */\n        ] = 0;\n        bufferValues[\n          4\n          /* Info.Offset_ViewportWidth__ */\n        ] = bufferValues[\n          0\n          /* Info.Offset_CanvasWidth____ */\n        ] - bufferValues[\n          2\n          /* Info.Offset_ViewportOffsetX */\n        ];\n        bufferValues[\n          5\n          /* Info.Offset_ViewportHeight_ */\n        ] = bufferValues[\n          1\n          /* Info.Offset_CanvasHeight___ */\n        ] - bufferValues[\n          3\n          /* Info.Offset_ViewportOffsetY */\n        ];\n        return bufferValues;\n      };\n      layoutInfoUniformBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n        label: \"Monaco uniform buffer\",\n        size: 24,\n        usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST\n      }, () =\u003e updateBufferValues())).object;\n      this._register(runOnChange(this._viewGpuContext.canvasDevicePixelDimensions, ({ width: width2, height }) =\u003e {\n        this._device.queue.writeBuffer(layoutInfoUniformBuffer, 0, updateBufferValues(width2, height));\n      }));\n      this._register(runOnChange(this._viewGpuContext.contentLeft, () =\u003e {\n        this._device.queue.writeBuffer(layoutInfoUniformBuffer, 0, updateBufferValues());\n      }));\n    }\n    let atlasInfoUniformBuffer;\n    {\n      atlasInfoUniformBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n        label: \"Monaco atlas info uniform buffer\",\n        size: 8,\n        usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST\n      }, () =\u003e {\n        const values = new Float32Array(\n          2\n          /* Info.FloatsPerEntry */\n        );\n        values[\n          0\n          /* Info.Offset_Width_ */\n        ] = atlas.pageSize;\n        values[\n          1\n          /* Info.Offset_Height */\n        ] = atlas.pageSize;\n        return values;\n      })).object;\n    }\n    const fontFamily = this._context.configuration.options.get(\n      58\n      /* EditorOption.fontFamily */\n    );\n    const fontSize = this._context.configuration.options.get(\n      61\n      /* EditorOption.fontSize */\n    );\n    this._glyphRasterizer.value = this._register(new GlyphRasterizer(fontSize, fontFamily, this._viewGpuContext.devicePixelRatio.get(), ViewGpuContext.decorationStyleCache));\n    this._register(runOnChange(this._viewGpuContext.devicePixelRatio, () =\u003e {\n      this._refreshGlyphRasterizer();\n    }));\n    this._renderStrategy.value = this._instantiationService.createInstance(FullFileRenderStrategy, this._context, this._viewGpuContext, this._device, this._glyphRasterizer);\n    this._glyphStorageBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n      label: \"Monaco glyph storage buffer\",\n      size: TextureAtlas.maximumPageCount * (TextureAtlasPage.maximumGlyphCount * 24),\n      usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST\n    })).object;\n    this._atlasGpuTextureVersions[0] = 0;\n    this._atlasGpuTextureVersions[1] = 0;\n    this._atlasGpuTexture = this._register(GPULifecycle.createTexture(this._device, {\n      label: \"Monaco atlas texture\",\n      format: \"rgba8unorm\",\n      size: { width: atlas.pageSize, height: atlas.pageSize, depthOrArrayLayers: TextureAtlas.maximumPageCount },\n      dimension: \"2d\",\n      usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST | GPUTextureUsage.RENDER_ATTACHMENT\n    })).object;\n    this._updateAtlasStorageBufferAndTexture();\n    this._vertexBuffer = this._register(GPULifecycle.createBuffer(this._device, {\n      label: \"Monaco vertex buffer\",\n      size: quadVertices.byteLength,\n      usage: GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST\n    }, quadVertices)).object;\n    const module = this._device.createShaderModule({\n      label: \"Monaco shader module\",\n      code: this._renderStrategy.value.wgsl\n    });\n    this._pipeline = this._device.createRenderPipeline({\n      label: \"Monaco render pipeline\",\n      layout: \"auto\",\n      vertex: {\n        module,\n        buffers: [\n          {\n            arrayStride: 2 * Float32Array.BYTES_PER_ELEMENT,\n            // 2 floats, 4 bytes each\n            attributes: [\n              { shaderLocation: 0, offset: 0, format: \"float32x2\" }\n              // position\n            ]\n          }\n        ]\n      },\n      fragment: {\n        module,\n        targets: [\n          {\n            format: presentationFormat,\n            blend: {\n              color: {\n                srcFactor: \"src-alpha\",\n                dstFactor: \"one-minus-src-alpha\"\n              },\n              alpha: {\n                srcFactor: \"src-alpha\",\n                dstFactor: \"one-minus-src-alpha\"\n              }\n            }\n          }\n        ]\n      }\n    });\n    this._rebuildBindGroup = () =\u003e {\n      this._bindGroup = this._device.createBindGroup({\n        label: \"Monaco bind group\",\n        layout: this._pipeline.getBindGroupLayout(0),\n        entries: [\n          // TODO: Pass in generically as array?\n          { binding: 0, resource: { buffer: this._glyphStorageBuffer } },\n          {\n            binding: 2,\n            resource: this._device.createSampler({\n              label: \"Monaco atlas sampler\",\n              magFilter: \"nearest\",\n              minFilter: \"nearest\"\n            })\n          },\n          { binding: 3, resource: this._atlasGpuTexture.createView() },\n          { binding: 4, resource: { buffer: layoutInfoUniformBuffer } },\n          { binding: 5, resource: { buffer: atlasInfoUniformBuffer } },\n          ...this._renderStrategy.value.bindGroupEntries\n        ]\n      });\n    };\n    this._rebuildBindGroup();\n    this._initialized = true;\n    if (this._initViewportData) {\n      for (const viewportData of this._initViewportData) {\n        this.renderText(viewportData);\n      }\n      this._initViewportData = void 0;\n    }\n  }\n  _refreshRenderStrategy(viewportData) {\n    if (this._renderStrategy.value?.type === \"viewport\") {\n      return;\n    }\n    if (viewportData.endLineNumber \u003c FullFileRenderStrategy.maxSupportedLines \u0026\u0026 this._viewportMaxColumn(viewportData) \u003c FullFileRenderStrategy.maxSupportedColumns) {\n      return;\n    }\n    this._logService.trace(`File is larger than ${FullFileRenderStrategy.maxSupportedLines} lines or ${FullFileRenderStrategy.maxSupportedColumns} columns, switching to viewport render strategy`);\n    const viewportRenderStrategy = this._instantiationService.createInstance(ViewportRenderStrategy, this._context, this._viewGpuContext, this._device, this._glyphRasterizer);\n    this._renderStrategy.value = viewportRenderStrategy;\n    this._register(viewportRenderStrategy.onDidChangeBindGroupEntries(() =\u003e this._rebuildBindGroup?.()));\n    this._rebuildBindGroup?.();\n  }\n  _viewportMaxColumn(viewportData) {\n    let maxColumn = 0;\n    let lineData;\n    for (let i2 = viewportData.startLineNumber; i2 \u003c= viewportData.endLineNumber; i2++) {\n      lineData = viewportData.getViewLineRenderingData(i2);\n      maxColumn = Math.max(maxColumn, lineData.maxColumn);\n    }\n    return maxColumn;\n  }\n  _updateAtlasStorageBufferAndTexture() {\n    for (const [layerIndex, page] of ViewGpuContext.atlas.pages.entries()) {\n      if (layerIndex \u003e= TextureAtlas.maximumPageCount) {\n        console.log(`Attempt to upload atlas page [${layerIndex}], only ${TextureAtlas.maximumPageCount} are supported currently`);\n        continue;\n      }\n      if (page.version === this._atlasGpuTextureVersions[layerIndex]) {\n        continue;\n      }\n      this._logService.trace(\"Updating atlas page[\", layerIndex, \"] from version \", this._atlasGpuTextureVersions[layerIndex], \" to version \", page.version);\n      const entryCount = 6 * TextureAtlasPage.maximumGlyphCount;\n      const values = new Float32Array(entryCount);\n      let entryOffset = 0;\n      for (const glyph of page.glyphs) {\n        values[\n          entryOffset + 0\n          /* GlyphStorageBufferInfo.Offset_TexturePosition */\n        ] = glyph.x;\n        values[entryOffset + 0 + 1] = glyph.y;\n        values[\n          entryOffset + 2\n          /* GlyphStorageBufferInfo.Offset_TextureSize */\n        ] = glyph.w;\n        values[entryOffset + 2 + 1] = glyph.h;\n        values[\n          entryOffset + 4\n          /* GlyphStorageBufferInfo.Offset_OriginPosition */\n        ] = glyph.originOffsetX;\n        values[entryOffset + 4 + 1] = glyph.originOffsetY;\n        entryOffset += 6;\n      }\n      if (entryOffset / 6 \u003e TextureAtlasPage.maximumGlyphCount) {\n        throw new Error(`Attempting to write more glyphs (${entryOffset / 6}) than the GPUBuffer can hold (${TextureAtlasPage.maximumGlyphCount})`);\n      }\n      this._device.queue.writeBuffer(this._glyphStorageBuffer, layerIndex * 6 * TextureAtlasPage.maximumGlyphCount * Float32Array.BYTES_PER_ELEMENT, values, 0, 6 * TextureAtlasPage.maximumGlyphCount);\n      if (page.usedArea.right - page.usedArea.left \u003e 0 \u0026\u0026 page.usedArea.bottom - page.usedArea.top \u003e 0) {\n        this._device.queue.copyExternalImageToTexture({ source: page.source }, {\n          texture: this._atlasGpuTexture,\n          origin: {\n            x: page.usedArea.left,\n            y: page.usedArea.top,\n            z: layerIndex\n          }\n        }, {\n          width: page.usedArea.right - page.usedArea.left + 1,\n          height: page.usedArea.bottom - page.usedArea.top + 1\n        });\n      }\n      this._atlasGpuTextureVersions[layerIndex] = page.version;\n    }\n  }\n  prepareRender(ctx) {\n    throw new BugIndicatingError(\"Should not be called\");\n  }\n  render(ctx) {\n    throw new BugIndicatingError(\"Should not be called\");\n  }\n  // #region Event handlers\n  // Since ViewLinesGpu currently coordinates rendering to the canvas, it must listen to all\n  // changed events that any GPU part listens to. This is because any drawing to the canvas will\n  // clear it for that frame, so all parts must be rendered every time.\n  //\n  // Additionally, since this is intrinsically linked to ViewLines, it must also listen to events\n  // from that side. Luckily rendering is cheap, it's only when uploaded data changes does it\n  // start to cost.\n  onConfigurationChanged(e) {\n    this._refreshGlyphRasterizer();\n    return true;\n  }\n  onCursorStateChanged(e) {\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onLineMappingChanged(e) {\n    return true;\n  }\n  onRevealRangeRequest(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return true;\n  }\n  onThemeChanged(e) {\n    return true;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // #endregion\n  _refreshGlyphRasterizer() {\n    const glyphRasterizer = this._glyphRasterizer.value;\n    if (!glyphRasterizer) {\n      return;\n    }\n    const fontFamily = this._context.configuration.options.get(\n      58\n      /* EditorOption.fontFamily */\n    );\n    const fontSize = this._context.configuration.options.get(\n      61\n      /* EditorOption.fontSize */\n    );\n    const devicePixelRatio = this._viewGpuContext.devicePixelRatio.get();\n    if (glyphRasterizer.fontFamily !== fontFamily || glyphRasterizer.fontSize !== fontSize || glyphRasterizer.devicePixelRatio !== devicePixelRatio) {\n      this._glyphRasterizer.value = new GlyphRasterizer(fontSize, fontFamily, devicePixelRatio, ViewGpuContext.decorationStyleCache);\n    }\n  }\n  renderText(viewportData) {\n    if (this._initialized) {\n      this._refreshRenderStrategy(viewportData);\n      return this._renderText(viewportData);\n    } else {\n      this._initViewportData = this._initViewportData ?? [];\n      this._initViewportData.push(viewportData);\n    }\n  }\n  _renderText(viewportData) {\n    this._viewGpuContext.rectangleRenderer.draw(viewportData);\n    const options2 = new ViewLineOptions(this._context.configuration, this._context.theme.type);\n    this._renderStrategy.value.update(viewportData, options2);\n    this._updateAtlasStorageBufferAndTexture();\n    const encoder = this._device.createCommandEncoder({ label: \"Monaco command encoder\" });\n    this._renderPassColorAttachment.view = this._viewGpuContext.ctx.getCurrentTexture().createView({ label: \"Monaco canvas texture view\" });\n    const pass = encoder.beginRenderPass(this._renderPassDescriptor);\n    pass.setPipeline(this._pipeline);\n    pass.setVertexBuffer(0, this._vertexBuffer);\n    const contentLeft = Math.ceil(this._viewGpuContext.contentLeft.get() * this._viewGpuContext.devicePixelRatio.get());\n    pass.setScissorRect(contentLeft, 0, this.canvas.width - contentLeft, this.canvas.height);\n    pass.setBindGroup(0, this._bindGroup);\n    this._renderStrategy.value.draw(pass, viewportData);\n    pass.end();\n    const commandBuffer = encoder.finish();\n    this._device.queue.submit([commandBuffer]);\n    this._lastViewportData = viewportData;\n    this._lastViewLineOptions = options2;\n  }\n  linesVisibleRangesForRange(_range, includeNewLines) {\n    if (!this._lastViewportData) {\n      return null;\n    }\n    const originalEndLineNumber = _range.endLineNumber;\n    const range2 = Range.intersectRanges(_range, this._lastViewportData.visibleRange);\n    if (!range2) {\n      return null;\n    }\n    const rendStartLineNumber = this._lastViewportData.startLineNumber;\n    const rendEndLineNumber = this._lastViewportData.endLineNumber;\n    const viewportData = this._lastViewportData;\n    const viewLineOptions = this._lastViewLineOptions;\n    if (!viewportData || !viewLineOptions) {\n      return null;\n    }\n    const visibleRanges = [];\n    let nextLineModelLineNumber = 0;\n    if (includeNewLines) {\n      nextLineModelLineNumber = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(range2.startLineNumber, 1)).lineNumber;\n    }\n    for (let lineNumber = range2.startLineNumber; lineNumber \u003c= range2.endLineNumber; lineNumber++) {\n      if (lineNumber \u003c rendStartLineNumber || lineNumber \u003e rendEndLineNumber) {\n        continue;\n      }\n      const startColumn = lineNumber === range2.startLineNumber ? range2.startColumn : 1;\n      const continuesInNextLine = lineNumber !== originalEndLineNumber;\n      const endColumn = continuesInNextLine ? this._context.viewModel.getLineMaxColumn(lineNumber) : range2.endColumn;\n      const visibleRangesForLine = this._visibleRangesForLineRange(lineNumber, startColumn, endColumn);\n      if (!visibleRangesForLine) {\n        continue;\n      }\n      if (includeNewLines \u0026\u0026 lineNumber \u003c originalEndLineNumber) {\n        const currentLineModelLineNumber = nextLineModelLineNumber;\n        nextLineModelLineNumber = this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(lineNumber + 1, 1)).lineNumber;\n        if (currentLineModelLineNumber !== nextLineModelLineNumber) {\n          visibleRangesForLine.ranges[visibleRangesForLine.ranges.length - 1].width += viewLineOptions.spaceWidth;\n        }\n      }\n      visibleRanges.push(new LineVisibleRanges(visibleRangesForLine.outsideRenderedLine, lineNumber, HorizontalRange.from(visibleRangesForLine.ranges), continuesInNextLine));\n    }\n    if (visibleRanges.length === 0) {\n      return null;\n    }\n    return visibleRanges;\n  }\n  _visibleRangesForLineRange(lineNumber, startColumn, endColumn) {\n    if (this.shouldRender()) {\n      return null;\n    }\n    const viewportData = this._lastViewportData;\n    const viewLineOptions = this._lastViewLineOptions;\n    if (!viewportData || !viewLineOptions || lineNumber \u003c viewportData.startLineNumber || lineNumber \u003e viewportData.endLineNumber) {\n      return null;\n    }\n    const lineData = viewportData.getViewLineRenderingData(lineNumber);\n    const content = lineData.content;\n    let contentSegmenter;\n    if (!(lineData.isBasicASCII \u0026\u0026 viewLineOptions.useMonospaceOptimizations)) {\n      contentSegmenter = createContentSegmenter(lineData, viewLineOptions);\n    }\n    let chars = \"\";\n    let resolvedStartColumn = 0;\n    let resolvedStartCssPixelOffset = 0;\n    for (let x = 0; x \u003c startColumn - 1; x++) {\n      if (lineData.isBasicASCII \u0026\u0026 viewLineOptions.useMonospaceOptimizations) {\n        chars = content.charAt(x);\n      } else {\n        chars = contentSegmenter.getSegmentAtIndex(x);\n        if (chars === void 0) {\n          continue;\n        }\n        resolvedStartCssPixelOffset += this._renderStrategy.value.glyphRasterizer.getTextMetrics(chars).width / getActiveWindow().devicePixelRatio - viewLineOptions.spaceWidth;\n      }\n      if (chars === \"\t\") {\n        resolvedStartColumn = CursorColumns.nextRenderTabStop(resolvedStartColumn, lineData.tabSize);\n      } else {\n        resolvedStartColumn++;\n      }\n    }\n    let resolvedEndColumn = resolvedStartColumn;\n    let resolvedEndCssPixelOffset = 0;\n    for (let x = startColumn - 1; x \u003c endColumn - 1; x++) {\n      if (lineData.isBasicASCII \u0026\u0026 viewLineOptions.useMonospaceOptimizations) {\n        chars = content.charAt(x);\n      } else {\n        chars = contentSegmenter.getSegmentAtIndex(x);\n        if (chars === void 0) {\n          continue;\n        }\n        resolvedEndCssPixelOffset += this._renderStrategy.value.glyphRasterizer.getTextMetrics(chars).width / getActiveWindow().devicePixelRatio - viewLineOptions.spaceWidth;\n      }\n      if (chars === \"\t\") {\n        resolvedEndColumn = CursorColumns.nextRenderTabStop(resolvedEndColumn, lineData.tabSize);\n      } else {\n        resolvedEndColumn++;\n      }\n    }\n    const result = new VisibleRanges(false, [\n      new FloatHorizontalRange(resolvedStartColumn * viewLineOptions.spaceWidth + resolvedStartCssPixelOffset, (resolvedEndColumn - resolvedStartColumn) * viewLineOptions.spaceWidth + resolvedEndCssPixelOffset)\n    ]);\n    return result;\n  }\n  visibleRangeForPosition(position) {\n    const visibleRanges = this._visibleRangesForLineRange(position.lineNumber, position.column, position.column);\n    if (!visibleRanges) {\n      return null;\n    }\n    return new HorizontalPosition(visibleRanges.outsideRenderedLine, visibleRanges.ranges[0].left);\n  }\n  getLineWidth(lineNumber) {\n    if (!this._lastViewportData || !this._lastViewLineOptions) {\n      return void 0;\n    }\n    if (!this._viewGpuContext.canRender(this._lastViewLineOptions, this._lastViewportData, lineNumber)) {\n      return void 0;\n    }\n    const lineData = this._lastViewportData.getViewLineRenderingData(lineNumber);\n    const lineRange = this._visibleRangesForLineRange(lineNumber, 1, lineData.maxColumn);\n    const lastRange = lineRange?.ranges.at(-1);\n    if (lastRange) {\n      return lastRange.width;\n    }\n    return void 0;\n  }\n  getPositionAtCoordinate(lineNumber, mouseContentHorizontalOffset) {\n    if (!this._lastViewportData || !this._lastViewLineOptions) {\n      return void 0;\n    }\n    if (!this._viewGpuContext.canRender(this._lastViewLineOptions, this._lastViewportData, lineNumber)) {\n      return void 0;\n    }\n    const lineData = this._lastViewportData.getViewLineRenderingData(lineNumber);\n    const content = lineData.content;\n    const dpr = getActiveWindow().devicePixelRatio;\n    const mouseContentHorizontalOffsetDevicePixels = mouseContentHorizontalOffset * dpr;\n    const spaceWidthDevicePixels = this._lastViewLineOptions.spaceWidth * dpr;\n    const contentSegmenter = createContentSegmenter(lineData, this._lastViewLineOptions);\n    let widthSoFar = 0;\n    let charWidth = 0;\n    let tabXOffset = 0;\n    let column = 0;\n    for (let x = 0; x \u003c content.length; x++) {\n      const chars = contentSegmenter.getSegmentAtIndex(x);\n      if (chars === void 0) {\n        column++;\n        continue;\n      }\n      if (chars === \"\t\") {\n        const offsetBefore = x + tabXOffset;\n        tabXOffset = CursorColumns.nextRenderTabStop(x + tabXOffset, lineData.tabSize);\n        charWidth = spaceWidthDevicePixels * (tabXOffset - offsetBefore);\n        tabXOffset -= x + 1;\n      } else if (lineData.isBasicASCII \u0026\u0026 this._lastViewLineOptions.useMonospaceOptimizations) {\n        charWidth = spaceWidthDevicePixels;\n      } else {\n        charWidth = this._renderStrategy.value.glyphRasterizer.getTextMetrics(chars).width;\n      }\n      if (mouseContentHorizontalOffsetDevicePixels \u003c widthSoFar + charWidth / 2) {\n        break;\n      }\n      widthSoFar += charWidth;\n      column++;\n    }\n    return new Position(lineNumber, column + 1);\n  }\n};\nViewLinesGpu = __decorate13([\n  __param11(2, IInstantiationService),\n  __param11(3, ILogService)\n], ViewLinesGpu);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js\ninit_nls();\ninit_browser();\ninit_platform();\ninit_strings();\ninit_position();\ninit_range();\ninit_selection();\ninit_languages();\ninit_color();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/ime.js\ninit_event();\nvar IMEImpl = class {\n  constructor() {\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n    this._enabled = true;\n  }\n  get enabled() {\n    return this._enabled;\n  }\n  /**\n   * Enable IME\n   */\n  enable() {\n    this._enabled = true;\n    this._onDidChange.fire();\n  }\n  /**\n   * Disable IME\n   */\n  disable() {\n    this._enabled = false;\n    this._onDidChange.fire();\n  }\n};\nvar IME = new IMEImpl();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/keybinding.js\ninit_instantiation();\nvar IKeybindingService = createDecorator(\"keybindingService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/editContext.js\nvar AbstractEditContext = class extends ViewPart {\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/screenReaderUtils.js\ninit_range();\ninit_nls();\nvar SimplePagedScreenReaderStrategy = class {\n  _getPageOfLine(lineNumber, linesPerPage) {\n    return Math.floor((lineNumber - 1) / linesPerPage);\n  }\n  _getRangeForPage(page, linesPerPage) {\n    const offset = page * linesPerPage;\n    const startLineNumber = offset + 1;\n    const endLineNumber = offset + linesPerPage;\n    return new Range(startLineNumber, 1, endLineNumber + 1, 1);\n  }\n  fromEditorSelection(model, selection, linesPerPage, trimLongText) {\n    const LIMIT_CHARS = 500;\n    const selectionStartPage = this._getPageOfLine(selection.startLineNumber, linesPerPage);\n    const selectionStartPageRange = this._getRangeForPage(selectionStartPage, linesPerPage);\n    const selectionEndPage = this._getPageOfLine(selection.endLineNumber, linesPerPage);\n    const selectionEndPageRange = this._getRangeForPage(selectionEndPage, linesPerPage);\n    let pretextRange = selectionStartPageRange.intersectRanges(new Range(1, 1, selection.startLineNumber, selection.startColumn));\n    if (trimLongText \u0026\u0026 model.getValueLengthInRange(\n      pretextRange,\n      1\n      /* EndOfLinePreference.LF */\n    ) \u003e LIMIT_CHARS) {\n      const pretextStart = model.modifyPosition(pretextRange.getEndPosition(), -LIMIT_CHARS);\n      pretextRange = Range.fromPositions(pretextStart, pretextRange.getEndPosition());\n    }\n    const pretext = model.getValueInRange(\n      pretextRange,\n      1\n      /* EndOfLinePreference.LF */\n    );\n    const lastLine = model.getLineCount();\n    const lastLineMaxColumn = model.getLineMaxColumn(lastLine);\n    let posttextRange = selectionEndPageRange.intersectRanges(new Range(selection.endLineNumber, selection.endColumn, lastLine, lastLineMaxColumn));\n    if (trimLongText \u0026\u0026 model.getValueLengthInRange(\n      posttextRange,\n      1\n      /* EndOfLinePreference.LF */\n    ) \u003e LIMIT_CHARS) {\n      const posttextEnd = model.modifyPosition(posttextRange.getStartPosition(), LIMIT_CHARS);\n      posttextRange = Range.fromPositions(posttextRange.getStartPosition(), posttextEnd);\n    }\n    const posttext = model.getValueInRange(\n      posttextRange,\n      1\n      /* EndOfLinePreference.LF */\n    );\n    let text2;\n    if (selectionStartPage === selectionEndPage || selectionStartPage + 1 === selectionEndPage) {\n      text2 = model.getValueInRange(\n        selection,\n        1\n        /* EndOfLinePreference.LF */\n      );\n    } else {\n      const selectionRange1 = selectionStartPageRange.intersectRanges(selection);\n      const selectionRange2 = selectionEndPageRange.intersectRanges(selection);\n      text2 = model.getValueInRange(\n        selectionRange1,\n        1\n        /* EndOfLinePreference.LF */\n      ) + String.fromCharCode(8230) + model.getValueInRange(\n        selectionRange2,\n        1\n        /* EndOfLinePreference.LF */\n      );\n    }\n    if (trimLongText \u0026\u0026 text2.length \u003e 2 * LIMIT_CHARS) {\n      text2 = text2.substring(0, LIMIT_CHARS) + String.fromCharCode(8230) + text2.substring(text2.length - LIMIT_CHARS, text2.length);\n    }\n    let selectionStart;\n    let selectionEnd;\n    if (selection.getDirection() === 0) {\n      selectionStart = pretext.length;\n      selectionEnd = pretext.length + text2.length;\n    } else {\n      selectionEnd = pretext.length;\n      selectionStart = pretext.length + text2.length;\n    }\n    return {\n      value: pretext + text2 + posttext,\n      selection,\n      selectionStart,\n      selectionEnd,\n      startPositionWithinEditor: pretextRange.getStartPosition(),\n      newlineCountBeforeSelection: pretextRange.endLineNumber - pretextRange.startLineNumber\n    };\n  }\n};\nfunction ariaLabelForScreenReaderContent(options2, keybindingService) {\n  const accessibilitySupport = options2.get(\n    2\n    /* EditorOption.accessibilitySupport */\n  );\n  if (accessibilitySupport === 1) {\n    const toggleKeybindingLabel = keybindingService.lookupKeybinding(\"editor.action.toggleScreenReaderAccessibilityMode\")?.getAriaLabel();\n    const runCommandKeybindingLabel = keybindingService.lookupKeybinding(\"workbench.action.showCommands\")?.getAriaLabel();\n    const keybindingEditorKeybindingLabel = keybindingService.lookupKeybinding(\"workbench.action.openGlobalKeybindings\")?.getAriaLabel();\n    const editorNotAccessibleMessage = localize(56, \"The editor is not accessible at this time.\");\n    if (toggleKeybindingLabel) {\n      return localize(57, \"{0} To enable screen reader optimized mode, use {1}\", editorNotAccessibleMessage, toggleKeybindingLabel);\n    } else if (runCommandKeybindingLabel) {\n      return localize(58, \"{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.\", editorNotAccessibleMessage, runCommandKeybindingLabel);\n    } else if (keybindingEditorKeybindingLabel) {\n      return localize(59, \"{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.\", editorNotAccessibleMessage, keybindingEditorKeybindingLabel);\n    } else {\n      return editorNotAccessibleMessage;\n    }\n  }\n  return options2.get(\n    8\n    /* EditorOption.ariaLabel */\n  );\n}\nfunction newlinecount(text2) {\n  let result = 0;\n  let startIndex = -1;\n  do {\n    startIndex = text2.indexOf(\"\\n\", startIndex + 1);\n    if (startIndex === -1) {\n      break;\n    }\n    result++;\n  } while (true);\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/textArea/textAreaEditContext.js\ninit_wordCharacterClassifier();\nvar __decorate14 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param12 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar VisibleTextAreaData = class {\n  constructor(_context, modelLineNumber, distanceToModelLineStart, widthOfHiddenLineTextBefore, distanceToModelLineEnd) {\n    this._context = _context;\n    this.modelLineNumber = modelLineNumber;\n    this.distanceToModelLineStart = distanceToModelLineStart;\n    this.widthOfHiddenLineTextBefore = widthOfHiddenLineTextBefore;\n    this.distanceToModelLineEnd = distanceToModelLineEnd;\n    this._visibleTextAreaBrand = void 0;\n    this.startPosition = null;\n    this.endPosition = null;\n    this.visibleTextareaStart = null;\n    this.visibleTextareaEnd = null;\n    this._previousPresentation = null;\n  }\n  prepareRender(visibleRangeProvider) {\n    const startModelPosition = new Position(this.modelLineNumber, this.distanceToModelLineStart + 1);\n    const endModelPosition = new Position(this.modelLineNumber, this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber) - this.distanceToModelLineEnd);\n    this.startPosition = this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(startModelPosition);\n    this.endPosition = this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(endModelPosition);\n    if (this.startPosition.lineNumber === this.endPosition.lineNumber) {\n      this.visibleTextareaStart = visibleRangeProvider.visibleRangeForPosition(this.startPosition);\n      this.visibleTextareaEnd = visibleRangeProvider.visibleRangeForPosition(this.endPosition);\n    } else {\n      this.visibleTextareaStart = null;\n      this.visibleTextareaEnd = null;\n    }\n  }\n  definePresentation(tokenPresentation) {\n    if (!this._previousPresentation) {\n      if (tokenPresentation) {\n        this._previousPresentation = tokenPresentation;\n      } else {\n        this._previousPresentation = {\n          foreground: 1,\n          italic: false,\n          bold: false,\n          underline: false,\n          strikethrough: false\n        };\n      }\n    }\n    return this._previousPresentation;\n  }\n};\nvar canUseZeroSizeTextarea = isFirefox;\nvar TextAreaEditContext = class TextAreaEditContext2 extends AbstractEditContext {\n  constructor(context, overflowGuardContainer, viewController, visibleRangeProvider, _keybindingService, _instantiationService) {\n    super(context);\n    this._keybindingService = _keybindingService;\n    this._instantiationService = _instantiationService;\n    this._primaryCursorPosition = new Position(1, 1);\n    this._primaryCursorVisibleRange = null;\n    this._viewController = viewController;\n    this._visibleRangeProvider = visibleRangeProvider;\n    this._scrollLeft = 0;\n    this._scrollTop = 0;\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._setAccessibilityOptions(options2);\n    this._contentLeft = layoutInfo.contentLeft;\n    this._contentWidth = layoutInfo.contentWidth;\n    this._contentHeight = layoutInfo.height;\n    this._fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._emptySelectionClipboard = options2.get(\n      45\n      /* EditorOption.emptySelectionClipboard */\n    );\n    this._copyWithSyntaxHighlighting = options2.get(\n      31\n      /* EditorOption.copyWithSyntaxHighlighting */\n    );\n    this._visibleTextArea = null;\n    this._selections = [new Selection(1, 1, 1, 1)];\n    this._modelSelections = [new Selection(1, 1, 1, 1)];\n    this._lastRenderPosition = null;\n    this.textArea = createFastDomNode(document.createElement(\"textarea\"));\n    PartFingerprints.write(\n      this.textArea,\n      7\n      /* PartFingerprint.TextArea */\n    );\n    this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);\n    this.textArea.setAttribute(\"wrap\", this._textAreaWrapping \u0026\u0026 !this._visibleTextArea ? \"on\" : \"off\");\n    const { tabSize } = this._context.viewModel.model.getOptions();\n    this.textArea.domNode.style.tabSize = `${tabSize * this._fontInfo.spaceWidth}px`;\n    this.textArea.setAttribute(\"autocorrect\", \"off\");\n    this.textArea.setAttribute(\"autocapitalize\", \"off\");\n    this.textArea.setAttribute(\"autocomplete\", \"off\");\n    this.textArea.setAttribute(\"spellcheck\", \"false\");\n    this.textArea.setAttribute(\"aria-label\", ariaLabelForScreenReaderContent(options2, this._keybindingService));\n    this.textArea.setAttribute(\"aria-required\", options2.get(\n      9\n      /* EditorOption.ariaRequired */\n    ) ? \"true\" : \"false\");\n    this.textArea.setAttribute(\"tabindex\", String(options2.get(\n      139\n      /* EditorOption.tabIndex */\n    )));\n    this.textArea.setAttribute(\"role\", \"textbox\");\n    this.textArea.setAttribute(\"aria-roledescription\", localize(60, \"editor\"));\n    this.textArea.setAttribute(\"aria-multiline\", \"true\");\n    this.textArea.setAttribute(\"aria-autocomplete\", options2.get(\n      103\n      /* EditorOption.readOnly */\n    ) ? \"none\" : \"both\");\n    this._ensureReadOnlyAttribute();\n    this.textAreaCover = createFastDomNode(document.createElement(\"div\"));\n    this.textAreaCover.setPosition(\"absolute\");\n    overflowGuardContainer.appendChild(this.textArea);\n    overflowGuardContainer.appendChild(this.textAreaCover);\n    const simplePagedScreenReaderStrategy = new SimplePagedScreenReaderStrategy();\n    const textAreaInputHost = {\n      getDataToCopy: () =\u003e {\n        return getDataToCopy(this._context.viewModel, this._modelSelections, this._emptySelectionClipboard, this._copyWithSyntaxHighlighting);\n      },\n      getScreenReaderContent: () =\u003e {\n        if (this._accessibilitySupport === 1) {\n          const selection = this._selections[0];\n          if (isMacintosh \u0026\u0026 selection.isEmpty()) {\n            const position = selection.getStartPosition();\n            let textBefore = this._getWordBeforePosition(position);\n            if (textBefore.length === 0) {\n              textBefore = this._getCharacterBeforePosition(position);\n            }\n            if (textBefore.length \u003e 0) {\n              return new TextAreaState(textBefore, textBefore.length, textBefore.length, Range.fromPositions(position), 0);\n            }\n          }\n          const LIMIT_CHARS = 500;\n          if (isMacintosh \u0026\u0026 !selection.isEmpty() \u0026\u0026 this._context.viewModel.getValueLengthInRange(\n            selection,\n            0\n            /* EndOfLinePreference.TextDefined */\n          ) \u003c LIMIT_CHARS) {\n            const text2 = this._context.viewModel.getValueInRange(\n              selection,\n              0\n              /* EndOfLinePreference.TextDefined */\n            );\n            return new TextAreaState(text2, 0, text2.length, selection, 0);\n          }\n          if (isSafari \u0026\u0026 !selection.isEmpty()) {\n            const placeholderText = \"vscode-placeholder\";\n            return new TextAreaState(placeholderText, 0, placeholderText.length, null, void 0);\n          }\n          return TextAreaState.EMPTY;\n        }\n        if (isAndroid) {\n          const selection = this._selections[0];\n          if (selection.isEmpty()) {\n            const position = selection.getStartPosition();\n            const [wordAtPosition, positionOffsetInWord] = this._getAndroidWordAtPosition(position);\n            if (wordAtPosition.length \u003e 0) {\n              return new TextAreaState(wordAtPosition, positionOffsetInWord, positionOffsetInWord, Range.fromPositions(position), 0);\n            }\n          }\n          return TextAreaState.EMPTY;\n        }\n        const screenReaderContentState = simplePagedScreenReaderStrategy.fromEditorSelection(\n          this._context.viewModel,\n          this._selections[0],\n          this._accessibilityPageSize,\n          this._accessibilitySupport === 0\n          /* AccessibilitySupport.Unknown */\n        );\n        return TextAreaState.fromScreenReaderContentState(screenReaderContentState);\n      },\n      deduceModelPosition: (viewAnchorPosition, deltaOffset, lineFeedCnt) =\u003e {\n        return this._context.viewModel.deduceModelPositionRelativeToViewPosition(viewAnchorPosition, deltaOffset, lineFeedCnt);\n      }\n    };\n    const textAreaWrapper = this._register(new TextAreaWrapper(this.textArea.domNode));\n    this._textAreaInput = this._register(this._instantiationService.createInstance(TextAreaInput, textAreaInputHost, textAreaWrapper, OS, {\n      isAndroid,\n      isChrome,\n      isFirefox,\n      isSafari\n    }));\n    this._register(this._textAreaInput.onKeyDown((e) =\u003e {\n      this._viewController.emitKeyDown(e);\n    }));\n    this._register(this._textAreaInput.onKeyUp((e) =\u003e {\n      this._viewController.emitKeyUp(e);\n    }));\n    this._register(this._textAreaInput.onPaste((e) =\u003e {\n      let pasteOnNewLine = false;\n      let multicursorText = null;\n      let mode = null;\n      if (e.metadata) {\n        pasteOnNewLine = this._emptySelectionClipboard \u0026\u0026 !!e.metadata.isFromEmptySelection;\n        multicursorText = typeof e.metadata.multicursorText !== \"undefined\" ? e.metadata.multicursorText : null;\n        mode = e.metadata.mode;\n      }\n      this._viewController.paste(e.text, pasteOnNewLine, multicursorText, mode);\n    }));\n    this._register(this._textAreaInput.onCut(() =\u003e {\n      this._viewController.cut();\n    }));\n    this._register(this._textAreaInput.onType((e) =\u003e {\n      if (e.replacePrevCharCnt || e.replaceNextCharCnt || e.positionDelta) {\n        if (_debugComposition) {\n          console.log(` =\u003e compositionType: \u003c\u003c${e.text}\u003e\u003e, ${e.replacePrevCharCnt}, ${e.replaceNextCharCnt}, ${e.positionDelta}`);\n        }\n        this._viewController.compositionType(e.text, e.replacePrevCharCnt, e.replaceNextCharCnt, e.positionDelta);\n      } else {\n        if (_debugComposition) {\n          console.log(` =\u003e type: \u003c\u003c${e.text}\u003e\u003e`);\n        }\n        this._viewController.type(e.text);\n      }\n    }));\n    this._register(this._textAreaInput.onSelectionChangeRequest((modelSelection) =\u003e {\n      this._viewController.setSelection(modelSelection);\n    }));\n    this._register(this._textAreaInput.onCompositionStart((e) =\u003e {\n      const ta = this.textArea.domNode;\n      const modelSelection = this._modelSelections[0];\n      const { distanceToModelLineStart, widthOfHiddenTextBefore } = (() =\u003e {\n        const textBeforeSelection = ta.value.substring(0, Math.min(ta.selectionStart, ta.selectionEnd));\n        const lineFeedOffset1 = textBeforeSelection.lastIndexOf(\"\\n\");\n        const lineTextBeforeSelection = textBeforeSelection.substring(lineFeedOffset1 + 1);\n        const tabOffset1 = lineTextBeforeSelection.lastIndexOf(\"\t\");\n        const desiredVisibleBeforeCharCount = lineTextBeforeSelection.length - tabOffset1 - 1;\n        const startModelPosition = modelSelection.getStartPosition();\n        const visibleBeforeCharCount = Math.min(startModelPosition.column - 1, desiredVisibleBeforeCharCount);\n        const distanceToModelLineStart2 = startModelPosition.column - 1 - visibleBeforeCharCount;\n        const hiddenLineTextBefore = lineTextBeforeSelection.substring(0, lineTextBeforeSelection.length - visibleBeforeCharCount);\n        const { tabSize: tabSize2 } = this._context.viewModel.model.getOptions();\n        const widthOfHiddenTextBefore2 = measureText(this.textArea.domNode.ownerDocument, hiddenLineTextBefore, this._fontInfo, tabSize2);\n        return { distanceToModelLineStart: distanceToModelLineStart2, widthOfHiddenTextBefore: widthOfHiddenTextBefore2 };\n      })();\n      const { distanceToModelLineEnd } = (() =\u003e {\n        const textAfterSelection = ta.value.substring(Math.max(ta.selectionStart, ta.selectionEnd));\n        const lineFeedOffset2 = textAfterSelection.indexOf(\"\\n\");\n        const lineTextAfterSelection = lineFeedOffset2 === -1 ? textAfterSelection : textAfterSelection.substring(0, lineFeedOffset2);\n        const tabOffset2 = lineTextAfterSelection.indexOf(\"\t\");\n        const desiredVisibleAfterCharCount = tabOffset2 === -1 ? lineTextAfterSelection.length : lineTextAfterSelection.length - tabOffset2 - 1;\n        const endModelPosition = modelSelection.getEndPosition();\n        const visibleAfterCharCount = Math.min(this._context.viewModel.model.getLineMaxColumn(endModelPosition.lineNumber) - endModelPosition.column, desiredVisibleAfterCharCount);\n        const distanceToModelLineEnd2 = this._context.viewModel.model.getLineMaxColumn(endModelPosition.lineNumber) - endModelPosition.column - visibleAfterCharCount;\n        return { distanceToModelLineEnd: distanceToModelLineEnd2 };\n      })();\n      this._context.viewModel.revealRange(\n        \"keyboard\",\n        true,\n        Range.fromPositions(this._selections[0].getStartPosition()),\n        0,\n        1\n        /* ScrollType.Immediate */\n      );\n      this._visibleTextArea = new VisibleTextAreaData(this._context, modelSelection.startLineNumber, distanceToModelLineStart, widthOfHiddenTextBefore, distanceToModelLineEnd);\n      this.textArea.setAttribute(\"wrap\", this._textAreaWrapping \u0026\u0026 !this._visibleTextArea ? \"on\" : \"off\");\n      this._visibleTextArea.prepareRender(this._visibleRangeProvider);\n      this._render();\n      this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ime-input`);\n      this._viewController.compositionStart();\n      this._context.viewModel.onCompositionStart();\n    }));\n    this._register(this._textAreaInput.onCompositionUpdate((e) =\u003e {\n      if (!this._visibleTextArea) {\n        return;\n      }\n      this._visibleTextArea.prepareRender(this._visibleRangeProvider);\n      this._render();\n    }));\n    this._register(this._textAreaInput.onCompositionEnd(() =\u003e {\n      this._visibleTextArea = null;\n      this.textArea.setAttribute(\"wrap\", this._textAreaWrapping \u0026\u0026 !this._visibleTextArea ? \"on\" : \"off\");\n      this._render();\n      this.textArea.setClassName(`inputarea ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`);\n      this._viewController.compositionEnd();\n      this._context.viewModel.onCompositionEnd();\n    }));\n    this._register(this._textAreaInput.onFocus(() =\u003e {\n      this._context.viewModel.setHasFocus(true);\n    }));\n    this._register(this._textAreaInput.onBlur(() =\u003e {\n      this._context.viewModel.setHasFocus(false);\n    }));\n    this._register(IME.onDidChange(() =\u003e {\n      this._ensureReadOnlyAttribute();\n    }));\n  }\n  get domNode() {\n    return this.textArea;\n  }\n  writeScreenReaderContent(reason) {\n    this._textAreaInput.writeNativeTextAreaContent(reason);\n  }\n  dispose() {\n    super.dispose();\n    this.textArea.domNode.remove();\n    this.textAreaCover.domNode.remove();\n  }\n  _getAndroidWordAtPosition(position) {\n    const ANDROID_WORD_SEPARATORS = '`~!@#$%^\u0026*()-=+[{]}\\\\|;:\",.\u003c\u003e/?';\n    const lineContent = this._context.viewModel.getLineContent(position.lineNumber);\n    const wordSeparators2 = getMapForWordSeparators(ANDROID_WORD_SEPARATORS, []);\n    let goingLeft = true;\n    let startColumn = position.column;\n    let goingRight = true;\n    let endColumn = position.column;\n    let distance = 0;\n    while (distance \u003c 50 \u0026\u0026 (goingLeft || goingRight)) {\n      if (goingLeft \u0026\u0026 startColumn \u003c= 1) {\n        goingLeft = false;\n      }\n      if (goingLeft) {\n        const charCode = lineContent.charCodeAt(startColumn - 2);\n        const charClass = wordSeparators2.get(charCode);\n        if (charClass !== 0) {\n          goingLeft = false;\n        } else {\n          startColumn--;\n        }\n      }\n      if (goingRight \u0026\u0026 endColumn \u003e lineContent.length) {\n        goingRight = false;\n      }\n      if (goingRight) {\n        const charCode = lineContent.charCodeAt(endColumn - 1);\n        const charClass = wordSeparators2.get(charCode);\n        if (charClass !== 0) {\n          goingRight = false;\n        } else {\n          endColumn++;\n        }\n      }\n      distance++;\n    }\n    return [lineContent.substring(startColumn - 1, endColumn - 1), position.column - startColumn];\n  }\n  _getWordBeforePosition(position) {\n    const lineContent = this._context.viewModel.getLineContent(position.lineNumber);\n    const wordSeparators2 = getMapForWordSeparators(this._context.configuration.options.get(\n      147\n      /* EditorOption.wordSeparators */\n    ), []);\n    let column = position.column;\n    let distance = 0;\n    while (column \u003e 1) {\n      const charCode = lineContent.charCodeAt(column - 2);\n      const charClass = wordSeparators2.get(charCode);\n      if (charClass !== 0 || distance \u003e 50) {\n        return lineContent.substring(column - 1, position.column - 1);\n      }\n      distance++;\n      column--;\n    }\n    return lineContent.substring(0, position.column - 1);\n  }\n  _getCharacterBeforePosition(position) {\n    if (position.column \u003e 1) {\n      const lineContent = this._context.viewModel.getLineContent(position.lineNumber);\n      const charBefore = lineContent.charAt(position.column - 2);\n      if (!isHighSurrogate(charBefore.charCodeAt(0))) {\n        return charBefore;\n      }\n    }\n    return \"\";\n  }\n  _setAccessibilityOptions(options2) {\n    this._accessibilitySupport = options2.get(\n      2\n      /* EditorOption.accessibilitySupport */\n    );\n    const accessibilityPageSize = options2.get(\n      3\n      /* EditorOption.accessibilityPageSize */\n    );\n    if (this._accessibilitySupport === 2 \u0026\u0026 accessibilityPageSize === EditorOptions.accessibilityPageSize.defaultValue) {\n      this._accessibilityPageSize = 500;\n    } else {\n      this._accessibilityPageSize = accessibilityPageSize;\n    }\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const wrappingColumn = layoutInfo.wrappingColumn;\n    if (wrappingColumn !== -1 \u0026\u0026 this._accessibilitySupport !== 1) {\n      const fontInfo = options2.get(\n        59\n        /* EditorOption.fontInfo */\n      );\n      this._textAreaWrapping = true;\n      this._textAreaWidth = Math.round(wrappingColumn * fontInfo.typicalHalfwidthCharacterWidth);\n    } else {\n      this._textAreaWrapping = false;\n      this._textAreaWidth = canUseZeroSizeTextarea ? 0 : 1;\n    }\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this._setAccessibilityOptions(options2);\n    this._contentLeft = layoutInfo.contentLeft;\n    this._contentWidth = layoutInfo.contentWidth;\n    this._contentHeight = layoutInfo.height;\n    this._fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._emptySelectionClipboard = options2.get(\n      45\n      /* EditorOption.emptySelectionClipboard */\n    );\n    this._copyWithSyntaxHighlighting = options2.get(\n      31\n      /* EditorOption.copyWithSyntaxHighlighting */\n    );\n    this.textArea.setAttribute(\"wrap\", this._textAreaWrapping \u0026\u0026 !this._visibleTextArea ? \"on\" : \"off\");\n    const { tabSize } = this._context.viewModel.model.getOptions();\n    this.textArea.domNode.style.tabSize = `${tabSize * this._fontInfo.spaceWidth}px`;\n    this.textArea.setAttribute(\"aria-label\", ariaLabelForScreenReaderContent(options2, this._keybindingService));\n    this.textArea.setAttribute(\"aria-required\", options2.get(\n      9\n      /* EditorOption.ariaRequired */\n    ) ? \"true\" : \"false\");\n    this.textArea.setAttribute(\"tabindex\", String(options2.get(\n      139\n      /* EditorOption.tabIndex */\n    )));\n    if (e.hasChanged(\n      41\n      /* EditorOption.domReadOnly */\n    ) || e.hasChanged(\n      103\n      /* EditorOption.readOnly */\n    )) {\n      this._ensureReadOnlyAttribute();\n    }\n    if (e.hasChanged(\n      2\n      /* EditorOption.accessibilitySupport */\n    )) {\n      this._textAreaInput.writeNativeTextAreaContent(\"strategy changed\");\n    }\n    return true;\n  }\n  onCursorStateChanged(e) {\n    this._selections = e.selections.slice(0);\n    this._modelSelections = e.modelSelections.slice(0);\n    this._textAreaInput.writeNativeTextAreaContent(\"selection changed\");\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    this._scrollLeft = e.scrollLeft;\n    this._scrollTop = e.scrollTop;\n    return true;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  // --- begin view API\n  isFocused() {\n    return this._textAreaInput.isFocused();\n  }\n  focus() {\n    this._textAreaInput.focusTextArea();\n  }\n  refreshFocusState() {\n    this._textAreaInput.refreshFocusState();\n  }\n  getLastRenderData() {\n    return this._lastRenderPosition;\n  }\n  setAriaOptions(options2) {\n    if (options2.activeDescendant) {\n      this.textArea.setAttribute(\"aria-haspopup\", \"true\");\n      this.textArea.setAttribute(\"aria-autocomplete\", \"list\");\n      this.textArea.setAttribute(\"aria-activedescendant\", options2.activeDescendant);\n    } else {\n      this.textArea.setAttribute(\"aria-haspopup\", \"false\");\n      this.textArea.setAttribute(\"aria-autocomplete\", \"both\");\n      this.textArea.removeAttribute(\"aria-activedescendant\");\n    }\n    if (options2.role) {\n      this.textArea.setAttribute(\"role\", options2.role);\n    }\n  }\n  // --- end view API\n  _ensureReadOnlyAttribute() {\n    const options2 = this._context.configuration.options;\n    const useReadOnly = !IME.enabled || options2.get(\n      41\n      /* EditorOption.domReadOnly */\n    ) \u0026\u0026 options2.get(\n      103\n      /* EditorOption.readOnly */\n    );\n    if (useReadOnly) {\n      this.textArea.setAttribute(\"readonly\", \"true\");\n    } else {\n      this.textArea.removeAttribute(\"readonly\");\n    }\n  }\n  prepareRender(ctx) {\n    this._primaryCursorPosition = new Position(this._selections[0].positionLineNumber, this._selections[0].positionColumn);\n    this._primaryCursorVisibleRange = ctx.visibleRangeForPosition(this._primaryCursorPosition);\n    this._visibleTextArea?.prepareRender(ctx);\n  }\n  render(ctx) {\n    this._textAreaInput.writeNativeTextAreaContent(\"render\");\n    this._render();\n  }\n  _render() {\n    if (this._visibleTextArea) {\n      const visibleStart = this._visibleTextArea.visibleTextareaStart;\n      const visibleEnd = this._visibleTextArea.visibleTextareaEnd;\n      const startPosition = this._visibleTextArea.startPosition;\n      const endPosition = this._visibleTextArea.endPosition;\n      if (startPosition \u0026\u0026 endPosition \u0026\u0026 visibleStart \u0026\u0026 visibleEnd \u0026\u0026 visibleEnd.left \u003e= this._scrollLeft \u0026\u0026 visibleStart.left \u003c= this._scrollLeft + this._contentWidth) {\n        const top2 = this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber) - this._scrollTop;\n        const lineCount = newlinecount(this.textArea.domNode.value.substr(0, this.textArea.domNode.selectionStart));\n        let scrollLeft = this._visibleTextArea.widthOfHiddenLineTextBefore;\n        let left2 = this._contentLeft + visibleStart.left - this._scrollLeft;\n        let width2 = visibleEnd.left - visibleStart.left + 1;\n        if (left2 \u003c this._contentLeft) {\n          const delta = this._contentLeft - left2;\n          left2 += delta;\n          scrollLeft += delta;\n          width2 -= delta;\n        }\n        if (width2 \u003e this._contentWidth) {\n          width2 = this._contentWidth;\n        }\n        const lineHeight = this._context.viewLayout.getLineHeightForLineNumber(startPosition.lineNumber);\n        const fontSize = this._context.viewModel.getFontSizeAtPosition(this._primaryCursorPosition);\n        const viewLineData = this._context.viewModel.getViewLineData(startPosition.lineNumber);\n        const startTokenIndex = viewLineData.tokens.findTokenIndexAtOffset(startPosition.column - 1);\n        const endTokenIndex = viewLineData.tokens.findTokenIndexAtOffset(endPosition.column - 1);\n        const textareaSpansSingleToken = startTokenIndex === endTokenIndex;\n        const presentation = this._visibleTextArea.definePresentation(textareaSpansSingleToken ? viewLineData.tokens.getPresentation(startTokenIndex) : null);\n        this.textArea.domNode.scrollTop = lineCount * lineHeight;\n        this.textArea.domNode.scrollLeft = scrollLeft;\n        this._doRender({\n          lastRenderPosition: null,\n          top: top2,\n          left: left2,\n          width: width2,\n          height: lineHeight,\n          useCover: false,\n          color: (TokenizationRegistry2.getColorMap() || [])[presentation.foreground],\n          italic: presentation.italic,\n          bold: presentation.bold,\n          underline: presentation.underline,\n          strikethrough: presentation.strikethrough,\n          fontSize\n        });\n      }\n      return;\n    }\n    if (!this._primaryCursorVisibleRange) {\n      this._renderAtTopLeft();\n      return;\n    }\n    const left = this._contentLeft + this._primaryCursorVisibleRange.left - this._scrollLeft;\n    if (left \u003c this._contentLeft || left \u003e this._contentLeft + this._contentWidth) {\n      this._renderAtTopLeft();\n      return;\n    }\n    const top = this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber) - this._scrollTop;\n    if (top \u003c 0 || top \u003e this._contentHeight) {\n      this._renderAtTopLeft();\n      return;\n    }\n    if (isMacintosh || this._accessibilitySupport === 2) {\n      const lineNumber = this._primaryCursorPosition.lineNumber;\n      const lineHeight = this._context.viewLayout.getLineHeightForLineNumber(lineNumber);\n      this._doRender({\n        lastRenderPosition: this._primaryCursorPosition,\n        top,\n        left: this._textAreaWrapping ? this._contentLeft : left,\n        width: this._textAreaWidth,\n        height: lineHeight,\n        useCover: false\n      });\n      this.textArea.domNode.scrollLeft = this._primaryCursorVisibleRange.left;\n      const lineCount = this._textAreaInput.textAreaState.newlineCountBeforeSelection ?? newlinecount(this.textArea.domNode.value.substring(0, this.textArea.domNode.selectionStart));\n      this.textArea.domNode.scrollTop = lineCount * lineHeight;\n      return;\n    }\n    this._doRender({\n      lastRenderPosition: this._primaryCursorPosition,\n      top,\n      left: this._textAreaWrapping ? this._contentLeft : left,\n      width: this._textAreaWidth,\n      height: canUseZeroSizeTextarea ? 0 : 1,\n      useCover: false\n    });\n  }\n  _renderAtTopLeft() {\n    this._doRender({\n      lastRenderPosition: null,\n      top: 0,\n      left: 0,\n      width: this._textAreaWidth,\n      height: canUseZeroSizeTextarea ? 0 : 1,\n      useCover: true\n    });\n  }\n  _doRender(renderData) {\n    this._lastRenderPosition = renderData.lastRenderPosition;\n    const ta = this.textArea;\n    const tac = this.textAreaCover;\n    applyFontInfo(ta, this._fontInfo);\n    ta.setTop(renderData.top);\n    ta.setLeft(renderData.left);\n    ta.setWidth(renderData.width);\n    ta.setHeight(renderData.height);\n    ta.setLineHeight(renderData.height);\n    ta.setFontSize(renderData.fontSize ?? this._fontInfo.fontSize);\n    ta.setColor(renderData.color ? Color.Format.CSS.formatHex(renderData.color) : \"\");\n    ta.setFontStyle(renderData.italic ? \"italic\" : \"\");\n    if (renderData.bold) {\n      ta.setFontWeight(\"bold\");\n    }\n    ta.setTextDecoration(`${renderData.underline ? \" underline\" : \"\"}${renderData.strikethrough ? \" line-through\" : \"\"}`);\n    tac.setTop(renderData.useCover ? renderData.top : 0);\n    tac.setLeft(renderData.useCover ? renderData.left : 0);\n    tac.setWidth(renderData.useCover ? renderData.width : 0);\n    tac.setHeight(renderData.useCover ? renderData.height : 0);\n    const options2 = this._context.configuration.options;\n    if (options2.get(\n      66\n      /* EditorOption.glyphMargin */\n    )) {\n      tac.setClassName(\"monaco-editor-background textAreaCover \" + Margin.OUTER_CLASS_NAME);\n    } else {\n      if (options2.get(\n        76\n        /* EditorOption.lineNumbers */\n      ).renderType !== 0) {\n        tac.setClassName(\"monaco-editor-background textAreaCover \" + LineNumbersOverlay.CLASS_NAME);\n      } else {\n        tac.setClassName(\"monaco-editor-background textAreaCover\");\n      }\n    }\n  }\n};\nTextAreaEditContext = __decorate14([\n  __param12(4, IKeybindingService),\n  __param12(5, IInstantiationService)\n], TextAreaEditContext);\nfunction measureText(targetDocument, text2, fontInfo, tabSize) {\n  if (text2.length === 0) {\n    return 0;\n  }\n  const container = targetDocument.createElement(\"div\");\n  container.style.position = \"absolute\";\n  container.style.top = \"-50000px\";\n  container.style.width = \"50000px\";\n  const regularDomNode = targetDocument.createElement(\"span\");\n  applyFontInfo(regularDomNode, fontInfo);\n  regularDomNode.style.whiteSpace = \"pre\";\n  regularDomNode.style.tabSize = `${tabSize * fontInfo.spaceWidth}px`;\n  regularDomNode.append(text2);\n  container.appendChild(regularDomNode);\n  targetDocument.body.appendChild(container);\n  const res = regularDomNode.offsetWidth;\n  container.remove();\n  return res;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js\ninit_browser();\ninit_dom();\ninit_keyboardEvent();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/nativeEditContextUtils.js\ninit_dom();\ninit_lifecycle();\ninit_log();\nvar __decorate15 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param13 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar FocusTracker2 = class FocusTracker3 extends Disposable {\n  constructor(_logService, _domNode, _onFocusChange) {\n    super();\n    this._domNode = _domNode;\n    this._onFocusChange = _onFocusChange;\n    this._isFocused = false;\n    this._isPaused = false;\n    this._register(addDisposableListener(this._domNode, \"focus\", () =\u003e {\n      _logService.trace(\"NativeEditContext.focus\");\n      if (this._isPaused) {\n        return;\n      }\n      this.refreshFocusState();\n    }));\n    this._register(addDisposableListener(this._domNode, \"blur\", () =\u003e {\n      _logService.trace(\"NativeEditContext.blur\");\n      if (this._isPaused) {\n        return;\n      }\n      this._handleFocusedChanged(false);\n    }));\n  }\n  pause() {\n    this._isPaused = true;\n  }\n  resume() {\n    this._isPaused = false;\n    this.refreshFocusState();\n  }\n  _handleFocusedChanged(focused) {\n    if (this._isFocused === focused) {\n      return;\n    }\n    this._isFocused = focused;\n    this._onFocusChange(this._isFocused);\n  }\n  focus() {\n    this._domNode.focus();\n    this.refreshFocusState();\n  }\n  refreshFocusState() {\n    const shadowRoot = getShadowRoot(this._domNode);\n    const activeElement = shadowRoot ? shadowRoot.activeElement : getActiveElement();\n    const focused = this._domNode === activeElement;\n    this._handleFocusedChanged(focused);\n  }\n  get isFocused() {\n    return this._isFocused;\n  }\n};\nFocusTracker2 = __decorate15([\n  __param13(0, ILogService)\n], FocusTracker2);\nfunction editContextAddDisposableListener(target, type, listener, options2) {\n  target.addEventListener(type, listener, options2);\n  return {\n    dispose() {\n      target.removeEventListener(type, listener);\n    }\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/screenReaderSupport.js\ninit_lifecycle();\ninit_nls();\ninit_selection();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/screenReaderContentRich.js\ninit_dom();\ninit_range();\ninit_selection();\ninit_stringBuilder();\ninit_lifecycle();\nvar __decorate16 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param14 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ttPolicy = createTrustedTypesPolicy(\"richScreenReaderContent\", { createHTML: (value) =\u003e value });\nvar LINE_NUMBER_ATTRIBUTE = \"data-line-number\";\nvar RichScreenReaderContent = class RichScreenReaderContent2 extends Disposable {\n  constructor(_domNode, _context, _viewController, _accessibilityService) {\n    super();\n    this._domNode = _domNode;\n    this._context = _context;\n    this._viewController = _viewController;\n    this._accessibilityService = _accessibilityService;\n    this._selectionChangeListener = this._register(new MutableDisposable());\n    this._accessibilityPageSize = 1;\n    this._ignoreSelectionChangeTime = 0;\n    this._state = new RichScreenReaderState([]);\n    this._strategy = new RichPagedScreenReaderStrategy();\n    this._renderedLines = /* @__PURE__ */ new Map();\n    this._renderedSelection = new Selection(1, 1, 1, 1);\n    this.onConfigurationChanged(this._context.configuration.options);\n  }\n  updateScreenReaderContent(primarySelection) {\n    const focusedElement = getActiveWindow().document.activeElement;\n    if (!focusedElement || focusedElement !== this._domNode.domNode) {\n      return;\n    }\n    const isScreenReaderOptimized = this._accessibilityService.isScreenReaderOptimized();\n    if (isScreenReaderOptimized) {\n      const state = this._getScreenReaderContentLineIntervals(primarySelection);\n      if (!this._state.equals(state)) {\n        this._state = state;\n        this._renderedLines = this._renderScreenReaderContent(state);\n      }\n      if (!this._renderedSelection.equalsSelection(primarySelection)) {\n        this._renderedSelection = primarySelection;\n        this._setSelectionOnScreenReaderContent(this._context, this._renderedLines, primarySelection);\n      }\n    } else {\n      this._state = new RichScreenReaderState([]);\n      this._setIgnoreSelectionChangeTime(\"setValue\");\n      this._domNode.domNode.textContent = \"\";\n    }\n  }\n  updateScrollTop(primarySelection) {\n    const intervals = this._state.intervals;\n    if (!intervals.length) {\n      return;\n    }\n    const viewLayout = this._context.viewModel.viewLayout;\n    const stateStartLineNumber = intervals[0].startLine;\n    const verticalOffsetOfStateStartLineNumber = viewLayout.getVerticalOffsetForLineNumber(stateStartLineNumber);\n    const verticalOffsetOfPositionLineNumber = viewLayout.getVerticalOffsetForLineNumber(primarySelection.positionLineNumber);\n    this._domNode.domNode.scrollTop = verticalOffsetOfPositionLineNumber - verticalOffsetOfStateStartLineNumber;\n  }\n  onFocusChange(newFocusValue) {\n    if (newFocusValue) {\n      this._selectionChangeListener.value = this._setSelectionChangeListener();\n    } else {\n      this._selectionChangeListener.value = void 0;\n    }\n  }\n  onConfigurationChanged(options2) {\n    this._accessibilityPageSize = options2.get(\n      3\n      /* EditorOption.accessibilityPageSize */\n    );\n  }\n  onWillCut() {\n    this._setIgnoreSelectionChangeTime(\"onCut\");\n  }\n  onWillPaste() {\n    this._setIgnoreSelectionChangeTime(\"onWillPaste\");\n  }\n  // --- private methods\n  _setIgnoreSelectionChangeTime(reason) {\n    this._ignoreSelectionChangeTime = Date.now();\n  }\n  _setSelectionChangeListener() {\n    let previousSelectionChangeEventTime = 0;\n    return addDisposableListener(this._domNode.domNode.ownerDocument, \"selectionchange\", () =\u003e {\n      const activeElement = getActiveWindow().document.activeElement;\n      const isFocused = activeElement === this._domNode.domNode;\n      if (!isFocused) {\n        return;\n      }\n      const isScreenReaderOptimized = this._accessibilityService.isScreenReaderOptimized();\n      if (!isScreenReaderOptimized || !IME.enabled) {\n        return;\n      }\n      const now = Date.now();\n      const delta1 = now - previousSelectionChangeEventTime;\n      previousSelectionChangeEventTime = now;\n      if (delta1 \u003c 5) {\n        return;\n      }\n      const delta2 = now - this._ignoreSelectionChangeTime;\n      this._ignoreSelectionChangeTime = 0;\n      if (delta2 \u003c 100) {\n        return;\n      }\n      const selection = this._getEditorSelectionFromDomRange();\n      if (!selection) {\n        return;\n      }\n      this._viewController.setSelection(selection);\n    });\n  }\n  _renderScreenReaderContent(state) {\n    const nodes = [];\n    const renderedLines = /* @__PURE__ */ new Map();\n    for (const interval of state.intervals) {\n      for (let lineNumber = interval.startLine; lineNumber \u003c= interval.endLine; lineNumber++) {\n        const renderedLine = this._renderLine(lineNumber);\n        renderedLines.set(lineNumber, renderedLine);\n        nodes.push(renderedLine.domNode);\n      }\n    }\n    this._setIgnoreSelectionChangeTime(\"setValue\");\n    this._domNode.domNode.replaceChildren(...nodes);\n    return renderedLines;\n  }\n  _renderLine(viewLineNumber) {\n    const viewModel = this._context.viewModel;\n    const positionLineData = viewModel.getViewLineRenderingData(viewLineNumber);\n    const options2 = this._context.configuration.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const stopRenderingLineAfter = options2.get(\n      132\n      /* EditorOption.stopRenderingLineAfter */\n    );\n    const renderControlCharacters = options2.get(\n      107\n      /* EditorOption.renderControlCharacters */\n    );\n    const fontLigatures = options2.get(\n      60\n      /* EditorOption.fontLigatures */\n    );\n    const disableMonospaceOptimizations = options2.get(\n      40\n      /* EditorOption.disableMonospaceOptimizations */\n    );\n    const lineDecorations = LineDecoration.filter(positionLineData.inlineDecorations, viewLineNumber, positionLineData.minColumn, positionLineData.maxColumn);\n    const useMonospaceOptimizations = fontInfo.isMonospace \u0026\u0026 !disableMonospaceOptimizations;\n    const useFontLigatures = fontLigatures !== EditorFontLigatures.OFF;\n    let renderWhitespace;\n    const experimentalWhitespaceRendering = options2.get(\n      47\n      /* EditorOption.experimentalWhitespaceRendering */\n    );\n    if (experimentalWhitespaceRendering === \"off\") {\n      renderWhitespace = options2.get(\n        112\n        /* EditorOption.renderWhitespace */\n      );\n    } else {\n      renderWhitespace = \"none\";\n    }\n    const renderLineInput = new RenderLineInput(useMonospaceOptimizations, fontInfo.canUseHalfwidthRightwardsArrow, positionLineData.content, positionLineData.continuesWithWrappedLine, positionLineData.isBasicASCII, positionLineData.containsRTL, positionLineData.minColumn - 1, positionLineData.tokens, lineDecorations, positionLineData.tabSize, positionLineData.startVisibleColumn, fontInfo.spaceWidth, fontInfo.middotWidth, fontInfo.wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, useFontLigatures, null, null, 0, true);\n    const htmlBuilder = new StringBuilder(1e4);\n    const renderOutput = renderViewLine(renderLineInput, htmlBuilder);\n    const html3 = htmlBuilder.build();\n    const trustedhtml = ttPolicy?.createHTML(html3) ?? html3;\n    const lineHeight = viewModel.viewLayout.getLineHeightForLineNumber(viewLineNumber) + \"px\";\n    const domNode = document.createElement(\"div\");\n    domNode.innerHTML = trustedhtml;\n    domNode.style.lineHeight = lineHeight;\n    domNode.style.height = lineHeight;\n    domNode.setAttribute(LINE_NUMBER_ATTRIBUTE, viewLineNumber.toString());\n    return new RichRenderedScreenReaderLine(domNode, renderOutput.characterMapping);\n  }\n  _setSelectionOnScreenReaderContent(context, renderedLines, viewSelection) {\n    const activeDocument = getActiveWindow().document;\n    const activeDocumentSelection = activeDocument.getSelection();\n    if (!activeDocumentSelection) {\n      return;\n    }\n    const startLineNumber = viewSelection.startLineNumber;\n    const endLineNumber = viewSelection.endLineNumber;\n    const startRenderedLine = renderedLines.get(startLineNumber);\n    const endRenderedLine = renderedLines.get(endLineNumber);\n    if (!startRenderedLine || !endRenderedLine) {\n      return;\n    }\n    const viewModel = context.viewModel;\n    const model = viewModel.model;\n    const coordinatesConverter = viewModel.coordinatesConverter;\n    const startRange = new Range(startLineNumber, 1, startLineNumber, viewSelection.selectionStartColumn);\n    const modelStartRange = coordinatesConverter.convertViewRangeToModelRange(startRange);\n    const characterCountForStart = model.getCharacterCountInRange(modelStartRange);\n    const endRange = new Range(endLineNumber, 1, endLineNumber, viewSelection.positionColumn);\n    const modelEndRange = coordinatesConverter.convertViewRangeToModelRange(endRange);\n    const characterCountForEnd = model.getCharacterCountInRange(modelEndRange);\n    const startDomPosition = startRenderedLine.characterMapping.getDomPosition(characterCountForStart);\n    const endDomPosition = endRenderedLine.characterMapping.getDomPosition(characterCountForEnd);\n    const startDomNode = startRenderedLine.domNode.firstChild;\n    const endDomNode = endRenderedLine.domNode.firstChild;\n    const startChildren = startDomNode.childNodes;\n    const endChildren = endDomNode.childNodes;\n    const startNode = startChildren.item(startDomPosition.partIndex);\n    const endNode = endChildren.item(endDomPosition.partIndex);\n    if (!startNode.firstChild || !endNode.firstChild) {\n      return;\n    }\n    this._setIgnoreSelectionChangeTime(\"setRange\");\n    activeDocumentSelection.setBaseAndExtent(startNode.firstChild, viewSelection.startColumn === 1 ? 0 : startDomPosition.charIndex + 1, endNode.firstChild, viewSelection.endColumn === 1 ? 0 : endDomPosition.charIndex + 1);\n  }\n  _getScreenReaderContentLineIntervals(primarySelection) {\n    return this._strategy.fromEditorSelection(this._context.viewModel, primarySelection, this._accessibilityPageSize);\n  }\n  _getEditorSelectionFromDomRange() {\n    if (!this._renderedLines) {\n      return;\n    }\n    const selection = getActiveWindow().document.getSelection();\n    if (!selection) {\n      return;\n    }\n    const rangeCount = selection.rangeCount;\n    if (rangeCount === 0) {\n      return;\n    }\n    const range2 = selection.getRangeAt(0);\n    const startContainer = range2.startContainer;\n    const endContainer = range2.endContainer;\n    const startSpanElement = startContainer.parentElement;\n    const endSpanElement = endContainer.parentElement;\n    if (!startSpanElement || !isHTMLElement(startSpanElement) || !endSpanElement || !isHTMLElement(endSpanElement)) {\n      return;\n    }\n    const startLineDomNode = startSpanElement.parentElement?.parentElement;\n    const endLineDomNode = endSpanElement.parentElement?.parentElement;\n    if (!startLineDomNode || !endLineDomNode) {\n      return;\n    }\n    const startLineNumberAttribute = startLineDomNode.getAttribute(LINE_NUMBER_ATTRIBUTE);\n    const endLineNumberAttribute = endLineDomNode.getAttribute(LINE_NUMBER_ATTRIBUTE);\n    if (!startLineNumberAttribute || !endLineNumberAttribute) {\n      return;\n    }\n    const startLineNumber = parseInt(startLineNumberAttribute);\n    const endLineNumber = parseInt(endLineNumberAttribute);\n    const startMapping = this._renderedLines.get(startLineNumber)?.characterMapping;\n    const endMapping = this._renderedLines.get(endLineNumber)?.characterMapping;\n    if (!startMapping || !endMapping) {\n      return;\n    }\n    const startColumn = getColumnOfNodeOffset(startMapping, startSpanElement, range2.startOffset);\n    const endColumn = getColumnOfNodeOffset(endMapping, endSpanElement, range2.endOffset);\n    if (selection.direction === \"forward\") {\n      return new Selection(startLineNumber, startColumn, endLineNumber, endColumn);\n    } else {\n      return new Selection(endLineNumber, endColumn, startLineNumber, startColumn);\n    }\n  }\n};\nRichScreenReaderContent = __decorate16([\n  __param14(3, IAccessibilityService)\n], RichScreenReaderContent);\nvar RichRenderedScreenReaderLine = class {\n  constructor(domNode, characterMapping) {\n    this.domNode = domNode;\n    this.characterMapping = characterMapping;\n  }\n};\nvar LineInterval = class {\n  constructor(startLine, endLine) {\n    this.startLine = startLine;\n    this.endLine = endLine;\n  }\n};\nvar RichScreenReaderState = class {\n  constructor(intervals) {\n    this.intervals = intervals;\n  }\n  equals(other) {\n    if (this.intervals.length !== other.intervals.length) {\n      return false;\n    }\n    for (let i2 = 0; i2 \u003c this.intervals.length; i2++) {\n      if (this.intervals[i2].startLine !== other.intervals[i2].startLine || this.intervals[i2].endLine !== other.intervals[i2].endLine) {\n        return false;\n      }\n    }\n    return true;\n  }\n};\nvar RichPagedScreenReaderStrategy = class {\n  constructor() {\n  }\n  _getPageOfLine(lineNumber, linesPerPage) {\n    return Math.floor((lineNumber - 1) / linesPerPage);\n  }\n  _getRangeForPage(context, page, linesPerPage) {\n    const offset = page * linesPerPage;\n    const startLineNumber = offset + 1;\n    const endLineNumber = Math.min(offset + linesPerPage, context.getLineCount());\n    return new LineInterval(startLineNumber, endLineNumber);\n  }\n  fromEditorSelection(context, viewSelection, linesPerPage) {\n    const selectionStartPage = this._getPageOfLine(viewSelection.startLineNumber, linesPerPage);\n    const selectionStartPageRange = this._getRangeForPage(context, selectionStartPage, linesPerPage);\n    const selectionEndPage = this._getPageOfLine(viewSelection.endLineNumber, linesPerPage);\n    const selectionEndPageRange = this._getRangeForPage(context, selectionEndPage, linesPerPage);\n    const lineIntervals = [{ startLine: selectionStartPageRange.startLine, endLine: selectionStartPageRange.endLine }];\n    if (selectionStartPage + 1 \u003c selectionEndPage) {\n      lineIntervals.push({ startLine: selectionEndPageRange.startLine, endLine: selectionEndPageRange.endLine });\n    }\n    return new RichScreenReaderState(lineIntervals);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/screenReaderContentSimple.js\ninit_dom();\ninit_selection();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/edits/stringEdit.js\ninit_strings();\ninit_offsetRange();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/edits/edit.js\ninit_errors();\ninit_offsetRange();\nvar BaseEdit = class {\n  constructor(replacements) {\n    this.replacements = replacements;\n    let lastEndEx = -1;\n    for (const replacement of replacements) {\n      if (!(replacement.replaceRange.start \u003e= lastEndEx)) {\n        throw new BugIndicatingError(`Edits must be disjoint and sorted. Found ${replacement} after ${lastEndEx}`);\n      }\n      lastEndEx = replacement.replaceRange.endExclusive;\n    }\n  }\n  toString() {\n    const edits = this.replacements.map((e) =\u003e e.toString()).join(\", \");\n    return `[${edits}]`;\n  }\n  /**\n   * Normalizes the edit by removing empty replacements and joining touching replacements (if the replacements allow joining).\n   * Two edits have an equal normalized edit if and only if they have the same effect on any input.\n   *\n   * ![](https://raw.githubusercontent.com/microsoft/vscode/refs/heads/main/src/vs/editor/common/core/edits/docs/BaseEdit_normalize.drawio.png)\n   *\n   * Invariant:\n   * ```\n   * (forall base: TEdit.apply(base).equals(other.apply(base))) \u003c-\u003e this.normalize().equals(other.normalize())\n   * ```\n   * and\n   * ```\n   * forall base: TEdit.apply(base).equals(this.normalize().apply(base))\n   * ```\n   *\n   */\n  normalize() {\n    const newReplacements = [];\n    let lastReplacement;\n    for (const r of this.replacements) {\n      if (r.getNewLength() === 0 \u0026\u0026 r.replaceRange.length === 0) {\n        continue;\n      }\n      if (lastReplacement \u0026\u0026 lastReplacement.replaceRange.endExclusive === r.replaceRange.start) {\n        const joined = lastReplacement.tryJoinTouching(r);\n        if (joined) {\n          lastReplacement = joined;\n          continue;\n        }\n      }\n      if (lastReplacement) {\n        newReplacements.push(lastReplacement);\n      }\n      lastReplacement = r;\n    }\n    if (lastReplacement) {\n      newReplacements.push(lastReplacement);\n    }\n    return this._createNew(newReplacements);\n  }\n  /**\n   * Combines two edits into one with the same effect.\n   *\n   * ![](https://raw.githubusercontent.com/microsoft/vscode/refs/heads/main/src/vs/editor/common/core/edits/docs/BaseEdit_compose.drawio.png)\n   *\n   * Invariant:\n   * ```\n   * other.apply(this.apply(s0)) = this.compose(other).apply(s0)\n   * ```\n   */\n  compose(other) {\n    const edits1 = this.normalize();\n    const edits2 = other.normalize();\n    if (edits1.isEmpty()) {\n      return edits2;\n    }\n    if (edits2.isEmpty()) {\n      return edits1;\n    }\n    const edit1Queue = [...edits1.replacements];\n    const result = [];\n    let edit1ToEdit2 = 0;\n    for (const r2 of edits2.replacements) {\n      while (true) {\n        const r1 = edit1Queue[0];\n        if (!r1 || r1.replaceRange.start + edit1ToEdit2 + r1.getNewLength() \u003e= r2.replaceRange.start) {\n          break;\n        }\n        edit1Queue.shift();\n        result.push(r1);\n        edit1ToEdit2 += r1.getNewLength() - r1.replaceRange.length;\n      }\n      const firstEdit1ToEdit2 = edit1ToEdit2;\n      let firstIntersecting;\n      let lastIntersecting;\n      while (true) {\n        const r1 = edit1Queue[0];\n        if (!r1 || r1.replaceRange.start + edit1ToEdit2 \u003e r2.replaceRange.endExclusive) {\n          break;\n        }\n        if (!firstIntersecting) {\n          firstIntersecting = r1;\n        }\n        lastIntersecting = r1;\n        edit1Queue.shift();\n        edit1ToEdit2 += r1.getNewLength() - r1.replaceRange.length;\n      }\n      if (!firstIntersecting) {\n        result.push(r2.delta(-edit1ToEdit2));\n      } else {\n        const newReplaceRangeStart = Math.min(firstIntersecting.replaceRange.start, r2.replaceRange.start - firstEdit1ToEdit2);\n        const prefixLength = r2.replaceRange.start - (firstIntersecting.replaceRange.start + firstEdit1ToEdit2);\n        if (prefixLength \u003e 0) {\n          const prefix = firstIntersecting.slice(OffsetRange.emptyAt(newReplaceRangeStart), new OffsetRange(0, prefixLength));\n          result.push(prefix);\n        }\n        if (!lastIntersecting) {\n          throw new BugIndicatingError(`Invariant violation: lastIntersecting is undefined`);\n        }\n        const suffixLength = lastIntersecting.replaceRange.endExclusive + edit1ToEdit2 - r2.replaceRange.endExclusive;\n        if (suffixLength \u003e 0) {\n          const e = lastIntersecting.slice(OffsetRange.ofStartAndLength(lastIntersecting.replaceRange.endExclusive, 0), new OffsetRange(lastIntersecting.getNewLength() - suffixLength, lastIntersecting.getNewLength()));\n          edit1Queue.unshift(e);\n          edit1ToEdit2 -= e.getNewLength() - e.replaceRange.length;\n        }\n        const newReplaceRange = new OffsetRange(newReplaceRangeStart, r2.replaceRange.endExclusive - edit1ToEdit2);\n        const middle = r2.slice(newReplaceRange, new OffsetRange(0, r2.getNewLength()));\n        result.push(middle);\n      }\n    }\n    while (true) {\n      const item = edit1Queue.shift();\n      if (!item) {\n        break;\n      }\n      result.push(item);\n    }\n    return this._createNew(result).normalize();\n  }\n  /**\n   * Returns the range of each replacement in the applied value.\n  */\n  getNewRanges() {\n    const ranges = [];\n    let offset = 0;\n    for (const e of this.replacements) {\n      ranges.push(OffsetRange.ofStartAndLength(e.replaceRange.start + offset, e.getNewLength()));\n      offset += e.getLengthDelta();\n    }\n    return ranges;\n  }\n  isEmpty() {\n    return this.replacements.length === 0;\n  }\n};\nvar BaseReplacement = class {\n  constructor(replaceRange) {\n    this.replaceRange = replaceRange;\n  }\n  delta(offset) {\n    return this.slice(this.replaceRange.delta(offset), new OffsetRange(0, this.getNewLength()));\n  }\n  getLengthDelta() {\n    return this.getNewLength() - this.replaceRange.length;\n  }\n  toString() {\n    return `{ ${this.replaceRange.toString()} -\u003e ${this.getNewLength()} }`;\n  }\n  get isEmpty() {\n    return this.getNewLength() === 0 \u0026\u0026 this.replaceRange.length === 0;\n  }\n  getRangeAfterReplace() {\n    return new OffsetRange(this.replaceRange.start, this.replaceRange.start + this.getNewLength());\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/edits/stringEdit.js\nvar BaseStringEdit = class extends BaseEdit {\n  apply(base) {\n    const resultText = [];\n    let pos = 0;\n    for (const edit2 of this.replacements) {\n      resultText.push(base.substring(pos, edit2.replaceRange.start));\n      resultText.push(edit2.newText);\n      pos = edit2.replaceRange.endExclusive;\n    }\n    resultText.push(base.substring(pos));\n    return resultText.join(\"\");\n  }\n};\nvar BaseStringReplacement = class extends BaseReplacement {\n  constructor(range2, newText) {\n    super(range2);\n    this.newText = newText;\n  }\n  getNewLength() {\n    return this.newText.length;\n  }\n  toString() {\n    return `${this.replaceRange} -\u003e ${JSON.stringify(this.newText)}`;\n  }\n  replace(str) {\n    return str.substring(0, this.replaceRange.start) + this.newText + str.substring(this.replaceRange.endExclusive);\n  }\n  removeCommonSuffixPrefix(originalText) {\n    const oldText = originalText.substring(this.replaceRange.start, this.replaceRange.endExclusive);\n    const prefixLen = commonPrefixLength(oldText, this.newText);\n    const suffixLen = Math.min(oldText.length - prefixLen, this.newText.length - prefixLen, commonSuffixLength(oldText, this.newText));\n    const replaceRange = new OffsetRange(this.replaceRange.start + prefixLen, this.replaceRange.endExclusive - suffixLen);\n    const newText = this.newText.substring(prefixLen, this.newText.length - suffixLen);\n    return new StringReplacement(replaceRange, newText);\n  }\n  removeCommonSuffixAndPrefix(source) {\n    return this.removeCommonSuffix(source).removeCommonPrefix(source);\n  }\n  removeCommonPrefix(source) {\n    const oldText = this.replaceRange.substring(source);\n    const prefixLen = commonPrefixLength(oldText, this.newText);\n    if (prefixLen === 0) {\n      return this;\n    }\n    return this.slice(this.replaceRange.deltaStart(prefixLen), new OffsetRange(prefixLen, this.newText.length));\n  }\n  removeCommonSuffix(source) {\n    const oldText = this.replaceRange.substring(source);\n    const suffixLen = commonSuffixLength(oldText, this.newText);\n    if (suffixLen === 0) {\n      return this;\n    }\n    return this.slice(this.replaceRange.deltaEnd(-suffixLen), new OffsetRange(0, this.newText.length - suffixLen));\n  }\n  toJson() {\n    return {\n      txt: this.newText,\n      pos: this.replaceRange.start,\n      len: this.replaceRange.length\n    };\n  }\n};\nvar StringEdit = class _StringEdit extends BaseStringEdit {\n  static {\n    this.empty = new _StringEdit([]);\n  }\n  static compose(edits) {\n    if (edits.length === 0) {\n      return _StringEdit.empty;\n    }\n    let result = edits[0];\n    for (let i2 = 1; i2 \u003c edits.length; i2++) {\n      result = result.compose(edits[i2]);\n    }\n    return result;\n  }\n  constructor(replacements) {\n    super(replacements);\n  }\n  _createNew(replacements) {\n    return new _StringEdit(replacements);\n  }\n};\nvar StringReplacement = class _StringReplacement extends BaseStringReplacement {\n  static insert(offset, text2) {\n    return new _StringReplacement(OffsetRange.emptyAt(offset), text2);\n  }\n  static replace(range2, text2) {\n    return new _StringReplacement(range2, text2);\n  }\n  equals(other) {\n    return this.replaceRange.equals(other.replaceRange) \u0026\u0026 this.newText === other.newText;\n  }\n  tryJoinTouching(other) {\n    return new _StringReplacement(this.replaceRange.joinRightTouching(other.replaceRange), this.newText + other.newText);\n  }\n  slice(range2, rangeInReplacement) {\n    return new _StringReplacement(range2, rangeInReplacement ? rangeInReplacement.substring(this.newText) : this.newText);\n  }\n};\nfunction applyEditsToRanges(sortedRanges, edit2) {\n  sortedRanges = sortedRanges.slice();\n  const result = [];\n  let offset = 0;\n  for (const e of edit2.replacements) {\n    while (true) {\n      const r = sortedRanges[0];\n      if (!r || r.endExclusive \u003e= e.replaceRange.start) {\n        break;\n      }\n      sortedRanges.shift();\n      result.push(r.delta(offset));\n    }\n    const intersecting = [];\n    while (true) {\n      const r = sortedRanges[0];\n      if (!r || !r.intersectsOrTouches(e.replaceRange)) {\n        break;\n      }\n      sortedRanges.shift();\n      intersecting.push(r);\n    }\n    for (let i2 = intersecting.length - 1; i2 \u003e= 0; i2--) {\n      let r = intersecting[i2];\n      const overlap = r.intersect(e.replaceRange).length;\n      r = r.deltaEnd(-overlap + (i2 === 0 ? e.newText.length : 0));\n      const rangeAheadOfReplaceRange = r.start - e.replaceRange.start;\n      if (rangeAheadOfReplaceRange \u003e 0) {\n        r = r.delta(-rangeAheadOfReplaceRange);\n      }\n      if (i2 !== 0) {\n        r = r.delta(e.newText.length);\n      }\n      r = r.delta(-(e.newText.length - e.replaceRange.length));\n      sortedRanges.unshift(r);\n    }\n    offset += e.newText.length - e.replaceRange.length;\n  }\n  while (true) {\n    const r = sortedRanges[0];\n    if (!r) {\n      break;\n    }\n    sortedRanges.shift();\n    result.push(r.delta(offset));\n  }\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/edits/textEdit.js\ninit_arrays();\ninit_assert();\ninit_errors();\ninit_strings();\ninit_position();\ninit_range();\ninit_textLength();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/text/abstractText.js\ninit_assert();\ninit_position();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/text/positionToOffsetImpl.js\ninit_arraysFind();\ninit_offsetRange();\ninit_position();\ninit_range();\nvar PositionOffsetTransformerBase = class {\n  getOffsetRange(range2) {\n    return new OffsetRange(this.getOffset(range2.getStartPosition()), this.getOffset(range2.getEndPosition()));\n  }\n  getRange(offsetRange) {\n    return Range.fromPositions(this.getPosition(offsetRange.start), this.getPosition(offsetRange.endExclusive));\n  }\n  getStringReplacement(edit2) {\n    return new Deps.deps.StringReplacement(this.getOffsetRange(edit2.range), edit2.text);\n  }\n  getTextReplacement(edit2) {\n    return new Deps.deps.TextReplacement(this.getRange(edit2.replaceRange), edit2.newText);\n  }\n  getTextEdit(edit2) {\n    const edits = edit2.replacements.map((e) =\u003e this.getTextReplacement(e));\n    return new Deps.deps.TextEdit(edits);\n  }\n};\nvar Deps = class {\n  static {\n    this._deps = void 0;\n  }\n  static get deps() {\n    if (!this._deps) {\n      throw new Error(\"Dependencies not set. Call _setDependencies first.\");\n    }\n    return this._deps;\n  }\n};\nfunction _setPositionOffsetTransformerDependencies(deps) {\n  Deps._deps = deps;\n}\nvar PositionOffsetTransformer = class extends PositionOffsetTransformerBase {\n  constructor(text2) {\n    super();\n    this.text = text2;\n    this.lineStartOffsetByLineIdx = [];\n    this.lineEndOffsetByLineIdx = [];\n    this.lineStartOffsetByLineIdx.push(0);\n    for (let i2 = 0; i2 \u003c text2.length; i2++) {\n      if (text2.charAt(i2) === \"\\n\") {\n        this.lineStartOffsetByLineIdx.push(i2 + 1);\n        if (i2 \u003e 0 \u0026\u0026 text2.charAt(i2 - 1) === \"\\r\") {\n          this.lineEndOffsetByLineIdx.push(i2 - 1);\n        } else {\n          this.lineEndOffsetByLineIdx.push(i2);\n        }\n      }\n    }\n    this.lineEndOffsetByLineIdx.push(text2.length);\n  }\n  getOffset(position) {\n    const valPos = this._validatePosition(position);\n    return this.lineStartOffsetByLineIdx[valPos.lineNumber - 1] + valPos.column - 1;\n  }\n  _validatePosition(position) {\n    if (position.lineNumber \u003c 1) {\n      return new Position(1, 1);\n    }\n    const lineCount = this.textLength.lineCount + 1;\n    if (position.lineNumber \u003e lineCount) {\n      const lineLength2 = this.getLineLength(lineCount);\n      return new Position(lineCount, lineLength2 + 1);\n    }\n    if (position.column \u003c 1) {\n      return new Position(position.lineNumber, 1);\n    }\n    const lineLength = this.getLineLength(position.lineNumber);\n    if (position.column - 1 \u003e lineLength) {\n      return new Position(position.lineNumber, lineLength + 1);\n    }\n    return position;\n  }\n  getPosition(offset) {\n    const idx = findLastIdxMonotonous(this.lineStartOffsetByLineIdx, (i2) =\u003e i2 \u003c= offset);\n    const lineNumber = idx + 1;\n    const column = offset - this.lineStartOffsetByLineIdx[idx] + 1;\n    return new Position(lineNumber, column);\n  }\n  get textLength() {\n    const lineIdx = this.lineStartOffsetByLineIdx.length - 1;\n    return new Deps.deps.TextLength(lineIdx, this.text.length - this.lineStartOffsetByLineIdx[lineIdx]);\n  }\n  getLineLength(lineNumber) {\n    return this.lineEndOffsetByLineIdx[lineNumber - 1] - this.lineStartOffsetByLineIdx[lineNumber - 1];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/text/abstractText.js\ninit_range();\ninit_textLength();\nvar AbstractText = class {\n  constructor() {\n    this._transformer = void 0;\n  }\n  get endPositionExclusive() {\n    return this.length.addToPosition(new Position(1, 1));\n  }\n  get lineRange() {\n    return this.length.toLineRange();\n  }\n  getValue() {\n    return this.getValueOfRange(this.length.toRange());\n  }\n  getValueOfOffsetRange(range2) {\n    return this.getValueOfRange(this.getTransformer().getRange(range2));\n  }\n  getLineLength(lineNumber) {\n    return this.getValueOfRange(new Range(lineNumber, 1, lineNumber, Number.MAX_SAFE_INTEGER)).length;\n  }\n  getTransformer() {\n    if (!this._transformer) {\n      this._transformer = new PositionOffsetTransformer(this.getValue());\n    }\n    return this._transformer;\n  }\n  getLineAt(lineNumber) {\n    return this.getValueOfRange(new Range(lineNumber, 1, lineNumber, Number.MAX_SAFE_INTEGER));\n  }\n};\nvar LineBasedText = class extends AbstractText {\n  constructor(_getLineContent, _lineCount) {\n    assert(_lineCount \u003e= 1);\n    super();\n    this._getLineContent = _getLineContent;\n    this._lineCount = _lineCount;\n  }\n  getValueOfRange(range2) {\n    if (range2.startLineNumber === range2.endLineNumber) {\n      return this._getLineContent(range2.startLineNumber).substring(range2.startColumn - 1, range2.endColumn - 1);\n    }\n    let result = this._getLineContent(range2.startLineNumber).substring(range2.startColumn - 1);\n    for (let i2 = range2.startLineNumber + 1; i2 \u003c range2.endLineNumber; i2++) {\n      result += \"\\n\" + this._getLineContent(i2);\n    }\n    result += \"\\n\" + this._getLineContent(range2.endLineNumber).substring(0, range2.endColumn - 1);\n    return result;\n  }\n  getLineLength(lineNumber) {\n    return this._getLineContent(lineNumber).length;\n  }\n  get length() {\n    const lastLine = this._getLineContent(this._lineCount);\n    return new TextLength(this._lineCount - 1, lastLine.length);\n  }\n};\nvar ArrayText = class extends LineBasedText {\n  constructor(lines) {\n    super((lineNumber) =\u003e lines[lineNumber - 1], lines.length);\n  }\n};\nvar StringText = class extends AbstractText {\n  constructor(value) {\n    super();\n    this.value = value;\n    this._t = new PositionOffsetTransformer(this.value);\n  }\n  getValueOfRange(range2) {\n    return this._t.getOffsetRange(range2).substring(this.value);\n  }\n  get length() {\n    return this._t.textLength;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/edits/textEdit.js\nvar TextEdit = class _TextEdit {\n  static fromStringEdit(edit2, initialState) {\n    const edits = edit2.replacements.map((e) =\u003e TextReplacement.fromStringReplacement(e, initialState));\n    return new _TextEdit(edits);\n  }\n  static fromParallelReplacementsUnsorted(replacements) {\n    const r = replacements.slice().sort(compareBy((i2) =\u003e i2.range, Range.compareRangesUsingStarts));\n    return new _TextEdit(r);\n  }\n  constructor(replacements) {\n    this.replacements = replacements;\n    assertFn(() =\u003e checkAdjacentItems(replacements, (a, b) =\u003e a.range.getEndPosition().isBeforeOrEqual(b.range.getStartPosition())));\n  }\n  mapPosition(position) {\n    let lineDelta = 0;\n    let curLine = 0;\n    let columnDeltaInCurLine = 0;\n    for (const replacement of this.replacements) {\n      const start = replacement.range.getStartPosition();\n      if (position.isBeforeOrEqual(start)) {\n        break;\n      }\n      const end = replacement.range.getEndPosition();\n      const len = TextLength.ofText(replacement.text);\n      if (position.isBefore(end)) {\n        const startPos = new Position(start.lineNumber + lineDelta, start.column + (start.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n        const endPos = len.addToPosition(startPos);\n        return rangeFromPositions(startPos, endPos);\n      }\n      if (start.lineNumber + lineDelta !== curLine) {\n        columnDeltaInCurLine = 0;\n      }\n      lineDelta += len.lineCount - (replacement.range.endLineNumber - replacement.range.startLineNumber);\n      if (len.lineCount === 0) {\n        if (end.lineNumber !== start.lineNumber) {\n          columnDeltaInCurLine += len.columnCount - (end.column - 1);\n        } else {\n          columnDeltaInCurLine += len.columnCount - (end.column - start.column);\n        }\n      } else {\n        columnDeltaInCurLine = len.columnCount;\n      }\n      curLine = end.lineNumber + lineDelta;\n    }\n    return new Position(position.lineNumber + lineDelta, position.column + (position.lineNumber + lineDelta === curLine ? columnDeltaInCurLine : 0));\n  }\n  mapRange(range2) {\n    function getStart(p) {\n      return p instanceof Position ? p : p.getStartPosition();\n    }\n    function getEnd(p) {\n      return p instanceof Position ? p : p.getEndPosition();\n    }\n    const start = getStart(this.mapPosition(range2.getStartPosition()));\n    const end = getEnd(this.mapPosition(range2.getEndPosition()));\n    return rangeFromPositions(start, end);\n  }\n  apply(text2) {\n    let result = \"\";\n    let lastEditEnd = new Position(1, 1);\n    for (const replacement of this.replacements) {\n      const editRange = replacement.range;\n      const editStart = editRange.getStartPosition();\n      const editEnd = editRange.getEndPosition();\n      const r2 = rangeFromPositions(lastEditEnd, editStart);\n      if (!r2.isEmpty()) {\n        result += text2.getValueOfRange(r2);\n      }\n      result += replacement.text;\n      lastEditEnd = editEnd;\n    }\n    const r = rangeFromPositions(lastEditEnd, text2.endPositionExclusive);\n    if (!r.isEmpty()) {\n      result += text2.getValueOfRange(r);\n    }\n    return result;\n  }\n  applyToString(str) {\n    const strText = new StringText(str);\n    return this.apply(strText);\n  }\n  getNewRanges() {\n    const newRanges = [];\n    let previousEditEndLineNumber = 0;\n    let lineOffset = 0;\n    let columnOffset = 0;\n    for (const replacement of this.replacements) {\n      const textLength = TextLength.ofText(replacement.text);\n      const newRangeStart = Position.lift({\n        lineNumber: replacement.range.startLineNumber + lineOffset,\n        column: replacement.range.startColumn + (replacement.range.startLineNumber === previousEditEndLineNumber ? columnOffset : 0)\n      });\n      const newRange = textLength.createRange(newRangeStart);\n      newRanges.push(newRange);\n      lineOffset = newRange.endLineNumber - replacement.range.endLineNumber;\n      columnOffset = newRange.endColumn - replacement.range.endColumn;\n      previousEditEndLineNumber = replacement.range.endLineNumber;\n    }\n    return newRanges;\n  }\n  toReplacement(text2) {\n    if (this.replacements.length === 0) {\n      throw new BugIndicatingError();\n    }\n    if (this.replacements.length === 1) {\n      return this.replacements[0];\n    }\n    const startPos = this.replacements[0].range.getStartPosition();\n    const endPos = this.replacements[this.replacements.length - 1].range.getEndPosition();\n    let newText = \"\";\n    for (let i2 = 0; i2 \u003c this.replacements.length; i2++) {\n      const curEdit = this.replacements[i2];\n      newText += curEdit.text;\n      if (i2 \u003c this.replacements.length - 1) {\n        const nextEdit = this.replacements[i2 + 1];\n        const gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n        const gapText = text2.getValueOfRange(gapRange);\n        newText += gapText;\n      }\n    }\n    return new TextReplacement(Range.fromPositions(startPos, endPos), newText);\n  }\n  toString(text2) {\n    if (text2 === void 0) {\n      return this.replacements.map((edit2) =\u003e edit2.toString()).join(\"\\n\");\n    }\n    if (typeof text2 === \"string\") {\n      return this.toString(new StringText(text2));\n    }\n    if (this.replacements.length === 0) {\n      return \"\";\n    }\n    return this.replacements.map((r) =\u003e {\n      const maxLength = 10;\n      const originalText = text2.getValueOfRange(r.range);\n      const beforeRange = Range.fromPositions(new Position(Math.max(1, r.range.startLineNumber - 1), 1), r.range.getStartPosition());\n      let beforeText = text2.getValueOfRange(beforeRange);\n      if (beforeText.length \u003e maxLength) {\n        beforeText = \"...\" + beforeText.substring(beforeText.length - maxLength);\n      }\n      const afterRange = Range.fromPositions(r.range.getEndPosition(), new Position(r.range.endLineNumber + 1, 1));\n      let afterText = text2.getValueOfRange(afterRange);\n      if (afterText.length \u003e maxLength) {\n        afterText = afterText.substring(0, maxLength) + \"...\";\n      }\n      let replacedText = originalText;\n      if (replacedText.length \u003e maxLength) {\n        const halfMax = Math.floor(maxLength / 2);\n        replacedText = replacedText.substring(0, halfMax) + \"...\" + replacedText.substring(replacedText.length - halfMax);\n      }\n      let newText = r.text;\n      if (newText.length \u003e maxLength) {\n        const halfMax = Math.floor(maxLength / 2);\n        newText = newText.substring(0, halfMax) + \"...\" + newText.substring(newText.length - halfMax);\n      }\n      if (replacedText.length === 0) {\n        return `${beforeText}\\u2770${newText}\\u2771${afterText}`;\n      }\n      return `${beforeText}\\u2770${replacedText}\\u21A6${newText}\\u2771${afterText}`;\n    }).join(\"\\n\");\n  }\n};\nvar TextReplacement = class _TextReplacement {\n  static joinReplacements(replacements, initialValue) {\n    if (replacements.length === 0) {\n      throw new BugIndicatingError();\n    }\n    if (replacements.length === 1) {\n      return replacements[0];\n    }\n    const startPos = replacements[0].range.getStartPosition();\n    const endPos = replacements[replacements.length - 1].range.getEndPosition();\n    let newText = \"\";\n    for (let i2 = 0; i2 \u003c replacements.length; i2++) {\n      const curEdit = replacements[i2];\n      newText += curEdit.text;\n      if (i2 \u003c replacements.length - 1) {\n        const nextEdit = replacements[i2 + 1];\n        const gapRange = Range.fromPositions(curEdit.range.getEndPosition(), nextEdit.range.getStartPosition());\n        const gapText = initialValue.getValueOfRange(gapRange);\n        newText += gapText;\n      }\n    }\n    return new _TextReplacement(Range.fromPositions(startPos, endPos), newText);\n  }\n  static fromStringReplacement(replacement, initialState) {\n    return new _TextReplacement(initialState.getTransformer().getRange(replacement.replaceRange), replacement.newText);\n  }\n  static delete(range2) {\n    return new _TextReplacement(range2, \"\");\n  }\n  constructor(range2, text2) {\n    this.range = range2;\n    this.text = text2;\n  }\n  get isEmpty() {\n    return this.range.isEmpty() \u0026\u0026 this.text.length === 0;\n  }\n  static equals(first2, second) {\n    return first2.range.equalsRange(second.range) \u0026\u0026 first2.text === second.text;\n  }\n  equals(other) {\n    return _TextReplacement.equals(this, other);\n  }\n  removeCommonPrefixAndSuffix(text2) {\n    const prefix = this.removeCommonPrefix(text2);\n    const suffix = prefix.removeCommonSuffix(text2);\n    return suffix;\n  }\n  removeCommonPrefix(text2) {\n    const normalizedOriginalText = text2.getValueOfRange(this.range).replaceAll(\"\\r\\n\", \"\\n\");\n    const normalizedModifiedText = this.text.replaceAll(\"\\r\\n\", \"\\n\");\n    const commonPrefixLen = commonPrefixLength(normalizedOriginalText, normalizedModifiedText);\n    const start = TextLength.ofText(normalizedOriginalText.substring(0, commonPrefixLen)).addToPosition(this.range.getStartPosition());\n    const newText = normalizedModifiedText.substring(commonPrefixLen);\n    const range2 = Range.fromPositions(start, this.range.getEndPosition());\n    return new _TextReplacement(range2, newText);\n  }\n  removeCommonSuffix(text2) {\n    const normalizedOriginalText = text2.getValueOfRange(this.range).replaceAll(\"\\r\\n\", \"\\n\");\n    const normalizedModifiedText = this.text.replaceAll(\"\\r\\n\", \"\\n\");\n    const commonSuffixLen = commonSuffixLength(normalizedOriginalText, normalizedModifiedText);\n    const end = TextLength.ofText(normalizedOriginalText.substring(0, normalizedOriginalText.length - commonSuffixLen)).addToPosition(this.range.getStartPosition());\n    const newText = normalizedModifiedText.substring(0, normalizedModifiedText.length - commonSuffixLen);\n    const range2 = Range.fromPositions(this.range.getStartPosition(), end);\n    return new _TextReplacement(range2, newText);\n  }\n  toString() {\n    const start = this.range.getStartPosition();\n    const end = this.range.getEndPosition();\n    return `(${start.lineNumber},${start.column} -\u003e ${end.lineNumber},${end.column}): \"${this.text}\"`;\n  }\n};\nfunction rangeFromPositions(start, end) {\n  if (start.lineNumber === end.lineNumber \u0026\u0026 start.column === Number.MAX_SAFE_INTEGER) {\n    return Range.fromPositions(end, end);\n  } else if (!start.isBeforeOrEqual(end)) {\n    throw new BugIndicatingError(\"start must be before end\");\n  }\n  return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/text/positionToOffset.js\ninit_textLength();\n_setPositionOffsetTransformerDependencies({\n  StringEdit,\n  StringReplacement,\n  TextReplacement,\n  TextEdit,\n  TextLength\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/screenReaderContentSimple.js\ninit_lifecycle();\nvar __decorate17 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param15 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SimpleScreenReaderContent = class SimpleScreenReaderContent2 extends Disposable {\n  constructor(_domNode, _context, _viewController, _accessibilityService) {\n    super();\n    this._domNode = _domNode;\n    this._context = _context;\n    this._viewController = _viewController;\n    this._accessibilityService = _accessibilityService;\n    this._selectionChangeListener = this._register(new MutableDisposable());\n    this._accessibilityPageSize = 1;\n    this._ignoreSelectionChangeTime = 0;\n    this._strategy = new SimplePagedScreenReaderStrategy();\n    this.onConfigurationChanged(this._context.configuration.options);\n  }\n  updateScreenReaderContent(primarySelection) {\n    const domNode = this._domNode.domNode;\n    const focusedElement = getActiveWindow().document.activeElement;\n    if (!focusedElement || focusedElement !== domNode) {\n      return;\n    }\n    const isScreenReaderOptimized = this._accessibilityService.isScreenReaderOptimized();\n    if (isScreenReaderOptimized) {\n      this._state = this._getScreenReaderContentState(primarySelection);\n      if (domNode.textContent !== this._state.value) {\n        this._setIgnoreSelectionChangeTime(\"setValue\");\n        domNode.textContent = this._state.value;\n      }\n      const selection = getActiveWindow().document.getSelection();\n      if (!selection) {\n        return;\n      }\n      const data = this._getScreenReaderRange(this._state.selectionStart, this._state.selectionEnd);\n      if (!data) {\n        return;\n      }\n      this._setIgnoreSelectionChangeTime(\"setRange\");\n      selection.setBaseAndExtent(data.anchorNode, data.anchorOffset, data.focusNode, data.focusOffset);\n    } else {\n      this._state = void 0;\n      this._setIgnoreSelectionChangeTime(\"setValue\");\n      this._domNode.domNode.textContent = \"\";\n    }\n  }\n  updateScrollTop(primarySelection) {\n    if (!this._state) {\n      return;\n    }\n    const viewLayout = this._context.viewModel.viewLayout;\n    const stateStartLineNumber = this._state.startPositionWithinEditor.lineNumber;\n    const verticalOffsetOfStateStartLineNumber = viewLayout.getVerticalOffsetForLineNumber(stateStartLineNumber);\n    const verticalOffsetOfPositionLineNumber = viewLayout.getVerticalOffsetForLineNumber(primarySelection.positionLineNumber);\n    this._domNode.domNode.scrollTop = verticalOffsetOfPositionLineNumber - verticalOffsetOfStateStartLineNumber;\n  }\n  onFocusChange(newFocusValue) {\n    if (newFocusValue) {\n      this._selectionChangeListener.value = this._setSelectionChangeListener();\n    } else {\n      this._selectionChangeListener.value = void 0;\n    }\n  }\n  onConfigurationChanged(options2) {\n    this._accessibilityPageSize = options2.get(\n      3\n      /* EditorOption.accessibilityPageSize */\n    );\n  }\n  onWillCut() {\n    this._setIgnoreSelectionChangeTime(\"onCut\");\n  }\n  onWillPaste() {\n    this._setIgnoreSelectionChangeTime(\"onWillPaste\");\n  }\n  // --- private methods\n  _setIgnoreSelectionChangeTime(reason) {\n    this._ignoreSelectionChangeTime = Date.now();\n  }\n  _setSelectionChangeListener() {\n    let previousSelectionChangeEventTime = 0;\n    return addDisposableListener(this._domNode.domNode.ownerDocument, \"selectionchange\", () =\u003e {\n      const isScreenReaderOptimized = this._accessibilityService.isScreenReaderOptimized();\n      if (!this._state || !isScreenReaderOptimized || !IME.enabled) {\n        return;\n      }\n      const activeElement = getActiveWindow().document.activeElement;\n      const isFocused = activeElement === this._domNode.domNode;\n      if (!isFocused) {\n        return;\n      }\n      const selection = getActiveWindow().document.getSelection();\n      if (!selection) {\n        return;\n      }\n      const rangeCount = selection.rangeCount;\n      if (rangeCount === 0) {\n        return;\n      }\n      const range2 = selection.getRangeAt(0);\n      const now = Date.now();\n      const delta1 = now - previousSelectionChangeEventTime;\n      previousSelectionChangeEventTime = now;\n      if (delta1 \u003c 5) {\n        return;\n      }\n      const delta2 = now - this._ignoreSelectionChangeTime;\n      this._ignoreSelectionChangeTime = 0;\n      if (delta2 \u003c 100) {\n        return;\n      }\n      this._viewController.setSelection(this._getEditorSelectionFromDomRange(this._context, this._state, selection.direction, range2));\n    });\n  }\n  _getScreenReaderContentState(primarySelection) {\n    const state = this._strategy.fromEditorSelection(\n      this._context.viewModel,\n      primarySelection,\n      this._accessibilityPageSize,\n      this._accessibilityService.getAccessibilitySupport() === 0\n      /* AccessibilitySupport.Unknown */\n    );\n    const endPosition = this._context.viewModel.model.getPositionAt(Infinity);\n    let value = state.value;\n    if (endPosition.column === 1 \u0026\u0026 primarySelection.getEndPosition().equals(endPosition)) {\n      value += \"\\n\";\n    }\n    state.value = value;\n    return state;\n  }\n  _getScreenReaderRange(selectionOffsetStart, selectionOffsetEnd) {\n    const textContent = this._domNode.domNode.firstChild;\n    if (!textContent) {\n      return;\n    }\n    const range2 = new globalThis.Range();\n    range2.setStart(textContent, selectionOffsetStart);\n    range2.setEnd(textContent, selectionOffsetEnd);\n    return {\n      anchorNode: textContent,\n      anchorOffset: selectionOffsetStart,\n      focusNode: textContent,\n      focusOffset: selectionOffsetEnd\n    };\n  }\n  _getEditorSelectionFromDomRange(context, state, direction, range2) {\n    const viewModel = context.viewModel;\n    const model = viewModel.model;\n    const coordinatesConverter = viewModel.coordinatesConverter;\n    const modelScreenReaderContentStartPositionWithinEditor = coordinatesConverter.convertViewPositionToModelPosition(state.startPositionWithinEditor);\n    const offsetOfStartOfScreenReaderContent = model.getOffsetAt(modelScreenReaderContentStartPositionWithinEditor);\n    let offsetOfSelectionStart = range2.startOffset + offsetOfStartOfScreenReaderContent;\n    let offsetOfSelectionEnd = range2.endOffset + offsetOfStartOfScreenReaderContent;\n    const modelUsesCRLF = model.getEndOfLineSequence() === 1;\n    if (modelUsesCRLF) {\n      const screenReaderContentText = state.value;\n      const offsetTransformer = new PositionOffsetTransformer(screenReaderContentText);\n      const positionOfStartWithinText = offsetTransformer.getPosition(range2.startOffset);\n      const positionOfEndWithinText = offsetTransformer.getPosition(range2.endOffset);\n      offsetOfSelectionStart += positionOfStartWithinText.lineNumber - 1;\n      offsetOfSelectionEnd += positionOfEndWithinText.lineNumber - 1;\n    }\n    const positionOfSelectionStart = model.getPositionAt(offsetOfSelectionStart);\n    const positionOfSelectionEnd = model.getPositionAt(offsetOfSelectionEnd);\n    const selectionStart = direction === \"forward\" ? positionOfSelectionStart : positionOfSelectionEnd;\n    const selectionEnd = direction === \"forward\" ? positionOfSelectionEnd : positionOfSelectionStart;\n    return Selection.fromPositions(selectionStart, selectionEnd);\n  }\n};\nSimpleScreenReaderContent = __decorate17([\n  __param15(3, IAccessibilityService)\n], SimpleScreenReaderContent);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/screenReaderSupport.js\nvar __decorate18 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param16 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ScreenReaderSupport = class ScreenReaderSupport2 extends Disposable {\n  constructor(_domNode, _context, _viewController, _keybindingService, _accessibilityService) {\n    super();\n    this._domNode = _domNode;\n    this._context = _context;\n    this._viewController = _viewController;\n    this._keybindingService = _keybindingService;\n    this._accessibilityService = _accessibilityService;\n    this._contentLeft = 1;\n    this._contentWidth = 1;\n    this._contentHeight = 1;\n    this._divWidth = 1;\n    this._primarySelection = new Selection(1, 1, 1, 1);\n    this._primaryCursorVisibleRange = null;\n    this._state = this._register(new MutableDisposable());\n    this._instantiateScreenReaderContent();\n    this._updateConfigurationSettings();\n    this._updateDomAttributes();\n  }\n  onWillPaste() {\n    this._state.value?.onWillPaste();\n  }\n  onWillCut() {\n    this._state.value?.onWillCut();\n  }\n  handleFocusChange(newFocusValue) {\n    this._state.value?.onFocusChange(newFocusValue);\n    this.writeScreenReaderContent();\n  }\n  onConfigurationChanged(e) {\n    this._instantiateScreenReaderContent();\n    this._updateConfigurationSettings();\n    this._updateDomAttributes();\n    if (e.hasChanged(\n      2\n      /* EditorOption.accessibilitySupport */\n    )) {\n      this.writeScreenReaderContent();\n    }\n  }\n  _instantiateScreenReaderContent() {\n    const renderRichContent = this._context.configuration.options.get(\n      106\n      /* EditorOption.renderRichScreenReaderContent */\n    );\n    if (this._renderRichContent !== renderRichContent) {\n      this._renderRichContent = renderRichContent;\n      this._state.value = this._createScreenReaderContent(renderRichContent);\n    }\n  }\n  _createScreenReaderContent(renderRichContent) {\n    if (renderRichContent) {\n      return new RichScreenReaderContent(this._domNode, this._context, this._viewController, this._accessibilityService);\n    } else {\n      return new SimpleScreenReaderContent(this._domNode, this._context, this._viewController, this._accessibilityService);\n    }\n  }\n  _updateConfigurationSettings() {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const wrappingColumn = layoutInfo.wrappingColumn;\n    this._contentLeft = layoutInfo.contentLeft;\n    this._contentWidth = layoutInfo.contentWidth;\n    this._contentHeight = layoutInfo.height;\n    this._fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._divWidth = Math.round(wrappingColumn * this._fontInfo.typicalHalfwidthCharacterWidth);\n    this._state.value?.onConfigurationChanged(options2);\n  }\n  _updateDomAttributes() {\n    const options2 = this._context.configuration.options;\n    this._domNode.domNode.setAttribute(\"role\", \"textbox\");\n    this._domNode.domNode.setAttribute(\"aria-required\", options2.get(\n      9\n      /* EditorOption.ariaRequired */\n    ) ? \"true\" : \"false\");\n    this._domNode.domNode.setAttribute(\"aria-multiline\", \"true\");\n    this._domNode.domNode.setAttribute(\"aria-autocomplete\", options2.get(\n      103\n      /* EditorOption.readOnly */\n    ) ? \"none\" : \"both\");\n    this._domNode.domNode.setAttribute(\"aria-roledescription\", localize(55, \"editor\"));\n    this._domNode.domNode.setAttribute(\"aria-label\", ariaLabelForScreenReaderContent(options2, this._keybindingService));\n    const tabSize = this._context.viewModel.model.getOptions().tabSize;\n    const spaceWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).spaceWidth;\n    this._domNode.domNode.style.tabSize = `${tabSize * spaceWidth}px`;\n    const wordWrapOverride2 = options2.get(\n      153\n      /* EditorOption.wordWrapOverride2 */\n    );\n    const wordWrapOverride1 = wordWrapOverride2 === \"inherit\" ? options2.get(\n      152\n      /* EditorOption.wordWrapOverride1 */\n    ) : wordWrapOverride2;\n    const wordWrap = wordWrapOverride1 === \"inherit\" ? options2.get(\n      148\n      /* EditorOption.wordWrap */\n    ) : wordWrapOverride1;\n    this._domNode.domNode.style.textWrap = wordWrap === \"off\" ? \"nowrap\" : \"wrap\";\n  }\n  onCursorStateChanged(e) {\n    this._primarySelection = e.selections[0] ?? new Selection(1, 1, 1, 1);\n  }\n  prepareRender(ctx) {\n    this.writeScreenReaderContent();\n    this._primaryCursorVisibleRange = ctx.visibleRangeForPosition(this._primarySelection.getPosition());\n  }\n  render(ctx) {\n    if (!this._primaryCursorVisibleRange) {\n      this._renderAtTopLeft();\n      return;\n    }\n    const editorScrollLeft = this._context.viewLayout.getCurrentScrollLeft();\n    const left = this._contentLeft + this._primaryCursorVisibleRange.left - editorScrollLeft;\n    if (left \u003c this._contentLeft || left \u003e this._contentLeft + this._contentWidth) {\n      this._renderAtTopLeft();\n      return;\n    }\n    const editorScrollTop = this._context.viewLayout.getCurrentScrollTop();\n    const positionLineNumber = this._primarySelection.positionLineNumber;\n    const top = this._context.viewLayout.getVerticalOffsetForLineNumber(positionLineNumber) - editorScrollTop;\n    if (top \u003c 0 || top \u003e this._contentHeight) {\n      this._renderAtTopLeft();\n      return;\n    }\n    const lineHeight = this._context.viewLayout.getLineHeightForLineNumber(positionLineNumber);\n    this._doRender(top, this._contentLeft, this._divWidth, lineHeight);\n    this._state.value?.updateScrollTop(this._primarySelection);\n  }\n  _renderAtTopLeft() {\n    this._doRender(0, 0, this._contentWidth, 1);\n  }\n  _doRender(top, left, width2, height) {\n    applyFontInfo(this._domNode, this._fontInfo);\n    this._domNode.setTop(top);\n    this._domNode.setLeft(left);\n    this._domNode.setWidth(width2);\n    this._domNode.setHeight(height);\n    this._domNode.setLineHeight(height);\n  }\n  setAriaOptions(options2) {\n    if (options2.activeDescendant) {\n      this._domNode.setAttribute(\"aria-haspopup\", \"true\");\n      this._domNode.setAttribute(\"aria-autocomplete\", \"list\");\n      this._domNode.setAttribute(\"aria-activedescendant\", options2.activeDescendant);\n    } else {\n      this._domNode.setAttribute(\"aria-haspopup\", \"false\");\n      this._domNode.setAttribute(\"aria-autocomplete\", \"both\");\n      this._domNode.removeAttribute(\"aria-activedescendant\");\n    }\n    if (options2.role) {\n      this._domNode.setAttribute(\"role\", options2.role);\n    }\n  }\n  writeScreenReaderContent() {\n    this._state.value?.updateScreenReaderContent(this._primarySelection);\n  }\n};\nScreenReaderSupport = __decorate18([\n  __param16(3, IKeybindingService),\n  __param16(4, IAccessibilityService)\n], ScreenReaderSupport);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js\ninit_range();\ninit_selection();\ninit_position();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/editContextFactory.js\nvar EditContext;\n(function(EditContext2) {\n  function create4(window2, options2) {\n    return new window2.EditContext(options2);\n  }\n  EditContext2.create = create4;\n})(EditContext || (EditContext = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/nativeEditContextRegistry.js\nvar NativeEditContextRegistryImpl = class {\n  constructor() {\n    this._nativeEditContextMapping = /* @__PURE__ */ new Map();\n  }\n  register(ownerID, nativeEditContext) {\n    this._nativeEditContextMapping.set(ownerID, nativeEditContext);\n    return {\n      dispose: () =\u003e {\n        this._nativeEditContextMapping.delete(ownerID);\n      }\n    };\n  }\n  get(ownerID) {\n    return this._nativeEditContextMapping.get(ownerID);\n  }\n};\nvar NativeEditContextRegistry = new NativeEditContextRegistryImpl();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/controller/editContext/native/nativeEditContext.js\ninit_strings();\ninit_offsetRange();\ninit_log();\ninit_uuid();\nvar __decorate19 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param17 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar CompositionClassName;\n(function(CompositionClassName2) {\n  CompositionClassName2[\"NONE\"] = \"edit-context-composition-none\";\n  CompositionClassName2[\"SECONDARY\"] = \"edit-context-composition-secondary\";\n  CompositionClassName2[\"PRIMARY\"] = \"edit-context-composition-primary\";\n})(CompositionClassName || (CompositionClassName = {}));\nvar NativeEditContext = class NativeEditContext2 extends AbstractEditContext {\n  constructor(ownerID, context, overflowGuardContainer, _viewController, _visibleRangeProvider, instantiationService, logService) {\n    super(context);\n    this._viewController = _viewController;\n    this._visibleRangeProvider = _visibleRangeProvider;\n    this.logService = logService;\n    this._previousEditContextSelection = new OffsetRange(0, 0);\n    this._editContextPrimarySelection = new Selection(1, 1, 1, 1);\n    this._decorations = [];\n    this._primarySelection = new Selection(1, 1, 1, 1);\n    this._targetWindowId = -1;\n    this._scrollTop = 0;\n    this._scrollLeft = 0;\n    this.domNode = new FastDomNode(document.createElement(\"div\"));\n    this.domNode.setClassName(`native-edit-context`);\n    this._imeTextArea = new FastDomNode(document.createElement(\"textarea\"));\n    this._imeTextArea.setClassName(`ime-text-area`);\n    this._imeTextArea.setAttribute(\"readonly\", \"true\");\n    this._imeTextArea.setAttribute(\"tabindex\", \"-1\");\n    this._imeTextArea.setAttribute(\"aria-hidden\", \"true\");\n    this.domNode.setAttribute(\"autocorrect\", \"off\");\n    this.domNode.setAttribute(\"autocapitalize\", \"off\");\n    this.domNode.setAttribute(\"autocomplete\", \"off\");\n    this.domNode.setAttribute(\"spellcheck\", \"false\");\n    this._updateDomAttributes();\n    overflowGuardContainer.appendChild(this.domNode);\n    overflowGuardContainer.appendChild(this._imeTextArea);\n    this._parent = overflowGuardContainer.domNode;\n    this._focusTracker = this._register(new FocusTracker2(logService, this.domNode.domNode, (newFocusValue) =\u003e {\n      logService.trace(\"NativeEditContext#handleFocusChange : \", newFocusValue);\n      this._screenReaderSupport.handleFocusChange(newFocusValue);\n      this._context.viewModel.setHasFocus(newFocusValue);\n    }));\n    const window2 = getWindow(this.domNode.domNode);\n    this._editContext = EditContext.create(window2);\n    this.setEditContextOnDomNode();\n    this._screenReaderSupport = this._register(instantiationService.createInstance(ScreenReaderSupport, this.domNode, context, this._viewController));\n    this._register(addDisposableListener(this.domNode.domNode, \"copy\", (e) =\u003e {\n      this.logService.trace(\"NativeEditContext#copy\");\n      this._ensureClipboardGetsEditorSelection(e);\n    }));\n    this._register(addDisposableListener(this.domNode.domNode, \"cut\", (e) =\u003e {\n      this.logService.trace(\"NativeEditContext#cut\");\n      this._screenReaderSupport.onWillCut();\n      this._ensureClipboardGetsEditorSelection(e);\n      this.logService.trace(\"NativeEditContext#cut (before viewController.cut)\");\n      this._viewController.cut();\n    }));\n    this._register(addDisposableListener(this.domNode.domNode, \"keyup\", (e) =\u003e this._onKeyUp(e)));\n    this._register(addDisposableListener(this.domNode.domNode, \"keydown\", async (e) =\u003e this._onKeyDown(e)));\n    this._register(addDisposableListener(this._imeTextArea.domNode, \"keyup\", (e) =\u003e this._onKeyUp(e)));\n    this._register(addDisposableListener(this._imeTextArea.domNode, \"keydown\", async (e) =\u003e this._onKeyDown(e)));\n    this._register(addDisposableListener(this.domNode.domNode, \"beforeinput\", async (e) =\u003e {\n      if (e.inputType === \"insertParagraph\" || e.inputType === \"insertLineBreak\") {\n        this._onType(this._viewController, { text: \"\\n\", replacePrevCharCnt: 0, replaceNextCharCnt: 0, positionDelta: 0 });\n      }\n    }));\n    this._register(addDisposableListener(this.domNode.domNode, \"paste\", (e) =\u003e {\n      this.logService.trace(\"NativeEditContext#paste\");\n      e.preventDefault();\n      if (!e.clipboardData) {\n        return;\n      }\n      let [text2, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n      this.logService.trace(\"NativeEditContext#paste with id : \", metadata?.id, \" with text.length: \", text2.length);\n      if (!text2) {\n        return;\n      }\n      metadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text2);\n      let pasteOnNewLine = false;\n      let multicursorText = null;\n      let mode = null;\n      if (metadata) {\n        const options2 = this._context.configuration.options;\n        const emptySelectionClipboard = options2.get(\n          45\n          /* EditorOption.emptySelectionClipboard */\n        );\n        pasteOnNewLine = emptySelectionClipboard \u0026\u0026 !!metadata.isFromEmptySelection;\n        multicursorText = typeof metadata.multicursorText !== \"undefined\" ? metadata.multicursorText : null;\n        mode = metadata.mode;\n      }\n      this.logService.trace(\"NativeEditContext#paste (before viewController.paste)\");\n      this._viewController.paste(text2, pasteOnNewLine, multicursorText, mode);\n    }));\n    this._register(editContextAddDisposableListener(this._editContext, \"textformatupdate\", (e) =\u003e this._handleTextFormatUpdate(e)));\n    this._register(editContextAddDisposableListener(this._editContext, \"characterboundsupdate\", (e) =\u003e this._updateCharacterBounds(e)));\n    let highSurrogateCharacter;\n    this._register(editContextAddDisposableListener(this._editContext, \"textupdate\", (e) =\u003e {\n      const text2 = e.text;\n      if (text2.length === 1) {\n        const charCode = text2.charCodeAt(0);\n        if (isHighSurrogate(charCode)) {\n          highSurrogateCharacter = text2;\n          return;\n        }\n        if (isLowSurrogate(charCode) \u0026\u0026 highSurrogateCharacter) {\n          const textUpdateEvent = {\n            text: highSurrogateCharacter + text2,\n            selectionEnd: e.selectionEnd,\n            selectionStart: e.selectionStart,\n            updateRangeStart: e.updateRangeStart - 1,\n            updateRangeEnd: e.updateRangeEnd - 1\n          };\n          highSurrogateCharacter = void 0;\n          this._emitTypeEvent(this._viewController, textUpdateEvent);\n          return;\n        }\n      }\n      this._emitTypeEvent(this._viewController, e);\n    }));\n    this._register(editContextAddDisposableListener(this._editContext, \"compositionstart\", (e) =\u003e {\n      this._updateEditContext();\n      this._viewController.compositionStart();\n      this._context.viewModel.onCompositionStart();\n    }));\n    this._register(editContextAddDisposableListener(this._editContext, \"compositionend\", (e) =\u003e {\n      this._updateEditContext();\n      this._viewController.compositionEnd();\n      this._context.viewModel.onCompositionEnd();\n    }));\n    let reenableTracking = false;\n    this._register(IME.onDidChange(() =\u003e {\n      if (IME.enabled \u0026\u0026 reenableTracking) {\n        this._focusTracker.resume();\n        this.domNode.focus();\n        reenableTracking = false;\n      }\n      if (!IME.enabled \u0026\u0026 this.isFocused()) {\n        this._focusTracker.pause();\n        this._imeTextArea.focus();\n        reenableTracking = true;\n      }\n    }));\n    this._register(NativeEditContextRegistry.register(ownerID, this));\n  }\n  // --- Public methods ---\n  dispose() {\n    this.domNode.domNode.editContext = void 0;\n    this.domNode.domNode.blur();\n    this.domNode.domNode.remove();\n    this._imeTextArea.domNode.remove();\n    super.dispose();\n  }\n  setAriaOptions(options2) {\n    this._screenReaderSupport.setAriaOptions(options2);\n  }\n  /* Last rendered data needed for correct hit-testing and determining the mouse position.\n   * Without this, the selection will blink as incorrect mouse position is calculated */\n  getLastRenderData() {\n    return this._primarySelection.getPosition();\n  }\n  prepareRender(ctx) {\n    this._screenReaderSupport.prepareRender(ctx);\n    this._updateSelectionAndControlBounds(ctx);\n  }\n  render(ctx) {\n    this._screenReaderSupport.render(ctx);\n  }\n  onCursorStateChanged(e) {\n    this._primarySelection = e.modelSelections[0] ?? new Selection(1, 1, 1, 1);\n    this._screenReaderSupport.onCursorStateChanged(e);\n    this._updateEditContext();\n    return true;\n  }\n  onConfigurationChanged(e) {\n    this._screenReaderSupport.onConfigurationChanged(e);\n    this._updateDomAttributes();\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    this._updateEditContextOnLineChange(e.fromLineNumber, e.fromLineNumber + e.count - 1);\n    return true;\n  }\n  onLinesDeleted(e) {\n    this._updateEditContextOnLineChange(e.fromLineNumber, e.toLineNumber);\n    return true;\n  }\n  onLinesInserted(e) {\n    this._updateEditContextOnLineChange(e.fromLineNumber, e.toLineNumber);\n    return true;\n  }\n  _updateEditContextOnLineChange(fromLineNumber, toLineNumber) {\n    if (this._editContextPrimarySelection.endLineNumber \u003c fromLineNumber || this._editContextPrimarySelection.startLineNumber \u003e toLineNumber) {\n      return;\n    }\n    this._updateEditContext();\n  }\n  onScrollChanged(e) {\n    this._scrollLeft = e.scrollLeft;\n    this._scrollTop = e.scrollTop;\n    return true;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  onWillPaste() {\n    this.logService.trace(\"NativeEditContext#onWillPaste\");\n    this._onWillPaste();\n  }\n  _onWillPaste() {\n    this._screenReaderSupport.onWillPaste();\n  }\n  onWillCopy() {\n    this.logService.trace(\"NativeEditContext#onWillCopy\");\n    this.logService.trace(\"NativeEditContext#isFocused : \", this.domNode.domNode === getActiveElement());\n  }\n  writeScreenReaderContent() {\n    this._screenReaderSupport.writeScreenReaderContent();\n  }\n  isFocused() {\n    return this._focusTracker.isFocused;\n  }\n  focus() {\n    this._focusTracker.focus();\n    this.refreshFocusState();\n  }\n  refreshFocusState() {\n    this._focusTracker.refreshFocusState();\n  }\n  // TODO: added as a workaround fix for https://github.com/microsoft/vscode/issues/229825\n  // When this issue will be fixed the following should be removed.\n  setEditContextOnDomNode() {\n    const targetWindow = getWindow(this.domNode.domNode);\n    const targetWindowId = getWindowId(targetWindow);\n    if (this._targetWindowId !== targetWindowId) {\n      this.domNode.domNode.editContext = this._editContext;\n      this._targetWindowId = targetWindowId;\n    }\n  }\n  // --- Private methods ---\n  _onKeyUp(e) {\n    this._viewController.emitKeyUp(new StandardKeyboardEvent(e));\n  }\n  _onKeyDown(e) {\n    const standardKeyboardEvent = new StandardKeyboardEvent(e);\n    if (standardKeyboardEvent.keyCode === 114) {\n      standardKeyboardEvent.stopPropagation();\n    }\n    this._viewController.emitKeyDown(standardKeyboardEvent);\n  }\n  _updateDomAttributes() {\n    const options2 = this._context.configuration.options;\n    this.domNode.domNode.setAttribute(\"tabindex\", String(options2.get(\n      139\n      /* EditorOption.tabIndex */\n    )));\n  }\n  _updateEditContext() {\n    const editContextState = this._getNewEditContextState();\n    if (!editContextState) {\n      return;\n    }\n    this._editContext.updateText(0, Number.MAX_SAFE_INTEGER, editContextState.text ?? \" \");\n    this._editContext.updateSelection(editContextState.selectionStartOffset, editContextState.selectionEndOffset);\n    this._editContextPrimarySelection = editContextState.editContextPrimarySelection;\n    this._previousEditContextSelection = new OffsetRange(editContextState.selectionStartOffset, editContextState.selectionEndOffset);\n  }\n  _emitTypeEvent(viewController, e) {\n    if (!this._editContext) {\n      return;\n    }\n    const selectionEndOffset = this._previousEditContextSelection.endExclusive;\n    const selectionStartOffset = this._previousEditContextSelection.start;\n    this._previousEditContextSelection = new OffsetRange(e.selectionStart, e.selectionEnd);\n    let replaceNextCharCnt = 0;\n    let replacePrevCharCnt = 0;\n    if (e.updateRangeEnd \u003e selectionEndOffset) {\n      replaceNextCharCnt = e.updateRangeEnd - selectionEndOffset;\n    }\n    if (e.updateRangeStart \u003c selectionStartOffset) {\n      replacePrevCharCnt = selectionStartOffset - e.updateRangeStart;\n    }\n    let text2 = \"\";\n    if (selectionStartOffset \u003c e.updateRangeStart) {\n      text2 += this._editContext.text.substring(selectionStartOffset, e.updateRangeStart);\n    }\n    text2 += e.text;\n    if (selectionEndOffset \u003e e.updateRangeEnd) {\n      text2 += this._editContext.text.substring(e.updateRangeEnd, selectionEndOffset);\n    }\n    let positionDelta = 0;\n    if (e.selectionStart === e.selectionEnd \u0026\u0026 selectionStartOffset === selectionEndOffset) {\n      positionDelta = e.selectionStart - (e.updateRangeStart + e.text.length);\n    }\n    const typeInput = {\n      text: text2,\n      replacePrevCharCnt,\n      replaceNextCharCnt,\n      positionDelta\n    };\n    this._onType(viewController, typeInput);\n  }\n  _onType(viewController, typeInput) {\n    if (typeInput.replacePrevCharCnt || typeInput.replaceNextCharCnt || typeInput.positionDelta) {\n      viewController.compositionType(typeInput.text, typeInput.replacePrevCharCnt, typeInput.replaceNextCharCnt, typeInput.positionDelta);\n    } else {\n      viewController.type(typeInput.text);\n    }\n  }\n  _getNewEditContextState() {\n    const editContextPrimarySelection = this._primarySelection;\n    const model = this._context.viewModel.model;\n    if (!model.isValidRange(editContextPrimarySelection)) {\n      return;\n    }\n    const primarySelectionStartLine = editContextPrimarySelection.startLineNumber;\n    const primarySelectionEndLine = editContextPrimarySelection.endLineNumber;\n    const endColumnOfEndLineNumber = model.getLineMaxColumn(primarySelectionEndLine);\n    const rangeOfText = new Range(primarySelectionStartLine, 1, primarySelectionEndLine, endColumnOfEndLineNumber);\n    const text2 = model.getValueInRange(\n      rangeOfText,\n      0\n      /* EndOfLinePreference.TextDefined */\n    );\n    const selectionStartOffset = editContextPrimarySelection.startColumn - 1;\n    const selectionEndOffset = text2.length + editContextPrimarySelection.endColumn - endColumnOfEndLineNumber;\n    return {\n      text: text2,\n      selectionStartOffset,\n      selectionEndOffset,\n      editContextPrimarySelection\n    };\n  }\n  _editContextStartPosition() {\n    return new Position(this._editContextPrimarySelection.startLineNumber, 1);\n  }\n  _handleTextFormatUpdate(e) {\n    if (!this._editContext) {\n      return;\n    }\n    const formats = e.getTextFormats();\n    const editContextStartPosition = this._editContextStartPosition();\n    const decorations = [];\n    formats.forEach((f) =\u003e {\n      const textModel = this._context.viewModel.model;\n      const offsetOfEditContextText = textModel.getOffsetAt(editContextStartPosition);\n      const startPositionOfDecoration = textModel.getPositionAt(offsetOfEditContextText + f.rangeStart);\n      const endPositionOfDecoration = textModel.getPositionAt(offsetOfEditContextText + f.rangeEnd);\n      const decorationRange = Range.fromPositions(startPositionOfDecoration, endPositionOfDecoration);\n      const thickness = f.underlineThickness.toLowerCase();\n      let decorationClassName = CompositionClassName.NONE;\n      switch (thickness) {\n        case \"thin\":\n          decorationClassName = CompositionClassName.SECONDARY;\n          break;\n        case \"thick\":\n          decorationClassName = CompositionClassName.PRIMARY;\n          break;\n      }\n      decorations.push({\n        range: decorationRange,\n        options: {\n          description: \"textFormatDecoration\",\n          inlineClassName: decorationClassName\n        }\n      });\n    });\n    this._decorations = this._context.viewModel.model.deltaDecorations(this._decorations, decorations);\n  }\n  _updateSelectionAndControlBounds(ctx) {\n    if (!this._parent) {\n      return;\n    }\n    const options2 = this._context.configuration.options;\n    const contentLeft = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    ).contentLeft;\n    const parentBounds = this._parent.getBoundingClientRect();\n    const viewSelection = this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(this._primarySelection);\n    const verticalOffsetStart = this._context.viewLayout.getVerticalOffsetForLineNumber(viewSelection.startLineNumber);\n    const top = parentBounds.top + verticalOffsetStart - this._scrollTop;\n    const verticalOffsetEnd = this._context.viewLayout.getVerticalOffsetAfterLineNumber(viewSelection.endLineNumber);\n    const height = verticalOffsetEnd - verticalOffsetStart;\n    let left = parentBounds.left + contentLeft - this._scrollLeft;\n    let width2;\n    if (this._primarySelection.isEmpty()) {\n      const linesVisibleRanges = ctx.visibleRangeForPosition(viewSelection.getStartPosition());\n      if (linesVisibleRanges) {\n        left += linesVisibleRanges.left;\n      }\n      width2 = 0;\n    } else {\n      width2 = parentBounds.width - contentLeft;\n    }\n    const selectionBounds = new DOMRect(left, top, width2, height);\n    this._editContext.updateSelectionBounds(selectionBounds);\n    this._editContext.updateControlBounds(selectionBounds);\n  }\n  _updateCharacterBounds(e) {\n    if (!this._parent) {\n      return;\n    }\n    const options2 = this._context.configuration.options;\n    const typicalHalfWidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n    const contentLeft = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    ).contentLeft;\n    const parentBounds = this._parent.getBoundingClientRect();\n    const characterBounds = [];\n    const offsetTransformer = new PositionOffsetTransformer(this._editContext.text);\n    for (let offset = e.rangeStart; offset \u003c e.rangeEnd; offset++) {\n      const editContextStartPosition = offsetTransformer.getPosition(offset);\n      const textStartLineOffsetWithinEditor = this._editContextPrimarySelection.startLineNumber - 1;\n      const characterStartPosition = new Position(textStartLineOffsetWithinEditor + editContextStartPosition.lineNumber, editContextStartPosition.column);\n      const characterEndPosition = characterStartPosition.delta(0, 1);\n      const characterModelRange = Range.fromPositions(characterStartPosition, characterEndPosition);\n      const characterViewRange = this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(characterModelRange);\n      const characterLinesVisibleRanges = this._visibleRangeProvider.linesVisibleRangesForRange(characterViewRange, true) ?? [];\n      const lineNumber = characterViewRange.startLineNumber;\n      const characterVerticalOffset = this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber);\n      const top = parentBounds.top + characterVerticalOffset - this._scrollTop;\n      let left = 0;\n      let width2 = typicalHalfWidthCharacterWidth;\n      if (characterLinesVisibleRanges.length \u003e 0) {\n        for (const visibleRange of characterLinesVisibleRanges[0].ranges) {\n          left = visibleRange.left;\n          width2 = visibleRange.width;\n          break;\n        }\n      }\n      const lineHeight = this._context.viewLayout.getLineHeightForLineNumber(lineNumber);\n      characterBounds.push(new DOMRect(parentBounds.left + contentLeft + left - this._scrollLeft, top, width2, lineHeight));\n    }\n    this._editContext.updateCharacterBounds(e.rangeStart, characterBounds);\n  }\n  _ensureClipboardGetsEditorSelection(e) {\n    const options2 = this._context.configuration.options;\n    const emptySelectionClipboard = options2.get(\n      45\n      /* EditorOption.emptySelectionClipboard */\n    );\n    const copyWithSyntaxHighlighting = options2.get(\n      31\n      /* EditorOption.copyWithSyntaxHighlighting */\n    );\n    const selections = this._context.viewModel.getCursorStates().map((cursorState) =\u003e cursorState.modelState.selection);\n    const dataToCopy = getDataToCopy(this._context.viewModel, selections, emptySelectionClipboard, copyWithSyntaxHighlighting);\n    let id = void 0;\n    if (this.logService.getLevel() === LogLevel.Trace) {\n      id = generateUuid();\n    }\n    const storedMetadata = {\n      version: 1,\n      id,\n      isFromEmptySelection: dataToCopy.isFromEmptySelection,\n      multicursorText: dataToCopy.multicursorText,\n      mode: dataToCopy.mode\n    };\n    InMemoryClipboardMetadataManager.INSTANCE.set(\n      // When writing \"LINE\\r\\n\" to the clipboard and then pasting,\n      // Firefox pastes \"LINE\\n\", so let's work around this quirk\n      isFirefox ? dataToCopy.text.replace(/\\r\\n/g, \"\\n\") : dataToCopy.text,\n      storedMetadata\n    );\n    e.preventDefault();\n    if (e.clipboardData) {\n      ClipboardEventUtils.setTextData(e.clipboardData, dataToCopy.text, dataToCopy.html, storedMetadata);\n    }\n    this.logService.trace(\"NativeEditContext#_ensureClipboardGetsEditorSelectios with id : \", id, \" with text.length: \", dataToCopy.text.length);\n  }\n};\nNativeEditContext = __decorate19([\n  __param17(5, IInstantiationService),\n  __param17(6, ILogService)\n], NativeEditContext);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/rulersGpu/rulersGpu.js\ninit_color();\ninit_editorColorRegistry();\ninit_observable();\nvar RulersGpu = class extends ViewPart {\n  constructor(context, _viewGpuContext) {\n    super(context);\n    this._viewGpuContext = _viewGpuContext;\n    this._gpuShapes = [];\n    this._register(autorun((reader) =\u003e this._updateEntries(reader)));\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    this._updateEntries(void 0);\n    return true;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n  }\n  render(ctx) {\n  }\n  _updateEntries(reader) {\n    const options2 = this._context.configuration.options;\n    const rulers = options2.get(\n      115\n      /* EditorOption.rulers */\n    );\n    const typicalHalfwidthCharacterWidth = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    ).typicalHalfwidthCharacterWidth;\n    const devicePixelRatio = this._viewGpuContext.devicePixelRatio.read(reader);\n    for (let i2 = 0, len = rulers.length; i2 \u003c len; i2++) {\n      const ruler = rulers[i2];\n      const shape = this._gpuShapes[i2];\n      const color = ruler.color ? Color.fromHex(ruler.color) : this._context.theme.getColor(editorRuler) ?? Color.white;\n      const rulerData = [\n        ruler.column * typicalHalfwidthCharacterWidth * devicePixelRatio,\n        0,\n        Math.max(1, Math.ceil(devicePixelRatio)),\n        Number.MAX_SAFE_INTEGER,\n        color.rgba.r / 255,\n        color.rgba.g / 255,\n        color.rgba.b / 255,\n        color.rgba.a\n      ];\n      if (!shape) {\n        this._gpuShapes[i2] = this._viewGpuContext.rectangleRenderer.register(...rulerData);\n      } else {\n        shape.setRaw(rulerData);\n      }\n    }\n    while (this._gpuShapes.length \u003e rulers.length) {\n      this._gpuShapes.splice(-1, 1)[0].dispose();\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/viewParts/gpuMark/gpuMark.js\nvar GpuMarkOverlay = class _GpuMarkOverlay extends DynamicViewOverlay {\n  static {\n    this.CLASS_NAME = \"gpu-mark\";\n  }\n  constructor(context, _viewGpuContext) {\n    super();\n    this._viewGpuContext = _viewGpuContext;\n    this._context = context;\n    this._renderResult = null;\n    this._context.addEventHandler(this);\n  }\n  dispose() {\n    this._context.removeEventHandler(this);\n    this._renderResult = null;\n    super.dispose();\n  }\n  // --- begin event handlers\n  onConfigurationChanged(e) {\n    return true;\n  }\n  onCursorStateChanged(e) {\n    return true;\n  }\n  onFlushed(e) {\n    return true;\n  }\n  onLinesChanged(e) {\n    return true;\n  }\n  onLinesDeleted(e) {\n    return true;\n  }\n  onLinesInserted(e) {\n    return true;\n  }\n  onScrollChanged(e) {\n    return e.scrollTopChanged;\n  }\n  onZonesChanged(e) {\n    return true;\n  }\n  onDecorationsChanged(e) {\n    return true;\n  }\n  // --- end event handlers\n  prepareRender(ctx) {\n    const visibleStartLineNumber = ctx.visibleRange.startLineNumber;\n    const visibleEndLineNumber = ctx.visibleRange.endLineNumber;\n    const viewportData = ctx.viewportData;\n    const options2 = new ViewLineOptions(this._context.configuration, this._context.theme.type);\n    const output = [];\n    for (let lineNumber = visibleStartLineNumber; lineNumber \u003c= visibleEndLineNumber; lineNumber++) {\n      const lineIndex = lineNumber - visibleStartLineNumber;\n      const cannotRenderReasons = this._viewGpuContext.canRenderDetailed(options2, viewportData, lineNumber);\n      output[lineIndex] = cannotRenderReasons.length ? `\u003cdiv class=\"${_GpuMarkOverlay.CLASS_NAME}\" title=\"Cannot render on GPU: ${cannotRenderReasons.join(\", \")}\"\u003e\u003c/div\u003e` : \"\";\n    }\n    this._renderResult = output;\n  }\n  render(startLineNumber, lineNumber) {\n    if (!this._renderResult) {\n      return \"\";\n    }\n    const lineIndex = lineNumber - startLineNumber;\n    if (lineIndex \u003c 0 || lineIndex \u003e= this._renderResult.length) {\n      return \"\";\n    }\n    return this._renderResult[lineIndex];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view.js\ninit_event();\nvar __decorate20 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param18 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar View = class View2 extends ViewEventHandler {\n  constructor(editorContainer, ownerID, commandDelegate, configuration, colorTheme, model, userInputEvents, overflowWidgetsDomNode, _instantiationService) {\n    super();\n    this._instantiationService = _instantiationService;\n    this._shouldRecomputeGlyphMarginLanes = false;\n    this._ownerID = ownerID;\n    this._widgetFocusTracker = this._register(new CodeEditorWidgetFocusTracker(editorContainer, overflowWidgetsDomNode));\n    this._register(this._widgetFocusTracker.onChange(() =\u003e {\n      this._context.viewModel.setHasWidgetFocus(this._widgetFocusTracker.hasFocus());\n    }));\n    this._selections = [new Selection(1, 1, 1, 1)];\n    this._renderAnimationFrame = null;\n    this._overflowGuardContainer = createFastDomNode(document.createElement(\"div\"));\n    PartFingerprints.write(\n      this._overflowGuardContainer,\n      3\n      /* PartFingerprint.OverflowGuard */\n    );\n    this._overflowGuardContainer.setClassName(\"overflow-guard\");\n    this._viewController = new ViewController(configuration, model, userInputEvents, commandDelegate);\n    this._context = new ViewContext(configuration, colorTheme, model);\n    this._context.addEventHandler(this);\n    this._viewParts = [];\n    this._editContextEnabled = this._context.configuration.options.get(\n      169\n      /* EditorOption.effectiveEditContext */\n    );\n    this._accessibilitySupport = this._context.configuration.options.get(\n      2\n      /* EditorOption.accessibilitySupport */\n    );\n    this._editContext = this._instantiateEditContext();\n    this._viewParts.push(this._editContext);\n    this._linesContent = createFastDomNode(document.createElement(\"div\"));\n    this._linesContent.setClassName(\"lines-content monaco-editor-background\");\n    this._linesContent.setPosition(\"absolute\");\n    this.domNode = createFastDomNode(document.createElement(\"div\"));\n    this.domNode.setClassName(this._getEditorClassName());\n    this.domNode.setAttribute(\"role\", \"code\");\n    if (this._context.configuration.options.get(\n      46\n      /* EditorOption.experimentalGpuAcceleration */\n    ) === \"on\") {\n      this._viewGpuContext = this._instantiationService.createInstance(ViewGpuContext, this._context);\n    }\n    this._scrollbar = new EditorScrollbar2(this._context, this._linesContent, this.domNode, this._overflowGuardContainer);\n    this._viewParts.push(this._scrollbar);\n    this._viewLines = new ViewLines(this._context, this._viewGpuContext, this._linesContent);\n    if (this._viewGpuContext) {\n      this._viewLinesGpu = this._instantiationService.createInstance(ViewLinesGpu, this._context, this._viewGpuContext);\n    }\n    this._viewZones = new ViewZones(this._context);\n    this._viewParts.push(this._viewZones);\n    const decorationsOverviewRuler = new DecorationsOverviewRuler(this._context);\n    this._viewParts.push(decorationsOverviewRuler);\n    const scrollDecoration = new ScrollDecorationViewPart(this._context);\n    this._viewParts.push(scrollDecoration);\n    const contentViewOverlays = new ContentViewOverlays(this._context);\n    this._viewParts.push(contentViewOverlays);\n    contentViewOverlays.addDynamicOverlay(new CurrentLineHighlightOverlay(this._context));\n    contentViewOverlays.addDynamicOverlay(new SelectionsOverlay(this._context));\n    contentViewOverlays.addDynamicOverlay(new IndentGuidesOverlay(this._context));\n    contentViewOverlays.addDynamicOverlay(new DecorationsOverlay(this._context));\n    contentViewOverlays.addDynamicOverlay(new WhitespaceOverlay(this._context));\n    const marginViewOverlays = new MarginViewOverlays(this._context);\n    this._viewParts.push(marginViewOverlays);\n    marginViewOverlays.addDynamicOverlay(new CurrentLineMarginHighlightOverlay(this._context));\n    marginViewOverlays.addDynamicOverlay(new MarginViewLineDecorationsOverlay(this._context));\n    marginViewOverlays.addDynamicOverlay(new LinesDecorationsOverlay(this._context));\n    marginViewOverlays.addDynamicOverlay(new LineNumbersOverlay(this._context));\n    if (this._viewGpuContext) {\n      marginViewOverlays.addDynamicOverlay(new GpuMarkOverlay(this._context, this._viewGpuContext));\n    }\n    this._glyphMarginWidgets = new GlyphMarginWidgets(this._context);\n    this._viewParts.push(this._glyphMarginWidgets);\n    const margin = new Margin(this._context);\n    margin.getDomNode().appendChild(this._viewZones.marginDomNode);\n    margin.getDomNode().appendChild(marginViewOverlays.getDomNode());\n    margin.getDomNode().appendChild(this._glyphMarginWidgets.domNode);\n    this._viewParts.push(margin);\n    this._contentWidgets = new ViewContentWidgets(this._context, this.domNode);\n    this._viewParts.push(this._contentWidgets);\n    this._viewCursors = new ViewCursors(this._context);\n    this._viewParts.push(this._viewCursors);\n    this._overlayWidgets = new ViewOverlayWidgets(this._context, this.domNode);\n    this._viewParts.push(this._overlayWidgets);\n    const rulers = this._viewGpuContext ? new RulersGpu(this._context, this._viewGpuContext) : new Rulers(this._context);\n    this._viewParts.push(rulers);\n    const blockOutline = new BlockDecorations(this._context);\n    this._viewParts.push(blockOutline);\n    const minimap = new Minimap(this._context);\n    this._viewParts.push(minimap);\n    if (decorationsOverviewRuler) {\n      const overviewRulerData = this._scrollbar.getOverviewRulerLayoutInfo();\n      overviewRulerData.parent.insertBefore(decorationsOverviewRuler.getDomNode(), overviewRulerData.insertBefore);\n    }\n    this._linesContent.appendChild(contentViewOverlays.getDomNode());\n    if (\"domNode\" in rulers) {\n      this._linesContent.appendChild(rulers.domNode);\n    }\n    this._linesContent.appendChild(this._viewZones.domNode);\n    this._linesContent.appendChild(this._viewLines.getDomNode());\n    this._linesContent.appendChild(this._contentWidgets.domNode);\n    this._linesContent.appendChild(this._viewCursors.getDomNode());\n    this._overflowGuardContainer.appendChild(margin.getDomNode());\n    this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode());\n    if (this._viewGpuContext) {\n      this._overflowGuardContainer.appendChild(this._viewGpuContext.canvas);\n    }\n    this._overflowGuardContainer.appendChild(scrollDecoration.getDomNode());\n    this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode());\n    this._overflowGuardContainer.appendChild(minimap.getDomNode());\n    this._overflowGuardContainer.appendChild(blockOutline.domNode);\n    this.domNode.appendChild(this._overflowGuardContainer);\n    if (overflowWidgetsDomNode) {\n      overflowWidgetsDomNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode);\n      overflowWidgetsDomNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode);\n    } else {\n      this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode);\n      this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode);\n    }\n    this._applyLayout();\n    this._pointerHandler = this._register(new PointerHandler(this._context, this._viewController, this._createPointerHandlerHelper()));\n  }\n  _instantiateEditContext() {\n    const usingExperimentalEditContext = this._context.configuration.options.get(\n      169\n      /* EditorOption.effectiveEditContext */\n    );\n    if (usingExperimentalEditContext) {\n      return this._instantiationService.createInstance(NativeEditContext, this._ownerID, this._context, this._overflowGuardContainer, this._viewController, this._createTextAreaHandlerHelper());\n    } else {\n      return this._instantiationService.createInstance(TextAreaEditContext, this._context, this._overflowGuardContainer, this._viewController, this._createTextAreaHandlerHelper());\n    }\n  }\n  _updateEditContext() {\n    const editContextEnabled = this._context.configuration.options.get(\n      169\n      /* EditorOption.effectiveEditContext */\n    );\n    const accessibilitySupport = this._context.configuration.options.get(\n      2\n      /* EditorOption.accessibilitySupport */\n    );\n    if (this._editContextEnabled === editContextEnabled \u0026\u0026 this._accessibilitySupport === accessibilitySupport) {\n      return;\n    }\n    this._editContextEnabled = editContextEnabled;\n    this._accessibilitySupport = accessibilitySupport;\n    const isEditContextFocused = this._editContext.isFocused();\n    const indexOfEditContext = this._viewParts.indexOf(this._editContext);\n    this._editContext.dispose();\n    this._editContext = this._instantiateEditContext();\n    if (isEditContextFocused) {\n      this._editContext.focus();\n    }\n    if (indexOfEditContext !== -1) {\n      this._viewParts.splice(indexOfEditContext, 1, this._editContext);\n    }\n  }\n  _computeGlyphMarginLanes() {\n    const model = this._context.viewModel.model;\n    const laneModel = this._context.viewModel.glyphLanes;\n    let glyphs = [];\n    let maxLineNumber = 0;\n    glyphs = glyphs.concat(model.getAllMarginDecorations().map((decoration3) =\u003e {\n      const lane = decoration3.options.glyphMargin?.position ?? GlyphMarginLane.Center;\n      maxLineNumber = Math.max(maxLineNumber, decoration3.range.endLineNumber);\n      return { range: decoration3.range, lane, persist: decoration3.options.glyphMargin?.persistLane };\n    }));\n    glyphs = glyphs.concat(this._glyphMarginWidgets.getWidgets().map((widget) =\u003e {\n      const range2 = model.validateRange(widget.preference.range);\n      maxLineNumber = Math.max(maxLineNumber, range2.endLineNumber);\n      return { range: range2, lane: widget.preference.lane };\n    }));\n    glyphs.sort((a, b) =\u003e Range.compareRangesUsingStarts(a.range, b.range));\n    laneModel.reset(maxLineNumber);\n    for (const glyph of glyphs) {\n      laneModel.push(glyph.lane, glyph.range, glyph.persist);\n    }\n    return laneModel;\n  }\n  _createPointerHandlerHelper() {\n    return {\n      viewDomNode: this.domNode.domNode,\n      linesContentDomNode: this._linesContent.domNode,\n      viewLinesDomNode: this._viewLines.getDomNode().domNode,\n      viewLinesGpu: this._viewLinesGpu,\n      focusTextArea: () =\u003e {\n        this.focus();\n      },\n      dispatchTextAreaEvent: (event) =\u003e {\n        this._editContext.domNode.domNode.dispatchEvent(event);\n      },\n      getLastRenderData: () =\u003e {\n        const lastViewCursorsRenderData = this._viewCursors.getLastRenderData() || [];\n        const lastTextareaPosition = this._editContext.getLastRenderData();\n        return new PointerHandlerLastRenderData(lastViewCursorsRenderData, lastTextareaPosition);\n      },\n      renderNow: () =\u003e {\n        this.render(true, false);\n      },\n      shouldSuppressMouseDownOnViewZone: (viewZoneId) =\u003e {\n        return this._viewZones.shouldSuppressMouseDownOnViewZone(viewZoneId);\n      },\n      shouldSuppressMouseDownOnWidget: (widgetId) =\u003e {\n        return this._contentWidgets.shouldSuppressMouseDownOnWidget(widgetId);\n      },\n      getPositionFromDOMInfo: (spanNode, offset) =\u003e {\n        this._flushAccumulatedAndRenderNow();\n        return this._viewLines.getPositionFromDOMInfo(spanNode, offset);\n      },\n      visibleRangeForPosition: (lineNumber, column) =\u003e {\n        this._flushAccumulatedAndRenderNow();\n        const position = new Position(lineNumber, column);\n        return this._viewLines.visibleRangeForPosition(position) ?? this._viewLinesGpu?.visibleRangeForPosition(position) ?? null;\n      },\n      getLineWidth: (lineNumber) =\u003e {\n        this._flushAccumulatedAndRenderNow();\n        if (this._viewLinesGpu) {\n          const result = this._viewLinesGpu.getLineWidth(lineNumber);\n          if (result !== void 0) {\n            return result;\n          }\n        }\n        return this._viewLines.getLineWidth(lineNumber);\n      }\n    };\n  }\n  _createTextAreaHandlerHelper() {\n    return {\n      visibleRangeForPosition: (position) =\u003e {\n        this._flushAccumulatedAndRenderNow();\n        return this._viewLines.visibleRangeForPosition(position);\n      },\n      linesVisibleRangesForRange: (range2, includeNewLines) =\u003e {\n        this._flushAccumulatedAndRenderNow();\n        return this._viewLines.linesVisibleRangesForRange(range2, includeNewLines);\n      }\n    };\n  }\n  _applyLayout() {\n    const options2 = this._context.configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    this.domNode.setWidth(layoutInfo.width);\n    this.domNode.setHeight(layoutInfo.height);\n    this._overflowGuardContainer.setWidth(layoutInfo.width);\n    this._overflowGuardContainer.setHeight(layoutInfo.height);\n    this._linesContent.setWidth(16777216);\n    this._linesContent.setHeight(16777216);\n  }\n  _getEditorClassName() {\n    const focused = this._editContext.isFocused() ? \" focused\" : \"\";\n    return this._context.configuration.options.get(\n      161\n      /* EditorOption.editorClassName */\n    ) + \" \" + getThemeTypeSelector(this._context.theme.type) + focused;\n  }\n  // --- begin event handlers\n  handleEvents(events) {\n    super.handleEvents(events);\n    this._scheduleRender();\n  }\n  onConfigurationChanged(e) {\n    this.domNode.setClassName(this._getEditorClassName());\n    this._updateEditContext();\n    this._applyLayout();\n    return false;\n  }\n  onCursorStateChanged(e) {\n    this._selections = e.selections;\n    return false;\n  }\n  onDecorationsChanged(e) {\n    if (e.affectsGlyphMargin) {\n      this._shouldRecomputeGlyphMarginLanes = true;\n    }\n    return false;\n  }\n  onFocusChanged(e) {\n    this.domNode.setClassName(this._getEditorClassName());\n    return false;\n  }\n  onThemeChanged(e) {\n    this._context.theme.update(e.theme);\n    this.domNode.setClassName(this._getEditorClassName());\n    return false;\n  }\n  // --- end event handlers\n  dispose() {\n    if (this._renderAnimationFrame !== null) {\n      this._renderAnimationFrame.dispose();\n      this._renderAnimationFrame = null;\n    }\n    this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove();\n    this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode.remove();\n    this._context.removeEventHandler(this);\n    this._viewGpuContext?.dispose();\n    this._viewLines.dispose();\n    this._viewLinesGpu?.dispose();\n    for (const viewPart of this._viewParts) {\n      viewPart.dispose();\n    }\n    super.dispose();\n  }\n  _scheduleRender() {\n    if (this._store.isDisposed) {\n      throw new BugIndicatingError();\n    }\n    if (this._renderAnimationFrame === null) {\n      if (this._editContext instanceof NativeEditContext) {\n        this._editContext.setEditContextOnDomNode();\n      }\n      const rendering = this._createCoordinatedRendering();\n      this._renderAnimationFrame = EditorRenderingCoordinator.INSTANCE.scheduleCoordinatedRendering({\n        window: getWindow(this.domNode?.domNode),\n        prepareRenderText: () =\u003e {\n          if (this._store.isDisposed) {\n            throw new BugIndicatingError();\n          }\n          try {\n            return rendering.prepareRenderText();\n          } finally {\n            this._renderAnimationFrame = null;\n          }\n        },\n        renderText: () =\u003e {\n          if (this._store.isDisposed) {\n            throw new BugIndicatingError();\n          }\n          return rendering.renderText();\n        },\n        prepareRender: (viewParts, ctx) =\u003e {\n          if (this._store.isDisposed) {\n            throw new BugIndicatingError();\n          }\n          return rendering.prepareRender(viewParts, ctx);\n        },\n        render: (viewParts, ctx) =\u003e {\n          if (this._store.isDisposed) {\n            throw new BugIndicatingError();\n          }\n          return rendering.render(viewParts, ctx);\n        }\n      });\n    }\n  }\n  _flushAccumulatedAndRenderNow() {\n    const rendering = this._createCoordinatedRendering();\n    safeInvokeNoArg(() =\u003e rendering.prepareRenderText());\n    const data = safeInvokeNoArg(() =\u003e rendering.renderText());\n    if (data) {\n      const [viewParts, ctx] = data;\n      safeInvokeNoArg(() =\u003e rendering.prepareRender(viewParts, ctx));\n      safeInvokeNoArg(() =\u003e rendering.render(viewParts, ctx));\n    }\n  }\n  _getViewPartsToRender() {\n    const result = [];\n    let resultLen = 0;\n    for (const viewPart of this._viewParts) {\n      if (viewPart.shouldRender()) {\n        result[resultLen++] = viewPart;\n      }\n    }\n    return result;\n  }\n  _createCoordinatedRendering() {\n    return {\n      prepareRenderText: () =\u003e {\n        if (this._shouldRecomputeGlyphMarginLanes) {\n          this._shouldRecomputeGlyphMarginLanes = false;\n          const model = this._computeGlyphMarginLanes();\n          this._context.configuration.setGlyphMarginDecorationLaneCount(model.requiredLanes);\n        }\n        inputLatency.onRenderStart();\n      },\n      renderText: () =\u003e {\n        if (!this.domNode.domNode.isConnected) {\n          return null;\n        }\n        let viewPartsToRender = this._getViewPartsToRender();\n        if (!this._viewLines.shouldRender() \u0026\u0026 viewPartsToRender.length === 0) {\n          return null;\n        }\n        const partialViewportData = this._context.viewLayout.getLinesViewportData();\n        this._context.viewModel.setViewport(partialViewportData.startLineNumber, partialViewportData.endLineNumber, partialViewportData.centeredLineNumber);\n        const viewportData = new ViewportData(this._selections, partialViewportData, this._context.viewLayout.getWhitespaceViewportData(), this._context.viewModel);\n        if (this._contentWidgets.shouldRender()) {\n          this._contentWidgets.onBeforeRender(viewportData);\n        }\n        if (this._viewLines.shouldRender()) {\n          this._viewLines.renderText(viewportData);\n          this._viewLines.onDidRender();\n          viewPartsToRender = this._getViewPartsToRender();\n        }\n        if (this._viewLinesGpu?.shouldRender()) {\n          this._viewLinesGpu.renderText(viewportData);\n          this._viewLinesGpu.onDidRender();\n        }\n        return [viewPartsToRender, new RenderingContext(this._context.viewLayout, viewportData, this._viewLines, this._viewLinesGpu)];\n      },\n      prepareRender: (viewPartsToRender, ctx) =\u003e {\n        for (const viewPart of viewPartsToRender) {\n          viewPart.prepareRender(ctx);\n        }\n      },\n      render: (viewPartsToRender, ctx) =\u003e {\n        for (const viewPart of viewPartsToRender) {\n          viewPart.render(ctx);\n          viewPart.onDidRender();\n        }\n      }\n    };\n  }\n  // --- BEGIN CodeEditor helpers\n  delegateVerticalScrollbarPointerDown(browserEvent) {\n    this._scrollbar.delegateVerticalScrollbarPointerDown(browserEvent);\n  }\n  delegateScrollFromMouseWheelEvent(browserEvent) {\n    this._scrollbar.delegateScrollFromMouseWheelEvent(browserEvent);\n  }\n  restoreState(scrollPosition) {\n    this._context.viewModel.viewLayout.setScrollPosition(\n      {\n        scrollTop: scrollPosition.scrollTop,\n        scrollLeft: scrollPosition.scrollLeft\n      },\n      1\n      /* ScrollType.Immediate */\n    );\n    this._context.viewModel.visibleLinesStabilized();\n  }\n  getOffsetForColumn(modelLineNumber, modelColumn) {\n    const modelPosition = this._context.viewModel.model.validatePosition({\n      lineNumber: modelLineNumber,\n      column: modelColumn\n    });\n    const viewPosition = this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);\n    this._flushAccumulatedAndRenderNow();\n    const visibleRange = this._viewLines.visibleRangeForPosition(new Position(viewPosition.lineNumber, viewPosition.column));\n    if (!visibleRange) {\n      return -1;\n    }\n    return visibleRange.left;\n  }\n  getTargetAtClientPoint(clientX, clientY) {\n    const mouseTarget = this._pointerHandler.getTargetAtClientPoint(clientX, clientY);\n    if (!mouseTarget) {\n      return null;\n    }\n    return ViewUserInputEvents.convertViewToModelMouseTarget(mouseTarget, this._context.viewModel.coordinatesConverter);\n  }\n  createOverviewRuler(cssClassName) {\n    return new OverviewRuler(this._context, cssClassName);\n  }\n  change(callback) {\n    this._viewZones.changeViewZones(callback);\n    this._scheduleRender();\n  }\n  render(now, everything) {\n    if (everything) {\n      this._viewLines.forceShouldRender();\n      for (const viewPart of this._viewParts) {\n        viewPart.forceShouldRender();\n      }\n    }\n    if (now) {\n      this._flushAccumulatedAndRenderNow();\n    } else {\n      this._scheduleRender();\n    }\n  }\n  writeScreenReaderContent(reason) {\n    this._editContext.writeScreenReaderContent(reason);\n  }\n  focus() {\n    this._editContext.focus();\n  }\n  isFocused() {\n    return this._editContext.isFocused();\n  }\n  isWidgetFocused() {\n    return this._widgetFocusTracker.hasFocus();\n  }\n  setAriaOptions(options2) {\n    this._editContext.setAriaOptions(options2);\n  }\n  addContentWidget(widgetData) {\n    this._contentWidgets.addWidget(widgetData.widget);\n    this.layoutContentWidget(widgetData);\n    this._scheduleRender();\n  }\n  layoutContentWidget(widgetData) {\n    this._contentWidgets.setWidgetPosition(widgetData.widget, widgetData.position?.position ?? null, widgetData.position?.secondaryPosition ?? null, widgetData.position?.preference ?? null, widgetData.position?.positionAffinity ?? null);\n    this._scheduleRender();\n  }\n  removeContentWidget(widgetData) {\n    this._contentWidgets.removeWidget(widgetData.widget);\n    this._scheduleRender();\n  }\n  addOverlayWidget(widgetData) {\n    this._overlayWidgets.addWidget(widgetData.widget);\n    this.layoutOverlayWidget(widgetData);\n    this._scheduleRender();\n  }\n  layoutOverlayWidget(widgetData) {\n    const shouldRender = this._overlayWidgets.setWidgetPosition(widgetData.widget, widgetData.position);\n    if (shouldRender) {\n      this._scheduleRender();\n    }\n  }\n  removeOverlayWidget(widgetData) {\n    this._overlayWidgets.removeWidget(widgetData.widget);\n    this._scheduleRender();\n  }\n  addGlyphMarginWidget(widgetData) {\n    this._glyphMarginWidgets.addWidget(widgetData.widget);\n    this._shouldRecomputeGlyphMarginLanes = true;\n    this._scheduleRender();\n  }\n  layoutGlyphMarginWidget(widgetData) {\n    const newPreference = widgetData.position;\n    const shouldRender = this._glyphMarginWidgets.setWidgetPosition(widgetData.widget, newPreference);\n    if (shouldRender) {\n      this._shouldRecomputeGlyphMarginLanes = true;\n      this._scheduleRender();\n    }\n  }\n  removeGlyphMarginWidget(widgetData) {\n    this._glyphMarginWidgets.removeWidget(widgetData.widget);\n    this._shouldRecomputeGlyphMarginLanes = true;\n    this._scheduleRender();\n  }\n};\nView = __decorate20([\n  __param18(8, IInstantiationService)\n], View);\nfunction safeInvokeNoArg(func) {\n  try {\n    return func();\n  } catch (e) {\n    onUnexpectedError(e);\n    return null;\n  }\n}\nvar EditorRenderingCoordinator = class _EditorRenderingCoordinator {\n  static {\n    this.INSTANCE = new _EditorRenderingCoordinator();\n  }\n  constructor() {\n    this._coordinatedRenderings = [];\n    this._animationFrameRunners = /* @__PURE__ */ new Map();\n  }\n  scheduleCoordinatedRendering(rendering) {\n    this._coordinatedRenderings.push(rendering);\n    this._scheduleRender(rendering.window);\n    return {\n      dispose: () =\u003e {\n        const renderingIndex = this._coordinatedRenderings.indexOf(rendering);\n        if (renderingIndex === -1) {\n          return;\n        }\n        this._coordinatedRenderings.splice(renderingIndex, 1);\n        if (this._coordinatedRenderings.length === 0) {\n          for (const [_, disposable] of this._animationFrameRunners) {\n            disposable.dispose();\n          }\n          this._animationFrameRunners.clear();\n        }\n      }\n    };\n  }\n  _scheduleRender(window2) {\n    if (!this._animationFrameRunners.has(window2)) {\n      const runner = () =\u003e {\n        this._animationFrameRunners.delete(window2);\n        this._onRenderScheduled();\n      };\n      this._animationFrameRunners.set(window2, runAtThisOrScheduleAtNextAnimationFrame(window2, runner, 100));\n    }\n  }\n  _onRenderScheduled() {\n    const coordinatedRenderings = this._coordinatedRenderings.slice(0);\n    this._coordinatedRenderings = [];\n    for (const rendering of coordinatedRenderings) {\n      safeInvokeNoArg(() =\u003e rendering.prepareRenderText());\n    }\n    const datas = [];\n    for (let i2 = 0, len = coordinatedRenderings.length; i2 \u003c len; i2++) {\n      const rendering = coordinatedRenderings[i2];\n      datas[i2] = safeInvokeNoArg(() =\u003e rendering.renderText());\n    }\n    for (let i2 = 0, len = coordinatedRenderings.length; i2 \u003c len; i2++) {\n      const rendering = coordinatedRenderings[i2];\n      const data = datas[i2];\n      if (!data) {\n        continue;\n      }\n      const [viewParts, ctx] = data;\n      safeInvokeNoArg(() =\u003e rendering.prepareRender(viewParts, ctx));\n    }\n    for (let i2 = 0, len = coordinatedRenderings.length; i2 \u003c len; i2++) {\n      const rendering = coordinatedRenderings[i2];\n      const data = datas[i2];\n      if (!data) {\n        continue;\n      }\n      const [viewParts, ctx] = data;\n      safeInvokeNoArg(() =\u003e rendering.render(viewParts, ctx));\n    }\n  }\n};\nvar CodeEditorWidgetFocusTracker = class extends Disposable {\n  constructor(domElement, overflowWidgetsDomNode) {\n    super();\n    this._onChange = this._register(new Emitter());\n    this.onChange = this._onChange.event;\n    this._hadFocus = void 0;\n    this._hasDomElementFocus = false;\n    this._domFocusTracker = this._register(trackFocus(domElement));\n    this._overflowWidgetsDomNodeHasFocus = false;\n    this._register(this._domFocusTracker.onDidFocus(() =\u003e {\n      this._hasDomElementFocus = true;\n      this._update();\n    }));\n    this._register(this._domFocusTracker.onDidBlur(() =\u003e {\n      this._hasDomElementFocus = false;\n      this._update();\n    }));\n    if (overflowWidgetsDomNode) {\n      this._overflowWidgetsDomNode = this._register(trackFocus(overflowWidgetsDomNode));\n      this._register(this._overflowWidgetsDomNode.onDidFocus(() =\u003e {\n        this._overflowWidgetsDomNodeHasFocus = true;\n        this._update();\n      }));\n      this._register(this._overflowWidgetsDomNode.onDidBlur(() =\u003e {\n        this._overflowWidgetsDomNodeHasFocus = false;\n        this._update();\n      }));\n    }\n  }\n  _update() {\n    const focused = this._hasDomElementFocus || this._overflowWidgetsDomNodeHasFocus;\n    if (this._hadFocus !== focused) {\n      this._hadFocus = focused;\n      this._onChange.fire(void 0);\n    }\n  }\n  hasFocus() {\n    return this._hadFocus ?? false;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/domLineBreaksComputer.js\ninit_strings();\ninit_types();\ninit_stringBuilder();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/modelLineProjectionData.js\ninit_assert();\ninit_position();\ninit_model2();\nvar ModelLineProjectionData = class {\n  constructor(injectionOffsets, injectionOptions, breakOffsets, breakOffsetsVisibleColumn, wrappedTextIndentLength) {\n    this.injectionOffsets = injectionOffsets;\n    this.injectionOptions = injectionOptions;\n    this.breakOffsets = breakOffsets;\n    this.breakOffsetsVisibleColumn = breakOffsetsVisibleColumn;\n    this.wrappedTextIndentLength = wrappedTextIndentLength;\n  }\n  getOutputLineCount() {\n    return this.breakOffsets.length;\n  }\n  getMinOutputOffset(outputLineIndex) {\n    if (outputLineIndex \u003e 0) {\n      return this.wrappedTextIndentLength;\n    }\n    return 0;\n  }\n  getLineLength(outputLineIndex) {\n    const startOffset = outputLineIndex \u003e 0 ? this.breakOffsets[outputLineIndex - 1] : 0;\n    const endOffset = this.breakOffsets[outputLineIndex];\n    let lineLength = endOffset - startOffset;\n    if (outputLineIndex \u003e 0) {\n      lineLength += this.wrappedTextIndentLength;\n    }\n    return lineLength;\n  }\n  getMaxOutputOffset(outputLineIndex) {\n    return this.getLineLength(outputLineIndex);\n  }\n  translateToInputOffset(outputLineIndex, outputOffset) {\n    if (outputLineIndex \u003e 0) {\n      outputOffset = Math.max(0, outputOffset - this.wrappedTextIndentLength);\n    }\n    const offsetInInputWithInjection = outputLineIndex === 0 ? outputOffset : this.breakOffsets[outputLineIndex - 1] + outputOffset;\n    let offsetInInput = offsetInInputWithInjection;\n    if (this.injectionOffsets !== null) {\n      for (let i2 = 0; i2 \u003c this.injectionOffsets.length; i2++) {\n        if (offsetInInput \u003e this.injectionOffsets[i2]) {\n          if (offsetInInput \u003c this.injectionOffsets[i2] + this.injectionOptions[i2].content.length) {\n            offsetInInput = this.injectionOffsets[i2];\n          } else {\n            offsetInInput -= this.injectionOptions[i2].content.length;\n          }\n        } else {\n          break;\n        }\n      }\n    }\n    return offsetInInput;\n  }\n  translateToOutputPosition(inputOffset, affinity = 2) {\n    let inputOffsetInInputWithInjection = inputOffset;\n    if (this.injectionOffsets !== null) {\n      for (let i2 = 0; i2 \u003c this.injectionOffsets.length; i2++) {\n        if (inputOffset \u003c this.injectionOffsets[i2]) {\n          break;\n        }\n        if (affinity !== 1 \u0026\u0026 inputOffset === this.injectionOffsets[i2]) {\n          break;\n        }\n        inputOffsetInInputWithInjection += this.injectionOptions[i2].content.length;\n      }\n    }\n    return this.offsetInInputWithInjectionsToOutputPosition(inputOffsetInInputWithInjection, affinity);\n  }\n  offsetInInputWithInjectionsToOutputPosition(offsetInInputWithInjections, affinity = 2) {\n    let low = 0;\n    let high = this.breakOffsets.length - 1;\n    let mid = 0;\n    let midStart = 0;\n    while (low \u003c= high) {\n      mid = low + (high - low) / 2 | 0;\n      const midStop = this.breakOffsets[mid];\n      midStart = mid \u003e 0 ? this.breakOffsets[mid - 1] : 0;\n      if (affinity === 0) {\n        if (offsetInInputWithInjections \u003c= midStart) {\n          high = mid - 1;\n        } else if (offsetInInputWithInjections \u003e midStop) {\n          low = mid + 1;\n        } else {\n          break;\n        }\n      } else {\n        if (offsetInInputWithInjections \u003c midStart) {\n          high = mid - 1;\n        } else if (offsetInInputWithInjections \u003e= midStop) {\n          low = mid + 1;\n        } else {\n          break;\n        }\n      }\n    }\n    let outputOffset = offsetInInputWithInjections - midStart;\n    if (mid \u003e 0) {\n      outputOffset += this.wrappedTextIndentLength;\n    }\n    return new OutputPosition(mid, outputOffset);\n  }\n  normalizeOutputPosition(outputLineIndex, outputOffset, affinity) {\n    if (this.injectionOffsets !== null) {\n      const offsetInInputWithInjections = this.outputPositionToOffsetInInputWithInjections(outputLineIndex, outputOffset);\n      const normalizedOffsetInUnwrappedLine = this.normalizeOffsetInInputWithInjectionsAroundInjections(offsetInInputWithInjections, affinity);\n      if (normalizedOffsetInUnwrappedLine !== offsetInInputWithInjections) {\n        return this.offsetInInputWithInjectionsToOutputPosition(normalizedOffsetInUnwrappedLine, affinity);\n      }\n    }\n    if (affinity === 0) {\n      if (outputLineIndex \u003e 0 \u0026\u0026 outputOffset === this.getMinOutputOffset(outputLineIndex)) {\n        return new OutputPosition(outputLineIndex - 1, this.getMaxOutputOffset(outputLineIndex - 1));\n      }\n    } else if (affinity === 1) {\n      const maxOutputLineIndex = this.getOutputLineCount() - 1;\n      if (outputLineIndex \u003c maxOutputLineIndex \u0026\u0026 outputOffset === this.getMaxOutputOffset(outputLineIndex)) {\n        return new OutputPosition(outputLineIndex + 1, this.getMinOutputOffset(outputLineIndex + 1));\n      }\n    }\n    return new OutputPosition(outputLineIndex, outputOffset);\n  }\n  outputPositionToOffsetInInputWithInjections(outputLineIndex, outputOffset) {\n    if (outputLineIndex \u003e 0) {\n      outputOffset = Math.max(0, outputOffset - this.wrappedTextIndentLength);\n    }\n    const result = (outputLineIndex \u003e 0 ? this.breakOffsets[outputLineIndex - 1] : 0) + outputOffset;\n    return result;\n  }\n  normalizeOffsetInInputWithInjectionsAroundInjections(offsetInInputWithInjections, affinity) {\n    const injectedText = this.getInjectedTextAtOffset(offsetInInputWithInjections);\n    if (!injectedText) {\n      return offsetInInputWithInjections;\n    }\n    if (affinity === 2) {\n      if (offsetInInputWithInjections === injectedText.offsetInInputWithInjections + injectedText.length \u0026\u0026 hasRightCursorStop(this.injectionOptions[injectedText.injectedTextIndex].cursorStops)) {\n        return injectedText.offsetInInputWithInjections + injectedText.length;\n      } else {\n        let result = injectedText.offsetInInputWithInjections;\n        if (hasLeftCursorStop(this.injectionOptions[injectedText.injectedTextIndex].cursorStops)) {\n          return result;\n        }\n        let index = injectedText.injectedTextIndex - 1;\n        while (index \u003e= 0 \u0026\u0026 this.injectionOffsets[index] === this.injectionOffsets[injectedText.injectedTextIndex]) {\n          if (hasRightCursorStop(this.injectionOptions[index].cursorStops)) {\n            break;\n          }\n          result -= this.injectionOptions[index].content.length;\n          if (hasLeftCursorStop(this.injectionOptions[index].cursorStops)) {\n            break;\n          }\n          index--;\n        }\n        return result;\n      }\n    } else if (affinity === 1 || affinity === 4) {\n      let result = injectedText.offsetInInputWithInjections + injectedText.length;\n      let index = injectedText.injectedTextIndex;\n      while (index + 1 \u003c this.injectionOffsets.length \u0026\u0026 this.injectionOffsets[index + 1] === this.injectionOffsets[index]) {\n        result += this.injectionOptions[index + 1].content.length;\n        index++;\n      }\n      return result;\n    } else if (affinity === 0 || affinity === 3) {\n      let result = injectedText.offsetInInputWithInjections;\n      let index = injectedText.injectedTextIndex;\n      while (index - 1 \u003e= 0 \u0026\u0026 this.injectionOffsets[index - 1] === this.injectionOffsets[index]) {\n        result -= this.injectionOptions[index - 1].content.length;\n        index--;\n      }\n      return result;\n    }\n    assertNever(affinity);\n  }\n  getInjectedText(outputLineIndex, outputOffset) {\n    const offset = this.outputPositionToOffsetInInputWithInjections(outputLineIndex, outputOffset);\n    const injectedText = this.getInjectedTextAtOffset(offset);\n    if (!injectedText) {\n      return null;\n    }\n    return {\n      options: this.injectionOptions[injectedText.injectedTextIndex]\n    };\n  }\n  getInjectedTextAtOffset(offsetInInputWithInjections) {\n    const injectionOffsets = this.injectionOffsets;\n    const injectionOptions = this.injectionOptions;\n    if (injectionOffsets !== null) {\n      let totalInjectedTextLengthBefore = 0;\n      for (let i2 = 0; i2 \u003c injectionOffsets.length; i2++) {\n        const length = injectionOptions[i2].content.length;\n        const injectedTextStartOffsetInInputWithInjections = injectionOffsets[i2] + totalInjectedTextLengthBefore;\n        const injectedTextEndOffsetInInputWithInjections = injectionOffsets[i2] + totalInjectedTextLengthBefore + length;\n        if (injectedTextStartOffsetInInputWithInjections \u003e offsetInInputWithInjections) {\n          break;\n        }\n        if (offsetInInputWithInjections \u003c= injectedTextEndOffsetInInputWithInjections) {\n          return {\n            injectedTextIndex: i2,\n            offsetInInputWithInjections: injectedTextStartOffsetInInputWithInjections,\n            length\n          };\n        }\n        totalInjectedTextLengthBefore += length;\n      }\n    }\n    return void 0;\n  }\n};\nfunction hasRightCursorStop(cursorStop) {\n  if (cursorStop === null || cursorStop === void 0) {\n    return true;\n  }\n  return cursorStop === InjectedTextCursorStops.Right || cursorStop === InjectedTextCursorStops.Both;\n}\nfunction hasLeftCursorStop(cursorStop) {\n  if (cursorStop === null || cursorStop === void 0) {\n    return true;\n  }\n  return cursorStop === InjectedTextCursorStops.Left || cursorStop === InjectedTextCursorStops.Both;\n}\nvar OutputPosition = class {\n  constructor(outputLineIndex, outputOffset) {\n    this.outputLineIndex = outputLineIndex;\n    this.outputOffset = outputOffset;\n  }\n  toString() {\n    return `${this.outputLineIndex}:${this.outputOffset}`;\n  }\n  toPosition(baseLineNumber) {\n    return new Position(baseLineNumber + this.outputLineIndex, this.outputOffset + 1);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/view/domLineBreaksComputer.js\ninit_textModelEvents();\nvar ttPolicy2 = createTrustedTypesPolicy(\"domLineBreaksComputer\", { createHTML: (value) =\u003e value });\nvar DOMLineBreaksComputerFactory = class _DOMLineBreaksComputerFactory {\n  static create(targetWindow) {\n    return new _DOMLineBreaksComputerFactory(new WeakRef(targetWindow));\n  }\n  constructor(targetWindow) {\n    this.targetWindow = targetWindow;\n  }\n  createLineBreaksComputer(fontInfo, tabSize, wrappingColumn, wrappingIndent, wordBreak, wrapOnEscapedLineFeeds) {\n    const requests = [];\n    const injectedTexts = [];\n    return {\n      addRequest: (lineText, injectedText, previousLineBreakData) =\u003e {\n        requests.push(lineText);\n        injectedTexts.push(injectedText);\n      },\n      finalize: () =\u003e {\n        return createLineBreaks(assertReturnsDefined(this.targetWindow.deref()), requests, fontInfo, tabSize, wrappingColumn, wrappingIndent, wordBreak, injectedTexts);\n      }\n    };\n  }\n};\nfunction createLineBreaks(targetWindow, requests, fontInfo, tabSize, firstLineBreakColumn, wrappingIndent, wordBreak, injectedTextsPerLine) {\n  function createEmptyLineBreakWithPossiblyInjectedText(requestIdx) {\n    const injectedTexts = injectedTextsPerLine[requestIdx];\n    if (injectedTexts) {\n      const lineText = LineInjectedText.applyInjectedText(requests[requestIdx], injectedTexts);\n      const injectionOptions = injectedTexts.map((t) =\u003e t.options);\n      const injectionOffsets = injectedTexts.map((text2) =\u003e text2.column - 1);\n      return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);\n    } else {\n      return null;\n    }\n  }\n  if (firstLineBreakColumn === -1) {\n    const result2 = [];\n    for (let i2 = 0, len = requests.length; i2 \u003c len; i2++) {\n      result2[i2] = createEmptyLineBreakWithPossiblyInjectedText(i2);\n    }\n    return result2;\n  }\n  const overallWidth = Math.round(firstLineBreakColumn * fontInfo.typicalHalfwidthCharacterWidth);\n  const additionalIndent = wrappingIndent === 3 ? 2 : wrappingIndent === 2 ? 1 : 0;\n  const additionalIndentSize = Math.round(tabSize * additionalIndent);\n  const additionalIndentLength = Math.ceil(fontInfo.spaceWidth * additionalIndentSize);\n  const containerDomNode = document.createElement(\"div\");\n  applyFontInfo(containerDomNode, fontInfo);\n  const sb = new StringBuilder(1e4);\n  const firstNonWhitespaceIndices = [];\n  const wrappedTextIndentLengths = [];\n  const renderLineContents = [];\n  const allCharOffsets = [];\n  const allVisibleColumns = [];\n  for (let i2 = 0; i2 \u003c requests.length; i2++) {\n    const lineContent = LineInjectedText.applyInjectedText(requests[i2], injectedTextsPerLine[i2]);\n    let firstNonWhitespaceIndex2 = 0;\n    let wrappedTextIndentLength = 0;\n    let width2 = overallWidth;\n    if (wrappingIndent !== 0) {\n      firstNonWhitespaceIndex2 = firstNonWhitespaceIndex(lineContent);\n      if (firstNonWhitespaceIndex2 === -1) {\n        firstNonWhitespaceIndex2 = 0;\n      } else {\n        for (let i3 = 0; i3 \u003c firstNonWhitespaceIndex2; i3++) {\n          const charWidth = lineContent.charCodeAt(i3) === 9 ? tabSize - wrappedTextIndentLength % tabSize : 1;\n          wrappedTextIndentLength += charWidth;\n        }\n        const indentWidth = Math.ceil(fontInfo.spaceWidth * wrappedTextIndentLength);\n        if (indentWidth + fontInfo.typicalFullwidthCharacterWidth \u003e overallWidth) {\n          firstNonWhitespaceIndex2 = 0;\n          wrappedTextIndentLength = 0;\n        } else {\n          width2 = overallWidth - indentWidth;\n        }\n      }\n    }\n    const renderLineContent = lineContent.substr(firstNonWhitespaceIndex2);\n    const tmp = renderLine(renderLineContent, wrappedTextIndentLength, tabSize, width2, sb, additionalIndentLength);\n    firstNonWhitespaceIndices[i2] = firstNonWhitespaceIndex2;\n    wrappedTextIndentLengths[i2] = wrappedTextIndentLength;\n    renderLineContents[i2] = renderLineContent;\n    allCharOffsets[i2] = tmp[0];\n    allVisibleColumns[i2] = tmp[1];\n  }\n  const html3 = sb.build();\n  const trustedhtml = ttPolicy2?.createHTML(html3) ?? html3;\n  containerDomNode.innerHTML = trustedhtml;\n  containerDomNode.style.position = \"absolute\";\n  containerDomNode.style.top = \"10000\";\n  if (wordBreak === \"keepAll\") {\n    containerDomNode.style.wordBreak = \"keep-all\";\n    containerDomNode.style.overflowWrap = \"anywhere\";\n  } else {\n    containerDomNode.style.wordBreak = \"inherit\";\n    containerDomNode.style.overflowWrap = \"break-word\";\n  }\n  targetWindow.document.body.appendChild(containerDomNode);\n  const range2 = document.createRange();\n  const lineDomNodes = Array.prototype.slice.call(containerDomNode.children, 0);\n  const result = [];\n  for (let i2 = 0; i2 \u003c requests.length; i2++) {\n    const lineDomNode = lineDomNodes[i2];\n    const breakOffsets = readLineBreaks(range2, lineDomNode, renderLineContents[i2], allCharOffsets[i2]);\n    if (breakOffsets === null) {\n      result[i2] = createEmptyLineBreakWithPossiblyInjectedText(i2);\n      continue;\n    }\n    const firstNonWhitespaceIndex2 = firstNonWhitespaceIndices[i2];\n    const wrappedTextIndentLength = wrappedTextIndentLengths[i2] + additionalIndentSize;\n    const visibleColumns = allVisibleColumns[i2];\n    const breakOffsetsVisibleColumn = [];\n    for (let j = 0, len = breakOffsets.length; j \u003c len; j++) {\n      breakOffsetsVisibleColumn[j] = visibleColumns[breakOffsets[j]];\n    }\n    if (firstNonWhitespaceIndex2 !== 0) {\n      for (let j = 0, len = breakOffsets.length; j \u003c len; j++) {\n        breakOffsets[j] += firstNonWhitespaceIndex2;\n      }\n    }\n    let injectionOptions;\n    let injectionOffsets;\n    const curInjectedTexts = injectedTextsPerLine[i2];\n    if (curInjectedTexts) {\n      injectionOptions = curInjectedTexts.map((t) =\u003e t.options);\n      injectionOffsets = curInjectedTexts.map((text2) =\u003e text2.column - 1);\n    } else {\n      injectionOptions = null;\n      injectionOffsets = null;\n    }\n    result[i2] = new ModelLineProjectionData(injectionOffsets, injectionOptions, breakOffsets, breakOffsetsVisibleColumn, wrappedTextIndentLength);\n  }\n  containerDomNode.remove();\n  return result;\n}\nfunction renderLine(lineContent, initialVisibleColumn, tabSize, width2, sb, wrappingIndentLength) {\n  if (wrappingIndentLength !== 0) {\n    const hangingOffset = String(wrappingIndentLength);\n    sb.appendString('\u003cdiv style=\"text-indent: -');\n    sb.appendString(hangingOffset);\n    sb.appendString(\"px; padding-left: \");\n    sb.appendString(hangingOffset);\n    sb.appendString(\"px; box-sizing: border-box; width:\");\n  } else {\n    sb.appendString('\u003cdiv style=\"width:');\n  }\n  sb.appendString(String(width2));\n  sb.appendString('px;\"\u003e');\n  const len = lineContent.length;\n  let visibleColumn = initialVisibleColumn;\n  let charOffset = 0;\n  const charOffsets = [];\n  const visibleColumns = [];\n  let nextCharCode = 0 \u003c len ? lineContent.charCodeAt(0) : 0;\n  sb.appendString(\"\u003cspan\u003e\");\n  for (let charIndex = 0; charIndex \u003c len; charIndex++) {\n    if (charIndex !== 0 \u0026\u0026 charIndex % 16384 === 0) {\n      sb.appendString(\"\u003c/span\u003e\u003cspan\u003e\");\n    }\n    charOffsets[charIndex] = charOffset;\n    visibleColumns[charIndex] = visibleColumn;\n    const charCode = nextCharCode;\n    nextCharCode = charIndex + 1 \u003c len ? lineContent.charCodeAt(charIndex + 1) : 0;\n    let producedCharacters = 1;\n    let charWidth = 1;\n    switch (charCode) {\n      case 9:\n        producedCharacters = tabSize - visibleColumn % tabSize;\n        charWidth = producedCharacters;\n        for (let space = 1; space \u003c= producedCharacters; space++) {\n          if (space \u003c producedCharacters) {\n            sb.appendCharCode(160);\n          } else {\n            sb.appendASCIICharCode(\n              32\n              /* CharCode.Space */\n            );\n          }\n        }\n        break;\n      case 32:\n        if (nextCharCode === 32) {\n          sb.appendCharCode(160);\n        } else {\n          sb.appendASCIICharCode(\n            32\n            /* CharCode.Space */\n          );\n        }\n        break;\n      case 60:\n        sb.appendString(\"\u0026lt;\");\n        break;\n      case 62:\n        sb.appendString(\"\u0026gt;\");\n        break;\n      case 38:\n        sb.appendString(\"\u0026amp;\");\n        break;\n      case 0:\n        sb.appendString(\"\u0026#00;\");\n        break;\n      case 65279:\n      case 8232:\n      case 8233:\n      case 133:\n        sb.appendCharCode(65533);\n        break;\n      default:\n        if (isFullWidthCharacter(charCode)) {\n          charWidth++;\n        }\n        if (charCode \u003c 32) {\n          sb.appendCharCode(9216 + charCode);\n        } else {\n          sb.appendCharCode(charCode);\n        }\n    }\n    charOffset += producedCharacters;\n    visibleColumn += charWidth;\n  }\n  sb.appendString(\"\u003c/span\u003e\");\n  charOffsets[lineContent.length] = charOffset;\n  visibleColumns[lineContent.length] = visibleColumn;\n  sb.appendString(\"\u003c/div\u003e\");\n  return [charOffsets, visibleColumns];\n}\nfunction readLineBreaks(range2, lineDomNode, lineContent, charOffsets) {\n  if (lineContent.length \u003c= 1) {\n    return null;\n  }\n  const spans = Array.prototype.slice.call(lineDomNode.children, 0);\n  const breakOffsets = [];\n  try {\n    discoverBreaks(range2, spans, charOffsets, 0, null, lineContent.length - 1, null, breakOffsets);\n  } catch (err) {\n    console.log(err);\n    return null;\n  }\n  if (breakOffsets.length === 0) {\n    return null;\n  }\n  breakOffsets.push(lineContent.length);\n  return breakOffsets;\n}\nfunction discoverBreaks(range2, spans, charOffsets, low, lowRects, high, highRects, result) {\n  if (low === high) {\n    return;\n  }\n  lowRects = lowRects || readClientRect(range2, spans, charOffsets[low], charOffsets[low + 1]);\n  highRects = highRects || readClientRect(range2, spans, charOffsets[high], charOffsets[high + 1]);\n  if (Math.abs(lowRects[0].top - highRects[0].top) \u003c= 0.1) {\n    return;\n  }\n  if (low + 1 === high) {\n    result.push(high);\n    return;\n  }\n  const mid = low + (high - low) / 2 | 0;\n  const midRects = readClientRect(range2, spans, charOffsets[mid], charOffsets[mid + 1]);\n  discoverBreaks(range2, spans, charOffsets, low, lowRects, mid, midRects, result);\n  discoverBreaks(range2, spans, charOffsets, mid, midRects, high, highRects, result);\n}\nfunction readClientRect(range2, spans, startOffset, endOffset) {\n  range2.setStart(\n    spans[startOffset / 16384 | 0].firstChild,\n    startOffset % 16384\n    /* Constants.SPAN_MODULO_LIMIT */\n  );\n  range2.setEnd(\n    spans[endOffset / 16384 | 0].firstChild,\n    endOffset % 16384\n    /* Constants.SPAN_MODULO_LIMIT */\n  );\n  return range2.getClientRects();\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditor/codeEditorContributions.js\ninit_dom();\ninit_errors();\ninit_lifecycle();\nvar CodeEditorContributions = class extends Disposable {\n  constructor() {\n    super();\n    this._editor = null;\n    this._instantiationService = null;\n    this._instances = this._register(new DisposableMap());\n    this._pending = /* @__PURE__ */ new Map();\n    this._finishedInstantiation = [];\n    this._finishedInstantiation[\n      0\n      /* EditorContributionInstantiation.Eager */\n    ] = false;\n    this._finishedInstantiation[\n      1\n      /* EditorContributionInstantiation.AfterFirstRender */\n    ] = false;\n    this._finishedInstantiation[\n      2\n      /* EditorContributionInstantiation.BeforeFirstInteraction */\n    ] = false;\n    this._finishedInstantiation[\n      3\n      /* EditorContributionInstantiation.Eventually */\n    ] = false;\n  }\n  initialize(editor2, contributions, instantiationService) {\n    this._editor = editor2;\n    this._instantiationService = instantiationService;\n    for (const desc of contributions) {\n      if (this._pending.has(desc.id)) {\n        onUnexpectedError(new Error(`Cannot have two contributions with the same id ${desc.id}`));\n        continue;\n      }\n      this._pending.set(desc.id, desc);\n    }\n    this._instantiateSome(\n      0\n      /* EditorContributionInstantiation.Eager */\n    );\n    this._register(runWhenWindowIdle(getWindow(this._editor.getDomNode()), () =\u003e {\n      this._instantiateSome(\n        1\n        /* EditorContributionInstantiation.AfterFirstRender */\n      );\n    }));\n    this._register(runWhenWindowIdle(getWindow(this._editor.getDomNode()), () =\u003e {\n      this._instantiateSome(\n        2\n        /* EditorContributionInstantiation.BeforeFirstInteraction */\n      );\n    }));\n    this._register(runWhenWindowIdle(getWindow(this._editor.getDomNode()), () =\u003e {\n      this._instantiateSome(\n        3\n        /* EditorContributionInstantiation.Eventually */\n      );\n    }, 5e3));\n  }\n  saveViewState() {\n    const contributionsState = {};\n    for (const [id, contribution] of this._instances) {\n      if (typeof contribution.saveViewState === \"function\") {\n        contributionsState[id] = contribution.saveViewState();\n      }\n    }\n    return contributionsState;\n  }\n  restoreViewState(contributionsState) {\n    for (const [id, contribution] of this._instances) {\n      if (typeof contribution.restoreViewState === \"function\") {\n        contribution.restoreViewState(contributionsState[id]);\n      }\n    }\n  }\n  get(id) {\n    this._instantiateById(id);\n    return this._instances.get(id) || null;\n  }\n  onBeforeInteractionEvent() {\n    this._instantiateSome(\n      2\n      /* EditorContributionInstantiation.BeforeFirstInteraction */\n    );\n  }\n  onAfterModelAttached() {\n    return runWhenWindowIdle(getWindow(this._editor?.getDomNode()), () =\u003e {\n      this._instantiateSome(\n        1\n        /* EditorContributionInstantiation.AfterFirstRender */\n      );\n    }, 50);\n  }\n  _instantiateSome(instantiation) {\n    if (this._finishedInstantiation[instantiation]) {\n      return;\n    }\n    this._finishedInstantiation[instantiation] = true;\n    const contribs = this._findPendingContributionsByInstantiation(instantiation);\n    for (const contrib of contribs) {\n      this._instantiateById(contrib.id);\n    }\n  }\n  _findPendingContributionsByInstantiation(instantiation) {\n    const result = [];\n    for (const [, desc] of this._pending) {\n      if (desc.instantiation === instantiation) {\n        result.push(desc);\n      }\n    }\n    return result;\n  }\n  _instantiateById(id) {\n    const desc = this._pending.get(id);\n    if (!desc) {\n      return;\n    }\n    this._pending.delete(id);\n    if (!this._instantiationService || !this._editor) {\n      throw new Error(`Cannot instantiate contributions before being initialized!`);\n    }\n    try {\n      const instance = this._instantiationService.createInstance(desc.ctor, this._editor);\n      this._instances.set(desc.id, instance);\n      if (typeof instance.restoreViewState === \"function\" \u0026\u0026 desc.instantiation !== 0) {\n        console.warn(`Editor contribution '${desc.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`);\n      }\n    } catch (err) {\n      onUnexpectedError(err);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js\ninit_cursorColumns();\ninit_editorColorRegistry();\ninit_position();\ninit_range();\ninit_selection();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/editorAction.js\nvar InternalEditorAction = class {\n  constructor(id, label, alias, metadata, _precondition, _run, _contextKeyService) {\n    this.id = id;\n    this.label = label;\n    this.alias = alias;\n    this.metadata = metadata;\n    this._precondition = _precondition;\n    this._run = _run;\n    this._contextKeyService = _contextKeyService;\n  }\n  isSupported() {\n    return this._contextKeyService.contextMatchesRules(this._precondition);\n  }\n  run(args) {\n    if (!this.isSupported()) {\n      return Promise.resolve(void 0);\n    }\n    return this._run(args);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/editorCommon.js\nvar EditorType = {\n  ICodeEditor: \"vs.editor.ICodeEditor\",\n  IDiffEditor: \"vs.editor.IDiffEditor\"\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js\ninit_editorContextKeys();\ninit_languageConfigurationRegistry();\ninit_textModel();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/monospaceLineBreaksComputer.js\ninit_strings();\ninit_characterClassifier();\ninit_textModelEvents();\nvar MonospaceLineBreaksComputerFactory = class _MonospaceLineBreaksComputerFactory {\n  static create(options2) {\n    return new _MonospaceLineBreaksComputerFactory(options2.get(\n      150\n      /* EditorOption.wordWrapBreakBeforeCharacters */\n    ), options2.get(\n      149\n      /* EditorOption.wordWrapBreakAfterCharacters */\n    ));\n  }\n  constructor(breakBeforeChars, breakAfterChars) {\n    this.classifier = new WrappingCharacterClassifier(breakBeforeChars, breakAfterChars);\n  }\n  createLineBreaksComputer(fontInfo, tabSize, wrappingColumn, wrappingIndent, wordBreak, wrapOnEscapedLineFeeds) {\n    const requests = [];\n    const injectedTexts = [];\n    const previousBreakingData = [];\n    return {\n      addRequest: (lineText, injectedText, previousLineBreakData) =\u003e {\n        requests.push(lineText);\n        injectedTexts.push(injectedText);\n        previousBreakingData.push(previousLineBreakData);\n      },\n      finalize: () =\u003e {\n        const columnsForFullWidthChar = fontInfo.typicalFullwidthCharacterWidth / fontInfo.typicalHalfwidthCharacterWidth;\n        const result = [];\n        for (let i2 = 0, len = requests.length; i2 \u003c len; i2++) {\n          const injectedText = injectedTexts[i2];\n          const previousLineBreakData = previousBreakingData[i2];\n          if (previousLineBreakData \u0026\u0026 !previousLineBreakData.injectionOptions \u0026\u0026 !injectedText) {\n            result[i2] = createLineBreaksFromPreviousLineBreaks(this.classifier, previousLineBreakData, requests[i2], tabSize, wrappingColumn, columnsForFullWidthChar, wrappingIndent, wordBreak);\n          } else {\n            result[i2] = createLineBreaks2(this.classifier, requests[i2], injectedText, tabSize, wrappingColumn, columnsForFullWidthChar, wrappingIndent, wordBreak, wrapOnEscapedLineFeeds);\n          }\n        }\n        arrPool1.length = 0;\n        arrPool2.length = 0;\n        return result;\n      }\n    };\n  }\n};\nvar WrappingCharacterClassifier = class extends CharacterClassifier {\n  constructor(BREAK_BEFORE, BREAK_AFTER) {\n    super(\n      0\n      /* CharacterClass.NONE */\n    );\n    for (let i2 = 0; i2 \u003c BREAK_BEFORE.length; i2++) {\n      this.set(\n        BREAK_BEFORE.charCodeAt(i2),\n        1\n        /* CharacterClass.BREAK_BEFORE */\n      );\n    }\n    for (let i2 = 0; i2 \u003c BREAK_AFTER.length; i2++) {\n      this.set(\n        BREAK_AFTER.charCodeAt(i2),\n        2\n        /* CharacterClass.BREAK_AFTER */\n      );\n    }\n  }\n  get(charCode) {\n    if (charCode \u003e= 0 \u0026\u0026 charCode \u003c 256) {\n      return this._asciiMap[charCode];\n    } else {\n      if (charCode \u003e= 12352 \u0026\u0026 charCode \u003c= 12543 || charCode \u003e= 13312 \u0026\u0026 charCode \u003c= 19903 || charCode \u003e= 19968 \u0026\u0026 charCode \u003c= 40959) {\n        return 3;\n      }\n      return this._map.get(charCode) || this._defaultValue;\n    }\n  }\n};\nvar arrPool1 = [];\nvar arrPool2 = [];\nfunction createLineBreaksFromPreviousLineBreaks(classifier, previousBreakingData, lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent, wordBreak) {\n  if (firstLineBreakColumn === -1) {\n    return null;\n  }\n  const len = lineText.length;\n  if (len \u003c= 1) {\n    return null;\n  }\n  const isKeepAll = wordBreak === \"keepAll\";\n  const prevBreakingOffsets = previousBreakingData.breakOffsets;\n  const prevBreakingOffsetsVisibleColumn = previousBreakingData.breakOffsetsVisibleColumn;\n  const wrappedTextIndentLength = computeWrappedTextIndentLength(lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent);\n  const wrappedLineBreakColumn = firstLineBreakColumn - wrappedTextIndentLength;\n  const breakingOffsets = arrPool1;\n  const breakingOffsetsVisibleColumn = arrPool2;\n  let breakingOffsetsCount = 0;\n  let lastBreakingOffset = 0;\n  let lastBreakingOffsetVisibleColumn = 0;\n  let breakingColumn = firstLineBreakColumn;\n  const prevLen = prevBreakingOffsets.length;\n  let prevIndex = 0;\n  if (prevIndex \u003e= 0) {\n    let bestDistance = Math.abs(prevBreakingOffsetsVisibleColumn[prevIndex] - breakingColumn);\n    while (prevIndex + 1 \u003c prevLen) {\n      const distance = Math.abs(prevBreakingOffsetsVisibleColumn[prevIndex + 1] - breakingColumn);\n      if (distance \u003e= bestDistance) {\n        break;\n      }\n      bestDistance = distance;\n      prevIndex++;\n    }\n  }\n  while (prevIndex \u003c prevLen) {\n    let prevBreakOffset = prevIndex \u003c 0 ? 0 : prevBreakingOffsets[prevIndex];\n    let prevBreakOffsetVisibleColumn = prevIndex \u003c 0 ? 0 : prevBreakingOffsetsVisibleColumn[prevIndex];\n    if (lastBreakingOffset \u003e prevBreakOffset) {\n      prevBreakOffset = lastBreakingOffset;\n      prevBreakOffsetVisibleColumn = lastBreakingOffsetVisibleColumn;\n    }\n    let breakOffset = 0;\n    let breakOffsetVisibleColumn = 0;\n    let forcedBreakOffset = 0;\n    let forcedBreakOffsetVisibleColumn = 0;\n    if (prevBreakOffsetVisibleColumn \u003c= breakingColumn) {\n      let visibleColumn = prevBreakOffsetVisibleColumn;\n      let prevCharCode = prevBreakOffset === 0 ? 0 : lineText.charCodeAt(prevBreakOffset - 1);\n      let prevCharCodeClass = prevBreakOffset === 0 ? 0 : classifier.get(prevCharCode);\n      let entireLineFits = true;\n      for (let i2 = prevBreakOffset; i2 \u003c len; i2++) {\n        const charStartOffset = i2;\n        const charCode = lineText.charCodeAt(i2);\n        let charCodeClass;\n        let charWidth;\n        if (isHighSurrogate(charCode)) {\n          i2++;\n          charCodeClass = 0;\n          charWidth = 2;\n        } else {\n          charCodeClass = classifier.get(charCode);\n          charWidth = computeCharWidth(charCode, visibleColumn, tabSize, columnsForFullWidthChar);\n        }\n        if (charStartOffset \u003e lastBreakingOffset \u0026\u0026 canBreak(prevCharCode, prevCharCodeClass, charCode, charCodeClass, isKeepAll)) {\n          breakOffset = charStartOffset;\n          breakOffsetVisibleColumn = visibleColumn;\n        }\n        visibleColumn += charWidth;\n        if (visibleColumn \u003e breakingColumn) {\n          if (charStartOffset \u003e lastBreakingOffset) {\n            forcedBreakOffset = charStartOffset;\n            forcedBreakOffsetVisibleColumn = visibleColumn - charWidth;\n          } else {\n            forcedBreakOffset = i2 + 1;\n            forcedBreakOffsetVisibleColumn = visibleColumn;\n          }\n          if (visibleColumn - breakOffsetVisibleColumn \u003e wrappedLineBreakColumn) {\n            breakOffset = 0;\n          }\n          entireLineFits = false;\n          break;\n        }\n        prevCharCode = charCode;\n        prevCharCodeClass = charCodeClass;\n      }\n      if (entireLineFits) {\n        if (breakingOffsetsCount \u003e 0) {\n          breakingOffsets[breakingOffsetsCount] = prevBreakingOffsets[prevBreakingOffsets.length - 1];\n          breakingOffsetsVisibleColumn[breakingOffsetsCount] = prevBreakingOffsetsVisibleColumn[prevBreakingOffsets.length - 1];\n          breakingOffsetsCount++;\n        }\n        break;\n      }\n    }\n    if (breakOffset === 0) {\n      let visibleColumn = prevBreakOffsetVisibleColumn;\n      let charCode = lineText.charCodeAt(prevBreakOffset);\n      let charCodeClass = classifier.get(charCode);\n      let hitATabCharacter = false;\n      for (let i2 = prevBreakOffset - 1; i2 \u003e= lastBreakingOffset; i2--) {\n        const charStartOffset = i2 + 1;\n        const prevCharCode = lineText.charCodeAt(i2);\n        if (prevCharCode === 9) {\n          hitATabCharacter = true;\n          break;\n        }\n        let prevCharCodeClass;\n        let prevCharWidth;\n        if (isLowSurrogate(prevCharCode)) {\n          i2--;\n          prevCharCodeClass = 0;\n          prevCharWidth = 2;\n        } else {\n          prevCharCodeClass = classifier.get(prevCharCode);\n          prevCharWidth = isFullWidthCharacter(prevCharCode) ? columnsForFullWidthChar : 1;\n        }\n        if (visibleColumn \u003c= breakingColumn) {\n          if (forcedBreakOffset === 0) {\n            forcedBreakOffset = charStartOffset;\n            forcedBreakOffsetVisibleColumn = visibleColumn;\n          }\n          if (visibleColumn \u003c= breakingColumn - wrappedLineBreakColumn) {\n            break;\n          }\n          if (canBreak(prevCharCode, prevCharCodeClass, charCode, charCodeClass, isKeepAll)) {\n            breakOffset = charStartOffset;\n            breakOffsetVisibleColumn = visibleColumn;\n            break;\n          }\n        }\n        visibleColumn -= prevCharWidth;\n        charCode = prevCharCode;\n        charCodeClass = prevCharCodeClass;\n      }\n      if (breakOffset !== 0) {\n        const remainingWidthOfNextLine = wrappedLineBreakColumn - (forcedBreakOffsetVisibleColumn - breakOffsetVisibleColumn);\n        if (remainingWidthOfNextLine \u003c= tabSize) {\n          const charCodeAtForcedBreakOffset = lineText.charCodeAt(forcedBreakOffset);\n          let charWidth;\n          if (isHighSurrogate(charCodeAtForcedBreakOffset)) {\n            charWidth = 2;\n          } else {\n            charWidth = computeCharWidth(charCodeAtForcedBreakOffset, forcedBreakOffsetVisibleColumn, tabSize, columnsForFullWidthChar);\n          }\n          if (remainingWidthOfNextLine - charWidth \u003c 0) {\n            breakOffset = 0;\n          }\n        }\n      }\n      if (hitATabCharacter) {\n        prevIndex--;\n        continue;\n      }\n    }\n    if (breakOffset === 0) {\n      breakOffset = forcedBreakOffset;\n      breakOffsetVisibleColumn = forcedBreakOffsetVisibleColumn;\n    }\n    if (breakOffset \u003c= lastBreakingOffset) {\n      const charCode = lineText.charCodeAt(lastBreakingOffset);\n      if (isHighSurrogate(charCode)) {\n        breakOffset = lastBreakingOffset + 2;\n        breakOffsetVisibleColumn = lastBreakingOffsetVisibleColumn + 2;\n      } else {\n        breakOffset = lastBreakingOffset + 1;\n        breakOffsetVisibleColumn = lastBreakingOffsetVisibleColumn + computeCharWidth(charCode, lastBreakingOffsetVisibleColumn, tabSize, columnsForFullWidthChar);\n      }\n    }\n    lastBreakingOffset = breakOffset;\n    breakingOffsets[breakingOffsetsCount] = breakOffset;\n    lastBreakingOffsetVisibleColumn = breakOffsetVisibleColumn;\n    breakingOffsetsVisibleColumn[breakingOffsetsCount] = breakOffsetVisibleColumn;\n    breakingOffsetsCount++;\n    breakingColumn = breakOffsetVisibleColumn + wrappedLineBreakColumn;\n    while (prevIndex \u003c 0 || prevIndex \u003c prevLen \u0026\u0026 prevBreakingOffsetsVisibleColumn[prevIndex] \u003c breakOffsetVisibleColumn) {\n      prevIndex++;\n    }\n    let bestDistance = Math.abs(prevBreakingOffsetsVisibleColumn[prevIndex] - breakingColumn);\n    while (prevIndex + 1 \u003c prevLen) {\n      const distance = Math.abs(prevBreakingOffsetsVisibleColumn[prevIndex + 1] - breakingColumn);\n      if (distance \u003e= bestDistance) {\n        break;\n      }\n      bestDistance = distance;\n      prevIndex++;\n    }\n  }\n  if (breakingOffsetsCount === 0) {\n    return null;\n  }\n  breakingOffsets.length = breakingOffsetsCount;\n  breakingOffsetsVisibleColumn.length = breakingOffsetsCount;\n  arrPool1 = previousBreakingData.breakOffsets;\n  arrPool2 = previousBreakingData.breakOffsetsVisibleColumn;\n  previousBreakingData.breakOffsets = breakingOffsets;\n  previousBreakingData.breakOffsetsVisibleColumn = breakingOffsetsVisibleColumn;\n  previousBreakingData.wrappedTextIndentLength = wrappedTextIndentLength;\n  return previousBreakingData;\n}\nfunction createLineBreaks2(classifier, _lineText, injectedTexts, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent, wordBreak, wrapOnEscapedLineFeeds) {\n  const lineText = LineInjectedText.applyInjectedText(_lineText, injectedTexts);\n  let injectionOptions;\n  let injectionOffsets;\n  if (injectedTexts \u0026\u0026 injectedTexts.length \u003e 0) {\n    injectionOptions = injectedTexts.map((t) =\u003e t.options);\n    injectionOffsets = injectedTexts.map((text2) =\u003e text2.column - 1);\n  } else {\n    injectionOptions = null;\n    injectionOffsets = null;\n  }\n  if (firstLineBreakColumn === -1) {\n    if (!injectionOptions) {\n      return null;\n    }\n    return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);\n  }\n  const len = lineText.length;\n  if (len \u003c= 1) {\n    if (!injectionOptions) {\n      return null;\n    }\n    return new ModelLineProjectionData(injectionOffsets, injectionOptions, [lineText.length], [], 0);\n  }\n  const isKeepAll = wordBreak === \"keepAll\";\n  const wrappedTextIndentLength = computeWrappedTextIndentLength(lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent);\n  const wrappedLineBreakColumn = firstLineBreakColumn - wrappedTextIndentLength;\n  const breakingOffsets = [];\n  const breakingOffsetsVisibleColumn = [];\n  let breakingOffsetsCount = 0;\n  let breakOffset = 0;\n  let breakOffsetVisibleColumn = 0;\n  let breakingColumn = firstLineBreakColumn;\n  let prevCharCode = lineText.charCodeAt(0);\n  let prevCharCodeClass = classifier.get(prevCharCode);\n  let visibleColumn = computeCharWidth(prevCharCode, 0, tabSize, columnsForFullWidthChar);\n  let startOffset = 1;\n  if (isHighSurrogate(prevCharCode)) {\n    visibleColumn += 1;\n    prevCharCode = lineText.charCodeAt(1);\n    prevCharCodeClass = classifier.get(prevCharCode);\n    startOffset++;\n  }\n  for (let i2 = startOffset; i2 \u003c len; i2++) {\n    const charStartOffset = i2;\n    const charCode = lineText.charCodeAt(i2);\n    let charCodeClass;\n    let charWidth;\n    if (isHighSurrogate(charCode)) {\n      i2++;\n      charCodeClass = 0;\n      charWidth = 2;\n    } else {\n      charCodeClass = classifier.get(charCode);\n      charWidth = computeCharWidth(charCode, visibleColumn, tabSize, columnsForFullWidthChar);\n    }\n    if (canBreak(prevCharCode, prevCharCodeClass, charCode, charCodeClass, isKeepAll)) {\n      breakOffset = charStartOffset;\n      breakOffsetVisibleColumn = visibleColumn;\n    }\n    visibleColumn += charWidth;\n    if (wrapOnEscapedLineFeeds \u0026\u0026 i2 \u003e= 2 \u0026\u0026 (i2 \u003c 3 || lineText.charAt(i2 - 3) !== \"\\\\\") \u0026\u0026 lineText.charAt(i2 - 2) === \"\\\\\" \u0026\u0026 lineText.charAt(i2 - 1) === \"n\" \u0026\u0026 lineText.includes('\"')) {\n      visibleColumn += breakingColumn;\n    }\n    if (visibleColumn \u003e breakingColumn) {\n      if (breakOffset === 0 || visibleColumn - breakOffsetVisibleColumn \u003e wrappedLineBreakColumn) {\n        breakOffset = charStartOffset;\n        breakOffsetVisibleColumn = visibleColumn - charWidth;\n      }\n      breakingOffsets[breakingOffsetsCount] = breakOffset;\n      breakingOffsetsVisibleColumn[breakingOffsetsCount] = breakOffsetVisibleColumn;\n      breakingOffsetsCount++;\n      breakingColumn = breakOffsetVisibleColumn + wrappedLineBreakColumn;\n      breakOffset = 0;\n    }\n    prevCharCode = charCode;\n    prevCharCodeClass = charCodeClass;\n  }\n  if (breakingOffsetsCount === 0 \u0026\u0026 (!injectedTexts || injectedTexts.length === 0)) {\n    return null;\n  }\n  breakingOffsets[breakingOffsetsCount] = len;\n  breakingOffsetsVisibleColumn[breakingOffsetsCount] = visibleColumn;\n  return new ModelLineProjectionData(injectionOffsets, injectionOptions, breakingOffsets, breakingOffsetsVisibleColumn, wrappedTextIndentLength);\n}\nfunction computeCharWidth(charCode, visibleColumn, tabSize, columnsForFullWidthChar) {\n  if (charCode === 9) {\n    return tabSize - visibleColumn % tabSize;\n  }\n  if (isFullWidthCharacter(charCode)) {\n    return columnsForFullWidthChar;\n  }\n  if (charCode \u003c 32) {\n    return columnsForFullWidthChar;\n  }\n  return 1;\n}\nfunction tabCharacterWidth(visibleColumn, tabSize) {\n  return tabSize - visibleColumn % tabSize;\n}\nfunction canBreak(prevCharCode, prevCharCodeClass, charCode, charCodeClass, isKeepAll) {\n  return charCode !== 32 \u0026\u0026 (prevCharCodeClass === 2 \u0026\u0026 charCodeClass !== 2 || prevCharCodeClass !== 1 \u0026\u0026 charCodeClass === 1 || !isKeepAll \u0026\u0026 prevCharCodeClass === 3 \u0026\u0026 charCodeClass !== 2 || !isKeepAll \u0026\u0026 charCodeClass === 3 \u0026\u0026 prevCharCodeClass !== 1);\n}\nfunction computeWrappedTextIndentLength(lineText, tabSize, firstLineBreakColumn, columnsForFullWidthChar, wrappingIndent) {\n  let wrappedTextIndentLength = 0;\n  if (wrappingIndent !== 0) {\n    const firstNonWhitespaceIndex2 = firstNonWhitespaceIndex(lineText);\n    if (firstNonWhitespaceIndex2 !== -1) {\n      for (let i2 = 0; i2 \u003c firstNonWhitespaceIndex2; i2++) {\n        const charWidth = lineText.charCodeAt(i2) === 9 ? tabCharacterWidth(wrappedTextIndentLength, tabSize) : 1;\n        wrappedTextIndentLength += charWidth;\n      }\n      const numberOfAdditionalTabs = wrappingIndent === 3 ? 2 : wrappingIndent === 2 ? 1 : 0;\n      for (let i2 = 0; i2 \u003c numberOfAdditionalTabs; i2++) {\n        const charWidth = tabCharacterWidth(wrappedTextIndentLength, tabSize);\n        wrappedTextIndentLength += charWidth;\n      }\n      if (wrappedTextIndentLength + columnsForFullWidthChar \u003e firstLineBreakColumn) {\n        wrappedTextIndentLength = 0;\n      }\n    }\n  }\n  return wrappedTextIndentLength;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewModelImpl.js\ninit_arrays();\ninit_async();\ninit_color();\ninit_lifecycle();\ninit_platform();\ninit_strings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursor.js\ninit_errors();\ninit_strings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorCollection.js\ninit_arrays();\ninit_arraysFind();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/oneCursor.js\ninit_position();\ninit_range();\ninit_selection();\nvar Cursor = class _Cursor {\n  constructor(context) {\n    this._selTrackedRange = null;\n    this._trackSelection = true;\n    this._setState(context, new SingleCursorState(new Range(1, 1, 1, 1), 0, 0, new Position(1, 1), 0), new SingleCursorState(new Range(1, 1, 1, 1), 0, 0, new Position(1, 1), 0));\n  }\n  dispose(context) {\n    this._removeTrackedRange(context);\n  }\n  startTrackingSelection(context) {\n    this._trackSelection = true;\n    this._updateTrackedRange(context);\n  }\n  stopTrackingSelection(context) {\n    this._trackSelection = false;\n    this._removeTrackedRange(context);\n  }\n  _updateTrackedRange(context) {\n    if (!this._trackSelection) {\n      return;\n    }\n    this._selTrackedRange = context.model._setTrackedRange(\n      this._selTrackedRange,\n      this.modelState.selection,\n      0\n      /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */\n    );\n  }\n  _removeTrackedRange(context) {\n    this._selTrackedRange = context.model._setTrackedRange(\n      this._selTrackedRange,\n      null,\n      0\n      /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */\n    );\n  }\n  asCursorState() {\n    return new CursorState(this.modelState, this.viewState);\n  }\n  readSelectionFromMarkers(context) {\n    const range2 = context.model._getTrackedRange(this._selTrackedRange);\n    if (this.modelState.selection.isEmpty() \u0026\u0026 !range2.isEmpty()) {\n      return Selection.fromRange(range2.collapseToEnd(), this.modelState.selection.getDirection());\n    }\n    return Selection.fromRange(range2, this.modelState.selection.getDirection());\n  }\n  ensureValidState(context) {\n    this._setState(context, this.modelState, this.viewState);\n  }\n  setState(context, modelState, viewState) {\n    this._setState(context, modelState, viewState);\n  }\n  static _validatePositionWithCache(viewModel, position, cacheInput, cacheOutput) {\n    if (position.equals(cacheInput)) {\n      return cacheOutput;\n    }\n    return viewModel.normalizePosition(\n      position,\n      2\n      /* PositionAffinity.None */\n    );\n  }\n  static _validateViewState(viewModel, viewState) {\n    const position = viewState.position;\n    const sStartPosition = viewState.selectionStart.getStartPosition();\n    const sEndPosition = viewState.selectionStart.getEndPosition();\n    const validPosition = viewModel.normalizePosition(\n      position,\n      2\n      /* PositionAffinity.None */\n    );\n    const validSStartPosition = this._validatePositionWithCache(viewModel, sStartPosition, position, validPosition);\n    const validSEndPosition = this._validatePositionWithCache(viewModel, sEndPosition, sStartPosition, validSStartPosition);\n    if (position.equals(validPosition) \u0026\u0026 sStartPosition.equals(validSStartPosition) \u0026\u0026 sEndPosition.equals(validSEndPosition)) {\n      return viewState;\n    }\n    return new SingleCursorState(Range.fromPositions(validSStartPosition, validSEndPosition), viewState.selectionStartKind, viewState.selectionStartLeftoverVisibleColumns + sStartPosition.column - validSStartPosition.column, validPosition, viewState.leftoverVisibleColumns + position.column - validPosition.column);\n  }\n  _setState(context, modelState, viewState) {\n    if (viewState) {\n      viewState = _Cursor._validateViewState(context.viewModel, viewState);\n    }\n    if (!modelState) {\n      if (!viewState) {\n        return;\n      }\n      const selectionStart = context.model.validateRange(context.coordinatesConverter.convertViewRangeToModelRange(viewState.selectionStart));\n      const position = context.model.validatePosition(context.coordinatesConverter.convertViewPositionToModelPosition(viewState.position));\n      modelState = new SingleCursorState(selectionStart, viewState.selectionStartKind, viewState.selectionStartLeftoverVisibleColumns, position, viewState.leftoverVisibleColumns);\n    } else {\n      const selectionStart = context.model.validateRange(modelState.selectionStart);\n      const selectionStartLeftoverVisibleColumns = modelState.selectionStart.equalsRange(selectionStart) ? modelState.selectionStartLeftoverVisibleColumns : 0;\n      const position = context.model.validatePosition(modelState.position);\n      const leftoverVisibleColumns = modelState.position.equals(position) ? modelState.leftoverVisibleColumns : 0;\n      modelState = new SingleCursorState(selectionStart, modelState.selectionStartKind, selectionStartLeftoverVisibleColumns, position, leftoverVisibleColumns);\n    }\n    if (!viewState) {\n      const viewSelectionStart1 = context.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelState.selectionStart.startLineNumber, modelState.selectionStart.startColumn));\n      const viewSelectionStart2 = context.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelState.selectionStart.endLineNumber, modelState.selectionStart.endColumn));\n      const viewSelectionStart = new Range(viewSelectionStart1.lineNumber, viewSelectionStart1.column, viewSelectionStart2.lineNumber, viewSelectionStart2.column);\n      const viewPosition = context.coordinatesConverter.convertModelPositionToViewPosition(modelState.position);\n      viewState = new SingleCursorState(viewSelectionStart, modelState.selectionStartKind, modelState.selectionStartLeftoverVisibleColumns, viewPosition, modelState.leftoverVisibleColumns);\n    } else {\n      const viewSelectionStart = context.coordinatesConverter.validateViewRange(viewState.selectionStart, modelState.selectionStart);\n      const viewPosition = context.coordinatesConverter.validateViewPosition(viewState.position, modelState.position);\n      viewState = new SingleCursorState(viewSelectionStart, modelState.selectionStartKind, modelState.selectionStartLeftoverVisibleColumns, viewPosition, modelState.leftoverVisibleColumns);\n    }\n    this.modelState = modelState;\n    this.viewState = viewState;\n    this._updateTrackedRange(context);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorCollection.js\ninit_position();\ninit_range();\ninit_selection();\nvar CursorCollection = class {\n  constructor(context) {\n    this.context = context;\n    this.cursors = [new Cursor(context)];\n    this.lastAddedCursorIndex = 0;\n  }\n  dispose() {\n    for (const cursor of this.cursors) {\n      cursor.dispose(this.context);\n    }\n  }\n  startTrackingSelections() {\n    for (const cursor of this.cursors) {\n      cursor.startTrackingSelection(this.context);\n    }\n  }\n  stopTrackingSelections() {\n    for (const cursor of this.cursors) {\n      cursor.stopTrackingSelection(this.context);\n    }\n  }\n  updateContext(context) {\n    this.context = context;\n  }\n  ensureValidState() {\n    for (const cursor of this.cursors) {\n      cursor.ensureValidState(this.context);\n    }\n  }\n  readSelectionFromMarkers() {\n    return this.cursors.map((c) =\u003e c.readSelectionFromMarkers(this.context));\n  }\n  getAll() {\n    return this.cursors.map((c) =\u003e c.asCursorState());\n  }\n  getViewPositions() {\n    return this.cursors.map((c) =\u003e c.viewState.position);\n  }\n  getTopMostViewPosition() {\n    return findFirstMin(this.cursors, compareBy((c) =\u003e c.viewState.position, Position.compare)).viewState.position;\n  }\n  getBottomMostViewPosition() {\n    return findLastMax(this.cursors, compareBy((c) =\u003e c.viewState.position, Position.compare)).viewState.position;\n  }\n  getSelections() {\n    return this.cursors.map((c) =\u003e c.modelState.selection);\n  }\n  getViewSelections() {\n    return this.cursors.map((c) =\u003e c.viewState.selection);\n  }\n  setSelections(selections) {\n    this.setStates(CursorState.fromModelSelections(selections));\n  }\n  getPrimaryCursor() {\n    return this.cursors[0].asCursorState();\n  }\n  setStates(states) {\n    if (states === null) {\n      return;\n    }\n    this.cursors[0].setState(this.context, states[0].modelState, states[0].viewState);\n    this._setSecondaryStates(states.slice(1));\n  }\n  /**\n   * Creates or disposes secondary cursors as necessary to match the number of `secondarySelections`.\n   */\n  _setSecondaryStates(secondaryStates) {\n    const secondaryCursorsLength = this.cursors.length - 1;\n    const secondaryStatesLength = secondaryStates.length;\n    if (secondaryCursorsLength \u003c secondaryStatesLength) {\n      const createCnt = secondaryStatesLength - secondaryCursorsLength;\n      for (let i2 = 0; i2 \u003c createCnt; i2++) {\n        this._addSecondaryCursor();\n      }\n    } else if (secondaryCursorsLength \u003e secondaryStatesLength) {\n      const removeCnt = secondaryCursorsLength - secondaryStatesLength;\n      for (let i2 = 0; i2 \u003c removeCnt; i2++) {\n        this._removeSecondaryCursor(this.cursors.length - 2);\n      }\n    }\n    for (let i2 = 0; i2 \u003c secondaryStatesLength; i2++) {\n      this.cursors[i2 + 1].setState(this.context, secondaryStates[i2].modelState, secondaryStates[i2].viewState);\n    }\n  }\n  killSecondaryCursors() {\n    this._setSecondaryStates([]);\n  }\n  _addSecondaryCursor() {\n    this.cursors.push(new Cursor(this.context));\n    this.lastAddedCursorIndex = this.cursors.length - 1;\n  }\n  getLastAddedCursorIndex() {\n    if (this.cursors.length === 1 || this.lastAddedCursorIndex === 0) {\n      return 0;\n    }\n    return this.lastAddedCursorIndex;\n  }\n  _removeSecondaryCursor(removeIndex) {\n    if (this.lastAddedCursorIndex \u003e= removeIndex + 1) {\n      this.lastAddedCursorIndex--;\n    }\n    this.cursors[removeIndex + 1].dispose(this.context);\n    this.cursors.splice(removeIndex + 1, 1);\n  }\n  normalize() {\n    if (this.cursors.length === 1) {\n      return;\n    }\n    const cursors = this.cursors.slice(0);\n    const sortedCursors = [];\n    for (let i2 = 0, len = cursors.length; i2 \u003c len; i2++) {\n      sortedCursors.push({\n        index: i2,\n        selection: cursors[i2].modelState.selection\n      });\n    }\n    sortedCursors.sort(compareBy((s) =\u003e s.selection, Range.compareRangesUsingStarts));\n    for (let sortedCursorIndex = 0; sortedCursorIndex \u003c sortedCursors.length - 1; sortedCursorIndex++) {\n      const current = sortedCursors[sortedCursorIndex];\n      const next = sortedCursors[sortedCursorIndex + 1];\n      const currentSelection = current.selection;\n      const nextSelection = next.selection;\n      if (!this.context.cursorConfig.multiCursorMergeOverlapping) {\n        continue;\n      }\n      let shouldMergeCursors;\n      if (nextSelection.isEmpty() || currentSelection.isEmpty()) {\n        shouldMergeCursors = nextSelection.getStartPosition().isBeforeOrEqual(currentSelection.getEndPosition());\n      } else {\n        shouldMergeCursors = nextSelection.getStartPosition().isBefore(currentSelection.getEndPosition());\n      }\n      if (shouldMergeCursors) {\n        const winnerSortedCursorIndex = current.index \u003c next.index ? sortedCursorIndex : sortedCursorIndex + 1;\n        const looserSortedCursorIndex = current.index \u003c next.index ? sortedCursorIndex + 1 : sortedCursorIndex;\n        const looserIndex = sortedCursors[looserSortedCursorIndex].index;\n        const winnerIndex = sortedCursors[winnerSortedCursorIndex].index;\n        const looserSelection = sortedCursors[looserSortedCursorIndex].selection;\n        const winnerSelection = sortedCursors[winnerSortedCursorIndex].selection;\n        if (!looserSelection.equalsSelection(winnerSelection)) {\n          const resultingRange = looserSelection.plusRange(winnerSelection);\n          const looserSelectionIsLTR = looserSelection.selectionStartLineNumber === looserSelection.startLineNumber \u0026\u0026 looserSelection.selectionStartColumn === looserSelection.startColumn;\n          const winnerSelectionIsLTR = winnerSelection.selectionStartLineNumber === winnerSelection.startLineNumber \u0026\u0026 winnerSelection.selectionStartColumn === winnerSelection.startColumn;\n          let resultingSelectionIsLTR;\n          if (looserIndex === this.lastAddedCursorIndex) {\n            resultingSelectionIsLTR = looserSelectionIsLTR;\n            this.lastAddedCursorIndex = winnerIndex;\n          } else {\n            resultingSelectionIsLTR = winnerSelectionIsLTR;\n          }\n          let resultingSelection;\n          if (resultingSelectionIsLTR) {\n            resultingSelection = new Selection(resultingRange.startLineNumber, resultingRange.startColumn, resultingRange.endLineNumber, resultingRange.endColumn);\n          } else {\n            resultingSelection = new Selection(resultingRange.endLineNumber, resultingRange.endColumn, resultingRange.startLineNumber, resultingRange.startColumn);\n          }\n          sortedCursors[winnerSortedCursorIndex].selection = resultingSelection;\n          const resultingState = CursorState.fromModelSelection(resultingSelection);\n          cursors[winnerIndex].setState(this.context, resultingState.modelState, resultingState.viewState);\n        }\n        for (const sortedCursor of sortedCursors) {\n          if (sortedCursor.index \u003e looserIndex) {\n            sortedCursor.index--;\n          }\n        }\n        cursors.splice(looserIndex, 1);\n        sortedCursors.splice(looserSortedCursorIndex, 1);\n        this._removeSecondaryCursor(looserIndex - 1);\n        sortedCursorIndex--;\n      }\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursorContext.js\nvar CursorContext = class {\n  constructor(model, viewModel, coordinatesConverter, cursorConfig) {\n    this._cursorContextBrand = void 0;\n    this.model = model;\n    this.viewModel = viewModel;\n    this.coordinatesConverter = coordinatesConverter;\n    this.cursorConfig = cursorConfig;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursor.js\ninit_range();\ninit_selection();\ninit_textModelEvents();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewEvents.js\nvar ViewCompositionStartEvent = class {\n  constructor() {\n    this.type = 0;\n  }\n};\nvar ViewCompositionEndEvent = class {\n  constructor() {\n    this.type = 1;\n  }\n};\nvar ViewConfigurationChangedEvent = class {\n  constructor(source) {\n    this.type = 2;\n    this._source = source;\n  }\n  hasChanged(id) {\n    return this._source.hasChanged(id);\n  }\n};\nvar ViewCursorStateChangedEvent = class {\n  constructor(selections, modelSelections, reason) {\n    this.selections = selections;\n    this.modelSelections = modelSelections;\n    this.reason = reason;\n    this.type = 3;\n  }\n};\nvar ViewDecorationsChangedEvent = class {\n  constructor(source) {\n    this.type = 4;\n    if (source) {\n      this.affectsMinimap = source.affectsMinimap;\n      this.affectsOverviewRuler = source.affectsOverviewRuler;\n      this.affectsGlyphMargin = source.affectsGlyphMargin;\n      this.affectsLineNumber = source.affectsLineNumber;\n    } else {\n      this.affectsMinimap = true;\n      this.affectsOverviewRuler = true;\n      this.affectsGlyphMargin = true;\n      this.affectsLineNumber = true;\n    }\n  }\n};\nvar ViewFlushedEvent = class {\n  constructor() {\n    this.type = 5;\n  }\n};\nvar ViewFocusChangedEvent = class {\n  constructor(isFocused) {\n    this.type = 6;\n    this.isFocused = isFocused;\n  }\n};\nvar ViewLanguageConfigurationEvent = class {\n  constructor() {\n    this.type = 7;\n  }\n};\nvar ViewLineMappingChangedEvent = class {\n  constructor() {\n    this.type = 8;\n  }\n};\nvar ViewLinesChangedEvent = class {\n  constructor(fromLineNumber, count) {\n    this.fromLineNumber = fromLineNumber;\n    this.count = count;\n    this.type = 9;\n  }\n};\nvar ViewLinesDeletedEvent = class {\n  constructor(fromLineNumber, toLineNumber) {\n    this.type = 10;\n    this.fromLineNumber = fromLineNumber;\n    this.toLineNumber = toLineNumber;\n  }\n};\nvar ViewLinesInsertedEvent = class {\n  constructor(fromLineNumber, toLineNumber) {\n    this.type = 11;\n    this.fromLineNumber = fromLineNumber;\n    this.toLineNumber = toLineNumber;\n  }\n};\nvar ViewRevealRangeRequestEvent = class {\n  constructor(source, minimalReveal, range2, selections, verticalType, revealHorizontal, scrollType) {\n    this.source = source;\n    this.minimalReveal = minimalReveal;\n    this.range = range2;\n    this.selections = selections;\n    this.verticalType = verticalType;\n    this.revealHorizontal = revealHorizontal;\n    this.scrollType = scrollType;\n    this.type = 12;\n  }\n};\nvar ViewScrollChangedEvent = class {\n  constructor(source) {\n    this.type = 13;\n    this.scrollWidth = source.scrollWidth;\n    this.scrollLeft = source.scrollLeft;\n    this.scrollHeight = source.scrollHeight;\n    this.scrollTop = source.scrollTop;\n    this.scrollWidthChanged = source.scrollWidthChanged;\n    this.scrollLeftChanged = source.scrollLeftChanged;\n    this.scrollHeightChanged = source.scrollHeightChanged;\n    this.scrollTopChanged = source.scrollTopChanged;\n  }\n};\nvar ViewThemeChangedEvent = class {\n  constructor(theme) {\n    this.theme = theme;\n    this.type = 14;\n  }\n};\nvar ViewTokensChangedEvent = class {\n  constructor(ranges) {\n    this.type = 15;\n    this.ranges = ranges;\n  }\n};\nvar ViewTokensColorsChangedEvent = class {\n  constructor() {\n    this.type = 16;\n  }\n};\nvar ViewZonesChangedEvent = class {\n  constructor() {\n    this.type = 17;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursor.js\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModelEventDispatcher.js\ninit_event();\ninit_lifecycle();\nvar ViewModelEventDispatcher = class extends Disposable {\n  constructor() {\n    super();\n    this._onEvent = this._register(new Emitter());\n    this.onEvent = this._onEvent.event;\n    this._eventHandlers = [];\n    this._viewEventQueue = null;\n    this._isConsumingViewEventQueue = false;\n    this._collector = null;\n    this._collectorCnt = 0;\n    this._outgoingEvents = [];\n  }\n  emitOutgoingEvent(e) {\n    this._addOutgoingEvent(e);\n    this._emitOutgoingEvents();\n  }\n  _addOutgoingEvent(e) {\n    for (let i2 = 0, len = this._outgoingEvents.length; i2 \u003c len; i2++) {\n      const mergeResult = this._outgoingEvents[i2].kind === e.kind ? this._outgoingEvents[i2].attemptToMerge(e) : null;\n      if (mergeResult) {\n        this._outgoingEvents[i2] = mergeResult;\n        return;\n      }\n    }\n    this._outgoingEvents.push(e);\n  }\n  _emitOutgoingEvents() {\n    while (this._outgoingEvents.length \u003e 0) {\n      if (this._collector || this._isConsumingViewEventQueue) {\n        return;\n      }\n      const event = this._outgoingEvents.shift();\n      if (event.isNoOp()) {\n        continue;\n      }\n      this._onEvent.fire(event);\n    }\n  }\n  addViewEventHandler(eventHandler) {\n    for (let i2 = 0, len = this._eventHandlers.length; i2 \u003c len; i2++) {\n      if (this._eventHandlers[i2] === eventHandler) {\n        console.warn(\"Detected duplicate listener in ViewEventDispatcher\", eventHandler);\n      }\n    }\n    this._eventHandlers.push(eventHandler);\n  }\n  removeViewEventHandler(eventHandler) {\n    for (let i2 = 0; i2 \u003c this._eventHandlers.length; i2++) {\n      if (this._eventHandlers[i2] === eventHandler) {\n        this._eventHandlers.splice(i2, 1);\n        break;\n      }\n    }\n  }\n  beginEmitViewEvents() {\n    this._collectorCnt++;\n    if (this._collectorCnt === 1) {\n      this._collector = new ViewModelEventsCollector();\n    }\n    return this._collector;\n  }\n  endEmitViewEvents() {\n    this._collectorCnt--;\n    if (this._collectorCnt === 0) {\n      const outgoingEvents = this._collector.outgoingEvents;\n      const viewEvents = this._collector.viewEvents;\n      this._collector = null;\n      for (const outgoingEvent of outgoingEvents) {\n        this._addOutgoingEvent(outgoingEvent);\n      }\n      if (viewEvents.length \u003e 0) {\n        this._emitMany(viewEvents);\n      }\n    }\n    this._emitOutgoingEvents();\n  }\n  emitSingleViewEvent(event) {\n    try {\n      const eventsCollector = this.beginEmitViewEvents();\n      eventsCollector.emitViewEvent(event);\n    } finally {\n      this.endEmitViewEvents();\n    }\n  }\n  _emitMany(events) {\n    if (this._viewEventQueue) {\n      this._viewEventQueue = this._viewEventQueue.concat(events);\n    } else {\n      this._viewEventQueue = events;\n    }\n    if (!this._isConsumingViewEventQueue) {\n      this._consumeViewEventQueue();\n    }\n  }\n  _consumeViewEventQueue() {\n    try {\n      this._isConsumingViewEventQueue = true;\n      this._doConsumeQueue();\n    } finally {\n      this._isConsumingViewEventQueue = false;\n    }\n  }\n  _doConsumeQueue() {\n    while (this._viewEventQueue) {\n      const events = this._viewEventQueue;\n      this._viewEventQueue = null;\n      const eventHandlers = this._eventHandlers.slice(0);\n      for (const eventHandler of eventHandlers) {\n        eventHandler.handleEvents(events);\n      }\n    }\n  }\n};\nvar ViewModelEventsCollector = class {\n  constructor() {\n    this.viewEvents = [];\n    this.outgoingEvents = [];\n  }\n  emitViewEvent(event) {\n    this.viewEvents.push(event);\n  }\n  emitOutgoingEvent(e) {\n    this.outgoingEvents.push(e);\n  }\n};\nvar ContentSizeChangedEvent = class _ContentSizeChangedEvent {\n  constructor(oldContentWidth, oldContentHeight, contentWidth, contentHeight) {\n    this.kind = 0;\n    this._oldContentWidth = oldContentWidth;\n    this._oldContentHeight = oldContentHeight;\n    this.contentWidth = contentWidth;\n    this.contentHeight = contentHeight;\n    this.contentWidthChanged = this._oldContentWidth !== this.contentWidth;\n    this.contentHeightChanged = this._oldContentHeight !== this.contentHeight;\n  }\n  isNoOp() {\n    return !this.contentWidthChanged \u0026\u0026 !this.contentHeightChanged;\n  }\n  attemptToMerge(other) {\n    if (other.kind !== this.kind) {\n      return null;\n    }\n    return new _ContentSizeChangedEvent(this._oldContentWidth, this._oldContentHeight, other.contentWidth, other.contentHeight);\n  }\n};\nvar FocusChangedEvent = class _FocusChangedEvent {\n  constructor(oldHasFocus, hasFocus) {\n    this.kind = 1;\n    this.oldHasFocus = oldHasFocus;\n    this.hasFocus = hasFocus;\n  }\n  isNoOp() {\n    return this.oldHasFocus === this.hasFocus;\n  }\n  attemptToMerge(other) {\n    if (other.kind !== this.kind) {\n      return null;\n    }\n    return new _FocusChangedEvent(this.oldHasFocus, other.hasFocus);\n  }\n};\nvar WidgetFocusChangedEvent = class {\n  constructor(oldHasFocus, hasFocus) {\n    this.kind = 2;\n    this.oldHasFocus = oldHasFocus;\n    this.hasFocus = hasFocus;\n  }\n  isNoOp() {\n    return this.oldHasFocus === this.hasFocus;\n  }\n  attemptToMerge(other) {\n    if (other.kind !== this.kind) {\n      return null;\n    }\n    return new FocusChangedEvent(this.oldHasFocus, other.hasFocus);\n  }\n};\nvar ScrollChangedEvent = class _ScrollChangedEvent {\n  constructor(oldScrollWidth, oldScrollLeft, oldScrollHeight, oldScrollTop, scrollWidth, scrollLeft, scrollHeight, scrollTop) {\n    this.kind = 3;\n    this._oldScrollWidth = oldScrollWidth;\n    this._oldScrollLeft = oldScrollLeft;\n    this._oldScrollHeight = oldScrollHeight;\n    this._oldScrollTop = oldScrollTop;\n    this.scrollWidth = scrollWidth;\n    this.scrollLeft = scrollLeft;\n    this.scrollHeight = scrollHeight;\n    this.scrollTop = scrollTop;\n    this.scrollWidthChanged = this._oldScrollWidth !== this.scrollWidth;\n    this.scrollLeftChanged = this._oldScrollLeft !== this.scrollLeft;\n    this.scrollHeightChanged = this._oldScrollHeight !== this.scrollHeight;\n    this.scrollTopChanged = this._oldScrollTop !== this.scrollTop;\n  }\n  isNoOp() {\n    return !this.scrollWidthChanged \u0026\u0026 !this.scrollLeftChanged \u0026\u0026 !this.scrollHeightChanged \u0026\u0026 !this.scrollTopChanged;\n  }\n  attemptToMerge(other) {\n    if (other.kind !== this.kind) {\n      return null;\n    }\n    return new _ScrollChangedEvent(this._oldScrollWidth, this._oldScrollLeft, this._oldScrollHeight, this._oldScrollTop, other.scrollWidth, other.scrollLeft, other.scrollHeight, other.scrollTop);\n  }\n};\nvar ViewZonesChangedEvent2 = class {\n  constructor() {\n    this.kind = 4;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    if (other.kind !== this.kind) {\n      return null;\n    }\n    return this;\n  }\n};\nvar HiddenAreasChangedEvent = class {\n  constructor() {\n    this.kind = 5;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    if (other.kind !== this.kind) {\n      return null;\n    }\n    return this;\n  }\n};\nvar CursorStateChangedEvent = class _CursorStateChangedEvent {\n  constructor(oldSelections, selections, oldModelVersionId, modelVersionId, source, reason, reachedMaxCursorCount) {\n    this.kind = 7;\n    this.oldSelections = oldSelections;\n    this.selections = selections;\n    this.oldModelVersionId = oldModelVersionId;\n    this.modelVersionId = modelVersionId;\n    this.source = source;\n    this.reason = reason;\n    this.reachedMaxCursorCount = reachedMaxCursorCount;\n  }\n  static _selectionsAreEqual(a, b) {\n    if (!a \u0026\u0026 !b) {\n      return true;\n    }\n    if (!a || !b) {\n      return false;\n    }\n    const aLen = a.length;\n    const bLen = b.length;\n    if (aLen !== bLen) {\n      return false;\n    }\n    for (let i2 = 0; i2 \u003c aLen; i2++) {\n      if (!a[i2].equalsSelection(b[i2])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  isNoOp() {\n    return _CursorStateChangedEvent._selectionsAreEqual(this.oldSelections, this.selections) \u0026\u0026 this.oldModelVersionId === this.modelVersionId;\n  }\n  attemptToMerge(other) {\n    if (other.kind !== this.kind) {\n      return null;\n    }\n    return new _CursorStateChangedEvent(this.oldSelections, other.selections, this.oldModelVersionId, other.modelVersionId, other.source, other.reason, this.reachedMaxCursorCount || other.reachedMaxCursorCount);\n  }\n};\nvar ReadOnlyEditAttemptEvent = class {\n  constructor() {\n    this.kind = 6;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    if (other.kind !== this.kind) {\n      return null;\n    }\n    return this;\n  }\n};\nvar ModelDecorationsChangedEvent = class {\n  constructor(event) {\n    this.event = event;\n    this.kind = 8;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    return null;\n  }\n};\nvar ModelLanguageChangedEvent = class {\n  constructor(event) {\n    this.event = event;\n    this.kind = 9;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    return null;\n  }\n};\nvar ModelLanguageConfigurationChangedEvent = class {\n  constructor(event) {\n    this.event = event;\n    this.kind = 10;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    return null;\n  }\n};\nvar ModelContentChangedEvent = class {\n  constructor(event) {\n    this.event = event;\n    this.kind = 11;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    return null;\n  }\n};\nvar ModelOptionsChangedEvent = class {\n  constructor(event) {\n    this.event = event;\n    this.kind = 12;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    return null;\n  }\n};\nvar ModelTokensChangedEvent = class {\n  constructor(event) {\n    this.event = event;\n    this.kind = 13;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    return null;\n  }\n};\nvar ModelLineHeightChangedEvent2 = class {\n  constructor(event) {\n    this.event = event;\n    this.kind = 14;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    return null;\n  }\n};\nvar ModelFontChangedEvent2 = class {\n  constructor(event) {\n    this.event = event;\n    this.kind = 15;\n  }\n  isNoOp() {\n    return false;\n  }\n  attemptToMerge(other) {\n    return null;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/cursor/cursor.js\ninit_textModelEditSource();\nvar CursorsController = class extends Disposable {\n  constructor(model, viewModel, coordinatesConverter, cursorConfig) {\n    super();\n    this._model = model;\n    this._knownModelVersionId = this._model.getVersionId();\n    this._viewModel = viewModel;\n    this._coordinatesConverter = coordinatesConverter;\n    this.context = new CursorContext(this._model, this._viewModel, this._coordinatesConverter, cursorConfig);\n    this._cursors = new CursorCollection(this.context);\n    this._hasFocus = false;\n    this._isHandling = false;\n    this._compositionState = null;\n    this._columnSelectData = null;\n    this._autoClosedActions = [];\n    this._prevEditOperationType = 0;\n  }\n  dispose() {\n    this._cursors.dispose();\n    this._autoClosedActions = dispose(this._autoClosedActions);\n    super.dispose();\n  }\n  updateConfiguration(cursorConfig) {\n    this.context = new CursorContext(this._model, this._viewModel, this._coordinatesConverter, cursorConfig);\n    this._cursors.updateContext(this.context);\n  }\n  onLineMappingChanged(eventsCollector) {\n    if (this._knownModelVersionId !== this._model.getVersionId()) {\n      return;\n    }\n    this.setStates(eventsCollector, \"viewModel\", 0, this.getCursorStates());\n  }\n  setHasFocus(hasFocus) {\n    this._hasFocus = hasFocus;\n  }\n  _validateAutoClosedActions() {\n    if (this._autoClosedActions.length \u003e 0) {\n      const selections = this._cursors.getSelections();\n      for (let i2 = 0; i2 \u003c this._autoClosedActions.length; i2++) {\n        const autoClosedAction = this._autoClosedActions[i2];\n        if (!autoClosedAction.isValid(selections)) {\n          autoClosedAction.dispose();\n          this._autoClosedActions.splice(i2, 1);\n          i2--;\n        }\n      }\n    }\n  }\n  // ------ some getters/setters\n  getPrimaryCursorState() {\n    return this._cursors.getPrimaryCursor();\n  }\n  getLastAddedCursorIndex() {\n    return this._cursors.getLastAddedCursorIndex();\n  }\n  getCursorStates() {\n    return this._cursors.getAll();\n  }\n  setStates(eventsCollector, source, reason, states) {\n    let reachedMaxCursorCount = false;\n    const multiCursorLimit = this.context.cursorConfig.multiCursorLimit;\n    if (states !== null \u0026\u0026 states.length \u003e multiCursorLimit) {\n      states = states.slice(0, multiCursorLimit);\n      reachedMaxCursorCount = true;\n    }\n    const oldState = CursorModelState.from(this._model, this);\n    this._cursors.setStates(states);\n    this._cursors.normalize();\n    this._columnSelectData = null;\n    this._validateAutoClosedActions();\n    return this._emitStateChangedIfNecessary(eventsCollector, source, reason, oldState, reachedMaxCursorCount);\n  }\n  setCursorColumnSelectData(columnSelectData) {\n    this._columnSelectData = columnSelectData;\n  }\n  revealAll(eventsCollector, source, minimalReveal, verticalType, revealHorizontal, scrollType) {\n    const viewPositions = this._cursors.getViewPositions();\n    let revealViewRange = null;\n    let revealViewSelections = null;\n    if (viewPositions.length \u003e 1) {\n      revealViewSelections = this._cursors.getViewSelections();\n    } else {\n      revealViewRange = Range.fromPositions(viewPositions[0], viewPositions[0]);\n    }\n    eventsCollector.emitViewEvent(new ViewRevealRangeRequestEvent(source, minimalReveal, revealViewRange, revealViewSelections, verticalType, revealHorizontal, scrollType));\n  }\n  revealPrimary(eventsCollector, source, minimalReveal, verticalType, revealHorizontal, scrollType) {\n    const primaryCursor = this._cursors.getPrimaryCursor();\n    const revealViewSelections = [primaryCursor.viewState.selection];\n    eventsCollector.emitViewEvent(new ViewRevealRangeRequestEvent(source, minimalReveal, null, revealViewSelections, verticalType, revealHorizontal, scrollType));\n  }\n  saveState() {\n    const result = [];\n    const selections = this._cursors.getSelections();\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      result.push({\n        inSelectionMode: !selection.isEmpty(),\n        selectionStart: {\n          lineNumber: selection.selectionStartLineNumber,\n          column: selection.selectionStartColumn\n        },\n        position: {\n          lineNumber: selection.positionLineNumber,\n          column: selection.positionColumn\n        }\n      });\n    }\n    return result;\n  }\n  restoreState(eventsCollector, states) {\n    const desiredSelections = [];\n    for (let i2 = 0, len = states.length; i2 \u003c len; i2++) {\n      const state = states[i2];\n      let positionLineNumber = 1;\n      let positionColumn = 1;\n      if (state.position \u0026\u0026 state.position.lineNumber) {\n        positionLineNumber = state.position.lineNumber;\n      }\n      if (state.position \u0026\u0026 state.position.column) {\n        positionColumn = state.position.column;\n      }\n      let selectionStartLineNumber = positionLineNumber;\n      let selectionStartColumn = positionColumn;\n      if (state.selectionStart \u0026\u0026 state.selectionStart.lineNumber) {\n        selectionStartLineNumber = state.selectionStart.lineNumber;\n      }\n      if (state.selectionStart \u0026\u0026 state.selectionStart.column) {\n        selectionStartColumn = state.selectionStart.column;\n      }\n      desiredSelections.push({\n        selectionStartLineNumber,\n        selectionStartColumn,\n        positionLineNumber,\n        positionColumn\n      });\n    }\n    this.setStates(eventsCollector, \"restoreState\", 0, CursorState.fromModelSelections(desiredSelections));\n    this.revealAll(\n      eventsCollector,\n      \"restoreState\",\n      false,\n      0,\n      true,\n      1\n      /* editorCommon.ScrollType.Immediate */\n    );\n  }\n  onModelContentChanged(eventsCollector, event) {\n    if (event instanceof ModelInjectedTextChangedEvent) {\n      if (this._isHandling) {\n        return;\n      }\n      this._isHandling = true;\n      try {\n        this.setStates(eventsCollector, \"modelChange\", 0, this.getCursorStates());\n      } finally {\n        this._isHandling = false;\n      }\n    } else {\n      const e = event.rawContentChangedEvent;\n      this._knownModelVersionId = e.versionId;\n      if (this._isHandling) {\n        return;\n      }\n      const hadFlushEvent = e.containsEvent(\n        1\n        /* RawContentChangedType.Flush */\n      );\n      this._prevEditOperationType = 0;\n      if (hadFlushEvent) {\n        this._cursors.dispose();\n        this._cursors = new CursorCollection(this.context);\n        this._validateAutoClosedActions();\n        this._emitStateChangedIfNecessary(eventsCollector, \"model\", 1, null, false);\n      } else {\n        if (this._hasFocus \u0026\u0026 e.resultingSelection \u0026\u0026 e.resultingSelection.length \u003e 0) {\n          const cursorState = CursorState.fromModelSelections(e.resultingSelection);\n          if (this.setStates(eventsCollector, \"modelChange\", e.isUndoing ? 5 : e.isRedoing ? 6 : 2, cursorState)) {\n            this.revealAll(\n              eventsCollector,\n              \"modelChange\",\n              false,\n              0,\n              true,\n              0\n              /* editorCommon.ScrollType.Smooth */\n            );\n          }\n        } else {\n          const selectionsFromMarkers = this._cursors.readSelectionFromMarkers();\n          this.setStates(eventsCollector, \"modelChange\", 2, CursorState.fromModelSelections(selectionsFromMarkers));\n        }\n      }\n    }\n  }\n  getSelection() {\n    return this._cursors.getPrimaryCursor().modelState.selection;\n  }\n  getTopMostViewPosition() {\n    return this._cursors.getTopMostViewPosition();\n  }\n  getBottomMostViewPosition() {\n    return this._cursors.getBottomMostViewPosition();\n  }\n  getCursorColumnSelectData() {\n    if (this._columnSelectData) {\n      return this._columnSelectData;\n    }\n    const primaryCursor = this._cursors.getPrimaryCursor();\n    const viewSelectionStart = primaryCursor.viewState.selectionStart.getStartPosition();\n    const viewPosition = primaryCursor.viewState.position;\n    return {\n      isReal: false,\n      fromViewLineNumber: viewSelectionStart.lineNumber,\n      fromViewVisualColumn: this.context.cursorConfig.visibleColumnFromColumn(this._viewModel, viewSelectionStart),\n      toViewLineNumber: viewPosition.lineNumber,\n      toViewVisualColumn: this.context.cursorConfig.visibleColumnFromColumn(this._viewModel, viewPosition)\n    };\n  }\n  getSelections() {\n    return this._cursors.getSelections();\n  }\n  setSelections(eventsCollector, source, selections, reason) {\n    this.setStates(eventsCollector, source, reason, CursorState.fromModelSelections(selections));\n  }\n  getPrevEditOperationType() {\n    return this._prevEditOperationType;\n  }\n  setPrevEditOperationType(type) {\n    this._prevEditOperationType = type;\n  }\n  // ------ auxiliary handling logic\n  _pushAutoClosedAction(autoClosedCharactersRanges, autoClosedEnclosingRanges) {\n    const autoClosedCharactersDeltaDecorations = [];\n    const autoClosedEnclosingDeltaDecorations = [];\n    for (let i2 = 0, len = autoClosedCharactersRanges.length; i2 \u003c len; i2++) {\n      autoClosedCharactersDeltaDecorations.push({\n        range: autoClosedCharactersRanges[i2],\n        options: {\n          description: \"auto-closed-character\",\n          inlineClassName: \"auto-closed-character\",\n          stickiness: 1\n          /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n        }\n      });\n      autoClosedEnclosingDeltaDecorations.push({\n        range: autoClosedEnclosingRanges[i2],\n        options: {\n          description: \"auto-closed-enclosing\",\n          stickiness: 1\n          /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n        }\n      });\n    }\n    const autoClosedCharactersDecorations = this._model.deltaDecorations([], autoClosedCharactersDeltaDecorations);\n    const autoClosedEnclosingDecorations = this._model.deltaDecorations([], autoClosedEnclosingDeltaDecorations);\n    this._autoClosedActions.push(new AutoClosedAction(this._model, autoClosedCharactersDecorations, autoClosedEnclosingDecorations));\n  }\n  _executeEditOperation(opResult, editReason) {\n    if (!opResult) {\n      return;\n    }\n    if (opResult.shouldPushStackElementBefore) {\n      this._model.pushStackElement();\n    }\n    const result = CommandExecutor.executeCommands(this._model, this._cursors.getSelections(), opResult.commands, editReason);\n    if (result) {\n      this._interpretCommandResult(result);\n      const autoClosedCharactersRanges = [];\n      const autoClosedEnclosingRanges = [];\n      for (let i2 = 0; i2 \u003c opResult.commands.length; i2++) {\n        const command = opResult.commands[i2];\n        if (command instanceof BaseTypeWithAutoClosingCommand \u0026\u0026 command.enclosingRange \u0026\u0026 command.closeCharacterRange) {\n          autoClosedCharactersRanges.push(command.closeCharacterRange);\n          autoClosedEnclosingRanges.push(command.enclosingRange);\n        }\n      }\n      if (autoClosedCharactersRanges.length \u003e 0) {\n        this._pushAutoClosedAction(autoClosedCharactersRanges, autoClosedEnclosingRanges);\n      }\n      this._prevEditOperationType = opResult.type;\n    }\n    if (opResult.shouldPushStackElementAfter) {\n      this._model.pushStackElement();\n    }\n  }\n  _interpretCommandResult(cursorState) {\n    if (!cursorState || cursorState.length === 0) {\n      cursorState = this._cursors.readSelectionFromMarkers();\n    }\n    this._columnSelectData = null;\n    this._cursors.setSelections(cursorState);\n    this._cursors.normalize();\n  }\n  // -----------------------------------------------------------------------------------------------------------\n  // ----- emitting events\n  _emitStateChangedIfNecessary(eventsCollector, source, reason, oldState, reachedMaxCursorCount) {\n    const newState = CursorModelState.from(this._model, this);\n    if (newState.equals(oldState)) {\n      return false;\n    }\n    const selections = this._cursors.getSelections();\n    const viewSelections = this._cursors.getViewSelections();\n    eventsCollector.emitViewEvent(new ViewCursorStateChangedEvent(viewSelections, selections, reason));\n    if (!oldState || oldState.cursorState.length !== newState.cursorState.length || newState.cursorState.some((newCursorState, i2) =\u003e !newCursorState.modelState.equals(oldState.cursorState[i2].modelState))) {\n      const oldSelections = oldState ? oldState.cursorState.map((s) =\u003e s.modelState.selection) : null;\n      const oldModelVersionId = oldState ? oldState.modelVersionId : 0;\n      eventsCollector.emitOutgoingEvent(new CursorStateChangedEvent(oldSelections, selections, oldModelVersionId, newState.modelVersionId, source || \"keyboard\", reason, reachedMaxCursorCount));\n    }\n    return true;\n  }\n  // -----------------------------------------------------------------------------------------------------------\n  // ----- handlers beyond this point\n  _findAutoClosingPairs(edits) {\n    if (!edits.length) {\n      return null;\n    }\n    const indices = [];\n    for (let i2 = 0, len = edits.length; i2 \u003c len; i2++) {\n      const edit2 = edits[i2];\n      if (!edit2.text || edit2.text.indexOf(\"\\n\") \u003e= 0) {\n        return null;\n      }\n      const m = edit2.text.match(/([)\\]}\u003e'\"`])([^)\\]}\u003e'\"`]*)$/);\n      if (!m) {\n        return null;\n      }\n      const closeChar = m[1];\n      const autoClosingPairsCandidates = this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(closeChar);\n      if (!autoClosingPairsCandidates || autoClosingPairsCandidates.length !== 1) {\n        return null;\n      }\n      const openChar = autoClosingPairsCandidates[0].open;\n      const closeCharIndex = edit2.text.length - m[2].length - 1;\n      const openCharIndex = edit2.text.lastIndexOf(openChar, closeCharIndex - 1);\n      if (openCharIndex === -1) {\n        return null;\n      }\n      indices.push([openCharIndex, closeCharIndex]);\n    }\n    return indices;\n  }\n  executeEdits(eventsCollector, source, edits, cursorStateComputer, reason) {\n    let autoClosingIndices = null;\n    if (source === \"snippet\") {\n      autoClosingIndices = this._findAutoClosingPairs(edits);\n    }\n    if (autoClosingIndices) {\n      edits[0]._isTracked = true;\n    }\n    const autoClosedCharactersRanges = [];\n    const autoClosedEnclosingRanges = [];\n    const selections = this._model.pushEditOperations(this.getSelections(), edits, (undoEdits) =\u003e {\n      if (autoClosingIndices) {\n        for (let i2 = 0, len = autoClosingIndices.length; i2 \u003c len; i2++) {\n          const [openCharInnerIndex, closeCharInnerIndex] = autoClosingIndices[i2];\n          const undoEdit = undoEdits[i2];\n          const lineNumber = undoEdit.range.startLineNumber;\n          const openCharIndex = undoEdit.range.startColumn - 1 + openCharInnerIndex;\n          const closeCharIndex = undoEdit.range.startColumn - 1 + closeCharInnerIndex;\n          autoClosedCharactersRanges.push(new Range(lineNumber, closeCharIndex + 1, lineNumber, closeCharIndex + 2));\n          autoClosedEnclosingRanges.push(new Range(lineNumber, openCharIndex + 1, lineNumber, closeCharIndex + 2));\n        }\n      }\n      const selections2 = cursorStateComputer(undoEdits);\n      if (selections2) {\n        this._isHandling = true;\n      }\n      return selections2;\n    }, void 0, reason);\n    if (selections) {\n      this._isHandling = false;\n      this.setSelections(\n        eventsCollector,\n        source,\n        selections,\n        0\n        /* CursorChangeReason.NotSet */\n      );\n    }\n    if (autoClosedCharactersRanges.length \u003e 0) {\n      this._pushAutoClosedAction(autoClosedCharactersRanges, autoClosedEnclosingRanges);\n    }\n  }\n  _executeEdit(callback, eventsCollector, source, cursorChangeReason = 0) {\n    if (this.context.cursorConfig.readOnly) {\n      return;\n    }\n    const oldState = CursorModelState.from(this._model, this);\n    this._cursors.stopTrackingSelections();\n    this._isHandling = true;\n    try {\n      this._cursors.ensureValidState();\n      callback();\n    } catch (err) {\n      onUnexpectedError(err);\n    }\n    this._isHandling = false;\n    this._cursors.startTrackingSelections();\n    this._validateAutoClosedActions();\n    if (this._emitStateChangedIfNecessary(eventsCollector, source, cursorChangeReason, oldState, false)) {\n      this.revealAll(\n        eventsCollector,\n        source,\n        false,\n        0,\n        true,\n        0\n        /* editorCommon.ScrollType.Smooth */\n      );\n    }\n  }\n  getAutoClosedCharacters() {\n    return AutoClosedAction.getAllAutoClosedCharacters(this._autoClosedActions);\n  }\n  startComposition(eventsCollector) {\n    this._compositionState = new CompositionState(this._model, this.getSelections());\n  }\n  endComposition(eventsCollector, source) {\n    const reason = EditSources.cursor({ kind: \"compositionEnd\", detailedSource: source });\n    const compositionOutcome = this._compositionState ? this._compositionState.deduceOutcome(this._model, this.getSelections()) : null;\n    this._compositionState = null;\n    this._executeEdit(() =\u003e {\n      if (source === \"keyboard\") {\n        this._executeEditOperation(TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType, this.context.cursorConfig, this._model, compositionOutcome, this.getSelections(), this.getAutoClosedCharacters()), reason);\n      }\n    }, eventsCollector, source);\n  }\n  type(eventsCollector, text2, source) {\n    const reason = EditSources.cursor({ kind: \"type\", detailedSource: source });\n    this._executeEdit(() =\u003e {\n      if (source === \"keyboard\") {\n        const len = text2.length;\n        let offset = 0;\n        while (offset \u003c len) {\n          const charLength = nextCharLength(text2, offset);\n          const chr = text2.substr(offset, charLength);\n          this._executeEditOperation(TypeOperations.typeWithInterceptors(!!this._compositionState, this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), this.getAutoClosedCharacters(), chr), reason);\n          offset += charLength;\n        }\n      } else {\n        this._executeEditOperation(TypeOperations.typeWithoutInterceptors(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), text2), reason);\n      }\n    }, eventsCollector, source);\n  }\n  compositionType(eventsCollector, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta, source) {\n    const reason = EditSources.cursor({ kind: \"compositionType\", detailedSource: source });\n    if (text2.length === 0 \u0026\u0026 replacePrevCharCnt === 0 \u0026\u0026 replaceNextCharCnt === 0) {\n      if (positionDelta !== 0) {\n        const newSelections = this.getSelections().map((selection) =\u003e {\n          const position = selection.getPosition();\n          return new Selection(position.lineNumber, position.column + positionDelta, position.lineNumber, position.column + positionDelta);\n        });\n        this.setSelections(\n          eventsCollector,\n          source,\n          newSelections,\n          0\n          /* CursorChangeReason.NotSet */\n        );\n      }\n      return;\n    }\n    this._executeEdit(() =\u003e {\n      this._executeEditOperation(TypeOperations.compositionType(this._prevEditOperationType, this.context.cursorConfig, this._model, this.getSelections(), text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta), reason);\n    }, eventsCollector, source);\n  }\n  paste(eventsCollector, text2, pasteOnNewLine, multicursorText, source) {\n    const reason = EditSources.cursor({ kind: \"paste\", detailedSource: source });\n    this._executeEdit(\n      () =\u003e {\n        this._executeEditOperation(TypeOperations.paste(this.context.cursorConfig, this._model, this.getSelections(), text2, pasteOnNewLine, multicursorText || []), reason);\n      },\n      eventsCollector,\n      source,\n      4\n      /* CursorChangeReason.Paste */\n    );\n  }\n  cut(eventsCollector, source) {\n    const reason = EditSources.cursor({ kind: \"cut\", detailedSource: source });\n    this._executeEdit(() =\u003e {\n      this._executeEditOperation(DeleteOperations.cut(this.context.cursorConfig, this._model, this.getSelections()), reason);\n    }, eventsCollector, source);\n  }\n  executeCommand(eventsCollector, command, source) {\n    const reason = EditSources.cursor({ kind: \"executeCommand\", detailedSource: source });\n    this._executeEdit(() =\u003e {\n      this._cursors.killSecondaryCursors();\n      this._executeEditOperation(new EditOperationResult(0, [command], {\n        shouldPushStackElementBefore: false,\n        shouldPushStackElementAfter: false\n      }), reason);\n    }, eventsCollector, source);\n  }\n  executeCommands(eventsCollector, commands, source) {\n    const reason = EditSources.cursor({ kind: \"executeCommands\", detailedSource: source });\n    this._executeEdit(() =\u003e {\n      this._executeEditOperation(new EditOperationResult(0, commands, {\n        shouldPushStackElementBefore: false,\n        shouldPushStackElementAfter: false\n      }), reason);\n    }, eventsCollector, source);\n  }\n};\nvar CursorModelState = class _CursorModelState {\n  static from(model, cursor) {\n    return new _CursorModelState(model.getVersionId(), cursor.getCursorStates());\n  }\n  constructor(modelVersionId, cursorState) {\n    this.modelVersionId = modelVersionId;\n    this.cursorState = cursorState;\n  }\n  equals(other) {\n    if (!other) {\n      return false;\n    }\n    if (this.modelVersionId !== other.modelVersionId) {\n      return false;\n    }\n    if (this.cursorState.length !== other.cursorState.length) {\n      return false;\n    }\n    for (let i2 = 0, len = this.cursorState.length; i2 \u003c len; i2++) {\n      if (!this.cursorState[i2].equals(other.cursorState[i2])) {\n        return false;\n      }\n    }\n    return true;\n  }\n};\nvar AutoClosedAction = class {\n  static getAllAutoClosedCharacters(autoClosedActions) {\n    let autoClosedCharacters = [];\n    for (const autoClosedAction of autoClosedActions) {\n      autoClosedCharacters = autoClosedCharacters.concat(autoClosedAction.getAutoClosedCharactersRanges());\n    }\n    return autoClosedCharacters;\n  }\n  constructor(model, autoClosedCharactersDecorations, autoClosedEnclosingDecorations) {\n    this._model = model;\n    this._autoClosedCharactersDecorations = autoClosedCharactersDecorations;\n    this._autoClosedEnclosingDecorations = autoClosedEnclosingDecorations;\n  }\n  dispose() {\n    this._autoClosedCharactersDecorations = this._model.deltaDecorations(this._autoClosedCharactersDecorations, []);\n    this._autoClosedEnclosingDecorations = this._model.deltaDecorations(this._autoClosedEnclosingDecorations, []);\n  }\n  getAutoClosedCharactersRanges() {\n    const result = [];\n    for (let i2 = 0; i2 \u003c this._autoClosedCharactersDecorations.length; i2++) {\n      const decorationRange = this._model.getDecorationRange(this._autoClosedCharactersDecorations[i2]);\n      if (decorationRange) {\n        result.push(decorationRange);\n      }\n    }\n    return result;\n  }\n  isValid(selections) {\n    const enclosingRanges = [];\n    for (let i2 = 0; i2 \u003c this._autoClosedEnclosingDecorations.length; i2++) {\n      const decorationRange = this._model.getDecorationRange(this._autoClosedEnclosingDecorations[i2]);\n      if (decorationRange) {\n        enclosingRanges.push(decorationRange);\n        if (decorationRange.startLineNumber !== decorationRange.endLineNumber) {\n          return false;\n        }\n      }\n    }\n    enclosingRanges.sort(Range.compareRangesUsingStarts);\n    selections.sort(Range.compareRangesUsingStarts);\n    for (let i2 = 0; i2 \u003c selections.length; i2++) {\n      if (i2 \u003e= enclosingRanges.length) {\n        return false;\n      }\n      if (!enclosingRanges[i2].strictContainsRange(selections[i2])) {\n        return false;\n      }\n    }\n    return true;\n  }\n};\nvar CommandExecutor = class {\n  static executeCommands(model, selectionsBefore, commands, editReason = EditSources.unknown({ name: \"executeCommands\" })) {\n    const ctx = {\n      model,\n      selectionsBefore,\n      trackedRanges: [],\n      trackedRangesDirection: []\n    };\n    const result = this._innerExecuteCommands(ctx, commands, editReason);\n    for (let i2 = 0, len = ctx.trackedRanges.length; i2 \u003c len; i2++) {\n      ctx.model._setTrackedRange(\n        ctx.trackedRanges[i2],\n        null,\n        0\n        /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */\n      );\n    }\n    return result;\n  }\n  static _innerExecuteCommands(ctx, commands, editReason) {\n    if (this._arrayIsEmpty(commands)) {\n      return null;\n    }\n    const commandsData = this._getEditOperations(ctx, commands);\n    if (commandsData.operations.length === 0) {\n      return null;\n    }\n    const rawOperations = commandsData.operations;\n    const loserCursorsMap = this._getLoserCursorMap(rawOperations);\n    if (loserCursorsMap.hasOwnProperty(\"0\")) {\n      console.warn(\"Ignoring commands\");\n      return null;\n    }\n    const filteredOperations = [];\n    for (let i2 = 0, len = rawOperations.length; i2 \u003c len; i2++) {\n      if (!loserCursorsMap.hasOwnProperty(rawOperations[i2].identifier.major.toString())) {\n        filteredOperations.push(rawOperations[i2]);\n      }\n    }\n    if (commandsData.hadTrackedEditOperation \u0026\u0026 filteredOperations.length \u003e 0) {\n      filteredOperations[0]._isTracked = true;\n    }\n    let selectionsAfter = ctx.model.pushEditOperations(ctx.selectionsBefore, filteredOperations, (inverseEditOperations) =\u003e {\n      const groupedInverseEditOperations = [];\n      for (let i2 = 0; i2 \u003c ctx.selectionsBefore.length; i2++) {\n        groupedInverseEditOperations[i2] = [];\n      }\n      for (const op of inverseEditOperations) {\n        if (!op.identifier) {\n          continue;\n        }\n        groupedInverseEditOperations[op.identifier.major].push(op);\n      }\n      const minorBasedSorter = (a, b) =\u003e {\n        return a.identifier.minor - b.identifier.minor;\n      };\n      const cursorSelections = [];\n      for (let i2 = 0; i2 \u003c ctx.selectionsBefore.length; i2++) {\n        if (groupedInverseEditOperations[i2].length \u003e 0) {\n          groupedInverseEditOperations[i2].sort(minorBasedSorter);\n          cursorSelections[i2] = commands[i2].computeCursorState(ctx.model, {\n            getInverseEditOperations: () =\u003e {\n              return groupedInverseEditOperations[i2];\n            },\n            getTrackedSelection: (id) =\u003e {\n              const idx = parseInt(id, 10);\n              const range2 = ctx.model._getTrackedRange(ctx.trackedRanges[idx]);\n              if (ctx.trackedRangesDirection[idx] === 0) {\n                return new Selection(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn);\n              }\n              return new Selection(range2.endLineNumber, range2.endColumn, range2.startLineNumber, range2.startColumn);\n            }\n          });\n        } else {\n          cursorSelections[i2] = ctx.selectionsBefore[i2];\n        }\n      }\n      return cursorSelections;\n    }, void 0, editReason);\n    if (!selectionsAfter) {\n      selectionsAfter = ctx.selectionsBefore;\n    }\n    const losingCursors = [];\n    for (const losingCursorIndex in loserCursorsMap) {\n      if (loserCursorsMap.hasOwnProperty(losingCursorIndex)) {\n        losingCursors.push(parseInt(losingCursorIndex, 10));\n      }\n    }\n    losingCursors.sort((a, b) =\u003e {\n      return b - a;\n    });\n    for (const losingCursor of losingCursors) {\n      selectionsAfter.splice(losingCursor, 1);\n    }\n    return selectionsAfter;\n  }\n  static _arrayIsEmpty(commands) {\n    for (let i2 = 0, len = commands.length; i2 \u003c len; i2++) {\n      if (commands[i2]) {\n        return false;\n      }\n    }\n    return true;\n  }\n  static _getEditOperations(ctx, commands) {\n    let operations = [];\n    let hadTrackedEditOperation = false;\n    for (let i2 = 0, len = commands.length; i2 \u003c len; i2++) {\n      const command = commands[i2];\n      if (command) {\n        const r = this._getEditOperationsFromCommand(ctx, i2, command);\n        operations = operations.concat(r.operations);\n        hadTrackedEditOperation = hadTrackedEditOperation || r.hadTrackedEditOperation;\n      }\n    }\n    return {\n      operations,\n      hadTrackedEditOperation\n    };\n  }\n  static _getEditOperationsFromCommand(ctx, majorIdentifier, command) {\n    const operations = [];\n    let operationMinor = 0;\n    const addEditOperation = (range2, text2, forceMoveMarkers = false) =\u003e {\n      if (Range.isEmpty(range2) \u0026\u0026 text2 === \"\") {\n        return;\n      }\n      operations.push({\n        identifier: {\n          major: majorIdentifier,\n          minor: operationMinor++\n        },\n        range: range2,\n        text: text2,\n        forceMoveMarkers,\n        isAutoWhitespaceEdit: command.insertsAutoWhitespace\n      });\n    };\n    let hadTrackedEditOperation = false;\n    const addTrackedEditOperation = (selection, text2, forceMoveMarkers) =\u003e {\n      hadTrackedEditOperation = true;\n      addEditOperation(selection, text2, forceMoveMarkers);\n    };\n    const trackSelection = (_selection, trackPreviousOnEmpty) =\u003e {\n      const selection = Selection.liftSelection(_selection);\n      let stickiness;\n      if (selection.isEmpty()) {\n        if (typeof trackPreviousOnEmpty === \"boolean\") {\n          if (trackPreviousOnEmpty) {\n            stickiness = 2;\n          } else {\n            stickiness = 3;\n          }\n        } else {\n          const maxLineColumn = ctx.model.getLineMaxColumn(selection.startLineNumber);\n          if (selection.startColumn === maxLineColumn) {\n            stickiness = 2;\n          } else {\n            stickiness = 3;\n          }\n        }\n      } else {\n        stickiness = 1;\n      }\n      const l = ctx.trackedRanges.length;\n      const id = ctx.model._setTrackedRange(null, selection, stickiness);\n      ctx.trackedRanges[l] = id;\n      ctx.trackedRangesDirection[l] = selection.getDirection();\n      return l.toString();\n    };\n    const editOperationBuilder = {\n      addEditOperation,\n      addTrackedEditOperation,\n      trackSelection\n    };\n    try {\n      command.getEditOperations(ctx.model, editOperationBuilder);\n    } catch (e) {\n      onUnexpectedError(e);\n      return {\n        operations: [],\n        hadTrackedEditOperation: false\n      };\n    }\n    return {\n      operations,\n      hadTrackedEditOperation\n    };\n  }\n  static _getLoserCursorMap(operations) {\n    operations = operations.slice(0);\n    operations.sort((a, b) =\u003e {\n      return -Range.compareRangesUsingEnds(a.range, b.range);\n    });\n    const loserCursorsMap = {};\n    for (let i2 = 1; i2 \u003c operations.length; i2++) {\n      const previousOp = operations[i2 - 1];\n      const currentOp = operations[i2];\n      if (Range.getStartPosition(previousOp.range).isBefore(Range.getEndPosition(currentOp.range))) {\n        let loserMajor;\n        if (previousOp.identifier.major \u003e currentOp.identifier.major) {\n          loserMajor = previousOp.identifier.major;\n        } else {\n          loserMajor = currentOp.identifier.major;\n        }\n        loserCursorsMap[loserMajor.toString()] = true;\n        for (let j = 0; j \u003c operations.length; j++) {\n          if (operations[j].identifier.major === loserMajor) {\n            operations.splice(j, 1);\n            if (j \u003c i2) {\n              i2--;\n            }\n            j--;\n          }\n        }\n        if (i2 \u003e 0) {\n          i2--;\n        }\n      }\n    }\n    return loserCursorsMap;\n  }\n};\nvar CompositionLineState = class {\n  constructor(text2, lineNumber, startSelectionOffset, endSelectionOffset) {\n    this.text = text2;\n    this.lineNumber = lineNumber;\n    this.startSelectionOffset = startSelectionOffset;\n    this.endSelectionOffset = endSelectionOffset;\n  }\n};\nvar CompositionState = class _CompositionState {\n  static _capture(textModel, selections) {\n    const result = [];\n    for (const selection of selections) {\n      if (selection.startLineNumber !== selection.endLineNumber) {\n        return null;\n      }\n      const lineNumber = selection.startLineNumber;\n      result.push(new CompositionLineState(textModel.getLineContent(lineNumber), lineNumber, selection.startColumn - 1, selection.endColumn - 1));\n    }\n    return result;\n  }\n  constructor(textModel, selections) {\n    this._original = _CompositionState._capture(textModel, selections);\n  }\n  /**\n   * Returns the inserted text during this composition.\n   * If the composition resulted in existing text being changed (i.e. not a pure insertion) it returns null.\n   */\n  deduceOutcome(textModel, selections) {\n    if (!this._original) {\n      return null;\n    }\n    const current = _CompositionState._capture(textModel, selections);\n    if (!current) {\n      return null;\n    }\n    if (this._original.length !== current.length) {\n      return null;\n    }\n    const result = [];\n    for (let i2 = 0, len = this._original.length; i2 \u003c len; i2++) {\n      result.push(_CompositionState._deduceOutcome(this._original[i2], current[i2]));\n    }\n    return result;\n  }\n  static _deduceOutcome(original, current) {\n    const commonPrefix = Math.min(original.startSelectionOffset, current.startSelectionOffset, commonPrefixLength(original.text, current.text));\n    const commonSuffix = Math.min(original.text.length - original.endSelectionOffset, current.text.length - current.endSelectionOffset, commonSuffixLength(original.text, current.text));\n    const deletedText = original.text.substring(commonPrefix, original.text.length - commonSuffix);\n    const insertedTextStartOffset = commonPrefix;\n    const insertedTextEndOffset = current.text.length - commonSuffix;\n    const insertedText = current.text.substring(insertedTextStartOffset, insertedTextEndOffset);\n    const insertedTextRange = new Range(current.lineNumber, insertedTextStartOffset + 1, current.lineNumber, insertedTextEndOffset + 1);\n    return new CompositionOutcome(deletedText, original.startSelectionOffset - commonPrefix, original.endSelectionOffset - commonPrefix, insertedText, current.startSelectionOffset - commonPrefix, current.endSelectionOffset - commonPrefix, insertedTextRange);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewModelImpl.js\ninit_position();\ninit_range();\ninit_model2();\ninit_textModelEvents();\ninit_languages();\ninit_modesRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/textToHtmlTokenizer.js\ninit_strings();\ninit_lineTokens();\ninit_languages();\ninit_nullTokenize();\nvar fallback = {\n  getInitialState: () =\u003e NullState,\n  tokenizeEncoded: (buffer, hasEOL, state) =\u003e nullTokenizeEncoded(0, state)\n};\nasync function tokenizeToString(languageService, text2, languageId) {\n  if (!languageId) {\n    return _tokenizeToString(text2, languageService.languageIdCodec, fallback);\n  }\n  const tokenizationSupport = await TokenizationRegistry2.getOrCreate(languageId);\n  return _tokenizeToString(text2, languageService.languageIdCodec, tokenizationSupport || fallback);\n}\nfunction tokenizeLineToHTML(text2, viewLineTokens, colorMap, startOffset, endOffset, tabSize, useNbsp) {\n  let result = `\u003cdiv\u003e`;\n  let charIndex = startOffset;\n  let tabsCharDelta = 0;\n  let prevIsSpace = true;\n  for (let tokenIndex = 0, tokenCount = viewLineTokens.getCount(); tokenIndex \u003c tokenCount; tokenIndex++) {\n    const tokenEndIndex = viewLineTokens.getEndOffset(tokenIndex);\n    if (tokenEndIndex \u003c= startOffset) {\n      continue;\n    }\n    let partContent = \"\";\n    for (; charIndex \u003c tokenEndIndex \u0026\u0026 charIndex \u003c endOffset; charIndex++) {\n      const charCode = text2.charCodeAt(charIndex);\n      switch (charCode) {\n        case 9: {\n          let insertSpacesCount = tabSize - (charIndex + tabsCharDelta) % tabSize;\n          tabsCharDelta += insertSpacesCount - 1;\n          while (insertSpacesCount \u003e 0) {\n            if (useNbsp \u0026\u0026 prevIsSpace) {\n              partContent += \"\u0026#160;\";\n              prevIsSpace = false;\n            } else {\n              partContent += \" \";\n              prevIsSpace = true;\n            }\n            insertSpacesCount--;\n          }\n          break;\n        }\n        case 60:\n          partContent += \"\u0026lt;\";\n          prevIsSpace = false;\n          break;\n        case 62:\n          partContent += \"\u0026gt;\";\n          prevIsSpace = false;\n          break;\n        case 38:\n          partContent += \"\u0026amp;\";\n          prevIsSpace = false;\n          break;\n        case 0:\n          partContent += \"\u0026#00;\";\n          prevIsSpace = false;\n          break;\n        case 65279:\n        case 8232:\n        case 8233:\n        case 133:\n          partContent += \"\\uFFFD\";\n          prevIsSpace = false;\n          break;\n        case 13:\n          partContent += \"\u0026#8203\";\n          prevIsSpace = false;\n          break;\n        case 32:\n          if (useNbsp \u0026\u0026 prevIsSpace) {\n            partContent += \"\u0026#160;\";\n            prevIsSpace = false;\n          } else {\n            partContent += \" \";\n            prevIsSpace = true;\n          }\n          break;\n        default:\n          partContent += String.fromCharCode(charCode);\n          prevIsSpace = false;\n      }\n    }\n    result += `\u003cspan style=\"${viewLineTokens.getInlineStyle(tokenIndex, colorMap)}\"\u003e${partContent}\u003c/span\u003e`;\n    if (tokenEndIndex \u003e endOffset || charIndex \u003e= endOffset) {\n      break;\n    }\n  }\n  result += `\u003c/div\u003e`;\n  return result;\n}\nfunction _tokenizeToString(text2, languageIdCodec, tokenizationSupport) {\n  let result = `\u003cdiv class=\"monaco-tokenized-source\"\u003e`;\n  const lines = splitLines(text2);\n  let currentState = tokenizationSupport.getInitialState();\n  for (let i2 = 0, len = lines.length; i2 \u003c len; i2++) {\n    const line = lines[i2];\n    if (i2 \u003e 0) {\n      result += `\u003cbr/\u003e`;\n    }\n    const tokenizationResult = tokenizationSupport.tokenizeEncoded(line, true, currentState);\n    LineTokens.convertToEndOffset(tokenizationResult.tokens, line.length);\n    const lineTokens = new LineTokens(tokenizationResult.tokens, line, languageIdCodec);\n    const viewLineTokens = lineTokens.inflate();\n    let startOffset = 0;\n    for (let j = 0, lenJ = viewLineTokens.getCount(); j \u003c lenJ; j++) {\n      const type = viewLineTokens.getClassName(j);\n      const endIndex = viewLineTokens.getEndOffset(j);\n      result += `\u003cspan class=\"${type}\"\u003e${escape(line.substring(startOffset, endIndex))}\u003c/span\u003e`;\n      startOffset = endIndex;\n    }\n    currentState = tokenizationResult.endState;\n  }\n  result += `\u003c/div\u003e`;\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/viewLayout.js\ninit_event();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/linesLayout.js\ninit_strings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/lineHeights.js\ninit_arrays();\ninit_collections();\nvar CustomLine = class {\n  constructor(decorationId, index, lineNumber, specialHeight, prefixSum) {\n    this.decorationId = decorationId;\n    this.index = index;\n    this.lineNumber = lineNumber;\n    this.specialHeight = specialHeight;\n    this.prefixSum = prefixSum;\n    this.maximumSpecialHeight = specialHeight;\n    this.deleted = false;\n  }\n};\nvar LineHeightsManager = class {\n  constructor(defaultLineHeight, customLineHeightData) {\n    this._decorationIDToCustomLine = new ArrayMap2();\n    this._orderedCustomLines = [];\n    this._pendingSpecialLinesToInsert = [];\n    this._invalidIndex = 0;\n    this._hasPending = false;\n    this._defaultLineHeight = defaultLineHeight;\n    if (customLineHeightData.length \u003e 0) {\n      for (const data of customLineHeightData) {\n        this.insertOrChangeCustomLineHeight(data.decorationId, data.startLineNumber, data.endLineNumber, data.lineHeight);\n      }\n      this.commit();\n    }\n  }\n  set defaultLineHeight(defaultLineHeight) {\n    this._defaultLineHeight = defaultLineHeight;\n  }\n  get defaultLineHeight() {\n    return this._defaultLineHeight;\n  }\n  removeCustomLineHeight(decorationID) {\n    const customLines = this._decorationIDToCustomLine.get(decorationID);\n    if (!customLines) {\n      return;\n    }\n    this._decorationIDToCustomLine.delete(decorationID);\n    for (const customLine of customLines) {\n      customLine.deleted = true;\n      this._invalidIndex = Math.min(this._invalidIndex, customLine.index);\n    }\n    this._hasPending = true;\n  }\n  insertOrChangeCustomLineHeight(decorationId, startLineNumber, endLineNumber, lineHeight) {\n    this.removeCustomLineHeight(decorationId);\n    for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n      const customLine = new CustomLine(decorationId, -1, lineNumber, lineHeight, 0);\n      this._pendingSpecialLinesToInsert.push(customLine);\n    }\n    this._hasPending = true;\n  }\n  heightForLineNumber(lineNumber) {\n    const searchIndex = this._binarySearchOverOrderedCustomLinesArray(lineNumber);\n    if (searchIndex \u003e= 0) {\n      return this._orderedCustomLines[searchIndex].maximumSpecialHeight;\n    }\n    return this._defaultLineHeight;\n  }\n  getAccumulatedLineHeightsIncludingLineNumber(lineNumber) {\n    const searchIndex = this._binarySearchOverOrderedCustomLinesArray(lineNumber);\n    if (searchIndex \u003e= 0) {\n      return this._orderedCustomLines[searchIndex].prefixSum + this._orderedCustomLines[searchIndex].maximumSpecialHeight;\n    }\n    if (searchIndex === -1) {\n      return this._defaultLineHeight * lineNumber;\n    }\n    const modifiedIndex = -(searchIndex + 1);\n    const previousSpecialLine = this._orderedCustomLines[modifiedIndex - 1];\n    return previousSpecialLine.prefixSum + previousSpecialLine.maximumSpecialHeight + this._defaultLineHeight * (lineNumber - previousSpecialLine.lineNumber);\n  }\n  onLinesDeleted(fromLineNumber, toLineNumber) {\n    const deleteCount = toLineNumber - fromLineNumber + 1;\n    const numberOfCustomLines = this._orderedCustomLines.length;\n    const candidateStartIndexOfDeletion = this._binarySearchOverOrderedCustomLinesArray(fromLineNumber);\n    let startIndexOfDeletion;\n    if (candidateStartIndexOfDeletion \u003e= 0) {\n      startIndexOfDeletion = candidateStartIndexOfDeletion;\n      for (let i2 = candidateStartIndexOfDeletion - 1; i2 \u003e= 0; i2--) {\n        if (this._orderedCustomLines[i2].lineNumber === fromLineNumber) {\n          startIndexOfDeletion--;\n        } else {\n          break;\n        }\n      }\n    } else {\n      startIndexOfDeletion = candidateStartIndexOfDeletion === -(numberOfCustomLines + 1) \u0026\u0026 candidateStartIndexOfDeletion !== -1 ? numberOfCustomLines - 1 : -(candidateStartIndexOfDeletion + 1);\n    }\n    const candidateEndIndexOfDeletion = this._binarySearchOverOrderedCustomLinesArray(toLineNumber);\n    let endIndexOfDeletion;\n    if (candidateEndIndexOfDeletion \u003e= 0) {\n      endIndexOfDeletion = candidateEndIndexOfDeletion;\n      for (let i2 = candidateEndIndexOfDeletion + 1; i2 \u003c numberOfCustomLines; i2++) {\n        if (this._orderedCustomLines[i2].lineNumber === toLineNumber) {\n          endIndexOfDeletion++;\n        } else {\n          break;\n        }\n      }\n    } else {\n      endIndexOfDeletion = candidateEndIndexOfDeletion === -(numberOfCustomLines + 1) \u0026\u0026 candidateEndIndexOfDeletion !== -1 ? numberOfCustomLines - 1 : -(candidateEndIndexOfDeletion + 1);\n    }\n    const isEndIndexBiggerThanStartIndex = endIndexOfDeletion \u003e startIndexOfDeletion;\n    const isEndIndexEqualToStartIndexAndCoversCustomLine = endIndexOfDeletion === startIndexOfDeletion \u0026\u0026 this._orderedCustomLines[startIndexOfDeletion] \u0026\u0026 this._orderedCustomLines[startIndexOfDeletion].lineNumber \u003e= fromLineNumber \u0026\u0026 this._orderedCustomLines[startIndexOfDeletion].lineNumber \u003c= toLineNumber;\n    if (isEndIndexBiggerThanStartIndex || isEndIndexEqualToStartIndexAndCoversCustomLine) {\n      let maximumSpecialHeightOnDeletedInterval = 0;\n      for (let i2 = startIndexOfDeletion; i2 \u003c= endIndexOfDeletion; i2++) {\n        maximumSpecialHeightOnDeletedInterval = Math.max(maximumSpecialHeightOnDeletedInterval, this._orderedCustomLines[i2].maximumSpecialHeight);\n      }\n      let prefixSumOnDeletedInterval = 0;\n      if (startIndexOfDeletion \u003e 0) {\n        const previousSpecialLine = this._orderedCustomLines[startIndexOfDeletion - 1];\n        prefixSumOnDeletedInterval = previousSpecialLine.prefixSum + previousSpecialLine.maximumSpecialHeight + this._defaultLineHeight * (fromLineNumber - previousSpecialLine.lineNumber - 1);\n      } else {\n        prefixSumOnDeletedInterval = fromLineNumber \u003e 0 ? (fromLineNumber - 1) * this._defaultLineHeight : 0;\n      }\n      const firstSpecialLineDeleted = this._orderedCustomLines[startIndexOfDeletion];\n      const lastSpecialLineDeleted = this._orderedCustomLines[endIndexOfDeletion];\n      const firstSpecialLineAfterDeletion = this._orderedCustomLines[endIndexOfDeletion + 1];\n      const heightOfFirstLineAfterDeletion = firstSpecialLineAfterDeletion \u0026\u0026 firstSpecialLineAfterDeletion.lineNumber === toLineNumber + 1 ? firstSpecialLineAfterDeletion.maximumSpecialHeight : this._defaultLineHeight;\n      const totalHeightDeleted = lastSpecialLineDeleted.prefixSum + lastSpecialLineDeleted.maximumSpecialHeight - firstSpecialLineDeleted.prefixSum + this._defaultLineHeight * (toLineNumber - lastSpecialLineDeleted.lineNumber) + this._defaultLineHeight * (firstSpecialLineDeleted.lineNumber - fromLineNumber) + heightOfFirstLineAfterDeletion - maximumSpecialHeightOnDeletedInterval;\n      const decorationIdsSeen = /* @__PURE__ */ new Set();\n      const newOrderedCustomLines = [];\n      const newDecorationIDToSpecialLine = new ArrayMap2();\n      let numberOfDeletions = 0;\n      for (let i2 = 0; i2 \u003c this._orderedCustomLines.length; i2++) {\n        const customLine = this._orderedCustomLines[i2];\n        if (i2 \u003c startIndexOfDeletion) {\n          newOrderedCustomLines.push(customLine);\n          newDecorationIDToSpecialLine.add(customLine.decorationId, customLine);\n        } else if (i2 \u003e= startIndexOfDeletion \u0026\u0026 i2 \u003c= endIndexOfDeletion) {\n          const decorationId = customLine.decorationId;\n          if (!decorationIdsSeen.has(decorationId)) {\n            customLine.index -= numberOfDeletions;\n            customLine.lineNumber = fromLineNumber;\n            customLine.prefixSum = prefixSumOnDeletedInterval;\n            customLine.maximumSpecialHeight = maximumSpecialHeightOnDeletedInterval;\n            newOrderedCustomLines.push(customLine);\n            newDecorationIDToSpecialLine.add(customLine.decorationId, customLine);\n          } else {\n            numberOfDeletions++;\n          }\n        } else if (i2 \u003e endIndexOfDeletion) {\n          customLine.index -= numberOfDeletions;\n          customLine.lineNumber -= deleteCount;\n          customLine.prefixSum -= totalHeightDeleted;\n          newOrderedCustomLines.push(customLine);\n          newDecorationIDToSpecialLine.add(customLine.decorationId, customLine);\n        }\n        decorationIdsSeen.add(customLine.decorationId);\n      }\n      this._orderedCustomLines = newOrderedCustomLines;\n      this._decorationIDToCustomLine = newDecorationIDToSpecialLine;\n    } else {\n      const totalHeightDeleted = deleteCount * this._defaultLineHeight;\n      for (let i2 = endIndexOfDeletion; i2 \u003c this._orderedCustomLines.length; i2++) {\n        const customLine = this._orderedCustomLines[i2];\n        if (customLine.lineNumber \u003e toLineNumber) {\n          customLine.lineNumber -= deleteCount;\n          customLine.prefixSum -= totalHeightDeleted;\n        }\n      }\n    }\n  }\n  onLinesInserted(fromLineNumber, toLineNumber) {\n    const insertCount = toLineNumber - fromLineNumber + 1;\n    const candidateStartIndexOfInsertion = this._binarySearchOverOrderedCustomLinesArray(fromLineNumber);\n    let startIndexOfInsertion;\n    if (candidateStartIndexOfInsertion \u003e= 0) {\n      startIndexOfInsertion = candidateStartIndexOfInsertion;\n      for (let i2 = candidateStartIndexOfInsertion - 1; i2 \u003e= 0; i2--) {\n        if (this._orderedCustomLines[i2].lineNumber === fromLineNumber) {\n          startIndexOfInsertion--;\n        } else {\n          break;\n        }\n      }\n    } else {\n      startIndexOfInsertion = -(candidateStartIndexOfInsertion + 1);\n    }\n    const toReAdd = [];\n    const decorationsImmediatelyAfter = /* @__PURE__ */ new Set();\n    for (let i2 = startIndexOfInsertion; i2 \u003c this._orderedCustomLines.length; i2++) {\n      if (this._orderedCustomLines[i2].lineNumber === fromLineNumber) {\n        decorationsImmediatelyAfter.add(this._orderedCustomLines[i2].decorationId);\n      }\n    }\n    const decorationsImmediatelyBefore = /* @__PURE__ */ new Set();\n    for (let i2 = startIndexOfInsertion - 1; i2 \u003e= 0; i2--) {\n      if (this._orderedCustomLines[i2].lineNumber === fromLineNumber - 1) {\n        decorationsImmediatelyBefore.add(this._orderedCustomLines[i2].decorationId);\n      }\n    }\n    const decorationsWithGaps = intersection(decorationsImmediatelyBefore, decorationsImmediatelyAfter);\n    for (let i2 = startIndexOfInsertion; i2 \u003c this._orderedCustomLines.length; i2++) {\n      this._orderedCustomLines[i2].lineNumber += insertCount;\n      this._orderedCustomLines[i2].prefixSum += this._defaultLineHeight * insertCount;\n    }\n    if (decorationsWithGaps.size \u003e 0) {\n      for (const decorationId of decorationsWithGaps) {\n        const decoration3 = this._decorationIDToCustomLine.get(decorationId);\n        if (decoration3) {\n          const startLineNumber = decoration3.reduce((min, l) =\u003e Math.min(min, l.lineNumber), fromLineNumber);\n          const endLineNumber = decoration3.reduce((max, l) =\u003e Math.max(max, l.lineNumber), fromLineNumber);\n          const lineHeight = decoration3.reduce((max, l) =\u003e Math.max(max, l.specialHeight), 0);\n          toReAdd.push({\n            decorationId,\n            startLineNumber,\n            endLineNumber,\n            lineHeight\n          });\n        }\n      }\n      for (const dec of toReAdd) {\n        this.insertOrChangeCustomLineHeight(dec.decorationId, dec.startLineNumber, dec.endLineNumber, dec.lineHeight);\n      }\n      this.commit();\n    }\n  }\n  commit() {\n    if (!this._hasPending) {\n      return;\n    }\n    for (const pendingChange of this._pendingSpecialLinesToInsert) {\n      const candidateInsertionIndex = this._binarySearchOverOrderedCustomLinesArray(pendingChange.lineNumber);\n      const insertionIndex = candidateInsertionIndex \u003e= 0 ? candidateInsertionIndex : -(candidateInsertionIndex + 1);\n      this._orderedCustomLines.splice(insertionIndex, 0, pendingChange);\n      this._invalidIndex = Math.min(this._invalidIndex, insertionIndex);\n    }\n    this._pendingSpecialLinesToInsert = [];\n    const newDecorationIDToSpecialLine = new ArrayMap2();\n    const newOrderedSpecialLines = [];\n    for (let i2 = 0; i2 \u003c this._invalidIndex; i2++) {\n      const customLine = this._orderedCustomLines[i2];\n      newOrderedSpecialLines.push(customLine);\n      newDecorationIDToSpecialLine.add(customLine.decorationId, customLine);\n    }\n    let numberOfDeletions = 0;\n    let previousSpecialLine = this._invalidIndex \u003e 0 ? newOrderedSpecialLines[this._invalidIndex - 1] : void 0;\n    for (let i2 = this._invalidIndex; i2 \u003c this._orderedCustomLines.length; i2++) {\n      const customLine = this._orderedCustomLines[i2];\n      if (customLine.deleted) {\n        numberOfDeletions++;\n        continue;\n      }\n      customLine.index = i2 - numberOfDeletions;\n      if (previousSpecialLine \u0026\u0026 previousSpecialLine.lineNumber === customLine.lineNumber) {\n        customLine.maximumSpecialHeight = previousSpecialLine.maximumSpecialHeight;\n        customLine.prefixSum = previousSpecialLine.prefixSum;\n      } else {\n        let maximumSpecialHeight = customLine.specialHeight;\n        for (let j = i2; j \u003c this._orderedCustomLines.length; j++) {\n          const nextSpecialLine = this._orderedCustomLines[j];\n          if (nextSpecialLine.deleted) {\n            continue;\n          }\n          if (nextSpecialLine.lineNumber !== customLine.lineNumber) {\n            break;\n          }\n          maximumSpecialHeight = Math.max(maximumSpecialHeight, nextSpecialLine.specialHeight);\n        }\n        customLine.maximumSpecialHeight = maximumSpecialHeight;\n        let prefixSum;\n        if (previousSpecialLine) {\n          prefixSum = previousSpecialLine.prefixSum + previousSpecialLine.maximumSpecialHeight + this._defaultLineHeight * (customLine.lineNumber - previousSpecialLine.lineNumber - 1);\n        } else {\n          prefixSum = this._defaultLineHeight * (customLine.lineNumber - 1);\n        }\n        customLine.prefixSum = prefixSum;\n      }\n      previousSpecialLine = customLine;\n      newOrderedSpecialLines.push(customLine);\n      newDecorationIDToSpecialLine.add(customLine.decorationId, customLine);\n    }\n    this._orderedCustomLines = newOrderedSpecialLines;\n    this._decorationIDToCustomLine = newDecorationIDToSpecialLine;\n    this._invalidIndex = Infinity;\n    this._hasPending = false;\n  }\n  _binarySearchOverOrderedCustomLinesArray(lineNumber) {\n    return binarySearch2(this._orderedCustomLines.length, (index) =\u003e {\n      const line = this._orderedCustomLines[index];\n      if (line.lineNumber === lineNumber) {\n        return 0;\n      } else if (line.lineNumber \u003c lineNumber) {\n        return -1;\n      } else {\n        return 1;\n      }\n    });\n  }\n};\nvar ArrayMap2 = class {\n  constructor() {\n    this._map = /* @__PURE__ */ new Map();\n  }\n  add(key, value) {\n    const array2 = this._map.get(key);\n    if (!array2) {\n      this._map.set(key, [value]);\n    } else {\n      array2.push(value);\n    }\n  }\n  get(key) {\n    return this._map.get(key);\n  }\n  delete(key) {\n    this._map.delete(key);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/linesLayout.js\nvar PendingChanges = class {\n  constructor() {\n    this._hasPending = false;\n    this._inserts = [];\n    this._changes = [];\n    this._removes = [];\n  }\n  insert(x) {\n    this._hasPending = true;\n    this._inserts.push(x);\n  }\n  change(x) {\n    this._hasPending = true;\n    this._changes.push(x);\n  }\n  remove(x) {\n    this._hasPending = true;\n    this._removes.push(x);\n  }\n  commit(linesLayout) {\n    if (!this._hasPending) {\n      return;\n    }\n    const inserts = this._inserts;\n    const changes = this._changes;\n    const removes = this._removes;\n    this._hasPending = false;\n    this._inserts = [];\n    this._changes = [];\n    this._removes = [];\n    linesLayout._commitPendingChanges(inserts, changes, removes);\n  }\n};\nvar EditorWhitespace = class {\n  constructor(id, afterLineNumber, ordinal, height, minWidth) {\n    this.id = id;\n    this.afterLineNumber = afterLineNumber;\n    this.ordinal = ordinal;\n    this.height = height;\n    this.minWidth = minWidth;\n    this.prefixSum = 0;\n  }\n};\nvar LinesLayout = class _LinesLayout {\n  static {\n    this.INSTANCE_COUNT = 0;\n  }\n  constructor(lineCount, defaultLineHeight, paddingTop, paddingBottom, customLineHeightData) {\n    this._instanceId = singleLetterHash(++_LinesLayout.INSTANCE_COUNT);\n    this._pendingChanges = new PendingChanges();\n    this._lastWhitespaceId = 0;\n    this._arr = [];\n    this._prefixSumValidIndex = -1;\n    this._minWidth = -1;\n    this._lineCount = lineCount;\n    this._paddingTop = paddingTop;\n    this._paddingBottom = paddingBottom;\n    this._lineHeightsManager = new LineHeightsManager(defaultLineHeight, customLineHeightData);\n  }\n  /**\n   * Find the insertion index for a new value inside a sorted array of values.\n   * If the value is already present in the sorted array, the insertion index will be after the already existing value.\n   */\n  static findInsertionIndex(arr, afterLineNumber, ordinal) {\n    let low = 0;\n    let high = arr.length;\n    while (low \u003c high) {\n      const mid = low + high \u003e\u003e\u003e 1;\n      if (afterLineNumber === arr[mid].afterLineNumber) {\n        if (ordinal \u003c arr[mid].ordinal) {\n          high = mid;\n        } else {\n          low = mid + 1;\n        }\n      } else if (afterLineNumber \u003c arr[mid].afterLineNumber) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    return low;\n  }\n  /**\n   * Change the height of a line in pixels.\n   */\n  setDefaultLineHeight(lineHeight) {\n    this._lineHeightsManager.defaultLineHeight = lineHeight;\n  }\n  /**\n   * Changes the padding used to calculate vertical offsets.\n   */\n  setPadding(paddingTop, paddingBottom) {\n    this._paddingTop = paddingTop;\n    this._paddingBottom = paddingBottom;\n  }\n  /**\n   * Set the number of lines.\n   *\n   * @param lineCount New number of lines.\n   */\n  onFlushed(lineCount, customLineHeightData) {\n    this._lineCount = lineCount;\n    this._lineHeightsManager = new LineHeightsManager(this._lineHeightsManager.defaultLineHeight, customLineHeightData);\n  }\n  changeLineHeights(callback) {\n    let hadAChange = false;\n    try {\n      const accessor = {\n        insertOrChangeCustomLineHeight: (decorationId, startLineNumber, endLineNumber, lineHeight) =\u003e {\n          hadAChange = true;\n          this._lineHeightsManager.insertOrChangeCustomLineHeight(decorationId, startLineNumber, endLineNumber, lineHeight);\n        },\n        removeCustomLineHeight: (decorationId) =\u003e {\n          hadAChange = true;\n          this._lineHeightsManager.removeCustomLineHeight(decorationId);\n        }\n      };\n      callback(accessor);\n    } finally {\n      this._lineHeightsManager.commit();\n    }\n    return hadAChange;\n  }\n  changeWhitespace(callback) {\n    let hadAChange = false;\n    try {\n      const accessor = {\n        insertWhitespace: (afterLineNumber, ordinal, heightInPx, minWidth) =\u003e {\n          hadAChange = true;\n          afterLineNumber = afterLineNumber | 0;\n          ordinal = ordinal | 0;\n          heightInPx = heightInPx | 0;\n          minWidth = minWidth | 0;\n          const id = this._instanceId + ++this._lastWhitespaceId;\n          this._pendingChanges.insert(new EditorWhitespace(id, afterLineNumber, ordinal, heightInPx, minWidth));\n          return id;\n        },\n        changeOneWhitespace: (id, newAfterLineNumber, newHeight) =\u003e {\n          hadAChange = true;\n          newAfterLineNumber = newAfterLineNumber | 0;\n          newHeight = newHeight | 0;\n          this._pendingChanges.change({ id, newAfterLineNumber, newHeight });\n        },\n        removeWhitespace: (id) =\u003e {\n          hadAChange = true;\n          this._pendingChanges.remove({ id });\n        }\n      };\n      callback(accessor);\n    } finally {\n      this._pendingChanges.commit(this);\n    }\n    return hadAChange;\n  }\n  _commitPendingChanges(inserts, changes, removes) {\n    if (inserts.length \u003e 0 || removes.length \u003e 0) {\n      this._minWidth = -1;\n    }\n    if (inserts.length + changes.length + removes.length \u003c= 1) {\n      for (const insert of inserts) {\n        this._insertWhitespace(insert);\n      }\n      for (const change of changes) {\n        this._changeOneWhitespace(change.id, change.newAfterLineNumber, change.newHeight);\n      }\n      for (const remove of removes) {\n        const index = this._findWhitespaceIndex(remove.id);\n        if (index === -1) {\n          continue;\n        }\n        this._removeWhitespace(index);\n      }\n      return;\n    }\n    const toRemove = /* @__PURE__ */ new Set();\n    for (const remove of removes) {\n      toRemove.add(remove.id);\n    }\n    const toChange = /* @__PURE__ */ new Map();\n    for (const change of changes) {\n      toChange.set(change.id, change);\n    }\n    const applyRemoveAndChange = (whitespaces) =\u003e {\n      const result2 = [];\n      for (const whitespace of whitespaces) {\n        if (toRemove.has(whitespace.id)) {\n          continue;\n        }\n        if (toChange.has(whitespace.id)) {\n          const change = toChange.get(whitespace.id);\n          whitespace.afterLineNumber = change.newAfterLineNumber;\n          whitespace.height = change.newHeight;\n        }\n        result2.push(whitespace);\n      }\n      return result2;\n    };\n    const result = applyRemoveAndChange(this._arr).concat(applyRemoveAndChange(inserts));\n    result.sort((a, b) =\u003e {\n      if (a.afterLineNumber === b.afterLineNumber) {\n        return a.ordinal - b.ordinal;\n      }\n      return a.afterLineNumber - b.afterLineNumber;\n    });\n    this._arr = result;\n    this._prefixSumValidIndex = -1;\n  }\n  _insertWhitespace(whitespace) {\n    const insertIndex = _LinesLayout.findInsertionIndex(this._arr, whitespace.afterLineNumber, whitespace.ordinal);\n    this._arr.splice(insertIndex, 0, whitespace);\n    this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, insertIndex - 1);\n  }\n  _findWhitespaceIndex(id) {\n    const arr = this._arr;\n    for (let i2 = 0, len = arr.length; i2 \u003c len; i2++) {\n      if (arr[i2].id === id) {\n        return i2;\n      }\n    }\n    return -1;\n  }\n  _changeOneWhitespace(id, newAfterLineNumber, newHeight) {\n    const index = this._findWhitespaceIndex(id);\n    if (index === -1) {\n      return;\n    }\n    if (this._arr[index].height !== newHeight) {\n      this._arr[index].height = newHeight;\n      this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, index - 1);\n    }\n    if (this._arr[index].afterLineNumber !== newAfterLineNumber) {\n      const whitespace = this._arr[index];\n      this._removeWhitespace(index);\n      whitespace.afterLineNumber = newAfterLineNumber;\n      this._insertWhitespace(whitespace);\n    }\n  }\n  _removeWhitespace(removeIndex) {\n    this._arr.splice(removeIndex, 1);\n    this._prefixSumValidIndex = Math.min(this._prefixSumValidIndex, removeIndex - 1);\n  }\n  /**\n   * Notify the layouter that lines have been deleted (a continuous zone of lines).\n   *\n   * @param fromLineNumber The line number at which the deletion started, inclusive\n   * @param toLineNumber The line number at which the deletion ended, inclusive\n   */\n  onLinesDeleted(fromLineNumber, toLineNumber) {\n    fromLineNumber = fromLineNumber | 0;\n    toLineNumber = toLineNumber | 0;\n    this._lineCount -= toLineNumber - fromLineNumber + 1;\n    for (let i2 = 0, len = this._arr.length; i2 \u003c len; i2++) {\n      const afterLineNumber = this._arr[i2].afterLineNumber;\n      if (fromLineNumber \u003c= afterLineNumber \u0026\u0026 afterLineNumber \u003c= toLineNumber) {\n        this._arr[i2].afterLineNumber = fromLineNumber - 1;\n      } else if (afterLineNumber \u003e toLineNumber) {\n        this._arr[i2].afterLineNumber -= toLineNumber - fromLineNumber + 1;\n      }\n    }\n    this._lineHeightsManager.onLinesDeleted(fromLineNumber, toLineNumber);\n  }\n  /**\n   * Notify the layouter that lines have been inserted (a continuous zone of lines).\n   *\n   * @param fromLineNumber The line number at which the insertion started, inclusive\n   * @param toLineNumber The line number at which the insertion ended, inclusive.\n   */\n  onLinesInserted(fromLineNumber, toLineNumber) {\n    fromLineNumber = fromLineNumber | 0;\n    toLineNumber = toLineNumber | 0;\n    this._lineCount += toLineNumber - fromLineNumber + 1;\n    for (let i2 = 0, len = this._arr.length; i2 \u003c len; i2++) {\n      const afterLineNumber = this._arr[i2].afterLineNumber;\n      if (fromLineNumber \u003c= afterLineNumber) {\n        this._arr[i2].afterLineNumber += toLineNumber - fromLineNumber + 1;\n      }\n    }\n    this._lineHeightsManager.onLinesInserted(fromLineNumber, toLineNumber);\n  }\n  /**\n   * Get the sum of all the whitespaces.\n   */\n  getWhitespacesTotalHeight() {\n    if (this._arr.length === 0) {\n      return 0;\n    }\n    return this.getWhitespacesAccumulatedHeight(this._arr.length - 1);\n  }\n  /**\n   * Return the sum of the heights of the whitespaces at [0..index].\n   * This includes the whitespace at `index`.\n   *\n   * @param index The index of the whitespace.\n   * @return The sum of the heights of all whitespaces before the one at `index`, including the one at `index`.\n   */\n  getWhitespacesAccumulatedHeight(index) {\n    index = index | 0;\n    let startIndex = Math.max(0, this._prefixSumValidIndex + 1);\n    if (startIndex === 0) {\n      this._arr[0].prefixSum = this._arr[0].height;\n      startIndex++;\n    }\n    for (let i2 = startIndex; i2 \u003c= index; i2++) {\n      this._arr[i2].prefixSum = this._arr[i2 - 1].prefixSum + this._arr[i2].height;\n    }\n    this._prefixSumValidIndex = Math.max(this._prefixSumValidIndex, index);\n    return this._arr[index].prefixSum;\n  }\n  /**\n   * Get the sum of heights for all objects.\n   *\n   * @return The sum of heights for all objects.\n   */\n  getLinesTotalHeight() {\n    const linesHeight = this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(this._lineCount);\n    const whitespacesHeight = this.getWhitespacesTotalHeight();\n    return linesHeight + whitespacesHeight + this._paddingTop + this._paddingBottom;\n  }\n  /**\n   * Returns the accumulated height of whitespaces before the given line number.\n   *\n   * @param lineNumber The line number\n   */\n  getWhitespaceAccumulatedHeightBeforeLineNumber(lineNumber) {\n    lineNumber = lineNumber | 0;\n    const lastWhitespaceBeforeLineNumber = this._findLastWhitespaceBeforeLineNumber(lineNumber);\n    if (lastWhitespaceBeforeLineNumber === -1) {\n      return 0;\n    }\n    return this.getWhitespacesAccumulatedHeight(lastWhitespaceBeforeLineNumber);\n  }\n  _findLastWhitespaceBeforeLineNumber(lineNumber) {\n    lineNumber = lineNumber | 0;\n    const arr = this._arr;\n    let low = 0;\n    let high = arr.length - 1;\n    while (low \u003c= high) {\n      const delta = high - low | 0;\n      const halfDelta = delta / 2 | 0;\n      const mid = low + halfDelta | 0;\n      if (arr[mid].afterLineNumber \u003c lineNumber) {\n        if (mid + 1 \u003e= arr.length || arr[mid + 1].afterLineNumber \u003e= lineNumber) {\n          return mid;\n        } else {\n          low = mid + 1 | 0;\n        }\n      } else {\n        high = mid - 1 | 0;\n      }\n    }\n    return -1;\n  }\n  _findFirstWhitespaceAfterLineNumber(lineNumber) {\n    lineNumber = lineNumber | 0;\n    const lastWhitespaceBeforeLineNumber = this._findLastWhitespaceBeforeLineNumber(lineNumber);\n    const firstWhitespaceAfterLineNumber = lastWhitespaceBeforeLineNumber + 1;\n    if (firstWhitespaceAfterLineNumber \u003c this._arr.length) {\n      return firstWhitespaceAfterLineNumber;\n    }\n    return -1;\n  }\n  /**\n   * Find the index of the first whitespace which has `afterLineNumber` \u003e= `lineNumber`.\n   * @return The index of the first whitespace with `afterLineNumber` \u003e= `lineNumber` or -1 if no whitespace is found.\n   */\n  getFirstWhitespaceIndexAfterLineNumber(lineNumber) {\n    lineNumber = lineNumber | 0;\n    return this._findFirstWhitespaceAfterLineNumber(lineNumber);\n  }\n  /**\n   * Get the vertical offset (the sum of heights for all objects above) a certain line number.\n   *\n   * @param lineNumber The line number\n   * @return The sum of heights for all objects above `lineNumber`.\n   */\n  getVerticalOffsetForLineNumber(lineNumber, includeViewZones = false) {\n    lineNumber = lineNumber | 0;\n    let previousLinesHeight;\n    if (lineNumber \u003e 1) {\n      previousLinesHeight = this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(lineNumber - 1);\n    } else {\n      previousLinesHeight = 0;\n    }\n    const previousWhitespacesHeight = this.getWhitespaceAccumulatedHeightBeforeLineNumber(lineNumber - (includeViewZones ? 1 : 0));\n    return previousLinesHeight + previousWhitespacesHeight + this._paddingTop;\n  }\n  getLineHeightForLineNumber(lineNumber) {\n    return this._lineHeightsManager.heightForLineNumber(lineNumber);\n  }\n  /**\n   * Get the vertical offset (the sum of heights for all objects above) a certain line number and also the line height of the line.\n   *\n   * @param lineNumber The line number\n   * @return The sum of heights for all objects above `lineNumber`.\n   */\n  getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones = false) {\n    lineNumber = lineNumber | 0;\n    const previousLinesHeight = this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(lineNumber);\n    const previousWhitespacesHeight = this.getWhitespaceAccumulatedHeightBeforeLineNumber(lineNumber + (includeViewZones ? 1 : 0));\n    return previousLinesHeight + previousWhitespacesHeight + this._paddingTop;\n  }\n  /**\n   * The maximum min width for all whitespaces.\n   */\n  getWhitespaceMinWidth() {\n    if (this._minWidth === -1) {\n      let minWidth = 0;\n      for (let i2 = 0, len = this._arr.length; i2 \u003c len; i2++) {\n        minWidth = Math.max(minWidth, this._arr[i2].minWidth);\n      }\n      this._minWidth = minWidth;\n    }\n    return this._minWidth;\n  }\n  /**\n   * Check if `verticalOffset` is below all lines.\n   */\n  isAfterLines(verticalOffset) {\n    const totalHeight = this.getLinesTotalHeight();\n    return verticalOffset \u003e totalHeight;\n  }\n  isInTopPadding(verticalOffset) {\n    if (this._paddingTop === 0) {\n      return false;\n    }\n    return verticalOffset \u003c this._paddingTop;\n  }\n  isInBottomPadding(verticalOffset) {\n    if (this._paddingBottom === 0) {\n      return false;\n    }\n    const totalHeight = this.getLinesTotalHeight();\n    return verticalOffset \u003e= totalHeight - this._paddingBottom;\n  }\n  /**\n   * Find the first line number that is at or after vertical offset `verticalOffset`.\n   * i.e. if getVerticalOffsetForLine(line) is x and getVerticalOffsetForLine(line + 1) is y, then\n   * getLineNumberAtOrAfterVerticalOffset(i) = line, x \u003c= i \u003c y.\n   *\n   * @param verticalOffset The vertical offset to search at.\n   * @return The line number at or after vertical offset `verticalOffset`.\n   */\n  getLineNumberAtOrAfterVerticalOffset(verticalOffset) {\n    verticalOffset = verticalOffset | 0;\n    if (verticalOffset \u003c 0) {\n      return 1;\n    }\n    const linesCount = this._lineCount | 0;\n    let minLineNumber = 1;\n    let maxLineNumber = linesCount;\n    while (minLineNumber \u003c maxLineNumber) {\n      const midLineNumber = (minLineNumber + maxLineNumber) / 2 | 0;\n      const lineHeight = this.getLineHeightForLineNumber(midLineNumber);\n      const midLineNumberVerticalOffset = this.getVerticalOffsetForLineNumber(midLineNumber) | 0;\n      if (verticalOffset \u003e= midLineNumberVerticalOffset + lineHeight) {\n        minLineNumber = midLineNumber + 1;\n      } else if (verticalOffset \u003e= midLineNumberVerticalOffset) {\n        return midLineNumber;\n      } else {\n        maxLineNumber = midLineNumber;\n      }\n    }\n    if (minLineNumber \u003e linesCount) {\n      return linesCount;\n    }\n    return minLineNumber;\n  }\n  /**\n   * Get all the lines and their relative vertical offsets that are positioned between `verticalOffset1` and `verticalOffset2`.\n   *\n   * @param verticalOffset1 The beginning of the viewport.\n   * @param verticalOffset2 The end of the viewport.\n   * @return A structure describing the lines positioned between `verticalOffset1` and `verticalOffset2`.\n   */\n  getLinesViewportData(verticalOffset1, verticalOffset2) {\n    verticalOffset1 = verticalOffset1 | 0;\n    verticalOffset2 = verticalOffset2 | 0;\n    const startLineNumber = this.getLineNumberAtOrAfterVerticalOffset(verticalOffset1) | 0;\n    const startLineNumberVerticalOffset = this.getVerticalOffsetForLineNumber(startLineNumber) | 0;\n    let endLineNumber = this._lineCount | 0;\n    let whitespaceIndex = this.getFirstWhitespaceIndexAfterLineNumber(startLineNumber) | 0;\n    const whitespaceCount = this.getWhitespacesCount() | 0;\n    let currentWhitespaceHeight;\n    let currentWhitespaceAfterLineNumber;\n    if (whitespaceIndex === -1) {\n      whitespaceIndex = whitespaceCount;\n      currentWhitespaceAfterLineNumber = endLineNumber + 1;\n      currentWhitespaceHeight = 0;\n    } else {\n      currentWhitespaceAfterLineNumber = this.getAfterLineNumberForWhitespaceIndex(whitespaceIndex) | 0;\n      currentWhitespaceHeight = this.getHeightForWhitespaceIndex(whitespaceIndex) | 0;\n    }\n    let currentVerticalOffset = startLineNumberVerticalOffset;\n    let currentLineRelativeOffset = currentVerticalOffset;\n    const STEP_SIZE = 5e5;\n    let bigNumbersDelta = 0;\n    if (startLineNumberVerticalOffset \u003e= STEP_SIZE) {\n      bigNumbersDelta = Math.floor(startLineNumberVerticalOffset / STEP_SIZE) * STEP_SIZE;\n      bigNumbersDelta = Math.floor(bigNumbersDelta / this._lineHeightsManager.defaultLineHeight) * this._lineHeightsManager.defaultLineHeight;\n      currentLineRelativeOffset -= bigNumbersDelta;\n    }\n    const linesOffsets = [];\n    const verticalCenter = verticalOffset1 + (verticalOffset2 - verticalOffset1) / 2;\n    let centeredLineNumber = -1;\n    for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n      const lineHeight = this.getLineHeightForLineNumber(lineNumber);\n      if (centeredLineNumber === -1) {\n        const currentLineTop = currentVerticalOffset;\n        const currentLineBottom = currentVerticalOffset + lineHeight;\n        if (currentLineTop \u003c= verticalCenter \u0026\u0026 verticalCenter \u003c currentLineBottom || currentLineTop \u003e verticalCenter) {\n          centeredLineNumber = lineNumber;\n        }\n      }\n      currentVerticalOffset += lineHeight;\n      linesOffsets[lineNumber - startLineNumber] = currentLineRelativeOffset;\n      currentLineRelativeOffset += lineHeight;\n      while (currentWhitespaceAfterLineNumber === lineNumber) {\n        currentLineRelativeOffset += currentWhitespaceHeight;\n        currentVerticalOffset += currentWhitespaceHeight;\n        whitespaceIndex++;\n        if (whitespaceIndex \u003e= whitespaceCount) {\n          currentWhitespaceAfterLineNumber = endLineNumber + 1;\n        } else {\n          currentWhitespaceAfterLineNumber = this.getAfterLineNumberForWhitespaceIndex(whitespaceIndex) | 0;\n          currentWhitespaceHeight = this.getHeightForWhitespaceIndex(whitespaceIndex) | 0;\n        }\n      }\n      if (currentVerticalOffset \u003e= verticalOffset2) {\n        endLineNumber = lineNumber;\n        break;\n      }\n    }\n    if (centeredLineNumber === -1) {\n      centeredLineNumber = endLineNumber;\n    }\n    const endLineNumberVerticalOffset = this.getVerticalOffsetForLineNumber(endLineNumber) | 0;\n    let completelyVisibleStartLineNumber = startLineNumber;\n    let completelyVisibleEndLineNumber = endLineNumber;\n    if (completelyVisibleStartLineNumber \u003c completelyVisibleEndLineNumber) {\n      if (startLineNumberVerticalOffset \u003c verticalOffset1) {\n        completelyVisibleStartLineNumber++;\n      }\n    }\n    if (completelyVisibleStartLineNumber \u003c completelyVisibleEndLineNumber) {\n      const endLineHeight = this.getLineHeightForLineNumber(endLineNumber);\n      if (endLineNumberVerticalOffset + endLineHeight \u003e verticalOffset2) {\n        completelyVisibleEndLineNumber--;\n      }\n    }\n    return {\n      bigNumbersDelta,\n      startLineNumber,\n      endLineNumber,\n      relativeVerticalOffset: linesOffsets,\n      centeredLineNumber,\n      completelyVisibleStartLineNumber,\n      completelyVisibleEndLineNumber,\n      lineHeight: this._lineHeightsManager.defaultLineHeight\n    };\n  }\n  getVerticalOffsetForWhitespaceIndex(whitespaceIndex) {\n    whitespaceIndex = whitespaceIndex | 0;\n    const afterLineNumber = this.getAfterLineNumberForWhitespaceIndex(whitespaceIndex);\n    let previousLinesHeight;\n    if (afterLineNumber \u003e= 1) {\n      previousLinesHeight = this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(afterLineNumber);\n    } else {\n      previousLinesHeight = 0;\n    }\n    let previousWhitespacesHeight;\n    if (whitespaceIndex \u003e 0) {\n      previousWhitespacesHeight = this.getWhitespacesAccumulatedHeight(whitespaceIndex - 1);\n    } else {\n      previousWhitespacesHeight = 0;\n    }\n    return previousLinesHeight + previousWhitespacesHeight + this._paddingTop;\n  }\n  getWhitespaceIndexAtOrAfterVerticallOffset(verticalOffset) {\n    verticalOffset = verticalOffset | 0;\n    let minWhitespaceIndex = 0;\n    let maxWhitespaceIndex = this.getWhitespacesCount() - 1;\n    if (maxWhitespaceIndex \u003c 0) {\n      return -1;\n    }\n    const maxWhitespaceVerticalOffset = this.getVerticalOffsetForWhitespaceIndex(maxWhitespaceIndex);\n    const maxWhitespaceHeight = this.getHeightForWhitespaceIndex(maxWhitespaceIndex);\n    if (verticalOffset \u003e= maxWhitespaceVerticalOffset + maxWhitespaceHeight) {\n      return -1;\n    }\n    while (minWhitespaceIndex \u003c maxWhitespaceIndex) {\n      const midWhitespaceIndex = Math.floor((minWhitespaceIndex + maxWhitespaceIndex) / 2);\n      const midWhitespaceVerticalOffset = this.getVerticalOffsetForWhitespaceIndex(midWhitespaceIndex);\n      const midWhitespaceHeight = this.getHeightForWhitespaceIndex(midWhitespaceIndex);\n      if (verticalOffset \u003e= midWhitespaceVerticalOffset + midWhitespaceHeight) {\n        minWhitespaceIndex = midWhitespaceIndex + 1;\n      } else if (verticalOffset \u003e= midWhitespaceVerticalOffset) {\n        return midWhitespaceIndex;\n      } else {\n        maxWhitespaceIndex = midWhitespaceIndex;\n      }\n    }\n    return minWhitespaceIndex;\n  }\n  /**\n   * Get exactly the whitespace that is layouted at `verticalOffset`.\n   *\n   * @param verticalOffset The vertical offset.\n   * @return Precisely the whitespace that is layouted at `verticaloffset` or null.\n   */\n  getWhitespaceAtVerticalOffset(verticalOffset) {\n    verticalOffset = verticalOffset | 0;\n    const candidateIndex = this.getWhitespaceIndexAtOrAfterVerticallOffset(verticalOffset);\n    if (candidateIndex \u003c 0) {\n      return null;\n    }\n    if (candidateIndex \u003e= this.getWhitespacesCount()) {\n      return null;\n    }\n    const candidateTop = this.getVerticalOffsetForWhitespaceIndex(candidateIndex);\n    if (candidateTop \u003e verticalOffset) {\n      return null;\n    }\n    const candidateHeight = this.getHeightForWhitespaceIndex(candidateIndex);\n    const candidateId = this.getIdForWhitespaceIndex(candidateIndex);\n    const candidateAfterLineNumber = this.getAfterLineNumberForWhitespaceIndex(candidateIndex);\n    return {\n      id: candidateId,\n      afterLineNumber: candidateAfterLineNumber,\n      verticalOffset: candidateTop,\n      height: candidateHeight\n    };\n  }\n  /**\n   * Get a list of whitespaces that are positioned between `verticalOffset1` and `verticalOffset2`.\n   *\n   * @param verticalOffset1 The beginning of the viewport.\n   * @param verticalOffset2 The end of the viewport.\n   * @return An array with all the whitespaces in the viewport. If no whitespace is in viewport, the array is empty.\n   */\n  getWhitespaceViewportData(verticalOffset1, verticalOffset2) {\n    verticalOffset1 = verticalOffset1 | 0;\n    verticalOffset2 = verticalOffset2 | 0;\n    const startIndex = this.getWhitespaceIndexAtOrAfterVerticallOffset(verticalOffset1);\n    const endIndex = this.getWhitespacesCount() - 1;\n    if (startIndex \u003c 0) {\n      return [];\n    }\n    const result = [];\n    for (let i2 = startIndex; i2 \u003c= endIndex; i2++) {\n      const top = this.getVerticalOffsetForWhitespaceIndex(i2);\n      const height = this.getHeightForWhitespaceIndex(i2);\n      if (top \u003e= verticalOffset2) {\n        break;\n      }\n      result.push({\n        id: this.getIdForWhitespaceIndex(i2),\n        afterLineNumber: this.getAfterLineNumberForWhitespaceIndex(i2),\n        verticalOffset: top,\n        height\n      });\n    }\n    return result;\n  }\n  /**\n   * Get all whitespaces.\n   */\n  getWhitespaces() {\n    return this._arr.slice(0);\n  }\n  /**\n   * The number of whitespaces.\n   */\n  getWhitespacesCount() {\n    return this._arr.length;\n  }\n  /**\n   * Get the `id` for whitespace at index `index`.\n   *\n   * @param index The index of the whitespace.\n   * @return `id` of whitespace at `index`.\n   */\n  getIdForWhitespaceIndex(index) {\n    index = index | 0;\n    return this._arr[index].id;\n  }\n  /**\n   * Get the `afterLineNumber` for whitespace at index `index`.\n   *\n   * @param index The index of the whitespace.\n   * @return `afterLineNumber` of whitespace at `index`.\n   */\n  getAfterLineNumberForWhitespaceIndex(index) {\n    index = index | 0;\n    return this._arr[index].afterLineNumber;\n  }\n  /**\n   * Get the `height` for whitespace at index `index`.\n   *\n   * @param index The index of the whitespace.\n   * @return `height` of whitespace at `index`.\n   */\n  getHeightForWhitespaceIndex(index) {\n    index = index | 0;\n    return this._arr[index].height;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewLayout/viewLayout.js\nvar SMOOTH_SCROLLING_TIME = 125;\nvar EditorScrollDimensions = class {\n  constructor(width2, contentWidth, height, contentHeight) {\n    width2 = width2 | 0;\n    contentWidth = contentWidth | 0;\n    height = height | 0;\n    contentHeight = contentHeight | 0;\n    if (width2 \u003c 0) {\n      width2 = 0;\n    }\n    if (contentWidth \u003c 0) {\n      contentWidth = 0;\n    }\n    if (height \u003c 0) {\n      height = 0;\n    }\n    if (contentHeight \u003c 0) {\n      contentHeight = 0;\n    }\n    this.width = width2;\n    this.contentWidth = contentWidth;\n    this.scrollWidth = Math.max(width2, contentWidth);\n    this.height = height;\n    this.contentHeight = contentHeight;\n    this.scrollHeight = Math.max(height, contentHeight);\n  }\n  equals(other) {\n    return this.width === other.width \u0026\u0026 this.contentWidth === other.contentWidth \u0026\u0026 this.height === other.height \u0026\u0026 this.contentHeight === other.contentHeight;\n  }\n};\nvar EditorScrollable = class extends Disposable {\n  constructor(smoothScrollDuration, scheduleAtNextAnimationFrame2) {\n    super();\n    this._onDidContentSizeChange = this._register(new Emitter());\n    this.onDidContentSizeChange = this._onDidContentSizeChange.event;\n    this._dimensions = new EditorScrollDimensions(0, 0, 0, 0);\n    this._scrollable = this._register(new Scrollable({\n      forceIntegerValues: true,\n      smoothScrollDuration,\n      scheduleAtNextAnimationFrame: scheduleAtNextAnimationFrame2\n    }));\n    this.onDidScroll = this._scrollable.onScroll;\n  }\n  getScrollable() {\n    return this._scrollable;\n  }\n  setSmoothScrollDuration(smoothScrollDuration) {\n    this._scrollable.setSmoothScrollDuration(smoothScrollDuration);\n  }\n  validateScrollPosition(scrollPosition) {\n    return this._scrollable.validateScrollPosition(scrollPosition);\n  }\n  getScrollDimensions() {\n    return this._dimensions;\n  }\n  setScrollDimensions(dimensions) {\n    if (this._dimensions.equals(dimensions)) {\n      return;\n    }\n    const oldDimensions = this._dimensions;\n    this._dimensions = dimensions;\n    this._scrollable.setScrollDimensions({\n      width: dimensions.width,\n      scrollWidth: dimensions.scrollWidth,\n      height: dimensions.height,\n      scrollHeight: dimensions.scrollHeight\n    }, true);\n    const contentWidthChanged = oldDimensions.contentWidth !== dimensions.contentWidth;\n    const contentHeightChanged = oldDimensions.contentHeight !== dimensions.contentHeight;\n    if (contentWidthChanged || contentHeightChanged) {\n      this._onDidContentSizeChange.fire(new ContentSizeChangedEvent(oldDimensions.contentWidth, oldDimensions.contentHeight, dimensions.contentWidth, dimensions.contentHeight));\n    }\n  }\n  getFutureScrollPosition() {\n    return this._scrollable.getFutureScrollPosition();\n  }\n  getCurrentScrollPosition() {\n    return this._scrollable.getCurrentScrollPosition();\n  }\n  setScrollPositionNow(update) {\n    this._scrollable.setScrollPositionNow(update);\n  }\n  setScrollPositionSmooth(update) {\n    this._scrollable.setScrollPositionSmooth(update);\n  }\n  hasPendingScrollAnimation() {\n    return this._scrollable.hasPendingScrollAnimation();\n  }\n};\nvar ViewLayout = class extends Disposable {\n  constructor(configuration, lineCount, customLineHeightData, scheduleAtNextAnimationFrame2) {\n    super();\n    this._configuration = configuration;\n    const options2 = this._configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const padding = options2.get(\n      95\n      /* EditorOption.padding */\n    );\n    this._linesLayout = new LinesLayout(lineCount, options2.get(\n      75\n      /* EditorOption.lineHeight */\n    ), padding.top, padding.bottom, customLineHeightData);\n    this._maxLineWidth = 0;\n    this._overlayWidgetsMinWidth = 0;\n    this._scrollable = this._register(new EditorScrollable(0, scheduleAtNextAnimationFrame2));\n    this._configureSmoothScrollDuration();\n    this._scrollable.setScrollDimensions(new EditorScrollDimensions(layoutInfo.contentWidth, 0, layoutInfo.height, 0));\n    this.onDidScroll = this._scrollable.onDidScroll;\n    this.onDidContentSizeChange = this._scrollable.onDidContentSizeChange;\n    this._updateHeight();\n  }\n  dispose() {\n    super.dispose();\n  }\n  getScrollable() {\n    return this._scrollable.getScrollable();\n  }\n  onHeightMaybeChanged() {\n    this._updateHeight();\n  }\n  _configureSmoothScrollDuration() {\n    this._scrollable.setSmoothScrollDuration(this._configuration.options.get(\n      129\n      /* EditorOption.smoothScrolling */\n    ) ? SMOOTH_SCROLLING_TIME : 0);\n  }\n  // ---- begin view event handlers\n  onConfigurationChanged(e) {\n    const options2 = this._configuration.options;\n    if (e.hasChanged(\n      75\n      /* EditorOption.lineHeight */\n    )) {\n      this._linesLayout.setDefaultLineHeight(options2.get(\n        75\n        /* EditorOption.lineHeight */\n      ));\n    }\n    if (e.hasChanged(\n      95\n      /* EditorOption.padding */\n    )) {\n      const padding = options2.get(\n        95\n        /* EditorOption.padding */\n      );\n      this._linesLayout.setPadding(padding.top, padding.bottom);\n    }\n    if (e.hasChanged(\n      164\n      /* EditorOption.layoutInfo */\n    )) {\n      const layoutInfo = options2.get(\n        164\n        /* EditorOption.layoutInfo */\n      );\n      const width2 = layoutInfo.contentWidth;\n      const height = layoutInfo.height;\n      const scrollDimensions = this._scrollable.getScrollDimensions();\n      const contentWidth = scrollDimensions.contentWidth;\n      this._scrollable.setScrollDimensions(new EditorScrollDimensions(width2, scrollDimensions.contentWidth, height, this._getContentHeight(width2, height, contentWidth)));\n    } else {\n      this._updateHeight();\n    }\n    if (e.hasChanged(\n      129\n      /* EditorOption.smoothScrolling */\n    )) {\n      this._configureSmoothScrollDuration();\n    }\n  }\n  onFlushed(lineCount, customLineHeightData) {\n    this._linesLayout.onFlushed(lineCount, customLineHeightData);\n  }\n  onLinesDeleted(fromLineNumber, toLineNumber) {\n    this._linesLayout.onLinesDeleted(fromLineNumber, toLineNumber);\n  }\n  onLinesInserted(fromLineNumber, toLineNumber) {\n    this._linesLayout.onLinesInserted(fromLineNumber, toLineNumber);\n  }\n  // ---- end view event handlers\n  _getHorizontalScrollbarHeight(width2, scrollWidth) {\n    const options2 = this._configuration.options;\n    const scrollbar = options2.get(\n      116\n      /* EditorOption.scrollbar */\n    );\n    if (scrollbar.horizontal === 2) {\n      return 0;\n    }\n    if (width2 \u003e= scrollWidth) {\n      return 0;\n    }\n    return scrollbar.horizontalScrollbarSize;\n  }\n  _getContentHeight(width2, height, contentWidth) {\n    const options2 = this._configuration.options;\n    let result = this._linesLayout.getLinesTotalHeight();\n    if (options2.get(\n      118\n      /* EditorOption.scrollBeyondLastLine */\n    )) {\n      result += Math.max(0, height - options2.get(\n        75\n        /* EditorOption.lineHeight */\n      ) - options2.get(\n        95\n        /* EditorOption.padding */\n      ).bottom);\n    } else if (!options2.get(\n      116\n      /* EditorOption.scrollbar */\n    ).ignoreHorizontalScrollbarInContentHeight) {\n      result += this._getHorizontalScrollbarHeight(width2, contentWidth);\n    }\n    return result;\n  }\n  _updateHeight() {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    const width2 = scrollDimensions.width;\n    const height = scrollDimensions.height;\n    const contentWidth = scrollDimensions.contentWidth;\n    this._scrollable.setScrollDimensions(new EditorScrollDimensions(width2, scrollDimensions.contentWidth, height, this._getContentHeight(width2, height, contentWidth)));\n  }\n  // ---- Layouting logic\n  getCurrentViewport() {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    const currentScrollPosition = this._scrollable.getCurrentScrollPosition();\n    return new Viewport(currentScrollPosition.scrollTop, currentScrollPosition.scrollLeft, scrollDimensions.width, scrollDimensions.height);\n  }\n  getFutureViewport() {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    const currentScrollPosition = this._scrollable.getFutureScrollPosition();\n    return new Viewport(currentScrollPosition.scrollTop, currentScrollPosition.scrollLeft, scrollDimensions.width, scrollDimensions.height);\n  }\n  _computeContentWidth() {\n    const options2 = this._configuration.options;\n    const maxLineWidth = this._maxLineWidth;\n    const wrappingInfo = options2.get(\n      165\n      /* EditorOption.wrappingInfo */\n    );\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    if (wrappingInfo.isViewportWrapping) {\n      const minimap = options2.get(\n        81\n        /* EditorOption.minimap */\n      );\n      if (maxLineWidth \u003e layoutInfo.contentWidth + fontInfo.typicalHalfwidthCharacterWidth) {\n        if (minimap.enabled \u0026\u0026 minimap.side === \"right\") {\n          return maxLineWidth + layoutInfo.verticalScrollbarWidth;\n        }\n      }\n      return maxLineWidth;\n    } else {\n      const extraHorizontalSpace = options2.get(\n        117\n        /* EditorOption.scrollBeyondLastColumn */\n      ) * fontInfo.typicalHalfwidthCharacterWidth;\n      const whitespaceMinWidth = this._linesLayout.getWhitespaceMinWidth();\n      return Math.max(maxLineWidth + extraHorizontalSpace + layoutInfo.verticalScrollbarWidth, whitespaceMinWidth, this._overlayWidgetsMinWidth);\n    }\n  }\n  setMaxLineWidth(maxLineWidth) {\n    this._maxLineWidth = maxLineWidth;\n    this._updateContentWidth();\n  }\n  setOverlayWidgetsMinWidth(maxMinWidth) {\n    this._overlayWidgetsMinWidth = maxMinWidth;\n    this._updateContentWidth();\n  }\n  _updateContentWidth() {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    this._scrollable.setScrollDimensions(new EditorScrollDimensions(scrollDimensions.width, this._computeContentWidth(), scrollDimensions.height, scrollDimensions.contentHeight));\n    this._updateHeight();\n  }\n  // ---- view state\n  saveState() {\n    const currentScrollPosition = this._scrollable.getFutureScrollPosition();\n    const scrollTop = currentScrollPosition.scrollTop;\n    const firstLineNumberInViewport = this._linesLayout.getLineNumberAtOrAfterVerticalOffset(scrollTop);\n    const whitespaceAboveFirstLine = this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(firstLineNumberInViewport);\n    return {\n      scrollTop,\n      scrollTopWithoutViewZones: scrollTop - whitespaceAboveFirstLine,\n      scrollLeft: currentScrollPosition.scrollLeft\n    };\n  }\n  // ----\n  changeWhitespace(callback) {\n    const hadAChange = this._linesLayout.changeWhitespace(callback);\n    if (hadAChange) {\n      this.onHeightMaybeChanged();\n    }\n    return hadAChange;\n  }\n  changeSpecialLineHeights(callback) {\n    const hadAChange = this._linesLayout.changeLineHeights(callback);\n    if (hadAChange) {\n      this.onHeightMaybeChanged();\n    }\n    return hadAChange;\n  }\n  getVerticalOffsetForLineNumber(lineNumber, includeViewZones = false) {\n    return this._linesLayout.getVerticalOffsetForLineNumber(lineNumber, includeViewZones);\n  }\n  getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones = false) {\n    return this._linesLayout.getVerticalOffsetAfterLineNumber(lineNumber, includeViewZones);\n  }\n  getLineHeightForLineNumber(lineNumber) {\n    return this._linesLayout.getLineHeightForLineNumber(lineNumber);\n  }\n  isAfterLines(verticalOffset) {\n    return this._linesLayout.isAfterLines(verticalOffset);\n  }\n  isInTopPadding(verticalOffset) {\n    return this._linesLayout.isInTopPadding(verticalOffset);\n  }\n  isInBottomPadding(verticalOffset) {\n    return this._linesLayout.isInBottomPadding(verticalOffset);\n  }\n  getLineNumberAtVerticalOffset(verticalOffset) {\n    return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(verticalOffset);\n  }\n  getWhitespaceAtVerticalOffset(verticalOffset) {\n    return this._linesLayout.getWhitespaceAtVerticalOffset(verticalOffset);\n  }\n  getLinesViewportData() {\n    const visibleBox = this.getCurrentViewport();\n    return this._linesLayout.getLinesViewportData(visibleBox.top, visibleBox.top + visibleBox.height);\n  }\n  getLinesViewportDataAtScrollTop(scrollTop) {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    if (scrollTop + scrollDimensions.height \u003e scrollDimensions.scrollHeight) {\n      scrollTop = scrollDimensions.scrollHeight - scrollDimensions.height;\n    }\n    if (scrollTop \u003c 0) {\n      scrollTop = 0;\n    }\n    return this._linesLayout.getLinesViewportData(scrollTop, scrollTop + scrollDimensions.height);\n  }\n  getWhitespaceViewportData() {\n    const visibleBox = this.getCurrentViewport();\n    return this._linesLayout.getWhitespaceViewportData(visibleBox.top, visibleBox.top + visibleBox.height);\n  }\n  getWhitespaces() {\n    return this._linesLayout.getWhitespaces();\n  }\n  // ----\n  getContentWidth() {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    return scrollDimensions.contentWidth;\n  }\n  getScrollWidth() {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    return scrollDimensions.scrollWidth;\n  }\n  getContentHeight() {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    return scrollDimensions.contentHeight;\n  }\n  getScrollHeight() {\n    const scrollDimensions = this._scrollable.getScrollDimensions();\n    return scrollDimensions.scrollHeight;\n  }\n  getCurrentScrollLeft() {\n    const currentScrollPosition = this._scrollable.getCurrentScrollPosition();\n    return currentScrollPosition.scrollLeft;\n  }\n  getCurrentScrollTop() {\n    const currentScrollPosition = this._scrollable.getCurrentScrollPosition();\n    return currentScrollPosition.scrollTop;\n  }\n  validateScrollPosition(scrollPosition) {\n    return this._scrollable.validateScrollPosition(scrollPosition);\n  }\n  setScrollPosition(position, type) {\n    if (type === 1) {\n      this._scrollable.setScrollPositionNow(position);\n    } else {\n      this._scrollable.setScrollPositionSmooth(position);\n    }\n  }\n  hasPendingScrollAnimation() {\n    return this._scrollable.hasPendingScrollAnimation();\n  }\n  deltaScrollNow(deltaScrollLeft, deltaScrollTop) {\n    const currentScrollPosition = this._scrollable.getCurrentScrollPosition();\n    this._scrollable.setScrollPositionNow({\n      scrollLeft: currentScrollPosition.scrollLeft + deltaScrollLeft,\n      scrollTop: currentScrollPosition.scrollTop + deltaScrollTop\n    });\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewModelDecorations.js\ninit_position();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/inlineDecorations.js\ninit_range();\nvar InlineDecoration = class {\n  constructor(range2, inlineClassName, type) {\n    this.range = range2;\n    this.inlineClassName = inlineClassName;\n    this.type = type;\n  }\n};\nvar SingleLineInlineDecoration = class {\n  constructor(startOffset, endOffset, inlineClassName, inlineClassNameAffectsLetterSpacing) {\n    this.startOffset = startOffset;\n    this.endOffset = endOffset;\n    this.inlineClassName = inlineClassName;\n    this.inlineClassNameAffectsLetterSpacing = inlineClassNameAffectsLetterSpacing;\n  }\n  toInlineDecoration(lineNumber) {\n    return new InlineDecoration(\n      new Range(lineNumber, this.startOffset + 1, lineNumber, this.endOffset + 1),\n      this.inlineClassName,\n      this.inlineClassNameAffectsLetterSpacing ? 3 : 0\n      /* InlineDecorationType.Regular */\n    );\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewModelDecorations.js\nvar ViewModelDecorations = class {\n  constructor(editorId, model, configuration, linesCollection, coordinatesConverter) {\n    this.editorId = editorId;\n    this.model = model;\n    this.configuration = configuration;\n    this._linesCollection = linesCollection;\n    this._coordinatesConverter = coordinatesConverter;\n    this._decorationsCache = /* @__PURE__ */ Object.create(null);\n    this._cachedModelDecorationsResolver = null;\n    this._cachedModelDecorationsResolverViewRange = null;\n  }\n  _clearCachedModelDecorationsResolver() {\n    this._cachedModelDecorationsResolver = null;\n    this._cachedModelDecorationsResolverViewRange = null;\n  }\n  dispose() {\n    this._decorationsCache = /* @__PURE__ */ Object.create(null);\n    this._clearCachedModelDecorationsResolver();\n  }\n  reset() {\n    this._decorationsCache = /* @__PURE__ */ Object.create(null);\n    this._clearCachedModelDecorationsResolver();\n  }\n  onModelDecorationsChanged() {\n    this._decorationsCache = /* @__PURE__ */ Object.create(null);\n    this._clearCachedModelDecorationsResolver();\n  }\n  onLineMappingChanged() {\n    this._decorationsCache = /* @__PURE__ */ Object.create(null);\n    this._clearCachedModelDecorationsResolver();\n  }\n  _getOrCreateViewModelDecoration(modelDecoration) {\n    const id = modelDecoration.id;\n    let r = this._decorationsCache[id];\n    if (!r) {\n      const modelRange = modelDecoration.range;\n      const options2 = modelDecoration.options;\n      let viewRange;\n      if (options2.isWholeLine) {\n        const start = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.startLineNumber, 1), 0, false, true);\n        const end = this._coordinatesConverter.convertModelPositionToViewPosition(\n          new Position(modelRange.endLineNumber, this.model.getLineMaxColumn(modelRange.endLineNumber)),\n          1\n          /* PositionAffinity.Right */\n        );\n        viewRange = new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n      } else {\n        viewRange = this._coordinatesConverter.convertModelRangeToViewRange(\n          modelRange,\n          1\n          /* PositionAffinity.Right */\n        );\n      }\n      r = new ViewModelDecoration(viewRange, options2);\n      this._decorationsCache[id] = r;\n    }\n    return r;\n  }\n  getMinimapDecorationsInRange(range2) {\n    return this._getDecorationsInRange(range2, true, false).decorations;\n  }\n  getDecorationsViewportData(viewRange) {\n    let cacheIsValid = this._cachedModelDecorationsResolver !== null;\n    cacheIsValid = cacheIsValid \u0026\u0026 viewRange.equalsRange(this._cachedModelDecorationsResolverViewRange);\n    if (!cacheIsValid) {\n      this._cachedModelDecorationsResolver = this._getDecorationsInRange(viewRange, false, false);\n      this._cachedModelDecorationsResolverViewRange = viewRange;\n    }\n    return this._cachedModelDecorationsResolver;\n  }\n  getDecorationsOnLine(lineNumber, onlyMinimapDecorations = false, onlyMarginDecorations = false) {\n    const range2 = new Range(lineNumber, this._linesCollection.getViewLineMinColumn(lineNumber), lineNumber, this._linesCollection.getViewLineMaxColumn(lineNumber));\n    return this._getDecorationsInRange(range2, onlyMinimapDecorations, onlyMarginDecorations);\n  }\n  _getDecorationsInRange(viewRange, onlyMinimapDecorations, onlyMarginDecorations) {\n    const modelDecorations = this._linesCollection.getDecorationsInRange(viewRange, this.editorId, filterValidationDecorations(this.configuration.options), filterFontDecorations(this.configuration.options), onlyMinimapDecorations, onlyMarginDecorations);\n    const startLineNumber = viewRange.startLineNumber;\n    const endLineNumber = viewRange.endLineNumber;\n    const decorationsInViewport = [];\n    let decorationsInViewportLen = 0;\n    const inlineDecorations = [];\n    for (let j = startLineNumber; j \u003c= endLineNumber; j++) {\n      inlineDecorations[j - startLineNumber] = [];\n    }\n    let hasVariableFonts = false;\n    for (let i2 = 0, len = modelDecorations.length; i2 \u003c len; i2++) {\n      const modelDecoration = modelDecorations[i2];\n      const decorationOptions = modelDecoration.options;\n      if (!isModelDecorationVisible(this.model, modelDecoration)) {\n        continue;\n      }\n      const viewModelDecoration = this._getOrCreateViewModelDecoration(modelDecoration);\n      const viewRange2 = viewModelDecoration.range;\n      decorationsInViewport[decorationsInViewportLen++] = viewModelDecoration;\n      if (decorationOptions.inlineClassName) {\n        const inlineDecoration = new InlineDecoration(\n          viewRange2,\n          decorationOptions.inlineClassName,\n          decorationOptions.inlineClassNameAffectsLetterSpacing ? 3 : 0\n          /* InlineDecorationType.Regular */\n        );\n        const intersectedStartLineNumber = Math.max(startLineNumber, viewRange2.startLineNumber);\n        const intersectedEndLineNumber = Math.min(endLineNumber, viewRange2.endLineNumber);\n        for (let j = intersectedStartLineNumber; j \u003c= intersectedEndLineNumber; j++) {\n          inlineDecorations[j - startLineNumber].push(inlineDecoration);\n        }\n      }\n      if (decorationOptions.beforeContentClassName) {\n        if (startLineNumber \u003c= viewRange2.startLineNumber \u0026\u0026 viewRange2.startLineNumber \u003c= endLineNumber) {\n          const inlineDecoration = new InlineDecoration(\n            new Range(viewRange2.startLineNumber, viewRange2.startColumn, viewRange2.startLineNumber, viewRange2.startColumn),\n            decorationOptions.beforeContentClassName,\n            1\n            /* InlineDecorationType.Before */\n          );\n          inlineDecorations[viewRange2.startLineNumber - startLineNumber].push(inlineDecoration);\n        }\n      }\n      if (decorationOptions.afterContentClassName) {\n        if (startLineNumber \u003c= viewRange2.endLineNumber \u0026\u0026 viewRange2.endLineNumber \u003c= endLineNumber) {\n          const inlineDecoration = new InlineDecoration(\n            new Range(viewRange2.endLineNumber, viewRange2.endColumn, viewRange2.endLineNumber, viewRange2.endColumn),\n            decorationOptions.afterContentClassName,\n            2\n            /* InlineDecorationType.After */\n          );\n          inlineDecorations[viewRange2.endLineNumber - startLineNumber].push(inlineDecoration);\n        }\n      }\n      if (decorationOptions.affectsFont) {\n        hasVariableFonts = true;\n      }\n    }\n    return {\n      decorations: decorationsInViewport,\n      inlineDecorations,\n      hasVariableFonts\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewModelLines.js\ninit_arrays();\ninit_position();\ninit_range();\ninit_textModelGuides();\ninit_textModel();\ninit_textModelEvents();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/modelLineProjection.js\ninit_lineTokens();\ninit_position();\ninit_textModelEvents();\nfunction createModelLineProjection(lineBreakData, isVisible) {\n  if (lineBreakData === null) {\n    if (isVisible) {\n      return IdentityModelLineProjection.INSTANCE;\n    }\n    return HiddenModelLineProjection.INSTANCE;\n  } else {\n    return new ModelLineProjection(lineBreakData, isVisible);\n  }\n}\nvar ModelLineProjection = class {\n  constructor(lineBreakData, isVisible) {\n    this._projectionData = lineBreakData;\n    this._isVisible = isVisible;\n  }\n  isVisible() {\n    return this._isVisible;\n  }\n  setVisible(isVisible) {\n    this._isVisible = isVisible;\n    return this;\n  }\n  getProjectionData() {\n    return this._projectionData;\n  }\n  getViewLineCount() {\n    if (!this._isVisible) {\n      return 0;\n    }\n    return this._projectionData.getOutputLineCount();\n  }\n  getViewLineContent(model, modelLineNumber, outputLineIndex) {\n    this._assertVisible();\n    const startOffsetInInputWithInjections = outputLineIndex \u003e 0 ? this._projectionData.breakOffsets[outputLineIndex - 1] : 0;\n    const endOffsetInInputWithInjections = this._projectionData.breakOffsets[outputLineIndex];\n    let r;\n    if (this._projectionData.injectionOffsets !== null) {\n      const injectedTexts = this._projectionData.injectionOffsets.map((offset, idx) =\u003e new LineInjectedText(0, 0, offset + 1, this._projectionData.injectionOptions[idx], 0));\n      const lineWithInjections = LineInjectedText.applyInjectedText(model.getLineContent(modelLineNumber), injectedTexts);\n      r = lineWithInjections.substring(startOffsetInInputWithInjections, endOffsetInInputWithInjections);\n    } else {\n      r = model.getValueInRange({\n        startLineNumber: modelLineNumber,\n        startColumn: startOffsetInInputWithInjections + 1,\n        endLineNumber: modelLineNumber,\n        endColumn: endOffsetInInputWithInjections + 1\n      });\n    }\n    if (outputLineIndex \u003e 0) {\n      r = spaces(this._projectionData.wrappedTextIndentLength) + r;\n    }\n    return r;\n  }\n  getViewLineLength(model, modelLineNumber, outputLineIndex) {\n    this._assertVisible();\n    return this._projectionData.getLineLength(outputLineIndex);\n  }\n  getViewLineMinColumn(_model, _modelLineNumber, outputLineIndex) {\n    this._assertVisible();\n    return this._projectionData.getMinOutputOffset(outputLineIndex) + 1;\n  }\n  getViewLineMaxColumn(model, modelLineNumber, outputLineIndex) {\n    this._assertVisible();\n    return this._projectionData.getMaxOutputOffset(outputLineIndex) + 1;\n  }\n  /**\n   * Try using {@link getViewLinesData} instead.\n  */\n  getViewLineData(model, modelLineNumber, outputLineIndex) {\n    const arr = new Array();\n    this.getViewLinesData(model, modelLineNumber, outputLineIndex, 1, 0, [true], arr);\n    return arr[0];\n  }\n  getViewLinesData(model, modelLineNumber, outputLineIdx, lineCount, globalStartIndex, needed, result) {\n    this._assertVisible();\n    const lineBreakData = this._projectionData;\n    const injectionOffsets = lineBreakData.injectionOffsets;\n    const injectionOptions = lineBreakData.injectionOptions;\n    let inlineDecorationsPerOutputLine = null;\n    if (injectionOffsets) {\n      inlineDecorationsPerOutputLine = [];\n      let totalInjectedTextLengthBefore = 0;\n      let currentInjectedOffset = 0;\n      for (let outputLineIndex = 0; outputLineIndex \u003c lineBreakData.getOutputLineCount(); outputLineIndex++) {\n        const inlineDecorations = new Array();\n        inlineDecorationsPerOutputLine[outputLineIndex] = inlineDecorations;\n        const lineStartOffsetInInputWithInjections = outputLineIndex \u003e 0 ? lineBreakData.breakOffsets[outputLineIndex - 1] : 0;\n        const lineEndOffsetInInputWithInjections = lineBreakData.breakOffsets[outputLineIndex];\n        while (currentInjectedOffset \u003c injectionOffsets.length) {\n          const length = injectionOptions[currentInjectedOffset].content.length;\n          const injectedTextStartOffsetInInputWithInjections = injectionOffsets[currentInjectedOffset] + totalInjectedTextLengthBefore;\n          const injectedTextEndOffsetInInputWithInjections = injectedTextStartOffsetInInputWithInjections + length;\n          if (injectedTextStartOffsetInInputWithInjections \u003e lineEndOffsetInInputWithInjections) {\n            break;\n          }\n          if (lineStartOffsetInInputWithInjections \u003c injectedTextEndOffsetInInputWithInjections) {\n            const options2 = injectionOptions[currentInjectedOffset];\n            if (options2.inlineClassName) {\n              const offset = outputLineIndex \u003e 0 ? lineBreakData.wrappedTextIndentLength : 0;\n              const start = offset + Math.max(injectedTextStartOffsetInInputWithInjections - lineStartOffsetInInputWithInjections, 0);\n              const end = offset + Math.min(injectedTextEndOffsetInInputWithInjections - lineStartOffsetInInputWithInjections, lineEndOffsetInInputWithInjections - lineStartOffsetInInputWithInjections);\n              if (start !== end) {\n                inlineDecorations.push(new SingleLineInlineDecoration(start, end, options2.inlineClassName, options2.inlineClassNameAffectsLetterSpacing));\n              }\n            }\n          }\n          if (injectedTextEndOffsetInInputWithInjections \u003c= lineEndOffsetInInputWithInjections) {\n            totalInjectedTextLengthBefore += length;\n            currentInjectedOffset++;\n          } else {\n            break;\n          }\n        }\n      }\n    }\n    let lineWithInjections;\n    if (injectionOffsets) {\n      const tokensToInsert = [];\n      for (let idx = 0; idx \u003c injectionOffsets.length; idx++) {\n        const offset = injectionOffsets[idx];\n        const tokens = injectionOptions[idx].tokens;\n        if (tokens) {\n          tokens.forEach((range2, info) =\u003e {\n            tokensToInsert.push({\n              offset,\n              text: range2.substring(injectionOptions[idx].content),\n              tokenMetadata: info.metadata\n            });\n          });\n        } else {\n          tokensToInsert.push({\n            offset,\n            text: injectionOptions[idx].content,\n            tokenMetadata: LineTokens.defaultTokenMetadata\n          });\n        }\n      }\n      lineWithInjections = model.tokenization.getLineTokens(modelLineNumber).withInserted(tokensToInsert);\n    } else {\n      lineWithInjections = model.tokenization.getLineTokens(modelLineNumber);\n    }\n    for (let outputLineIndex = outputLineIdx; outputLineIndex \u003c outputLineIdx + lineCount; outputLineIndex++) {\n      const globalIndex = globalStartIndex + outputLineIndex - outputLineIdx;\n      if (!needed[globalIndex]) {\n        result[globalIndex] = null;\n        continue;\n      }\n      result[globalIndex] = this._getViewLineData(lineWithInjections, inlineDecorationsPerOutputLine ? inlineDecorationsPerOutputLine[outputLineIndex] : null, outputLineIndex);\n    }\n  }\n  _getViewLineData(lineWithInjections, inlineDecorations, outputLineIndex) {\n    this._assertVisible();\n    const lineBreakData = this._projectionData;\n    const deltaStartIndex = outputLineIndex \u003e 0 ? lineBreakData.wrappedTextIndentLength : 0;\n    const lineStartOffsetInInputWithInjections = outputLineIndex \u003e 0 ? lineBreakData.breakOffsets[outputLineIndex - 1] : 0;\n    const lineEndOffsetInInputWithInjections = lineBreakData.breakOffsets[outputLineIndex];\n    const tokens = lineWithInjections.sliceAndInflate(lineStartOffsetInInputWithInjections, lineEndOffsetInInputWithInjections, deltaStartIndex);\n    let lineContent = tokens.getLineContent();\n    if (outputLineIndex \u003e 0) {\n      lineContent = spaces(lineBreakData.wrappedTextIndentLength) + lineContent;\n    }\n    const minColumn = this._projectionData.getMinOutputOffset(outputLineIndex) + 1;\n    const maxColumn = lineContent.length + 1;\n    const continuesWithWrappedLine = outputLineIndex + 1 \u003c this.getViewLineCount();\n    const startVisibleColumn = outputLineIndex === 0 ? 0 : lineBreakData.breakOffsetsVisibleColumn[outputLineIndex - 1];\n    return new ViewLineData(lineContent, continuesWithWrappedLine, minColumn, maxColumn, startVisibleColumn, tokens, inlineDecorations);\n  }\n  getModelColumnOfViewPosition(outputLineIndex, outputColumn) {\n    this._assertVisible();\n    return this._projectionData.translateToInputOffset(outputLineIndex, outputColumn - 1) + 1;\n  }\n  getViewPositionOfModelPosition(deltaLineNumber, inputColumn, affinity = 2) {\n    this._assertVisible();\n    const r = this._projectionData.translateToOutputPosition(inputColumn - 1, affinity);\n    return r.toPosition(deltaLineNumber);\n  }\n  getViewLineNumberOfModelPosition(deltaLineNumber, inputColumn) {\n    this._assertVisible();\n    const r = this._projectionData.translateToOutputPosition(inputColumn - 1);\n    return deltaLineNumber + r.outputLineIndex;\n  }\n  normalizePosition(outputLineIndex, outputPosition, affinity) {\n    const baseViewLineNumber = outputPosition.lineNumber - outputLineIndex;\n    const normalizedOutputPosition = this._projectionData.normalizeOutputPosition(outputLineIndex, outputPosition.column - 1, affinity);\n    const result = normalizedOutputPosition.toPosition(baseViewLineNumber);\n    return result;\n  }\n  getInjectedTextAt(outputLineIndex, outputColumn) {\n    return this._projectionData.getInjectedText(outputLineIndex, outputColumn - 1);\n  }\n  _assertVisible() {\n    if (!this._isVisible) {\n      throw new Error(\"Not supported\");\n    }\n  }\n};\nvar IdentityModelLineProjection = class _IdentityModelLineProjection {\n  static {\n    this.INSTANCE = new _IdentityModelLineProjection();\n  }\n  constructor() {\n  }\n  isVisible() {\n    return true;\n  }\n  setVisible(isVisible) {\n    if (isVisible) {\n      return this;\n    }\n    return HiddenModelLineProjection.INSTANCE;\n  }\n  getProjectionData() {\n    return null;\n  }\n  getViewLineCount() {\n    return 1;\n  }\n  getViewLineContent(model, modelLineNumber, _outputLineIndex) {\n    return model.getLineContent(modelLineNumber);\n  }\n  getViewLineLength(model, modelLineNumber, _outputLineIndex) {\n    return model.getLineLength(modelLineNumber);\n  }\n  getViewLineMinColumn(model, modelLineNumber, _outputLineIndex) {\n    return model.getLineMinColumn(modelLineNumber);\n  }\n  getViewLineMaxColumn(model, modelLineNumber, _outputLineIndex) {\n    return model.getLineMaxColumn(modelLineNumber);\n  }\n  getViewLineData(model, modelLineNumber, _outputLineIndex) {\n    const lineTokens = model.tokenization.getLineTokens(modelLineNumber);\n    const lineContent = lineTokens.getLineContent();\n    return new ViewLineData(lineContent, false, 1, lineContent.length + 1, 0, lineTokens.inflate(), null);\n  }\n  getViewLinesData(model, modelLineNumber, _fromOuputLineIndex, _toOutputLineIndex, globalStartIndex, needed, result) {\n    if (!needed[globalStartIndex]) {\n      result[globalStartIndex] = null;\n      return;\n    }\n    result[globalStartIndex] = this.getViewLineData(model, modelLineNumber, 0);\n  }\n  getModelColumnOfViewPosition(_outputLineIndex, outputColumn) {\n    return outputColumn;\n  }\n  getViewPositionOfModelPosition(deltaLineNumber, inputColumn) {\n    return new Position(deltaLineNumber, inputColumn);\n  }\n  getViewLineNumberOfModelPosition(deltaLineNumber, _inputColumn) {\n    return deltaLineNumber;\n  }\n  normalizePosition(outputLineIndex, outputPosition, affinity) {\n    return outputPosition;\n  }\n  getInjectedTextAt(_outputLineIndex, _outputColumn) {\n    return null;\n  }\n};\nvar HiddenModelLineProjection = class _HiddenModelLineProjection {\n  static {\n    this.INSTANCE = new _HiddenModelLineProjection();\n  }\n  constructor() {\n  }\n  isVisible() {\n    return false;\n  }\n  setVisible(isVisible) {\n    if (!isVisible) {\n      return this;\n    }\n    return IdentityModelLineProjection.INSTANCE;\n  }\n  getProjectionData() {\n    return null;\n  }\n  getViewLineCount() {\n    return 0;\n  }\n  getViewLineContent(_model, _modelLineNumber, _outputLineIndex) {\n    throw new Error(\"Not supported\");\n  }\n  getViewLineLength(_model, _modelLineNumber, _outputLineIndex) {\n    throw new Error(\"Not supported\");\n  }\n  getViewLineMinColumn(_model, _modelLineNumber, _outputLineIndex) {\n    throw new Error(\"Not supported\");\n  }\n  getViewLineMaxColumn(_model, _modelLineNumber, _outputLineIndex) {\n    throw new Error(\"Not supported\");\n  }\n  getViewLineData(_model, _modelLineNumber, _outputLineIndex) {\n    throw new Error(\"Not supported\");\n  }\n  getViewLinesData(_model, _modelLineNumber, _fromOuputLineIndex, _toOutputLineIndex, _globalStartIndex, _needed, _result) {\n    throw new Error(\"Not supported\");\n  }\n  getModelColumnOfViewPosition(_outputLineIndex, _outputColumn) {\n    throw new Error(\"Not supported\");\n  }\n  getViewPositionOfModelPosition(_deltaLineNumber, _inputColumn) {\n    throw new Error(\"Not supported\");\n  }\n  getViewLineNumberOfModelPosition(_deltaLineNumber, _inputColumn) {\n    throw new Error(\"Not supported\");\n  }\n  normalizePosition(outputLineIndex, outputPosition, affinity) {\n    throw new Error(\"Not supported\");\n  }\n  getInjectedTextAt(_outputLineIndex, _outputColumn) {\n    throw new Error(\"Not supported\");\n  }\n};\nvar _spaces = [\"\"];\nfunction spaces(count) {\n  if (count \u003e= _spaces.length) {\n    for (let i2 = 1; i2 \u003c= count; i2++) {\n      _spaces[i2] = _makeSpaces(i2);\n    }\n  }\n  return _spaces[count];\n}\nfunction _makeSpaces(count) {\n  return new Array(count + 1).join(\" \");\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/prefixSumComputer.js\ninit_arrays();\ninit_uint();\nvar PrefixSumComputer = class {\n  constructor(values) {\n    this.values = values;\n    this.prefixSum = new Uint32Array(values.length);\n    this.prefixSumValidIndex = new Int32Array(1);\n    this.prefixSumValidIndex[0] = -1;\n  }\n  insertValues(insertIndex, insertValues) {\n    insertIndex = toUint32(insertIndex);\n    const oldValues = this.values;\n    const oldPrefixSum = this.prefixSum;\n    const insertValuesLen = insertValues.length;\n    if (insertValuesLen === 0) {\n      return false;\n    }\n    this.values = new Uint32Array(oldValues.length + insertValuesLen);\n    this.values.set(oldValues.subarray(0, insertIndex), 0);\n    this.values.set(oldValues.subarray(insertIndex), insertIndex + insertValuesLen);\n    this.values.set(insertValues, insertIndex);\n    if (insertIndex - 1 \u003c this.prefixSumValidIndex[0]) {\n      this.prefixSumValidIndex[0] = insertIndex - 1;\n    }\n    this.prefixSum = new Uint32Array(this.values.length);\n    if (this.prefixSumValidIndex[0] \u003e= 0) {\n      this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1));\n    }\n    return true;\n  }\n  setValue(index, value) {\n    index = toUint32(index);\n    value = toUint32(value);\n    if (this.values[index] === value) {\n      return false;\n    }\n    this.values[index] = value;\n    if (index - 1 \u003c this.prefixSumValidIndex[0]) {\n      this.prefixSumValidIndex[0] = index - 1;\n    }\n    return true;\n  }\n  removeValues(startIndex, count) {\n    startIndex = toUint32(startIndex);\n    count = toUint32(count);\n    const oldValues = this.values;\n    const oldPrefixSum = this.prefixSum;\n    if (startIndex \u003e= oldValues.length) {\n      return false;\n    }\n    const maxCount = oldValues.length - startIndex;\n    if (count \u003e= maxCount) {\n      count = maxCount;\n    }\n    if (count === 0) {\n      return false;\n    }\n    this.values = new Uint32Array(oldValues.length - count);\n    this.values.set(oldValues.subarray(0, startIndex), 0);\n    this.values.set(oldValues.subarray(startIndex + count), startIndex);\n    this.prefixSum = new Uint32Array(this.values.length);\n    if (startIndex - 1 \u003c this.prefixSumValidIndex[0]) {\n      this.prefixSumValidIndex[0] = startIndex - 1;\n    }\n    if (this.prefixSumValidIndex[0] \u003e= 0) {\n      this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1));\n    }\n    return true;\n  }\n  getTotalSum() {\n    if (this.values.length === 0) {\n      return 0;\n    }\n    return this._getPrefixSum(this.values.length - 1);\n  }\n  /**\n   * Returns the sum of the first `index + 1` many items.\n   * @returns `SUM(0 \u003c= j \u003c= index, values[j])`.\n   */\n  getPrefixSum(index) {\n    if (index \u003c 0) {\n      return 0;\n    }\n    index = toUint32(index);\n    return this._getPrefixSum(index);\n  }\n  _getPrefixSum(index) {\n    if (index \u003c= this.prefixSumValidIndex[0]) {\n      return this.prefixSum[index];\n    }\n    let startIndex = this.prefixSumValidIndex[0] + 1;\n    if (startIndex === 0) {\n      this.prefixSum[0] = this.values[0];\n      startIndex++;\n    }\n    if (index \u003e= this.values.length) {\n      index = this.values.length - 1;\n    }\n    for (let i2 = startIndex; i2 \u003c= index; i2++) {\n      this.prefixSum[i2] = this.prefixSum[i2 - 1] + this.values[i2];\n    }\n    this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index);\n    return this.prefixSum[index];\n  }\n  getIndexOf(sum2) {\n    sum2 = Math.floor(sum2);\n    this.getTotalSum();\n    let low = 0;\n    let high = this.values.length - 1;\n    let mid = 0;\n    let midStop = 0;\n    let midStart = 0;\n    while (low \u003c= high) {\n      mid = low + (high - low) / 2 | 0;\n      midStop = this.prefixSum[mid];\n      midStart = midStop - this.values[mid];\n      if (sum2 \u003c midStart) {\n        high = mid - 1;\n      } else if (sum2 \u003e= midStop) {\n        low = mid + 1;\n      } else {\n        break;\n      }\n    }\n    return new PrefixSumIndexOfResult(mid, sum2 - midStart);\n  }\n};\nvar ConstantTimePrefixSumComputer = class {\n  constructor(values) {\n    this._values = values;\n    this._isValid = false;\n    this._validEndIndex = -1;\n    this._prefixSum = [];\n    this._indexBySum = [];\n  }\n  /**\n   * @returns SUM(0 \u003c= j \u003c values.length, values[j])\n   */\n  getTotalSum() {\n    this._ensureValid();\n    return this._indexBySum.length;\n  }\n  /**\n   * Returns the sum of the first `count` many items.\n   * @returns `SUM(0 \u003c= j \u003c count, values[j])`.\n   */\n  getPrefixSum(count) {\n    this._ensureValid();\n    if (count === 0) {\n      return 0;\n    }\n    return this._prefixSum[count - 1];\n  }\n  /**\n   * @returns `result`, such that `getPrefixSum(result.index) + result.remainder = sum`\n   */\n  getIndexOf(sum2) {\n    this._ensureValid();\n    const idx = this._indexBySum[sum2];\n    const viewLinesAbove = idx \u003e 0 ? this._prefixSum[idx - 1] : 0;\n    return new PrefixSumIndexOfResult(idx, sum2 - viewLinesAbove);\n  }\n  removeValues(start, deleteCount) {\n    this._values.splice(start, deleteCount);\n    this._invalidate(start);\n  }\n  insertValues(insertIndex, insertArr) {\n    this._values = arrayInsert(this._values, insertIndex, insertArr);\n    this._invalidate(insertIndex);\n  }\n  _invalidate(index) {\n    this._isValid = false;\n    this._validEndIndex = Math.min(this._validEndIndex, index - 1);\n  }\n  _ensureValid() {\n    if (this._isValid) {\n      return;\n    }\n    for (let i2 = this._validEndIndex + 1, len = this._values.length; i2 \u003c len; i2++) {\n      const value = this._values[i2];\n      const sumAbove = i2 \u003e 0 ? this._prefixSum[i2 - 1] : 0;\n      this._prefixSum[i2] = sumAbove + value;\n      for (let j = 0; j \u003c value; j++) {\n        this._indexBySum[sumAbove + j] = i2;\n      }\n    }\n    this._prefixSum.length = this._values.length;\n    this._indexBySum.length = this._prefixSum[this._prefixSum.length - 1];\n    this._isValid = true;\n    this._validEndIndex = this._values.length - 1;\n  }\n  setValue(index, value) {\n    if (this._values[index] === value) {\n      return;\n    }\n    this._values[index] = value;\n    this._invalidate(index);\n  }\n};\nvar PrefixSumIndexOfResult = class {\n  constructor(index, remainder) {\n    this.index = index;\n    this.remainder = remainder;\n    this._prefixSumIndexOfResultBrand = void 0;\n    this.index = index;\n    this.remainder = remainder;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/coordinatesConverter.js\nvar IdentityCoordinatesConverter = class {\n  constructor(model) {\n    this._model = model;\n  }\n  _validPosition(pos) {\n    return this._model.validatePosition(pos);\n  }\n  _validRange(range2) {\n    return this._model.validateRange(range2);\n  }\n  // View -\u003e Model conversion and related methods\n  convertViewPositionToModelPosition(viewPosition) {\n    return this._validPosition(viewPosition);\n  }\n  convertViewRangeToModelRange(viewRange) {\n    return this._validRange(viewRange);\n  }\n  validateViewPosition(_viewPosition, expectedModelPosition) {\n    return this._validPosition(expectedModelPosition);\n  }\n  validateViewRange(_viewRange, expectedModelRange) {\n    return this._validRange(expectedModelRange);\n  }\n  // Model -\u003e View conversion and related methods\n  convertModelPositionToViewPosition(modelPosition) {\n    return this._validPosition(modelPosition);\n  }\n  convertModelRangeToViewRange(modelRange) {\n    return this._validRange(modelRange);\n  }\n  modelPositionIsVisible(modelPosition) {\n    const lineCount = this._model.getLineCount();\n    if (modelPosition.lineNumber \u003c 1 || modelPosition.lineNumber \u003e lineCount) {\n      return false;\n    }\n    return true;\n  }\n  getModelLineViewLineCount(modelLineNumber) {\n    return 1;\n  }\n  getViewLineNumberOfModelPosition(modelLineNumber, modelColumn) {\n    return modelLineNumber;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewModelLines.js\nvar ViewModelLinesFromProjectedModel = class {\n  constructor(editorId, model, domLineBreaksComputerFactory, monospaceLineBreaksComputerFactory, fontInfo, tabSize, wrappingStrategy, wrappingColumn, wrappingIndent, wordBreak, wrapOnEscapedLineFeeds) {\n    this._editorId = editorId;\n    this.model = model;\n    this._validModelVersionId = -1;\n    this._domLineBreaksComputerFactory = domLineBreaksComputerFactory;\n    this._monospaceLineBreaksComputerFactory = monospaceLineBreaksComputerFactory;\n    this.fontInfo = fontInfo;\n    this.tabSize = tabSize;\n    this.wrappingStrategy = wrappingStrategy;\n    this.wrappingColumn = wrappingColumn;\n    this.wrappingIndent = wrappingIndent;\n    this.wordBreak = wordBreak;\n    this.wrapOnEscapedLineFeeds = wrapOnEscapedLineFeeds;\n    this._constructLines(\n      /*resetHiddenAreas*/\n      true,\n      null\n    );\n  }\n  dispose() {\n    this.hiddenAreasDecorationIds = this.model.deltaDecorations(this.hiddenAreasDecorationIds, []);\n  }\n  createCoordinatesConverter() {\n    return new CoordinatesConverter(this);\n  }\n  _constructLines(resetHiddenAreas, previousLineBreaks) {\n    this.modelLineProjections = [];\n    if (resetHiddenAreas) {\n      this.hiddenAreasDecorationIds = this.model.deltaDecorations(this.hiddenAreasDecorationIds, []);\n    }\n    const linesContent = this.model.getLinesContent();\n    const injectedTextDecorations = this.model.getInjectedTextDecorations(this._editorId);\n    const lineCount = linesContent.length;\n    const lineBreaksComputer = this.createLineBreaksComputer();\n    const injectedTextQueue = new ArrayQueue(LineInjectedText.fromDecorations(injectedTextDecorations));\n    for (let i2 = 0; i2 \u003c lineCount; i2++) {\n      const lineInjectedText = injectedTextQueue.takeWhile((t) =\u003e t.lineNumber === i2 + 1);\n      lineBreaksComputer.addRequest(linesContent[i2], lineInjectedText, previousLineBreaks ? previousLineBreaks[i2] : null);\n    }\n    const linesBreaks = lineBreaksComputer.finalize();\n    const values = [];\n    const hiddenAreas = this.hiddenAreasDecorationIds.map((areaId) =\u003e this.model.getDecorationRange(areaId)).sort(Range.compareRangesUsingStarts);\n    let hiddenAreaStart = 1, hiddenAreaEnd = 0;\n    let hiddenAreaIdx = -1;\n    let nextLineNumberToUpdateHiddenArea = hiddenAreaIdx + 1 \u003c hiddenAreas.length ? hiddenAreaEnd + 1 : lineCount + 2;\n    for (let i2 = 0; i2 \u003c lineCount; i2++) {\n      const lineNumber = i2 + 1;\n      if (lineNumber === nextLineNumberToUpdateHiddenArea) {\n        hiddenAreaIdx++;\n        hiddenAreaStart = hiddenAreas[hiddenAreaIdx].startLineNumber;\n        hiddenAreaEnd = hiddenAreas[hiddenAreaIdx].endLineNumber;\n        nextLineNumberToUpdateHiddenArea = hiddenAreaIdx + 1 \u003c hiddenAreas.length ? hiddenAreaEnd + 1 : lineCount + 2;\n      }\n      const isInHiddenArea = lineNumber \u003e= hiddenAreaStart \u0026\u0026 lineNumber \u003c= hiddenAreaEnd;\n      const line = createModelLineProjection(linesBreaks[i2], !isInHiddenArea);\n      values[i2] = line.getViewLineCount();\n      this.modelLineProjections[i2] = line;\n    }\n    this._validModelVersionId = this.model.getVersionId();\n    this.projectedModelLineLineCounts = new ConstantTimePrefixSumComputer(values);\n  }\n  getHiddenAreas() {\n    return this.hiddenAreasDecorationIds.map((decId) =\u003e this.model.getDecorationRange(decId));\n  }\n  setHiddenAreas(_ranges) {\n    const validatedRanges = _ranges.map((r) =\u003e this.model.validateRange(r));\n    const newRanges = normalizeLineRanges(validatedRanges);\n    const oldRanges = this.hiddenAreasDecorationIds.map((areaId) =\u003e this.model.getDecorationRange(areaId)).sort(Range.compareRangesUsingStarts);\n    if (newRanges.length === oldRanges.length) {\n      let hasDifference = false;\n      for (let i2 = 0; i2 \u003c newRanges.length; i2++) {\n        if (!newRanges[i2].equalsRange(oldRanges[i2])) {\n          hasDifference = true;\n          break;\n        }\n      }\n      if (!hasDifference) {\n        return false;\n      }\n    }\n    const newDecorations = newRanges.map((r) =\u003e ({\n      range: r,\n      options: ModelDecorationOptions.EMPTY\n    }));\n    this.hiddenAreasDecorationIds = this.model.deltaDecorations(this.hiddenAreasDecorationIds, newDecorations);\n    const hiddenAreas = newRanges;\n    let hiddenAreaStart = 1, hiddenAreaEnd = 0;\n    let hiddenAreaIdx = -1;\n    let nextLineNumberToUpdateHiddenArea = hiddenAreaIdx + 1 \u003c hiddenAreas.length ? hiddenAreaEnd + 1 : this.modelLineProjections.length + 2;\n    let hasVisibleLine = false;\n    for (let i2 = 0; i2 \u003c this.modelLineProjections.length; i2++) {\n      const lineNumber = i2 + 1;\n      if (lineNumber === nextLineNumberToUpdateHiddenArea) {\n        hiddenAreaIdx++;\n        hiddenAreaStart = hiddenAreas[hiddenAreaIdx].startLineNumber;\n        hiddenAreaEnd = hiddenAreas[hiddenAreaIdx].endLineNumber;\n        nextLineNumberToUpdateHiddenArea = hiddenAreaIdx + 1 \u003c hiddenAreas.length ? hiddenAreaEnd + 1 : this.modelLineProjections.length + 2;\n      }\n      let lineChanged = false;\n      if (lineNumber \u003e= hiddenAreaStart \u0026\u0026 lineNumber \u003c= hiddenAreaEnd) {\n        if (this.modelLineProjections[i2].isVisible()) {\n          this.modelLineProjections[i2] = this.modelLineProjections[i2].setVisible(false);\n          lineChanged = true;\n        }\n      } else {\n        hasVisibleLine = true;\n        if (!this.modelLineProjections[i2].isVisible()) {\n          this.modelLineProjections[i2] = this.modelLineProjections[i2].setVisible(true);\n          lineChanged = true;\n        }\n      }\n      if (lineChanged) {\n        const newOutputLineCount = this.modelLineProjections[i2].getViewLineCount();\n        this.projectedModelLineLineCounts.setValue(i2, newOutputLineCount);\n      }\n    }\n    if (!hasVisibleLine) {\n      this.setHiddenAreas([]);\n    }\n    return true;\n  }\n  modelPositionIsVisible(modelLineNumber, _modelColumn) {\n    if (modelLineNumber \u003c 1 || modelLineNumber \u003e this.modelLineProjections.length) {\n      return false;\n    }\n    return this.modelLineProjections[modelLineNumber - 1].isVisible();\n  }\n  getModelLineViewLineCount(modelLineNumber) {\n    if (modelLineNumber \u003c 1 || modelLineNumber \u003e this.modelLineProjections.length) {\n      return 1;\n    }\n    return this.modelLineProjections[modelLineNumber - 1].getViewLineCount();\n  }\n  setTabSize(newTabSize) {\n    if (this.tabSize === newTabSize) {\n      return false;\n    }\n    this.tabSize = newTabSize;\n    this._constructLines(\n      /*resetHiddenAreas*/\n      false,\n      null\n    );\n    return true;\n  }\n  setWrappingSettings(fontInfo, wrappingStrategy, wrappingColumn, wrappingIndent, wordBreak) {\n    const equalFontInfo = this.fontInfo.equals(fontInfo);\n    const equalWrappingStrategy = this.wrappingStrategy === wrappingStrategy;\n    const equalWrappingColumn = this.wrappingColumn === wrappingColumn;\n    const equalWrappingIndent = this.wrappingIndent === wrappingIndent;\n    const equalWordBreak = this.wordBreak === wordBreak;\n    if (equalFontInfo \u0026\u0026 equalWrappingStrategy \u0026\u0026 equalWrappingColumn \u0026\u0026 equalWrappingIndent \u0026\u0026 equalWordBreak) {\n      return false;\n    }\n    const onlyWrappingColumnChanged = equalFontInfo \u0026\u0026 equalWrappingStrategy \u0026\u0026 !equalWrappingColumn \u0026\u0026 equalWrappingIndent \u0026\u0026 equalWordBreak;\n    this.fontInfo = fontInfo;\n    this.wrappingStrategy = wrappingStrategy;\n    this.wrappingColumn = wrappingColumn;\n    this.wrappingIndent = wrappingIndent;\n    this.wordBreak = wordBreak;\n    let previousLineBreaks = null;\n    if (onlyWrappingColumnChanged) {\n      previousLineBreaks = [];\n      for (let i2 = 0, len = this.modelLineProjections.length; i2 \u003c len; i2++) {\n        previousLineBreaks[i2] = this.modelLineProjections[i2].getProjectionData();\n      }\n    }\n    this._constructLines(\n      /*resetHiddenAreas*/\n      false,\n      previousLineBreaks\n    );\n    return true;\n  }\n  createLineBreaksComputer() {\n    const lineBreaksComputerFactory = this.wrappingStrategy === \"advanced\" ? this._domLineBreaksComputerFactory : this._monospaceLineBreaksComputerFactory;\n    return lineBreaksComputerFactory.createLineBreaksComputer(this.fontInfo, this.tabSize, this.wrappingColumn, this.wrappingIndent, this.wordBreak, this.wrapOnEscapedLineFeeds);\n  }\n  onModelFlushed() {\n    this._constructLines(\n      /*resetHiddenAreas*/\n      true,\n      null\n    );\n  }\n  onModelLinesDeleted(versionId, fromLineNumber, toLineNumber) {\n    if (!versionId || versionId \u003c= this._validModelVersionId) {\n      return null;\n    }\n    const outputFromLineNumber = fromLineNumber === 1 ? 1 : this.projectedModelLineLineCounts.getPrefixSum(fromLineNumber - 1) + 1;\n    const outputToLineNumber = this.projectedModelLineLineCounts.getPrefixSum(toLineNumber);\n    this.modelLineProjections.splice(fromLineNumber - 1, toLineNumber - fromLineNumber + 1);\n    this.projectedModelLineLineCounts.removeValues(fromLineNumber - 1, toLineNumber - fromLineNumber + 1);\n    return new ViewLinesDeletedEvent(outputFromLineNumber, outputToLineNumber);\n  }\n  onModelLinesInserted(versionId, fromLineNumber, _toLineNumber, lineBreaks) {\n    if (!versionId || versionId \u003c= this._validModelVersionId) {\n      return null;\n    }\n    const isInHiddenArea = fromLineNumber \u003e 2 \u0026\u0026 !this.modelLineProjections[fromLineNumber - 2].isVisible();\n    const outputFromLineNumber = fromLineNumber === 1 ? 1 : this.projectedModelLineLineCounts.getPrefixSum(fromLineNumber - 1) + 1;\n    let totalOutputLineCount = 0;\n    const insertLines = [];\n    const insertPrefixSumValues = [];\n    for (let i2 = 0, len = lineBreaks.length; i2 \u003c len; i2++) {\n      const line = createModelLineProjection(lineBreaks[i2], !isInHiddenArea);\n      insertLines.push(line);\n      const outputLineCount = line.getViewLineCount();\n      totalOutputLineCount += outputLineCount;\n      insertPrefixSumValues[i2] = outputLineCount;\n    }\n    this.modelLineProjections = this.modelLineProjections.slice(0, fromLineNumber - 1).concat(insertLines).concat(this.modelLineProjections.slice(fromLineNumber - 1));\n    this.projectedModelLineLineCounts.insertValues(fromLineNumber - 1, insertPrefixSumValues);\n    return new ViewLinesInsertedEvent(outputFromLineNumber, outputFromLineNumber + totalOutputLineCount - 1);\n  }\n  onModelLineChanged(versionId, lineNumber, lineBreakData) {\n    if (versionId !== null \u0026\u0026 versionId \u003c= this._validModelVersionId) {\n      return [false, null, null, null];\n    }\n    const lineIndex = lineNumber - 1;\n    const oldOutputLineCount = this.modelLineProjections[lineIndex].getViewLineCount();\n    const isVisible = this.modelLineProjections[lineIndex].isVisible();\n    const line = createModelLineProjection(lineBreakData, isVisible);\n    this.modelLineProjections[lineIndex] = line;\n    const newOutputLineCount = this.modelLineProjections[lineIndex].getViewLineCount();\n    let lineMappingChanged = false;\n    let changeFrom = 0;\n    let changeTo = -1;\n    let insertFrom = 0;\n    let insertTo = -1;\n    let deleteFrom = 0;\n    let deleteTo = -1;\n    if (oldOutputLineCount \u003e newOutputLineCount) {\n      changeFrom = this.projectedModelLineLineCounts.getPrefixSum(lineNumber - 1) + 1;\n      changeTo = changeFrom + newOutputLineCount - 1;\n      deleteFrom = changeTo + 1;\n      deleteTo = deleteFrom + (oldOutputLineCount - newOutputLineCount) - 1;\n      lineMappingChanged = true;\n    } else if (oldOutputLineCount \u003c newOutputLineCount) {\n      changeFrom = this.projectedModelLineLineCounts.getPrefixSum(lineNumber - 1) + 1;\n      changeTo = changeFrom + oldOutputLineCount - 1;\n      insertFrom = changeTo + 1;\n      insertTo = insertFrom + (newOutputLineCount - oldOutputLineCount) - 1;\n      lineMappingChanged = true;\n    } else {\n      changeFrom = this.projectedModelLineLineCounts.getPrefixSum(lineNumber - 1) + 1;\n      changeTo = changeFrom + newOutputLineCount - 1;\n    }\n    this.projectedModelLineLineCounts.setValue(lineIndex, newOutputLineCount);\n    const viewLinesChangedEvent = changeFrom \u003c= changeTo ? new ViewLinesChangedEvent(changeFrom, changeTo - changeFrom + 1) : null;\n    const viewLinesInsertedEvent = insertFrom \u003c= insertTo ? new ViewLinesInsertedEvent(insertFrom, insertTo) : null;\n    const viewLinesDeletedEvent = deleteFrom \u003c= deleteTo ? new ViewLinesDeletedEvent(deleteFrom, deleteTo) : null;\n    return [lineMappingChanged, viewLinesChangedEvent, viewLinesInsertedEvent, viewLinesDeletedEvent];\n  }\n  acceptVersionId(versionId) {\n    this._validModelVersionId = versionId;\n    if (this.modelLineProjections.length === 1 \u0026\u0026 !this.modelLineProjections[0].isVisible()) {\n      this.setHiddenAreas([]);\n    }\n  }\n  getViewLineCount() {\n    return this.projectedModelLineLineCounts.getTotalSum();\n  }\n  _toValidViewLineNumber(viewLineNumber) {\n    if (viewLineNumber \u003c 1) {\n      return 1;\n    }\n    const viewLineCount = this.getViewLineCount();\n    if (viewLineNumber \u003e viewLineCount) {\n      return viewLineCount;\n    }\n    return viewLineNumber | 0;\n  }\n  getActiveIndentGuide(viewLineNumber, minLineNumber, maxLineNumber) {\n    viewLineNumber = this._toValidViewLineNumber(viewLineNumber);\n    minLineNumber = this._toValidViewLineNumber(minLineNumber);\n    maxLineNumber = this._toValidViewLineNumber(maxLineNumber);\n    const modelPosition = this.convertViewPositionToModelPosition(viewLineNumber, this.getViewLineMinColumn(viewLineNumber));\n    const modelMinPosition = this.convertViewPositionToModelPosition(minLineNumber, this.getViewLineMinColumn(minLineNumber));\n    const modelMaxPosition = this.convertViewPositionToModelPosition(maxLineNumber, this.getViewLineMinColumn(maxLineNumber));\n    const result = this.model.guides.getActiveIndentGuide(modelPosition.lineNumber, modelMinPosition.lineNumber, modelMaxPosition.lineNumber);\n    const viewStartPosition = this.convertModelPositionToViewPosition(result.startLineNumber, 1);\n    const viewEndPosition = this.convertModelPositionToViewPosition(result.endLineNumber, this.model.getLineMaxColumn(result.endLineNumber));\n    return {\n      startLineNumber: viewStartPosition.lineNumber,\n      endLineNumber: viewEndPosition.lineNumber,\n      indent: result.indent\n    };\n  }\n  // #region ViewLineInfo\n  getViewLineInfo(viewLineNumber) {\n    viewLineNumber = this._toValidViewLineNumber(viewLineNumber);\n    const r = this.projectedModelLineLineCounts.getIndexOf(viewLineNumber - 1);\n    const lineIndex = r.index;\n    const remainder = r.remainder;\n    return new ViewLineInfo(lineIndex + 1, remainder);\n  }\n  getMinColumnOfViewLine(viewLineInfo) {\n    return this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewLineMinColumn(this.model, viewLineInfo.modelLineNumber, viewLineInfo.modelLineWrappedLineIdx);\n  }\n  getMaxColumnOfViewLine(viewLineInfo) {\n    return this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewLineMaxColumn(this.model, viewLineInfo.modelLineNumber, viewLineInfo.modelLineWrappedLineIdx);\n  }\n  getModelStartPositionOfViewLine(viewLineInfo) {\n    const line = this.modelLineProjections[viewLineInfo.modelLineNumber - 1];\n    const minViewColumn = line.getViewLineMinColumn(this.model, viewLineInfo.modelLineNumber, viewLineInfo.modelLineWrappedLineIdx);\n    const column = line.getModelColumnOfViewPosition(viewLineInfo.modelLineWrappedLineIdx, minViewColumn);\n    return new Position(viewLineInfo.modelLineNumber, column);\n  }\n  getModelEndPositionOfViewLine(viewLineInfo) {\n    const line = this.modelLineProjections[viewLineInfo.modelLineNumber - 1];\n    const maxViewColumn = line.getViewLineMaxColumn(this.model, viewLineInfo.modelLineNumber, viewLineInfo.modelLineWrappedLineIdx);\n    const column = line.getModelColumnOfViewPosition(viewLineInfo.modelLineWrappedLineIdx, maxViewColumn);\n    return new Position(viewLineInfo.modelLineNumber, column);\n  }\n  getViewLineInfosGroupedByModelRanges(viewStartLineNumber, viewEndLineNumber) {\n    const startViewLine = this.getViewLineInfo(viewStartLineNumber);\n    const endViewLine = this.getViewLineInfo(viewEndLineNumber);\n    const result = new Array();\n    let lastVisibleModelPos = this.getModelStartPositionOfViewLine(startViewLine);\n    let viewLines = new Array();\n    for (let curModelLine = startViewLine.modelLineNumber; curModelLine \u003c= endViewLine.modelLineNumber; curModelLine++) {\n      const line = this.modelLineProjections[curModelLine - 1];\n      if (line.isVisible()) {\n        const startOffset = curModelLine === startViewLine.modelLineNumber ? startViewLine.modelLineWrappedLineIdx : 0;\n        const endOffset = curModelLine === endViewLine.modelLineNumber ? endViewLine.modelLineWrappedLineIdx + 1 : line.getViewLineCount();\n        for (let i2 = startOffset; i2 \u003c endOffset; i2++) {\n          viewLines.push(new ViewLineInfo(curModelLine, i2));\n        }\n      }\n      if (!line.isVisible() \u0026\u0026 lastVisibleModelPos) {\n        const lastVisibleModelPos2 = new Position(curModelLine - 1, this.model.getLineMaxColumn(curModelLine - 1) + 1);\n        const modelRange = Range.fromPositions(lastVisibleModelPos, lastVisibleModelPos2);\n        result.push(new ViewLineInfoGroupedByModelRange(modelRange, viewLines));\n        viewLines = [];\n        lastVisibleModelPos = null;\n      } else if (line.isVisible() \u0026\u0026 !lastVisibleModelPos) {\n        lastVisibleModelPos = new Position(curModelLine, 1);\n      }\n    }\n    if (lastVisibleModelPos) {\n      const modelRange = Range.fromPositions(lastVisibleModelPos, this.getModelEndPositionOfViewLine(endViewLine));\n      result.push(new ViewLineInfoGroupedByModelRange(modelRange, viewLines));\n    }\n    return result;\n  }\n  // #endregion\n  getViewLinesBracketGuides(viewStartLineNumber, viewEndLineNumber, activeViewPosition, options2) {\n    const modelActivePosition = activeViewPosition ? this.convertViewPositionToModelPosition(activeViewPosition.lineNumber, activeViewPosition.column) : null;\n    const resultPerViewLine = [];\n    for (const group of this.getViewLineInfosGroupedByModelRanges(viewStartLineNumber, viewEndLineNumber)) {\n      const modelRangeStartLineNumber = group.modelRange.startLineNumber;\n      const bracketGuidesPerModelLine = this.model.guides.getLinesBracketGuides(modelRangeStartLineNumber, group.modelRange.endLineNumber, modelActivePosition, options2);\n      for (const viewLineInfo of group.viewLines) {\n        const bracketGuides = bracketGuidesPerModelLine[viewLineInfo.modelLineNumber - modelRangeStartLineNumber];\n        const result = bracketGuides.map((g) =\u003e {\n          if (g.forWrappedLinesAfterColumn !== -1) {\n            const p2 = this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewPositionOfModelPosition(0, g.forWrappedLinesAfterColumn);\n            if (p2.lineNumber \u003e= viewLineInfo.modelLineWrappedLineIdx) {\n              return void 0;\n            }\n          }\n          if (g.forWrappedLinesBeforeOrAtColumn !== -1) {\n            const p2 = this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewPositionOfModelPosition(0, g.forWrappedLinesBeforeOrAtColumn);\n            if (p2.lineNumber \u003c viewLineInfo.modelLineWrappedLineIdx) {\n              return void 0;\n            }\n          }\n          if (!g.horizontalLine) {\n            return g;\n          }\n          let column = -1;\n          if (g.column !== -1) {\n            const p2 = this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewPositionOfModelPosition(0, g.column);\n            if (p2.lineNumber === viewLineInfo.modelLineWrappedLineIdx) {\n              column = p2.column;\n            } else if (p2.lineNumber \u003c viewLineInfo.modelLineWrappedLineIdx) {\n              column = this.getMinColumnOfViewLine(viewLineInfo);\n            } else if (p2.lineNumber \u003e viewLineInfo.modelLineWrappedLineIdx) {\n              return void 0;\n            }\n          }\n          const viewPosition = this.convertModelPositionToViewPosition(viewLineInfo.modelLineNumber, g.horizontalLine.endColumn);\n          const p = this.modelLineProjections[viewLineInfo.modelLineNumber - 1].getViewPositionOfModelPosition(0, g.horizontalLine.endColumn);\n          if (p.lineNumber === viewLineInfo.modelLineWrappedLineIdx) {\n            return new IndentGuide(g.visibleColumn, column, g.className, new IndentGuideHorizontalLine(g.horizontalLine.top, viewPosition.column), -1, -1);\n          } else if (p.lineNumber \u003c viewLineInfo.modelLineWrappedLineIdx) {\n            return void 0;\n          } else {\n            if (g.visibleColumn !== -1) {\n              return void 0;\n            }\n            return new IndentGuide(g.visibleColumn, column, g.className, new IndentGuideHorizontalLine(g.horizontalLine.top, this.getMaxColumnOfViewLine(viewLineInfo)), -1, -1);\n          }\n        });\n        resultPerViewLine.push(result.filter((r) =\u003e !!r));\n      }\n    }\n    return resultPerViewLine;\n  }\n  getViewLinesIndentGuides(viewStartLineNumber, viewEndLineNumber) {\n    viewStartLineNumber = this._toValidViewLineNumber(viewStartLineNumber);\n    viewEndLineNumber = this._toValidViewLineNumber(viewEndLineNumber);\n    const modelStart = this.convertViewPositionToModelPosition(viewStartLineNumber, this.getViewLineMinColumn(viewStartLineNumber));\n    const modelEnd = this.convertViewPositionToModelPosition(viewEndLineNumber, this.getViewLineMaxColumn(viewEndLineNumber));\n    let result = [];\n    const resultRepeatCount = [];\n    const resultRepeatOption = [];\n    const modelStartLineIndex = modelStart.lineNumber - 1;\n    const modelEndLineIndex = modelEnd.lineNumber - 1;\n    let reqStart = null;\n    for (let modelLineIndex = modelStartLineIndex; modelLineIndex \u003c= modelEndLineIndex; modelLineIndex++) {\n      const line = this.modelLineProjections[modelLineIndex];\n      if (line.isVisible()) {\n        const viewLineStartIndex = line.getViewLineNumberOfModelPosition(0, modelLineIndex === modelStartLineIndex ? modelStart.column : 1);\n        const viewLineEndIndex = line.getViewLineNumberOfModelPosition(0, this.model.getLineMaxColumn(modelLineIndex + 1));\n        const count = viewLineEndIndex - viewLineStartIndex + 1;\n        let option2 = 0;\n        if (count \u003e 1 \u0026\u0026 line.getViewLineMinColumn(this.model, modelLineIndex + 1, viewLineEndIndex) === 1) {\n          option2 = viewLineStartIndex === 0 ? 1 : 2;\n        }\n        resultRepeatCount.push(count);\n        resultRepeatOption.push(option2);\n        if (reqStart === null) {\n          reqStart = new Position(modelLineIndex + 1, 0);\n        }\n      } else {\n        if (reqStart !== null) {\n          result = result.concat(this.model.guides.getLinesIndentGuides(reqStart.lineNumber, modelLineIndex));\n          reqStart = null;\n        }\n      }\n    }\n    if (reqStart !== null) {\n      result = result.concat(this.model.guides.getLinesIndentGuides(reqStart.lineNumber, modelEnd.lineNumber));\n      reqStart = null;\n    }\n    const viewLineCount = viewEndLineNumber - viewStartLineNumber + 1;\n    const viewIndents = new Array(viewLineCount);\n    let currIndex = 0;\n    for (let i2 = 0, len = result.length; i2 \u003c len; i2++) {\n      let value = result[i2];\n      const count = Math.min(viewLineCount - currIndex, resultRepeatCount[i2]);\n      const option2 = resultRepeatOption[i2];\n      let blockAtIndex;\n      if (option2 === 2) {\n        blockAtIndex = 0;\n      } else if (option2 === 1) {\n        blockAtIndex = 1;\n      } else {\n        blockAtIndex = count;\n      }\n      for (let j = 0; j \u003c count; j++) {\n        if (j === blockAtIndex) {\n          value = 0;\n        }\n        viewIndents[currIndex++] = value;\n      }\n    }\n    return viewIndents;\n  }\n  getViewLineContent(viewLineNumber) {\n    const info = this.getViewLineInfo(viewLineNumber);\n    return this.modelLineProjections[info.modelLineNumber - 1].getViewLineContent(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n  }\n  getViewLineLength(viewLineNumber) {\n    const info = this.getViewLineInfo(viewLineNumber);\n    return this.modelLineProjections[info.modelLineNumber - 1].getViewLineLength(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n  }\n  getViewLineMinColumn(viewLineNumber) {\n    const info = this.getViewLineInfo(viewLineNumber);\n    return this.modelLineProjections[info.modelLineNumber - 1].getViewLineMinColumn(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n  }\n  getViewLineMaxColumn(viewLineNumber) {\n    const info = this.getViewLineInfo(viewLineNumber);\n    return this.modelLineProjections[info.modelLineNumber - 1].getViewLineMaxColumn(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n  }\n  getViewLineData(viewLineNumber) {\n    const info = this.getViewLineInfo(viewLineNumber);\n    return this.modelLineProjections[info.modelLineNumber - 1].getViewLineData(this.model, info.modelLineNumber, info.modelLineWrappedLineIdx);\n  }\n  getViewLinesData(viewStartLineNumber, viewEndLineNumber, needed) {\n    viewStartLineNumber = this._toValidViewLineNumber(viewStartLineNumber);\n    viewEndLineNumber = this._toValidViewLineNumber(viewEndLineNumber);\n    const start = this.projectedModelLineLineCounts.getIndexOf(viewStartLineNumber - 1);\n    let viewLineNumber = viewStartLineNumber;\n    const startModelLineIndex = start.index;\n    const startRemainder = start.remainder;\n    const result = [];\n    for (let modelLineIndex = startModelLineIndex, len = this.model.getLineCount(); modelLineIndex \u003c len; modelLineIndex++) {\n      const line = this.modelLineProjections[modelLineIndex];\n      if (!line.isVisible()) {\n        continue;\n      }\n      const fromViewLineIndex = modelLineIndex === startModelLineIndex ? startRemainder : 0;\n      let remainingViewLineCount = line.getViewLineCount() - fromViewLineIndex;\n      let lastLine = false;\n      if (viewLineNumber + remainingViewLineCount \u003e viewEndLineNumber) {\n        lastLine = true;\n        remainingViewLineCount = viewEndLineNumber - viewLineNumber + 1;\n      }\n      line.getViewLinesData(this.model, modelLineIndex + 1, fromViewLineIndex, remainingViewLineCount, viewLineNumber - viewStartLineNumber, needed, result);\n      viewLineNumber += remainingViewLineCount;\n      if (lastLine) {\n        break;\n      }\n    }\n    return result;\n  }\n  validateViewPosition(viewLineNumber, viewColumn, expectedModelPosition) {\n    viewLineNumber = this._toValidViewLineNumber(viewLineNumber);\n    const r = this.projectedModelLineLineCounts.getIndexOf(viewLineNumber - 1);\n    const lineIndex = r.index;\n    const remainder = r.remainder;\n    const line = this.modelLineProjections[lineIndex];\n    const minColumn = line.getViewLineMinColumn(this.model, lineIndex + 1, remainder);\n    const maxColumn = line.getViewLineMaxColumn(this.model, lineIndex + 1, remainder);\n    if (viewColumn \u003c minColumn) {\n      viewColumn = minColumn;\n    }\n    if (viewColumn \u003e maxColumn) {\n      viewColumn = maxColumn;\n    }\n    const computedModelColumn = line.getModelColumnOfViewPosition(remainder, viewColumn);\n    const computedModelPosition = this.model.validatePosition(new Position(lineIndex + 1, computedModelColumn));\n    if (computedModelPosition.equals(expectedModelPosition)) {\n      return new Position(viewLineNumber, viewColumn);\n    }\n    return this.convertModelPositionToViewPosition(expectedModelPosition.lineNumber, expectedModelPosition.column);\n  }\n  validateViewRange(viewRange, expectedModelRange) {\n    const validViewStart = this.validateViewPosition(viewRange.startLineNumber, viewRange.startColumn, expectedModelRange.getStartPosition());\n    const validViewEnd = this.validateViewPosition(viewRange.endLineNumber, viewRange.endColumn, expectedModelRange.getEndPosition());\n    return new Range(validViewStart.lineNumber, validViewStart.column, validViewEnd.lineNumber, validViewEnd.column);\n  }\n  convertViewPositionToModelPosition(viewLineNumber, viewColumn) {\n    const info = this.getViewLineInfo(viewLineNumber);\n    const inputColumn = this.modelLineProjections[info.modelLineNumber - 1].getModelColumnOfViewPosition(info.modelLineWrappedLineIdx, viewColumn);\n    return this.model.validatePosition(new Position(info.modelLineNumber, inputColumn));\n  }\n  convertViewRangeToModelRange(viewRange) {\n    const start = this.convertViewPositionToModelPosition(viewRange.startLineNumber, viewRange.startColumn);\n    const end = this.convertViewPositionToModelPosition(viewRange.endLineNumber, viewRange.endColumn);\n    return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n  }\n  convertModelPositionToViewPosition(_modelLineNumber, _modelColumn, affinity = 2, allowZeroLineNumber = false, belowHiddenRanges = false) {\n    const validPosition = this.model.validatePosition(new Position(_modelLineNumber, _modelColumn));\n    const inputLineNumber = validPosition.lineNumber;\n    const inputColumn = validPosition.column;\n    let lineIndex = inputLineNumber - 1, lineIndexChanged = false;\n    if (belowHiddenRanges) {\n      while (lineIndex \u003c this.modelLineProjections.length \u0026\u0026 !this.modelLineProjections[lineIndex].isVisible()) {\n        lineIndex++;\n        lineIndexChanged = true;\n      }\n    } else {\n      while (lineIndex \u003e 0 \u0026\u0026 !this.modelLineProjections[lineIndex].isVisible()) {\n        lineIndex--;\n        lineIndexChanged = true;\n      }\n    }\n    if (lineIndex === 0 \u0026\u0026 !this.modelLineProjections[lineIndex].isVisible()) {\n      return new Position(allowZeroLineNumber ? 0 : 1, 1);\n    }\n    const deltaLineNumber = 1 + this.projectedModelLineLineCounts.getPrefixSum(lineIndex);\n    let r;\n    if (lineIndexChanged) {\n      if (belowHiddenRanges) {\n        r = this.modelLineProjections[lineIndex].getViewPositionOfModelPosition(deltaLineNumber, 1, affinity);\n      } else {\n        r = this.modelLineProjections[lineIndex].getViewPositionOfModelPosition(deltaLineNumber, this.model.getLineMaxColumn(lineIndex + 1), affinity);\n      }\n    } else {\n      r = this.modelLineProjections[inputLineNumber - 1].getViewPositionOfModelPosition(deltaLineNumber, inputColumn, affinity);\n    }\n    return r;\n  }\n  /**\n   * @param affinity The affinity in case of an empty range. Has no effect for non-empty ranges.\n  */\n  convertModelRangeToViewRange(modelRange, affinity = 0) {\n    if (modelRange.isEmpty()) {\n      const start = this.convertModelPositionToViewPosition(modelRange.startLineNumber, modelRange.startColumn, affinity);\n      return Range.fromPositions(start);\n    } else {\n      const start = this.convertModelPositionToViewPosition(\n        modelRange.startLineNumber,\n        modelRange.startColumn,\n        1\n        /* PositionAffinity.Right */\n      );\n      const end = this.convertModelPositionToViewPosition(\n        modelRange.endLineNumber,\n        modelRange.endColumn,\n        0\n        /* PositionAffinity.Left */\n      );\n      return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n    }\n  }\n  getViewLineNumberOfModelPosition(modelLineNumber, modelColumn) {\n    let lineIndex = modelLineNumber - 1;\n    if (this.modelLineProjections[lineIndex].isVisible()) {\n      const deltaLineNumber2 = 1 + this.projectedModelLineLineCounts.getPrefixSum(lineIndex);\n      return this.modelLineProjections[lineIndex].getViewLineNumberOfModelPosition(deltaLineNumber2, modelColumn);\n    }\n    while (lineIndex \u003e 0 \u0026\u0026 !this.modelLineProjections[lineIndex].isVisible()) {\n      lineIndex--;\n    }\n    if (lineIndex === 0 \u0026\u0026 !this.modelLineProjections[lineIndex].isVisible()) {\n      return 1;\n    }\n    const deltaLineNumber = 1 + this.projectedModelLineLineCounts.getPrefixSum(lineIndex);\n    return this.modelLineProjections[lineIndex].getViewLineNumberOfModelPosition(deltaLineNumber, this.model.getLineMaxColumn(lineIndex + 1));\n  }\n  getDecorationsInRange(range2, ownerId2, filterOutValidation, filterFontDecorations2, onlyMinimapDecorations, onlyMarginDecorations) {\n    const modelStart = this.convertViewPositionToModelPosition(range2.startLineNumber, range2.startColumn);\n    const modelEnd = this.convertViewPositionToModelPosition(range2.endLineNumber, range2.endColumn);\n    if (modelEnd.lineNumber - modelStart.lineNumber \u003c= range2.endLineNumber - range2.startLineNumber) {\n      return this.model.getDecorationsInRange(new Range(modelStart.lineNumber, 1, modelEnd.lineNumber, modelEnd.column), ownerId2, filterOutValidation, filterFontDecorations2, onlyMinimapDecorations, onlyMarginDecorations);\n    }\n    let result = [];\n    const modelStartLineIndex = modelStart.lineNumber - 1;\n    const modelEndLineIndex = modelEnd.lineNumber - 1;\n    let reqStart = null;\n    for (let modelLineIndex = modelStartLineIndex; modelLineIndex \u003c= modelEndLineIndex; modelLineIndex++) {\n      const line = this.modelLineProjections[modelLineIndex];\n      if (line.isVisible()) {\n        if (reqStart === null) {\n          reqStart = new Position(modelLineIndex + 1, modelLineIndex === modelStartLineIndex ? modelStart.column : 1);\n        }\n      } else {\n        if (reqStart !== null) {\n          const maxLineColumn = this.model.getLineMaxColumn(modelLineIndex);\n          result = result.concat(this.model.getDecorationsInRange(new Range(reqStart.lineNumber, reqStart.column, modelLineIndex, maxLineColumn), ownerId2, filterOutValidation, filterFontDecorations2, onlyMinimapDecorations));\n          reqStart = null;\n        }\n      }\n    }\n    if (reqStart !== null) {\n      result = result.concat(this.model.getDecorationsInRange(new Range(reqStart.lineNumber, reqStart.column, modelEnd.lineNumber, modelEnd.column), ownerId2, filterOutValidation, filterFontDecorations2, onlyMinimapDecorations));\n      reqStart = null;\n    }\n    result.sort((a, b) =\u003e {\n      const res = Range.compareRangesUsingStarts(a.range, b.range);\n      if (res === 0) {\n        if (a.id \u003c b.id) {\n          return -1;\n        }\n        if (a.id \u003e b.id) {\n          return 1;\n        }\n        return 0;\n      }\n      return res;\n    });\n    const finalResult = [];\n    let finalResultLen = 0;\n    let prevDecId = null;\n    for (const dec of result) {\n      const decId = dec.id;\n      if (prevDecId === decId) {\n        continue;\n      }\n      prevDecId = decId;\n      finalResult[finalResultLen++] = dec;\n    }\n    return finalResult;\n  }\n  getInjectedTextAt(position) {\n    const info = this.getViewLineInfo(position.lineNumber);\n    return this.modelLineProjections[info.modelLineNumber - 1].getInjectedTextAt(info.modelLineWrappedLineIdx, position.column);\n  }\n  normalizePosition(position, affinity) {\n    const info = this.getViewLineInfo(position.lineNumber);\n    return this.modelLineProjections[info.modelLineNumber - 1].normalizePosition(info.modelLineWrappedLineIdx, position, affinity);\n  }\n  getLineIndentColumn(lineNumber) {\n    const info = this.getViewLineInfo(lineNumber);\n    if (info.modelLineWrappedLineIdx === 0) {\n      return this.model.getLineIndentColumn(info.modelLineNumber);\n    }\n    return 0;\n  }\n};\nfunction normalizeLineRanges(ranges) {\n  if (ranges.length === 0) {\n    return [];\n  }\n  const sortedRanges = ranges.slice();\n  sortedRanges.sort(Range.compareRangesUsingStarts);\n  const result = [];\n  let currentRangeStart = sortedRanges[0].startLineNumber;\n  let currentRangeEnd = sortedRanges[0].endLineNumber;\n  for (let i2 = 1, len = sortedRanges.length; i2 \u003c len; i2++) {\n    const range2 = sortedRanges[i2];\n    if (range2.startLineNumber \u003e currentRangeEnd + 1) {\n      result.push(new Range(currentRangeStart, 1, currentRangeEnd, 1));\n      currentRangeStart = range2.startLineNumber;\n      currentRangeEnd = range2.endLineNumber;\n    } else if (range2.endLineNumber \u003e currentRangeEnd) {\n      currentRangeEnd = range2.endLineNumber;\n    }\n  }\n  result.push(new Range(currentRangeStart, 1, currentRangeEnd, 1));\n  return result;\n}\nvar ViewLineInfo = class {\n  constructor(modelLineNumber, modelLineWrappedLineIdx) {\n    this.modelLineNumber = modelLineNumber;\n    this.modelLineWrappedLineIdx = modelLineWrappedLineIdx;\n  }\n};\nvar ViewLineInfoGroupedByModelRange = class {\n  constructor(modelRange, viewLines) {\n    this.modelRange = modelRange;\n    this.viewLines = viewLines;\n  }\n};\nvar CoordinatesConverter = class {\n  constructor(lines) {\n    this._lines = lines;\n  }\n  // View -\u003e Model conversion and related methods\n  convertViewPositionToModelPosition(viewPosition) {\n    return this._lines.convertViewPositionToModelPosition(viewPosition.lineNumber, viewPosition.column);\n  }\n  convertViewRangeToModelRange(viewRange) {\n    return this._lines.convertViewRangeToModelRange(viewRange);\n  }\n  validateViewPosition(viewPosition, expectedModelPosition) {\n    return this._lines.validateViewPosition(viewPosition.lineNumber, viewPosition.column, expectedModelPosition);\n  }\n  validateViewRange(viewRange, expectedModelRange) {\n    return this._lines.validateViewRange(viewRange, expectedModelRange);\n  }\n  // Model -\u003e View conversion and related methods\n  convertModelPositionToViewPosition(modelPosition, affinity, allowZero, belowHiddenRanges) {\n    return this._lines.convertModelPositionToViewPosition(modelPosition.lineNumber, modelPosition.column, affinity, allowZero, belowHiddenRanges);\n  }\n  convertModelRangeToViewRange(modelRange, affinity) {\n    return this._lines.convertModelRangeToViewRange(modelRange, affinity);\n  }\n  modelPositionIsVisible(modelPosition) {\n    return this._lines.modelPositionIsVisible(modelPosition.lineNumber, modelPosition.column);\n  }\n  getModelLineViewLineCount(modelLineNumber) {\n    return this._lines.getModelLineViewLineCount(modelLineNumber);\n  }\n  getViewLineNumberOfModelPosition(modelLineNumber, modelColumn) {\n    return this._lines.getViewLineNumberOfModelPosition(modelLineNumber, modelColumn);\n  }\n};\nvar ViewModelLinesFromModelAsIs = class {\n  constructor(model) {\n    this.model = model;\n  }\n  dispose() {\n  }\n  createCoordinatesConverter() {\n    return new IdentityCoordinatesConverter(this.model);\n  }\n  getHiddenAreas() {\n    return [];\n  }\n  setHiddenAreas(_ranges) {\n    return false;\n  }\n  setTabSize(_newTabSize) {\n    return false;\n  }\n  setWrappingSettings(_fontInfo, _wrappingStrategy, _wrappingColumn, _wrappingIndent) {\n    return false;\n  }\n  createLineBreaksComputer() {\n    const result = [];\n    return {\n      addRequest: (lineText, injectedText, previousLineBreakData) =\u003e {\n        result.push(null);\n      },\n      finalize: () =\u003e {\n        return result;\n      }\n    };\n  }\n  onModelFlushed() {\n  }\n  onModelLinesDeleted(_versionId, fromLineNumber, toLineNumber) {\n    return new ViewLinesDeletedEvent(fromLineNumber, toLineNumber);\n  }\n  onModelLinesInserted(_versionId, fromLineNumber, toLineNumber, lineBreaks) {\n    return new ViewLinesInsertedEvent(fromLineNumber, toLineNumber);\n  }\n  onModelLineChanged(_versionId, lineNumber, lineBreakData) {\n    return [false, new ViewLinesChangedEvent(lineNumber, 1), null, null];\n  }\n  acceptVersionId(_versionId) {\n  }\n  getViewLineCount() {\n    return this.model.getLineCount();\n  }\n  getActiveIndentGuide(viewLineNumber, _minLineNumber, _maxLineNumber) {\n    return {\n      startLineNumber: viewLineNumber,\n      endLineNumber: viewLineNumber,\n      indent: 0\n    };\n  }\n  getViewLinesBracketGuides(startLineNumber, endLineNumber, activePosition) {\n    return new Array(endLineNumber - startLineNumber + 1).fill([]);\n  }\n  getViewLinesIndentGuides(viewStartLineNumber, viewEndLineNumber) {\n    const viewLineCount = viewEndLineNumber - viewStartLineNumber + 1;\n    const result = new Array(viewLineCount);\n    for (let i2 = 0; i2 \u003c viewLineCount; i2++) {\n      result[i2] = 0;\n    }\n    return result;\n  }\n  getViewLineContent(viewLineNumber) {\n    return this.model.getLineContent(viewLineNumber);\n  }\n  getViewLineLength(viewLineNumber) {\n    return this.model.getLineLength(viewLineNumber);\n  }\n  getViewLineMinColumn(viewLineNumber) {\n    return this.model.getLineMinColumn(viewLineNumber);\n  }\n  getViewLineMaxColumn(viewLineNumber) {\n    return this.model.getLineMaxColumn(viewLineNumber);\n  }\n  getViewLineData(viewLineNumber) {\n    const lineTokens = this.model.tokenization.getLineTokens(viewLineNumber);\n    const lineContent = lineTokens.getLineContent();\n    return new ViewLineData(lineContent, false, 1, lineContent.length + 1, 0, lineTokens.inflate(), null);\n  }\n  getViewLinesData(viewStartLineNumber, viewEndLineNumber, needed) {\n    const lineCount = this.model.getLineCount();\n    viewStartLineNumber = Math.min(Math.max(1, viewStartLineNumber), lineCount);\n    viewEndLineNumber = Math.min(Math.max(1, viewEndLineNumber), lineCount);\n    const result = [];\n    for (let lineNumber = viewStartLineNumber; lineNumber \u003c= viewEndLineNumber; lineNumber++) {\n      const idx = lineNumber - viewStartLineNumber;\n      result[idx] = needed[idx] ? this.getViewLineData(lineNumber) : null;\n    }\n    return result;\n  }\n  getDecorationsInRange(range2, ownerId2, filterOutValidation, filterFontDecorations2, onlyMinimapDecorations, onlyMarginDecorations) {\n    return this.model.getDecorationsInRange(range2, ownerId2, filterOutValidation, filterFontDecorations2, onlyMinimapDecorations, onlyMarginDecorations);\n  }\n  normalizePosition(position, affinity) {\n    return this.model.normalizePosition(position, affinity);\n  }\n  getLineIndentColumn(lineNumber) {\n    return this.model.getLineIndentColumn(lineNumber);\n  }\n  getInjectedTextAt(position) {\n    return null;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/glyphLanesModel.js\ninit_model2();\nvar MAX_LANE = GlyphMarginLane.Right;\nvar GlyphMarginLanesModel = class {\n  constructor(maxLine) {\n    this.persist = 0;\n    this._requiredLanes = 1;\n    this.lanes = new Uint8Array(Math.ceil((maxLine + 1) * MAX_LANE / 8));\n  }\n  reset(maxLine) {\n    const bytes = Math.ceil((maxLine + 1) * MAX_LANE / 8);\n    if (this.lanes.length \u003c bytes) {\n      this.lanes = new Uint8Array(bytes);\n    } else {\n      this.lanes.fill(0);\n    }\n    this._requiredLanes = 1;\n  }\n  get requiredLanes() {\n    return this._requiredLanes;\n  }\n  push(lane, range2, persist) {\n    if (persist) {\n      this.persist |= 1 \u003c\u003c lane - 1;\n    }\n    for (let i2 = range2.startLineNumber; i2 \u003c= range2.endLineNumber; i2++) {\n      const bit = MAX_LANE * i2 + (lane - 1);\n      this.lanes[bit \u003e\u003e\u003e 3] |= 1 \u003c\u003c bit % 8;\n      this._requiredLanes = Math.max(this._requiredLanes, this.countAtLine(i2));\n    }\n  }\n  getLanesAtLine(lineNumber) {\n    const lanes = [];\n    let bit = MAX_LANE * lineNumber;\n    for (let i2 = 0; i2 \u003c MAX_LANE; i2++) {\n      if (this.persist \u0026 1 \u003c\u003c i2 || this.lanes[bit \u003e\u003e\u003e 3] \u0026 1 \u003c\u003c bit % 8) {\n        lanes.push(i2 + 1);\n      }\n      bit++;\n    }\n    return lanes.length ? lanes : [GlyphMarginLane.Center];\n  }\n  countAtLine(lineNumber) {\n    let bit = MAX_LANE * lineNumber;\n    let count = 0;\n    for (let i2 = 0; i2 \u003c MAX_LANE; i2++) {\n      if (this.persist \u0026 1 \u003c\u003c i2 || this.lanes[bit \u003e\u003e\u003e 3] \u0026 1 \u003c\u003c bit % 8) {\n        count++;\n      }\n      bit++;\n    }\n    return count;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/viewModel/viewModelImpl.js\nvar USE_IDENTITY_LINES_COLLECTION = true;\nvar ViewModel = class extends Disposable {\n  constructor(editorId, configuration, model, domLineBreaksComputerFactory, monospaceLineBreaksComputerFactory, scheduleAtNextAnimationFrame2, languageConfigurationService, _themeService, _attachedView, _transactionalTarget) {\n    super();\n    this.languageConfigurationService = languageConfigurationService;\n    this._themeService = _themeService;\n    this._attachedView = _attachedView;\n    this._transactionalTarget = _transactionalTarget;\n    this.hiddenAreasModel = new HiddenAreasModel();\n    this.previousHiddenAreas = [];\n    this._editorId = editorId;\n    this._configuration = configuration;\n    this.model = model;\n    this._eventDispatcher = new ViewModelEventDispatcher();\n    this.onEvent = this._eventDispatcher.onEvent;\n    this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n    this._updateConfigurationViewLineCount = this._register(new RunOnceScheduler(() =\u003e this._updateConfigurationViewLineCountNow(), 0));\n    this._hasFocus = false;\n    this._viewportStart = ViewportStart.create(this.model);\n    this.glyphLanes = new GlyphMarginLanesModel(0);\n    if (USE_IDENTITY_LINES_COLLECTION \u0026\u0026 this.model.isTooLargeForTokenization()) {\n      this._lines = new ViewModelLinesFromModelAsIs(this.model);\n    } else {\n      const options2 = this._configuration.options;\n      const fontInfo = options2.get(\n        59\n        /* EditorOption.fontInfo */\n      );\n      const wrappingStrategy = options2.get(\n        155\n        /* EditorOption.wrappingStrategy */\n      );\n      const wrappingInfo = options2.get(\n        165\n        /* EditorOption.wrappingInfo */\n      );\n      const wrappingIndent = options2.get(\n        154\n        /* EditorOption.wrappingIndent */\n      );\n      const wordBreak = options2.get(\n        145\n        /* EditorOption.wordBreak */\n      );\n      const wrapOnEscapedLineFeeds = options2.get(\n        159\n        /* EditorOption.wrapOnEscapedLineFeeds */\n      );\n      this._lines = new ViewModelLinesFromProjectedModel(this._editorId, this.model, domLineBreaksComputerFactory, monospaceLineBreaksComputerFactory, fontInfo, this.model.getOptions().tabSize, wrappingStrategy, wrappingInfo.wrappingColumn, wrappingIndent, wordBreak, wrapOnEscapedLineFeeds);\n    }\n    this.coordinatesConverter = this._lines.createCoordinatesConverter();\n    this._cursor = this._register(new CursorsController(model, this, this.coordinatesConverter, this.cursorConfig));\n    this.viewLayout = this._register(new ViewLayout(this._configuration, this.getLineCount(), this._getCustomLineHeights(), scheduleAtNextAnimationFrame2));\n    this._register(this.viewLayout.onDidScroll((e) =\u003e {\n      if (e.scrollTopChanged) {\n        this._handleVisibleLinesChanged();\n      }\n      if (e.scrollTopChanged) {\n        this._viewportStart.invalidate();\n      }\n      this._eventDispatcher.emitSingleViewEvent(new ViewScrollChangedEvent(e));\n      this._eventDispatcher.emitOutgoingEvent(new ScrollChangedEvent(e.oldScrollWidth, e.oldScrollLeft, e.oldScrollHeight, e.oldScrollTop, e.scrollWidth, e.scrollLeft, e.scrollHeight, e.scrollTop));\n    }));\n    this._register(this.viewLayout.onDidContentSizeChange((e) =\u003e {\n      this._eventDispatcher.emitOutgoingEvent(e);\n    }));\n    this._decorations = new ViewModelDecorations(this._editorId, this.model, this._configuration, this._lines, this.coordinatesConverter);\n    this._registerModelEvents();\n    this._register(this._configuration.onDidChangeFast((e) =\u003e {\n      try {\n        const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n        this._onConfigurationChanged(eventsCollector, e);\n      } finally {\n        this._eventDispatcher.endEmitViewEvents();\n      }\n    }));\n    this._register(MinimapTokensColorTracker.getInstance().onDidChange(() =\u003e {\n      this._eventDispatcher.emitSingleViewEvent(new ViewTokensColorsChangedEvent());\n    }));\n    this._register(this._themeService.onDidColorThemeChange((theme) =\u003e {\n      this._invalidateDecorationsColorCache();\n      this._eventDispatcher.emitSingleViewEvent(new ViewThemeChangedEvent(theme));\n    }));\n    this._updateConfigurationViewLineCountNow();\n  }\n  dispose() {\n    super.dispose();\n    this._decorations.dispose();\n    this._lines.dispose();\n    this._viewportStart.dispose();\n    this._eventDispatcher.dispose();\n  }\n  createLineBreaksComputer() {\n    return this._lines.createLineBreaksComputer();\n  }\n  addViewEventHandler(eventHandler) {\n    this._eventDispatcher.addViewEventHandler(eventHandler);\n  }\n  removeViewEventHandler(eventHandler) {\n    this._eventDispatcher.removeViewEventHandler(eventHandler);\n  }\n  _getCustomLineHeights() {\n    const allowVariableLineHeights = this._configuration.options.get(\n      5\n      /* EditorOption.allowVariableLineHeights */\n    );\n    if (!allowVariableLineHeights) {\n      return [];\n    }\n    const decorations = this.model.getCustomLineHeightsDecorations(this._editorId);\n    return decorations.map((d) =\u003e {\n      const lineNumber = d.range.startLineNumber;\n      const viewRange = this.coordinatesConverter.convertModelRangeToViewRange(new Range(lineNumber, 1, lineNumber, this.model.getLineMaxColumn(lineNumber)));\n      return {\n        decorationId: d.id,\n        startLineNumber: viewRange.startLineNumber,\n        endLineNumber: viewRange.endLineNumber,\n        lineHeight: d.options.lineHeight || 0\n      };\n    });\n  }\n  _updateConfigurationViewLineCountNow() {\n    this._configuration.setViewLineCount(this._lines.getViewLineCount());\n  }\n  getModelVisibleRanges() {\n    const linesViewportData = this.viewLayout.getLinesViewportData();\n    const viewVisibleRange = new Range(linesViewportData.startLineNumber, this.getLineMinColumn(linesViewportData.startLineNumber), linesViewportData.endLineNumber, this.getLineMaxColumn(linesViewportData.endLineNumber));\n    const modelVisibleRanges = this._toModelVisibleRanges(viewVisibleRange);\n    return modelVisibleRanges;\n  }\n  visibleLinesStabilized() {\n    const modelVisibleRanges = this.getModelVisibleRanges();\n    this._attachedView.setVisibleLines(modelVisibleRanges, true);\n  }\n  _handleVisibleLinesChanged() {\n    const modelVisibleRanges = this.getModelVisibleRanges();\n    this._attachedView.setVisibleLines(modelVisibleRanges, false);\n  }\n  setHasFocus(hasFocus) {\n    this._hasFocus = hasFocus;\n    this._cursor.setHasFocus(hasFocus);\n    this._eventDispatcher.emitSingleViewEvent(new ViewFocusChangedEvent(hasFocus));\n    this._eventDispatcher.emitOutgoingEvent(new FocusChangedEvent(!hasFocus, hasFocus));\n  }\n  setHasWidgetFocus(hasWidgetFocus) {\n    this._eventDispatcher.emitOutgoingEvent(new WidgetFocusChangedEvent(!hasWidgetFocus, hasWidgetFocus));\n  }\n  onCompositionStart() {\n    this._eventDispatcher.emitSingleViewEvent(new ViewCompositionStartEvent());\n  }\n  onCompositionEnd() {\n    this._eventDispatcher.emitSingleViewEvent(new ViewCompositionEndEvent());\n  }\n  _captureStableViewport() {\n    if (this._viewportStart.isValid \u0026\u0026 this.viewLayout.getCurrentScrollTop() \u003e 0) {\n      const previousViewportStartViewPosition = new Position(this._viewportStart.viewLineNumber, this.getLineMinColumn(this._viewportStart.viewLineNumber));\n      const previousViewportStartModelPosition = this.coordinatesConverter.convertViewPositionToModelPosition(previousViewportStartViewPosition);\n      return new StableViewport(previousViewportStartModelPosition, this._viewportStart.startLineDelta);\n    }\n    return new StableViewport(null, 0);\n  }\n  _onConfigurationChanged(eventsCollector, e) {\n    const stableViewport = this._captureStableViewport();\n    const options2 = this._configuration.options;\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const wrappingStrategy = options2.get(\n      155\n      /* EditorOption.wrappingStrategy */\n    );\n    const wrappingInfo = options2.get(\n      165\n      /* EditorOption.wrappingInfo */\n    );\n    const wrappingIndent = options2.get(\n      154\n      /* EditorOption.wrappingIndent */\n    );\n    const wordBreak = options2.get(\n      145\n      /* EditorOption.wordBreak */\n    );\n    if (this._lines.setWrappingSettings(fontInfo, wrappingStrategy, wrappingInfo.wrappingColumn, wrappingIndent, wordBreak)) {\n      eventsCollector.emitViewEvent(new ViewFlushedEvent());\n      eventsCollector.emitViewEvent(new ViewLineMappingChangedEvent());\n      eventsCollector.emitViewEvent(new ViewDecorationsChangedEvent(null));\n      this._cursor.onLineMappingChanged(eventsCollector);\n      this._decorations.onLineMappingChanged();\n      this.viewLayout.onFlushed(this.getLineCount(), this._getCustomLineHeights());\n      this._updateConfigurationViewLineCount.schedule();\n    }\n    if (e.hasChanged(\n      103\n      /* EditorOption.readOnly */\n    )) {\n      this._decorations.reset();\n      eventsCollector.emitViewEvent(new ViewDecorationsChangedEvent(null));\n    }\n    if (e.hasChanged(\n      111\n      /* EditorOption.renderValidationDecorations */\n    )) {\n      this._decorations.reset();\n      eventsCollector.emitViewEvent(new ViewDecorationsChangedEvent(null));\n    }\n    eventsCollector.emitViewEvent(new ViewConfigurationChangedEvent(e));\n    this.viewLayout.onConfigurationChanged(e);\n    stableViewport.recoverViewportStart(this.coordinatesConverter, this.viewLayout);\n    if (CursorConfiguration.shouldRecreate(e)) {\n      this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n      this._cursor.updateConfiguration(this.cursorConfig);\n    }\n  }\n  _registerModelEvents() {\n    this._register(this.model.onDidChangeContentOrInjectedText((e) =\u003e {\n      try {\n        const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n        let hadOtherModelChange = false;\n        let hadModelLineChangeThatChangedLineMapping = false;\n        const changes = e instanceof InternalModelContentChangeEvent ? e.rawContentChangedEvent.changes : e.changes;\n        const versionId = e instanceof InternalModelContentChangeEvent ? e.rawContentChangedEvent.versionId : null;\n        const lineBreaksComputer = this._lines.createLineBreaksComputer();\n        for (const change of changes) {\n          switch (change.changeType) {\n            case 4: {\n              for (let lineIdx = 0; lineIdx \u003c change.detail.length; lineIdx++) {\n                const line = change.detail[lineIdx];\n                let injectedText = change.injectedTexts[lineIdx];\n                if (injectedText) {\n                  injectedText = injectedText.filter((element) =\u003e !element.ownerId || element.ownerId === this._editorId);\n                }\n                lineBreaksComputer.addRequest(line, injectedText, null);\n              }\n              break;\n            }\n            case 2: {\n              let injectedText = null;\n              if (change.injectedText) {\n                injectedText = change.injectedText.filter((element) =\u003e !element.ownerId || element.ownerId === this._editorId);\n              }\n              lineBreaksComputer.addRequest(change.detail, injectedText, null);\n              break;\n            }\n          }\n        }\n        const lineBreaks = lineBreaksComputer.finalize();\n        const lineBreakQueue = new ArrayQueue(lineBreaks);\n        for (const change of changes) {\n          switch (change.changeType) {\n            case 1: {\n              this._lines.onModelFlushed();\n              eventsCollector.emitViewEvent(new ViewFlushedEvent());\n              this._decorations.reset();\n              this.viewLayout.onFlushed(this.getLineCount(), this._getCustomLineHeights());\n              hadOtherModelChange = true;\n              break;\n            }\n            case 3: {\n              const linesDeletedEvent = this._lines.onModelLinesDeleted(versionId, change.fromLineNumber, change.toLineNumber);\n              if (linesDeletedEvent !== null) {\n                eventsCollector.emitViewEvent(linesDeletedEvent);\n                this.viewLayout.onLinesDeleted(linesDeletedEvent.fromLineNumber, linesDeletedEvent.toLineNumber);\n              }\n              hadOtherModelChange = true;\n              break;\n            }\n            case 4: {\n              const insertedLineBreaks = lineBreakQueue.takeCount(change.detail.length);\n              const linesInsertedEvent = this._lines.onModelLinesInserted(versionId, change.fromLineNumber, change.toLineNumber, insertedLineBreaks);\n              if (linesInsertedEvent !== null) {\n                eventsCollector.emitViewEvent(linesInsertedEvent);\n                this.viewLayout.onLinesInserted(linesInsertedEvent.fromLineNumber, linesInsertedEvent.toLineNumber);\n              }\n              hadOtherModelChange = true;\n              break;\n            }\n            case 2: {\n              const changedLineBreakData = lineBreakQueue.dequeue();\n              const [lineMappingChanged, linesChangedEvent, linesInsertedEvent, linesDeletedEvent] = this._lines.onModelLineChanged(versionId, change.lineNumber, changedLineBreakData);\n              hadModelLineChangeThatChangedLineMapping = lineMappingChanged;\n              if (linesChangedEvent) {\n                eventsCollector.emitViewEvent(linesChangedEvent);\n              }\n              if (linesInsertedEvent) {\n                eventsCollector.emitViewEvent(linesInsertedEvent);\n                this.viewLayout.onLinesInserted(linesInsertedEvent.fromLineNumber, linesInsertedEvent.toLineNumber);\n              }\n              if (linesDeletedEvent) {\n                eventsCollector.emitViewEvent(linesDeletedEvent);\n                this.viewLayout.onLinesDeleted(linesDeletedEvent.fromLineNumber, linesDeletedEvent.toLineNumber);\n              }\n              break;\n            }\n            case 5: {\n              break;\n            }\n          }\n        }\n        if (versionId !== null) {\n          this._lines.acceptVersionId(versionId);\n        }\n        this.viewLayout.onHeightMaybeChanged();\n        if (!hadOtherModelChange \u0026\u0026 hadModelLineChangeThatChangedLineMapping) {\n          eventsCollector.emitViewEvent(new ViewLineMappingChangedEvent());\n          eventsCollector.emitViewEvent(new ViewDecorationsChangedEvent(null));\n          this._cursor.onLineMappingChanged(eventsCollector);\n          this._decorations.onLineMappingChanged();\n        }\n      } finally {\n        this._eventDispatcher.endEmitViewEvents();\n      }\n      const viewportStartWasValid = this._viewportStart.isValid;\n      this._viewportStart.invalidate();\n      this._configuration.setModelLineCount(this.model.getLineCount());\n      this._updateConfigurationViewLineCountNow();\n      if (!this._hasFocus \u0026\u0026 this.model.getAttachedEditorCount() \u003e= 2 \u0026\u0026 viewportStartWasValid) {\n        const modelRange = this.model._getTrackedRange(this._viewportStart.modelTrackedRange);\n        if (modelRange) {\n          const viewPosition = this.coordinatesConverter.convertModelPositionToViewPosition(modelRange.getStartPosition());\n          const viewPositionTop = this.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber);\n          this.viewLayout.setScrollPosition(\n            { scrollTop: viewPositionTop + this._viewportStart.startLineDelta },\n            1\n            /* ScrollType.Immediate */\n          );\n        }\n      }\n      try {\n        const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n        if (e instanceof InternalModelContentChangeEvent) {\n          eventsCollector.emitOutgoingEvent(new ModelContentChangedEvent(e.contentChangedEvent));\n        }\n        this._cursor.onModelContentChanged(eventsCollector, e);\n      } finally {\n        this._eventDispatcher.endEmitViewEvents();\n      }\n      this._handleVisibleLinesChanged();\n    }));\n    const allowVariableLineHeights = this._configuration.options.get(\n      5\n      /* EditorOption.allowVariableLineHeights */\n    );\n    if (allowVariableLineHeights) {\n      this._register(this.model.onDidChangeLineHeight((e) =\u003e {\n        const filteredChanges = e.changes.filter((change) =\u003e change.ownerId === this._editorId || change.ownerId === 0);\n        this.viewLayout.changeSpecialLineHeights((accessor) =\u003e {\n          for (const change of filteredChanges) {\n            const { decorationId, lineNumber, lineHeight } = change;\n            const viewRange = this.coordinatesConverter.convertModelRangeToViewRange(new Range(lineNumber, 1, lineNumber, this.model.getLineMaxColumn(lineNumber)));\n            if (lineHeight !== null) {\n              accessor.insertOrChangeCustomLineHeight(decorationId, viewRange.startLineNumber, viewRange.endLineNumber, lineHeight);\n            } else {\n              accessor.removeCustomLineHeight(decorationId);\n            }\n          }\n        });\n        if (filteredChanges.length \u003e 0) {\n          const filteredEvent = new ModelLineHeightChangedEvent(filteredChanges);\n          this._eventDispatcher.emitOutgoingEvent(new ModelLineHeightChangedEvent2(filteredEvent));\n        }\n      }));\n    }\n    const allowVariableFonts = this._configuration.options.get(\n      171\n      /* EditorOption.effectiveAllowVariableFonts */\n    );\n    if (allowVariableFonts) {\n      this._register(this.model.onDidChangeFont((e) =\u003e {\n        const filteredChanges = e.changes.filter((change) =\u003e change.ownerId === this._editorId || change.ownerId === 0);\n        if (filteredChanges.length \u003e 0) {\n          const filteredEvent = new ModelFontChangedEvent(filteredChanges);\n          this._eventDispatcher.emitOutgoingEvent(new ModelFontChangedEvent2(filteredEvent));\n        }\n      }));\n    }\n    this._register(this.model.onDidChangeTokens((e) =\u003e {\n      const viewRanges = [];\n      for (let j = 0, lenJ = e.ranges.length; j \u003c lenJ; j++) {\n        const modelRange = e.ranges[j];\n        const viewStartLineNumber = this.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.fromLineNumber, 1)).lineNumber;\n        const viewEndLineNumber = this.coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.toLineNumber, this.model.getLineMaxColumn(modelRange.toLineNumber))).lineNumber;\n        viewRanges[j] = {\n          fromLineNumber: viewStartLineNumber,\n          toLineNumber: viewEndLineNumber\n        };\n      }\n      this._eventDispatcher.emitSingleViewEvent(new ViewTokensChangedEvent(viewRanges));\n      this._eventDispatcher.emitOutgoingEvent(new ModelTokensChangedEvent(e));\n    }));\n    this._register(this.model.onDidChangeLanguageConfiguration((e) =\u003e {\n      this._eventDispatcher.emitSingleViewEvent(new ViewLanguageConfigurationEvent());\n      this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n      this._cursor.updateConfiguration(this.cursorConfig);\n      this._eventDispatcher.emitOutgoingEvent(new ModelLanguageConfigurationChangedEvent(e));\n    }));\n    this._register(this.model.onDidChangeLanguage((e) =\u003e {\n      this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n      this._cursor.updateConfiguration(this.cursorConfig);\n      this._eventDispatcher.emitOutgoingEvent(new ModelLanguageChangedEvent(e));\n    }));\n    this._register(this.model.onDidChangeOptions((e) =\u003e {\n      if (this._lines.setTabSize(this.model.getOptions().tabSize)) {\n        try {\n          const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n          eventsCollector.emitViewEvent(new ViewFlushedEvent());\n          eventsCollector.emitViewEvent(new ViewLineMappingChangedEvent());\n          eventsCollector.emitViewEvent(new ViewDecorationsChangedEvent(null));\n          this._cursor.onLineMappingChanged(eventsCollector);\n          this._decorations.onLineMappingChanged();\n          this.viewLayout.onFlushed(this.getLineCount(), this._getCustomLineHeights());\n        } finally {\n          this._eventDispatcher.endEmitViewEvents();\n        }\n        this._updateConfigurationViewLineCount.schedule();\n      }\n      this.cursorConfig = new CursorConfiguration(this.model.getLanguageId(), this.model.getOptions(), this._configuration, this.languageConfigurationService);\n      this._cursor.updateConfiguration(this.cursorConfig);\n      this._eventDispatcher.emitOutgoingEvent(new ModelOptionsChangedEvent(e));\n    }));\n    this._register(this.model.onDidChangeDecorations((e) =\u003e {\n      this._decorations.onModelDecorationsChanged();\n      this._eventDispatcher.emitSingleViewEvent(new ViewDecorationsChangedEvent(e));\n      this._eventDispatcher.emitOutgoingEvent(new ModelDecorationsChangedEvent(e));\n    }));\n  }\n  getFontSizeAtPosition(position) {\n    const allowVariableFonts = this._configuration.options.get(\n      171\n      /* EditorOption.effectiveAllowVariableFonts */\n    );\n    if (!allowVariableFonts) {\n      return null;\n    }\n    const fontDecorations = this.model.getFontDecorationsInRange(Range.fromPositions(position), this._editorId);\n    let fontSize = this._configuration.options.get(\n      59\n      /* EditorOption.fontInfo */\n    ).fontSize + \"px\";\n    for (const fontDecoration of fontDecorations) {\n      if (fontDecoration.options.fontSize) {\n        fontSize = fontDecoration.options.fontSize;\n        break;\n      }\n    }\n    return fontSize;\n  }\n  /**\n   * @param forceUpdate If true, the hidden areas will be updated even if the new ranges are the same as the previous ranges.\n   * This is because the model might have changed, which resets the hidden areas, but not the last cached value.\n   * This needs a better fix in the future.\n  */\n  setHiddenAreas(ranges, source, forceUpdate) {\n    this.hiddenAreasModel.setHiddenAreas(source, ranges);\n    const mergedRanges = this.hiddenAreasModel.getMergedRanges();\n    if (mergedRanges === this.previousHiddenAreas \u0026\u0026 !forceUpdate) {\n      return;\n    }\n    this.previousHiddenAreas = mergedRanges;\n    const stableViewport = this._captureStableViewport();\n    let lineMappingChanged = false;\n    try {\n      const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n      lineMappingChanged = this._lines.setHiddenAreas(mergedRanges);\n      if (lineMappingChanged) {\n        eventsCollector.emitViewEvent(new ViewFlushedEvent());\n        eventsCollector.emitViewEvent(new ViewLineMappingChangedEvent());\n        eventsCollector.emitViewEvent(new ViewDecorationsChangedEvent(null));\n        this._cursor.onLineMappingChanged(eventsCollector);\n        this._decorations.onLineMappingChanged();\n        this.viewLayout.onFlushed(this.getLineCount(), this._getCustomLineHeights());\n        this.viewLayout.onHeightMaybeChanged();\n      }\n      const firstModelLineInViewPort = stableViewport.viewportStartModelPosition?.lineNumber;\n      const firstModelLineIsHidden = firstModelLineInViewPort \u0026\u0026 mergedRanges.some((range2) =\u003e range2.startLineNumber \u003c= firstModelLineInViewPort \u0026\u0026 firstModelLineInViewPort \u003c= range2.endLineNumber);\n      if (!firstModelLineIsHidden) {\n        stableViewport.recoverViewportStart(this.coordinatesConverter, this.viewLayout);\n      }\n    } finally {\n      this._eventDispatcher.endEmitViewEvents();\n    }\n    this._updateConfigurationViewLineCount.schedule();\n    if (lineMappingChanged) {\n      this._eventDispatcher.emitOutgoingEvent(new HiddenAreasChangedEvent());\n    }\n  }\n  getVisibleRangesPlusViewportAboveBelow() {\n    const layoutInfo = this._configuration.options.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const lineHeight = this._configuration.options.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const linesAround = Math.max(20, Math.round(layoutInfo.height / lineHeight));\n    const partialData = this.viewLayout.getLinesViewportData();\n    const startViewLineNumber = Math.max(1, partialData.completelyVisibleStartLineNumber - linesAround);\n    const endViewLineNumber = Math.min(this.getLineCount(), partialData.completelyVisibleEndLineNumber + linesAround);\n    return this._toModelVisibleRanges(new Range(startViewLineNumber, this.getLineMinColumn(startViewLineNumber), endViewLineNumber, this.getLineMaxColumn(endViewLineNumber)));\n  }\n  getVisibleRanges() {\n    const visibleViewRange = this.getCompletelyVisibleViewRange();\n    return this._toModelVisibleRanges(visibleViewRange);\n  }\n  getHiddenAreas() {\n    return this._lines.getHiddenAreas();\n  }\n  _toModelVisibleRanges(visibleViewRange) {\n    const visibleRange = this.coordinatesConverter.convertViewRangeToModelRange(visibleViewRange);\n    const hiddenAreas = this._lines.getHiddenAreas();\n    if (hiddenAreas.length === 0) {\n      return [visibleRange];\n    }\n    const result = [];\n    let resultLen = 0;\n    let startLineNumber = visibleRange.startLineNumber;\n    let startColumn = visibleRange.startColumn;\n    const endLineNumber = visibleRange.endLineNumber;\n    const endColumn = visibleRange.endColumn;\n    for (let i2 = 0, len = hiddenAreas.length; i2 \u003c len; i2++) {\n      const hiddenStartLineNumber = hiddenAreas[i2].startLineNumber;\n      const hiddenEndLineNumber = hiddenAreas[i2].endLineNumber;\n      if (hiddenEndLineNumber \u003c startLineNumber) {\n        continue;\n      }\n      if (hiddenStartLineNumber \u003e endLineNumber) {\n        continue;\n      }\n      if (startLineNumber \u003c hiddenStartLineNumber) {\n        result[resultLen++] = new Range(startLineNumber, startColumn, hiddenStartLineNumber - 1, this.model.getLineMaxColumn(hiddenStartLineNumber - 1));\n      }\n      startLineNumber = hiddenEndLineNumber + 1;\n      startColumn = 1;\n    }\n    if (startLineNumber \u003c endLineNumber || startLineNumber === endLineNumber \u0026\u0026 startColumn \u003c endColumn) {\n      result[resultLen++] = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n    }\n    return result;\n  }\n  getCompletelyVisibleViewRange() {\n    const partialData = this.viewLayout.getLinesViewportData();\n    const startViewLineNumber = partialData.completelyVisibleStartLineNumber;\n    const endViewLineNumber = partialData.completelyVisibleEndLineNumber;\n    return new Range(startViewLineNumber, this.getLineMinColumn(startViewLineNumber), endViewLineNumber, this.getLineMaxColumn(endViewLineNumber));\n  }\n  getCompletelyVisibleViewRangeAtScrollTop(scrollTop) {\n    const partialData = this.viewLayout.getLinesViewportDataAtScrollTop(scrollTop);\n    const startViewLineNumber = partialData.completelyVisibleStartLineNumber;\n    const endViewLineNumber = partialData.completelyVisibleEndLineNumber;\n    return new Range(startViewLineNumber, this.getLineMinColumn(startViewLineNumber), endViewLineNumber, this.getLineMaxColumn(endViewLineNumber));\n  }\n  saveState() {\n    const compatViewState = this.viewLayout.saveState();\n    const scrollTop = compatViewState.scrollTop;\n    const firstViewLineNumber = this.viewLayout.getLineNumberAtVerticalOffset(scrollTop);\n    const firstPosition = this.coordinatesConverter.convertViewPositionToModelPosition(new Position(firstViewLineNumber, this.getLineMinColumn(firstViewLineNumber)));\n    const firstPositionDeltaTop = this.viewLayout.getVerticalOffsetForLineNumber(firstViewLineNumber) - scrollTop;\n    return {\n      scrollLeft: compatViewState.scrollLeft,\n      firstPosition,\n      firstPositionDeltaTop\n    };\n  }\n  reduceRestoreState(state) {\n    if (typeof state.firstPosition === \"undefined\") {\n      return this._reduceRestoreStateCompatibility(state);\n    }\n    const modelPosition = this.model.validatePosition(state.firstPosition);\n    const viewPosition = this.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);\n    const scrollTop = this.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber) - state.firstPositionDeltaTop;\n    return {\n      scrollLeft: state.scrollLeft,\n      scrollTop\n    };\n  }\n  _reduceRestoreStateCompatibility(state) {\n    return {\n      scrollLeft: state.scrollLeft,\n      scrollTop: state.scrollTopWithoutViewZones\n    };\n  }\n  getTabSize() {\n    return this.model.getOptions().tabSize;\n  }\n  getLineCount() {\n    return this._lines.getViewLineCount();\n  }\n  /**\n   * Gives a hint that a lot of requests are about to come in for these line numbers.\n   */\n  setViewport(startLineNumber, endLineNumber, centeredLineNumber) {\n    this._viewportStart.update(this, startLineNumber);\n  }\n  getActiveIndentGuide(lineNumber, minLineNumber, maxLineNumber) {\n    return this._lines.getActiveIndentGuide(lineNumber, minLineNumber, maxLineNumber);\n  }\n  getLinesIndentGuides(startLineNumber, endLineNumber) {\n    return this._lines.getViewLinesIndentGuides(startLineNumber, endLineNumber);\n  }\n  getBracketGuidesInRangeByLine(startLineNumber, endLineNumber, activePosition, options2) {\n    return this._lines.getViewLinesBracketGuides(startLineNumber, endLineNumber, activePosition, options2);\n  }\n  getLineContent(lineNumber) {\n    return this._lines.getViewLineContent(lineNumber);\n  }\n  getLineLength(lineNumber) {\n    return this._lines.getViewLineLength(lineNumber);\n  }\n  getLineMinColumn(lineNumber) {\n    return this._lines.getViewLineMinColumn(lineNumber);\n  }\n  getLineMaxColumn(lineNumber) {\n    return this._lines.getViewLineMaxColumn(lineNumber);\n  }\n  getLineFirstNonWhitespaceColumn(lineNumber) {\n    const result = firstNonWhitespaceIndex(this.getLineContent(lineNumber));\n    if (result === -1) {\n      return 0;\n    }\n    return result + 1;\n  }\n  getLineLastNonWhitespaceColumn(lineNumber) {\n    const result = lastNonWhitespaceIndex(this.getLineContent(lineNumber));\n    if (result === -1) {\n      return 0;\n    }\n    return result + 2;\n  }\n  getMinimapDecorationsInRange(range2) {\n    return this._decorations.getMinimapDecorationsInRange(range2);\n  }\n  getDecorationsInViewport(visibleRange) {\n    return this._decorations.getDecorationsViewportData(visibleRange).decorations;\n  }\n  getInjectedTextAt(viewPosition) {\n    return this._lines.getInjectedTextAt(viewPosition);\n  }\n  _getTextDirection(lineNumber, decorations) {\n    let rtlCount = 0;\n    for (const decoration3 of decorations) {\n      const range2 = decoration3.range;\n      if (range2.startLineNumber \u003e lineNumber || range2.endLineNumber \u003c lineNumber) {\n        continue;\n      }\n      const textDirection = decoration3.options.textDirection;\n      if (textDirection === TextDirection.RTL) {\n        rtlCount++;\n      } else if (textDirection === TextDirection.LTR) {\n        rtlCount--;\n      }\n    }\n    return rtlCount \u003e 0 ? TextDirection.RTL : TextDirection.LTR;\n  }\n  getTextDirection(lineNumber) {\n    const decorationsCollection = this._decorations.getDecorationsOnLine(lineNumber);\n    return this._getTextDirection(lineNumber, decorationsCollection.decorations);\n  }\n  getViewportViewLineRenderingData(visibleRange, lineNumber) {\n    const viewportDecorationsCollection = this._decorations.getDecorationsViewportData(visibleRange);\n    const inlineDecorations = viewportDecorationsCollection.inlineDecorations[lineNumber - visibleRange.startLineNumber];\n    return this._getViewLineRenderingData(lineNumber, inlineDecorations, viewportDecorationsCollection.hasVariableFonts, viewportDecorationsCollection.decorations);\n  }\n  getViewLineRenderingData(lineNumber) {\n    const decorationsCollection = this._decorations.getDecorationsOnLine(lineNumber);\n    return this._getViewLineRenderingData(lineNumber, decorationsCollection.inlineDecorations[0], decorationsCollection.hasVariableFonts, decorationsCollection.decorations);\n  }\n  _getViewLineRenderingData(lineNumber, inlineDecorations, hasVariableFonts, decorations) {\n    const mightContainRTL = this.model.mightContainRTL();\n    const mightContainNonBasicASCII = this.model.mightContainNonBasicASCII();\n    const tabSize = this.getTabSize();\n    const lineData = this._lines.getViewLineData(lineNumber);\n    if (lineData.inlineDecorations) {\n      inlineDecorations = [\n        ...inlineDecorations,\n        ...lineData.inlineDecorations.map((d) =\u003e d.toInlineDecoration(lineNumber))\n      ];\n    }\n    return new ViewLineRenderingData(lineData.minColumn, lineData.maxColumn, lineData.content, lineData.continuesWithWrappedLine, mightContainRTL, mightContainNonBasicASCII, lineData.tokens, inlineDecorations, tabSize, lineData.startVisibleColumn, this._getTextDirection(lineNumber, decorations), hasVariableFonts);\n  }\n  getViewLineData(lineNumber) {\n    return this._lines.getViewLineData(lineNumber);\n  }\n  getMinimapLinesRenderingData(startLineNumber, endLineNumber, needed) {\n    const result = this._lines.getViewLinesData(startLineNumber, endLineNumber, needed);\n    return new MinimapLinesRenderingData(this.getTabSize(), result);\n  }\n  getAllOverviewRulerDecorations(theme) {\n    const decorations = this.model.getOverviewRulerDecorations(this._editorId, filterValidationDecorations(this._configuration.options), filterFontDecorations(this._configuration.options));\n    const result = new OverviewRulerDecorations();\n    for (const decoration3 of decorations) {\n      const decorationOptions = decoration3.options;\n      const opts = decorationOptions.overviewRuler;\n      if (!opts) {\n        continue;\n      }\n      const lane = opts.position;\n      if (lane === 0) {\n        continue;\n      }\n      const color = opts.getColor(theme.value);\n      const viewStartLineNumber = this.coordinatesConverter.getViewLineNumberOfModelPosition(decoration3.range.startLineNumber, decoration3.range.startColumn);\n      const viewEndLineNumber = this.coordinatesConverter.getViewLineNumberOfModelPosition(decoration3.range.endLineNumber, decoration3.range.endColumn);\n      result.accept(color, decorationOptions.zIndex, viewStartLineNumber, viewEndLineNumber, lane);\n    }\n    return result.asArray;\n  }\n  _invalidateDecorationsColorCache() {\n    const decorations = this.model.getOverviewRulerDecorations();\n    for (const decoration3 of decorations) {\n      const opts1 = decoration3.options.overviewRuler;\n      opts1?.invalidateCachedColor();\n      const opts2 = decoration3.options.minimap;\n      opts2?.invalidateCachedColor();\n    }\n  }\n  getValueInRange(range2, eol) {\n    const modelRange = this.coordinatesConverter.convertViewRangeToModelRange(range2);\n    return this.model.getValueInRange(modelRange, eol);\n  }\n  getValueLengthInRange(range2, eol) {\n    const modelRange = this.coordinatesConverter.convertViewRangeToModelRange(range2);\n    return this.model.getValueLengthInRange(modelRange, eol);\n  }\n  modifyPosition(position, offset) {\n    const modelPosition = this.coordinatesConverter.convertViewPositionToModelPosition(position);\n    const resultModelPosition = this.model.modifyPosition(modelPosition, offset);\n    return this.coordinatesConverter.convertModelPositionToViewPosition(resultModelPosition);\n  }\n  deduceModelPositionRelativeToViewPosition(viewAnchorPosition, deltaOffset, lineFeedCnt) {\n    const modelAnchor = this.coordinatesConverter.convertViewPositionToModelPosition(viewAnchorPosition);\n    if (this.model.getEOL().length === 2) {\n      if (deltaOffset \u003c 0) {\n        deltaOffset -= lineFeedCnt;\n      } else {\n        deltaOffset += lineFeedCnt;\n      }\n    }\n    const modelAnchorOffset = this.model.getOffsetAt(modelAnchor);\n    const resultOffset = modelAnchorOffset + deltaOffset;\n    return this.model.getPositionAt(resultOffset);\n  }\n  getPlainTextToCopy(modelRanges, emptySelectionClipboard, forceCRLF) {\n    const newLineCharacter = forceCRLF ? \"\\r\\n\" : this.model.getEOL();\n    modelRanges = modelRanges.slice(0);\n    modelRanges.sort(Range.compareRangesUsingStarts);\n    let hasEmptyRange = false;\n    let hasNonEmptyRange = false;\n    for (const range2 of modelRanges) {\n      if (range2.isEmpty()) {\n        hasEmptyRange = true;\n      } else {\n        hasNonEmptyRange = true;\n      }\n    }\n    if (!hasNonEmptyRange) {\n      if (!emptySelectionClipboard) {\n        return \"\";\n      }\n      const modelLineNumbers = modelRanges.map((r) =\u003e r.startLineNumber);\n      let result2 = \"\";\n      for (let i2 = 0; i2 \u003c modelLineNumbers.length; i2++) {\n        if (i2 \u003e 0 \u0026\u0026 modelLineNumbers[i2 - 1] === modelLineNumbers[i2]) {\n          continue;\n        }\n        result2 += this.model.getLineContent(modelLineNumbers[i2]) + newLineCharacter;\n      }\n      return result2;\n    }\n    if (hasEmptyRange \u0026\u0026 emptySelectionClipboard) {\n      const result2 = [];\n      let prevModelLineNumber = 0;\n      for (const modelRange of modelRanges) {\n        const modelLineNumber = modelRange.startLineNumber;\n        if (modelRange.isEmpty()) {\n          if (modelLineNumber !== prevModelLineNumber) {\n            result2.push(this.model.getLineContent(modelLineNumber));\n          }\n        } else {\n          result2.push(this.model.getValueInRange(\n            modelRange,\n            forceCRLF ? 2 : 0\n            /* EndOfLinePreference.TextDefined */\n          ));\n        }\n        prevModelLineNumber = modelLineNumber;\n      }\n      return result2.length === 1 ? result2[0] : result2;\n    }\n    const result = [];\n    for (const modelRange of modelRanges) {\n      if (!modelRange.isEmpty()) {\n        result.push(this.model.getValueInRange(\n          modelRange,\n          forceCRLF ? 2 : 0\n          /* EndOfLinePreference.TextDefined */\n        ));\n      }\n    }\n    return result.length === 1 ? result[0] : result;\n  }\n  getRichTextToCopy(modelRanges, emptySelectionClipboard) {\n    const languageId = this.model.getLanguageId();\n    if (languageId === PLAINTEXT_LANGUAGE_ID) {\n      return null;\n    }\n    if (modelRanges.length !== 1) {\n      return null;\n    }\n    let range2 = modelRanges[0];\n    if (range2.isEmpty()) {\n      if (!emptySelectionClipboard) {\n        return null;\n      }\n      const lineNumber = range2.startLineNumber;\n      range2 = new Range(lineNumber, this.model.getLineMinColumn(lineNumber), lineNumber, this.model.getLineMaxColumn(lineNumber));\n    }\n    const fontInfo = this._configuration.options.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const colorMap = this._getColorMap();\n    const hasBadChars = /[:;\\\\\\/\u003c\u003e]/.test(fontInfo.fontFamily);\n    const useDefaultFontFamily = hasBadChars || fontInfo.fontFamily === EDITOR_FONT_DEFAULTS.fontFamily;\n    let fontFamily;\n    if (useDefaultFontFamily) {\n      fontFamily = EDITOR_FONT_DEFAULTS.fontFamily;\n    } else {\n      fontFamily = fontInfo.fontFamily;\n      fontFamily = fontFamily.replace(/\"/g, \"'\");\n      const hasQuotesOrIsList = /[,']/.test(fontFamily);\n      if (!hasQuotesOrIsList) {\n        const needsQuotes = /[+ ]/.test(fontFamily);\n        if (needsQuotes) {\n          fontFamily = `'${fontFamily}'`;\n        }\n      }\n      fontFamily = `${fontFamily}, ${EDITOR_FONT_DEFAULTS.fontFamily}`;\n    }\n    return {\n      mode: languageId,\n      html: `\u003cdiv style=\"color: ${colorMap[\n        1\n        /* ColorId.DefaultForeground */\n      ]};background-color: ${colorMap[\n        2\n        /* ColorId.DefaultBackground */\n      ]};font-family: ${fontFamily};font-weight: ${fontInfo.fontWeight};font-size: ${fontInfo.fontSize}px;line-height: ${fontInfo.lineHeight}px;white-space: pre;\"\u003e` + this._getHTMLToCopy(range2, colorMap) + \"\u003c/div\u003e\"\n    };\n  }\n  _getHTMLToCopy(modelRange, colorMap) {\n    const startLineNumber = modelRange.startLineNumber;\n    const startColumn = modelRange.startColumn;\n    const endLineNumber = modelRange.endLineNumber;\n    const endColumn = modelRange.endColumn;\n    const tabSize = this.getTabSize();\n    let result = \"\";\n    for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n      const lineTokens = this.model.tokenization.getLineTokens(lineNumber);\n      const lineContent = lineTokens.getLineContent();\n      const startOffset = lineNumber === startLineNumber ? startColumn - 1 : 0;\n      const endOffset = lineNumber === endLineNumber ? endColumn - 1 : lineContent.length;\n      if (lineContent === \"\") {\n        result += \"\u003cbr\u003e\";\n      } else {\n        result += tokenizeLineToHTML(lineContent, lineTokens.inflate(), colorMap, startOffset, endOffset, tabSize, isWindows);\n      }\n    }\n    return result;\n  }\n  _getColorMap() {\n    const colorMap = TokenizationRegistry2.getColorMap();\n    const result = [\"#000000\"];\n    if (colorMap) {\n      for (let i2 = 1, len = colorMap.length; i2 \u003c len; i2++) {\n        result[i2] = Color.Format.CSS.formatHex(colorMap[i2]);\n      }\n    }\n    return result;\n  }\n  //#region cursor operations\n  getPrimaryCursorState() {\n    return this._cursor.getPrimaryCursorState();\n  }\n  getLastAddedCursorIndex() {\n    return this._cursor.getLastAddedCursorIndex();\n  }\n  getCursorStates() {\n    return this._cursor.getCursorStates();\n  }\n  setCursorStates(source, reason, states) {\n    return this._withViewEventsCollector((eventsCollector) =\u003e this._cursor.setStates(eventsCollector, source, reason, states));\n  }\n  getCursorColumnSelectData() {\n    return this._cursor.getCursorColumnSelectData();\n  }\n  getCursorAutoClosedCharacters() {\n    return this._cursor.getAutoClosedCharacters();\n  }\n  setCursorColumnSelectData(columnSelectData) {\n    this._cursor.setCursorColumnSelectData(columnSelectData);\n  }\n  getPrevEditOperationType() {\n    return this._cursor.getPrevEditOperationType();\n  }\n  setPrevEditOperationType(type) {\n    this._cursor.setPrevEditOperationType(type);\n  }\n  getSelection() {\n    return this._cursor.getSelection();\n  }\n  getSelections() {\n    return this._cursor.getSelections();\n  }\n  getPosition() {\n    return this._cursor.getPrimaryCursorState().modelState.position;\n  }\n  setSelections(source, selections, reason = 0) {\n    this._withViewEventsCollector((eventsCollector) =\u003e this._cursor.setSelections(eventsCollector, source, selections, reason));\n  }\n  saveCursorState() {\n    return this._cursor.saveState();\n  }\n  restoreCursorState(states) {\n    this._withViewEventsCollector((eventsCollector) =\u003e this._cursor.restoreState(eventsCollector, states));\n  }\n  _executeCursorEdit(callback) {\n    if (this._cursor.context.cursorConfig.readOnly) {\n      this._eventDispatcher.emitOutgoingEvent(new ReadOnlyEditAttemptEvent());\n      return;\n    }\n    this._withViewEventsCollector(callback);\n  }\n  executeEdits(source, edits, cursorStateComputer, reason) {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.executeEdits(eventsCollector, source, edits, cursorStateComputer, reason));\n  }\n  startComposition() {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.startComposition(eventsCollector));\n  }\n  endComposition(source) {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.endComposition(eventsCollector, source));\n  }\n  type(text2, source) {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.type(eventsCollector, text2, source));\n  }\n  compositionType(text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta, source) {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.compositionType(eventsCollector, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta, source));\n  }\n  paste(text2, pasteOnNewLine, multicursorText, source) {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.paste(eventsCollector, text2, pasteOnNewLine, multicursorText, source));\n  }\n  cut(source) {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.cut(eventsCollector, source));\n  }\n  executeCommand(command, source) {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.executeCommand(eventsCollector, command, source));\n  }\n  executeCommands(commands, source) {\n    this._executeCursorEdit((eventsCollector) =\u003e this._cursor.executeCommands(eventsCollector, commands, source));\n  }\n  revealAllCursors(source, revealHorizontal, minimalReveal = false) {\n    this._withViewEventsCollector((eventsCollector) =\u003e this._cursor.revealAll(\n      eventsCollector,\n      source,\n      minimalReveal,\n      0,\n      revealHorizontal,\n      0\n      /* ScrollType.Smooth */\n    ));\n  }\n  revealPrimaryCursor(source, revealHorizontal, minimalReveal = false) {\n    this._withViewEventsCollector((eventsCollector) =\u003e this._cursor.revealPrimary(\n      eventsCollector,\n      source,\n      minimalReveal,\n      0,\n      revealHorizontal,\n      0\n      /* ScrollType.Smooth */\n    ));\n  }\n  revealTopMostCursor(source) {\n    const viewPosition = this._cursor.getTopMostViewPosition();\n    const viewRange = new Range(viewPosition.lineNumber, viewPosition.column, viewPosition.lineNumber, viewPosition.column);\n    this._withViewEventsCollector((eventsCollector) =\u003e eventsCollector.emitViewEvent(new ViewRevealRangeRequestEvent(\n      source,\n      false,\n      viewRange,\n      null,\n      0,\n      true,\n      0\n      /* ScrollType.Smooth */\n    )));\n  }\n  revealBottomMostCursor(source) {\n    const viewPosition = this._cursor.getBottomMostViewPosition();\n    const viewRange = new Range(viewPosition.lineNumber, viewPosition.column, viewPosition.lineNumber, viewPosition.column);\n    this._withViewEventsCollector((eventsCollector) =\u003e eventsCollector.emitViewEvent(new ViewRevealRangeRequestEvent(\n      source,\n      false,\n      viewRange,\n      null,\n      0,\n      true,\n      0\n      /* ScrollType.Smooth */\n    )));\n  }\n  revealRange(source, revealHorizontal, viewRange, verticalType, scrollType) {\n    this._withViewEventsCollector((eventsCollector) =\u003e eventsCollector.emitViewEvent(new ViewRevealRangeRequestEvent(source, false, viewRange, null, verticalType, revealHorizontal, scrollType)));\n  }\n  //#endregion\n  //#region viewLayout\n  changeWhitespace(callback) {\n    const hadAChange = this.viewLayout.changeWhitespace(callback);\n    if (hadAChange) {\n      this._eventDispatcher.emitSingleViewEvent(new ViewZonesChangedEvent());\n      this._eventDispatcher.emitOutgoingEvent(new ViewZonesChangedEvent2());\n    }\n  }\n  //#endregion\n  _withViewEventsCollector(callback) {\n    return this._transactionalTarget.batchChanges(() =\u003e {\n      try {\n        const eventsCollector = this._eventDispatcher.beginEmitViewEvents();\n        return callback(eventsCollector);\n      } finally {\n        this._eventDispatcher.endEmitViewEvents();\n      }\n    });\n  }\n  batchEvents(callback) {\n    this._withViewEventsCollector(() =\u003e {\n      callback();\n    });\n  }\n  normalizePosition(position, affinity) {\n    return this._lines.normalizePosition(position, affinity);\n  }\n  /**\n   * Gets the column at which indentation stops at a given line.\n   * @internal\n  */\n  getLineIndentColumn(lineNumber) {\n    return this._lines.getLineIndentColumn(lineNumber);\n  }\n};\nvar ViewportStart = class _ViewportStart {\n  static create(model) {\n    const viewportStartLineTrackedRange = model._setTrackedRange(\n      null,\n      new Range(1, 1, 1, 1),\n      1\n      /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n    );\n    return new _ViewportStart(model, 1, false, viewportStartLineTrackedRange, 0);\n  }\n  get viewLineNumber() {\n    return this._viewLineNumber;\n  }\n  get isValid() {\n    return this._isValid;\n  }\n  get modelTrackedRange() {\n    return this._modelTrackedRange;\n  }\n  get startLineDelta() {\n    return this._startLineDelta;\n  }\n  constructor(_model, _viewLineNumber, _isValid, _modelTrackedRange, _startLineDelta) {\n    this._model = _model;\n    this._viewLineNumber = _viewLineNumber;\n    this._isValid = _isValid;\n    this._modelTrackedRange = _modelTrackedRange;\n    this._startLineDelta = _startLineDelta;\n  }\n  dispose() {\n    this._model._setTrackedRange(\n      this._modelTrackedRange,\n      null,\n      1\n      /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n    );\n  }\n  update(viewModel, startLineNumber) {\n    const position = viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position(startLineNumber, viewModel.getLineMinColumn(startLineNumber)));\n    const viewportStartLineTrackedRange = viewModel.model._setTrackedRange(\n      this._modelTrackedRange,\n      new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n      1\n      /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n    );\n    const viewportStartLineTop = viewModel.viewLayout.getVerticalOffsetForLineNumber(startLineNumber);\n    const scrollTop = viewModel.viewLayout.getCurrentScrollTop();\n    this._viewLineNumber = startLineNumber;\n    this._isValid = true;\n    this._modelTrackedRange = viewportStartLineTrackedRange;\n    this._startLineDelta = scrollTop - viewportStartLineTop;\n  }\n  invalidate() {\n    this._isValid = false;\n  }\n};\nvar OverviewRulerDecorations = class {\n  constructor() {\n    this._asMap = /* @__PURE__ */ Object.create(null);\n    this.asArray = [];\n  }\n  accept(color, zIndex, startLineNumber, endLineNumber, lane) {\n    const prevGroup = this._asMap[color];\n    if (prevGroup) {\n      const prevData = prevGroup.data;\n      const prevLane = prevData[prevData.length - 3];\n      const prevEndLineNumber = prevData[prevData.length - 1];\n      if (prevLane === lane \u0026\u0026 prevEndLineNumber + 1 \u003e= startLineNumber) {\n        if (endLineNumber \u003e prevEndLineNumber) {\n          prevData[prevData.length - 1] = endLineNumber;\n        }\n        return;\n      }\n      prevData.push(lane, startLineNumber, endLineNumber);\n    } else {\n      const group = new OverviewRulerDecorationsGroup(color, zIndex, [lane, startLineNumber, endLineNumber]);\n      this._asMap[color] = group;\n      this.asArray.push(group);\n    }\n  }\n};\nvar HiddenAreasModel = class {\n  constructor() {\n    this.hiddenAreas = /* @__PURE__ */ new Map();\n    this.shouldRecompute = false;\n    this.ranges = [];\n  }\n  setHiddenAreas(source, ranges) {\n    const existing = this.hiddenAreas.get(source);\n    if (existing \u0026\u0026 rangeArraysEqual(existing, ranges)) {\n      return;\n    }\n    this.hiddenAreas.set(source, ranges);\n    this.shouldRecompute = true;\n  }\n  /**\n   * The returned array is immutable.\n  */\n  getMergedRanges() {\n    if (!this.shouldRecompute) {\n      return this.ranges;\n    }\n    this.shouldRecompute = false;\n    const newRanges = Array.from(this.hiddenAreas.values()).reduce((r, hiddenAreas) =\u003e mergeLineRangeArray(r, hiddenAreas), []);\n    if (rangeArraysEqual(this.ranges, newRanges)) {\n      return this.ranges;\n    }\n    this.ranges = newRanges;\n    return this.ranges;\n  }\n};\nfunction mergeLineRangeArray(arr1, arr2) {\n  const result = [];\n  let i2 = 0;\n  let j = 0;\n  while (i2 \u003c arr1.length \u0026\u0026 j \u003c arr2.length) {\n    const item1 = arr1[i2];\n    const item2 = arr2[j];\n    if (item1.endLineNumber \u003c item2.startLineNumber - 1) {\n      result.push(arr1[i2++]);\n    } else if (item2.endLineNumber \u003c item1.startLineNumber - 1) {\n      result.push(arr2[j++]);\n    } else {\n      const startLineNumber = Math.min(item1.startLineNumber, item2.startLineNumber);\n      const endLineNumber = Math.max(item1.endLineNumber, item2.endLineNumber);\n      result.push(new Range(startLineNumber, 1, endLineNumber, 1));\n      i2++;\n      j++;\n    }\n  }\n  while (i2 \u003c arr1.length) {\n    result.push(arr1[i2++]);\n  }\n  while (j \u003c arr2.length) {\n    result.push(arr2[j++]);\n  }\n  return result;\n}\nfunction rangeArraysEqual(arr1, arr2) {\n  if (arr1.length !== arr2.length) {\n    return false;\n  }\n  for (let i2 = 0; i2 \u003c arr1.length; i2++) {\n    if (!arr1[i2].equalsRange(arr2[i2])) {\n      return false;\n    }\n  }\n  return true;\n}\nvar StableViewport = class {\n  constructor(viewportStartModelPosition, startLineDelta) {\n    this.viewportStartModelPosition = viewportStartModelPosition;\n    this.startLineDelta = startLineDelta;\n  }\n  recoverViewportStart(coordinatesConverter, viewLayout) {\n    if (!this.viewportStartModelPosition) {\n      return;\n    }\n    const viewPosition = coordinatesConverter.convertModelPositionToViewPosition(this.viewportStartModelPosition);\n    const viewPositionTop = viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber);\n    viewLayout.setScrollPosition(\n      { scrollTop: viewPositionTop + this.startLineDelta },\n      1\n      /* ScrollType.Immediate */\n    );\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js\ninit_nls();\ninit_commands();\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/serviceCollection.js\nvar ServiceCollection = class {\n  constructor(...entries2) {\n    this._entries = /* @__PURE__ */ new Map();\n    for (const [id, service] of entries2) {\n      this.set(id, service);\n    }\n  }\n  set(id, instanceOrDescriptor) {\n    const result = this._entries.get(id);\n    this._entries.set(id, instanceOrDescriptor);\n    return result;\n  }\n  get(id) {\n    return this._entries.get(id);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js\ninit_colorRegistry();\ninit_themeService();\ninit_actions2();\ninit_textModelEditSource();\nvar __decorate26 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param24 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar CodeEditorWidget_1;\nvar CodeEditorWidget = class CodeEditorWidget2 extends Disposable {\n  static {\n    CodeEditorWidget_1 = this;\n  }\n  static {\n    this.dropIntoEditorDecorationOptions = ModelDecorationOptions.register({\n      description: \"workbench-dnd-target\",\n      className: \"dnd-target\"\n    });\n  }\n  //#endregion\n  get isSimpleWidget() {\n    return this._configuration.isSimpleWidget;\n  }\n  get contextMenuId() {\n    return this._configuration.contextMenuId;\n  }\n  constructor(domElement, _options, codeEditorWidgetOptions, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {\n    super();\n    this.languageConfigurationService = languageConfigurationService;\n    this._deliveryQueue = createEventDeliveryQueue();\n    this._contributions = this._register(new CodeEditorContributions());\n    this._onDidDispose = this._register(new Emitter());\n    this.onDidDispose = this._onDidDispose.event;\n    this._onDidChangeModelContent = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeModelContent = this._onDidChangeModelContent.event;\n    this._onDidChangeModelLanguage = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeModelLanguage = this._onDidChangeModelLanguage.event;\n    this._onDidChangeModelLanguageConfiguration = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeModelLanguageConfiguration = this._onDidChangeModelLanguageConfiguration.event;\n    this._onDidChangeModelOptions = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeModelOptions = this._onDidChangeModelOptions.event;\n    this._onDidChangeModelDecorations = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeModelDecorations = this._onDidChangeModelDecorations.event;\n    this._onDidChangeLineHeight = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeLineHeight = this._onDidChangeLineHeight.event;\n    this._onDidChangeFont = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeFont = this._onDidChangeFont.event;\n    this._onDidChangeModelTokens = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeModelTokens = this._onDidChangeModelTokens.event;\n    this._onDidChangeConfiguration = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeConfiguration = this._onDidChangeConfiguration.event;\n    this._onWillChangeModel = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onWillChangeModel = this._onWillChangeModel.event;\n    this._onDidChangeModel = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeModel = this._onDidChangeModel.event;\n    this._onDidChangeCursorPosition = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeCursorPosition = this._onDidChangeCursorPosition.event;\n    this._onDidChangeCursorSelection = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeCursorSelection = this._onDidChangeCursorSelection.event;\n    this._onDidAttemptReadOnlyEdit = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onDidAttemptReadOnlyEdit = this._onDidAttemptReadOnlyEdit.event;\n    this._onDidLayoutChange = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidLayoutChange = this._onDidLayoutChange.event;\n    this._editorTextFocus = this._register(new BooleanEventEmitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidFocusEditorText = this._editorTextFocus.onDidChangeToTrue;\n    this.onDidBlurEditorText = this._editorTextFocus.onDidChangeToFalse;\n    this._editorWidgetFocus = this._register(new BooleanEventEmitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidFocusEditorWidget = this._editorWidgetFocus.onDidChangeToTrue;\n    this.onDidBlurEditorWidget = this._editorWidgetFocus.onDidChangeToFalse;\n    this._onWillType = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onWillType = this._onWillType.event;\n    this._onDidType = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onDidType = this._onDidType.event;\n    this._onDidCompositionStart = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onDidCompositionStart = this._onDidCompositionStart.event;\n    this._onDidCompositionEnd = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onDidCompositionEnd = this._onDidCompositionEnd.event;\n    this._onDidPaste = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onDidPaste = this._onDidPaste.event;\n    this._onMouseUp = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onMouseUp = this._onMouseUp.event;\n    this._onMouseDown = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onMouseDown = this._onMouseDown.event;\n    this._onMouseDrag = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onMouseDrag = this._onMouseDrag.event;\n    this._onMouseDrop = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onMouseDrop = this._onMouseDrop.event;\n    this._onMouseDropCanceled = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onMouseDropCanceled = this._onMouseDropCanceled.event;\n    this._onDropIntoEditor = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onDropIntoEditor = this._onDropIntoEditor.event;\n    this._onContextMenu = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onContextMenu = this._onContextMenu.event;\n    this._onMouseMove = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onMouseMove = this._onMouseMove.event;\n    this._onMouseLeave = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onMouseLeave = this._onMouseLeave.event;\n    this._onMouseWheel = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onMouseWheel = this._onMouseWheel.event;\n    this._onKeyUp = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onKeyUp = this._onKeyUp.event;\n    this._onKeyDown = this._register(new InteractionEmitter(this._contributions, this._deliveryQueue));\n    this.onKeyDown = this._onKeyDown.event;\n    this._onDidContentSizeChange = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidContentSizeChange = this._onDidContentSizeChange.event;\n    this._onDidScrollChange = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidScrollChange = this._onDidScrollChange.event;\n    this._onDidChangeViewZones = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeViewZones = this._onDidChangeViewZones.event;\n    this._onDidChangeHiddenAreas = this._register(new Emitter({ deliveryQueue: this._deliveryQueue }));\n    this.onDidChangeHiddenAreas = this._onDidChangeHiddenAreas.event;\n    this._updateCounter = 0;\n    this._onWillTriggerEditorOperationEvent = this._register(new Emitter());\n    this._onBeginUpdate = this._register(new Emitter());\n    this.onBeginUpdate = this._onBeginUpdate.event;\n    this._onEndUpdate = this._register(new Emitter());\n    this.onEndUpdate = this._onEndUpdate.event;\n    this._onBeforeExecuteEdit = this._register(new Emitter());\n    this.onBeforeExecuteEdit = this._onBeforeExecuteEdit.event;\n    this._actions = /* @__PURE__ */ new Map();\n    this._bannerDomNode = null;\n    this._dropIntoEditorDecorations = this.createDecorationsCollection();\n    this.inComposition = false;\n    codeEditorService.willCreateCodeEditor();\n    const options2 = { ..._options };\n    this._domElement = domElement;\n    this._overflowWidgetsDomNode = options2.overflowWidgetsDomNode;\n    delete options2.overflowWidgetsDomNode;\n    this._id = ++EDITOR_ID;\n    this._decorationTypeKeysToIds = {};\n    this._decorationTypeSubtypes = {};\n    this._telemetryData = codeEditorWidgetOptions.telemetryData;\n    this._configuration = this._register(this._createConfiguration(codeEditorWidgetOptions.isSimpleWidget || false, codeEditorWidgetOptions.contextMenuId ?? (codeEditorWidgetOptions.isSimpleWidget ? MenuId.SimpleEditorContext : MenuId.EditorContext), options2, accessibilityService));\n    this._register(this._configuration.onDidChange((e) =\u003e {\n      this._onDidChangeConfiguration.fire(e);\n      const options3 = this._configuration.options;\n      if (e.hasChanged(\n        164\n        /* EditorOption.layoutInfo */\n      )) {\n        const layoutInfo = options3.get(\n          164\n          /* EditorOption.layoutInfo */\n        );\n        this._onDidLayoutChange.fire(layoutInfo);\n      }\n    }));\n    this._contextKeyService = this._register(contextKeyService.createScoped(this._domElement));\n    if (codeEditorWidgetOptions.contextKeyValues) {\n      for (const [key, value] of Object.entries(codeEditorWidgetOptions.contextKeyValues)) {\n        this._contextKeyService.createKey(key, value);\n      }\n    }\n    this._notificationService = notificationService;\n    this._codeEditorService = codeEditorService;\n    this._commandService = commandService;\n    this._themeService = themeService;\n    this._register(new EditorContextKeysManager(this, this._contextKeyService));\n    this._register(new EditorModeContext(this, this._contextKeyService, languageFeaturesService));\n    this._instantiationService = this._register(instantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n    this._modelData = null;\n    this._contentWidgets = {};\n    this._overlayWidgets = {};\n    this._glyphMarginWidgets = {};\n    let contributions;\n    if (Array.isArray(codeEditorWidgetOptions.contributions)) {\n      contributions = codeEditorWidgetOptions.contributions;\n    } else {\n      contributions = EditorExtensionsRegistry.getEditorContributions();\n    }\n    this._contributions.initialize(this, contributions, this._instantiationService);\n    for (const action of EditorExtensionsRegistry.getEditorActions()) {\n      if (this._actions.has(action.id)) {\n        onUnexpectedError(new Error(`Cannot have two actions with the same id ${action.id}`));\n        continue;\n      }\n      const internalAction = new InternalEditorAction(action.id, action.label, action.alias, action.metadata, action.precondition ?? void 0, (args) =\u003e {\n        return this._instantiationService.invokeFunction((accessor) =\u003e {\n          return Promise.resolve(action.runEditorCommand(accessor, this, args));\n        });\n      }, this._contextKeyService);\n      this._actions.set(internalAction.id, internalAction);\n    }\n    const isDropIntoEnabled = () =\u003e {\n      return !this._configuration.options.get(\n        103\n        /* EditorOption.readOnly */\n      ) \u0026\u0026 this._configuration.options.get(\n        43\n        /* EditorOption.dropIntoEditor */\n      ).enabled;\n    };\n    this._register(new DragAndDropObserver(this._domElement, {\n      onDragOver: (e) =\u003e {\n        if (!isDropIntoEnabled()) {\n          return;\n        }\n        const target = this.getTargetAtClientPoint(e.clientX, e.clientY);\n        if (target?.position) {\n          this.showDropIndicatorAt(target.position);\n        }\n      },\n      onDrop: async (e) =\u003e {\n        if (!isDropIntoEnabled()) {\n          return;\n        }\n        this.removeDropIndicator();\n        if (!e.dataTransfer) {\n          return;\n        }\n        const target = this.getTargetAtClientPoint(e.clientX, e.clientY);\n        if (target?.position) {\n          this._onDropIntoEditor.fire({ position: target.position, event: e });\n        }\n      },\n      onDragLeave: () =\u003e {\n        this.removeDropIndicator();\n      },\n      onDragEnd: () =\u003e {\n        this.removeDropIndicator();\n      }\n    }));\n    this._codeEditorService.addCodeEditor(this);\n  }\n  writeScreenReaderContent(reason) {\n    this._modelData?.view.writeScreenReaderContent(reason);\n  }\n  _createConfiguration(isSimpleWidget, contextMenuId, options2, accessibilityService) {\n    return new EditorConfiguration(isSimpleWidget, contextMenuId, options2, this._domElement, accessibilityService);\n  }\n  getId() {\n    return this.getEditorType() + \":\" + this._id;\n  }\n  getEditorType() {\n    return EditorType.ICodeEditor;\n  }\n  dispose() {\n    this._codeEditorService.removeCodeEditor(this);\n    this._actions.clear();\n    this._contentWidgets = {};\n    this._overlayWidgets = {};\n    this._removeDecorationTypes();\n    this._postDetachModelCleanup(this._detachModel());\n    this._onDidDispose.fire();\n    super.dispose();\n  }\n  invokeWithinContext(fn) {\n    return this._instantiationService.invokeFunction(fn);\n  }\n  updateOptions(newOptions) {\n    this._configuration.updateOptions(newOptions || {});\n  }\n  getOptions() {\n    return this._configuration.options;\n  }\n  getOption(id) {\n    return this._configuration.options.get(id);\n  }\n  getRawOptions() {\n    return this._configuration.getRawOptions();\n  }\n  getOverflowWidgetsDomNode() {\n    return this._overflowWidgetsDomNode;\n  }\n  getConfiguredWordAtPosition(position) {\n    if (!this._modelData) {\n      return null;\n    }\n    return WordOperations.getWordAtPosition(this._modelData.model, this._configuration.options.get(\n      147\n      /* EditorOption.wordSeparators */\n    ), this._configuration.options.get(\n      146\n      /* EditorOption.wordSegmenterLocales */\n    ), position);\n  }\n  getValue(options2 = null) {\n    if (!this._modelData) {\n      return \"\";\n    }\n    const preserveBOM = options2 \u0026\u0026 options2.preserveBOM ? true : false;\n    let eolPreference = 0;\n    if (options2 \u0026\u0026 options2.lineEnding \u0026\u0026 options2.lineEnding === \"\\n\") {\n      eolPreference = 1;\n    } else if (options2 \u0026\u0026 options2.lineEnding \u0026\u0026 options2.lineEnding === \"\\r\\n\") {\n      eolPreference = 2;\n    }\n    return this._modelData.model.getValue(eolPreference, preserveBOM);\n  }\n  setValue(newValue) {\n    try {\n      this._beginUpdate();\n      if (!this._modelData) {\n        return;\n      }\n      this._modelData.model.setValue(newValue);\n    } finally {\n      this._endUpdate();\n    }\n  }\n  getModel() {\n    if (!this._modelData) {\n      return null;\n    }\n    return this._modelData.model;\n  }\n  setModel(_model = null) {\n    try {\n      this._beginUpdate();\n      const model = _model;\n      if (this._modelData === null \u0026\u0026 model === null) {\n        return;\n      }\n      if (this._modelData \u0026\u0026 this._modelData.model === model) {\n        return;\n      }\n      const e = {\n        oldModelUrl: this._modelData?.model.uri || null,\n        newModelUrl: model?.uri || null\n      };\n      this._onWillChangeModel.fire(e);\n      const hasTextFocus = this.hasTextFocus();\n      const detachedModel = this._detachModel();\n      this._attachModel(model);\n      if (this.hasModel()) {\n        if (hasTextFocus) {\n          this.focus();\n        }\n      } else {\n        this._editorTextFocus.setValue(false);\n        this._editorWidgetFocus.setValue(false);\n      }\n      this._removeDecorationTypes();\n      this._onDidChangeModel.fire(e);\n      this._postDetachModelCleanup(detachedModel);\n      this._contributionsDisposable = this._contributions.onAfterModelAttached();\n    } finally {\n      this._endUpdate();\n    }\n  }\n  _removeDecorationTypes() {\n    this._decorationTypeKeysToIds = {};\n    if (this._decorationTypeSubtypes) {\n      for (const decorationType in this._decorationTypeSubtypes) {\n        const subTypes = this._decorationTypeSubtypes[decorationType];\n        for (const subType in subTypes) {\n          this._removeDecorationType(decorationType + \"-\" + subType);\n        }\n      }\n      this._decorationTypeSubtypes = {};\n    }\n  }\n  getVisibleRanges() {\n    if (!this._modelData) {\n      return [];\n    }\n    return this._modelData.viewModel.getVisibleRanges();\n  }\n  getVisibleRangesPlusViewportAboveBelow() {\n    if (!this._modelData) {\n      return [];\n    }\n    return this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow();\n  }\n  getWhitespaces() {\n    if (!this._modelData) {\n      return [];\n    }\n    return this._modelData.viewModel.viewLayout.getWhitespaces();\n  }\n  static _getVerticalOffsetAfterPosition(modelData, modelLineNumber, modelColumn, includeViewZones) {\n    const modelPosition = modelData.model.validatePosition({\n      lineNumber: modelLineNumber,\n      column: modelColumn\n    });\n    const viewPosition = modelData.viewModel.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);\n    return modelData.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(viewPosition.lineNumber, includeViewZones);\n  }\n  getTopForLineNumber(lineNumber, includeViewZones = false) {\n    if (!this._modelData) {\n      return -1;\n    }\n    return CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData, lineNumber, 1, includeViewZones);\n  }\n  getTopForPosition(lineNumber, column) {\n    if (!this._modelData) {\n      return -1;\n    }\n    return CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData, lineNumber, column, false);\n  }\n  static _getVerticalOffsetForPosition(modelData, modelLineNumber, modelColumn, includeViewZones = false) {\n    const modelPosition = modelData.model.validatePosition({\n      lineNumber: modelLineNumber,\n      column: modelColumn\n    });\n    const viewPosition = modelData.viewModel.coordinatesConverter.convertModelPositionToViewPosition(modelPosition);\n    return modelData.viewModel.viewLayout.getVerticalOffsetForLineNumber(viewPosition.lineNumber, includeViewZones);\n  }\n  getBottomForLineNumber(lineNumber, includeViewZones = false) {\n    if (!this._modelData) {\n      return -1;\n    }\n    const maxCol = this._modelData.model.getLineMaxColumn(lineNumber);\n    return CodeEditorWidget_1._getVerticalOffsetAfterPosition(this._modelData, lineNumber, maxCol, includeViewZones);\n  }\n  getLineHeightForPosition(position) {\n    if (!this._modelData) {\n      return -1;\n    }\n    const viewModel = this._modelData.viewModel;\n    const coordinatesConverter = viewModel.coordinatesConverter;\n    const pos = Position.lift(position);\n    if (coordinatesConverter.modelPositionIsVisible(pos)) {\n      const viewPosition = coordinatesConverter.convertModelPositionToViewPosition(pos);\n      return viewModel.viewLayout.getLineHeightForLineNumber(viewPosition.lineNumber);\n    }\n    return 0;\n  }\n  setHiddenAreas(ranges, source, forceUpdate) {\n    this._modelData?.viewModel.setHiddenAreas(ranges.map((r) =\u003e Range.lift(r)), source, forceUpdate);\n  }\n  getVisibleColumnFromPosition(rawPosition) {\n    if (!this._modelData) {\n      return rawPosition.column;\n    }\n    const position = this._modelData.model.validatePosition(rawPosition);\n    const tabSize = this._modelData.model.getOptions().tabSize;\n    return CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(position.lineNumber), position.column, tabSize) + 1;\n  }\n  getPosition() {\n    if (!this._modelData) {\n      return null;\n    }\n    return this._modelData.viewModel.getPosition();\n  }\n  setPosition(position, source = \"api\") {\n    if (!this._modelData) {\n      return;\n    }\n    if (!Position.isIPosition(position)) {\n      throw new Error(\"Invalid arguments\");\n    }\n    this._modelData.viewModel.setSelections(source, [{\n      selectionStartLineNumber: position.lineNumber,\n      selectionStartColumn: position.column,\n      positionLineNumber: position.lineNumber,\n      positionColumn: position.column\n    }]);\n  }\n  _sendRevealRange(modelRange, verticalType, revealHorizontal, scrollType) {\n    if (!this._modelData) {\n      return;\n    }\n    if (!Range.isIRange(modelRange)) {\n      throw new Error(\"Invalid arguments\");\n    }\n    const validatedModelRange = this._modelData.model.validateRange(modelRange);\n    const viewRange = this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(validatedModelRange);\n    this._modelData.viewModel.revealRange(\"api\", revealHorizontal, viewRange, verticalType, scrollType);\n  }\n  revealLine(lineNumber, scrollType = 0) {\n    this._revealLine(lineNumber, 0, scrollType);\n  }\n  revealLineInCenter(lineNumber, scrollType = 0) {\n    this._revealLine(lineNumber, 1, scrollType);\n  }\n  revealLineInCenterIfOutsideViewport(lineNumber, scrollType = 0) {\n    this._revealLine(lineNumber, 2, scrollType);\n  }\n  revealLineNearTop(lineNumber, scrollType = 0) {\n    this._revealLine(lineNumber, 5, scrollType);\n  }\n  _revealLine(lineNumber, revealType, scrollType) {\n    if (typeof lineNumber !== \"number\") {\n      throw new Error(\"Invalid arguments\");\n    }\n    this._sendRevealRange(new Range(lineNumber, 1, lineNumber, 1), revealType, false, scrollType);\n  }\n  revealPosition(position, scrollType = 0) {\n    this._revealPosition(position, 0, true, scrollType);\n  }\n  revealPositionInCenter(position, scrollType = 0) {\n    this._revealPosition(position, 1, true, scrollType);\n  }\n  revealPositionInCenterIfOutsideViewport(position, scrollType = 0) {\n    this._revealPosition(position, 2, true, scrollType);\n  }\n  revealPositionNearTop(position, scrollType = 0) {\n    this._revealPosition(position, 5, true, scrollType);\n  }\n  _revealPosition(position, verticalType, revealHorizontal, scrollType) {\n    if (!Position.isIPosition(position)) {\n      throw new Error(\"Invalid arguments\");\n    }\n    this._sendRevealRange(new Range(position.lineNumber, position.column, position.lineNumber, position.column), verticalType, revealHorizontal, scrollType);\n  }\n  getSelection() {\n    if (!this._modelData) {\n      return null;\n    }\n    return this._modelData.viewModel.getSelection();\n  }\n  getSelections() {\n    if (!this._modelData) {\n      return null;\n    }\n    return this._modelData.viewModel.getSelections();\n  }\n  setSelection(something, source = \"api\") {\n    const isSelection = Selection.isISelection(something);\n    const isRange = Range.isIRange(something);\n    if (!isSelection \u0026\u0026 !isRange) {\n      throw new Error(\"Invalid arguments\");\n    }\n    if (isSelection) {\n      this._setSelectionImpl(something, source);\n    } else if (isRange) {\n      const selection = {\n        selectionStartLineNumber: something.startLineNumber,\n        selectionStartColumn: something.startColumn,\n        positionLineNumber: something.endLineNumber,\n        positionColumn: something.endColumn\n      };\n      this._setSelectionImpl(selection, source);\n    }\n  }\n  _setSelectionImpl(sel, source) {\n    if (!this._modelData) {\n      return;\n    }\n    const selection = new Selection(sel.selectionStartLineNumber, sel.selectionStartColumn, sel.positionLineNumber, sel.positionColumn);\n    this._modelData.viewModel.setSelections(source, [selection]);\n  }\n  revealLines(startLineNumber, endLineNumber, scrollType = 0) {\n    this._revealLines(startLineNumber, endLineNumber, 0, scrollType);\n  }\n  revealLinesInCenter(startLineNumber, endLineNumber, scrollType = 0) {\n    this._revealLines(startLineNumber, endLineNumber, 1, scrollType);\n  }\n  revealLinesInCenterIfOutsideViewport(startLineNumber, endLineNumber, scrollType = 0) {\n    this._revealLines(startLineNumber, endLineNumber, 2, scrollType);\n  }\n  revealLinesNearTop(startLineNumber, endLineNumber, scrollType = 0) {\n    this._revealLines(startLineNumber, endLineNumber, 5, scrollType);\n  }\n  _revealLines(startLineNumber, endLineNumber, verticalType, scrollType) {\n    if (typeof startLineNumber !== \"number\" || typeof endLineNumber !== \"number\") {\n      throw new Error(\"Invalid arguments\");\n    }\n    this._sendRevealRange(new Range(startLineNumber, 1, endLineNumber, 1), verticalType, false, scrollType);\n  }\n  revealRange(range2, scrollType = 0, revealVerticalInCenter = false, revealHorizontal = true) {\n    this._revealRange(range2, revealVerticalInCenter ? 1 : 0, revealHorizontal, scrollType);\n  }\n  revealRangeInCenter(range2, scrollType = 0) {\n    this._revealRange(range2, 1, true, scrollType);\n  }\n  revealRangeInCenterIfOutsideViewport(range2, scrollType = 0) {\n    this._revealRange(range2, 2, true, scrollType);\n  }\n  revealRangeNearTop(range2, scrollType = 0) {\n    this._revealRange(range2, 5, true, scrollType);\n  }\n  revealRangeNearTopIfOutsideViewport(range2, scrollType = 0) {\n    this._revealRange(range2, 6, true, scrollType);\n  }\n  revealRangeAtTop(range2, scrollType = 0) {\n    this._revealRange(range2, 3, true, scrollType);\n  }\n  _revealRange(range2, verticalType, revealHorizontal, scrollType) {\n    if (!Range.isIRange(range2)) {\n      throw new Error(\"Invalid arguments\");\n    }\n    this._sendRevealRange(Range.lift(range2), verticalType, revealHorizontal, scrollType);\n  }\n  setSelections(ranges, source = \"api\", reason = 0) {\n    if (!this._modelData) {\n      return;\n    }\n    if (!ranges || ranges.length === 0) {\n      throw new Error(\"Invalid arguments\");\n    }\n    for (let i2 = 0, len = ranges.length; i2 \u003c len; i2++) {\n      if (!Selection.isISelection(ranges[i2])) {\n        throw new Error(\"Invalid arguments\");\n      }\n    }\n    this._modelData.viewModel.setSelections(source, ranges, reason);\n  }\n  getContentWidth() {\n    if (!this._modelData) {\n      return -1;\n    }\n    return this._modelData.viewModel.viewLayout.getContentWidth();\n  }\n  getScrollWidth() {\n    if (!this._modelData) {\n      return -1;\n    }\n    return this._modelData.viewModel.viewLayout.getScrollWidth();\n  }\n  getScrollLeft() {\n    if (!this._modelData) {\n      return -1;\n    }\n    return this._modelData.viewModel.viewLayout.getCurrentScrollLeft();\n  }\n  getContentHeight() {\n    if (!this._modelData) {\n      return -1;\n    }\n    return this._modelData.viewModel.viewLayout.getContentHeight();\n  }\n  getScrollHeight() {\n    if (!this._modelData) {\n      return -1;\n    }\n    return this._modelData.viewModel.viewLayout.getScrollHeight();\n  }\n  getScrollTop() {\n    if (!this._modelData) {\n      return -1;\n    }\n    return this._modelData.viewModel.viewLayout.getCurrentScrollTop();\n  }\n  setScrollLeft(newScrollLeft, scrollType = 1) {\n    if (!this._modelData) {\n      return;\n    }\n    if (typeof newScrollLeft !== \"number\") {\n      throw new Error(\"Invalid arguments\");\n    }\n    this._modelData.viewModel.viewLayout.setScrollPosition({\n      scrollLeft: newScrollLeft\n    }, scrollType);\n  }\n  setScrollTop(newScrollTop, scrollType = 1) {\n    if (!this._modelData) {\n      return;\n    }\n    if (typeof newScrollTop !== \"number\") {\n      throw new Error(\"Invalid arguments\");\n    }\n    this._modelData.viewModel.viewLayout.setScrollPosition({\n      scrollTop: newScrollTop\n    }, scrollType);\n  }\n  setScrollPosition(position, scrollType = 1) {\n    if (!this._modelData) {\n      return;\n    }\n    this._modelData.viewModel.viewLayout.setScrollPosition(position, scrollType);\n  }\n  hasPendingScrollAnimation() {\n    if (!this._modelData) {\n      return false;\n    }\n    return this._modelData.viewModel.viewLayout.hasPendingScrollAnimation();\n  }\n  saveViewState() {\n    if (!this._modelData) {\n      return null;\n    }\n    const contributionsState = this._contributions.saveViewState();\n    const cursorState = this._modelData.viewModel.saveCursorState();\n    const viewState = this._modelData.viewModel.saveState();\n    return {\n      cursorState,\n      viewState,\n      contributionsState\n    };\n  }\n  restoreViewState(s) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return;\n    }\n    const codeEditorState = s;\n    if (codeEditorState \u0026\u0026 codeEditorState.cursorState \u0026\u0026 codeEditorState.viewState) {\n      const cursorState = codeEditorState.cursorState;\n      if (Array.isArray(cursorState)) {\n        if (cursorState.length \u003e 0) {\n          this._modelData.viewModel.restoreCursorState(cursorState);\n        }\n      } else {\n        this._modelData.viewModel.restoreCursorState([cursorState]);\n      }\n      this._contributions.restoreViewState(codeEditorState.contributionsState || {});\n      const reducedState = this._modelData.viewModel.reduceRestoreState(codeEditorState.viewState);\n      this._modelData.view.restoreState(reducedState);\n    }\n  }\n  handleInitialized() {\n    this._getViewModel()?.visibleLinesStabilized();\n  }\n  getContribution(id) {\n    return this._contributions.get(id);\n  }\n  getActions() {\n    return Array.from(this._actions.values());\n  }\n  getSupportedActions() {\n    let result = this.getActions();\n    result = result.filter((action) =\u003e action.isSupported());\n    return result;\n  }\n  getAction(id) {\n    return this._actions.get(id) || null;\n  }\n  trigger(source, handlerId, payload) {\n    payload = payload || {};\n    try {\n      this._onWillTriggerEditorOperationEvent.fire({ source, handlerId, payload });\n      this._beginUpdate();\n      switch (handlerId) {\n        case \"compositionStart\":\n          this._startComposition();\n          return;\n        case \"compositionEnd\":\n          this._endComposition(source);\n          return;\n        case \"type\": {\n          const args = payload;\n          this._type(source, args.text || \"\");\n          return;\n        }\n        case \"replacePreviousChar\": {\n          const args = payload;\n          this._compositionType(source, args.text || \"\", args.replaceCharCnt || 0, 0, 0);\n          return;\n        }\n        case \"compositionType\": {\n          const args = payload;\n          this._compositionType(source, args.text || \"\", args.replacePrevCharCnt || 0, args.replaceNextCharCnt || 0, args.positionDelta || 0);\n          return;\n        }\n        case \"paste\": {\n          const args = payload;\n          this._paste(source, args.text || \"\", args.pasteOnNewLine || false, args.multicursorText || null, args.mode || null, args.clipboardEvent);\n          return;\n        }\n        case \"cut\":\n          this._cut(source);\n          return;\n      }\n      const action = this.getAction(handlerId);\n      if (action) {\n        Promise.resolve(action.run(payload)).then(void 0, onUnexpectedError);\n        return;\n      }\n      if (!this._modelData) {\n        return;\n      }\n      if (this._triggerEditorCommand(source, handlerId, payload)) {\n        return;\n      }\n      this._triggerCommand(handlerId, payload);\n    } finally {\n      this._endUpdate();\n    }\n  }\n  _triggerCommand(handlerId, payload) {\n    this._commandService.executeCommand(handlerId, payload);\n  }\n  _startComposition() {\n    if (!this._modelData) {\n      return;\n    }\n    this.inComposition = true;\n    this._modelData.viewModel.startComposition();\n    this._onDidCompositionStart.fire();\n  }\n  _endComposition(source) {\n    if (!this._modelData) {\n      return;\n    }\n    this.inComposition = false;\n    this._modelData.viewModel.endComposition(source);\n    this._onDidCompositionEnd.fire();\n  }\n  _type(source, text2) {\n    if (!this._modelData || text2.length === 0) {\n      return;\n    }\n    if (source === \"keyboard\") {\n      this._onWillType.fire(text2);\n    }\n    this._modelData.viewModel.type(text2, source);\n    if (source === \"keyboard\") {\n      this._onDidType.fire(text2);\n    }\n  }\n  _compositionType(source, text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n    if (!this._modelData) {\n      return;\n    }\n    this._modelData.viewModel.compositionType(text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta, source);\n  }\n  _paste(source, text2, pasteOnNewLine, multicursorText, mode, clipboardEvent) {\n    if (!this._modelData) {\n      return;\n    }\n    const viewModel = this._modelData.viewModel;\n    const startPosition = viewModel.getSelection().getStartPosition();\n    viewModel.paste(text2, pasteOnNewLine, multicursorText, source);\n    const endPosition = viewModel.getSelection().getStartPosition();\n    if (source === \"keyboard\") {\n      this._onDidPaste.fire({\n        clipboardEvent,\n        range: new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column),\n        languageId: mode\n      });\n    }\n  }\n  _cut(source) {\n    if (!this._modelData) {\n      return;\n    }\n    this._modelData.viewModel.cut(source);\n  }\n  _triggerEditorCommand(source, handlerId, payload) {\n    const command = EditorExtensionsRegistry.getEditorCommand(handlerId);\n    if (command) {\n      payload = payload || {};\n      payload.source = source;\n      this._instantiationService.invokeFunction((accessor) =\u003e {\n        Promise.resolve(command.runEditorCommand(accessor, this, payload)).then(void 0, onUnexpectedError);\n      });\n      return true;\n    }\n    return false;\n  }\n  _getViewModel() {\n    if (!this._modelData) {\n      return null;\n    }\n    return this._modelData.viewModel;\n  }\n  pushUndoStop() {\n    if (!this._modelData) {\n      return false;\n    }\n    if (this._configuration.options.get(\n      103\n      /* EditorOption.readOnly */\n    )) {\n      return false;\n    }\n    this._modelData.model.pushStackElement();\n    return true;\n  }\n  popUndoStop() {\n    if (!this._modelData) {\n      return false;\n    }\n    if (this._configuration.options.get(\n      103\n      /* EditorOption.readOnly */\n    )) {\n      return false;\n    }\n    this._modelData.model.popStackElement();\n    return true;\n  }\n  edit(edit2, reason) {\n    return this.executeEdits(reason, edit2.replacements.map((e) =\u003e ({ range: e.range, text: e.text })), void 0);\n  }\n  executeEdits(source, edits, endCursorState) {\n    if (!this._modelData) {\n      return false;\n    }\n    if (this._configuration.options.get(\n      103\n      /* EditorOption.readOnly */\n    )) {\n      return false;\n    }\n    let cursorStateComputer;\n    if (!endCursorState) {\n      cursorStateComputer = () =\u003e null;\n    } else if (Array.isArray(endCursorState)) {\n      cursorStateComputer = () =\u003e endCursorState;\n    } else {\n      cursorStateComputer = endCursorState;\n    }\n    let sourceStr;\n    let reason;\n    if (source instanceof TextModelEditSource) {\n      reason = source;\n      sourceStr = source.metadata.source;\n    } else {\n      reason = EditSources.unknown({ name: sourceStr });\n      sourceStr = source;\n    }\n    this._onBeforeExecuteEdit.fire({ source: sourceStr ?? void 0 });\n    this._modelData.viewModel.executeEdits(sourceStr, edits, cursorStateComputer, reason);\n    return true;\n  }\n  executeCommand(source, command) {\n    if (!this._modelData) {\n      return;\n    }\n    this._modelData.viewModel.executeCommand(command, source);\n  }\n  executeCommands(source, commands) {\n    if (!this._modelData) {\n      return;\n    }\n    this._modelData.viewModel.executeCommands(commands, source);\n  }\n  createDecorationsCollection(decorations) {\n    return new EditorDecorationsCollection(this, decorations);\n  }\n  changeDecorations(callback) {\n    if (!this._modelData) {\n      return null;\n    }\n    return this._modelData.model.changeDecorations(callback, this._id);\n  }\n  getLineDecorations(lineNumber) {\n    if (!this._modelData) {\n      return null;\n    }\n    const options2 = this._configuration.options;\n    return this._modelData.model.getLineDecorations(lineNumber, this._id, filterValidationDecorations(options2), filterFontDecorations(options2));\n  }\n  getDecorationsInRange(range2) {\n    if (!this._modelData) {\n      return null;\n    }\n    const options2 = this._configuration.options;\n    return this._modelData.model.getDecorationsInRange(range2, this._id, filterValidationDecorations(options2), filterFontDecorations(options2));\n  }\n  getFontSizeAtPosition(position) {\n    if (!this._modelData) {\n      return null;\n    }\n    return this._modelData.viewModel.getFontSizeAtPosition(position);\n  }\n  /**\n   * @deprecated\n   */\n  deltaDecorations(oldDecorations, newDecorations) {\n    if (!this._modelData) {\n      return [];\n    }\n    if (oldDecorations.length === 0 \u0026\u0026 newDecorations.length === 0) {\n      return oldDecorations;\n    }\n    return this._modelData.model.deltaDecorations(oldDecorations, newDecorations, this._id);\n  }\n  removeDecorations(decorationIds) {\n    if (!this._modelData || decorationIds.length === 0) {\n      return;\n    }\n    this._modelData.model.changeDecorations((changeAccessor) =\u003e {\n      changeAccessor.deltaDecorations(decorationIds, []);\n    });\n  }\n  removeDecorationsByType(decorationTypeKey) {\n    const oldDecorationsIds = this._decorationTypeKeysToIds[decorationTypeKey];\n    if (oldDecorationsIds) {\n      this.changeDecorations((accessor) =\u003e accessor.deltaDecorations(oldDecorationsIds, []));\n    }\n    if (this._decorationTypeKeysToIds.hasOwnProperty(decorationTypeKey)) {\n      delete this._decorationTypeKeysToIds[decorationTypeKey];\n    }\n    if (this._decorationTypeSubtypes.hasOwnProperty(decorationTypeKey)) {\n      delete this._decorationTypeSubtypes[decorationTypeKey];\n    }\n  }\n  getLayoutInfo() {\n    const options2 = this._configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    return layoutInfo;\n  }\n  createOverviewRuler(cssClassName) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return null;\n    }\n    return this._modelData.view.createOverviewRuler(cssClassName);\n  }\n  getContainerDomNode() {\n    return this._domElement;\n  }\n  getDomNode() {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return null;\n    }\n    return this._modelData.view.domNode.domNode;\n  }\n  delegateVerticalScrollbarPointerDown(browserEvent) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return;\n    }\n    this._modelData.view.delegateVerticalScrollbarPointerDown(browserEvent);\n  }\n  delegateScrollFromMouseWheelEvent(browserEvent) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return;\n    }\n    this._modelData.view.delegateScrollFromMouseWheelEvent(browserEvent);\n  }\n  layout(dimension, postponeRendering = false) {\n    this._configuration.observeContainer(dimension);\n    if (!postponeRendering) {\n      this.render();\n    }\n  }\n  focus() {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return;\n    }\n    this._modelData.view.focus();\n  }\n  hasTextFocus() {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return false;\n    }\n    return this._modelData.view.isFocused();\n  }\n  hasWidgetFocus() {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return false;\n    }\n    return this._modelData.view.isWidgetFocused();\n  }\n  addContentWidget(widget) {\n    const widgetData = {\n      widget,\n      position: widget.getPosition()\n    };\n    if (this._contentWidgets.hasOwnProperty(widget.getId())) {\n      console.warn(\"Overwriting a content widget with the same id:\" + widget.getId());\n    }\n    this._contentWidgets[widget.getId()] = widgetData;\n    if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n      this._modelData.view.addContentWidget(widgetData);\n    }\n  }\n  layoutContentWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._contentWidgets.hasOwnProperty(widgetId)) {\n      const widgetData = this._contentWidgets[widgetId];\n      widgetData.position = widget.getPosition();\n      if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n        this._modelData.view.layoutContentWidget(widgetData);\n      }\n    }\n  }\n  removeContentWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._contentWidgets.hasOwnProperty(widgetId)) {\n      const widgetData = this._contentWidgets[widgetId];\n      delete this._contentWidgets[widgetId];\n      if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n        this._modelData.view.removeContentWidget(widgetData);\n      }\n    }\n  }\n  addOverlayWidget(widget) {\n    const widgetData = {\n      widget,\n      position: widget.getPosition()\n    };\n    if (this._overlayWidgets.hasOwnProperty(widget.getId())) {\n      console.warn(\"Overwriting an overlay widget with the same id.\");\n    }\n    this._overlayWidgets[widget.getId()] = widgetData;\n    if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n      this._modelData.view.addOverlayWidget(widgetData);\n    }\n  }\n  layoutOverlayWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._overlayWidgets.hasOwnProperty(widgetId)) {\n      const widgetData = this._overlayWidgets[widgetId];\n      widgetData.position = widget.getPosition();\n      if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n        this._modelData.view.layoutOverlayWidget(widgetData);\n      }\n    }\n  }\n  removeOverlayWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._overlayWidgets.hasOwnProperty(widgetId)) {\n      const widgetData = this._overlayWidgets[widgetId];\n      delete this._overlayWidgets[widgetId];\n      if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n        this._modelData.view.removeOverlayWidget(widgetData);\n      }\n    }\n  }\n  addGlyphMarginWidget(widget) {\n    const widgetData = {\n      widget,\n      position: widget.getPosition()\n    };\n    if (this._glyphMarginWidgets.hasOwnProperty(widget.getId())) {\n      console.warn(\"Overwriting a glyph margin widget with the same id.\");\n    }\n    this._glyphMarginWidgets[widget.getId()] = widgetData;\n    if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n      this._modelData.view.addGlyphMarginWidget(widgetData);\n    }\n  }\n  layoutGlyphMarginWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._glyphMarginWidgets.hasOwnProperty(widgetId)) {\n      const widgetData = this._glyphMarginWidgets[widgetId];\n      widgetData.position = widget.getPosition();\n      if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n        this._modelData.view.layoutGlyphMarginWidget(widgetData);\n      }\n    }\n  }\n  removeGlyphMarginWidget(widget) {\n    const widgetId = widget.getId();\n    if (this._glyphMarginWidgets.hasOwnProperty(widgetId)) {\n      const widgetData = this._glyphMarginWidgets[widgetId];\n      delete this._glyphMarginWidgets[widgetId];\n      if (this._modelData \u0026\u0026 this._modelData.hasRealView) {\n        this._modelData.view.removeGlyphMarginWidget(widgetData);\n      }\n    }\n  }\n  changeViewZones(callback) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return;\n    }\n    this._modelData.view.change(callback);\n  }\n  getTargetAtClientPoint(clientX, clientY) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return null;\n    }\n    return this._modelData.view.getTargetAtClientPoint(clientX, clientY);\n  }\n  getScrolledVisiblePosition(rawPosition) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return null;\n    }\n    const position = this._modelData.model.validatePosition(rawPosition);\n    const options2 = this._configuration.options;\n    const layoutInfo = options2.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const top = CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData, position.lineNumber, position.column) - this.getScrollTop();\n    const left = this._modelData.view.getOffsetForColumn(position.lineNumber, position.column) + layoutInfo.glyphMarginWidth + layoutInfo.lineNumbersWidth + layoutInfo.decorationsWidth - this.getScrollLeft();\n    const height = this.getLineHeightForPosition(position);\n    return {\n      top,\n      left,\n      height\n    };\n  }\n  getOffsetForColumn(lineNumber, column) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return -1;\n    }\n    return this._modelData.view.getOffsetForColumn(lineNumber, column);\n  }\n  render(forceRedraw = false) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return;\n    }\n    this._modelData.viewModel.batchEvents(() =\u003e {\n      this._modelData.view.render(true, forceRedraw);\n    });\n  }\n  setAriaOptions(options2) {\n    if (!this._modelData || !this._modelData.hasRealView) {\n      return;\n    }\n    this._modelData.view.setAriaOptions(options2);\n  }\n  applyFontInfo(target) {\n    applyFontInfo(target, this._configuration.options.get(\n      59\n      /* EditorOption.fontInfo */\n    ));\n  }\n  setBanner(domNode, domNodeHeight) {\n    if (this._bannerDomNode \u0026\u0026 this._domElement.contains(this._bannerDomNode)) {\n      this._bannerDomNode.remove();\n    }\n    this._bannerDomNode = domNode;\n    this._configuration.setReservedHeight(domNode ? domNodeHeight : 0);\n    if (this._bannerDomNode) {\n      this._domElement.prepend(this._bannerDomNode);\n    }\n  }\n  _attachModel(model) {\n    if (!model) {\n      this._modelData = null;\n      return;\n    }\n    const listenersToRemove = [];\n    this._domElement.setAttribute(\"data-mode-id\", model.getLanguageId());\n    this._configuration.setIsDominatedByLongLines(model.isDominatedByLongLines());\n    this._configuration.setModelLineCount(model.getLineCount());\n    const attachedView = model.onBeforeAttached();\n    const viewModel = new ViewModel(this._id, this._configuration, model, DOMLineBreaksComputerFactory.create(getWindow(this._domElement)), MonospaceLineBreaksComputerFactory.create(this._configuration.options), (callback) =\u003e scheduleAtNextAnimationFrame(getWindow(this._domElement), callback), this.languageConfigurationService, this._themeService, attachedView, {\n      batchChanges: (cb) =\u003e {\n        try {\n          this._beginUpdate();\n          return cb();\n        } finally {\n          this._endUpdate();\n        }\n      }\n    });\n    listenersToRemove.push(model.onWillDispose(() =\u003e this.setModel(null)));\n    listenersToRemove.push(viewModel.onEvent((e) =\u003e {\n      switch (e.kind) {\n        case 0:\n          this._onDidContentSizeChange.fire(e);\n          break;\n        case 1:\n          this._editorTextFocus.setValue(e.hasFocus);\n          break;\n        case 2:\n          this._editorWidgetFocus.setValue(e.hasFocus);\n          break;\n        case 3:\n          this._onDidScrollChange.fire(e);\n          break;\n        case 4:\n          this._onDidChangeViewZones.fire();\n          break;\n        case 5:\n          this._onDidChangeHiddenAreas.fire();\n          break;\n        case 6:\n          this._onDidAttemptReadOnlyEdit.fire();\n          break;\n        case 7: {\n          if (e.reachedMaxCursorCount) {\n            const multiCursorLimit = this.getOption(\n              88\n              /* EditorOption.multiCursorLimit */\n            );\n            const message = localize(80, \"The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.\", multiCursorLimit);\n            this._notificationService.prompt(Severity2.Warning, message, [\n              {\n                label: \"Find and Replace\",\n                run: () =\u003e {\n                  this._commandService.executeCommand(\"editor.action.startFindReplaceAction\");\n                }\n              },\n              {\n                label: localize(81, \"Increase Multi Cursor Limit\"),\n                run: () =\u003e {\n                  this._commandService.executeCommand(\"workbench.action.openSettings2\", {\n                    query: \"editor.multiCursorLimit\"\n                  });\n                }\n              }\n            ]);\n          }\n          const positions = [];\n          for (let i2 = 0, len = e.selections.length; i2 \u003c len; i2++) {\n            positions[i2] = e.selections[i2].getPosition();\n          }\n          const e1 = {\n            position: positions[0],\n            secondaryPositions: positions.slice(1),\n            reason: e.reason,\n            source: e.source\n          };\n          this._onDidChangeCursorPosition.fire(e1);\n          const e2 = {\n            selection: e.selections[0],\n            secondarySelections: e.selections.slice(1),\n            modelVersionId: e.modelVersionId,\n            oldSelections: e.oldSelections,\n            oldModelVersionId: e.oldModelVersionId,\n            source: e.source,\n            reason: e.reason\n          };\n          this._onDidChangeCursorSelection.fire(e2);\n          break;\n        }\n        case 8:\n          this._onDidChangeModelDecorations.fire(e.event);\n          break;\n        case 9:\n          this._domElement.setAttribute(\"data-mode-id\", model.getLanguageId());\n          this._onDidChangeModelLanguage.fire(e.event);\n          break;\n        case 10:\n          this._onDidChangeModelLanguageConfiguration.fire(e.event);\n          break;\n        case 11:\n          this._onDidChangeModelContent.fire(e.event);\n          break;\n        case 12:\n          this._onDidChangeModelOptions.fire(e.event);\n          break;\n        case 13:\n          this._onDidChangeModelTokens.fire(e.event);\n          break;\n        case 14:\n          this._onDidChangeLineHeight.fire(e.event);\n          break;\n        case 15:\n          this._onDidChangeFont.fire(e.event);\n          break;\n      }\n    }));\n    const [view, hasRealView] = this._createView(viewModel);\n    if (hasRealView) {\n      this._domElement.appendChild(view.domNode.domNode);\n      let keys = Object.keys(this._contentWidgets);\n      for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n        const widgetId = keys[i2];\n        view.addContentWidget(this._contentWidgets[widgetId]);\n      }\n      keys = Object.keys(this._overlayWidgets);\n      for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n        const widgetId = keys[i2];\n        view.addOverlayWidget(this._overlayWidgets[widgetId]);\n      }\n      keys = Object.keys(this._glyphMarginWidgets);\n      for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n        const widgetId = keys[i2];\n        view.addGlyphMarginWidget(this._glyphMarginWidgets[widgetId]);\n      }\n      view.render(false, true);\n      view.domNode.domNode.setAttribute(\"data-uri\", model.uri.toString());\n    }\n    this._modelData = new ModelData(model, viewModel, view, hasRealView, listenersToRemove, attachedView);\n  }\n  _createView(viewModel) {\n    let commandDelegate;\n    if (this.isSimpleWidget) {\n      commandDelegate = {\n        paste: (text2, pasteOnNewLine, multicursorText, mode) =\u003e {\n          this._paste(\"keyboard\", text2, pasteOnNewLine, multicursorText, mode);\n        },\n        type: (text2) =\u003e {\n          this._type(\"keyboard\", text2);\n        },\n        compositionType: (text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) =\u003e {\n          this._compositionType(\"keyboard\", text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta);\n        },\n        startComposition: () =\u003e {\n          this._startComposition();\n        },\n        endComposition: () =\u003e {\n          this._endComposition(\"keyboard\");\n        },\n        cut: () =\u003e {\n          this._cut(\"keyboard\");\n        }\n      };\n    } else {\n      commandDelegate = {\n        paste: (text2, pasteOnNewLine, multicursorText, mode) =\u003e {\n          const payload = { text: text2, pasteOnNewLine, multicursorText, mode };\n          this._commandService.executeCommand(\"paste\", payload);\n        },\n        type: (text2) =\u003e {\n          const payload = { text: text2 };\n          this._commandService.executeCommand(\"type\", payload);\n        },\n        compositionType: (text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta) =\u003e {\n          if (replaceNextCharCnt || positionDelta) {\n            const payload = { text: text2, replacePrevCharCnt, replaceNextCharCnt, positionDelta };\n            this._commandService.executeCommand(\"compositionType\", payload);\n          } else {\n            const payload = { text: text2, replaceCharCnt: replacePrevCharCnt };\n            this._commandService.executeCommand(\"replacePreviousChar\", payload);\n          }\n        },\n        startComposition: () =\u003e {\n          this._commandService.executeCommand(\"compositionStart\", {});\n        },\n        endComposition: () =\u003e {\n          this._commandService.executeCommand(\"compositionEnd\", {});\n        },\n        cut: () =\u003e {\n          this._commandService.executeCommand(\"cut\", {});\n        }\n      };\n    }\n    const viewUserInputEvents = new ViewUserInputEvents(viewModel.coordinatesConverter);\n    viewUserInputEvents.onKeyDown = (e) =\u003e this._onKeyDown.fire(e);\n    viewUserInputEvents.onKeyUp = (e) =\u003e this._onKeyUp.fire(e);\n    viewUserInputEvents.onContextMenu = (e) =\u003e this._onContextMenu.fire(e);\n    viewUserInputEvents.onMouseMove = (e) =\u003e this._onMouseMove.fire(e);\n    viewUserInputEvents.onMouseLeave = (e) =\u003e this._onMouseLeave.fire(e);\n    viewUserInputEvents.onMouseDown = (e) =\u003e this._onMouseDown.fire(e);\n    viewUserInputEvents.onMouseUp = (e) =\u003e this._onMouseUp.fire(e);\n    viewUserInputEvents.onMouseDrag = (e) =\u003e this._onMouseDrag.fire(e);\n    viewUserInputEvents.onMouseDrop = (e) =\u003e this._onMouseDrop.fire(e);\n    viewUserInputEvents.onMouseDropCanceled = (e) =\u003e this._onMouseDropCanceled.fire(e);\n    viewUserInputEvents.onMouseWheel = (e) =\u003e this._onMouseWheel.fire(e);\n    const view = new View(this._domElement, this.getId(), commandDelegate, this._configuration, this._themeService.getColorTheme(), viewModel, viewUserInputEvents, this._overflowWidgetsDomNode, this._instantiationService);\n    return [view, true];\n  }\n  _postDetachModelCleanup(detachedModel) {\n    detachedModel?.removeAllDecorationsWithOwnerId(this._id);\n  }\n  _detachModel() {\n    this._contributionsDisposable?.dispose();\n    this._contributionsDisposable = void 0;\n    if (!this._modelData) {\n      return null;\n    }\n    const model = this._modelData.model;\n    const removeDomNode = this._modelData.hasRealView ? this._modelData.view.domNode.domNode : null;\n    this._modelData.dispose();\n    this._modelData = null;\n    this._domElement.removeAttribute(\"data-mode-id\");\n    if (removeDomNode \u0026\u0026 this._domElement.contains(removeDomNode)) {\n      removeDomNode.remove();\n    }\n    if (this._bannerDomNode \u0026\u0026 this._domElement.contains(this._bannerDomNode)) {\n      this._bannerDomNode.remove();\n    }\n    return model;\n  }\n  _removeDecorationType(key) {\n    this._codeEditorService.removeDecorationType(key);\n  }\n  hasModel() {\n    return this._modelData !== null;\n  }\n  showDropIndicatorAt(position) {\n    const newDecorations = [{\n      range: new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n      options: CodeEditorWidget_1.dropIntoEditorDecorationOptions\n    }];\n    this._dropIntoEditorDecorations.set(newDecorations);\n    this.revealPosition(\n      position,\n      1\n      /* editorCommon.ScrollType.Immediate */\n    );\n  }\n  removeDropIndicator() {\n    this._dropIntoEditorDecorations.clear();\n  }\n  _beginUpdate() {\n    this._updateCounter++;\n    if (this._updateCounter === 1) {\n      this._onBeginUpdate.fire();\n    }\n  }\n  _endUpdate() {\n    this._updateCounter--;\n    if (this._updateCounter === 0) {\n      this._onEndUpdate.fire();\n    }\n  }\n};\nCodeEditorWidget = CodeEditorWidget_1 = __decorate26([\n  __param24(3, IInstantiationService),\n  __param24(4, ICodeEditorService),\n  __param24(5, ICommandService),\n  __param24(6, IContextKeyService),\n  __param24(7, IThemeService),\n  __param24(8, INotificationService),\n  __param24(9, IAccessibilityService),\n  __param24(10, ILanguageConfigurationService),\n  __param24(11, ILanguageFeaturesService)\n], CodeEditorWidget);\nvar EDITOR_ID = 0;\nvar ModelData = class {\n  constructor(model, viewModel, view, hasRealView, listenersToRemove, attachedView) {\n    this.model = model;\n    this.viewModel = viewModel;\n    this.view = view;\n    this.hasRealView = hasRealView;\n    this.listenersToRemove = listenersToRemove;\n    this.attachedView = attachedView;\n  }\n  dispose() {\n    dispose(this.listenersToRemove);\n    this.model.onBeforeDetached(this.attachedView);\n    if (this.hasRealView) {\n      this.view.dispose();\n    }\n    this.viewModel.dispose();\n  }\n};\nvar BooleanEventEmitter = class extends Disposable {\n  constructor(_emitterOptions) {\n    super();\n    this._emitterOptions = _emitterOptions;\n    this._onDidChangeToTrue = this._register(new Emitter(this._emitterOptions));\n    this.onDidChangeToTrue = this._onDidChangeToTrue.event;\n    this._onDidChangeToFalse = this._register(new Emitter(this._emitterOptions));\n    this.onDidChangeToFalse = this._onDidChangeToFalse.event;\n    this._value = 0;\n  }\n  setValue(_value) {\n    const value = _value ? 2 : 1;\n    if (this._value === value) {\n      return;\n    }\n    this._value = value;\n    if (this._value === 2) {\n      this._onDidChangeToTrue.fire();\n    } else if (this._value === 1) {\n      this._onDidChangeToFalse.fire();\n    }\n  }\n};\nvar InteractionEmitter = class extends Emitter {\n  constructor(_contributions, deliveryQueue) {\n    super({ deliveryQueue });\n    this._contributions = _contributions;\n  }\n  fire(event) {\n    this._contributions.onBeforeInteractionEvent();\n    super.fire(event);\n  }\n};\nvar EditorContextKeysManager = class extends Disposable {\n  constructor(editor2, contextKeyService) {\n    super();\n    this._editor = editor2;\n    contextKeyService.createKey(\"editorId\", editor2.getId());\n    this._editorSimpleInput = EditorContextKeys.editorSimpleInput.bindTo(contextKeyService);\n    this._editorFocus = EditorContextKeys.focus.bindTo(contextKeyService);\n    this._textInputFocus = EditorContextKeys.textInputFocus.bindTo(contextKeyService);\n    this._editorTextFocus = EditorContextKeys.editorTextFocus.bindTo(contextKeyService);\n    this._tabMovesFocus = EditorContextKeys.tabMovesFocus.bindTo(contextKeyService);\n    this._editorReadonly = EditorContextKeys.readOnly.bindTo(contextKeyService);\n    this._inDiffEditor = EditorContextKeys.inDiffEditor.bindTo(contextKeyService);\n    this._editorColumnSelection = EditorContextKeys.columnSelection.bindTo(contextKeyService);\n    this._hasMultipleSelections = EditorContextKeys.hasMultipleSelections.bindTo(contextKeyService);\n    this._hasNonEmptySelection = EditorContextKeys.hasNonEmptySelection.bindTo(contextKeyService);\n    this._canUndo = EditorContextKeys.canUndo.bindTo(contextKeyService);\n    this._canRedo = EditorContextKeys.canRedo.bindTo(contextKeyService);\n    this._register(this._editor.onDidChangeConfiguration(() =\u003e this._updateFromConfig()));\n    this._register(this._editor.onDidChangeCursorSelection(() =\u003e this._updateFromSelection()));\n    this._register(this._editor.onDidFocusEditorWidget(() =\u003e this._updateFromFocus()));\n    this._register(this._editor.onDidBlurEditorWidget(() =\u003e this._updateFromFocus()));\n    this._register(this._editor.onDidFocusEditorText(() =\u003e this._updateFromFocus()));\n    this._register(this._editor.onDidBlurEditorText(() =\u003e this._updateFromFocus()));\n    this._register(this._editor.onDidChangeModel(() =\u003e this._updateFromModel()));\n    this._register(this._editor.onDidChangeConfiguration(() =\u003e this._updateFromModel()));\n    this._register(TabFocus.onDidChangeTabFocus((tabFocusMode) =\u003e this._tabMovesFocus.set(tabFocusMode)));\n    this._updateFromConfig();\n    this._updateFromSelection();\n    this._updateFromFocus();\n    this._updateFromModel();\n    this._editorSimpleInput.set(this._editor.isSimpleWidget);\n  }\n  _updateFromConfig() {\n    const options2 = this._editor.getOptions();\n    this._tabMovesFocus.set(options2.get(\n      163\n      /* EditorOption.tabFocusMode */\n    ) || TabFocus.getTabFocusMode());\n    this._editorReadonly.set(options2.get(\n      103\n      /* EditorOption.readOnly */\n    ));\n    this._inDiffEditor.set(options2.get(\n      70\n      /* EditorOption.inDiffEditor */\n    ));\n    this._editorColumnSelection.set(options2.get(\n      28\n      /* EditorOption.columnSelection */\n    ));\n  }\n  _updateFromSelection() {\n    const selections = this._editor.getSelections();\n    if (!selections) {\n      this._hasMultipleSelections.reset();\n      this._hasNonEmptySelection.reset();\n    } else {\n      this._hasMultipleSelections.set(selections.length \u003e 1);\n      this._hasNonEmptySelection.set(selections.some((s) =\u003e !s.isEmpty()));\n    }\n  }\n  _updateFromFocus() {\n    this._editorFocus.set(this._editor.hasWidgetFocus() \u0026\u0026 !this._editor.isSimpleWidget);\n    this._editorTextFocus.set(this._editor.hasTextFocus() \u0026\u0026 !this._editor.isSimpleWidget);\n    this._textInputFocus.set(this._editor.hasTextFocus());\n  }\n  _updateFromModel() {\n    const model = this._editor.getModel();\n    this._canUndo.set(Boolean(model \u0026\u0026 model.canUndo()));\n    this._canRedo.set(Boolean(model \u0026\u0026 model.canRedo()));\n  }\n};\nvar EditorModeContext = class extends Disposable {\n  constructor(_editor, _contextKeyService, _languageFeaturesService) {\n    super();\n    this._editor = _editor;\n    this._contextKeyService = _contextKeyService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._langId = EditorContextKeys.languageId.bindTo(_contextKeyService);\n    this._hasCompletionItemProvider = EditorContextKeys.hasCompletionItemProvider.bindTo(_contextKeyService);\n    this._hasCodeActionsProvider = EditorContextKeys.hasCodeActionsProvider.bindTo(_contextKeyService);\n    this._hasCodeLensProvider = EditorContextKeys.hasCodeLensProvider.bindTo(_contextKeyService);\n    this._hasDefinitionProvider = EditorContextKeys.hasDefinitionProvider.bindTo(_contextKeyService);\n    this._hasDeclarationProvider = EditorContextKeys.hasDeclarationProvider.bindTo(_contextKeyService);\n    this._hasImplementationProvider = EditorContextKeys.hasImplementationProvider.bindTo(_contextKeyService);\n    this._hasTypeDefinitionProvider = EditorContextKeys.hasTypeDefinitionProvider.bindTo(_contextKeyService);\n    this._hasHoverProvider = EditorContextKeys.hasHoverProvider.bindTo(_contextKeyService);\n    this._hasDocumentHighlightProvider = EditorContextKeys.hasDocumentHighlightProvider.bindTo(_contextKeyService);\n    this._hasDocumentSymbolProvider = EditorContextKeys.hasDocumentSymbolProvider.bindTo(_contextKeyService);\n    this._hasReferenceProvider = EditorContextKeys.hasReferenceProvider.bindTo(_contextKeyService);\n    this._hasRenameProvider = EditorContextKeys.hasRenameProvider.bindTo(_contextKeyService);\n    this._hasSignatureHelpProvider = EditorContextKeys.hasSignatureHelpProvider.bindTo(_contextKeyService);\n    this._hasInlayHintsProvider = EditorContextKeys.hasInlayHintsProvider.bindTo(_contextKeyService);\n    this._hasDocumentFormattingProvider = EditorContextKeys.hasDocumentFormattingProvider.bindTo(_contextKeyService);\n    this._hasDocumentSelectionFormattingProvider = EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(_contextKeyService);\n    this._hasMultipleDocumentFormattingProvider = EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(_contextKeyService);\n    this._hasMultipleDocumentSelectionFormattingProvider = EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(_contextKeyService);\n    this._isInEmbeddedEditor = EditorContextKeys.isInEmbeddedEditor.bindTo(_contextKeyService);\n    const update = () =\u003e this._update();\n    this._register(_editor.onDidChangeModel(update));\n    this._register(_editor.onDidChangeModelLanguage(update));\n    this._register(_languageFeaturesService.completionProvider.onDidChange(update));\n    this._register(_languageFeaturesService.codeActionProvider.onDidChange(update));\n    this._register(_languageFeaturesService.codeLensProvider.onDidChange(update));\n    this._register(_languageFeaturesService.definitionProvider.onDidChange(update));\n    this._register(_languageFeaturesService.declarationProvider.onDidChange(update));\n    this._register(_languageFeaturesService.implementationProvider.onDidChange(update));\n    this._register(_languageFeaturesService.typeDefinitionProvider.onDidChange(update));\n    this._register(_languageFeaturesService.hoverProvider.onDidChange(update));\n    this._register(_languageFeaturesService.documentHighlightProvider.onDidChange(update));\n    this._register(_languageFeaturesService.documentSymbolProvider.onDidChange(update));\n    this._register(_languageFeaturesService.referenceProvider.onDidChange(update));\n    this._register(_languageFeaturesService.renameProvider.onDidChange(update));\n    this._register(_languageFeaturesService.documentFormattingEditProvider.onDidChange(update));\n    this._register(_languageFeaturesService.documentRangeFormattingEditProvider.onDidChange(update));\n    this._register(_languageFeaturesService.signatureHelpProvider.onDidChange(update));\n    this._register(_languageFeaturesService.inlayHintsProvider.onDidChange(update));\n    update();\n  }\n  dispose() {\n    super.dispose();\n  }\n  reset() {\n    this._contextKeyService.bufferChangeEvents(() =\u003e {\n      this._langId.reset();\n      this._hasCompletionItemProvider.reset();\n      this._hasCodeActionsProvider.reset();\n      this._hasCodeLensProvider.reset();\n      this._hasDefinitionProvider.reset();\n      this._hasDeclarationProvider.reset();\n      this._hasImplementationProvider.reset();\n      this._hasTypeDefinitionProvider.reset();\n      this._hasHoverProvider.reset();\n      this._hasDocumentHighlightProvider.reset();\n      this._hasDocumentSymbolProvider.reset();\n      this._hasReferenceProvider.reset();\n      this._hasRenameProvider.reset();\n      this._hasDocumentFormattingProvider.reset();\n      this._hasDocumentSelectionFormattingProvider.reset();\n      this._hasSignatureHelpProvider.reset();\n      this._isInEmbeddedEditor.reset();\n    });\n  }\n  _update() {\n    const model = this._editor.getModel();\n    if (!model) {\n      this.reset();\n      return;\n    }\n    this._contextKeyService.bufferChangeEvents(() =\u003e {\n      this._langId.set(model.getLanguageId());\n      this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(model));\n      this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(model));\n      this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(model));\n      this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(model));\n      this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(model));\n      this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(model));\n      this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(model));\n      this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(model));\n      this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(model));\n      this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(model));\n      this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(model));\n      this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(model));\n      this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(model));\n      this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(model));\n      this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(model) || this._languageFeaturesService.documentRangeFormattingEditProvider.has(model));\n      this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(model));\n      this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(model).length + this._languageFeaturesService.documentRangeFormattingEditProvider.all(model).length \u003e 1);\n      this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(model).length \u003e 1);\n      this._isInEmbeddedEditor.set(model.uri.scheme === Schemas.walkThroughSnippet || model.uri.scheme === Schemas.vscodeChatCodeBlock);\n    });\n  }\n};\nvar EditorDecorationsCollection = class {\n  get length() {\n    return this._decorationIds.length;\n  }\n  constructor(_editor, decorations) {\n    this._editor = _editor;\n    this._decorationIds = [];\n    this._isChangingDecorations = false;\n    if (Array.isArray(decorations) \u0026\u0026 decorations.length \u003e 0) {\n      this.set(decorations);\n    }\n  }\n  onDidChange(listener, thisArgs, disposables) {\n    return this._editor.onDidChangeModelDecorations((e) =\u003e {\n      if (this._isChangingDecorations) {\n        return;\n      }\n      listener.call(thisArgs, e);\n    }, disposables);\n  }\n  getRange(index) {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    if (index \u003e= this._decorationIds.length) {\n      return null;\n    }\n    return this._editor.getModel().getDecorationRange(this._decorationIds[index]);\n  }\n  getRanges() {\n    if (!this._editor.hasModel()) {\n      return [];\n    }\n    const model = this._editor.getModel();\n    const result = [];\n    for (const decorationId of this._decorationIds) {\n      const range2 = model.getDecorationRange(decorationId);\n      if (range2) {\n        result.push(range2);\n      }\n    }\n    return result;\n  }\n  has(decoration3) {\n    return this._decorationIds.includes(decoration3.id);\n  }\n  clear() {\n    if (this._decorationIds.length === 0) {\n      return;\n    }\n    this.set([]);\n  }\n  set(newDecorations) {\n    try {\n      this._isChangingDecorations = true;\n      this._editor.changeDecorations((accessor) =\u003e {\n        this._decorationIds = accessor.deltaDecorations(this._decorationIds, newDecorations);\n      });\n    } finally {\n      this._isChangingDecorations = false;\n    }\n    return this._decorationIds;\n  }\n  append(newDecorations) {\n    let newDecorationIds = [];\n    try {\n      this._isChangingDecorations = true;\n      this._editor.changeDecorations((accessor) =\u003e {\n        newDecorationIds = accessor.deltaDecorations([], newDecorations);\n        this._decorationIds = this._decorationIds.concat(newDecorationIds);\n      });\n    } finally {\n      this._isChangingDecorations = false;\n    }\n    return newDecorationIds;\n  }\n};\nvar squigglyStart = encodeURIComponent(`\u003csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 6 3' enable-background='new 0 0 6 3' height='3' width='6'\u003e\u003cg fill='`);\nvar squigglyEnd = encodeURIComponent(`'\u003e\u003cpolygon points='5.5,0 2.5,3 1.1,3 4.1,0'/\u003e\u003cpolygon points='4,0 6,2 6,0.6 5.4,0'/\u003e\u003cpolygon points='0,2 1,3 2.4,3 0,0.6'/\u003e\u003c/g\u003e\u003c/svg\u003e`);\nfunction getSquigglySVGData(color) {\n  return squigglyStart + encodeURIComponent(color.toString()) + squigglyEnd;\n}\nvar dotdotdotStart = encodeURIComponent(`\u003csvg xmlns=\"http://www.w3.org/2000/svg\" height=\"3\" width=\"12\"\u003e\u003cg fill=\"`);\nvar dotdotdotEnd = encodeURIComponent(`\"\u003e\u003ccircle cx=\"1\" cy=\"1\" r=\"1\"/\u003e\u003ccircle cx=\"5\" cy=\"1\" r=\"1\"/\u003e\u003ccircle cx=\"9\" cy=\"1\" r=\"1\"/\u003e\u003c/g\u003e\u003c/svg\u003e`);\nfunction getDotDotDotSVGData(color) {\n  return dotdotdotStart + encodeURIComponent(color.toString()) + dotdotdotEnd;\n}\nregisterThemingParticipant((theme, collector) =\u003e {\n  const errorForeground2 = theme.getColor(editorErrorForeground);\n  if (errorForeground2) {\n    collector.addRule(`.monaco-editor .${\"squiggly-error\"} { background: url(\"data:image/svg+xml,${getSquigglySVGData(errorForeground2)}\") repeat-x bottom left; }`);\n    collector.addRule(`:root { --monaco-editor-error-decoration: url(\"data:image/svg+xml,${getSquigglySVGData(errorForeground2)}\"); }`);\n  }\n  const warningForeground = theme.getColor(editorWarningForeground);\n  if (warningForeground) {\n    collector.addRule(`.monaco-editor .${\"squiggly-warning\"} { background: url(\"data:image/svg+xml,${getSquigglySVGData(warningForeground)}\") repeat-x bottom left; }`);\n    collector.addRule(`:root { --monaco-editor-warning-decoration: url(\"data:image/svg+xml,${getSquigglySVGData(warningForeground)}\"); }`);\n  }\n  const infoForeground = theme.getColor(editorInfoForeground);\n  if (infoForeground) {\n    collector.addRule(`.monaco-editor .${\"squiggly-info\"} { background: url(\"data:image/svg+xml,${getSquigglySVGData(infoForeground)}\") repeat-x bottom left; }`);\n    collector.addRule(`:root { --monaco-editor-info-decoration: url(\"data:image/svg+xml,${getSquigglySVGData(infoForeground)}\"); }`);\n  }\n  const hintForeground = theme.getColor(editorHintForeground);\n  if (hintForeground) {\n    collector.addRule(`.monaco-editor .${\"squiggly-hint\"} { background: url(\"data:image/svg+xml,${getDotDotDotSVGData(hintForeground)}\") no-repeat bottom left; }`);\n    collector.addRule(`:root { --monaco-editor-hint-decoration: url(\"data:image/svg+xml,${getDotDotDotSVGData(hintForeground)}\"); }`);\n  }\n  const unnecessaryForeground = theme.getColor(editorUnnecessaryCodeOpacity);\n  if (unnecessaryForeground) {\n    collector.addRule(`.monaco-editor.showUnused .${\"squiggly-inline-unnecessary\"} { opacity: ${unnecessaryForeground.rgba.a}; }`);\n    collector.addRule(`:root { --monaco-editor-unnecessary-decoration-opacity: ${unnecessaryForeground.rgba.a}; }`);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js\ninit_codicons();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/commands.js\ninit_dom();\ninit_codicons();\ninit_editorExtensions();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js\ninit_dom();\ninit_arraysFind();\ninit_errors();\ninit_event();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/hotReload.js\nfunction isHotReloadEnabled() {\n  return false;\n}\nfunction registerHotReloadHandler(handler) {\n  if (!isHotReloadEnabled()) {\n    return { dispose() {\n    } };\n  } else {\n    const handlers = registerGlobalHotReloadHandler();\n    handlers.add(handler);\n    return {\n      dispose() {\n        handlers.delete(handler);\n      }\n    };\n  }\n}\nfunction registerGlobalHotReloadHandler() {\n  if (!hotReloadHandlers) {\n    hotReloadHandlers = /* @__PURE__ */ new Set();\n  }\n  const g = globalThis;\n  if (!g.$hotReload_applyNewExports) {\n    g.$hotReload_applyNewExports = (args) =\u003e {\n      const args2 = { config: { mode: void 0 }, ...args };\n      const results = [];\n      for (const h2 of hotReloadHandlers) {\n        const result = h2(args2);\n        if (result) {\n          results.push(result);\n        }\n      }\n      if (results.length \u003e 0) {\n        return (newExports) =\u003e {\n          let result = false;\n          for (const r of results) {\n            if (r(newExports)) {\n              result = true;\n            }\n          }\n          return result;\n        };\n      }\n      return void 0;\n    };\n  }\n  return hotReloadHandlers;\n}\nvar hotReloadHandlers = void 0;\nif (isHotReloadEnabled()) {\n  registerHotReloadHandler(({ oldExports, newSrc, config }) =\u003e {\n    if (config.mode !== \"patch-prototype\") {\n      return void 0;\n    }\n    return (newExports) =\u003e {\n      for (const key in newExports) {\n        const exportedItem = newExports[key];\n        console.log(`[hot-reload] Patching prototype methods of '${key}'`, { exportedItem });\n        if (typeof exportedItem === \"function\" \u0026\u0026 exportedItem.prototype) {\n          const oldExportedItem = oldExports[key];\n          if (oldExportedItem) {\n            for (const prop of Object.getOwnPropertyNames(exportedItem.prototype)) {\n              const descriptor = Object.getOwnPropertyDescriptor(exportedItem.prototype, prop);\n              const oldDescriptor = Object.getOwnPropertyDescriptor(oldExportedItem.prototype, prop);\n              if (descriptor?.value?.toString() !== oldDescriptor?.value?.toString()) {\n                console.log(`[hot-reload] Patching prototype method '${key}.${prop}'`);\n              }\n              Object.defineProperty(oldExportedItem.prototype, prop, descriptor);\n            }\n            newExports[key] = oldExportedItem;\n          }\n        }\n      }\n      return true;\n    };\n  });\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/hotReloadHelpers.js\ninit_observable();\nfunction readHotReloadableExport(value, reader) {\n  observeHotReloadableExports([value], reader);\n  return value;\n}\nfunction observeHotReloadableExports(values, reader) {\n  if (isHotReloadEnabled()) {\n    const o = observableSignalFromEvent(\"reload\", (event) =\u003e registerHotReloadHandler(({ oldExports }) =\u003e {\n      if (![...Object.values(oldExports)].some((v) =\u003e values.includes(v))) {\n        return void 0;\n      }\n      return (_newExports) =\u003e {\n        event(void 0);\n        return true;\n      };\n    }));\n    o.read(reader);\n  }\n}\nvar classes = /* @__PURE__ */ new Map();\nfunction createHotClass(clazz) {\n  if (!isHotReloadEnabled()) {\n    return constObservable(clazz);\n  }\n  const id = clazz.name;\n  let existing = classes.get(id);\n  if (!existing) {\n    existing = observableValue(id, clazz);\n    classes.set(id, existing);\n  } else {\n    setTimeout(() =\u003e {\n      existing.set(clazz, void 0);\n    }, 0);\n  }\n  return existing;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js\ninit_lifecycle();\ninit_observable();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js\ninit_nls();\ninit_instantiation();\nvar IAccessibilitySignalService = createDecorator(\"accessibilitySignalService\");\nvar AcknowledgeDocCommentsToken = Symbol(\"AcknowledgeDocCommentsToken\");\nvar Sound = class _Sound {\n  static register(options2) {\n    const sound = new _Sound(options2.fileName);\n    return sound;\n  }\n  static {\n    this.error = _Sound.register({ fileName: \"error.mp3\" });\n  }\n  static {\n    this.warning = _Sound.register({ fileName: \"warning.mp3\" });\n  }\n  static {\n    this.success = _Sound.register({ fileName: \"success.mp3\" });\n  }\n  static {\n    this.foldedArea = _Sound.register({ fileName: \"foldedAreas.mp3\" });\n  }\n  static {\n    this.break = _Sound.register({ fileName: \"break.mp3\" });\n  }\n  static {\n    this.quickFixes = _Sound.register({ fileName: \"quickFixes.mp3\" });\n  }\n  static {\n    this.taskCompleted = _Sound.register({ fileName: \"taskCompleted.mp3\" });\n  }\n  static {\n    this.taskFailed = _Sound.register({ fileName: \"taskFailed.mp3\" });\n  }\n  static {\n    this.terminalBell = _Sound.register({ fileName: \"terminalBell.mp3\" });\n  }\n  static {\n    this.diffLineInserted = _Sound.register({ fileName: \"diffLineInserted.mp3\" });\n  }\n  static {\n    this.diffLineDeleted = _Sound.register({ fileName: \"diffLineDeleted.mp3\" });\n  }\n  static {\n    this.diffLineModified = _Sound.register({ fileName: \"diffLineModified.mp3\" });\n  }\n  static {\n    this.requestSent = _Sound.register({ fileName: \"requestSent.mp3\" });\n  }\n  static {\n    this.responseReceived1 = _Sound.register({ fileName: \"responseReceived1.mp3\" });\n  }\n  static {\n    this.responseReceived2 = _Sound.register({ fileName: \"responseReceived2.mp3\" });\n  }\n  static {\n    this.responseReceived3 = _Sound.register({ fileName: \"responseReceived3.mp3\" });\n  }\n  static {\n    this.responseReceived4 = _Sound.register({ fileName: \"responseReceived4.mp3\" });\n  }\n  static {\n    this.clear = _Sound.register({ fileName: \"clear.mp3\" });\n  }\n  static {\n    this.save = _Sound.register({ fileName: \"save.mp3\" });\n  }\n  static {\n    this.format = _Sound.register({ fileName: \"format.mp3\" });\n  }\n  static {\n    this.voiceRecordingStarted = _Sound.register({ fileName: \"voiceRecordingStarted.mp3\" });\n  }\n  static {\n    this.voiceRecordingStopped = _Sound.register({ fileName: \"voiceRecordingStopped.mp3\" });\n  }\n  static {\n    this.progress = _Sound.register({ fileName: \"progress.mp3\" });\n  }\n  static {\n    this.chatEditModifiedFile = _Sound.register({ fileName: \"chatEditModifiedFile.mp3\" });\n  }\n  static {\n    this.editsKept = _Sound.register({ fileName: \"editsKept.mp3\" });\n  }\n  static {\n    this.editsUndone = _Sound.register({ fileName: \"editsUndone.mp3\" });\n  }\n  static {\n    this.nextEditSuggestion = _Sound.register({ fileName: \"nextEditSuggestion.mp3\" });\n  }\n  static {\n    this.terminalCommandSucceeded = _Sound.register({ fileName: \"terminalCommandSucceeded.mp3\" });\n  }\n  static {\n    this.chatUserActionRequired = _Sound.register({ fileName: \"chatUserActionRequired.mp3\" });\n  }\n  static {\n    this.codeActionTriggered = _Sound.register({ fileName: \"codeActionTriggered.mp3\" });\n  }\n  static {\n    this.codeActionApplied = _Sound.register({ fileName: \"codeActionApplied.mp3\" });\n  }\n  constructor(fileName) {\n    this.fileName = fileName;\n  }\n};\nvar SoundSource = class {\n  constructor(randomOneOf) {\n    this.randomOneOf = randomOneOf;\n  }\n};\nvar AccessibilitySignal = class _AccessibilitySignal {\n  constructor(sound, name, legacySoundSettingsKey, settingsKey, legacyAnnouncementSettingsKey, announcementMessage, managesOwnEnablement = false) {\n    this.sound = sound;\n    this.name = name;\n    this.legacySoundSettingsKey = legacySoundSettingsKey;\n    this.settingsKey = settingsKey;\n    this.legacyAnnouncementSettingsKey = legacyAnnouncementSettingsKey;\n    this.announcementMessage = announcementMessage;\n    this.managesOwnEnablement = managesOwnEnablement;\n  }\n  static {\n    this._signals = /* @__PURE__ */ new Set();\n  }\n  static register(options2) {\n    const soundSource = new SoundSource(\"randomOneOf\" in options2.sound ? options2.sound.randomOneOf : [options2.sound]);\n    const signal = new _AccessibilitySignal(soundSource, options2.name, options2.legacySoundSettingsKey, options2.settingsKey, options2.legacyAnnouncementSettingsKey, options2.announcementMessage, options2.managesOwnEnablement);\n    _AccessibilitySignal._signals.add(signal);\n    return signal;\n  }\n  static {\n    this.errorAtPosition = _AccessibilitySignal.register({\n      name: localize(1558, \"Error at Position\"),\n      sound: Sound.error,\n      announcementMessage: localize(1559, \"Error\"),\n      settingsKey: \"accessibility.signals.positionHasError\",\n      delaySettingsKey: \"accessibility.signalOptions.delays.errorAtPosition\"\n    });\n  }\n  static {\n    this.warningAtPosition = _AccessibilitySignal.register({\n      name: localize(1560, \"Warning at Position\"),\n      sound: Sound.warning,\n      announcementMessage: localize(1561, \"Warning\"),\n      settingsKey: \"accessibility.signals.positionHasWarning\",\n      delaySettingsKey: \"accessibility.signalOptions.delays.warningAtPosition\"\n    });\n  }\n  static {\n    this.errorOnLine = _AccessibilitySignal.register({\n      name: localize(1562, \"Error on Line\"),\n      sound: Sound.error,\n      legacySoundSettingsKey: \"audioCues.lineHasError\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.error\",\n      announcementMessage: localize(1563, \"Error on Line\"),\n      settingsKey: \"accessibility.signals.lineHasError\"\n    });\n  }\n  static {\n    this.warningOnLine = _AccessibilitySignal.register({\n      name: localize(1564, \"Warning on Line\"),\n      sound: Sound.warning,\n      legacySoundSettingsKey: \"audioCues.lineHasWarning\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.warning\",\n      announcementMessage: localize(1565, \"Warning on Line\"),\n      settingsKey: \"accessibility.signals.lineHasWarning\"\n    });\n  }\n  static {\n    this.foldedArea = _AccessibilitySignal.register({\n      name: localize(1566, \"Folded Area on Line\"),\n      sound: Sound.foldedArea,\n      legacySoundSettingsKey: \"audioCues.lineHasFoldedArea\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.foldedArea\",\n      announcementMessage: localize(1567, \"Folded\"),\n      settingsKey: \"accessibility.signals.lineHasFoldedArea\"\n    });\n  }\n  static {\n    this.break = _AccessibilitySignal.register({\n      name: localize(1568, \"Breakpoint on Line\"),\n      sound: Sound.break,\n      legacySoundSettingsKey: \"audioCues.lineHasBreakpoint\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.breakpoint\",\n      announcementMessage: localize(1569, \"Breakpoint\"),\n      settingsKey: \"accessibility.signals.lineHasBreakpoint\"\n    });\n  }\n  static {\n    this.inlineSuggestion = _AccessibilitySignal.register({\n      name: localize(1570, \"Inline Suggestion on Line\"),\n      sound: Sound.quickFixes,\n      legacySoundSettingsKey: \"audioCues.lineHasInlineSuggestion\",\n      settingsKey: \"accessibility.signals.lineHasInlineSuggestion\"\n    });\n  }\n  static {\n    this.nextEditSuggestion = _AccessibilitySignal.register({\n      name: localize(1571, \"Next Edit Suggestion on Line\"),\n      sound: Sound.nextEditSuggestion,\n      legacySoundSettingsKey: \"audioCues.nextEditSuggestion\",\n      settingsKey: \"accessibility.signals.nextEditSuggestion\",\n      announcementMessage: localize(1572, \"Next Edit Suggestion\")\n    });\n  }\n  static {\n    this.terminalQuickFix = _AccessibilitySignal.register({\n      name: localize(1573, \"Terminal Quick Fix\"),\n      sound: Sound.quickFixes,\n      legacySoundSettingsKey: \"audioCues.terminalQuickFix\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.terminalQuickFix\",\n      announcementMessage: localize(1574, \"Quick Fix\"),\n      settingsKey: \"accessibility.signals.terminalQuickFix\"\n    });\n  }\n  static {\n    this.onDebugBreak = _AccessibilitySignal.register({\n      name: localize(1575, \"Debugger Stopped on Breakpoint\"),\n      sound: Sound.break,\n      legacySoundSettingsKey: \"audioCues.onDebugBreak\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.onDebugBreak\",\n      announcementMessage: localize(1576, \"Breakpoint\"),\n      settingsKey: \"accessibility.signals.onDebugBreak\"\n    });\n  }\n  static {\n    this.noInlayHints = _AccessibilitySignal.register({\n      name: localize(1577, \"No Inlay Hints on Line\"),\n      sound: Sound.error,\n      legacySoundSettingsKey: \"audioCues.noInlayHints\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.noInlayHints\",\n      announcementMessage: localize(1578, \"No Inlay Hints\"),\n      settingsKey: \"accessibility.signals.noInlayHints\"\n    });\n  }\n  static {\n    this.taskCompleted = _AccessibilitySignal.register({\n      name: localize(1579, \"Task Completed\"),\n      sound: Sound.taskCompleted,\n      legacySoundSettingsKey: \"audioCues.taskCompleted\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.taskCompleted\",\n      announcementMessage: localize(1580, \"Task Completed\"),\n      settingsKey: \"accessibility.signals.taskCompleted\"\n    });\n  }\n  static {\n    this.taskFailed = _AccessibilitySignal.register({\n      name: localize(1581, \"Task Failed\"),\n      sound: Sound.taskFailed,\n      legacySoundSettingsKey: \"audioCues.taskFailed\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.taskFailed\",\n      announcementMessage: localize(1582, \"Task Failed\"),\n      settingsKey: \"accessibility.signals.taskFailed\"\n    });\n  }\n  static {\n    this.terminalCommandFailed = _AccessibilitySignal.register({\n      name: localize(1583, \"Terminal Command Failed\"),\n      sound: Sound.error,\n      legacySoundSettingsKey: \"audioCues.terminalCommandFailed\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.terminalCommandFailed\",\n      announcementMessage: localize(1584, \"Command Failed\"),\n      settingsKey: \"accessibility.signals.terminalCommandFailed\"\n    });\n  }\n  static {\n    this.terminalCommandSucceeded = _AccessibilitySignal.register({\n      name: localize(1585, \"Terminal Command Succeeded\"),\n      sound: Sound.terminalCommandSucceeded,\n      announcementMessage: localize(1586, \"Command Succeeded\"),\n      settingsKey: \"accessibility.signals.terminalCommandSucceeded\"\n    });\n  }\n  static {\n    this.terminalBell = _AccessibilitySignal.register({\n      name: localize(1587, \"Terminal Bell\"),\n      sound: Sound.terminalBell,\n      legacySoundSettingsKey: \"audioCues.terminalBell\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.terminalBell\",\n      announcementMessage: localize(1588, \"Terminal Bell\"),\n      settingsKey: \"accessibility.signals.terminalBell\"\n    });\n  }\n  static {\n    this.notebookCellCompleted = _AccessibilitySignal.register({\n      name: localize(1589, \"Notebook Cell Completed\"),\n      sound: Sound.taskCompleted,\n      legacySoundSettingsKey: \"audioCues.notebookCellCompleted\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.notebookCellCompleted\",\n      announcementMessage: localize(1590, \"Notebook Cell Completed\"),\n      settingsKey: \"accessibility.signals.notebookCellCompleted\"\n    });\n  }\n  static {\n    this.notebookCellFailed = _AccessibilitySignal.register({\n      name: localize(1591, \"Notebook Cell Failed\"),\n      sound: Sound.taskFailed,\n      legacySoundSettingsKey: \"audioCues.notebookCellFailed\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.notebookCellFailed\",\n      announcementMessage: localize(1592, \"Notebook Cell Failed\"),\n      settingsKey: \"accessibility.signals.notebookCellFailed\"\n    });\n  }\n  static {\n    this.diffLineInserted = _AccessibilitySignal.register({\n      name: localize(1593, \"Diff Line Inserted\"),\n      sound: Sound.diffLineInserted,\n      legacySoundSettingsKey: \"audioCues.diffLineInserted\",\n      settingsKey: \"accessibility.signals.diffLineInserted\"\n    });\n  }\n  static {\n    this.diffLineDeleted = _AccessibilitySignal.register({\n      name: localize(1594, \"Diff Line Deleted\"),\n      sound: Sound.diffLineDeleted,\n      legacySoundSettingsKey: \"audioCues.diffLineDeleted\",\n      settingsKey: \"accessibility.signals.diffLineDeleted\"\n    });\n  }\n  static {\n    this.diffLineModified = _AccessibilitySignal.register({\n      name: localize(1595, \"Diff Line Modified\"),\n      sound: Sound.diffLineModified,\n      legacySoundSettingsKey: \"audioCues.diffLineModified\",\n      settingsKey: \"accessibility.signals.diffLineModified\"\n    });\n  }\n  static {\n    this.chatEditModifiedFile = _AccessibilitySignal.register({\n      name: localize(1596, \"Chat Edit Modified File\"),\n      sound: Sound.chatEditModifiedFile,\n      announcementMessage: localize(1597, \"File Modified from Chat Edits\"),\n      settingsKey: \"accessibility.signals.chatEditModifiedFile\"\n    });\n  }\n  static {\n    this.chatRequestSent = _AccessibilitySignal.register({\n      name: localize(1598, \"Chat Request Sent\"),\n      sound: Sound.requestSent,\n      legacySoundSettingsKey: \"audioCues.chatRequestSent\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.chatRequestSent\",\n      announcementMessage: localize(1599, \"Chat Request Sent\"),\n      settingsKey: \"accessibility.signals.chatRequestSent\"\n    });\n  }\n  static {\n    this.chatResponseReceived = _AccessibilitySignal.register({\n      name: localize(1600, \"Chat Response Received\"),\n      legacySoundSettingsKey: \"audioCues.chatResponseReceived\",\n      sound: {\n        randomOneOf: [\n          Sound.responseReceived1,\n          Sound.responseReceived2,\n          Sound.responseReceived3,\n          Sound.responseReceived4\n        ]\n      },\n      settingsKey: \"accessibility.signals.chatResponseReceived\"\n    });\n  }\n  static {\n    this.codeActionTriggered = _AccessibilitySignal.register({\n      name: localize(1601, \"Code Action Request Triggered\"),\n      sound: Sound.codeActionTriggered,\n      legacySoundSettingsKey: \"audioCues.codeActionRequestTriggered\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.codeActionRequestTriggered\",\n      announcementMessage: localize(1602, \"Code Action Request Triggered\"),\n      settingsKey: \"accessibility.signals.codeActionTriggered\"\n    });\n  }\n  static {\n    this.codeActionApplied = _AccessibilitySignal.register({\n      name: localize(1603, \"Code Action Applied\"),\n      legacySoundSettingsKey: \"audioCues.codeActionApplied\",\n      sound: Sound.codeActionApplied,\n      settingsKey: \"accessibility.signals.codeActionApplied\"\n    });\n  }\n  static {\n    this.progress = _AccessibilitySignal.register({\n      name: localize(1604, \"Progress\"),\n      sound: Sound.progress,\n      legacySoundSettingsKey: \"audioCues.chatResponsePending\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.progress\",\n      announcementMessage: localize(1605, \"Progress\"),\n      settingsKey: \"accessibility.signals.progress\"\n    });\n  }\n  static {\n    this.clear = _AccessibilitySignal.register({\n      name: localize(1606, \"Clear\"),\n      sound: Sound.clear,\n      legacySoundSettingsKey: \"audioCues.clear\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.clear\",\n      announcementMessage: localize(1607, \"Clear\"),\n      settingsKey: \"accessibility.signals.clear\"\n    });\n  }\n  static {\n    this.save = _AccessibilitySignal.register({\n      name: localize(1608, \"Save\"),\n      sound: Sound.save,\n      legacySoundSettingsKey: \"audioCues.save\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.save\",\n      announcementMessage: localize(1609, \"Save\"),\n      settingsKey: \"accessibility.signals.save\"\n    });\n  }\n  static {\n    this.format = _AccessibilitySignal.register({\n      name: localize(1610, \"Format\"),\n      sound: Sound.format,\n      legacySoundSettingsKey: \"audioCues.format\",\n      legacyAnnouncementSettingsKey: \"accessibility.alert.format\",\n      announcementMessage: localize(1611, \"Format\"),\n      settingsKey: \"accessibility.signals.format\"\n    });\n  }\n  static {\n    this.voiceRecordingStarted = _AccessibilitySignal.register({\n      name: localize(1612, \"Voice Recording Started\"),\n      sound: Sound.voiceRecordingStarted,\n      legacySoundSettingsKey: \"audioCues.voiceRecordingStarted\",\n      settingsKey: \"accessibility.signals.voiceRecordingStarted\"\n    });\n  }\n  static {\n    this.voiceRecordingStopped = _AccessibilitySignal.register({\n      name: localize(1613, \"Voice Recording Stopped\"),\n      sound: Sound.voiceRecordingStopped,\n      legacySoundSettingsKey: \"audioCues.voiceRecordingStopped\",\n      settingsKey: \"accessibility.signals.voiceRecordingStopped\"\n    });\n  }\n  static {\n    this.editsKept = _AccessibilitySignal.register({\n      name: localize(1614, \"Edits Kept\"),\n      sound: Sound.editsKept,\n      announcementMessage: localize(1615, \"Edits Kept\"),\n      settingsKey: \"accessibility.signals.editsKept\"\n    });\n  }\n  static {\n    this.editsUndone = _AccessibilitySignal.register({\n      name: localize(1616, \"Undo Edits\"),\n      sound: Sound.editsUndone,\n      announcementMessage: localize(1617, \"Edits Undone\"),\n      settingsKey: \"accessibility.signals.editsUndone\"\n    });\n  }\n  static {\n    this.chatUserActionRequired = _AccessibilitySignal.register({\n      name: localize(1618, \"Chat User Action Required\"),\n      sound: Sound.chatUserActionRequired,\n      announcementMessage: localize(1619, \"Chat User Action Required\"),\n      settingsKey: \"accessibility.signals.chatUserActionRequired\",\n      managesOwnEnablement: true\n    });\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/observable/common/platformObservableUtils.js\ninit_lifecycle();\ninit_observable();\nfunction observableConfigValue(key, defaultValue, configurationService, debugLocation = DebugLocation.ofCaller()) {\n  return observableFromEventOpts({ debugName: () =\u003e `Configuration Key \"${key}\"` }, (handleChange) =\u003e configurationService.onDidChangeConfiguration((e) =\u003e {\n    if (e.affectsConfiguration(key)) {\n      handleChange(e);\n    }\n  }), () =\u003e configurationService.getValue(key) ?? defaultValue, debugLocation);\n}\nfunction bindContextKey(key, service, computeValue, debugLocation = DebugLocation.ofCaller()) {\n  const boundKey = key.bindTo(service);\n  const store = new DisposableStore();\n  derivedOpts({ debugName: () =\u003e `Set Context Key \"${key.key}\"` }, (reader) =\u003e {\n    const value = computeValue(reader);\n    boundKey.set(value);\n    return value;\n  }, debugLocation).recomputeInitiallyAndOnChange(store);\n  return store;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/progress/common/progress.js\ninit_instantiation();\nvar IProgressService = createDecorator(\"progressService\");\nvar emptyProgressRunner = Object.freeze({\n  total() {\n  },\n  worked() {\n  },\n  done() {\n  }\n});\nvar Progress = class {\n  static {\n    this.None = Object.freeze({ report() {\n    } });\n  }\n  constructor(callback) {\n    this.callback = callback;\n  }\n  report(item) {\n    this._value = item;\n    this.callback(this._value);\n  }\n};\nvar IEditorProgressService = createDecorator(\"editorProgressService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js\ninit_position();\ninit_range();\ninit_editorContextKeys();\ninit_editorExtensions();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/stableEditorScroll.js\nvar StableEditorScrollState = class _StableEditorScrollState {\n  static capture(editor2) {\n    if (editor2.getScrollTop() === 0 || editor2.hasPendingScrollAnimation()) {\n      return new _StableEditorScrollState(editor2.getScrollTop(), editor2.getContentHeight(), null, 0, null);\n    }\n    let visiblePosition = null;\n    let visiblePositionScrollDelta = 0;\n    const visibleRanges = editor2.getVisibleRanges();\n    if (visibleRanges.length \u003e 0) {\n      visiblePosition = visibleRanges[0].getStartPosition();\n      const visiblePositionScrollTop = editor2.getTopForPosition(visiblePosition.lineNumber, visiblePosition.column);\n      visiblePositionScrollDelta = editor2.getScrollTop() - visiblePositionScrollTop;\n    }\n    return new _StableEditorScrollState(editor2.getScrollTop(), editor2.getContentHeight(), visiblePosition, visiblePositionScrollDelta, editor2.getPosition());\n  }\n  constructor(_initialScrollTop, _initialContentHeight, _visiblePosition, _visiblePositionScrollDelta, _cursorPosition) {\n    this._initialScrollTop = _initialScrollTop;\n    this._initialContentHeight = _initialContentHeight;\n    this._visiblePosition = _visiblePosition;\n    this._visiblePositionScrollDelta = _visiblePositionScrollDelta;\n    this._cursorPosition = _cursorPosition;\n  }\n  restore(editor2) {\n    if (this._initialContentHeight === editor2.getContentHeight() \u0026\u0026 this._initialScrollTop === editor2.getScrollTop()) {\n      return;\n    }\n    if (this._visiblePosition) {\n      const visiblePositionScrollTop = editor2.getTopForPosition(this._visiblePosition.lineNumber, this._visiblePosition.column);\n      editor2.setScrollTop(visiblePositionScrollTop + this._visiblePositionScrollDelta);\n    }\n  }\n  restoreRelativeVerticalPositionOfCursor(editor2) {\n    if (this._initialContentHeight === editor2.getContentHeight() \u0026\u0026 this._initialScrollTop === editor2.getScrollTop()) {\n      return;\n    }\n    const currentCursorPosition = editor2.getPosition();\n    if (!this._cursorPosition || !currentCursorPosition) {\n      return;\n    }\n    const offset = editor2.getTopForLineNumber(currentCursorPosition.lineNumber) - editor2.getTopForLineNumber(this._cursorPosition.lineNumber);\n    editor2.setScrollTop(\n      editor2.getScrollTop() + offset,\n      1\n      /* ScrollType.Immediate */\n    );\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/actionbar/actionbar.js\ninit_dom();\ninit_keyboardEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/actionbar/actionViewItems.js\ninit_browser();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/dnd.js\ninit_mime();\nvar DataTransfers = {\n  /**\n   * Application specific resource transfer type\n   */\n  RESOURCES: \"ResourceURLs\",\n  /**\n   * Browser specific transfer type to download\n   */\n  DOWNLOAD_URL: \"DownloadURL\",\n  /**\n   * Browser specific transfer type for files\n   */\n  FILES: \"Files\",\n  /**\n   * Typically transfer type for copy/paste transfers.\n   */\n  TEXT: Mimes.text,\n  /**\n   * Internal type used to pass around text/uri-list data.\n   *\n   * This is needed to work around https://bugs.chromium.org/p/chromium/issues/detail?id=239745.\n   */\n  INTERNAL_URI_LIST: \"application/vnd.code.uri-list\"\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/actionbar/actionViewItems.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/hover/hoverDelegateFactory.js\ninit_lazy();\nvar nullHoverDelegateFactory = () =\u003e ({\n  get delay() {\n    return -1;\n  },\n  dispose: () =\u003e {\n  },\n  showHover: () =\u003e {\n    return void 0;\n  }\n});\nvar hoverDelegateFactory = nullHoverDelegateFactory;\nvar defaultHoverDelegateMouse = new Lazy(() =\u003e hoverDelegateFactory(\"mouse\", false));\nvar defaultHoverDelegateElement = new Lazy(() =\u003e hoverDelegateFactory(\"element\", false));\nfunction setHoverDelegateFactory(hoverDelegateProvider) {\n  hoverDelegateFactory = hoverDelegateProvider;\n}\nfunction getDefaultHoverDelegate(placement) {\n  if (placement === \"element\") {\n    return defaultHoverDelegateElement.value;\n  }\n  return defaultHoverDelegateMouse.value;\n}\nfunction createInstantHoverDelegate() {\n  return hoverDelegateFactory(\"element\", true);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/selectBox/selectBox.js\ninit_platform();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js\ninit_nls();\ninit_arrays();\ninit_event();\ninit_keyCodes();\ninit_lifecycle();\ninit_platform();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/cssValue.js\ninit_network();\nfunction asFragment(raw) {\n  return raw;\n}\nfunction asCssValueWithDefault(cssPropertyValue, dflt) {\n  if (cssPropertyValue !== void 0) {\n    const variableMatch = cssPropertyValue.match(/^\\s*var\\((.+)\\)$/);\n    if (variableMatch) {\n      const varArguments = variableMatch[1].split(\",\", 2);\n      if (varArguments.length === 2) {\n        dflt = asCssValueWithDefault(varArguments[1].trim(), dflt);\n      }\n      return `var(${varArguments[0]}, ${dflt})`;\n    }\n    return cssPropertyValue;\n  }\n  return dflt;\n}\nfunction identValue(value) {\n  const out = value.replaceAll(/[^_\\-a-z0-9]/gi, \"\");\n  if (out !== value) {\n    console.warn(`CSS ident value ${value} modified to ${out} to be safe for CSS`);\n  }\n  return asFragment(out);\n}\nfunction stringValue(value) {\n  return asFragment(`'${value.replaceAll(/'/g, \"\\\\000027\")}'`);\n}\nfunction asCSSUrl(uri) {\n  if (!uri) {\n    return asFragment(`url('')`);\n  }\n  return inline`url('${asFragment(CSS.escape(FileAccess.uriToBrowserUri(uri).toString(true)))}')`;\n}\nfunction className(value, escapingExpected = false) {\n  const out = CSS.escape(value);\n  if (!escapingExpected \u0026\u0026 out !== value) {\n    console.warn(`CSS class name ${value} modified to ${out} to be safe for CSS`);\n  }\n  return asFragment(out);\n}\nfunction inline(strings, ...values) {\n  return asFragment(strings.reduce((result, str, i2) =\u003e {\n    const value = values[i2] || \"\";\n    return result + str + value;\n  }, \"\"));\n}\nvar Builder = class {\n  constructor() {\n    this._parts = [];\n  }\n  push(...parts) {\n    this._parts.push(...parts);\n  }\n  join(joiner = \"\\n\") {\n    return asFragment(this._parts.join(joiner));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js\ninit_dom();\ninit_keyboardEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/markdownRenderer.js\ninit_errors();\ninit_htmlContent();\ninit_iconLabels();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/idGenerator.js\nvar IdGenerator = class {\n  constructor(prefix) {\n    this._prefix = prefix;\n    this._lastId = 0;\n  }\n  nextId() {\n    return this._prefix + ++this._lastId;\n  }\n};\nvar defaultGenerator = new IdGenerator(\"id#\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/markdownRenderer.js\ninit_lazy();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/marked/marked.js\nfunction _getDefaults() {\n  return {\n    async: false,\n    breaks: false,\n    extensions: null,\n    gfm: true,\n    hooks: null,\n    pedantic: false,\n    renderer: null,\n    silent: false,\n    tokenizer: null,\n    walkTokens: null\n  };\n}\nvar _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n  _defaults = newDefaults;\n}\nvar escapeTest = /[\u0026\u003c\u003e\"']/;\nvar escapeReplace = new RegExp(escapeTest.source, \"g\");\nvar escapeTestNoEncode = /[\u003c\u003e\"']|\u0026(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/;\nvar escapeReplaceNoEncode = new RegExp(escapeTestNoEncode.source, \"g\");\nvar escapeReplacements = {\n  \"\u0026\": \"\u0026amp;\",\n  \"\u003c\": \"\u0026lt;\",\n  \"\u003e\": \"\u0026gt;\",\n  '\"': \"\u0026quot;\",\n  \"'\": \"\u0026#39;\"\n};\nvar getEscapeReplacement = (ch) =\u003e escapeReplacements[ch];\nfunction escape$1(html3, encode) {\n  if (encode) {\n    if (escapeTest.test(html3)) {\n      return html3.replace(escapeReplace, getEscapeReplacement);\n    }\n  } else {\n    if (escapeTestNoEncode.test(html3)) {\n      return html3.replace(escapeReplaceNoEncode, getEscapeReplacement);\n    }\n  }\n  return html3;\n}\nvar caret = /(^|[^\\[])\\^/g;\nfunction edit(regex, opt) {\n  let source = typeof regex === \"string\" ? regex : regex.source;\n  opt = opt || \"\";\n  const obj = {\n    replace: (name, val) =\u003e {\n      let valSource = typeof val === \"string\" ? val : val.source;\n      valSource = valSource.replace(caret, \"$1\");\n      source = source.replace(name, valSource);\n      return obj;\n    },\n    getRegex: () =\u003e {\n      return new RegExp(source, opt);\n    }\n  };\n  return obj;\n}\nfunction cleanUrl(href) {\n  try {\n    href = encodeURI(href).replace(/%25/g, \"%\");\n  } catch {\n    return null;\n  }\n  return href;\n}\nvar noopTest = { exec: () =\u003e null };\nfunction splitCells(tableRow, count) {\n  const row = tableRow.replace(/\\|/g, (match2, offset, str) =\u003e {\n    let escaped = false;\n    let curr = offset;\n    while (--curr \u003e= 0 \u0026\u0026 str[curr] === \"\\\\\")\n      escaped = !escaped;\n    if (escaped) {\n      return \"|\";\n    } else {\n      return \" |\";\n    }\n  }), cells = row.split(/ \\|/);\n  let i2 = 0;\n  if (!cells[0].trim()) {\n    cells.shift();\n  }\n  if (cells.length \u003e 0 \u0026\u0026 !cells[cells.length - 1].trim()) {\n    cells.pop();\n  }\n  if (count) {\n    if (cells.length \u003e count) {\n      cells.splice(count);\n    } else {\n      while (cells.length \u003c count)\n        cells.push(\"\");\n    }\n  }\n  for (; i2 \u003c cells.length; i2++) {\n    cells[i2] = cells[i2].trim().replace(/\\\\\\|/g, \"|\");\n  }\n  return cells;\n}\nfunction rtrim2(str, c, invert) {\n  const l = str.length;\n  if (l === 0) {\n    return \"\";\n  }\n  let suffLen = 0;\n  while (suffLen \u003c l) {\n    const currChar = str.charAt(l - suffLen - 1);\n    if (currChar === c \u0026\u0026 !invert) {\n      suffLen++;\n    } else if (currChar !== c \u0026\u0026 invert) {\n      suffLen++;\n    } else {\n      break;\n    }\n  }\n  return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n  if (str.indexOf(b[1]) === -1) {\n    return -1;\n  }\n  let level = 0;\n  for (let i2 = 0; i2 \u003c str.length; i2++) {\n    if (str[i2] === \"\\\\\") {\n      i2++;\n    } else if (str[i2] === b[0]) {\n      level++;\n    } else if (str[i2] === b[1]) {\n      level--;\n      if (level \u003c 0) {\n        return i2;\n      }\n    }\n  }\n  return -1;\n}\nfunction outputLink(cap, link2, raw, lexer2) {\n  const href = link2.href;\n  const title = link2.title ? escape$1(link2.title) : null;\n  const text2 = cap[1].replace(/\\\\([\\[\\]])/g, \"$1\");\n  if (cap[0].charAt(0) !== \"!\") {\n    lexer2.state.inLink = true;\n    const token = {\n      type: \"link\",\n      raw,\n      href,\n      title,\n      text: text2,\n      tokens: lexer2.inlineTokens(text2)\n    };\n    lexer2.state.inLink = false;\n    return token;\n  }\n  return {\n    type: \"image\",\n    raw,\n    href,\n    title,\n    text: escape$1(text2)\n  };\n}\nfunction indentCodeCompensation(raw, text2) {\n  const matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n  if (matchIndentToCode === null) {\n    return text2;\n  }\n  const indentToCode = matchIndentToCode[1];\n  return text2.split(\"\\n\").map((node) =\u003e {\n    const matchIndentInNode = node.match(/^\\s+/);\n    if (matchIndentInNode === null) {\n      return node;\n    }\n    const [indentInNode] = matchIndentInNode;\n    if (indentInNode.length \u003e= indentToCode.length) {\n      return node.slice(indentToCode.length);\n    }\n    return node;\n  }).join(\"\\n\");\n}\nvar _Tokenizer = class {\n  options;\n  rules;\n  // set by the lexer\n  lexer;\n  // set by the lexer\n  constructor(options2) {\n    this.options = options2 || _defaults;\n  }\n  space(src) {\n    const cap = this.rules.block.newline.exec(src);\n    if (cap \u0026\u0026 cap[0].length \u003e 0) {\n      return {\n        type: \"space\",\n        raw: cap[0]\n      };\n    }\n  }\n  code(src) {\n    const cap = this.rules.block.code.exec(src);\n    if (cap) {\n      const text2 = cap[0].replace(/^ {1,4}/gm, \"\");\n      return {\n        type: \"code\",\n        raw: cap[0],\n        codeBlockStyle: \"indented\",\n        text: !this.options.pedantic ? rtrim2(text2, \"\\n\") : text2\n      };\n    }\n  }\n  fences(src) {\n    const cap = this.rules.block.fences.exec(src);\n    if (cap) {\n      const raw = cap[0];\n      const text2 = indentCodeCompensation(raw, cap[3] || \"\");\n      return {\n        type: \"code\",\n        raw,\n        lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, \"$1\") : cap[2],\n        text: text2\n      };\n    }\n  }\n  heading(src) {\n    const cap = this.rules.block.heading.exec(src);\n    if (cap) {\n      let text2 = cap[2].trim();\n      if (/#$/.test(text2)) {\n        const trimmed = rtrim2(text2, \"#\");\n        if (this.options.pedantic) {\n          text2 = trimmed.trim();\n        } else if (!trimmed || / $/.test(trimmed)) {\n          text2 = trimmed.trim();\n        }\n      }\n      return {\n        type: \"heading\",\n        raw: cap[0],\n        depth: cap[1].length,\n        text: text2,\n        tokens: this.lexer.inline(text2)\n      };\n    }\n  }\n  hr(src) {\n    const cap = this.rules.block.hr.exec(src);\n    if (cap) {\n      return {\n        type: \"hr\",\n        raw: rtrim2(cap[0], \"\\n\")\n      };\n    }\n  }\n  blockquote(src) {\n    const cap = this.rules.block.blockquote.exec(src);\n    if (cap) {\n      let lines = rtrim2(cap[0], \"\\n\").split(\"\\n\");\n      let raw = \"\";\n      let text2 = \"\";\n      const tokens = [];\n      while (lines.length \u003e 0) {\n        let inBlockquote = false;\n        const currentLines = [];\n        let i2;\n        for (i2 = 0; i2 \u003c lines.length; i2++) {\n          if (/^ {0,3}\u003e/.test(lines[i2])) {\n            currentLines.push(lines[i2]);\n            inBlockquote = true;\n          } else if (!inBlockquote) {\n            currentLines.push(lines[i2]);\n          } else {\n            break;\n          }\n        }\n        lines = lines.slice(i2);\n        const currentRaw = currentLines.join(\"\\n\");\n        const currentText = currentRaw.replace(/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g, \"\\n    $1\").replace(/^ {0,3}\u003e[ \\t]?/gm, \"\");\n        raw = raw ? `${raw}\n${currentRaw}` : currentRaw;\n        text2 = text2 ? `${text2}\n${currentText}` : currentText;\n        const top = this.lexer.state.top;\n        this.lexer.state.top = true;\n        this.lexer.blockTokens(currentText, tokens, true);\n        this.lexer.state.top = top;\n        if (lines.length === 0) {\n          break;\n        }\n        const lastToken = tokens[tokens.length - 1];\n        if (lastToken?.type === \"code\") {\n          break;\n        } else if (lastToken?.type === \"blockquote\") {\n          const oldToken = lastToken;\n          const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n          const newToken = this.blockquote(newText);\n          tokens[tokens.length - 1] = newToken;\n          raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n          text2 = text2.substring(0, text2.length - oldToken.text.length) + newToken.text;\n          break;\n        } else if (lastToken?.type === \"list\") {\n          const oldToken = lastToken;\n          const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n          const newToken = this.list(newText);\n          tokens[tokens.length - 1] = newToken;\n          raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n          text2 = text2.substring(0, text2.length - oldToken.raw.length) + newToken.raw;\n          lines = newText.substring(tokens[tokens.length - 1].raw.length).split(\"\\n\");\n          continue;\n        }\n      }\n      return {\n        type: \"blockquote\",\n        raw,\n        tokens,\n        text: text2\n      };\n    }\n  }\n  list(src) {\n    let cap = this.rules.block.list.exec(src);\n    if (cap) {\n      let bull = cap[1].trim();\n      const isordered = bull.length \u003e 1;\n      const list2 = {\n        type: \"list\",\n        raw: \"\",\n        ordered: isordered,\n        start: isordered ? +bull.slice(0, -1) : \"\",\n        loose: false,\n        items: []\n      };\n      bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n      if (this.options.pedantic) {\n        bull = isordered ? bull : \"[*+-]\";\n      }\n      const itemRegex = new RegExp(`^( {0,3}${bull})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`);\n      let endsWithBlankLine = false;\n      while (src) {\n        let endEarly = false;\n        let raw = \"\";\n        let itemContents = \"\";\n        if (!(cap = itemRegex.exec(src))) {\n          break;\n        }\n        if (this.rules.block.hr.test(src)) {\n          break;\n        }\n        raw = cap[0];\n        src = src.substring(raw.length);\n        let line = cap[2].split(\"\\n\", 1)[0].replace(/^\\t+/, (t) =\u003e \" \".repeat(3 * t.length));\n        let nextLine = src.split(\"\\n\", 1)[0];\n        let blankLine = !line.trim();\n        let indent = 0;\n        if (this.options.pedantic) {\n          indent = 2;\n          itemContents = line.trimStart();\n        } else if (blankLine) {\n          indent = cap[1].length + 1;\n        } else {\n          indent = cap[2].search(/[^ ]/);\n          indent = indent \u003e 4 ? 1 : indent;\n          itemContents = line.slice(indent);\n          indent += cap[1].length;\n        }\n        if (blankLine \u0026\u0026 /^ *$/.test(nextLine)) {\n          raw += nextLine + \"\\n\";\n          src = src.substring(nextLine.length + 1);\n          endEarly = true;\n        }\n        if (!endEarly) {\n          const nextBulletRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`);\n          const hrRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`);\n          const fencesBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`);\n          const headingBeginRegex = new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`);\n          while (src) {\n            const rawLine = src.split(\"\\n\", 1)[0];\n            nextLine = rawLine;\n            if (this.options.pedantic) {\n              nextLine = nextLine.replace(/^ {1,4}(?=( {4})*[^ ])/g, \"  \");\n            }\n            if (fencesBeginRegex.test(nextLine)) {\n              break;\n            }\n            if (headingBeginRegex.test(nextLine)) {\n              break;\n            }\n            if (nextBulletRegex.test(nextLine)) {\n              break;\n            }\n            if (hrRegex.test(src)) {\n              break;\n            }\n            if (nextLine.search(/[^ ]/) \u003e= indent || !nextLine.trim()) {\n              itemContents += \"\\n\" + nextLine.slice(indent);\n            } else {\n              if (blankLine) {\n                break;\n              }\n              if (line.search(/[^ ]/) \u003e= 4) {\n                break;\n              }\n              if (fencesBeginRegex.test(line)) {\n                break;\n              }\n              if (headingBeginRegex.test(line)) {\n                break;\n              }\n              if (hrRegex.test(line)) {\n                break;\n              }\n              itemContents += \"\\n\" + nextLine;\n            }\n            if (!blankLine \u0026\u0026 !nextLine.trim()) {\n              blankLine = true;\n            }\n            raw += rawLine + \"\\n\";\n            src = src.substring(rawLine.length + 1);\n            line = nextLine.slice(indent);\n          }\n        }\n        if (!list2.loose) {\n          if (endsWithBlankLine) {\n            list2.loose = true;\n          } else if (/\\n *\\n *$/.test(raw)) {\n            endsWithBlankLine = true;\n          }\n        }\n        let istask = null;\n        let ischecked;\n        if (this.options.gfm) {\n          istask = /^\\[[ xX]\\] /.exec(itemContents);\n          if (istask) {\n            ischecked = istask[0] !== \"[ ] \";\n            itemContents = itemContents.replace(/^\\[[ xX]\\] +/, \"\");\n          }\n        }\n        list2.items.push({\n          type: \"list_item\",\n          raw,\n          task: !!istask,\n          checked: ischecked,\n          loose: false,\n          text: itemContents,\n          tokens: []\n        });\n        list2.raw += raw;\n      }\n      list2.items[list2.items.length - 1].raw = list2.items[list2.items.length - 1].raw.trimEnd();\n      list2.items[list2.items.length - 1].text = list2.items[list2.items.length - 1].text.trimEnd();\n      list2.raw = list2.raw.trimEnd();\n      for (let i2 = 0; i2 \u003c list2.items.length; i2++) {\n        this.lexer.state.top = false;\n        list2.items[i2].tokens = this.lexer.blockTokens(list2.items[i2].text, []);\n        if (!list2.loose) {\n          const spacers = list2.items[i2].tokens.filter((t) =\u003e t.type === \"space\");\n          const hasMultipleLineBreaks = spacers.length \u003e 0 \u0026\u0026 spacers.some((t) =\u003e /\\n.*\\n/.test(t.raw));\n          list2.loose = hasMultipleLineBreaks;\n        }\n      }\n      if (list2.loose) {\n        for (let i2 = 0; i2 \u003c list2.items.length; i2++) {\n          list2.items[i2].loose = true;\n        }\n      }\n      return list2;\n    }\n  }\n  html(src) {\n    const cap = this.rules.block.html.exec(src);\n    if (cap) {\n      const token = {\n        type: \"html\",\n        block: true,\n        raw: cap[0],\n        pre: cap[1] === \"pre\" || cap[1] === \"script\" || cap[1] === \"style\",\n        text: cap[0]\n      };\n      return token;\n    }\n  }\n  def(src) {\n    const cap = this.rules.block.def.exec(src);\n    if (cap) {\n      const tag2 = cap[1].toLowerCase().replace(/\\s+/g, \" \");\n      const href = cap[2] ? cap[2].replace(/^\u003c(.*)\u003e$/, \"$1\").replace(this.rules.inline.anyPunctuation, \"$1\") : \"\";\n      const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, \"$1\") : cap[3];\n      return {\n        type: \"def\",\n        tag: tag2,\n        raw: cap[0],\n        href,\n        title\n      };\n    }\n  }\n  table(src) {\n    const cap = this.rules.block.table.exec(src);\n    if (!cap) {\n      return;\n    }\n    if (!/[:|]/.test(cap[2])) {\n      return;\n    }\n    const headers = splitCells(cap[1]);\n    const aligns = cap[2].replace(/^\\||\\| *$/g, \"\").split(\"|\");\n    const rows = cap[3] \u0026\u0026 cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, \"\").split(\"\\n\") : [];\n    const item = {\n      type: \"table\",\n      raw: cap[0],\n      header: [],\n      align: [],\n      rows: []\n    };\n    if (headers.length !== aligns.length) {\n      return;\n    }\n    for (const align of aligns) {\n      if (/^ *-+: *$/.test(align)) {\n        item.align.push(\"right\");\n      } else if (/^ *:-+: *$/.test(align)) {\n        item.align.push(\"center\");\n      } else if (/^ *:-+ *$/.test(align)) {\n        item.align.push(\"left\");\n      } else {\n        item.align.push(null);\n      }\n    }\n    for (let i2 = 0; i2 \u003c headers.length; i2++) {\n      item.header.push({\n        text: headers[i2],\n        tokens: this.lexer.inline(headers[i2]),\n        header: true,\n        align: item.align[i2]\n      });\n    }\n    for (const row of rows) {\n      item.rows.push(splitCells(row, item.header.length).map((cell, i2) =\u003e {\n        return {\n          text: cell,\n          tokens: this.lexer.inline(cell),\n          header: false,\n          align: item.align[i2]\n        };\n      }));\n    }\n    return item;\n  }\n  lheading(src) {\n    const cap = this.rules.block.lheading.exec(src);\n    if (cap) {\n      return {\n        type: \"heading\",\n        raw: cap[0],\n        depth: cap[2].charAt(0) === \"=\" ? 1 : 2,\n        text: cap[1],\n        tokens: this.lexer.inline(cap[1])\n      };\n    }\n  }\n  paragraph(src) {\n    const cap = this.rules.block.paragraph.exec(src);\n    if (cap) {\n      const text2 = cap[1].charAt(cap[1].length - 1) === \"\\n\" ? cap[1].slice(0, -1) : cap[1];\n      return {\n        type: \"paragraph\",\n        raw: cap[0],\n        text: text2,\n        tokens: this.lexer.inline(text2)\n      };\n    }\n  }\n  text(src) {\n    const cap = this.rules.block.text.exec(src);\n    if (cap) {\n      return {\n        type: \"text\",\n        raw: cap[0],\n        text: cap[0],\n        tokens: this.lexer.inline(cap[0])\n      };\n    }\n  }\n  escape(src) {\n    const cap = this.rules.inline.escape.exec(src);\n    if (cap) {\n      return {\n        type: \"escape\",\n        raw: cap[0],\n        text: escape$1(cap[1])\n      };\n    }\n  }\n  tag(src) {\n    const cap = this.rules.inline.tag.exec(src);\n    if (cap) {\n      if (!this.lexer.state.inLink \u0026\u0026 /^\u003ca /i.test(cap[0])) {\n        this.lexer.state.inLink = true;\n      } else if (this.lexer.state.inLink \u0026\u0026 /^\u003c\\/a\u003e/i.test(cap[0])) {\n        this.lexer.state.inLink = false;\n      }\n      if (!this.lexer.state.inRawBlock \u0026\u0026 /^\u003c(pre|code|kbd|script)(\\s|\u003e)/i.test(cap[0])) {\n        this.lexer.state.inRawBlock = true;\n      } else if (this.lexer.state.inRawBlock \u0026\u0026 /^\u003c\\/(pre|code|kbd|script)(\\s|\u003e)/i.test(cap[0])) {\n        this.lexer.state.inRawBlock = false;\n      }\n      return {\n        type: \"html\",\n        raw: cap[0],\n        inLink: this.lexer.state.inLink,\n        inRawBlock: this.lexer.state.inRawBlock,\n        block: false,\n        text: cap[0]\n      };\n    }\n  }\n  link(src) {\n    const cap = this.rules.inline.link.exec(src);\n    if (cap) {\n      const trimmedUrl = cap[2].trim();\n      if (!this.options.pedantic \u0026\u0026 /^\u003c/.test(trimmedUrl)) {\n        if (!/\u003e$/.test(trimmedUrl)) {\n          return;\n        }\n        const rtrimSlash = rtrim2(trimmedUrl.slice(0, -1), \"\\\\\");\n        if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n          return;\n        }\n      } else {\n        const lastParenIndex = findClosingBracket(cap[2], \"()\");\n        if (lastParenIndex \u003e -1) {\n          const start = cap[0].indexOf(\"!\") === 0 ? 5 : 4;\n          const linkLen = start + cap[1].length + lastParenIndex;\n          cap[2] = cap[2].substring(0, lastParenIndex);\n          cap[0] = cap[0].substring(0, linkLen).trim();\n          cap[3] = \"\";\n        }\n      }\n      let href = cap[2];\n      let title = \"\";\n      if (this.options.pedantic) {\n        const link2 = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n        if (link2) {\n          href = link2[1];\n          title = link2[3];\n        }\n      } else {\n        title = cap[3] ? cap[3].slice(1, -1) : \"\";\n      }\n      href = href.trim();\n      if (/^\u003c/.test(href)) {\n        if (this.options.pedantic \u0026\u0026 !/\u003e$/.test(trimmedUrl)) {\n          href = href.slice(1);\n        } else {\n          href = href.slice(1, -1);\n        }\n      }\n      return outputLink(cap, {\n        href: href ? href.replace(this.rules.inline.anyPunctuation, \"$1\") : href,\n        title: title ? title.replace(this.rules.inline.anyPunctuation, \"$1\") : title\n      }, cap[0], this.lexer);\n    }\n  }\n  reflink(src, links) {\n    let cap;\n    if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n      const linkString = (cap[2] || cap[1]).replace(/\\s+/g, \" \");\n      const link2 = links[linkString.toLowerCase()];\n      if (!link2) {\n        const text2 = cap[0].charAt(0);\n        return {\n          type: \"text\",\n          raw: text2,\n          text: text2\n        };\n      }\n      return outputLink(cap, link2, cap[0], this.lexer);\n    }\n  }\n  emStrong(src, maskedSrc, prevChar = \"\") {\n    let match2 = this.rules.inline.emStrongLDelim.exec(src);\n    if (!match2)\n      return;\n    if (match2[3] \u0026\u0026 prevChar.match(/[\\p{L}\\p{N}]/u))\n      return;\n    const nextChar = match2[1] || match2[2] || \"\";\n    if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n      const lLength = [...match2[0]].length - 1;\n      let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n      const endReg = match2[0][0] === \"*\" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n      endReg.lastIndex = 0;\n      maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n      while ((match2 = endReg.exec(maskedSrc)) != null) {\n        rDelim = match2[1] || match2[2] || match2[3] || match2[4] || match2[5] || match2[6];\n        if (!rDelim)\n          continue;\n        rLength = [...rDelim].length;\n        if (match2[3] || match2[4]) {\n          delimTotal += rLength;\n          continue;\n        } else if (match2[5] || match2[6]) {\n          if (lLength % 3 \u0026\u0026 !((lLength + rLength) % 3)) {\n            midDelimTotal += rLength;\n            continue;\n          }\n        }\n        delimTotal -= rLength;\n        if (delimTotal \u003e 0)\n          continue;\n        rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n        const lastCharLength = [...match2[0]][0].length;\n        const raw = src.slice(0, lLength + match2.index + lastCharLength + rLength);\n        if (Math.min(lLength, rLength) % 2) {\n          const text3 = raw.slice(1, -1);\n          return {\n            type: \"em\",\n            raw,\n            text: text3,\n            tokens: this.lexer.inlineTokens(text3)\n          };\n        }\n        const text2 = raw.slice(2, -2);\n        return {\n          type: \"strong\",\n          raw,\n          text: text2,\n          tokens: this.lexer.inlineTokens(text2)\n        };\n      }\n    }\n  }\n  codespan(src) {\n    const cap = this.rules.inline.code.exec(src);\n    if (cap) {\n      let text2 = cap[2].replace(/\\n/g, \" \");\n      const hasNonSpaceChars = /[^ ]/.test(text2);\n      const hasSpaceCharsOnBothEnds = /^ /.test(text2) \u0026\u0026 / $/.test(text2);\n      if (hasNonSpaceChars \u0026\u0026 hasSpaceCharsOnBothEnds) {\n        text2 = text2.substring(1, text2.length - 1);\n      }\n      text2 = escape$1(text2, true);\n      return {\n        type: \"codespan\",\n        raw: cap[0],\n        text: text2\n      };\n    }\n  }\n  br(src) {\n    const cap = this.rules.inline.br.exec(src);\n    if (cap) {\n      return {\n        type: \"br\",\n        raw: cap[0]\n      };\n    }\n  }\n  del(src) {\n    const cap = this.rules.inline.del.exec(src);\n    if (cap) {\n      return {\n        type: \"del\",\n        raw: cap[0],\n        text: cap[2],\n        tokens: this.lexer.inlineTokens(cap[2])\n      };\n    }\n  }\n  autolink(src) {\n    const cap = this.rules.inline.autolink.exec(src);\n    if (cap) {\n      let text2, href;\n      if (cap[2] === \"@\") {\n        text2 = escape$1(cap[1]);\n        href = \"mailto:\" + text2;\n      } else {\n        text2 = escape$1(cap[1]);\n        href = text2;\n      }\n      return {\n        type: \"link\",\n        raw: cap[0],\n        text: text2,\n        href,\n        tokens: [\n          {\n            type: \"text\",\n            raw: text2,\n            text: text2\n          }\n        ]\n      };\n    }\n  }\n  url(src) {\n    let cap;\n    if (cap = this.rules.inline.url.exec(src)) {\n      let text2, href;\n      if (cap[2] === \"@\") {\n        text2 = escape$1(cap[0]);\n        href = \"mailto:\" + text2;\n      } else {\n        let prevCapZero;\n        do {\n          prevCapZero = cap[0];\n          cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? \"\";\n        } while (prevCapZero !== cap[0]);\n        text2 = escape$1(cap[0]);\n        if (cap[1] === \"www.\") {\n          href = \"http://\" + cap[0];\n        } else {\n          href = cap[0];\n        }\n      }\n      return {\n        type: \"link\",\n        raw: cap[0],\n        text: text2,\n        href,\n        tokens: [\n          {\n            type: \"text\",\n            raw: text2,\n            text: text2\n          }\n        ]\n      };\n    }\n  }\n  inlineText(src) {\n    const cap = this.rules.inline.text.exec(src);\n    if (cap) {\n      let text2;\n      if (this.lexer.state.inRawBlock) {\n        text2 = cap[0];\n      } else {\n        text2 = escape$1(cap[0]);\n      }\n      return {\n        type: \"text\",\n        raw: cap[0],\n        text: text2\n      };\n    }\n  }\n};\nvar newline = /^(?: *(?:\\n|$))+/;\nvar blockCode = /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/;\nvar fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nvar hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nvar heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nvar bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nvar lheading = edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/).replace(/bull/g, bullet).replace(/blockCode/g, / {4}/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}\u003e/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}\u003c[^\\n\u003e]+\u003e\\n/).getRegex();\nvar _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nvar blockText = /^[^\\n]+/;\nvar _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nvar def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n *)?([^\u003c\\s][^\\s]*|\u003c.*?\u003e)(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/).replace(\"label\", _blockLabel).replace(\"title\", /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex();\nvar list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, bullet).getRegex();\nvar _tag = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\";\nvar _comment = /\u003c!--(?:-?\u003e|[\\s\\S]*?(?:--\u003e|$))/;\nvar html = edit(\"^ {0,3}(?:\u003c(script|pre|style|textarea)[\\\\s\u003e][\\\\s\\\\S]*?(?:\u003c/\\\\1\u003e[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|\u003c\\\\?[\\\\s\\\\S]*?(?:\\\\?\u003e\\\\n*|$)|\u003c![A-Z][\\\\s\\\\S]*?(?:\u003e\\\\n*|$)|\u003c!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]\u003e\\\\n*|$)|\u003c/?(tag)(?: +|\\\\n|/?\u003e)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)|\u003c(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?\u003e(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)|\u003c/(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*\u003e(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$))\", \"i\").replace(\"comment\", _comment).replace(\"tag\", _tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=\u003c\u003e`]+)?/).getRegex();\nvar paragraph = edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}\u003e\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"\u003c/?(?:tag)(?: +|\\\\n|/?\u003e)|\u003c(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockquote = edit(/^( {0,3}\u003e ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\", paragraph).getRegex();\nvar blockNormal = {\n  blockquote,\n  code: blockCode,\n  def,\n  fences,\n  heading,\n  hr,\n  html,\n  lheading,\n  list,\n  newline,\n  paragraph,\n  table: noopTest,\n  text: blockText\n};\nvar gfmTable = edit(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\", \" {0,3}\u003e\").replace(\"code\", \" {4}[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"\u003c/?(?:tag)(?: +|\\\\n|/?\u003e)|\u003c(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockGfm = {\n  ...blockNormal,\n  table: gfmTable,\n  paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"table\", gfmTable).replace(\"blockquote\", \" {0,3}\u003e\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"\u003c/?(?:tag)(?: +|\\\\n|/?\u003e)|\u003c(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex()\n};\nvar blockPedantic = {\n  ...blockNormal,\n  html: edit(`^ *(?:comment *(?:\\\\n|\\\\s*$)|\u003c(tag)[\\\\s\\\\S]+?\u003c/\\\\1\u003e *(?:\\\\n{2,}|\\\\s*$)|\u003ctag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/\u003e\\\\s]*)*?/?\u003e *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\", _comment).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n  def: /^ *\\[([^\\]]+)\\]: *\u003c?([^\\s\u003e]+)\u003e?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n  heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n  fences: noopTest,\n  // fences not supported\n  lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n  paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", lheading).replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}\u003e\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").replace(\"|tag\", \"\").getRegex()\n};\nvar escape2 = /^\\\\([!\"#$%\u0026'()*+,\\-./:;\u003c=\u003e?@\\[\\]\\\\^_`{|}~])/;\nvar inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nvar br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nvar inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\\u003c!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\nvar _punctuation = \"\\\\p{P}\\\\p{S}\";\nvar punctuation = edit(/^((?![*_])[\\spunctuation])/, \"u\").replace(/punctuation/g, _punctuation).getRegex();\nvar blockSkip = /\\[[^[\\]]*?\\]\\([^\\(\\)]*?\\)|`[^`]*?`|\u003c[^\u003c\u003e]*?\u003e/g;\nvar emStrongLDelim = edit(/^(?:\\*+(?:((?!\\*)[punct])|[^\\s*]))|^_+(?:((?!_)[punct])|([^\\s_]))/, \"u\").replace(/punct/g, _punctuation).getRegex();\nvar emStrongRDelimAst = edit(\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)[punct](\\\\*+)(?=[\\\\s]|$)|[^punct\\\\s](\\\\*+)(?!\\\\*)(?=[punct\\\\s]|$)|(?!\\\\*)[punct\\\\s](\\\\*+)(?=[^punct\\\\s])|[\\\\s](\\\\*+)(?!\\\\*)(?=[punct])|(?!\\\\*)[punct](\\\\*+)(?!\\\\*)(?=[punct])|[^punct\\\\s](\\\\*+)(?=[^punct\\\\s])\", \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar emStrongRDelimUnd = edit(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\\\s]|$)|[^punct\\\\s](_+)(?!_)(?=[punct\\\\s]|$)|(?!_)[punct\\\\s](_+)(?=[^punct\\\\s])|[\\\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])\", \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar anyPunctuation = edit(/\\\\([punct])/, \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar autolink = edit(/^\u003c(scheme:[^\\s\\x00-\\x1f\u003c\u003e]*|email)\u003e/).replace(\"scheme\", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\", /[a-zA-Z0-9.!#$%\u0026'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();\nvar _inlineComment = edit(_comment).replace(\"(?:--\u003e|$)\", \"--\u003e\").getRegex();\nvar tag = edit(\"^comment|^\u003c/[a-zA-Z][\\\\w:-]*\\\\s*\u003e|^\u003c[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?\u003e|^\u003c\\\\?[\\\\s\\\\S]*?\\\\?\u003e|^\u003c![a-zA-Z]+\\\\s[\\\\s\\\\S]*?\u003e|^\u003c!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]\u003e\").replace(\"comment\", _inlineComment).replace(\"attribute\", /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=\u003c\u003e`]+)?/).getRegex();\nvar _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nvar link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/).replace(\"label\", _inlineLabel).replace(\"href\", /\u003c(?:\\\\.|[^\\n\u003c\u003e\\\\])+\u003e|[^\\s\\x00-\\x1f]*/).replace(\"title\", /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex();\nvar reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\", _inlineLabel).replace(\"ref\", _blockLabel).getRegex();\nvar nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\", _blockLabel).getRegex();\nvar reflinkSearch = edit(\"reflink|nolink(?!\\\\()\", \"g\").replace(\"reflink\", reflink).replace(\"nolink\", nolink).getRegex();\nvar inlineNormal = {\n  _backpedal: noopTest,\n  // only used for GFM url\n  anyPunctuation,\n  autolink,\n  blockSkip,\n  br,\n  code: inlineCode,\n  del: noopTest,\n  emStrongLDelim,\n  emStrongRDelimAst,\n  emStrongRDelimUnd,\n  escape: escape2,\n  link,\n  nolink,\n  punctuation,\n  reflink,\n  reflinkSearch,\n  tag,\n  text: inlineText,\n  url: noopTest\n};\nvar inlinePedantic = {\n  ...inlineNormal,\n  link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", _inlineLabel).getRegex(),\n  reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", _inlineLabel).getRegex()\n};\nvar inlineGfm = {\n  ...inlineNormal,\n  escape: edit(escape2).replace(\"])\", \"~|])\").getRegex(),\n  url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s\u003c]*|^email/, \"i\").replace(\"email\", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n  _backpedal: /(?:[^?!.,:;*_'\"~()\u0026]+|\\([^)]*\\)|\u0026(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n  del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n  text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%\u0026'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\\u003c!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%\u0026'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%\u0026'*+\\/=?_`{\\|}~-]+@)))/\n};\nvar inlineBreaks = {\n  ...inlineGfm,\n  br: edit(br).replace(\"{2,}\", \"*\").getRegex(),\n  text: edit(inlineGfm.text).replace(\"\\\\b_\", \"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g, \"*\").getRegex()\n};\nvar block = {\n  normal: blockNormal,\n  gfm: blockGfm,\n  pedantic: blockPedantic\n};\nvar inline2 = {\n  normal: inlineNormal,\n  gfm: inlineGfm,\n  breaks: inlineBreaks,\n  pedantic: inlinePedantic\n};\nvar _Lexer = class __Lexer {\n  tokens;\n  options;\n  state;\n  tokenizer;\n  inlineQueue;\n  constructor(options2) {\n    this.tokens = [];\n    this.tokens.links = /* @__PURE__ */ Object.create(null);\n    this.options = options2 || _defaults;\n    this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n    this.tokenizer = this.options.tokenizer;\n    this.tokenizer.options = this.options;\n    this.tokenizer.lexer = this;\n    this.inlineQueue = [];\n    this.state = {\n      inLink: false,\n      inRawBlock: false,\n      top: true\n    };\n    const rules = {\n      block: block.normal,\n      inline: inline2.normal\n    };\n    if (this.options.pedantic) {\n      rules.block = block.pedantic;\n      rules.inline = inline2.pedantic;\n    } else if (this.options.gfm) {\n      rules.block = block.gfm;\n      if (this.options.breaks) {\n        rules.inline = inline2.breaks;\n      } else {\n        rules.inline = inline2.gfm;\n      }\n    }\n    this.tokenizer.rules = rules;\n  }\n  /**\n   * Expose Rules\n   */\n  static get rules() {\n    return {\n      block,\n      inline: inline2\n    };\n  }\n  /**\n   * Static Lex Method\n   */\n  static lex(src, options2) {\n    const lexer2 = new __Lexer(options2);\n    return lexer2.lex(src);\n  }\n  /**\n   * Static Lex Inline Method\n   */\n  static lexInline(src, options2) {\n    const lexer2 = new __Lexer(options2);\n    return lexer2.inlineTokens(src);\n  }\n  /**\n   * Preprocessing\n   */\n  lex(src) {\n    src = src.replace(/\\r\\n|\\r/g, \"\\n\");\n    this.blockTokens(src, this.tokens);\n    for (let i2 = 0; i2 \u003c this.inlineQueue.length; i2++) {\n      const next = this.inlineQueue[i2];\n      this.inlineTokens(next.src, next.tokens);\n    }\n    this.inlineQueue = [];\n    return this.tokens;\n  }\n  blockTokens(src, tokens = [], lastParagraphClipped = false) {\n    if (this.options.pedantic) {\n      src = src.replace(/\\t/g, \"    \").replace(/^ +$/gm, \"\");\n    } else {\n      src = src.replace(/^( *)(\\t+)/gm, (_, leading, tabs) =\u003e {\n        return leading + \"    \".repeat(tabs.length);\n      });\n    }\n    let token;\n    let lastToken;\n    let cutSrc;\n    while (src) {\n      if (this.options.extensions \u0026\u0026 this.options.extensions.block \u0026\u0026 this.options.extensions.block.some((extTokenizer) =\u003e {\n        if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          return true;\n        }\n        return false;\n      })) {\n        continue;\n      }\n      if (token = this.tokenizer.space(src)) {\n        src = src.substring(token.raw.length);\n        if (token.raw.length === 1 \u0026\u0026 tokens.length \u003e 0) {\n          tokens[tokens.length - 1].raw += \"\\n\";\n        } else {\n          tokens.push(token);\n        }\n        continue;\n      }\n      if (token = this.tokenizer.code(src)) {\n        src = src.substring(token.raw.length);\n        lastToken = tokens[tokens.length - 1];\n        if (lastToken \u0026\u0026 (lastToken.type === \"paragraph\" || lastToken.type === \"text\")) {\n          lastToken.raw += \"\\n\" + token.raw;\n          lastToken.text += \"\\n\" + token.text;\n          this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n        } else {\n          tokens.push(token);\n        }\n        continue;\n      }\n      if (token = this.tokenizer.fences(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.heading(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.hr(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.blockquote(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.list(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.html(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.def(src)) {\n        src = src.substring(token.raw.length);\n        lastToken = tokens[tokens.length - 1];\n        if (lastToken \u0026\u0026 (lastToken.type === \"paragraph\" || lastToken.type === \"text\")) {\n          lastToken.raw += \"\\n\" + token.raw;\n          lastToken.text += \"\\n\" + token.raw;\n          this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n        } else if (!this.tokens.links[token.tag]) {\n          this.tokens.links[token.tag] = {\n            href: token.href,\n            title: token.title\n          };\n        }\n        continue;\n      }\n      if (token = this.tokenizer.table(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.lheading(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      cutSrc = src;\n      if (this.options.extensions \u0026\u0026 this.options.extensions.startBlock) {\n        let startIndex = Infinity;\n        const tempSrc = src.slice(1);\n        let tempStart;\n        this.options.extensions.startBlock.forEach((getStartIndex) =\u003e {\n          tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n          if (typeof tempStart === \"number\" \u0026\u0026 tempStart \u003e= 0) {\n            startIndex = Math.min(startIndex, tempStart);\n          }\n        });\n        if (startIndex \u003c Infinity \u0026\u0026 startIndex \u003e= 0) {\n          cutSrc = src.substring(0, startIndex + 1);\n        }\n      }\n      if (this.state.top \u0026\u0026 (token = this.tokenizer.paragraph(cutSrc))) {\n        lastToken = tokens[tokens.length - 1];\n        if (lastParagraphClipped \u0026\u0026 lastToken?.type === \"paragraph\") {\n          lastToken.raw += \"\\n\" + token.raw;\n          lastToken.text += \"\\n\" + token.text;\n          this.inlineQueue.pop();\n          this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n        } else {\n          tokens.push(token);\n        }\n        lastParagraphClipped = cutSrc.length !== src.length;\n        src = src.substring(token.raw.length);\n        continue;\n      }\n      if (token = this.tokenizer.text(src)) {\n        src = src.substring(token.raw.length);\n        lastToken = tokens[tokens.length - 1];\n        if (lastToken \u0026\u0026 lastToken.type === \"text\") {\n          lastToken.raw += \"\\n\" + token.raw;\n          lastToken.text += \"\\n\" + token.text;\n          this.inlineQueue.pop();\n          this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n        } else {\n          tokens.push(token);\n        }\n        continue;\n      }\n      if (src) {\n        const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n        if (this.options.silent) {\n          console.error(errMsg);\n          break;\n        } else {\n          throw new Error(errMsg);\n        }\n      }\n    }\n    this.state.top = true;\n    return tokens;\n  }\n  inline(src, tokens = []) {\n    this.inlineQueue.push({ src, tokens });\n    return tokens;\n  }\n  /**\n   * Lexing/Compiling\n   */\n  inlineTokens(src, tokens = []) {\n    let token, lastToken, cutSrc;\n    let maskedSrc = src;\n    let match2;\n    let keepPrevChar, prevChar;\n    if (this.tokens.links) {\n      const links = Object.keys(this.tokens.links);\n      if (links.length \u003e 0) {\n        while ((match2 = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n          if (links.includes(match2[0].slice(match2[0].lastIndexOf(\"[\") + 1, -1))) {\n            maskedSrc = maskedSrc.slice(0, match2.index) + \"[\" + \"a\".repeat(match2[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n          }\n        }\n      }\n    }\n    while ((match2 = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n      maskedSrc = maskedSrc.slice(0, match2.index) + \"[\" + \"a\".repeat(match2[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n    }\n    while ((match2 = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n      maskedSrc = maskedSrc.slice(0, match2.index) + \"++\" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n    }\n    while (src) {\n      if (!keepPrevChar) {\n        prevChar = \"\";\n      }\n      keepPrevChar = false;\n      if (this.options.extensions \u0026\u0026 this.options.extensions.inline \u0026\u0026 this.options.extensions.inline.some((extTokenizer) =\u003e {\n        if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n          src = src.substring(token.raw.length);\n          tokens.push(token);\n          return true;\n        }\n        return false;\n      })) {\n        continue;\n      }\n      if (token = this.tokenizer.escape(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.tag(src)) {\n        src = src.substring(token.raw.length);\n        lastToken = tokens[tokens.length - 1];\n        if (lastToken \u0026\u0026 token.type === \"text\" \u0026\u0026 lastToken.type === \"text\") {\n          lastToken.raw += token.raw;\n          lastToken.text += token.text;\n        } else {\n          tokens.push(token);\n        }\n        continue;\n      }\n      if (token = this.tokenizer.link(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n        src = src.substring(token.raw.length);\n        lastToken = tokens[tokens.length - 1];\n        if (lastToken \u0026\u0026 token.type === \"text\" \u0026\u0026 lastToken.type === \"text\") {\n          lastToken.raw += token.raw;\n          lastToken.text += token.text;\n        } else {\n          tokens.push(token);\n        }\n        continue;\n      }\n      if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.codespan(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.br(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.del(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (token = this.tokenizer.autolink(src)) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      if (!this.state.inLink \u0026\u0026 (token = this.tokenizer.url(src))) {\n        src = src.substring(token.raw.length);\n        tokens.push(token);\n        continue;\n      }\n      cutSrc = src;\n      if (this.options.extensions \u0026\u0026 this.options.extensions.startInline) {\n        let startIndex = Infinity;\n        const tempSrc = src.slice(1);\n        let tempStart;\n        this.options.extensions.startInline.forEach((getStartIndex) =\u003e {\n          tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n          if (typeof tempStart === \"number\" \u0026\u0026 tempStart \u003e= 0) {\n            startIndex = Math.min(startIndex, tempStart);\n          }\n        });\n        if (startIndex \u003c Infinity \u0026\u0026 startIndex \u003e= 0) {\n          cutSrc = src.substring(0, startIndex + 1);\n        }\n      }\n      if (token = this.tokenizer.inlineText(cutSrc)) {\n        src = src.substring(token.raw.length);\n        if (token.raw.slice(-1) !== \"_\") {\n          prevChar = token.raw.slice(-1);\n        }\n        keepPrevChar = true;\n        lastToken = tokens[tokens.length - 1];\n        if (lastToken \u0026\u0026 lastToken.type === \"text\") {\n          lastToken.raw += token.raw;\n          lastToken.text += token.text;\n        } else {\n          tokens.push(token);\n        }\n        continue;\n      }\n      if (src) {\n        const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n        if (this.options.silent) {\n          console.error(errMsg);\n          break;\n        } else {\n          throw new Error(errMsg);\n        }\n      }\n    }\n    return tokens;\n  }\n};\nvar _Renderer = class {\n  options;\n  parser;\n  // set by the parser\n  constructor(options2) {\n    this.options = options2 || _defaults;\n  }\n  space(token) {\n    return \"\";\n  }\n  code({ text: text2, lang, escaped }) {\n    const langString = (lang || \"\").match(/^\\S*/)?.[0];\n    const code = text2.replace(/\\n$/, \"\") + \"\\n\";\n    if (!langString) {\n      return \"\u003cpre\u003e\u003ccode\u003e\" + (escaped ? code : escape$1(code, true)) + \"\u003c/code\u003e\u003c/pre\u003e\\n\";\n    }\n    return '\u003cpre\u003e\u003ccode class=\"language-' + escape$1(langString) + '\"\u003e' + (escaped ? code : escape$1(code, true)) + \"\u003c/code\u003e\u003c/pre\u003e\\n\";\n  }\n  blockquote({ tokens }) {\n    const body = this.parser.parse(tokens);\n    return `\u003cblockquote\u003e\n${body}\u003c/blockquote\u003e\n`;\n  }\n  html({ text: text2 }) {\n    return text2;\n  }\n  heading({ tokens, depth }) {\n    return `\u003ch${depth}\u003e${this.parser.parseInline(tokens)}\u003c/h${depth}\u003e\n`;\n  }\n  hr(token) {\n    return \"\u003chr\u003e\\n\";\n  }\n  list(token) {\n    const ordered = token.ordered;\n    const start = token.start;\n    let body = \"\";\n    for (let j = 0; j \u003c token.items.length; j++) {\n      const item = token.items[j];\n      body += this.listitem(item);\n    }\n    const type = ordered ? \"ol\" : \"ul\";\n    const startAttr = ordered \u0026\u0026 start !== 1 ? ' start=\"' + start + '\"' : \"\";\n    return \"\u003c\" + type + startAttr + \"\u003e\\n\" + body + \"\u003c/\" + type + \"\u003e\\n\";\n  }\n  listitem(item) {\n    let itemBody = \"\";\n    if (item.task) {\n      const checkbox = this.checkbox({ checked: !!item.checked });\n      if (item.loose) {\n        if (item.tokens.length \u003e 0 \u0026\u0026 item.tokens[0].type === \"paragraph\") {\n          item.tokens[0].text = checkbox + \" \" + item.tokens[0].text;\n          if (item.tokens[0].tokens \u0026\u0026 item.tokens[0].tokens.length \u003e 0 \u0026\u0026 item.tokens[0].tokens[0].type === \"text\") {\n            item.tokens[0].tokens[0].text = checkbox + \" \" + item.tokens[0].tokens[0].text;\n          }\n        } else {\n          item.tokens.unshift({\n            type: \"text\",\n            raw: checkbox + \" \",\n            text: checkbox + \" \"\n          });\n        }\n      } else {\n        itemBody += checkbox + \" \";\n      }\n    }\n    itemBody += this.parser.parse(item.tokens, !!item.loose);\n    return `\u003cli\u003e${itemBody}\u003c/li\u003e\n`;\n  }\n  checkbox({ checked }) {\n    return \"\u003cinput \" + (checked ? 'checked=\"\" ' : \"\") + 'disabled=\"\" type=\"checkbox\"\u003e';\n  }\n  paragraph({ tokens }) {\n    return `\u003cp\u003e${this.parser.parseInline(tokens)}\u003c/p\u003e\n`;\n  }\n  table(token) {\n    let header2 = \"\";\n    let cell = \"\";\n    for (let j = 0; j \u003c token.header.length; j++) {\n      cell += this.tablecell(token.header[j]);\n    }\n    header2 += this.tablerow({ text: cell });\n    let body = \"\";\n    for (let j = 0; j \u003c token.rows.length; j++) {\n      const row = token.rows[j];\n      cell = \"\";\n      for (let k = 0; k \u003c row.length; k++) {\n        cell += this.tablecell(row[k]);\n      }\n      body += this.tablerow({ text: cell });\n    }\n    if (body)\n      body = `\u003ctbody\u003e${body}\u003c/tbody\u003e`;\n    return \"\u003ctable\u003e\\n\u003cthead\u003e\\n\" + header2 + \"\u003c/thead\u003e\\n\" + body + \"\u003c/table\u003e\\n\";\n  }\n  tablerow({ text: text2 }) {\n    return `\u003ctr\u003e\n${text2}\u003c/tr\u003e\n`;\n  }\n  tablecell(token) {\n    const content = this.parser.parseInline(token.tokens);\n    const type = token.header ? \"th\" : \"td\";\n    const tag2 = token.align ? `\u003c${type} align=\"${token.align}\"\u003e` : `\u003c${type}\u003e`;\n    return tag2 + content + `\u003c/${type}\u003e\n`;\n  }\n  /**\n   * span level renderer\n   */\n  strong({ tokens }) {\n    return `\u003cstrong\u003e${this.parser.parseInline(tokens)}\u003c/strong\u003e`;\n  }\n  em({ tokens }) {\n    return `\u003cem\u003e${this.parser.parseInline(tokens)}\u003c/em\u003e`;\n  }\n  codespan({ text: text2 }) {\n    return `\u003ccode\u003e${text2}\u003c/code\u003e`;\n  }\n  br(token) {\n    return \"\u003cbr\u003e\";\n  }\n  del({ tokens }) {\n    return `\u003cdel\u003e${this.parser.parseInline(tokens)}\u003c/del\u003e`;\n  }\n  link({ href, title, tokens }) {\n    const text2 = this.parser.parseInline(tokens);\n    const cleanHref = cleanUrl(href);\n    if (cleanHref === null) {\n      return text2;\n    }\n    href = cleanHref;\n    let out = '\u003ca href=\"' + href + '\"';\n    if (title) {\n      out += ' title=\"' + title + '\"';\n    }\n    out += \"\u003e\" + text2 + \"\u003c/a\u003e\";\n    return out;\n  }\n  image({ href, title, text: text2 }) {\n    const cleanHref = cleanUrl(href);\n    if (cleanHref === null) {\n      return text2;\n    }\n    href = cleanHref;\n    let out = `\u003cimg src=\"${href}\" alt=\"${text2}\"`;\n    if (title) {\n      out += ` title=\"${title}\"`;\n    }\n    out += \"\u003e\";\n    return out;\n  }\n  text(token) {\n    return \"tokens\" in token \u0026\u0026 token.tokens ? this.parser.parseInline(token.tokens) : token.text;\n  }\n};\nvar _TextRenderer = class {\n  // no need for block level renderers\n  strong({ text: text2 }) {\n    return text2;\n  }\n  em({ text: text2 }) {\n    return text2;\n  }\n  codespan({ text: text2 }) {\n    return text2;\n  }\n  del({ text: text2 }) {\n    return text2;\n  }\n  html({ text: text2 }) {\n    return text2;\n  }\n  text({ text: text2 }) {\n    return text2;\n  }\n  link({ text: text2 }) {\n    return \"\" + text2;\n  }\n  image({ text: text2 }) {\n    return \"\" + text2;\n  }\n  br() {\n    return \"\";\n  }\n};\nvar _Parser = class __Parser {\n  options;\n  renderer;\n  textRenderer;\n  constructor(options2) {\n    this.options = options2 || _defaults;\n    this.options.renderer = this.options.renderer || new _Renderer();\n    this.renderer = this.options.renderer;\n    this.renderer.options = this.options;\n    this.renderer.parser = this;\n    this.textRenderer = new _TextRenderer();\n  }\n  /**\n   * Static Parse Method\n   */\n  static parse(tokens, options2) {\n    const parser2 = new __Parser(options2);\n    return parser2.parse(tokens);\n  }\n  /**\n   * Static Parse Inline Method\n   */\n  static parseInline(tokens, options2) {\n    const parser2 = new __Parser(options2);\n    return parser2.parseInline(tokens);\n  }\n  /**\n   * Parse Loop\n   */\n  parse(tokens, top = true) {\n    let out = \"\";\n    for (let i2 = 0; i2 \u003c tokens.length; i2++) {\n      const anyToken = tokens[i2];\n      if (this.options.extensions \u0026\u0026 this.options.extensions.renderers \u0026\u0026 this.options.extensions.renderers[anyToken.type]) {\n        const genericToken = anyToken;\n        const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n        if (ret !== false || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(genericToken.type)) {\n          out += ret || \"\";\n          continue;\n        }\n      }\n      const token = anyToken;\n      switch (token.type) {\n        case \"space\": {\n          out += this.renderer.space(token);\n          continue;\n        }\n        case \"hr\": {\n          out += this.renderer.hr(token);\n          continue;\n        }\n        case \"heading\": {\n          out += this.renderer.heading(token);\n          continue;\n        }\n        case \"code\": {\n          out += this.renderer.code(token);\n          continue;\n        }\n        case \"table\": {\n          out += this.renderer.table(token);\n          continue;\n        }\n        case \"blockquote\": {\n          out += this.renderer.blockquote(token);\n          continue;\n        }\n        case \"list\": {\n          out += this.renderer.list(token);\n          continue;\n        }\n        case \"html\": {\n          out += this.renderer.html(token);\n          continue;\n        }\n        case \"paragraph\": {\n          out += this.renderer.paragraph(token);\n          continue;\n        }\n        case \"text\": {\n          let textToken = token;\n          let body = this.renderer.text(textToken);\n          while (i2 + 1 \u003c tokens.length \u0026\u0026 tokens[i2 + 1].type === \"text\") {\n            textToken = tokens[++i2];\n            body += \"\\n\" + this.renderer.text(textToken);\n          }\n          if (top) {\n            out += this.renderer.paragraph({\n              type: \"paragraph\",\n              raw: body,\n              text: body,\n              tokens: [{ type: \"text\", raw: body, text: body }]\n            });\n          } else {\n            out += body;\n          }\n          continue;\n        }\n        default: {\n          const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n          if (this.options.silent) {\n            console.error(errMsg);\n            return \"\";\n          } else {\n            throw new Error(errMsg);\n          }\n        }\n      }\n    }\n    return out;\n  }\n  /**\n   * Parse Inline Tokens\n   */\n  parseInline(tokens, renderer) {\n    renderer = renderer || this.renderer;\n    let out = \"\";\n    for (let i2 = 0; i2 \u003c tokens.length; i2++) {\n      const anyToken = tokens[i2];\n      if (this.options.extensions \u0026\u0026 this.options.extensions.renderers \u0026\u0026 this.options.extensions.renderers[anyToken.type]) {\n        const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n        if (ret !== false || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(anyToken.type)) {\n          out += ret || \"\";\n          continue;\n        }\n      }\n      const token = anyToken;\n      switch (token.type) {\n        case \"escape\": {\n          out += renderer.text(token);\n          break;\n        }\n        case \"html\": {\n          out += renderer.html(token);\n          break;\n        }\n        case \"link\": {\n          out += renderer.link(token);\n          break;\n        }\n        case \"image\": {\n          out += renderer.image(token);\n          break;\n        }\n        case \"strong\": {\n          out += renderer.strong(token);\n          break;\n        }\n        case \"em\": {\n          out += renderer.em(token);\n          break;\n        }\n        case \"codespan\": {\n          out += renderer.codespan(token);\n          break;\n        }\n        case \"br\": {\n          out += renderer.br(token);\n          break;\n        }\n        case \"del\": {\n          out += renderer.del(token);\n          break;\n        }\n        case \"text\": {\n          out += renderer.text(token);\n          break;\n        }\n        default: {\n          const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n          if (this.options.silent) {\n            console.error(errMsg);\n            return \"\";\n          } else {\n            throw new Error(errMsg);\n          }\n        }\n      }\n    }\n    return out;\n  }\n};\nvar _Hooks = class {\n  options;\n  constructor(options2) {\n    this.options = options2 || _defaults;\n  }\n  static passThroughHooks = /* @__PURE__ */ new Set([\n    \"preprocess\",\n    \"postprocess\",\n    \"processAllTokens\"\n  ]);\n  /**\n   * Process markdown before marked\n   */\n  preprocess(markdown) {\n    return markdown;\n  }\n  /**\n   * Process HTML after marked is finished\n   */\n  postprocess(html3) {\n    return html3;\n  }\n  /**\n   * Process all tokens before walk tokens\n   */\n  processAllTokens(tokens) {\n    return tokens;\n  }\n};\nvar Marked = class {\n  defaults = _getDefaults();\n  options = this.setOptions;\n  parse = this.parseMarkdown(_Lexer.lex, _Parser.parse);\n  parseInline = this.parseMarkdown(_Lexer.lexInline, _Parser.parseInline);\n  Parser = _Parser;\n  Renderer = _Renderer;\n  TextRenderer = _TextRenderer;\n  Lexer = _Lexer;\n  Tokenizer = _Tokenizer;\n  Hooks = _Hooks;\n  constructor(...args) {\n    this.use(...args);\n  }\n  /**\n   * Run callback for every token\n   */\n  walkTokens(tokens, callback) {\n    let values = [];\n    for (const token of tokens) {\n      values = values.concat(callback.call(this, token));\n      switch (token.type) {\n        case \"table\": {\n          const tableToken = token;\n          for (const cell of tableToken.header) {\n            values = values.concat(this.walkTokens(cell.tokens, callback));\n          }\n          for (const row of tableToken.rows) {\n            for (const cell of row) {\n              values = values.concat(this.walkTokens(cell.tokens, callback));\n            }\n          }\n          break;\n        }\n        case \"list\": {\n          const listToken = token;\n          values = values.concat(this.walkTokens(listToken.items, callback));\n          break;\n        }\n        default: {\n          const genericToken = token;\n          if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n            this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) =\u003e {\n              const tokens2 = genericToken[childTokens].flat(Infinity);\n              values = values.concat(this.walkTokens(tokens2, callback));\n            });\n          } else if (genericToken.tokens) {\n            values = values.concat(this.walkTokens(genericToken.tokens, callback));\n          }\n        }\n      }\n    }\n    return values;\n  }\n  use(...args) {\n    const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n    args.forEach((pack) =\u003e {\n      const opts = { ...pack };\n      opts.async = this.defaults.async || opts.async || false;\n      if (pack.extensions) {\n        pack.extensions.forEach((ext) =\u003e {\n          if (!ext.name) {\n            throw new Error(\"extension name required\");\n          }\n          if (\"renderer\" in ext) {\n            const prevRenderer = extensions.renderers[ext.name];\n            if (prevRenderer) {\n              extensions.renderers[ext.name] = function(...args2) {\n                let ret = ext.renderer.apply(this, args2);\n                if (ret === false) {\n                  ret = prevRenderer.apply(this, args2);\n                }\n                return ret;\n              };\n            } else {\n              extensions.renderers[ext.name] = ext.renderer;\n            }\n          }\n          if (\"tokenizer\" in ext) {\n            if (!ext.level || ext.level !== \"block\" \u0026\u0026 ext.level !== \"inline\") {\n              throw new Error(\"extension level must be 'block' or 'inline'\");\n            }\n            const extLevel = extensions[ext.level];\n            if (extLevel) {\n              extLevel.unshift(ext.tokenizer);\n            } else {\n              extensions[ext.level] = [ext.tokenizer];\n            }\n            if (ext.start) {\n              if (ext.level === \"block\") {\n                if (extensions.startBlock) {\n                  extensions.startBlock.push(ext.start);\n                } else {\n                  extensions.startBlock = [ext.start];\n                }\n              } else if (ext.level === \"inline\") {\n                if (extensions.startInline) {\n                  extensions.startInline.push(ext.start);\n                } else {\n                  extensions.startInline = [ext.start];\n                }\n              }\n            }\n          }\n          if (\"childTokens\" in ext \u0026\u0026 ext.childTokens) {\n            extensions.childTokens[ext.name] = ext.childTokens;\n          }\n        });\n        opts.extensions = extensions;\n      }\n      if (pack.renderer) {\n        const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n        for (const prop in pack.renderer) {\n          if (!(prop in renderer)) {\n            throw new Error(`renderer '${prop}' does not exist`);\n          }\n          if ([\"options\", \"parser\"].includes(prop)) {\n            continue;\n          }\n          const rendererProp = prop;\n          const rendererFunc = pack.renderer[rendererProp];\n          const prevRenderer = renderer[rendererProp];\n          renderer[rendererProp] = (...args2) =\u003e {\n            let ret = rendererFunc.apply(renderer, args2);\n            if (ret === false) {\n              ret = prevRenderer.apply(renderer, args2);\n            }\n            return ret || \"\";\n          };\n        }\n        opts.renderer = renderer;\n      }\n      if (pack.tokenizer) {\n        const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n        for (const prop in pack.tokenizer) {\n          if (!(prop in tokenizer)) {\n            throw new Error(`tokenizer '${prop}' does not exist`);\n          }\n          if ([\"options\", \"rules\", \"lexer\"].includes(prop)) {\n            continue;\n          }\n          const tokenizerProp = prop;\n          const tokenizerFunc = pack.tokenizer[tokenizerProp];\n          const prevTokenizer = tokenizer[tokenizerProp];\n          tokenizer[tokenizerProp] = (...args2) =\u003e {\n            let ret = tokenizerFunc.apply(tokenizer, args2);\n            if (ret === false) {\n              ret = prevTokenizer.apply(tokenizer, args2);\n            }\n            return ret;\n          };\n        }\n        opts.tokenizer = tokenizer;\n      }\n      if (pack.hooks) {\n        const hooks = this.defaults.hooks || new _Hooks();\n        for (const prop in pack.hooks) {\n          if (!(prop in hooks)) {\n            throw new Error(`hook '${prop}' does not exist`);\n          }\n          if (prop === \"options\") {\n            continue;\n          }\n          const hooksProp = prop;\n          const hooksFunc = pack.hooks[hooksProp];\n          const prevHook = hooks[hooksProp];\n          if (_Hooks.passThroughHooks.has(prop)) {\n            hooks[hooksProp] = (arg) =\u003e {\n              if (this.defaults.async) {\n                return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) =\u003e {\n                  return prevHook.call(hooks, ret2);\n                });\n              }\n              const ret = hooksFunc.call(hooks, arg);\n              return prevHook.call(hooks, ret);\n            };\n          } else {\n            hooks[hooksProp] = (...args2) =\u003e {\n              let ret = hooksFunc.apply(hooks, args2);\n              if (ret === false) {\n                ret = prevHook.apply(hooks, args2);\n              }\n              return ret;\n            };\n          }\n        }\n        opts.hooks = hooks;\n      }\n      if (pack.walkTokens) {\n        const walkTokens2 = this.defaults.walkTokens;\n        const packWalktokens = pack.walkTokens;\n        opts.walkTokens = function(token) {\n          let values = [];\n          values.push(packWalktokens.call(this, token));\n          if (walkTokens2) {\n            values = values.concat(walkTokens2.call(this, token));\n          }\n          return values;\n        };\n      }\n      this.defaults = { ...this.defaults, ...opts };\n    });\n    return this;\n  }\n  setOptions(opt) {\n    this.defaults = { ...this.defaults, ...opt };\n    return this;\n  }\n  lexer(src, options2) {\n    return _Lexer.lex(src, options2 ?? this.defaults);\n  }\n  parser(tokens, options2) {\n    return _Parser.parse(tokens, options2 ?? this.defaults);\n  }\n  parseMarkdown(lexer2, parser2) {\n    const parse4 = (src, options2) =\u003e {\n      const origOpt = { ...options2 };\n      const opt = { ...this.defaults, ...origOpt };\n      const throwError = this.onError(!!opt.silent, !!opt.async);\n      if (this.defaults.async === true \u0026\u0026 origOpt.async === false) {\n        return throwError(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));\n      }\n      if (typeof src === \"undefined\" || src === null) {\n        return throwError(new Error(\"marked(): input parameter is undefined or null\"));\n      }\n      if (typeof src !== \"string\") {\n        return throwError(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(src) + \", string expected\"));\n      }\n      if (opt.hooks) {\n        opt.hooks.options = opt;\n      }\n      if (opt.async) {\n        return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) =\u003e lexer2(src2, opt)).then((tokens) =\u003e opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) =\u003e opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() =\u003e tokens) : tokens).then((tokens) =\u003e parser2(tokens, opt)).then((html3) =\u003e opt.hooks ? opt.hooks.postprocess(html3) : html3).catch(throwError);\n      }\n      try {\n        if (opt.hooks) {\n          src = opt.hooks.preprocess(src);\n        }\n        let tokens = lexer2(src, opt);\n        if (opt.hooks) {\n          tokens = opt.hooks.processAllTokens(tokens);\n        }\n        if (opt.walkTokens) {\n          this.walkTokens(tokens, opt.walkTokens);\n        }\n        let html3 = parser2(tokens, opt);\n        if (opt.hooks) {\n          html3 = opt.hooks.postprocess(html3);\n        }\n        return html3;\n      } catch (e) {\n        return throwError(e);\n      }\n    };\n    return parse4;\n  }\n  onError(silent, async) {\n    return (e) =\u003e {\n      e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\";\n      if (silent) {\n        const msg = \"\u003cp\u003eAn error occurred:\u003c/p\u003e\u003cpre\u003e\" + escape$1(e.message + \"\", true) + \"\u003c/pre\u003e\";\n        if (async) {\n          return Promise.resolve(msg);\n        }\n        return msg;\n      }\n      if (async) {\n        return Promise.reject(e);\n      }\n      throw e;\n    };\n  }\n};\nvar markedInstance = new Marked();\nfunction marked(src, opt) {\n  return markedInstance.parse(src, opt);\n}\nmarked.options = marked.setOptions = function(options2) {\n  markedInstance.setOptions(options2);\n  marked.defaults = markedInstance.defaults;\n  changeDefaults(marked.defaults);\n  return marked;\n};\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\nmarked.use = function(...args) {\n  markedInstance.use(...args);\n  marked.defaults = markedInstance.defaults;\n  changeDefaults(marked.defaults);\n  return marked;\n};\nmarked.walkTokens = function(tokens, callback) {\n  return markedInstance.walkTokens(tokens, callback);\n};\nmarked.parseInline = markedInstance.parseInline;\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nvar options = marked.options;\nvar setOptions = marked.setOptions;\nvar use = marked.use;\nvar walkTokens = marked.walkTokens;\nvar parseInline = marked.parseInline;\nvar parse = marked;\nvar parser = _Parser.parse;\nvar lexer = _Lexer.lex;\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/marshalling.js\ninit_buffer();\ninit_uri();\nfunction stringify(obj) {\n  return JSON.stringify(obj, replacer);\n}\nfunction parse2(text2) {\n  let data = JSON.parse(text2);\n  data = revive(data);\n  return data;\n}\nfunction replacer(key, value) {\n  if (value instanceof RegExp) {\n    return {\n      $mid: 2,\n      source: value.source,\n      flags: value.flags\n    };\n  }\n  return value;\n}\nfunction revive(obj, depth = 0) {\n  if (!obj || depth \u003e 200) {\n    return obj;\n  }\n  if (typeof obj === \"object\") {\n    switch (obj.$mid) {\n      case 1:\n        return URI.revive(obj);\n      case 2:\n        return new RegExp(obj.source, obj.flags);\n      case 17:\n        return new Date(obj.source);\n    }\n    if (obj instanceof VSBuffer || obj instanceof Uint8Array) {\n      return obj;\n    }\n    if (Array.isArray(obj)) {\n      for (let i2 = 0; i2 \u003c obj.length; ++i2) {\n        obj[i2] = revive(obj[i2], depth + 1);\n      }\n    } else {\n      for (const key in obj) {\n        if (Object.hasOwnProperty.call(obj, key)) {\n          obj[key] = revive(obj[key], depth + 1);\n        }\n      }\n    }\n  }\n  return obj;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/markdownRenderer.js\ninit_network();\ninit_objects();\ninit_resources();\ninit_strings();\ninit_uri();\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/domSanitize.js\ninit_lifecycle();\ninit_network();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/dompurify/dompurify.js\nvar {\n  entries,\n  setPrototypeOf,\n  isFrozen,\n  getPrototypeOf,\n  getOwnPropertyDescriptor\n} = Object;\nvar {\n  freeze,\n  seal,\n  create\n} = Object;\nvar {\n  apply,\n  construct\n} = typeof Reflect !== \"undefined\" \u0026\u0026 Reflect;\nif (!freeze) {\n  freeze = function freeze3(x) {\n    return x;\n  };\n}\nif (!seal) {\n  seal = function seal2(x) {\n    return x;\n  };\n}\nif (!apply) {\n  apply = function apply2(fun, thisValue, args) {\n    return fun.apply(thisValue, args);\n  };\n}\nif (!construct) {\n  construct = function construct2(Func, args) {\n    return new Func(...args);\n  };\n}\nvar arrayForEach = unapply(Array.prototype.forEach);\nvar arrayPop = unapply(Array.prototype.pop);\nvar arrayPush = unapply(Array.prototype.push);\nvar stringToLowerCase = unapply(String.prototype.toLowerCase);\nvar stringToString = unapply(String.prototype.toString);\nvar stringMatch = unapply(String.prototype.match);\nvar stringReplace = unapply(String.prototype.replace);\nvar stringIndexOf = unapply(String.prototype.indexOf);\nvar stringTrim = unapply(String.prototype.trim);\nvar objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nvar regExpTest = unapply(RegExp.prototype.test);\nvar typeErrorCreate = unconstruct(TypeError);\nfunction unapply(func) {\n  return function(thisArg) {\n    for (var _len = arguments.length, args = new Array(_len \u003e 1 ? _len - 1 : 0), _key = 1; _key \u003c _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    return apply(func, thisArg, args);\n  };\n}\nfunction unconstruct(func) {\n  return function() {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 \u003c _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    return construct(func, args);\n  };\n}\nfunction addToSet(set, array2) {\n  let transformCaseFunc = arguments.length \u003e 2 \u0026\u0026 arguments[2] !== void 0 ? arguments[2] : stringToLowerCase;\n  if (setPrototypeOf) {\n    setPrototypeOf(set, null);\n  }\n  let l = array2.length;\n  while (l--) {\n    let element = array2[l];\n    if (typeof element === \"string\") {\n      const lcElement = transformCaseFunc(element);\n      if (lcElement !== element) {\n        if (!isFrozen(array2)) {\n          array2[l] = lcElement;\n        }\n        element = lcElement;\n      }\n    }\n    set[element] = true;\n  }\n  return set;\n}\nfunction cleanArray(array2) {\n  for (let index = 0; index \u003c array2.length; index++) {\n    const isPropertyExist = objectHasOwnProperty(array2, index);\n    if (!isPropertyExist) {\n      array2[index] = null;\n    }\n  }\n  return array2;\n}\nfunction clone(object) {\n  const newObject = create(null);\n  for (const [property, value] of entries(object)) {\n    const isPropertyExist = objectHasOwnProperty(object, property);\n    if (isPropertyExist) {\n      if (Array.isArray(value)) {\n        newObject[property] = cleanArray(value);\n      } else if (value \u0026\u0026 typeof value === \"object\" \u0026\u0026 value.constructor === Object) {\n        newObject[property] = clone(value);\n      } else {\n        newObject[property] = value;\n      }\n    }\n  }\n  return newObject;\n}\nfunction lookupGetter(object, prop) {\n  while (object !== null) {\n    const desc = getOwnPropertyDescriptor(object, prop);\n    if (desc) {\n      if (desc.get) {\n        return unapply(desc.get);\n      }\n      if (typeof desc.value === \"function\") {\n        return unapply(desc.value);\n      }\n    }\n    object = getPrototypeOf(object);\n  }\n  function fallbackValue() {\n    return null;\n  }\n  return fallbackValue;\n}\nvar html$1 = freeze([\"a\", \"abbr\", \"acronym\", \"address\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"bdi\", \"bdo\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"decorator\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"element\", \"em\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meter\", \"nav\", \"nobr\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"picture\", \"pre\", \"progress\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"section\", \"select\", \"shadow\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\"]);\nvar svg$1 = freeze([\"svg\", \"a\", \"altglyph\", \"altglyphdef\", \"altglyphitem\", \"animatecolor\", \"animatemotion\", \"animatetransform\", \"circle\", \"clippath\", \"defs\", \"desc\", \"ellipse\", \"filter\", \"font\", \"g\", \"glyph\", \"glyphref\", \"hkern\", \"image\", \"line\", \"lineargradient\", \"marker\", \"mask\", \"metadata\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialgradient\", \"rect\", \"stop\", \"style\", \"switch\", \"symbol\", \"text\", \"textpath\", \"title\", \"tref\", \"tspan\", \"view\", \"vkern\"]);\nvar svgFilters = freeze([\"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feDropShadow\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\"]);\nvar svgDisallowed = freeze([\"animate\", \"color-profile\", \"cursor\", \"discard\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignobject\", \"hatch\", \"hatchpath\", \"mesh\", \"meshgradient\", \"meshpatch\", \"meshrow\", \"missing-glyph\", \"script\", \"set\", \"solidcolor\", \"unknown\", \"use\"]);\nvar mathMl$1 = freeze([\"math\", \"menclose\", \"merror\", \"mfenced\", \"mfrac\", \"mglyph\", \"mi\", \"mlabeledtr\", \"mmultiscripts\", \"mn\", \"mo\", \"mover\", \"mpadded\", \"mphantom\", \"mroot\", \"mrow\", \"ms\", \"mspace\", \"msqrt\", \"mstyle\", \"msub\", \"msup\", \"msubsup\", \"mtable\", \"mtd\", \"mtext\", \"mtr\", \"munder\", \"munderover\", \"mprescripts\"]);\nvar mathMlDisallowed = freeze([\"maction\", \"maligngroup\", \"malignmark\", \"mlongdiv\", \"mscarries\", \"mscarry\", \"msgroup\", \"mstack\", \"msline\", \"msrow\", \"semantics\", \"annotation\", \"annotation-xml\", \"mprescripts\", \"none\"]);\nvar text = freeze([\"#text\"]);\nvar html2 = freeze([\"accept\", \"action\", \"align\", \"alt\", \"autocapitalize\", \"autocomplete\", \"autopictureinpicture\", \"autoplay\", \"background\", \"bgcolor\", \"border\", \"capture\", \"cellpadding\", \"cellspacing\", \"checked\", \"cite\", \"class\", \"clear\", \"color\", \"cols\", \"colspan\", \"controls\", \"controlslist\", \"coords\", \"crossorigin\", \"datetime\", \"decoding\", \"default\", \"dir\", \"disabled\", \"disablepictureinpicture\", \"disableremoteplayback\", \"download\", \"draggable\", \"enctype\", \"enterkeyhint\", \"face\", \"for\", \"headers\", \"height\", \"hidden\", \"high\", \"href\", \"hreflang\", \"id\", \"inputmode\", \"integrity\", \"ismap\", \"kind\", \"label\", \"lang\", \"list\", \"loading\", \"loop\", \"low\", \"max\", \"maxlength\", \"media\", \"method\", \"min\", \"minlength\", \"multiple\", \"muted\", \"name\", \"nonce\", \"noshade\", \"novalidate\", \"nowrap\", \"open\", \"optimum\", \"pattern\", \"placeholder\", \"playsinline\", \"popover\", \"popovertarget\", \"popovertargetaction\", \"poster\", \"preload\", \"pubdate\", \"radiogroup\", \"readonly\", \"rel\", \"required\", \"rev\", \"reversed\", \"role\", \"rows\", \"rowspan\", \"spellcheck\", \"scope\", \"selected\", \"shape\", \"size\", \"sizes\", \"span\", \"srclang\", \"start\", \"src\", \"srcset\", \"step\", \"style\", \"summary\", \"tabindex\", \"title\", \"translate\", \"type\", \"usemap\", \"valign\", \"value\", \"width\", \"wrap\", \"xmlns\", \"slot\"]);\nvar svg = freeze([\"accent-height\", \"accumulate\", \"additive\", \"alignment-baseline\", \"amplitude\", \"ascent\", \"attributename\", \"attributetype\", \"azimuth\", \"basefrequency\", \"baseline-shift\", \"begin\", \"bias\", \"by\", \"class\", \"clip\", \"clippathunits\", \"clip-path\", \"clip-rule\", \"color\", \"color-interpolation\", \"color-interpolation-filters\", \"color-profile\", \"color-rendering\", \"cx\", \"cy\", \"d\", \"dx\", \"dy\", \"diffuseconstant\", \"direction\", \"display\", \"divisor\", \"dur\", \"edgemode\", \"elevation\", \"end\", \"exponent\", \"fill\", \"fill-opacity\", \"fill-rule\", \"filter\", \"filterunits\", \"flood-color\", \"flood-opacity\", \"font-family\", \"font-size\", \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-variant\", \"font-weight\", \"fx\", \"fy\", \"g1\", \"g2\", \"glyph-name\", \"glyphref\", \"gradientunits\", \"gradienttransform\", \"height\", \"href\", \"id\", \"image-rendering\", \"in\", \"in2\", \"intercept\", \"k\", \"k1\", \"k2\", \"k3\", \"k4\", \"kerning\", \"keypoints\", \"keysplines\", \"keytimes\", \"lang\", \"lengthadjust\", \"letter-spacing\", \"kernelmatrix\", \"kernelunitlength\", \"lighting-color\", \"local\", \"marker-end\", \"marker-mid\", \"marker-start\", \"markerheight\", \"markerunits\", \"markerwidth\", \"maskcontentunits\", \"maskunits\", \"max\", \"mask\", \"media\", \"method\", \"mode\", \"min\", \"name\", \"numoctaves\", \"offset\", \"operator\", \"opacity\", \"order\", \"orient\", \"orientation\", \"origin\", \"overflow\", \"paint-order\", \"path\", \"pathlength\", \"patterncontentunits\", \"patterntransform\", \"patternunits\", \"points\", \"preservealpha\", \"preserveaspectratio\", \"primitiveunits\", \"r\", \"rx\", \"ry\", \"radius\", \"refx\", \"refy\", \"repeatcount\", \"repeatdur\", \"restart\", \"result\", \"rotate\", \"scale\", \"seed\", \"shape-rendering\", \"slope\", \"specularconstant\", \"specularexponent\", \"spreadmethod\", \"startoffset\", \"stddeviation\", \"stitchtiles\", \"stop-color\", \"stop-opacity\", \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\", \"stroke-miterlimit\", \"stroke-opacity\", \"stroke\", \"stroke-width\", \"style\", \"surfacescale\", \"systemlanguage\", \"tabindex\", \"tablevalues\", \"targetx\", \"targety\", \"transform\", \"transform-origin\", \"text-anchor\", \"text-decoration\", \"text-rendering\", \"textlength\", \"type\", \"u1\", \"u2\", \"unicode\", \"values\", \"viewbox\", \"visibility\", \"version\", \"vert-adv-y\", \"vert-origin-x\", \"vert-origin-y\", \"width\", \"word-spacing\", \"wrap\", \"writing-mode\", \"xchannelselector\", \"ychannelselector\", \"x\", \"x1\", \"x2\", \"xmlns\", \"y\", \"y1\", \"y2\", \"z\", \"zoomandpan\"]);\nvar mathMl = freeze([\"accent\", \"accentunder\", \"align\", \"bevelled\", \"close\", \"columnsalign\", \"columnlines\", \"columnspan\", \"denomalign\", \"depth\", \"dir\", \"display\", \"displaystyle\", \"encoding\", \"fence\", \"frame\", \"height\", \"href\", \"id\", \"largeop\", \"length\", \"linethickness\", \"lspace\", \"lquote\", \"mathbackground\", \"mathcolor\", \"mathsize\", \"mathvariant\", \"maxsize\", \"minsize\", \"movablelimits\", \"notation\", \"numalign\", \"open\", \"rowalign\", \"rowlines\", \"rowspacing\", \"rowspan\", \"rspace\", \"rquote\", \"scriptlevel\", \"scriptminsize\", \"scriptsizemultiplier\", \"selection\", \"separator\", \"separators\", \"stretchy\", \"subscriptshift\", \"supscriptshift\", \"symmetric\", \"voffset\", \"width\", \"xmlns\"]);\nvar xml = freeze([\"xlink:href\", \"xml:id\", \"xlink:title\", \"xml:space\", \"xmlns:xlink\"]);\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm);\nvar ERB_EXPR = seal(/\u003c%[\\w\\W]*|[\\w\\W]*%\u003e/gm);\nvar TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/);\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/);\nvar IS_ALLOWED_URI = seal(\n  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i\n  // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(\n  /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g\n  // eslint-disable-line no-control-regex\n);\nvar DOCTYPE_NAME = seal(/^html$/i);\nvar CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\nvar EXPRESSIONS = /* @__PURE__ */ Object.freeze({\n  __proto__: null,\n  MUSTACHE_EXPR,\n  ERB_EXPR,\n  TMPLIT_EXPR,\n  DATA_ATTR,\n  ARIA_ATTR,\n  IS_ALLOWED_URI,\n  IS_SCRIPT_OR_DATA,\n  ATTR_WHITESPACE,\n  DOCTYPE_NAME,\n  CUSTOM_ELEMENT\n});\nvar NODE_TYPE = {\n  element: 1,\n  attribute: 2,\n  text: 3,\n  cdataSection: 4,\n  entityReference: 5,\n  // Deprecated\n  entityNode: 6,\n  // Deprecated\n  progressingInstruction: 7,\n  comment: 8,\n  document: 9,\n  documentType: 10,\n  documentFragment: 11,\n  notation: 12\n  // Deprecated\n};\nvar getGlobal = function getGlobal2() {\n  return typeof window === \"undefined\" ? null : window;\n};\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, purifyHostElement) {\n  if (typeof trustedTypes !== \"object\" || typeof trustedTypes.createPolicy !== \"function\") {\n    return null;\n  }\n  let suffix = null;\n  const ATTR_NAME = \"data-tt-policy-suffix\";\n  if (purifyHostElement \u0026\u0026 purifyHostElement.hasAttribute(ATTR_NAME)) {\n    suffix = purifyHostElement.getAttribute(ATTR_NAME);\n  }\n  const policyName = \"dompurify\" + (suffix ? \"#\" + suffix : \"\");\n  try {\n    return trustedTypes.createPolicy(policyName, {\n      createHTML(html3) {\n        return html3;\n      },\n      createScriptURL(scriptUrl) {\n        return scriptUrl;\n      }\n    });\n  } catch (_) {\n    console.warn(\"TrustedTypes policy \" + policyName + \" could not be created.\");\n    return null;\n  }\n};\nfunction createDOMPurify() {\n  let window2 = arguments.length \u003e 0 \u0026\u0026 arguments[0] !== void 0 ? arguments[0] : getGlobal();\n  const DOMPurify = (root) =\u003e createDOMPurify(root);\n  DOMPurify.version = \"3.1.7\";\n  DOMPurify.removed = [];\n  if (!window2 || !window2.document || window2.document.nodeType !== NODE_TYPE.document) {\n    DOMPurify.isSupported = false;\n    return DOMPurify;\n  }\n  let {\n    document: document2\n  } = window2;\n  const originalDocument = document2;\n  const currentScript = originalDocument.currentScript;\n  const {\n    DocumentFragment,\n    HTMLTemplateElement,\n    Node: Node4,\n    Element: Element2,\n    NodeFilter,\n    NamedNodeMap = window2.NamedNodeMap || window2.MozNamedAttrMap,\n    HTMLFormElement,\n    DOMParser,\n    trustedTypes\n  } = window2;\n  const ElementPrototype = Element2.prototype;\n  const cloneNode = lookupGetter(ElementPrototype, \"cloneNode\");\n  const remove = lookupGetter(ElementPrototype, \"remove\");\n  const getNextSibling = lookupGetter(ElementPrototype, \"nextSibling\");\n  const getChildNodes = lookupGetter(ElementPrototype, \"childNodes\");\n  const getParentNode = lookupGetter(ElementPrototype, \"parentNode\");\n  if (typeof HTMLTemplateElement === \"function\") {\n    const template = document2.createElement(\"template\");\n    if (template.content \u0026\u0026 template.content.ownerDocument) {\n      document2 = template.content.ownerDocument;\n    }\n  }\n  let trustedTypesPolicy;\n  let emptyHTML = \"\";\n  const {\n    implementation,\n    createNodeIterator,\n    createDocumentFragment,\n    getElementsByTagName\n  } = document2;\n  const {\n    importNode\n  } = originalDocument;\n  let hooks = {};\n  DOMPurify.isSupported = typeof entries === \"function\" \u0026\u0026 typeof getParentNode === \"function\" \u0026\u0026 implementation \u0026\u0026 implementation.createHTMLDocument !== void 0;\n  const {\n    MUSTACHE_EXPR: MUSTACHE_EXPR2,\n    ERB_EXPR: ERB_EXPR2,\n    TMPLIT_EXPR: TMPLIT_EXPR2,\n    DATA_ATTR: DATA_ATTR2,\n    ARIA_ATTR: ARIA_ATTR2,\n    IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA2,\n    ATTR_WHITESPACE: ATTR_WHITESPACE2,\n    CUSTOM_ELEMENT: CUSTOM_ELEMENT2\n  } = EXPRESSIONS;\n  let {\n    IS_ALLOWED_URI: IS_ALLOWED_URI$1\n  } = EXPRESSIONS;\n  let ALLOWED_TAGS = null;\n  const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n  let ALLOWED_ATTR = null;\n  const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html2, ...svg, ...mathMl, ...xml]);\n  let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n    tagNameCheck: {\n      writable: true,\n      configurable: false,\n      enumerable: true,\n      value: null\n    },\n    attributeNameCheck: {\n      writable: true,\n      configurable: false,\n      enumerable: true,\n      value: null\n    },\n    allowCustomizedBuiltInElements: {\n      writable: true,\n      configurable: false,\n      enumerable: true,\n      value: false\n    }\n  }));\n  let FORBID_TAGS = null;\n  let FORBID_ATTR = null;\n  let ALLOW_ARIA_ATTR = true;\n  let ALLOW_DATA_ATTR = true;\n  let ALLOW_UNKNOWN_PROTOCOLS = false;\n  let ALLOW_SELF_CLOSE_IN_ATTR = true;\n  let SAFE_FOR_TEMPLATES = false;\n  let SAFE_FOR_XML = true;\n  let WHOLE_DOCUMENT = false;\n  let SET_CONFIG = false;\n  let FORCE_BODY = false;\n  let RETURN_DOM = false;\n  let RETURN_DOM_FRAGMENT = false;\n  let RETURN_TRUSTED_TYPE = false;\n  let SANITIZE_DOM = true;\n  let SANITIZE_NAMED_PROPS = false;\n  const SANITIZE_NAMED_PROPS_PREFIX = \"user-content-\";\n  let KEEP_CONTENT = true;\n  let IN_PLACE = false;\n  let USE_PROFILES = {};\n  let FORBID_CONTENTS = null;\n  const DEFAULT_FORBID_CONTENTS = addToSet({}, [\"annotation-xml\", \"audio\", \"colgroup\", \"desc\", \"foreignobject\", \"head\", \"iframe\", \"math\", \"mi\", \"mn\", \"mo\", \"ms\", \"mtext\", \"noembed\", \"noframes\", \"noscript\", \"plaintext\", \"script\", \"style\", \"svg\", \"template\", \"thead\", \"title\", \"video\", \"xmp\"]);\n  let DATA_URI_TAGS = null;\n  const DEFAULT_DATA_URI_TAGS = addToSet({}, [\"audio\", \"video\", \"img\", \"source\", \"image\", \"track\"]);\n  let URI_SAFE_ATTRIBUTES = null;\n  const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\"alt\", \"class\", \"for\", \"id\", \"label\", \"name\", \"pattern\", \"placeholder\", \"role\", \"summary\", \"title\", \"value\", \"style\", \"xmlns\"]);\n  const MATHML_NAMESPACE = \"http://www.w3.org/1998/Math/MathML\";\n  const SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\n  const HTML_NAMESPACE = \"http://www.w3.org/1999/xhtml\";\n  let NAMESPACE = HTML_NAMESPACE;\n  let IS_EMPTY_INPUT = false;\n  let ALLOWED_NAMESPACES = null;\n  const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n  let PARSER_MEDIA_TYPE = null;\n  const SUPPORTED_PARSER_MEDIA_TYPES = [\"application/xhtml+xml\", \"text/html\"];\n  const DEFAULT_PARSER_MEDIA_TYPE = \"text/html\";\n  let transformCaseFunc = null;\n  let CONFIG = null;\n  const formElement = document2.createElement(\"form\");\n  const isRegexOrFunction = function isRegexOrFunction2(testValue) {\n    return testValue instanceof RegExp || testValue instanceof Function;\n  };\n  const _parseConfig = function _parseConfig2() {\n    let cfg = arguments.length \u003e 0 \u0026\u0026 arguments[0] !== void 0 ? arguments[0] : {};\n    if (CONFIG \u0026\u0026 CONFIG === cfg) {\n      return;\n    }\n    if (!cfg || typeof cfg !== \"object\") {\n      cfg = {};\n    }\n    cfg = clone(cfg);\n    PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes\n    SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n    transformCaseFunc = PARSER_MEDIA_TYPE === \"application/xhtml+xml\" ? stringToString : stringToLowerCase;\n    ALLOWED_TAGS = objectHasOwnProperty(cfg, \"ALLOWED_TAGS\") ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n    ALLOWED_ATTR = objectHasOwnProperty(cfg, \"ALLOWED_ATTR\") ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n    ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, \"ALLOWED_NAMESPACES\") ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n    URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, \"ADD_URI_SAFE_ATTR\") ? addToSet(\n      clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n      // eslint-disable-line indent\n      cfg.ADD_URI_SAFE_ATTR,\n      // eslint-disable-line indent\n      transformCaseFunc\n      // eslint-disable-line indent\n    ) : DEFAULT_URI_SAFE_ATTRIBUTES;\n    DATA_URI_TAGS = objectHasOwnProperty(cfg, \"ADD_DATA_URI_TAGS\") ? addToSet(\n      clone(DEFAULT_DATA_URI_TAGS),\n      // eslint-disable-line indent\n      cfg.ADD_DATA_URI_TAGS,\n      // eslint-disable-line indent\n      transformCaseFunc\n      // eslint-disable-line indent\n    ) : DEFAULT_DATA_URI_TAGS;\n    FORBID_CONTENTS = objectHasOwnProperty(cfg, \"FORBID_CONTENTS\") ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n    FORBID_TAGS = objectHasOwnProperty(cfg, \"FORBID_TAGS\") ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n    FORBID_ATTR = objectHasOwnProperty(cfg, \"FORBID_ATTR\") ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n    USE_PROFILES = objectHasOwnProperty(cfg, \"USE_PROFILES\") ? cfg.USE_PROFILES : false;\n    ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;\n    ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;\n    ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;\n    ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;\n    SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;\n    SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false;\n    WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;\n    RETURN_DOM = cfg.RETURN_DOM || false;\n    RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;\n    RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;\n    FORCE_BODY = cfg.FORCE_BODY || false;\n    SANITIZE_DOM = cfg.SANITIZE_DOM !== false;\n    SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;\n    KEEP_CONTENT = cfg.KEEP_CONTENT !== false;\n    IN_PLACE = cfg.IN_PLACE || false;\n    IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n    NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n    CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n    if (cfg.CUSTOM_ELEMENT_HANDLING \u0026\u0026 isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n      CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n    }\n    if (cfg.CUSTOM_ELEMENT_HANDLING \u0026\u0026 isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n      CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n    }\n    if (cfg.CUSTOM_ELEMENT_HANDLING \u0026\u0026 typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === \"boolean\") {\n      CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n    }\n    if (SAFE_FOR_TEMPLATES) {\n      ALLOW_DATA_ATTR = false;\n    }\n    if (RETURN_DOM_FRAGMENT) {\n      RETURN_DOM = true;\n    }\n    if (USE_PROFILES) {\n      ALLOWED_TAGS = addToSet({}, text);\n      ALLOWED_ATTR = [];\n      if (USE_PROFILES.html === true) {\n        addToSet(ALLOWED_TAGS, html$1);\n        addToSet(ALLOWED_ATTR, html2);\n      }\n      if (USE_PROFILES.svg === true) {\n        addToSet(ALLOWED_TAGS, svg$1);\n        addToSet(ALLOWED_ATTR, svg);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n      if (USE_PROFILES.svgFilters === true) {\n        addToSet(ALLOWED_TAGS, svgFilters);\n        addToSet(ALLOWED_ATTR, svg);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n      if (USE_PROFILES.mathMl === true) {\n        addToSet(ALLOWED_TAGS, mathMl$1);\n        addToSet(ALLOWED_ATTR, mathMl);\n        addToSet(ALLOWED_ATTR, xml);\n      }\n    }\n    if (cfg.ADD_TAGS) {\n      if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n        ALLOWED_TAGS = clone(ALLOWED_TAGS);\n      }\n      addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n    }\n    if (cfg.ADD_ATTR) {\n      if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n        ALLOWED_ATTR = clone(ALLOWED_ATTR);\n      }\n      addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n    }\n    if (cfg.ADD_URI_SAFE_ATTR) {\n      addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n    }\n    if (cfg.FORBID_CONTENTS) {\n      if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n        FORBID_CONTENTS = clone(FORBID_CONTENTS);\n      }\n      addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n    }\n    if (KEEP_CONTENT) {\n      ALLOWED_TAGS[\"#text\"] = true;\n    }\n    if (WHOLE_DOCUMENT) {\n      addToSet(ALLOWED_TAGS, [\"html\", \"head\", \"body\"]);\n    }\n    if (ALLOWED_TAGS.table) {\n      addToSet(ALLOWED_TAGS, [\"tbody\"]);\n      delete FORBID_TAGS.tbody;\n    }\n    if (cfg.TRUSTED_TYPES_POLICY) {\n      if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== \"function\") {\n        throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n      }\n      if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== \"function\") {\n        throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n      }\n      trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n      emptyHTML = trustedTypesPolicy.createHTML(\"\");\n    } else {\n      if (trustedTypesPolicy === void 0) {\n        trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n      }\n      if (trustedTypesPolicy !== null \u0026\u0026 typeof emptyHTML === \"string\") {\n        emptyHTML = trustedTypesPolicy.createHTML(\"\");\n      }\n    }\n    if (freeze) {\n      freeze(cfg);\n    }\n    CONFIG = cfg;\n  };\n  const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, [\"mi\", \"mo\", \"mn\", \"ms\", \"mtext\"]);\n  const HTML_INTEGRATION_POINTS = addToSet({}, [\"annotation-xml\"]);\n  const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\"title\", \"style\", \"font\", \"a\", \"script\"]);\n  const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n  const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n  const _checkValidNamespace = function _checkValidNamespace2(element) {\n    let parent = getParentNode(element);\n    if (!parent || !parent.tagName) {\n      parent = {\n        namespaceURI: NAMESPACE,\n        tagName: \"template\"\n      };\n    }\n    const tagName = stringToLowerCase(element.tagName);\n    const parentTagName = stringToLowerCase(parent.tagName);\n    if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n      return false;\n    }\n    if (element.namespaceURI === SVG_NAMESPACE) {\n      if (parent.namespaceURI === HTML_NAMESPACE) {\n        return tagName === \"svg\";\n      }\n      if (parent.namespaceURI === MATHML_NAMESPACE) {\n        return tagName === \"svg\" \u0026\u0026 (parentTagName === \"annotation-xml\" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n      }\n      return Boolean(ALL_SVG_TAGS[tagName]);\n    }\n    if (element.namespaceURI === MATHML_NAMESPACE) {\n      if (parent.namespaceURI === HTML_NAMESPACE) {\n        return tagName === \"math\";\n      }\n      if (parent.namespaceURI === SVG_NAMESPACE) {\n        return tagName === \"math\" \u0026\u0026 HTML_INTEGRATION_POINTS[parentTagName];\n      }\n      return Boolean(ALL_MATHML_TAGS[tagName]);\n    }\n    if (element.namespaceURI === HTML_NAMESPACE) {\n      if (parent.namespaceURI === SVG_NAMESPACE \u0026\u0026 !HTML_INTEGRATION_POINTS[parentTagName]) {\n        return false;\n      }\n      if (parent.namespaceURI === MATHML_NAMESPACE \u0026\u0026 !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n        return false;\n      }\n      return !ALL_MATHML_TAGS[tagName] \u0026\u0026 (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n    }\n    if (PARSER_MEDIA_TYPE === \"application/xhtml+xml\" \u0026\u0026 ALLOWED_NAMESPACES[element.namespaceURI]) {\n      return true;\n    }\n    return false;\n  };\n  const _forceRemove = function _forceRemove2(node) {\n    arrayPush(DOMPurify.removed, {\n      element: node\n    });\n    try {\n      getParentNode(node).removeChild(node);\n    } catch (_) {\n      remove(node);\n    }\n  };\n  const _removeAttribute = function _removeAttribute2(name, node) {\n    try {\n      arrayPush(DOMPurify.removed, {\n        attribute: node.getAttributeNode(name),\n        from: node\n      });\n    } catch (_) {\n      arrayPush(DOMPurify.removed, {\n        attribute: null,\n        from: node\n      });\n    }\n    node.removeAttribute(name);\n    if (name === \"is\" \u0026\u0026 !ALLOWED_ATTR[name]) {\n      if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n        try {\n          _forceRemove(node);\n        } catch (_) {\n        }\n      } else {\n        try {\n          node.setAttribute(name, \"\");\n        } catch (_) {\n        }\n      }\n    }\n  };\n  const _initDocument = function _initDocument2(dirty) {\n    let doc = null;\n    let leadingWhitespace = null;\n    if (FORCE_BODY) {\n      dirty = \"\u003cremove\u003e\u003c/remove\u003e\" + dirty;\n    } else {\n      const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n      leadingWhitespace = matches \u0026\u0026 matches[0];\n    }\n    if (PARSER_MEDIA_TYPE === \"application/xhtml+xml\" \u0026\u0026 NAMESPACE === HTML_NAMESPACE) {\n      dirty = '\u003chtml xmlns=\"http://www.w3.org/1999/xhtml\"\u003e\u003chead\u003e\u003c/head\u003e\u003cbody\u003e' + dirty + \"\u003c/body\u003e\u003c/html\u003e\";\n    }\n    const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n    if (NAMESPACE === HTML_NAMESPACE) {\n      try {\n        doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n      } catch (_) {\n      }\n    }\n    if (!doc || !doc.documentElement) {\n      doc = implementation.createDocument(NAMESPACE, \"template\", null);\n      try {\n        doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n      } catch (_) {\n      }\n    }\n    const body = doc.body || doc.documentElement;\n    if (dirty \u0026\u0026 leadingWhitespace) {\n      body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n    }\n    if (NAMESPACE === HTML_NAMESPACE) {\n      return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? \"html\" : \"body\")[0];\n    }\n    return WHOLE_DOCUMENT ? doc.documentElement : body;\n  };\n  const _createNodeIterator = function _createNodeIterator2(root) {\n    return createNodeIterator.call(\n      root.ownerDocument || root,\n      root,\n      // eslint-disable-next-line no-bitwise\n      NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION,\n      null\n    );\n  };\n  const _isClobbered = function _isClobbered2(elm) {\n    return elm instanceof HTMLFormElement \u0026\u0026 (typeof elm.nodeName !== \"string\" || typeof elm.textContent !== \"string\" || typeof elm.removeChild !== \"function\" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== \"function\" || typeof elm.setAttribute !== \"function\" || typeof elm.namespaceURI !== \"string\" || typeof elm.insertBefore !== \"function\" || typeof elm.hasChildNodes !== \"function\");\n  };\n  const _isNode = function _isNode2(object) {\n    return typeof Node4 === \"function\" \u0026\u0026 object instanceof Node4;\n  };\n  const _executeHook = function _executeHook2(entryPoint, currentNode, data) {\n    if (!hooks[entryPoint]) {\n      return;\n    }\n    arrayForEach(hooks[entryPoint], (hook) =\u003e {\n      hook.call(DOMPurify, currentNode, data, CONFIG);\n    });\n  };\n  const _sanitizeElements = function _sanitizeElements2(currentNode) {\n    let content = null;\n    _executeHook(\"beforeSanitizeElements\", currentNode, null);\n    if (_isClobbered(currentNode)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n    const tagName = transformCaseFunc(currentNode.nodeName);\n    _executeHook(\"uponSanitizeElement\", currentNode, {\n      tagName,\n      allowedTags: ALLOWED_TAGS\n    });\n    if (currentNode.hasChildNodes() \u0026\u0026 !_isNode(currentNode.firstElementChild) \u0026\u0026 regExpTest(/\u003c[/\\w]/g, currentNode.innerHTML) \u0026\u0026 regExpTest(/\u003c[/\\w]/g, currentNode.textContent)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n    if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n      _forceRemove(currentNode);\n      return true;\n    }\n    if (SAFE_FOR_XML \u0026\u0026 currentNode.nodeType === NODE_TYPE.comment \u0026\u0026 regExpTest(/\u003c[/\\w]/g, currentNode.data)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n    if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n      if (!FORBID_TAGS[tagName] \u0026\u0026 _isBasicCustomElement(tagName)) {\n        if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp \u0026\u0026 regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n          return false;\n        }\n        if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function \u0026\u0026 CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n          return false;\n        }\n      }\n      if (KEEP_CONTENT \u0026\u0026 !FORBID_CONTENTS[tagName]) {\n        const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n        const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n        if (childNodes \u0026\u0026 parentNode) {\n          const childCount = childNodes.length;\n          for (let i2 = childCount - 1; i2 \u003e= 0; --i2) {\n            const childClone = cloneNode(childNodes[i2], true);\n            childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n            parentNode.insertBefore(childClone, getNextSibling(currentNode));\n          }\n        }\n      }\n      _forceRemove(currentNode);\n      return true;\n    }\n    if (currentNode instanceof Element2 \u0026\u0026 !_checkValidNamespace(currentNode)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n    if ((tagName === \"noscript\" || tagName === \"noembed\" || tagName === \"noframes\") \u0026\u0026 regExpTest(/\u003c\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n      _forceRemove(currentNode);\n      return true;\n    }\n    if (SAFE_FOR_TEMPLATES \u0026\u0026 currentNode.nodeType === NODE_TYPE.text) {\n      content = currentNode.textContent;\n      arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) =\u003e {\n        content = stringReplace(content, expr, \" \");\n      });\n      if (currentNode.textContent !== content) {\n        arrayPush(DOMPurify.removed, {\n          element: currentNode.cloneNode()\n        });\n        currentNode.textContent = content;\n      }\n    }\n    _executeHook(\"afterSanitizeElements\", currentNode, null);\n    return false;\n  };\n  const _isValidAttribute = function _isValidAttribute2(lcTag, lcName, value) {\n    if (SANITIZE_DOM \u0026\u0026 (lcName === \"id\" || lcName === \"name\") \u0026\u0026 (value in document2 || value in formElement)) {\n      return false;\n    }\n    if (ALLOW_DATA_ATTR \u0026\u0026 !FORBID_ATTR[lcName] \u0026\u0026 regExpTest(DATA_ATTR2, lcName)) ;\n    else if (ALLOW_ARIA_ATTR \u0026\u0026 regExpTest(ARIA_ATTR2, lcName)) ;\n    else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n      if (\n        // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n        // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n        _isBasicCustomElement(lcTag) \u0026\u0026 (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp \u0026\u0026 regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function \u0026\u0026 CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) \u0026\u0026 (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp \u0026\u0026 regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function \u0026\u0026 CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND\n        // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n        lcName === \"is\" \u0026\u0026 CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements \u0026\u0026 (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp \u0026\u0026 regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function \u0026\u0026 CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))\n      ) ;\n      else {\n        return false;\n      }\n    } else if (URI_SAFE_ATTRIBUTES[lcName]) ;\n    else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE2, \"\"))) ;\n    else if ((lcName === \"src\" || lcName === \"xlink:href\" || lcName === \"href\") \u0026\u0026 lcTag !== \"script\" \u0026\u0026 stringIndexOf(value, \"data:\") === 0 \u0026\u0026 DATA_URI_TAGS[lcTag]) ;\n    else if (ALLOW_UNKNOWN_PROTOCOLS \u0026\u0026 !regExpTest(IS_SCRIPT_OR_DATA2, stringReplace(value, ATTR_WHITESPACE2, \"\"))) ;\n    else if (value) {\n      return false;\n    } else ;\n    return true;\n  };\n  const _isBasicCustomElement = function _isBasicCustomElement2(tagName) {\n    return tagName !== \"annotation-xml\" \u0026\u0026 stringMatch(tagName, CUSTOM_ELEMENT2);\n  };\n  const _sanitizeAttributes = function _sanitizeAttributes2(currentNode) {\n    _executeHook(\"beforeSanitizeAttributes\", currentNode, null);\n    const {\n      attributes\n    } = currentNode;\n    if (!attributes) {\n      return;\n    }\n    const hookEvent = {\n      attrName: \"\",\n      attrValue: \"\",\n      keepAttr: true,\n      allowedAttributes: ALLOWED_ATTR\n    };\n    let l = attributes.length;\n    while (l--) {\n      const attr = attributes[l];\n      const {\n        name,\n        namespaceURI,\n        value: attrValue\n      } = attr;\n      const lcName = transformCaseFunc(name);\n      let value = name === \"value\" ? attrValue : stringTrim(attrValue);\n      hookEvent.attrName = lcName;\n      hookEvent.attrValue = value;\n      hookEvent.keepAttr = true;\n      hookEvent.forceKeepAttr = void 0;\n      _executeHook(\"uponSanitizeAttribute\", currentNode, hookEvent);\n      value = hookEvent.attrValue;\n      if (hookEvent.forceKeepAttr) {\n        continue;\n      }\n      _removeAttribute(name, currentNode);\n      if (!hookEvent.keepAttr) {\n        continue;\n      }\n      if (!ALLOW_SELF_CLOSE_IN_ATTR \u0026\u0026 regExpTest(/\\/\u003e/i, value)) {\n        _removeAttribute(name, currentNode);\n        continue;\n      }\n      if (SAFE_FOR_TEMPLATES) {\n        arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) =\u003e {\n          value = stringReplace(value, expr, \" \");\n        });\n      }\n      const lcTag = transformCaseFunc(currentNode.nodeName);\n      if (!_isValidAttribute(lcTag, lcName, value)) {\n        continue;\n      }\n      if (SANITIZE_NAMED_PROPS \u0026\u0026 (lcName === \"id\" || lcName === \"name\")) {\n        _removeAttribute(name, currentNode);\n        value = SANITIZE_NAMED_PROPS_PREFIX + value;\n      }\n      if (SAFE_FOR_XML \u0026\u0026 regExpTest(/((--!?|])\u003e)|\u003c\\/(style|title)/i, value)) {\n        _removeAttribute(name, currentNode);\n        continue;\n      }\n      if (trustedTypesPolicy \u0026\u0026 typeof trustedTypes === \"object\" \u0026\u0026 typeof trustedTypes.getAttributeType === \"function\") {\n        if (namespaceURI) ;\n        else {\n          switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n            case \"TrustedHTML\": {\n              value = trustedTypesPolicy.createHTML(value);\n              break;\n            }\n            case \"TrustedScriptURL\": {\n              value = trustedTypesPolicy.createScriptURL(value);\n              break;\n            }\n          }\n        }\n      }\n      try {\n        if (namespaceURI) {\n          currentNode.setAttributeNS(namespaceURI, name, value);\n        } else {\n          currentNode.setAttribute(name, value);\n        }\n        if (_isClobbered(currentNode)) {\n          _forceRemove(currentNode);\n        } else {\n          arrayPop(DOMPurify.removed);\n        }\n      } catch (_) {\n      }\n    }\n    _executeHook(\"afterSanitizeAttributes\", currentNode, null);\n  };\n  const _sanitizeShadowDOM = function _sanitizeShadowDOM2(fragment) {\n    let shadowNode = null;\n    const shadowIterator = _createNodeIterator(fragment);\n    _executeHook(\"beforeSanitizeShadowDOM\", fragment, null);\n    while (shadowNode = shadowIterator.nextNode()) {\n      _executeHook(\"uponSanitizeShadowNode\", shadowNode, null);\n      if (_sanitizeElements(shadowNode)) {\n        continue;\n      }\n      if (shadowNode.content instanceof DocumentFragment) {\n        _sanitizeShadowDOM2(shadowNode.content);\n      }\n      _sanitizeAttributes(shadowNode);\n    }\n    _executeHook(\"afterSanitizeShadowDOM\", fragment, null);\n  };\n  DOMPurify.sanitize = function(dirty) {\n    let cfg = arguments.length \u003e 1 \u0026\u0026 arguments[1] !== void 0 ? arguments[1] : {};\n    let body = null;\n    let importedNode = null;\n    let currentNode = null;\n    let returnNode = null;\n    IS_EMPTY_INPUT = !dirty;\n    if (IS_EMPTY_INPUT) {\n      dirty = \"\u003c!--\u003e\";\n    }\n    if (typeof dirty !== \"string\" \u0026\u0026 !_isNode(dirty)) {\n      if (typeof dirty.toString === \"function\") {\n        dirty = dirty.toString();\n        if (typeof dirty !== \"string\") {\n          throw typeErrorCreate(\"dirty is not a string, aborting\");\n        }\n      } else {\n        throw typeErrorCreate(\"toString is not a function\");\n      }\n    }\n    if (!DOMPurify.isSupported) {\n      return dirty;\n    }\n    if (!SET_CONFIG) {\n      _parseConfig(cfg);\n    }\n    DOMPurify.removed = [];\n    if (typeof dirty === \"string\") {\n      IN_PLACE = false;\n    }\n    if (IN_PLACE) {\n      if (dirty.nodeName) {\n        const tagName = transformCaseFunc(dirty.nodeName);\n        if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n          throw typeErrorCreate(\"root node is forbidden and cannot be sanitized in-place\");\n        }\n      }\n    } else if (dirty instanceof Node4) {\n      body = _initDocument(\"\u003c!----\u003e\");\n      importedNode = body.ownerDocument.importNode(dirty, true);\n      if (importedNode.nodeType === NODE_TYPE.element \u0026\u0026 importedNode.nodeName === \"BODY\") {\n        body = importedNode;\n      } else if (importedNode.nodeName === \"HTML\") {\n        body = importedNode;\n      } else {\n        body.appendChild(importedNode);\n      }\n    } else {\n      if (!RETURN_DOM \u0026\u0026 !SAFE_FOR_TEMPLATES \u0026\u0026 !WHOLE_DOCUMENT \u0026\u0026 // eslint-disable-next-line unicorn/prefer-includes\n      dirty.indexOf(\"\u003c\") === -1) {\n        return trustedTypesPolicy \u0026\u0026 RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n      }\n      body = _initDocument(dirty);\n      if (!body) {\n        return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : \"\";\n      }\n    }\n    if (body \u0026\u0026 FORCE_BODY) {\n      _forceRemove(body.firstChild);\n    }\n    const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n    while (currentNode = nodeIterator.nextNode()) {\n      if (_sanitizeElements(currentNode)) {\n        continue;\n      }\n      if (currentNode.content instanceof DocumentFragment) {\n        _sanitizeShadowDOM(currentNode.content);\n      }\n      _sanitizeAttributes(currentNode);\n    }\n    if (IN_PLACE) {\n      return dirty;\n    }\n    if (RETURN_DOM) {\n      if (RETURN_DOM_FRAGMENT) {\n        returnNode = createDocumentFragment.call(body.ownerDocument);\n        while (body.firstChild) {\n          returnNode.appendChild(body.firstChild);\n        }\n      } else {\n        returnNode = body;\n      }\n      if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n        returnNode = importNode.call(originalDocument, returnNode, true);\n      }\n      return returnNode;\n    }\n    let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n    if (WHOLE_DOCUMENT \u0026\u0026 ALLOWED_TAGS[\"!doctype\"] \u0026\u0026 body.ownerDocument \u0026\u0026 body.ownerDocument.doctype \u0026\u0026 body.ownerDocument.doctype.name \u0026\u0026 regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n      serializedHTML = \"\u003c!DOCTYPE \" + body.ownerDocument.doctype.name + \"\u003e\\n\" + serializedHTML;\n    }\n    if (SAFE_FOR_TEMPLATES) {\n      arrayForEach([MUSTACHE_EXPR2, ERB_EXPR2, TMPLIT_EXPR2], (expr) =\u003e {\n        serializedHTML = stringReplace(serializedHTML, expr, \" \");\n      });\n    }\n    return trustedTypesPolicy \u0026\u0026 RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n  };\n  DOMPurify.setConfig = function() {\n    let cfg = arguments.length \u003e 0 \u0026\u0026 arguments[0] !== void 0 ? arguments[0] : {};\n    _parseConfig(cfg);\n    SET_CONFIG = true;\n  };\n  DOMPurify.clearConfig = function() {\n    CONFIG = null;\n    SET_CONFIG = false;\n  };\n  DOMPurify.isValidAttribute = function(tag2, attr, value) {\n    if (!CONFIG) {\n      _parseConfig({});\n    }\n    const lcTag = transformCaseFunc(tag2);\n    const lcName = transformCaseFunc(attr);\n    return _isValidAttribute(lcTag, lcName, value);\n  };\n  DOMPurify.addHook = function(entryPoint, hookFunction) {\n    if (typeof hookFunction !== \"function\") {\n      return;\n    }\n    hooks[entryPoint] = hooks[entryPoint] || [];\n    arrayPush(hooks[entryPoint], hookFunction);\n  };\n  DOMPurify.removeHook = function(entryPoint) {\n    if (hooks[entryPoint]) {\n      return arrayPop(hooks[entryPoint]);\n    }\n  };\n  DOMPurify.removeHooks = function(entryPoint) {\n    if (hooks[entryPoint]) {\n      hooks[entryPoint] = [];\n    }\n  };\n  DOMPurify.removeAllHooks = function() {\n    hooks = {};\n  };\n  return DOMPurify;\n}\nvar purify = createDOMPurify();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/domSanitize.js\nvar basicMarkupHtmlTags = Object.freeze([\n  \"a\",\n  \"abbr\",\n  \"b\",\n  \"bdo\",\n  \"blockquote\",\n  \"br\",\n  \"caption\",\n  \"cite\",\n  \"code\",\n  \"col\",\n  \"colgroup\",\n  \"dd\",\n  \"del\",\n  \"details\",\n  \"dfn\",\n  \"div\",\n  \"dl\",\n  \"dt\",\n  \"em\",\n  \"figcaption\",\n  \"figure\",\n  \"h1\",\n  \"h2\",\n  \"h3\",\n  \"h4\",\n  \"h5\",\n  \"h6\",\n  \"hr\",\n  \"i\",\n  \"img\",\n  \"ins\",\n  \"kbd\",\n  \"label\",\n  \"li\",\n  \"mark\",\n  \"ol\",\n  \"p\",\n  \"pre\",\n  \"q\",\n  \"rp\",\n  \"rt\",\n  \"ruby\",\n  \"samp\",\n  \"small\",\n  \"small\",\n  \"source\",\n  \"span\",\n  \"strike\",\n  \"strong\",\n  \"sub\",\n  \"summary\",\n  \"sup\",\n  \"table\",\n  \"tbody\",\n  \"td\",\n  \"tfoot\",\n  \"th\",\n  \"thead\",\n  \"time\",\n  \"tr\",\n  \"tt\",\n  \"u\",\n  \"ul\",\n  \"var\",\n  \"video\",\n  \"wbr\"\n]);\nvar defaultAllowedAttrs = Object.freeze([\n  \"href\",\n  \"target\",\n  \"src\",\n  \"alt\",\n  \"title\",\n  \"for\",\n  \"name\",\n  \"role\",\n  \"tabindex\",\n  \"x-dispatch\",\n  \"required\",\n  \"checked\",\n  \"placeholder\",\n  \"type\",\n  \"start\",\n  \"width\",\n  \"height\",\n  \"align\"\n]);\nfunction addDompurifyHook(hook, cb) {\n  purify.addHook(hook, cb);\n  return toDisposable(() =\u003e purify.removeHook(hook));\n}\nfunction hookDomPurifyHrefAndSrcSanitizer(allowedLinkProtocols, allowedMediaProtocols) {\n  const anchor = document.createElement(\"a\");\n  function validateLink(value, allowedProtocols) {\n    if (allowedProtocols === \"*\") {\n      return true;\n    }\n    anchor.href = value;\n    return allowedProtocols.includes(anchor.protocol.replace(/:$/, \"\"));\n  }\n  purify.addHook(\"afterSanitizeAttributes\", (node) =\u003e {\n    for (const attr of [\"href\", \"src\"]) {\n      if (node.hasAttribute(attr)) {\n        const attrValue = node.getAttribute(attr);\n        if (attr === \"href\") {\n          if (!attrValue.startsWith(\"#\") \u0026\u0026 !validateLink(attrValue, allowedLinkProtocols)) {\n            node.removeAttribute(attr);\n          }\n        } else {\n          if (!validateLink(attrValue, allowedMediaProtocols)) {\n            node.removeAttribute(attr);\n          }\n        }\n      }\n    }\n  });\n  return toDisposable(() =\u003e purify.removeHook(\"afterSanitizeAttributes\"));\n}\nvar defaultDomPurifyConfig = Object.freeze({\n  ALLOWED_TAGS: [...basicMarkupHtmlTags],\n  ALLOWED_ATTR: [...defaultAllowedAttrs],\n  RETURN_DOM: false,\n  RETURN_DOM_FRAGMENT: false,\n  RETURN_TRUSTED_TYPE: true,\n  // We sanitize the src/href attributes later if needed\n  ALLOW_UNKNOWN_PROTOCOLS: true\n});\nfunction sanitizeHtml(untrusted, config) {\n  const store = new DisposableStore();\n  try {\n    const resolvedConfig = { ...defaultDomPurifyConfig };\n    if (config?.allowedTags) {\n      if (config.allowedTags.override) {\n        resolvedConfig.ALLOWED_TAGS = [...config.allowedTags.override];\n      }\n      if (config.allowedTags.augment) {\n        resolvedConfig.ALLOWED_TAGS = [...resolvedConfig.ALLOWED_TAGS ?? [], ...config.allowedTags.augment];\n      }\n    }\n    let resolvedAttributes = [...defaultAllowedAttrs];\n    if (config?.allowedAttributes) {\n      if (config.allowedAttributes.override) {\n        resolvedAttributes = [...config.allowedAttributes.override];\n      }\n      if (config.allowedAttributes.augment) {\n        resolvedAttributes = [...resolvedAttributes, ...config.allowedAttributes.augment];\n      }\n    }\n    resolvedAttributes = resolvedAttributes.map((attr) =\u003e {\n      if (typeof attr === \"string\") {\n        return attr.toLowerCase();\n      }\n      return {\n        attributeName: attr.attributeName.toLowerCase(),\n        shouldKeep: attr.shouldKeep\n      };\n    });\n    const allowedAttrNames = new Set(resolvedAttributes.map((attr) =\u003e typeof attr === \"string\" ? attr : attr.attributeName));\n    const allowedAttrPredicates = /* @__PURE__ */ new Map();\n    for (const attr of resolvedAttributes) {\n      if (typeof attr === \"string\") {\n        allowedAttrPredicates.delete(attr);\n      } else {\n        allowedAttrPredicates.set(attr.attributeName, attr);\n      }\n    }\n    resolvedConfig.ALLOWED_ATTR = Array.from(allowedAttrNames);\n    store.add(hookDomPurifyHrefAndSrcSanitizer(config?.allowedLinkProtocols?.override ?? [Schemas.http, Schemas.https], config?.allowedMediaProtocols?.override ?? [Schemas.http, Schemas.https]));\n    if (config?.replaceWithPlaintext) {\n      store.add(addDompurifyHook(\"uponSanitizeElement\", replaceWithPlainTextHook));\n    }\n    if (allowedAttrPredicates.size) {\n      store.add(addDompurifyHook(\"uponSanitizeAttribute\", (node, e) =\u003e {\n        const predicate = allowedAttrPredicates.get(e.attrName);\n        if (predicate) {\n          const result = predicate.shouldKeep(node, e);\n          if (typeof result === \"string\") {\n            e.keepAttr = true;\n            e.attrValue = result;\n          } else {\n            e.keepAttr = result;\n          }\n        } else {\n          e.keepAttr = allowedAttrNames.has(e.attrName);\n        }\n      }));\n    }\n    return purify.sanitize(untrusted, {\n      ...resolvedConfig,\n      RETURN_TRUSTED_TYPE: true\n    });\n  } finally {\n    store.dispose();\n  }\n}\nvar selfClosingTags = [\"area\", \"base\", \"br\", \"col\", \"command\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"param\", \"source\", \"track\", \"wbr\"];\nfunction replaceWithPlainTextHook(element, data, _config) {\n  if (!data.allowedTags[data.tagName] \u0026\u0026 data.tagName !== \"body\") {\n    const replacement = convertTagToPlaintext(element);\n    if (element.nodeType === Node.COMMENT_NODE) {\n      element.parentElement?.insertBefore(replacement, element);\n    } else {\n      element.parentElement?.replaceChild(replacement, element);\n    }\n  }\n}\nfunction convertTagToPlaintext(element) {\n  let startTagText;\n  let endTagText;\n  if (element.nodeType === Node.COMMENT_NODE) {\n    startTagText = `\u003c!--${element.textContent}--\u003e`;\n  } else {\n    const tagName = element.tagName.toLowerCase();\n    const isSelfClosing = selfClosingTags.includes(tagName);\n    const attrString = element.attributes.length ? \" \" + Array.from(element.attributes).map((attr) =\u003e `${attr.name}=\"${attr.value}\"`).join(\" \") : \"\";\n    startTagText = `\u003c${tagName}${attrString}\u003e`;\n    if (!isSelfClosing) {\n      endTagText = `\u003c/${tagName}\u003e`;\n    }\n  }\n  const fragment = document.createDocumentFragment();\n  const textNode = element.ownerDocument.createTextNode(startTagText);\n  fragment.appendChild(textNode);\n  while (element.firstChild) {\n    fragment.appendChild(element.firstChild);\n  }\n  const endTagTextNode = endTagText ? element.ownerDocument.createTextNode(endTagText) : void 0;\n  if (endTagTextNode) {\n    fragment.appendChild(endTagTextNode);\n  }\n  return fragment;\n}\nfunction safeSetInnerHtml(node, untrusted, config) {\n  node.innerHTML = sanitizeHtml(untrusted, config);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/markdownRenderer.js\ninit_keyboardEvent();\ninit_mouseEvent();\ninit_iconLabels2();\nvar defaultMarkedRenderers = Object.freeze({\n  image: ({ href, title, text: text2 }) =\u003e {\n    let dimensions = [];\n    let attributes = [];\n    if (href) {\n      ({ href, dimensions } = parseHrefAndDimensions(href));\n      attributes.push(`src=\"${escapeDoubleQuotes(href)}\"`);\n    }\n    if (text2) {\n      attributes.push(`alt=\"${escapeDoubleQuotes(text2)}\"`);\n    }\n    if (title) {\n      attributes.push(`title=\"${escapeDoubleQuotes(title)}\"`);\n    }\n    if (dimensions.length) {\n      attributes = attributes.concat(dimensions);\n    }\n    return \"\u003cimg \" + attributes.join(\" \") + \"\u003e\";\n  },\n  paragraph({ tokens }) {\n    return `\u003cp\u003e${this.parser.parseInline(tokens)}\u003c/p\u003e`;\n  },\n  link({ href, title, tokens }) {\n    let text2 = this.parser.parseInline(tokens);\n    if (typeof href !== \"string\") {\n      return \"\";\n    }\n    if (href === text2) {\n      text2 = removeMarkdownEscapes(text2);\n    }\n    title = typeof title === \"string\" ? escapeDoubleQuotes(removeMarkdownEscapes(title)) : \"\";\n    href = removeMarkdownEscapes(href);\n    href = href.replace(/\u0026/g, \"\u0026amp;\").replace(/\u003c/g, \"\u0026lt;\").replace(/\u003e/g, \"\u0026gt;\").replace(/\"/g, \"\u0026quot;\").replace(/'/g, \"\u0026#39;\");\n    return `\u003ca href=\"${href}\" title=\"${title || href}\" draggable=\"false\"\u003e${text2}\u003c/a\u003e`;\n  }\n});\nfunction renderMarkdown(markdown, options2 = {}, target) {\n  const disposables = new DisposableStore();\n  let isDisposed = false;\n  const markedInstance2 = new Marked(...options2.markedExtensions ?? []);\n  const { renderer, codeBlocks, syncCodeBlocks } = createMarkdownRenderer(markedInstance2, options2, markdown);\n  const value = preprocessMarkdownString(markdown);\n  let renderedMarkdown;\n  if (options2.fillInIncompleteTokens) {\n    const opts = {\n      ...markedInstance2.defaults,\n      ...options2.markedOptions,\n      renderer\n    };\n    const tokens = markedInstance2.lexer(value, opts);\n    const newTokens = fillInIncompleteTokens(tokens);\n    renderedMarkdown = markedInstance2.parser(newTokens, opts);\n  } else {\n    renderedMarkdown = markedInstance2.parse(value, { ...options2?.markedOptions, renderer, async: false });\n  }\n  if (markdown.supportThemeIcons) {\n    const elements = renderLabelWithIcons(renderedMarkdown);\n    renderedMarkdown = elements.map((e) =\u003e typeof e === \"string\" ? e : e.outerHTML).join(\"\");\n  }\n  const renderedContent = document.createElement(\"div\");\n  const sanitizerConfig = getDomSanitizerConfig(markdown.isTrusted ?? false, options2.sanitizerConfig ?? {});\n  safeSetInnerHtml(renderedContent, renderedMarkdown, sanitizerConfig);\n  rewriteRenderedLinks(markdown, options2, renderedContent);\n  let outElement;\n  if (target) {\n    outElement = target;\n    reset(target, ...renderedContent.children);\n  } else {\n    outElement = renderedContent;\n  }\n  if (codeBlocks.length \u003e 0) {\n    Promise.all(codeBlocks).then((tuples) =\u003e {\n      if (isDisposed) {\n        return;\n      }\n      const renderedElements = new Map(tuples);\n      const placeholderElements = outElement.querySelectorAll(`div[data-code]`);\n      for (const placeholderElement of placeholderElements) {\n        const renderedElement = renderedElements.get(placeholderElement.dataset[\"code\"] ?? \"\");\n        if (renderedElement) {\n          reset(placeholderElement, renderedElement);\n        }\n      }\n      options2.asyncRenderCallback?.();\n    });\n  } else if (syncCodeBlocks.length \u003e 0) {\n    const renderedElements = new Map(syncCodeBlocks);\n    const placeholderElements = outElement.querySelectorAll(`div[data-code]`);\n    for (const placeholderElement of placeholderElements) {\n      const renderedElement = renderedElements.get(placeholderElement.dataset[\"code\"] ?? \"\");\n      if (renderedElement) {\n        reset(placeholderElement, renderedElement);\n      }\n    }\n  }\n  if (options2.asyncRenderCallback) {\n    for (const img of outElement.getElementsByTagName(\"img\")) {\n      const listener = disposables.add(addDisposableListener(img, \"load\", () =\u003e {\n        listener.dispose();\n        options2.asyncRenderCallback();\n      }));\n    }\n  }\n  if (options2.actionHandler) {\n    const clickCb = (e) =\u003e {\n      const mouseEvent = new StandardMouseEvent(getWindow(outElement), e);\n      if (!mouseEvent.leftButton \u0026\u0026 !mouseEvent.middleButton) {\n        return;\n      }\n      activateLink(markdown, options2, mouseEvent);\n    };\n    disposables.add(addDisposableListener(outElement, \"click\", clickCb));\n    disposables.add(addDisposableListener(outElement, \"auxclick\", clickCb));\n    disposables.add(addDisposableListener(outElement, \"keydown\", (e) =\u003e {\n      const keyboardEvent = new StandardKeyboardEvent(e);\n      if (!keyboardEvent.equals(\n        10\n        /* KeyCode.Space */\n      ) \u0026\u0026 !keyboardEvent.equals(\n        3\n        /* KeyCode.Enter */\n      )) {\n        return;\n      }\n      activateLink(markdown, options2, keyboardEvent);\n    }));\n  }\n  for (const input of [...outElement.getElementsByTagName(\"input\")]) {\n    if (input.attributes.getNamedItem(\"type\")?.value === \"checkbox\") {\n      input.setAttribute(\"disabled\", \"\");\n    } else {\n      if (options2.sanitizerConfig?.replaceWithPlaintext) {\n        const replacement = convertTagToPlaintext(input);\n        input.parentElement?.replaceChild(replacement, input);\n      } else {\n        input.remove();\n      }\n    }\n  }\n  return {\n    element: outElement,\n    dispose: () =\u003e {\n      isDisposed = true;\n      disposables.dispose();\n    }\n  };\n}\nfunction rewriteRenderedLinks(markdown, options2, root) {\n  for (const el of root.querySelectorAll(\"img, audio, video, source\")) {\n    const src = el.getAttribute(\"src\");\n    if (src) {\n      let href = src;\n      try {\n        if (markdown.baseUri) {\n          href = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n        }\n      } catch (err) {\n      }\n      el.setAttribute(\"src\", massageHref(markdown, href, true));\n      if (options2.sanitizerConfig?.remoteImageIsAllowed) {\n        const uri = URI.parse(href);\n        if (uri.scheme !== Schemas.file \u0026\u0026 uri.scheme !== Schemas.data \u0026\u0026 !options2.sanitizerConfig.remoteImageIsAllowed(uri)) {\n          el.replaceWith($(\"\", void 0, el.outerHTML));\n        }\n      }\n    }\n  }\n  for (const el of root.querySelectorAll(\"a\")) {\n    const href = el.getAttribute(\"href\");\n    el.setAttribute(\"href\", \"\");\n    if (!href || /^data:|javascript:/i.test(href) || /^command:/i.test(href) \u0026\u0026 !markdown.isTrusted || /^command:(\\/\\/\\/)?_workbench\\.downloadResource/i.test(href)) {\n      el.replaceWith(...el.childNodes);\n    } else {\n      let resolvedHref = massageHref(markdown, href, false);\n      if (markdown.baseUri) {\n        resolvedHref = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n      }\n      el.dataset.href = resolvedHref;\n    }\n  }\n}\nfunction createMarkdownRenderer(marked2, options2, markdown) {\n  const renderer = new marked2.Renderer(options2.markedOptions);\n  renderer.image = defaultMarkedRenderers.image;\n  renderer.link = defaultMarkedRenderers.link;\n  renderer.paragraph = defaultMarkedRenderers.paragraph;\n  const codeBlocks = [];\n  const syncCodeBlocks = [];\n  if (options2.codeBlockRendererSync) {\n    renderer.code = ({ text: text2, lang, raw }) =\u003e {\n      const id = defaultGenerator.nextId();\n      const value = options2.codeBlockRendererSync(postProcessCodeBlockLanguageId(lang), text2, raw);\n      syncCodeBlocks.push([id, value]);\n      return `\u003cdiv class=\"code\" data-code=\"${id}\"\u003e${escape(text2)}\u003c/div\u003e`;\n    };\n  } else if (options2.codeBlockRenderer) {\n    renderer.code = ({ text: text2, lang }) =\u003e {\n      const id = defaultGenerator.nextId();\n      const value = options2.codeBlockRenderer(postProcessCodeBlockLanguageId(lang), text2);\n      codeBlocks.push(value.then((element) =\u003e [id, element]));\n      return `\u003cdiv class=\"code\" data-code=\"${id}\"\u003e${escape(text2)}\u003c/div\u003e`;\n    };\n  }\n  if (!markdown.supportHtml) {\n    renderer.html = ({ text: text2 }) =\u003e {\n      if (options2.sanitizerConfig?.replaceWithPlaintext) {\n        return escape(text2);\n      }\n      const match2 = markdown.isTrusted ? text2.match(/^(\u003cspan[^\u003e]+\u003e)|(\u003c\\/\\s*span\u003e)$/) : void 0;\n      return match2 ? text2 : \"\";\n    };\n  }\n  return { renderer, codeBlocks, syncCodeBlocks };\n}\nfunction preprocessMarkdownString(markdown) {\n  let value = markdown.value;\n  if (value.length \u003e 1e5) {\n    value = `${value.substr(0, 1e5)}\\u2026`;\n  }\n  if (markdown.supportThemeIcons) {\n    value = markdownEscapeEscapedIcons(value);\n  }\n  return value;\n}\nfunction activateLink(mdStr, options2, event) {\n  const target = event.target.closest(\"a[data-href]\");\n  if (!isHTMLElement(target)) {\n    return;\n  }\n  try {\n    let href = target.dataset[\"href\"];\n    if (href) {\n      if (mdStr.baseUri) {\n        href = resolveWithBaseUri(URI.from(mdStr.baseUri), href);\n      }\n      options2.actionHandler?.(href, mdStr);\n    }\n  } catch (err) {\n    onUnexpectedError(err);\n  } finally {\n    event.preventDefault();\n  }\n}\nfunction uriMassage(markdown, part) {\n  let data;\n  try {\n    data = parse2(decodeURIComponent(part));\n  } catch (e) {\n  }\n  if (!data) {\n    return part;\n  }\n  data = cloneAndChange(data, (value) =\u003e {\n    if (markdown.uris \u0026\u0026 markdown.uris[value]) {\n      return URI.revive(markdown.uris[value]);\n    } else {\n      return void 0;\n    }\n  });\n  return encodeURIComponent(JSON.stringify(data));\n}\nfunction massageHref(markdown, href, isDomUri) {\n  const data = markdown.uris \u0026\u0026 markdown.uris[href];\n  let uri = URI.revive(data);\n  if (isDomUri) {\n    if (href.startsWith(Schemas.data + \":\")) {\n      return href;\n    }\n    if (!uri) {\n      uri = URI.parse(href);\n    }\n    return FileAccess.uriToBrowserUri(uri).toString(true);\n  }\n  if (!uri) {\n    return href;\n  }\n  if (URI.parse(href).toString() === uri.toString()) {\n    return href;\n  }\n  if (uri.query) {\n    uri = uri.with({ query: uriMassage(markdown, uri.query) });\n  }\n  return uri.toString();\n}\nfunction postProcessCodeBlockLanguageId(lang) {\n  if (!lang) {\n    return \"\";\n  }\n  const parts = lang.split(/[\\s+|:|,|\\{|\\?]/, 1);\n  if (parts.length) {\n    return parts[0];\n  }\n  return lang;\n}\nfunction resolveWithBaseUri(baseUri, href) {\n  const hasScheme = /^\\w[\\w\\d+.-]*:/.test(href);\n  if (hasScheme) {\n    return href;\n  }\n  if (baseUri.path.endsWith(\"/\")) {\n    return resolvePath(baseUri, href).toString();\n  } else {\n    return resolvePath(dirname2(baseUri), href).toString();\n  }\n}\nfunction sanitizeRenderedMarkdown(renderedMarkdown, isTrusted, options2 = {}) {\n  const sanitizerConfig = getDomSanitizerConfig(isTrusted, options2);\n  return sanitizeHtml(renderedMarkdown, sanitizerConfig);\n}\nvar allowedMarkdownHtmlTags = Object.freeze([\n  ...basicMarkupHtmlTags,\n  \"input\"\n  // Allow inputs for rendering checkboxes. Other types of inputs are removed and the inputs are always disabled\n]);\nvar allowedMarkdownHtmlAttributes = Object.freeze([\n  \"align\",\n  \"autoplay\",\n  \"alt\",\n  \"colspan\",\n  \"controls\",\n  \"draggable\",\n  \"height\",\n  \"href\",\n  \"loop\",\n  \"muted\",\n  \"playsinline\",\n  \"poster\",\n  \"rowspan\",\n  \"src\",\n  \"target\",\n  \"title\",\n  \"type\",\n  \"width\",\n  \"start\",\n  // Input (For disabled inputs)\n  \"checked\",\n  \"disabled\",\n  \"value\",\n  // Custom markdown attributes\n  \"data-code\",\n  \"data-href\",\n  // Only allow very specific styles\n  {\n    attributeName: \"style\",\n    shouldKeep: (element, data) =\u003e {\n      if (element.tagName === \"SPAN\") {\n        if (data.attrName === \"style\") {\n          return /^(color\\:(#[0-9a-fA-F]+|var\\(--vscode(-[a-zA-Z0-9]+)+\\));)?(background-color\\:(#[0-9a-fA-F]+|var\\(--vscode(-[a-zA-Z0-9]+)+\\));)?(border-radius:[0-9]+px;)?$/.test(data.attrValue);\n        }\n      }\n      return false;\n    }\n  },\n  // Only allow codicons for classes\n  {\n    attributeName: \"class\",\n    shouldKeep: (element, data) =\u003e {\n      if (element.tagName === \"SPAN\") {\n        if (data.attrName === \"class\") {\n          return /^codicon codicon-[a-z\\-]+( codicon-modifier-[a-z\\-]+)?$/.test(data.attrValue);\n        }\n      }\n      return false;\n    }\n  }\n]);\nfunction getDomSanitizerConfig(isTrusted, options2) {\n  const allowedLinkSchemes = [\n    Schemas.http,\n    Schemas.https,\n    Schemas.mailto,\n    Schemas.file,\n    Schemas.vscodeFileResource,\n    Schemas.vscodeRemote,\n    Schemas.vscodeRemoteResource,\n    Schemas.vscodeNotebookCell\n  ];\n  if (isTrusted) {\n    allowedLinkSchemes.push(Schemas.command);\n  }\n  if (options2.allowedLinkSchemes?.augment) {\n    allowedLinkSchemes.push(...options2.allowedLinkSchemes.augment);\n  }\n  return {\n    // allowedTags should included everything that markdown renders to.\n    // Since we have our own sanitize function for marked, it's possible we missed some tag so let dompurify make sure.\n    // HTML tags that can result from markdown are from reading https://spec.commonmark.org/0.29/\n    // HTML table tags that can result from markdown are from https://github.github.com/gfm/#tables-extension-\n    allowedTags: {\n      override: options2.allowedTags?.override ?? allowedMarkdownHtmlTags\n    },\n    allowedAttributes: {\n      override: options2.allowedAttributes?.override ?? allowedMarkdownHtmlAttributes\n    },\n    allowedLinkProtocols: {\n      override: allowedLinkSchemes\n    },\n    allowedMediaProtocols: {\n      override: [\n        Schemas.http,\n        Schemas.https,\n        Schemas.data,\n        Schemas.file,\n        Schemas.vscodeFileResource,\n        Schemas.vscodeRemote,\n        Schemas.vscodeRemoteResource\n      ]\n    },\n    replaceWithPlaintext: options2.replaceWithPlaintext\n  };\n}\nfunction renderAsPlaintext(str, options2) {\n  if (typeof str === \"string\") {\n    return str;\n  }\n  let value = str.value ?? \"\";\n  if (value.length \u003e 1e5) {\n    value = `${value.substr(0, 1e5)}\\u2026`;\n  }\n  const html3 = parse(value, { async: false, renderer: options2?.includeCodeBlocksFences ? plainTextWithCodeBlocksRenderer.value : plainTextRenderer.value });\n  return sanitizeRenderedMarkdown(\n    html3,\n    /* isTrusted */\n    false,\n    {}\n  ).toString().replace(/\u0026(#\\d+|[a-zA-Z]+);/g, (m) =\u003e unescapeInfo.get(m) ?? m).trim();\n}\nvar unescapeInfo = /* @__PURE__ */ new Map([\n  [\"\u0026quot;\", '\"'],\n  [\"\u0026nbsp;\", \" \"],\n  [\"\u0026amp;\", \"\u0026\"],\n  [\"\u0026#39;\", \"'\"],\n  [\"\u0026lt;\", \"\u003c\"],\n  [\"\u0026gt;\", \"\u003e\"]\n]);\nfunction createPlainTextRenderer() {\n  const renderer = new _Renderer();\n  renderer.code = ({ text: text2 }) =\u003e {\n    return escape(text2);\n  };\n  renderer.blockquote = ({ text: text2 }) =\u003e {\n    return text2 + \"\\n\";\n  };\n  renderer.html = (_) =\u003e {\n    return \"\";\n  };\n  renderer.heading = function({ tokens }) {\n    return this.parser.parseInline(tokens) + \"\\n\";\n  };\n  renderer.hr = () =\u003e {\n    return \"\";\n  };\n  renderer.list = function({ items }) {\n    return items.map((x) =\u003e this.listitem(x)).join(\"\\n\") + \"\\n\";\n  };\n  renderer.listitem = ({ text: text2 }) =\u003e {\n    return text2 + \"\\n\";\n  };\n  renderer.paragraph = function({ tokens }) {\n    return this.parser.parseInline(tokens) + \"\\n\";\n  };\n  renderer.table = function({ header: header2, rows }) {\n    return header2.map((cell) =\u003e this.tablecell(cell)).join(\" \") + \"\\n\" + rows.map((cells) =\u003e cells.map((cell) =\u003e this.tablecell(cell)).join(\" \")).join(\"\\n\") + \"\\n\";\n  };\n  renderer.tablerow = ({ text: text2 }) =\u003e {\n    return text2;\n  };\n  renderer.tablecell = function({ tokens }) {\n    return this.parser.parseInline(tokens);\n  };\n  renderer.strong = ({ text: text2 }) =\u003e {\n    return text2;\n  };\n  renderer.em = ({ text: text2 }) =\u003e {\n    return text2;\n  };\n  renderer.codespan = ({ text: text2 }) =\u003e {\n    return escape(text2);\n  };\n  renderer.br = (_) =\u003e {\n    return \"\\n\";\n  };\n  renderer.del = ({ text: text2 }) =\u003e {\n    return text2;\n  };\n  renderer.image = (_) =\u003e {\n    return \"\";\n  };\n  renderer.text = ({ text: text2 }) =\u003e {\n    return text2;\n  };\n  renderer.link = ({ text: text2 }) =\u003e {\n    return text2;\n  };\n  return renderer;\n}\nvar plainTextRenderer = new Lazy(createPlainTextRenderer);\nvar plainTextWithCodeBlocksRenderer = new Lazy(() =\u003e {\n  const renderer = createPlainTextRenderer();\n  renderer.code = ({ text: text2 }) =\u003e {\n    return `\n\\`\\`\\`\n${escape(text2)}\n\\`\\`\\`\n`;\n  };\n  return renderer;\n});\nfunction mergeRawTokenText(tokens) {\n  let mergedTokenText = \"\";\n  tokens.forEach((token) =\u003e {\n    mergedTokenText += token.raw;\n  });\n  return mergedTokenText;\n}\nfunction completeSingleLinePattern(token) {\n  if (!token.tokens) {\n    return void 0;\n  }\n  for (let i2 = token.tokens.length - 1; i2 \u003e= 0; i2--) {\n    const subtoken = token.tokens[i2];\n    if (subtoken.type === \"text\") {\n      const lines = subtoken.raw.split(\"\\n\");\n      const lastLine = lines[lines.length - 1];\n      if (lastLine.includes(\"`\")) {\n        return completeCodespan(token);\n      } else if (lastLine.includes(\"**\")) {\n        return completeDoublestar(token);\n      } else if (lastLine.match(/\\*\\w/)) {\n        return completeStar(token);\n      } else if (lastLine.match(/(^|\\s)__\\w/)) {\n        return completeDoubleUnderscore(token);\n      } else if (lastLine.match(/(^|\\s)_\\w/)) {\n        return completeUnderscore(token);\n      } else if (\n        // Text with start of link target\n        hasLinkTextAndStartOfLinkTarget(lastLine) || // This token doesn't have the link text, eg if it contains other markdown constructs that are in other subtokens.\n        // But some preceding token does have an unbalanced [ at least\n        hasStartOfLinkTargetAndNoLinkText(lastLine) \u0026\u0026 token.tokens.slice(0, i2).some((t) =\u003e t.type === \"text\" \u0026\u0026 t.raw.match(/\\[[^\\]]*$/))\n      ) {\n        const nextTwoSubTokens = token.tokens.slice(i2 + 1);\n        if (\n          // If the link was parsed as a link, then look for a link token and a text token with a quote\n          nextTwoSubTokens[0]?.type === \"link\" \u0026\u0026 nextTwoSubTokens[1]?.type === \"text\" \u0026\u0026 nextTwoSubTokens[1].raw.match(/^ *\"[^\"]*$/) || // And if the link was not parsed as a link (eg command link), just look for a single quote in this token\n          lastLine.match(/^[^\"]* +\"[^\"]*$/)\n        ) {\n          return completeLinkTargetArg(token);\n        }\n        return completeLinkTarget(token);\n      } else if (lastLine.match(/(^|\\s)\\[\\w*[^\\]]*$/)) {\n        return completeLinkText(token);\n      }\n    }\n  }\n  return void 0;\n}\nfunction hasLinkTextAndStartOfLinkTarget(str) {\n  return !!str.match(/(^|\\s)\\[.*\\]\\(\\w*/);\n}\nfunction hasStartOfLinkTargetAndNoLinkText(str) {\n  return !!str.match(/^[^\\[]*\\]\\([^\\)]*$/);\n}\nfunction completeListItemPattern(list2) {\n  const lastListItem = list2.items[list2.items.length - 1];\n  const lastListSubToken = lastListItem.tokens ? lastListItem.tokens[lastListItem.tokens.length - 1] : void 0;\n  const listEndsInHeading = (list3) =\u003e {\n    const lastItem = list3.items.at(-1);\n    const lastToken = lastItem?.tokens.at(-1);\n    return lastToken?.type === \"heading\" || lastToken?.type === \"list\" \u0026\u0026 listEndsInHeading(lastToken);\n  };\n  let newToken;\n  if (lastListSubToken?.type === \"text\" \u0026\u0026 !(\"inRawBlock\" in lastListItem)) {\n    newToken = completeSingleLinePattern(lastListSubToken);\n  } else if (listEndsInHeading(list2)) {\n    const newList2 = lexer(list2.raw.trim() + \" \u0026nbsp;\")[0];\n    if (newList2.type !== \"list\") {\n      return;\n    }\n    return newList2;\n  }\n  if (!newToken || newToken.type !== \"paragraph\") {\n    return;\n  }\n  const previousListItemsText = mergeRawTokenText(list2.items.slice(0, -1));\n  const lastListItemLead = lastListItem.raw.match(/^(\\s*(-|\\d+\\.|\\*) +)/)?.[0];\n  if (!lastListItemLead) {\n    return;\n  }\n  const newListItemText = lastListItemLead + mergeRawTokenText(lastListItem.tokens.slice(0, -1)) + newToken.raw;\n  const newList = lexer(previousListItemsText + newListItemText)[0];\n  if (newList.type !== \"list\") {\n    return;\n  }\n  return newList;\n}\nfunction completeHeading(token, fullRawText) {\n  if (token.raw.match(/-\\s*$/)) {\n    return lexer(fullRawText + \" \u0026nbsp;\");\n  }\n}\nvar maxIncompleteTokensFixRounds = 3;\nfunction fillInIncompleteTokens(tokens) {\n  for (let i2 = 0; i2 \u003c maxIncompleteTokensFixRounds; i2++) {\n    const newTokens = fillInIncompleteTokensOnce(tokens);\n    if (newTokens) {\n      tokens = newTokens;\n    } else {\n      break;\n    }\n  }\n  return tokens;\n}\nfunction fillInIncompleteTokensOnce(tokens) {\n  let i2;\n  let newTokens;\n  for (i2 = 0; i2 \u003c tokens.length; i2++) {\n    const token = tokens[i2];\n    if (token.type === \"paragraph\" \u0026\u0026 token.raw.match(/(\\n|^)\\|/)) {\n      newTokens = completeTable(tokens.slice(i2));\n      break;\n    }\n  }\n  const lastToken = tokens.at(-1);\n  if (!newTokens \u0026\u0026 lastToken?.type === \"list\") {\n    const newListToken = completeListItemPattern(lastToken);\n    if (newListToken) {\n      newTokens = [newListToken];\n      i2 = tokens.length - 1;\n    }\n  }\n  if (!newTokens \u0026\u0026 lastToken?.type === \"paragraph\") {\n    const newToken = completeSingleLinePattern(lastToken);\n    if (newToken) {\n      newTokens = [newToken];\n      i2 = tokens.length - 1;\n    }\n  }\n  if (newTokens) {\n    const newTokensList = [\n      ...tokens.slice(0, i2),\n      ...newTokens\n    ];\n    newTokensList.links = tokens.links;\n    return newTokensList;\n  }\n  if (lastToken?.type === \"heading\") {\n    const completeTokens = completeHeading(lastToken, mergeRawTokenText(tokens));\n    if (completeTokens) {\n      return completeTokens;\n    }\n  }\n  return null;\n}\nfunction completeCodespan(token) {\n  return completeWithString(token, \"`\");\n}\nfunction completeStar(tokens) {\n  return completeWithString(tokens, \"*\");\n}\nfunction completeUnderscore(tokens) {\n  return completeWithString(tokens, \"_\");\n}\nfunction completeLinkTarget(tokens) {\n  return completeWithString(tokens, \")\", false);\n}\nfunction completeLinkTargetArg(tokens) {\n  return completeWithString(tokens, '\")', false);\n}\nfunction completeLinkText(tokens) {\n  return completeWithString(tokens, \"](https://microsoft.com)\", false);\n}\nfunction completeDoublestar(tokens) {\n  return completeWithString(tokens, \"**\");\n}\nfunction completeDoubleUnderscore(tokens) {\n  return completeWithString(tokens, \"__\");\n}\nfunction completeWithString(tokens, closingString, shouldTrim = true) {\n  const mergedRawText = mergeRawTokenText(Array.isArray(tokens) ? tokens : [tokens]);\n  const trimmedRawText = shouldTrim ? mergedRawText.trimEnd() : mergedRawText;\n  return lexer(trimmedRawText + closingString)[0];\n}\nfunction completeTable(tokens) {\n  const mergedRawText = mergeRawTokenText(tokens);\n  const lines = mergedRawText.split(\"\\n\");\n  let numCols;\n  let hasSeparatorRow = false;\n  for (let i2 = 0; i2 \u003c lines.length; i2++) {\n    const line = lines[i2].trim();\n    if (typeof numCols === \"undefined\" \u0026\u0026 line.match(/^\\s*\\|/)) {\n      const line1Matches = line.match(/(\\|[^\\|]+)(?=\\||$)/g);\n      if (line1Matches) {\n        numCols = line1Matches.length;\n      }\n    } else if (typeof numCols === \"number\") {\n      if (line.match(/^\\s*\\|/)) {\n        if (i2 !== lines.length - 1) {\n          return void 0;\n        }\n        hasSeparatorRow = true;\n      } else {\n        return void 0;\n      }\n    }\n  }\n  if (typeof numCols === \"number\" \u0026\u0026 numCols \u003e 0) {\n    const prefixText = hasSeparatorRow ? lines.slice(0, -1).join(\"\\n\") : mergedRawText;\n    const line1EndsInPipe = !!prefixText.match(/\\|\\s*$/);\n    const newRawText = prefixText + (line1EndsInPipe ? \"\" : \"|\") + `\n|${\" --- |\".repeat(numCols)}`;\n    return lexer(newRawText);\n  }\n  return void 0;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/hover/hoverDelegate2.js\ninit_lifecycle();\nvar baseHoverDelegate = {\n  showInstantHover: () =\u003e void 0,\n  showDelayedHover: () =\u003e void 0,\n  setupDelayedHover: () =\u003e Disposable.None,\n  setupDelayedHoverAtMouse: () =\u003e Disposable.None,\n  hideHover: () =\u003e void 0,\n  showAndFocusLastHover: () =\u003e void 0,\n  setupManagedHover: () =\u003e ({\n    dispose: () =\u003e void 0,\n    show: () =\u003e void 0,\n    hide: () =\u003e void 0,\n    update: () =\u003e void 0\n  }),\n  showManagedHover: () =\u003e void 0\n};\nfunction setBaseLayerHoverDelegate(hoverDelegate) {\n  baseHoverDelegate = hoverDelegate;\n}\nfunction getBaseLayerHoverDelegate() {\n  return baseHoverDelegate;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listWidget.js\ninit_dom();\ninit_keyboardEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/splice.js\nvar CombinedSpliceable = class {\n  constructor(spliceables) {\n    this.spliceables = spliceables;\n  }\n  splice(start, deleteCount, elements) {\n    this.spliceables.forEach((s) =\u003e s.splice(start, deleteCount, elements));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listWidget.js\ninit_arrays();\ninit_async();\ninit_color();\ninit_event();\ninit_filters();\ninit_lifecycle();\ninit_numbers();\ninit_platform();\ninit_types();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/list.js\nvar ListError = class extends Error {\n  constructor(user, message) {\n    super(`ListError [${user}] ${message}`);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listView.js\ninit_dom();\ninit_arrays();\ninit_async();\ninit_event();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/range.js\nvar Range2;\n(function(Range4) {\n  function intersect(one, other) {\n    if (one.start \u003e= other.end || other.start \u003e= one.end) {\n      return { start: 0, end: 0 };\n    }\n    const start = Math.max(one.start, other.start);\n    const end = Math.min(one.end, other.end);\n    if (end - start \u003c= 0) {\n      return { start: 0, end: 0 };\n    }\n    return { start, end };\n  }\n  Range4.intersect = intersect;\n  function isEmpty(range2) {\n    return range2.end - range2.start \u003c= 0;\n  }\n  Range4.isEmpty = isEmpty;\n  function intersects2(one, other) {\n    return !isEmpty(intersect(one, other));\n  }\n  Range4.intersects = intersects2;\n  function relativeComplement2(one, other) {\n    const result = [];\n    const first2 = { start: one.start, end: Math.min(other.start, one.end) };\n    const second = { start: Math.max(other.end, one.start), end: one.end };\n    if (!isEmpty(first2)) {\n      result.push(first2);\n    }\n    if (!isEmpty(second)) {\n      result.push(second);\n    }\n    return result;\n  }\n  Range4.relativeComplement = relativeComplement2;\n})(Range2 || (Range2 = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/rangeMap.js\nfunction groupIntersect(range2, groups) {\n  const result = [];\n  for (const r of groups) {\n    if (range2.start \u003e= r.range.end) {\n      continue;\n    }\n    if (range2.end \u003c r.range.start) {\n      break;\n    }\n    const intersection2 = Range2.intersect(range2, r.range);\n    if (Range2.isEmpty(intersection2)) {\n      continue;\n    }\n    result.push({\n      range: intersection2,\n      size: r.size\n    });\n  }\n  return result;\n}\nfunction shift({ start, end }, much) {\n  return { start: start + much, end: end + much };\n}\nfunction consolidate(groups) {\n  const result = [];\n  let previousGroup = null;\n  for (const group of groups) {\n    const start = group.range.start;\n    const end = group.range.end;\n    const size2 = group.size;\n    if (previousGroup \u0026\u0026 size2 === previousGroup.size) {\n      previousGroup.range.end = end;\n      continue;\n    }\n    previousGroup = { range: { start, end }, size: size2 };\n    result.push(previousGroup);\n  }\n  return result;\n}\nfunction concat3(...groups) {\n  return consolidate(groups.reduce((r, g) =\u003e r.concat(g), []));\n}\nvar RangeMap = class {\n  get paddingTop() {\n    return this._paddingTop;\n  }\n  set paddingTop(paddingTop) {\n    this._size = this._size + paddingTop - this._paddingTop;\n    this._paddingTop = paddingTop;\n  }\n  constructor(topPadding) {\n    this.groups = [];\n    this._size = 0;\n    this._paddingTop = 0;\n    this._paddingTop = topPadding ?? 0;\n    this._size = this._paddingTop;\n  }\n  splice(index, deleteCount, items = []) {\n    const diff = items.length - deleteCount;\n    const before = groupIntersect({ start: 0, end: index }, this.groups);\n    const after2 = groupIntersect({ start: index + deleteCount, end: Number.POSITIVE_INFINITY }, this.groups).map((g) =\u003e ({ range: shift(g.range, diff), size: g.size }));\n    const middle = items.map((item, i2) =\u003e ({\n      range: { start: index + i2, end: index + i2 + 1 },\n      size: item.size\n    }));\n    this.groups = concat3(before, middle, after2);\n    this._size = this._paddingTop + this.groups.reduce((t, g) =\u003e t + g.size * (g.range.end - g.range.start), 0);\n  }\n  /**\n   * Returns the number of items in the range map.\n   */\n  get count() {\n    const len = this.groups.length;\n    if (!len) {\n      return 0;\n    }\n    return this.groups[len - 1].range.end;\n  }\n  /**\n   * Returns the sum of the sizes of all items in the range map.\n   */\n  get size() {\n    return this._size;\n  }\n  /**\n   * Returns the index of the item at the given position.\n   */\n  indexAt(position) {\n    if (position \u003c 0) {\n      return -1;\n    }\n    if (position \u003c this._paddingTop) {\n      return 0;\n    }\n    let index = 0;\n    let size2 = this._paddingTop;\n    for (const group of this.groups) {\n      const count = group.range.end - group.range.start;\n      const newSize = size2 + count * group.size;\n      if (position \u003c newSize) {\n        return index + Math.floor((position - size2) / group.size);\n      }\n      index += count;\n      size2 = newSize;\n    }\n    return index;\n  }\n  /**\n   * Returns the index of the item right after the item at the\n   * index of the given position.\n   */\n  indexAfter(position) {\n    return Math.min(this.indexAt(position) + 1, this.count);\n  }\n  /**\n   * Returns the start position of the item at the given index.\n   */\n  positionAt(index) {\n    if (index \u003c 0) {\n      return -1;\n    }\n    let position = 0;\n    let count = 0;\n    for (const group of this.groups) {\n      const groupCount = group.range.end - group.range.start;\n      const newCount = count + groupCount;\n      if (index \u003c newCount) {\n        return this._paddingTop + position + (index - count) * group.size;\n      }\n      position += groupCount * group.size;\n      count = newCount;\n    }\n    return -1;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/rowCache.js\ninit_dom();\nvar RowCache = class {\n  constructor(renderers) {\n    this.renderers = renderers;\n    this.cache = /* @__PURE__ */ new Map();\n    this.transactionNodesPendingRemoval = /* @__PURE__ */ new Set();\n    this.inTransaction = false;\n  }\n  /**\n   * Returns a row either by creating a new one or reusing\n   * a previously released row which shares the same templateId.\n   *\n   * @returns A row and `isReusingConnectedDomNode` if the row's node is already in the dom in a stale position.\n   */\n  alloc(templateId) {\n    let result = this.getTemplateCache(templateId).pop();\n    let isStale = false;\n    if (result) {\n      isStale = this.transactionNodesPendingRemoval.has(result.domNode);\n      if (isStale) {\n        this.transactionNodesPendingRemoval.delete(result.domNode);\n      }\n    } else {\n      const domNode = $(\".monaco-list-row\");\n      const renderer = this.getRenderer(templateId);\n      const templateData = renderer.renderTemplate(domNode);\n      result = { domNode, templateId, templateData };\n    }\n    return { row: result, isReusingConnectedDomNode: isStale };\n  }\n  /**\n   * Releases the row for eventual reuse.\n   */\n  release(row) {\n    if (!row) {\n      return;\n    }\n    this.releaseRow(row);\n  }\n  /**\n   * Begin a set of changes that use the cache. This lets us skip work when a row is removed and then inserted again.\n   */\n  transact(makeChanges) {\n    if (this.inTransaction) {\n      throw new Error(\"Already in transaction\");\n    }\n    this.inTransaction = true;\n    try {\n      makeChanges();\n    } finally {\n      for (const domNode of this.transactionNodesPendingRemoval) {\n        this.doRemoveNode(domNode);\n      }\n      this.transactionNodesPendingRemoval.clear();\n      this.inTransaction = false;\n    }\n  }\n  releaseRow(row) {\n    const { domNode, templateId } = row;\n    if (domNode) {\n      if (this.inTransaction) {\n        this.transactionNodesPendingRemoval.add(domNode);\n      } else {\n        this.doRemoveNode(domNode);\n      }\n    }\n    const cache = this.getTemplateCache(templateId);\n    cache.push(row);\n  }\n  doRemoveNode(domNode) {\n    domNode.classList.remove(\"scrolling\");\n    domNode.remove();\n  }\n  getTemplateCache(templateId) {\n    let result = this.cache.get(templateId);\n    if (!result) {\n      result = [];\n      this.cache.set(templateId, result);\n    }\n    return result;\n  }\n  dispose() {\n    this.cache.forEach((cachedRows, templateId) =\u003e {\n      for (const cachedRow of cachedRows) {\n        const renderer = this.getRenderer(templateId);\n        renderer.disposeTemplate(cachedRow.templateData);\n        cachedRow.templateData = null;\n      }\n    });\n    this.cache.clear();\n    this.transactionNodesPendingRemoval.clear();\n  }\n  getRenderer(templateId) {\n    const renderer = this.renderers.get(templateId);\n    if (!renderer) {\n      throw new Error(`No renderer found for ${templateId}`);\n    }\n    return renderer;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listView.js\ninit_errors();\ninit_numbers();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/dnd/dnd.js\ninit_dom();\nfunction applyDragImage(event, container, label, extraClasses = []) {\n  if (!event.dataTransfer) {\n    return;\n  }\n  const dragImage = $(\".monaco-drag-image\");\n  dragImage.textContent = label;\n  dragImage.classList.add(...extraClasses);\n  const getDragImageContainer = (e) =\u003e {\n    while (e \u0026\u0026 !e.classList.contains(\"monaco-workbench\")) {\n      e = e.parentElement;\n    }\n    return e || container.ownerDocument.body;\n  };\n  const dragContainer = getDragImageContainer(container);\n  dragContainer.appendChild(dragImage);\n  event.dataTransfer.setDragImage(dragImage, -10, -10);\n  setTimeout(() =\u003e dragImage.remove(), 0);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listView.js\nvar __decorate27 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar StaticDND = {\n  CurrentDragAndDropData: void 0\n};\nvar DefaultOptions = {\n  useShadows: true,\n  verticalScrollMode: 1,\n  setRowLineHeight: true,\n  setRowHeight: true,\n  supportDynamicHeights: false,\n  dnd: {\n    getDragElements(e) {\n      return [e];\n    },\n    getDragURI() {\n      return null;\n    },\n    onDragStart() {\n    },\n    onDragOver() {\n      return false;\n    },\n    drop() {\n    },\n    dispose() {\n    }\n  },\n  horizontalScrolling: false,\n  transformOptimization: true,\n  alwaysConsumeMouseWheel: true\n};\nvar ElementsDragAndDropData = class {\n  constructor(elements) {\n    this.elements = elements;\n  }\n  update() {\n  }\n  getData() {\n    return this.elements;\n  }\n};\nvar ExternalElementsDragAndDropData = class {\n  constructor(elements) {\n    this.elements = elements;\n  }\n  update() {\n  }\n  getData() {\n    return this.elements;\n  }\n};\nvar NativeDragAndDropData = class {\n  constructor() {\n    this.types = [];\n    this.files = [];\n  }\n  update(dataTransfer) {\n    if (dataTransfer.types) {\n      this.types.splice(0, this.types.length, ...dataTransfer.types);\n    }\n    if (dataTransfer.files) {\n      this.files.splice(0, this.files.length);\n      for (let i2 = 0; i2 \u003c dataTransfer.files.length; i2++) {\n        const file = dataTransfer.files.item(i2);\n        if (file \u0026\u0026 (file.size || file.type)) {\n          this.files.push(file);\n        }\n      }\n    }\n  }\n  getData() {\n    return {\n      types: this.types,\n      files: this.files\n    };\n  }\n};\nfunction equalsDragFeedback(f1, f2) {\n  if (Array.isArray(f1) \u0026\u0026 Array.isArray(f2)) {\n    return equals(f1, f2);\n  }\n  return f1 === f2;\n}\nvar ListViewAccessibilityProvider = class {\n  constructor(accessibilityProvider) {\n    if (accessibilityProvider?.getSetSize) {\n      this.getSetSize = accessibilityProvider.getSetSize.bind(accessibilityProvider);\n    } else {\n      this.getSetSize = (e, i2, l) =\u003e l;\n    }\n    if (accessibilityProvider?.getPosInSet) {\n      this.getPosInSet = accessibilityProvider.getPosInSet.bind(accessibilityProvider);\n    } else {\n      this.getPosInSet = (e, i2) =\u003e i2 + 1;\n    }\n    if (accessibilityProvider?.getRole) {\n      this.getRole = accessibilityProvider.getRole.bind(accessibilityProvider);\n    } else {\n      this.getRole = (_) =\u003e \"listitem\";\n    }\n    if (accessibilityProvider?.isChecked) {\n      this.isChecked = accessibilityProvider.isChecked.bind(accessibilityProvider);\n    } else {\n      this.isChecked = (_) =\u003e void 0;\n    }\n  }\n};\nvar ListView = class _ListView {\n  static {\n    this.InstanceCount = 0;\n  }\n  get contentHeight() {\n    return this.rangeMap.size;\n  }\n  get onDidScroll() {\n    return this.scrollableElement.onScroll;\n  }\n  get scrollableElementDomNode() {\n    return this.scrollableElement.getDomNode();\n  }\n  get horizontalScrolling() {\n    return this._horizontalScrolling;\n  }\n  set horizontalScrolling(value) {\n    if (value === this._horizontalScrolling) {\n      return;\n    }\n    if (value \u0026\u0026 this.supportDynamicHeights) {\n      throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");\n    }\n    this._horizontalScrolling = value;\n    this.domNode.classList.toggle(\"horizontal-scrolling\", this._horizontalScrolling);\n    if (this._horizontalScrolling) {\n      for (const item of this.items) {\n        this.measureItemWidth(item);\n      }\n      this.updateScrollWidth();\n      this.scrollableElement.setScrollDimensions({ width: getContentWidth(this.domNode) });\n      this.rowsContainer.style.width = `${Math.max(this.scrollWidth || 0, this.renderWidth)}px`;\n    } else {\n      this.scrollableElementWidthDelayer.cancel();\n      this.scrollableElement.setScrollDimensions({ width: this.renderWidth, scrollWidth: this.renderWidth });\n      this.rowsContainer.style.width = \"\";\n    }\n  }\n  constructor(container, virtualDelegate, renderers, options2 = DefaultOptions) {\n    this.virtualDelegate = virtualDelegate;\n    this.domId = `list_id_${++_ListView.InstanceCount}`;\n    this.renderers = /* @__PURE__ */ new Map();\n    this.renderWidth = 0;\n    this._scrollHeight = 0;\n    this.scrollableElementUpdateDisposable = null;\n    this.scrollableElementWidthDelayer = new Delayer(50);\n    this.splicing = false;\n    this.dragOverAnimationStopDisposable = Disposable.None;\n    this.dragOverMouseY = 0;\n    this.canDrop = false;\n    this.currentDragFeedbackDisposable = Disposable.None;\n    this.onDragLeaveTimeout = Disposable.None;\n    this.currentSelectionDisposable = Disposable.None;\n    this.disposables = new DisposableStore();\n    this._onDidChangeContentHeight = new Emitter();\n    this._onDidChangeContentWidth = new Emitter();\n    this.onDidChangeContentHeight = Event.latch(this._onDidChangeContentHeight.event, void 0, this.disposables);\n    this._horizontalScrolling = false;\n    if (options2.horizontalScrolling \u0026\u0026 options2.supportDynamicHeights) {\n      throw new Error(\"Horizontal scrolling and dynamic heights not supported simultaneously\");\n    }\n    this.items = [];\n    this.itemId = 0;\n    this.rangeMap = this.createRangeMap(options2.paddingTop ?? 0);\n    for (const renderer of renderers) {\n      this.renderers.set(renderer.templateId, renderer);\n    }\n    this.cache = this.disposables.add(new RowCache(this.renderers));\n    this.lastRenderTop = 0;\n    this.lastRenderHeight = 0;\n    this.domNode = document.createElement(\"div\");\n    this.domNode.className = \"monaco-list\";\n    this.domNode.classList.add(this.domId);\n    this.domNode.tabIndex = 0;\n    this.domNode.classList.toggle(\"mouse-support\", typeof options2.mouseSupport === \"boolean\" ? options2.mouseSupport : true);\n    this._horizontalScrolling = options2.horizontalScrolling ?? DefaultOptions.horizontalScrolling;\n    this.domNode.classList.toggle(\"horizontal-scrolling\", this._horizontalScrolling);\n    this.paddingBottom = typeof options2.paddingBottom === \"undefined\" ? 0 : options2.paddingBottom;\n    this.accessibilityProvider = new ListViewAccessibilityProvider(options2.accessibilityProvider);\n    this.rowsContainer = document.createElement(\"div\");\n    this.rowsContainer.className = \"monaco-list-rows\";\n    const transformOptimization = options2.transformOptimization ?? DefaultOptions.transformOptimization;\n    if (transformOptimization) {\n      this.rowsContainer.style.transform = \"translate3d(0px, 0px, 0px)\";\n      this.rowsContainer.style.overflow = \"hidden\";\n      this.rowsContainer.style.contain = \"strict\";\n    }\n    this.disposables.add(Gesture.addTarget(this.rowsContainer));\n    this.scrollable = this.disposables.add(new Scrollable({\n      forceIntegerValues: true,\n      smoothScrollDuration: options2.smoothScrolling ?? false ? 125 : 0,\n      scheduleAtNextAnimationFrame: (cb) =\u003e scheduleAtNextAnimationFrame(getWindow(this.domNode), cb)\n    }));\n    this.scrollableElement = this.disposables.add(new SmoothScrollableElement(this.rowsContainer, {\n      alwaysConsumeMouseWheel: options2.alwaysConsumeMouseWheel ?? DefaultOptions.alwaysConsumeMouseWheel,\n      horizontal: 1,\n      vertical: options2.verticalScrollMode ?? DefaultOptions.verticalScrollMode,\n      useShadows: options2.useShadows ?? DefaultOptions.useShadows,\n      mouseWheelScrollSensitivity: options2.mouseWheelScrollSensitivity,\n      fastScrollSensitivity: options2.fastScrollSensitivity,\n      scrollByPage: options2.scrollByPage\n    }, this.scrollable));\n    this.domNode.appendChild(this.scrollableElement.getDomNode());\n    container.appendChild(this.domNode);\n    this.scrollableElement.onScroll(this.onScroll, this, this.disposables);\n    this.disposables.add(addDisposableListener(this.rowsContainer, EventType2.Change, (e) =\u003e this.onTouchChange(e)));\n    this.disposables.add(addDisposableListener(this.scrollableElement.getDomNode(), \"scroll\", (e) =\u003e {\n      const element = e.target;\n      const scrollValue = element.scrollTop;\n      element.scrollTop = 0;\n      if (options2.scrollToActiveElement) {\n        this.setScrollTop(this.scrollTop + scrollValue);\n      }\n    }));\n    this.disposables.add(addDisposableListener(this.domNode, \"dragover\", (e) =\u003e this.onDragOver(this.toDragEvent(e))));\n    this.disposables.add(addDisposableListener(this.domNode, \"drop\", (e) =\u003e this.onDrop(this.toDragEvent(e))));\n    this.disposables.add(addDisposableListener(this.domNode, \"dragleave\", (e) =\u003e this.onDragLeave(this.toDragEvent(e))));\n    this.disposables.add(addDisposableListener(this.domNode, \"dragend\", (e) =\u003e this.onDragEnd(e)));\n    if (options2.userSelection) {\n      if (options2.dnd) {\n        throw new Error(\"DND and user selection cannot be used simultaneously\");\n      }\n      this.disposables.add(addDisposableListener(this.domNode, \"mousedown\", (e) =\u003e this.onPotentialSelectionStart(e)));\n    }\n    this.setRowLineHeight = options2.setRowLineHeight ?? DefaultOptions.setRowLineHeight;\n    this.setRowHeight = options2.setRowHeight ?? DefaultOptions.setRowHeight;\n    this.supportDynamicHeights = options2.supportDynamicHeights ?? DefaultOptions.supportDynamicHeights;\n    this.dnd = options2.dnd ?? this.disposables.add(DefaultOptions.dnd);\n    this.layout(options2.initialSize?.height, options2.initialSize?.width);\n    if (options2.scrollToActiveElement) {\n      this._setupFocusObserver(container);\n    }\n  }\n  _setupFocusObserver(container) {\n    this.disposables.add(addDisposableListener(container, \"focus\", () =\u003e {\n      const element = getActiveElement();\n      if (this.activeElement !== element \u0026\u0026 element !== null) {\n        this.activeElement = element;\n        this._scrollToActiveElement(this.activeElement, container);\n      }\n    }, true));\n  }\n  _scrollToActiveElement(element, container) {\n    const containerRect = container.getBoundingClientRect();\n    const elementRect = element.getBoundingClientRect();\n    const topOffset = elementRect.top - containerRect.top;\n    if (topOffset \u003c 0) {\n      this.setScrollTop(this.scrollTop + topOffset);\n    }\n  }\n  updateOptions(options2) {\n    if (options2.paddingBottom !== void 0) {\n      this.paddingBottom = options2.paddingBottom;\n      this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n    }\n    if (options2.smoothScrolling !== void 0) {\n      this.scrollable.setSmoothScrollDuration(options2.smoothScrolling ? 125 : 0);\n    }\n    if (options2.horizontalScrolling !== void 0) {\n      this.horizontalScrolling = options2.horizontalScrolling;\n    }\n    let scrollableOptions;\n    if (options2.scrollByPage !== void 0) {\n      scrollableOptions = { ...scrollableOptions ?? {}, scrollByPage: options2.scrollByPage };\n    }\n    if (options2.mouseWheelScrollSensitivity !== void 0) {\n      scrollableOptions = { ...scrollableOptions ?? {}, mouseWheelScrollSensitivity: options2.mouseWheelScrollSensitivity };\n    }\n    if (options2.fastScrollSensitivity !== void 0) {\n      scrollableOptions = { ...scrollableOptions ?? {}, fastScrollSensitivity: options2.fastScrollSensitivity };\n    }\n    if (scrollableOptions) {\n      this.scrollableElement.updateOptions(scrollableOptions);\n    }\n    if (options2.paddingTop !== void 0 \u0026\u0026 options2.paddingTop !== this.rangeMap.paddingTop) {\n      const lastRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n      const offset = options2.paddingTop - this.rangeMap.paddingTop;\n      this.rangeMap.paddingTop = options2.paddingTop;\n      this.render(lastRenderRange, Math.max(0, this.lastRenderTop + offset), this.lastRenderHeight, void 0, void 0, true);\n      this.setScrollTop(this.lastRenderTop);\n      this.eventuallyUpdateScrollDimensions();\n      if (this.supportDynamicHeights) {\n        this._rerender(this.lastRenderTop, this.lastRenderHeight);\n      }\n    }\n  }\n  createRangeMap(paddingTop) {\n    return new RangeMap(paddingTop);\n  }\n  splice(start, deleteCount, elements = []) {\n    if (this.splicing) {\n      throw new Error(\"Can't run recursive splices.\");\n    }\n    this.splicing = true;\n    try {\n      return this._splice(start, deleteCount, elements);\n    } finally {\n      this.splicing = false;\n      this._onDidChangeContentHeight.fire(this.contentHeight);\n    }\n  }\n  _splice(start, deleteCount, elements = []) {\n    const previousRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n    const deleteRange = { start, end: start + deleteCount };\n    const removeRange = Range2.intersect(previousRenderRange, deleteRange);\n    const rowsToDispose = /* @__PURE__ */ new Map();\n    for (let i2 = removeRange.end - 1; i2 \u003e= removeRange.start; i2--) {\n      const item = this.items[i2];\n      item.dragStartDisposable.dispose();\n      item.checkedDisposable.dispose();\n      if (item.row) {\n        let rows = rowsToDispose.get(item.templateId);\n        if (!rows) {\n          rows = [];\n          rowsToDispose.set(item.templateId, rows);\n        }\n        const renderer = this.renderers.get(item.templateId);\n        if (renderer \u0026\u0026 renderer.disposeElement) {\n          renderer.disposeElement(item.element, i2, item.row.templateData, { height: item.size });\n        }\n        rows.unshift(item.row);\n      }\n      item.row = null;\n      item.stale = true;\n    }\n    const previousRestRange = { start: start + deleteCount, end: this.items.length };\n    const previousRenderedRestRange = Range2.intersect(previousRestRange, previousRenderRange);\n    const previousUnrenderedRestRanges = Range2.relativeComplement(previousRestRange, previousRenderRange);\n    const inserted = elements.map((element) =\u003e ({\n      id: String(this.itemId++),\n      element,\n      templateId: this.virtualDelegate.getTemplateId(element),\n      size: this.virtualDelegate.getHeight(element),\n      width: void 0,\n      hasDynamicHeight: !!this.virtualDelegate.hasDynamicHeight \u0026\u0026 this.virtualDelegate.hasDynamicHeight(element),\n      lastDynamicHeightWidth: void 0,\n      row: null,\n      uri: void 0,\n      dropTarget: false,\n      dragStartDisposable: Disposable.None,\n      checkedDisposable: Disposable.None,\n      stale: false\n    }));\n    let deleted;\n    if (start === 0 \u0026\u0026 deleteCount \u003e= this.items.length) {\n      this.rangeMap = this.createRangeMap(this.rangeMap.paddingTop);\n      this.rangeMap.splice(0, 0, inserted);\n      deleted = this.items;\n      this.items = inserted;\n    } else {\n      this.rangeMap.splice(start, deleteCount, inserted);\n      deleted = splice(this.items, start, deleteCount, inserted);\n    }\n    const delta = elements.length - deleteCount;\n    const renderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n    const renderedRestRange = shift(previousRenderedRestRange, delta);\n    const updateRange = Range2.intersect(renderRange, renderedRestRange);\n    for (let i2 = updateRange.start; i2 \u003c updateRange.end; i2++) {\n      this.updateItemInDOM(this.items[i2], i2);\n    }\n    const removeRanges = Range2.relativeComplement(renderedRestRange, renderRange);\n    for (const range2 of removeRanges) {\n      for (let i2 = range2.start; i2 \u003c range2.end; i2++) {\n        this.removeItemFromDOM(i2);\n      }\n    }\n    const unrenderedRestRanges = previousUnrenderedRestRanges.map((r) =\u003e shift(r, delta));\n    const elementsRange = { start, end: start + elements.length };\n    const insertRanges = [elementsRange, ...unrenderedRestRanges].map((r) =\u003e Range2.intersect(renderRange, r)).reverse();\n    for (const range2 of insertRanges) {\n      for (let i2 = range2.end - 1; i2 \u003e= range2.start; i2--) {\n        const item = this.items[i2];\n        const rows = rowsToDispose.get(item.templateId);\n        const row = rows?.pop();\n        this.insertItemInDOM(i2, row);\n      }\n    }\n    for (const rows of rowsToDispose.values()) {\n      for (const row of rows) {\n        this.cache.release(row);\n      }\n    }\n    this.eventuallyUpdateScrollDimensions();\n    if (this.supportDynamicHeights) {\n      this._rerender(this.scrollTop, this.renderHeight);\n    }\n    return deleted.map((i2) =\u003e i2.element);\n  }\n  eventuallyUpdateScrollDimensions() {\n    this._scrollHeight = this.contentHeight;\n    this.rowsContainer.style.height = `${this._scrollHeight}px`;\n    if (!this.scrollableElementUpdateDisposable) {\n      this.scrollableElementUpdateDisposable = scheduleAtNextAnimationFrame(getWindow(this.domNode), () =\u003e {\n        this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n        this.updateScrollWidth();\n        this.scrollableElementUpdateDisposable = null;\n      });\n    }\n  }\n  eventuallyUpdateScrollWidth() {\n    if (!this.horizontalScrolling) {\n      this.scrollableElementWidthDelayer.cancel();\n      return;\n    }\n    this.scrollableElementWidthDelayer.trigger(() =\u003e this.updateScrollWidth());\n  }\n  updateScrollWidth() {\n    if (!this.horizontalScrolling) {\n      return;\n    }\n    let scrollWidth = 0;\n    for (const item of this.items) {\n      if (typeof item.width !== \"undefined\") {\n        scrollWidth = Math.max(scrollWidth, item.width);\n      }\n    }\n    this.scrollWidth = scrollWidth;\n    this.scrollableElement.setScrollDimensions({ scrollWidth: scrollWidth === 0 ? 0 : scrollWidth + 10 });\n    this._onDidChangeContentWidth.fire(this.scrollWidth);\n  }\n  rerender() {\n    if (!this.supportDynamicHeights) {\n      return;\n    }\n    for (const item of this.items) {\n      item.lastDynamicHeightWidth = void 0;\n    }\n    this._rerender(this.lastRenderTop, this.lastRenderHeight);\n  }\n  get length() {\n    return this.items.length;\n  }\n  get renderHeight() {\n    const scrollDimensions = this.scrollableElement.getScrollDimensions();\n    return scrollDimensions.height;\n  }\n  get firstVisibleIndex() {\n    const range2 = this.getVisibleRange(this.lastRenderTop, this.lastRenderHeight);\n    return range2.start;\n  }\n  element(index) {\n    return this.items[index].element;\n  }\n  indexOf(element) {\n    return this.items.findIndex((item) =\u003e item.element === element);\n  }\n  domElement(index) {\n    const row = this.items[index].row;\n    return row \u0026\u0026 row.domNode;\n  }\n  elementHeight(index) {\n    return this.items[index].size;\n  }\n  elementTop(index) {\n    return this.rangeMap.positionAt(index);\n  }\n  indexAt(position) {\n    return this.rangeMap.indexAt(position);\n  }\n  indexAfter(position) {\n    return this.rangeMap.indexAfter(position);\n  }\n  layout(height, width2) {\n    const scrollDimensions = {\n      height: typeof height === \"number\" ? height : getContentHeight(this.domNode)\n    };\n    if (this.scrollableElementUpdateDisposable) {\n      this.scrollableElementUpdateDisposable.dispose();\n      this.scrollableElementUpdateDisposable = null;\n      scrollDimensions.scrollHeight = this.scrollHeight;\n    }\n    this.scrollableElement.setScrollDimensions(scrollDimensions);\n    if (typeof width2 !== \"undefined\") {\n      this.renderWidth = width2;\n      if (this.supportDynamicHeights) {\n        this._rerender(this.scrollTop, this.renderHeight);\n      }\n    }\n    if (this.horizontalScrolling) {\n      this.scrollableElement.setScrollDimensions({\n        width: typeof width2 === \"number\" ? width2 : getContentWidth(this.domNode)\n      });\n    }\n  }\n  // Render\n  render(previousRenderRange, renderTop, renderHeight, renderLeft, scrollWidth, updateItemsInDOM = false, onScroll = false) {\n    const renderRange = this.getRenderRange(renderTop, renderHeight);\n    const rangesToInsert = Range2.relativeComplement(renderRange, previousRenderRange).reverse();\n    const rangesToRemove = Range2.relativeComplement(previousRenderRange, renderRange);\n    if (updateItemsInDOM) {\n      const rangesToUpdate = Range2.intersect(previousRenderRange, renderRange);\n      for (let i2 = rangesToUpdate.start; i2 \u003c rangesToUpdate.end; i2++) {\n        this.updateItemInDOM(this.items[i2], i2);\n      }\n    }\n    this.cache.transact(() =\u003e {\n      for (const range2 of rangesToRemove) {\n        for (let i2 = range2.start; i2 \u003c range2.end; i2++) {\n          this.removeItemFromDOM(i2, onScroll);\n        }\n      }\n      for (const range2 of rangesToInsert) {\n        for (let i2 = range2.end - 1; i2 \u003e= range2.start; i2--) {\n          this.insertItemInDOM(i2);\n        }\n      }\n    });\n    if (renderLeft !== void 0) {\n      this.rowsContainer.style.left = `-${renderLeft}px`;\n    }\n    this.rowsContainer.style.top = `-${renderTop}px`;\n    if (this.horizontalScrolling \u0026\u0026 scrollWidth !== void 0) {\n      this.rowsContainer.style.width = `${Math.max(scrollWidth, this.renderWidth)}px`;\n    }\n    this.lastRenderTop = renderTop;\n    this.lastRenderHeight = renderHeight;\n  }\n  // DOM operations\n  insertItemInDOM(index, row) {\n    const item = this.items[index];\n    if (!item.row) {\n      if (row) {\n        item.row = row;\n        item.stale = true;\n      } else {\n        const result = this.cache.alloc(item.templateId);\n        item.row = result.row;\n        item.stale ||= result.isReusingConnectedDomNode;\n      }\n    }\n    const role = this.accessibilityProvider.getRole(item.element) || \"listitem\";\n    item.row.domNode.setAttribute(\"role\", role);\n    const checked = this.accessibilityProvider.isChecked(item.element);\n    if (typeof checked === \"boolean\") {\n      item.row.domNode.setAttribute(\"aria-checked\", String(!!checked));\n    } else if (checked) {\n      const update = (checked2) =\u003e item.row.domNode.setAttribute(\"aria-checked\", String(!!checked2));\n      update(checked.value);\n      item.checkedDisposable = checked.onDidChange(() =\u003e update(checked.value));\n    }\n    if (item.stale || !item.row.domNode.parentElement) {\n      const referenceNode = this.items.at(index + 1)?.row?.domNode ?? null;\n      if (item.row.domNode.parentElement !== this.rowsContainer || item.row.domNode.nextElementSibling !== referenceNode) {\n        this.rowsContainer.insertBefore(item.row.domNode, referenceNode);\n      }\n      item.stale = false;\n    }\n    this.updateItemInDOM(item, index);\n    const renderer = this.renderers.get(item.templateId);\n    if (!renderer) {\n      throw new Error(`No renderer found for template id ${item.templateId}`);\n    }\n    renderer?.renderElement(item.element, index, item.row.templateData, { height: item.size });\n    const uri = this.dnd.getDragURI(item.element);\n    item.dragStartDisposable.dispose();\n    item.row.domNode.draggable = !!uri;\n    if (uri) {\n      item.dragStartDisposable = addDisposableListener(item.row.domNode, \"dragstart\", (event) =\u003e this.onDragStart(item.element, uri, event));\n    }\n    if (this.horizontalScrolling) {\n      this.measureItemWidth(item);\n      this.eventuallyUpdateScrollWidth();\n    }\n  }\n  measureItemWidth(item) {\n    if (!item.row || !item.row.domNode) {\n      return;\n    }\n    item.row.domNode.style.width = \"fit-content\";\n    item.width = getContentWidth(item.row.domNode);\n    const style = getWindow(item.row.domNode).getComputedStyle(item.row.domNode);\n    if (style.paddingLeft) {\n      item.width += parseFloat(style.paddingLeft);\n    }\n    if (style.paddingRight) {\n      item.width += parseFloat(style.paddingRight);\n    }\n    item.row.domNode.style.width = \"\";\n  }\n  updateItemInDOM(item, index) {\n    item.row.domNode.style.top = `${this.elementTop(index)}px`;\n    if (this.setRowHeight) {\n      item.row.domNode.style.height = `${item.size}px`;\n    }\n    if (this.setRowLineHeight) {\n      item.row.domNode.style.lineHeight = `${item.size}px`;\n    }\n    item.row.domNode.setAttribute(\"data-index\", `${index}`);\n    item.row.domNode.setAttribute(\"data-last-element\", index === this.length - 1 ? \"true\" : \"false\");\n    item.row.domNode.setAttribute(\"data-parity\", index % 2 === 0 ? \"even\" : \"odd\");\n    item.row.domNode.setAttribute(\"aria-setsize\", String(this.accessibilityProvider.getSetSize(item.element, index, this.length)));\n    item.row.domNode.setAttribute(\"aria-posinset\", String(this.accessibilityProvider.getPosInSet(item.element, index)));\n    item.row.domNode.setAttribute(\"id\", this.getElementDomId(index));\n    item.row.domNode.classList.toggle(\"drop-target\", item.dropTarget);\n  }\n  removeItemFromDOM(index, onScroll) {\n    const item = this.items[index];\n    item.dragStartDisposable.dispose();\n    item.checkedDisposable.dispose();\n    if (item.row) {\n      const renderer = this.renderers.get(item.templateId);\n      if (renderer \u0026\u0026 renderer.disposeElement) {\n        renderer.disposeElement(item.element, index, item.row.templateData, { height: item.size, onScroll });\n      }\n      this.cache.release(item.row);\n      item.row = null;\n    }\n    if (this.horizontalScrolling) {\n      this.eventuallyUpdateScrollWidth();\n    }\n  }\n  getScrollTop() {\n    const scrollPosition = this.scrollableElement.getScrollPosition();\n    return scrollPosition.scrollTop;\n  }\n  setScrollTop(scrollTop, reuseAnimation) {\n    if (this.scrollableElementUpdateDisposable) {\n      this.scrollableElementUpdateDisposable.dispose();\n      this.scrollableElementUpdateDisposable = null;\n      this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n    }\n    this.scrollableElement.setScrollPosition({ scrollTop, reuseAnimation });\n  }\n  get scrollTop() {\n    return this.getScrollTop();\n  }\n  set scrollTop(scrollTop) {\n    this.setScrollTop(scrollTop);\n  }\n  get scrollHeight() {\n    return this._scrollHeight + (this.horizontalScrolling ? 10 : 0) + this.paddingBottom;\n  }\n  // Events\n  get onMouseClick() {\n    return Event.map(this.disposables.add(new DomEmitter(this.domNode, \"click\")).event, (e) =\u003e this.toMouseEvent(e), this.disposables);\n  }\n  get onMouseDblClick() {\n    return Event.map(this.disposables.add(new DomEmitter(this.domNode, \"dblclick\")).event, (e) =\u003e this.toMouseEvent(e), this.disposables);\n  }\n  get onMouseMiddleClick() {\n    return Event.filter(Event.map(this.disposables.add(new DomEmitter(this.domNode, \"auxclick\")).event, (e) =\u003e this.toMouseEvent(e), this.disposables), (e) =\u003e e.browserEvent.button === 1, this.disposables);\n  }\n  get onMouseDown() {\n    return Event.map(this.disposables.add(new DomEmitter(this.domNode, \"mousedown\")).event, (e) =\u003e this.toMouseEvent(e), this.disposables);\n  }\n  get onMouseOver() {\n    return Event.map(this.disposables.add(new DomEmitter(this.domNode, \"mouseover\")).event, (e) =\u003e this.toMouseEvent(e), this.disposables);\n  }\n  get onMouseOut() {\n    return Event.map(this.disposables.add(new DomEmitter(this.domNode, \"mouseout\")).event, (e) =\u003e this.toMouseEvent(e), this.disposables);\n  }\n  get onContextMenu() {\n    return Event.any(Event.map(this.disposables.add(new DomEmitter(this.domNode, \"contextmenu\")).event, (e) =\u003e this.toMouseEvent(e), this.disposables), Event.map(this.disposables.add(new DomEmitter(this.domNode, EventType2.Contextmenu)).event, (e) =\u003e this.toGestureEvent(e), this.disposables));\n  }\n  get onTouchStart() {\n    return Event.map(this.disposables.add(new DomEmitter(this.domNode, \"touchstart\")).event, (e) =\u003e this.toTouchEvent(e), this.disposables);\n  }\n  get onTap() {\n    return Event.map(this.disposables.add(new DomEmitter(this.rowsContainer, EventType2.Tap)).event, (e) =\u003e this.toGestureEvent(e), this.disposables);\n  }\n  toMouseEvent(browserEvent) {\n    const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n    const item = typeof index === \"undefined\" ? void 0 : this.items[index];\n    const element = item \u0026\u0026 item.element;\n    return { browserEvent, index, element };\n  }\n  toTouchEvent(browserEvent) {\n    const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n    const item = typeof index === \"undefined\" ? void 0 : this.items[index];\n    const element = item \u0026\u0026 item.element;\n    return { browserEvent, index, element };\n  }\n  toGestureEvent(browserEvent) {\n    const index = this.getItemIndexFromEventTarget(browserEvent.initialTarget || null);\n    const item = typeof index === \"undefined\" ? void 0 : this.items[index];\n    const element = item \u0026\u0026 item.element;\n    return { browserEvent, index, element };\n  }\n  toDragEvent(browserEvent) {\n    const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n    const item = typeof index === \"undefined\" ? void 0 : this.items[index];\n    const element = item \u0026\u0026 item.element;\n    const sector = this.getTargetSector(browserEvent, index);\n    return { browserEvent, index, element, sector };\n  }\n  onScroll(e) {\n    try {\n      const previousRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n      this.render(previousRenderRange, e.scrollTop, e.height, e.scrollLeft, e.scrollWidth, void 0, true);\n      if (this.supportDynamicHeights) {\n        this._rerender(e.scrollTop, e.height, e.inSmoothScrolling);\n      }\n    } catch (err) {\n      console.error(\"Got bad scroll event:\", e);\n      throw err;\n    }\n  }\n  onTouchChange(event) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.scrollTop -= event.translationY;\n  }\n  // DND\n  onDragStart(element, uri, event) {\n    if (!event.dataTransfer) {\n      return;\n    }\n    const elements = this.dnd.getDragElements(element);\n    event.dataTransfer.effectAllowed = \"copyMove\";\n    event.dataTransfer.setData(DataTransfers.TEXT, uri);\n    let label;\n    if (this.dnd.getDragLabel) {\n      label = this.dnd.getDragLabel(elements, event);\n    }\n    if (typeof label === \"undefined\") {\n      label = String(elements.length);\n    }\n    applyDragImage(event, this.domNode, label, [\n      this.domId\n      /* add domId to get list specific styling */\n    ]);\n    this.domNode.classList.add(\"dragging\");\n    this.currentDragData = new ElementsDragAndDropData(elements);\n    StaticDND.CurrentDragAndDropData = new ExternalElementsDragAndDropData(elements);\n    this.dnd.onDragStart?.(this.currentDragData, event);\n  }\n  onPotentialSelectionStart(e) {\n    this.currentSelectionDisposable.dispose();\n    const doc = getDocument(this.domNode);\n    const selectionStore = this.currentSelectionDisposable = new DisposableStore();\n    const movementStore = selectionStore.add(new DisposableStore());\n    movementStore.add(addDisposableListener(this.domNode, \"selectstart\", () =\u003e {\n      movementStore.add(addDisposableListener(doc, \"mousemove\", (e2) =\u003e {\n        if (doc.getSelection()?.isCollapsed === false) {\n          this.setupDragAndDropScrollTopAnimation(e2);\n        }\n      }));\n      selectionStore.add(toDisposable(() =\u003e {\n        const previousRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n        this.currentSelectionBounds = void 0;\n        this.render(previousRenderRange, this.lastRenderTop, this.lastRenderHeight, void 0, void 0);\n      }));\n      selectionStore.add(addDisposableListener(doc, \"selectionchange\", () =\u003e {\n        const selection = doc.getSelection();\n        if (!selection || selection.isCollapsed) {\n          if (movementStore.isDisposed) {\n            selectionStore.dispose();\n          }\n          return;\n        }\n        let start = this.getIndexOfListElement(selection.anchorNode);\n        let end = this.getIndexOfListElement(selection.focusNode);\n        if (start !== void 0 \u0026\u0026 end !== void 0) {\n          if (end \u003c start) {\n            [start, end] = [end, start];\n          }\n          this.currentSelectionBounds = { start, end };\n        }\n      }));\n    }));\n    movementStore.add(addDisposableListener(doc, \"mouseup\", () =\u003e {\n      movementStore.dispose();\n      this.teardownDragAndDropScrollTopAnimation();\n      if (doc.getSelection()?.isCollapsed !== false) {\n        selectionStore.dispose();\n      }\n    }));\n  }\n  getIndexOfListElement(element) {\n    if (!element || !this.domNode.contains(element)) {\n      return void 0;\n    }\n    while (element \u0026\u0026 element !== this.domNode) {\n      if (element.dataset?.index) {\n        return Number(element.dataset.index);\n      }\n      element = element.parentElement;\n    }\n    return void 0;\n  }\n  onDragOver(event) {\n    event.browserEvent.preventDefault();\n    this.onDragLeaveTimeout.dispose();\n    if (StaticDND.CurrentDragAndDropData \u0026\u0026 StaticDND.CurrentDragAndDropData.getData() === \"vscode-ui\") {\n      return false;\n    }\n    this.setupDragAndDropScrollTopAnimation(event.browserEvent);\n    if (!event.browserEvent.dataTransfer) {\n      return false;\n    }\n    if (!this.currentDragData) {\n      if (StaticDND.CurrentDragAndDropData) {\n        this.currentDragData = StaticDND.CurrentDragAndDropData;\n      } else {\n        if (!event.browserEvent.dataTransfer.types) {\n          return false;\n        }\n        this.currentDragData = new NativeDragAndDropData();\n      }\n    }\n    const result = this.dnd.onDragOver(this.currentDragData, event.element, event.index, event.sector, event.browserEvent);\n    this.canDrop = typeof result === \"boolean\" ? result : result.accept;\n    if (!this.canDrop) {\n      this.currentDragFeedback = void 0;\n      this.currentDragFeedbackDisposable.dispose();\n      return false;\n    }\n    event.browserEvent.dataTransfer.dropEffect = typeof result !== \"boolean\" \u0026\u0026 result.effect?.type === 0 ? \"copy\" : \"move\";\n    let feedback;\n    if (typeof result !== \"boolean\" \u0026\u0026 result.feedback) {\n      feedback = result.feedback;\n    } else {\n      if (typeof event.index === \"undefined\") {\n        feedback = [-1];\n      } else {\n        feedback = [event.index];\n      }\n    }\n    feedback = distinct(feedback).filter((i2) =\u003e i2 \u003e= -1 \u0026\u0026 i2 \u003c this.length).sort((a, b) =\u003e a - b);\n    feedback = feedback[0] === -1 ? [-1] : feedback;\n    let dragOverEffectPosition = typeof result !== \"boolean\" \u0026\u0026 result.effect \u0026\u0026 result.effect.position ? result.effect.position : \"drop-target\";\n    if (equalsDragFeedback(this.currentDragFeedback, feedback) \u0026\u0026 this.currentDragFeedbackPosition === dragOverEffectPosition) {\n      return true;\n    }\n    this.currentDragFeedback = feedback;\n    this.currentDragFeedbackPosition = dragOverEffectPosition;\n    this.currentDragFeedbackDisposable.dispose();\n    if (feedback[0] === -1) {\n      this.domNode.classList.add(dragOverEffectPosition);\n      this.rowsContainer.classList.add(dragOverEffectPosition);\n      this.currentDragFeedbackDisposable = toDisposable(() =\u003e {\n        this.domNode.classList.remove(dragOverEffectPosition);\n        this.rowsContainer.classList.remove(dragOverEffectPosition);\n      });\n    } else {\n      if (feedback.length \u003e 1 \u0026\u0026 dragOverEffectPosition !== \"drop-target\") {\n        throw new Error(\"Can't use multiple feedbacks with position different than 'over'\");\n      }\n      if (dragOverEffectPosition === \"drop-target-after\") {\n        if (feedback[0] \u003c this.length - 1) {\n          feedback[0] += 1;\n          dragOverEffectPosition = \"drop-target-before\";\n        }\n      }\n      for (const index of feedback) {\n        const item = this.items[index];\n        item.dropTarget = true;\n        item.row?.domNode.classList.add(dragOverEffectPosition);\n      }\n      this.currentDragFeedbackDisposable = toDisposable(() =\u003e {\n        for (const index of feedback) {\n          const item = this.items[index];\n          item.dropTarget = false;\n          item.row?.domNode.classList.remove(dragOverEffectPosition);\n        }\n      });\n    }\n    return true;\n  }\n  onDragLeave(event) {\n    this.onDragLeaveTimeout.dispose();\n    this.onDragLeaveTimeout = disposableTimeout(() =\u003e this.clearDragOverFeedback(), 100, this.disposables);\n    if (this.currentDragData) {\n      this.dnd.onDragLeave?.(this.currentDragData, event.element, event.index, event.browserEvent);\n    }\n  }\n  onDrop(event) {\n    if (!this.canDrop) {\n      return;\n    }\n    const dragData = this.currentDragData;\n    this.teardownDragAndDropScrollTopAnimation();\n    this.clearDragOverFeedback();\n    this.domNode.classList.remove(\"dragging\");\n    this.currentDragData = void 0;\n    StaticDND.CurrentDragAndDropData = void 0;\n    if (!dragData || !event.browserEvent.dataTransfer) {\n      return;\n    }\n    event.browserEvent.preventDefault();\n    dragData.update(event.browserEvent.dataTransfer);\n    this.dnd.drop(dragData, event.element, event.index, event.sector, event.browserEvent);\n  }\n  onDragEnd(event) {\n    this.canDrop = false;\n    this.teardownDragAndDropScrollTopAnimation();\n    this.clearDragOverFeedback();\n    this.domNode.classList.remove(\"dragging\");\n    this.currentDragData = void 0;\n    StaticDND.CurrentDragAndDropData = void 0;\n    this.dnd.onDragEnd?.(event);\n  }\n  clearDragOverFeedback() {\n    this.currentDragFeedback = void 0;\n    this.currentDragFeedbackPosition = void 0;\n    this.currentDragFeedbackDisposable.dispose();\n    this.currentDragFeedbackDisposable = Disposable.None;\n  }\n  // DND scroll top animation\n  setupDragAndDropScrollTopAnimation(event) {\n    if (!this.dragOverAnimationDisposable) {\n      const viewTop = getTopLeftOffset(this.domNode).top;\n      this.dragOverAnimationDisposable = animate(getWindow(this.domNode), this.animateDragAndDropScrollTop.bind(this, viewTop));\n    }\n    this.dragOverAnimationStopDisposable.dispose();\n    this.dragOverAnimationStopDisposable = disposableTimeout(() =\u003e {\n      if (this.dragOverAnimationDisposable) {\n        this.dragOverAnimationDisposable.dispose();\n        this.dragOverAnimationDisposable = void 0;\n      }\n    }, 1e3, this.disposables);\n    this.dragOverMouseY = event.pageY;\n  }\n  animateDragAndDropScrollTop(viewTop) {\n    if (this.dragOverMouseY === void 0) {\n      return;\n    }\n    const diff = this.dragOverMouseY - viewTop;\n    const upperLimit = this.renderHeight - 35;\n    if (diff \u003c 35) {\n      this.scrollTop += Math.max(-14, Math.floor(0.3 * (diff - 35)));\n    } else if (diff \u003e upperLimit) {\n      this.scrollTop += Math.min(14, Math.floor(0.3 * (diff - upperLimit)));\n    }\n  }\n  teardownDragAndDropScrollTopAnimation() {\n    this.dragOverAnimationStopDisposable.dispose();\n    if (this.dragOverAnimationDisposable) {\n      this.dragOverAnimationDisposable.dispose();\n      this.dragOverAnimationDisposable = void 0;\n    }\n  }\n  // Util\n  getTargetSector(browserEvent, targetIndex) {\n    if (targetIndex === void 0) {\n      return void 0;\n    }\n    const relativePosition = browserEvent.offsetY / this.items[targetIndex].size;\n    const sector = Math.floor(relativePosition / 0.25);\n    return clamp(sector, 0, 3);\n  }\n  getItemIndexFromEventTarget(target) {\n    const scrollableElement = this.scrollableElement.getDomNode();\n    let element = target;\n    while ((isHTMLElement(element) || isSVGElement(element)) \u0026\u0026 element !== this.rowsContainer \u0026\u0026 scrollableElement.contains(element)) {\n      const rawIndex = element.getAttribute(\"data-index\");\n      if (rawIndex) {\n        const index = Number(rawIndex);\n        if (!isNaN(index)) {\n          return index;\n        }\n      }\n      element = element.parentElement;\n    }\n    return void 0;\n  }\n  getVisibleRange(renderTop, renderHeight) {\n    return {\n      start: this.rangeMap.indexAt(renderTop),\n      end: this.rangeMap.indexAfter(renderTop + renderHeight - 1)\n    };\n  }\n  getRenderRange(renderTop, renderHeight) {\n    const range2 = this.getVisibleRange(renderTop, renderHeight);\n    if (this.currentSelectionBounds) {\n      const max = this.rangeMap.count;\n      range2.start = Math.min(range2.start, this.currentSelectionBounds.start, max);\n      range2.end = Math.min(Math.max(range2.end, this.currentSelectionBounds.end + 1), max);\n    }\n    return range2;\n  }\n  /**\n   * Given a stable rendered state, checks every rendered element whether it needs\n   * to be probed for dynamic height. Adjusts scroll height and top if necessary.\n   */\n  _rerender(renderTop, renderHeight, inSmoothScrolling) {\n    const previousRenderRange = this.getRenderRange(renderTop, renderHeight);\n    let anchorElementIndex;\n    let anchorElementTopDelta;\n    if (renderTop === this.elementTop(previousRenderRange.start)) {\n      anchorElementIndex = previousRenderRange.start;\n      anchorElementTopDelta = 0;\n    } else if (previousRenderRange.end - previousRenderRange.start \u003e 1) {\n      anchorElementIndex = previousRenderRange.start + 1;\n      anchorElementTopDelta = this.elementTop(anchorElementIndex) - renderTop;\n    }\n    let heightDiff2 = 0;\n    while (true) {\n      const renderRange = this.getRenderRange(renderTop, renderHeight);\n      let didChange = false;\n      for (let i2 = renderRange.start; i2 \u003c renderRange.end; i2++) {\n        const diff = this.probeDynamicHeight(i2);\n        if (diff !== 0) {\n          this.rangeMap.splice(i2, 1, [this.items[i2]]);\n        }\n        heightDiff2 += diff;\n        didChange = didChange || diff !== 0;\n      }\n      if (!didChange) {\n        if (heightDiff2 !== 0) {\n          this.eventuallyUpdateScrollDimensions();\n        }\n        const unrenderRanges = Range2.relativeComplement(previousRenderRange, renderRange);\n        for (const range2 of unrenderRanges) {\n          for (let i2 = range2.start; i2 \u003c range2.end; i2++) {\n            if (this.items[i2].row) {\n              this.removeItemFromDOM(i2);\n            }\n          }\n        }\n        const renderRanges = Range2.relativeComplement(renderRange, previousRenderRange).reverse();\n        for (const range2 of renderRanges) {\n          for (let i2 = range2.end - 1; i2 \u003e= range2.start; i2--) {\n            this.insertItemInDOM(i2);\n          }\n        }\n        for (let i2 = renderRange.start; i2 \u003c renderRange.end; i2++) {\n          if (this.items[i2].row) {\n            this.updateItemInDOM(this.items[i2], i2);\n          }\n        }\n        if (typeof anchorElementIndex === \"number\") {\n          const deltaScrollTop = this.scrollable.getFutureScrollPosition().scrollTop - renderTop;\n          const newScrollTop = this.elementTop(anchorElementIndex) - anchorElementTopDelta + deltaScrollTop;\n          this.setScrollTop(newScrollTop, inSmoothScrolling);\n        }\n        this._onDidChangeContentHeight.fire(this.contentHeight);\n        return;\n      }\n    }\n  }\n  probeDynamicHeight(index) {\n    const item = this.items[index];\n    if (!!this.virtualDelegate.getDynamicHeight) {\n      const newSize = this.virtualDelegate.getDynamicHeight(item.element);\n      if (newSize !== null) {\n        const size3 = item.size;\n        item.size = newSize;\n        item.lastDynamicHeightWidth = this.renderWidth;\n        return newSize - size3;\n      }\n    }\n    if (!item.hasDynamicHeight || item.lastDynamicHeightWidth === this.renderWidth) {\n      return 0;\n    }\n    if (!!this.virtualDelegate.hasDynamicHeight \u0026\u0026 !this.virtualDelegate.hasDynamicHeight(item.element)) {\n      return 0;\n    }\n    const size2 = item.size;\n    if (item.row) {\n      item.row.domNode.style.height = \"\";\n      item.size = item.row.domNode.offsetHeight;\n      if (item.size === 0 \u0026\u0026 !isAncestor(item.row.domNode, getWindow(item.row.domNode).document.body)) {\n        console.warn(\"Measuring item node that is not in DOM! Add ListView to the DOM before measuring row height!\", new Error().stack);\n      }\n      item.lastDynamicHeightWidth = this.renderWidth;\n      return item.size - size2;\n    }\n    const { row } = this.cache.alloc(item.templateId);\n    row.domNode.style.height = \"\";\n    this.rowsContainer.appendChild(row.domNode);\n    const renderer = this.renderers.get(item.templateId);\n    if (!renderer) {\n      throw new BugIndicatingError(\"Missing renderer for templateId: \" + item.templateId);\n    }\n    renderer.renderElement(item.element, index, row.templateData);\n    item.size = row.domNode.offsetHeight;\n    renderer.disposeElement?.(item.element, index, row.templateData);\n    this.virtualDelegate.setDynamicHeight?.(item.element, item.size);\n    item.lastDynamicHeightWidth = this.renderWidth;\n    row.domNode.remove();\n    this.cache.release(row);\n    return item.size - size2;\n  }\n  getElementDomId(index) {\n    return `${this.domId}_${index}`;\n  }\n  // Dispose\n  dispose() {\n    for (const item of this.items) {\n      item.dragStartDisposable.dispose();\n      item.checkedDisposable.dispose();\n      if (item.row) {\n        const renderer = this.renderers.get(item.row.templateId);\n        if (renderer) {\n          renderer.disposeElement?.(item.element, -1, item.row.templateData, void 0);\n          renderer.disposeTemplate(item.row.templateData);\n        }\n      }\n    }\n    this.items = [];\n    this.domNode?.remove();\n    this.dragOverAnimationDisposable?.dispose();\n    this.disposables.dispose();\n  }\n};\n__decorate27([\n  memoize\n], ListView.prototype, \"onMouseClick\", null);\n__decorate27([\n  memoize\n], ListView.prototype, \"onMouseDblClick\", null);\n__decorate27([\n  memoize\n], ListView.prototype, \"onMouseMiddleClick\", null);\n__decorate27([\n  memoize\n], ListView.prototype, \"onMouseDown\", null);\n__decorate27([\n  memoize\n], ListView.prototype, \"onMouseOver\", null);\n__decorate27([\n  memoize\n], ListView.prototype, \"onMouseOut\", null);\n__decorate27([\n  memoize\n], ListView.prototype, \"onContextMenu\", null);\n__decorate27([\n  memoize\n], ListView.prototype, \"onTouchStart\", null);\n__decorate27([\n  memoize\n], ListView.prototype, \"onTap\", null);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listWidget.js\ninit_mouseEvent();\ninit_observable();\nvar __decorate28 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar TraitRenderer = class {\n  constructor(trait) {\n    this.trait = trait;\n    this.renderedElements = [];\n  }\n  get templateId() {\n    return `template:${this.trait.name}`;\n  }\n  renderTemplate(container) {\n    return container;\n  }\n  renderElement(element, index, templateData) {\n    const renderedElementIndex = this.renderedElements.findIndex((el) =\u003e el.templateData === templateData);\n    if (renderedElementIndex \u003e= 0) {\n      const rendered = this.renderedElements[renderedElementIndex];\n      this.trait.unrender(templateData);\n      rendered.index = index;\n    } else {\n      const rendered = { index, templateData };\n      this.renderedElements.push(rendered);\n    }\n    this.trait.renderIndex(index, templateData);\n  }\n  splice(start, deleteCount, insertCount) {\n    const rendered = [];\n    for (const renderedElement of this.renderedElements) {\n      if (renderedElement.index \u003c start) {\n        rendered.push(renderedElement);\n      } else if (renderedElement.index \u003e= start + deleteCount) {\n        rendered.push({\n          index: renderedElement.index + insertCount - deleteCount,\n          templateData: renderedElement.templateData\n        });\n      }\n    }\n    this.renderedElements = rendered;\n  }\n  renderIndexes(indexes) {\n    for (const { index, templateData } of this.renderedElements) {\n      if (indexes.indexOf(index) \u003e -1) {\n        this.trait.renderIndex(index, templateData);\n      }\n    }\n  }\n  disposeTemplate(templateData) {\n    const index = this.renderedElements.findIndex((el) =\u003e el.templateData === templateData);\n    if (index \u003c 0) {\n      return;\n    }\n    this.renderedElements.splice(index, 1);\n  }\n};\nvar Trait = class {\n  get onChange() {\n    return this._onChange.event;\n  }\n  get name() {\n    return this._trait;\n  }\n  get renderer() {\n    return new TraitRenderer(this);\n  }\n  constructor(_trait) {\n    this._trait = _trait;\n    this.indexes = [];\n    this.sortedIndexes = [];\n    this._onChange = new Emitter();\n  }\n  splice(start, deleteCount, elements) {\n    const diff = elements.length - deleteCount;\n    const end = start + deleteCount;\n    const sortedIndexes = [];\n    let i2 = 0;\n    while (i2 \u003c this.sortedIndexes.length \u0026\u0026 this.sortedIndexes[i2] \u003c start) {\n      sortedIndexes.push(this.sortedIndexes[i2++]);\n    }\n    for (let j = 0; j \u003c elements.length; j++) {\n      if (elements[j]) {\n        sortedIndexes.push(j + start);\n      }\n    }\n    while (i2 \u003c this.sortedIndexes.length \u0026\u0026 this.sortedIndexes[i2] \u003e= end) {\n      sortedIndexes.push(this.sortedIndexes[i2++] + diff);\n    }\n    this.renderer.splice(start, deleteCount, elements.length);\n    this._set(sortedIndexes, sortedIndexes);\n  }\n  renderIndex(index, container) {\n    container.classList.toggle(this._trait, this.contains(index));\n  }\n  unrender(container) {\n    container.classList.remove(this._trait);\n  }\n  /**\n   * Sets the indexes which should have this trait.\n   *\n   * @param indexes Indexes which should have this trait.\n   * @return The old indexes which had this trait.\n   */\n  set(indexes, browserEvent) {\n    return this._set(indexes, [...indexes].sort(numericSort), browserEvent);\n  }\n  _set(indexes, sortedIndexes, browserEvent) {\n    const result = this.indexes;\n    const sortedResult = this.sortedIndexes;\n    this.indexes = indexes;\n    this.sortedIndexes = sortedIndexes;\n    const toRender = disjunction(sortedResult, indexes);\n    this.renderer.renderIndexes(toRender);\n    this._onChange.fire({ indexes, browserEvent });\n    return result;\n  }\n  get() {\n    return this.indexes;\n  }\n  contains(index) {\n    return binarySearch(this.sortedIndexes, index, numericSort) \u003e= 0;\n  }\n  dispose() {\n    dispose(this._onChange);\n  }\n};\n__decorate28([\n  memoize\n], Trait.prototype, \"renderer\", null);\nvar SelectionTrait = class extends Trait {\n  constructor(setAriaSelected) {\n    super(\"selected\");\n    this.setAriaSelected = setAriaSelected;\n  }\n  renderIndex(index, container) {\n    super.renderIndex(index, container);\n    if (this.setAriaSelected) {\n      if (this.contains(index)) {\n        container.setAttribute(\"aria-selected\", \"true\");\n      } else {\n        container.setAttribute(\"aria-selected\", \"false\");\n      }\n    }\n  }\n};\nvar TraitSpliceable = class {\n  constructor(trait, view, identityProvider) {\n    this.trait = trait;\n    this.view = view;\n    this.identityProvider = identityProvider;\n  }\n  splice(start, deleteCount, elements) {\n    if (!this.identityProvider) {\n      return this.trait.splice(start, deleteCount, new Array(elements.length).fill(false));\n    }\n    const pastElementsWithTrait = this.trait.get().map((i2) =\u003e this.identityProvider.getId(this.view.element(i2)).toString());\n    if (pastElementsWithTrait.length === 0) {\n      return this.trait.splice(start, deleteCount, new Array(elements.length).fill(false));\n    }\n    const pastElementsWithTraitSet = new Set(pastElementsWithTrait);\n    const elementsWithTrait = elements.map((e) =\u003e pastElementsWithTraitSet.has(this.identityProvider.getId(e).toString()));\n    this.trait.splice(start, deleteCount, elementsWithTrait);\n  }\n};\nfunction isListElementDescendantOfClass(e, className2) {\n  if (e.classList.contains(className2)) {\n    return true;\n  }\n  if (e.classList.contains(\"monaco-list\")) {\n    return false;\n  }\n  if (!e.parentElement) {\n    return false;\n  }\n  return isListElementDescendantOfClass(e.parentElement, className2);\n}\nfunction isMonacoEditor(e) {\n  return isListElementDescendantOfClass(e, \"monaco-editor\");\n}\nfunction isMonacoCustomToggle(e) {\n  return isListElementDescendantOfClass(e, \"monaco-custom-toggle\");\n}\nfunction isActionItem(e) {\n  return isListElementDescendantOfClass(e, \"action-item\");\n}\nfunction isStickyScrollElement(e) {\n  return isListElementDescendantOfClass(e, \"monaco-tree-sticky-row\");\n}\nfunction isStickyScrollContainer(e) {\n  return e.classList.contains(\"monaco-tree-sticky-container\");\n}\nfunction isButton(e) {\n  if (e.tagName === \"A\" \u0026\u0026 e.classList.contains(\"monaco-button\") || e.tagName === \"DIV\" \u0026\u0026 e.classList.contains(\"monaco-button-dropdown\")) {\n    return true;\n  }\n  if (e.classList.contains(\"monaco-list\")) {\n    return false;\n  }\n  if (!e.parentElement) {\n    return false;\n  }\n  return isButton(e.parentElement);\n}\nvar KeyboardController = class {\n  get onKeyDown() {\n    return Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, \"keydown\")).event, ($23) =\u003e $23.filter((e) =\u003e !isEditableElement(e.target)).map((e) =\u003e new StandardKeyboardEvent(e)));\n  }\n  constructor(list2, view, options2) {\n    this.list = list2;\n    this.view = view;\n    this.disposables = new DisposableStore();\n    this.multipleSelectionDisposables = new DisposableStore();\n    this.multipleSelectionSupport = options2.multipleSelectionSupport;\n    this.disposables.add(this.onKeyDown((e) =\u003e {\n      switch (e.keyCode) {\n        case 3:\n          return this.onEnter(e);\n        case 16:\n          return this.onUpArrow(e);\n        case 18:\n          return this.onDownArrow(e);\n        case 11:\n          return this.onPageUpArrow(e);\n        case 12:\n          return this.onPageDownArrow(e);\n        case 9:\n          return this.onEscape(e);\n        case 31:\n          if (this.multipleSelectionSupport \u0026\u0026 (isMacintosh ? e.metaKey : e.ctrlKey)) {\n            this.onCtrlA(e);\n          }\n      }\n    }));\n  }\n  updateOptions(optionsUpdate) {\n    if (optionsUpdate.multipleSelectionSupport !== void 0) {\n      this.multipleSelectionSupport = optionsUpdate.multipleSelectionSupport;\n    }\n  }\n  onEnter(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    this.list.setSelection(this.list.getFocus(), e.browserEvent);\n  }\n  onUpArrow(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    this.list.focusPrevious(1, false, e.browserEvent);\n    const el = this.list.getFocus()[0];\n    this.list.setAnchor(el);\n    this.list.reveal(el);\n    this.view.domNode.focus();\n  }\n  onDownArrow(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    this.list.focusNext(1, false, e.browserEvent);\n    const el = this.list.getFocus()[0];\n    this.list.setAnchor(el);\n    this.list.reveal(el);\n    this.view.domNode.focus();\n  }\n  onPageUpArrow(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    this.list.focusPreviousPage(e.browserEvent);\n    const el = this.list.getFocus()[0];\n    this.list.setAnchor(el);\n    this.list.reveal(el);\n    this.view.domNode.focus();\n  }\n  onPageDownArrow(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    this.list.focusNextPage(e.browserEvent);\n    const el = this.list.getFocus()[0];\n    this.list.setAnchor(el);\n    this.list.reveal(el);\n    this.view.domNode.focus();\n  }\n  onCtrlA(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    this.list.setSelection(range(this.list.length), e.browserEvent);\n    this.list.setAnchor(void 0);\n    this.view.domNode.focus();\n  }\n  onEscape(e) {\n    if (this.list.getSelection().length) {\n      e.preventDefault();\n      e.stopPropagation();\n      this.list.setSelection([], e.browserEvent);\n      this.list.setAnchor(void 0);\n      this.view.domNode.focus();\n    }\n  }\n  dispose() {\n    this.disposables.dispose();\n    this.multipleSelectionDisposables.dispose();\n  }\n};\n__decorate28([\n  memoize\n], KeyboardController.prototype, \"onKeyDown\", null);\nvar TypeNavigationMode;\n(function(TypeNavigationMode2) {\n  TypeNavigationMode2[TypeNavigationMode2[\"Automatic\"] = 0] = \"Automatic\";\n  TypeNavigationMode2[TypeNavigationMode2[\"Trigger\"] = 1] = \"Trigger\";\n})(TypeNavigationMode || (TypeNavigationMode = {}));\nvar TypeNavigationControllerState;\n(function(TypeNavigationControllerState2) {\n  TypeNavigationControllerState2[TypeNavigationControllerState2[\"Idle\"] = 0] = \"Idle\";\n  TypeNavigationControllerState2[TypeNavigationControllerState2[\"Typing\"] = 1] = \"Typing\";\n})(TypeNavigationControllerState || (TypeNavigationControllerState = {}));\nvar DefaultKeyboardNavigationDelegate = new class {\n  mightProducePrintableCharacter(event) {\n    if (event.ctrlKey || event.metaKey || event.altKey) {\n      return false;\n    }\n    return event.keyCode \u003e= 31 \u0026\u0026 event.keyCode \u003c= 56 || event.keyCode \u003e= 21 \u0026\u0026 event.keyCode \u003c= 30 || event.keyCode \u003e= 98 \u0026\u0026 event.keyCode \u003c= 107 || event.keyCode \u003e= 85 \u0026\u0026 event.keyCode \u003c= 95;\n  }\n}();\nvar TypeNavigationController = class {\n  constructor(list2, view, keyboardNavigationLabelProvider, keyboardNavigationEventFilter, delegate) {\n    this.list = list2;\n    this.view = view;\n    this.keyboardNavigationLabelProvider = keyboardNavigationLabelProvider;\n    this.keyboardNavigationEventFilter = keyboardNavigationEventFilter;\n    this.delegate = delegate;\n    this.enabled = false;\n    this.state = TypeNavigationControllerState.Idle;\n    this.mode = TypeNavigationMode.Automatic;\n    this.triggered = false;\n    this.previouslyFocused = -1;\n    this.enabledDisposables = new DisposableStore();\n    this.disposables = new DisposableStore();\n    this.updateOptions(list2.options);\n  }\n  updateOptions(options2) {\n    if (options2.typeNavigationEnabled ?? true) {\n      this.enable();\n    } else {\n      this.disable();\n    }\n    this.mode = options2.typeNavigationMode ?? TypeNavigationMode.Automatic;\n  }\n  enable() {\n    if (this.enabled) {\n      return;\n    }\n    let typing = false;\n    const onChar = Event.chain(this.enabledDisposables.add(new DomEmitter(this.view.domNode, \"keydown\")).event, ($23) =\u003e $23.filter((e) =\u003e !isEditableElement(e.target)).filter(() =\u003e this.mode === TypeNavigationMode.Automatic || this.triggered).map((event) =\u003e new StandardKeyboardEvent(event)).filter((e) =\u003e typing || this.keyboardNavigationEventFilter(e)).filter((e) =\u003e this.delegate.mightProducePrintableCharacter(e)).forEach((e) =\u003e EventHelper.stop(e, true)).map((event) =\u003e event.browserEvent.key));\n    const onClear = Event.debounce(onChar, () =\u003e null, 800, void 0, void 0, void 0, this.enabledDisposables);\n    const onInput = Event.reduce(Event.any(onChar, onClear), (r, i2) =\u003e i2 === null ? null : (r || \"\") + i2, void 0, this.enabledDisposables);\n    onInput(this.onInput, this, this.enabledDisposables);\n    onClear(this.onClear, this, this.enabledDisposables);\n    onChar(() =\u003e typing = true, void 0, this.enabledDisposables);\n    onClear(() =\u003e typing = false, void 0, this.enabledDisposables);\n    this.enabled = true;\n    this.triggered = false;\n  }\n  disable() {\n    if (!this.enabled) {\n      return;\n    }\n    this.enabledDisposables.clear();\n    this.enabled = false;\n    this.triggered = false;\n  }\n  onClear() {\n    const focus = this.list.getFocus();\n    if (focus.length \u003e 0 \u0026\u0026 focus[0] === this.previouslyFocused) {\n      const ariaLabel = this.list.options.accessibilityProvider?.getAriaLabel(this.list.element(focus[0]));\n      if (typeof ariaLabel === \"string\") {\n        alert(ariaLabel);\n      } else if (ariaLabel) {\n        alert(ariaLabel.get());\n      }\n    }\n    this.previouslyFocused = -1;\n  }\n  onInput(word) {\n    if (!word) {\n      this.state = TypeNavigationControllerState.Idle;\n      this.triggered = false;\n      return;\n    }\n    const focus = this.list.getFocus();\n    const start = focus.length \u003e 0 ? focus[0] : 0;\n    const delta = this.state === TypeNavigationControllerState.Idle ? 1 : 0;\n    this.state = TypeNavigationControllerState.Typing;\n    for (let i2 = 0; i2 \u003c this.list.length; i2++) {\n      const index = (start + i2 + delta) % this.list.length;\n      const label = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(index));\n      const labelStr = label \u0026\u0026 label.toString();\n      if (this.list.options.typeNavigationEnabled) {\n        if (typeof labelStr !== \"undefined\") {\n          if (matchesPrefix(word, labelStr)) {\n            this.previouslyFocused = start;\n            this.list.setFocus([index]);\n            this.list.reveal(index);\n            return;\n          }\n          const fuzzy = matchesFuzzy2(word, labelStr);\n          if (fuzzy) {\n            const fuzzyScore2 = fuzzy[0].end - fuzzy[0].start;\n            if (fuzzyScore2 \u003e 1 \u0026\u0026 fuzzy.length === 1) {\n              this.previouslyFocused = start;\n              this.list.setFocus([index]);\n              this.list.reveal(index);\n              return;\n            }\n          }\n        }\n      } else if (typeof labelStr === \"undefined\" || matchesPrefix(word, labelStr)) {\n        this.previouslyFocused = start;\n        this.list.setFocus([index]);\n        this.list.reveal(index);\n        return;\n      }\n    }\n  }\n  dispose() {\n    this.disable();\n    this.enabledDisposables.dispose();\n    this.disposables.dispose();\n  }\n};\nvar DOMFocusController = class {\n  constructor(list2, view) {\n    this.list = list2;\n    this.view = view;\n    this.disposables = new DisposableStore();\n    const onKeyDown = Event.chain(this.disposables.add(new DomEmitter(view.domNode, \"keydown\")).event, ($23) =\u003e $23.filter((e) =\u003e !isEditableElement(e.target)).map((e) =\u003e new StandardKeyboardEvent(e)));\n    const onTab = Event.chain(onKeyDown, ($23) =\u003e $23.filter((e) =\u003e e.keyCode === 2 \u0026\u0026 !e.ctrlKey \u0026\u0026 !e.metaKey \u0026\u0026 !e.shiftKey \u0026\u0026 !e.altKey));\n    onTab(this.onTab, this, this.disposables);\n  }\n  onTab(e) {\n    if (e.target !== this.view.domNode) {\n      return;\n    }\n    const focus = this.list.getFocus();\n    if (focus.length === 0) {\n      return;\n    }\n    const focusedDomElement = this.view.domElement(focus[0]);\n    if (!focusedDomElement) {\n      return;\n    }\n    const tabIndexElement = focusedDomElement.querySelector(\"[tabIndex]\");\n    if (!tabIndexElement || !isHTMLElement(tabIndexElement) || tabIndexElement.tabIndex === -1) {\n      return;\n    }\n    const style = getWindow(tabIndexElement).getComputedStyle(tabIndexElement);\n    if (style.visibility === \"hidden\" || style.display === \"none\") {\n      return;\n    }\n    e.preventDefault();\n    e.stopPropagation();\n    tabIndexElement.focus();\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\nfunction isSelectionSingleChangeEvent(event) {\n  return isMacintosh ? event.browserEvent.metaKey : event.browserEvent.ctrlKey;\n}\nfunction isSelectionRangeChangeEvent(event) {\n  return event.browserEvent.shiftKey;\n}\nfunction isMouseRightClick(event) {\n  return isMouseEvent(event) \u0026\u0026 event.button === 2;\n}\nvar DefaultMultipleSelectionController = {\n  isSelectionSingleChangeEvent,\n  isSelectionRangeChangeEvent\n};\nvar MouseController = class {\n  get onPointer() {\n    return this._onPointer.event;\n  }\n  constructor(list2) {\n    this.list = list2;\n    this.disposables = new DisposableStore();\n    this._onPointer = this.disposables.add(new Emitter());\n    if (list2.options.multipleSelectionSupport !== false) {\n      this.multipleSelectionController = this.list.options.multipleSelectionController || DefaultMultipleSelectionController;\n    }\n    this.mouseSupport = typeof list2.options.mouseSupport === \"undefined\" || !!list2.options.mouseSupport;\n    if (this.mouseSupport) {\n      list2.onMouseDown(this.onMouseDown, this, this.disposables);\n      list2.onContextMenu(this.onContextMenu, this, this.disposables);\n      list2.onMouseDblClick(this.onDoubleClick, this, this.disposables);\n      list2.onTouchStart(this.onMouseDown, this, this.disposables);\n      this.disposables.add(Gesture.addTarget(list2.getHTMLElement()));\n    }\n    Event.any(list2.onMouseClick, list2.onMouseMiddleClick, list2.onTap)(this.onViewPointer, this, this.disposables);\n  }\n  updateOptions(optionsUpdate) {\n    if (optionsUpdate.multipleSelectionSupport !== void 0) {\n      this.multipleSelectionController = void 0;\n      if (optionsUpdate.multipleSelectionSupport) {\n        this.multipleSelectionController = this.list.options.multipleSelectionController || DefaultMultipleSelectionController;\n      }\n    }\n  }\n  isSelectionSingleChangeEvent(event) {\n    if (!this.multipleSelectionController) {\n      return false;\n    }\n    return this.multipleSelectionController.isSelectionSingleChangeEvent(event);\n  }\n  isSelectionRangeChangeEvent(event) {\n    if (!this.multipleSelectionController) {\n      return false;\n    }\n    return this.multipleSelectionController.isSelectionRangeChangeEvent(event);\n  }\n  isSelectionChangeEvent(event) {\n    return this.isSelectionSingleChangeEvent(event) || this.isSelectionRangeChangeEvent(event);\n  }\n  onMouseDown(e) {\n    if (isMonacoEditor(e.browserEvent.target)) {\n      return;\n    }\n    if (getActiveElement() !== e.browserEvent.target) {\n      this.list.domFocus();\n    }\n  }\n  onContextMenu(e) {\n    if (isEditableElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n      return;\n    }\n    const focus = typeof e.index === \"undefined\" ? [] : [e.index];\n    this.list.setFocus(focus, e.browserEvent);\n  }\n  onViewPointer(e) {\n    if (!this.mouseSupport) {\n      return;\n    }\n    if (isEditableElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n      return;\n    }\n    if (e.browserEvent.isHandledByList) {\n      return;\n    }\n    e.browserEvent.isHandledByList = true;\n    const focus = e.index;\n    if (typeof focus === \"undefined\") {\n      this.list.setFocus([], e.browserEvent);\n      this.list.setSelection([], e.browserEvent);\n      this.list.setAnchor(void 0);\n      return;\n    }\n    if (this.isSelectionChangeEvent(e)) {\n      return this.changeSelection(e);\n    }\n    this.list.setFocus([focus], e.browserEvent);\n    this.list.setAnchor(focus);\n    if (!isMouseRightClick(e.browserEvent)) {\n      this.list.setSelection([focus], e.browserEvent);\n    }\n    this._onPointer.fire(e);\n  }\n  onDoubleClick(e) {\n    if (isEditableElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n      return;\n    }\n    if (this.isSelectionChangeEvent(e)) {\n      return;\n    }\n    if (e.browserEvent.isHandledByList) {\n      return;\n    }\n    e.browserEvent.isHandledByList = true;\n    const focus = this.list.getFocus();\n    this.list.setSelection(focus, e.browserEvent);\n  }\n  changeSelection(e) {\n    const focus = e.index;\n    let anchor = this.list.getAnchor();\n    if (this.isSelectionRangeChangeEvent(e)) {\n      if (typeof anchor === \"undefined\") {\n        const currentFocus = this.list.getFocus()[0];\n        anchor = currentFocus ?? focus;\n        this.list.setAnchor(anchor);\n      }\n      const min = Math.min(anchor, focus);\n      const max = Math.max(anchor, focus);\n      const rangeSelection = range(min, max + 1);\n      const selection = this.list.getSelection();\n      const contiguousRange = getContiguousRangeContaining(disjunction(selection, [anchor]), anchor);\n      if (contiguousRange.length === 0) {\n        return;\n      }\n      const newSelection = disjunction(rangeSelection, relativeComplement(selection, contiguousRange));\n      this.list.setSelection(newSelection, e.browserEvent);\n      this.list.setFocus([focus], e.browserEvent);\n    } else if (this.isSelectionSingleChangeEvent(e)) {\n      const selection = this.list.getSelection();\n      const newSelection = selection.filter((i2) =\u003e i2 !== focus);\n      this.list.setFocus([focus]);\n      this.list.setAnchor(focus);\n      if (selection.length === newSelection.length) {\n        this.list.setSelection([...newSelection, focus], e.browserEvent);\n      } else {\n        this.list.setSelection(newSelection, e.browserEvent);\n      }\n    }\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\nvar DefaultStyleController = class {\n  constructor(styleElement, selectorSuffix) {\n    this.styleElement = styleElement;\n    this.selectorSuffix = selectorSuffix;\n  }\n  style(styles) {\n    const suffix = this.selectorSuffix \u0026\u0026 `.${this.selectorSuffix}`;\n    const content = [];\n    if (styles.listBackground) {\n      content.push(`.monaco-list${suffix} .monaco-list-rows { background: ${styles.listBackground}; }`);\n    }\n    if (styles.listFocusBackground) {\n      content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused { background-color: ${styles.listFocusBackground}; }`);\n      content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused:hover { background-color: ${styles.listFocusBackground}; }`);\n    }\n    if (styles.listFocusForeground) {\n      content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused { color: ${styles.listFocusForeground}; }`);\n    }\n    if (styles.listActiveSelectionBackground) {\n      content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected { background-color: ${styles.listActiveSelectionBackground}; }`);\n      content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected:hover { background-color: ${styles.listActiveSelectionBackground}; }`);\n    }\n    if (styles.listActiveSelectionForeground) {\n      content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected { color: ${styles.listActiveSelectionForeground}; }`);\n    }\n    if (styles.listActiveSelectionIconForeground) {\n      content.push(`.monaco-list${suffix}:focus .monaco-list-row.selected .codicon { color: ${styles.listActiveSelectionIconForeground}; }`);\n    }\n    if (styles.listFocusAndSelectionBackground) {\n      content.push(`\n\t\t\t\t.monaco-drag-image${suffix},\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.selected.focused { background-color: ${styles.listFocusAndSelectionBackground}; }\n\t\t\t`);\n    }\n    if (styles.listFocusAndSelectionForeground) {\n      content.push(`\n\t\t\t\t.monaco-drag-image${suffix},\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.selected.focused { color: ${styles.listFocusAndSelectionForeground}; }\n\t\t\t`);\n    }\n    if (styles.listInactiveFocusForeground) {\n      content.push(`.monaco-list${suffix} .monaco-list-row.focused { color:  ${styles.listInactiveFocusForeground}; }`);\n      content.push(`.monaco-list${suffix} .monaco-list-row.focused:hover { color:  ${styles.listInactiveFocusForeground}; }`);\n    }\n    if (styles.listInactiveSelectionIconForeground) {\n      content.push(`.monaco-list${suffix} .monaco-list-row.focused .codicon { color:  ${styles.listInactiveSelectionIconForeground}; }`);\n    }\n    if (styles.listInactiveFocusBackground) {\n      content.push(`.monaco-list${suffix} .monaco-list-row.focused { background-color:  ${styles.listInactiveFocusBackground}; }`);\n      content.push(`.monaco-list${suffix} .monaco-list-row.focused:hover { background-color:  ${styles.listInactiveFocusBackground}; }`);\n    }\n    if (styles.listInactiveSelectionBackground) {\n      content.push(`.monaco-list${suffix} .monaco-list-row.selected { background-color:  ${styles.listInactiveSelectionBackground}; }`);\n      content.push(`.monaco-list${suffix} .monaco-list-row.selected:hover { background-color:  ${styles.listInactiveSelectionBackground}; }`);\n    }\n    if (styles.listInactiveSelectionForeground) {\n      content.push(`.monaco-list${suffix} .monaco-list-row.selected { color: ${styles.listInactiveSelectionForeground}; }`);\n    }\n    if (styles.listHoverBackground) {\n      content.push(`.monaco-list${suffix}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${styles.listHoverBackground}; }`);\n    }\n    if (styles.listHoverForeground) {\n      content.push(`.monaco-list${suffix}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color:  ${styles.listHoverForeground}; }`);\n    }\n    const focusAndSelectionOutline = asCssValueWithDefault(styles.listFocusAndSelectionOutline, asCssValueWithDefault(styles.listSelectionOutline, styles.listFocusOutline ?? \"\"));\n    if (focusAndSelectionOutline) {\n      content.push(`.monaco-list${suffix}:focus .monaco-list-row.focused.selected { outline: 1px solid ${focusAndSelectionOutline}; outline-offset: -1px;}`);\n    }\n    if (styles.listFocusOutline) {\n      content.push(`\n\t\t\t\t.monaco-drag-image${suffix},\n\t\t\t\t.monaco-list${suffix}:focus .monaco-list-row.focused,\n\t\t\t\t.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }\n\t\t\t`);\n    }\n    const inactiveFocusAndSelectionOutline = asCssValueWithDefault(styles.listSelectionOutline, styles.listInactiveFocusOutline ?? \"\");\n    if (inactiveFocusAndSelectionOutline) {\n      content.push(`.monaco-list${suffix} .monaco-list-row.focused.selected { outline: 1px dotted ${inactiveFocusAndSelectionOutline}; outline-offset: -1px; }`);\n    }\n    if (styles.listSelectionOutline) {\n      content.push(`.monaco-list${suffix} .monaco-list-row.selected { outline: 1px dotted ${styles.listSelectionOutline}; outline-offset: -1px; }`);\n    }\n    if (styles.listInactiveFocusOutline) {\n      content.push(`.monaco-list${suffix} .monaco-list-row.focused { outline: 1px dotted ${styles.listInactiveFocusOutline}; outline-offset: -1px; }`);\n    }\n    if (styles.listHoverOutline) {\n      content.push(`.monaco-list${suffix} .monaco-list-row:hover { outline: 1px dashed ${styles.listHoverOutline}; outline-offset: -1px; }`);\n    }\n    if (styles.listDropOverBackground) {\n      content.push(`\n\t\t\t\t.monaco-list${suffix}.drop-target,\n\t\t\t\t.monaco-list${suffix} .monaco-list-rows.drop-target,\n\t\t\t\t.monaco-list${suffix} .monaco-list-row.drop-target { background-color: ${styles.listDropOverBackground} !important; color: inherit !important; }\n\t\t\t`);\n    }\n    if (styles.listDropBetweenBackground) {\n      content.push(`\n\t\t\t.monaco-list${suffix} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before,\n\t\t\t.monaco-list${suffix} .monaco-list-row.drop-target-before::before {\n\t\t\t\tcontent: \"\"; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px;\n\t\t\t\tbackground-color: ${styles.listDropBetweenBackground};\n\t\t\t}`);\n      content.push(`\n\t\t\t.monaco-list${suffix} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after,\n\t\t\t.monaco-list${suffix} .monaco-list-row.drop-target-after::after {\n\t\t\t\tcontent: \"\"; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px;\n\t\t\t\tbackground-color: ${styles.listDropBetweenBackground};\n\t\t\t}`);\n    }\n    if (styles.tableColumnsBorder) {\n      content.push(`\n\t\t\t\t.monaco-table \u003e .monaco-split-view2,\n\t\t\t\t.monaco-table \u003e .monaco-split-view2 .monaco-sash.vertical::before,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover \u003e .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table:hover \u003e .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: ${styles.tableColumnsBorder};\n\t\t\t\t}\n\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table \u003e .monaco-split-view2,\n\t\t\t\t.monaco-workbench:not(.reduce-motion) .monaco-table \u003e .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\t\t\tborder-color: transparent;\n\t\t\t\t}\n\t\t\t`);\n    }\n    if (styles.tableOddRowsBackgroundColor) {\n      content.push(`\n\t\t\t\t.monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr,\n\t\t\t\t.monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr {\n\t\t\t\t\tbackground-color: ${styles.tableOddRowsBackgroundColor};\n\t\t\t\t}\n\t\t\t`);\n    }\n    this.styleElement.textContent = content.join(\"\\n\");\n  }\n};\nvar unthemedListStyles = {\n  listFocusBackground: \"#7FB0D0\",\n  listActiveSelectionBackground: \"#0E639C\",\n  listActiveSelectionForeground: \"#FFFFFF\",\n  listActiveSelectionIconForeground: \"#FFFFFF\",\n  listFocusAndSelectionOutline: \"#90C2F9\",\n  listFocusAndSelectionBackground: \"#094771\",\n  listFocusAndSelectionForeground: \"#FFFFFF\",\n  listInactiveSelectionBackground: \"#3F3F46\",\n  listInactiveSelectionIconForeground: \"#FFFFFF\",\n  listHoverBackground: \"#2A2D2E\",\n  listDropOverBackground: \"#383B3D\",\n  listDropBetweenBackground: \"#EEEEEE\",\n  treeIndentGuidesStroke: \"#a9a9a9\",\n  treeInactiveIndentGuidesStroke: Color.fromHex(\"#a9a9a9\").transparent(0.4).toString(),\n  tableColumnsBorder: Color.fromHex(\"#cccccc\").transparent(0.2).toString(),\n  tableOddRowsBackgroundColor: Color.fromHex(\"#cccccc\").transparent(0.04).toString(),\n  listBackground: void 0,\n  listFocusForeground: void 0,\n  listInactiveSelectionForeground: void 0,\n  listInactiveFocusForeground: void 0,\n  listInactiveFocusBackground: void 0,\n  listHoverForeground: void 0,\n  listFocusOutline: void 0,\n  listInactiveFocusOutline: void 0,\n  listSelectionOutline: void 0,\n  listHoverOutline: void 0,\n  treeStickyScrollBackground: void 0,\n  treeStickyScrollBorder: void 0,\n  treeStickyScrollShadow: void 0\n};\nvar DefaultOptions2 = {\n  keyboardSupport: true,\n  mouseSupport: true,\n  multipleSelectionSupport: true,\n  dnd: {\n    getDragURI() {\n      return null;\n    },\n    onDragStart() {\n    },\n    onDragOver() {\n      return false;\n    },\n    drop() {\n    },\n    dispose() {\n    }\n  }\n};\nfunction getContiguousRangeContaining(range2, value) {\n  const index = range2.indexOf(value);\n  if (index === -1) {\n    return [];\n  }\n  const result = [];\n  let i2 = index - 1;\n  while (i2 \u003e= 0 \u0026\u0026 range2[i2] === value - (index - i2)) {\n    result.push(range2[i2--]);\n  }\n  result.reverse();\n  i2 = index;\n  while (i2 \u003c range2.length \u0026\u0026 range2[i2] === value + (i2 - index)) {\n    result.push(range2[i2++]);\n  }\n  return result;\n}\nfunction disjunction(one, other) {\n  const result = [];\n  let i2 = 0, j = 0;\n  while (i2 \u003c one.length || j \u003c other.length) {\n    if (i2 \u003e= one.length) {\n      result.push(other[j++]);\n    } else if (j \u003e= other.length) {\n      result.push(one[i2++]);\n    } else if (one[i2] === other[j]) {\n      result.push(one[i2]);\n      i2++;\n      j++;\n      continue;\n    } else if (one[i2] \u003c other[j]) {\n      result.push(one[i2++]);\n    } else {\n      result.push(other[j++]);\n    }\n  }\n  return result;\n}\nfunction relativeComplement(one, other) {\n  const result = [];\n  let i2 = 0, j = 0;\n  while (i2 \u003c one.length || j \u003c other.length) {\n    if (i2 \u003e= one.length) {\n      result.push(other[j++]);\n    } else if (j \u003e= other.length) {\n      result.push(one[i2++]);\n    } else if (one[i2] === other[j]) {\n      i2++;\n      j++;\n      continue;\n    } else if (one[i2] \u003c other[j]) {\n      result.push(one[i2++]);\n    } else {\n      j++;\n    }\n  }\n  return result;\n}\nvar numericSort = (a, b) =\u003e a - b;\nvar PipelineRenderer = class {\n  constructor(_templateId, renderers) {\n    this._templateId = _templateId;\n    this.renderers = renderers;\n  }\n  get templateId() {\n    return this._templateId;\n  }\n  renderTemplate(container) {\n    return this.renderers.map((r) =\u003e r.renderTemplate(container));\n  }\n  renderElement(element, index, templateData, renderDetails) {\n    let i2 = 0;\n    for (const renderer of this.renderers) {\n      renderer.renderElement(element, index, templateData[i2++], renderDetails);\n    }\n  }\n  disposeElement(element, index, templateData, renderDetails) {\n    let i2 = 0;\n    for (const renderer of this.renderers) {\n      renderer.disposeElement?.(element, index, templateData[i2], renderDetails);\n      i2 += 1;\n    }\n  }\n  disposeTemplate(templateData) {\n    let i2 = 0;\n    for (const renderer of this.renderers) {\n      renderer.disposeTemplate(templateData[i2++]);\n    }\n  }\n};\nvar AccessibiltyRenderer = class {\n  constructor(accessibilityProvider) {\n    this.accessibilityProvider = accessibilityProvider;\n    this.templateId = \"a18n\";\n  }\n  renderTemplate(container) {\n    return { container, disposables: new DisposableStore() };\n  }\n  renderElement(element, index, data) {\n    const ariaLabel = this.accessibilityProvider.getAriaLabel(element);\n    const observable = ariaLabel \u0026\u0026 typeof ariaLabel !== \"string\" ? ariaLabel : constObservable(ariaLabel);\n    data.disposables.add(autorun((reader) =\u003e {\n      this.setAriaLabel(reader.readObservable(observable), data.container);\n    }));\n    const ariaLevel = this.accessibilityProvider.getAriaLevel \u0026\u0026 this.accessibilityProvider.getAriaLevel(element);\n    if (typeof ariaLevel === \"number\") {\n      data.container.setAttribute(\"aria-level\", `${ariaLevel}`);\n    } else {\n      data.container.removeAttribute(\"aria-level\");\n    }\n  }\n  setAriaLabel(ariaLabel, element) {\n    if (ariaLabel) {\n      element.setAttribute(\"aria-label\", ariaLabel);\n    } else {\n      element.removeAttribute(\"aria-label\");\n    }\n  }\n  disposeElement(element, index, templateData) {\n    templateData.disposables.clear();\n  }\n  disposeTemplate(templateData) {\n    templateData.disposables.dispose();\n  }\n};\nvar ListViewDragAndDrop = class {\n  constructor(list2, dnd) {\n    this.list = list2;\n    this.dnd = dnd;\n  }\n  getDragElements(element) {\n    const selection = this.list.getSelectedElements();\n    const elements = selection.indexOf(element) \u003e -1 ? selection : [element];\n    return elements;\n  }\n  getDragURI(element) {\n    return this.dnd.getDragURI(element);\n  }\n  getDragLabel(elements, originalEvent) {\n    if (this.dnd.getDragLabel) {\n      return this.dnd.getDragLabel(elements, originalEvent);\n    }\n    return void 0;\n  }\n  onDragStart(data, originalEvent) {\n    this.dnd.onDragStart?.(data, originalEvent);\n  }\n  onDragOver(data, targetElement, targetIndex, targetSector, originalEvent) {\n    return this.dnd.onDragOver(data, targetElement, targetIndex, targetSector, originalEvent);\n  }\n  onDragLeave(data, targetElement, targetIndex, originalEvent) {\n    this.dnd.onDragLeave?.(data, targetElement, targetIndex, originalEvent);\n  }\n  onDragEnd(originalEvent) {\n    this.dnd.onDragEnd?.(originalEvent);\n  }\n  drop(data, targetElement, targetIndex, targetSector, originalEvent) {\n    this.dnd.drop(data, targetElement, targetIndex, targetSector, originalEvent);\n  }\n  dispose() {\n    this.dnd.dispose();\n  }\n};\nvar List = class {\n  get onDidChangeFocus() {\n    return Event.map(this.eventBufferer.wrapEvent(this.focus.onChange), (e) =\u003e this.toListEvent(e), this.disposables);\n  }\n  get onDidChangeSelection() {\n    return Event.map(this.eventBufferer.wrapEvent(this.selection.onChange), (e) =\u003e this.toListEvent(e), this.disposables);\n  }\n  get domId() {\n    return this.view.domId;\n  }\n  get onDidScroll() {\n    return this.view.onDidScroll;\n  }\n  get onMouseClick() {\n    return this.view.onMouseClick;\n  }\n  get onMouseDblClick() {\n    return this.view.onMouseDblClick;\n  }\n  get onMouseMiddleClick() {\n    return this.view.onMouseMiddleClick;\n  }\n  get onPointer() {\n    return this.mouseController.onPointer;\n  }\n  get onMouseDown() {\n    return this.view.onMouseDown;\n  }\n  get onMouseOver() {\n    return this.view.onMouseOver;\n  }\n  get onMouseOut() {\n    return this.view.onMouseOut;\n  }\n  get onTouchStart() {\n    return this.view.onTouchStart;\n  }\n  get onTap() {\n    return this.view.onTap;\n  }\n  /**\n   * Possible context menu trigger events:\n   * - ContextMenu key\n   * - Shift F10\n   * - Ctrl Option Shift M (macOS with VoiceOver)\n   * - Mouse right click\n   */\n  get onContextMenu() {\n    let didJustPressContextMenuKey = false;\n    const fromKeyDown = Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, \"keydown\")).event, ($23) =\u003e $23.map((e) =\u003e new StandardKeyboardEvent(e)).filter((e) =\u003e didJustPressContextMenuKey = e.keyCode === 58 || e.shiftKey \u0026\u0026 e.keyCode === 68).map((e) =\u003e EventHelper.stop(e, true)).filter(() =\u003e false));\n    const fromKeyUp = Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, \"keyup\")).event, ($23) =\u003e $23.forEach(() =\u003e didJustPressContextMenuKey = false).map((e) =\u003e new StandardKeyboardEvent(e)).filter((e) =\u003e e.keyCode === 58 || e.shiftKey \u0026\u0026 e.keyCode === 68).map((e) =\u003e EventHelper.stop(e, true)).map(({ browserEvent }) =\u003e {\n      const focus = this.getFocus();\n      const index = focus.length ? focus[0] : void 0;\n      const element = typeof index !== \"undefined\" ? this.view.element(index) : void 0;\n      const anchor = typeof index !== \"undefined\" ? this.view.domElement(index) : this.view.domNode;\n      return { index, element, anchor, browserEvent };\n    }));\n    const fromMouse = Event.chain(this.view.onContextMenu, ($23) =\u003e $23.filter((_) =\u003e !didJustPressContextMenuKey).map(({ element, index, browserEvent }) =\u003e ({ element, index, anchor: new StandardMouseEvent(getWindow(this.view.domNode), browserEvent), browserEvent })));\n    return Event.any(fromKeyDown, fromKeyUp, fromMouse);\n  }\n  get onKeyDown() {\n    return this.disposables.add(new DomEmitter(this.view.domNode, \"keydown\")).event;\n  }\n  get onDidFocus() {\n    return Event.signal(this.disposables.add(new DomEmitter(this.view.domNode, \"focus\", true)).event);\n  }\n  get onDidBlur() {\n    return Event.signal(this.disposables.add(new DomEmitter(this.view.domNode, \"blur\", true)).event);\n  }\n  constructor(user, container, virtualDelegate, renderers, _options = DefaultOptions2) {\n    this.user = user;\n    this._options = _options;\n    this.focus = new Trait(\"focused\");\n    this.anchor = new Trait(\"anchor\");\n    this.eventBufferer = new EventBufferer();\n    this._ariaLabel = \"\";\n    this.disposables = new DisposableStore();\n    this._onDidDispose = new Emitter();\n    this.onDidDispose = this._onDidDispose.event;\n    const role = this._options.accessibilityProvider \u0026\u0026 this._options.accessibilityProvider.getWidgetRole ? this._options.accessibilityProvider?.getWidgetRole() : \"list\";\n    this.selection = new SelectionTrait(role !== \"listbox\");\n    const baseRenderers = [this.focus.renderer, this.selection.renderer];\n    this.accessibilityProvider = _options.accessibilityProvider;\n    if (this.accessibilityProvider) {\n      baseRenderers.push(new AccessibiltyRenderer(this.accessibilityProvider));\n      this.accessibilityProvider.onDidChangeActiveDescendant?.(this.onDidChangeActiveDescendant, this, this.disposables);\n    }\n    renderers = renderers.map((r) =\u003e new PipelineRenderer(r.templateId, [...baseRenderers, r]));\n    const viewOptions = {\n      ..._options,\n      dnd: _options.dnd \u0026\u0026 new ListViewDragAndDrop(this, _options.dnd)\n    };\n    this.view = this.createListView(container, virtualDelegate, renderers, viewOptions);\n    this.view.domNode.setAttribute(\"role\", role);\n    if (_options.styleController) {\n      this.styleController = _options.styleController(this.view.domId);\n    } else {\n      const styleElement = createStyleSheet(this.view.domNode);\n      this.styleController = new DefaultStyleController(styleElement, this.view.domId);\n    }\n    this.spliceable = new CombinedSpliceable([\n      new TraitSpliceable(this.focus, this.view, _options.identityProvider),\n      new TraitSpliceable(this.selection, this.view, _options.identityProvider),\n      new TraitSpliceable(this.anchor, this.view, _options.identityProvider),\n      this.view\n    ]);\n    this.disposables.add(this.focus);\n    this.disposables.add(this.selection);\n    this.disposables.add(this.anchor);\n    this.disposables.add(this.view);\n    this.disposables.add(this._onDidDispose);\n    this.disposables.add(new DOMFocusController(this, this.view));\n    if (typeof _options.keyboardSupport !== \"boolean\" || _options.keyboardSupport) {\n      this.keyboardController = new KeyboardController(this, this.view, _options);\n      this.disposables.add(this.keyboardController);\n    }\n    if (_options.keyboardNavigationLabelProvider) {\n      const delegate = _options.keyboardNavigationDelegate || DefaultKeyboardNavigationDelegate;\n      this.typeNavigationController = new TypeNavigationController(this, this.view, _options.keyboardNavigationLabelProvider, _options.keyboardNavigationEventFilter ?? (() =\u003e true), delegate);\n      this.disposables.add(this.typeNavigationController);\n    }\n    this.mouseController = this.createMouseController(_options);\n    this.disposables.add(this.mouseController);\n    this.onDidChangeFocus(this._onFocusChange, this, this.disposables);\n    this.onDidChangeSelection(this._onSelectionChange, this, this.disposables);\n    if (this.accessibilityProvider) {\n      const ariaLabel = this.accessibilityProvider.getWidgetAriaLabel();\n      const observable = ariaLabel \u0026\u0026 typeof ariaLabel !== \"string\" ? ariaLabel : constObservable(ariaLabel);\n      this.disposables.add(autorun((reader) =\u003e {\n        this.ariaLabel = reader.readObservable(observable);\n      }));\n    }\n    if (this._options.multipleSelectionSupport !== false) {\n      this.view.domNode.setAttribute(\"aria-multiselectable\", \"true\");\n    }\n  }\n  createListView(container, virtualDelegate, renderers, viewOptions) {\n    return new ListView(container, virtualDelegate, renderers, viewOptions);\n  }\n  createMouseController(options2) {\n    return new MouseController(this);\n  }\n  updateOptions(optionsUpdate = {}) {\n    this._options = { ...this._options, ...optionsUpdate };\n    this.typeNavigationController?.updateOptions(this._options);\n    if (this._options.multipleSelectionController !== void 0) {\n      if (this._options.multipleSelectionSupport) {\n        this.view.domNode.setAttribute(\"aria-multiselectable\", \"true\");\n      } else {\n        this.view.domNode.removeAttribute(\"aria-multiselectable\");\n      }\n    }\n    this.mouseController.updateOptions(optionsUpdate);\n    this.keyboardController?.updateOptions(optionsUpdate);\n    this.view.updateOptions(optionsUpdate);\n  }\n  get options() {\n    return this._options;\n  }\n  splice(start, deleteCount, elements = []) {\n    if (start \u003c 0 || start \u003e this.view.length) {\n      throw new ListError(this.user, `Invalid start index: ${start}`);\n    }\n    if (deleteCount \u003c 0) {\n      throw new ListError(this.user, `Invalid delete count: ${deleteCount}`);\n    }\n    if (deleteCount === 0 \u0026\u0026 elements.length === 0) {\n      return;\n    }\n    this.eventBufferer.bufferEvents(() =\u003e this.spliceable.splice(start, deleteCount, elements));\n  }\n  rerender() {\n    this.view.rerender();\n  }\n  element(index) {\n    return this.view.element(index);\n  }\n  indexOf(element) {\n    return this.view.indexOf(element);\n  }\n  indexAt(position) {\n    return this.view.indexAt(position);\n  }\n  get length() {\n    return this.view.length;\n  }\n  get contentHeight() {\n    return this.view.contentHeight;\n  }\n  get onDidChangeContentHeight() {\n    return this.view.onDidChangeContentHeight;\n  }\n  get scrollTop() {\n    return this.view.getScrollTop();\n  }\n  set scrollTop(scrollTop) {\n    this.view.setScrollTop(scrollTop);\n  }\n  get scrollHeight() {\n    return this.view.scrollHeight;\n  }\n  get renderHeight() {\n    return this.view.renderHeight;\n  }\n  get firstVisibleIndex() {\n    return this.view.firstVisibleIndex;\n  }\n  get ariaLabel() {\n    return this._ariaLabel;\n  }\n  set ariaLabel(value) {\n    this._ariaLabel = value;\n    this.view.domNode.setAttribute(\"aria-label\", value);\n  }\n  domFocus() {\n    this.view.domNode.focus({ preventScroll: true });\n  }\n  layout(height, width2) {\n    this.view.layout(height, width2);\n  }\n  setSelection(indexes, browserEvent) {\n    for (const index of indexes) {\n      if (index \u003c 0 || index \u003e= this.length) {\n        throw new ListError(this.user, `Invalid index ${index}`);\n      }\n    }\n    this.selection.set(indexes, browserEvent);\n  }\n  getSelection() {\n    return this.selection.get();\n  }\n  getSelectedElements() {\n    return this.getSelection().map((i2) =\u003e this.view.element(i2));\n  }\n  setAnchor(index) {\n    if (typeof index === \"undefined\") {\n      this.anchor.set([]);\n      return;\n    }\n    if (index \u003c 0 || index \u003e= this.length) {\n      throw new ListError(this.user, `Invalid index ${index}`);\n    }\n    this.anchor.set([index]);\n  }\n  getAnchor() {\n    return this.anchor.get().at(0);\n  }\n  getAnchorElement() {\n    const anchor = this.getAnchor();\n    return typeof anchor === \"undefined\" ? void 0 : this.element(anchor);\n  }\n  setFocus(indexes, browserEvent) {\n    for (const index of indexes) {\n      if (index \u003c 0 || index \u003e= this.length) {\n        throw new ListError(this.user, `Invalid index ${index}`);\n      }\n    }\n    this.focus.set(indexes, browserEvent);\n  }\n  focusNext(n2 = 1, loop = false, browserEvent, filter) {\n    if (this.length === 0) {\n      return;\n    }\n    const focus = this.focus.get();\n    const index = this.findNextIndex(focus.length \u003e 0 ? focus[0] + n2 : 0, loop, filter);\n    if (index \u003e -1) {\n      this.setFocus([index], browserEvent);\n    }\n  }\n  focusPrevious(n2 = 1, loop = false, browserEvent, filter) {\n    if (this.length === 0) {\n      return;\n    }\n    const focus = this.focus.get();\n    const index = this.findPreviousIndex(focus.length \u003e 0 ? focus[0] - n2 : 0, loop, filter);\n    if (index \u003e -1) {\n      this.setFocus([index], browserEvent);\n    }\n  }\n  async focusNextPage(browserEvent, filter) {\n    let lastPageIndex = this.view.indexAt(this.view.getScrollTop() + this.view.renderHeight);\n    lastPageIndex = lastPageIndex === 0 ? 0 : lastPageIndex - 1;\n    const currentlyFocusedElementIndex = this.getFocus()[0];\n    if (currentlyFocusedElementIndex !== lastPageIndex \u0026\u0026 (currentlyFocusedElementIndex === void 0 || lastPageIndex \u003e currentlyFocusedElementIndex)) {\n      const lastGoodPageIndex = this.findPreviousIndex(lastPageIndex, false, filter);\n      if (lastGoodPageIndex \u003e -1 \u0026\u0026 currentlyFocusedElementIndex !== lastGoodPageIndex) {\n        this.setFocus([lastGoodPageIndex], browserEvent);\n      } else {\n        this.setFocus([lastPageIndex], browserEvent);\n      }\n    } else {\n      const previousScrollTop = this.view.getScrollTop();\n      let nextpageScrollTop = previousScrollTop + this.view.renderHeight;\n      if (lastPageIndex \u003e currentlyFocusedElementIndex) {\n        nextpageScrollTop -= this.view.elementHeight(lastPageIndex);\n      }\n      this.view.setScrollTop(nextpageScrollTop);\n      if (this.view.getScrollTop() !== previousScrollTop) {\n        this.setFocus([]);\n        await timeout(0);\n        await this.focusNextPage(browserEvent, filter);\n      }\n    }\n  }\n  async focusPreviousPage(browserEvent, filter, getPaddingTop = () =\u003e 0) {\n    let firstPageIndex;\n    const paddingTop = getPaddingTop();\n    const scrollTop = this.view.getScrollTop() + paddingTop;\n    if (scrollTop === 0) {\n      firstPageIndex = this.view.indexAt(scrollTop);\n    } else {\n      firstPageIndex = this.view.indexAfter(scrollTop - 1);\n    }\n    const currentlyFocusedElementIndex = this.getFocus()[0];\n    if (currentlyFocusedElementIndex !== firstPageIndex \u0026\u0026 (currentlyFocusedElementIndex === void 0 || currentlyFocusedElementIndex \u003e= firstPageIndex)) {\n      const firstGoodPageIndex = this.findNextIndex(firstPageIndex, false, filter);\n      if (firstGoodPageIndex \u003e -1 \u0026\u0026 currentlyFocusedElementIndex !== firstGoodPageIndex) {\n        this.setFocus([firstGoodPageIndex], browserEvent);\n      } else {\n        this.setFocus([firstPageIndex], browserEvent);\n      }\n    } else {\n      const previousScrollTop = scrollTop;\n      this.view.setScrollTop(scrollTop - this.view.renderHeight - paddingTop);\n      if (this.view.getScrollTop() + getPaddingTop() !== previousScrollTop) {\n        this.setFocus([]);\n        await timeout(0);\n        await this.focusPreviousPage(browserEvent, filter, getPaddingTop);\n      }\n    }\n  }\n  focusLast(browserEvent, filter) {\n    if (this.length === 0) {\n      return;\n    }\n    const index = this.findPreviousIndex(this.length - 1, false, filter);\n    if (index \u003e -1) {\n      this.setFocus([index], browserEvent);\n    }\n  }\n  focusFirst(browserEvent, filter) {\n    this.focusNth(0, browserEvent, filter);\n  }\n  focusNth(n2, browserEvent, filter) {\n    if (this.length === 0) {\n      return;\n    }\n    const index = this.findNextIndex(n2, false, filter);\n    if (index \u003e -1) {\n      this.setFocus([index], browserEvent);\n    }\n  }\n  findNextIndex(index, loop = false, filter) {\n    for (let i2 = 0; i2 \u003c this.length; i2++) {\n      if (index \u003e= this.length \u0026\u0026 !loop) {\n        return -1;\n      }\n      index = index % this.length;\n      if (!filter || filter(this.element(index))) {\n        return index;\n      }\n      index++;\n    }\n    return -1;\n  }\n  findPreviousIndex(index, loop = false, filter) {\n    for (let i2 = 0; i2 \u003c this.length; i2++) {\n      if (index \u003c 0 \u0026\u0026 !loop) {\n        return -1;\n      }\n      index = (this.length + index % this.length) % this.length;\n      if (!filter || filter(this.element(index))) {\n        return index;\n      }\n      index--;\n    }\n    return -1;\n  }\n  getFocus() {\n    return this.focus.get();\n  }\n  getFocusedElements() {\n    return this.getFocus().map((i2) =\u003e this.view.element(i2));\n  }\n  reveal(index, relativeTop, paddingTop = 0) {\n    if (index \u003c 0 || index \u003e= this.length) {\n      throw new ListError(this.user, `Invalid index ${index}`);\n    }\n    const scrollTop = this.view.getScrollTop();\n    const elementTop = this.view.elementTop(index);\n    const elementHeight = this.view.elementHeight(index);\n    if (isNumber(relativeTop)) {\n      const m = elementHeight - this.view.renderHeight + paddingTop;\n      this.view.setScrollTop(m * clamp(relativeTop, 0, 1) + elementTop - paddingTop);\n    } else {\n      const viewItemBottom = elementTop + elementHeight;\n      const scrollBottom = scrollTop + this.view.renderHeight;\n      if (elementTop \u003c scrollTop + paddingTop \u0026\u0026 viewItemBottom \u003e= scrollBottom) {\n      } else if (elementTop \u003c scrollTop + paddingTop || viewItemBottom \u003e= scrollBottom \u0026\u0026 elementHeight \u003e= this.view.renderHeight) {\n        this.view.setScrollTop(elementTop - paddingTop);\n      } else if (viewItemBottom \u003e= scrollBottom) {\n        this.view.setScrollTop(viewItemBottom - this.view.renderHeight);\n      }\n    }\n  }\n  /**\n   * Returns the relative position of an element rendered in the list.\n   * Returns `null` if the element isn't *entirely* in the visible viewport.\n   */\n  getRelativeTop(index, paddingTop = 0) {\n    if (index \u003c 0 || index \u003e= this.length) {\n      throw new ListError(this.user, `Invalid index ${index}`);\n    }\n    const scrollTop = this.view.getScrollTop();\n    const elementTop = this.view.elementTop(index);\n    const elementHeight = this.view.elementHeight(index);\n    if (elementTop \u003c scrollTop + paddingTop || elementTop + elementHeight \u003e scrollTop + this.view.renderHeight) {\n      return null;\n    }\n    const m = elementHeight - this.view.renderHeight + paddingTop;\n    return Math.abs((scrollTop + paddingTop - elementTop) / m);\n  }\n  getHTMLElement() {\n    return this.view.domNode;\n  }\n  getScrollableElement() {\n    return this.view.scrollableElementDomNode;\n  }\n  getElementID(index) {\n    return this.view.getElementDomId(index);\n  }\n  getElementTop(index) {\n    return this.view.elementTop(index);\n  }\n  style(styles) {\n    this.styleController.style(styles);\n  }\n  toListEvent({ indexes, browserEvent }) {\n    return { indexes, elements: indexes.map((i2) =\u003e this.view.element(i2)), browserEvent };\n  }\n  _onFocusChange() {\n    const focus = this.focus.get();\n    this.view.domNode.classList.toggle(\"element-focused\", focus.length \u003e 0);\n    this.onDidChangeActiveDescendant();\n  }\n  onDidChangeActiveDescendant() {\n    const focus = this.focus.get();\n    if (focus.length \u003e 0) {\n      let id;\n      if (this.accessibilityProvider?.getActiveDescendantId) {\n        id = this.accessibilityProvider.getActiveDescendantId(this.view.element(focus[0]));\n      }\n      this.view.domNode.setAttribute(\"aria-activedescendant\", id || this.view.getElementDomId(focus[0]));\n    } else {\n      this.view.domNode.removeAttribute(\"aria-activedescendant\");\n    }\n  }\n  _onSelectionChange() {\n    const selection = this.selection.get();\n    this.view.domNode.classList.toggle(\"selection-none\", selection.length === 0);\n    this.view.domNode.classList.toggle(\"selection-single\", selection.length === 1);\n    this.view.domNode.classList.toggle(\"selection-multiple\", selection.length \u003e 1);\n  }\n  dispose() {\n    this._onDidDispose.fire();\n    this.disposables.dispose();\n    this._onDidDispose.dispose();\n  }\n};\n__decorate28([\n  memoize\n], List.prototype, \"onDidChangeFocus\", null);\n__decorate28([\n  memoize\n], List.prototype, \"onDidChangeSelection\", null);\n__decorate28([\n  memoize\n], List.prototype, \"onContextMenu\", null);\n__decorate28([\n  memoize\n], List.prototype, \"onKeyDown\", null);\n__decorate28([\n  memoize\n], List.prototype, \"onDidFocus\", null);\n__decorate28([\n  memoize\n], List.prototype, \"onDidBlur\", null);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js\nvar $2 = $;\nvar SELECT_OPTION_ENTRY_TEMPLATE_ID = \"selectOption.entry.template\";\nvar SelectListRenderer = class {\n  get templateId() {\n    return SELECT_OPTION_ENTRY_TEMPLATE_ID;\n  }\n  renderTemplate(container) {\n    const data = /* @__PURE__ */ Object.create(null);\n    data.root = container;\n    data.text = append(container, $2(\".option-text\"));\n    data.detail = append(container, $2(\".option-detail\"));\n    data.decoratorRight = append(container, $2(\".option-decorator-right\"));\n    return data;\n  }\n  renderElement(element, index, templateData) {\n    const data = templateData;\n    const text2 = element.text;\n    const detail = element.detail;\n    const decoratorRight = element.decoratorRight;\n    const isDisabled = element.isDisabled;\n    data.text.textContent = text2;\n    data.detail.textContent = !!detail ? detail : \"\";\n    data.decoratorRight.textContent = !!decoratorRight ? decoratorRight : \"\";\n    if (isDisabled) {\n      data.root.classList.add(\"option-disabled\");\n    } else {\n      data.root.classList.remove(\"option-disabled\");\n    }\n  }\n  disposeTemplate(_templateData) {\n  }\n};\nvar SelectBoxList = class _SelectBoxList extends Disposable {\n  static {\n    this.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN = 32;\n  }\n  static {\n    this.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN = 2;\n  }\n  static {\n    this.DEFAULT_MINIMUM_VISIBLE_OPTIONS = 3;\n  }\n  constructor(options2, selected, contextViewProvider, styles, selectBoxOptions) {\n    super();\n    this.options = [];\n    this._currentSelection = 0;\n    this._hasDetails = false;\n    this._skipLayout = false;\n    this._sticky = false;\n    this._isVisible = false;\n    this.styles = styles;\n    this.selectBoxOptions = selectBoxOptions || /* @__PURE__ */ Object.create(null);\n    if (typeof this.selectBoxOptions.minBottomMargin !== \"number\") {\n      this.selectBoxOptions.minBottomMargin = _SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN;\n    } else if (this.selectBoxOptions.minBottomMargin \u003c 0) {\n      this.selectBoxOptions.minBottomMargin = 0;\n    }\n    this.selectElement = document.createElement(\"select\");\n    this.selectElement.className = \"monaco-select-box monaco-select-box-dropdown-padding\";\n    if (typeof this.selectBoxOptions.ariaLabel === \"string\") {\n      this.selectElement.setAttribute(\"aria-label\", this.selectBoxOptions.ariaLabel);\n    }\n    if (typeof this.selectBoxOptions.ariaDescription === \"string\") {\n      this.selectElement.setAttribute(\"aria-description\", this.selectBoxOptions.ariaDescription);\n    }\n    this._onDidSelect = new Emitter();\n    this._register(this._onDidSelect);\n    this.registerListeners();\n    this.constructSelectDropDown(contextViewProvider);\n    this.selected = selected || 0;\n    if (options2) {\n      this.setOptions(options2, selected);\n    }\n    this.initStyleSheet();\n  }\n  setTitle(title) {\n    if (!this._hover \u0026\u0026 title) {\n      this._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate(\"mouse\"), this.selectElement, title));\n    } else if (this._hover) {\n      this._hover.update(title);\n    }\n  }\n  // IDelegate - List renderer\n  getHeight() {\n    return 22;\n  }\n  getTemplateId() {\n    return SELECT_OPTION_ENTRY_TEMPLATE_ID;\n  }\n  constructSelectDropDown(contextViewProvider) {\n    this.contextViewProvider = contextViewProvider;\n    this.selectDropDownContainer = $(\".monaco-select-box-dropdown-container\");\n    this.selectDropDownContainer.classList.add(\"monaco-select-box-dropdown-padding\");\n    this.selectionDetailsPane = append(this.selectDropDownContainer, $2(\".select-box-details-pane\"));\n    const widthControlOuterDiv = append(this.selectDropDownContainer, $2(\".select-box-dropdown-container-width-control\"));\n    const widthControlInnerDiv = append(widthControlOuterDiv, $2(\".width-control-div\"));\n    this.widthControlElement = document.createElement(\"span\");\n    this.widthControlElement.className = \"option-text-width-control\";\n    append(widthControlInnerDiv, this.widthControlElement);\n    this._dropDownPosition = 0;\n    this.styleElement = createStyleSheet(this.selectDropDownContainer);\n    this.selectDropDownContainer.setAttribute(\"draggable\", \"true\");\n    this._register(addDisposableListener(this.selectDropDownContainer, EventType.DRAG_START, (e) =\u003e {\n      EventHelper.stop(e, true);\n    }));\n  }\n  registerListeners() {\n    this._register(addStandardDisposableListener(this.selectElement, \"change\", (e) =\u003e {\n      this.selected = e.target.selectedIndex;\n      this._onDidSelect.fire({\n        index: e.target.selectedIndex,\n        selected: e.target.value\n      });\n      if (!!this.options[this.selected] \u0026\u0026 !!this.options[this.selected].text) {\n        this.setTitle(this.options[this.selected].text);\n      }\n    }));\n    this._register(addDisposableListener(this.selectElement, EventType.CLICK, (e) =\u003e {\n      EventHelper.stop(e);\n      if (this._isVisible) {\n        this.hideSelectDropDown(true);\n      } else {\n        this.showSelectDropDown();\n      }\n    }));\n    this._register(addDisposableListener(this.selectElement, EventType.MOUSE_DOWN, (e) =\u003e {\n      EventHelper.stop(e);\n    }));\n    let listIsVisibleOnTouchStart;\n    this._register(addDisposableListener(this.selectElement, \"touchstart\", (e) =\u003e {\n      listIsVisibleOnTouchStart = this._isVisible;\n    }));\n    this._register(addDisposableListener(this.selectElement, \"touchend\", (e) =\u003e {\n      EventHelper.stop(e);\n      if (listIsVisibleOnTouchStart) {\n        this.hideSelectDropDown(true);\n      } else {\n        this.showSelectDropDown();\n      }\n    }));\n    this._register(addDisposableListener(this.selectElement, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      let showDropDown = false;\n      if (isMacintosh) {\n        if (event.keyCode === 18 || event.keyCode === 16 || event.keyCode === 10 || event.keyCode === 3) {\n          showDropDown = true;\n        }\n      } else {\n        if (event.keyCode === 18 \u0026\u0026 event.altKey || event.keyCode === 16 \u0026\u0026 event.altKey || event.keyCode === 10 || event.keyCode === 3) {\n          showDropDown = true;\n        }\n      }\n      if (showDropDown) {\n        this.showSelectDropDown();\n        EventHelper.stop(e, true);\n      }\n    }));\n  }\n  get onDidSelect() {\n    return this._onDidSelect.event;\n  }\n  setOptions(options2, selected) {\n    if (!equals(this.options, options2)) {\n      this.options = options2;\n      this.selectElement.options.length = 0;\n      this._hasDetails = false;\n      this._cachedMaxDetailsHeight = void 0;\n      this.options.forEach((option2, index) =\u003e {\n        this.selectElement.add(this.createOption(option2.text, index, option2.isDisabled));\n        if (typeof option2.description === \"string\") {\n          this._hasDetails = true;\n        }\n      });\n    }\n    if (selected !== void 0) {\n      this.select(selected);\n      this._currentSelection = this.selected;\n    }\n  }\n  setOptionsList() {\n    this.selectList?.splice(0, this.selectList.length, this.options);\n  }\n  select(index) {\n    if (index \u003e= 0 \u0026\u0026 index \u003c this.options.length) {\n      this.selected = index;\n    } else if (index \u003e this.options.length - 1) {\n      this.select(this.options.length - 1);\n    } else if (this.selected \u003c 0) {\n      this.selected = 0;\n    }\n    this.selectElement.selectedIndex = this.selected;\n    if (!!this.options[this.selected] \u0026\u0026 !!this.options[this.selected].text) {\n      this.setTitle(this.options[this.selected].text);\n    }\n  }\n  focus() {\n    if (this.selectElement) {\n      this.selectElement.tabIndex = 0;\n      this.selectElement.focus();\n    }\n  }\n  blur() {\n    if (this.selectElement) {\n      this.selectElement.tabIndex = -1;\n      this.selectElement.blur();\n    }\n  }\n  setFocusable(focusable) {\n    this.selectElement.tabIndex = focusable ? 0 : -1;\n  }\n  render(container) {\n    this.container = container;\n    container.classList.add(\"select-container\");\n    container.appendChild(this.selectElement);\n    this.styleSelectElement();\n  }\n  initStyleSheet() {\n    const content = [];\n    if (this.styles.listFocusBackground) {\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`);\n    }\n    if (this.styles.listFocusForeground) {\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`);\n    }\n    if (this.styles.decoratorRightForeground) {\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`);\n    }\n    if (this.styles.selectBackground \u0026\u0026 this.styles.selectBorder \u0026\u0026 this.styles.selectBorder !== this.styles.selectBackground) {\n      content.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `);\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `);\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `);\n    } else if (this.styles.selectListBorder) {\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `);\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `);\n    }\n    if (this.styles.listHoverForeground) {\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`);\n    }\n    if (this.styles.listHoverBackground) {\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`);\n    }\n    if (this.styles.listFocusOutline) {\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`);\n    }\n    if (this.styles.listHoverOutline) {\n      content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`);\n    }\n    content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }`);\n    content.push(`.monaco-select-box-dropdown-container \u003e .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }`);\n    this.styleElement.textContent = content.join(\"\\n\");\n  }\n  styleSelectElement() {\n    const background = this.styles.selectBackground ?? \"\";\n    const foreground2 = this.styles.selectForeground ?? \"\";\n    const border = this.styles.selectBorder ?? \"\";\n    this.selectElement.style.backgroundColor = background;\n    this.selectElement.style.color = foreground2;\n    this.selectElement.style.borderColor = border;\n  }\n  styleList() {\n    const background = this.styles.selectBackground ?? \"\";\n    const listBackground = asCssValueWithDefault(this.styles.selectListBackground, background);\n    this.selectDropDownListContainer.style.backgroundColor = listBackground;\n    this.selectionDetailsPane.style.backgroundColor = listBackground;\n    const optionsBorder = this.styles.focusBorder ?? \"\";\n    this.selectDropDownContainer.style.outlineColor = optionsBorder;\n    this.selectDropDownContainer.style.outlineOffset = \"-1px\";\n    this.selectList.style(this.styles);\n  }\n  createOption(value, index, disabled) {\n    const option2 = document.createElement(\"option\");\n    option2.value = value;\n    option2.text = value;\n    option2.disabled = !!disabled;\n    return option2;\n  }\n  // ContextView dropdown methods\n  showSelectDropDown() {\n    this.selectionDetailsPane.textContent = \"\";\n    if (!this.contextViewProvider || this._isVisible) {\n      return;\n    }\n    this.createSelectList(this.selectDropDownContainer);\n    this.setOptionsList();\n    this.contextViewProvider.showContextView({\n      getAnchor: () =\u003e this.selectElement,\n      render: (container) =\u003e this.renderSelectDropDown(container, true),\n      layout: () =\u003e {\n        this.layoutSelectDropDown();\n      },\n      onHide: () =\u003e {\n        this.selectDropDownContainer.classList.remove(\"visible\");\n        this.selectElement.classList.remove(\"synthetic-focus\");\n      },\n      anchorPosition: this._dropDownPosition\n    }, this.selectBoxOptions.optionsAsChildren ? this.container : void 0);\n    this._isVisible = true;\n    this.hideSelectDropDown(false);\n    this.contextViewProvider.showContextView({\n      getAnchor: () =\u003e this.selectElement,\n      render: (container) =\u003e this.renderSelectDropDown(container),\n      layout: () =\u003e this.layoutSelectDropDown(),\n      onHide: () =\u003e {\n        this.selectDropDownContainer.classList.remove(\"visible\");\n        this.selectElement.classList.remove(\"synthetic-focus\");\n      },\n      anchorPosition: this._dropDownPosition\n    }, this.selectBoxOptions.optionsAsChildren ? this.container : void 0);\n    this._currentSelection = this.selected;\n    this._isVisible = true;\n    this.selectElement.setAttribute(\"aria-expanded\", \"true\");\n  }\n  hideSelectDropDown(focusSelect) {\n    if (!this.contextViewProvider || !this._isVisible) {\n      return;\n    }\n    this._isVisible = false;\n    this.selectElement.setAttribute(\"aria-expanded\", \"false\");\n    if (focusSelect) {\n      this.selectElement.focus();\n    }\n    this.contextViewProvider.hideContextView();\n  }\n  renderSelectDropDown(container, preLayoutPosition) {\n    container.appendChild(this.selectDropDownContainer);\n    this.layoutSelectDropDown(preLayoutPosition);\n    return {\n      dispose: () =\u003e {\n        this.selectDropDownContainer.remove();\n      }\n    };\n  }\n  // Iterate over detailed descriptions, find max height\n  measureMaxDetailsHeight() {\n    let maxDetailsPaneHeight = 0;\n    this.options.forEach((_option, index) =\u003e {\n      this.updateDetail(index);\n      if (this.selectionDetailsPane.offsetHeight \u003e maxDetailsPaneHeight) {\n        maxDetailsPaneHeight = this.selectionDetailsPane.offsetHeight;\n      }\n    });\n    return maxDetailsPaneHeight;\n  }\n  layoutSelectDropDown(preLayoutPosition) {\n    if (this._skipLayout) {\n      return false;\n    }\n    if (this.selectList) {\n      this.selectDropDownContainer.classList.add(\"visible\");\n      const window2 = getWindow(this.selectElement);\n      const selectPosition = getDomNodePagePosition(this.selectElement);\n      const styles = getWindow(this.selectElement).getComputedStyle(this.selectElement);\n      const verticalPadding = parseFloat(styles.getPropertyValue(\"--dropdown-padding-top\")) + parseFloat(styles.getPropertyValue(\"--dropdown-padding-bottom\"));\n      const maxSelectDropDownHeightBelow = window2.innerHeight - selectPosition.top - selectPosition.height - (this.selectBoxOptions.minBottomMargin || 0);\n      const maxSelectDropDownHeightAbove = selectPosition.top - _SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN;\n      const selectWidth = this.selectElement.offsetWidth;\n      const selectMinWidth = this.setWidthControlElement(this.widthControlElement);\n      const selectOptimalWidth = Math.max(selectMinWidth, Math.round(selectWidth)).toString() + \"px\";\n      this.selectDropDownContainer.style.width = selectOptimalWidth;\n      this.selectList.getHTMLElement().style.height = \"\";\n      this.selectList.layout();\n      let listHeight = this.selectList.contentHeight;\n      if (this._hasDetails \u0026\u0026 this._cachedMaxDetailsHeight === void 0) {\n        this._cachedMaxDetailsHeight = this.measureMaxDetailsHeight();\n      }\n      const maxDetailsPaneHeight = this._hasDetails ? this._cachedMaxDetailsHeight : 0;\n      const minRequiredDropDownHeight = listHeight + verticalPadding + maxDetailsPaneHeight;\n      const maxVisibleOptionsBelow = Math.floor((maxSelectDropDownHeightBelow - verticalPadding - maxDetailsPaneHeight) / this.getHeight());\n      const maxVisibleOptionsAbove = Math.floor((maxSelectDropDownHeightAbove - verticalPadding - maxDetailsPaneHeight) / this.getHeight());\n      if (preLayoutPosition) {\n        if (selectPosition.top + selectPosition.height \u003e window2.innerHeight - 22 || selectPosition.top \u003c _SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN || maxVisibleOptionsBelow \u003c 1 \u0026\u0026 maxVisibleOptionsAbove \u003c 1) {\n          return false;\n        }\n        if (maxVisibleOptionsBelow \u003c _SelectBoxList.DEFAULT_MINIMUM_VISIBLE_OPTIONS \u0026\u0026 maxVisibleOptionsAbove \u003e maxVisibleOptionsBelow \u0026\u0026 this.options.length \u003e maxVisibleOptionsBelow) {\n          this._dropDownPosition = 1;\n          this.selectDropDownListContainer.remove();\n          this.selectionDetailsPane.remove();\n          this.selectDropDownContainer.appendChild(this.selectionDetailsPane);\n          this.selectDropDownContainer.appendChild(this.selectDropDownListContainer);\n          this.selectionDetailsPane.classList.remove(\"border-top\");\n          this.selectionDetailsPane.classList.add(\"border-bottom\");\n        } else {\n          this._dropDownPosition = 0;\n          this.selectDropDownListContainer.remove();\n          this.selectionDetailsPane.remove();\n          this.selectDropDownContainer.appendChild(this.selectDropDownListContainer);\n          this.selectDropDownContainer.appendChild(this.selectionDetailsPane);\n          this.selectionDetailsPane.classList.remove(\"border-bottom\");\n          this.selectionDetailsPane.classList.add(\"border-top\");\n        }\n        return true;\n      }\n      if (selectPosition.top + selectPosition.height \u003e window2.innerHeight - 22 || selectPosition.top \u003c _SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN || this._dropDownPosition === 0 \u0026\u0026 maxVisibleOptionsBelow \u003c 1 || this._dropDownPosition === 1 \u0026\u0026 maxVisibleOptionsAbove \u003c 1) {\n        this.hideSelectDropDown(true);\n        return false;\n      }\n      if (this._dropDownPosition === 0) {\n        if (this._isVisible \u0026\u0026 maxVisibleOptionsBelow + maxVisibleOptionsAbove \u003c 1) {\n          this.hideSelectDropDown(true);\n          return false;\n        }\n        if (minRequiredDropDownHeight \u003e maxSelectDropDownHeightBelow) {\n          listHeight = maxVisibleOptionsBelow * this.getHeight();\n        }\n      } else {\n        if (minRequiredDropDownHeight \u003e maxSelectDropDownHeightAbove) {\n          listHeight = maxVisibleOptionsAbove * this.getHeight();\n        }\n      }\n      this.selectList.layout(listHeight);\n      this.selectList.domFocus();\n      if (this.selectList.length \u003e 0) {\n        this.selectList.setFocus([this.selected || 0]);\n        this.selectList.reveal(this.selectList.getFocus()[0] || 0);\n      }\n      if (this._hasDetails) {\n        this.selectList.getHTMLElement().style.height = listHeight + verticalPadding + \"px\";\n        this.selectDropDownContainer.style.height = \"\";\n      } else {\n        this.selectDropDownContainer.style.height = listHeight + verticalPadding + \"px\";\n      }\n      this.updateDetail(this.selected);\n      this.selectDropDownContainer.style.width = selectOptimalWidth;\n      this.selectDropDownListContainer.setAttribute(\"tabindex\", \"0\");\n      this.selectElement.classList.add(\"synthetic-focus\");\n      this.selectDropDownContainer.classList.add(\"synthetic-focus\");\n      return true;\n    } else {\n      return false;\n    }\n  }\n  setWidthControlElement(container) {\n    let elementWidth = 0;\n    if (container) {\n      let longest = 0;\n      let longestLength = 0;\n      this.options.forEach((option2, index) =\u003e {\n        const detailLength = !!option2.detail ? option2.detail.length : 0;\n        const rightDecoratorLength = !!option2.decoratorRight ? option2.decoratorRight.length : 0;\n        const len = option2.text.length + detailLength + rightDecoratorLength;\n        if (len \u003e longestLength) {\n          longest = index;\n          longestLength = len;\n        }\n      });\n      container.textContent = this.options[longest].text + (!!this.options[longest].decoratorRight ? this.options[longest].decoratorRight + \" \" : \"\");\n      elementWidth = getTotalWidth(container);\n    }\n    return elementWidth;\n  }\n  createSelectList(parent) {\n    if (this.selectList) {\n      return;\n    }\n    this.selectDropDownListContainer = append(parent, $2(\".select-box-dropdown-list-container\"));\n    this.listRenderer = new SelectListRenderer();\n    this.selectList = this._register(new List(\"SelectBoxCustom\", this.selectDropDownListContainer, this, [this.listRenderer], {\n      useShadows: false,\n      verticalScrollMode: 3,\n      keyboardSupport: false,\n      mouseSupport: false,\n      accessibilityProvider: {\n        getAriaLabel: (element) =\u003e {\n          let label = element.text;\n          if (element.detail) {\n            label += `. ${element.detail}`;\n          }\n          if (element.decoratorRight) {\n            label += `. ${element.decoratorRight}`;\n          }\n          if (element.description) {\n            label += `. ${element.description}`;\n          }\n          return label;\n        },\n        getWidgetAriaLabel: () =\u003e localize(16, \"Select Box\"),\n        getRole: () =\u003e isMacintosh ? \"\" : \"option\",\n        getWidgetRole: () =\u003e \"listbox\"\n      }\n    }));\n    if (this.selectBoxOptions.ariaLabel) {\n      this.selectList.ariaLabel = this.selectBoxOptions.ariaLabel;\n    }\n    const onKeyDown = this._register(new DomEmitter(this.selectDropDownListContainer, \"keydown\"));\n    const onSelectDropDownKeyDown = Event.chain(onKeyDown.event, ($23) =\u003e $23.filter(() =\u003e this.selectList.length \u003e 0).map((e) =\u003e new StandardKeyboardEvent(e)));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 3\n      /* KeyCode.Enter */\n    ))(this.onEnter, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 2\n      /* KeyCode.Tab */\n    ))(this.onEnter, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 9\n      /* KeyCode.Escape */\n    ))(this.onEscape, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 16\n      /* KeyCode.UpArrow */\n    ))(this.onUpArrow, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 18\n      /* KeyCode.DownArrow */\n    ))(this.onDownArrow, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 12\n      /* KeyCode.PageDown */\n    ))(this.onPageDown, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 11\n      /* KeyCode.PageUp */\n    ))(this.onPageUp, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 14\n      /* KeyCode.Home */\n    ))(this.onHome, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter(\n      (e) =\u003e e.keyCode === 13\n      /* KeyCode.End */\n    ))(this.onEnd, this));\n    this._register(Event.chain(onSelectDropDownKeyDown, ($23) =\u003e $23.filter((e) =\u003e e.keyCode \u003e= 21 \u0026\u0026 e.keyCode \u003c= 56 || e.keyCode \u003e= 85 \u0026\u0026 e.keyCode \u003c= 113))(this.onCharacter, this));\n    this._register(addDisposableListener(this.selectList.getHTMLElement(), EventType.POINTER_UP, (e) =\u003e this.onPointerUp(e)));\n    this._register(this.selectList.onMouseOver((e) =\u003e typeof e.index !== \"undefined\" \u0026\u0026 this.selectList.setFocus([e.index])));\n    this._register(this.selectList.onDidChangeFocus((e) =\u003e this.onListFocus(e)));\n    this._register(addDisposableListener(this.selectDropDownContainer, EventType.FOCUS_OUT, (e) =\u003e {\n      if (!this._isVisible || isAncestor(e.relatedTarget, this.selectDropDownContainer)) {\n        return;\n      }\n      this.onListBlur();\n    }));\n    this.selectList.getHTMLElement().setAttribute(\"aria-label\", this.selectBoxOptions.ariaLabel || \"\");\n    this.selectList.getHTMLElement().setAttribute(\"aria-expanded\", \"true\");\n    this.styleList();\n  }\n  // List methods\n  // List mouse controller - active exit, select option, fire onDidSelect if change, return focus to parent select\n  // Also takes in touchend events\n  onPointerUp(e) {\n    if (!this.selectList.length) {\n      return;\n    }\n    EventHelper.stop(e);\n    const target = e.target;\n    if (!target) {\n      return;\n    }\n    if (target.classList.contains(\"slider\")) {\n      return;\n    }\n    const listRowElement = target.closest(\".monaco-list-row\");\n    if (!listRowElement) {\n      return;\n    }\n    const index = Number(listRowElement.getAttribute(\"data-index\"));\n    const disabled = listRowElement.classList.contains(\"option-disabled\");\n    if (index \u003e= 0 \u0026\u0026 index \u003c this.options.length \u0026\u0026 !disabled) {\n      this.selected = index;\n      this.select(this.selected);\n      this.selectList.setFocus([this.selected]);\n      this.selectList.reveal(this.selectList.getFocus()[0]);\n      if (this.selected !== this._currentSelection) {\n        this._currentSelection = this.selected;\n        this._onDidSelect.fire({\n          index: this.selectElement.selectedIndex,\n          selected: this.options[this.selected].text\n        });\n        if (!!this.options[this.selected] \u0026\u0026 !!this.options[this.selected].text) {\n          this.setTitle(this.options[this.selected].text);\n        }\n      }\n      this.hideSelectDropDown(true);\n    }\n  }\n  // List Exit - passive - implicit no selection change, hide drop-down\n  onListBlur() {\n    if (this._sticky) {\n      return;\n    }\n    if (this.selected !== this._currentSelection) {\n      this.select(this._currentSelection);\n    }\n    this.hideSelectDropDown(false);\n  }\n  renderDescriptionMarkdown(text2, actionHandler) {\n    const cleanRenderedMarkdown = (element) =\u003e {\n      for (let i2 = 0; i2 \u003c element.childNodes.length; i2++) {\n        const child = element.childNodes.item(i2);\n        const tagName = child.tagName \u0026\u0026 child.tagName.toLowerCase();\n        if (tagName === \"img\") {\n          child.remove();\n        } else {\n          cleanRenderedMarkdown(child);\n        }\n      }\n    };\n    const rendered = renderMarkdown({ value: text2, supportThemeIcons: true }, { actionHandler });\n    rendered.element.classList.add(\"select-box-description-markdown\");\n    cleanRenderedMarkdown(rendered.element);\n    return rendered.element;\n  }\n  // List Focus Change - passive - update details pane with newly focused element's data\n  onListFocus(e) {\n    if (!this._isVisible || !this._hasDetails) {\n      return;\n    }\n    this.updateDetail(e.indexes[0]);\n  }\n  updateDetail(selectedIndex) {\n    this.selectionDetailsPane.textContent = \"\";\n    const option2 = this.options[selectedIndex];\n    const description = option2?.description ?? \"\";\n    const descriptionIsMarkdown = option2?.descriptionIsMarkdown ?? false;\n    if (description) {\n      if (descriptionIsMarkdown) {\n        const actionHandler = option2.descriptionMarkdownActionHandler;\n        this.selectionDetailsPane.appendChild(this.renderDescriptionMarkdown(description, actionHandler));\n      } else {\n        this.selectionDetailsPane.textContent = description;\n      }\n      this.selectionDetailsPane.style.display = \"block\";\n    } else {\n      this.selectionDetailsPane.style.display = \"none\";\n    }\n    this._skipLayout = true;\n    this.contextViewProvider.layout();\n    this._skipLayout = false;\n  }\n  // List keyboard controller\n  // List exit - active - hide ContextView dropdown, reset selection, return focus to parent select\n  onEscape(e) {\n    EventHelper.stop(e);\n    this.select(this._currentSelection);\n    this.hideSelectDropDown(true);\n  }\n  // List exit - active - hide ContextView dropdown, return focus to parent select, fire onDidSelect if change\n  onEnter(e) {\n    EventHelper.stop(e);\n    if (this.selected !== this._currentSelection) {\n      this._currentSelection = this.selected;\n      this._onDidSelect.fire({\n        index: this.selectElement.selectedIndex,\n        selected: this.options[this.selected].text\n      });\n      if (!!this.options[this.selected] \u0026\u0026 !!this.options[this.selected].text) {\n        this.setTitle(this.options[this.selected].text);\n      }\n    }\n    this.hideSelectDropDown(true);\n  }\n  // List navigation - have to handle a disabled option (jump over)\n  onDownArrow(e) {\n    if (this.selected \u003c this.options.length - 1) {\n      EventHelper.stop(e, true);\n      const nextOptionDisabled = this.options[this.selected + 1].isDisabled;\n      if (nextOptionDisabled \u0026\u0026 this.options.length \u003e this.selected + 2) {\n        this.selected += 2;\n      } else if (nextOptionDisabled) {\n        return;\n      } else {\n        this.selected++;\n      }\n      this.select(this.selected);\n      this.selectList.setFocus([this.selected]);\n      this.selectList.reveal(this.selectList.getFocus()[0]);\n    }\n  }\n  onUpArrow(e) {\n    if (this.selected \u003e 0) {\n      EventHelper.stop(e, true);\n      const previousOptionDisabled = this.options[this.selected - 1].isDisabled;\n      if (previousOptionDisabled \u0026\u0026 this.selected \u003e 1) {\n        this.selected -= 2;\n      } else {\n        this.selected--;\n      }\n      this.select(this.selected);\n      this.selectList.setFocus([this.selected]);\n      this.selectList.reveal(this.selectList.getFocus()[0]);\n    }\n  }\n  onPageUp(e) {\n    EventHelper.stop(e);\n    this.selectList.focusPreviousPage();\n    setTimeout(() =\u003e {\n      this.selected = this.selectList.getFocus()[0];\n      if (this.options[this.selected].isDisabled \u0026\u0026 this.selected \u003c this.options.length - 1) {\n        this.selected++;\n        this.selectList.setFocus([this.selected]);\n      }\n      this.selectList.reveal(this.selected);\n      this.select(this.selected);\n    }, 1);\n  }\n  onPageDown(e) {\n    EventHelper.stop(e);\n    this.selectList.focusNextPage();\n    setTimeout(() =\u003e {\n      this.selected = this.selectList.getFocus()[0];\n      if (this.options[this.selected].isDisabled \u0026\u0026 this.selected \u003e 0) {\n        this.selected--;\n        this.selectList.setFocus([this.selected]);\n      }\n      this.selectList.reveal(this.selected);\n      this.select(this.selected);\n    }, 1);\n  }\n  onHome(e) {\n    EventHelper.stop(e);\n    if (this.options.length \u003c 2) {\n      return;\n    }\n    this.selected = 0;\n    if (this.options[this.selected].isDisabled \u0026\u0026 this.selected \u003e 1) {\n      this.selected++;\n    }\n    this.selectList.setFocus([this.selected]);\n    this.selectList.reveal(this.selected);\n    this.select(this.selected);\n  }\n  onEnd(e) {\n    EventHelper.stop(e);\n    if (this.options.length \u003c 2) {\n      return;\n    }\n    this.selected = this.options.length - 1;\n    if (this.options[this.selected].isDisabled \u0026\u0026 this.selected \u003e 1) {\n      this.selected--;\n    }\n    this.selectList.setFocus([this.selected]);\n    this.selectList.reveal(this.selected);\n    this.select(this.selected);\n  }\n  // Mimic option first character navigation of native select\n  onCharacter(e) {\n    const ch = KeyCodeUtils.toString(e.keyCode);\n    let optionIndex = -1;\n    for (let i2 = 0; i2 \u003c this.options.length - 1; i2++) {\n      optionIndex = (i2 + this.selected + 1) % this.options.length;\n      if (this.options[optionIndex].text.charAt(0).toUpperCase() === ch \u0026\u0026 !this.options[optionIndex].isDisabled) {\n        this.select(optionIndex);\n        this.selectList.setFocus([optionIndex]);\n        this.selectList.reveal(this.selectList.getFocus()[0]);\n        EventHelper.stop(e);\n        break;\n      }\n    }\n  }\n  dispose() {\n    this.hideSelectDropDown(false);\n    super.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/selectBox/selectBoxNative.js\ninit_dom();\ninit_arrays();\ninit_event();\ninit_lifecycle();\ninit_platform();\nvar SelectBoxNative = class extends Disposable {\n  constructor(options2, selected, styles, selectBoxOptions) {\n    super();\n    this.selected = 0;\n    this.selectBoxOptions = selectBoxOptions || /* @__PURE__ */ Object.create(null);\n    this.options = [];\n    this.selectElement = document.createElement(\"select\");\n    this.selectElement.className = \"monaco-select-box\";\n    if (typeof this.selectBoxOptions.ariaLabel === \"string\") {\n      this.selectElement.setAttribute(\"aria-label\", this.selectBoxOptions.ariaLabel);\n    }\n    if (typeof this.selectBoxOptions.ariaDescription === \"string\") {\n      this.selectElement.setAttribute(\"aria-description\", this.selectBoxOptions.ariaDescription);\n    }\n    this._onDidSelect = this._register(new Emitter());\n    this.styles = styles;\n    this.registerListeners();\n    this.setOptions(options2, selected);\n  }\n  registerListeners() {\n    this._register(Gesture.addTarget(this.selectElement));\n    [EventType2.Tap].forEach((eventType) =\u003e {\n      this._register(addDisposableListener(this.selectElement, eventType, (e) =\u003e {\n        this.selectElement.focus();\n      }));\n    });\n    this._register(addStandardDisposableListener(this.selectElement, \"click\", (e) =\u003e {\n      EventHelper.stop(e, true);\n    }));\n    this._register(addStandardDisposableListener(this.selectElement, \"change\", (e) =\u003e {\n      this.selectElement.title = e.target.value;\n      this._onDidSelect.fire({\n        index: e.target.selectedIndex,\n        selected: e.target.value\n      });\n    }));\n    this._register(addStandardDisposableListener(this.selectElement, \"keydown\", (e) =\u003e {\n      let showSelect = false;\n      if (isMacintosh) {\n        if (e.keyCode === 18 || e.keyCode === 16 || e.keyCode === 10) {\n          showSelect = true;\n        }\n      } else {\n        if (e.keyCode === 18 \u0026\u0026 e.altKey || e.keyCode === 10 || e.keyCode === 3) {\n          showSelect = true;\n        }\n      }\n      if (showSelect) {\n        e.stopPropagation();\n      }\n    }));\n  }\n  get onDidSelect() {\n    return this._onDidSelect.event;\n  }\n  setOptions(options2, selected) {\n    if (!this.options || !equals(this.options, options2)) {\n      this.options = options2;\n      this.selectElement.options.length = 0;\n      this.options.forEach((option2, index) =\u003e {\n        this.selectElement.add(this.createOption(option2.text, index, option2.isDisabled));\n      });\n    }\n    if (selected !== void 0) {\n      this.select(selected);\n    }\n  }\n  select(index) {\n    if (this.options.length === 0) {\n      this.selected = 0;\n    } else if (index \u003e= 0 \u0026\u0026 index \u003c this.options.length) {\n      this.selected = index;\n    } else if (index \u003e this.options.length - 1) {\n      this.select(this.options.length - 1);\n    } else if (this.selected \u003c 0) {\n      this.selected = 0;\n    }\n    this.selectElement.selectedIndex = this.selected;\n    if (this.selected \u003c this.options.length \u0026\u0026 typeof this.options[this.selected].text === \"string\") {\n      this.selectElement.title = this.options[this.selected].text;\n    } else {\n      this.selectElement.title = \"\";\n    }\n  }\n  focus() {\n    if (this.selectElement) {\n      this.selectElement.tabIndex = 0;\n      this.selectElement.focus();\n    }\n  }\n  blur() {\n    if (this.selectElement) {\n      this.selectElement.tabIndex = -1;\n      this.selectElement.blur();\n    }\n  }\n  setFocusable(focusable) {\n    this.selectElement.tabIndex = focusable ? 0 : -1;\n  }\n  render(container) {\n    container.classList.add(\"select-container\");\n    container.appendChild(this.selectElement);\n    this.setOptions(this.options, this.selected);\n    this.applyStyles();\n  }\n  applyStyles() {\n    if (this.selectElement) {\n      this.selectElement.style.backgroundColor = this.styles.selectBackground ?? \"\";\n      this.selectElement.style.color = this.styles.selectForeground ?? \"\";\n      this.selectElement.style.borderColor = this.styles.selectBorder ?? \"\";\n    }\n  }\n  createOption(value, index, disabled) {\n    const option2 = document.createElement(\"option\");\n    option2.value = value;\n    option2.text = value;\n    option2.disabled = !!disabled;\n    return option2;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/selectBox/selectBox.js\nvar SelectBox = class extends Widget {\n  constructor(options2, selected, contextViewProvider, styles, selectBoxOptions) {\n    super();\n    if (isMacintosh \u0026\u0026 !selectBoxOptions?.useCustomDrawn) {\n      this.selectBoxDelegate = new SelectBoxNative(options2, selected, styles, selectBoxOptions);\n    } else {\n      this.selectBoxDelegate = new SelectBoxList(options2, selected, contextViewProvider, styles, selectBoxOptions);\n    }\n    this._register(this.selectBoxDelegate);\n  }\n  // Public SelectBox Methods - routed through delegate interface\n  get onDidSelect() {\n    return this.selectBoxDelegate.onDidSelect;\n  }\n  setOptions(options2, selected) {\n    this.selectBoxDelegate.setOptions(options2, selected);\n  }\n  select(index) {\n    this.selectBoxDelegate.select(index);\n  }\n  focus() {\n    this.selectBoxDelegate.focus();\n  }\n  blur() {\n    this.selectBoxDelegate.blur();\n  }\n  setFocusable(focusable) {\n    this.selectBoxDelegate.setFocusable(focusable);\n  }\n  render(container) {\n    this.selectBoxDelegate.render(container);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/actionbar/actionViewItems.js\ninit_actions();\ninit_lifecycle();\ninit_platform();\ninit_types();\ninit_nls();\nvar BaseActionViewItem = class extends Disposable {\n  get action() {\n    return this._action;\n  }\n  constructor(context, action, options2 = {}) {\n    super();\n    this.options = options2;\n    this._context = context || this;\n    this._action = action;\n    if (action instanceof Action) {\n      this._register(action.onDidChange((event) =\u003e {\n        if (!this.element) {\n          return;\n        }\n        this.handleActionChangeEvent(event);\n      }));\n    }\n  }\n  handleActionChangeEvent(event) {\n    if (event.enabled !== void 0) {\n      this.updateEnabled();\n    }\n    if (event.checked !== void 0) {\n      this.updateChecked();\n    }\n    if (event.class !== void 0) {\n      this.updateClass();\n    }\n    if (event.label !== void 0) {\n      this.updateLabel();\n      this.updateTooltip();\n    }\n    if (event.tooltip !== void 0) {\n      this.updateTooltip();\n    }\n  }\n  get actionRunner() {\n    if (!this._actionRunner) {\n      this._actionRunner = this._register(new ActionRunner());\n    }\n    return this._actionRunner;\n  }\n  set actionRunner(actionRunner) {\n    this._actionRunner = actionRunner;\n  }\n  isEnabled() {\n    return this._action.enabled;\n  }\n  setActionContext(newContext) {\n    this._context = newContext;\n  }\n  render(container) {\n    const element = this.element = container;\n    this._register(Gesture.addTarget(container));\n    const enableDragging = this.options \u0026\u0026 this.options.draggable;\n    if (enableDragging) {\n      container.draggable = true;\n      if (isFirefox) {\n        this._register(addDisposableListener(container, EventType.DRAG_START, (e) =\u003e e.dataTransfer?.setData(DataTransfers.TEXT, this._action.label)));\n      }\n    }\n    this._register(addDisposableListener(element, EventType2.Tap, (e) =\u003e this.onClick(e, true)));\n    this._register(addDisposableListener(element, EventType.MOUSE_DOWN, (e) =\u003e {\n      if (!enableDragging) {\n        EventHelper.stop(e, true);\n      }\n      if (this._action.enabled \u0026\u0026 e.button === 0) {\n        element.classList.add(\"active\");\n      }\n    }));\n    if (isMacintosh) {\n      this._register(addDisposableListener(element, EventType.CONTEXT_MENU, (e) =\u003e {\n        if (e.button === 0 \u0026\u0026 e.ctrlKey === true) {\n          this.onClick(e);\n        }\n      }));\n    }\n    this._register(addDisposableListener(element, EventType.CLICK, (e) =\u003e {\n      EventHelper.stop(e, true);\n      if (!(this.options \u0026\u0026 this.options.isMenu)) {\n        this.onClick(e);\n      }\n    }));\n    this._register(addDisposableListener(element, EventType.DBLCLICK, (e) =\u003e {\n      EventHelper.stop(e, true);\n    }));\n    [EventType.MOUSE_UP, EventType.MOUSE_OUT].forEach((event) =\u003e {\n      this._register(addDisposableListener(element, event, (e) =\u003e {\n        EventHelper.stop(e);\n        element.classList.remove(\"active\");\n      }));\n    });\n  }\n  onClick(event, preserveFocus = false) {\n    EventHelper.stop(event, true);\n    const context = isUndefinedOrNull(this._context) ? this.options?.useEventAsContext ? event : { preserveFocus } : this._context;\n    this.actionRunner.run(this._action, context);\n  }\n  // Only set the tabIndex on the element once it is about to get focused\n  // That way this element wont be a tab stop when it is not needed #106441\n  focus() {\n    if (this.element) {\n      this.element.tabIndex = 0;\n      this.element.focus();\n      this.element.classList.add(\"focused\");\n    }\n  }\n  blur() {\n    if (this.element) {\n      this.element.blur();\n      this.element.tabIndex = -1;\n      this.element.classList.remove(\"focused\");\n    }\n  }\n  setFocusable(focusable) {\n    if (this.element) {\n      this.element.tabIndex = focusable ? 0 : -1;\n    }\n  }\n  get trapsArrowNavigation() {\n    return false;\n  }\n  updateEnabled() {\n  }\n  updateLabel() {\n  }\n  getClass() {\n    return this.action.class;\n  }\n  getTooltip() {\n    return this.action.tooltip;\n  }\n  getHoverContents() {\n    return this.getTooltip();\n  }\n  updateTooltip() {\n    if (!this.element) {\n      return;\n    }\n    const title = this.getHoverContents() ?? \"\";\n    this.updateAriaLabel();\n    if (!this.customHover \u0026\u0026 title !== \"\") {\n      const hoverDelegate = this.options.hoverDelegate ?? getDefaultHoverDelegate(\"element\");\n      this.customHover = this._store.add(getBaseLayerHoverDelegate().setupManagedHover(hoverDelegate, this.element, title));\n    } else if (this.customHover) {\n      this.customHover.update(title);\n    }\n  }\n  updateAriaLabel() {\n    if (this.element) {\n      const title = this.getTooltip() ?? \"\";\n      this.element.setAttribute(\"aria-label\", title);\n    }\n  }\n  updateClass() {\n  }\n  updateChecked() {\n  }\n  dispose() {\n    if (this.element) {\n      this.element.remove();\n      this.element = void 0;\n    }\n    this._context = void 0;\n    super.dispose();\n  }\n};\nvar ActionViewItem = class extends BaseActionViewItem {\n  constructor(context, action, options2) {\n    options2 = {\n      ...options2,\n      icon: options2.icon !== void 0 ? options2.icon : false,\n      label: options2.label !== void 0 ? options2.label : true\n    };\n    super(context, action, options2);\n    this.options = options2;\n    this.cssClass = \"\";\n  }\n  render(container) {\n    super.render(container);\n    assertType(this.element);\n    const label = document.createElement(\"a\");\n    label.classList.add(\"action-label\");\n    label.setAttribute(\"role\", this.getDefaultAriaRole());\n    this.label = label;\n    this.element.appendChild(label);\n    if (this.options.label \u0026\u0026 this.options.keybinding \u0026\u0026 !this.options.keybindingNotRenderedWithLabel) {\n      const kbLabel = document.createElement(\"span\");\n      kbLabel.classList.add(\"keybinding\");\n      kbLabel.textContent = this.options.keybinding;\n      this.element.appendChild(kbLabel);\n    }\n    this.updateClass();\n    this.updateLabel();\n    this.updateTooltip();\n    this.updateEnabled();\n    this.updateChecked();\n  }\n  getDefaultAriaRole() {\n    if (this._action.id === Separator.ID) {\n      return \"presentation\";\n    } else {\n      if (this.options.isMenu) {\n        return \"menuitem\";\n      } else if (this.options.isTabList) {\n        return \"tab\";\n      } else {\n        return \"button\";\n      }\n    }\n  }\n  // Only set the tabIndex on the element once it is about to get focused\n  // That way this element wont be a tab stop when it is not needed #106441\n  focus() {\n    if (this.label) {\n      this.label.tabIndex = 0;\n      this.label.focus();\n    }\n  }\n  blur() {\n    if (this.label) {\n      this.label.tabIndex = -1;\n    }\n  }\n  setFocusable(focusable) {\n    if (this.label) {\n      this.label.tabIndex = focusable ? 0 : -1;\n    }\n  }\n  updateLabel() {\n    if (this.options.label \u0026\u0026 this.label) {\n      this.label.textContent = this.action.label;\n    }\n  }\n  getTooltip() {\n    let title = null;\n    if (this.action.tooltip) {\n      title = this.action.tooltip;\n    } else if (this.action.label) {\n      title = this.action.label;\n      if (this.options.keybinding) {\n        title = localize(0, \"{0} ({1})\", title, this.options.keybinding);\n      }\n    }\n    return title ?? void 0;\n  }\n  updateClass() {\n    if (this.cssClass \u0026\u0026 this.label) {\n      this.label.classList.remove(...this.cssClass.split(\" \"));\n    }\n    if (this.options.icon) {\n      this.cssClass = this.getClass();\n      if (this.label) {\n        this.label.classList.add(\"codicon\");\n        if (this.cssClass) {\n          this.label.classList.add(...this.cssClass.split(\" \"));\n        }\n      }\n      this.updateEnabled();\n    } else {\n      this.label?.classList.remove(\"codicon\");\n    }\n  }\n  updateEnabled() {\n    if (this.action.enabled) {\n      if (this.label) {\n        this.label.removeAttribute(\"aria-disabled\");\n        this.label.classList.remove(\"disabled\");\n      }\n      this.element?.classList.remove(\"disabled\");\n    } else {\n      if (this.label) {\n        this.label.setAttribute(\"aria-disabled\", \"true\");\n        this.label.classList.add(\"disabled\");\n      }\n      this.element?.classList.add(\"disabled\");\n    }\n  }\n  updateAriaLabel() {\n    if (this.label) {\n      const title = this.getTooltip() ?? \"\";\n      this.label.setAttribute(\"aria-label\", title);\n    }\n  }\n  updateChecked() {\n    if (this.label) {\n      if (this.action.checked !== void 0) {\n        this.label.classList.toggle(\"checked\", this.action.checked);\n        if (this.options.isTabList) {\n          this.label.setAttribute(\"aria-selected\", this.action.checked ? \"true\" : \"false\");\n        } else {\n          this.label.setAttribute(\"aria-checked\", this.action.checked ? \"true\" : \"false\");\n          this.label.setAttribute(\"role\", \"checkbox\");\n        }\n      } else {\n        this.label.classList.remove(\"checked\");\n        this.label.removeAttribute(this.options.isTabList ? \"aria-selected\" : \"aria-checked\");\n        this.label.setAttribute(\"role\", this.getDefaultAriaRole());\n      }\n    }\n  }\n};\nvar SelectActionViewItem = class extends BaseActionViewItem {\n  constructor(ctx, action, options2, selected, contextViewProvider, styles, selectBoxOptions) {\n    super(ctx, action);\n    this.selectBox = new SelectBox(options2, selected, contextViewProvider, styles, selectBoxOptions);\n    this.selectBox.setFocusable(false);\n    this._register(this.selectBox);\n    this.registerListeners();\n  }\n  select(index) {\n    this.selectBox.select(index);\n  }\n  registerListeners() {\n    this._register(this.selectBox.onDidSelect((e) =\u003e this.runAction(e.selected, e.index)));\n  }\n  runAction(option2, index) {\n    this.actionRunner.run(this._action, this.getActionContext(option2, index));\n  }\n  getActionContext(option2, index) {\n    return option2;\n  }\n  setFocusable(focusable) {\n    this.selectBox.setFocusable(focusable);\n  }\n  focus() {\n    this.selectBox?.focus();\n  }\n  blur() {\n    this.selectBox?.blur();\n  }\n  render(container) {\n    this.selectBox.render(container);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/actionbar/actionbar.js\ninit_actions();\ninit_event();\ninit_lifecycle();\ninit_types();\nvar ActionBar = class extends Disposable {\n  get onDidBlur() {\n    return this._onDidBlur.event;\n  }\n  get onDidCancel() {\n    return this._onDidCancel.event;\n  }\n  get onDidRun() {\n    return this._onDidRun.event;\n  }\n  get onWillRun() {\n    return this._onWillRun.event;\n  }\n  constructor(container, options2 = {}) {\n    super();\n    this._actionRunnerDisposables = this._register(new DisposableStore());\n    this.viewItemDisposables = this._register(new DisposableMap());\n    this.triggerKeyDown = false;\n    this.focusable = true;\n    this._onDidBlur = this._register(new Emitter());\n    this._onDidCancel = this._register(new Emitter({ onWillAddFirstListener: () =\u003e this.cancelHasListener = true }));\n    this.cancelHasListener = false;\n    this._onDidRun = this._register(new Emitter());\n    this._onWillRun = this._register(new Emitter());\n    this.options = options2;\n    this._context = options2.context ?? null;\n    this._orientation = this.options.orientation ?? 0;\n    this._triggerKeys = {\n      keyDown: this.options.triggerKeys?.keyDown ?? false,\n      keys: this.options.triggerKeys?.keys ?? [\n        3,\n        10\n        /* KeyCode.Space */\n      ]\n    };\n    this._hoverDelegate = options2.hoverDelegate ?? this._register(createInstantHoverDelegate());\n    if (this.options.actionRunner) {\n      this._actionRunner = this.options.actionRunner;\n    } else {\n      this._actionRunner = new ActionRunner();\n      this._actionRunnerDisposables.add(this._actionRunner);\n    }\n    this._actionRunnerDisposables.add(this._actionRunner.onDidRun((e) =\u003e this._onDidRun.fire(e)));\n    this._actionRunnerDisposables.add(this._actionRunner.onWillRun((e) =\u003e this._onWillRun.fire(e)));\n    this.viewItems = [];\n    this.focusedItem = void 0;\n    this.domNode = document.createElement(\"div\");\n    this.domNode.className = \"monaco-action-bar\";\n    let previousKeys;\n    let nextKeys;\n    switch (this._orientation) {\n      case 0:\n        previousKeys = [\n          15\n          /* KeyCode.LeftArrow */\n        ];\n        nextKeys = [\n          17\n          /* KeyCode.RightArrow */\n        ];\n        break;\n      case 1:\n        previousKeys = [\n          16\n          /* KeyCode.UpArrow */\n        ];\n        nextKeys = [\n          18\n          /* KeyCode.DownArrow */\n        ];\n        this.domNode.className += \" vertical\";\n        break;\n    }\n    this._register(addDisposableListener(this.domNode, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      let eventHandled = true;\n      const focusedItem = typeof this.focusedItem === \"number\" ? this.viewItems[this.focusedItem] : void 0;\n      if (previousKeys \u0026\u0026 (event.equals(previousKeys[0]) || event.equals(previousKeys[1]))) {\n        eventHandled = this.focusPrevious();\n      } else if (nextKeys \u0026\u0026 (event.equals(nextKeys[0]) || event.equals(nextKeys[1]))) {\n        eventHandled = this.focusNext();\n      } else if (event.equals(\n        9\n        /* KeyCode.Escape */\n      ) \u0026\u0026 this.cancelHasListener) {\n        this._onDidCancel.fire();\n      } else if (event.equals(\n        14\n        /* KeyCode.Home */\n      )) {\n        eventHandled = this.focusFirst();\n      } else if (event.equals(\n        13\n        /* KeyCode.End */\n      )) {\n        eventHandled = this.focusLast();\n      } else if (event.equals(\n        2\n        /* KeyCode.Tab */\n      ) \u0026\u0026 focusedItem instanceof BaseActionViewItem \u0026\u0026 focusedItem.trapsArrowNavigation) {\n        eventHandled = this.focusNext(void 0, true);\n      } else if (this.isTriggerKeyEvent(event)) {\n        if (this._triggerKeys.keyDown) {\n          this.doTrigger(event);\n        } else {\n          this.triggerKeyDown = true;\n        }\n      } else {\n        eventHandled = false;\n      }\n      if (eventHandled) {\n        event.preventDefault();\n        event.stopPropagation();\n      }\n    }));\n    this._register(addDisposableListener(this.domNode, EventType.KEY_UP, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      if (this.isTriggerKeyEvent(event)) {\n        if (!this._triggerKeys.keyDown \u0026\u0026 this.triggerKeyDown) {\n          this.triggerKeyDown = false;\n          this.doTrigger(event);\n        }\n        event.preventDefault();\n        event.stopPropagation();\n      } else if (event.equals(\n        2\n        /* KeyCode.Tab */\n      ) || event.equals(\n        1024 | 2\n        /* KeyCode.Tab */\n      ) || event.equals(\n        16\n        /* KeyCode.UpArrow */\n      ) || event.equals(\n        18\n        /* KeyCode.DownArrow */\n      ) || event.equals(\n        15\n        /* KeyCode.LeftArrow */\n      ) || event.equals(\n        17\n        /* KeyCode.RightArrow */\n      )) {\n        this.updateFocusedItem();\n      }\n    }));\n    this.focusTracker = this._register(trackFocus(this.domNode));\n    this._register(this.focusTracker.onDidBlur(() =\u003e {\n      if (getActiveElement() === this.domNode || !isAncestor(getActiveElement(), this.domNode)) {\n        this._onDidBlur.fire();\n        this.previouslyFocusedItem = this.focusedItem;\n        this.focusedItem = void 0;\n        this.triggerKeyDown = false;\n      }\n    }));\n    this._register(this.focusTracker.onDidFocus(() =\u003e this.updateFocusedItem()));\n    this.actionsList = document.createElement(\"ul\");\n    this.actionsList.className = \"actions-container\";\n    if (this.options.highlightToggledItems) {\n      this.actionsList.classList.add(\"highlight-toggled\");\n    }\n    this.actionsList.setAttribute(\"role\", this.options.ariaRole || \"toolbar\");\n    if (this.options.ariaLabel) {\n      this.actionsList.setAttribute(\"aria-label\", this.options.ariaLabel);\n    }\n    this.domNode.appendChild(this.actionsList);\n    container.appendChild(this.domNode);\n  }\n  refreshRole() {\n    if (this.length() \u003e= 1) {\n      this.actionsList.setAttribute(\"role\", this.options.ariaRole || \"toolbar\");\n    } else {\n      this.actionsList.setAttribute(\"role\", \"presentation\");\n    }\n  }\n  // Some action bars should not be focusable at times\n  // When an action bar is not focusable make sure to make all the elements inside it not focusable\n  // When an action bar is focusable again, make sure the first item can be focused\n  setFocusable(focusable) {\n    this.focusable = focusable;\n    if (this.focusable) {\n      const firstEnabled = this.viewItems.find((vi) =\u003e vi instanceof BaseActionViewItem \u0026\u0026 vi.isEnabled());\n      if (firstEnabled instanceof BaseActionViewItem) {\n        firstEnabled.setFocusable(true);\n      }\n    } else {\n      this.viewItems.forEach((vi) =\u003e {\n        if (vi instanceof BaseActionViewItem) {\n          vi.setFocusable(false);\n        }\n      });\n    }\n  }\n  isTriggerKeyEvent(event) {\n    let ret = false;\n    this._triggerKeys.keys.forEach((keyCode) =\u003e {\n      ret = ret || event.equals(keyCode);\n    });\n    return ret;\n  }\n  updateFocusedItem() {\n    for (let i2 = 0; i2 \u003c this.actionsList.children.length; i2++) {\n      const elem = this.actionsList.children[i2];\n      if (isAncestor(getActiveElement(), elem)) {\n        this.focusedItem = i2;\n        this.viewItems[this.focusedItem]?.showHover?.();\n        break;\n      }\n    }\n  }\n  get context() {\n    return this._context;\n  }\n  set context(context) {\n    this._context = context;\n    this.viewItems.forEach((i2) =\u003e i2.setActionContext(context));\n  }\n  get actionRunner() {\n    return this._actionRunner;\n  }\n  set actionRunner(actionRunner) {\n    this._actionRunner = actionRunner;\n    this._actionRunnerDisposables.clear();\n    this._actionRunnerDisposables.add(this._actionRunner.onDidRun((e) =\u003e this._onDidRun.fire(e)));\n    this._actionRunnerDisposables.add(this._actionRunner.onWillRun((e) =\u003e this._onWillRun.fire(e)));\n    this.viewItems.forEach((item) =\u003e item.actionRunner = actionRunner);\n  }\n  getContainer() {\n    return this.domNode;\n  }\n  getAction(indexOrElement) {\n    if (typeof indexOrElement === \"number\") {\n      return this.viewItems[indexOrElement]?.action;\n    }\n    if (isHTMLElement(indexOrElement)) {\n      while (indexOrElement.parentElement !== this.actionsList) {\n        if (!indexOrElement.parentElement) {\n          return void 0;\n        }\n        indexOrElement = indexOrElement.parentElement;\n      }\n      for (let i2 = 0; i2 \u003c this.actionsList.childNodes.length; i2++) {\n        if (this.actionsList.childNodes[i2] === indexOrElement) {\n          return this.viewItems[i2].action;\n        }\n      }\n    }\n    return void 0;\n  }\n  push(arg, options2 = {}) {\n    const actions = Array.isArray(arg) ? arg : [arg];\n    let index = isNumber(options2.index) ? options2.index : null;\n    actions.forEach((action) =\u003e {\n      const actionViewItemElement = document.createElement(\"li\");\n      actionViewItemElement.className = \"action-item\";\n      actionViewItemElement.setAttribute(\"role\", \"presentation\");\n      let item;\n      const viewItemOptions = { hoverDelegate: this._hoverDelegate, ...options2, isTabList: this.options.ariaRole === \"tablist\" };\n      if (this.options.actionViewItemProvider) {\n        item = this.options.actionViewItemProvider(action, viewItemOptions);\n      }\n      if (!item) {\n        item = new ActionViewItem(this.context, action, viewItemOptions);\n      }\n      if (!this.options.allowContextMenu) {\n        this.viewItemDisposables.set(item, addDisposableListener(actionViewItemElement, EventType.CONTEXT_MENU, (e) =\u003e {\n          EventHelper.stop(e, true);\n        }));\n      }\n      item.actionRunner = this._actionRunner;\n      item.setActionContext(this.context);\n      item.render(actionViewItemElement);\n      if (index === null || index \u003c 0 || index \u003e= this.actionsList.children.length) {\n        this.actionsList.appendChild(actionViewItemElement);\n        this.viewItems.push(item);\n      } else {\n        this.actionsList.insertBefore(actionViewItemElement, this.actionsList.children[index]);\n        this.viewItems.splice(index, 0, item);\n        index++;\n      }\n    });\n    if (this.focusable) {\n      let didFocus = false;\n      for (const item of this.viewItems) {\n        if (!(item instanceof BaseActionViewItem)) {\n          continue;\n        }\n        let focus;\n        if (didFocus) {\n          focus = false;\n        } else if (item.action.id === Separator.ID) {\n          focus = false;\n        } else if (!item.isEnabled() \u0026\u0026 this.options.focusOnlyEnabledItems) {\n          focus = false;\n        } else {\n          focus = true;\n        }\n        if (focus) {\n          item.setFocusable(true);\n          didFocus = true;\n        } else {\n          item.setFocusable(false);\n        }\n      }\n    }\n    if (typeof this.focusedItem === \"number\") {\n      this.focus(this.focusedItem);\n    }\n    this.refreshRole();\n  }\n  clear() {\n    if (this.isEmpty()) {\n      return;\n    }\n    this.viewItems = dispose(this.viewItems);\n    this.viewItemDisposables.clearAndDisposeAll();\n    clearNode(this.actionsList);\n    this.refreshRole();\n  }\n  length() {\n    return this.viewItems.length;\n  }\n  isEmpty() {\n    return this.viewItems.length === 0;\n  }\n  focus(arg) {\n    let selectFirst = false;\n    let index = void 0;\n    if (arg === void 0) {\n      selectFirst = true;\n    } else if (typeof arg === \"number\") {\n      index = arg;\n    } else if (typeof arg === \"boolean\") {\n      selectFirst = arg;\n    }\n    if (selectFirst \u0026\u0026 typeof this.focusedItem === \"undefined\") {\n      const firstEnabled = this.viewItems.findIndex((item) =\u003e item.isEnabled());\n      this.focusedItem = firstEnabled === -1 ? void 0 : firstEnabled;\n      this.updateFocus(void 0, void 0, true);\n    } else {\n      if (index !== void 0) {\n        this.focusedItem = index;\n      }\n      this.updateFocus(void 0, void 0, true);\n    }\n  }\n  focusFirst() {\n    this.focusedItem = this.length() - 1;\n    return this.focusNext(true);\n  }\n  focusLast() {\n    this.focusedItem = 0;\n    return this.focusPrevious(true);\n  }\n  focusNext(forceLoop, forceFocus) {\n    if (typeof this.focusedItem === \"undefined\") {\n      this.focusedItem = this.viewItems.length - 1;\n    } else if (this.viewItems.length \u003c= 1) {\n      return false;\n    }\n    const startIndex = this.focusedItem;\n    let item;\n    do {\n      if (!forceLoop \u0026\u0026 this.options.preventLoopNavigation \u0026\u0026 this.focusedItem + 1 \u003e= this.viewItems.length) {\n        this.focusedItem = startIndex;\n        return false;\n      }\n      this.focusedItem = (this.focusedItem + 1) % this.viewItems.length;\n      item = this.viewItems[this.focusedItem];\n    } while (this.focusedItem !== startIndex \u0026\u0026 (this.options.focusOnlyEnabledItems \u0026\u0026 !item.isEnabled() || item.action.id === Separator.ID));\n    this.updateFocus(void 0, void 0, forceFocus);\n    return true;\n  }\n  focusPrevious(forceLoop) {\n    if (typeof this.focusedItem === \"undefined\") {\n      this.focusedItem = 0;\n    } else if (this.viewItems.length \u003c= 1) {\n      return false;\n    }\n    const startIndex = this.focusedItem;\n    let item;\n    do {\n      this.focusedItem = this.focusedItem - 1;\n      if (this.focusedItem \u003c 0) {\n        if (!forceLoop \u0026\u0026 this.options.preventLoopNavigation) {\n          this.focusedItem = startIndex;\n          return false;\n        }\n        this.focusedItem = this.viewItems.length - 1;\n      }\n      item = this.viewItems[this.focusedItem];\n    } while (this.focusedItem !== startIndex \u0026\u0026 (this.options.focusOnlyEnabledItems \u0026\u0026 !item.isEnabled() || item.action.id === Separator.ID));\n    this.updateFocus(true);\n    return true;\n  }\n  updateFocus(fromRight, preventScroll, forceFocus = false) {\n    if (typeof this.focusedItem === \"undefined\") {\n      this.actionsList.focus({ preventScroll });\n    }\n    if (this.previouslyFocusedItem !== void 0 \u0026\u0026 this.previouslyFocusedItem !== this.focusedItem) {\n      this.viewItems[this.previouslyFocusedItem]?.blur();\n    }\n    const actionViewItem = this.focusedItem !== void 0 ? this.viewItems[this.focusedItem] : void 0;\n    if (actionViewItem) {\n      let focusItem = true;\n      if (!isFunction(actionViewItem.focus)) {\n        focusItem = false;\n      }\n      if (this.options.focusOnlyEnabledItems \u0026\u0026 isFunction(actionViewItem.isEnabled) \u0026\u0026 !actionViewItem.isEnabled()) {\n        focusItem = false;\n      }\n      if (actionViewItem.action.id === Separator.ID) {\n        focusItem = false;\n      }\n      if (!focusItem) {\n        this.actionsList.focus({ preventScroll });\n        this.previouslyFocusedItem = void 0;\n      } else if (forceFocus || this.previouslyFocusedItem !== this.focusedItem) {\n        actionViewItem.focus(fromRight);\n        this.previouslyFocusedItem = this.focusedItem;\n      }\n      if (focusItem) {\n        actionViewItem.showHover?.();\n      }\n    }\n  }\n  doTrigger(event) {\n    if (typeof this.focusedItem === \"undefined\") {\n      return;\n    }\n    const actionViewItem = this.viewItems[this.focusedItem];\n    if (actionViewItem instanceof BaseActionViewItem) {\n      const context = actionViewItem._context === null || actionViewItem._context === void 0 ? event : actionViewItem._context;\n      this.run(actionViewItem._action, context);\n    }\n  }\n  async run(action, context) {\n    await this._actionRunner.run(action, context);\n  }\n  dispose() {\n    this._context = void 0;\n    this.viewItems = dispose(this.viewItems);\n    this.getContainer().remove();\n    super.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js\ninit_arrays();\ninit_codicons();\ninit_lifecycle();\ninit_observable();\ninit_themables();\ninit_utils5();\ninit_lineRange();\ninit_offsetRange();\ninit_position();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/rangeMapping.js\ninit_arrays();\ninit_assert();\ninit_errors();\ninit_lineRange();\ninit_position();\ninit_range();\nvar LineRangeMapping = class _LineRangeMapping {\n  static inverse(mapping, originalLineCount, modifiedLineCount) {\n    const result = [];\n    let lastOriginalEndLineNumber = 1;\n    let lastModifiedEndLineNumber = 1;\n    for (const m of mapping) {\n      const r2 = new _LineRangeMapping(new LineRange(lastOriginalEndLineNumber, m.original.startLineNumber), new LineRange(lastModifiedEndLineNumber, m.modified.startLineNumber));\n      if (!r2.modified.isEmpty) {\n        result.push(r2);\n      }\n      lastOriginalEndLineNumber = m.original.endLineNumberExclusive;\n      lastModifiedEndLineNumber = m.modified.endLineNumberExclusive;\n    }\n    const r = new _LineRangeMapping(new LineRange(lastOriginalEndLineNumber, originalLineCount + 1), new LineRange(lastModifiedEndLineNumber, modifiedLineCount + 1));\n    if (!r.modified.isEmpty) {\n      result.push(r);\n    }\n    return result;\n  }\n  static clip(mapping, originalRange, modifiedRange) {\n    const result = [];\n    for (const m of mapping) {\n      const original = m.original.intersect(originalRange);\n      const modified = m.modified.intersect(modifiedRange);\n      if (original \u0026\u0026 !original.isEmpty \u0026\u0026 modified \u0026\u0026 !modified.isEmpty) {\n        result.push(new _LineRangeMapping(original, modified));\n      }\n    }\n    return result;\n  }\n  constructor(originalRange, modifiedRange) {\n    this.original = originalRange;\n    this.modified = modifiedRange;\n  }\n  toString() {\n    return `{${this.original.toString()}-\u003e${this.modified.toString()}}`;\n  }\n  flip() {\n    return new _LineRangeMapping(this.modified, this.original);\n  }\n  join(other) {\n    return new _LineRangeMapping(this.original.join(other.original), this.modified.join(other.modified));\n  }\n  /**\n   * This method assumes that the LineRangeMapping describes a valid diff!\n   * I.e. if one range is empty, the other range cannot be the entire document.\n   * It avoids various problems when the line range points to non-existing line-numbers.\n  */\n  toRangeMapping() {\n    const origInclusiveRange = this.original.toInclusiveRange();\n    const modInclusiveRange = this.modified.toInclusiveRange();\n    if (origInclusiveRange \u0026\u0026 modInclusiveRange) {\n      return new RangeMapping(origInclusiveRange, modInclusiveRange);\n    } else if (this.original.startLineNumber === 1 || this.modified.startLineNumber === 1) {\n      if (!(this.modified.startLineNumber === 1 \u0026\u0026 this.original.startLineNumber === 1)) {\n        throw new BugIndicatingError(\"not a valid diff\");\n      }\n      return new RangeMapping(new Range(this.original.startLineNumber, 1, this.original.endLineNumberExclusive, 1), new Range(this.modified.startLineNumber, 1, this.modified.endLineNumberExclusive, 1));\n    } else {\n      return new RangeMapping(new Range(this.original.startLineNumber - 1, Number.MAX_SAFE_INTEGER, this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), new Range(this.modified.startLineNumber - 1, Number.MAX_SAFE_INTEGER, this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER));\n    }\n  }\n  /**\n   * This method assumes that the LineRangeMapping describes a valid diff!\n   * I.e. if one range is empty, the other range cannot be the entire document.\n   * It avoids various problems when the line range points to non-existing line-numbers.\n  */\n  toRangeMapping2(original, modified) {\n    if (isValidLineNumber(this.original.endLineNumberExclusive, original) \u0026\u0026 isValidLineNumber(this.modified.endLineNumberExclusive, modified)) {\n      return new RangeMapping(new Range(this.original.startLineNumber, 1, this.original.endLineNumberExclusive, 1), new Range(this.modified.startLineNumber, 1, this.modified.endLineNumberExclusive, 1));\n    }\n    if (!this.original.isEmpty \u0026\u0026 !this.modified.isEmpty) {\n      return new RangeMapping(Range.fromPositions(new Position(this.original.startLineNumber, 1), normalizePosition(new Position(this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), original)), Range.fromPositions(new Position(this.modified.startLineNumber, 1), normalizePosition(new Position(this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), modified)));\n    }\n    if (this.original.startLineNumber \u003e 1 \u0026\u0026 this.modified.startLineNumber \u003e 1) {\n      return new RangeMapping(Range.fromPositions(normalizePosition(new Position(this.original.startLineNumber - 1, Number.MAX_SAFE_INTEGER), original), normalizePosition(new Position(this.original.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), original)), Range.fromPositions(normalizePosition(new Position(this.modified.startLineNumber - 1, Number.MAX_SAFE_INTEGER), modified), normalizePosition(new Position(this.modified.endLineNumberExclusive - 1, Number.MAX_SAFE_INTEGER), modified)));\n    }\n    throw new BugIndicatingError();\n  }\n};\nfunction normalizePosition(position, content) {\n  if (position.lineNumber \u003c 1) {\n    return new Position(1, 1);\n  }\n  if (position.lineNumber \u003e content.length) {\n    return new Position(content.length, content[content.length - 1].length + 1);\n  }\n  const line = content[position.lineNumber - 1];\n  if (position.column \u003e line.length + 1) {\n    return new Position(position.lineNumber, line.length + 1);\n  }\n  return position;\n}\nfunction isValidLineNumber(lineNumber, lines) {\n  return lineNumber \u003e= 1 \u0026\u0026 lineNumber \u003c= lines.length;\n}\nvar DetailedLineRangeMapping = class _DetailedLineRangeMapping extends LineRangeMapping {\n  static fromRangeMappings(rangeMappings) {\n    const originalRange = LineRange.join(rangeMappings.map((r) =\u003e LineRange.fromRangeInclusive(r.originalRange)));\n    const modifiedRange = LineRange.join(rangeMappings.map((r) =\u003e LineRange.fromRangeInclusive(r.modifiedRange)));\n    return new _DetailedLineRangeMapping(originalRange, modifiedRange, rangeMappings);\n  }\n  constructor(originalRange, modifiedRange, innerChanges) {\n    super(originalRange, modifiedRange);\n    this.innerChanges = innerChanges;\n  }\n  flip() {\n    return new _DetailedLineRangeMapping(this.modified, this.original, this.innerChanges?.map((c) =\u003e c.flip()));\n  }\n  withInnerChangesFromLineRanges() {\n    return new _DetailedLineRangeMapping(this.original, this.modified, [this.toRangeMapping()]);\n  }\n};\nvar RangeMapping = class _RangeMapping {\n  static fromEdit(edit2) {\n    const newRanges = edit2.getNewRanges();\n    const result = edit2.replacements.map((e, idx) =\u003e new _RangeMapping(e.range, newRanges[idx]));\n    return result;\n  }\n  static assertSorted(rangeMappings) {\n    for (let i2 = 1; i2 \u003c rangeMappings.length; i2++) {\n      const previous = rangeMappings[i2 - 1];\n      const current = rangeMappings[i2];\n      if (!(previous.originalRange.getEndPosition().isBeforeOrEqual(current.originalRange.getStartPosition()) \u0026\u0026 previous.modifiedRange.getEndPosition().isBeforeOrEqual(current.modifiedRange.getStartPosition()))) {\n        throw new BugIndicatingError(\"Range mappings must be sorted\");\n      }\n    }\n  }\n  constructor(originalRange, modifiedRange) {\n    this.originalRange = originalRange;\n    this.modifiedRange = modifiedRange;\n  }\n  toString() {\n    return `{${this.originalRange.toString()}-\u003e${this.modifiedRange.toString()}}`;\n  }\n  flip() {\n    return new _RangeMapping(this.modifiedRange, this.originalRange);\n  }\n  /**\n   * Creates a single text edit that describes the change from the original to the modified text.\n  */\n  toTextEdit(modified) {\n    const newText = modified.getValueOfRange(this.modifiedRange);\n    return new TextReplacement(this.originalRange, newText);\n  }\n};\nfunction lineRangeMappingFromRangeMappings(alignments, originalLines, modifiedLines, dontAssertStartLine = false) {\n  const changes = [];\n  for (const g of groupAdjacentBy(alignments.map((a) =\u003e getLineRangeMapping(a, originalLines, modifiedLines)), (a1, a2) =\u003e a1.original.intersectsOrTouches(a2.original) || a1.modified.intersectsOrTouches(a2.modified))) {\n    const first2 = g[0];\n    const last = g[g.length - 1];\n    changes.push(new DetailedLineRangeMapping(first2.original.join(last.original), first2.modified.join(last.modified), g.map((a) =\u003e a.innerChanges[0])));\n  }\n  assertFn(() =\u003e {\n    if (!dontAssertStartLine \u0026\u0026 changes.length \u003e 0) {\n      if (changes[0].modified.startLineNumber !== changes[0].original.startLineNumber) {\n        return false;\n      }\n      if (modifiedLines.length.lineCount - changes[changes.length - 1].modified.endLineNumberExclusive !== originalLines.length.lineCount - changes[changes.length - 1].original.endLineNumberExclusive) {\n        return false;\n      }\n    }\n    return checkAdjacentItems(changes, (m1, m2) =\u003e m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive \u0026\u0026 // There has to be an unchanged line in between (otherwise both diffs should have been joined)\n    m1.original.endLineNumberExclusive \u003c m2.original.startLineNumber \u0026\u0026 m1.modified.endLineNumberExclusive \u003c m2.modified.startLineNumber);\n  });\n  return changes;\n}\nfunction getLineRangeMapping(rangeMapping, originalLines, modifiedLines) {\n  let lineStartDelta = 0;\n  let lineEndDelta = 0;\n  if (rangeMapping.modifiedRange.endColumn === 1 \u0026\u0026 rangeMapping.originalRange.endColumn === 1 \u0026\u0026 rangeMapping.originalRange.startLineNumber + lineStartDelta \u003c= rangeMapping.originalRange.endLineNumber \u0026\u0026 rangeMapping.modifiedRange.startLineNumber + lineStartDelta \u003c= rangeMapping.modifiedRange.endLineNumber) {\n    lineEndDelta = -1;\n  }\n  if (rangeMapping.modifiedRange.startColumn - 1 \u003e= modifiedLines.getLineLength(rangeMapping.modifiedRange.startLineNumber) \u0026\u0026 rangeMapping.originalRange.startColumn - 1 \u003e= originalLines.getLineLength(rangeMapping.originalRange.startLineNumber) \u0026\u0026 rangeMapping.originalRange.startLineNumber \u003c= rangeMapping.originalRange.endLineNumber + lineEndDelta \u0026\u0026 rangeMapping.modifiedRange.startLineNumber \u003c= rangeMapping.modifiedRange.endLineNumber + lineEndDelta) {\n    lineStartDelta = 1;\n  }\n  const originalLineRange = new LineRange(rangeMapping.originalRange.startLineNumber + lineStartDelta, rangeMapping.originalRange.endLineNumber + 1 + lineEndDelta);\n  const modifiedLineRange = new LineRange(rangeMapping.modifiedRange.startLineNumber + lineStartDelta, rangeMapping.modifiedRange.endLineNumber + 1 + lineEndDelta);\n  return new DetailedLineRangeMapping(originalLineRange, modifiedLineRange, [rangeMapping]);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js\ninit_language();\ninit_lineTokens();\ninit_nls();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/common/iconRegistry.js\ninit_async();\ninit_codicons();\ninit_codiconsUtil();\ninit_themables();\ninit_event();\ninit_types();\ninit_uri();\ninit_nls();\ninit_jsonContributionRegistry();\ninit_platform2();\ninit_lifecycle();\nvar Extensions8 = {\n  IconContribution: \"base.contributions.icons\"\n};\nvar IconContribution;\n(function(IconContribution2) {\n  function getDefinition(contribution, registry) {\n    let definition = contribution.defaults;\n    while (ThemeIcon.isThemeIcon(definition)) {\n      const c = iconRegistry.getIcon(definition.id);\n      if (!c) {\n        return void 0;\n      }\n      definition = c.defaults;\n    }\n    return definition;\n  }\n  IconContribution2.getDefinition = getDefinition;\n})(IconContribution || (IconContribution = {}));\nvar IconFontDefinition;\n(function(IconFontDefinition2) {\n  function toJSONObject(iconFont) {\n    return {\n      weight: iconFont.weight,\n      style: iconFont.style,\n      src: iconFont.src.map((s) =\u003e ({ format: s.format, location: s.location.toString() }))\n    };\n  }\n  IconFontDefinition2.toJSONObject = toJSONObject;\n  function fromJSONObject(json) {\n    const stringOrUndef = (s) =\u003e isString(s) ? s : void 0;\n    if (json \u0026\u0026 Array.isArray(json.src) \u0026\u0026 json.src.every((s) =\u003e isString(s.format) \u0026\u0026 isString(s.location))) {\n      return {\n        weight: stringOrUndef(json.weight),\n        style: stringOrUndef(json.style),\n        src: json.src.map((s) =\u003e ({ format: s.format, location: URI.parse(s.location) }))\n      };\n    }\n    return void 0;\n  }\n  IconFontDefinition2.fromJSONObject = fromJSONObject;\n})(IconFontDefinition || (IconFontDefinition = {}));\nvar fontIdRegex = /^([\\w_-]+)$/;\nvar fontIdErrorMessage = localize(2002, \"The font ID must only contain letters, numbers, underscores and dashes.\");\nvar IconRegistry = class extends Disposable {\n  constructor() {\n    super();\n    this._onDidChange = this._register(new Emitter());\n    this.onDidChange = this._onDidChange.event;\n    this.iconSchema = {\n      definitions: {\n        icons: {\n          type: \"object\",\n          properties: {\n            fontId: { type: \"string\", description: localize(2003, \"The id of the font to use. If not set, the font that is defined first is used.\"), pattern: fontIdRegex.source, patternErrorMessage: fontIdErrorMessage },\n            fontCharacter: { type: \"string\", description: localize(2004, \"The font character associated with the icon definition.\") }\n          },\n          additionalProperties: false,\n          defaultSnippets: [{ body: { fontCharacter: \"\\\\\\\\e030\" } }]\n        }\n      },\n      type: \"object\",\n      properties: {}\n    };\n    this.iconReferenceSchema = { type: \"string\", pattern: `^${ThemeIcon.iconNameExpression}$`, enum: [], enumDescriptions: [] };\n    this.iconsById = {};\n    this.iconFontsById = {};\n  }\n  registerIcon(id, defaults, description, deprecationMessage) {\n    const existing = this.iconsById[id];\n    if (existing) {\n      if (description \u0026\u0026 !existing.description) {\n        existing.description = description;\n        this.iconSchema.properties[id].markdownDescription = `${description} $(${id})`;\n        const enumIndex = this.iconReferenceSchema.enum.indexOf(id);\n        if (enumIndex !== -1) {\n          this.iconReferenceSchema.enumDescriptions[enumIndex] = description;\n        }\n        this._onDidChange.fire();\n      }\n      return existing;\n    }\n    const iconContribution = { id, description, defaults, deprecationMessage };\n    this.iconsById[id] = iconContribution;\n    const propertySchema = { $ref: \"#/definitions/icons\" };\n    if (deprecationMessage) {\n      propertySchema.deprecationMessage = deprecationMessage;\n    }\n    if (description) {\n      propertySchema.markdownDescription = `${description}: $(${id})`;\n    }\n    this.iconSchema.properties[id] = propertySchema;\n    this.iconReferenceSchema.enum.push(id);\n    this.iconReferenceSchema.enumDescriptions.push(description || \"\");\n    this._onDidChange.fire();\n    return { id };\n  }\n  getIcons() {\n    return Object.keys(this.iconsById).map((id) =\u003e this.iconsById[id]);\n  }\n  getIcon(id) {\n    return this.iconsById[id];\n  }\n  getIconSchema() {\n    return this.iconSchema;\n  }\n  toString() {\n    const sorter2 = (i1, i2) =\u003e {\n      return i1.id.localeCompare(i2.id);\n    };\n    const classNames2 = (i2) =\u003e {\n      while (ThemeIcon.isThemeIcon(i2.defaults)) {\n        i2 = this.iconsById[i2.defaults.id];\n      }\n      return `codicon codicon-${i2 ? i2.id : \"\"}`;\n    };\n    const reference = [];\n    reference.push(`| preview     | identifier                        | default codicon ID                | description`);\n    reference.push(`| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |`);\n    const contributions = Object.keys(this.iconsById).map((key) =\u003e this.iconsById[key]);\n    for (const i2 of contributions.filter((i3) =\u003e !!i3.description).sort(sorter2)) {\n      reference.push(`|\u003ci class=\"${classNames2(i2)}\"\u003e\u003c/i\u003e|${i2.id}|${ThemeIcon.isThemeIcon(i2.defaults) ? i2.defaults.id : i2.id}|${i2.description || \"\"}|`);\n    }\n    reference.push(`| preview     | identifier                        `);\n    reference.push(`| ----------- | --------------------------------- |`);\n    for (const i2 of contributions.filter((i3) =\u003e !ThemeIcon.isThemeIcon(i3.defaults)).sort(sorter2)) {\n      reference.push(`|\u003ci class=\"${classNames2(i2)}\"\u003e\u003c/i\u003e|${i2.id}|`);\n    }\n    return reference.join(\"\\n\");\n  }\n};\nvar iconRegistry = new IconRegistry();\nRegistry.add(Extensions8.IconContribution, iconRegistry);\nfunction registerIcon(id, defaults, description, deprecationMessage) {\n  return iconRegistry.registerIcon(id, defaults, description, deprecationMessage);\n}\nfunction getIconRegistry() {\n  return iconRegistry;\n}\nfunction initialize() {\n  const codiconFontCharacters = getCodiconFontCharacters();\n  for (const icon in codiconFontCharacters) {\n    const fontCharacter = \"\\\\\" + codiconFontCharacters[icon].toString(16);\n    iconRegistry.registerIcon(icon, { fontCharacter });\n  }\n}\ninitialize();\nvar iconsSchemaId = \"vscode://schemas/icons\";\nvar schemaRegistry2 = Registry.as(Extensions3.JSONContribution);\nschemaRegistry2.registerSchema(iconsSchemaId, iconRegistry.getIconSchema());\nvar delayer2 = new RunOnceScheduler(() =\u003e schemaRegistry2.notifySchemaChanged(iconsSchemaId), 200);\niconRegistry.onDidChange(() =\u003e {\n  if (!delayer2.isScheduled()) {\n    delayer2.schedule();\n  }\n});\nvar widgetClose = registerIcon(\"widget-close\", Codicon.close, localize(2005, \"Icon for the close action in widgets.\"));\nvar gotoPreviousLocation = registerIcon(\"goto-previous-location\", Codicon.arrowUp, localize(2006, \"Icon for goto previous editor location.\"));\nvar gotoNextLocation = registerIcon(\"goto-next-location\", Codicon.arrowDown, localize(2007, \"Icon for goto next editor location.\"));\nvar syncing = ThemeIcon.modify(Codicon.sync, \"spin\");\nvar spinningLoading = ThemeIcon.modify(Codicon.loading, \"spin\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js\ninit_actions();\nvar __decorate29 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param25 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar accessibleDiffViewerInsertIcon = registerIcon(\"diff-review-insert\", Codicon.add, localize(94, \"Icon for 'Insert' in accessible diff viewer.\"));\nvar accessibleDiffViewerRemoveIcon = registerIcon(\"diff-review-remove\", Codicon.remove, localize(95, \"Icon for 'Remove' in accessible diff viewer.\"));\nvar accessibleDiffViewerCloseIcon = registerIcon(\"diff-review-close\", Codicon.close, localize(96, \"Icon for 'Close' in accessible diff viewer.\"));\nvar AccessibleDiffViewer = class AccessibleDiffViewer2 extends Disposable {\n  static {\n    this._ttPolicy = createTrustedTypesPolicy(\"diffReview\", { createHTML: (value) =\u003e value });\n  }\n  constructor(_parentNode, _visible, _setVisible, _canClose, _width, _height, _diffs, _models, _instantiationService) {\n    super();\n    this._parentNode = _parentNode;\n    this._visible = _visible;\n    this._setVisible = _setVisible;\n    this._canClose = _canClose;\n    this._width = _width;\n    this._height = _height;\n    this._diffs = _diffs;\n    this._models = _models;\n    this._instantiationService = _instantiationService;\n    this._state = derived(this, (reader) =\u003e {\n      const visible = this._visible.read(reader);\n      this._parentNode.style.visibility = visible ? \"visible\" : \"hidden\";\n      if (!visible) {\n        return null;\n      }\n      const model = reader.store.add(this._instantiationService.createInstance(ViewModel2, this._diffs, this._models, this._setVisible, this._canClose));\n      const view = reader.store.add(this._instantiationService.createInstance(View3, this._parentNode, model, this._width, this._height, this._models));\n      return { model, view };\n    }).recomputeInitiallyAndOnChange(this._store);\n  }\n  next() {\n    transaction((tx) =\u003e {\n      const isVisible = this._visible.get();\n      this._setVisible(true, tx);\n      if (isVisible) {\n        this._state.get().model.nextGroup(tx);\n      }\n    });\n  }\n  prev() {\n    transaction((tx) =\u003e {\n      this._setVisible(true, tx);\n      this._state.get().model.previousGroup(tx);\n    });\n  }\n  close() {\n    transaction((tx) =\u003e {\n      this._setVisible(false, tx);\n    });\n  }\n};\nAccessibleDiffViewer = __decorate29([\n  __param25(8, IInstantiationService)\n], AccessibleDiffViewer);\nvar ViewModel2 = class ViewModel3 extends Disposable {\n  constructor(_diffs, _models, _setVisible, canClose, _accessibilitySignalService) {\n    super();\n    this._diffs = _diffs;\n    this._models = _models;\n    this._setVisible = _setVisible;\n    this.canClose = canClose;\n    this._accessibilitySignalService = _accessibilitySignalService;\n    this._groups = observableValue(this, []);\n    this._currentGroupIdx = observableValue(this, 0);\n    this._currentElementIdx = observableValue(this, 0);\n    this.groups = this._groups;\n    this.currentGroup = this._currentGroupIdx.map((idx, r) =\u003e this._groups.read(r)[idx]);\n    this.currentGroupIndex = this._currentGroupIdx;\n    this.currentElement = this._currentElementIdx.map((idx, r) =\u003e this.currentGroup.read(r)?.lines[idx]);\n    this._register(autorun((reader) =\u003e {\n      const diffs = this._diffs.read(reader);\n      if (!diffs) {\n        this._groups.set([], void 0);\n        return;\n      }\n      const groups = computeViewElementGroups(diffs, this._models.getOriginalModel().getLineCount(), this._models.getModifiedModel().getLineCount());\n      transaction((tx) =\u003e {\n        const p = this._models.getModifiedPosition();\n        if (p) {\n          const nextGroup = groups.findIndex((g) =\u003e p?.lineNumber \u003c g.range.modified.endLineNumberExclusive);\n          if (nextGroup !== -1) {\n            this._currentGroupIdx.set(nextGroup, tx);\n          }\n        }\n        this._groups.set(groups, tx);\n      });\n    }));\n    this._register(autorun((reader) =\u003e {\n      const currentViewItem = this.currentElement.read(reader);\n      if (currentViewItem?.type === LineType.Deleted) {\n        this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted, { source: \"accessibleDiffViewer.currentElementChanged\" });\n      } else if (currentViewItem?.type === LineType.Added) {\n        this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted, { source: \"accessibleDiffViewer.currentElementChanged\" });\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      const currentViewItem = this.currentElement.read(reader);\n      if (currentViewItem \u0026\u0026 currentViewItem.type !== LineType.Header) {\n        const lineNumber = currentViewItem.modifiedLineNumber ?? currentViewItem.diff.modified.startLineNumber;\n        this._models.modifiedSetSelection(Range.fromPositions(new Position(lineNumber, 1)));\n      }\n    }));\n  }\n  _goToGroupDelta(delta, tx) {\n    const groups = this.groups.get();\n    if (!groups || groups.length \u003c= 1) {\n      return;\n    }\n    subtransaction(tx, (tx2) =\u003e {\n      this._currentGroupIdx.set(OffsetRange.ofLength(groups.length).clipCyclic(this._currentGroupIdx.get() + delta), tx2);\n      this._currentElementIdx.set(0, tx2);\n    });\n  }\n  nextGroup(tx) {\n    this._goToGroupDelta(1, tx);\n  }\n  previousGroup(tx) {\n    this._goToGroupDelta(-1, tx);\n  }\n  _goToLineDelta(delta) {\n    const group = this.currentGroup.get();\n    if (!group || group.lines.length \u003c= 1) {\n      return;\n    }\n    transaction((tx) =\u003e {\n      this._currentElementIdx.set(OffsetRange.ofLength(group.lines.length).clip(this._currentElementIdx.get() + delta), tx);\n    });\n  }\n  goToNextLine() {\n    this._goToLineDelta(1);\n  }\n  goToPreviousLine() {\n    this._goToLineDelta(-1);\n  }\n  goToLine(line) {\n    const group = this.currentGroup.get();\n    if (!group) {\n      return;\n    }\n    const idx = group.lines.indexOf(line);\n    if (idx === -1) {\n      return;\n    }\n    transaction((tx) =\u003e {\n      this._currentElementIdx.set(idx, tx);\n    });\n  }\n  revealCurrentElementInEditor() {\n    if (!this.canClose.get()) {\n      return;\n    }\n    this._setVisible(false, void 0);\n    const curElem = this.currentElement.get();\n    if (curElem) {\n      if (curElem.type === LineType.Deleted) {\n        this._models.originalReveal(Range.fromPositions(new Position(curElem.originalLineNumber, 1)));\n      } else {\n        this._models.modifiedReveal(curElem.type !== LineType.Header ? Range.fromPositions(new Position(curElem.modifiedLineNumber, 1)) : void 0);\n      }\n    }\n  }\n  close() {\n    if (!this.canClose.get()) {\n      return;\n    }\n    this._setVisible(false, void 0);\n    this._models.modifiedFocus();\n  }\n};\nViewModel2 = __decorate29([\n  __param25(4, IAccessibilitySignalService)\n], ViewModel2);\nvar viewElementGroupLineMargin = 3;\nfunction computeViewElementGroups(diffs, originalLineCount, modifiedLineCount) {\n  const result = [];\n  for (const g of groupAdjacentBy(diffs, (a, b) =\u003e b.modified.startLineNumber - a.modified.endLineNumberExclusive \u003c 2 * viewElementGroupLineMargin)) {\n    const viewElements = [];\n    viewElements.push(new HeaderViewElement());\n    const origFullRange = new LineRange(Math.max(1, g[0].original.startLineNumber - viewElementGroupLineMargin), Math.min(g[g.length - 1].original.endLineNumberExclusive + viewElementGroupLineMargin, originalLineCount + 1));\n    const modifiedFullRange = new LineRange(Math.max(1, g[0].modified.startLineNumber - viewElementGroupLineMargin), Math.min(g[g.length - 1].modified.endLineNumberExclusive + viewElementGroupLineMargin, modifiedLineCount + 1));\n    forEachAdjacent(g, (a, b) =\u003e {\n      const origRange = new LineRange(a ? a.original.endLineNumberExclusive : origFullRange.startLineNumber, b ? b.original.startLineNumber : origFullRange.endLineNumberExclusive);\n      const modifiedRange2 = new LineRange(a ? a.modified.endLineNumberExclusive : modifiedFullRange.startLineNumber, b ? b.modified.startLineNumber : modifiedFullRange.endLineNumberExclusive);\n      origRange.forEach((origLineNumber) =\u003e {\n        viewElements.push(new UnchangedLineViewElement(origLineNumber, modifiedRange2.startLineNumber + (origLineNumber - origRange.startLineNumber)));\n      });\n      if (b) {\n        b.original.forEach((origLineNumber) =\u003e {\n          viewElements.push(new DeletedLineViewElement(b, origLineNumber));\n        });\n        b.modified.forEach((modifiedLineNumber) =\u003e {\n          viewElements.push(new AddedLineViewElement(b, modifiedLineNumber));\n        });\n      }\n    });\n    const modifiedRange = g[0].modified.join(g[g.length - 1].modified);\n    const originalRange = g[0].original.join(g[g.length - 1].original);\n    result.push(new ViewElementGroup(new LineRangeMapping(modifiedRange, originalRange), viewElements));\n  }\n  return result;\n}\nvar LineType;\n(function(LineType2) {\n  LineType2[LineType2[\"Header\"] = 0] = \"Header\";\n  LineType2[LineType2[\"Unchanged\"] = 1] = \"Unchanged\";\n  LineType2[LineType2[\"Deleted\"] = 2] = \"Deleted\";\n  LineType2[LineType2[\"Added\"] = 3] = \"Added\";\n})(LineType || (LineType = {}));\nvar ViewElementGroup = class {\n  constructor(range2, lines) {\n    this.range = range2;\n    this.lines = lines;\n  }\n};\nvar HeaderViewElement = class {\n  constructor() {\n    this.type = LineType.Header;\n  }\n};\nvar DeletedLineViewElement = class {\n  constructor(diff, originalLineNumber) {\n    this.diff = diff;\n    this.originalLineNumber = originalLineNumber;\n    this.type = LineType.Deleted;\n    this.modifiedLineNumber = void 0;\n  }\n};\nvar AddedLineViewElement = class {\n  constructor(diff, modifiedLineNumber) {\n    this.diff = diff;\n    this.modifiedLineNumber = modifiedLineNumber;\n    this.type = LineType.Added;\n    this.originalLineNumber = void 0;\n  }\n};\nvar UnchangedLineViewElement = class {\n  constructor(originalLineNumber, modifiedLineNumber) {\n    this.originalLineNumber = originalLineNumber;\n    this.modifiedLineNumber = modifiedLineNumber;\n    this.type = LineType.Unchanged;\n  }\n};\nvar View3 = class View4 extends Disposable {\n  constructor(_element, _model, _width, _height, _models, _languageService) {\n    super();\n    this._element = _element;\n    this._model = _model;\n    this._width = _width;\n    this._height = _height;\n    this._models = _models;\n    this._languageService = _languageService;\n    this.domNode = this._element;\n    this.domNode.className = \"monaco-component diff-review monaco-editor-background\";\n    const actionBarContainer = document.createElement(\"div\");\n    actionBarContainer.className = \"diff-review-actions\";\n    this._actionBar = this._register(new ActionBar(actionBarContainer));\n    this._register(autorun((reader) =\u003e {\n      this._actionBar.clear();\n      if (this._model.canClose.read(reader)) {\n        this._actionBar.push(toAction({\n          id: \"diffreview.close\",\n          label: localize(97, \"Close\"),\n          class: \"close-diff-review \" + ThemeIcon.asClassName(accessibleDiffViewerCloseIcon),\n          enabled: true,\n          run: async () =\u003e _model.close()\n        }), { label: false, icon: true });\n      }\n    }));\n    this._content = document.createElement(\"div\");\n    this._content.className = \"diff-review-content\";\n    this._content.setAttribute(\"role\", \"code\");\n    this._scrollbar = this._register(new DomScrollableElement(this._content, {}));\n    reset(this.domNode, this._scrollbar.getDomNode(), actionBarContainer);\n    this._register(autorun((r) =\u003e {\n      this._height.read(r);\n      this._width.read(r);\n      this._scrollbar.scanDomNode();\n    }));\n    this._register(toDisposable(() =\u003e {\n      reset(this.domNode);\n    }));\n    this._register(applyStyle(this.domNode, { width: this._width, height: this._height }));\n    this._register(applyStyle(this._content, { width: this._width, height: this._height }));\n    this._register(autorunWithStore((reader, store) =\u003e {\n      this._model.currentGroup.read(reader);\n      this._render(store);\n    }));\n    this._register(addStandardDisposableListener(this.domNode, \"keydown\", (e) =\u003e {\n      if (e.equals(\n        18\n        /* KeyCode.DownArrow */\n      ) || e.equals(\n        2048 | 18\n        /* KeyCode.DownArrow */\n      ) || e.equals(\n        512 | 18\n        /* KeyCode.DownArrow */\n      )) {\n        e.preventDefault();\n        this._model.goToNextLine();\n      }\n      if (e.equals(\n        16\n        /* KeyCode.UpArrow */\n      ) || e.equals(\n        2048 | 16\n        /* KeyCode.UpArrow */\n      ) || e.equals(\n        512 | 16\n        /* KeyCode.UpArrow */\n      )) {\n        e.preventDefault();\n        this._model.goToPreviousLine();\n      }\n      if (e.equals(\n        9\n        /* KeyCode.Escape */\n      ) || e.equals(\n        2048 | 9\n        /* KeyCode.Escape */\n      ) || e.equals(\n        512 | 9\n        /* KeyCode.Escape */\n      ) || e.equals(\n        1024 | 9\n        /* KeyCode.Escape */\n      )) {\n        e.preventDefault();\n        this._model.close();\n      }\n      if (e.equals(\n        10\n        /* KeyCode.Space */\n      ) || e.equals(\n        3\n        /* KeyCode.Enter */\n      )) {\n        e.preventDefault();\n        this._model.revealCurrentElementInEditor();\n      }\n    }));\n  }\n  _render(store) {\n    const originalOptions = this._models.getOriginalOptions();\n    const modifiedOptions = this._models.getModifiedOptions();\n    const container = document.createElement(\"div\");\n    container.className = \"diff-review-table\";\n    container.setAttribute(\"role\", \"list\");\n    container.setAttribute(\"aria-label\", localize(98, \"Accessible Diff Viewer. Use arrow up and down to navigate.\"));\n    applyFontInfo(container, modifiedOptions.get(\n      59\n      /* EditorOption.fontInfo */\n    ));\n    reset(this._content, container);\n    const originalModel = this._models.getOriginalModel();\n    const modifiedModel = this._models.getModifiedModel();\n    if (!originalModel || !modifiedModel) {\n      return;\n    }\n    const originalModelOpts = originalModel.getOptions();\n    const modifiedModelOpts = modifiedModel.getOptions();\n    const lineHeight = modifiedOptions.get(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const group = this._model.currentGroup.get();\n    for (const viewItem of group?.lines || []) {\n      if (!group) {\n        break;\n      }\n      let row;\n      if (viewItem.type === LineType.Header) {\n        const header2 = document.createElement(\"div\");\n        header2.className = \"diff-review-row\";\n        header2.setAttribute(\"role\", \"listitem\");\n        const r = group.range;\n        const diffIndex = this._model.currentGroupIndex.get();\n        const diffsLength = this._model.groups.get().length;\n        const getAriaLines = (lines) =\u003e lines === 0 ? localize(99, \"no lines changed\") : lines === 1 ? localize(100, \"1 line changed\") : localize(101, \"{0} lines changed\", lines);\n        const originalChangedLinesCntAria = getAriaLines(r.original.length);\n        const modifiedChangedLinesCntAria = getAriaLines(r.modified.length);\n        header2.setAttribute(\"aria-label\", localize(102, \"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}\", diffIndex + 1, diffsLength, r.original.startLineNumber, originalChangedLinesCntAria, r.modified.startLineNumber, modifiedChangedLinesCntAria));\n        const cell = document.createElement(\"div\");\n        cell.className = \"diff-review-cell diff-review-summary\";\n        cell.appendChild(document.createTextNode(`${diffIndex + 1}/${diffsLength}: @@ -${r.original.startLineNumber},${r.original.length} +${r.modified.startLineNumber},${r.modified.length} @@`));\n        header2.appendChild(cell);\n        row = header2;\n      } else {\n        row = this._createRow(viewItem, lineHeight, this._width.get(), originalOptions, originalModel, originalModelOpts, modifiedOptions, modifiedModel, modifiedModelOpts);\n      }\n      container.appendChild(row);\n      const isSelectedObs = derived((reader) =\u003e (\n        /** @description isSelected */\n        this._model.currentElement.read(reader) === viewItem\n      ));\n      store.add(autorun((reader) =\u003e {\n        const isSelected = isSelectedObs.read(reader);\n        row.tabIndex = isSelected ? 0 : -1;\n        if (isSelected) {\n          row.focus();\n        }\n      }));\n      store.add(addDisposableListener(row, \"focus\", () =\u003e {\n        this._model.goToLine(viewItem);\n      }));\n    }\n    this._scrollbar.scanDomNode();\n  }\n  _createRow(item, lineHeight, width2, originalOptions, originalModel, originalModelOpts, modifiedOptions, modifiedModel, modifiedModelOpts) {\n    const originalLayoutInfo = originalOptions.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const originalLineNumbersWidth = originalLayoutInfo.glyphMarginWidth + originalLayoutInfo.lineNumbersWidth;\n    const modifiedLayoutInfo = modifiedOptions.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    const modifiedLineNumbersWidth = 10 + modifiedLayoutInfo.glyphMarginWidth + modifiedLayoutInfo.lineNumbersWidth;\n    let rowClassName = \"diff-review-row\";\n    let lineNumbersExtraClassName = \"\";\n    const spacerClassName = \"diff-review-spacer\";\n    let spacerIcon = null;\n    switch (item.type) {\n      case LineType.Added:\n        rowClassName = \"diff-review-row line-insert\";\n        lineNumbersExtraClassName = \" char-insert\";\n        spacerIcon = accessibleDiffViewerInsertIcon;\n        break;\n      case LineType.Deleted:\n        rowClassName = \"diff-review-row line-delete\";\n        lineNumbersExtraClassName = \" char-delete\";\n        spacerIcon = accessibleDiffViewerRemoveIcon;\n        break;\n    }\n    const row = document.createElement(\"div\");\n    row.style.minWidth = width2 + \"px\";\n    row.className = rowClassName;\n    row.setAttribute(\"role\", \"listitem\");\n    row.ariaLevel = \"\";\n    const cell = document.createElement(\"div\");\n    cell.className = \"diff-review-cell\";\n    cell.style.height = `${lineHeight}px`;\n    row.appendChild(cell);\n    const originalLineNumber = document.createElement(\"span\");\n    originalLineNumber.style.width = originalLineNumbersWidth + \"px\";\n    originalLineNumber.style.minWidth = originalLineNumbersWidth + \"px\";\n    originalLineNumber.className = \"diff-review-line-number\" + lineNumbersExtraClassName;\n    if (item.originalLineNumber !== void 0) {\n      originalLineNumber.appendChild(document.createTextNode(String(item.originalLineNumber)));\n    } else {\n      originalLineNumber.innerText = \"\\xA0\";\n    }\n    cell.appendChild(originalLineNumber);\n    const modifiedLineNumber = document.createElement(\"span\");\n    modifiedLineNumber.style.width = modifiedLineNumbersWidth + \"px\";\n    modifiedLineNumber.style.minWidth = modifiedLineNumbersWidth + \"px\";\n    modifiedLineNumber.style.paddingRight = \"10px\";\n    modifiedLineNumber.className = \"diff-review-line-number\" + lineNumbersExtraClassName;\n    if (item.modifiedLineNumber !== void 0) {\n      modifiedLineNumber.appendChild(document.createTextNode(String(item.modifiedLineNumber)));\n    } else {\n      modifiedLineNumber.innerText = \"\\xA0\";\n    }\n    cell.appendChild(modifiedLineNumber);\n    const spacer = document.createElement(\"span\");\n    spacer.className = spacerClassName;\n    if (spacerIcon) {\n      const spacerCodicon = document.createElement(\"span\");\n      spacerCodicon.className = ThemeIcon.asClassName(spacerIcon);\n      spacerCodicon.innerText = \"\\xA0\\xA0\";\n      spacer.appendChild(spacerCodicon);\n    } else {\n      spacer.innerText = \"\\xA0\\xA0\";\n    }\n    cell.appendChild(spacer);\n    let lineContent;\n    if (item.modifiedLineNumber !== void 0) {\n      let html3 = this._getLineHtml(modifiedModel, modifiedOptions, modifiedModelOpts.tabSize, item.modifiedLineNumber, this._languageService.languageIdCodec);\n      if (AccessibleDiffViewer._ttPolicy) {\n        html3 = AccessibleDiffViewer._ttPolicy.createHTML(html3);\n      }\n      cell.insertAdjacentHTML(\"beforeend\", html3);\n      lineContent = modifiedModel.getLineContent(item.modifiedLineNumber);\n    } else {\n      let html3 = this._getLineHtml(originalModel, originalOptions, originalModelOpts.tabSize, item.originalLineNumber, this._languageService.languageIdCodec);\n      if (AccessibleDiffViewer._ttPolicy) {\n        html3 = AccessibleDiffViewer._ttPolicy.createHTML(html3);\n      }\n      cell.insertAdjacentHTML(\"beforeend\", html3);\n      lineContent = originalModel.getLineContent(item.originalLineNumber);\n    }\n    if (lineContent.length === 0) {\n      lineContent = localize(103, \"blank\");\n    }\n    let ariaLabel = \"\";\n    switch (item.type) {\n      case LineType.Unchanged:\n        if (item.originalLineNumber === item.modifiedLineNumber) {\n          ariaLabel = localize(104, \"{0} unchanged line {1}\", lineContent, item.originalLineNumber);\n        } else {\n          ariaLabel = localize(105, \"{0} original line {1} modified line {2}\", lineContent, item.originalLineNumber, item.modifiedLineNumber);\n        }\n        break;\n      case LineType.Added:\n        ariaLabel = localize(106, \"+ {0} modified line {1}\", lineContent, item.modifiedLineNumber);\n        break;\n      case LineType.Deleted:\n        ariaLabel = localize(107, \"- {0} original line {1}\", lineContent, item.originalLineNumber);\n        break;\n    }\n    row.setAttribute(\"aria-label\", ariaLabel);\n    return row;\n  }\n  _getLineHtml(model, options2, tabSize, lineNumber, languageIdCodec) {\n    const lineContent = model.getLineContent(lineNumber);\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const verticalScrollbarSize = options2.get(\n      116\n      /* EditorOption.scrollbar */\n    ).verticalScrollbarSize;\n    const lineTokens = LineTokens.createEmpty(lineContent, languageIdCodec);\n    const isBasicASCII2 = ViewLineRenderingData.isBasicASCII(lineContent, model.mightContainNonBasicASCII());\n    const containsRTL2 = ViewLineRenderingData.containsRTL(lineContent, isBasicASCII2, model.mightContainRTL());\n    const r = renderViewLine2(new RenderLineInput(fontInfo.isMonospace \u0026\u0026 !options2.get(\n      40\n      /* EditorOption.disableMonospaceOptimizations */\n    ), fontInfo.canUseHalfwidthRightwardsArrow, lineContent, false, isBasicASCII2, containsRTL2, 0, lineTokens, [], tabSize, 0, fontInfo.spaceWidth, fontInfo.middotWidth, fontInfo.wsmiddotWidth, options2.get(\n      132\n      /* EditorOption.stopRenderingLineAfter */\n    ), options2.get(\n      112\n      /* EditorOption.renderWhitespace */\n    ), options2.get(\n      107\n      /* EditorOption.renderControlCharacters */\n    ), options2.get(\n      60\n      /* EditorOption.fontLigatures */\n    ) !== EditorFontLigatures.OFF, null, null, verticalScrollbarSize));\n    return r.html;\n  }\n};\nView3 = __decorate29([\n  __param25(5, ILanguageService)\n], View3);\nvar AccessibleDiffViewerModelFromEditors = class {\n  constructor(editors) {\n    this.editors = editors;\n  }\n  getOriginalModel() {\n    return this.editors.original.getModel();\n  }\n  getOriginalOptions() {\n    return this.editors.original.getOptions();\n  }\n  originalReveal(range2) {\n    this.editors.original.revealRange(range2);\n    this.editors.original.setSelection(range2);\n    this.editors.original.focus();\n  }\n  getModifiedModel() {\n    return this.editors.modified.getModel();\n  }\n  getModifiedOptions() {\n    return this.editors.modified.getOptions();\n  }\n  modifiedReveal(range2) {\n    if (range2) {\n      this.editors.modified.revealRange(range2);\n      this.editors.modified.setSelection(range2);\n    }\n    this.editors.modified.focus();\n  }\n  modifiedSetSelection(range2) {\n    this.editors.modified.setSelection(range2);\n  }\n  modifiedFocus() {\n    this.editors.modified.focus();\n  }\n  getModifiedPosition() {\n    return this.editors.modified.getPosition() ?? void 0;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorDecorations.js\ninit_lifecycle();\ninit_observable();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js\ninit_dom();\ninit_arrays();\ninit_async();\ninit_codicons();\ninit_lifecycle();\ninit_observable();\ninit_themables();\ninit_types();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/registrations.contribution.js\ninit_codicons();\ninit_themables();\ninit_textModel();\ninit_nls();\ninit_colorRegistry();\nvar diffMoveBorder = registerColor(\"diffEditor.move.border\", \"#8b8b8b9c\", localize(134, \"The border color for text that got moved in the diff editor.\"));\nvar diffMoveBorderActive = registerColor(\"diffEditor.moveActive.border\", \"#FFA500\", localize(135, \"The active border color for text that got moved in the diff editor.\"));\nvar diffEditorUnchangedRegionShadow = registerColor(\"diffEditor.unchangedRegionShadow\", { dark: \"#000000\", light: \"#737373BF\", hcDark: \"#000000\", hcLight: \"#737373BF\" }, localize(136, \"The color of the shadow around unchanged region widgets.\"));\nvar diffInsertIcon = registerIcon(\"diff-insert\", Codicon.add, localize(137, \"Line decoration for inserts in the diff editor.\"));\nvar diffRemoveIcon = registerIcon(\"diff-remove\", Codicon.remove, localize(138, \"Line decoration for removals in the diff editor.\"));\nvar diffLineAddDecorationBackgroundWithIndicator = ModelDecorationOptions.register({\n  className: \"line-insert\",\n  description: \"line-insert\",\n  isWholeLine: true,\n  linesDecorationsClassName: \"insert-sign \" + ThemeIcon.asClassName(diffInsertIcon),\n  marginClassName: \"gutter-insert\"\n});\nvar diffLineDeleteDecorationBackgroundWithIndicator = ModelDecorationOptions.register({\n  className: \"line-delete\",\n  description: \"line-delete\",\n  isWholeLine: true,\n  linesDecorationsClassName: \"delete-sign \" + ThemeIcon.asClassName(diffRemoveIcon),\n  marginClassName: \"gutter-delete\"\n});\nvar diffLineAddDecorationBackground = ModelDecorationOptions.register({\n  className: \"line-insert\",\n  description: \"line-insert\",\n  isWholeLine: true,\n  marginClassName: \"gutter-insert\"\n});\nvar diffLineDeleteDecorationBackground = ModelDecorationOptions.register({\n  className: \"line-delete\",\n  description: \"line-delete\",\n  isWholeLine: true,\n  marginClassName: \"gutter-delete\"\n});\nvar diffAddDecoration = ModelDecorationOptions.register({\n  className: \"char-insert\",\n  description: \"char-insert\",\n  shouldFillLineOnLineBreak: true\n});\nvar diffWholeLineAddDecoration = ModelDecorationOptions.register({\n  className: \"char-insert\",\n  description: \"char-insert\",\n  isWholeLine: true\n});\nvar diffAddDecorationEmpty = ModelDecorationOptions.register({\n  className: \"char-insert diff-range-empty\",\n  description: \"char-insert diff-range-empty\"\n});\nvar diffDeleteDecoration = ModelDecorationOptions.register({\n  className: \"char-delete\",\n  description: \"char-delete\",\n  shouldFillLineOnLineBreak: true\n});\nvar diffWholeLineDeleteDecoration = ModelDecorationOptions.register({\n  className: \"char-delete\",\n  description: \"char-delete\",\n  isWholeLine: true\n});\nvar diffDeleteDecorationEmpty = ModelDecorationOptions.register({\n  className: \"char-delete diff-range-empty\",\n  description: \"char-delete diff-range-empty\"\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js\ninit_async();\ninit_cancellation();\ninit_lifecycle();\ninit_observable();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js\ninit_extensions();\ninit_instantiation();\ninit_event();\ninit_stopwatch();\ninit_lineRange();\ninit_editorWorker();\ninit_telemetry();\nvar __decorate30 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param26 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar WorkerBasedDocumentDiffProvider_1;\nvar IDiffProviderFactoryService = createDecorator(\"diffProviderFactoryService\");\nvar WorkerBasedDiffProviderFactoryService = class WorkerBasedDiffProviderFactoryService2 {\n  constructor(instantiationService) {\n    this.instantiationService = instantiationService;\n  }\n  createDiffProvider(options2) {\n    return this.instantiationService.createInstance(WorkerBasedDocumentDiffProvider, options2);\n  }\n};\nWorkerBasedDiffProviderFactoryService = __decorate30([\n  __param26(0, IInstantiationService)\n], WorkerBasedDiffProviderFactoryService);\nregisterSingleton(\n  IDiffProviderFactoryService,\n  WorkerBasedDiffProviderFactoryService,\n  1\n  /* InstantiationType.Delayed */\n);\nvar WorkerBasedDocumentDiffProvider = class WorkerBasedDocumentDiffProvider2 {\n  static {\n    WorkerBasedDocumentDiffProvider_1 = this;\n  }\n  static {\n    this.diffCache = /* @__PURE__ */ new Map();\n  }\n  constructor(options2, editorWorkerService, telemetryService) {\n    this.editorWorkerService = editorWorkerService;\n    this.telemetryService = telemetryService;\n    this.onDidChangeEventEmitter = new Emitter();\n    this.onDidChange = this.onDidChangeEventEmitter.event;\n    this.diffAlgorithm = \"advanced\";\n    this.diffAlgorithmOnDidChangeSubscription = void 0;\n    this.setOptions(options2);\n  }\n  dispose() {\n    this.diffAlgorithmOnDidChangeSubscription?.dispose();\n  }\n  async computeDiff(original, modified, options2, cancellationToken) {\n    if (typeof this.diffAlgorithm !== \"string\") {\n      return this.diffAlgorithm.computeDiff(original, modified, options2, cancellationToken);\n    }\n    if (original.isDisposed() || modified.isDisposed()) {\n      return {\n        changes: [],\n        identical: true,\n        quitEarly: false,\n        moves: []\n      };\n    }\n    if (original.getLineCount() === 1 \u0026\u0026 original.getLineMaxColumn(1) === 1) {\n      if (modified.getLineCount() === 1 \u0026\u0026 modified.getLineMaxColumn(1) === 1) {\n        return {\n          changes: [],\n          identical: true,\n          quitEarly: false,\n          moves: []\n        };\n      }\n      return {\n        changes: [\n          new DetailedLineRangeMapping(new LineRange(1, 2), new LineRange(1, modified.getLineCount() + 1), [\n            new RangeMapping(original.getFullModelRange(), modified.getFullModelRange())\n          ])\n        ],\n        identical: false,\n        quitEarly: false,\n        moves: []\n      };\n    }\n    const uriKey = JSON.stringify([original.uri.toString(), modified.uri.toString()]);\n    const context = JSON.stringify([original.id, modified.id, original.getAlternativeVersionId(), modified.getAlternativeVersionId(), JSON.stringify(options2)]);\n    const c = WorkerBasedDocumentDiffProvider_1.diffCache.get(uriKey);\n    if (c \u0026\u0026 c.context === context) {\n      return c.result;\n    }\n    const sw = StopWatch.create();\n    const result = await this.editorWorkerService.computeDiff(original.uri, modified.uri, options2, this.diffAlgorithm);\n    const timeMs = sw.elapsed();\n    this.telemetryService.publicLog2(\"diffEditor.computeDiff\", {\n      timeMs,\n      timedOut: result?.quitEarly ?? true,\n      detectedMoves: options2.computeMoves ? result?.moves.length ?? 0 : -1\n    });\n    if (cancellationToken.isCancellationRequested) {\n      return {\n        changes: [],\n        identical: false,\n        quitEarly: true,\n        moves: []\n      };\n    }\n    if (!result) {\n      throw new Error(\"no diff result available\");\n    }\n    if (WorkerBasedDocumentDiffProvider_1.diffCache.size \u003e 10) {\n      WorkerBasedDocumentDiffProvider_1.diffCache.delete(WorkerBasedDocumentDiffProvider_1.diffCache.keys().next().value);\n    }\n    WorkerBasedDocumentDiffProvider_1.diffCache.set(uriKey, { result, context });\n    return result;\n  }\n  setOptions(newOptions) {\n    let didChange = false;\n    if (newOptions.diffAlgorithm) {\n      if (this.diffAlgorithm !== newOptions.diffAlgorithm) {\n        this.diffAlgorithmOnDidChangeSubscription?.dispose();\n        this.diffAlgorithmOnDidChangeSubscription = void 0;\n        this.diffAlgorithm = newOptions.diffAlgorithm;\n        if (typeof newOptions.diffAlgorithm !== \"string\") {\n          this.diffAlgorithmOnDidChangeSubscription = newOptions.diffAlgorithm.onDidChange(() =\u003e this.onDidChangeEventEmitter.fire());\n        }\n        didChange = true;\n      }\n    }\n    if (didChange) {\n      this.onDidChangeEventEmitter.fire();\n    }\n  }\n};\nWorkerBasedDocumentDiffProvider = WorkerBasedDocumentDiffProvider_1 = __decorate30([\n  __param26(1, IEditorWorkerService),\n  __param26(2, ITelemetryService)\n], WorkerBasedDocumentDiffProvider);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js\ninit_utils5();\ninit_lineRange();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js\ninit_arrays();\ninit_assert();\ninit_lineRange();\ninit_offsetRange();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/linesDiffComputer.js\nvar LinesDiff = class {\n  constructor(changes, moves, hitTimeout) {\n    this.changes = changes;\n    this.moves = moves;\n    this.hitTimeout = hitTimeout;\n  }\n};\nvar MovedText = class {\n  constructor(lineRangeMapping, changes) {\n    this.lineRangeMapping = lineRangeMapping;\n    this.changes = changes;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.js\ninit_arrays();\ninit_errors();\ninit_offsetRange();\nvar DiffAlgorithmResult = class _DiffAlgorithmResult {\n  static trivial(seq1, seq2) {\n    return new _DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(seq1.length), OffsetRange.ofLength(seq2.length))], false);\n  }\n  static trivialTimedOut(seq1, seq2) {\n    return new _DiffAlgorithmResult([new SequenceDiff(OffsetRange.ofLength(seq1.length), OffsetRange.ofLength(seq2.length))], true);\n  }\n  constructor(diffs, hitTimeout) {\n    this.diffs = diffs;\n    this.hitTimeout = hitTimeout;\n  }\n};\nvar SequenceDiff = class _SequenceDiff {\n  static invert(sequenceDiffs, doc1Length) {\n    const result = [];\n    forEachAdjacent(sequenceDiffs, (a, b) =\u003e {\n      result.push(_SequenceDiff.fromOffsetPairs(a ? a.getEndExclusives() : OffsetPair.zero, b ? b.getStarts() : new OffsetPair(doc1Length, (a ? a.seq2Range.endExclusive - a.seq1Range.endExclusive : 0) + doc1Length)));\n    });\n    return result;\n  }\n  static fromOffsetPairs(start, endExclusive) {\n    return new _SequenceDiff(new OffsetRange(start.offset1, endExclusive.offset1), new OffsetRange(start.offset2, endExclusive.offset2));\n  }\n  static assertSorted(sequenceDiffs) {\n    let last = void 0;\n    for (const cur of sequenceDiffs) {\n      if (last) {\n        if (!(last.seq1Range.endExclusive \u003c= cur.seq1Range.start \u0026\u0026 last.seq2Range.endExclusive \u003c= cur.seq2Range.start)) {\n          throw new BugIndicatingError(\"Sequence diffs must be sorted\");\n        }\n      }\n      last = cur;\n    }\n  }\n  constructor(seq1Range, seq2Range) {\n    this.seq1Range = seq1Range;\n    this.seq2Range = seq2Range;\n  }\n  swap() {\n    return new _SequenceDiff(this.seq2Range, this.seq1Range);\n  }\n  toString() {\n    return `${this.seq1Range} \u003c-\u003e ${this.seq2Range}`;\n  }\n  join(other) {\n    return new _SequenceDiff(this.seq1Range.join(other.seq1Range), this.seq2Range.join(other.seq2Range));\n  }\n  delta(offset) {\n    if (offset === 0) {\n      return this;\n    }\n    return new _SequenceDiff(this.seq1Range.delta(offset), this.seq2Range.delta(offset));\n  }\n  deltaStart(offset) {\n    if (offset === 0) {\n      return this;\n    }\n    return new _SequenceDiff(this.seq1Range.deltaStart(offset), this.seq2Range.deltaStart(offset));\n  }\n  deltaEnd(offset) {\n    if (offset === 0) {\n      return this;\n    }\n    return new _SequenceDiff(this.seq1Range.deltaEnd(offset), this.seq2Range.deltaEnd(offset));\n  }\n  intersect(other) {\n    const i1 = this.seq1Range.intersect(other.seq1Range);\n    const i2 = this.seq2Range.intersect(other.seq2Range);\n    if (!i1 || !i2) {\n      return void 0;\n    }\n    return new _SequenceDiff(i1, i2);\n  }\n  getStarts() {\n    return new OffsetPair(this.seq1Range.start, this.seq2Range.start);\n  }\n  getEndExclusives() {\n    return new OffsetPair(this.seq1Range.endExclusive, this.seq2Range.endExclusive);\n  }\n};\nvar OffsetPair = class _OffsetPair {\n  static {\n    this.zero = new _OffsetPair(0, 0);\n  }\n  static {\n    this.max = new _OffsetPair(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n  }\n  constructor(offset1, offset2) {\n    this.offset1 = offset1;\n    this.offset2 = offset2;\n  }\n  toString() {\n    return `${this.offset1} \u003c-\u003e ${this.offset2}`;\n  }\n  delta(offset) {\n    if (offset === 0) {\n      return this;\n    }\n    return new _OffsetPair(this.offset1 + offset, this.offset2 + offset);\n  }\n  equals(other) {\n    return this.offset1 === other.offset1 \u0026\u0026 this.offset2 === other.offset2;\n  }\n};\nvar InfiniteTimeout = class _InfiniteTimeout {\n  static {\n    this.instance = new _InfiniteTimeout();\n  }\n  isValid() {\n    return true;\n  }\n};\nvar DateTimeout = class {\n  constructor(timeout2) {\n    this.timeout = timeout2;\n    this.startTime = Date.now();\n    this.valid = true;\n    if (timeout2 \u003c= 0) {\n      throw new BugIndicatingError(\"timeout must be positive\");\n    }\n  }\n  // Recommendation: Set a log-point `{this.disable()}` in the body\n  isValid() {\n    const valid = Date.now() - this.startTime \u003c this.timeout;\n    if (!valid \u0026\u0026 this.valid) {\n      this.valid = false;\n    }\n    return this.valid;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.js\ninit_offsetRange();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/utils.js\nvar Array2D = class {\n  constructor(width2, height) {\n    this.width = width2;\n    this.height = height;\n    this.array = [];\n    this.array = new Array(width2 * height);\n  }\n  get(x, y) {\n    return this.array[x + y * this.width];\n  }\n  set(x, y, value) {\n    this.array[x + y * this.width] = value;\n  }\n};\nfunction isSpace(charCode) {\n  return charCode === 32 || charCode === 9;\n}\nvar LineRangeFragment = class _LineRangeFragment {\n  static {\n    this.chrKeys = /* @__PURE__ */ new Map();\n  }\n  static getKey(chr) {\n    let key = this.chrKeys.get(chr);\n    if (key === void 0) {\n      key = this.chrKeys.size;\n      this.chrKeys.set(chr, key);\n    }\n    return key;\n  }\n  constructor(range2, lines, source) {\n    this.range = range2;\n    this.lines = lines;\n    this.source = source;\n    this.histogram = [];\n    let counter = 0;\n    for (let i2 = range2.startLineNumber - 1; i2 \u003c range2.endLineNumberExclusive - 1; i2++) {\n      const line = lines[i2];\n      for (let j = 0; j \u003c line.length; j++) {\n        counter++;\n        const chr = line[j];\n        const key2 = _LineRangeFragment.getKey(chr);\n        this.histogram[key2] = (this.histogram[key2] || 0) + 1;\n      }\n      counter++;\n      const key = _LineRangeFragment.getKey(\"\\n\");\n      this.histogram[key] = (this.histogram[key] || 0) + 1;\n    }\n    this.totalCount = counter;\n  }\n  computeSimilarity(other) {\n    let sumDifferences = 0;\n    const maxLength = Math.max(this.histogram.length, other.histogram.length);\n    for (let i2 = 0; i2 \u003c maxLength; i2++) {\n      sumDifferences += Math.abs((this.histogram[i2] ?? 0) - (other.histogram[i2] ?? 0));\n    }\n    return 1 - sumDifferences / (this.totalCount + other.totalCount);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.js\nvar DynamicProgrammingDiffing = class {\n  compute(sequence1, sequence2, timeout2 = InfiniteTimeout.instance, equalityScore) {\n    if (sequence1.length === 0 || sequence2.length === 0) {\n      return DiffAlgorithmResult.trivial(sequence1, sequence2);\n    }\n    const lcsLengths = new Array2D(sequence1.length, sequence2.length);\n    const directions = new Array2D(sequence1.length, sequence2.length);\n    const lengths = new Array2D(sequence1.length, sequence2.length);\n    for (let s12 = 0; s12 \u003c sequence1.length; s12++) {\n      for (let s22 = 0; s22 \u003c sequence2.length; s22++) {\n        if (!timeout2.isValid()) {\n          return DiffAlgorithmResult.trivialTimedOut(sequence1, sequence2);\n        }\n        const horizontalLen = s12 === 0 ? 0 : lcsLengths.get(s12 - 1, s22);\n        const verticalLen = s22 === 0 ? 0 : lcsLengths.get(s12, s22 - 1);\n        let extendedSeqScore;\n        if (sequence1.getElement(s12) === sequence2.getElement(s22)) {\n          if (s12 === 0 || s22 === 0) {\n            extendedSeqScore = 0;\n          } else {\n            extendedSeqScore = lcsLengths.get(s12 - 1, s22 - 1);\n          }\n          if (s12 \u003e 0 \u0026\u0026 s22 \u003e 0 \u0026\u0026 directions.get(s12 - 1, s22 - 1) === 3) {\n            extendedSeqScore += lengths.get(s12 - 1, s22 - 1);\n          }\n          extendedSeqScore += equalityScore ? equalityScore(s12, s22) : 1;\n        } else {\n          extendedSeqScore = -1;\n        }\n        const newValue = Math.max(horizontalLen, verticalLen, extendedSeqScore);\n        if (newValue === extendedSeqScore) {\n          const prevLen = s12 \u003e 0 \u0026\u0026 s22 \u003e 0 ? lengths.get(s12 - 1, s22 - 1) : 0;\n          lengths.set(s12, s22, prevLen + 1);\n          directions.set(s12, s22, 3);\n        } else if (newValue === horizontalLen) {\n          lengths.set(s12, s22, 0);\n          directions.set(s12, s22, 1);\n        } else if (newValue === verticalLen) {\n          lengths.set(s12, s22, 0);\n          directions.set(s12, s22, 2);\n        }\n        lcsLengths.set(s12, s22, newValue);\n      }\n    }\n    const result = [];\n    let lastAligningPosS1 = sequence1.length;\n    let lastAligningPosS2 = sequence2.length;\n    function reportDecreasingAligningPositions(s12, s22) {\n      if (s12 + 1 !== lastAligningPosS1 || s22 + 1 !== lastAligningPosS2) {\n        result.push(new SequenceDiff(new OffsetRange(s12 + 1, lastAligningPosS1), new OffsetRange(s22 + 1, lastAligningPosS2)));\n      }\n      lastAligningPosS1 = s12;\n      lastAligningPosS2 = s22;\n    }\n    let s1 = sequence1.length - 1;\n    let s2 = sequence2.length - 1;\n    while (s1 \u003e= 0 \u0026\u0026 s2 \u003e= 0) {\n      if (directions.get(s1, s2) === 3) {\n        reportDecreasingAligningPositions(s1, s2);\n        s1--;\n        s2--;\n      } else {\n        if (directions.get(s1, s2) === 1) {\n          s1--;\n        } else {\n          s2--;\n        }\n      }\n    }\n    reportDecreasingAligningPositions(-1, -1);\n    result.reverse();\n    return new DiffAlgorithmResult(result, false);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm.js\ninit_offsetRange();\nvar MyersDiffAlgorithm = class {\n  compute(seq1, seq2, timeout2 = InfiniteTimeout.instance) {\n    if (seq1.length === 0 || seq2.length === 0) {\n      return DiffAlgorithmResult.trivial(seq1, seq2);\n    }\n    const seqX = seq1;\n    const seqY = seq2;\n    function getXAfterSnake(x, y) {\n      while (x \u003c seqX.length \u0026\u0026 y \u003c seqY.length \u0026\u0026 seqX.getElement(x) === seqY.getElement(y)) {\n        x++;\n        y++;\n      }\n      return x;\n    }\n    let d = 0;\n    const V = new FastInt32Array();\n    V.set(0, getXAfterSnake(0, 0));\n    const paths = new FastArrayNegativeIndices();\n    paths.set(0, V.get(0) === 0 ? null : new SnakePath(null, 0, 0, V.get(0)));\n    let k = 0;\n    loop: while (true) {\n      d++;\n      if (!timeout2.isValid()) {\n        return DiffAlgorithmResult.trivialTimedOut(seqX, seqY);\n      }\n      const lowerBound = -Math.min(d, seqY.length + d % 2);\n      const upperBound = Math.min(d, seqX.length + d % 2);\n      for (k = lowerBound; k \u003c= upperBound; k += 2) {\n        let step = 0;\n        const maxXofDLineTop = k === upperBound ? -1 : V.get(k + 1);\n        const maxXofDLineLeft = k === lowerBound ? -1 : V.get(k - 1) + 1;\n        step++;\n        const x = Math.min(Math.max(maxXofDLineTop, maxXofDLineLeft), seqX.length);\n        const y = x - k;\n        step++;\n        if (x \u003e seqX.length || y \u003e seqY.length) {\n          continue;\n        }\n        const newMaxX = getXAfterSnake(x, y);\n        V.set(k, newMaxX);\n        const lastPath = x === maxXofDLineTop ? paths.get(k + 1) : paths.get(k - 1);\n        paths.set(k, newMaxX !== x ? new SnakePath(lastPath, x, y, newMaxX - x) : lastPath);\n        if (V.get(k) === seqX.length \u0026\u0026 V.get(k) - k === seqY.length) {\n          break loop;\n        }\n      }\n    }\n    let path = paths.get(k);\n    const result = [];\n    let lastAligningPosS1 = seqX.length;\n    let lastAligningPosS2 = seqY.length;\n    while (true) {\n      const endX = path ? path.x + path.length : 0;\n      const endY = path ? path.y + path.length : 0;\n      if (endX !== lastAligningPosS1 || endY !== lastAligningPosS2) {\n        result.push(new SequenceDiff(new OffsetRange(endX, lastAligningPosS1), new OffsetRange(endY, lastAligningPosS2)));\n      }\n      if (!path) {\n        break;\n      }\n      lastAligningPosS1 = path.x;\n      lastAligningPosS2 = path.y;\n      path = path.prev;\n    }\n    result.reverse();\n    return new DiffAlgorithmResult(result, false);\n  }\n};\nvar SnakePath = class {\n  constructor(prev, x, y, length) {\n    this.prev = prev;\n    this.x = x;\n    this.y = y;\n    this.length = length;\n  }\n};\nvar FastInt32Array = class {\n  constructor() {\n    this.positiveArr = new Int32Array(10);\n    this.negativeArr = new Int32Array(10);\n  }\n  get(idx) {\n    if (idx \u003c 0) {\n      idx = -idx - 1;\n      return this.negativeArr[idx];\n    } else {\n      return this.positiveArr[idx];\n    }\n  }\n  set(idx, value) {\n    if (idx \u003c 0) {\n      idx = -idx - 1;\n      if (idx \u003e= this.negativeArr.length) {\n        const arr = this.negativeArr;\n        this.negativeArr = new Int32Array(arr.length * 2);\n        this.negativeArr.set(arr);\n      }\n      this.negativeArr[idx] = value;\n    } else {\n      if (idx \u003e= this.positiveArr.length) {\n        const arr = this.positiveArr;\n        this.positiveArr = new Int32Array(arr.length * 2);\n        this.positiveArr.set(arr);\n      }\n      this.positiveArr[idx] = value;\n    }\n  }\n};\nvar FastArrayNegativeIndices = class {\n  constructor() {\n    this.positiveArr = [];\n    this.negativeArr = [];\n  }\n  get(idx) {\n    if (idx \u003c 0) {\n      idx = -idx - 1;\n      return this.negativeArr[idx];\n    } else {\n      return this.positiveArr[idx];\n    }\n  }\n  set(idx, value) {\n    if (idx \u003c 0) {\n      idx = -idx - 1;\n      this.negativeArr[idx] = value;\n    } else {\n      this.positiveArr[idx] = value;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.js\ninit_arrays();\ninit_arraysFind();\ninit_map();\ninit_lineRange();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.js\ninit_arraysFind();\ninit_offsetRange();\ninit_position();\ninit_range();\nvar LinesSliceCharSequence = class {\n  constructor(lines, range2, considerWhitespaceChanges) {\n    this.lines = lines;\n    this.range = range2;\n    this.considerWhitespaceChanges = considerWhitespaceChanges;\n    this.elements = [];\n    this.firstElementOffsetByLineIdx = [];\n    this.lineStartOffsets = [];\n    this.trimmedWsLengthsByLineIdx = [];\n    this.firstElementOffsetByLineIdx.push(0);\n    for (let lineNumber = this.range.startLineNumber; lineNumber \u003c= this.range.endLineNumber; lineNumber++) {\n      let line = lines[lineNumber - 1];\n      let lineStartOffset = 0;\n      if (lineNumber === this.range.startLineNumber \u0026\u0026 this.range.startColumn \u003e 1) {\n        lineStartOffset = this.range.startColumn - 1;\n        line = line.substring(lineStartOffset);\n      }\n      this.lineStartOffsets.push(lineStartOffset);\n      let trimmedWsLength = 0;\n      if (!considerWhitespaceChanges) {\n        const trimmedStartLine = line.trimStart();\n        trimmedWsLength = line.length - trimmedStartLine.length;\n        line = trimmedStartLine.trimEnd();\n      }\n      this.trimmedWsLengthsByLineIdx.push(trimmedWsLength);\n      const lineLength = lineNumber === this.range.endLineNumber ? Math.min(this.range.endColumn - 1 - lineStartOffset - trimmedWsLength, line.length) : line.length;\n      for (let i2 = 0; i2 \u003c lineLength; i2++) {\n        this.elements.push(line.charCodeAt(i2));\n      }\n      if (lineNumber \u003c this.range.endLineNumber) {\n        this.elements.push(\"\\n\".charCodeAt(0));\n        this.firstElementOffsetByLineIdx.push(this.elements.length);\n      }\n    }\n  }\n  toString() {\n    return `Slice: \"${this.text}\"`;\n  }\n  get text() {\n    return this.getText(new OffsetRange(0, this.length));\n  }\n  getText(range2) {\n    return this.elements.slice(range2.start, range2.endExclusive).map((e) =\u003e String.fromCharCode(e)).join(\"\");\n  }\n  getElement(offset) {\n    return this.elements[offset];\n  }\n  get length() {\n    return this.elements.length;\n  }\n  getBoundaryScore(length) {\n    const prevCategory = getCategory(length \u003e 0 ? this.elements[length - 1] : -1);\n    const nextCategory = getCategory(length \u003c this.elements.length ? this.elements[length] : -1);\n    if (prevCategory === 7 \u0026\u0026 nextCategory === 8) {\n      return 0;\n    }\n    if (prevCategory === 8) {\n      return 150;\n    }\n    let score3 = 0;\n    if (prevCategory !== nextCategory) {\n      score3 += 10;\n      if (prevCategory === 0 \u0026\u0026 nextCategory === 1) {\n        score3 += 1;\n      }\n    }\n    score3 += getCategoryBoundaryScore(prevCategory);\n    score3 += getCategoryBoundaryScore(nextCategory);\n    return score3;\n  }\n  translateOffset(offset, preference = \"right\") {\n    const i2 = findLastIdxMonotonous(this.firstElementOffsetByLineIdx, (value) =\u003e value \u003c= offset);\n    const lineOffset = offset - this.firstElementOffsetByLineIdx[i2];\n    return new Position(this.range.startLineNumber + i2, 1 + this.lineStartOffsets[i2] + lineOffset + (lineOffset === 0 \u0026\u0026 preference === \"left\" ? 0 : this.trimmedWsLengthsByLineIdx[i2]));\n  }\n  translateRange(range2) {\n    const pos1 = this.translateOffset(range2.start, \"right\");\n    const pos2 = this.translateOffset(range2.endExclusive, \"left\");\n    if (pos2.isBefore(pos1)) {\n      return Range.fromPositions(pos2, pos2);\n    }\n    return Range.fromPositions(pos1, pos2);\n  }\n  /**\n   * Finds the word that contains the character at the given offset\n   */\n  findWordContaining(offset) {\n    if (offset \u003c 0 || offset \u003e= this.elements.length) {\n      return void 0;\n    }\n    if (!isWordChar(this.elements[offset])) {\n      return void 0;\n    }\n    let start = offset;\n    while (start \u003e 0 \u0026\u0026 isWordChar(this.elements[start - 1])) {\n      start--;\n    }\n    let end = offset;\n    while (end \u003c this.elements.length \u0026\u0026 isWordChar(this.elements[end])) {\n      end++;\n    }\n    return new OffsetRange(start, end);\n  }\n  /** fooBar has the two sub-words foo and bar */\n  findSubWordContaining(offset) {\n    if (offset \u003c 0 || offset \u003e= this.elements.length) {\n      return void 0;\n    }\n    if (!isWordChar(this.elements[offset])) {\n      return void 0;\n    }\n    let start = offset;\n    while (start \u003e 0 \u0026\u0026 isWordChar(this.elements[start - 1]) \u0026\u0026 !isUpperCase(this.elements[start])) {\n      start--;\n    }\n    let end = offset;\n    while (end \u003c this.elements.length \u0026\u0026 isWordChar(this.elements[end]) \u0026\u0026 !isUpperCase(this.elements[end])) {\n      end++;\n    }\n    return new OffsetRange(start, end);\n  }\n  countLinesIn(range2) {\n    return this.translateOffset(range2.endExclusive).lineNumber - this.translateOffset(range2.start).lineNumber;\n  }\n  isStronglyEqual(offset1, offset2) {\n    return this.elements[offset1] === this.elements[offset2];\n  }\n  extendToFullLines(range2) {\n    const start = findLastMonotonous(this.firstElementOffsetByLineIdx, (x) =\u003e x \u003c= range2.start) ?? 0;\n    const end = findFirstMonotonous(this.firstElementOffsetByLineIdx, (x) =\u003e range2.endExclusive \u003c= x) ?? this.elements.length;\n    return new OffsetRange(start, end);\n  }\n};\nfunction isWordChar(charCode) {\n  return charCode \u003e= 97 \u0026\u0026 charCode \u003c= 122 || charCode \u003e= 65 \u0026\u0026 charCode \u003c= 90 || charCode \u003e= 48 \u0026\u0026 charCode \u003c= 57;\n}\nfunction isUpperCase(charCode) {\n  return charCode \u003e= 65 \u0026\u0026 charCode \u003c= 90;\n}\nvar score = {\n  [\n    0\n    /* CharBoundaryCategory.WordLower */\n  ]: 0,\n  [\n    1\n    /* CharBoundaryCategory.WordUpper */\n  ]: 0,\n  [\n    2\n    /* CharBoundaryCategory.WordNumber */\n  ]: 0,\n  [\n    3\n    /* CharBoundaryCategory.End */\n  ]: 10,\n  [\n    4\n    /* CharBoundaryCategory.Other */\n  ]: 2,\n  [\n    5\n    /* CharBoundaryCategory.Separator */\n  ]: 30,\n  [\n    6\n    /* CharBoundaryCategory.Space */\n  ]: 3,\n  [\n    7\n    /* CharBoundaryCategory.LineBreakCR */\n  ]: 10,\n  [\n    8\n    /* CharBoundaryCategory.LineBreakLF */\n  ]: 10\n};\nfunction getCategoryBoundaryScore(category) {\n  return score[category];\n}\nfunction getCategory(charCode) {\n  if (charCode === 10) {\n    return 8;\n  } else if (charCode === 13) {\n    return 7;\n  } else if (isSpace(charCode)) {\n    return 6;\n  } else if (charCode \u003e= 97 \u0026\u0026 charCode \u003c= 122) {\n    return 0;\n  } else if (charCode \u003e= 65 \u0026\u0026 charCode \u003c= 90) {\n    return 1;\n  } else if (charCode \u003e= 48 \u0026\u0026 charCode \u003c= 57) {\n    return 2;\n  } else if (charCode === -1) {\n    return 3;\n  } else if (charCode === 44 || charCode === 59) {\n    return 5;\n  } else {\n    return 4;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.js\ninit_range();\nfunction computeMovedLines(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout2) {\n  let { moves, excludedChanges } = computeMovesFromSimpleDeletionsToSimpleInsertions(changes, originalLines, modifiedLines, timeout2);\n  if (!timeout2.isValid()) {\n    return [];\n  }\n  const filteredChanges = changes.filter((c) =\u003e !excludedChanges.has(c));\n  const unchangedMoves = computeUnchangedMoves(filteredChanges, hashedOriginalLines, hashedModifiedLines, originalLines, modifiedLines, timeout2);\n  pushMany(moves, unchangedMoves);\n  moves = joinCloseConsecutiveMoves(moves);\n  moves = moves.filter((current) =\u003e {\n    const lines = current.original.toOffsetRange().slice(originalLines).map((l) =\u003e l.trim());\n    const originalText = lines.join(\"\\n\");\n    return originalText.length \u003e= 15 \u0026\u0026 countWhere(lines, (l) =\u003e l.length \u003e= 2) \u003e= 2;\n  });\n  moves = removeMovesInSameDiff(changes, moves);\n  return moves;\n}\nfunction countWhere(arr, predicate) {\n  let count = 0;\n  for (const t of arr) {\n    if (predicate(t)) {\n      count++;\n    }\n  }\n  return count;\n}\nfunction computeMovesFromSimpleDeletionsToSimpleInsertions(changes, originalLines, modifiedLines, timeout2) {\n  const moves = [];\n  const deletions = changes.filter((c) =\u003e c.modified.isEmpty \u0026\u0026 c.original.length \u003e= 3).map((d) =\u003e new LineRangeFragment(d.original, originalLines, d));\n  const insertions = new Set(changes.filter((c) =\u003e c.original.isEmpty \u0026\u0026 c.modified.length \u003e= 3).map((d) =\u003e new LineRangeFragment(d.modified, modifiedLines, d)));\n  const excludedChanges = /* @__PURE__ */ new Set();\n  for (const deletion of deletions) {\n    let highestSimilarity = -1;\n    let best;\n    for (const insertion of insertions) {\n      const similarity = deletion.computeSimilarity(insertion);\n      if (similarity \u003e highestSimilarity) {\n        highestSimilarity = similarity;\n        best = insertion;\n      }\n    }\n    if (highestSimilarity \u003e 0.9 \u0026\u0026 best) {\n      insertions.delete(best);\n      moves.push(new LineRangeMapping(deletion.range, best.range));\n      excludedChanges.add(deletion.source);\n      excludedChanges.add(best.source);\n    }\n    if (!timeout2.isValid()) {\n      return { moves, excludedChanges };\n    }\n  }\n  return { moves, excludedChanges };\n}\nfunction computeUnchangedMoves(changes, hashedOriginalLines, hashedModifiedLines, originalLines, modifiedLines, timeout2) {\n  const moves = [];\n  const original3LineHashes = new SetMap();\n  for (const change of changes) {\n    for (let i2 = change.original.startLineNumber; i2 \u003c change.original.endLineNumberExclusive - 2; i2++) {\n      const key = `${hashedOriginalLines[i2 - 1]}:${hashedOriginalLines[i2 + 1 - 1]}:${hashedOriginalLines[i2 + 2 - 1]}`;\n      original3LineHashes.add(key, { range: new LineRange(i2, i2 + 3) });\n    }\n  }\n  const possibleMappings = [];\n  changes.sort(compareBy((c) =\u003e c.modified.startLineNumber, numberComparator));\n  for (const change of changes) {\n    let lastMappings = [];\n    for (let i2 = change.modified.startLineNumber; i2 \u003c change.modified.endLineNumberExclusive - 2; i2++) {\n      const key = `${hashedModifiedLines[i2 - 1]}:${hashedModifiedLines[i2 + 1 - 1]}:${hashedModifiedLines[i2 + 2 - 1]}`;\n      const currentModifiedRange = new LineRange(i2, i2 + 3);\n      const nextMappings = [];\n      original3LineHashes.forEach(key, ({ range: range2 }) =\u003e {\n        for (const lastMapping of lastMappings) {\n          if (lastMapping.originalLineRange.endLineNumberExclusive + 1 === range2.endLineNumberExclusive \u0026\u0026 lastMapping.modifiedLineRange.endLineNumberExclusive + 1 === currentModifiedRange.endLineNumberExclusive) {\n            lastMapping.originalLineRange = new LineRange(lastMapping.originalLineRange.startLineNumber, range2.endLineNumberExclusive);\n            lastMapping.modifiedLineRange = new LineRange(lastMapping.modifiedLineRange.startLineNumber, currentModifiedRange.endLineNumberExclusive);\n            nextMappings.push(lastMapping);\n            return;\n          }\n        }\n        const mapping = {\n          modifiedLineRange: currentModifiedRange,\n          originalLineRange: range2\n        };\n        possibleMappings.push(mapping);\n        nextMappings.push(mapping);\n      });\n      lastMappings = nextMappings;\n    }\n    if (!timeout2.isValid()) {\n      return [];\n    }\n  }\n  possibleMappings.sort(reverseOrder(compareBy((m) =\u003e m.modifiedLineRange.length, numberComparator)));\n  const modifiedSet = new LineRangeSet();\n  const originalSet = new LineRangeSet();\n  for (const mapping of possibleMappings) {\n    const diffOrigToMod = mapping.modifiedLineRange.startLineNumber - mapping.originalLineRange.startLineNumber;\n    const modifiedSections = modifiedSet.subtractFrom(mapping.modifiedLineRange);\n    const originalTranslatedSections = originalSet.subtractFrom(mapping.originalLineRange).getWithDelta(diffOrigToMod);\n    const modifiedIntersectedSections = modifiedSections.getIntersection(originalTranslatedSections);\n    for (const s of modifiedIntersectedSections.ranges) {\n      if (s.length \u003c 3) {\n        continue;\n      }\n      const modifiedLineRange = s;\n      const originalLineRange = s.delta(-diffOrigToMod);\n      moves.push(new LineRangeMapping(originalLineRange, modifiedLineRange));\n      modifiedSet.addRange(modifiedLineRange);\n      originalSet.addRange(originalLineRange);\n    }\n  }\n  moves.sort(compareBy((m) =\u003e m.original.startLineNumber, numberComparator));\n  const monotonousChanges = new MonotonousArray(changes);\n  for (let i2 = 0; i2 \u003c moves.length; i2++) {\n    const move = moves[i2];\n    const firstTouchingChangeOrig = monotonousChanges.findLastMonotonous((c) =\u003e c.original.startLineNumber \u003c= move.original.startLineNumber);\n    const firstTouchingChangeMod = findLastMonotonous(changes, (c) =\u003e c.modified.startLineNumber \u003c= move.modified.startLineNumber);\n    const linesAbove = Math.max(move.original.startLineNumber - firstTouchingChangeOrig.original.startLineNumber, move.modified.startLineNumber - firstTouchingChangeMod.modified.startLineNumber);\n    const lastTouchingChangeOrig = monotonousChanges.findLastMonotonous((c) =\u003e c.original.startLineNumber \u003c move.original.endLineNumberExclusive);\n    const lastTouchingChangeMod = findLastMonotonous(changes, (c) =\u003e c.modified.startLineNumber \u003c move.modified.endLineNumberExclusive);\n    const linesBelow = Math.max(lastTouchingChangeOrig.original.endLineNumberExclusive - move.original.endLineNumberExclusive, lastTouchingChangeMod.modified.endLineNumberExclusive - move.modified.endLineNumberExclusive);\n    let extendToTop;\n    for (extendToTop = 0; extendToTop \u003c linesAbove; extendToTop++) {\n      const origLine = move.original.startLineNumber - extendToTop - 1;\n      const modLine = move.modified.startLineNumber - extendToTop - 1;\n      if (origLine \u003e originalLines.length || modLine \u003e modifiedLines.length) {\n        break;\n      }\n      if (modifiedSet.contains(modLine) || originalSet.contains(origLine)) {\n        break;\n      }\n      if (!areLinesSimilar(originalLines[origLine - 1], modifiedLines[modLine - 1], timeout2)) {\n        break;\n      }\n    }\n    if (extendToTop \u003e 0) {\n      originalSet.addRange(new LineRange(move.original.startLineNumber - extendToTop, move.original.startLineNumber));\n      modifiedSet.addRange(new LineRange(move.modified.startLineNumber - extendToTop, move.modified.startLineNumber));\n    }\n    let extendToBottom;\n    for (extendToBottom = 0; extendToBottom \u003c linesBelow; extendToBottom++) {\n      const origLine = move.original.endLineNumberExclusive + extendToBottom;\n      const modLine = move.modified.endLineNumberExclusive + extendToBottom;\n      if (origLine \u003e originalLines.length || modLine \u003e modifiedLines.length) {\n        break;\n      }\n      if (modifiedSet.contains(modLine) || originalSet.contains(origLine)) {\n        break;\n      }\n      if (!areLinesSimilar(originalLines[origLine - 1], modifiedLines[modLine - 1], timeout2)) {\n        break;\n      }\n    }\n    if (extendToBottom \u003e 0) {\n      originalSet.addRange(new LineRange(move.original.endLineNumberExclusive, move.original.endLineNumberExclusive + extendToBottom));\n      modifiedSet.addRange(new LineRange(move.modified.endLineNumberExclusive, move.modified.endLineNumberExclusive + extendToBottom));\n    }\n    if (extendToTop \u003e 0 || extendToBottom \u003e 0) {\n      moves[i2] = new LineRangeMapping(new LineRange(move.original.startLineNumber - extendToTop, move.original.endLineNumberExclusive + extendToBottom), new LineRange(move.modified.startLineNumber - extendToTop, move.modified.endLineNumberExclusive + extendToBottom));\n    }\n  }\n  return moves;\n}\nfunction areLinesSimilar(line1, line2, timeout2) {\n  if (line1.trim() === line2.trim()) {\n    return true;\n  }\n  if (line1.length \u003e 300 \u0026\u0026 line2.length \u003e 300) {\n    return false;\n  }\n  const myersDiffingAlgorithm = new MyersDiffAlgorithm();\n  const result = myersDiffingAlgorithm.compute(new LinesSliceCharSequence([line1], new Range(1, 1, 1, line1.length), false), new LinesSliceCharSequence([line2], new Range(1, 1, 1, line2.length), false), timeout2);\n  let commonNonSpaceCharCount = 0;\n  const inverted = SequenceDiff.invert(result.diffs, line1.length);\n  for (const seq of inverted) {\n    seq.seq1Range.forEach((idx) =\u003e {\n      if (!isSpace(line1.charCodeAt(idx))) {\n        commonNonSpaceCharCount++;\n      }\n    });\n  }\n  function countNonWsChars(str) {\n    let count = 0;\n    for (let i2 = 0; i2 \u003c line1.length; i2++) {\n      if (!isSpace(str.charCodeAt(i2))) {\n        count++;\n      }\n    }\n    return count;\n  }\n  const longerLineLength = countNonWsChars(line1.length \u003e line2.length ? line1 : line2);\n  const r = commonNonSpaceCharCount / longerLineLength \u003e 0.6 \u0026\u0026 longerLineLength \u003e 10;\n  return r;\n}\nfunction joinCloseConsecutiveMoves(moves) {\n  if (moves.length === 0) {\n    return moves;\n  }\n  moves.sort(compareBy((m) =\u003e m.original.startLineNumber, numberComparator));\n  const result = [moves[0]];\n  for (let i2 = 1; i2 \u003c moves.length; i2++) {\n    const last = result[result.length - 1];\n    const current = moves[i2];\n    const originalDist = current.original.startLineNumber - last.original.endLineNumberExclusive;\n    const modifiedDist = current.modified.startLineNumber - last.modified.endLineNumberExclusive;\n    const currentMoveAfterLast = originalDist \u003e= 0 \u0026\u0026 modifiedDist \u003e= 0;\n    if (currentMoveAfterLast \u0026\u0026 originalDist + modifiedDist \u003c= 2) {\n      result[result.length - 1] = last.join(current);\n      continue;\n    }\n    result.push(current);\n  }\n  return result;\n}\nfunction removeMovesInSameDiff(changes, moves) {\n  const changesMonotonous = new MonotonousArray(changes);\n  moves = moves.filter((m) =\u003e {\n    const diffBeforeEndOfMoveOriginal = changesMonotonous.findLastMonotonous((c) =\u003e c.original.startLineNumber \u003c m.original.endLineNumberExclusive) || new LineRangeMapping(new LineRange(1, 1), new LineRange(1, 1));\n    const diffBeforeEndOfMoveModified = findLastMonotonous(changes, (c) =\u003e c.modified.startLineNumber \u003c m.modified.endLineNumberExclusive);\n    const differentDiffs = diffBeforeEndOfMoveOriginal !== diffBeforeEndOfMoveModified;\n    return differentDiffs;\n  });\n  return moves;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.js\ninit_arrays();\ninit_offsetRange();\nfunction optimizeSequenceDiffs(sequence1, sequence2, sequenceDiffs) {\n  let result = sequenceDiffs;\n  result = joinSequenceDiffsByShifting(sequence1, sequence2, result);\n  result = joinSequenceDiffsByShifting(sequence1, sequence2, result);\n  result = shiftSequenceDiffs(sequence1, sequence2, result);\n  return result;\n}\nfunction joinSequenceDiffsByShifting(sequence1, sequence2, sequenceDiffs) {\n  if (sequenceDiffs.length === 0) {\n    return sequenceDiffs;\n  }\n  const result = [];\n  result.push(sequenceDiffs[0]);\n  for (let i2 = 1; i2 \u003c sequenceDiffs.length; i2++) {\n    const prevResult = result[result.length - 1];\n    let cur = sequenceDiffs[i2];\n    if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) {\n      const length = cur.seq1Range.start - prevResult.seq1Range.endExclusive;\n      let d;\n      for (d = 1; d \u003c= length; d++) {\n        if (sequence1.getElement(cur.seq1Range.start - d) !== sequence1.getElement(cur.seq1Range.endExclusive - d) || sequence2.getElement(cur.seq2Range.start - d) !== sequence2.getElement(cur.seq2Range.endExclusive - d)) {\n          break;\n        }\n      }\n      d--;\n      if (d === length) {\n        result[result.length - 1] = new SequenceDiff(new OffsetRange(prevResult.seq1Range.start, cur.seq1Range.endExclusive - length), new OffsetRange(prevResult.seq2Range.start, cur.seq2Range.endExclusive - length));\n        continue;\n      }\n      cur = cur.delta(-d);\n    }\n    result.push(cur);\n  }\n  const result2 = [];\n  for (let i2 = 0; i2 \u003c result.length - 1; i2++) {\n    const nextResult = result[i2 + 1];\n    let cur = result[i2];\n    if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) {\n      const length = nextResult.seq1Range.start - cur.seq1Range.endExclusive;\n      let d;\n      for (d = 0; d \u003c length; d++) {\n        if (!sequence1.isStronglyEqual(cur.seq1Range.start + d, cur.seq1Range.endExclusive + d) || !sequence2.isStronglyEqual(cur.seq2Range.start + d, cur.seq2Range.endExclusive + d)) {\n          break;\n        }\n      }\n      if (d === length) {\n        result[i2 + 1] = new SequenceDiff(new OffsetRange(cur.seq1Range.start + length, nextResult.seq1Range.endExclusive), new OffsetRange(cur.seq2Range.start + length, nextResult.seq2Range.endExclusive));\n        continue;\n      }\n      if (d \u003e 0) {\n        cur = cur.delta(d);\n      }\n    }\n    result2.push(cur);\n  }\n  if (result.length \u003e 0) {\n    result2.push(result[result.length - 1]);\n  }\n  return result2;\n}\nfunction shiftSequenceDiffs(sequence1, sequence2, sequenceDiffs) {\n  if (!sequence1.getBoundaryScore || !sequence2.getBoundaryScore) {\n    return sequenceDiffs;\n  }\n  for (let i2 = 0; i2 \u003c sequenceDiffs.length; i2++) {\n    const prevDiff = i2 \u003e 0 ? sequenceDiffs[i2 - 1] : void 0;\n    const diff = sequenceDiffs[i2];\n    const nextDiff = i2 + 1 \u003c sequenceDiffs.length ? sequenceDiffs[i2 + 1] : void 0;\n    const seq1ValidRange = new OffsetRange(prevDiff ? prevDiff.seq1Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq1Range.start - 1 : sequence1.length);\n    const seq2ValidRange = new OffsetRange(prevDiff ? prevDiff.seq2Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq2Range.start - 1 : sequence2.length);\n    if (diff.seq1Range.isEmpty) {\n      sequenceDiffs[i2] = shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange);\n    } else if (diff.seq2Range.isEmpty) {\n      sequenceDiffs[i2] = shiftDiffToBetterPosition(diff.swap(), sequence2, sequence1, seq2ValidRange, seq1ValidRange).swap();\n    }\n  }\n  return sequenceDiffs;\n}\nfunction shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange) {\n  const maxShiftLimit = 100;\n  let deltaBefore = 1;\n  while (diff.seq1Range.start - deltaBefore \u003e= seq1ValidRange.start \u0026\u0026 diff.seq2Range.start - deltaBefore \u003e= seq2ValidRange.start \u0026\u0026 sequence2.isStronglyEqual(diff.seq2Range.start - deltaBefore, diff.seq2Range.endExclusive - deltaBefore) \u0026\u0026 deltaBefore \u003c maxShiftLimit) {\n    deltaBefore++;\n  }\n  deltaBefore--;\n  let deltaAfter = 0;\n  while (diff.seq1Range.start + deltaAfter \u003c seq1ValidRange.endExclusive \u0026\u0026 diff.seq2Range.endExclusive + deltaAfter \u003c seq2ValidRange.endExclusive \u0026\u0026 sequence2.isStronglyEqual(diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter) \u0026\u0026 deltaAfter \u003c maxShiftLimit) {\n    deltaAfter++;\n  }\n  if (deltaBefore === 0 \u0026\u0026 deltaAfter === 0) {\n    return diff;\n  }\n  let bestDelta = 0;\n  let bestScore = -1;\n  for (let delta = -deltaBefore; delta \u003c= deltaAfter; delta++) {\n    const seq2OffsetStart = diff.seq2Range.start + delta;\n    const seq2OffsetEndExclusive = diff.seq2Range.endExclusive + delta;\n    const seq1Offset = diff.seq1Range.start + delta;\n    const score3 = sequence1.getBoundaryScore(seq1Offset) + sequence2.getBoundaryScore(seq2OffsetStart) + sequence2.getBoundaryScore(seq2OffsetEndExclusive);\n    if (score3 \u003e bestScore) {\n      bestScore = score3;\n      bestDelta = delta;\n    }\n  }\n  return diff.delta(bestDelta);\n}\nfunction removeShortMatches(sequence1, sequence2, sequenceDiffs) {\n  const result = [];\n  for (const s of sequenceDiffs) {\n    const last = result[result.length - 1];\n    if (!last) {\n      result.push(s);\n      continue;\n    }\n    if (s.seq1Range.start - last.seq1Range.endExclusive \u003c= 2 || s.seq2Range.start - last.seq2Range.endExclusive \u003c= 2) {\n      result[result.length - 1] = new SequenceDiff(last.seq1Range.join(s.seq1Range), last.seq2Range.join(s.seq2Range));\n    } else {\n      result.push(s);\n    }\n  }\n  return result;\n}\nfunction extendDiffsToEntireWordIfAppropriate(sequence1, sequence2, sequenceDiffs, findParent, force = false) {\n  const equalMappings = SequenceDiff.invert(sequenceDiffs, sequence1.length);\n  const additional = [];\n  let lastPoint = new OffsetPair(0, 0);\n  function scanWord(pair, equalMapping) {\n    if (pair.offset1 \u003c lastPoint.offset1 || pair.offset2 \u003c lastPoint.offset2) {\n      return;\n    }\n    const w1 = findParent(sequence1, pair.offset1);\n    const w2 = findParent(sequence2, pair.offset2);\n    if (!w1 || !w2) {\n      return;\n    }\n    let w = new SequenceDiff(w1, w2);\n    const equalPart = w.intersect(equalMapping);\n    let equalChars1 = equalPart.seq1Range.length;\n    let equalChars2 = equalPart.seq2Range.length;\n    while (equalMappings.length \u003e 0) {\n      const next = equalMappings[0];\n      const intersects2 = next.seq1Range.intersects(w.seq1Range) || next.seq2Range.intersects(w.seq2Range);\n      if (!intersects2) {\n        break;\n      }\n      const v1 = findParent(sequence1, next.seq1Range.start);\n      const v2 = findParent(sequence2, next.seq2Range.start);\n      const v = new SequenceDiff(v1, v2);\n      const equalPart2 = v.intersect(next);\n      equalChars1 += equalPart2.seq1Range.length;\n      equalChars2 += equalPart2.seq2Range.length;\n      w = w.join(v);\n      if (w.seq1Range.endExclusive \u003e= next.seq1Range.endExclusive) {\n        equalMappings.shift();\n      } else {\n        break;\n      }\n    }\n    if (force \u0026\u0026 equalChars1 + equalChars2 \u003c w.seq1Range.length + w.seq2Range.length || equalChars1 + equalChars2 \u003c (w.seq1Range.length + w.seq2Range.length) * 2 / 3) {\n      additional.push(w);\n    }\n    lastPoint = w.getEndExclusives();\n  }\n  while (equalMappings.length \u003e 0) {\n    const next = equalMappings.shift();\n    if (next.seq1Range.isEmpty) {\n      continue;\n    }\n    scanWord(next.getStarts(), next);\n    scanWord(next.getEndExclusives().delta(-1), next);\n  }\n  const merged = mergeSequenceDiffs(sequenceDiffs, additional);\n  return merged;\n}\nfunction mergeSequenceDiffs(sequenceDiffs1, sequenceDiffs2) {\n  const result = [];\n  while (sequenceDiffs1.length \u003e 0 || sequenceDiffs2.length \u003e 0) {\n    const sd1 = sequenceDiffs1[0];\n    const sd2 = sequenceDiffs2[0];\n    let next;\n    if (sd1 \u0026\u0026 (!sd2 || sd1.seq1Range.start \u003c sd2.seq1Range.start)) {\n      next = sequenceDiffs1.shift();\n    } else {\n      next = sequenceDiffs2.shift();\n    }\n    if (result.length \u003e 0 \u0026\u0026 result[result.length - 1].seq1Range.endExclusive \u003e= next.seq1Range.start) {\n      result[result.length - 1] = result[result.length - 1].join(next);\n    } else {\n      result.push(next);\n    }\n  }\n  return result;\n}\nfunction removeVeryShortMatchingLinesBetweenDiffs(sequence1, _sequence2, sequenceDiffs) {\n  let diffs = sequenceDiffs;\n  if (diffs.length === 0) {\n    return diffs;\n  }\n  let counter = 0;\n  let shouldRepeat;\n  do {\n    shouldRepeat = false;\n    const result = [\n      diffs[0]\n    ];\n    for (let i2 = 1; i2 \u003c diffs.length; i2++) {\n      let shouldJoinDiffs = function(before, after2) {\n        const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start);\n        const unchangedText = sequence1.getText(unchangedRange);\n        const unchangedTextWithoutWs = unchangedText.replace(/\\s/g, \"\");\n        if (unchangedTextWithoutWs.length \u003c= 4 \u0026\u0026 (before.seq1Range.length + before.seq2Range.length \u003e 5 || after2.seq1Range.length + after2.seq2Range.length \u003e 5)) {\n          return true;\n        }\n        return false;\n      };\n      const cur = diffs[i2];\n      const lastResult = result[result.length - 1];\n      const shouldJoin = shouldJoinDiffs(lastResult, cur);\n      if (shouldJoin) {\n        shouldRepeat = true;\n        result[result.length - 1] = result[result.length - 1].join(cur);\n      } else {\n        result.push(cur);\n      }\n    }\n    diffs = result;\n  } while (counter++ \u003c 10 \u0026\u0026 shouldRepeat);\n  return diffs;\n}\nfunction removeVeryShortMatchingTextBetweenLongDiffs(sequence1, sequence2, sequenceDiffs) {\n  let diffs = sequenceDiffs;\n  if (diffs.length === 0) {\n    return diffs;\n  }\n  let counter = 0;\n  let shouldRepeat;\n  do {\n    shouldRepeat = false;\n    const result = [\n      diffs[0]\n    ];\n    for (let i2 = 1; i2 \u003c diffs.length; i2++) {\n      let shouldJoinDiffs = function(before, after2) {\n        const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start);\n        const unchangedLineCount = sequence1.countLinesIn(unchangedRange);\n        if (unchangedLineCount \u003e 5 || unchangedRange.length \u003e 500) {\n          return false;\n        }\n        const unchangedText = sequence1.getText(unchangedRange).trim();\n        if (unchangedText.length \u003e 20 || unchangedText.split(/\\r\\n|\\r|\\n/).length \u003e 1) {\n          return false;\n        }\n        const beforeLineCount1 = sequence1.countLinesIn(before.seq1Range);\n        const beforeSeq1Length = before.seq1Range.length;\n        const beforeLineCount2 = sequence2.countLinesIn(before.seq2Range);\n        const beforeSeq2Length = before.seq2Range.length;\n        const afterLineCount1 = sequence1.countLinesIn(after2.seq1Range);\n        const afterSeq1Length = after2.seq1Range.length;\n        const afterLineCount2 = sequence2.countLinesIn(after2.seq2Range);\n        const afterSeq2Length = after2.seq2Range.length;\n        const max = 2 * 40 + 50;\n        function cap(v) {\n          return Math.min(v, max);\n        }\n        if (Math.pow(Math.pow(cap(beforeLineCount1 * 40 + beforeSeq1Length), 1.5) + Math.pow(cap(beforeLineCount2 * 40 + beforeSeq2Length), 1.5), 1.5) + Math.pow(Math.pow(cap(afterLineCount1 * 40 + afterSeq1Length), 1.5) + Math.pow(cap(afterLineCount2 * 40 + afterSeq2Length), 1.5), 1.5) \u003e (max ** 1.5) ** 1.5 * 1.3) {\n          return true;\n        }\n        return false;\n      };\n      const cur = diffs[i2];\n      const lastResult = result[result.length - 1];\n      const shouldJoin = shouldJoinDiffs(lastResult, cur);\n      if (shouldJoin) {\n        shouldRepeat = true;\n        result[result.length - 1] = result[result.length - 1].join(cur);\n      } else {\n        result.push(cur);\n      }\n    }\n    diffs = result;\n  } while (counter++ \u003c 10 \u0026\u0026 shouldRepeat);\n  const newDiffs = [];\n  forEachWithNeighbors(diffs, (prev, cur, next) =\u003e {\n    let newDiff = cur;\n    function shouldMarkAsChanged(text2) {\n      return text2.length \u003e 0 \u0026\u0026 text2.trim().length \u003c= 3 \u0026\u0026 cur.seq1Range.length + cur.seq2Range.length \u003e 100;\n    }\n    const fullRange1 = sequence1.extendToFullLines(cur.seq1Range);\n    const prefix = sequence1.getText(new OffsetRange(fullRange1.start, cur.seq1Range.start));\n    if (shouldMarkAsChanged(prefix)) {\n      newDiff = newDiff.deltaStart(-prefix.length);\n    }\n    const suffix = sequence1.getText(new OffsetRange(cur.seq1Range.endExclusive, fullRange1.endExclusive));\n    if (shouldMarkAsChanged(suffix)) {\n      newDiff = newDiff.deltaEnd(suffix.length);\n    }\n    const availableSpace = SequenceDiff.fromOffsetPairs(prev ? prev.getEndExclusives() : OffsetPair.zero, next ? next.getStarts() : OffsetPair.max);\n    const result = newDiff.intersect(availableSpace);\n    if (newDiffs.length \u003e 0 \u0026\u0026 result.getStarts().equals(newDiffs[newDiffs.length - 1].getEndExclusives())) {\n      newDiffs[newDiffs.length - 1] = newDiffs[newDiffs.length - 1].join(result);\n    } else {\n      newDiffs.push(result);\n    }\n  });\n  return newDiffs;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/lineSequence.js\nvar LineSequence = class {\n  constructor(trimmedHash, lines) {\n    this.trimmedHash = trimmedHash;\n    this.lines = lines;\n  }\n  getElement(offset) {\n    return this.trimmedHash[offset];\n  }\n  get length() {\n    return this.trimmedHash.length;\n  }\n  getBoundaryScore(length) {\n    const indentationBefore = length === 0 ? 0 : getIndentation(this.lines[length - 1]);\n    const indentationAfter = length === this.lines.length ? 0 : getIndentation(this.lines[length]);\n    return 1e3 - (indentationBefore + indentationAfter);\n  }\n  getText(range2) {\n    return this.lines.slice(range2.start, range2.endExclusive).join(\"\\n\");\n  }\n  isStronglyEqual(offset1, offset2) {\n    return this.lines[offset1] === this.lines[offset2];\n  }\n};\nfunction getIndentation(str) {\n  let i2 = 0;\n  while (i2 \u003c str.length \u0026\u0026 (str.charCodeAt(i2) === 32 || str.charCodeAt(i2) === 9)) {\n    i2++;\n  }\n  return i2;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js\nvar DefaultLinesDiffComputer = class {\n  constructor() {\n    this.dynamicProgrammingDiffing = new DynamicProgrammingDiffing();\n    this.myersDiffingAlgorithm = new MyersDiffAlgorithm();\n  }\n  computeDiff(originalLines, modifiedLines, options2) {\n    if (originalLines.length \u003c= 1 \u0026\u0026 equals(originalLines, modifiedLines, (a, b) =\u003e a === b)) {\n      return new LinesDiff([], [], false);\n    }\n    if (originalLines.length === 1 \u0026\u0026 originalLines[0].length === 0 || modifiedLines.length === 1 \u0026\u0026 modifiedLines[0].length === 0) {\n      return new LinesDiff([\n        new DetailedLineRangeMapping(new LineRange(1, originalLines.length + 1), new LineRange(1, modifiedLines.length + 1), [\n          new RangeMapping(new Range(1, 1, originalLines.length, originalLines[originalLines.length - 1].length + 1), new Range(1, 1, modifiedLines.length, modifiedLines[modifiedLines.length - 1].length + 1))\n        ])\n      ], [], false);\n    }\n    const timeout2 = options2.maxComputationTimeMs === 0 ? InfiniteTimeout.instance : new DateTimeout(options2.maxComputationTimeMs);\n    const considerWhitespaceChanges = !options2.ignoreTrimWhitespace;\n    const perfectHashes = /* @__PURE__ */ new Map();\n    function getOrCreateHash(text2) {\n      let hash2 = perfectHashes.get(text2);\n      if (hash2 === void 0) {\n        hash2 = perfectHashes.size;\n        perfectHashes.set(text2, hash2);\n      }\n      return hash2;\n    }\n    const originalLinesHashes = originalLines.map((l) =\u003e getOrCreateHash(l.trim()));\n    const modifiedLinesHashes = modifiedLines.map((l) =\u003e getOrCreateHash(l.trim()));\n    const sequence1 = new LineSequence(originalLinesHashes, originalLines);\n    const sequence2 = new LineSequence(modifiedLinesHashes, modifiedLines);\n    const lineAlignmentResult = (() =\u003e {\n      if (sequence1.length + sequence2.length \u003c 1700) {\n        return this.dynamicProgrammingDiffing.compute(sequence1, sequence2, timeout2, (offset1, offset2) =\u003e originalLines[offset1] === modifiedLines[offset2] ? modifiedLines[offset2].length === 0 ? 0.1 : 1 + Math.log(1 + modifiedLines[offset2].length) : 0.99);\n      }\n      return this.myersDiffingAlgorithm.compute(sequence1, sequence2, timeout2);\n    })();\n    let lineAlignments = lineAlignmentResult.diffs;\n    let hitTimeout = lineAlignmentResult.hitTimeout;\n    lineAlignments = optimizeSequenceDiffs(sequence1, sequence2, lineAlignments);\n    lineAlignments = removeVeryShortMatchingLinesBetweenDiffs(sequence1, sequence2, lineAlignments);\n    const alignments = [];\n    const scanForWhitespaceChanges = (equalLinesCount) =\u003e {\n      if (!considerWhitespaceChanges) {\n        return;\n      }\n      for (let i2 = 0; i2 \u003c equalLinesCount; i2++) {\n        const seq1Offset = seq1LastStart + i2;\n        const seq2Offset = seq2LastStart + i2;\n        if (originalLines[seq1Offset] !== modifiedLines[seq2Offset]) {\n          const characterDiffs = this.refineDiff(originalLines, modifiedLines, new SequenceDiff(new OffsetRange(seq1Offset, seq1Offset + 1), new OffsetRange(seq2Offset, seq2Offset + 1)), timeout2, considerWhitespaceChanges, options2);\n          for (const a of characterDiffs.mappings) {\n            alignments.push(a);\n          }\n          if (characterDiffs.hitTimeout) {\n            hitTimeout = true;\n          }\n        }\n      }\n    };\n    let seq1LastStart = 0;\n    let seq2LastStart = 0;\n    for (const diff of lineAlignments) {\n      assertFn(() =\u003e diff.seq1Range.start - seq1LastStart === diff.seq2Range.start - seq2LastStart);\n      const equalLinesCount = diff.seq1Range.start - seq1LastStart;\n      scanForWhitespaceChanges(equalLinesCount);\n      seq1LastStart = diff.seq1Range.endExclusive;\n      seq2LastStart = diff.seq2Range.endExclusive;\n      const characterDiffs = this.refineDiff(originalLines, modifiedLines, diff, timeout2, considerWhitespaceChanges, options2);\n      if (characterDiffs.hitTimeout) {\n        hitTimeout = true;\n      }\n      for (const a of characterDiffs.mappings) {\n        alignments.push(a);\n      }\n    }\n    scanForWhitespaceChanges(originalLines.length - seq1LastStart);\n    const original = new ArrayText(originalLines);\n    const modified = new ArrayText(modifiedLines);\n    const changes = lineRangeMappingFromRangeMappings(alignments, original, modified);\n    let moves = [];\n    if (options2.computeMoves) {\n      moves = this.computeMoves(changes, originalLines, modifiedLines, originalLinesHashes, modifiedLinesHashes, timeout2, considerWhitespaceChanges, options2);\n    }\n    assertFn(() =\u003e {\n      function validatePosition(pos, lines) {\n        if (pos.lineNumber \u003c 1 || pos.lineNumber \u003e lines.length) {\n          return false;\n        }\n        const line = lines[pos.lineNumber - 1];\n        if (pos.column \u003c 1 || pos.column \u003e line.length + 1) {\n          return false;\n        }\n        return true;\n      }\n      function validateRange(range2, lines) {\n        if (range2.startLineNumber \u003c 1 || range2.startLineNumber \u003e lines.length + 1) {\n          return false;\n        }\n        if (range2.endLineNumberExclusive \u003c 1 || range2.endLineNumberExclusive \u003e lines.length + 1) {\n          return false;\n        }\n        return true;\n      }\n      for (const c of changes) {\n        if (!c.innerChanges) {\n          return false;\n        }\n        for (const ic of c.innerChanges) {\n          const valid = validatePosition(ic.modifiedRange.getStartPosition(), modifiedLines) \u0026\u0026 validatePosition(ic.modifiedRange.getEndPosition(), modifiedLines) \u0026\u0026 validatePosition(ic.originalRange.getStartPosition(), originalLines) \u0026\u0026 validatePosition(ic.originalRange.getEndPosition(), originalLines);\n          if (!valid) {\n            return false;\n          }\n        }\n        if (!validateRange(c.modified, modifiedLines) || !validateRange(c.original, originalLines)) {\n          return false;\n        }\n      }\n      return true;\n    });\n    return new LinesDiff(changes, moves, hitTimeout);\n  }\n  computeMoves(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout2, considerWhitespaceChanges, options2) {\n    const moves = computeMovedLines(changes, originalLines, modifiedLines, hashedOriginalLines, hashedModifiedLines, timeout2);\n    const movesWithDiffs = moves.map((m) =\u003e {\n      const moveChanges = this.refineDiff(originalLines, modifiedLines, new SequenceDiff(m.original.toOffsetRange(), m.modified.toOffsetRange()), timeout2, considerWhitespaceChanges, options2);\n      const mappings = lineRangeMappingFromRangeMappings(moveChanges.mappings, new ArrayText(originalLines), new ArrayText(modifiedLines), true);\n      return new MovedText(m, mappings);\n    });\n    return movesWithDiffs;\n  }\n  refineDiff(originalLines, modifiedLines, diff, timeout2, considerWhitespaceChanges, options2) {\n    const lineRangeMapping = toLineRangeMapping(diff);\n    const rangeMapping = lineRangeMapping.toRangeMapping2(originalLines, modifiedLines);\n    const slice1 = new LinesSliceCharSequence(originalLines, rangeMapping.originalRange, considerWhitespaceChanges);\n    const slice2 = new LinesSliceCharSequence(modifiedLines, rangeMapping.modifiedRange, considerWhitespaceChanges);\n    const diffResult = slice1.length + slice2.length \u003c 500 ? this.dynamicProgrammingDiffing.compute(slice1, slice2, timeout2) : this.myersDiffingAlgorithm.compute(slice1, slice2, timeout2);\n    const check = false;\n    let diffs = diffResult.diffs;\n    if (check) {\n      SequenceDiff.assertSorted(diffs);\n    }\n    diffs = optimizeSequenceDiffs(slice1, slice2, diffs);\n    if (check) {\n      SequenceDiff.assertSorted(diffs);\n    }\n    diffs = extendDiffsToEntireWordIfAppropriate(slice1, slice2, diffs, (seq, idx) =\u003e seq.findWordContaining(idx));\n    if (check) {\n      SequenceDiff.assertSorted(diffs);\n    }\n    if (options2.extendToSubwords) {\n      diffs = extendDiffsToEntireWordIfAppropriate(slice1, slice2, diffs, (seq, idx) =\u003e seq.findSubWordContaining(idx), true);\n      if (check) {\n        SequenceDiff.assertSorted(diffs);\n      }\n    }\n    diffs = removeShortMatches(slice1, slice2, diffs);\n    if (check) {\n      SequenceDiff.assertSorted(diffs);\n    }\n    diffs = removeVeryShortMatchingTextBetweenLongDiffs(slice1, slice2, diffs);\n    if (check) {\n      SequenceDiff.assertSorted(diffs);\n    }\n    const result = diffs.map((d) =\u003e new RangeMapping(slice1.translateRange(d.seq1Range), slice2.translateRange(d.seq2Range)));\n    if (check) {\n      RangeMapping.assertSorted(result);\n    }\n    return {\n      mappings: result,\n      hitTimeout: diffResult.hitTimeout\n    };\n  }\n};\nfunction toLineRangeMapping(sequenceDiff) {\n  return new LineRangeMapping(new LineRange(sequenceDiff.seq1Range.start + 1, sequenceDiff.seq1Range.endExclusive + 1), new LineRange(sequenceDiff.seq2Range.start + 1, sequenceDiff.seq2Range.endExclusive + 1));\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js\ninit_beforeEditPositionMapper();\ninit_combineTextEditInfos();\ninit_types();\ninit_arrays();\ninit_assert();\nvar __decorate31 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param27 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DiffEditorViewModel = class DiffEditorViewModel2 extends Disposable {\n  setActiveMovedText(movedText) {\n    this._activeMovedText.set(movedText, void 0);\n  }\n  constructor(model, _options, _diffProviderFactoryService) {\n    super();\n    this.model = model;\n    this._options = _options;\n    this._diffProviderFactoryService = _diffProviderFactoryService;\n    this._isDiffUpToDate = observableValue(this, false);\n    this.isDiffUpToDate = this._isDiffUpToDate;\n    this._diff = observableValue(this, void 0);\n    this.diff = this._diff;\n    this._unchangedRegions = observableValue(this, void 0);\n    this.unchangedRegions = derived(this, (r) =\u003e {\n      if (this._options.hideUnchangedRegions.read(r)) {\n        return this._unchangedRegions.read(r)?.regions ?? [];\n      } else {\n        transaction((tx) =\u003e {\n          for (const r2 of this._unchangedRegions.get()?.regions || []) {\n            r2.collapseAll(tx);\n          }\n        });\n        return [];\n      }\n    });\n    this.movedTextToCompare = observableValue(this, void 0);\n    this._activeMovedText = observableValue(this, void 0);\n    this._hoveredMovedText = observableValue(this, void 0);\n    this.activeMovedText = derived(this, (r) =\u003e this.movedTextToCompare.read(r) ?? this._hoveredMovedText.read(r) ?? this._activeMovedText.read(r));\n    this._cancellationTokenSource = new CancellationTokenSource();\n    this._diffProvider = derived(this, (reader) =\u003e {\n      const diffProvider = this._diffProviderFactoryService.createDiffProvider({\n        diffAlgorithm: this._options.diffAlgorithm.read(reader)\n      });\n      const onChangeSignal = observableSignalFromEvent(\"onDidChange\", diffProvider.onDidChange);\n      return {\n        diffProvider,\n        onChangeSignal\n      };\n    });\n    this._register(toDisposable(() =\u003e this._cancellationTokenSource.cancel()));\n    const contentChangedSignal = observableSignal(\"contentChangedSignal\");\n    const debouncer = this._register(new RunOnceScheduler(() =\u003e contentChangedSignal.trigger(void 0), 200));\n    this._register(autorun((reader) =\u003e {\n      const lastUnchangedRegions = this._unchangedRegions.read(reader);\n      if (!lastUnchangedRegions || lastUnchangedRegions.regions.some((r) =\u003e r.isDragged.read(reader))) {\n        return;\n      }\n      const lastUnchangedRegionsOrigRanges = lastUnchangedRegions.originalDecorationIds.map((id) =\u003e model.original.getDecorationRange(id)).map((r) =\u003e r ? LineRange.fromRangeInclusive(r) : void 0);\n      const lastUnchangedRegionsModRanges = lastUnchangedRegions.modifiedDecorationIds.map((id) =\u003e model.modified.getDecorationRange(id)).map((r) =\u003e r ? LineRange.fromRangeInclusive(r) : void 0);\n      const updatedLastUnchangedRegions = lastUnchangedRegions.regions.map((r, idx) =\u003e !lastUnchangedRegionsOrigRanges[idx] || !lastUnchangedRegionsModRanges[idx] ? void 0 : new UnchangedRegion(lastUnchangedRegionsOrigRanges[idx].startLineNumber, lastUnchangedRegionsModRanges[idx].startLineNumber, lastUnchangedRegionsOrigRanges[idx].length, r.visibleLineCountTop.read(reader), r.visibleLineCountBottom.read(reader))).filter(isDefined);\n      const newRanges = [];\n      let didChange = false;\n      for (const touching of groupAdjacentBy(updatedLastUnchangedRegions, (a, b) =\u003e a.getHiddenModifiedRange(reader).endLineNumberExclusive === b.getHiddenModifiedRange(reader).startLineNumber)) {\n        if (touching.length \u003e 1) {\n          didChange = true;\n          const sumLineCount = touching.reduce((sum2, r2) =\u003e sum2 + r2.lineCount, 0);\n          const r = new UnchangedRegion(touching[0].originalLineNumber, touching[0].modifiedLineNumber, sumLineCount, touching[0].visibleLineCountTop.get(), touching[touching.length - 1].visibleLineCountBottom.get());\n          newRanges.push(r);\n        } else {\n          newRanges.push(touching[0]);\n        }\n      }\n      if (didChange) {\n        const originalDecorationIds = model.original.deltaDecorations(lastUnchangedRegions.originalDecorationIds, newRanges.map((r) =\u003e ({ range: r.originalUnchangedRange.toInclusiveRange(), options: { description: \"unchanged\" } })));\n        const modifiedDecorationIds = model.modified.deltaDecorations(lastUnchangedRegions.modifiedDecorationIds, newRanges.map((r) =\u003e ({ range: r.modifiedUnchangedRange.toInclusiveRange(), options: { description: \"unchanged\" } })));\n        transaction((tx) =\u003e {\n          this._unchangedRegions.set({\n            regions: newRanges,\n            originalDecorationIds,\n            modifiedDecorationIds\n          }, tx);\n        });\n      }\n    }));\n    const updateUnchangedRegions = (result, tx, reader) =\u003e {\n      const newUnchangedRegions = UnchangedRegion.fromDiffs(result.changes, model.original.getLineCount(), model.modified.getLineCount(), this._options.hideUnchangedRegionsMinimumLineCount.read(reader), this._options.hideUnchangedRegionsContextLineCount.read(reader));\n      let visibleRegions = void 0;\n      const lastUnchangedRegions = this._unchangedRegions.get();\n      if (lastUnchangedRegions) {\n        const lastUnchangedRegionsOrigRanges = lastUnchangedRegions.originalDecorationIds.map((id) =\u003e model.original.getDecorationRange(id)).map((r) =\u003e r ? LineRange.fromRangeInclusive(r) : void 0);\n        const lastUnchangedRegionsModRanges = lastUnchangedRegions.modifiedDecorationIds.map((id) =\u003e model.modified.getDecorationRange(id)).map((r) =\u003e r ? LineRange.fromRangeInclusive(r) : void 0);\n        const updatedLastUnchangedRegions = filterWithPrevious(lastUnchangedRegions.regions.map((r, idx) =\u003e {\n          if (!lastUnchangedRegionsOrigRanges[idx] || !lastUnchangedRegionsModRanges[idx]) {\n            return void 0;\n          }\n          const length = lastUnchangedRegionsOrigRanges[idx].length;\n          return new UnchangedRegion(\n            lastUnchangedRegionsOrigRanges[idx].startLineNumber,\n            lastUnchangedRegionsModRanges[idx].startLineNumber,\n            length,\n            // The visible area can shrink by edits -\u003e we have to account for this\n            Math.min(r.visibleLineCountTop.get(), length),\n            Math.min(r.visibleLineCountBottom.get(), length - r.visibleLineCountTop.get())\n          );\n        }).filter(isDefined), (cur, prev) =\u003e !prev || cur.modifiedLineNumber \u003e= prev.modifiedLineNumber + prev.lineCount \u0026\u0026 cur.originalLineNumber \u003e= prev.originalLineNumber + prev.lineCount);\n        let hiddenRegions = updatedLastUnchangedRegions.map((r) =\u003e new LineRangeMapping(r.getHiddenOriginalRange(reader), r.getHiddenModifiedRange(reader)));\n        hiddenRegions = LineRangeMapping.clip(hiddenRegions, LineRange.ofLength(1, model.original.getLineCount()), LineRange.ofLength(1, model.modified.getLineCount()));\n        visibleRegions = LineRangeMapping.inverse(hiddenRegions, model.original.getLineCount(), model.modified.getLineCount());\n      }\n      const newUnchangedRegions2 = [];\n      if (visibleRegions) {\n        for (const r of newUnchangedRegions) {\n          const intersecting = visibleRegions.filter((f) =\u003e f.original.intersectsStrict(r.originalUnchangedRange) \u0026\u0026 f.modified.intersectsStrict(r.modifiedUnchangedRange));\n          newUnchangedRegions2.push(...r.setVisibleRanges(intersecting, tx));\n        }\n      } else {\n        newUnchangedRegions2.push(...newUnchangedRegions);\n      }\n      const originalDecorationIds = model.original.deltaDecorations(lastUnchangedRegions?.originalDecorationIds || [], newUnchangedRegions2.map((r) =\u003e ({ range: r.originalUnchangedRange.toInclusiveRange(), options: { description: \"unchanged\" } })));\n      const modifiedDecorationIds = model.modified.deltaDecorations(lastUnchangedRegions?.modifiedDecorationIds || [], newUnchangedRegions2.map((r) =\u003e ({ range: r.modifiedUnchangedRange.toInclusiveRange(), options: { description: \"unchanged\" } })));\n      this._unchangedRegions.set({\n        regions: newUnchangedRegions2,\n        originalDecorationIds,\n        modifiedDecorationIds\n      }, tx);\n    };\n    this._register(model.modified.onDidChangeContent((e) =\u003e {\n      const diff = this._diff.get();\n      if (diff) {\n        const textEdits = TextEditInfo.fromModelContentChanges(e.changes);\n        const result = applyModifiedEdits(this._lastDiff, textEdits, model.original, model.modified);\n        if (result) {\n          this._lastDiff = result;\n          transaction((tx) =\u003e {\n            this._diff.set(DiffState.fromDiffResult(this._lastDiff), tx);\n            updateUnchangedRegions(result, tx);\n            const currentSyncedMovedText = this.movedTextToCompare.get();\n            this.movedTextToCompare.set(currentSyncedMovedText ? this._lastDiff.moves.find((m) =\u003e m.lineRangeMapping.modified.intersect(currentSyncedMovedText.lineRangeMapping.modified)) : void 0, tx);\n          });\n        }\n      }\n      this._isDiffUpToDate.set(false, void 0);\n      debouncer.schedule();\n    }));\n    this._register(model.original.onDidChangeContent((e) =\u003e {\n      const diff = this._diff.get();\n      if (diff) {\n        const textEdits = TextEditInfo.fromModelContentChanges(e.changes);\n        const result = applyOriginalEdits(this._lastDiff, textEdits, model.original, model.modified);\n        if (result) {\n          this._lastDiff = result;\n          transaction((tx) =\u003e {\n            this._diff.set(DiffState.fromDiffResult(this._lastDiff), tx);\n            updateUnchangedRegions(result, tx);\n            const currentSyncedMovedText = this.movedTextToCompare.get();\n            this.movedTextToCompare.set(currentSyncedMovedText ? this._lastDiff.moves.find((m) =\u003e m.lineRangeMapping.modified.intersect(currentSyncedMovedText.lineRangeMapping.modified)) : void 0, tx);\n          });\n        }\n      }\n      this._isDiffUpToDate.set(false, void 0);\n      debouncer.schedule();\n    }));\n    this._register(autorunWithStore(async (reader, store) =\u003e {\n      this._options.hideUnchangedRegionsMinimumLineCount.read(reader);\n      this._options.hideUnchangedRegionsContextLineCount.read(reader);\n      debouncer.cancel();\n      contentChangedSignal.read(reader);\n      const documentDiffProvider = this._diffProvider.read(reader);\n      documentDiffProvider.onChangeSignal.read(reader);\n      readHotReloadableExport(DefaultLinesDiffComputer, reader);\n      readHotReloadableExport(optimizeSequenceDiffs, reader);\n      this._isDiffUpToDate.set(false, void 0);\n      let originalTextEditInfos = [];\n      store.add(model.original.onDidChangeContent((e) =\u003e {\n        const edits = TextEditInfo.fromModelContentChanges(e.changes);\n        originalTextEditInfos = combineTextEditInfos(originalTextEditInfos, edits);\n      }));\n      let modifiedTextEditInfos = [];\n      store.add(model.modified.onDidChangeContent((e) =\u003e {\n        const edits = TextEditInfo.fromModelContentChanges(e.changes);\n        modifiedTextEditInfos = combineTextEditInfos(modifiedTextEditInfos, edits);\n      }));\n      let result = await documentDiffProvider.diffProvider.computeDiff(model.original, model.modified, {\n        ignoreTrimWhitespace: this._options.ignoreTrimWhitespace.read(reader),\n        maxComputationTimeMs: this._options.maxComputationTimeMs.read(reader),\n        computeMoves: this._options.showMoves.read(reader)\n      }, this._cancellationTokenSource.token);\n      if (this._cancellationTokenSource.token.isCancellationRequested) {\n        return;\n      }\n      if (model.original.isDisposed() || model.modified.isDisposed()) {\n        return;\n      }\n      result = normalizeDocumentDiff(result, model.original, model.modified);\n      result = applyOriginalEdits(result, originalTextEditInfos, model.original, model.modified) ?? result;\n      result = applyModifiedEdits(result, modifiedTextEditInfos, model.original, model.modified) ?? result;\n      transaction((tx) =\u003e {\n        updateUnchangedRegions(result, tx);\n        this._lastDiff = result;\n        const state = DiffState.fromDiffResult(result);\n        this._diff.set(state, tx);\n        this._isDiffUpToDate.set(true, tx);\n        const currentSyncedMovedText = this.movedTextToCompare.get();\n        this.movedTextToCompare.set(currentSyncedMovedText ? this._lastDiff.moves.find((m) =\u003e m.lineRangeMapping.modified.intersect(currentSyncedMovedText.lineRangeMapping.modified)) : void 0, tx);\n      });\n    }));\n  }\n  ensureModifiedLineIsVisible(lineNumber, preference, tx) {\n    if (this.diff.get()?.mappings.length === 0) {\n      return;\n    }\n    const unchangedRegions = this._unchangedRegions.get()?.regions || [];\n    for (const r of unchangedRegions) {\n      if (r.getHiddenModifiedRange(void 0).contains(lineNumber)) {\n        r.showModifiedLine(lineNumber, preference, tx);\n        return;\n      }\n    }\n  }\n  ensureOriginalLineIsVisible(lineNumber, preference, tx) {\n    if (this.diff.get()?.mappings.length === 0) {\n      return;\n    }\n    const unchangedRegions = this._unchangedRegions.get()?.regions || [];\n    for (const r of unchangedRegions) {\n      if (r.getHiddenOriginalRange(void 0).contains(lineNumber)) {\n        r.showOriginalLine(lineNumber, preference, tx);\n        return;\n      }\n    }\n  }\n  async waitForDiff() {\n    await waitForState(this.isDiffUpToDate, (s) =\u003e s);\n  }\n  serializeState() {\n    const regions = this._unchangedRegions.get();\n    return {\n      collapsedRegions: regions?.regions.map((r) =\u003e ({ range: r.getHiddenModifiedRange(void 0).serialize() }))\n    };\n  }\n  restoreSerializedState(state) {\n    const ranges = state.collapsedRegions?.map((r) =\u003e LineRange.deserialize(r.range));\n    const regions = this._unchangedRegions.get();\n    if (!regions || !ranges) {\n      return;\n    }\n    transaction((tx) =\u003e {\n      for (const r of regions.regions) {\n        for (const range2 of ranges) {\n          if (r.modifiedUnchangedRange.intersect(range2)) {\n            r.setHiddenModifiedRange(range2, tx);\n            break;\n          }\n        }\n      }\n    });\n  }\n};\nDiffEditorViewModel = __decorate31([\n  __param27(2, IDiffProviderFactoryService)\n], DiffEditorViewModel);\nfunction normalizeDocumentDiff(diff, original, modified) {\n  return {\n    changes: diff.changes.map((c) =\u003e new DetailedLineRangeMapping(c.original, c.modified, c.innerChanges ? c.innerChanges.map((i2) =\u003e normalizeRangeMapping(i2, original, modified)) : void 0)),\n    moves: diff.moves,\n    identical: diff.identical,\n    quitEarly: diff.quitEarly\n  };\n}\nfunction normalizeRangeMapping(rangeMapping, original, modified) {\n  let originalRange = rangeMapping.originalRange;\n  let modifiedRange = rangeMapping.modifiedRange;\n  if (originalRange.startColumn === 1 \u0026\u0026 modifiedRange.startColumn === 1 \u0026\u0026 (originalRange.endColumn !== 1 || modifiedRange.endColumn !== 1) \u0026\u0026 originalRange.endColumn === original.getLineMaxColumn(originalRange.endLineNumber) \u0026\u0026 modifiedRange.endColumn === modified.getLineMaxColumn(modifiedRange.endLineNumber) \u0026\u0026 originalRange.endLineNumber \u003c original.getLineCount() \u0026\u0026 modifiedRange.endLineNumber \u003c modified.getLineCount()) {\n    originalRange = originalRange.setEndPosition(originalRange.endLineNumber + 1, 1);\n    modifiedRange = modifiedRange.setEndPosition(modifiedRange.endLineNumber + 1, 1);\n  }\n  return new RangeMapping(originalRange, modifiedRange);\n}\nvar DiffState = class _DiffState {\n  static fromDiffResult(result) {\n    return new _DiffState(result.changes.map((c) =\u003e new DiffMapping(c)), result.moves || [], result.identical, result.quitEarly);\n  }\n  constructor(mappings, movedTexts, identical, quitEarly) {\n    this.mappings = mappings;\n    this.movedTexts = movedTexts;\n    this.identical = identical;\n    this.quitEarly = quitEarly;\n  }\n};\nvar DiffMapping = class {\n  constructor(lineRangeMapping) {\n    this.lineRangeMapping = lineRangeMapping;\n  }\n};\nvar UnchangedRegion = class _UnchangedRegion {\n  static fromDiffs(changes, originalLineCount, modifiedLineCount, minHiddenLineCount, minContext) {\n    const inversedMappings = DetailedLineRangeMapping.inverse(changes, originalLineCount, modifiedLineCount);\n    const result = [];\n    for (const mapping of inversedMappings) {\n      let origStart = mapping.original.startLineNumber;\n      let modStart = mapping.modified.startLineNumber;\n      let length = mapping.original.length;\n      const atStart = origStart === 1 \u0026\u0026 modStart === 1;\n      const atEnd = origStart + length === originalLineCount + 1 \u0026\u0026 modStart + length === modifiedLineCount + 1;\n      if ((atStart || atEnd) \u0026\u0026 length \u003e= minContext + minHiddenLineCount) {\n        if (atStart \u0026\u0026 !atEnd) {\n          length -= minContext;\n        }\n        if (atEnd \u0026\u0026 !atStart) {\n          origStart += minContext;\n          modStart += minContext;\n          length -= minContext;\n        }\n        result.push(new _UnchangedRegion(origStart, modStart, length, 0, 0));\n      } else if (length \u003e= minContext * 2 + minHiddenLineCount) {\n        origStart += minContext;\n        modStart += minContext;\n        length -= minContext * 2;\n        result.push(new _UnchangedRegion(origStart, modStart, length, 0, 0));\n      }\n    }\n    return result;\n  }\n  get originalUnchangedRange() {\n    return LineRange.ofLength(this.originalLineNumber, this.lineCount);\n  }\n  get modifiedUnchangedRange() {\n    return LineRange.ofLength(this.modifiedLineNumber, this.lineCount);\n  }\n  constructor(originalLineNumber, modifiedLineNumber, lineCount, visibleLineCountTop, visibleLineCountBottom) {\n    this.originalLineNumber = originalLineNumber;\n    this.modifiedLineNumber = modifiedLineNumber;\n    this.lineCount = lineCount;\n    this._visibleLineCountTop = observableValue(this, 0);\n    this.visibleLineCountTop = this._visibleLineCountTop;\n    this._visibleLineCountBottom = observableValue(this, 0);\n    this.visibleLineCountBottom = this._visibleLineCountBottom;\n    this._shouldHideControls = derived(this, (reader) =\u003e (\n      /** @description isVisible */\n      this.visibleLineCountTop.read(reader) + this.visibleLineCountBottom.read(reader) === this.lineCount \u0026\u0026 !this.isDragged.read(reader)\n    ));\n    this.isDragged = observableValue(this, void 0);\n    const visibleLineCountTop2 = Math.max(Math.min(visibleLineCountTop, this.lineCount), 0);\n    const visibleLineCountBottom2 = Math.max(Math.min(visibleLineCountBottom, this.lineCount - visibleLineCountTop), 0);\n    softAssert(visibleLineCountTop === visibleLineCountTop2);\n    softAssert(visibleLineCountBottom === visibleLineCountBottom2);\n    this._visibleLineCountTop.set(visibleLineCountTop2, void 0);\n    this._visibleLineCountBottom.set(visibleLineCountBottom2, void 0);\n  }\n  setVisibleRanges(visibleRanges, tx) {\n    const result = [];\n    const hiddenModified = new LineRangeSet(visibleRanges.map((r) =\u003e r.modified)).subtractFrom(this.modifiedUnchangedRange);\n    let originalStartLineNumber = this.originalLineNumber;\n    let modifiedStartLineNumber = this.modifiedLineNumber;\n    const modifiedEndLineNumberEx = this.modifiedLineNumber + this.lineCount;\n    if (hiddenModified.ranges.length === 0) {\n      this.showAll(tx);\n      result.push(this);\n    } else {\n      let i2 = 0;\n      for (const r of hiddenModified.ranges) {\n        const isLast = i2 === hiddenModified.ranges.length - 1;\n        i2++;\n        const length = (isLast ? modifiedEndLineNumberEx : r.endLineNumberExclusive) - modifiedStartLineNumber;\n        const newR = new _UnchangedRegion(originalStartLineNumber, modifiedStartLineNumber, length, 0, 0);\n        newR.setHiddenModifiedRange(r, tx);\n        result.push(newR);\n        originalStartLineNumber = newR.originalUnchangedRange.endLineNumberExclusive;\n        modifiedStartLineNumber = newR.modifiedUnchangedRange.endLineNumberExclusive;\n      }\n    }\n    return result;\n  }\n  shouldHideControls(reader) {\n    return this._shouldHideControls.read(reader);\n  }\n  getHiddenOriginalRange(reader) {\n    return LineRange.ofLength(this.originalLineNumber + this._visibleLineCountTop.read(reader), this.lineCount - this._visibleLineCountTop.read(reader) - this._visibleLineCountBottom.read(reader));\n  }\n  getHiddenModifiedRange(reader) {\n    return LineRange.ofLength(this.modifiedLineNumber + this._visibleLineCountTop.read(reader), this.lineCount - this._visibleLineCountTop.read(reader) - this._visibleLineCountBottom.read(reader));\n  }\n  setHiddenModifiedRange(range2, tx) {\n    const visibleLineCountTop = range2.startLineNumber - this.modifiedLineNumber;\n    const visibleLineCountBottom = this.modifiedLineNumber + this.lineCount - range2.endLineNumberExclusive;\n    this.setState(visibleLineCountTop, visibleLineCountBottom, tx);\n  }\n  getMaxVisibleLineCountTop() {\n    return this.lineCount - this._visibleLineCountBottom.get();\n  }\n  getMaxVisibleLineCountBottom() {\n    return this.lineCount - this._visibleLineCountTop.get();\n  }\n  showMoreAbove(count = 10, tx) {\n    const maxVisibleLineCountTop = this.getMaxVisibleLineCountTop();\n    this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get() + count, maxVisibleLineCountTop), tx);\n  }\n  showMoreBelow(count = 10, tx) {\n    const maxVisibleLineCountBottom = this.lineCount - this._visibleLineCountTop.get();\n    this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get() + count, maxVisibleLineCountBottom), tx);\n  }\n  showAll(tx) {\n    this._visibleLineCountBottom.set(this.lineCount - this._visibleLineCountTop.get(), tx);\n  }\n  showModifiedLine(lineNumber, preference, tx) {\n    const top = lineNumber + 1 - (this.modifiedLineNumber + this._visibleLineCountTop.get());\n    const bottom = this.modifiedLineNumber - this._visibleLineCountBottom.get() + this.lineCount - lineNumber;\n    if (preference === 0 \u0026\u0026 top \u003c bottom || preference === 1) {\n      this._visibleLineCountTop.set(this._visibleLineCountTop.get() + top, tx);\n    } else {\n      this._visibleLineCountBottom.set(this._visibleLineCountBottom.get() + bottom, tx);\n    }\n  }\n  showOriginalLine(lineNumber, preference, tx) {\n    const top = lineNumber - this.originalLineNumber;\n    const bottom = this.originalLineNumber + this.lineCount - lineNumber;\n    if (preference === 0 \u0026\u0026 top \u003c bottom || preference === 1) {\n      this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get() + bottom - top, this.getMaxVisibleLineCountTop()), tx);\n    } else {\n      this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get() + top - bottom, this.getMaxVisibleLineCountBottom()), tx);\n    }\n  }\n  collapseAll(tx) {\n    this._visibleLineCountTop.set(0, tx);\n    this._visibleLineCountBottom.set(0, tx);\n  }\n  setState(visibleLineCountTop, visibleLineCountBottom, tx) {\n    visibleLineCountTop = Math.max(Math.min(visibleLineCountTop, this.lineCount), 0);\n    visibleLineCountBottom = Math.max(Math.min(visibleLineCountBottom, this.lineCount - visibleLineCountTop), 0);\n    this._visibleLineCountTop.set(visibleLineCountTop, tx);\n    this._visibleLineCountBottom.set(visibleLineCountBottom, tx);\n  }\n};\nfunction applyOriginalEdits(diff, textEdits, originalTextModel, modifiedTextModel) {\n  return void 0;\n}\nfunction applyModifiedEdits(diff, textEdits, originalTextModel, modifiedTextModel) {\n  return void 0;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js\ninit_dom();\ninit_actions();\ninit_codicons();\ninit_lifecycle();\ninit_platform();\ninit_themables();\ninit_nls();\nvar InlineDiffDeletedCodeMargin = class extends Disposable {\n  get visibility() {\n    return this._visibility;\n  }\n  set visibility(_visibility) {\n    if (this._visibility !== _visibility) {\n      this._visibility = _visibility;\n      this._diffActions.style.visibility = _visibility ? \"visible\" : \"hidden\";\n    }\n  }\n  constructor(_getViewZoneId, _marginDomNode, _modifiedEditor, _diff, _editor, _viewLineCounts, _originalTextModel, _contextMenuService, _clipboardService) {\n    super();\n    this._getViewZoneId = _getViewZoneId;\n    this._marginDomNode = _marginDomNode;\n    this._modifiedEditor = _modifiedEditor;\n    this._diff = _diff;\n    this._editor = _editor;\n    this._viewLineCounts = _viewLineCounts;\n    this._originalTextModel = _originalTextModel;\n    this._contextMenuService = _contextMenuService;\n    this._clipboardService = _clipboardService;\n    this._visibility = false;\n    this._marginDomNode.style.zIndex = \"10\";\n    this._diffActions = document.createElement(\"div\");\n    this._diffActions.className = ThemeIcon.asClassName(Codicon.lightBulb) + \" lightbulb-glyph\";\n    this._diffActions.style.position = \"absolute\";\n    const lineHeight = this._modifiedEditor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._diffActions.style.right = \"0px\";\n    this._diffActions.style.visibility = \"hidden\";\n    this._diffActions.style.height = `${lineHeight}px`;\n    this._diffActions.style.lineHeight = `${lineHeight}px`;\n    this._marginDomNode.appendChild(this._diffActions);\n    let currentLineNumberOffset = 0;\n    const useShadowDOM = _modifiedEditor.getOption(\n      143\n      /* EditorOption.useShadowDOM */\n    ) \u0026\u0026 !isIOS;\n    const showContextMenu = (x, y) =\u003e {\n      this._contextMenuService.showContextMenu({\n        domForShadowRoot: useShadowDOM ? _modifiedEditor.getDomNode() ?? void 0 : void 0,\n        getAnchor: () =\u003e ({ x, y }),\n        getActions: () =\u003e {\n          const actions = [];\n          const isDeletion3 = _diff.modified.isEmpty;\n          actions.push(new Action(\"diff.clipboard.copyDeletedContent\", isDeletion3 ? _diff.original.length \u003e 1 ? localize(109, \"Copy deleted lines\") : localize(110, \"Copy deleted line\") : _diff.original.length \u003e 1 ? localize(111, \"Copy changed lines\") : localize(112, \"Copy changed line\"), void 0, true, async () =\u003e {\n            const originalText = this._originalTextModel.getValueInRange(_diff.original.toExclusiveRange());\n            await this._clipboardService.writeText(originalText);\n          }));\n          if (_diff.original.length \u003e 1) {\n            actions.push(new Action(\"diff.clipboard.copyDeletedLineContent\", isDeletion3 ? localize(113, \"Copy deleted line ({0})\", _diff.original.startLineNumber + currentLineNumberOffset) : localize(114, \"Copy changed line ({0})\", _diff.original.startLineNumber + currentLineNumberOffset), void 0, true, async () =\u003e {\n              let lineContent = this._originalTextModel.getLineContent(_diff.original.startLineNumber + currentLineNumberOffset);\n              if (lineContent === \"\") {\n                const eof = this._originalTextModel.getEndOfLineSequence();\n                lineContent = eof === 0 ? \"\\n\" : \"\\r\\n\";\n              }\n              await this._clipboardService.writeText(lineContent);\n            }));\n          }\n          const readOnly = _modifiedEditor.getOption(\n            103\n            /* EditorOption.readOnly */\n          );\n          if (!readOnly) {\n            actions.push(new Action(\"diff.inline.revertChange\", localize(115, \"Revert this change\"), void 0, true, async () =\u003e {\n              this._editor.revert(this._diff);\n            }));\n          }\n          return actions;\n        },\n        autoSelectFirstItem: true\n      });\n    };\n    this._register(addStandardDisposableListener(this._diffActions, \"mousedown\", (e) =\u003e {\n      if (!e.leftButton) {\n        return;\n      }\n      const { top, height } = getDomNodePagePosition(this._diffActions);\n      const pad = Math.floor(lineHeight / 3);\n      e.preventDefault();\n      showContextMenu(e.posx, top + height + pad);\n    }));\n    this._register(_modifiedEditor.onMouseMove((e) =\u003e {\n      if ((e.target.type === 8 || e.target.type === 5) \u0026\u0026 e.target.detail.viewZoneId === this._getViewZoneId()) {\n        currentLineNumberOffset = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, lineHeight);\n        this.visibility = true;\n      } else {\n        this.visibility = false;\n      }\n    }));\n    this._register(_modifiedEditor.onMouseDown((e) =\u003e {\n      if (!e.event.leftButton) {\n        return;\n      }\n      if (e.target.type === 8 || e.target.type === 5) {\n        const viewZoneId = e.target.detail.viewZoneId;\n        if (viewZoneId === this._getViewZoneId()) {\n          e.event.preventDefault();\n          currentLineNumberOffset = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, lineHeight);\n          showContextMenu(e.event.posx, e.event.posy + lineHeight);\n        }\n      }\n    }));\n  }\n  _updateLightBulbPosition(marginDomNode, y, lineHeight) {\n    const { top } = getDomNodePagePosition(marginDomNode);\n    const offset = y - top;\n    const lineNumberOffset = Math.floor(offset / lineHeight);\n    const newTop = lineNumberOffset * lineHeight;\n    this._diffActions.style.top = `${newTop}px`;\n    if (this._viewLineCounts) {\n      let acc = 0;\n      for (let i2 = 0; i2 \u003c this._viewLineCounts.length; i2++) {\n        acc += this._viewLineCounts[i2];\n        if (lineNumberOffset \u003c acc) {\n          return i2;\n        }\n      }\n    }\n    return lineNumberOffset;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js\ninit_stringBuilder();\nvar ttPolicy3 = createTrustedTypesPolicy(\"diffEditorWidget\", { createHTML: (value) =\u003e value });\nfunction renderLines(source, options2, decorations, domNode, noExtra = false) {\n  applyFontInfo(domNode, options2.fontInfo);\n  const hasCharChanges = decorations.length \u003e 0;\n  const sb = new StringBuilder(1e4);\n  let maxCharsPerLine = 0;\n  let renderedLineCount = 0;\n  const viewLineCounts = [];\n  for (let lineIndex = 0; lineIndex \u003c source.lineTokens.length; lineIndex++) {\n    const lineNumber = lineIndex + 1;\n    const lineTokens = source.lineTokens[lineIndex];\n    const lineBreakData = source.lineBreakData[lineIndex];\n    const actualDecorations = LineDecoration.filter(decorations, lineNumber, 1, Number.MAX_SAFE_INTEGER);\n    if (lineBreakData) {\n      let lastBreakOffset = 0;\n      for (const breakOffset of lineBreakData.breakOffsets) {\n        const viewLineTokens = lineTokens.sliceAndInflate(lastBreakOffset, breakOffset, 0);\n        maxCharsPerLine = Math.max(maxCharsPerLine, renderOriginalLine(renderedLineCount, viewLineTokens, LineDecoration.extractWrapped(actualDecorations, lastBreakOffset, breakOffset), hasCharChanges, source.mightContainNonBasicASCII, source.mightContainRTL, options2, sb, noExtra));\n        renderedLineCount++;\n        lastBreakOffset = breakOffset;\n      }\n      viewLineCounts.push(lineBreakData.breakOffsets.length);\n    } else {\n      viewLineCounts.push(1);\n      maxCharsPerLine = Math.max(maxCharsPerLine, renderOriginalLine(renderedLineCount, lineTokens, actualDecorations, hasCharChanges, source.mightContainNonBasicASCII, source.mightContainRTL, options2, sb, noExtra));\n      renderedLineCount++;\n    }\n  }\n  maxCharsPerLine += options2.scrollBeyondLastColumn;\n  const html3 = sb.build();\n  const trustedhtml = ttPolicy3 ? ttPolicy3.createHTML(html3) : html3;\n  domNode.innerHTML = trustedhtml;\n  const minWidthInPx = maxCharsPerLine * options2.typicalHalfwidthCharacterWidth;\n  return {\n    heightInLines: renderedLineCount,\n    minWidthInPx,\n    viewLineCounts\n  };\n}\nvar LineSource = class {\n  constructor(lineTokens, lineBreakData = lineTokens.map((t) =\u003e null), mightContainNonBasicASCII = true, mightContainRTL = true) {\n    this.lineTokens = lineTokens;\n    this.lineBreakData = lineBreakData;\n    this.mightContainNonBasicASCII = mightContainNonBasicASCII;\n    this.mightContainRTL = mightContainRTL;\n  }\n};\nvar RenderOptions = class _RenderOptions {\n  static fromEditor(editor2) {\n    const modifiedEditorOptions = editor2.getOptions();\n    const fontInfo = modifiedEditorOptions.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const layoutInfo = modifiedEditorOptions.get(\n      164\n      /* EditorOption.layoutInfo */\n    );\n    return new _RenderOptions(editor2.getModel()?.getOptions().tabSize || 0, fontInfo, modifiedEditorOptions.get(\n      40\n      /* EditorOption.disableMonospaceOptimizations */\n    ), fontInfo.typicalHalfwidthCharacterWidth, modifiedEditorOptions.get(\n      117\n      /* EditorOption.scrollBeyondLastColumn */\n    ), modifiedEditorOptions.get(\n      75\n      /* EditorOption.lineHeight */\n    ), layoutInfo.decorationsWidth, modifiedEditorOptions.get(\n      132\n      /* EditorOption.stopRenderingLineAfter */\n    ), modifiedEditorOptions.get(\n      112\n      /* EditorOption.renderWhitespace */\n    ), modifiedEditorOptions.get(\n      107\n      /* EditorOption.renderControlCharacters */\n    ), modifiedEditorOptions.get(\n      60\n      /* EditorOption.fontLigatures */\n    ), modifiedEditorOptions.get(\n      116\n      /* EditorOption.scrollbar */\n    ).verticalScrollbarSize);\n  }\n  constructor(tabSize, fontInfo, disableMonospaceOptimizations, typicalHalfwidthCharacterWidth, scrollBeyondLastColumn, lineHeight, lineDecorationsWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures, verticalScrollbarSize, setWidth = true) {\n    this.tabSize = tabSize;\n    this.fontInfo = fontInfo;\n    this.disableMonospaceOptimizations = disableMonospaceOptimizations;\n    this.typicalHalfwidthCharacterWidth = typicalHalfwidthCharacterWidth;\n    this.scrollBeyondLastColumn = scrollBeyondLastColumn;\n    this.lineHeight = lineHeight;\n    this.lineDecorationsWidth = lineDecorationsWidth;\n    this.stopRenderingLineAfter = stopRenderingLineAfter;\n    this.renderWhitespace = renderWhitespace;\n    this.renderControlCharacters = renderControlCharacters;\n    this.fontLigatures = fontLigatures;\n    this.verticalScrollbarSize = verticalScrollbarSize;\n    this.setWidth = setWidth;\n  }\n  withSetWidth(setWidth) {\n    return new _RenderOptions(this.tabSize, this.fontInfo, this.disableMonospaceOptimizations, this.typicalHalfwidthCharacterWidth, this.scrollBeyondLastColumn, this.lineHeight, this.lineDecorationsWidth, this.stopRenderingLineAfter, this.renderWhitespace, this.renderControlCharacters, this.fontLigatures, this.verticalScrollbarSize, setWidth);\n  }\n  withScrollBeyondLastColumn(scrollBeyondLastColumn) {\n    return new _RenderOptions(this.tabSize, this.fontInfo, this.disableMonospaceOptimizations, this.typicalHalfwidthCharacterWidth, scrollBeyondLastColumn, this.lineHeight, this.lineDecorationsWidth, this.stopRenderingLineAfter, this.renderWhitespace, this.renderControlCharacters, this.fontLigatures, this.verticalScrollbarSize, this.setWidth);\n  }\n};\nfunction renderOriginalLine(viewLineIdx, lineTokens, decorations, hasCharChanges, mightContainNonBasicASCII, mightContainRTL, options2, sb, noExtra) {\n  sb.appendString('\u003cdiv class=\"view-line');\n  if (!noExtra \u0026\u0026 !hasCharChanges) {\n    sb.appendString(\" char-delete\");\n  }\n  sb.appendString('\" style=\"top:');\n  sb.appendString(String(viewLineIdx * options2.lineHeight));\n  if (options2.setWidth) {\n    sb.appendString('px;width:1000000px;\"\u003e');\n  } else {\n    sb.appendString('px;\"\u003e');\n  }\n  const lineContent = lineTokens.getLineContent();\n  const isBasicASCII2 = ViewLineRenderingData.isBasicASCII(lineContent, mightContainNonBasicASCII);\n  const containsRTL2 = ViewLineRenderingData.containsRTL(lineContent, isBasicASCII2, mightContainRTL);\n  const output = renderViewLine(new RenderLineInput(\n    options2.fontInfo.isMonospace \u0026\u0026 !options2.disableMonospaceOptimizations,\n    options2.fontInfo.canUseHalfwidthRightwardsArrow,\n    lineContent,\n    false,\n    isBasicASCII2,\n    containsRTL2,\n    0,\n    lineTokens,\n    decorations,\n    options2.tabSize,\n    0,\n    options2.fontInfo.spaceWidth,\n    options2.fontInfo.middotWidth,\n    options2.fontInfo.wsmiddotWidth,\n    options2.stopRenderingLineAfter,\n    options2.renderWhitespace,\n    options2.renderControlCharacters,\n    options2.fontLigatures !== EditorFontLigatures.OFF,\n    null,\n    // Send no selections, original line cannot be selected\n    null,\n    options2.verticalScrollbarSize\n  ), sb);\n  sb.appendString(\"\u003c/div\u003e\");\n  return output.characterMapping.getHorizontalOffset(output.characterMapping.length);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js\ninit_utils5();\ninit_lineRange();\ninit_position();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/clipboard/common/clipboardService.js\ninit_instantiation();\nvar IClipboardService = createDecorator(\"clipboardService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextview/browser/contextView.js\ninit_instantiation();\nvar IContextViewService = createDecorator(\"contextViewService\");\nvar IContextMenuService = createDecorator(\"contextMenuService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js\ninit_range();\nvar __decorate32 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param28 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DiffEditorViewZones = class DiffEditorViewZones2 extends Disposable {\n  constructor(_targetWindow, _editors, _diffModel, _options, _diffEditorWidget, _canIgnoreViewZoneUpdateEvent, _origViewZonesToIgnore, _modViewZonesToIgnore, _clipboardService, _contextMenuService) {\n    super();\n    this._targetWindow = _targetWindow;\n    this._editors = _editors;\n    this._diffModel = _diffModel;\n    this._options = _options;\n    this._diffEditorWidget = _diffEditorWidget;\n    this._canIgnoreViewZoneUpdateEvent = _canIgnoreViewZoneUpdateEvent;\n    this._origViewZonesToIgnore = _origViewZonesToIgnore;\n    this._modViewZonesToIgnore = _modViewZonesToIgnore;\n    this._clipboardService = _clipboardService;\n    this._contextMenuService = _contextMenuService;\n    this._originalTopPadding = observableValue(this, 0);\n    this._originalScrollOffset = observableValue(this, 0);\n    this._originalScrollOffsetAnimated = animatedObservable(this._targetWindow, this._originalScrollOffset, this._store);\n    this._modifiedTopPadding = observableValue(this, 0);\n    this._modifiedScrollOffset = observableValue(this, 0);\n    this._modifiedScrollOffsetAnimated = animatedObservable(this._targetWindow, this._modifiedScrollOffset, this._store);\n    const state = observableValue(\"invalidateAlignmentsState\", 0);\n    const updateImmediately = this._register(new RunOnceScheduler(() =\u003e {\n      state.set(state.get() + 1, void 0);\n    }, 0));\n    this._register(this._editors.original.onDidChangeViewZones((_args) =\u003e {\n      if (!this._canIgnoreViewZoneUpdateEvent()) {\n        updateImmediately.schedule();\n      }\n    }));\n    this._register(this._editors.modified.onDidChangeViewZones((_args) =\u003e {\n      if (!this._canIgnoreViewZoneUpdateEvent()) {\n        updateImmediately.schedule();\n      }\n    }));\n    this._register(this._editors.original.onDidChangeConfiguration((args) =\u003e {\n      if (args.hasChanged(\n        165\n        /* EditorOption.wrappingInfo */\n      ) || args.hasChanged(\n        75\n        /* EditorOption.lineHeight */\n      )) {\n        updateImmediately.schedule();\n      }\n    }));\n    this._register(this._editors.modified.onDidChangeConfiguration((args) =\u003e {\n      if (args.hasChanged(\n        165\n        /* EditorOption.wrappingInfo */\n      ) || args.hasChanged(\n        75\n        /* EditorOption.lineHeight */\n      )) {\n        updateImmediately.schedule();\n      }\n    }));\n    const originalModelTokenizationCompleted = this._diffModel.map((m) =\u003e m ? observableFromEvent(\n      this,\n      m.model.original.onDidChangeTokens,\n      () =\u003e m.model.original.tokenization.backgroundTokenizationState === 2\n      /* BackgroundTokenizationState.Completed */\n    ) : void 0).map((m, reader) =\u003e m?.read(reader));\n    const alignments = derived((reader) =\u003e {\n      const diffModel = this._diffModel.read(reader);\n      const diff = diffModel?.diff.read(reader);\n      if (!diffModel || !diff) {\n        return null;\n      }\n      state.read(reader);\n      const renderSideBySide = this._options.renderSideBySide.read(reader);\n      const innerHunkAlignment = renderSideBySide;\n      return computeRangeAlignment(this._editors.original, this._editors.modified, diff.mappings, this._origViewZonesToIgnore, this._modViewZonesToIgnore, innerHunkAlignment);\n    });\n    const alignmentsSyncedMovedText = derived((reader) =\u003e {\n      const syncedMovedText = this._diffModel.read(reader)?.movedTextToCompare.read(reader);\n      if (!syncedMovedText) {\n        return null;\n      }\n      state.read(reader);\n      const mappings = syncedMovedText.changes.map((c) =\u003e new DiffMapping(c));\n      return computeRangeAlignment(this._editors.original, this._editors.modified, mappings, this._origViewZonesToIgnore, this._modViewZonesToIgnore, true);\n    });\n    function createFakeLinesDiv() {\n      const r = document.createElement(\"div\");\n      r.className = \"diagonal-fill\";\n      return r;\n    }\n    const alignmentViewZonesDisposables = this._register(new DisposableStore());\n    this.viewZones = derived(this, (reader) =\u003e {\n      alignmentViewZonesDisposables.clear();\n      const alignmentsVal = alignments.read(reader) || [];\n      const origViewZones = [];\n      const modViewZones = [];\n      const modifiedTopPaddingVal = this._modifiedTopPadding.read(reader);\n      if (modifiedTopPaddingVal \u003e 0) {\n        modViewZones.push({\n          afterLineNumber: 0,\n          domNode: document.createElement(\"div\"),\n          heightInPx: modifiedTopPaddingVal,\n          showInHiddenAreas: true,\n          suppressMouseDown: true\n        });\n      }\n      const originalTopPaddingVal = this._originalTopPadding.read(reader);\n      if (originalTopPaddingVal \u003e 0) {\n        origViewZones.push({\n          afterLineNumber: 0,\n          domNode: document.createElement(\"div\"),\n          heightInPx: originalTopPaddingVal,\n          showInHiddenAreas: true,\n          suppressMouseDown: true\n        });\n      }\n      const renderSideBySide = this._options.renderSideBySide.read(reader);\n      const deletedCodeLineBreaksComputer = !renderSideBySide ? this._editors.modified._getViewModel()?.createLineBreaksComputer() : void 0;\n      if (deletedCodeLineBreaksComputer) {\n        const originalModel = this._editors.original.getModel();\n        for (const a of alignmentsVal) {\n          if (a.diff) {\n            for (let i2 = a.originalRange.startLineNumber; i2 \u003c a.originalRange.endLineNumberExclusive; i2++) {\n              if (i2 \u003e originalModel.getLineCount()) {\n                return { orig: origViewZones, mod: modViewZones };\n              }\n              deletedCodeLineBreaksComputer?.addRequest(originalModel.getLineContent(i2), null, null);\n            }\n          }\n        }\n      }\n      const lineBreakData = deletedCodeLineBreaksComputer?.finalize() ?? [];\n      let lineBreakDataIdx = 0;\n      const modLineHeight = this._editors.modified.getOption(\n        75\n        /* EditorOption.lineHeight */\n      );\n      const syncedMovedText = this._diffModel.read(reader)?.movedTextToCompare.read(reader);\n      const mightContainNonBasicASCII = this._editors.original.getModel()?.mightContainNonBasicASCII() ?? false;\n      const mightContainRTL = this._editors.original.getModel()?.mightContainRTL() ?? false;\n      const renderOptions = RenderOptions.fromEditor(this._editors.modified);\n      for (const a of alignmentsVal) {\n        if (a.diff \u0026\u0026 !renderSideBySide \u0026\u0026 (!this._options.useTrueInlineDiffRendering.read(reader) || !allowsTrueInlineDiffRendering(a.diff))) {\n          if (!a.originalRange.isEmpty) {\n            originalModelTokenizationCompleted.read(reader);\n            const deletedCodeDomNode = document.createElement(\"div\");\n            deletedCodeDomNode.classList.add(\"view-lines\", \"line-delete\", \"monaco-mouse-cursor-text\");\n            const originalModel = this._editors.original.getModel();\n            if (a.originalRange.endLineNumberExclusive - 1 \u003e originalModel.getLineCount()) {\n              return { orig: origViewZones, mod: modViewZones };\n            }\n            const source = new LineSource(a.originalRange.mapToLineArray((l) =\u003e originalModel.tokenization.getLineTokens(l)), a.originalRange.mapToLineArray((_) =\u003e lineBreakData[lineBreakDataIdx++]), mightContainNonBasicASCII, mightContainRTL);\n            const decorations = [];\n            for (const i2 of a.diff.innerChanges || []) {\n              decorations.push(new InlineDecoration(\n                i2.originalRange.delta(-(a.diff.original.startLineNumber - 1)),\n                diffDeleteDecoration.className,\n                0\n                /* InlineDecorationType.Regular */\n              ));\n            }\n            const result = renderLines(source, renderOptions, decorations, deletedCodeDomNode);\n            const marginDomNode2 = document.createElement(\"div\");\n            marginDomNode2.className = \"inline-deleted-margin-view-zone\";\n            applyFontInfo(marginDomNode2, renderOptions.fontInfo);\n            if (this._options.renderIndicators.read(reader)) {\n              for (let i2 = 0; i2 \u003c result.heightInLines; i2++) {\n                const marginElement = document.createElement(\"div\");\n                marginElement.className = `delete-sign ${ThemeIcon.asClassName(diffRemoveIcon)}`;\n                marginElement.setAttribute(\"style\", `position:absolute;top:${i2 * modLineHeight}px;width:${renderOptions.lineDecorationsWidth}px;height:${modLineHeight}px;right:0;`);\n                marginDomNode2.appendChild(marginElement);\n              }\n            }\n            let zoneId = void 0;\n            alignmentViewZonesDisposables.add(new InlineDiffDeletedCodeMargin(() =\u003e assertReturnsDefined(zoneId), marginDomNode2, this._editors.modified, a.diff, this._diffEditorWidget, result.viewLineCounts, this._editors.original.getModel(), this._contextMenuService, this._clipboardService));\n            for (let i2 = 0; i2 \u003c result.viewLineCounts.length; i2++) {\n              const count = result.viewLineCounts[i2];\n              if (count \u003e 1) {\n                origViewZones.push({\n                  afterLineNumber: a.originalRange.startLineNumber + i2,\n                  domNode: createFakeLinesDiv(),\n                  heightInPx: (count - 1) * modLineHeight,\n                  showInHiddenAreas: true,\n                  suppressMouseDown: true\n                });\n              }\n            }\n            modViewZones.push({\n              afterLineNumber: a.modifiedRange.startLineNumber - 1,\n              domNode: deletedCodeDomNode,\n              heightInPx: result.heightInLines * modLineHeight,\n              minWidthInPx: result.minWidthInPx,\n              marginDomNode: marginDomNode2,\n              setZoneId(id) {\n                zoneId = id;\n              },\n              showInHiddenAreas: true,\n              suppressMouseDown: true\n            });\n          }\n          const marginDomNode = document.createElement(\"div\");\n          marginDomNode.className = \"gutter-delete\";\n          origViewZones.push({\n            afterLineNumber: a.originalRange.endLineNumberExclusive - 1,\n            domNode: createFakeLinesDiv(),\n            heightInPx: a.modifiedHeightInPx,\n            marginDomNode,\n            showInHiddenAreas: true,\n            suppressMouseDown: true\n          });\n        } else {\n          const delta = a.modifiedHeightInPx - a.originalHeightInPx;\n          if (delta \u003e 0) {\n            if (syncedMovedText?.lineRangeMapping.original.delta(-1).deltaLength(2).contains(a.originalRange.endLineNumberExclusive - 1)) {\n              continue;\n            }\n            origViewZones.push({\n              afterLineNumber: a.originalRange.endLineNumberExclusive - 1,\n              domNode: createFakeLinesDiv(),\n              heightInPx: delta,\n              showInHiddenAreas: true,\n              suppressMouseDown: true\n            });\n          } else {\n            let createViewZoneMarginArrow = function() {\n              const arrow = document.createElement(\"div\");\n              arrow.className = \"arrow-revert-change \" + ThemeIcon.asClassName(Codicon.arrowRight);\n              reader.store.add(addDisposableListener(arrow, \"mousedown\", (e) =\u003e e.stopPropagation()));\n              reader.store.add(addDisposableListener(arrow, \"click\", (e) =\u003e {\n                e.stopPropagation();\n                _diffEditorWidget.revert(a.diff);\n              }));\n              return $(\"div\", {}, arrow);\n            };\n            if (syncedMovedText?.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(a.modifiedRange.endLineNumberExclusive - 1)) {\n              continue;\n            }\n            let marginDomNode = void 0;\n            if (a.diff \u0026\u0026 a.diff.modified.isEmpty \u0026\u0026 this._options.shouldRenderOldRevertArrows.read(reader)) {\n              marginDomNode = createViewZoneMarginArrow();\n            }\n            modViewZones.push({\n              afterLineNumber: a.modifiedRange.endLineNumberExclusive - 1,\n              domNode: createFakeLinesDiv(),\n              heightInPx: -delta,\n              marginDomNode,\n              showInHiddenAreas: true,\n              suppressMouseDown: true\n            });\n          }\n        }\n      }\n      for (const a of alignmentsSyncedMovedText.read(reader) ?? []) {\n        if (!syncedMovedText?.lineRangeMapping.original.intersect(a.originalRange) || !syncedMovedText?.lineRangeMapping.modified.intersect(a.modifiedRange)) {\n          continue;\n        }\n        const delta = a.modifiedHeightInPx - a.originalHeightInPx;\n        if (delta \u003e 0) {\n          origViewZones.push({\n            afterLineNumber: a.originalRange.endLineNumberExclusive - 1,\n            domNode: createFakeLinesDiv(),\n            heightInPx: delta,\n            showInHiddenAreas: true,\n            suppressMouseDown: true\n          });\n        } else {\n          modViewZones.push({\n            afterLineNumber: a.modifiedRange.endLineNumberExclusive - 1,\n            domNode: createFakeLinesDiv(),\n            heightInPx: -delta,\n            showInHiddenAreas: true,\n            suppressMouseDown: true\n          });\n        }\n      }\n      return { orig: origViewZones, mod: modViewZones };\n    });\n    let ignoreChange = false;\n    this._register(this._editors.original.onDidScrollChange((e) =\u003e {\n      if (e.scrollLeftChanged \u0026\u0026 !ignoreChange) {\n        ignoreChange = true;\n        this._editors.modified.setScrollLeft(e.scrollLeft);\n        ignoreChange = false;\n      }\n    }));\n    this._register(this._editors.modified.onDidScrollChange((e) =\u003e {\n      if (e.scrollLeftChanged \u0026\u0026 !ignoreChange) {\n        ignoreChange = true;\n        this._editors.original.setScrollLeft(e.scrollLeft);\n        ignoreChange = false;\n      }\n    }));\n    this._originalScrollTop = observableFromEvent(this._editors.original.onDidScrollChange, () =\u003e (\n      /** @description original.getScrollTop */\n      this._editors.original.getScrollTop()\n    ));\n    this._modifiedScrollTop = observableFromEvent(this._editors.modified.onDidScrollChange, () =\u003e (\n      /** @description modified.getScrollTop */\n      this._editors.modified.getScrollTop()\n    ));\n    this._register(autorun((reader) =\u003e {\n      const newScrollTopModified = this._originalScrollTop.read(reader) - (this._originalScrollOffsetAnimated.get() - this._modifiedScrollOffsetAnimated.read(reader)) - (this._originalTopPadding.get() - this._modifiedTopPadding.read(reader));\n      if (newScrollTopModified !== this._editors.modified.getScrollTop()) {\n        this._editors.modified.setScrollTop(\n          newScrollTopModified,\n          1\n          /* ScrollType.Immediate */\n        );\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      const newScrollTopOriginal = this._modifiedScrollTop.read(reader) - (this._modifiedScrollOffsetAnimated.get() - this._originalScrollOffsetAnimated.read(reader)) - (this._modifiedTopPadding.get() - this._originalTopPadding.read(reader));\n      if (newScrollTopOriginal !== this._editors.original.getScrollTop()) {\n        this._editors.original.setScrollTop(\n          newScrollTopOriginal,\n          1\n          /* ScrollType.Immediate */\n        );\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      const m = this._diffModel.read(reader)?.movedTextToCompare.read(reader);\n      let deltaOrigToMod = 0;\n      if (m) {\n        const trueTopOriginal = this._editors.original.getTopForLineNumber(m.lineRangeMapping.original.startLineNumber, true) - this._originalTopPadding.get();\n        const trueTopModified = this._editors.modified.getTopForLineNumber(m.lineRangeMapping.modified.startLineNumber, true) - this._modifiedTopPadding.get();\n        deltaOrigToMod = trueTopModified - trueTopOriginal;\n      }\n      if (deltaOrigToMod \u003e 0) {\n        this._modifiedTopPadding.set(0, void 0);\n        this._originalTopPadding.set(deltaOrigToMod, void 0);\n      } else if (deltaOrigToMod \u003c 0) {\n        this._modifiedTopPadding.set(-deltaOrigToMod, void 0);\n        this._originalTopPadding.set(0, void 0);\n      } else {\n        setTimeout(() =\u003e {\n          this._modifiedTopPadding.set(0, void 0);\n          this._originalTopPadding.set(0, void 0);\n        }, 400);\n      }\n      if (this._editors.modified.hasTextFocus()) {\n        this._originalScrollOffset.set(this._modifiedScrollOffset.get() - deltaOrigToMod, void 0, true);\n      } else {\n        this._modifiedScrollOffset.set(this._originalScrollOffset.get() + deltaOrigToMod, void 0, true);\n      }\n    }));\n  }\n};\nDiffEditorViewZones = __decorate32([\n  __param28(8, IClipboardService),\n  __param28(9, IContextMenuService)\n], DiffEditorViewZones);\nfunction computeRangeAlignment(originalEditor, modifiedEditor, diffs, originalEditorAlignmentViewZones, modifiedEditorAlignmentViewZones, innerHunkAlignment) {\n  const originalLineHeightOverrides = new ArrayQueue(getAdditionalLineHeights(originalEditor, originalEditorAlignmentViewZones));\n  const modifiedLineHeightOverrides = new ArrayQueue(getAdditionalLineHeights(modifiedEditor, modifiedEditorAlignmentViewZones));\n  const origLineHeight = originalEditor.getOption(\n    75\n    /* EditorOption.lineHeight */\n  );\n  const modLineHeight = modifiedEditor.getOption(\n    75\n    /* EditorOption.lineHeight */\n  );\n  const result = [];\n  let lastOriginalLineNumber = 0;\n  let lastModifiedLineNumber = 0;\n  function handleAlignmentsOutsideOfDiffs(untilOriginalLineNumberExclusive, untilModifiedLineNumberExclusive) {\n    while (true) {\n      let origNext = originalLineHeightOverrides.peek();\n      let modNext = modifiedLineHeightOverrides.peek();\n      if (origNext \u0026\u0026 origNext.lineNumber \u003e= untilOriginalLineNumberExclusive) {\n        origNext = void 0;\n      }\n      if (modNext \u0026\u0026 modNext.lineNumber \u003e= untilModifiedLineNumberExclusive) {\n        modNext = void 0;\n      }\n      if (!origNext \u0026\u0026 !modNext) {\n        break;\n      }\n      const distOrig = origNext ? origNext.lineNumber - lastOriginalLineNumber : Number.MAX_VALUE;\n      const distNext = modNext ? modNext.lineNumber - lastModifiedLineNumber : Number.MAX_VALUE;\n      if (distOrig \u003c distNext) {\n        originalLineHeightOverrides.dequeue();\n        modNext = {\n          lineNumber: origNext.lineNumber - lastOriginalLineNumber + lastModifiedLineNumber,\n          heightInPx: 0\n        };\n      } else if (distOrig \u003e distNext) {\n        modifiedLineHeightOverrides.dequeue();\n        origNext = {\n          lineNumber: modNext.lineNumber - lastModifiedLineNumber + lastOriginalLineNumber,\n          heightInPx: 0\n        };\n      } else {\n        originalLineHeightOverrides.dequeue();\n        modifiedLineHeightOverrides.dequeue();\n      }\n      result.push({\n        originalRange: LineRange.ofLength(origNext.lineNumber, 1),\n        modifiedRange: LineRange.ofLength(modNext.lineNumber, 1),\n        originalHeightInPx: origLineHeight + origNext.heightInPx,\n        modifiedHeightInPx: modLineHeight + modNext.heightInPx,\n        diff: void 0\n      });\n    }\n  }\n  for (const m of diffs) {\n    let emitAlignment = function(origLineNumberExclusive, modLineNumberExclusive, forceAlignment = false) {\n      if (origLineNumberExclusive \u003c lastOrigLineNumber || modLineNumberExclusive \u003c lastModLineNumber) {\n        return;\n      }\n      if (first2) {\n        first2 = false;\n      } else if (!forceAlignment \u0026\u0026 (origLineNumberExclusive === lastOrigLineNumber || modLineNumberExclusive === lastModLineNumber)) {\n        return;\n      }\n      const originalRange = new LineRange(lastOrigLineNumber, origLineNumberExclusive);\n      const modifiedRange = new LineRange(lastModLineNumber, modLineNumberExclusive);\n      if (originalRange.isEmpty \u0026\u0026 modifiedRange.isEmpty) {\n        return;\n      }\n      const originalAdditionalHeight = originalLineHeightOverrides.takeWhile((v) =\u003e v.lineNumber \u003c origLineNumberExclusive)?.reduce((p, c2) =\u003e p + c2.heightInPx, 0) ?? 0;\n      const modifiedAdditionalHeight = modifiedLineHeightOverrides.takeWhile((v) =\u003e v.lineNumber \u003c modLineNumberExclusive)?.reduce((p, c2) =\u003e p + c2.heightInPx, 0) ?? 0;\n      result.push({\n        originalRange,\n        modifiedRange,\n        originalHeightInPx: originalRange.length * origLineHeight + originalAdditionalHeight,\n        modifiedHeightInPx: modifiedRange.length * modLineHeight + modifiedAdditionalHeight,\n        diff: m.lineRangeMapping\n      });\n      lastOrigLineNumber = origLineNumberExclusive;\n      lastModLineNumber = modLineNumberExclusive;\n    };\n    const c = m.lineRangeMapping;\n    handleAlignmentsOutsideOfDiffs(c.original.startLineNumber, c.modified.startLineNumber);\n    let first2 = true;\n    let lastModLineNumber = c.modified.startLineNumber;\n    let lastOrigLineNumber = c.original.startLineNumber;\n    if (innerHunkAlignment) {\n      for (const i2 of c.innerChanges || []) {\n        if (i2.originalRange.startColumn \u003e 1 \u0026\u0026 i2.modifiedRange.startColumn \u003e 1) {\n          emitAlignment(i2.originalRange.startLineNumber, i2.modifiedRange.startLineNumber);\n        }\n        const originalModel = originalEditor.getModel();\n        const maxColumn = i2.originalRange.endLineNumber \u003c= originalModel.getLineCount() ? originalModel.getLineMaxColumn(i2.originalRange.endLineNumber) : Number.MAX_SAFE_INTEGER;\n        if (i2.originalRange.endColumn \u003c maxColumn) {\n          emitAlignment(i2.originalRange.endLineNumber, i2.modifiedRange.endLineNumber);\n        }\n      }\n    }\n    emitAlignment(c.original.endLineNumberExclusive, c.modified.endLineNumberExclusive, true);\n    lastOriginalLineNumber = c.original.endLineNumberExclusive;\n    lastModifiedLineNumber = c.modified.endLineNumberExclusive;\n  }\n  handleAlignmentsOutsideOfDiffs(Number.MAX_VALUE, Number.MAX_VALUE);\n  return result;\n}\nfunction getAdditionalLineHeights(editor2, viewZonesToIgnore) {\n  const viewZoneHeights = [];\n  const wrappingZoneHeights = [];\n  const hasWrapping = editor2.getOption(\n    165\n    /* EditorOption.wrappingInfo */\n  ).wrappingColumn !== -1;\n  const coordinatesConverter = editor2._getViewModel().coordinatesConverter;\n  const editorLineHeight = editor2.getOption(\n    75\n    /* EditorOption.lineHeight */\n  );\n  if (hasWrapping) {\n    for (let i2 = 1; i2 \u003c= editor2.getModel().getLineCount(); i2++) {\n      const lineCount = coordinatesConverter.getModelLineViewLineCount(i2);\n      if (lineCount \u003e 1) {\n        wrappingZoneHeights.push({ lineNumber: i2, heightInPx: editorLineHeight * (lineCount - 1) });\n      }\n    }\n  }\n  for (const w of editor2.getWhitespaces()) {\n    if (viewZonesToIgnore.has(w.id)) {\n      continue;\n    }\n    const modelLineNumber = w.afterLineNumber === 0 ? 0 : coordinatesConverter.convertViewPositionToModelPosition(new Position(w.afterLineNumber, 1)).lineNumber;\n    viewZoneHeights.push({ lineNumber: modelLineNumber, heightInPx: w.height });\n  }\n  const result = joinCombine(viewZoneHeights, wrappingZoneHeights, (v) =\u003e v.lineNumber, (v1, v2) =\u003e ({ lineNumber: v1.lineNumber, heightInPx: v1.heightInPx + v2.heightInPx }));\n  return result;\n}\nfunction allowsTrueInlineDiffRendering(mapping) {\n  if (!mapping.innerChanges) {\n    return false;\n  }\n  return mapping.innerChanges.every((c) =\u003e rangeIsSingleLine(c.modifiedRange) \u0026\u0026 rangeIsSingleLine(c.originalRange) || c.originalRange.equalsRange(new Range(1, 1, 1, 1)));\n}\nfunction rangeIsSingleLine(range2) {\n  return range2.startLineNumber === range2.endLineNumber;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js\ninit_dom();\ninit_actions();\ninit_arrays();\ninit_arraysFind();\ninit_codicons();\ninit_lifecycle();\ninit_observable();\ninit_themables();\ninit_utils5();\ninit_offsetRange();\ninit_nls();\nvar MovedBlocksLinesFeature = class _MovedBlocksLinesFeature extends Disposable {\n  static {\n    this.movedCodeBlockPadding = 4;\n  }\n  constructor(_rootElement, _diffModel, _originalEditorLayoutInfo, _modifiedEditorLayoutInfo, _editors) {\n    super();\n    this._rootElement = _rootElement;\n    this._diffModel = _diffModel;\n    this._originalEditorLayoutInfo = _originalEditorLayoutInfo;\n    this._modifiedEditorLayoutInfo = _modifiedEditorLayoutInfo;\n    this._editors = _editors;\n    this._originalScrollTop = observableFromEvent(this, this._editors.original.onDidScrollChange, () =\u003e this._editors.original.getScrollTop());\n    this._modifiedScrollTop = observableFromEvent(this, this._editors.modified.onDidScrollChange, () =\u003e this._editors.modified.getScrollTop());\n    this._viewZonesChanged = observableSignalFromEvent(\"onDidChangeViewZones\", this._editors.modified.onDidChangeViewZones);\n    this.width = observableValue(this, 0);\n    this._modifiedViewZonesChangedSignal = observableSignalFromEvent(\"modified.onDidChangeViewZones\", this._editors.modified.onDidChangeViewZones);\n    this._originalViewZonesChangedSignal = observableSignalFromEvent(\"original.onDidChangeViewZones\", this._editors.original.onDidChangeViewZones);\n    this._state = derived(this, (reader) =\u003e {\n      this._element.replaceChildren();\n      const model = this._diffModel.read(reader);\n      const moves = model?.diff.read(reader)?.movedTexts;\n      if (!moves || moves.length === 0) {\n        this.width.set(0, void 0);\n        return;\n      }\n      this._viewZonesChanged.read(reader);\n      const infoOrig = this._originalEditorLayoutInfo.read(reader);\n      const infoMod = this._modifiedEditorLayoutInfo.read(reader);\n      if (!infoOrig || !infoMod) {\n        this.width.set(0, void 0);\n        return;\n      }\n      this._modifiedViewZonesChangedSignal.read(reader);\n      this._originalViewZonesChangedSignal.read(reader);\n      const lines = moves.map((move) =\u003e {\n        function computeLineStart(range2, editor2) {\n          const t1 = editor2.getTopForLineNumber(range2.startLineNumber, true);\n          const t2 = editor2.getTopForLineNumber(range2.endLineNumberExclusive, true);\n          return (t1 + t2) / 2;\n        }\n        const start = computeLineStart(move.lineRangeMapping.original, this._editors.original);\n        const startOffset = this._originalScrollTop.read(reader);\n        const end = computeLineStart(move.lineRangeMapping.modified, this._editors.modified);\n        const endOffset = this._modifiedScrollTop.read(reader);\n        const from = start - startOffset;\n        const to = end - endOffset;\n        const top = Math.min(start, end);\n        const bottom = Math.max(start, end);\n        return { range: new OffsetRange(top, bottom), from, to, fromWithoutScroll: start, toWithoutScroll: end, move };\n      });\n      lines.sort(tieBreakComparators(compareBy((l) =\u003e l.fromWithoutScroll \u003e l.toWithoutScroll, booleanComparator), compareBy((l) =\u003e l.fromWithoutScroll \u003e l.toWithoutScroll ? l.fromWithoutScroll : -l.toWithoutScroll, numberComparator)));\n      const layout2 = LinesLayout2.compute(lines.map((l) =\u003e l.range));\n      const padding = 10;\n      const lineAreaLeft = infoOrig.verticalScrollbarWidth;\n      const lineAreaWidth = (layout2.getTrackCount() - 1) * 10 + padding * 2;\n      const width2 = lineAreaLeft + lineAreaWidth + (infoMod.contentLeft - _MovedBlocksLinesFeature.movedCodeBlockPadding);\n      let idx = 0;\n      for (const line of lines) {\n        const track = layout2.getTrack(idx);\n        const verticalY = lineAreaLeft + padding + track * 10;\n        const arrowHeight = 15;\n        const arrowWidth = 15;\n        const right = width2;\n        const rectWidth = infoMod.glyphMarginWidth + infoMod.lineNumbersWidth;\n        const rectHeight = 18;\n        const rect = document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\");\n        rect.classList.add(\"arrow-rectangle\");\n        rect.setAttribute(\"x\", `${right - rectWidth}`);\n        rect.setAttribute(\"y\", `${line.to - rectHeight / 2}`);\n        rect.setAttribute(\"width\", `${rectWidth}`);\n        rect.setAttribute(\"height\", `${rectHeight}`);\n        this._element.appendChild(rect);\n        const g = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n        const path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n        path.setAttribute(\"d\", `M ${0} ${line.from} L ${verticalY} ${line.from} L ${verticalY} ${line.to} L ${right - arrowWidth} ${line.to}`);\n        path.setAttribute(\"fill\", \"none\");\n        g.appendChild(path);\n        const arrowRight = document.createElementNS(\"http://www.w3.org/2000/svg\", \"polygon\");\n        arrowRight.classList.add(\"arrow\");\n        reader.store.add(autorun((reader2) =\u003e {\n          path.classList.toggle(\"currentMove\", line.move === model.activeMovedText.read(reader2));\n          arrowRight.classList.toggle(\"currentMove\", line.move === model.activeMovedText.read(reader2));\n        }));\n        arrowRight.setAttribute(\"points\", `${right - arrowWidth},${line.to - arrowHeight / 2} ${right},${line.to} ${right - arrowWidth},${line.to + arrowHeight / 2}`);\n        g.appendChild(arrowRight);\n        this._element.appendChild(g);\n        idx++;\n      }\n      this.width.set(lineAreaWidth, void 0);\n    });\n    this._element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n    this._element.setAttribute(\"class\", \"moved-blocks-lines\");\n    this._rootElement.appendChild(this._element);\n    this._register(toDisposable(() =\u003e this._element.remove()));\n    this._register(autorun((reader) =\u003e {\n      const info = this._originalEditorLayoutInfo.read(reader);\n      const info2 = this._modifiedEditorLayoutInfo.read(reader);\n      if (!info || !info2) {\n        return;\n      }\n      this._element.style.left = `${info.width - info.verticalScrollbarWidth}px`;\n      this._element.style.height = `${info.height}px`;\n      this._element.style.width = `${info.verticalScrollbarWidth + info.contentLeft - _MovedBlocksLinesFeature.movedCodeBlockPadding + this.width.read(reader)}px`;\n    }));\n    this._register(recomputeInitiallyAndOnChange(this._state));\n    const movedBlockViewZones = derived((reader) =\u003e {\n      const model = this._diffModel.read(reader);\n      const d = model?.diff.read(reader);\n      if (!d) {\n        return [];\n      }\n      return d.movedTexts.map((move) =\u003e ({\n        move,\n        original: new PlaceholderViewZone(constObservable(move.lineRangeMapping.original.startLineNumber - 1), 18),\n        modified: new PlaceholderViewZone(constObservable(move.lineRangeMapping.modified.startLineNumber - 1), 18)\n      }));\n    });\n    this._register(applyViewZones(this._editors.original, movedBlockViewZones.map((zones) =\u003e (\n      /** @description movedBlockViewZones.original */\n      zones.map((z) =\u003e z.original)\n    ))));\n    this._register(applyViewZones(this._editors.modified, movedBlockViewZones.map((zones) =\u003e (\n      /** @description movedBlockViewZones.modified */\n      zones.map((z) =\u003e z.modified)\n    ))));\n    this._register(autorunWithStore((reader, store) =\u003e {\n      const blocks = movedBlockViewZones.read(reader);\n      for (const b of blocks) {\n        store.add(new MovedBlockOverlayWidget(this._editors.original, b.original, b.move, \"original\", this._diffModel.get()));\n        store.add(new MovedBlockOverlayWidget(this._editors.modified, b.modified, b.move, \"modified\", this._diffModel.get()));\n      }\n    }));\n    const originalHasFocus = observableSignalFromEvent(\"original.onDidFocusEditorWidget\", (e) =\u003e this._editors.original.onDidFocusEditorWidget(() =\u003e setTimeout(() =\u003e e(void 0), 0)));\n    const modifiedHasFocus = observableSignalFromEvent(\"modified.onDidFocusEditorWidget\", (e) =\u003e this._editors.modified.onDidFocusEditorWidget(() =\u003e setTimeout(() =\u003e e(void 0), 0)));\n    let lastChangedEditor = \"modified\";\n    this._register(autorunHandleChanges({\n      changeTracker: {\n        createChangeSummary: () =\u003e void 0,\n        handleChange: (ctx, summary) =\u003e {\n          if (ctx.didChange(originalHasFocus)) {\n            lastChangedEditor = \"original\";\n          }\n          if (ctx.didChange(modifiedHasFocus)) {\n            lastChangedEditor = \"modified\";\n          }\n          return true;\n        }\n      }\n    }, (reader) =\u003e {\n      originalHasFocus.read(reader);\n      modifiedHasFocus.read(reader);\n      const m = this._diffModel.read(reader);\n      if (!m) {\n        return;\n      }\n      const diff = m.diff.read(reader);\n      let movedText = void 0;\n      if (diff \u0026\u0026 lastChangedEditor === \"original\") {\n        const originalPos = this._editors.originalCursor.read(reader);\n        if (originalPos) {\n          movedText = diff.movedTexts.find((m2) =\u003e m2.lineRangeMapping.original.contains(originalPos.lineNumber));\n        }\n      }\n      if (diff \u0026\u0026 lastChangedEditor === \"modified\") {\n        const modifiedPos = this._editors.modifiedCursor.read(reader);\n        if (modifiedPos) {\n          movedText = diff.movedTexts.find((m2) =\u003e m2.lineRangeMapping.modified.contains(modifiedPos.lineNumber));\n        }\n      }\n      if (movedText !== m.movedTextToCompare.get()) {\n        m.movedTextToCompare.set(void 0, void 0);\n      }\n      m.setActiveMovedText(movedText);\n    }));\n  }\n};\nvar LinesLayout2 = class _LinesLayout {\n  static compute(lines) {\n    const setsPerTrack = [];\n    const trackPerLineIdx = [];\n    for (const line of lines) {\n      let trackIdx = setsPerTrack.findIndex((set) =\u003e !set.intersectsStrict(line));\n      if (trackIdx === -1) {\n        const maxTrackCount = 6;\n        if (setsPerTrack.length \u003e= maxTrackCount) {\n          trackIdx = findMaxIdx(setsPerTrack, compareBy((set) =\u003e set.intersectWithRangeLength(line), numberComparator));\n        } else {\n          trackIdx = setsPerTrack.length;\n          setsPerTrack.push(new OffsetRangeSet());\n        }\n      }\n      setsPerTrack[trackIdx].addRange(line);\n      trackPerLineIdx.push(trackIdx);\n    }\n    return new _LinesLayout(setsPerTrack.length, trackPerLineIdx);\n  }\n  constructor(_trackCount, trackPerLineIdx) {\n    this._trackCount = _trackCount;\n    this.trackPerLineIdx = trackPerLineIdx;\n  }\n  getTrack(lineIdx) {\n    return this.trackPerLineIdx[lineIdx];\n  }\n  getTrackCount() {\n    return this._trackCount;\n  }\n};\nvar MovedBlockOverlayWidget = class extends ViewZoneOverlayWidget {\n  constructor(_editor, _viewZone, _move, _kind, _diffModel) {\n    const root = h(\"div.diff-hidden-lines-widget\");\n    super(_editor, _viewZone, root.root);\n    this._editor = _editor;\n    this._move = _move;\n    this._kind = _kind;\n    this._diffModel = _diffModel;\n    this._nodes = h(\"div.diff-moved-code-block\", { style: { marginRight: \"4px\" } }, [\n      h(\"div.text-content@textContent\"),\n      h(\"div.action-bar@actionBar\")\n    ]);\n    root.root.appendChild(this._nodes.root);\n    const editorLayout = observableFromEvent(this._editor.onDidLayoutChange, () =\u003e this._editor.getLayoutInfo());\n    this._register(applyStyle(this._nodes.root, {\n      paddingRight: editorLayout.map((l) =\u003e l.verticalScrollbarWidth)\n    }));\n    let text2;\n    if (_move.changes.length \u003e 0) {\n      text2 = this._kind === \"original\" ? localize(128, \"Code moved with changes to line {0}-{1}\", this._move.lineRangeMapping.modified.startLineNumber, this._move.lineRangeMapping.modified.endLineNumberExclusive - 1) : localize(129, \"Code moved with changes from line {0}-{1}\", this._move.lineRangeMapping.original.startLineNumber, this._move.lineRangeMapping.original.endLineNumberExclusive - 1);\n    } else {\n      text2 = this._kind === \"original\" ? localize(130, \"Code moved to line {0}-{1}\", this._move.lineRangeMapping.modified.startLineNumber, this._move.lineRangeMapping.modified.endLineNumberExclusive - 1) : localize(131, \"Code moved from line {0}-{1}\", this._move.lineRangeMapping.original.startLineNumber, this._move.lineRangeMapping.original.endLineNumberExclusive - 1);\n    }\n    const actionBar2 = this._register(new ActionBar(this._nodes.actionBar, {\n      highlightToggledItems: true\n    }));\n    const caption = new Action(\"\", text2, \"\", false);\n    actionBar2.push(caption, { icon: false, label: true });\n    const actionCompare = new Action(\"\", \"Compare\", ThemeIcon.asClassName(Codicon.compareChanges), true, () =\u003e {\n      this._editor.focus();\n      this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get() === _move ? void 0 : this._move, void 0);\n    });\n    this._register(autorun((reader) =\u003e {\n      const isActive = this._diffModel.movedTextToCompare.read(reader) === _move;\n      actionCompare.checked = isActive;\n    }));\n    actionBar2.push(actionCompare, { icon: false, label: true });\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorDecorations.js\ninit_utils5();\nvar DiffEditorDecorations = class extends Disposable {\n  constructor(_editors, _diffModel, _options, widget) {\n    super();\n    this._editors = _editors;\n    this._diffModel = _diffModel;\n    this._options = _options;\n    this._decorations = derived(this, (reader) =\u003e {\n      const diffModel = this._diffModel.read(reader);\n      const diff = diffModel?.diff.read(reader);\n      if (!diff) {\n        return null;\n      }\n      const movedTextToCompare = this._diffModel.read(reader).movedTextToCompare.read(reader);\n      const renderIndicators = this._options.renderIndicators.read(reader);\n      const showEmptyDecorations = this._options.showEmptyDecorations.read(reader);\n      const originalDecorations = [];\n      const modifiedDecorations = [];\n      if (!movedTextToCompare) {\n        for (const m of diff.mappings) {\n          if (!m.lineRangeMapping.original.isEmpty) {\n            originalDecorations.push({ range: m.lineRangeMapping.original.toInclusiveRange(), options: renderIndicators ? diffLineDeleteDecorationBackgroundWithIndicator : diffLineDeleteDecorationBackground });\n          }\n          if (!m.lineRangeMapping.modified.isEmpty) {\n            modifiedDecorations.push({ range: m.lineRangeMapping.modified.toInclusiveRange(), options: renderIndicators ? diffLineAddDecorationBackgroundWithIndicator : diffLineAddDecorationBackground });\n          }\n          if (m.lineRangeMapping.modified.isEmpty || m.lineRangeMapping.original.isEmpty) {\n            if (!m.lineRangeMapping.original.isEmpty) {\n              originalDecorations.push({ range: m.lineRangeMapping.original.toInclusiveRange(), options: diffWholeLineDeleteDecoration });\n            }\n            if (!m.lineRangeMapping.modified.isEmpty) {\n              modifiedDecorations.push({ range: m.lineRangeMapping.modified.toInclusiveRange(), options: diffWholeLineAddDecoration });\n            }\n          } else {\n            const useInlineDiff = this._options.useTrueInlineDiffRendering.read(reader) \u0026\u0026 allowsTrueInlineDiffRendering(m.lineRangeMapping);\n            for (const i2 of m.lineRangeMapping.innerChanges || []) {\n              if (m.lineRangeMapping.original.contains(i2.originalRange.startLineNumber)) {\n                originalDecorations.push({ range: i2.originalRange, options: i2.originalRange.isEmpty() \u0026\u0026 showEmptyDecorations ? diffDeleteDecorationEmpty : diffDeleteDecoration });\n              }\n              if (m.lineRangeMapping.modified.contains(i2.modifiedRange.startLineNumber)) {\n                modifiedDecorations.push({ range: i2.modifiedRange, options: i2.modifiedRange.isEmpty() \u0026\u0026 showEmptyDecorations \u0026\u0026 !useInlineDiff ? diffAddDecorationEmpty : diffAddDecoration });\n              }\n              if (useInlineDiff) {\n                const deletedText = diffModel.model.original.getValueInRange(i2.originalRange);\n                modifiedDecorations.push({\n                  range: i2.modifiedRange,\n                  options: {\n                    description: \"deleted-text\",\n                    before: {\n                      content: deletedText,\n                      inlineClassName: \"inline-deleted-text\"\n                    },\n                    zIndex: 1e5,\n                    showIfCollapsed: true\n                  }\n                });\n              }\n            }\n          }\n        }\n      }\n      if (movedTextToCompare) {\n        for (const m of movedTextToCompare.changes) {\n          const fullRangeOriginal = m.original.toInclusiveRange();\n          if (fullRangeOriginal) {\n            originalDecorations.push({ range: fullRangeOriginal, options: renderIndicators ? diffLineDeleteDecorationBackgroundWithIndicator : diffLineDeleteDecorationBackground });\n          }\n          const fullRangeModified = m.modified.toInclusiveRange();\n          if (fullRangeModified) {\n            modifiedDecorations.push({ range: fullRangeModified, options: renderIndicators ? diffLineAddDecorationBackgroundWithIndicator : diffLineAddDecorationBackground });\n          }\n          for (const i2 of m.innerChanges || []) {\n            originalDecorations.push({ range: i2.originalRange, options: diffDeleteDecoration });\n            modifiedDecorations.push({ range: i2.modifiedRange, options: diffAddDecoration });\n          }\n        }\n      }\n      const activeMovedText = this._diffModel.read(reader).activeMovedText.read(reader);\n      for (const m of diff.movedTexts) {\n        originalDecorations.push({\n          range: m.lineRangeMapping.original.toInclusiveRange(),\n          options: {\n            description: \"moved\",\n            blockClassName: \"movedOriginal\" + (m === activeMovedText ? \" currentMove\" : \"\"),\n            blockPadding: [MovedBlocksLinesFeature.movedCodeBlockPadding, 0, MovedBlocksLinesFeature.movedCodeBlockPadding, MovedBlocksLinesFeature.movedCodeBlockPadding]\n          }\n        });\n        modifiedDecorations.push({\n          range: m.lineRangeMapping.modified.toInclusiveRange(),\n          options: {\n            description: \"moved\",\n            blockClassName: \"movedModified\" + (m === activeMovedText ? \" currentMove\" : \"\"),\n            blockPadding: [4, 0, 4, 4]\n          }\n        });\n      }\n      return { originalDecorations, modifiedDecorations };\n    });\n    this._register(applyObservableDecorations(this._editors.original, this._decorations.map((d) =\u003e d?.originalDecorations || [])));\n    this._register(applyObservableDecorations(this._editors.modified, this._decorations.map((d) =\u003e d?.modifiedDecorations || [])));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_observableCodeEditor();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js\ninit_dom();\ninit_lifecycle();\ninit_observable();\ninit_utils5();\ninit_position();\ninit_colorRegistry();\ninit_themeService();\nvar __decorate33 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param29 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar OverviewRulerFeature_1;\nvar OverviewRulerFeature = class OverviewRulerFeature2 extends Disposable {\n  static {\n    OverviewRulerFeature_1 = this;\n  }\n  static {\n    this.ONE_OVERVIEW_WIDTH = 15;\n  }\n  static {\n    this.ENTIRE_DIFF_OVERVIEW_WIDTH = this.ONE_OVERVIEW_WIDTH * 2;\n  }\n  constructor(_editors, _rootElement, _diffModel, _rootWidth, _rootHeight, _modifiedEditorLayoutInfo, _themeService) {\n    super();\n    this._editors = _editors;\n    this._rootElement = _rootElement;\n    this._diffModel = _diffModel;\n    this._rootWidth = _rootWidth;\n    this._rootHeight = _rootHeight;\n    this._modifiedEditorLayoutInfo = _modifiedEditorLayoutInfo;\n    this._themeService = _themeService;\n    this.width = OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH;\n    const currentColorTheme = observableFromEvent(this._themeService.onDidColorThemeChange, () =\u003e this._themeService.getColorTheme());\n    const currentColors = derived((reader) =\u003e {\n      const theme = currentColorTheme.read(reader);\n      const insertColor = theme.getColor(diffOverviewRulerInserted) || (theme.getColor(diffInserted) || defaultInsertColor).transparent(2);\n      const removeColor = theme.getColor(diffOverviewRulerRemoved) || (theme.getColor(diffRemoved) || defaultRemoveColor).transparent(2);\n      return { insertColor, removeColor };\n    });\n    const viewportDomElement = createFastDomNode(document.createElement(\"div\"));\n    viewportDomElement.setClassName(\"diffViewport\");\n    viewportDomElement.setPosition(\"absolute\");\n    const diffOverviewRoot = h(\"div.diffOverview\", {\n      style: { position: \"absolute\", top: \"0px\", width: OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH + \"px\" }\n    }).root;\n    this._register(appendRemoveOnDispose(diffOverviewRoot, viewportDomElement.domNode));\n    this._register(addStandardDisposableListener(diffOverviewRoot, EventType.POINTER_DOWN, (e) =\u003e {\n      this._editors.modified.delegateVerticalScrollbarPointerDown(e);\n    }));\n    this._register(addDisposableListener(diffOverviewRoot, EventType.MOUSE_WHEEL, (e) =\u003e {\n      this._editors.modified.delegateScrollFromMouseWheelEvent(e);\n    }, { passive: false }));\n    this._register(appendRemoveOnDispose(this._rootElement, diffOverviewRoot));\n    this._register(autorunWithStore((reader, store) =\u003e {\n      const m = this._diffModel.read(reader);\n      const originalOverviewRuler = this._editors.original.createOverviewRuler(\"original diffOverviewRuler\");\n      if (originalOverviewRuler) {\n        store.add(originalOverviewRuler);\n        store.add(appendRemoveOnDispose(diffOverviewRoot, originalOverviewRuler.getDomNode()));\n      }\n      const modifiedOverviewRuler = this._editors.modified.createOverviewRuler(\"modified diffOverviewRuler\");\n      if (modifiedOverviewRuler) {\n        store.add(modifiedOverviewRuler);\n        store.add(appendRemoveOnDispose(diffOverviewRoot, modifiedOverviewRuler.getDomNode()));\n      }\n      if (!originalOverviewRuler || !modifiedOverviewRuler) {\n        return;\n      }\n      const origViewZonesChanged = observableSignalFromEvent(\"viewZoneChanged\", this._editors.original.onDidChangeViewZones);\n      const modViewZonesChanged = observableSignalFromEvent(\"viewZoneChanged\", this._editors.modified.onDidChangeViewZones);\n      const origHiddenRangesChanged = observableSignalFromEvent(\"hiddenRangesChanged\", this._editors.original.onDidChangeHiddenAreas);\n      const modHiddenRangesChanged = observableSignalFromEvent(\"hiddenRangesChanged\", this._editors.modified.onDidChangeHiddenAreas);\n      store.add(autorun((reader2) =\u003e {\n        origViewZonesChanged.read(reader2);\n        modViewZonesChanged.read(reader2);\n        origHiddenRangesChanged.read(reader2);\n        modHiddenRangesChanged.read(reader2);\n        const colors = currentColors.read(reader2);\n        const diff = m?.diff.read(reader2)?.mappings;\n        function createZones(ranges, color, editor2) {\n          const vm = editor2._getViewModel();\n          if (!vm) {\n            return [];\n          }\n          return ranges.filter((d) =\u003e d.length \u003e 0).map((r) =\u003e {\n            const start = vm.coordinatesConverter.convertModelPositionToViewPosition(new Position(r.startLineNumber, 1));\n            const end = vm.coordinatesConverter.convertModelPositionToViewPosition(new Position(r.endLineNumberExclusive, 1));\n            const lineCount = end.lineNumber - start.lineNumber;\n            return new OverviewRulerZone(start.lineNumber, end.lineNumber, lineCount, color.toString());\n          });\n        }\n        const originalZones = createZones((diff || []).map((d) =\u003e d.lineRangeMapping.original), colors.removeColor, this._editors.original);\n        const modifiedZones = createZones((diff || []).map((d) =\u003e d.lineRangeMapping.modified), colors.insertColor, this._editors.modified);\n        originalOverviewRuler?.setZones(originalZones);\n        modifiedOverviewRuler?.setZones(modifiedZones);\n      }));\n      store.add(autorun((reader2) =\u003e {\n        const height = this._rootHeight.read(reader2);\n        const width2 = this._rootWidth.read(reader2);\n        const layoutInfo = this._modifiedEditorLayoutInfo.read(reader2);\n        if (layoutInfo) {\n          const freeSpace = OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH - 2 * OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH;\n          originalOverviewRuler.setLayout({\n            top: 0,\n            height,\n            right: freeSpace + OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH,\n            width: OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH\n          });\n          modifiedOverviewRuler.setLayout({\n            top: 0,\n            height,\n            right: 0,\n            width: OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH\n          });\n          const scrollTop = this._editors.modifiedScrollTop.read(reader2);\n          const scrollHeight = this._editors.modifiedScrollHeight.read(reader2);\n          const scrollBarOptions = this._editors.modified.getOption(\n            116\n            /* EditorOption.scrollbar */\n          );\n          const state = new ScrollbarState(scrollBarOptions.verticalHasArrows ? scrollBarOptions.arrowSize : 0, scrollBarOptions.verticalScrollbarSize, 0, layoutInfo.height, scrollHeight, scrollTop);\n          viewportDomElement.setTop(state.getSliderPosition());\n          viewportDomElement.setHeight(state.getSliderSize());\n        } else {\n          viewportDomElement.setTop(0);\n          viewportDomElement.setHeight(0);\n        }\n        diffOverviewRoot.style.height = height + \"px\";\n        diffOverviewRoot.style.left = width2 - OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH + \"px\";\n        viewportDomElement.setWidth(OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH);\n      }));\n    }));\n  }\n};\nOverviewRulerFeature = OverviewRulerFeature_1 = __decorate33([\n  __param29(6, IThemeService)\n], OverviewRulerFeature);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js\ninit_position();\ninit_nls();\ninit_instantiation();\ninit_contextkey();\nvar __decorate34 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param30 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DiffEditorEditors = class DiffEditorEditors2 extends Disposable {\n  get onDidContentSizeChange() {\n    return this._onDidContentSizeChange.event;\n  }\n  constructor(originalEditorElement, modifiedEditorElement, _options, _argCodeEditorWidgetOptions, _createInnerEditor, _contextKeyService, _instantiationService, _keybindingService) {\n    super();\n    this.originalEditorElement = originalEditorElement;\n    this.modifiedEditorElement = modifiedEditorElement;\n    this._options = _options;\n    this._argCodeEditorWidgetOptions = _argCodeEditorWidgetOptions;\n    this._createInnerEditor = _createInnerEditor;\n    this._contextKeyService = _contextKeyService;\n    this._instantiationService = _instantiationService;\n    this._keybindingService = _keybindingService;\n    this.original = this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(), this._argCodeEditorWidgetOptions.originalEditor || {}));\n    this.modified = this._register(this._createRightHandSideEditor(this._options.editorOptions.get(), this._argCodeEditorWidgetOptions.modifiedEditor || {}));\n    this._onDidContentSizeChange = this._register(new Emitter());\n    this.modifiedScrollTop = observableFromEvent(this, this.modified.onDidScrollChange, () =\u003e (\n      /** @description modified.getScrollTop */\n      this.modified.getScrollTop()\n    ));\n    this.modifiedScrollHeight = observableFromEvent(this, this.modified.onDidScrollChange, () =\u003e (\n      /** @description modified.getScrollHeight */\n      this.modified.getScrollHeight()\n    ));\n    this.modifiedObs = observableCodeEditor(this.modified);\n    this.originalObs = observableCodeEditor(this.original);\n    this.modifiedModel = this.modifiedObs.model;\n    this.modifiedSelections = observableFromEvent(this, this.modified.onDidChangeCursorSelection, () =\u003e this.modified.getSelections() ?? []);\n    this.modifiedCursor = derivedOpts({ owner: this, equalsFn: Position.equals }, (reader) =\u003e this.modifiedSelections.read(reader)[0]?.getPosition() ?? new Position(1, 1));\n    this.originalCursor = observableFromEvent(this, this.original.onDidChangeCursorPosition, () =\u003e this.original.getPosition() ?? new Position(1, 1));\n    this.isOriginalFocused = observableCodeEditor(this.original).isFocused;\n    this.isModifiedFocused = observableCodeEditor(this.modified).isFocused;\n    this.isFocused = derived(this, (reader) =\u003e this.isOriginalFocused.read(reader) || this.isModifiedFocused.read(reader));\n    this._argCodeEditorWidgetOptions = null;\n    this._register(autorunHandleChanges({\n      changeTracker: {\n        createChangeSummary: () =\u003e ({}),\n        handleChange: (ctx, changeSummary) =\u003e {\n          if (ctx.didChange(_options.editorOptions)) {\n            Object.assign(changeSummary, ctx.change.changedOptions);\n          }\n          return true;\n        }\n      }\n    }, (reader, changeSummary) =\u003e {\n      _options.editorOptions.read(reader);\n      this._options.renderSideBySide.read(reader);\n      this.modified.updateOptions(this._adjustOptionsForRightHandSide(reader, changeSummary));\n      this.original.updateOptions(this._adjustOptionsForLeftHandSide(reader, changeSummary));\n    }));\n  }\n  _createLeftHandSideEditor(options2, codeEditorWidgetOptions) {\n    const leftHandSideOptions = this._adjustOptionsForLeftHandSide(void 0, options2);\n    const editor2 = this._constructInnerEditor(this._instantiationService, this.originalEditorElement, leftHandSideOptions, codeEditorWidgetOptions);\n    const isInDiffLeftEditorKey = this._contextKeyService.createKey(\"isInDiffLeftEditor\", editor2.hasWidgetFocus());\n    this._register(editor2.onDidFocusEditorWidget(() =\u003e isInDiffLeftEditorKey.set(true)));\n    this._register(editor2.onDidBlurEditorWidget(() =\u003e isInDiffLeftEditorKey.set(false)));\n    return editor2;\n  }\n  _createRightHandSideEditor(options2, codeEditorWidgetOptions) {\n    const rightHandSideOptions = this._adjustOptionsForRightHandSide(void 0, options2);\n    const editor2 = this._constructInnerEditor(this._instantiationService, this.modifiedEditorElement, rightHandSideOptions, codeEditorWidgetOptions);\n    const isInDiffRightEditorKey = this._contextKeyService.createKey(\"isInDiffRightEditor\", editor2.hasWidgetFocus());\n    this._register(editor2.onDidFocusEditorWidget(() =\u003e isInDiffRightEditorKey.set(true)));\n    this._register(editor2.onDidBlurEditorWidget(() =\u003e isInDiffRightEditorKey.set(false)));\n    return editor2;\n  }\n  _constructInnerEditor(instantiationService, container, options2, editorWidgetOptions) {\n    const editor2 = this._createInnerEditor(instantiationService, container, options2, editorWidgetOptions);\n    this._register(editor2.onDidContentSizeChange((e) =\u003e {\n      const width2 = this.original.getContentWidth() + this.modified.getContentWidth() + OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH;\n      const height = Math.max(this.modified.getContentHeight(), this.original.getContentHeight());\n      this._onDidContentSizeChange.fire({\n        contentHeight: height,\n        contentWidth: width2,\n        contentHeightChanged: e.contentHeightChanged,\n        contentWidthChanged: e.contentWidthChanged\n      });\n    }));\n    return editor2;\n  }\n  _adjustOptionsForLeftHandSide(_reader, changedOptions) {\n    const result = this._adjustOptionsForSubEditor(changedOptions);\n    if (!this._options.renderSideBySide.get()) {\n      result.wordWrapOverride1 = \"off\";\n      result.wordWrapOverride2 = \"off\";\n      result.stickyScroll = { enabled: false };\n      result.unicodeHighlight = { nonBasicASCII: false, ambiguousCharacters: false, invisibleCharacters: false };\n    } else {\n      result.unicodeHighlight = this._options.editorOptions.get().unicodeHighlight || {};\n      result.wordWrapOverride1 = this._options.diffWordWrap.get();\n    }\n    result.glyphMargin = this._options.renderSideBySide.get();\n    if (changedOptions.originalAriaLabel) {\n      result.ariaLabel = changedOptions.originalAriaLabel;\n    }\n    result.ariaLabel = this._updateAriaLabel(result.ariaLabel);\n    result.readOnly = !this._options.originalEditable.get();\n    result.dropIntoEditor = { enabled: !result.readOnly };\n    result.extraEditorClassName = \"original-in-monaco-diff-editor\";\n    return result;\n  }\n  _adjustOptionsForRightHandSide(reader, changedOptions) {\n    const result = this._adjustOptionsForSubEditor(changedOptions);\n    if (changedOptions.modifiedAriaLabel) {\n      result.ariaLabel = changedOptions.modifiedAriaLabel;\n    }\n    result.ariaLabel = this._updateAriaLabel(result.ariaLabel);\n    result.wordWrapOverride1 = this._options.diffWordWrap.get();\n    result.revealHorizontalRightPadding = EditorOptions.revealHorizontalRightPadding.defaultValue + OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH;\n    result.scrollbar.verticalHasArrows = false;\n    result.extraEditorClassName = \"modified-in-monaco-diff-editor\";\n    return result;\n  }\n  _adjustOptionsForSubEditor(options2) {\n    const clonedOptions = {\n      ...options2,\n      dimension: {\n        height: 0,\n        width: 0\n      }\n    };\n    clonedOptions.inDiffEditor = true;\n    clonedOptions.automaticLayout = false;\n    clonedOptions.allowVariableLineHeights = false;\n    clonedOptions.allowVariableFonts = false;\n    clonedOptions.allowVariableFontsInAccessibilityMode = false;\n    clonedOptions.scrollbar = { ...clonedOptions.scrollbar || {} };\n    clonedOptions.folding = false;\n    clonedOptions.codeLens = this._options.diffCodeLens.get();\n    clonedOptions.fixedOverflowWidgets = true;\n    clonedOptions.minimap = { ...clonedOptions.minimap || {} };\n    clonedOptions.minimap.enabled = false;\n    if (this._options.hideUnchangedRegions.get()) {\n      clonedOptions.stickyScroll = { enabled: false };\n    } else {\n      clonedOptions.stickyScroll = this._options.editorOptions.get().stickyScroll;\n    }\n    return clonedOptions;\n  }\n  _updateAriaLabel(ariaLabel) {\n    if (!ariaLabel) {\n      ariaLabel = \"\";\n    }\n    const ariaNavigationTip = localize(108, \" use {0} to open the accessibility help.\", this._keybindingService.lookupKeybinding(\"editor.action.accessibilityHelp\")?.getAriaLabel());\n    if (this._options.accessibilityVerbose.get()) {\n      return ariaLabel + ariaNavigationTip;\n    } else if (ariaLabel) {\n      return ariaLabel.replaceAll(ariaNavigationTip, \"\");\n    }\n    return \"\";\n  }\n};\nDiffEditorEditors = __decorate34([\n  __param30(5, IContextKeyService),\n  __param30(6, IInstantiationService),\n  __param30(7, IKeybindingService)\n], DiffEditorEditors);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/sash/sash.js\ninit_dom();\ninit_async();\ninit_event();\ninit_lifecycle();\ninit_platform();\nvar __decorate35 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar DEBUG = false;\nvar OrthogonalEdge;\n(function(OrthogonalEdge2) {\n  OrthogonalEdge2[\"North\"] = \"north\";\n  OrthogonalEdge2[\"South\"] = \"south\";\n  OrthogonalEdge2[\"East\"] = \"east\";\n  OrthogonalEdge2[\"West\"] = \"west\";\n})(OrthogonalEdge || (OrthogonalEdge = {}));\nvar globalSize = 4;\nvar onDidChangeGlobalSize = new Emitter();\nvar globalHoverDelay = 300;\nvar onDidChangeHoverDelay = new Emitter();\nvar MouseEventFactory = class {\n  constructor(el) {\n    this.el = el;\n    this.disposables = new DisposableStore();\n  }\n  get onPointerMove() {\n    return this.disposables.add(new DomEmitter(getWindow(this.el), \"mousemove\")).event;\n  }\n  get onPointerUp() {\n    return this.disposables.add(new DomEmitter(getWindow(this.el), \"mouseup\")).event;\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\n__decorate35([\n  memoize\n], MouseEventFactory.prototype, \"onPointerMove\", null);\n__decorate35([\n  memoize\n], MouseEventFactory.prototype, \"onPointerUp\", null);\nvar GestureEventFactory = class {\n  get onPointerMove() {\n    return this.disposables.add(new DomEmitter(this.el, EventType2.Change)).event;\n  }\n  get onPointerUp() {\n    return this.disposables.add(new DomEmitter(this.el, EventType2.End)).event;\n  }\n  constructor(el) {\n    this.el = el;\n    this.disposables = new DisposableStore();\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\n__decorate35([\n  memoize\n], GestureEventFactory.prototype, \"onPointerMove\", null);\n__decorate35([\n  memoize\n], GestureEventFactory.prototype, \"onPointerUp\", null);\nvar OrthogonalPointerEventFactory = class {\n  get onPointerMove() {\n    return this.factory.onPointerMove;\n  }\n  get onPointerUp() {\n    return this.factory.onPointerUp;\n  }\n  constructor(factory) {\n    this.factory = factory;\n  }\n  dispose() {\n  }\n};\n__decorate35([\n  memoize\n], OrthogonalPointerEventFactory.prototype, \"onPointerMove\", null);\n__decorate35([\n  memoize\n], OrthogonalPointerEventFactory.prototype, \"onPointerUp\", null);\nvar PointerEventsDisabledCssClass = \"pointer-events-disabled\";\nvar Sash = class _Sash extends Disposable {\n  get state() {\n    return this._state;\n  }\n  get orthogonalStartSash() {\n    return this._orthogonalStartSash;\n  }\n  get orthogonalEndSash() {\n    return this._orthogonalEndSash;\n  }\n  /**\n   * The state of a sash defines whether it can be interacted with by the user\n   * as well as what mouse cursor to use, when hovered.\n   */\n  set state(state) {\n    if (this._state === state) {\n      return;\n    }\n    this.el.classList.toggle(\n      \"disabled\",\n      state === 0\n      /* SashState.Disabled */\n    );\n    this.el.classList.toggle(\n      \"minimum\",\n      state === 1\n      /* SashState.AtMinimum */\n    );\n    this.el.classList.toggle(\n      \"maximum\",\n      state === 2\n      /* SashState.AtMaximum */\n    );\n    this._state = state;\n    this.onDidEnablementChange.fire(state);\n  }\n  /**\n   * An event which fires whenever the user starts dragging this sash.\n   */\n  get onDidStart() {\n    return this._onDidStart.event;\n  }\n  /**\n   * An event which fires whenever the user moves the mouse while\n   * dragging this sash.\n   */\n  get onDidChange() {\n    return this._onDidChange.event;\n  }\n  /**\n   * An event which fires whenever the user double clicks this sash.\n   */\n  get onDidReset() {\n    return this._onDidReset.event;\n  }\n  /**\n   * An event which fires whenever the user stops dragging this sash.\n   */\n  get onDidEnd() {\n    return this._onDidEnd.event;\n  }\n  /**\n   * A reference to another sash, perpendicular to this one, which\n   * aligns at the start of this one. A corner sash will be created\n   * automatically at that location.\n   *\n   * The start of a horizontal sash is its left-most position.\n   * The start of a vertical sash is its top-most position.\n   */\n  set orthogonalStartSash(sash) {\n    if (this._orthogonalStartSash === sash) {\n      return;\n    }\n    this.orthogonalStartDragHandleDisposables.clear();\n    this.orthogonalStartSashDisposables.clear();\n    if (sash) {\n      const onChange = (state) =\u003e {\n        this.orthogonalStartDragHandleDisposables.clear();\n        if (state !== 0) {\n          this._orthogonalStartDragHandle = append(this.el, $(\".orthogonal-drag-handle.start\"));\n          this.orthogonalStartDragHandleDisposables.add(toDisposable(() =\u003e this._orthogonalStartDragHandle.remove()));\n          this.orthogonalStartDragHandleDisposables.add(addDisposableListener(this._orthogonalStartDragHandle, \"mouseenter\", () =\u003e _Sash.onMouseEnter(sash)));\n          this.orthogonalStartDragHandleDisposables.add(addDisposableListener(this._orthogonalStartDragHandle, \"mouseleave\", () =\u003e _Sash.onMouseLeave(sash)));\n        }\n      };\n      this.orthogonalStartSashDisposables.add(sash.onDidEnablementChange.event(onChange, this));\n      onChange(sash.state);\n    }\n    this._orthogonalStartSash = sash;\n  }\n  /**\n   * A reference to another sash, perpendicular to this one, which\n   * aligns at the end of this one. A corner sash will be created\n   * automatically at that location.\n   *\n   * The end of a horizontal sash is its right-most position.\n   * The end of a vertical sash is its bottom-most position.\n   */\n  set orthogonalEndSash(sash) {\n    if (this._orthogonalEndSash === sash) {\n      return;\n    }\n    this.orthogonalEndDragHandleDisposables.clear();\n    this.orthogonalEndSashDisposables.clear();\n    if (sash) {\n      const onChange = (state) =\u003e {\n        this.orthogonalEndDragHandleDisposables.clear();\n        if (state !== 0) {\n          this._orthogonalEndDragHandle = append(this.el, $(\".orthogonal-drag-handle.end\"));\n          this.orthogonalEndDragHandleDisposables.add(toDisposable(() =\u003e this._orthogonalEndDragHandle.remove()));\n          this.orthogonalEndDragHandleDisposables.add(addDisposableListener(this._orthogonalEndDragHandle, \"mouseenter\", () =\u003e _Sash.onMouseEnter(sash)));\n          this.orthogonalEndDragHandleDisposables.add(addDisposableListener(this._orthogonalEndDragHandle, \"mouseleave\", () =\u003e _Sash.onMouseLeave(sash)));\n        }\n      };\n      this.orthogonalEndSashDisposables.add(sash.onDidEnablementChange.event(onChange, this));\n      onChange(sash.state);\n    }\n    this._orthogonalEndSash = sash;\n  }\n  constructor(container, layoutProvider, options2) {\n    super();\n    this.hoverDelay = globalHoverDelay;\n    this.hoverDelayer = this._register(new Delayer(this.hoverDelay));\n    this._state = 3;\n    this.onDidEnablementChange = this._register(new Emitter());\n    this._onDidStart = this._register(new Emitter());\n    this._onDidChange = this._register(new Emitter());\n    this._onDidReset = this._register(new Emitter());\n    this._onDidEnd = this._register(new Emitter());\n    this.orthogonalStartSashDisposables = this._register(new DisposableStore());\n    this.orthogonalStartDragHandleDisposables = this._register(new DisposableStore());\n    this.orthogonalEndSashDisposables = this._register(new DisposableStore());\n    this.orthogonalEndDragHandleDisposables = this._register(new DisposableStore());\n    this.linkedSash = void 0;\n    this.el = append(container, $(\".monaco-sash\"));\n    if (options2.orthogonalEdge) {\n      this.el.classList.add(`orthogonal-edge-${options2.orthogonalEdge}`);\n    }\n    if (isMacintosh) {\n      this.el.classList.add(\"mac\");\n    }\n    this._register(addDisposableListener(this.el, \"mousedown\", (e) =\u003e this.onPointerStart(e, new MouseEventFactory(container))));\n    this._register(addDisposableListener(this.el, \"dblclick\", (e) =\u003e this.onPointerDoublePress(e)));\n    this._register(addDisposableListener(this.el, \"mouseenter\", () =\u003e _Sash.onMouseEnter(this)));\n    this._register(addDisposableListener(this.el, \"mouseleave\", () =\u003e _Sash.onMouseLeave(this)));\n    this._register(Gesture.addTarget(this.el));\n    this._register(addDisposableListener(this.el, EventType2.Start, (e) =\u003e this.onPointerStart(e, new GestureEventFactory(this.el))));\n    let doubleTapTimeout = void 0;\n    this._register(addDisposableListener(this.el, EventType2.Tap, (event) =\u003e {\n      if (doubleTapTimeout) {\n        clearTimeout(doubleTapTimeout);\n        doubleTapTimeout = void 0;\n        this.onPointerDoublePress(event);\n        return;\n      }\n      clearTimeout(doubleTapTimeout);\n      doubleTapTimeout = setTimeout(() =\u003e doubleTapTimeout = void 0, 250);\n    }));\n    if (typeof options2.size === \"number\") {\n      this.size = options2.size;\n      if (options2.orientation === 0) {\n        this.el.style.width = `${this.size}px`;\n      } else {\n        this.el.style.height = `${this.size}px`;\n      }\n    } else {\n      this.size = globalSize;\n      this._register(onDidChangeGlobalSize.event((size2) =\u003e {\n        this.size = size2;\n        this.layout();\n      }));\n    }\n    this._register(onDidChangeHoverDelay.event((delay) =\u003e this.hoverDelay = delay));\n    this.layoutProvider = layoutProvider;\n    this.orthogonalStartSash = options2.orthogonalStartSash;\n    this.orthogonalEndSash = options2.orthogonalEndSash;\n    this.orientation = options2.orientation || 0;\n    if (this.orientation === 1) {\n      this.el.classList.add(\"horizontal\");\n      this.el.classList.remove(\"vertical\");\n    } else {\n      this.el.classList.remove(\"horizontal\");\n      this.el.classList.add(\"vertical\");\n    }\n    this.el.classList.toggle(\"debug\", DEBUG);\n    this.layout();\n  }\n  onPointerStart(event, pointerEventFactory) {\n    EventHelper.stop(event);\n    let isMultisashResize = false;\n    if (!event.__orthogonalSashEvent) {\n      const orthogonalSash = this.getOrthogonalSash(event);\n      if (orthogonalSash) {\n        isMultisashResize = true;\n        event.__orthogonalSashEvent = true;\n        orthogonalSash.onPointerStart(event, new OrthogonalPointerEventFactory(pointerEventFactory));\n      }\n    }\n    if (this.linkedSash \u0026\u0026 !event.__linkedSashEvent) {\n      event.__linkedSashEvent = true;\n      this.linkedSash.onPointerStart(event, new OrthogonalPointerEventFactory(pointerEventFactory));\n    }\n    if (!this.state) {\n      return;\n    }\n    const iframes = this.el.ownerDocument.getElementsByTagName(\"iframe\");\n    for (const iframe of iframes) {\n      iframe.classList.add(PointerEventsDisabledCssClass);\n    }\n    const startX = event.pageX;\n    const startY = event.pageY;\n    const altKey = event.altKey;\n    const startEvent = { startX, currentX: startX, startY, currentY: startY, altKey };\n    this.el.classList.add(\"active\");\n    this._onDidStart.fire(startEvent);\n    const style = createStyleSheet(this.el);\n    const updateStyle = () =\u003e {\n      let cursor = \"\";\n      if (isMultisashResize) {\n        cursor = \"all-scroll\";\n      } else if (this.orientation === 1) {\n        if (this.state === 1) {\n          cursor = \"s-resize\";\n        } else if (this.state === 2) {\n          cursor = \"n-resize\";\n        } else {\n          cursor = isMacintosh ? \"row-resize\" : \"ns-resize\";\n        }\n      } else {\n        if (this.state === 1) {\n          cursor = \"e-resize\";\n        } else if (this.state === 2) {\n          cursor = \"w-resize\";\n        } else {\n          cursor = isMacintosh ? \"col-resize\" : \"ew-resize\";\n        }\n      }\n      style.textContent = `* { cursor: ${cursor} !important; }`;\n    };\n    const disposables = new DisposableStore();\n    updateStyle();\n    if (!isMultisashResize) {\n      this.onDidEnablementChange.event(updateStyle, null, disposables);\n    }\n    const onPointerMove = (e) =\u003e {\n      EventHelper.stop(e, false);\n      const event2 = { startX, currentX: e.pageX, startY, currentY: e.pageY, altKey };\n      this._onDidChange.fire(event2);\n    };\n    const onPointerUp = (e) =\u003e {\n      EventHelper.stop(e, false);\n      style.remove();\n      this.el.classList.remove(\"active\");\n      this._onDidEnd.fire();\n      disposables.dispose();\n      for (const iframe of iframes) {\n        iframe.classList.remove(PointerEventsDisabledCssClass);\n      }\n    };\n    pointerEventFactory.onPointerMove(onPointerMove, null, disposables);\n    pointerEventFactory.onPointerUp(onPointerUp, null, disposables);\n    disposables.add(pointerEventFactory);\n  }\n  onPointerDoublePress(e) {\n    const orthogonalSash = this.getOrthogonalSash(e);\n    if (orthogonalSash) {\n      orthogonalSash._onDidReset.fire();\n    }\n    if (this.linkedSash) {\n      this.linkedSash._onDidReset.fire();\n    }\n    this._onDidReset.fire();\n  }\n  static onMouseEnter(sash, fromLinkedSash = false) {\n    if (sash.el.classList.contains(\"active\")) {\n      sash.hoverDelayer.cancel();\n      sash.el.classList.add(\"hover\");\n    } else {\n      sash.hoverDelayer.trigger(() =\u003e sash.el.classList.add(\"hover\"), sash.hoverDelay).then(void 0, () =\u003e {\n      });\n    }\n    if (!fromLinkedSash \u0026\u0026 sash.linkedSash) {\n      _Sash.onMouseEnter(sash.linkedSash, true);\n    }\n  }\n  static onMouseLeave(sash, fromLinkedSash = false) {\n    sash.hoverDelayer.cancel();\n    sash.el.classList.remove(\"hover\");\n    if (!fromLinkedSash \u0026\u0026 sash.linkedSash) {\n      _Sash.onMouseLeave(sash.linkedSash, true);\n    }\n  }\n  /**\n   * Forcefully stop any user interactions with this sash.\n   * Useful when hiding a parent component, while the user is still\n   * interacting with the sash.\n   */\n  clearSashHoverState() {\n    _Sash.onMouseLeave(this);\n  }\n  /**\n   * Layout the sash. The sash will size and position itself\n   * based on its provided {@link ISashLayoutProvider layout provider}.\n   */\n  layout() {\n    if (this.orientation === 0) {\n      const verticalProvider = this.layoutProvider;\n      this.el.style.left = verticalProvider.getVerticalSashLeft(this) - this.size / 2 + \"px\";\n      if (verticalProvider.getVerticalSashTop) {\n        this.el.style.top = verticalProvider.getVerticalSashTop(this) + \"px\";\n      }\n      if (verticalProvider.getVerticalSashHeight) {\n        this.el.style.height = verticalProvider.getVerticalSashHeight(this) + \"px\";\n      }\n    } else {\n      const horizontalProvider = this.layoutProvider;\n      this.el.style.top = horizontalProvider.getHorizontalSashTop(this) - this.size / 2 + \"px\";\n      if (horizontalProvider.getHorizontalSashLeft) {\n        this.el.style.left = horizontalProvider.getHorizontalSashLeft(this) + \"px\";\n      }\n      if (horizontalProvider.getHorizontalSashWidth) {\n        this.el.style.width = horizontalProvider.getHorizontalSashWidth(this) + \"px\";\n      }\n    }\n  }\n  getOrthogonalSash(e) {\n    const target = e.initialTarget ?? e.target;\n    if (!target || !isHTMLElement(target)) {\n      return void 0;\n    }\n    if (target.classList.contains(\"orthogonal-drag-handle\")) {\n      return target.classList.contains(\"start\") ? this.orthogonalStartSash : this.orthogonalEndSash;\n    }\n    return void 0;\n  }\n  dispose() {\n    super.dispose();\n    this.el.remove();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/components/diffEditorSash.js\ninit_lifecycle();\ninit_observable();\nvar SashLayout = class {\n  resetSash() {\n    this._sashRatio.set(void 0, void 0);\n  }\n  constructor(_options, dimensions) {\n    this._options = _options;\n    this.dimensions = dimensions;\n    this.sashLeft = derivedWithSetter(this, (reader) =\u003e {\n      const ratio = this._sashRatio.read(reader) ?? this._options.splitViewDefaultRatio.read(reader);\n      return this._computeSashLeft(ratio, reader);\n    }, (value, tx) =\u003e {\n      const contentWidth = this.dimensions.width.get();\n      this._sashRatio.set(value / contentWidth, tx);\n    });\n    this._sashRatio = observableValue(this, void 0);\n  }\n  /** @pure */\n  _computeSashLeft(desiredRatio, reader) {\n    const contentWidth = this.dimensions.width.read(reader);\n    const midPoint = Math.floor(this._options.splitViewDefaultRatio.read(reader) * contentWidth);\n    const sashLeft = this._options.enableSplitViewResizing.read(reader) ? Math.floor(desiredRatio * contentWidth) : midPoint;\n    const MINIMUM_EDITOR_WIDTH = 100;\n    if (contentWidth \u003c= MINIMUM_EDITOR_WIDTH * 2) {\n      return midPoint;\n    }\n    if (sashLeft \u003c MINIMUM_EDITOR_WIDTH) {\n      return MINIMUM_EDITOR_WIDTH;\n    }\n    if (sashLeft \u003e contentWidth - MINIMUM_EDITOR_WIDTH) {\n      return contentWidth - MINIMUM_EDITOR_WIDTH;\n    }\n    return sashLeft;\n  }\n};\nvar DiffEditorSash = class extends Disposable {\n  constructor(_domNode, _dimensions, _enabled, _boundarySashes, sashLeft, _resetSash) {\n    super();\n    this._domNode = _domNode;\n    this._dimensions = _dimensions;\n    this._enabled = _enabled;\n    this._boundarySashes = _boundarySashes;\n    this.sashLeft = sashLeft;\n    this._resetSash = _resetSash;\n    this._sash = this._register(new Sash(this._domNode, {\n      getVerticalSashTop: (_sash) =\u003e 0,\n      getVerticalSashLeft: (_sash) =\u003e this.sashLeft.get(),\n      getVerticalSashHeight: (_sash) =\u003e this._dimensions.height.get()\n    }, {\n      orientation: 0\n      /* Orientation.VERTICAL */\n    }));\n    this._startSashPosition = void 0;\n    this._register(this._sash.onDidStart(() =\u003e {\n      this._startSashPosition = this.sashLeft.get();\n    }));\n    this._register(this._sash.onDidChange((e) =\u003e {\n      this.sashLeft.set(this._startSashPosition + (e.currentX - e.startX), void 0);\n    }));\n    this._register(this._sash.onDidEnd(() =\u003e this._sash.layout()));\n    this._register(this._sash.onDidReset(() =\u003e this._resetSash()));\n    this._register(autorun((reader) =\u003e {\n      const sashes = this._boundarySashes.read(reader);\n      if (sashes) {\n        this._sash.orthogonalEndSash = sashes.bottom;\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      const enabled = this._enabled.read(reader);\n      this._sash.state = enabled ? 3 : 0;\n      this.sashLeft.read(reader);\n      this._dimensions.height.read(reader);\n      this._sash.layout();\n    }));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js\ninit_event();\ninit_lifecycle();\nvar DelegatingEditor = class _DelegatingEditor extends Disposable {\n  constructor() {\n    super(...arguments);\n    this._id = ++_DelegatingEditor.idCounter;\n    this._onDidDispose = this._register(new Emitter());\n    this.onDidDispose = this._onDidDispose.event;\n  }\n  static {\n    this.idCounter = 0;\n  }\n  getId() {\n    return this.getEditorType() + \":v2:\" + this._id;\n  }\n  // #region editorBrowser.IDiffEditor: Delegating to modified Editor\n  getVisibleColumnFromPosition(position) {\n    return this._targetEditor.getVisibleColumnFromPosition(position);\n  }\n  getPosition() {\n    return this._targetEditor.getPosition();\n  }\n  setPosition(position, source = \"api\") {\n    this._targetEditor.setPosition(position, source);\n  }\n  revealLine(lineNumber, scrollType = 0) {\n    this._targetEditor.revealLine(lineNumber, scrollType);\n  }\n  revealLineInCenter(lineNumber, scrollType = 0) {\n    this._targetEditor.revealLineInCenter(lineNumber, scrollType);\n  }\n  revealLineInCenterIfOutsideViewport(lineNumber, scrollType = 0) {\n    this._targetEditor.revealLineInCenterIfOutsideViewport(lineNumber, scrollType);\n  }\n  revealLineNearTop(lineNumber, scrollType = 0) {\n    this._targetEditor.revealLineNearTop(lineNumber, scrollType);\n  }\n  revealPosition(position, scrollType = 0) {\n    this._targetEditor.revealPosition(position, scrollType);\n  }\n  revealPositionInCenter(position, scrollType = 0) {\n    this._targetEditor.revealPositionInCenter(position, scrollType);\n  }\n  revealPositionInCenterIfOutsideViewport(position, scrollType = 0) {\n    this._targetEditor.revealPositionInCenterIfOutsideViewport(position, scrollType);\n  }\n  revealPositionNearTop(position, scrollType = 0) {\n    this._targetEditor.revealPositionNearTop(position, scrollType);\n  }\n  getSelection() {\n    return this._targetEditor.getSelection();\n  }\n  getSelections() {\n    return this._targetEditor.getSelections();\n  }\n  setSelection(something, source = \"api\") {\n    this._targetEditor.setSelection(something, source);\n  }\n  setSelections(ranges, source = \"api\") {\n    this._targetEditor.setSelections(ranges, source);\n  }\n  revealLines(startLineNumber, endLineNumber, scrollType = 0) {\n    this._targetEditor.revealLines(startLineNumber, endLineNumber, scrollType);\n  }\n  revealLinesInCenter(startLineNumber, endLineNumber, scrollType = 0) {\n    this._targetEditor.revealLinesInCenter(startLineNumber, endLineNumber, scrollType);\n  }\n  revealLinesInCenterIfOutsideViewport(startLineNumber, endLineNumber, scrollType = 0) {\n    this._targetEditor.revealLinesInCenterIfOutsideViewport(startLineNumber, endLineNumber, scrollType);\n  }\n  revealLinesNearTop(startLineNumber, endLineNumber, scrollType = 0) {\n    this._targetEditor.revealLinesNearTop(startLineNumber, endLineNumber, scrollType);\n  }\n  revealRange(range2, scrollType = 0, revealVerticalInCenter = false, revealHorizontal = true) {\n    this._targetEditor.revealRange(range2, scrollType, revealVerticalInCenter, revealHorizontal);\n  }\n  revealRangeInCenter(range2, scrollType = 0) {\n    this._targetEditor.revealRangeInCenter(range2, scrollType);\n  }\n  revealRangeInCenterIfOutsideViewport(range2, scrollType = 0) {\n    this._targetEditor.revealRangeInCenterIfOutsideViewport(range2, scrollType);\n  }\n  revealRangeNearTop(range2, scrollType = 0) {\n    this._targetEditor.revealRangeNearTop(range2, scrollType);\n  }\n  revealRangeNearTopIfOutsideViewport(range2, scrollType = 0) {\n    this._targetEditor.revealRangeNearTopIfOutsideViewport(range2, scrollType);\n  }\n  revealRangeAtTop(range2, scrollType = 0) {\n    this._targetEditor.revealRangeAtTop(range2, scrollType);\n  }\n  getSupportedActions() {\n    return this._targetEditor.getSupportedActions();\n  }\n  focus() {\n    this._targetEditor.focus();\n  }\n  trigger(source, handlerId, payload) {\n    this._targetEditor.trigger(source, handlerId, payload);\n  }\n  createDecorationsCollection(decorations) {\n    return this._targetEditor.createDecorationsCollection(decorations);\n  }\n  changeDecorations(callback) {\n    return this._targetEditor.changeDecorations(callback);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js\ninit_observable();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/config/diffEditor.js\nvar diffEditorDefaultOptions = {\n  enableSplitViewResizing: true,\n  splitViewDefaultRatio: 0.5,\n  renderSideBySide: true,\n  renderMarginRevertIcon: true,\n  renderGutterMenu: true,\n  maxComputationTime: 5e3,\n  maxFileSize: 50,\n  ignoreTrimWhitespace: true,\n  renderIndicators: true,\n  originalEditable: false,\n  diffCodeLens: false,\n  renderOverviewRuler: true,\n  diffWordWrap: \"inherit\",\n  diffAlgorithm: \"advanced\",\n  accessibilityVerbose: false,\n  experimental: {\n    showMoves: false,\n    showEmptyDecorations: true,\n    useTrueInlineView: false\n  },\n  hideUnchangedRegions: {\n    enabled: false,\n    contextLineCount: 3,\n    minimumLineCount: 3,\n    revealLineCount: 20\n  },\n  isInEmbeddedEditor: false,\n  onlyShowAccessibleDiffViewer: false,\n  renderSideBySideInlineBreakpoint: 900,\n  useInlineViewWhenSpaceIsLimited: true,\n  compactMode: false\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js\nvar __decorate36 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param31 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DiffEditorOptions = class DiffEditorOptions2 {\n  get editorOptions() {\n    return this._options;\n  }\n  constructor(options2, _accessibilityService) {\n    this._accessibilityService = _accessibilityService;\n    this._diffEditorWidth = observableValue(this, 0);\n    this._screenReaderMode = observableFromEvent(this, this._accessibilityService.onDidChangeScreenReaderOptimized, () =\u003e this._accessibilityService.isScreenReaderOptimized());\n    this.couldShowInlineViewBecauseOfSize = derived(this, (reader) =\u003e this._options.read(reader).renderSideBySide \u0026\u0026 this._diffEditorWidth.read(reader) \u003c= this._options.read(reader).renderSideBySideInlineBreakpoint);\n    this.renderOverviewRuler = derived(this, (reader) =\u003e this._options.read(reader).renderOverviewRuler);\n    this.renderSideBySide = derived(this, (reader) =\u003e {\n      if (this.compactMode.read(reader)) {\n        if (this.shouldRenderInlineViewInSmartMode.read(reader)) {\n          return false;\n        }\n      }\n      return this._options.read(reader).renderSideBySide \u0026\u0026 !(this._options.read(reader).useInlineViewWhenSpaceIsLimited \u0026\u0026 this.couldShowInlineViewBecauseOfSize.read(reader) \u0026\u0026 !this._screenReaderMode.read(reader));\n    });\n    this.readOnly = derived(this, (reader) =\u003e this._options.read(reader).readOnly);\n    this.shouldRenderOldRevertArrows = derived(this, (reader) =\u003e {\n      if (!this._options.read(reader).renderMarginRevertIcon) {\n        return false;\n      }\n      if (!this.renderSideBySide.read(reader)) {\n        return false;\n      }\n      if (this.readOnly.read(reader)) {\n        return false;\n      }\n      if (this.shouldRenderGutterMenu.read(reader)) {\n        return false;\n      }\n      return true;\n    });\n    this.shouldRenderGutterMenu = derived(this, (reader) =\u003e this._options.read(reader).renderGutterMenu);\n    this.renderIndicators = derived(this, (reader) =\u003e this._options.read(reader).renderIndicators);\n    this.enableSplitViewResizing = derived(this, (reader) =\u003e this._options.read(reader).enableSplitViewResizing);\n    this.splitViewDefaultRatio = derived(this, (reader) =\u003e this._options.read(reader).splitViewDefaultRatio);\n    this.ignoreTrimWhitespace = derived(this, (reader) =\u003e this._options.read(reader).ignoreTrimWhitespace);\n    this.maxComputationTimeMs = derived(this, (reader) =\u003e this._options.read(reader).maxComputationTime);\n    this.showMoves = derived(this, (reader) =\u003e this._options.read(reader).experimental.showMoves \u0026\u0026 this.renderSideBySide.read(reader));\n    this.isInEmbeddedEditor = derived(this, (reader) =\u003e this._options.read(reader).isInEmbeddedEditor);\n    this.diffWordWrap = derived(this, (reader) =\u003e this._options.read(reader).diffWordWrap);\n    this.originalEditable = derived(this, (reader) =\u003e this._options.read(reader).originalEditable);\n    this.diffCodeLens = derived(this, (reader) =\u003e this._options.read(reader).diffCodeLens);\n    this.accessibilityVerbose = derived(this, (reader) =\u003e this._options.read(reader).accessibilityVerbose);\n    this.diffAlgorithm = derived(this, (reader) =\u003e this._options.read(reader).diffAlgorithm);\n    this.showEmptyDecorations = derived(this, (reader) =\u003e this._options.read(reader).experimental.showEmptyDecorations);\n    this.onlyShowAccessibleDiffViewer = derived(this, (reader) =\u003e this._options.read(reader).onlyShowAccessibleDiffViewer);\n    this.compactMode = derived(this, (reader) =\u003e this._options.read(reader).compactMode);\n    this.trueInlineDiffRenderingEnabled = derived(this, (reader) =\u003e this._options.read(reader).experimental.useTrueInlineView);\n    this.useTrueInlineDiffRendering = derived(this, (reader) =\u003e !this.renderSideBySide.read(reader) \u0026\u0026 this.trueInlineDiffRenderingEnabled.read(reader));\n    this.hideUnchangedRegions = derived(this, (reader) =\u003e this._options.read(reader).hideUnchangedRegions.enabled);\n    this.hideUnchangedRegionsRevealLineCount = derived(this, (reader) =\u003e this._options.read(reader).hideUnchangedRegions.revealLineCount);\n    this.hideUnchangedRegionsContextLineCount = derived(this, (reader) =\u003e this._options.read(reader).hideUnchangedRegions.contextLineCount);\n    this.hideUnchangedRegionsMinimumLineCount = derived(this, (reader) =\u003e this._options.read(reader).hideUnchangedRegions.minimumLineCount);\n    this._model = observableValue(this, void 0);\n    this.shouldRenderInlineViewInSmartMode = this._model.map(this, (model) =\u003e derivedConstOnceDefined(this, (reader) =\u003e {\n      const diffs = model?.diff.read(reader);\n      return diffs ? isSimpleDiff(diffs, this.trueInlineDiffRenderingEnabled.read(reader)) : void 0;\n    })).flatten().map(this, (v) =\u003e !!v);\n    this.inlineViewHideOriginalLineNumbers = this.compactMode;\n    const optionsCopy = { ...options2, ...validateDiffEditorOptions(options2, diffEditorDefaultOptions) };\n    this._options = observableValue(this, optionsCopy);\n  }\n  updateOptions(changedOptions) {\n    const newDiffEditorOptions = validateDiffEditorOptions(changedOptions, this._options.get());\n    const newOptions = { ...this._options.get(), ...changedOptions, ...newDiffEditorOptions };\n    this._options.set(newOptions, void 0, { changedOptions });\n  }\n  setWidth(width2) {\n    this._diffEditorWidth.set(width2, void 0);\n  }\n  setModel(model) {\n    this._model.set(model, void 0);\n  }\n};\nDiffEditorOptions = __decorate36([\n  __param31(1, IAccessibilityService)\n], DiffEditorOptions);\nfunction isSimpleDiff(diff, supportsTrueDiffRendering) {\n  return diff.mappings.every((m) =\u003e isInsertion(m.lineRangeMapping) || isDeletion(m.lineRangeMapping) || supportsTrueDiffRendering \u0026\u0026 allowsTrueInlineDiffRendering(m.lineRangeMapping));\n}\nfunction isInsertion(mapping) {\n  return mapping.original.length === 0;\n}\nfunction isDeletion(mapping) {\n  return mapping.modified.length === 0;\n}\nfunction validateDiffEditorOptions(options2, defaults) {\n  return {\n    enableSplitViewResizing: boolean(options2.enableSplitViewResizing, defaults.enableSplitViewResizing),\n    splitViewDefaultRatio: clampedFloat(options2.splitViewDefaultRatio, 0.5, 0.1, 0.9),\n    renderSideBySide: boolean(options2.renderSideBySide, defaults.renderSideBySide),\n    renderMarginRevertIcon: boolean(options2.renderMarginRevertIcon, defaults.renderMarginRevertIcon),\n    maxComputationTime: clampedInt(\n      options2.maxComputationTime,\n      defaults.maxComputationTime,\n      0,\n      1073741824\n      /* Constants.MAX_SAFE_SMALL_INTEGER */\n    ),\n    maxFileSize: clampedInt(\n      options2.maxFileSize,\n      defaults.maxFileSize,\n      0,\n      1073741824\n      /* Constants.MAX_SAFE_SMALL_INTEGER */\n    ),\n    ignoreTrimWhitespace: boolean(options2.ignoreTrimWhitespace, defaults.ignoreTrimWhitespace),\n    renderIndicators: boolean(options2.renderIndicators, defaults.renderIndicators),\n    originalEditable: boolean(options2.originalEditable, defaults.originalEditable),\n    diffCodeLens: boolean(options2.diffCodeLens, defaults.diffCodeLens),\n    renderOverviewRuler: boolean(options2.renderOverviewRuler, defaults.renderOverviewRuler),\n    diffWordWrap: stringSet(options2.diffWordWrap, defaults.diffWordWrap, [\"off\", \"on\", \"inherit\"]),\n    diffAlgorithm: stringSet(options2.diffAlgorithm, defaults.diffAlgorithm, [\"legacy\", \"advanced\"], { \"smart\": \"legacy\", \"experimental\": \"advanced\" }),\n    accessibilityVerbose: boolean(options2.accessibilityVerbose, defaults.accessibilityVerbose),\n    experimental: {\n      showMoves: boolean(options2.experimental?.showMoves, defaults.experimental.showMoves),\n      showEmptyDecorations: boolean(options2.experimental?.showEmptyDecorations, defaults.experimental.showEmptyDecorations),\n      useTrueInlineView: boolean(options2.experimental?.useTrueInlineView, defaults.experimental.useTrueInlineView)\n    },\n    hideUnchangedRegions: {\n      enabled: boolean(options2.hideUnchangedRegions?.enabled ?? options2.experimental?.collapseUnchangedRegions, defaults.hideUnchangedRegions.enabled),\n      contextLineCount: clampedInt(\n        options2.hideUnchangedRegions?.contextLineCount,\n        defaults.hideUnchangedRegions.contextLineCount,\n        0,\n        1073741824\n        /* Constants.MAX_SAFE_SMALL_INTEGER */\n      ),\n      minimumLineCount: clampedInt(\n        options2.hideUnchangedRegions?.minimumLineCount,\n        defaults.hideUnchangedRegions.minimumLineCount,\n        0,\n        1073741824\n        /* Constants.MAX_SAFE_SMALL_INTEGER */\n      ),\n      revealLineCount: clampedInt(\n        options2.hideUnchangedRegions?.revealLineCount,\n        defaults.hideUnchangedRegions.revealLineCount,\n        0,\n        1073741824\n        /* Constants.MAX_SAFE_SMALL_INTEGER */\n      )\n    },\n    isInEmbeddedEditor: boolean(options2.isInEmbeddedEditor, defaults.isInEmbeddedEditor),\n    onlyShowAccessibleDiffViewer: boolean(options2.onlyShowAccessibleDiffViewer, defaults.onlyShowAccessibleDiffViewer),\n    renderSideBySideInlineBreakpoint: clampedInt(\n      options2.renderSideBySideInlineBreakpoint,\n      defaults.renderSideBySideInlineBreakpoint,\n      0,\n      1073741824\n      /* Constants.MAX_SAFE_SMALL_INTEGER */\n    ),\n    useInlineViewWhenSpaceIsLimited: boolean(options2.useInlineViewWhenSpaceIsLimited, defaults.useInlineViewWhenSpaceIsLimited),\n    renderGutterMenu: boolean(options2.renderGutterMenu, defaults.renderGutterMenu),\n    compactMode: boolean(options2.compactMode, defaults.compactMode)\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js\ninit_dom();\ninit_lifecycle();\ninit_observable();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/toolbar.js\ninit_dom();\ninit_mouseEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js\ninit_event();\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/dropdown/dropdown.js\ninit_dom();\ninit_keyboardEvent();\ninit_actions();\ninit_event();\nvar BaseDropdown = class extends ActionRunner {\n  constructor(container, options2) {\n    super();\n    this._onDidChangeVisibility = this._register(new Emitter());\n    this.onDidChangeVisibility = this._onDidChangeVisibility.event;\n    this._element = append(container, $(\".monaco-dropdown\"));\n    this._label = append(this._element, $(\".dropdown-label\"));\n    let labelRenderer = options2.labelRenderer;\n    if (!labelRenderer) {\n      labelRenderer = (container2) =\u003e {\n        container2.textContent = options2.label || \"\";\n        return null;\n      };\n    }\n    for (const event of [EventType.CLICK, EventType.MOUSE_DOWN, EventType2.Tap]) {\n      this._register(addDisposableListener(this.element, event, (e) =\u003e EventHelper.stop(e, true)));\n    }\n    for (const event of [EventType.MOUSE_DOWN, EventType2.Tap]) {\n      this._register(addDisposableListener(this._label, event, (e) =\u003e {\n        if (isMouseEvent(e) \u0026\u0026 (e.detail \u003e 1 || e.button !== 0)) {\n          return;\n        }\n        if (this.visible) {\n          this.hide();\n        } else {\n          this.show();\n        }\n      }));\n    }\n    this._register(addDisposableListener(this._label, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      if (event.equals(\n        3\n        /* KeyCode.Enter */\n      ) || event.equals(\n        10\n        /* KeyCode.Space */\n      )) {\n        EventHelper.stop(e, true);\n        if (this.visible) {\n          this.hide();\n        } else {\n          this.show();\n        }\n      }\n    }));\n    const cleanupFn = labelRenderer(this._label);\n    if (cleanupFn) {\n      this._register(cleanupFn);\n    }\n    this._register(Gesture.addTarget(this._label));\n  }\n  get element() {\n    return this._element;\n  }\n  show() {\n    if (!this.visible) {\n      this.visible = true;\n      this._onDidChangeVisibility.fire(true);\n    }\n  }\n  hide() {\n    if (this.visible) {\n      this.visible = false;\n      this._onDidChangeVisibility.fire(false);\n    }\n  }\n  dispose() {\n    super.dispose();\n    this.hide();\n    if (this.boxContainer) {\n      this.boxContainer.remove();\n      this.boxContainer = void 0;\n    }\n    if (this.contents) {\n      this.contents.remove();\n      this.contents = void 0;\n    }\n    if (this._label) {\n      this._label.remove();\n      this._label = void 0;\n    }\n  }\n};\nvar DropdownMenu = class extends BaseDropdown {\n  constructor(container, _options) {\n    super(container, _options);\n    this._options = _options;\n    this._actions = [];\n    this.actions = _options.actions || [];\n  }\n  set menuOptions(options2) {\n    this._menuOptions = options2;\n  }\n  get menuOptions() {\n    return this._menuOptions;\n  }\n  get actions() {\n    if (this._options.actionProvider) {\n      return this._options.actionProvider.getActions();\n    }\n    return this._actions;\n  }\n  set actions(actions) {\n    this._actions = actions;\n  }\n  show() {\n    super.show();\n    this.element.classList.add(\"active\");\n    this._options.contextMenuProvider.showContextMenu({\n      getAnchor: () =\u003e this.element,\n      getActions: () =\u003e this.actions,\n      getActionsContext: () =\u003e this.menuOptions ? this.menuOptions.context : null,\n      getActionViewItem: (action, options2) =\u003e this.menuOptions \u0026\u0026 this.menuOptions.actionViewItemProvider ? this.menuOptions.actionViewItemProvider(action, options2) : void 0,\n      getKeyBinding: (action) =\u003e this.menuOptions \u0026\u0026 this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(action) : void 0,\n      getMenuClassName: () =\u003e this._options.menuClassName || \"\",\n      onHide: () =\u003e this.onHide(),\n      actionRunner: this.menuOptions ? this.menuOptions.actionRunner : void 0,\n      anchorAlignment: this.menuOptions ? this.menuOptions.anchorAlignment : 0,\n      domForShadowRoot: this._options.menuAsChild ? this.element : void 0,\n      skipTelemetry: this._options.skipTelemetry\n    });\n  }\n  hide() {\n    super.hide();\n  }\n  onHide() {\n    this.hide();\n    this.element.classList.remove(\"active\");\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js\nvar DropdownMenuActionViewItem = class extends BaseActionViewItem {\n  get onDidChangeVisibility() {\n    return this._onDidChangeVisibility.event;\n  }\n  constructor(action, menuActionsOrProvider, contextMenuProvider, options2 = /* @__PURE__ */ Object.create(null)) {\n    super(null, action, options2);\n    this.actionItem = null;\n    this._onDidChangeVisibility = this._register(new Emitter());\n    this.menuActionsOrProvider = menuActionsOrProvider;\n    this.contextMenuProvider = contextMenuProvider;\n    this.options = options2;\n    if (this.options.actionRunner) {\n      this.actionRunner = this.options.actionRunner;\n    }\n  }\n  render(container) {\n    this.actionItem = container;\n    const labelRenderer = (el) =\u003e {\n      this.element = append(el, $(\"a.action-label\"));\n      return this.renderLabel(this.element);\n    };\n    const isActionsArray = Array.isArray(this.menuActionsOrProvider);\n    const options2 = {\n      contextMenuProvider: this.contextMenuProvider,\n      labelRenderer,\n      menuAsChild: this.options.menuAsChild,\n      actions: isActionsArray ? this.menuActionsOrProvider : void 0,\n      actionProvider: isActionsArray ? void 0 : this.menuActionsOrProvider,\n      skipTelemetry: this.options.skipTelemetry\n    };\n    this.dropdownMenu = this._register(new DropdownMenu(container, options2));\n    this._register(this.dropdownMenu.onDidChangeVisibility((visible) =\u003e {\n      this.element?.setAttribute(\"aria-expanded\", `${visible}`);\n      this._onDidChangeVisibility.fire(visible);\n    }));\n    this.dropdownMenu.menuOptions = {\n      actionViewItemProvider: this.options.actionViewItemProvider,\n      actionRunner: this.actionRunner,\n      getKeyBinding: this.options.keybindingProvider,\n      context: this._context\n    };\n    if (this.options.anchorAlignmentProvider) {\n      const that = this;\n      this.dropdownMenu.menuOptions = {\n        ...this.dropdownMenu.menuOptions,\n        get anchorAlignment() {\n          return that.options.anchorAlignmentProvider();\n        }\n      };\n    }\n    this.updateTooltip();\n    this.updateEnabled();\n  }\n  renderLabel(element) {\n    let classNames2 = [];\n    if (typeof this.options.classNames === \"string\") {\n      classNames2 = this.options.classNames.split(/\\s+/g).filter((s) =\u003e !!s);\n    } else if (this.options.classNames) {\n      classNames2 = this.options.classNames;\n    }\n    if (!classNames2.find((c) =\u003e c === \"icon\")) {\n      classNames2.push(\"codicon\");\n    }\n    element.classList.add(...classNames2);\n    if (this._action.label) {\n      this._register(getBaseLayerHoverDelegate().setupManagedHover(this.options.hoverDelegate ?? getDefaultHoverDelegate(\"mouse\"), element, this._action.label));\n    }\n    return null;\n  }\n  getTooltip() {\n    let title = null;\n    if (this.action.tooltip) {\n      title = this.action.tooltip;\n    } else if (this.action.label) {\n      title = this.action.label;\n    }\n    return title ?? void 0;\n  }\n  setActionContext(newContext) {\n    super.setActionContext(newContext);\n    if (this.dropdownMenu) {\n      if (this.dropdownMenu.menuOptions) {\n        this.dropdownMenu.menuOptions.context = newContext;\n      } else {\n        this.dropdownMenu.menuOptions = { context: newContext };\n      }\n    }\n  }\n  show() {\n    this.dropdownMenu?.show();\n  }\n  updateEnabled() {\n    const disabled = !this.action.enabled;\n    this.actionItem?.classList.toggle(\"disabled\", disabled);\n    this.element?.classList.toggle(\"disabled\", disabled);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/toolbar/toolbar.js\ninit_actions();\ninit_codicons();\ninit_themables();\ninit_event();\ninit_lifecycle();\ninit_nls();\nvar ToolBar = class extends Disposable {\n  get onDidChangeDropdownVisibility() {\n    return this._onDidChangeDropdownVisibility.event;\n  }\n  constructor(container, contextMenuProvider, options2 = {\n    orientation: 0\n    /* ActionsOrientation.HORIZONTAL */\n  }) {\n    super();\n    this.submenuActionViewItems = [];\n    this.hasSecondaryActions = false;\n    this._onDidChangeDropdownVisibility = this._register(new EventMultiplexer());\n    this.disposables = this._register(new DisposableStore());\n    options2.hoverDelegate = options2.hoverDelegate ?? this._register(createInstantHoverDelegate());\n    this.options = options2;\n    this.toggleMenuAction = this._register(new ToggleMenuAction(() =\u003e this.toggleMenuActionViewItem?.show(), options2.toggleMenuTitle));\n    this.element = document.createElement(\"div\");\n    this.element.className = \"monaco-toolbar\";\n    container.appendChild(this.element);\n    this.actionBar = this._register(new ActionBar(this.element, {\n      orientation: options2.orientation,\n      ariaLabel: options2.ariaLabel,\n      actionRunner: options2.actionRunner,\n      allowContextMenu: options2.allowContextMenu,\n      highlightToggledItems: options2.highlightToggledItems,\n      hoverDelegate: options2.hoverDelegate,\n      actionViewItemProvider: (action, viewItemOptions) =\u003e {\n        if (action.id === ToggleMenuAction.ID) {\n          this.toggleMenuActionViewItem = new DropdownMenuActionViewItem(action, action.menuActions, contextMenuProvider, {\n            actionViewItemProvider: this.options.actionViewItemProvider,\n            actionRunner: this.actionRunner,\n            keybindingProvider: this.options.getKeyBinding,\n            classNames: ThemeIcon.asClassNameArray(options2.moreIcon ?? Codicon.toolBarMore),\n            anchorAlignmentProvider: this.options.anchorAlignmentProvider,\n            menuAsChild: !!this.options.renderDropdownAsChildElement,\n            skipTelemetry: this.options.skipTelemetry,\n            isMenu: true,\n            hoverDelegate: this.options.hoverDelegate\n          });\n          this.toggleMenuActionViewItem.setActionContext(this.actionBar.context);\n          this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility));\n          return this.toggleMenuActionViewItem;\n        }\n        if (options2.actionViewItemProvider) {\n          const result = options2.actionViewItemProvider(action, viewItemOptions);\n          if (result) {\n            return result;\n          }\n        }\n        if (action instanceof SubmenuAction) {\n          const result = new DropdownMenuActionViewItem(action, action.actions, contextMenuProvider, {\n            actionViewItemProvider: this.options.actionViewItemProvider,\n            actionRunner: this.actionRunner,\n            keybindingProvider: this.options.getKeyBinding,\n            classNames: action.class,\n            anchorAlignmentProvider: this.options.anchorAlignmentProvider,\n            menuAsChild: !!this.options.renderDropdownAsChildElement,\n            skipTelemetry: this.options.skipTelemetry,\n            hoverDelegate: this.options.hoverDelegate\n          });\n          result.setActionContext(this.actionBar.context);\n          this.submenuActionViewItems.push(result);\n          this.disposables.add(this._onDidChangeDropdownVisibility.add(result.onDidChangeVisibility));\n          return result;\n        }\n        return void 0;\n      }\n    }));\n  }\n  set actionRunner(actionRunner) {\n    this.actionBar.actionRunner = actionRunner;\n  }\n  get actionRunner() {\n    return this.actionBar.actionRunner;\n  }\n  getElement() {\n    return this.element;\n  }\n  getItemAction(indexOrElement) {\n    return this.actionBar.getAction(indexOrElement);\n  }\n  setActions(primaryActions, secondaryActions) {\n    this.clear();\n    const primaryActionsToSet = primaryActions ? primaryActions.slice(0) : [];\n    this.hasSecondaryActions = !!(secondaryActions \u0026\u0026 secondaryActions.length \u003e 0);\n    if (this.hasSecondaryActions \u0026\u0026 secondaryActions) {\n      this.toggleMenuAction.menuActions = secondaryActions.slice(0);\n      primaryActionsToSet.push(this.toggleMenuAction);\n    }\n    primaryActionsToSet.forEach((action) =\u003e {\n      this.actionBar.push(action, { icon: this.options.icon ?? true, label: this.options.label ?? false, keybinding: this.getKeybindingLabel(action) });\n    });\n  }\n  getKeybindingLabel(action) {\n    const key = this.options.getKeyBinding?.(action);\n    return key?.getLabel() ?? void 0;\n  }\n  clear() {\n    this.submenuActionViewItems = [];\n    this.disposables.clear();\n    this.actionBar.clear();\n  }\n  dispose() {\n    this.clear();\n    this.disposables.dispose();\n    super.dispose();\n  }\n};\nvar ToggleMenuAction = class _ToggleMenuAction extends Action {\n  static {\n    this.ID = \"toolbar.toggle.more\";\n  }\n  constructor(toggleDropdownMenu, title) {\n    title = title || localize(17, \"More Actions...\");\n    super(_ToggleMenuAction.ID, title, void 0, true);\n    this._menuActions = [];\n    this.toggleDropdownMenu = toggleDropdownMenu;\n  }\n  async run() {\n    this.toggleDropdownMenu();\n  }\n  get menuActions() {\n    return this._menuActions;\n  }\n  set menuActions(actions) {\n    this._menuActions = actions;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/toolbar.js\ninit_actions();\ninit_arrays();\ninit_collections();\ninit_errors();\ninit_event();\ninit_iterator();\ninit_lifecycle();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/menuEntryActionViewItem.js\ninit_dom();\ninit_keyboardEvent();\ninit_actions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/keybindingLabels.js\ninit_nls();\nvar ModifierLabelProvider = class {\n  constructor(mac, windows, linux = windows) {\n    this.modifierLabels = [null];\n    this.modifierLabels[\n      2\n      /* OperatingSystem.Macintosh */\n    ] = mac;\n    this.modifierLabels[\n      1\n      /* OperatingSystem.Windows */\n    ] = windows;\n    this.modifierLabels[\n      3\n      /* OperatingSystem.Linux */\n    ] = linux;\n  }\n  toLabel(OS2, chords, keyLabelProvider) {\n    if (chords.length === 0) {\n      return null;\n    }\n    const result = [];\n    for (let i2 = 0, len = chords.length; i2 \u003c len; i2++) {\n      const chord = chords[i2];\n      const keyLabel = keyLabelProvider(chord);\n      if (keyLabel === null) {\n        return null;\n      }\n      result[i2] = _simpleAsString(chord, keyLabel, this.modifierLabels[OS2]);\n    }\n    return result.join(\" \");\n  }\n};\nvar UILabelProvider = new ModifierLabelProvider({\n  ctrlKey: \"\\u2303\",\n  shiftKey: \"\\u21E7\",\n  altKey: \"\\u2325\",\n  metaKey: \"\\u2318\",\n  separator: \"\"\n}, {\n  ctrlKey: localize(35, \"Ctrl\"),\n  shiftKey: localize(36, \"Shift\"),\n  altKey: localize(37, \"Alt\"),\n  metaKey: localize(38, \"Windows\"),\n  separator: \"+\"\n}, {\n  ctrlKey: localize(39, \"Ctrl\"),\n  shiftKey: localize(40, \"Shift\"),\n  altKey: localize(41, \"Alt\"),\n  metaKey: localize(42, \"Super\"),\n  separator: \"+\"\n});\nvar AriaLabelProvider = new ModifierLabelProvider({\n  ctrlKey: localize(43, \"Control\"),\n  shiftKey: localize(44, \"Shift\"),\n  altKey: localize(45, \"Option\"),\n  metaKey: localize(46, \"Command\"),\n  separator: \"+\"\n}, {\n  ctrlKey: localize(47, \"Control\"),\n  shiftKey: localize(48, \"Shift\"),\n  altKey: localize(49, \"Alt\"),\n  metaKey: localize(50, \"Windows\"),\n  separator: \"+\"\n}, {\n  ctrlKey: localize(51, \"Control\"),\n  shiftKey: localize(52, \"Shift\"),\n  altKey: localize(53, \"Alt\"),\n  metaKey: localize(54, \"Super\"),\n  separator: \"+\"\n});\nvar ElectronAcceleratorLabelProvider = new ModifierLabelProvider({\n  ctrlKey: \"Ctrl\",\n  shiftKey: \"Shift\",\n  altKey: \"Alt\",\n  metaKey: \"Cmd\",\n  separator: \"+\"\n}, {\n  ctrlKey: \"Ctrl\",\n  shiftKey: \"Shift\",\n  altKey: \"Alt\",\n  metaKey: \"Super\",\n  separator: \"+\"\n});\nvar UserSettingsLabelProvider = new ModifierLabelProvider({\n  ctrlKey: \"ctrl\",\n  shiftKey: \"shift\",\n  altKey: \"alt\",\n  metaKey: \"cmd\",\n  separator: \"+\"\n}, {\n  ctrlKey: \"ctrl\",\n  shiftKey: \"shift\",\n  altKey: \"alt\",\n  metaKey: \"win\",\n  separator: \"+\"\n}, {\n  ctrlKey: \"ctrl\",\n  shiftKey: \"shift\",\n  altKey: \"alt\",\n  metaKey: \"meta\",\n  separator: \"+\"\n});\nfunction _simpleAsString(modifiers, key, labels) {\n  if (key === null) {\n    return \"\";\n  }\n  const result = [];\n  if (modifiers.ctrlKey) {\n    result.push(labels.ctrlKey);\n  }\n  if (modifiers.shiftKey) {\n    result.push(labels.shiftKey);\n  }\n  if (modifiers.altKey) {\n    result.push(labels.altKey);\n  }\n  if (modifiers.metaKey) {\n    result.push(labels.metaKey);\n  }\n  if (key !== \"\") {\n    result.push(key);\n  }\n  return result.join(labels.separator);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/menuEntryActionViewItem.js\ninit_lifecycle();\ninit_platform();\ninit_themables();\ninit_types();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/action/common/action.js\nfunction isLocalizedString(thing) {\n  return thing \u0026\u0026 typeof thing === \"object\" \u0026\u0026 typeof thing.original === \"string\" \u0026\u0026 typeof thing.value === \"string\";\n}\nfunction isICommandActionToggleInfo(thing) {\n  return thing ? thing.condition !== void 0 : false;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/menuEntryActionViewItem.js\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/storage/common/storage.js\ninit_async();\ninit_event();\ninit_lifecycle();\ninit_types();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/parts/storage/common/storage.js\ninit_async();\ninit_event();\ninit_lifecycle();\ninit_types();\nvar StorageHint;\n(function(StorageHint2) {\n  StorageHint2[StorageHint2[\"STORAGE_DOES_NOT_EXIST\"] = 0] = \"STORAGE_DOES_NOT_EXIST\";\n  StorageHint2[StorageHint2[\"STORAGE_IN_MEMORY\"] = 1] = \"STORAGE_IN_MEMORY\";\n})(StorageHint || (StorageHint = {}));\nvar StorageState;\n(function(StorageState2) {\n  StorageState2[StorageState2[\"None\"] = 0] = \"None\";\n  StorageState2[StorageState2[\"Initialized\"] = 1] = \"Initialized\";\n  StorageState2[StorageState2[\"Closed\"] = 2] = \"Closed\";\n})(StorageState || (StorageState = {}));\nvar Storage = class _Storage extends Disposable {\n  static {\n    this.DEFAULT_FLUSH_DELAY = 100;\n  }\n  constructor(database, options2 = /* @__PURE__ */ Object.create(null)) {\n    super();\n    this.database = database;\n    this.options = options2;\n    this._onDidChangeStorage = this._register(new PauseableEmitter());\n    this.onDidChangeStorage = this._onDidChangeStorage.event;\n    this.state = StorageState.None;\n    this.cache = /* @__PURE__ */ new Map();\n    this.flushDelayer = this._register(new ThrottledDelayer(_Storage.DEFAULT_FLUSH_DELAY));\n    this.pendingDeletes = /* @__PURE__ */ new Set();\n    this.pendingInserts = /* @__PURE__ */ new Map();\n    this.pendingClose = void 0;\n    this.whenFlushedCallbacks = [];\n    this.registerListeners();\n  }\n  registerListeners() {\n    this._register(this.database.onDidChangeItemsExternal((e) =\u003e this.onDidChangeItemsExternal(e)));\n  }\n  onDidChangeItemsExternal(e) {\n    this._onDidChangeStorage.pause();\n    try {\n      e.changed?.forEach((value, key) =\u003e this.acceptExternal(key, value));\n      e.deleted?.forEach((key) =\u003e this.acceptExternal(key, void 0));\n    } finally {\n      this._onDidChangeStorage.resume();\n    }\n  }\n  acceptExternal(key, value) {\n    if (this.state === StorageState.Closed) {\n      return;\n    }\n    let changed = false;\n    if (isUndefinedOrNull(value)) {\n      changed = this.cache.delete(key);\n    } else {\n      const currentValue = this.cache.get(key);\n      if (currentValue !== value) {\n        this.cache.set(key, value);\n        changed = true;\n      }\n    }\n    if (changed) {\n      this._onDidChangeStorage.fire({ key, external: true });\n    }\n  }\n  get(key, fallbackValue) {\n    const value = this.cache.get(key);\n    if (isUndefinedOrNull(value)) {\n      return fallbackValue;\n    }\n    return value;\n  }\n  getBoolean(key, fallbackValue) {\n    const value = this.get(key);\n    if (isUndefinedOrNull(value)) {\n      return fallbackValue;\n    }\n    return value === \"true\";\n  }\n  getNumber(key, fallbackValue) {\n    const value = this.get(key);\n    if (isUndefinedOrNull(value)) {\n      return fallbackValue;\n    }\n    return parseInt(value, 10);\n  }\n  async set(key, value, external = false) {\n    if (this.state === StorageState.Closed) {\n      return;\n    }\n    if (isUndefinedOrNull(value)) {\n      return this.delete(key, external);\n    }\n    const valueStr = isObject(value) || Array.isArray(value) ? stringify(value) : String(value);\n    const currentValue = this.cache.get(key);\n    if (currentValue === valueStr) {\n      return;\n    }\n    this.cache.set(key, valueStr);\n    this.pendingInserts.set(key, valueStr);\n    this.pendingDeletes.delete(key);\n    this._onDidChangeStorage.fire({ key, external });\n    return this.doFlush();\n  }\n  async delete(key, external = false) {\n    if (this.state === StorageState.Closed) {\n      return;\n    }\n    const wasDeleted = this.cache.delete(key);\n    if (!wasDeleted) {\n      return;\n    }\n    if (!this.pendingDeletes.has(key)) {\n      this.pendingDeletes.add(key);\n    }\n    this.pendingInserts.delete(key);\n    this._onDidChangeStorage.fire({ key, external });\n    return this.doFlush();\n  }\n  get hasPending() {\n    return this.pendingInserts.size \u003e 0 || this.pendingDeletes.size \u003e 0;\n  }\n  async flushPending() {\n    if (!this.hasPending) {\n      return;\n    }\n    const updateRequest = { insert: this.pendingInserts, delete: this.pendingDeletes };\n    this.pendingDeletes = /* @__PURE__ */ new Set();\n    this.pendingInserts = /* @__PURE__ */ new Map();\n    return this.database.updateItems(updateRequest).finally(() =\u003e {\n      if (!this.hasPending) {\n        while (this.whenFlushedCallbacks.length) {\n          this.whenFlushedCallbacks.pop()?.();\n        }\n      }\n    });\n  }\n  async flush(delay) {\n    if (this.state === StorageState.Closed || // Return early if we are already closed\n    this.pendingClose) {\n      return;\n    }\n    return this.doFlush(delay);\n  }\n  async doFlush(delay) {\n    if (this.options.hint === StorageHint.STORAGE_IN_MEMORY) {\n      return this.flushPending();\n    }\n    return this.flushDelayer.trigger(() =\u003e this.flushPending(), delay);\n  }\n  async whenFlushed() {\n    if (!this.hasPending) {\n      return;\n    }\n    return new Promise((resolve3) =\u003e this.whenFlushedCallbacks.push(resolve3));\n  }\n};\nvar InMemoryStorageDatabase = class {\n  constructor() {\n    this.onDidChangeItemsExternal = Event.None;\n    this.items = /* @__PURE__ */ new Map();\n  }\n  async updateItems(request) {\n    request.insert?.forEach((value, key) =\u003e this.items.set(key, value));\n    request.delete?.forEach((key) =\u003e this.items.delete(key));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/storage/common/storage.js\ninit_instantiation();\nvar TARGET_KEY = \"__$__targetStorageMarker\";\nvar IStorageService = createDecorator(\"storageService\");\nvar WillSaveStateReason;\n(function(WillSaveStateReason2) {\n  WillSaveStateReason2[WillSaveStateReason2[\"NONE\"] = 0] = \"NONE\";\n  WillSaveStateReason2[WillSaveStateReason2[\"SHUTDOWN\"] = 1] = \"SHUTDOWN\";\n})(WillSaveStateReason || (WillSaveStateReason = {}));\nfunction loadKeyTargets(storage) {\n  const keysRaw = storage.get(TARGET_KEY);\n  if (keysRaw) {\n    try {\n      return JSON.parse(keysRaw);\n    } catch (error) {\n    }\n  }\n  return /* @__PURE__ */ Object.create(null);\n}\nvar AbstractStorageService = class _AbstractStorageService extends Disposable {\n  static {\n    this.DEFAULT_FLUSH_INTERVAL = 60 * 1e3;\n  }\n  // every minute\n  constructor(options2 = { flushInterval: _AbstractStorageService.DEFAULT_FLUSH_INTERVAL }) {\n    super();\n    this._onDidChangeValue = this._register(new PauseableEmitter());\n    this._onDidChangeTarget = this._register(new PauseableEmitter());\n    this._onWillSaveState = this._register(new Emitter());\n    this.onWillSaveState = this._onWillSaveState.event;\n    this.runFlushWhenIdle = this._register(new MutableDisposable());\n    this._workspaceKeyTargets = void 0;\n    this._profileKeyTargets = void 0;\n    this._applicationKeyTargets = void 0;\n    this.flushWhenIdleScheduler = this._register(new RunOnceScheduler(() =\u003e this.doFlushWhenIdle(), options2.flushInterval));\n  }\n  onDidChangeValue(scope, key, disposable) {\n    return Event.filter(this._onDidChangeValue.event, (e) =\u003e e.scope === scope \u0026\u0026 (key === void 0 || e.key === key), disposable);\n  }\n  doFlushWhenIdle() {\n    this.runFlushWhenIdle.value = runWhenGlobalIdle(() =\u003e {\n      if (this.shouldFlushWhenIdle()) {\n        this.flush();\n      }\n      this.flushWhenIdleScheduler.schedule();\n    });\n  }\n  shouldFlushWhenIdle() {\n    return true;\n  }\n  emitDidChangeValue(scope, event) {\n    const { key, external } = event;\n    if (key === TARGET_KEY) {\n      switch (scope) {\n        case -1:\n          this._applicationKeyTargets = void 0;\n          break;\n        case 0:\n          this._profileKeyTargets = void 0;\n          break;\n        case 1:\n          this._workspaceKeyTargets = void 0;\n          break;\n      }\n      this._onDidChangeTarget.fire({ scope });\n    } else {\n      this._onDidChangeValue.fire({ scope, key, target: this.getKeyTargets(scope)[key], external });\n    }\n  }\n  get(key, scope, fallbackValue) {\n    return this.getStorage(scope)?.get(key, fallbackValue);\n  }\n  getBoolean(key, scope, fallbackValue) {\n    return this.getStorage(scope)?.getBoolean(key, fallbackValue);\n  }\n  getNumber(key, scope, fallbackValue) {\n    return this.getStorage(scope)?.getNumber(key, fallbackValue);\n  }\n  store(key, value, scope, target, external = false) {\n    if (isUndefinedOrNull(value)) {\n      this.remove(key, scope, external);\n      return;\n    }\n    this.withPausedEmitters(() =\u003e {\n      this.updateKeyTarget(key, scope, target);\n      this.getStorage(scope)?.set(key, value, external);\n    });\n  }\n  remove(key, scope, external = false) {\n    this.withPausedEmitters(() =\u003e {\n      this.updateKeyTarget(key, scope, void 0);\n      this.getStorage(scope)?.delete(key, external);\n    });\n  }\n  withPausedEmitters(fn) {\n    this._onDidChangeValue.pause();\n    this._onDidChangeTarget.pause();\n    try {\n      fn();\n    } finally {\n      this._onDidChangeValue.resume();\n      this._onDidChangeTarget.resume();\n    }\n  }\n  updateKeyTarget(key, scope, target, external = false) {\n    const keyTargets = this.getKeyTargets(scope);\n    if (typeof target === \"number\") {\n      if (keyTargets[key] !== target) {\n        keyTargets[key] = target;\n        this.getStorage(scope)?.set(TARGET_KEY, JSON.stringify(keyTargets), external);\n      }\n    } else {\n      if (typeof keyTargets[key] === \"number\") {\n        delete keyTargets[key];\n        this.getStorage(scope)?.set(TARGET_KEY, JSON.stringify(keyTargets), external);\n      }\n    }\n  }\n  get workspaceKeyTargets() {\n    if (!this._workspaceKeyTargets) {\n      this._workspaceKeyTargets = this.loadKeyTargets(\n        1\n        /* StorageScope.WORKSPACE */\n      );\n    }\n    return this._workspaceKeyTargets;\n  }\n  get profileKeyTargets() {\n    if (!this._profileKeyTargets) {\n      this._profileKeyTargets = this.loadKeyTargets(\n        0\n        /* StorageScope.PROFILE */\n      );\n    }\n    return this._profileKeyTargets;\n  }\n  get applicationKeyTargets() {\n    if (!this._applicationKeyTargets) {\n      this._applicationKeyTargets = this.loadKeyTargets(\n        -1\n        /* StorageScope.APPLICATION */\n      );\n    }\n    return this._applicationKeyTargets;\n  }\n  getKeyTargets(scope) {\n    switch (scope) {\n      case -1:\n        return this.applicationKeyTargets;\n      case 0:\n        return this.profileKeyTargets;\n      default:\n        return this.workspaceKeyTargets;\n    }\n  }\n  loadKeyTargets(scope) {\n    const storage = this.getStorage(scope);\n    return storage ? loadKeyTargets(storage) : /* @__PURE__ */ Object.create(null);\n  }\n  async flush(reason = WillSaveStateReason.NONE) {\n    this._onWillSaveState.fire({ reason });\n    const applicationStorage = this.getStorage(\n      -1\n      /* StorageScope.APPLICATION */\n    );\n    const profileStorage = this.getStorage(\n      0\n      /* StorageScope.PROFILE */\n    );\n    const workspaceStorage = this.getStorage(\n      1\n      /* StorageScope.WORKSPACE */\n    );\n    switch (reason) {\n      // Unspecific reason: just wait when data is flushed\n      case WillSaveStateReason.NONE:\n        await Promises.settled([\n          applicationStorage?.whenFlushed() ?? Promise.resolve(),\n          profileStorage?.whenFlushed() ?? Promise.resolve(),\n          workspaceStorage?.whenFlushed() ?? Promise.resolve()\n        ]);\n        break;\n      // Shutdown: we want to flush as soon as possible\n      // and not hit any delays that might be there\n      case WillSaveStateReason.SHUTDOWN:\n        await Promises.settled([\n          applicationStorage?.flush(0) ?? Promise.resolve(),\n          profileStorage?.flush(0) ?? Promise.resolve(),\n          workspaceStorage?.flush(0) ?? Promise.resolve()\n        ]);\n        break;\n    }\n  }\n};\nvar InMemoryStorageService = class extends AbstractStorageService {\n  constructor() {\n    super();\n    this.applicationStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n    this.profileStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n    this.workspaceStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n    this._register(this.workspaceStorage.onDidChangeStorage((e) =\u003e this.emitDidChangeValue(1, e)));\n    this._register(this.profileStorage.onDidChangeStorage((e) =\u003e this.emitDidChangeValue(0, e)));\n    this._register(this.applicationStorage.onDidChangeStorage((e) =\u003e this.emitDidChangeValue(-1, e)));\n  }\n  getStorage(scope) {\n    switch (scope) {\n      case -1:\n        return this.applicationStorage;\n      case 0:\n        return this.profileStorage;\n      default:\n        return this.workspaceStorage;\n    }\n  }\n  shouldFlushWhenIdle() {\n    return false;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/browser/defaultStyles.js\ninit_colorRegistry();\ninit_color();\nfunction overrideStyles(override, styles) {\n  const result = { ...styles };\n  for (const key in override) {\n    const val = override[key];\n    result[key] = val !== void 0 ? asCssVariable(val) : void 0;\n  }\n  return result;\n}\nvar defaultKeybindingLabelStyles = {\n  keybindingLabelBackground: asCssVariable(keybindingLabelBackground),\n  keybindingLabelForeground: asCssVariable(keybindingLabelForeground),\n  keybindingLabelBorder: asCssVariable(keybindingLabelBorder),\n  keybindingLabelBottomBorder: asCssVariable(keybindingLabelBottomBorder),\n  keybindingLabelShadow: asCssVariable(widgetShadow)\n};\nvar defaultButtonStyles = {\n  buttonForeground: asCssVariable(buttonForeground),\n  buttonSeparator: asCssVariable(buttonSeparator),\n  buttonBackground: asCssVariable(buttonBackground),\n  buttonHoverBackground: asCssVariable(buttonHoverBackground),\n  buttonSecondaryForeground: asCssVariable(buttonSecondaryForeground),\n  buttonSecondaryBackground: asCssVariable(buttonSecondaryBackground),\n  buttonSecondaryHoverBackground: asCssVariable(buttonSecondaryHoverBackground),\n  buttonBorder: asCssVariable(buttonBorder)\n};\nvar defaultProgressBarStyles = {\n  progressBarBackground: asCssVariable(progressBarBackground)\n};\nvar defaultToggleStyles = {\n  inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n  inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n  inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)\n};\nvar defaultRadioStyles = {\n  activeForeground: asCssVariable(radioActiveForeground),\n  activeBackground: asCssVariable(radioActiveBackground),\n  activeBorder: asCssVariable(radioActiveBorder),\n  inactiveForeground: asCssVariable(radioInactiveForeground),\n  inactiveBackground: asCssVariable(radioInactiveBackground),\n  inactiveBorder: asCssVariable(radioInactiveBorder),\n  inactiveHoverBackground: asCssVariable(radioInactiveHoverBackground)\n};\nvar defaultCheckboxStyles = {\n  checkboxBackground: asCssVariable(checkboxBackground),\n  checkboxBorder: asCssVariable(checkboxBorder),\n  checkboxForeground: asCssVariable(checkboxForeground),\n  checkboxDisabledBackground: asCssVariable(checkboxDisabledBackground),\n  checkboxDisabledForeground: asCssVariable(checkboxDisabledForeground)\n};\nvar defaultDialogStyles = {\n  dialogBackground: asCssVariable(editorWidgetBackground),\n  dialogForeground: asCssVariable(editorWidgetForeground),\n  dialogShadow: asCssVariable(widgetShadow),\n  dialogBorder: asCssVariable(widgetBorder),\n  errorIconForeground: asCssVariable(problemsErrorIconForeground),\n  warningIconForeground: asCssVariable(problemsWarningIconForeground),\n  infoIconForeground: asCssVariable(problemsInfoIconForeground),\n  textLinkForeground: asCssVariable(textLinkForeground)\n};\nvar defaultInputBoxStyles = {\n  inputBackground: asCssVariable(inputBackground),\n  inputForeground: asCssVariable(inputForeground),\n  inputBorder: asCssVariable(inputBorder),\n  inputValidationInfoBorder: asCssVariable(inputValidationInfoBorder),\n  inputValidationInfoBackground: asCssVariable(inputValidationInfoBackground),\n  inputValidationInfoForeground: asCssVariable(inputValidationInfoForeground),\n  inputValidationWarningBorder: asCssVariable(inputValidationWarningBorder),\n  inputValidationWarningBackground: asCssVariable(inputValidationWarningBackground),\n  inputValidationWarningForeground: asCssVariable(inputValidationWarningForeground),\n  inputValidationErrorBorder: asCssVariable(inputValidationErrorBorder),\n  inputValidationErrorBackground: asCssVariable(inputValidationErrorBackground),\n  inputValidationErrorForeground: asCssVariable(inputValidationErrorForeground)\n};\nvar defaultFindWidgetStyles = {\n  listFilterWidgetBackground: asCssVariable(listFilterWidgetBackground),\n  listFilterWidgetOutline: asCssVariable(listFilterWidgetOutline),\n  listFilterWidgetNoMatchesOutline: asCssVariable(listFilterWidgetNoMatchesOutline),\n  listFilterWidgetShadow: asCssVariable(listFilterWidgetShadow),\n  inputBoxStyles: defaultInputBoxStyles,\n  toggleStyles: defaultToggleStyles\n};\nvar defaultCountBadgeStyles = {\n  badgeBackground: asCssVariable(badgeBackground),\n  badgeForeground: asCssVariable(badgeForeground),\n  badgeBorder: asCssVariable(contrastBorder)\n};\nvar defaultBreadcrumbsWidgetStyles = {\n  breadcrumbsBackground: asCssVariable(breadcrumbsBackground),\n  breadcrumbsForeground: asCssVariable(breadcrumbsForeground),\n  breadcrumbsHoverForeground: asCssVariable(breadcrumbsFocusForeground),\n  breadcrumbsFocusForeground: asCssVariable(breadcrumbsFocusForeground),\n  breadcrumbsFocusAndSelectionForeground: asCssVariable(breadcrumbsActiveSelectionForeground)\n};\nvar defaultListStyles = {\n  listBackground: void 0,\n  listInactiveFocusForeground: void 0,\n  listFocusBackground: asCssVariable(listFocusBackground),\n  listFocusForeground: asCssVariable(listFocusForeground),\n  listFocusOutline: asCssVariable(listFocusOutline),\n  listActiveSelectionBackground: asCssVariable(listActiveSelectionBackground),\n  listActiveSelectionForeground: asCssVariable(listActiveSelectionForeground),\n  listActiveSelectionIconForeground: asCssVariable(listActiveSelectionIconForeground),\n  listFocusAndSelectionOutline: asCssVariable(listFocusAndSelectionOutline),\n  listFocusAndSelectionBackground: asCssVariable(listActiveSelectionBackground),\n  listFocusAndSelectionForeground: asCssVariable(listActiveSelectionForeground),\n  listInactiveSelectionBackground: asCssVariable(listInactiveSelectionBackground),\n  listInactiveSelectionIconForeground: asCssVariable(listInactiveSelectionIconForeground),\n  listInactiveSelectionForeground: asCssVariable(listInactiveSelectionForeground),\n  listInactiveFocusBackground: asCssVariable(listInactiveFocusBackground),\n  listInactiveFocusOutline: asCssVariable(listInactiveFocusOutline),\n  listHoverBackground: asCssVariable(listHoverBackground),\n  listHoverForeground: asCssVariable(listHoverForeground),\n  listDropOverBackground: asCssVariable(listDropOverBackground),\n  listDropBetweenBackground: asCssVariable(listDropBetweenBackground),\n  listSelectionOutline: asCssVariable(activeContrastBorder),\n  listHoverOutline: asCssVariable(activeContrastBorder),\n  treeIndentGuidesStroke: asCssVariable(treeIndentGuidesStroke),\n  treeInactiveIndentGuidesStroke: asCssVariable(treeInactiveIndentGuidesStroke),\n  treeStickyScrollBackground: void 0,\n  treeStickyScrollBorder: void 0,\n  treeStickyScrollShadow: asCssVariable(scrollbarShadow),\n  tableColumnsBorder: asCssVariable(tableColumnsBorder),\n  tableOddRowsBackgroundColor: asCssVariable(tableOddRowsBackgroundColor)\n};\nfunction getListStyles(override) {\n  return overrideStyles(override, defaultListStyles);\n}\nvar defaultSelectBoxStyles = {\n  selectBackground: asCssVariable(selectBackground),\n  selectListBackground: asCssVariable(selectListBackground),\n  selectForeground: asCssVariable(selectForeground),\n  decoratorRightForeground: asCssVariable(pickerGroupForeground),\n  selectBorder: asCssVariable(selectBorder),\n  focusBorder: asCssVariable(focusBorder),\n  listFocusBackground: asCssVariable(quickInputListFocusBackground),\n  listInactiveSelectionIconForeground: asCssVariable(quickInputListFocusIconForeground),\n  listFocusForeground: asCssVariable(quickInputListFocusForeground),\n  listFocusOutline: asCssVariableWithDefault(activeContrastBorder, Color.transparent.toString()),\n  listHoverBackground: asCssVariable(listHoverBackground),\n  listHoverForeground: asCssVariable(listHoverForeground),\n  listHoverOutline: asCssVariable(activeContrastBorder),\n  selectListBorder: asCssVariable(editorWidgetBorder),\n  listBackground: void 0,\n  listActiveSelectionBackground: void 0,\n  listActiveSelectionForeground: void 0,\n  listActiveSelectionIconForeground: void 0,\n  listFocusAndSelectionBackground: void 0,\n  listDropOverBackground: void 0,\n  listDropBetweenBackground: void 0,\n  listInactiveSelectionBackground: void 0,\n  listInactiveSelectionForeground: void 0,\n  listInactiveFocusBackground: void 0,\n  listInactiveFocusOutline: void 0,\n  listSelectionOutline: void 0,\n  listFocusAndSelectionForeground: void 0,\n  listFocusAndSelectionOutline: void 0,\n  listInactiveFocusForeground: void 0,\n  tableColumnsBorder: void 0,\n  tableOddRowsBackgroundColor: void 0,\n  treeIndentGuidesStroke: void 0,\n  treeInactiveIndentGuidesStroke: void 0,\n  treeStickyScrollBackground: void 0,\n  treeStickyScrollBorder: void 0,\n  treeStickyScrollShadow: void 0\n};\nvar defaultMenuStyles = {\n  shadowColor: asCssVariable(widgetShadow),\n  borderColor: asCssVariable(menuBorder),\n  foregroundColor: asCssVariable(menuForeground),\n  backgroundColor: asCssVariable(menuBackground),\n  selectionForegroundColor: asCssVariable(menuSelectionForeground),\n  selectionBackgroundColor: asCssVariable(menuSelectionBackground),\n  selectionBorderColor: asCssVariable(menuSelectionBorder),\n  separatorColor: asCssVariable(menuSeparatorBackground),\n  scrollbarShadow: asCssVariable(scrollbarShadow),\n  scrollbarSliderBackground: asCssVariable(scrollbarSliderBackground),\n  scrollbarSliderHoverBackground: asCssVariable(scrollbarSliderHoverBackground),\n  scrollbarSliderActiveBackground: asCssVariable(scrollbarSliderActiveBackground)\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/menuEntryActionViewItem.js\ninit_colorRegistry();\ninit_theme();\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/window/common/window.js\ninit_platform();\nfunction hasNativeContextMenu(configurationService, titleBarStyle) {\n  if (isWeb) {\n    return false;\n  }\n  const nativeTitle = hasNativeTitlebar(configurationService, titleBarStyle);\n  const windowConfigurations = configurationService.getValue(\"window\");\n  if (windowConfigurations?.menuStyle === \"native\") {\n    if (!isMacintosh \u0026\u0026 !nativeTitle) {\n      return false;\n    }\n    return true;\n  }\n  if (windowConfigurations?.menuStyle === \"custom\") {\n    return false;\n  }\n  return nativeTitle;\n}\nfunction hasNativeTitlebar(configurationService, titleBarStyle) {\n  if (!titleBarStyle) {\n    titleBarStyle = getTitleBarStyle(configurationService);\n  }\n  return titleBarStyle === \"native\";\n}\nfunction getTitleBarStyle(configurationService) {\n  if (isWeb) {\n    return \"custom\";\n  }\n  const configuration = configurationService.getValue(\"window\");\n  if (configuration) {\n    const useNativeTabs = isMacintosh \u0026\u0026 configuration.nativeTabs === true;\n    if (useNativeTabs) {\n      return \"native\";\n    }\n    const useSimpleFullScreen = isMacintosh \u0026\u0026 configuration.nativeFullScreen === false;\n    if (useSimpleFullScreen) {\n      return \"native\";\n    }\n    const style = configuration.titleBarStyle;\n    if (style === \"native\" || style === \"custom\") {\n      return style;\n    }\n  }\n  return \"custom\";\n}\nfunction getWindowControlsStyle(configurationService) {\n  if (isWeb || isMacintosh || getTitleBarStyle(configurationService) === \"native\") {\n    return \"native\";\n  }\n  const configuration = configurationService.getValue(\"window\");\n  const style = configuration?.controlsStyle;\n  if (style === \"custom\" || style === \"hidden\") {\n    return style;\n  }\n  return \"native\";\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/menuEntryActionViewItem.js\ninit_actions2();\nvar __decorate37 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param32 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nfunction getFlatContextMenuActions(groups, primaryGroup) {\n  const target = [];\n  getContextMenuActionsImpl(groups, target, primaryGroup);\n  return target;\n}\nfunction getContextMenuActionsImpl(groups, target, primaryGroup) {\n  const modifierKeyEmitter = ModifierKeyEmitter.getInstance();\n  const useAlternativeActions = modifierKeyEmitter.keyStatus.altKey || (isWindows || isLinux) \u0026\u0026 modifierKeyEmitter.keyStatus.shiftKey;\n  fillInActions(groups, target, useAlternativeActions, primaryGroup ? (actionGroup) =\u003e actionGroup === primaryGroup : (actionGroup) =\u003e actionGroup === \"navigation\");\n}\nfunction getActionBarActions(groups, primaryGroup, shouldInlineSubmenu, useSeparatorsInPrimaryActions) {\n  const target = { primary: [], secondary: [] };\n  fillInActionBarActions(groups, target, primaryGroup, shouldInlineSubmenu, useSeparatorsInPrimaryActions);\n  return target;\n}\nfunction getFlatActionBarActions(groups, primaryGroup, shouldInlineSubmenu, useSeparatorsInPrimaryActions) {\n  const target = [];\n  fillInActionBarActions(groups, target, primaryGroup, shouldInlineSubmenu, useSeparatorsInPrimaryActions);\n  return target;\n}\nfunction fillInActionBarActions(groups, target, primaryGroup, shouldInlineSubmenu, useSeparatorsInPrimaryActions) {\n  const isPrimaryAction = typeof primaryGroup === \"string\" ? (actionGroup) =\u003e actionGroup === primaryGroup : primaryGroup;\n  fillInActions(groups, target, false, isPrimaryAction, shouldInlineSubmenu, useSeparatorsInPrimaryActions);\n}\nfunction fillInActions(groups, target, useAlternativeActions, isPrimaryAction = (actionGroup) =\u003e actionGroup === \"navigation\", shouldInlineSubmenu = () =\u003e false, useSeparatorsInPrimaryActions = false) {\n  let primaryBucket;\n  let secondaryBucket;\n  if (Array.isArray(target)) {\n    primaryBucket = target;\n    secondaryBucket = target;\n  } else {\n    primaryBucket = target.primary;\n    secondaryBucket = target.secondary;\n  }\n  const submenuInfo = /* @__PURE__ */ new Set();\n  for (const [group, actions] of groups) {\n    let target2;\n    if (isPrimaryAction(group)) {\n      target2 = primaryBucket;\n      if (target2.length \u003e 0 \u0026\u0026 useSeparatorsInPrimaryActions) {\n        target2.push(new Separator());\n      }\n    } else {\n      target2 = secondaryBucket;\n      if (target2.length \u003e 0) {\n        target2.push(new Separator());\n      }\n    }\n    for (let action of actions) {\n      if (useAlternativeActions) {\n        action = action instanceof MenuItemAction \u0026\u0026 action.alt ? action.alt : action;\n      }\n      const newLen = target2.push(action);\n      if (action instanceof SubmenuAction) {\n        submenuInfo.add({ group, action, index: newLen - 1 });\n      }\n    }\n  }\n  for (const { group, action, index } of submenuInfo) {\n    const target2 = isPrimaryAction(group) ? primaryBucket : secondaryBucket;\n    const submenuActions = action.actions;\n    if (shouldInlineSubmenu(action, group, target2.length)) {\n      target2.splice(index, 1, ...submenuActions);\n    }\n  }\n}\nvar MenuEntryActionViewItem = class MenuEntryActionViewItem2 extends ActionViewItem {\n  constructor(action, _options, _keybindingService, _notificationService, _contextKeyService, _themeService, _contextMenuService, _accessibilityService) {\n    super(void 0, action, { icon: !!(action.class || action.item.icon), label: !action.class \u0026\u0026 !action.item.icon, draggable: _options?.draggable, keybinding: _options?.keybinding, hoverDelegate: _options?.hoverDelegate, keybindingNotRenderedWithLabel: _options?.keybindingNotRenderedWithLabel });\n    this._options = _options;\n    this._keybindingService = _keybindingService;\n    this._notificationService = _notificationService;\n    this._contextKeyService = _contextKeyService;\n    this._themeService = _themeService;\n    this._contextMenuService = _contextMenuService;\n    this._accessibilityService = _accessibilityService;\n    this._wantsAltCommand = false;\n    this._itemClassDispose = this._register(new MutableDisposable());\n    this._altKey = ModifierKeyEmitter.getInstance();\n  }\n  get _menuItemAction() {\n    return this._action;\n  }\n  get _commandAction() {\n    return this._wantsAltCommand \u0026\u0026 this._menuItemAction.alt || this._menuItemAction;\n  }\n  async onClick(event) {\n    event.preventDefault();\n    event.stopPropagation();\n    try {\n      await this.actionRunner.run(this._commandAction, this._context);\n    } catch (err) {\n      this._notificationService.error(err);\n    }\n  }\n  render(container) {\n    super.render(container);\n    container.classList.add(\"menu-entry\");\n    if (this.options.icon) {\n      this._updateItemClass(this._menuItemAction.item);\n    }\n    if (this._menuItemAction.alt) {\n      let isMouseOver = false;\n      const updateAltState = () =\u003e {\n        const wantsAltCommand = !!this._menuItemAction.alt?.enabled \u0026\u0026 (!this._accessibilityService.isMotionReduced() || isMouseOver) \u0026\u0026 (this._altKey.keyStatus.altKey || this._altKey.keyStatus.shiftKey \u0026\u0026 isMouseOver);\n        if (wantsAltCommand !== this._wantsAltCommand) {\n          this._wantsAltCommand = wantsAltCommand;\n          this.updateLabel();\n          this.updateTooltip();\n          this.updateClass();\n        }\n      };\n      this._register(this._altKey.event(updateAltState));\n      this._register(addDisposableListener(container, \"mouseleave\", (_) =\u003e {\n        isMouseOver = false;\n        updateAltState();\n      }));\n      this._register(addDisposableListener(container, \"mouseenter\", (_) =\u003e {\n        isMouseOver = true;\n        updateAltState();\n      }));\n      updateAltState();\n    }\n  }\n  updateLabel() {\n    if (this.options.label \u0026\u0026 this.label) {\n      this.label.textContent = this._commandAction.label;\n    }\n  }\n  getTooltip() {\n    const keybinding = this._keybindingService.lookupKeybinding(this._commandAction.id, this._contextKeyService);\n    const keybindingLabel = keybinding \u0026\u0026 keybinding.getLabel();\n    const tooltip = this._commandAction.tooltip || this._commandAction.label;\n    let title = keybindingLabel ? localize(1626, \"{0} ({1})\", tooltip, keybindingLabel) : tooltip;\n    if (!this._wantsAltCommand \u0026\u0026 this._menuItemAction.alt?.enabled) {\n      const altTooltip = this._menuItemAction.alt.tooltip || this._menuItemAction.alt.label;\n      const altKeybinding = this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id, this._contextKeyService);\n      const altKeybindingLabel = altKeybinding \u0026\u0026 altKeybinding.getLabel();\n      const altTitleSection = altKeybindingLabel ? localize(1627, \"{0} ({1})\", altTooltip, altKeybindingLabel) : altTooltip;\n      title = localize(1628, \"{0}\\n[{1}] {2}\", title, UILabelProvider.modifierLabels[OS].altKey, altTitleSection);\n    }\n    return title;\n  }\n  updateClass() {\n    if (this.options.icon) {\n      if (this._commandAction !== this._menuItemAction) {\n        if (this._menuItemAction.alt) {\n          this._updateItemClass(this._menuItemAction.alt.item);\n        }\n      } else {\n        this._updateItemClass(this._menuItemAction.item);\n      }\n    }\n  }\n  _updateItemClass(item) {\n    this._itemClassDispose.value = void 0;\n    const { element, label } = this;\n    if (!element || !label) {\n      return;\n    }\n    const icon = this._commandAction.checked \u0026\u0026 isICommandActionToggleInfo(item.toggled) \u0026\u0026 item.toggled.icon ? item.toggled.icon : item.icon;\n    if (!icon) {\n      return;\n    }\n    if (ThemeIcon.isThemeIcon(icon)) {\n      const iconClasses = ThemeIcon.asClassNameArray(icon);\n      label.classList.add(...iconClasses);\n      this._itemClassDispose.value = toDisposable(() =\u003e {\n        label.classList.remove(...iconClasses);\n      });\n    } else {\n      label.style.backgroundImage = isDark(this._themeService.getColorTheme().type) ? asCSSUrl(icon.dark) : asCSSUrl(icon.light);\n      label.classList.add(\"icon\");\n      this._itemClassDispose.value = combinedDisposable(toDisposable(() =\u003e {\n        label.style.backgroundImage = \"\";\n        label.classList.remove(\"icon\");\n      }), this._themeService.onDidColorThemeChange(() =\u003e {\n        this.updateClass();\n      }));\n    }\n  }\n};\nMenuEntryActionViewItem = __decorate37([\n  __param32(2, IKeybindingService),\n  __param32(3, INotificationService),\n  __param32(4, IContextKeyService),\n  __param32(5, IThemeService),\n  __param32(6, IContextMenuService),\n  __param32(7, IAccessibilityService)\n], MenuEntryActionViewItem);\nvar TextOnlyMenuEntryActionViewItem = class _TextOnlyMenuEntryActionViewItem extends MenuEntryActionViewItem {\n  render(container) {\n    this.options.label = true;\n    this.options.icon = false;\n    super.render(container);\n    container.classList.add(\"text-only\");\n    container.classList.toggle(\"use-comma\", this._options?.useComma ?? false);\n  }\n  updateLabel() {\n    const kb = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService);\n    if (!kb) {\n      return super.updateLabel();\n    }\n    if (this.label) {\n      const kb2 = _TextOnlyMenuEntryActionViewItem._symbolPrintEnter(kb);\n      if (this._options?.conversational) {\n        this.label.textContent = localize(1629, \"{1} to {0}\", this._action.label, kb2);\n      } else {\n        this.label.textContent = localize(1630, \"{0} ({1})\", this._action.label, kb2);\n      }\n    }\n  }\n  static _symbolPrintEnter(kb) {\n    return kb.getLabel()?.replace(/\\benter\\b/gi, \"\\u23CE\").replace(/\\bEscape\\b/gi, \"Esc\");\n  }\n};\nvar SubmenuEntryActionViewItem = class SubmenuEntryActionViewItem2 extends DropdownMenuActionViewItem {\n  constructor(action, options2, _keybindingService, _contextMenuService, _themeService) {\n    const dropdownOptions = {\n      ...options2,\n      menuAsChild: options2?.menuAsChild ?? false,\n      classNames: options2?.classNames ?? (ThemeIcon.isThemeIcon(action.item.icon) ? ThemeIcon.asClassName(action.item.icon) : void 0),\n      keybindingProvider: options2?.keybindingProvider ?? ((action2) =\u003e _keybindingService.lookupKeybinding(action2.id))\n    };\n    super(action, { getActions: () =\u003e action.actions }, _contextMenuService, dropdownOptions);\n    this._keybindingService = _keybindingService;\n    this._contextMenuService = _contextMenuService;\n    this._themeService = _themeService;\n  }\n  render(container) {\n    super.render(container);\n    assertType(this.element);\n    container.classList.add(\"menu-entry\");\n    const action = this._action;\n    const { icon } = action.item;\n    if (icon \u0026\u0026 !ThemeIcon.isThemeIcon(icon)) {\n      this.element.classList.add(\"icon\");\n      const setBackgroundImage = () =\u003e {\n        if (this.element) {\n          this.element.style.backgroundImage = isDark(this._themeService.getColorTheme().type) ? asCSSUrl(icon.dark) : asCSSUrl(icon.light);\n        }\n      };\n      setBackgroundImage();\n      this._register(this._themeService.onDidColorThemeChange(() =\u003e {\n        setBackgroundImage();\n      }));\n    }\n  }\n};\nSubmenuEntryActionViewItem = __decorate37([\n  __param32(2, IKeybindingService),\n  __param32(3, IContextMenuService),\n  __param32(4, IThemeService)\n], SubmenuEntryActionViewItem);\nvar DropdownWithDefaultActionViewItem = class DropdownWithDefaultActionViewItem2 extends BaseActionViewItem {\n  constructor(submenuAction, options2, _keybindingService, _notificationService, _contextMenuService, _menuService, _instaService, _storageService) {\n    super(null, submenuAction);\n    this._keybindingService = _keybindingService;\n    this._notificationService = _notificationService;\n    this._contextMenuService = _contextMenuService;\n    this._menuService = _menuService;\n    this._instaService = _instaService;\n    this._storageService = _storageService;\n    this._defaultActionDisposables = this._register(new DisposableStore());\n    this._container = null;\n    this._options = options2;\n    this._storageKey = `${submenuAction.item.submenu.id}_lastActionId`;\n    let defaultAction;\n    const defaultActionId = options2?.persistLastActionId ? _storageService.get(\n      this._storageKey,\n      1\n      /* StorageScope.WORKSPACE */\n    ) : void 0;\n    if (defaultActionId) {\n      defaultAction = submenuAction.actions.find((a) =\u003e defaultActionId === a.id);\n    }\n    if (!defaultAction) {\n      defaultAction = submenuAction.actions[0];\n    }\n    this._defaultAction = this._defaultActionDisposables.add(this._instaService.createInstance(MenuEntryActionViewItem, defaultAction, { keybinding: this._getDefaultActionKeybindingLabel(defaultAction) }));\n    const dropdownOptions = {\n      keybindingProvider: (action) =\u003e this._keybindingService.lookupKeybinding(action.id),\n      ...options2,\n      menuAsChild: options2?.menuAsChild ?? true,\n      classNames: options2?.classNames ?? [\"codicon\", \"codicon-chevron-down\"],\n      actionRunner: options2?.actionRunner ?? this._register(new ActionRunner())\n    };\n    this._dropdown = this._register(new DropdownMenuActionViewItem(submenuAction, submenuAction.actions, this._contextMenuService, dropdownOptions));\n    this._register(this._dropdown.actionRunner.onDidRun((e) =\u003e {\n      if (e.action instanceof MenuItemAction) {\n        this.update(e.action);\n      }\n    }));\n  }\n  update(lastAction) {\n    if (this._options?.persistLastActionId) {\n      this._storageService.store(\n        this._storageKey,\n        lastAction.id,\n        1,\n        1\n        /* StorageTarget.MACHINE */\n      );\n    }\n    this._defaultActionDisposables.clear();\n    this._defaultAction = this._defaultActionDisposables.add(this._instaService.createInstance(MenuEntryActionViewItem, lastAction, { keybinding: this._getDefaultActionKeybindingLabel(lastAction) }));\n    this._defaultAction.actionRunner = this._defaultActionDisposables.add(new class extends ActionRunner {\n      async runAction(action, context) {\n        await action.run(void 0);\n      }\n    }());\n    if (this._container) {\n      this._defaultAction.render(prepend(this._container, $(\".action-container\")));\n    }\n  }\n  _getDefaultActionKeybindingLabel(defaultAction) {\n    let defaultActionKeybinding;\n    if (this._options?.renderKeybindingWithDefaultActionLabel) {\n      const kb = this._keybindingService.lookupKeybinding(defaultAction.id);\n      if (kb) {\n        defaultActionKeybinding = `(${kb.getLabel()})`;\n      }\n    }\n    return defaultActionKeybinding;\n  }\n  setActionContext(newContext) {\n    super.setActionContext(newContext);\n    this._defaultAction.setActionContext(newContext);\n    this._dropdown.setActionContext(newContext);\n  }\n  render(container) {\n    this._container = container;\n    super.render(this._container);\n    this._container.classList.add(\"monaco-dropdown-with-default\");\n    const primaryContainer = $(\".action-container\");\n    this._defaultAction.render(append(this._container, primaryContainer));\n    this._register(addDisposableListener(primaryContainer, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      if (event.equals(\n        17\n        /* KeyCode.RightArrow */\n      )) {\n        this._defaultAction.element.tabIndex = -1;\n        this._dropdown.focus();\n        event.stopPropagation();\n      }\n    }));\n    const dropdownContainer = $(\".dropdown-action-container\");\n    this._dropdown.render(append(this._container, dropdownContainer));\n    this._register(addDisposableListener(dropdownContainer, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      if (event.equals(\n        15\n        /* KeyCode.LeftArrow */\n      )) {\n        this._defaultAction.element.tabIndex = 0;\n        this._dropdown.setFocusable(false);\n        this._defaultAction.element?.focus();\n        event.stopPropagation();\n      }\n    }));\n  }\n  focus(fromRight) {\n    if (fromRight) {\n      this._dropdown.focus();\n    } else {\n      this._defaultAction.element.tabIndex = 0;\n      this._defaultAction.element.focus();\n    }\n  }\n  blur() {\n    this._defaultAction.element.tabIndex = -1;\n    this._dropdown.blur();\n    this._container.blur();\n  }\n  setFocusable(focusable) {\n    if (focusable) {\n      this._defaultAction.element.tabIndex = 0;\n    } else {\n      this._defaultAction.element.tabIndex = -1;\n      this._dropdown.setFocusable(false);\n    }\n  }\n};\nDropdownWithDefaultActionViewItem = __decorate37([\n  __param32(2, IKeybindingService),\n  __param32(3, INotificationService),\n  __param32(4, IContextMenuService),\n  __param32(5, IMenuService),\n  __param32(6, IInstantiationService),\n  __param32(7, IStorageService)\n], DropdownWithDefaultActionViewItem);\nvar SubmenuEntrySelectActionViewItem = class SubmenuEntrySelectActionViewItem2 extends SelectActionViewItem {\n  constructor(action, contextViewService, configurationService) {\n    super(null, action, action.actions.map((a) =\u003e ({\n      text: a.id === Separator.ID ? \"\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\" : a.label,\n      isDisabled: !a.enabled\n    })), 0, contextViewService, defaultSelectBoxStyles, { ariaLabel: action.tooltip, optionsAsChildren: true, useCustomDrawn: !hasNativeContextMenu(configurationService) });\n    this.select(Math.max(0, action.actions.findIndex((a) =\u003e a.checked)));\n  }\n  render(container) {\n    super.render(container);\n    container.style.borderColor = asCssVariable(selectBorder);\n  }\n  runAction(option2, index) {\n    const action = this.action.actions[index];\n    if (action) {\n      this.actionRunner.run(action);\n    }\n  }\n};\nSubmenuEntrySelectActionViewItem = __decorate37([\n  __param32(1, IContextViewService),\n  __param32(2, IConfigurationService)\n], SubmenuEntrySelectActionViewItem);\nfunction createActionViewItem(instaService, action, options2) {\n  if (action instanceof MenuItemAction) {\n    return instaService.createInstance(MenuEntryActionViewItem, action, options2);\n  } else if (action instanceof SubmenuItemAction) {\n    if (action.item.isSelection) {\n      return instaService.createInstance(SubmenuEntrySelectActionViewItem, action);\n    } else {\n      if (action.item.rememberDefaultAction) {\n        return instaService.createInstance(DropdownWithDefaultActionViewItem, action, { ...options2, persistLastActionId: true });\n      } else {\n        return instaService.createInstance(SubmenuEntryActionViewItem, action, options2);\n      }\n    }\n  } else {\n    return void 0;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/toolbar.js\ninit_actions2();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/common/menuService.js\ninit_async();\ninit_event();\ninit_lifecycle();\ninit_actions2();\ninit_commands();\ninit_contextkey();\ninit_actions();\ninit_arrays();\ninit_nls();\nvar __decorate38 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param33 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar PersistedMenuHideState_1;\nvar MenuInfo_1;\nvar MenuService = class MenuService2 {\n  constructor(_commandService, _keybindingService, storageService) {\n    this._commandService = _commandService;\n    this._keybindingService = _keybindingService;\n    this._hiddenStates = new PersistedMenuHideState(storageService);\n  }\n  createMenu(id, contextKeyService, options2) {\n    return new MenuImpl(id, this._hiddenStates, { emitEventsForSubmenuChanges: false, eventDebounceDelay: 50, ...options2 }, this._commandService, this._keybindingService, contextKeyService);\n  }\n  getMenuActions(id, contextKeyService, options2) {\n    const menu = new MenuImpl(id, this._hiddenStates, { emitEventsForSubmenuChanges: false, eventDebounceDelay: 50, ...options2 }, this._commandService, this._keybindingService, contextKeyService);\n    const actions = menu.getActions(options2);\n    menu.dispose();\n    return actions;\n  }\n  resetHiddenStates(ids) {\n    this._hiddenStates.reset(ids);\n  }\n};\nMenuService = __decorate38([\n  __param33(0, ICommandService),\n  __param33(1, IKeybindingService),\n  __param33(2, IStorageService)\n], MenuService);\nvar PersistedMenuHideState = class PersistedMenuHideState2 {\n  static {\n    PersistedMenuHideState_1 = this;\n  }\n  static {\n    this._key = \"menu.hiddenCommands\";\n  }\n  constructor(_storageService) {\n    this._storageService = _storageService;\n    this._disposables = new DisposableStore();\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n    this._ignoreChangeEvent = false;\n    this._hiddenByDefaultCache = /* @__PURE__ */ new Map();\n    try {\n      const raw = _storageService.get(PersistedMenuHideState_1._key, 0, \"{}\");\n      this._data = JSON.parse(raw);\n    } catch (err) {\n      this._data = /* @__PURE__ */ Object.create(null);\n    }\n    this._disposables.add(_storageService.onDidChangeValue(0, PersistedMenuHideState_1._key, this._disposables)(() =\u003e {\n      if (!this._ignoreChangeEvent) {\n        try {\n          const raw = _storageService.get(PersistedMenuHideState_1._key, 0, \"{}\");\n          this._data = JSON.parse(raw);\n        } catch (err) {\n          console.log(\"FAILED to read storage after UPDATE\", err);\n        }\n      }\n      this._onDidChange.fire();\n    }));\n  }\n  dispose() {\n    this._onDidChange.dispose();\n    this._disposables.dispose();\n  }\n  _isHiddenByDefault(menu, commandId) {\n    return this._hiddenByDefaultCache.get(`${menu.id}/${commandId}`) ?? false;\n  }\n  setDefaultState(menu, commandId, hidden) {\n    this._hiddenByDefaultCache.set(`${menu.id}/${commandId}`, hidden);\n  }\n  isHidden(menu, commandId) {\n    const hiddenByDefault = this._isHiddenByDefault(menu, commandId);\n    const state = this._data[menu.id]?.includes(commandId) ?? false;\n    return hiddenByDefault ? !state : state;\n  }\n  updateHidden(menu, commandId, hidden) {\n    const hiddenByDefault = this._isHiddenByDefault(menu, commandId);\n    if (hiddenByDefault) {\n      hidden = !hidden;\n    }\n    const entries2 = this._data[menu.id];\n    if (!hidden) {\n      if (entries2) {\n        const idx = entries2.indexOf(commandId);\n        if (idx \u003e= 0) {\n          removeFastWithoutKeepingOrder(entries2, idx);\n        }\n        if (entries2.length === 0) {\n          delete this._data[menu.id];\n        }\n      }\n    } else {\n      if (!entries2) {\n        this._data[menu.id] = [commandId];\n      } else {\n        const idx = entries2.indexOf(commandId);\n        if (idx \u003c 0) {\n          entries2.push(commandId);\n        }\n      }\n    }\n    this._persist();\n  }\n  reset(menus) {\n    if (menus === void 0) {\n      this._data = /* @__PURE__ */ Object.create(null);\n      this._persist();\n    } else {\n      for (const { id } of menus) {\n        if (this._data[id]) {\n          delete this._data[id];\n        }\n      }\n      this._persist();\n    }\n  }\n  _persist() {\n    try {\n      this._ignoreChangeEvent = true;\n      const raw = JSON.stringify(this._data);\n      this._storageService.store(\n        PersistedMenuHideState_1._key,\n        raw,\n        0,\n        0\n        /* StorageTarget.USER */\n      );\n    } finally {\n      this._ignoreChangeEvent = false;\n    }\n  }\n};\nPersistedMenuHideState = PersistedMenuHideState_1 = __decorate38([\n  __param33(0, IStorageService)\n], PersistedMenuHideState);\nvar MenuInfoSnapshot = class _MenuInfoSnapshot {\n  constructor(_id, _collectContextKeysForSubmenus) {\n    this._id = _id;\n    this._collectContextKeysForSubmenus = _collectContextKeysForSubmenus;\n    this._menuGroups = [];\n    this._allMenuIds = /* @__PURE__ */ new Set();\n    this._structureContextKeys = /* @__PURE__ */ new Set();\n    this._preconditionContextKeys = /* @__PURE__ */ new Set();\n    this._toggledContextKeys = /* @__PURE__ */ new Set();\n    this.refresh();\n  }\n  get allMenuIds() {\n    return this._allMenuIds;\n  }\n  get structureContextKeys() {\n    return this._structureContextKeys;\n  }\n  get preconditionContextKeys() {\n    return this._preconditionContextKeys;\n  }\n  get toggledContextKeys() {\n    return this._toggledContextKeys;\n  }\n  refresh() {\n    this._menuGroups.length = 0;\n    this._allMenuIds.clear();\n    this._structureContextKeys.clear();\n    this._preconditionContextKeys.clear();\n    this._toggledContextKeys.clear();\n    const menuItems = this._sort(MenuRegistry.getMenuItems(this._id));\n    let group;\n    for (const item of menuItems) {\n      const groupName = item.group || \"\";\n      if (!group || group[0] !== groupName) {\n        group = [groupName, []];\n        this._menuGroups.push(group);\n      }\n      group[1].push(item);\n      this._collectContextKeysAndSubmenuIds(item);\n    }\n    this._allMenuIds.add(this._id);\n  }\n  _sort(menuItems) {\n    return menuItems;\n  }\n  _collectContextKeysAndSubmenuIds(item) {\n    _MenuInfoSnapshot._fillInKbExprKeys(item.when, this._structureContextKeys);\n    if (isIMenuItem(item)) {\n      if (item.command.precondition) {\n        _MenuInfoSnapshot._fillInKbExprKeys(item.command.precondition, this._preconditionContextKeys);\n      }\n      if (item.command.toggled) {\n        const toggledExpression = item.command.toggled.condition || item.command.toggled;\n        _MenuInfoSnapshot._fillInKbExprKeys(toggledExpression, this._toggledContextKeys);\n      }\n    } else if (this._collectContextKeysForSubmenus) {\n      MenuRegistry.getMenuItems(item.submenu).forEach(this._collectContextKeysAndSubmenuIds, this);\n      this._allMenuIds.add(item.submenu);\n    }\n  }\n  static _fillInKbExprKeys(exp, set) {\n    if (exp) {\n      for (const key of exp.keys()) {\n        set.add(key);\n      }\n    }\n  }\n};\nvar MenuInfo = MenuInfo_1 = class MenuInfo2 extends MenuInfoSnapshot {\n  constructor(_id, _hiddenStates, _collectContextKeysForSubmenus, _commandService, _keybindingService, _contextKeyService) {\n    super(_id, _collectContextKeysForSubmenus);\n    this._hiddenStates = _hiddenStates;\n    this._commandService = _commandService;\n    this._keybindingService = _keybindingService;\n    this._contextKeyService = _contextKeyService;\n    this.refresh();\n  }\n  createActionGroups(options2) {\n    const result = [];\n    for (const group of this._menuGroups) {\n      const [id, items] = group;\n      let activeActions;\n      for (const item of items) {\n        if (this._contextKeyService.contextMatchesRules(item.when)) {\n          const isMenuItem = isIMenuItem(item);\n          if (isMenuItem) {\n            this._hiddenStates.setDefaultState(this._id, item.command.id, !!item.isHiddenByDefault);\n          }\n          const menuHide = createMenuHide(this._id, isMenuItem ? item.command : item, this._hiddenStates);\n          if (isMenuItem) {\n            const menuKeybinding = createConfigureKeybindingAction(this._commandService, this._keybindingService, item.command.id, item.when);\n            (activeActions ??= []).push(new MenuItemAction(item.command, item.alt, options2, menuHide, menuKeybinding, this._contextKeyService, this._commandService));\n          } else {\n            const groups = new MenuInfo_1(item.submenu, this._hiddenStates, this._collectContextKeysForSubmenus, this._commandService, this._keybindingService, this._contextKeyService).createActionGroups(options2);\n            const submenuActions = Separator.join(...groups.map((g) =\u003e g[1]));\n            if (submenuActions.length \u003e 0) {\n              (activeActions ??= []).push(new SubmenuItemAction(item, menuHide, submenuActions));\n            }\n          }\n        }\n      }\n      if (activeActions \u0026\u0026 activeActions.length \u003e 0) {\n        result.push([id, activeActions]);\n      }\n    }\n    return result;\n  }\n  _sort(menuItems) {\n    return menuItems.sort(MenuInfo_1._compareMenuItems);\n  }\n  static _compareMenuItems(a, b) {\n    const aGroup = a.group;\n    const bGroup = b.group;\n    if (aGroup !== bGroup) {\n      if (!aGroup) {\n        return 1;\n      } else if (!bGroup) {\n        return -1;\n      }\n      if (aGroup === \"navigation\") {\n        return -1;\n      } else if (bGroup === \"navigation\") {\n        return 1;\n      }\n      const value = aGroup.localeCompare(bGroup);\n      if (value !== 0) {\n        return value;\n      }\n    }\n    const aPrio = a.order || 0;\n    const bPrio = b.order || 0;\n    if (aPrio \u003c bPrio) {\n      return -1;\n    } else if (aPrio \u003e bPrio) {\n      return 1;\n    }\n    return MenuInfo_1._compareTitles(isIMenuItem(a) ? a.command.title : a.title, isIMenuItem(b) ? b.command.title : b.title);\n  }\n  static _compareTitles(a, b) {\n    const aStr = typeof a === \"string\" ? a : a.original;\n    const bStr = typeof b === \"string\" ? b : b.original;\n    return aStr.localeCompare(bStr);\n  }\n};\nMenuInfo = MenuInfo_1 = __decorate38([\n  __param33(3, ICommandService),\n  __param33(4, IKeybindingService),\n  __param33(5, IContextKeyService)\n], MenuInfo);\nvar MenuImpl = class MenuImpl2 {\n  constructor(id, hiddenStates, options2, commandService, keybindingService, contextKeyService) {\n    this._disposables = new DisposableStore();\n    this._menuInfo = new MenuInfo(id, hiddenStates, options2.emitEventsForSubmenuChanges, commandService, keybindingService, contextKeyService);\n    const rebuildMenuSoon = new RunOnceScheduler(() =\u003e {\n      this._menuInfo.refresh();\n      this._onDidChange.fire({ menu: this, isStructuralChange: true, isEnablementChange: true, isToggleChange: true });\n    }, options2.eventDebounceDelay);\n    this._disposables.add(rebuildMenuSoon);\n    this._disposables.add(MenuRegistry.onDidChangeMenu((e) =\u003e {\n      for (const id2 of this._menuInfo.allMenuIds) {\n        if (e.has(id2)) {\n          rebuildMenuSoon.schedule();\n          break;\n        }\n      }\n    }));\n    const lazyListener = this._disposables.add(new DisposableStore());\n    const merge = (events) =\u003e {\n      let isStructuralChange = false;\n      let isEnablementChange = false;\n      let isToggleChange = false;\n      for (const item of events) {\n        isStructuralChange = isStructuralChange || item.isStructuralChange;\n        isEnablementChange = isEnablementChange || item.isEnablementChange;\n        isToggleChange = isToggleChange || item.isToggleChange;\n        if (isStructuralChange \u0026\u0026 isEnablementChange \u0026\u0026 isToggleChange) {\n          break;\n        }\n      }\n      return { menu: this, isStructuralChange, isEnablementChange, isToggleChange };\n    };\n    const startLazyListener = () =\u003e {\n      lazyListener.add(contextKeyService.onDidChangeContext((e) =\u003e {\n        const isStructuralChange = e.affectsSome(this._menuInfo.structureContextKeys);\n        const isEnablementChange = e.affectsSome(this._menuInfo.preconditionContextKeys);\n        const isToggleChange = e.affectsSome(this._menuInfo.toggledContextKeys);\n        if (isStructuralChange || isEnablementChange || isToggleChange) {\n          this._onDidChange.fire({ menu: this, isStructuralChange, isEnablementChange, isToggleChange });\n        }\n      }));\n      lazyListener.add(hiddenStates.onDidChange((e) =\u003e {\n        this._onDidChange.fire({ menu: this, isStructuralChange: true, isEnablementChange: false, isToggleChange: false });\n      }));\n    };\n    this._onDidChange = new DebounceEmitter({\n      // start/stop context key listener\n      onWillAddFirstListener: startLazyListener,\n      onDidRemoveLastListener: lazyListener.clear.bind(lazyListener),\n      delay: options2.eventDebounceDelay,\n      merge\n    });\n    this.onDidChange = this._onDidChange.event;\n  }\n  getActions(options2) {\n    return this._menuInfo.createActionGroups(options2);\n  }\n  dispose() {\n    this._disposables.dispose();\n    this._onDidChange.dispose();\n  }\n};\nMenuImpl = __decorate38([\n  __param33(3, ICommandService),\n  __param33(4, IKeybindingService),\n  __param33(5, IContextKeyService)\n], MenuImpl);\nfunction createMenuHide(menu, command, states) {\n  const id = isISubmenuItem(command) ? command.submenu.id : command.id;\n  const title = typeof command.title === \"string\" ? command.title : command.title.value;\n  const hide2 = toAction({\n    id: `hide/${menu.id}/${id}`,\n    label: localize(1633, \"Hide '{0}'\", title),\n    run() {\n      states.updateHidden(menu, id, true);\n    }\n  });\n  const toggle = toAction({\n    id: `toggle/${menu.id}/${id}`,\n    label: title,\n    get checked() {\n      return !states.isHidden(menu, id);\n    },\n    run() {\n      states.updateHidden(menu, id, !!this.checked);\n    }\n  });\n  return {\n    hide: hide2,\n    toggle,\n    get isHidden() {\n      return !toggle.checked;\n    }\n  };\n}\nfunction createConfigureKeybindingAction(commandService, keybindingService, commandId, when = void 0, enabled = true) {\n  return toAction({\n    id: `configureKeybinding/${commandId}`,\n    label: localize(1634, \"Configure Keybinding\"),\n    enabled,\n    run() {\n      const hasKeybinding = !!keybindingService.lookupKeybinding(commandId);\n      const whenValue = !hasKeybinding \u0026\u0026 when ? when.serialize() : void 0;\n      commandService.executeCommand(\"workbench.action.openGlobalKeybindings\", `@command:${commandId}` + (whenValue ? ` +when:${whenValue}` : \"\"));\n    }\n  });\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/toolbar.js\ninit_commands();\ninit_contextkey();\ninit_telemetry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/actionViewItemService.js\ninit_event();\ninit_extensions();\ninit_instantiation();\ninit_actions2();\nvar IActionViewItemService = createDecorator(\"IActionViewItemService\");\nvar ActionViewItemService = class {\n  constructor() {\n    this._providers = /* @__PURE__ */ new Map();\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n  }\n  dispose() {\n    this._onDidChange.dispose();\n  }\n  lookUp(menu, commandOrMenuId) {\n    return this._providers.get(this._makeKey(menu, commandOrMenuId));\n  }\n  _makeKey(menu, commandOrMenuId) {\n    return `${menu.id}/${commandOrMenuId instanceof MenuId ? commandOrMenuId.id : commandOrMenuId}`;\n  }\n};\nregisterSingleton(\n  IActionViewItemService,\n  ActionViewItemService,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actions/browser/toolbar.js\ninit_instantiation();\nvar __decorate39 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param34 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar WorkbenchToolBar = class WorkbenchToolBar2 extends ToolBar {\n  constructor(container, _options, _menuService, _contextKeyService, _contextMenuService, _keybindingService, _commandService, telemetryService) {\n    super(container, _contextMenuService, {\n      // defaults\n      getKeyBinding: (action) =\u003e _keybindingService.lookupKeybinding(action.id) ?? void 0,\n      // options (override defaults)\n      ..._options,\n      // mandatory (overide options)\n      allowContextMenu: true,\n      skipTelemetry: typeof _options?.telemetrySource === \"string\"\n    });\n    this._options = _options;\n    this._menuService = _menuService;\n    this._contextKeyService = _contextKeyService;\n    this._contextMenuService = _contextMenuService;\n    this._keybindingService = _keybindingService;\n    this._commandService = _commandService;\n    this._sessionDisposables = this._store.add(new DisposableStore());\n    const telemetrySource = _options?.telemetrySource;\n    if (telemetrySource) {\n      this._store.add(this.actionBar.onDidRun((e) =\u003e telemetryService.publicLog2(\"workbenchActionExecuted\", { id: e.action.id, from: telemetrySource })));\n    }\n  }\n  setActions(_primary, _secondary = [], menuIds) {\n    this._sessionDisposables.clear();\n    const primary = _primary.slice();\n    const secondary = _secondary.slice();\n    const toggleActions = [];\n    let toggleActionsCheckedCount = 0;\n    const extraSecondary = [];\n    let someAreHidden = false;\n    if (this._options?.hiddenItemStrategy !== -1) {\n      for (let i2 = 0; i2 \u003c primary.length; i2++) {\n        const action = primary[i2];\n        if (!(action instanceof MenuItemAction) \u0026\u0026 !(action instanceof SubmenuItemAction)) {\n          continue;\n        }\n        if (!action.hideActions) {\n          continue;\n        }\n        toggleActions.push(action.hideActions.toggle);\n        if (action.hideActions.toggle.checked) {\n          toggleActionsCheckedCount++;\n        }\n        if (action.hideActions.isHidden) {\n          someAreHidden = true;\n          primary[i2] = void 0;\n          if (this._options?.hiddenItemStrategy !== 0) {\n            extraSecondary[i2] = action;\n          }\n        }\n      }\n    }\n    if (this._options?.overflowBehavior !== void 0) {\n      const exemptedIds = intersection(new Set(this._options.overflowBehavior.exempted), Iterable.map(primary, (a) =\u003e a?.id));\n      const maxItems = this._options.overflowBehavior.maxItems - exemptedIds.size;\n      let count = 0;\n      for (let i2 = 0; i2 \u003c primary.length; i2++) {\n        const action = primary[i2];\n        if (!action) {\n          continue;\n        }\n        count++;\n        if (exemptedIds.has(action.id)) {\n          continue;\n        }\n        if (count \u003e= maxItems) {\n          primary[i2] = void 0;\n          extraSecondary[i2] = action;\n        }\n      }\n    }\n    coalesceInPlace(primary);\n    coalesceInPlace(extraSecondary);\n    super.setActions(primary, Separator.join(extraSecondary, secondary));\n    if (toggleActions.length \u003e 0 || primary.length \u003e 0) {\n      this._sessionDisposables.add(addDisposableListener(this.getElement(), \"contextmenu\", (e) =\u003e {\n        const event = new StandardMouseEvent(getWindow(this.getElement()), e);\n        const action = this.getItemAction(event.target);\n        if (!action) {\n          return;\n        }\n        event.preventDefault();\n        event.stopPropagation();\n        const primaryActions = [];\n        if (action instanceof MenuItemAction \u0026\u0026 action.menuKeybinding) {\n          primaryActions.push(action.menuKeybinding);\n        } else if (!(action instanceof SubmenuItemAction || action instanceof ToggleMenuAction)) {\n          const supportsKeybindings = !!this._keybindingService.lookupKeybinding(action.id);\n          primaryActions.push(createConfigureKeybindingAction(this._commandService, this._keybindingService, action.id, void 0, supportsKeybindings));\n        }\n        if (toggleActions.length \u003e 0) {\n          let noHide = false;\n          if (toggleActionsCheckedCount === 1 \u0026\u0026 this._options?.hiddenItemStrategy === 0) {\n            noHide = true;\n            for (let i2 = 0; i2 \u003c toggleActions.length; i2++) {\n              if (toggleActions[i2].checked) {\n                toggleActions[i2] = toAction({\n                  id: action.id,\n                  label: action.label,\n                  checked: true,\n                  enabled: false,\n                  run() {\n                  }\n                });\n                break;\n              }\n            }\n          }\n          if (!noHide \u0026\u0026 (action instanceof MenuItemAction || action instanceof SubmenuItemAction)) {\n            if (!action.hideActions) {\n              return;\n            }\n            primaryActions.push(action.hideActions.hide);\n          } else {\n            primaryActions.push(toAction({\n              id: \"label\",\n              label: localize(1631, \"Hide\"),\n              enabled: false,\n              run() {\n              }\n            }));\n          }\n        }\n        const actions = Separator.join(primaryActions, toggleActions);\n        if (this._options?.resetMenu \u0026\u0026 !menuIds) {\n          menuIds = [this._options.resetMenu];\n        }\n        if (someAreHidden \u0026\u0026 menuIds) {\n          actions.push(new Separator());\n          actions.push(toAction({\n            id: \"resetThisMenu\",\n            label: localize(1632, \"Reset Menu\"),\n            run: () =\u003e this._menuService.resetHiddenStates(menuIds)\n          }));\n        }\n        if (actions.length === 0) {\n          return;\n        }\n        this._contextMenuService.showContextMenu({\n          getAnchor: () =\u003e event,\n          getActions: () =\u003e actions,\n          // add context menu actions (iff appicable)\n          menuId: this._options?.contextMenu,\n          menuActionOptions: { renderShortTitle: true, ...this._options?.menuOptions },\n          skipTelemetry: typeof this._options?.telemetrySource === \"string\",\n          contextKeyService: this._contextKeyService\n        });\n      }));\n    }\n  }\n};\nWorkbenchToolBar = __decorate39([\n  __param34(2, IMenuService),\n  __param34(3, IContextKeyService),\n  __param34(4, IContextMenuService),\n  __param34(5, IKeybindingService),\n  __param34(6, ICommandService),\n  __param34(7, ITelemetryService)\n], WorkbenchToolBar);\nvar MenuWorkbenchToolBar = class MenuWorkbenchToolBar2 extends WorkbenchToolBar {\n  get onDidChangeMenuItems() {\n    return this._onDidChangeMenuItems.event;\n  }\n  constructor(container, menuId, options2, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService, actionViewService, instaService) {\n    super(container, {\n      resetMenu: menuId,\n      ...options2,\n      actionViewItemProvider: (action, opts) =\u003e {\n        let provider = actionViewService.lookUp(menuId, action instanceof SubmenuItemAction ? action.item.submenu.id : action.id);\n        if (!provider) {\n          provider = options2?.actionViewItemProvider;\n        }\n        const viewItem = provider?.(action, opts, instaService);\n        if (viewItem) {\n          return viewItem;\n        }\n        return createActionViewItem(instaService, action, opts);\n      }\n    }, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService);\n    this._onDidChangeMenuItems = this._store.add(new Emitter());\n    const menu = this._store.add(menuService.createMenu(menuId, contextKeyService, { emitEventsForSubmenuChanges: true, eventDebounceDelay: options2?.eventDebounceDelay }));\n    const updateToolbar = () =\u003e {\n      const { primary, secondary } = getActionBarActions(menu.getActions(options2?.menuOptions), options2?.toolbarOptions?.primaryGroup, options2?.toolbarOptions?.shouldInlineSubmenu, options2?.toolbarOptions?.useSeparatorsInPrimaryActions);\n      container.classList.toggle(\"has-no-actions\", primary.length === 0 \u0026\u0026 secondary.length === 0);\n      super.setActions(primary, secondary);\n    };\n    this._store.add(menu.onDidChange(() =\u003e {\n      updateToolbar();\n      this._onDidChangeMenuItems.fire(this);\n    }));\n    this._store.add(actionViewService.onDidChange((e) =\u003e {\n      if (e === menuId) {\n        updateToolbar();\n      }\n    }));\n    updateToolbar();\n  }\n  /**\n   * @deprecated The WorkbenchToolBar does not support this method because it works with menus.\n   */\n  setActions() {\n    throw new BugIndicatingError(\"This toolbar is populated from a menu.\");\n  }\n};\nMenuWorkbenchToolBar = __decorate39([\n  __param34(3, IMenuService),\n  __param34(4, IContextKeyService),\n  __param34(5, IContextMenuService),\n  __param34(6, IKeybindingService),\n  __param34(7, ICommandService),\n  __param34(8, ITelemetryService),\n  __param34(9, IActionViewItemService),\n  __param34(10, IInstantiationService)\n], MenuWorkbenchToolBar);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js\ninit_actions2();\ninit_contextkey();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/hover/browser/hover.js\ninit_instantiation();\ninit_lifecycle();\ninit_configuration();\ninit_dom();\nvar __decorate40 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param35 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar IHoverService = createDecorator(\"hoverService\");\nvar WorkbenchHoverDelegate = class WorkbenchHoverDelegate2 extends Disposable {\n  get delay() {\n    if (this.isInstantlyHovering()) {\n      return 0;\n    }\n    if (this.hoverOptions?.dynamicDelay) {\n      return (content) =\u003e this.hoverOptions?.dynamicDelay?.(content) ?? this._delay;\n    }\n    return this._delay;\n  }\n  constructor(placement, hoverOptions, overrideOptions = {}, configurationService, hoverService) {\n    super();\n    this.placement = placement;\n    this.hoverOptions = hoverOptions;\n    this.overrideOptions = overrideOptions;\n    this.configurationService = configurationService;\n    this.hoverService = hoverService;\n    this.lastHoverHideTime = 0;\n    this.timeLimit = 200;\n    this.hoverDisposables = this._register(new DisposableStore());\n    this._delay = this.configurationService.getValue(\"workbench.hover.delay\");\n    this._register(this.configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(\"workbench.hover.delay\")) {\n        this._delay = this.configurationService.getValue(\"workbench.hover.delay\");\n      }\n    }));\n  }\n  showHover(options2, focus) {\n    const overrideOptions = typeof this.overrideOptions === \"function\" ? this.overrideOptions(options2, focus) : this.overrideOptions;\n    this.hoverDisposables.clear();\n    const targets = isHTMLElement(options2.target) ? [options2.target] : options2.target.targetElements;\n    for (const target of targets) {\n      this.hoverDisposables.add(addStandardDisposableListener(target, \"keydown\", (e) =\u003e {\n        if (e.equals(\n          9\n          /* KeyCode.Escape */\n        )) {\n          this.hoverService.hideHover();\n        }\n      }));\n    }\n    const id = isHTMLElement(options2.content) ? void 0 : typeof options2.content === \"string\" ? options2.content.toString() : options2.content.value;\n    return this.hoverService.showInstantHover({\n      ...options2,\n      ...overrideOptions,\n      persistence: {\n        hideOnKeyDown: true,\n        ...overrideOptions.persistence\n      },\n      id,\n      appearance: {\n        ...options2.appearance,\n        compact: true,\n        skipFadeInAnimation: this.isInstantlyHovering(),\n        ...overrideOptions.appearance\n      }\n    }, focus);\n  }\n  isInstantlyHovering() {\n    return !!this.hoverOptions?.instantHover \u0026\u0026 Date.now() - this.lastHoverHideTime \u003c this.timeLimit;\n  }\n  onDidHideHover() {\n    this.hoverDisposables.clear();\n    if (this.hoverOptions?.instantHover) {\n      this.lastHoverHideTime = Date.now();\n    }\n  }\n};\nWorkbenchHoverDelegate = __decorate40([\n  __param35(3, IConfigurationService),\n  __param35(4, IHoverService)\n], WorkbenchHoverDelegate);\nvar nativeHoverDelegate = {\n  showHover: function() {\n    throw new Error(\"Native hover function not implemented.\");\n  },\n  delay: 0,\n  showNativeHover: true\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js\ninit_instantiation();\ninit_lineRange();\ninit_offsetRange();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelText.js\ninit_textLength();\nvar TextModelText = class extends AbstractText {\n  constructor(_textModel) {\n    super();\n    this._textModel = _textModel;\n  }\n  getValueOfRange(range2) {\n    return this._textModel.getValueInRange(range2);\n  }\n  getLineLength(lineNumber) {\n    return this._textModel.getLineLength(lineNumber);\n  }\n  get length() {\n    const lastLineNumber = this._textModel.getLineCount();\n    const lastLineLen = this._textModel.getLineLength(lastLineNumber);\n    return new TextLength(lastLineNumber - 1, lastLineLen);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/utils.js\ninit_actions();\nvar ActionRunnerWithContext = class extends ActionRunner {\n  constructor(_getContext) {\n    super();\n    this._getContext = _getContext;\n  }\n  runAction(action, _context) {\n    const ctx = this._getContext();\n    return super.runAction(action, ctx);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js\ninit_utils5();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/utils/editorGutter.js\ninit_dom();\ninit_lifecycle();\ninit_observable();\ninit_lineRange();\ninit_offsetRange();\nvar EditorGutter = class extends Disposable {\n  constructor(_editor, _domNode, itemProvider) {\n    super();\n    this._editor = _editor;\n    this._domNode = _domNode;\n    this.itemProvider = itemProvider;\n    this.scrollTop = observableFromEvent(this, this._editor.onDidScrollChange, (e) =\u003e (\n      /** @description editor.onDidScrollChange */\n      this._editor.getScrollTop()\n    ));\n    this.isScrollTopZero = this.scrollTop.map((scrollTop) =\u003e (\n      /** @description isScrollTopZero */\n      scrollTop === 0\n    ));\n    this.modelAttached = observableFromEvent(this, this._editor.onDidChangeModel, (e) =\u003e (\n      /** @description editor.onDidChangeModel */\n      this._editor.hasModel()\n    ));\n    this.editorOnDidChangeViewZones = observableSignalFromEvent(\"onDidChangeViewZones\", this._editor.onDidChangeViewZones);\n    this.editorOnDidContentSizeChange = observableSignalFromEvent(\"onDidContentSizeChange\", this._editor.onDidContentSizeChange);\n    this.domNodeSizeChanged = observableSignal(\"domNodeSizeChanged\");\n    this.views = /* @__PURE__ */ new Map();\n    this._domNode.className = \"gutter monaco-editor\";\n    const scrollDecoration = this._domNode.appendChild(h(\"div.scroll-decoration\", { role: \"presentation\", ariaHidden: \"true\", style: { width: \"100%\" } }).root);\n    const o = new ResizeObserver(() =\u003e {\n      transaction((tx) =\u003e {\n        this.domNodeSizeChanged.trigger(tx);\n      });\n    });\n    o.observe(this._domNode);\n    this._register(toDisposable(() =\u003e o.disconnect()));\n    this._register(autorun((reader) =\u003e {\n      scrollDecoration.className = this.isScrollTopZero.read(reader) ? \"\" : \"scroll-decoration\";\n    }));\n    this._register(autorun((reader) =\u003e (\n      /** @description EditorGutter.Render */\n      this.render(reader)\n    )));\n  }\n  dispose() {\n    super.dispose();\n    reset(this._domNode);\n  }\n  render(reader) {\n    if (!this.modelAttached.read(reader)) {\n      return;\n    }\n    this.domNodeSizeChanged.read(reader);\n    this.editorOnDidChangeViewZones.read(reader);\n    this.editorOnDidContentSizeChange.read(reader);\n    const scrollTop = this.scrollTop.read(reader);\n    const visibleRanges = this._editor.getVisibleRanges();\n    const unusedIds = new Set(this.views.keys());\n    const viewRange = OffsetRange.ofStartAndLength(0, this._domNode.clientHeight);\n    if (!viewRange.isEmpty) {\n      for (const visibleRange of visibleRanges) {\n        const visibleRange2 = new LineRange(visibleRange.startLineNumber, visibleRange.endLineNumber + 1);\n        const gutterItems = this.itemProvider.getIntersectingGutterItems(visibleRange2, reader);\n        transaction((tx) =\u003e {\n          for (const gutterItem of gutterItems) {\n            if (!gutterItem.range.intersect(visibleRange2)) {\n              continue;\n            }\n            unusedIds.delete(gutterItem.id);\n            let view = this.views.get(gutterItem.id);\n            if (!view) {\n              const viewDomNode = document.createElement(\"div\");\n              this._domNode.appendChild(viewDomNode);\n              const gutterItemObs = observableValue(\"item\", gutterItem);\n              const itemView = this.itemProvider.createView(gutterItemObs, viewDomNode);\n              view = new ManagedGutterItemView(gutterItemObs, itemView, viewDomNode);\n              this.views.set(gutterItem.id, view);\n            } else {\n              view.item.set(gutterItem, tx);\n            }\n            const top = gutterItem.range.startLineNumber \u003c= this._editor.getModel().getLineCount() ? this._editor.getTopForLineNumber(gutterItem.range.startLineNumber, true) - scrollTop : gutterItem.range.startLineNumber \u003e 1 ? this._editor.getBottomForLineNumber(gutterItem.range.startLineNumber - 1, false) - scrollTop : 0;\n            const bottom = gutterItem.range.endLineNumberExclusive === 1 ? Math.max(top, this._editor.getTopForLineNumber(gutterItem.range.startLineNumber, false) - scrollTop) : Math.max(top, this._editor.getBottomForLineNumber(gutterItem.range.endLineNumberExclusive - 1, true) - scrollTop);\n            const height = bottom - top;\n            view.domNode.style.top = `${top}px`;\n            view.domNode.style.height = `${height}px`;\n            view.gutterItemView.layout(OffsetRange.ofStartAndLength(top, height), viewRange);\n          }\n        });\n      }\n    }\n    for (const id of unusedIds) {\n      const view = this.views.get(id);\n      view.gutterItemView.dispose();\n      view.domNode.remove();\n      this.views.delete(id);\n    }\n  }\n};\nvar ManagedGutterItemView = class {\n  constructor(item, gutterItemView, domNode) {\n    this.item = item;\n    this.gutterItemView = gutterItemView;\n    this.domNode = domNode;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js\nvar __decorate41 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param36 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar emptyArr2 = [];\nvar width = 35;\nvar DiffEditorGutter = class DiffEditorGutter2 extends Disposable {\n  constructor(diffEditorRoot, _diffModel, _editors, _options, _sashLayout, _boundarySashes, _instantiationService, _contextKeyService, _menuService) {\n    super();\n    this._diffModel = _diffModel;\n    this._editors = _editors;\n    this._options = _options;\n    this._sashLayout = _sashLayout;\n    this._boundarySashes = _boundarySashes;\n    this._instantiationService = _instantiationService;\n    this._contextKeyService = _contextKeyService;\n    this._menuService = _menuService;\n    this._menu = this._register(this._menuService.createMenu(MenuId.DiffEditorHunkToolbar, this._contextKeyService));\n    this._actions = observableFromEvent(this, this._menu.onDidChange, () =\u003e this._menu.getActions());\n    this._hasActions = this._actions.map((a) =\u003e a.length \u003e 0);\n    this._showSash = derived(this, (reader) =\u003e this._options.renderSideBySide.read(reader) \u0026\u0026 this._hasActions.read(reader));\n    this.width = derived(this, (reader) =\u003e this._hasActions.read(reader) ? width : 0);\n    this.elements = h(\"div.gutter@gutter\", { style: { position: \"absolute\", height: \"100%\", width: width + \"px\" } }, []);\n    this._currentDiff = derived(this, (reader) =\u003e {\n      const model = this._diffModel.read(reader);\n      if (!model) {\n        return void 0;\n      }\n      const mappings = model.diff.read(reader)?.mappings;\n      const cursorPosition = this._editors.modifiedCursor.read(reader);\n      if (!cursorPosition) {\n        return void 0;\n      }\n      return mappings?.find((m) =\u003e m.lineRangeMapping.modified.contains(cursorPosition.lineNumber));\n    });\n    this._selectedDiffs = derived(this, (reader) =\u003e {\n      const model = this._diffModel.read(reader);\n      const diff = model?.diff.read(reader);\n      if (!diff) {\n        return emptyArr2;\n      }\n      const selections = this._editors.modifiedSelections.read(reader);\n      if (selections.every((s) =\u003e s.isEmpty())) {\n        return emptyArr2;\n      }\n      const selectedLineNumbers = new LineRangeSet(selections.map((s) =\u003e LineRange.fromRangeInclusive(s)));\n      const selectedMappings = diff.mappings.filter((m) =\u003e m.lineRangeMapping.innerChanges \u0026\u0026 selectedLineNumbers.intersects(m.lineRangeMapping.modified));\n      const result = selectedMappings.map((mapping) =\u003e ({\n        mapping,\n        rangeMappings: mapping.lineRangeMapping.innerChanges.filter((c) =\u003e selections.some((s) =\u003e Range.areIntersecting(c.modifiedRange, s)))\n      }));\n      if (result.length === 0 || result.every((r) =\u003e r.rangeMappings.length === 0)) {\n        return emptyArr2;\n      }\n      return result;\n    });\n    this._register(prependRemoveOnDispose(diffEditorRoot, this.elements.root));\n    this._register(addDisposableListener(this.elements.root, \"click\", () =\u003e {\n      this._editors.modified.focus();\n    }));\n    this._register(applyStyle(this.elements.root, { display: this._hasActions.map((a) =\u003e a ? \"block\" : \"none\") }));\n    derivedDisposable(this, (reader) =\u003e {\n      const showSash = this._showSash.read(reader);\n      return !showSash ? void 0 : new DiffEditorSash(diffEditorRoot, this._sashLayout.dimensions, this._options.enableSplitViewResizing, this._boundarySashes, derivedWithSetter(this, (reader2) =\u003e this._sashLayout.sashLeft.read(reader2) - width, (v, tx) =\u003e this._sashLayout.sashLeft.set(v + width, tx)), () =\u003e this._sashLayout.resetSash());\n    }).recomputeInitiallyAndOnChange(this._store);\n    const gutterItems = derived(this, (reader) =\u003e {\n      const model = this._diffModel.read(reader);\n      if (!model) {\n        return [];\n      }\n      const diffs = model.diff.read(reader);\n      if (!diffs) {\n        return [];\n      }\n      const selection = this._selectedDiffs.read(reader);\n      if (selection.length \u003e 0) {\n        const m = DetailedLineRangeMapping.fromRangeMappings(selection.flatMap((s) =\u003e s.rangeMappings));\n        return [\n          new DiffGutterItem(m, true, MenuId.DiffEditorSelectionToolbar, void 0, model.model.original.uri, model.model.modified.uri)\n        ];\n      }\n      const currentDiff = this._currentDiff.read(reader);\n      return diffs.mappings.map((m) =\u003e new DiffGutterItem(m.lineRangeMapping.withInnerChangesFromLineRanges(), m.lineRangeMapping === currentDiff?.lineRangeMapping, MenuId.DiffEditorHunkToolbar, void 0, model.model.original.uri, model.model.modified.uri));\n    });\n    this._register(new EditorGutter(this._editors.modified, this.elements.root, {\n      getIntersectingGutterItems: (range2, reader) =\u003e gutterItems.read(reader),\n      createView: (item, target) =\u003e {\n        return this._instantiationService.createInstance(DiffToolBar, item, target, this);\n      }\n    }));\n    this._register(addDisposableListener(this.elements.gutter, EventType.MOUSE_WHEEL, (e) =\u003e {\n      if (this._editors.modified.getOption(\n        116\n        /* EditorOption.scrollbar */\n      ).handleMouseWheel) {\n        this._editors.modified.delegateScrollFromMouseWheelEvent(e);\n      }\n    }, { passive: false }));\n  }\n  computeStagedValue(mapping) {\n    const c = mapping.innerChanges ?? [];\n    const modified = new TextModelText(this._editors.modifiedModel.get());\n    const original = new TextModelText(this._editors.original.getModel());\n    const edit2 = new TextEdit(c.map((c2) =\u003e c2.toTextEdit(modified)));\n    const value = edit2.apply(original);\n    return value;\n  }\n  layout(left) {\n    this.elements.gutter.style.left = left + \"px\";\n  }\n};\nDiffEditorGutter = __decorate41([\n  __param36(6, IInstantiationService),\n  __param36(7, IContextKeyService),\n  __param36(8, IMenuService)\n], DiffEditorGutter);\nvar DiffGutterItem = class {\n  constructor(mapping, showAlways, menuId, rangeOverride, originalUri, modifiedUri) {\n    this.mapping = mapping;\n    this.showAlways = showAlways;\n    this.menuId = menuId;\n    this.rangeOverride = rangeOverride;\n    this.originalUri = originalUri;\n    this.modifiedUri = modifiedUri;\n  }\n  get id() {\n    return this.mapping.modified.toString();\n  }\n  get range() {\n    return this.rangeOverride ?? this.mapping.modified;\n  }\n};\nvar DiffToolBar = class DiffToolBar2 extends Disposable {\n  constructor(_item, target, gutter, instantiationService) {\n    super();\n    this._item = _item;\n    this._elements = h(\"div.gutterItem\", { style: { height: \"20px\", width: \"34px\" } }, [\n      h(\"div.background@background\", {}, []),\n      h(\"div.buttons@buttons\", {}, [])\n    ]);\n    this._showAlways = this._item.map(this, (item) =\u003e item.showAlways);\n    this._menuId = this._item.map(this, (item) =\u003e item.menuId);\n    this._isSmall = observableValue(this, false);\n    this._lastItemRange = void 0;\n    this._lastViewRange = void 0;\n    const hoverDelegate = this._register(instantiationService.createInstance(WorkbenchHoverDelegate, \"element\", { instantHover: true }, { position: {\n      hoverPosition: 1\n      /* HoverPosition.RIGHT */\n    } }));\n    this._register(appendRemoveOnDispose(target, this._elements.root));\n    this._register(autorun((reader) =\u003e {\n      const showAlways = this._showAlways.read(reader);\n      this._elements.root.classList.toggle(\"noTransition\", true);\n      this._elements.root.classList.toggle(\"showAlways\", showAlways);\n      setTimeout(() =\u003e {\n        this._elements.root.classList.toggle(\"noTransition\", false);\n      }, 0);\n    }));\n    this._register(autorunWithStore((reader, store) =\u003e {\n      this._elements.buttons.replaceChildren();\n      const i2 = store.add(instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.buttons, this._menuId.read(reader), {\n        orientation: 1,\n        hoverDelegate,\n        toolbarOptions: {\n          primaryGroup: (g) =\u003e g.startsWith(\"primary\")\n        },\n        overflowBehavior: { maxItems: this._isSmall.read(reader) ? 1 : 3 },\n        hiddenItemStrategy: 0,\n        actionRunner: store.add(new ActionRunnerWithContext(() =\u003e {\n          const item = this._item.get();\n          const mapping = item.mapping;\n          return {\n            mapping,\n            originalWithModifiedChanges: gutter.computeStagedValue(mapping),\n            originalUri: item.originalUri,\n            modifiedUri: item.modifiedUri\n          };\n        })),\n        menuOptions: {\n          shouldForwardArgs: true\n        }\n      }));\n      store.add(i2.onDidChangeMenuItems(() =\u003e {\n        if (this._lastItemRange) {\n          this.layout(this._lastItemRange, this._lastViewRange);\n        }\n      }));\n    }));\n  }\n  layout(itemRange, viewRange) {\n    this._lastItemRange = itemRange;\n    this._lastViewRange = viewRange;\n    let itemHeight = this._elements.buttons.clientHeight;\n    this._isSmall.set(this._item.get().mapping.original.startLineNumber === 1 \u0026\u0026 itemRange.length \u003c 30, void 0);\n    itemHeight = this._elements.buttons.clientHeight;\n    const middleHeight = itemRange.length / 2 - itemHeight / 2;\n    const margin = itemHeight;\n    let effectiveCheckboxTop = itemRange.start + middleHeight;\n    const preferredViewPortRange = OffsetRange.tryCreate(margin, viewRange.endExclusive - margin - itemHeight);\n    const preferredParentRange = OffsetRange.tryCreate(itemRange.start + margin, itemRange.endExclusive - itemHeight - margin);\n    if (preferredParentRange \u0026\u0026 preferredViewPortRange \u0026\u0026 preferredParentRange.start \u003c preferredParentRange.endExclusive) {\n      effectiveCheckboxTop = preferredViewPortRange.clip(effectiveCheckboxTop);\n      effectiveCheckboxTop = preferredParentRange.clip(effectiveCheckboxTop);\n    }\n    this._elements.buttons.style.top = `${effectiveCheckboxTop - itemRange.start}px`;\n  }\n};\nDiffToolBar = __decorate41([\n  __param36(3, IInstantiationService)\n], DiffToolBar);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js\ninit_hideUnchangedRegionsFeature();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js\ninit_dom();\ninit_iconLabels2();\ninit_codicons();\ninit_lifecycle();\ninit_observable();\ninit_lineRange();\ninit_range();\ninit_model2();\ninit_nls();\nvar emptyArr3 = [];\nvar RevertButtonsFeature = class extends Disposable {\n  constructor(_editors, _diffModel, _options, _widget) {\n    super();\n    this._editors = _editors;\n    this._diffModel = _diffModel;\n    this._options = _options;\n    this._widget = _widget;\n    this._selectedDiffs = derived(this, (reader) =\u003e {\n      const model = this._diffModel.read(reader);\n      const diff = model?.diff.read(reader);\n      if (!diff) {\n        return emptyArr3;\n      }\n      const selections = this._editors.modifiedSelections.read(reader);\n      if (selections.every((s) =\u003e s.isEmpty())) {\n        return emptyArr3;\n      }\n      const selectedLineNumbers = new LineRangeSet(selections.map((s) =\u003e LineRange.fromRangeInclusive(s)));\n      const selectedMappings = diff.mappings.filter((m) =\u003e m.lineRangeMapping.innerChanges \u0026\u0026 selectedLineNumbers.intersects(m.lineRangeMapping.modified));\n      const result = selectedMappings.map((mapping) =\u003e ({\n        mapping,\n        rangeMappings: mapping.lineRangeMapping.innerChanges.filter((c) =\u003e selections.some((s) =\u003e Range.areIntersecting(c.modifiedRange, s)))\n      }));\n      if (result.length === 0 || result.every((r) =\u003e r.rangeMappings.length === 0)) {\n        return emptyArr3;\n      }\n      return result;\n    });\n    this._register(autorunWithStore((reader, store) =\u003e {\n      if (!this._options.shouldRenderOldRevertArrows.read(reader)) {\n        return;\n      }\n      const model = this._diffModel.read(reader);\n      const diff = model?.diff.read(reader);\n      if (!model || !diff) {\n        return;\n      }\n      if (model.movedTextToCompare.read(reader)) {\n        return;\n      }\n      const glyphWidgetsModified = [];\n      const selectedDiffs = this._selectedDiffs.read(reader);\n      const selectedDiffsSet = new Set(selectedDiffs.map((d) =\u003e d.mapping));\n      if (selectedDiffs.length \u003e 0) {\n        const selections = this._editors.modifiedSelections.read(reader);\n        const btn = store.add(new RevertButton(selections[selections.length - 1].positionLineNumber, this._widget, selectedDiffs.flatMap((d) =\u003e d.rangeMappings), true));\n        this._editors.modified.addGlyphMarginWidget(btn);\n        glyphWidgetsModified.push(btn);\n      }\n      for (const m of diff.mappings) {\n        if (selectedDiffsSet.has(m)) {\n          continue;\n        }\n        if (!m.lineRangeMapping.modified.isEmpty \u0026\u0026 m.lineRangeMapping.innerChanges) {\n          const btn = store.add(new RevertButton(m.lineRangeMapping.modified.startLineNumber, this._widget, m.lineRangeMapping, false));\n          this._editors.modified.addGlyphMarginWidget(btn);\n          glyphWidgetsModified.push(btn);\n        }\n      }\n      store.add(toDisposable(() =\u003e {\n        for (const w of glyphWidgetsModified) {\n          this._editors.modified.removeGlyphMarginWidget(w);\n        }\n      }));\n    }));\n  }\n};\nvar RevertButton = class _RevertButton extends Disposable {\n  static {\n    this.counter = 0;\n  }\n  getId() {\n    return this._id;\n  }\n  constructor(_lineNumber, _widget, _diffs, _revertSelection) {\n    super();\n    this._lineNumber = _lineNumber;\n    this._widget = _widget;\n    this._diffs = _diffs;\n    this._revertSelection = _revertSelection;\n    this._id = `revertButton${_RevertButton.counter++}`;\n    this._domNode = h(\"div.revertButton\", {\n      title: this._revertSelection ? localize(132, \"Revert Selected Changes\") : localize(133, \"Revert Change\")\n    }, [renderIcon(Codicon.arrowRight)]).root;\n    this._register(addDisposableListener(this._domNode, EventType.MOUSE_DOWN, (e) =\u003e {\n      if (e.button !== 2) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n    }));\n    this._register(addDisposableListener(this._domNode, EventType.MOUSE_UP, (e) =\u003e {\n      e.stopPropagation();\n      e.preventDefault();\n    }));\n    this._register(addDisposableListener(this._domNode, EventType.CLICK, (e) =\u003e {\n      if (this._diffs instanceof LineRangeMapping) {\n        this._widget.revert(this._diffs);\n      } else {\n        this._widget.revertRangeMappings(this._diffs);\n      }\n      e.stopPropagation();\n      e.preventDefault();\n    }));\n  }\n  /**\n   * Get the dom node of the glyph widget.\n   */\n  getDomNode() {\n    return this._domNode;\n  }\n  /**\n   * Get the placement of the glyph widget.\n   */\n  getPosition() {\n    return {\n      lane: GlyphMarginLane.Right,\n      range: {\n        startColumn: 1,\n        startLineNumber: this._lineNumber,\n        endColumn: 1,\n        endLineNumber: this._lineNumber\n      },\n      zIndex: 10001\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js\ninit_utils5();\nvar __decorate43 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param38 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DiffEditorWidget = class DiffEditorWidget2 extends DelegatingEditor {\n  get onDidContentSizeChange() {\n    return this._editors.onDidContentSizeChange;\n  }\n  constructor(_domElement, options2, codeEditorWidgetOptions, _parentContextKeyService, _parentInstantiationService, codeEditorService, _accessibilitySignalService, _editorProgressService) {\n    super();\n    this._domElement = _domElement;\n    this._parentContextKeyService = _parentContextKeyService;\n    this._parentInstantiationService = _parentInstantiationService;\n    this._accessibilitySignalService = _accessibilitySignalService;\n    this._editorProgressService = _editorProgressService;\n    this.elements = h(\"div.monaco-diff-editor.side-by-side\", { style: { position: \"relative\", height: \"100%\" } }, [\n      h(\"div.editor.original@original\", { style: { position: \"absolute\", height: \"100%\" } }),\n      h(\"div.editor.modified@modified\", { style: { position: \"absolute\", height: \"100%\" } }),\n      h(\"div.accessibleDiffViewer@accessibleDiffViewer\", { style: { position: \"absolute\", height: \"100%\" } })\n    ]);\n    this._diffModelSrc = this._register(disposableObservableValue(this, void 0));\n    this._diffModel = derived(this, (reader) =\u003e this._diffModelSrc.read(reader)?.object);\n    this.onDidChangeModel = Event.fromObservableLight(this._diffModel);\n    this._contextKeyService = this._register(this._parentContextKeyService.createScoped(this._domElement));\n    this._instantiationService = this._register(this._parentInstantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n    this._boundarySashes = observableValue(this, void 0);\n    this._accessibleDiffViewerShouldBeVisible = observableValue(this, false);\n    this._accessibleDiffViewerVisible = derived(this, (reader) =\u003e this._options.onlyShowAccessibleDiffViewer.read(reader) ? true : this._accessibleDiffViewerShouldBeVisible.read(reader));\n    this._movedBlocksLinesPart = observableValue(this, void 0);\n    this._layoutInfo = derived(this, (reader) =\u003e {\n      const fullWidth = this._rootSizeObserver.width.read(reader);\n      const fullHeight = this._rootSizeObserver.height.read(reader);\n      if (this._rootSizeObserver.automaticLayout) {\n        this.elements.root.style.height = \"100%\";\n      } else {\n        this.elements.root.style.height = fullHeight + \"px\";\n      }\n      const sash = this._sash.read(reader);\n      const gutter = this._gutter.read(reader);\n      const gutterWidth = gutter?.width.read(reader) ?? 0;\n      const overviewRulerPartWidth = this._overviewRulerPart.read(reader)?.width ?? 0;\n      let originalLeft, originalWidth, modifiedLeft, modifiedWidth, gutterLeft;\n      const sideBySide = !!sash;\n      if (sideBySide) {\n        const sashLeft = sash.sashLeft.read(reader);\n        const movedBlocksLinesWidth = this._movedBlocksLinesPart.read(reader)?.width.read(reader) ?? 0;\n        originalLeft = 0;\n        originalWidth = sashLeft - gutterWidth - movedBlocksLinesWidth;\n        gutterLeft = sashLeft - gutterWidth;\n        modifiedLeft = sashLeft;\n        modifiedWidth = fullWidth - modifiedLeft - overviewRulerPartWidth;\n      } else {\n        gutterLeft = 0;\n        const shouldHideOriginalLineNumbers = this._options.inlineViewHideOriginalLineNumbers.read(reader);\n        originalLeft = gutterWidth;\n        if (shouldHideOriginalLineNumbers) {\n          originalWidth = 0;\n        } else {\n          originalWidth = Math.max(5, this._editors.originalObs.layoutInfoDecorationsLeft.read(reader));\n        }\n        modifiedLeft = gutterWidth + originalWidth;\n        modifiedWidth = fullWidth - modifiedLeft - overviewRulerPartWidth;\n      }\n      this.elements.original.style.left = originalLeft + \"px\";\n      this.elements.original.style.width = originalWidth + \"px\";\n      this._editors.original.layout({ width: originalWidth, height: fullHeight }, true);\n      gutter?.layout(gutterLeft);\n      this.elements.modified.style.left = modifiedLeft + \"px\";\n      this.elements.modified.style.width = modifiedWidth + \"px\";\n      this._editors.modified.layout({ width: modifiedWidth, height: fullHeight }, true);\n      return {\n        modifiedEditor: this._editors.modified.getLayoutInfo(),\n        originalEditor: this._editors.original.getLayoutInfo()\n      };\n    });\n    this._diffValue = this._diffModel.map((m, r) =\u003e m?.diff.read(r));\n    this.onDidUpdateDiff = Event.fromObservableLight(this._diffValue);\n    codeEditorService.willCreateDiffEditor();\n    this._contextKeyService.createKey(\"isInDiffEditor\", true);\n    this._domElement.appendChild(this.elements.root);\n    this._register(toDisposable(() =\u003e this.elements.root.remove()));\n    this._rootSizeObserver = this._register(new ObservableElementSizeObserver(this.elements.root, options2.dimension));\n    this._rootSizeObserver.setAutomaticLayout(options2.automaticLayout ?? false);\n    this._options = this._instantiationService.createInstance(DiffEditorOptions, options2);\n    this._register(autorun((reader) =\u003e {\n      this._options.setWidth(this._rootSizeObserver.width.read(reader));\n    }));\n    this._contextKeyService.createKey(EditorContextKeys.isEmbeddedDiffEditor.key, false);\n    this._register(bindContextKey(EditorContextKeys.isEmbeddedDiffEditor, this._contextKeyService, (reader) =\u003e this._options.isInEmbeddedEditor.read(reader)));\n    this._register(bindContextKey(EditorContextKeys.comparingMovedCode, this._contextKeyService, (reader) =\u003e !!this._diffModel.read(reader)?.movedTextToCompare.read(reader)));\n    this._register(bindContextKey(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached, this._contextKeyService, (reader) =\u003e this._options.couldShowInlineViewBecauseOfSize.read(reader)));\n    this._register(bindContextKey(EditorContextKeys.diffEditorInlineMode, this._contextKeyService, (reader) =\u003e !this._options.renderSideBySide.read(reader)));\n    this._register(bindContextKey(EditorContextKeys.hasChanges, this._contextKeyService, (reader) =\u003e (this._diffModel.read(reader)?.diff.read(reader)?.mappings.length ?? 0) \u003e 0));\n    this._editors = this._register(this._instantiationService.createInstance(DiffEditorEditors, this.elements.original, this.elements.modified, this._options, codeEditorWidgetOptions, (i2, c, o, o2) =\u003e this._createInnerEditor(i2, c, o, o2)));\n    this._register(bindContextKey(EditorContextKeys.diffEditorOriginalWritable, this._contextKeyService, (reader) =\u003e this._options.originalEditable.read(reader)));\n    this._register(bindContextKey(EditorContextKeys.diffEditorModifiedWritable, this._contextKeyService, (reader) =\u003e !this._options.readOnly.read(reader)));\n    this._register(bindContextKey(EditorContextKeys.diffEditorOriginalUri, this._contextKeyService, (reader) =\u003e this._diffModel.read(reader)?.model.original.uri.toString() ?? \"\"));\n    this._register(bindContextKey(EditorContextKeys.diffEditorModifiedUri, this._contextKeyService, (reader) =\u003e this._diffModel.read(reader)?.model.modified.uri.toString() ?? \"\"));\n    this._overviewRulerPart = derivedDisposable(this, (reader) =\u003e !this._options.renderOverviewRuler.read(reader) ? void 0 : this._instantiationService.createInstance(readHotReloadableExport(OverviewRulerFeature, reader), this._editors, this.elements.root, this._diffModel, this._rootSizeObserver.width, this._rootSizeObserver.height, this._layoutInfo.map((i2) =\u003e i2.modifiedEditor))).recomputeInitiallyAndOnChange(this._store);\n    const dimensions = {\n      height: this._rootSizeObserver.height,\n      width: this._rootSizeObserver.width.map((w, reader) =\u003e w - (this._overviewRulerPart.read(reader)?.width ?? 0))\n    };\n    this._sashLayout = new SashLayout(this._options, dimensions);\n    this._sash = derivedDisposable(this, (reader) =\u003e {\n      const showSash = this._options.renderSideBySide.read(reader);\n      this.elements.root.classList.toggle(\"side-by-side\", showSash);\n      return !showSash ? void 0 : new DiffEditorSash(this.elements.root, dimensions, this._options.enableSplitViewResizing, this._boundarySashes, this._sashLayout.sashLeft, () =\u003e this._sashLayout.resetSash());\n    }).recomputeInitiallyAndOnChange(this._store);\n    const unchangedRangesFeature = derivedDisposable(this, (reader) =\u003e (\n      /** @description UnchangedRangesFeature */\n      this._instantiationService.createInstance(readHotReloadableExport(HideUnchangedRegionsFeature, reader), this._editors, this._diffModel, this._options)\n    )).recomputeInitiallyAndOnChange(this._store);\n    derivedDisposable(this, (reader) =\u003e (\n      /** @description DiffEditorDecorations */\n      this._instantiationService.createInstance(readHotReloadableExport(DiffEditorDecorations, reader), this._editors, this._diffModel, this._options, this)\n    )).recomputeInitiallyAndOnChange(this._store);\n    const origViewZoneIdsToIgnore = /* @__PURE__ */ new Set();\n    const modViewZoneIdsToIgnore = /* @__PURE__ */ new Set();\n    let isUpdatingViewZones = false;\n    const viewZoneManager = derivedDisposable(this, (reader) =\u003e (\n      /** @description ViewZoneManager */\n      this._instantiationService.createInstance(readHotReloadableExport(DiffEditorViewZones, reader), getWindow(this._domElement), this._editors, this._diffModel, this._options, this, () =\u003e isUpdatingViewZones || unchangedRangesFeature.get().isUpdatingHiddenAreas, origViewZoneIdsToIgnore, modViewZoneIdsToIgnore)\n    )).recomputeInitiallyAndOnChange(this._store);\n    const originalViewZones = derived(this, (reader) =\u003e {\n      const orig = viewZoneManager.read(reader).viewZones.read(reader).orig;\n      const orig2 = unchangedRangesFeature.read(reader).viewZones.read(reader).origViewZones;\n      return orig.concat(orig2);\n    });\n    const modifiedViewZones = derived(this, (reader) =\u003e {\n      const mod = viewZoneManager.read(reader).viewZones.read(reader).mod;\n      const mod2 = unchangedRangesFeature.read(reader).viewZones.read(reader).modViewZones;\n      return mod.concat(mod2);\n    });\n    this._register(applyViewZones(this._editors.original, originalViewZones, (isUpdatingOrigViewZones) =\u003e {\n      isUpdatingViewZones = isUpdatingOrigViewZones;\n    }, origViewZoneIdsToIgnore));\n    let scrollState;\n    this._register(applyViewZones(this._editors.modified, modifiedViewZones, (isUpdatingModViewZones) =\u003e {\n      isUpdatingViewZones = isUpdatingModViewZones;\n      if (isUpdatingViewZones) {\n        scrollState = StableEditorScrollState.capture(this._editors.modified);\n      } else {\n        scrollState?.restore(this._editors.modified);\n        scrollState = void 0;\n      }\n    }, modViewZoneIdsToIgnore));\n    this._accessibleDiffViewer = derivedDisposable(this, (reader) =\u003e this._instantiationService.createInstance(readHotReloadableExport(AccessibleDiffViewer, reader), this.elements.accessibleDiffViewer, this._accessibleDiffViewerVisible, (visible, tx) =\u003e this._accessibleDiffViewerShouldBeVisible.set(visible, tx), this._options.onlyShowAccessibleDiffViewer.map((v) =\u003e !v), this._rootSizeObserver.width, this._rootSizeObserver.height, this._diffModel.map((m, r) =\u003e m?.diff.read(r)?.mappings.map((m2) =\u003e m2.lineRangeMapping)), new AccessibleDiffViewerModelFromEditors(this._editors))).recomputeInitiallyAndOnChange(this._store);\n    const visibility = this._accessibleDiffViewerVisible.map((v) =\u003e v ? \"hidden\" : \"visible\");\n    this._register(applyStyle(this.elements.modified, { visibility }));\n    this._register(applyStyle(this.elements.original, { visibility }));\n    this._createDiffEditorContributions();\n    codeEditorService.addDiffEditor(this);\n    this._gutter = derivedDisposable(this, (reader) =\u003e {\n      return this._options.shouldRenderGutterMenu.read(reader) ? this._instantiationService.createInstance(readHotReloadableExport(DiffEditorGutter, reader), this.elements.root, this._diffModel, this._editors, this._options, this._sashLayout, this._boundarySashes) : void 0;\n    });\n    this._register(recomputeInitiallyAndOnChange(this._layoutInfo));\n    derivedDisposable(this, (reader) =\u003e (\n      /** @description MovedBlocksLinesPart */\n      new (readHotReloadableExport(MovedBlocksLinesFeature, reader))(this.elements.root, this._diffModel, this._layoutInfo.map((i2) =\u003e i2.originalEditor), this._layoutInfo.map((i2) =\u003e i2.modifiedEditor), this._editors)\n    )).recomputeInitiallyAndOnChange(this._store, (value) =\u003e {\n      this._movedBlocksLinesPart.set(value, void 0);\n    });\n    this._register(Event.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition, (e) =\u003e this._handleCursorPositionChange(e, true)));\n    this._register(Event.runAndSubscribe(this._editors.original.onDidChangeCursorPosition, (e) =\u003e this._handleCursorPositionChange(e, false)));\n    const isInitializingDiff = this._diffModel.map(this, (m, reader) =\u003e {\n      if (!m) {\n        return void 0;\n      }\n      return m.diff.read(reader) === void 0 \u0026\u0026 !m.isDiffUpToDate.read(reader);\n    });\n    this._register(autorunWithStore((reader, store) =\u003e {\n      if (isInitializingDiff.read(reader) === true) {\n        const r = this._editorProgressService.show(true, 1e3);\n        store.add(toDisposable(() =\u003e r.done()));\n      }\n    }));\n    this._register(autorunWithStore((reader, store) =\u003e {\n      store.add(new (readHotReloadableExport(RevertButtonsFeature, reader))(this._editors, this._diffModel, this._options, this));\n    }));\n    this._register(autorunWithStore((reader, store) =\u003e {\n      const model = this._diffModel.read(reader);\n      if (!model) {\n        return;\n      }\n      for (const m of [model.model.original, model.model.modified]) {\n        store.add(m.onWillDispose((e) =\u003e {\n          onUnexpectedError(new BugIndicatingError(\"TextModel got disposed before DiffEditorWidget model got reset\"));\n          this.setModel(null);\n        }));\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      this._options.setModel(this._diffModel.read(reader));\n    }));\n  }\n  _createInnerEditor(instantiationService, container, options2, editorWidgetOptions) {\n    const editor2 = instantiationService.createInstance(CodeEditorWidget, container, options2, editorWidgetOptions);\n    return editor2;\n  }\n  _createDiffEditorContributions() {\n    const contributions = EditorExtensionsRegistry.getDiffEditorContributions();\n    for (const desc of contributions) {\n      try {\n        this._register(this._instantiationService.createInstance(desc.ctor, this));\n      } catch (err) {\n        onUnexpectedError(err);\n      }\n    }\n  }\n  get _targetEditor() {\n    return this._editors.modified;\n  }\n  getEditorType() {\n    return EditorType.IDiffEditor;\n  }\n  layout(dimension) {\n    this._rootSizeObserver.observe(dimension);\n  }\n  hasTextFocus() {\n    return this._editors.original.hasTextFocus() || this._editors.modified.hasTextFocus();\n  }\n  saveViewState() {\n    const originalViewState = this._editors.original.saveViewState();\n    const modifiedViewState = this._editors.modified.saveViewState();\n    return {\n      original: originalViewState,\n      modified: modifiedViewState,\n      modelState: this._diffModel.get()?.serializeState()\n    };\n  }\n  restoreViewState(s) {\n    if (s \u0026\u0026 s.original \u0026\u0026 s.modified) {\n      const diffEditorState = s;\n      this._editors.original.restoreViewState(diffEditorState.original);\n      this._editors.modified.restoreViewState(diffEditorState.modified);\n      if (diffEditorState.modelState) {\n        this._diffModel.get()?.restoreSerializedState(diffEditorState.modelState);\n      }\n    }\n  }\n  handleInitialized() {\n    this._editors.original.handleInitialized();\n    this._editors.modified.handleInitialized();\n  }\n  createViewModel(model) {\n    return this._instantiationService.createInstance(DiffEditorViewModel, model, this._options);\n  }\n  getModel() {\n    return this._diffModel.get()?.model ?? null;\n  }\n  setModel(model) {\n    const vm = !model ? null : \"model\" in model ? RefCounted.create(model).createNewRef(this) : RefCounted.create(this.createViewModel(model), this);\n    this.setDiffModel(vm);\n  }\n  setDiffModel(viewModel, tx) {\n    const currentModel = this._diffModel.get();\n    if (!viewModel \u0026\u0026 currentModel) {\n      this._accessibleDiffViewer.get().close();\n    }\n    if (this._diffModel.get() !== viewModel?.object) {\n      subtransaction(tx, (tx2) =\u003e {\n        const vm = viewModel?.object;\n        observableFromEvent.batchEventsGlobally(tx2, () =\u003e {\n          this._editors.original.setModel(vm ? vm.model.original : null);\n          this._editors.modified.setModel(vm ? vm.model.modified : null);\n        });\n        const prevValueRef = this._diffModelSrc.get()?.createNewRef(this);\n        this._diffModelSrc.set(viewModel?.createNewRef(this), tx2);\n        setTimeout(() =\u003e {\n          prevValueRef?.dispose();\n        }, 0);\n      });\n    }\n  }\n  /**\n   * @param changedOptions Only has values for top-level options that have actually changed.\n   */\n  updateOptions(changedOptions) {\n    this._options.updateOptions(changedOptions);\n  }\n  getContainerDomNode() {\n    return this._domElement;\n  }\n  getOriginalEditor() {\n    return this._editors.original;\n  }\n  getModifiedEditor() {\n    return this._editors.modified;\n  }\n  /**\n   * @deprecated Use `this.getDiffComputationResult().changes2` instead.\n   */\n  getLineChanges() {\n    const diffState = this._diffModel.get()?.diff.get();\n    if (!diffState) {\n      return null;\n    }\n    return toLineChanges(diffState);\n  }\n  revert(diff) {\n    const model = this._diffModel.get();\n    if (!model || !model.isDiffUpToDate.get()) {\n      return;\n    }\n    this._editors.modified.executeEdits(\"diffEditor\", [\n      {\n        range: diff.modified.toExclusiveRange(),\n        text: model.model.original.getValueInRange(diff.original.toExclusiveRange())\n      }\n    ]);\n  }\n  revertRangeMappings(diffs) {\n    const model = this._diffModel.get();\n    if (!model || !model.isDiffUpToDate.get()) {\n      return;\n    }\n    const changes = diffs.map((c) =\u003e ({\n      range: c.modifiedRange,\n      text: model.model.original.getValueInRange(c.originalRange)\n    }));\n    this._editors.modified.executeEdits(\"diffEditor\", changes);\n  }\n  _goTo(diff) {\n    this._editors.modified.setPosition(new Position(diff.lineRangeMapping.modified.startLineNumber, 1));\n    this._editors.modified.revealRangeInCenter(diff.lineRangeMapping.modified.toExclusiveRange());\n  }\n  goToDiff(target) {\n    const diffs = this._diffModel.get()?.diff.get()?.mappings;\n    if (!diffs || diffs.length === 0) {\n      return;\n    }\n    const curLineNumber = this._editors.modified.getPosition().lineNumber;\n    let diff;\n    if (target === \"next\") {\n      const modifiedLineCount = this._editors.modified.getModel().getLineCount();\n      if (modifiedLineCount === curLineNumber) {\n        diff = diffs[0];\n      } else {\n        diff = diffs.find((d) =\u003e d.lineRangeMapping.modified.startLineNumber \u003e curLineNumber) ?? diffs[0];\n      }\n    } else {\n      diff = findLast(diffs, (d) =\u003e d.lineRangeMapping.modified.startLineNumber \u003c curLineNumber) ?? diffs[diffs.length - 1];\n    }\n    this._goTo(diff);\n    if (diff.lineRangeMapping.modified.isEmpty) {\n      this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted, { source: \"diffEditor.goToDiff\" });\n    } else if (diff.lineRangeMapping.original.isEmpty) {\n      this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted, { source: \"diffEditor.goToDiff\" });\n    } else if (diff) {\n      this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineModified, { source: \"diffEditor.goToDiff\" });\n    }\n  }\n  revealFirstDiff() {\n    const diffModel = this._diffModel.get();\n    if (!diffModel) {\n      return;\n    }\n    this.waitForDiff().then(() =\u003e {\n      const diffs = diffModel.diff.get()?.mappings;\n      if (!diffs || diffs.length === 0) {\n        return;\n      }\n      this._goTo(diffs[0]);\n    });\n  }\n  accessibleDiffViewerNext() {\n    this._accessibleDiffViewer.get().next();\n  }\n  accessibleDiffViewerPrev() {\n    this._accessibleDiffViewer.get().prev();\n  }\n  async waitForDiff() {\n    const diffModel = this._diffModel.get();\n    if (!diffModel) {\n      return;\n    }\n    await diffModel.waitForDiff();\n  }\n  mapToOtherSide() {\n    const isModifiedFocus = this._editors.modified.hasWidgetFocus();\n    const source = isModifiedFocus ? this._editors.modified : this._editors.original;\n    const destination = isModifiedFocus ? this._editors.original : this._editors.modified;\n    let destinationSelection;\n    const sourceSelection = source.getSelection();\n    if (sourceSelection) {\n      const mappings = this._diffModel.get()?.diff.get()?.mappings.map((m) =\u003e isModifiedFocus ? m.lineRangeMapping.flip() : m.lineRangeMapping);\n      if (mappings) {\n        const newRange1 = translatePosition(sourceSelection.getStartPosition(), mappings);\n        const newRange2 = translatePosition(sourceSelection.getEndPosition(), mappings);\n        destinationSelection = Range.plusRange(newRange1, newRange2);\n      }\n    }\n    return { destination, destinationSelection };\n  }\n  switchSide() {\n    const { destination, destinationSelection } = this.mapToOtherSide();\n    destination.focus();\n    if (destinationSelection) {\n      destination.setSelection(destinationSelection);\n    }\n  }\n  exitCompareMove() {\n    const model = this._diffModel.get();\n    if (!model) {\n      return;\n    }\n    model.movedTextToCompare.set(void 0, void 0);\n  }\n  collapseAllUnchangedRegions() {\n    const unchangedRegions = this._diffModel.get()?.unchangedRegions.get();\n    if (!unchangedRegions) {\n      return;\n    }\n    transaction((tx) =\u003e {\n      for (const region of unchangedRegions) {\n        region.collapseAll(tx);\n      }\n    });\n  }\n  showAllUnchangedRegions() {\n    const unchangedRegions = this._diffModel.get()?.unchangedRegions.get();\n    if (!unchangedRegions) {\n      return;\n    }\n    transaction((tx) =\u003e {\n      for (const region of unchangedRegions) {\n        region.showAll(tx);\n      }\n    });\n  }\n  _handleCursorPositionChange(e, isModifiedEditor) {\n    if (e?.reason === 3) {\n      const diff = this._diffModel.get()?.diff.get()?.mappings.find((m) =\u003e isModifiedEditor ? m.lineRangeMapping.modified.contains(e.position.lineNumber) : m.lineRangeMapping.original.contains(e.position.lineNumber));\n      if (diff?.lineRangeMapping.modified.isEmpty) {\n        this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted, { source: \"diffEditor.cursorPositionChanged\" });\n      } else if (diff?.lineRangeMapping.original.isEmpty) {\n        this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted, { source: \"diffEditor.cursorPositionChanged\" });\n      } else if (diff) {\n        this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineModified, { source: \"diffEditor.cursorPositionChanged\" });\n      }\n    }\n  }\n};\nDiffEditorWidget = __decorate43([\n  __param38(3, IContextKeyService),\n  __param38(4, IInstantiationService),\n  __param38(5, ICodeEditorService),\n  __param38(6, IAccessibilitySignalService),\n  __param38(7, IEditorProgressService)\n], DiffEditorWidget);\nfunction toLineChanges(state) {\n  return state.mappings.map((x) =\u003e {\n    const m = x.lineRangeMapping;\n    let originalStartLineNumber;\n    let originalEndLineNumber;\n    let modifiedStartLineNumber;\n    let modifiedEndLineNumber;\n    let innerChanges = m.innerChanges;\n    if (m.original.isEmpty) {\n      originalStartLineNumber = m.original.startLineNumber - 1;\n      originalEndLineNumber = 0;\n      innerChanges = void 0;\n    } else {\n      originalStartLineNumber = m.original.startLineNumber;\n      originalEndLineNumber = m.original.endLineNumberExclusive - 1;\n    }\n    if (m.modified.isEmpty) {\n      modifiedStartLineNumber = m.modified.startLineNumber - 1;\n      modifiedEndLineNumber = 0;\n      innerChanges = void 0;\n    } else {\n      modifiedStartLineNumber = m.modified.startLineNumber;\n      modifiedEndLineNumber = m.modified.endLineNumberExclusive - 1;\n    }\n    return {\n      originalStartLineNumber,\n      originalEndLineNumber,\n      modifiedStartLineNumber,\n      modifiedEndLineNumber,\n      charChanges: innerChanges?.map((m2) =\u003e ({\n        originalStartLineNumber: m2.originalRange.startLineNumber,\n        originalStartColumn: m2.originalRange.startColumn,\n        originalEndLineNumber: m2.originalRange.endLineNumber,\n        originalEndColumn: m2.originalRange.endColumn,\n        modifiedStartLineNumber: m2.modifiedRange.startLineNumber,\n        modifiedStartColumn: m2.modifiedRange.startColumn,\n        modifiedEndLineNumber: m2.modifiedRange.endLineNumber,\n        modifiedEndColumn: m2.modifiedRange.endColumn\n      }))\n    };\n  });\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/commands.js\ninit_editorContextKeys();\ninit_nls();\ninit_actions2();\ninit_configuration();\ninit_contextkey();\nvar ToggleCollapseUnchangedRegions = class extends Action2 {\n  constructor() {\n    super({\n      id: \"diffEditor.toggleCollapseUnchangedRegions\",\n      title: localize2(82, \"Toggle Collapse Unchanged Regions\"),\n      icon: Codicon.map,\n      toggled: ContextKeyExpr.has(\"config.diffEditor.hideUnchangedRegions.enabled\"),\n      precondition: ContextKeyExpr.has(\"isInDiffEditor\"),\n      menu: {\n        when: ContextKeyExpr.has(\"isInDiffEditor\"),\n        id: MenuId.EditorTitle,\n        order: 22,\n        group: \"navigation\"\n      }\n    });\n  }\n  run(accessor, ...args) {\n    const configurationService = accessor.get(IConfigurationService);\n    const newValue = !configurationService.getValue(\"diffEditor.hideUnchangedRegions.enabled\");\n    configurationService.updateValue(\"diffEditor.hideUnchangedRegions.enabled\", newValue);\n  }\n};\nvar ToggleShowMovedCodeBlocks = class extends Action2 {\n  constructor() {\n    super({\n      id: \"diffEditor.toggleShowMovedCodeBlocks\",\n      title: localize2(83, \"Toggle Show Moved Code Blocks\"),\n      precondition: ContextKeyExpr.has(\"isInDiffEditor\")\n    });\n  }\n  run(accessor, ...args) {\n    const configurationService = accessor.get(IConfigurationService);\n    const newValue = !configurationService.getValue(\"diffEditor.experimental.showMoves\");\n    configurationService.updateValue(\"diffEditor.experimental.showMoves\", newValue);\n  }\n};\nvar ToggleUseInlineViewWhenSpaceIsLimited = class extends Action2 {\n  constructor() {\n    super({\n      id: \"diffEditor.toggleUseInlineViewWhenSpaceIsLimited\",\n      title: localize2(84, \"Toggle Use Inline View When Space Is Limited\"),\n      precondition: ContextKeyExpr.has(\"isInDiffEditor\")\n    });\n  }\n  run(accessor, ...args) {\n    const configurationService = accessor.get(IConfigurationService);\n    const newValue = !configurationService.getValue(\"diffEditor.useInlineViewWhenSpaceIsLimited\");\n    configurationService.updateValue(\"diffEditor.useInlineViewWhenSpaceIsLimited\", newValue);\n  }\n};\nvar diffEditorCategory = localize2(85, \"Diff Editor\");\nvar SwitchSide = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"diffEditor.switchSide\",\n      title: localize2(86, \"Switch Side\"),\n      icon: Codicon.arrowSwap,\n      precondition: ContextKeyExpr.has(\"isInDiffEditor\"),\n      f1: true,\n      category: diffEditorCategory\n    });\n  }\n  runEditorCommand(accessor, editor2, arg) {\n    const diffEditor = findFocusedDiffEditor(accessor);\n    if (diffEditor instanceof DiffEditorWidget) {\n      if (arg \u0026\u0026 arg.dryRun) {\n        return { destinationSelection: diffEditor.mapToOtherSide().destinationSelection };\n      } else {\n        diffEditor.switchSide();\n      }\n    }\n    return void 0;\n  }\n};\nvar ExitCompareMove = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"diffEditor.exitCompareMove\",\n      title: localize2(87, \"Exit Compare Move\"),\n      icon: Codicon.close,\n      precondition: EditorContextKeys.comparingMovedCode,\n      f1: false,\n      category: diffEditorCategory,\n      keybinding: {\n        weight: 1e4,\n        primary: 9\n      }\n    });\n  }\n  runEditorCommand(accessor, editor2, ...args) {\n    const diffEditor = findFocusedDiffEditor(accessor);\n    if (diffEditor instanceof DiffEditorWidget) {\n      diffEditor.exitCompareMove();\n    }\n  }\n};\nvar CollapseAllUnchangedRegions = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"diffEditor.collapseAllUnchangedRegions\",\n      title: localize2(88, \"Collapse All Unchanged Regions\"),\n      icon: Codicon.fold,\n      precondition: ContextKeyExpr.has(\"isInDiffEditor\"),\n      f1: true,\n      category: diffEditorCategory\n    });\n  }\n  runEditorCommand(accessor, editor2, ...args) {\n    const diffEditor = findFocusedDiffEditor(accessor);\n    if (diffEditor instanceof DiffEditorWidget) {\n      diffEditor.collapseAllUnchangedRegions();\n    }\n  }\n};\nvar ShowAllUnchangedRegions = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"diffEditor.showAllUnchangedRegions\",\n      title: localize2(89, \"Show All Unchanged Regions\"),\n      icon: Codicon.unfold,\n      precondition: ContextKeyExpr.has(\"isInDiffEditor\"),\n      f1: true,\n      category: diffEditorCategory\n    });\n  }\n  runEditorCommand(accessor, editor2, ...args) {\n    const diffEditor = findFocusedDiffEditor(accessor);\n    if (diffEditor instanceof DiffEditorWidget) {\n      diffEditor.showAllUnchangedRegions();\n    }\n  }\n};\nvar RevertHunkOrSelection = class extends Action2 {\n  constructor() {\n    super({\n      id: \"diffEditor.revert\",\n      title: localize2(90, \"Revert\"),\n      f1: false,\n      category: diffEditorCategory\n    });\n  }\n  run(accessor, arg) {\n    const diffEditor = findDiffEditor(accessor, arg.originalUri, arg.modifiedUri);\n    if (diffEditor instanceof DiffEditorWidget) {\n      diffEditor.revertRangeMappings(arg.mapping.innerChanges ?? []);\n    }\n    return void 0;\n  }\n};\nvar accessibleDiffViewerCategory = localize2(91, \"Accessible Diff Viewer\");\nvar AccessibleDiffViewerNext = class _AccessibleDiffViewerNext extends Action2 {\n  static {\n    this.id = \"editor.action.accessibleDiffViewer.next\";\n  }\n  constructor() {\n    super({\n      id: _AccessibleDiffViewerNext.id,\n      title: localize2(92, \"Go to Next Difference\"),\n      category: accessibleDiffViewerCategory,\n      precondition: ContextKeyExpr.has(\"isInDiffEditor\"),\n      keybinding: {\n        primary: 65,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      f1: true\n    });\n  }\n  run(accessor) {\n    const diffEditor = findFocusedDiffEditor(accessor);\n    diffEditor?.accessibleDiffViewerNext();\n  }\n};\nvar AccessibleDiffViewerPrev = class _AccessibleDiffViewerPrev extends Action2 {\n  static {\n    this.id = \"editor.action.accessibleDiffViewer.prev\";\n  }\n  constructor() {\n    super({\n      id: _AccessibleDiffViewerPrev.id,\n      title: localize2(93, \"Go to Previous Difference\"),\n      category: accessibleDiffViewerCategory,\n      precondition: ContextKeyExpr.has(\"isInDiffEditor\"),\n      keybinding: {\n        primary: 1024 | 65,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      f1: true\n    });\n  }\n  run(accessor) {\n    const diffEditor = findFocusedDiffEditor(accessor);\n    diffEditor?.accessibleDiffViewerPrev();\n  }\n};\nfunction findDiffEditor(accessor, originalUri, modifiedUri) {\n  const codeEditorService = accessor.get(ICodeEditorService);\n  const diffEditors = codeEditorService.listDiffEditors();\n  return diffEditors.find((diffEditor) =\u003e {\n    const modified = diffEditor.getModifiedEditor();\n    const original = diffEditor.getOriginalEditor();\n    return modified \u0026\u0026 modified.getModel()?.uri.toString() === modifiedUri.toString() \u0026\u0026 original \u0026\u0026 original.getModel()?.uri.toString() === originalUri.toString();\n  }) || null;\n}\nfunction findFocusedDiffEditor(accessor) {\n  const codeEditorService = accessor.get(ICodeEditorService);\n  const diffEditors = codeEditorService.listDiffEditors();\n  const activeElement = getActiveElement();\n  if (activeElement) {\n    for (const d of diffEditors) {\n      const container = d.getContainerDomNode();\n      if (container.contains(activeElement)) {\n        return d;\n      }\n    }\n  }\n  return null;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js\ninit_editorContextKeys();\ninit_nls();\ninit_actions2();\ninit_commands();\ninit_contextkey();\nregisterAction2(ToggleCollapseUnchangedRegions);\nregisterAction2(ToggleShowMovedCodeBlocks);\nregisterAction2(ToggleUseInlineViewWhenSpaceIsLimited);\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n  command: {\n    id: new ToggleUseInlineViewWhenSpaceIsLimited().desc.id,\n    title: localize(116, \"Use Inline View When Space Is Limited\"),\n    toggled: ContextKeyExpr.has(\"config.diffEditor.useInlineViewWhenSpaceIsLimited\"),\n    precondition: ContextKeyExpr.has(\"isInDiffEditor\")\n  },\n  order: 11,\n  group: \"1_diff\",\n  when: ContextKeyExpr.and(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached, ContextKeyExpr.has(\"isInDiffEditor\"))\n});\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n  command: {\n    id: new ToggleShowMovedCodeBlocks().desc.id,\n    title: localize(117, \"Show Moved Code Blocks\"),\n    icon: Codicon.move,\n    toggled: ContextKeyEqualsExpr.create(\"config.diffEditor.experimental.showMoves\", true),\n    precondition: ContextKeyExpr.has(\"isInDiffEditor\")\n  },\n  order: 10,\n  group: \"1_diff\",\n  when: ContextKeyExpr.has(\"isInDiffEditor\")\n});\nregisterAction2(RevertHunkOrSelection);\nfor (const ctx of [\n  { icon: Codicon.arrowRight, key: EditorContextKeys.diffEditorInlineMode.toNegated() },\n  { icon: Codicon.discard, key: EditorContextKeys.diffEditorInlineMode }\n]) {\n  MenuRegistry.appendMenuItem(MenuId.DiffEditorHunkToolbar, {\n    command: {\n      id: new RevertHunkOrSelection().desc.id,\n      title: localize(118, \"Revert Block\"),\n      icon: ctx.icon\n    },\n    when: ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable, ctx.key),\n    order: 5,\n    group: \"primary\"\n  });\n  MenuRegistry.appendMenuItem(MenuId.DiffEditorSelectionToolbar, {\n    command: {\n      id: new RevertHunkOrSelection().desc.id,\n      title: localize(119, \"Revert Selection\"),\n      icon: ctx.icon\n    },\n    when: ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable, ctx.key),\n    order: 5,\n    group: \"primary\"\n  });\n}\nregisterAction2(SwitchSide);\nregisterAction2(ExitCompareMove);\nregisterAction2(CollapseAllUnchangedRegions);\nregisterAction2(ShowAllUnchangedRegions);\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n  command: {\n    id: AccessibleDiffViewerNext.id,\n    title: localize(120, \"Open Accessible Diff Viewer\"),\n    precondition: ContextKeyExpr.has(\"isInDiffEditor\")\n  },\n  order: 10,\n  group: \"2_diff\",\n  when: ContextKeyExpr.and(EditorContextKeys.accessibleDiffViewerVisible.negate(), ContextKeyExpr.has(\"isInDiffEditor\"))\n});\nCommandsRegistry.registerCommandAlias(\"editor.action.diffReview.next\", AccessibleDiffViewerNext.id);\nregisterAction2(AccessibleDiffViewerNext);\nCommandsRegistry.registerCommandAlias(\"editor.action.diffReview.prev\", AccessibleDiffViewerPrev.id);\nregisterAction2(AccessibleDiffViewerPrev);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js\ninit_htmlContent();\ninit_keyCodes();\ninit_editorExtensions();\ninit_selection();\ninit_editorContextKeys();\ninit_nls();\ninit_contextkey();\nvar __decorate44 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param39 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SelectionAnchorController_1;\nvar SelectionAnchorSet = new RawContextKey(\"selectionAnchorSet\", false);\nvar SelectionAnchorController = class SelectionAnchorController2 {\n  static {\n    SelectionAnchorController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.selectionAnchorController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(SelectionAnchorController_1.ID);\n  }\n  constructor(editor2, contextKeyService) {\n    this.editor = editor2;\n    this.selectionAnchorSetContextKey = SelectionAnchorSet.bindTo(contextKeyService);\n    this.modelChangeListener = editor2.onDidChangeModel(() =\u003e this.selectionAnchorSetContextKey.reset());\n  }\n  setSelectionAnchor() {\n    if (this.editor.hasModel()) {\n      const position = this.editor.getPosition();\n      this.editor.changeDecorations((accessor) =\u003e {\n        if (this.decorationId) {\n          accessor.removeDecoration(this.decorationId);\n        }\n        this.decorationId = accessor.addDecoration(Selection.fromPositions(position, position), {\n          description: \"selection-anchor\",\n          stickiness: 1,\n          hoverMessage: new MarkdownString().appendText(localize(791, \"Selection Anchor\")),\n          className: \"selection-anchor\"\n        });\n      });\n      this.selectionAnchorSetContextKey.set(!!this.decorationId);\n      alert(localize(792, \"Anchor set at {0}:{1}\", position.lineNumber, position.column));\n    }\n  }\n  goToSelectionAnchor() {\n    if (this.editor.hasModel() \u0026\u0026 this.decorationId) {\n      const anchorPosition = this.editor.getModel().getDecorationRange(this.decorationId);\n      if (anchorPosition) {\n        this.editor.setPosition(anchorPosition.getStartPosition());\n      }\n    }\n  }\n  selectFromAnchorToCursor() {\n    if (this.editor.hasModel() \u0026\u0026 this.decorationId) {\n      const start = this.editor.getModel().getDecorationRange(this.decorationId);\n      if (start) {\n        const end = this.editor.getPosition();\n        this.editor.setSelection(Selection.fromPositions(start.getStartPosition(), end));\n        this.cancelSelectionAnchor();\n      }\n    }\n  }\n  cancelSelectionAnchor() {\n    if (this.decorationId) {\n      const decorationId = this.decorationId;\n      this.editor.changeDecorations((accessor) =\u003e {\n        accessor.removeDecoration(decorationId);\n        this.decorationId = void 0;\n      });\n      this.selectionAnchorSetContextKey.set(false);\n    }\n  }\n  dispose() {\n    this.cancelSelectionAnchor();\n    this.modelChangeListener.dispose();\n  }\n};\nSelectionAnchorController = SelectionAnchorController_1 = __decorate44([\n  __param39(1, IContextKeyService)\n], SelectionAnchorController);\nvar SetSelectionAnchor = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.setSelectionAnchor\",\n      label: localize2(793, \"Set Selection Anchor\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 32\n          /* KeyCode.KeyB */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  async run(_accessor, editor2) {\n    SelectionAnchorController.get(editor2)?.setSelectionAnchor();\n  }\n};\nvar GoToSelectionAnchor = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.goToSelectionAnchor\",\n      label: localize2(794, \"Go to Selection Anchor\"),\n      precondition: SelectionAnchorSet\n    });\n  }\n  async run(_accessor, editor2) {\n    SelectionAnchorController.get(editor2)?.goToSelectionAnchor();\n  }\n};\nvar SelectFromAnchorToCursor = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.selectFromAnchorToCursor\",\n      label: localize2(795, \"Select from Anchor to Cursor\"),\n      precondition: SelectionAnchorSet,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 41\n          /* KeyCode.KeyK */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  async run(_accessor, editor2) {\n    SelectionAnchorController.get(editor2)?.selectFromAnchorToCursor();\n  }\n};\nvar CancelSelectionAnchor = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.cancelSelectionAnchor\",\n      label: localize2(796, \"Cancel Selection Anchor\"),\n      precondition: SelectionAnchorSet,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 9,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  async run(_accessor, editor2) {\n    SelectionAnchorController.get(editor2)?.cancelSelectionAnchor();\n  }\n};\nregisterEditorContribution(\n  SelectionAnchorController.ID,\n  SelectionAnchorController,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\nregisterEditorAction(SetSelectionAnchor);\nregisterEditorAction(GoToSelectionAnchor);\nregisterEditorAction(SelectFromAnchorToCursor);\nregisterEditorAction(CancelSelectionAnchor);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js\ninit_async();\ninit_lifecycle();\ninit_editorExtensions();\ninit_position();\ninit_range();\ninit_selection();\ninit_editorContextKeys();\ninit_model2();\ninit_textModel();\ninit_nls();\ninit_actions2();\ninit_colorRegistry();\ninit_themeService();\nvar overviewRulerBracketMatchForeground = registerColor(\"editorOverviewRuler.bracketMatchForeground\", \"#A0A0A0\", localize(797, \"Overview ruler marker color for matching brackets.\"));\nvar JumpToBracketAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.jumpToBracket\",\n      label: localize2(799, \"Go to Bracket\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 1024 | 93,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2) {\n    BracketMatchingController.get(editor2)?.jumpToBracket();\n  }\n};\nvar SelectToBracketAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.selectToBracket\",\n      label: localize2(800, \"Select to Bracket\"),\n      precondition: void 0,\n      metadata: {\n        description: localize2(801, \"Select the text inside and including the brackets or curly braces\"),\n        args: [{\n          name: \"args\",\n          schema: {\n            type: \"object\",\n            properties: {\n              \"selectBrackets\": {\n                type: \"boolean\",\n                default: true\n              }\n            }\n          }\n        }]\n      }\n    });\n  }\n  run(accessor, editor2, args) {\n    let selectBrackets = true;\n    if (args \u0026\u0026 args.selectBrackets === false) {\n      selectBrackets = false;\n    }\n    BracketMatchingController.get(editor2)?.selectToBracket(selectBrackets);\n  }\n};\nvar RemoveBracketsAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.removeBrackets\",\n      label: localize2(802, \"Remove Brackets\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 512 | 1,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2) {\n    BracketMatchingController.get(editor2)?.removeBrackets(this.id);\n  }\n};\nvar BracketsData = class {\n  constructor(position, brackets, options2) {\n    this.position = position;\n    this.brackets = brackets;\n    this.options = options2;\n  }\n};\nvar BracketMatchingController = class _BracketMatchingController extends Disposable {\n  static {\n    this.ID = \"editor.contrib.bracketMatchingController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(_BracketMatchingController.ID);\n  }\n  constructor(editor2) {\n    super();\n    this._editor = editor2;\n    this._lastBracketsData = [];\n    this._lastVersionId = 0;\n    this._decorations = this._editor.createDecorationsCollection();\n    this._updateBracketsSoon = this._register(new RunOnceScheduler(() =\u003e this._updateBrackets(), 50));\n    this._matchBrackets = this._editor.getOption(\n      80\n      /* EditorOption.matchBrackets */\n    );\n    this._updateBracketsSoon.schedule();\n    this._register(editor2.onDidChangeCursorPosition((e) =\u003e {\n      if (this._matchBrackets === \"never\") {\n        return;\n      }\n      this._updateBracketsSoon.schedule();\n    }));\n    this._register(editor2.onDidChangeModelContent((e) =\u003e {\n      this._updateBracketsSoon.schedule();\n    }));\n    this._register(editor2.onDidChangeModel((e) =\u003e {\n      this._lastBracketsData = [];\n      this._updateBracketsSoon.schedule();\n    }));\n    this._register(editor2.onDidChangeModelLanguageConfiguration((e) =\u003e {\n      this._lastBracketsData = [];\n      this._updateBracketsSoon.schedule();\n    }));\n    this._register(editor2.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        80\n        /* EditorOption.matchBrackets */\n      )) {\n        this._matchBrackets = this._editor.getOption(\n          80\n          /* EditorOption.matchBrackets */\n        );\n        this._decorations.clear();\n        this._lastBracketsData = [];\n        this._lastVersionId = 0;\n        this._updateBracketsSoon.schedule();\n      }\n    }));\n    this._register(editor2.onDidBlurEditorWidget(() =\u003e {\n      this._updateBracketsSoon.schedule();\n    }));\n    this._register(editor2.onDidFocusEditorWidget(() =\u003e {\n      this._updateBracketsSoon.schedule();\n    }));\n  }\n  jumpToBracket() {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    const newSelections = this._editor.getSelections().map((selection) =\u003e {\n      const position = selection.getStartPosition();\n      const brackets = model.bracketPairs.matchBracket(position);\n      let newCursorPosition = null;\n      if (brackets) {\n        if (brackets[0].containsPosition(position) \u0026\u0026 !brackets[1].containsPosition(position)) {\n          newCursorPosition = brackets[1].getStartPosition();\n        } else if (brackets[1].containsPosition(position)) {\n          newCursorPosition = brackets[0].getStartPosition();\n        }\n      } else {\n        const enclosingBrackets = model.bracketPairs.findEnclosingBrackets(position);\n        if (enclosingBrackets) {\n          newCursorPosition = enclosingBrackets[1].getStartPosition();\n        } else {\n          const nextBracket = model.bracketPairs.findNextBracket(position);\n          if (nextBracket \u0026\u0026 nextBracket.range) {\n            newCursorPosition = nextBracket.range.getStartPosition();\n          }\n        }\n      }\n      if (newCursorPosition) {\n        return new Selection(newCursorPosition.lineNumber, newCursorPosition.column, newCursorPosition.lineNumber, newCursorPosition.column);\n      }\n      return new Selection(position.lineNumber, position.column, position.lineNumber, position.column);\n    });\n    this._editor.setSelections(newSelections);\n    this._editor.revealRange(newSelections[0]);\n  }\n  selectToBracket(selectBrackets) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    const newSelections = [];\n    this._editor.getSelections().forEach((selection) =\u003e {\n      const position = selection.getStartPosition();\n      let brackets = model.bracketPairs.matchBracket(position);\n      if (!brackets) {\n        brackets = model.bracketPairs.findEnclosingBrackets(position);\n        if (!brackets) {\n          const nextBracket = model.bracketPairs.findNextBracket(position);\n          if (nextBracket \u0026\u0026 nextBracket.range) {\n            brackets = model.bracketPairs.matchBracket(nextBracket.range.getStartPosition());\n          }\n        }\n      }\n      let selectFrom = null;\n      let selectTo = null;\n      if (brackets) {\n        brackets.sort(Range.compareRangesUsingStarts);\n        const [open, close] = brackets;\n        selectFrom = selectBrackets ? open.getStartPosition() : open.getEndPosition();\n        selectTo = selectBrackets ? close.getEndPosition() : close.getStartPosition();\n        if (close.containsPosition(position)) {\n          const tmp = selectFrom;\n          selectFrom = selectTo;\n          selectTo = tmp;\n        }\n      }\n      if (selectFrom \u0026\u0026 selectTo) {\n        newSelections.push(new Selection(selectFrom.lineNumber, selectFrom.column, selectTo.lineNumber, selectTo.column));\n      }\n    });\n    if (newSelections.length \u003e 0) {\n      this._editor.setSelections(newSelections);\n      this._editor.revealRange(newSelections[0]);\n    }\n  }\n  removeBrackets(editSource) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    this._editor.getSelections().forEach((selection) =\u003e {\n      const position = selection.getPosition();\n      let brackets = model.bracketPairs.matchBracket(position);\n      if (!brackets) {\n        brackets = model.bracketPairs.findEnclosingBrackets(position);\n      }\n      if (brackets) {\n        this._editor.pushUndoStop();\n        this._editor.executeEdits(editSource, [\n          { range: brackets[0], text: \"\" },\n          { range: brackets[1], text: \"\" }\n        ]);\n        this._editor.pushUndoStop();\n      }\n    });\n  }\n  static {\n    this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER = ModelDecorationOptions.register({\n      description: \"bracket-match-overview\",\n      stickiness: 1,\n      className: \"bracket-match\",\n      overviewRuler: {\n        color: themeColorFromId(overviewRulerBracketMatchForeground),\n        position: OverviewRulerLane.Center\n      }\n    });\n  }\n  static {\n    this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER = ModelDecorationOptions.register({\n      description: \"bracket-match-no-overview\",\n      stickiness: 1,\n      className: \"bracket-match\"\n    });\n  }\n  _updateBrackets() {\n    if (this._matchBrackets === \"never\") {\n      return;\n    }\n    this._recomputeBrackets();\n    const newDecorations = [];\n    let newDecorationsLen = 0;\n    for (const bracketData of this._lastBracketsData) {\n      const brackets = bracketData.brackets;\n      if (brackets) {\n        newDecorations[newDecorationsLen++] = { range: brackets[0], options: bracketData.options };\n        newDecorations[newDecorationsLen++] = { range: brackets[1], options: bracketData.options };\n      }\n    }\n    this._decorations.set(newDecorations);\n  }\n  _recomputeBrackets() {\n    if (!this._editor.hasModel() || !this._editor.hasWidgetFocus()) {\n      this._lastBracketsData = [];\n      this._lastVersionId = 0;\n      return;\n    }\n    const selections = this._editor.getSelections();\n    if (selections.length \u003e 100) {\n      this._lastBracketsData = [];\n      this._lastVersionId = 0;\n      return;\n    }\n    const model = this._editor.getModel();\n    const versionId = model.getVersionId();\n    let previousData = [];\n    if (this._lastVersionId === versionId) {\n      previousData = this._lastBracketsData;\n    }\n    const positions = [];\n    let positionsLen = 0;\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      if (selection.isEmpty()) {\n        positions[positionsLen++] = selection.getStartPosition();\n      }\n    }\n    if (positions.length \u003e 1) {\n      positions.sort(Position.compare);\n    }\n    const newData = [];\n    let newDataLen = 0;\n    let previousIndex = 0;\n    const previousLen = previousData.length;\n    for (let i2 = 0, len = positions.length; i2 \u003c len; i2++) {\n      const position = positions[i2];\n      while (previousIndex \u003c previousLen \u0026\u0026 previousData[previousIndex].position.isBefore(position)) {\n        previousIndex++;\n      }\n      if (previousIndex \u003c previousLen \u0026\u0026 previousData[previousIndex].position.equals(position)) {\n        newData[newDataLen++] = previousData[previousIndex];\n      } else {\n        let brackets = model.bracketPairs.matchBracket(\n          position,\n          20\n          /* give at most 20ms to compute */\n        );\n        let options2 = _BracketMatchingController._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;\n        if (!brackets \u0026\u0026 this._matchBrackets === \"always\") {\n          brackets = model.bracketPairs.findEnclosingBrackets(\n            position,\n            20\n            /* give at most 20ms to compute */\n          );\n          options2 = _BracketMatchingController._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER;\n        }\n        newData[newDataLen++] = new BracketsData(position, brackets, options2);\n      }\n    }\n    this._lastBracketsData = newData;\n    this._lastVersionId = versionId;\n  }\n};\nregisterEditorContribution(\n  BracketMatchingController.ID,\n  BracketMatchingController,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nregisterEditorAction(SelectToBracketAction);\nregisterEditorAction(JumpToBracketAction);\nregisterEditorAction(RemoveBracketsAction);\nMenuRegistry.appendMenuItem(MenuId.MenubarGoMenu, {\n  group: \"5_infile_nav\",\n  command: {\n    id: \"editor.action.jumpToBracket\",\n    title: localize(798, \"Go to \u0026\u0026Bracket\")\n  },\n  order: 2\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js\ninit_editorExtensions();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/caretOperations/browser/moveCaretCommand.js\ninit_range();\ninit_selection();\nvar MoveCaretCommand = class {\n  constructor(selection, isMovingLeft) {\n    this._selection = selection;\n    this._isMovingLeft = isMovingLeft;\n  }\n  getEditOperations(model, builder) {\n    if (this._selection.startLineNumber !== this._selection.endLineNumber || this._selection.isEmpty()) {\n      return;\n    }\n    const lineNumber = this._selection.startLineNumber;\n    const startColumn = this._selection.startColumn;\n    const endColumn = this._selection.endColumn;\n    if (this._isMovingLeft \u0026\u0026 startColumn === 1) {\n      return;\n    }\n    if (!this._isMovingLeft \u0026\u0026 endColumn === model.getLineMaxColumn(lineNumber)) {\n      return;\n    }\n    if (this._isMovingLeft) {\n      const rangeBefore = new Range(lineNumber, startColumn - 1, lineNumber, startColumn);\n      const charBefore = model.getValueInRange(rangeBefore);\n      builder.addEditOperation(rangeBefore, null);\n      builder.addEditOperation(new Range(lineNumber, endColumn, lineNumber, endColumn), charBefore);\n    } else {\n      const rangeAfter = new Range(lineNumber, endColumn, lineNumber, endColumn + 1);\n      const charAfter = model.getValueInRange(rangeAfter);\n      builder.addEditOperation(rangeAfter, null);\n      builder.addEditOperation(new Range(lineNumber, startColumn, lineNumber, startColumn), charAfter);\n    }\n  }\n  computeCursorState(model, helper) {\n    if (this._isMovingLeft) {\n      return new Selection(this._selection.startLineNumber, this._selection.startColumn - 1, this._selection.endLineNumber, this._selection.endColumn - 1);\n    } else {\n      return new Selection(this._selection.startLineNumber, this._selection.startColumn + 1, this._selection.endLineNumber, this._selection.endColumn + 1);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js\ninit_nls();\nvar MoveCaretAction = class extends EditorAction {\n  constructor(left, opts) {\n    super(opts);\n    this.left = left;\n  }\n  run(accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const commands = [];\n    const selections = editor2.getSelections();\n    for (const selection of selections) {\n      commands.push(new MoveCaretCommand(selection, this.left));\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nvar MoveCaretLeftAction = class extends MoveCaretAction {\n  constructor() {\n    super(true, {\n      id: \"editor.action.moveCarretLeftAction\",\n      label: localize2(803, \"Move Selected Text Left\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n};\nvar MoveCaretRightAction = class extends MoveCaretAction {\n  constructor() {\n    super(false, {\n      id: \"editor.action.moveCarretRightAction\",\n      label: localize2(804, \"Move Selected Text Right\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n};\nregisterEditorAction(MoveCaretLeftAction);\nregisterEditorAction(MoveCaretRightAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/caretOperations/browser/transpose.js\ninit_editorExtensions();\ninit_range();\ninit_editorContextKeys();\ninit_nls();\nvar TransposeLettersAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.transposeLetters\",\n      label: localize2(805, \"Transpose Letters\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: {\n          primary: 256 | 50\n          /* KeyCode.KeyT */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const model = editor2.getModel();\n    const commands = [];\n    const selections = editor2.getSelections();\n    for (const selection of selections) {\n      if (!selection.isEmpty()) {\n        continue;\n      }\n      const lineNumber = selection.startLineNumber;\n      const column = selection.startColumn;\n      const lastColumn = model.getLineMaxColumn(lineNumber);\n      if (lineNumber === 1 \u0026\u0026 (column === 1 || column === 2 \u0026\u0026 lastColumn === 2)) {\n        continue;\n      }\n      const endPosition = column === lastColumn ? selection.getPosition() : MoveOperations.rightPosition(model, selection.getPosition().lineNumber, selection.getPosition().column);\n      const middlePosition = MoveOperations.leftPosition(model, endPosition);\n      const beginPosition = MoveOperations.leftPosition(model, middlePosition);\n      const leftChar = model.getValueInRange(Range.fromPositions(beginPosition, middlePosition));\n      const rightChar = model.getValueInRange(Range.fromPositions(middlePosition, endPosition));\n      const replaceRange = Range.fromPositions(beginPosition, endPosition);\n      commands.push(new ReplaceCommand(replaceRange, rightChar + leftChar));\n    }\n    if (commands.length \u003e 0) {\n      editor2.pushUndoStop();\n      editor2.executeCommands(this.id, commands);\n      editor2.pushUndoStop();\n    }\n  }\n};\nregisterEditorAction(TransposeLettersAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/clipboard/browser/clipboard.js\ninit_browser();\ninit_dom();\ninit_platform();\ninit_stopwatch();\ninit_nls();\ninit_actions2();\ninit_contextkey();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/product/common/productService.js\ninit_instantiation();\nvar IProductService = createDecorator(\"productService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/clipboard/browser/clipboard.js\ninit_telemetry();\ninit_editorExtensions();\ninit_codeEditorService();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js\ninit_dom();\ninit_arrays();\ninit_async();\ninit_cancellation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/dataTransfer.js\ninit_arrays();\ninit_iterator();\ninit_uuid();\nfunction createStringDataTransferItem(stringOrPromise, id) {\n  return {\n    id,\n    asString: async () =\u003e stringOrPromise,\n    asFile: () =\u003e void 0,\n    value: typeof stringOrPromise === \"string\" ? stringOrPromise : void 0\n  };\n}\nfunction createFileDataTransferItem(fileName, uri, data, id) {\n  const file = { id: generateUuid(), name: fileName, uri, data };\n  return {\n    id,\n    asString: async () =\u003e \"\",\n    asFile: () =\u003e file,\n    value: void 0\n  };\n}\nvar VSDataTransfer = class {\n  constructor() {\n    this._entries = /* @__PURE__ */ new Map();\n  }\n  get size() {\n    let size2 = 0;\n    for (const _ of this._entries) {\n      size2++;\n    }\n    return size2;\n  }\n  has(mimeType) {\n    return this._entries.has(this.toKey(mimeType));\n  }\n  matches(pattern) {\n    const mimes = [...this._entries.keys()];\n    if (Iterable.some(this, ([_, item]) =\u003e item.asFile())) {\n      mimes.push(\"files\");\n    }\n    return matchesMimeType_normalized(normalizeMimeType(pattern), mimes);\n  }\n  get(mimeType) {\n    return this._entries.get(this.toKey(mimeType))?.[0];\n  }\n  /**\n   * Add a new entry to this data transfer.\n   *\n   * This does not replace existing entries for `mimeType`.\n   */\n  append(mimeType, value) {\n    const existing = this._entries.get(mimeType);\n    if (existing) {\n      existing.push(value);\n    } else {\n      this._entries.set(this.toKey(mimeType), [value]);\n    }\n  }\n  /**\n   * Set the entry for a given mime type.\n   *\n   * This replaces all existing entries for `mimeType`.\n   */\n  replace(mimeType, value) {\n    this._entries.set(this.toKey(mimeType), [value]);\n  }\n  /**\n   * Remove all entries for `mimeType`.\n   */\n  delete(mimeType) {\n    this._entries.delete(this.toKey(mimeType));\n  }\n  /**\n   * Iterate over all `[mime, item]` pairs in this data transfer.\n   *\n   * There may be multiple entries for each mime type.\n   */\n  *[Symbol.iterator]() {\n    for (const [mine, items] of this._entries) {\n      for (const item of items) {\n        yield [mine, item];\n      }\n    }\n  }\n  toKey(mimeType) {\n    return normalizeMimeType(mimeType);\n  }\n};\nfunction normalizeMimeType(mimeType) {\n  return mimeType.toLowerCase();\n}\nfunction matchesMimeType(pattern, mimeTypes) {\n  return matchesMimeType_normalized(normalizeMimeType(pattern), mimeTypes.map(normalizeMimeType));\n}\nfunction matchesMimeType_normalized(normalizedPattern, normalizedMimeTypes) {\n  if (normalizedPattern === \"*/*\") {\n    return normalizedMimeTypes.length \u003e 0;\n  }\n  if (normalizedMimeTypes.includes(normalizedPattern)) {\n    return true;\n  }\n  const wildcard = normalizedPattern.match(/^([a-z]+)\\/([a-z]+|\\*)$/i);\n  if (!wildcard) {\n    return false;\n  }\n  const [_, type, subtype] = wildcard;\n  if (subtype === \"*\") {\n    return normalizedMimeTypes.some((mime) =\u003e mime.startsWith(type + \"/\"));\n  }\n  return false;\n}\nvar UriList = Object.freeze({\n  // http://amundsen.com/hypermedia/urilist/\n  create: (entries2) =\u003e {\n    return distinct(entries2.map((x) =\u003e x.toString())).join(\"\\r\\n\");\n  },\n  split: (str) =\u003e {\n    return str.split(\"\\r\\n\");\n  },\n  parse: (str) =\u003e {\n    return UriList.split(str).filter((value) =\u003e !value.startsWith(\"#\"));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js\ninit_errors();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/hierarchicalKind.js\nvar HierarchicalKind = class _HierarchicalKind {\n  static {\n    this.sep = \".\";\n  }\n  static {\n    this.None = new _HierarchicalKind(\"@@none@@\");\n  }\n  static {\n    this.Empty = new _HierarchicalKind(\"\");\n  }\n  constructor(value) {\n    this.value = value;\n  }\n  equals(other) {\n    return this.value === other.value;\n  }\n  contains(other) {\n    return this.equals(other) || this.value === \"\" || other.value.startsWith(this.value + _HierarchicalKind.sep);\n  }\n  intersects(other) {\n    return this.contains(other) || other.contains(this);\n  }\n  append(...parts) {\n    return new _HierarchicalKind((this.value ? [this.value, ...parts] : parts).join(_HierarchicalKind.sep));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js\ninit_lifecycle();\ninit_mime();\ninit_platform();\ninit_types();\ninit_uuid();\ninit_nls();\ninit_commands();\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/common/quickInput.js\ninit_instantiation();\nvar NO_KEY_MODS = { ctrlCmd: false, alt: false };\nvar QuickInputHideReason;\n(function(QuickInputHideReason2) {\n  QuickInputHideReason2[QuickInputHideReason2[\"Blur\"] = 1] = \"Blur\";\n  QuickInputHideReason2[QuickInputHideReason2[\"Gesture\"] = 2] = \"Gesture\";\n  QuickInputHideReason2[QuickInputHideReason2[\"Other\"] = 3] = \"Other\";\n})(QuickInputHideReason || (QuickInputHideReason = {}));\nvar ItemActivation;\n(function(ItemActivation2) {\n  ItemActivation2[ItemActivation2[\"NONE\"] = 0] = \"NONE\";\n  ItemActivation2[ItemActivation2[\"FIRST\"] = 1] = \"FIRST\";\n  ItemActivation2[ItemActivation2[\"SECOND\"] = 2] = \"SECOND\";\n  ItemActivation2[ItemActivation2[\"LAST\"] = 3] = \"LAST\";\n})(ItemActivation || (ItemActivation = {}));\nvar QuickPickFocus;\n(function(QuickPickFocus2) {\n  QuickPickFocus2[QuickPickFocus2[\"First\"] = 1] = \"First\";\n  QuickPickFocus2[QuickPickFocus2[\"Second\"] = 2] = \"Second\";\n  QuickPickFocus2[QuickPickFocus2[\"Last\"] = 3] = \"Last\";\n  QuickPickFocus2[QuickPickFocus2[\"Next\"] = 4] = \"Next\";\n  QuickPickFocus2[QuickPickFocus2[\"Previous\"] = 5] = \"Previous\";\n  QuickPickFocus2[QuickPickFocus2[\"NextPage\"] = 6] = \"NextPage\";\n  QuickPickFocus2[QuickPickFocus2[\"PreviousPage\"] = 7] = \"PreviousPage\";\n  QuickPickFocus2[QuickPickFocus2[\"NextSeparator\"] = 8] = \"NextSeparator\";\n  QuickPickFocus2[QuickPickFocus2[\"PreviousSeparator\"] = 9] = \"PreviousSeparator\";\n})(QuickPickFocus || (QuickPickFocus = {}));\nvar QuickInputButtonLocation;\n(function(QuickInputButtonLocation2) {\n  QuickInputButtonLocation2[QuickInputButtonLocation2[\"Title\"] = 1] = \"Title\";\n  QuickInputButtonLocation2[QuickInputButtonLocation2[\"Inline\"] = 2] = \"Inline\";\n})(QuickInputButtonLocation || (QuickInputButtonLocation = {}));\nvar QuickPickItemScorerAccessor = class {\n  constructor(options2) {\n    this.options = options2;\n  }\n};\nvar quickPickItemScorerAccessor = new QuickPickItemScorerAccessor();\nvar IQuickInputService = createDecorator(\"quickInputService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/dataTransfer.js\ninit_mime();\ninit_uri();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/dnd/browser/dnd.js\ninit_platform();\ninit_platform2();\nvar CodeDataTransfers = {\n  EDITORS: \"CodeEditors\",\n  FILES: \"CodeFiles\",\n  SYMBOLS: \"application/vnd.code.symbols\",\n  MARKERS: \"application/vnd.code.diagnostics\",\n  NOTEBOOK_CELL_OUTPUT: \"notebook-cell-output\",\n  SCM_HISTORY_ITEM: \"scm-history-item\"\n};\nvar DragAndDropContributionRegistry = class {\n};\nvar Extensions9 = {\n  DragAndDropContribution: \"workbench.contributions.dragAndDrop\"\n};\nRegistry.add(Extensions9.DragAndDropContribution, new DragAndDropContributionRegistry());\nvar LocalSelectionTransfer = class _LocalSelectionTransfer {\n  static {\n    this.INSTANCE = new _LocalSelectionTransfer();\n  }\n  constructor() {\n  }\n  static getInstance() {\n    return _LocalSelectionTransfer.INSTANCE;\n  }\n  hasData(proto) {\n    return proto \u0026\u0026 proto === this.proto;\n  }\n  getData(proto) {\n    if (this.hasData(proto)) {\n      return this.data;\n    }\n    return void 0;\n  }\n};\nfunction getPathForFile(file) {\n  if (isNative \u0026\u0026 typeof globalThis.vscode?.webUtils?.getPathForFile === \"function\") {\n    return globalThis.vscode.webUtils.getPathForFile(file);\n  }\n  return void 0;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/dataTransfer.js\nfunction toVSDataTransfer(dataTransfer) {\n  const vsDataTransfer = new VSDataTransfer();\n  for (const item of dataTransfer.items) {\n    const type = item.type;\n    if (item.kind === \"string\") {\n      const asStringValue = new Promise((resolve3) =\u003e item.getAsString(resolve3));\n      vsDataTransfer.append(type, createStringDataTransferItem(asStringValue));\n    } else if (item.kind === \"file\") {\n      const file = item.getAsFile();\n      if (file) {\n        vsDataTransfer.append(type, createFileDataTransferItemFromFile(file));\n      }\n    }\n  }\n  return vsDataTransfer;\n}\nfunction createFileDataTransferItemFromFile(file) {\n  const path = getPathForFile(file);\n  const uri = path ? URI.parse(path) : void 0;\n  return createFileDataTransferItem(file.name, uri, async () =\u003e {\n    return new Uint8Array(await file.arrayBuffer());\n  });\n}\nvar INTERNAL_DND_MIME_TYPES = Object.freeze([\n  CodeDataTransfers.EDITORS,\n  CodeDataTransfers.FILES,\n  DataTransfers.RESOURCES,\n  DataTransfers.INTERNAL_URI_LIST\n]);\nfunction toExternalVSDataTransfer(sourceDataTransfer, overwriteUriList = false) {\n  const vsDataTransfer = toVSDataTransfer(sourceDataTransfer);\n  const uriList = vsDataTransfer.get(DataTransfers.INTERNAL_URI_LIST);\n  if (uriList) {\n    vsDataTransfer.replace(Mimes.uriList, uriList);\n  } else {\n    if (overwriteUriList || !vsDataTransfer.has(Mimes.uriList)) {\n      const editorData = [];\n      for (const item of sourceDataTransfer.items) {\n        const file = item.getAsFile();\n        if (file) {\n          const path = getPathForFile(file);\n          try {\n            if (path) {\n              editorData.push(URI.file(path).toString());\n            } else {\n              editorData.push(URI.parse(file.name, true).toString());\n            }\n          } catch {\n          }\n        }\n      }\n      if (editorData.length) {\n        vsDataTransfer.replace(Mimes.uriList, createStringDataTransferItem(UriList.create(editorData)));\n      }\n    }\n  }\n  for (const internal of INTERNAL_DND_MIME_TYPES) {\n    vsDataTransfer.delete(internal);\n  }\n  return vsDataTransfer;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/bulkEditService.js\ninit_instantiation();\ninit_uri();\ninit_types();\nvar IBulkEditService = createDecorator(\"IWorkspaceEditService\");\nvar ResourceEdit = class {\n  constructor(metadata) {\n    this.metadata = metadata;\n  }\n  static convert(edit2) {\n    return edit2.edits.map((edit3) =\u003e {\n      if (ResourceTextEdit.is(edit3)) {\n        return ResourceTextEdit.lift(edit3);\n      }\n      if (ResourceFileEdit.is(edit3)) {\n        return ResourceFileEdit.lift(edit3);\n      }\n      throw new Error(\"Unsupported edit\");\n    });\n  }\n};\nvar ResourceTextEdit = class _ResourceTextEdit extends ResourceEdit {\n  static is(candidate) {\n    if (candidate instanceof _ResourceTextEdit) {\n      return true;\n    }\n    return isObject(candidate) \u0026\u0026 URI.isUri(candidate.resource) \u0026\u0026 isObject(candidate.textEdit);\n  }\n  static lift(edit2) {\n    if (edit2 instanceof _ResourceTextEdit) {\n      return edit2;\n    } else {\n      return new _ResourceTextEdit(edit2.resource, edit2.textEdit, edit2.versionId, edit2.metadata);\n    }\n  }\n  constructor(resource, textEdit, versionId = void 0, metadata) {\n    super(metadata);\n    this.resource = resource;\n    this.textEdit = textEdit;\n    this.versionId = versionId;\n  }\n};\nvar ResourceFileEdit = class _ResourceFileEdit extends ResourceEdit {\n  static is(candidate) {\n    if (candidate instanceof _ResourceFileEdit) {\n      return true;\n    } else {\n      return isObject(candidate) \u0026\u0026 (Boolean(candidate.newResource) || Boolean(candidate.oldResource));\n    }\n  }\n  static lift(edit2) {\n    if (edit2 instanceof _ResourceFileEdit) {\n      return edit2;\n    } else {\n      return new _ResourceFileEdit(edit2.oldResource, edit2.newResource, edit2.options, edit2.metadata);\n    }\n  }\n  constructor(oldResource, newResource, options2 = {}, metadata) {\n    super(metadata);\n    this.oldResource = oldResource;\n    this.newResource = newResource;\n    this.options = options2;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js\ninit_range();\ninit_languages();\ninit_languageFeatures();\ninit_editorState();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineProgress/browser/inlineProgress.js\ninit_dom();\ninit_async();\ninit_codicons();\ninit_lifecycle();\ninit_strings();\ninit_themables();\ninit_range();\ninit_textModel();\ninit_instantiation();\nvar __decorate45 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param40 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar inlineProgressDecoration = ModelDecorationOptions.register({\n  description: \"inline-progress-widget\",\n  stickiness: 1,\n  showIfCollapsed: true,\n  after: {\n    content: noBreakWhitespace,\n    inlineClassName: \"inline-editor-progress-decoration\",\n    inlineClassNameAffectsLetterSpacing: true\n  }\n});\nvar InlineProgressWidget = class _InlineProgressWidget extends Disposable {\n  static {\n    this.baseId = \"editor.widget.inlineProgressWidget\";\n  }\n  constructor(typeId, editor2, range2, title, delegate) {\n    super();\n    this.typeId = typeId;\n    this.editor = editor2;\n    this.range = range2;\n    this.delegate = delegate;\n    this.allowEditorOverflow = false;\n    this.suppressMouseDown = true;\n    this.create(title);\n    this.editor.addContentWidget(this);\n    this.editor.layoutContentWidget(this);\n  }\n  create(title) {\n    this.domNode = $(\".inline-progress-widget\");\n    this.domNode.role = \"button\";\n    this.domNode.title = title;\n    const iconElement = $(\"span.icon\");\n    this.domNode.append(iconElement);\n    iconElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.loading), \"codicon-modifier-spin\");\n    const updateSize = () =\u003e {\n      const lineHeight = this.editor.getOption(\n        75\n        /* EditorOption.lineHeight */\n      );\n      this.domNode.style.height = `${lineHeight}px`;\n      this.domNode.style.width = `${Math.ceil(0.8 * lineHeight)}px`;\n    };\n    updateSize();\n    this._register(this.editor.onDidChangeConfiguration((c) =\u003e {\n      if (c.hasChanged(\n        61\n        /* EditorOption.fontSize */\n      ) || c.hasChanged(\n        75\n        /* EditorOption.lineHeight */\n      )) {\n        updateSize();\n      }\n    }));\n    this._register(addDisposableListener(this.domNode, EventType.CLICK, (e) =\u003e {\n      this.delegate.cancel();\n    }));\n  }\n  getId() {\n    return _InlineProgressWidget.baseId + \".\" + this.typeId;\n  }\n  getDomNode() {\n    return this.domNode;\n  }\n  getPosition() {\n    return {\n      position: { lineNumber: this.range.startLineNumber, column: this.range.startColumn },\n      preference: [\n        0\n        /* ContentWidgetPositionPreference.EXACT */\n      ]\n    };\n  }\n  dispose() {\n    super.dispose();\n    this.editor.removeContentWidget(this);\n  }\n};\nvar InlineProgressManager = class InlineProgressManager2 extends Disposable {\n  constructor(id, _editor, _instantiationService) {\n    super();\n    this.id = id;\n    this._editor = _editor;\n    this._instantiationService = _instantiationService;\n    this._showDelay = 500;\n    this._showPromise = this._register(new MutableDisposable());\n    this._currentWidget = this._register(new MutableDisposable());\n    this._operationIdPool = 0;\n    this._currentDecorations = _editor.createDecorationsCollection();\n  }\n  dispose() {\n    super.dispose();\n    this._currentDecorations.clear();\n  }\n  async showWhile(position, title, promise, delegate, delayOverride) {\n    const operationId = this._operationIdPool++;\n    this._currentOperation = operationId;\n    this.clear();\n    this._showPromise.value = disposableTimeout(() =\u003e {\n      const range2 = Range.fromPositions(position);\n      const decorationIds = this._currentDecorations.set([{\n        range: range2,\n        options: inlineProgressDecoration\n      }]);\n      if (decorationIds.length \u003e 0) {\n        this._currentWidget.value = this._instantiationService.createInstance(InlineProgressWidget, this.id, this._editor, range2, title, delegate);\n      }\n    }, delayOverride ?? this._showDelay);\n    try {\n      return await promise;\n    } finally {\n      if (this._currentOperation === operationId) {\n        this.clear();\n        this._currentOperation = void 0;\n      }\n    }\n  }\n  clear() {\n    this._showPromise.clear();\n    this._currentDecorations.clear();\n    this._currentWidget.clear();\n  }\n};\nInlineProgressManager = __decorate45([\n  __param40(2, IInstantiationService)\n], InlineProgressManager);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/message/browser/messageController.js\ninit_event();\ninit_htmlContent();\ninit_lifecycle();\ninit_editorExtensions();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/markdownRenderer/browser/markdownRenderer.js\ninit_errors();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/opener/common/opener.js\ninit_instantiation();\nvar IOpenerService = createDecorator(\"openerService\");\nfunction withSelection(uri, selection) {\n  return uri.with({ fragment: `${selection.startLineNumber},${selection.startColumn}${selection.endLineNumber ? `-${selection.endLineNumber}${selection.endColumn ? `,${selection.endColumn}` : \"\"}` : \"\"}` });\n}\nfunction extractSelection(uri) {\n  let selection = void 0;\n  const match2 = /^L?(\\d+)(?:,(\\d+))?(-L?(\\d+)(?:,(\\d+))?)?/.exec(uri.fragment);\n  if (match2) {\n    selection = {\n      startLineNumber: parseInt(match2[1]),\n      startColumn: match2[2] ? parseInt(match2[2]) : 1,\n      endLineNumber: match2[4] ? parseInt(match2[4]) : void 0,\n      endColumn: match2[4] ? match2[5] ? parseInt(match2[5]) : 1 : void 0\n    };\n    uri = uri.with({ fragment: \"\" });\n  }\n  return { selection, uri };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/markdownRenderer/browser/markdownRenderer.js\ninit_language();\ninit_modesRegistry();\nvar __decorate46 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param41 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MarkdownRenderer_1;\nvar MarkdownRenderer = class MarkdownRenderer2 {\n  static {\n    MarkdownRenderer_1 = this;\n  }\n  static {\n    this._ttpTokenizer = createTrustedTypesPolicy(\"tokenizeToString\", {\n      createHTML(html3) {\n        return html3;\n      }\n    });\n  }\n  constructor(_options, _languageService, _openerService) {\n    this._options = _options;\n    this._languageService = _languageService;\n    this._openerService = _openerService;\n  }\n  render(markdown, options2, outElement) {\n    const rendered = renderMarkdown(markdown, {\n      codeBlockRenderer: (alias, value) =\u003e this.renderCodeBlock(alias, value),\n      actionHandler: (link2, mdStr) =\u003e this.openMarkdownLink(link2, mdStr),\n      ...options2\n    }, outElement);\n    rendered.element.classList.add(\"rendered-markdown\");\n    return rendered;\n  }\n  async renderCodeBlock(languageAlias, value) {\n    let languageId;\n    if (languageAlias) {\n      languageId = this._languageService.getLanguageIdByLanguageName(languageAlias);\n    } else if (this._options.editor) {\n      languageId = this._options.editor.getModel()?.getLanguageId();\n    }\n    if (!languageId) {\n      languageId = PLAINTEXT_LANGUAGE_ID;\n    }\n    const html3 = await tokenizeToString(this._languageService, value, languageId);\n    const element = document.createElement(\"span\");\n    element.innerHTML = MarkdownRenderer_1._ttpTokenizer?.createHTML(html3) ?? html3;\n    if (this._options.editor) {\n      const fontInfo = this._options.editor.getOption(\n        59\n        /* EditorOption.fontInfo */\n      );\n      applyFontInfo(element, fontInfo);\n    } else if (this._options.codeBlockFontFamily) {\n      element.style.fontFamily = this._options.codeBlockFontFamily;\n    }\n    if (this._options.codeBlockFontSize !== void 0) {\n      element.style.fontSize = this._options.codeBlockFontSize;\n    }\n    return element;\n  }\n  async openMarkdownLink(link2, markdown) {\n    await openLinkFromMarkdown(this._openerService, link2, markdown.isTrusted);\n  }\n};\nMarkdownRenderer = MarkdownRenderer_1 = __decorate46([\n  __param41(1, ILanguageService),\n  __param41(2, IOpenerService)\n], MarkdownRenderer);\nasync function openLinkFromMarkdown(openerService, link2, isTrusted, skipValidation) {\n  try {\n    return await openerService.open(link2, {\n      fromUserGesture: true,\n      allowContributedOpeners: true,\n      allowCommands: toAllowCommandsOption(isTrusted),\n      skipValidation\n    });\n  } catch (e) {\n    onUnexpectedError(e);\n    return false;\n  }\n}\nfunction toAllowCommandsOption(isTrusted) {\n  if (isTrusted === true) {\n    return true;\n  }\n  if (isTrusted \u0026\u0026 Array.isArray(isTrusted.enabledCommands)) {\n    return isTrusted.enabledCommands;\n  }\n  return false;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/message/browser/messageController.js\ninit_nls();\ninit_contextkey();\ninit_dom();\nvar __decorate47 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param42 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MessageController_1;\nvar MessageController = class MessageController2 {\n  static {\n    MessageController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.messageController\";\n  }\n  static {\n    this.MESSAGE_VISIBLE = new RawContextKey(\"messageVisible\", false, localize(1274, \"Whether the editor is currently showing an inline message\"));\n  }\n  static get(editor2) {\n    return editor2.getContribution(MessageController_1.ID);\n  }\n  constructor(editor2, contextKeyService, _openerService) {\n    this._openerService = _openerService;\n    this._messageWidget = new MutableDisposable();\n    this._messageListeners = new DisposableStore();\n    this._mouseOverMessage = false;\n    this._editor = editor2;\n    this._visible = MessageController_1.MESSAGE_VISIBLE.bindTo(contextKeyService);\n  }\n  dispose() {\n    this._messageListeners.dispose();\n    this._messageWidget.dispose();\n    this._visible.reset();\n  }\n  showMessage(message, position) {\n    alert(isMarkdownString(message) ? message.value : message);\n    this._visible.set(true);\n    this._messageWidget.clear();\n    this._messageListeners.clear();\n    if (isMarkdownString(message)) {\n      const renderedMessage = this._messageListeners.add(renderMarkdown(message, {\n        actionHandler: (url, mdStr) =\u003e {\n          this.closeMessage();\n          openLinkFromMarkdown(this._openerService, url, mdStr.isTrusted);\n        }\n      }));\n      this._messageWidget.value = new MessageWidget(this._editor, position, renderedMessage.element);\n    } else {\n      this._messageWidget.value = new MessageWidget(this._editor, position, message);\n    }\n    this._messageListeners.add(Event.debounce(this._editor.onDidBlurEditorText, (last, event) =\u003e event, 0)(() =\u003e {\n      if (this._mouseOverMessage) {\n        return;\n      }\n      if (this._messageWidget.value \u0026\u0026 isAncestor(getActiveElement(), this._messageWidget.value.getDomNode())) {\n        return;\n      }\n      this.closeMessage();\n    }));\n    this._messageListeners.add(this._editor.onDidChangeCursorPosition(() =\u003e this.closeMessage()));\n    this._messageListeners.add(this._editor.onDidDispose(() =\u003e this.closeMessage()));\n    this._messageListeners.add(this._editor.onDidChangeModel(() =\u003e this.closeMessage()));\n    this._messageListeners.add(addDisposableListener(this._messageWidget.value.getDomNode(), EventType.MOUSE_ENTER, () =\u003e this._mouseOverMessage = true, true));\n    this._messageListeners.add(addDisposableListener(this._messageWidget.value.getDomNode(), EventType.MOUSE_LEAVE, () =\u003e this._mouseOverMessage = false, true));\n    let bounds;\n    this._messageListeners.add(this._editor.onMouseMove((e) =\u003e {\n      if (!e.target.position) {\n        return;\n      }\n      if (!bounds) {\n        bounds = new Range(position.lineNumber - 3, 1, e.target.position.lineNumber + 3, 1);\n      } else if (!bounds.containsPosition(e.target.position)) {\n        this.closeMessage();\n      }\n    }));\n  }\n  closeMessage() {\n    this._visible.reset();\n    this._messageListeners.clear();\n    if (this._messageWidget.value) {\n      this._messageListeners.add(MessageWidget.fadeOut(this._messageWidget.value));\n    }\n  }\n};\nMessageController = MessageController_1 = __decorate47([\n  __param42(1, IContextKeyService),\n  __param42(2, IOpenerService)\n], MessageController);\nvar MessageCommand = EditorCommand.bindToContribution(MessageController.get);\nregisterEditorCommand(new MessageCommand({\n  id: \"leaveEditorMessage\",\n  precondition: MessageController.MESSAGE_VISIBLE,\n  handler: (c) =\u003e c.closeMessage(),\n  kbOpts: {\n    weight: 100 + 30,\n    primary: 9\n    /* KeyCode.Escape */\n  }\n}));\nvar MessageWidget = class {\n  static fadeOut(messageWidget) {\n    const dispose2 = () =\u003e {\n      messageWidget.dispose();\n      clearTimeout(handle);\n      messageWidget.getDomNode().removeEventListener(\"animationend\", dispose2);\n    };\n    const handle = setTimeout(dispose2, 110);\n    messageWidget.getDomNode().addEventListener(\"animationend\", dispose2);\n    messageWidget.getDomNode().classList.add(\"fadeOut\");\n    return { dispose: dispose2 };\n  }\n  constructor(editor2, { lineNumber, column }, text2) {\n    this.allowEditorOverflow = true;\n    this.suppressMouseDown = false;\n    this._editor = editor2;\n    this._editor.revealLinesInCenterIfOutsideViewport(\n      lineNumber,\n      lineNumber,\n      0\n      /* ScrollType.Smooth */\n    );\n    this._position = { lineNumber, column };\n    this._domNode = document.createElement(\"div\");\n    this._domNode.classList.add(\"monaco-editor-overlaymessage\");\n    this._domNode.style.marginLeft = \"-6px\";\n    const anchorTop = document.createElement(\"div\");\n    anchorTop.classList.add(\"anchor\", \"top\");\n    this._domNode.appendChild(anchorTop);\n    const message = document.createElement(\"div\");\n    if (typeof text2 === \"string\") {\n      message.classList.add(\"message\");\n      message.textContent = text2;\n    } else {\n      text2.classList.add(\"message\");\n      message.appendChild(text2);\n    }\n    this._domNode.appendChild(message);\n    const anchorBottom = document.createElement(\"div\");\n    anchorBottom.classList.add(\"anchor\", \"below\");\n    this._domNode.appendChild(anchorBottom);\n    this._editor.addContentWidget(this);\n    this._domNode.classList.add(\"fadeIn\");\n  }\n  dispose() {\n    this._editor.removeContentWidget(this);\n  }\n  getId() {\n    return \"messageoverlay\";\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  getPosition() {\n    return {\n      position: this._position,\n      preference: [\n        1,\n        2\n      ],\n      positionAffinity: 1\n    };\n  }\n  afterRender(position) {\n    this._domNode.classList.toggle(\n      \"below\",\n      position === 2\n      /* ContentWidgetPositionPreference.BELOW */\n    );\n  }\n};\nregisterEditorContribution(\n  MessageController.ID,\n  MessageController,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js\ninit_arrays();\ninit_lifecycle();\ninit_mime();\ninit_network();\ninit_resources();\ninit_uri();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/workspace/common/workspace.js\ninit_nls();\ninit_path();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/ternarySearchTree.js\ninit_assert();\ninit_strings();\nvar StringIterator = class {\n  constructor() {\n    this._value = \"\";\n    this._pos = 0;\n  }\n  reset(key) {\n    this._value = key;\n    this._pos = 0;\n    return this;\n  }\n  next() {\n    this._pos += 1;\n    return this;\n  }\n  hasNext() {\n    return this._pos \u003c this._value.length - 1;\n  }\n  cmp(a) {\n    const aCode = a.charCodeAt(0);\n    const thisCode = this._value.charCodeAt(this._pos);\n    return aCode - thisCode;\n  }\n  value() {\n    return this._value[this._pos];\n  }\n};\nvar ConfigKeysIterator = class {\n  constructor(_caseSensitive = true) {\n    this._caseSensitive = _caseSensitive;\n  }\n  reset(key) {\n    this._value = key;\n    this._from = 0;\n    this._to = 0;\n    return this.next();\n  }\n  hasNext() {\n    return this._to \u003c this._value.length;\n  }\n  next() {\n    this._from = this._to;\n    let justSeps = true;\n    for (; this._to \u003c this._value.length; this._to++) {\n      const ch = this._value.charCodeAt(this._to);\n      if (ch === 46) {\n        if (justSeps) {\n          this._from++;\n        } else {\n          break;\n        }\n      } else {\n        justSeps = false;\n      }\n    }\n    return this;\n  }\n  cmp(a) {\n    return this._caseSensitive ? compareSubstring(a, this._value, 0, a.length, this._from, this._to) : compareSubstringIgnoreCase(a, this._value, 0, a.length, this._from, this._to);\n  }\n  value() {\n    return this._value.substring(this._from, this._to);\n  }\n};\nvar PathIterator = class {\n  constructor(_splitOnBackslash = true, _caseSensitive = true) {\n    this._splitOnBackslash = _splitOnBackslash;\n    this._caseSensitive = _caseSensitive;\n  }\n  reset(key) {\n    this._from = 0;\n    this._to = 0;\n    this._value = key;\n    this._valueLen = key.length;\n    for (let pos = key.length - 1; pos \u003e= 0; pos--, this._valueLen--) {\n      const ch = this._value.charCodeAt(pos);\n      if (!(ch === 47 || this._splitOnBackslash \u0026\u0026 ch === 92)) {\n        break;\n      }\n    }\n    return this.next();\n  }\n  hasNext() {\n    return this._to \u003c this._valueLen;\n  }\n  next() {\n    this._from = this._to;\n    let justSeps = true;\n    for (; this._to \u003c this._valueLen; this._to++) {\n      const ch = this._value.charCodeAt(this._to);\n      if (ch === 47 || this._splitOnBackslash \u0026\u0026 ch === 92) {\n        if (justSeps) {\n          this._from++;\n        } else {\n          break;\n        }\n      } else {\n        justSeps = false;\n      }\n    }\n    return this;\n  }\n  cmp(a) {\n    return this._caseSensitive ? compareSubstring(a, this._value, 0, a.length, this._from, this._to) : compareSubstringIgnoreCase(a, this._value, 0, a.length, this._from, this._to);\n  }\n  value() {\n    return this._value.substring(this._from, this._to);\n  }\n};\nvar UriIterator = class {\n  constructor(_ignorePathCasing, _ignoreQueryAndFragment) {\n    this._ignorePathCasing = _ignorePathCasing;\n    this._ignoreQueryAndFragment = _ignoreQueryAndFragment;\n    this._states = [];\n    this._stateIdx = 0;\n  }\n  reset(key) {\n    this._value = key;\n    this._states = [];\n    if (this._value.scheme) {\n      this._states.push(\n        1\n        /* UriIteratorState.Scheme */\n      );\n    }\n    if (this._value.authority) {\n      this._states.push(\n        2\n        /* UriIteratorState.Authority */\n      );\n    }\n    if (this._value.path) {\n      this._pathIterator = new PathIterator(false, !this._ignorePathCasing(key));\n      this._pathIterator.reset(key.path);\n      if (this._pathIterator.value()) {\n        this._states.push(\n          3\n          /* UriIteratorState.Path */\n        );\n      }\n    }\n    if (!this._ignoreQueryAndFragment(key)) {\n      if (this._value.query) {\n        this._states.push(\n          4\n          /* UriIteratorState.Query */\n        );\n      }\n      if (this._value.fragment) {\n        this._states.push(\n          5\n          /* UriIteratorState.Fragment */\n        );\n      }\n    }\n    this._stateIdx = 0;\n    return this;\n  }\n  next() {\n    if (this._states[this._stateIdx] === 3 \u0026\u0026 this._pathIterator.hasNext()) {\n      this._pathIterator.next();\n    } else {\n      this._stateIdx += 1;\n    }\n    return this;\n  }\n  hasNext() {\n    return this._states[this._stateIdx] === 3 \u0026\u0026 this._pathIterator.hasNext() || this._stateIdx \u003c this._states.length - 1;\n  }\n  cmp(a) {\n    if (this._states[this._stateIdx] === 1) {\n      return compareIgnoreCase(a, this._value.scheme);\n    } else if (this._states[this._stateIdx] === 2) {\n      return compareIgnoreCase(a, this._value.authority);\n    } else if (this._states[this._stateIdx] === 3) {\n      return this._pathIterator.cmp(a);\n    } else if (this._states[this._stateIdx] === 4) {\n      return compare(a, this._value.query);\n    } else if (this._states[this._stateIdx] === 5) {\n      return compare(a, this._value.fragment);\n    }\n    throw new Error();\n  }\n  value() {\n    if (this._states[this._stateIdx] === 1) {\n      return this._value.scheme;\n    } else if (this._states[this._stateIdx] === 2) {\n      return this._value.authority;\n    } else if (this._states[this._stateIdx] === 3) {\n      return this._pathIterator.value();\n    } else if (this._states[this._stateIdx] === 4) {\n      return this._value.query;\n    } else if (this._states[this._stateIdx] === 5) {\n      return this._value.fragment;\n    }\n    throw new Error();\n  }\n};\nvar Undef = class _Undef {\n  static {\n    this.Val = Symbol(\"undefined_placeholder\");\n  }\n  static wrap(value) {\n    return value === void 0 ? _Undef.Val : value;\n  }\n  static unwrap(value) {\n    return value === _Undef.Val ? void 0 : value;\n  }\n};\nvar TernarySearchTreeNode = class {\n  constructor() {\n    this.height = 1;\n    this.value = void 0;\n    this.key = void 0;\n    this.left = void 0;\n    this.mid = void 0;\n    this.right = void 0;\n  }\n  rotateLeft() {\n    const tmp = this.right;\n    this.right = tmp.left;\n    tmp.left = this;\n    this.updateHeight();\n    tmp.updateHeight();\n    return tmp;\n  }\n  rotateRight() {\n    const tmp = this.left;\n    this.left = tmp.right;\n    tmp.right = this;\n    this.updateHeight();\n    tmp.updateHeight();\n    return tmp;\n  }\n  updateHeight() {\n    this.height = 1 + Math.max(this.heightLeft, this.heightRight);\n  }\n  balanceFactor() {\n    return this.heightRight - this.heightLeft;\n  }\n  get heightLeft() {\n    return this.left?.height ?? 0;\n  }\n  get heightRight() {\n    return this.right?.height ?? 0;\n  }\n};\nvar TernarySearchTree = class _TernarySearchTree {\n  static forUris(ignorePathCasing = () =\u003e false, ignoreQueryAndFragment = () =\u003e false) {\n    return new _TernarySearchTree(new UriIterator(ignorePathCasing, ignoreQueryAndFragment));\n  }\n  static forStrings() {\n    return new _TernarySearchTree(new StringIterator());\n  }\n  static forConfigKeys() {\n    return new _TernarySearchTree(new ConfigKeysIterator());\n  }\n  constructor(segments) {\n    this._iter = segments;\n  }\n  clear() {\n    this._root = void 0;\n  }\n  set(key, element) {\n    const iter = this._iter.reset(key);\n    let node;\n    if (!this._root) {\n      this._root = new TernarySearchTreeNode();\n      this._root.segment = iter.value();\n    }\n    const stack = [];\n    node = this._root;\n    while (true) {\n      const val = iter.cmp(node.segment);\n      if (val \u003e 0) {\n        if (!node.left) {\n          node.left = new TernarySearchTreeNode();\n          node.left.segment = iter.value();\n        }\n        stack.push([-1, node]);\n        node = node.left;\n      } else if (val \u003c 0) {\n        if (!node.right) {\n          node.right = new TernarySearchTreeNode();\n          node.right.segment = iter.value();\n        }\n        stack.push([1, node]);\n        node = node.right;\n      } else if (iter.hasNext()) {\n        iter.next();\n        if (!node.mid) {\n          node.mid = new TernarySearchTreeNode();\n          node.mid.segment = iter.value();\n        }\n        stack.push([0, node]);\n        node = node.mid;\n      } else {\n        break;\n      }\n    }\n    const oldElement = Undef.unwrap(node.value);\n    node.value = Undef.wrap(element);\n    node.key = key;\n    for (let i2 = stack.length - 1; i2 \u003e= 0; i2--) {\n      const node2 = stack[i2][1];\n      node2.updateHeight();\n      const bf = node2.balanceFactor();\n      if (bf \u003c -1 || bf \u003e 1) {\n        const d1 = stack[i2][0];\n        const d2 = stack[i2 + 1][0];\n        if (d1 === 1 \u0026\u0026 d2 === 1) {\n          stack[i2][1] = node2.rotateLeft();\n        } else if (d1 === -1 \u0026\u0026 d2 === -1) {\n          stack[i2][1] = node2.rotateRight();\n        } else if (d1 === 1 \u0026\u0026 d2 === -1) {\n          node2.right = stack[i2 + 1][1] = stack[i2 + 1][1].rotateRight();\n          stack[i2][1] = node2.rotateLeft();\n        } else if (d1 === -1 \u0026\u0026 d2 === 1) {\n          node2.left = stack[i2 + 1][1] = stack[i2 + 1][1].rotateLeft();\n          stack[i2][1] = node2.rotateRight();\n        } else {\n          throw new Error();\n        }\n        if (i2 \u003e 0) {\n          switch (stack[i2 - 1][0]) {\n            case -1:\n              stack[i2 - 1][1].left = stack[i2][1];\n              break;\n            case 1:\n              stack[i2 - 1][1].right = stack[i2][1];\n              break;\n            case 0:\n              stack[i2 - 1][1].mid = stack[i2][1];\n              break;\n          }\n        } else {\n          this._root = stack[0][1];\n        }\n      }\n    }\n    return oldElement;\n  }\n  get(key) {\n    return Undef.unwrap(this._getNode(key)?.value);\n  }\n  _getNode(key) {\n    const iter = this._iter.reset(key);\n    let node = this._root;\n    while (node) {\n      const val = iter.cmp(node.segment);\n      if (val \u003e 0) {\n        node = node.left;\n      } else if (val \u003c 0) {\n        node = node.right;\n      } else if (iter.hasNext()) {\n        iter.next();\n        node = node.mid;\n      } else {\n        break;\n      }\n    }\n    return node;\n  }\n  has(key) {\n    const node = this._getNode(key);\n    return !(node?.value === void 0 \u0026\u0026 node?.mid === void 0);\n  }\n  delete(key) {\n    return this._delete(key, false);\n  }\n  deleteSuperstr(key) {\n    return this._delete(key, true);\n  }\n  _delete(key, superStr) {\n    const iter = this._iter.reset(key);\n    const stack = [];\n    let node = this._root;\n    while (node) {\n      const val = iter.cmp(node.segment);\n      if (val \u003e 0) {\n        stack.push([-1, node]);\n        node = node.left;\n      } else if (val \u003c 0) {\n        stack.push([1, node]);\n        node = node.right;\n      } else if (iter.hasNext()) {\n        iter.next();\n        stack.push([0, node]);\n        node = node.mid;\n      } else {\n        break;\n      }\n    }\n    if (!node) {\n      return;\n    }\n    if (superStr) {\n      node.left = void 0;\n      node.mid = void 0;\n      node.right = void 0;\n      node.height = 1;\n    } else {\n      node.key = void 0;\n      node.value = void 0;\n    }\n    if (!node.mid \u0026\u0026 !node.value) {\n      if (node.left \u0026\u0026 node.right) {\n        const stack2 = [[1, node]];\n        const min = this._min(node.right, stack2);\n        if (min.key) {\n          node.key = min.key;\n          node.value = min.value;\n          node.segment = min.segment;\n          const newChild = min.right;\n          if (stack2.length \u003e 1) {\n            const [dir, parent] = stack2[stack2.length - 1];\n            switch (dir) {\n              case -1:\n                parent.left = newChild;\n                break;\n              case 0:\n                assert(false);\n              case 1:\n                assert(false);\n            }\n          } else {\n            node.right = newChild;\n          }\n          const newChild2 = this._balanceByStack(stack2);\n          if (stack.length \u003e 0) {\n            const [dir, parent] = stack[stack.length - 1];\n            switch (dir) {\n              case -1:\n                parent.left = newChild2;\n                break;\n              case 0:\n                parent.mid = newChild2;\n                break;\n              case 1:\n                parent.right = newChild2;\n                break;\n            }\n          } else {\n            this._root = newChild2;\n          }\n        }\n      } else {\n        const newChild = node.left ?? node.right;\n        if (stack.length \u003e 0) {\n          const [dir, parent] = stack[stack.length - 1];\n          switch (dir) {\n            case -1:\n              parent.left = newChild;\n              break;\n            case 0:\n              parent.mid = newChild;\n              break;\n            case 1:\n              parent.right = newChild;\n              break;\n          }\n        } else {\n          this._root = newChild;\n        }\n      }\n    }\n    this._root = this._balanceByStack(stack) ?? this._root;\n  }\n  _min(node, stack) {\n    while (node.left) {\n      stack.push([-1, node]);\n      node = node.left;\n    }\n    return node;\n  }\n  _balanceByStack(stack) {\n    for (let i2 = stack.length - 1; i2 \u003e= 0; i2--) {\n      const node = stack[i2][1];\n      node.updateHeight();\n      const bf = node.balanceFactor();\n      if (bf \u003e 1) {\n        if (node.right.balanceFactor() \u003e= 0) {\n          stack[i2][1] = node.rotateLeft();\n        } else {\n          node.right = node.right.rotateRight();\n          stack[i2][1] = node.rotateLeft();\n        }\n      } else if (bf \u003c -1) {\n        if (node.left.balanceFactor() \u003c= 0) {\n          stack[i2][1] = node.rotateRight();\n        } else {\n          node.left = node.left.rotateLeft();\n          stack[i2][1] = node.rotateRight();\n        }\n      }\n      if (i2 \u003e 0) {\n        switch (stack[i2 - 1][0]) {\n          case -1:\n            stack[i2 - 1][1].left = stack[i2][1];\n            break;\n          case 1:\n            stack[i2 - 1][1].right = stack[i2][1];\n            break;\n          case 0:\n            stack[i2 - 1][1].mid = stack[i2][1];\n            break;\n        }\n      } else {\n        return stack[0][1];\n      }\n    }\n    return void 0;\n  }\n  findSubstr(key) {\n    const iter = this._iter.reset(key);\n    let node = this._root;\n    let candidate = void 0;\n    while (node) {\n      const val = iter.cmp(node.segment);\n      if (val \u003e 0) {\n        node = node.left;\n      } else if (val \u003c 0) {\n        node = node.right;\n      } else if (iter.hasNext()) {\n        iter.next();\n        candidate = Undef.unwrap(node.value) || candidate;\n        node = node.mid;\n      } else {\n        break;\n      }\n    }\n    return node \u0026\u0026 Undef.unwrap(node.value) || candidate;\n  }\n  findSuperstr(key) {\n    return this._findSuperstrOrElement(key, false);\n  }\n  _findSuperstrOrElement(key, allowValue) {\n    const iter = this._iter.reset(key);\n    let node = this._root;\n    while (node) {\n      const val = iter.cmp(node.segment);\n      if (val \u003e 0) {\n        node = node.left;\n      } else if (val \u003c 0) {\n        node = node.right;\n      } else if (iter.hasNext()) {\n        iter.next();\n        node = node.mid;\n      } else {\n        if (!node.mid) {\n          if (allowValue) {\n            return Undef.unwrap(node.value);\n          } else {\n            return void 0;\n          }\n        } else {\n          return this._entries(node.mid);\n        }\n      }\n    }\n    return void 0;\n  }\n  forEach(callback) {\n    for (const [key, value] of this) {\n      callback(value, key);\n    }\n  }\n  *[Symbol.iterator]() {\n    yield* this._entries(this._root);\n  }\n  _entries(node) {\n    const result = [];\n    this._dfsEntries(node, result);\n    return result[Symbol.iterator]();\n  }\n  _dfsEntries(node, bucket) {\n    if (!node) {\n      return;\n    }\n    if (node.left) {\n      this._dfsEntries(node.left, bucket);\n    }\n    if (node.value !== void 0) {\n      bucket.push([node.key, Undef.unwrap(node.value)]);\n    }\n    if (node.mid) {\n      this._dfsEntries(node.mid, bucket);\n    }\n    if (node.right) {\n      this._dfsEntries(node.right, bucket);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/workspace/common/workspace.js\ninit_uri();\ninit_instantiation();\nvar IWorkspaceContextService = createDecorator(\"contextService\");\nfunction isSingleFolderWorkspaceIdentifier(obj) {\n  const singleFolderIdentifier = obj;\n  return typeof singleFolderIdentifier?.id === \"string\" \u0026\u0026 URI.isUri(singleFolderIdentifier.uri);\n}\nfunction isEmptyWorkspaceIdentifier(obj) {\n  const emptyWorkspaceIdentifier = obj;\n  return typeof emptyWorkspaceIdentifier?.id === \"string\" \u0026\u0026 !isSingleFolderWorkspaceIdentifier(obj) \u0026\u0026 !isWorkspaceIdentifier(obj);\n}\nvar EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE = { id: \"ext-dev\" };\nvar UNKNOWN_EMPTY_WINDOW_WORKSPACE = { id: \"empty-window\" };\nfunction toWorkspaceIdentifier(arg0, isExtensionDevelopment) {\n  if (typeof arg0 === \"string\" || typeof arg0 === \"undefined\") {\n    if (typeof arg0 === \"string\") {\n      return {\n        id: basename(arg0)\n      };\n    }\n    if (isExtensionDevelopment) {\n      return EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE;\n    }\n    return UNKNOWN_EMPTY_WINDOW_WORKSPACE;\n  }\n  const workspace = arg0;\n  if (workspace.configuration) {\n    return {\n      id: workspace.id,\n      configPath: workspace.configuration\n    };\n  }\n  if (workspace.folders.length === 1) {\n    return {\n      id: workspace.id,\n      uri: workspace.folders[0].uri\n    };\n  }\n  return {\n    id: workspace.id\n  };\n}\nfunction isWorkspaceIdentifier(obj) {\n  const workspaceIdentifier = obj;\n  return typeof workspaceIdentifier?.id === \"string\" \u0026\u0026 URI.isUri(workspaceIdentifier.configPath);\n}\nvar WorkspaceFolder = class {\n  constructor(data, raw) {\n    this.raw = raw;\n    this.uri = data.uri;\n    this.index = data.index;\n    this.name = data.name;\n  }\n  toJSON() {\n    return { uri: this.uri, name: this.name, index: this.index };\n  }\n};\nvar WORKSPACE_EXTENSION = \"code-workspace\";\nvar WORKSPACE_FILTER = [{ name: localize(2028, \"Code Workspace\"), extensions: [WORKSPACE_EXTENSION] }];\nvar STANDALONE_EDITOR_WORKSPACE_ID = \"4064f6ec-cb38-4ad0-af64-ee6467e63c82\";\nfunction isStandaloneEditorWorkspace(workspace) {\n  return workspace.id === STANDALONE_EDITOR_WORKSPACE_ID;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js\ninit_languages();\ninit_languageFeatures();\nvar __decorate48 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param43 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SimplePasteAndDropProvider = class {\n  constructor(kind) {\n    this.copyMimeTypes = [];\n    this.kind = kind;\n    this.providedDropEditKinds = [this.kind];\n    this.providedPasteEditKinds = [this.kind];\n  }\n  async provideDocumentPasteEdits(_model, _ranges, dataTransfer, context, token) {\n    const edit2 = await this.getEdit(dataTransfer, token);\n    if (!edit2) {\n      return void 0;\n    }\n    return {\n      edits: [{ insertText: edit2.insertText, title: edit2.title, kind: edit2.kind, handledMimeType: edit2.handledMimeType, yieldTo: edit2.yieldTo }],\n      dispose() {\n      }\n    };\n  }\n  async provideDocumentDropEdits(_model, _position, dataTransfer, token) {\n    const edit2 = await this.getEdit(dataTransfer, token);\n    if (!edit2) {\n      return;\n    }\n    return {\n      edits: [{ insertText: edit2.insertText, title: edit2.title, kind: edit2.kind, handledMimeType: edit2.handledMimeType, yieldTo: edit2.yieldTo }],\n      dispose() {\n      }\n    };\n  }\n};\nvar DefaultTextPasteOrDropEditProvider = class _DefaultTextPasteOrDropEditProvider extends SimplePasteAndDropProvider {\n  static {\n    this.id = \"text\";\n  }\n  constructor() {\n    super(HierarchicalKind.Empty.append(\"text\", \"plain\"));\n    this.id = _DefaultTextPasteOrDropEditProvider.id;\n    this.dropMimeTypes = [Mimes.text];\n    this.pasteMimeTypes = [Mimes.text];\n  }\n  async getEdit(dataTransfer, _token) {\n    const textEntry = dataTransfer.get(Mimes.text);\n    if (!textEntry) {\n      return;\n    }\n    if (dataTransfer.has(Mimes.uriList)) {\n      return;\n    }\n    const insertText = await textEntry.asString();\n    return {\n      handledMimeType: Mimes.text,\n      title: localize(918, \"Insert Plain Text\"),\n      insertText,\n      kind: this.kind\n    };\n  }\n};\nvar PathProvider = class extends SimplePasteAndDropProvider {\n  constructor() {\n    super(HierarchicalKind.Empty.append(\"uri\", \"path\", \"absolute\"));\n    this.dropMimeTypes = [Mimes.uriList];\n    this.pasteMimeTypes = [Mimes.uriList];\n  }\n  async getEdit(dataTransfer, token) {\n    const entries2 = await extractUriList(dataTransfer);\n    if (!entries2.length || token.isCancellationRequested) {\n      return;\n    }\n    let uriCount = 0;\n    const insertText = entries2.map(({ uri, originalText }) =\u003e {\n      if (uri.scheme === Schemas.file) {\n        return uri.fsPath;\n      } else {\n        uriCount++;\n        return originalText;\n      }\n    }).join(\" \");\n    let label;\n    if (uriCount \u003e 0) {\n      label = entries2.length \u003e 1 ? localize(919, \"Insert Uris\") : localize(920, \"Insert Uri\");\n    } else {\n      label = entries2.length \u003e 1 ? localize(921, \"Insert Paths\") : localize(922, \"Insert Path\");\n    }\n    return {\n      handledMimeType: Mimes.uriList,\n      insertText,\n      title: label,\n      kind: this.kind\n    };\n  }\n};\nvar RelativePathProvider = class RelativePathProvider2 extends SimplePasteAndDropProvider {\n  constructor(_workspaceContextService) {\n    super(HierarchicalKind.Empty.append(\"uri\", \"path\", \"relative\"));\n    this._workspaceContextService = _workspaceContextService;\n    this.dropMimeTypes = [Mimes.uriList];\n    this.pasteMimeTypes = [Mimes.uriList];\n  }\n  async getEdit(dataTransfer, token) {\n    const entries2 = await extractUriList(dataTransfer);\n    if (!entries2.length || token.isCancellationRequested) {\n      return;\n    }\n    const relativeUris = coalesce(entries2.map(({ uri }) =\u003e {\n      const root = this._workspaceContextService.getWorkspaceFolder(uri);\n      return root ? relativePath(root.uri, uri) : void 0;\n    }));\n    if (!relativeUris.length) {\n      return;\n    }\n    return {\n      handledMimeType: Mimes.uriList,\n      insertText: relativeUris.join(\" \"),\n      title: entries2.length \u003e 1 ? localize(923, \"Insert Relative Paths\") : localize(924, \"Insert Relative Path\"),\n      kind: this.kind\n    };\n  }\n};\nRelativePathProvider = __decorate48([\n  __param43(0, IWorkspaceContextService)\n], RelativePathProvider);\nvar PasteHtmlProvider = class {\n  constructor() {\n    this.kind = new HierarchicalKind(\"html\");\n    this.providedPasteEditKinds = [this.kind];\n    this.copyMimeTypes = [];\n    this.pasteMimeTypes = [\"text/html\"];\n    this._yieldTo = [{ mimeType: Mimes.text }];\n  }\n  async provideDocumentPasteEdits(_model, _ranges, dataTransfer, context, token) {\n    if (context.triggerKind !== DocumentPasteTriggerKind.PasteAs \u0026\u0026 !context.only?.contains(this.kind)) {\n      return;\n    }\n    const entry = dataTransfer.get(\"text/html\");\n    const htmlText = await entry?.asString();\n    if (!htmlText || token.isCancellationRequested) {\n      return;\n    }\n    return {\n      dispose() {\n      },\n      edits: [{\n        insertText: htmlText,\n        yieldTo: this._yieldTo,\n        title: localize(925, \"Insert HTML\"),\n        kind: this.kind\n      }]\n    };\n  }\n};\nasync function extractUriList(dataTransfer) {\n  const urlListEntry = dataTransfer.get(Mimes.uriList);\n  if (!urlListEntry) {\n    return [];\n  }\n  const strUriList = await urlListEntry.asString();\n  const entries2 = [];\n  for (const entry of UriList.parse(strUriList)) {\n    try {\n      entries2.push({ uri: URI.parse(entry), originalText: entry });\n    } catch {\n    }\n  }\n  return entries2;\n}\nvar genericLanguageSelector = { scheme: \"*\", hasAccessToAllModels: true };\nvar DefaultDropProvidersFeature = class DefaultDropProvidersFeature2 extends Disposable {\n  constructor(languageFeaturesService, workspaceContextService) {\n    super();\n    this._register(languageFeaturesService.documentDropEditProvider.register(genericLanguageSelector, new DefaultTextPasteOrDropEditProvider()));\n    this._register(languageFeaturesService.documentDropEditProvider.register(genericLanguageSelector, new PathProvider()));\n    this._register(languageFeaturesService.documentDropEditProvider.register(genericLanguageSelector, new RelativePathProvider(workspaceContextService)));\n  }\n};\nDefaultDropProvidersFeature = __decorate48([\n  __param43(0, ILanguageFeaturesService),\n  __param43(1, IWorkspaceContextService)\n], DefaultDropProvidersFeature);\nvar DefaultPasteProvidersFeature = class DefaultPasteProvidersFeature2 extends Disposable {\n  constructor(languageFeaturesService, workspaceContextService) {\n    super();\n    this._register(languageFeaturesService.documentPasteEditProvider.register(genericLanguageSelector, new DefaultTextPasteOrDropEditProvider()));\n    this._register(languageFeaturesService.documentPasteEditProvider.register(genericLanguageSelector, new PathProvider()));\n    this._register(languageFeaturesService.documentPasteEditProvider.register(genericLanguageSelector, new RelativePathProvider(workspaceContextService)));\n    this._register(languageFeaturesService.documentPasteEditProvider.register(genericLanguageSelector, new PasteHtmlProvider()));\n  }\n};\nDefaultPasteProvidersFeature = __decorate48([\n  __param43(0, ILanguageFeaturesService),\n  __param43(1, IWorkspaceContextService)\n], DefaultPasteProvidersFeature);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/snippet/browser/snippetParser.js\nvar Scanner2 = class _Scanner {\n  constructor() {\n    this.value = \"\";\n    this.pos = 0;\n  }\n  static {\n    this._table = {\n      [\n        36\n        /* CharCode.DollarSign */\n      ]: 0,\n      [\n        58\n        /* CharCode.Colon */\n      ]: 1,\n      [\n        44\n        /* CharCode.Comma */\n      ]: 2,\n      [\n        123\n        /* CharCode.OpenCurlyBrace */\n      ]: 3,\n      [\n        125\n        /* CharCode.CloseCurlyBrace */\n      ]: 4,\n      [\n        92\n        /* CharCode.Backslash */\n      ]: 5,\n      [\n        47\n        /* CharCode.Slash */\n      ]: 6,\n      [\n        124\n        /* CharCode.Pipe */\n      ]: 7,\n      [\n        43\n        /* CharCode.Plus */\n      ]: 11,\n      [\n        45\n        /* CharCode.Dash */\n      ]: 12,\n      [\n        63\n        /* CharCode.QuestionMark */\n      ]: 13\n    };\n  }\n  static isDigitCharacter(ch) {\n    return ch \u003e= 48 \u0026\u0026 ch \u003c= 57;\n  }\n  static isVariableCharacter(ch) {\n    return ch === 95 || ch \u003e= 97 \u0026\u0026 ch \u003c= 122 || ch \u003e= 65 \u0026\u0026 ch \u003c= 90;\n  }\n  text(value) {\n    this.value = value;\n    this.pos = 0;\n  }\n  tokenText(token) {\n    return this.value.substr(token.pos, token.len);\n  }\n  next() {\n    if (this.pos \u003e= this.value.length) {\n      return { type: 14, pos: this.pos, len: 0 };\n    }\n    const pos = this.pos;\n    let len = 0;\n    let ch = this.value.charCodeAt(pos);\n    let type;\n    type = _Scanner._table[ch];\n    if (typeof type === \"number\") {\n      this.pos += 1;\n      return { type, pos, len: 1 };\n    }\n    if (_Scanner.isDigitCharacter(ch)) {\n      type = 8;\n      do {\n        len += 1;\n        ch = this.value.charCodeAt(pos + len);\n      } while (_Scanner.isDigitCharacter(ch));\n      this.pos += len;\n      return { type, pos, len };\n    }\n    if (_Scanner.isVariableCharacter(ch)) {\n      type = 9;\n      do {\n        ch = this.value.charCodeAt(pos + ++len);\n      } while (_Scanner.isVariableCharacter(ch) || _Scanner.isDigitCharacter(ch));\n      this.pos += len;\n      return { type, pos, len };\n    }\n    type = 10;\n    do {\n      len += 1;\n      ch = this.value.charCodeAt(pos + len);\n    } while (!isNaN(ch) \u0026\u0026 typeof _Scanner._table[ch] === \"undefined\" \u0026\u0026 !_Scanner.isDigitCharacter(ch) \u0026\u0026 !_Scanner.isVariableCharacter(ch));\n    this.pos += len;\n    return { type, pos, len };\n  }\n};\nvar Marker = class {\n  constructor() {\n    this._children = [];\n  }\n  appendChild(child) {\n    if (child instanceof Text \u0026\u0026 this._children[this._children.length - 1] instanceof Text) {\n      this._children[this._children.length - 1].value += child.value;\n    } else {\n      child.parent = this;\n      this._children.push(child);\n    }\n    return this;\n  }\n  replace(child, others) {\n    const { parent } = child;\n    const idx = parent.children.indexOf(child);\n    const newChildren = parent.children.slice(0);\n    newChildren.splice(idx, 1, ...others);\n    parent._children = newChildren;\n    (function _fixParent(children, parent2) {\n      for (const child2 of children) {\n        child2.parent = parent2;\n        _fixParent(child2.children, child2);\n      }\n    })(others, parent);\n  }\n  get children() {\n    return this._children;\n  }\n  get rightMostDescendant() {\n    if (this._children.length \u003e 0) {\n      return this._children[this._children.length - 1].rightMostDescendant;\n    }\n    return this;\n  }\n  get snippet() {\n    let candidate = this;\n    while (true) {\n      if (!candidate) {\n        return void 0;\n      }\n      if (candidate instanceof TextmateSnippet) {\n        return candidate;\n      }\n      candidate = candidate.parent;\n    }\n  }\n  toString() {\n    return this.children.reduce((prev, cur) =\u003e prev + cur.toString(), \"\");\n  }\n  len() {\n    return 0;\n  }\n};\nvar Text = class _Text extends Marker {\n  constructor(value) {\n    super();\n    this.value = value;\n  }\n  toString() {\n    return this.value;\n  }\n  len() {\n    return this.value.length;\n  }\n  clone() {\n    return new _Text(this.value);\n  }\n};\nvar TransformableMarker = class extends Marker {\n};\nvar Placeholder = class _Placeholder extends TransformableMarker {\n  static compareByIndex(a, b) {\n    if (a.index === b.index) {\n      return 0;\n    } else if (a.isFinalTabstop) {\n      return 1;\n    } else if (b.isFinalTabstop) {\n      return -1;\n    } else if (a.index \u003c b.index) {\n      return -1;\n    } else if (a.index \u003e b.index) {\n      return 1;\n    } else {\n      return 0;\n    }\n  }\n  constructor(index) {\n    super();\n    this.index = index;\n  }\n  get isFinalTabstop() {\n    return this.index === 0;\n  }\n  get choice() {\n    return this._children.length === 1 \u0026\u0026 this._children[0] instanceof Choice ? this._children[0] : void 0;\n  }\n  clone() {\n    const ret = new _Placeholder(this.index);\n    if (this.transform) {\n      ret.transform = this.transform.clone();\n    }\n    ret._children = this.children.map((child) =\u003e child.clone());\n    return ret;\n  }\n};\nvar Choice = class _Choice extends Marker {\n  constructor() {\n    super(...arguments);\n    this.options = [];\n  }\n  appendChild(marker) {\n    if (marker instanceof Text) {\n      marker.parent = this;\n      this.options.push(marker);\n    }\n    return this;\n  }\n  toString() {\n    return this.options[0].value;\n  }\n  len() {\n    return this.options[0].len();\n  }\n  clone() {\n    const ret = new _Choice();\n    this.options.forEach(ret.appendChild, ret);\n    return ret;\n  }\n};\nvar Transform = class _Transform extends Marker {\n  constructor() {\n    super(...arguments);\n    this.regexp = new RegExp(\"\");\n  }\n  resolve(value) {\n    const _this = this;\n    let didMatch = false;\n    let ret = value.replace(this.regexp, function() {\n      didMatch = true;\n      return _this._replace(Array.prototype.slice.call(arguments, 0, -2));\n    });\n    if (!didMatch \u0026\u0026 this._children.some((child) =\u003e child instanceof FormatString \u0026\u0026 Boolean(child.elseValue))) {\n      ret = this._replace([]);\n    }\n    return ret;\n  }\n  _replace(groups) {\n    let ret = \"\";\n    for (const marker of this._children) {\n      if (marker instanceof FormatString) {\n        let value = groups[marker.index] || \"\";\n        value = marker.resolve(value);\n        ret += value;\n      } else {\n        ret += marker.toString();\n      }\n    }\n    return ret;\n  }\n  toString() {\n    return \"\";\n  }\n  clone() {\n    const ret = new _Transform();\n    ret.regexp = new RegExp(this.regexp.source, (this.regexp.ignoreCase ? \"i\" : \"\") + (this.regexp.global ? \"g\" : \"\"));\n    ret._children = this.children.map((child) =\u003e child.clone());\n    return ret;\n  }\n};\nvar FormatString = class _FormatString extends Marker {\n  constructor(index, shorthandName, ifValue, elseValue) {\n    super();\n    this.index = index;\n    this.shorthandName = shorthandName;\n    this.ifValue = ifValue;\n    this.elseValue = elseValue;\n  }\n  resolve(value) {\n    if (this.shorthandName === \"upcase\") {\n      return !value ? \"\" : value.toLocaleUpperCase();\n    } else if (this.shorthandName === \"downcase\") {\n      return !value ? \"\" : value.toLocaleLowerCase();\n    } else if (this.shorthandName === \"capitalize\") {\n      return !value ? \"\" : value[0].toLocaleUpperCase() + value.substr(1);\n    } else if (this.shorthandName === \"pascalcase\") {\n      return !value ? \"\" : this._toPascalCase(value);\n    } else if (this.shorthandName === \"camelcase\") {\n      return !value ? \"\" : this._toCamelCase(value);\n    } else if (Boolean(value) \u0026\u0026 typeof this.ifValue === \"string\") {\n      return this.ifValue;\n    } else if (!Boolean(value) \u0026\u0026 typeof this.elseValue === \"string\") {\n      return this.elseValue;\n    } else {\n      return value || \"\";\n    }\n  }\n  _toPascalCase(value) {\n    const match2 = value.match(/[a-z0-9]+/gi);\n    if (!match2) {\n      return value;\n    }\n    return match2.map((word) =\u003e {\n      return word.charAt(0).toUpperCase() + word.substr(1);\n    }).join(\"\");\n  }\n  _toCamelCase(value) {\n    const match2 = value.match(/[a-z0-9]+/gi);\n    if (!match2) {\n      return value;\n    }\n    return match2.map((word, index) =\u003e {\n      if (index === 0) {\n        return word.charAt(0).toLowerCase() + word.substr(1);\n      }\n      return word.charAt(0).toUpperCase() + word.substr(1);\n    }).join(\"\");\n  }\n  clone() {\n    const ret = new _FormatString(this.index, this.shorthandName, this.ifValue, this.elseValue);\n    return ret;\n  }\n};\nvar Variable = class _Variable extends TransformableMarker {\n  constructor(name) {\n    super();\n    this.name = name;\n  }\n  resolve(resolver) {\n    let value = resolver.resolve(this);\n    if (this.transform) {\n      value = this.transform.resolve(value || \"\");\n    }\n    if (value !== void 0) {\n      this._children = [new Text(value)];\n      return true;\n    }\n    return false;\n  }\n  clone() {\n    const ret = new _Variable(this.name);\n    if (this.transform) {\n      ret.transform = this.transform.clone();\n    }\n    ret._children = this.children.map((child) =\u003e child.clone());\n    return ret;\n  }\n};\nfunction walk(marker, visitor) {\n  const stack = [...marker];\n  while (stack.length \u003e 0) {\n    const marker2 = stack.shift();\n    const recurse = visitor(marker2);\n    if (!recurse) {\n      break;\n    }\n    stack.unshift(...marker2.children);\n  }\n}\nvar TextmateSnippet = class _TextmateSnippet extends Marker {\n  get placeholderInfo() {\n    if (!this._placeholders) {\n      const all = [];\n      let last;\n      this.walk(function(candidate) {\n        if (candidate instanceof Placeholder) {\n          all.push(candidate);\n          last = !last || last.index \u003c candidate.index ? candidate : last;\n        }\n        return true;\n      });\n      this._placeholders = { all, last };\n    }\n    return this._placeholders;\n  }\n  get placeholders() {\n    const { all } = this.placeholderInfo;\n    return all;\n  }\n  offset(marker) {\n    let pos = 0;\n    let found = false;\n    this.walk((candidate) =\u003e {\n      if (candidate === marker) {\n        found = true;\n        return false;\n      }\n      pos += candidate.len();\n      return true;\n    });\n    if (!found) {\n      return -1;\n    }\n    return pos;\n  }\n  fullLen(marker) {\n    let ret = 0;\n    walk([marker], (marker2) =\u003e {\n      ret += marker2.len();\n      return true;\n    });\n    return ret;\n  }\n  enclosingPlaceholders(placeholder) {\n    const ret = [];\n    let { parent } = placeholder;\n    while (parent) {\n      if (parent instanceof Placeholder) {\n        ret.push(parent);\n      }\n      parent = parent.parent;\n    }\n    return ret;\n  }\n  resolveVariables(resolver) {\n    this.walk((candidate) =\u003e {\n      if (candidate instanceof Variable) {\n        if (candidate.resolve(resolver)) {\n          this._placeholders = void 0;\n        }\n      }\n      return true;\n    });\n    return this;\n  }\n  appendChild(child) {\n    this._placeholders = void 0;\n    return super.appendChild(child);\n  }\n  replace(child, others) {\n    this._placeholders = void 0;\n    return super.replace(child, others);\n  }\n  clone() {\n    const ret = new _TextmateSnippet();\n    this._children = this.children.map((child) =\u003e child.clone());\n    return ret;\n  }\n  walk(visitor) {\n    walk(this.children, visitor);\n  }\n};\nvar SnippetParser = class {\n  constructor() {\n    this._scanner = new Scanner2();\n    this._token = { type: 14, pos: 0, len: 0 };\n  }\n  static escape(value) {\n    return value.replace(/\\$|}|\\\\/g, \"\\\\$\u0026\");\n  }\n  static guessNeedsClipboard(template) {\n    return /\\${?CLIPBOARD/.test(template);\n  }\n  parse(value, insertFinalTabstop, enforceFinalTabstop) {\n    const snippet = new TextmateSnippet();\n    this.parseFragment(value, snippet);\n    this.ensureFinalTabstop(snippet, enforceFinalTabstop ?? false, insertFinalTabstop ?? false);\n    return snippet;\n  }\n  parseFragment(value, snippet) {\n    const offset = snippet.children.length;\n    this._scanner.text(value);\n    this._token = this._scanner.next();\n    while (this._parse(snippet)) {\n    }\n    const placeholderDefaultValues = /* @__PURE__ */ new Map();\n    const incompletePlaceholders = [];\n    snippet.walk((marker) =\u003e {\n      if (marker instanceof Placeholder) {\n        if (marker.isFinalTabstop) {\n          placeholderDefaultValues.set(0, void 0);\n        } else if (!placeholderDefaultValues.has(marker.index) \u0026\u0026 marker.children.length \u003e 0) {\n          placeholderDefaultValues.set(marker.index, marker.children);\n        } else {\n          incompletePlaceholders.push(marker);\n        }\n      }\n      return true;\n    });\n    const fillInIncompletePlaceholder = (placeholder, stack2) =\u003e {\n      const defaultValues = placeholderDefaultValues.get(placeholder.index);\n      if (!defaultValues) {\n        return;\n      }\n      const clone2 = new Placeholder(placeholder.index);\n      clone2.transform = placeholder.transform;\n      for (const child of defaultValues) {\n        const newChild = child.clone();\n        clone2.appendChild(newChild);\n        if (newChild instanceof Placeholder \u0026\u0026 placeholderDefaultValues.has(newChild.index) \u0026\u0026 !stack2.has(newChild.index)) {\n          stack2.add(newChild.index);\n          fillInIncompletePlaceholder(newChild, stack2);\n          stack2.delete(newChild.index);\n        }\n      }\n      snippet.replace(placeholder, [clone2]);\n    };\n    const stack = /* @__PURE__ */ new Set();\n    for (const placeholder of incompletePlaceholders) {\n      fillInIncompletePlaceholder(placeholder, stack);\n    }\n    return snippet.children.slice(offset);\n  }\n  ensureFinalTabstop(snippet, enforceFinalTabstop, insertFinalTabstop) {\n    if (enforceFinalTabstop || insertFinalTabstop \u0026\u0026 snippet.placeholders.length \u003e 0) {\n      const finalTabstop = snippet.placeholders.find((p) =\u003e p.index === 0);\n      if (!finalTabstop) {\n        snippet.appendChild(new Placeholder(0));\n      }\n    }\n  }\n  _accept(type, value) {\n    if (type === void 0 || this._token.type === type) {\n      const ret = !value ? true : this._scanner.tokenText(this._token);\n      this._token = this._scanner.next();\n      return ret;\n    }\n    return false;\n  }\n  _backTo(token) {\n    this._scanner.pos = token.pos + token.len;\n    this._token = token;\n    return false;\n  }\n  _until(type) {\n    const start = this._token;\n    while (this._token.type !== type) {\n      if (this._token.type === 14) {\n        return false;\n      } else if (this._token.type === 5) {\n        const nextToken = this._scanner.next();\n        if (nextToken.type !== 0 \u0026\u0026 nextToken.type !== 4 \u0026\u0026 nextToken.type !== 5) {\n          return false;\n        }\n      }\n      this._token = this._scanner.next();\n    }\n    const value = this._scanner.value.substring(start.pos, this._token.pos).replace(/\\\\(\\$|}|\\\\)/g, \"$1\");\n    this._token = this._scanner.next();\n    return value;\n  }\n  _parse(marker) {\n    return this._parseEscaped(marker) || this._parseTabstopOrVariableName(marker) || this._parseComplexPlaceholder(marker) || this._parseComplexVariable(marker) || this._parseAnything(marker);\n  }\n  // \\$, \\\\, \\} -\u003e just text\n  _parseEscaped(marker) {\n    let value;\n    if (value = this._accept(5, true)) {\n      value = this._accept(0, true) || this._accept(4, true) || this._accept(5, true) || value;\n      marker.appendChild(new Text(value));\n      return true;\n    }\n    return false;\n  }\n  // $foo -\u003e variable, $1 -\u003e tabstop\n  _parseTabstopOrVariableName(parent) {\n    let value;\n    const token = this._token;\n    const match2 = this._accept(\n      0\n      /* TokenType.Dollar */\n    ) \u0026\u0026 (value = this._accept(9, true) || this._accept(8, true));\n    if (!match2) {\n      return this._backTo(token);\n    }\n    parent.appendChild(/^\\d+$/.test(value) ? new Placeholder(Number(value)) : new Variable(value));\n    return true;\n  }\n  // ${1:\u003cchildren\u003e}, ${1} -\u003e placeholder\n  _parseComplexPlaceholder(parent) {\n    let index;\n    const token = this._token;\n    const match2 = this._accept(\n      0\n      /* TokenType.Dollar */\n    ) \u0026\u0026 this._accept(\n      3\n      /* TokenType.CurlyOpen */\n    ) \u0026\u0026 (index = this._accept(8, true));\n    if (!match2) {\n      return this._backTo(token);\n    }\n    const placeholder = new Placeholder(Number(index));\n    if (this._accept(\n      1\n      /* TokenType.Colon */\n    )) {\n      while (true) {\n        if (this._accept(\n          4\n          /* TokenType.CurlyClose */\n        )) {\n          parent.appendChild(placeholder);\n          return true;\n        }\n        if (this._parse(placeholder)) {\n          continue;\n        }\n        parent.appendChild(new Text(\"${\" + index + \":\"));\n        placeholder.children.forEach(parent.appendChild, parent);\n        return true;\n      }\n    } else if (placeholder.index \u003e 0 \u0026\u0026 this._accept(\n      7\n      /* TokenType.Pipe */\n    )) {\n      const choice = new Choice();\n      while (true) {\n        if (this._parseChoiceElement(choice)) {\n          if (this._accept(\n            2\n            /* TokenType.Comma */\n          )) {\n            continue;\n          }\n          if (this._accept(\n            7\n            /* TokenType.Pipe */\n          )) {\n            placeholder.appendChild(choice);\n            if (this._accept(\n              4\n              /* TokenType.CurlyClose */\n            )) {\n              parent.appendChild(placeholder);\n              return true;\n            }\n          }\n        }\n        this._backTo(token);\n        return false;\n      }\n    } else if (this._accept(\n      6\n      /* TokenType.Forwardslash */\n    )) {\n      if (this._parseTransform(placeholder)) {\n        parent.appendChild(placeholder);\n        return true;\n      }\n      this._backTo(token);\n      return false;\n    } else if (this._accept(\n      4\n      /* TokenType.CurlyClose */\n    )) {\n      parent.appendChild(placeholder);\n      return true;\n    } else {\n      return this._backTo(token);\n    }\n  }\n  _parseChoiceElement(parent) {\n    const token = this._token;\n    const values = [];\n    while (true) {\n      if (this._token.type === 2 || this._token.type === 7) {\n        break;\n      }\n      let value;\n      if (value = this._accept(5, true)) {\n        value = this._accept(2, true) || this._accept(7, true) || this._accept(5, true) || value;\n      } else {\n        value = this._accept(void 0, true);\n      }\n      if (!value) {\n        this._backTo(token);\n        return false;\n      }\n      values.push(value);\n    }\n    if (values.length === 0) {\n      this._backTo(token);\n      return false;\n    }\n    parent.appendChild(new Text(values.join(\"\")));\n    return true;\n  }\n  // ${foo:\u003cchildren\u003e}, ${foo} -\u003e variable\n  _parseComplexVariable(parent) {\n    let name;\n    const token = this._token;\n    const match2 = this._accept(\n      0\n      /* TokenType.Dollar */\n    ) \u0026\u0026 this._accept(\n      3\n      /* TokenType.CurlyOpen */\n    ) \u0026\u0026 (name = this._accept(9, true));\n    if (!match2) {\n      return this._backTo(token);\n    }\n    const variable = new Variable(name);\n    if (this._accept(\n      1\n      /* TokenType.Colon */\n    )) {\n      while (true) {\n        if (this._accept(\n          4\n          /* TokenType.CurlyClose */\n        )) {\n          parent.appendChild(variable);\n          return true;\n        }\n        if (this._parse(variable)) {\n          continue;\n        }\n        parent.appendChild(new Text(\"${\" + name + \":\"));\n        variable.children.forEach(parent.appendChild, parent);\n        return true;\n      }\n    } else if (this._accept(\n      6\n      /* TokenType.Forwardslash */\n    )) {\n      if (this._parseTransform(variable)) {\n        parent.appendChild(variable);\n        return true;\n      }\n      this._backTo(token);\n      return false;\n    } else if (this._accept(\n      4\n      /* TokenType.CurlyClose */\n    )) {\n      parent.appendChild(variable);\n      return true;\n    } else {\n      return this._backTo(token);\n    }\n  }\n  _parseTransform(parent) {\n    const transform = new Transform();\n    let regexValue = \"\";\n    let regexOptions = \"\";\n    while (true) {\n      if (this._accept(\n        6\n        /* TokenType.Forwardslash */\n      )) {\n        break;\n      }\n      let escaped;\n      if (escaped = this._accept(5, true)) {\n        escaped = this._accept(6, true) || escaped;\n        regexValue += escaped;\n        continue;\n      }\n      if (this._token.type !== 14) {\n        regexValue += this._accept(void 0, true);\n        continue;\n      }\n      return false;\n    }\n    while (true) {\n      if (this._accept(\n        6\n        /* TokenType.Forwardslash */\n      )) {\n        break;\n      }\n      let escaped;\n      if (escaped = this._accept(5, true)) {\n        escaped = this._accept(5, true) || this._accept(6, true) || escaped;\n        transform.appendChild(new Text(escaped));\n        continue;\n      }\n      if (this._parseFormatString(transform) || this._parseAnything(transform)) {\n        continue;\n      }\n      return false;\n    }\n    while (true) {\n      if (this._accept(\n        4\n        /* TokenType.CurlyClose */\n      )) {\n        break;\n      }\n      if (this._token.type !== 14) {\n        regexOptions += this._accept(void 0, true);\n        continue;\n      }\n      return false;\n    }\n    try {\n      transform.regexp = new RegExp(regexValue, regexOptions);\n    } catch (e) {\n      return false;\n    }\n    parent.transform = transform;\n    return true;\n  }\n  _parseFormatString(parent) {\n    const token = this._token;\n    if (!this._accept(\n      0\n      /* TokenType.Dollar */\n    )) {\n      return false;\n    }\n    let complex = false;\n    if (this._accept(\n      3\n      /* TokenType.CurlyOpen */\n    )) {\n      complex = true;\n    }\n    const index = this._accept(8, true);\n    if (!index) {\n      this._backTo(token);\n      return false;\n    } else if (!complex) {\n      parent.appendChild(new FormatString(Number(index)));\n      return true;\n    } else if (this._accept(\n      4\n      /* TokenType.CurlyClose */\n    )) {\n      parent.appendChild(new FormatString(Number(index)));\n      return true;\n    } else if (!this._accept(\n      1\n      /* TokenType.Colon */\n    )) {\n      this._backTo(token);\n      return false;\n    }\n    if (this._accept(\n      6\n      /* TokenType.Forwardslash */\n    )) {\n      const shorthand = this._accept(9, true);\n      if (!shorthand || !this._accept(\n        4\n        /* TokenType.CurlyClose */\n      )) {\n        this._backTo(token);\n        return false;\n      } else {\n        parent.appendChild(new FormatString(Number(index), shorthand));\n        return true;\n      }\n    } else if (this._accept(\n      11\n      /* TokenType.Plus */\n    )) {\n      const ifValue = this._until(\n        4\n        /* TokenType.CurlyClose */\n      );\n      if (ifValue) {\n        parent.appendChild(new FormatString(Number(index), void 0, ifValue, void 0));\n        return true;\n      }\n    } else if (this._accept(\n      12\n      /* TokenType.Dash */\n    )) {\n      const elseValue = this._until(\n        4\n        /* TokenType.CurlyClose */\n      );\n      if (elseValue) {\n        parent.appendChild(new FormatString(Number(index), void 0, void 0, elseValue));\n        return true;\n      }\n    } else if (this._accept(\n      13\n      /* TokenType.QuestionMark */\n    )) {\n      const ifValue = this._until(\n        1\n        /* TokenType.Colon */\n      );\n      if (ifValue) {\n        const elseValue = this._until(\n          4\n          /* TokenType.CurlyClose */\n        );\n        if (elseValue) {\n          parent.appendChild(new FormatString(Number(index), void 0, ifValue, elseValue));\n          return true;\n        }\n      }\n    } else {\n      const elseValue = this._until(\n        4\n        /* TokenType.CurlyClose */\n      );\n      if (elseValue) {\n        parent.appendChild(new FormatString(Number(index), void 0, void 0, elseValue));\n        return true;\n      }\n    }\n    this._backTo(token);\n    return false;\n  }\n  _parseAnything(marker) {\n    if (this._token.type !== 14) {\n      marker.appendChild(new Text(this._scanner.tokenText(this._token)));\n      this._accept(void 0);\n      return true;\n    }\n    return false;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/edit.js\nfunction createCombinedWorkspaceEdit(uri, ranges, edit2) {\n  if (typeof edit2.insertText === \"string\" ? edit2.insertText === \"\" : edit2.insertText.snippet === \"\") {\n    return {\n      edits: edit2.additionalEdit?.edits ?? []\n    };\n  }\n  return {\n    edits: [\n      ...ranges.map((range2) =\u003e new ResourceTextEdit(uri, { range: range2, text: typeof edit2.insertText === \"string\" ? SnippetParser.escape(edit2.insertText) + \"$0\" : edit2.insertText.snippet, insertAsSnippet: true })),\n      ...edit2.additionalEdit?.edits ?? []\n    ]\n  };\n}\nfunction sortEditsByYieldTo(edits) {\n  function yieldsTo(yTo, other) {\n    if (\"mimeType\" in yTo) {\n      return yTo.mimeType === other.handledMimeType;\n    }\n    return !!other.kind \u0026\u0026 yTo.kind.contains(other.kind);\n  }\n  const yieldsToMap = /* @__PURE__ */ new Map();\n  for (const edit2 of edits) {\n    for (const yTo of edit2.yieldTo ?? []) {\n      for (const other of edits) {\n        if (other === edit2) {\n          continue;\n        }\n        if (yieldsTo(yTo, other)) {\n          let arr = yieldsToMap.get(edit2);\n          if (!arr) {\n            arr = [];\n            yieldsToMap.set(edit2, arr);\n          }\n          arr.push(other);\n        }\n      }\n    }\n  }\n  if (!yieldsToMap.size) {\n    return Array.from(edits);\n  }\n  const visited = /* @__PURE__ */ new Set();\n  const tempStack = [];\n  function visit(nodes) {\n    if (!nodes.length) {\n      return [];\n    }\n    const node = nodes[0];\n    if (tempStack.includes(node)) {\n      console.warn(\"Yield to cycle detected\", node);\n      return nodes;\n    }\n    if (visited.has(node)) {\n      return visit(nodes.slice(1));\n    }\n    let pre = [];\n    const yTo = yieldsToMap.get(node);\n    if (yTo) {\n      tempStack.push(node);\n      pre = visit(yTo);\n      tempStack.pop();\n    }\n    visited.add(node);\n    return [...pre, node, ...visit(nodes.slice(1))];\n  }\n  return visit(Array.from(edits));\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/button/button.js\ninit_dom();\ninit_keyboardEvent();\ninit_iconLabels2();\ninit_color();\ninit_event();\ninit_htmlContent();\ninit_lifecycle();\ninit_themables();\nvar unthemedButtonStyles = {\n  buttonBackground: \"#0E639C\",\n  buttonHoverBackground: \"#006BB3\",\n  buttonSeparator: Color.white.toString(),\n  buttonForeground: Color.white.toString(),\n  buttonBorder: void 0,\n  buttonSecondaryBackground: void 0,\n  buttonSecondaryForeground: void 0,\n  buttonSecondaryHoverBackground: void 0\n};\nvar buttonSanitizerConfig = Object.freeze({\n  allowedTags: {\n    override: [\"b\", \"i\", \"u\", \"code\", \"span\"]\n  },\n  allowedAttributes: {\n    override: [\"class\"]\n  }\n});\nvar Button = class extends Disposable {\n  get onDidClick() {\n    return this._onDidClick.event;\n  }\n  constructor(container, options2) {\n    super();\n    this._label = \"\";\n    this._onDidClick = this._register(new Emitter());\n    this._onDidEscape = this._register(new Emitter());\n    this.options = options2;\n    this._element = document.createElement(\"a\");\n    this._element.classList.add(\"monaco-button\");\n    this._element.tabIndex = 0;\n    this._element.setAttribute(\"role\", \"button\");\n    this._element.classList.toggle(\"secondary\", !!options2.secondary);\n    const background = options2.secondary ? options2.buttonSecondaryBackground : options2.buttonBackground;\n    const foreground2 = options2.secondary ? options2.buttonSecondaryForeground : options2.buttonForeground;\n    this._element.style.color = foreground2 || \"\";\n    this._element.style.backgroundColor = background || \"\";\n    if (options2.supportShortLabel) {\n      this._labelShortElement = document.createElement(\"div\");\n      this._labelShortElement.classList.add(\"monaco-button-label-short\");\n      this._element.appendChild(this._labelShortElement);\n      this._labelElement = document.createElement(\"div\");\n      this._labelElement.classList.add(\"monaco-button-label\");\n      this._element.appendChild(this._labelElement);\n      this._element.classList.add(\"monaco-text-button-with-short-label\");\n    }\n    if (typeof options2.title === \"string\") {\n      this.setTitle(options2.title);\n    }\n    if (typeof options2.ariaLabel === \"string\") {\n      this._element.setAttribute(\"aria-label\", options2.ariaLabel);\n    }\n    container.appendChild(this._element);\n    this.enabled = !options2.disabled;\n    this._register(Gesture.addTarget(this._element));\n    [EventType.CLICK, EventType2.Tap].forEach((eventType) =\u003e {\n      this._register(addDisposableListener(this._element, eventType, (e) =\u003e {\n        if (!this.enabled) {\n          EventHelper.stop(e);\n          return;\n        }\n        this._onDidClick.fire(e);\n      }));\n    });\n    this._register(addDisposableListener(this._element, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      let eventHandled = false;\n      if (this.enabled \u0026\u0026 (event.equals(\n        3\n        /* KeyCode.Enter */\n      ) || event.equals(\n        10\n        /* KeyCode.Space */\n      ))) {\n        this._onDidClick.fire(e);\n        eventHandled = true;\n      } else if (event.equals(\n        9\n        /* KeyCode.Escape */\n      )) {\n        this._onDidEscape.fire(e);\n        this._element.blur();\n        eventHandled = true;\n      }\n      if (eventHandled) {\n        EventHelper.stop(event, true);\n      }\n    }));\n    this._register(addDisposableListener(this._element, EventType.MOUSE_OVER, (e) =\u003e {\n      if (!this._element.classList.contains(\"disabled\")) {\n        this.updateBackground(true);\n      }\n    }));\n    this._register(addDisposableListener(this._element, EventType.MOUSE_OUT, (e) =\u003e {\n      this.updateBackground(false);\n    }));\n    this.focusTracker = this._register(trackFocus(this._element));\n    this._register(this.focusTracker.onDidFocus(() =\u003e {\n      if (this.enabled) {\n        this.updateBackground(true);\n      }\n    }));\n    this._register(this.focusTracker.onDidBlur(() =\u003e {\n      if (this.enabled) {\n        this.updateBackground(false);\n      }\n    }));\n  }\n  dispose() {\n    super.dispose();\n    this._element.remove();\n  }\n  getContentElements(content) {\n    const elements = [];\n    for (let segment of renderLabelWithIcons(content)) {\n      if (typeof segment === \"string\") {\n        segment = segment.trim();\n        if (segment === \"\") {\n          continue;\n        }\n        const node = document.createElement(\"span\");\n        node.textContent = segment;\n        elements.push(node);\n      } else {\n        elements.push(segment);\n      }\n    }\n    return elements;\n  }\n  updateBackground(hover) {\n    let background;\n    if (this.options.secondary) {\n      background = hover ? this.options.buttonSecondaryHoverBackground : this.options.buttonSecondaryBackground;\n    } else {\n      background = hover ? this.options.buttonHoverBackground : this.options.buttonBackground;\n    }\n    if (background) {\n      this._element.style.backgroundColor = background;\n    }\n  }\n  get element() {\n    return this._element;\n  }\n  set label(value) {\n    if (this._label === value) {\n      return;\n    }\n    if (isMarkdownString(this._label) \u0026\u0026 isMarkdownString(value) \u0026\u0026 markdownStringEqual(this._label, value)) {\n      return;\n    }\n    this._element.classList.add(\"monaco-text-button\");\n    const labelElement = this.options.supportShortLabel ? this._labelElement : this._element;\n    if (isMarkdownString(value)) {\n      const rendered = renderMarkdown(value, void 0, document.createElement(\"span\"));\n      rendered.dispose();\n      const root = rendered.element.querySelector(\"p\")?.innerHTML;\n      if (root) {\n        safeSetInnerHtml(labelElement, root, buttonSanitizerConfig);\n      } else {\n        reset(labelElement);\n      }\n    } else {\n      if (this.options.supportIcons) {\n        reset(labelElement, ...this.getContentElements(value));\n      } else {\n        labelElement.textContent = value;\n      }\n    }\n    let title = \"\";\n    if (typeof this.options.title === \"string\") {\n      title = this.options.title;\n    } else if (this.options.title) {\n      title = renderAsPlaintext(value);\n    }\n    this.setTitle(title);\n    this._setAriaLabel();\n    this._label = value;\n  }\n  get label() {\n    return this._label;\n  }\n  _setAriaLabel() {\n    if (typeof this.options.ariaLabel === \"string\") {\n      this._element.setAttribute(\"aria-label\", this.options.ariaLabel);\n    } else if (typeof this.options.title === \"string\") {\n      this._element.setAttribute(\"aria-label\", this.options.title);\n    }\n  }\n  set icon(icon) {\n    this._setAriaLabel();\n    const oldIcons = Array.from(this._element.classList).filter((item) =\u003e item.startsWith(\"codicon-\"));\n    this._element.classList.remove(...oldIcons);\n    this._element.classList.add(...ThemeIcon.asClassNameArray(icon));\n  }\n  set enabled(value) {\n    if (value) {\n      this._element.classList.remove(\"disabled\");\n      this._element.setAttribute(\"aria-disabled\", String(false));\n      this._element.tabIndex = 0;\n    } else {\n      this._element.classList.add(\"disabled\");\n      this._element.setAttribute(\"aria-disabled\", String(true));\n    }\n  }\n  get enabled() {\n    return !this._element.classList.contains(\"disabled\");\n  }\n  setTitle(title) {\n    if (!this._hover \u0026\u0026 title !== \"\") {\n      this._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(this.options.hoverDelegate ?? getDefaultHoverDelegate(\"element\"), this._element, title));\n    } else if (this._hover) {\n      this._hover.update(title);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js\ninit_async();\ninit_codicons();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/errorMessage.js\ninit_arrays();\ninit_types();\ninit_nls();\nfunction exceptionToErrorMessage(exception, verbose) {\n  if (verbose \u0026\u0026 (exception.stack || exception.stacktrace)) {\n    return localize(29, \"{0}: {1}\", detectSystemErrorMessage(exception), stackToString(exception.stack) || stackToString(exception.stacktrace));\n  }\n  return detectSystemErrorMessage(exception);\n}\nfunction stackToString(stack) {\n  if (Array.isArray(stack)) {\n    return stack.join(\"\\n\");\n  }\n  return stack;\n}\nfunction detectSystemErrorMessage(exception) {\n  if (exception.code === \"ERR_UNC_HOST_NOT_ALLOWED\") {\n    return `${exception.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`;\n  }\n  if (typeof exception.code === \"string\" \u0026\u0026 typeof exception.errno === \"number\" \u0026\u0026 typeof exception.syscall === \"string\") {\n    return localize(30, \"A system error occurred ({0})\", exception.message);\n  }\n  return exception.message || localize(31, \"An unknown error occurred. Please consult the log for more details.\");\n}\nfunction toErrorMessage(error = null, verbose = false) {\n  if (!error) {\n    return localize(32, \"An unknown error occurred. Please consult the log for more details.\");\n  }\n  if (Array.isArray(error)) {\n    const errors = coalesce(error);\n    const msg = toErrorMessage(errors[0], verbose);\n    if (errors.length \u003e 1) {\n      return localize(33, \"{0} ({1} errors in total)\", msg, errors.length);\n    }\n    return msg;\n  }\n  if (isString(error)) {\n    return error;\n  }\n  if (error.detail) {\n    const detail = error.detail;\n    if (detail.error) {\n      return exceptionToErrorMessage(detail.error, verbose);\n    }\n    if (detail.exception) {\n      return exceptionToErrorMessage(detail.exception, verbose);\n    }\n  }\n  if (error.stack) {\n    return exceptionToErrorMessage(error, verbose);\n  }\n  if (error.message) {\n    return error.message;\n  }\n  return localize(34, \"An unknown error occurred. Please consult the log for more details.\");\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_themables();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actionWidget/browser/actionWidget.js\ninit_dom();\ninit_lifecycle();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actionWidget/browser/actionList.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.js\ninit_dom();\ninit_lifecycle();\ninit_objects();\ninit_nls();\nvar $3 = $;\nvar unthemedKeybindingLabelOptions = {\n  keybindingLabelBackground: void 0,\n  keybindingLabelForeground: void 0,\n  keybindingLabelBorder: void 0,\n  keybindingLabelBottomBorder: void 0,\n  keybindingLabelShadow: void 0\n};\nvar KeybindingLabel = class _KeybindingLabel extends Disposable {\n  constructor(container, os, options2) {\n    super();\n    this.os = os;\n    this.keyElements = /* @__PURE__ */ new Set();\n    this.options = options2 || /* @__PURE__ */ Object.create(null);\n    const labelForeground = this.options.keybindingLabelForeground;\n    this.domNode = append(container, $3(\".monaco-keybinding\"));\n    if (labelForeground) {\n      this.domNode.style.color = labelForeground;\n    }\n    this.hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate(\"mouse\"), this.domNode, \"\"));\n    this.didEverRender = false;\n    container.appendChild(this.domNode);\n  }\n  set(keybinding, matches) {\n    if (this.didEverRender \u0026\u0026 this.keybinding === keybinding \u0026\u0026 _KeybindingLabel.areSame(this.matches, matches)) {\n      return;\n    }\n    this.keybinding = keybinding;\n    this.matches = matches;\n    this.render();\n  }\n  render() {\n    this.clear();\n    if (this.keybinding) {\n      const chords = this.keybinding.getChords();\n      if (chords[0]) {\n        this.renderChord(this.domNode, chords[0], this.matches ? this.matches.firstPart : null);\n      }\n      for (let i2 = 1; i2 \u003c chords.length; i2++) {\n        append(this.domNode, $3(\"span.monaco-keybinding-key-chord-separator\", void 0, \" \"));\n        this.renderChord(this.domNode, chords[i2], this.matches ? this.matches.chordPart : null);\n      }\n      const title = this.options.disableTitle ?? false ? void 0 : this.keybinding.getAriaLabel() || void 0;\n      this.hover.update(title);\n      this.domNode.setAttribute(\"aria-label\", title || \"\");\n    } else if (this.options \u0026\u0026 this.options.renderUnboundKeybindings) {\n      this.renderUnbound(this.domNode);\n    }\n    this.didEverRender = true;\n  }\n  clear() {\n    clearNode(this.domNode);\n    this.keyElements.clear();\n  }\n  renderChord(parent, chord, match2) {\n    const modifierLabels = UILabelProvider.modifierLabels[this.os];\n    if (chord.ctrlKey) {\n      this.renderKey(parent, modifierLabels.ctrlKey, Boolean(match2?.ctrlKey), modifierLabels.separator);\n    }\n    if (chord.shiftKey) {\n      this.renderKey(parent, modifierLabels.shiftKey, Boolean(match2?.shiftKey), modifierLabels.separator);\n    }\n    if (chord.altKey) {\n      this.renderKey(parent, modifierLabels.altKey, Boolean(match2?.altKey), modifierLabels.separator);\n    }\n    if (chord.metaKey) {\n      this.renderKey(parent, modifierLabels.metaKey, Boolean(match2?.metaKey), modifierLabels.separator);\n    }\n    const keyLabel = chord.keyLabel;\n    if (keyLabel) {\n      this.renderKey(parent, keyLabel, Boolean(match2?.keyCode), \"\");\n    }\n  }\n  renderKey(parent, label, highlight, separator2) {\n    append(parent, this.createKeyElement(label, highlight ? \".highlight\" : \"\"));\n    if (separator2) {\n      append(parent, $3(\"span.monaco-keybinding-key-separator\", void 0, separator2));\n    }\n  }\n  renderUnbound(parent) {\n    append(parent, this.createKeyElement(localize(15, \"Unbound\")));\n  }\n  createKeyElement(label, extraClass = \"\") {\n    const keyElement = $3(\"span.monaco-keybinding-key\" + extraClass, void 0, label);\n    this.keyElements.add(keyElement);\n    if (this.options.keybindingLabelBackground) {\n      keyElement.style.backgroundColor = this.options.keybindingLabelBackground;\n    }\n    if (this.options.keybindingLabelBorder) {\n      keyElement.style.borderColor = this.options.keybindingLabelBorder;\n    }\n    if (this.options.keybindingLabelBottomBorder) {\n      keyElement.style.borderBottomColor = this.options.keybindingLabelBottomBorder;\n    }\n    if (this.options.keybindingLabelShadow) {\n      keyElement.style.boxShadow = `inset 0 -1px 0 ${this.options.keybindingLabelShadow}`;\n    }\n    return keyElement;\n  }\n  static areSame(a, b) {\n    if (a === b || !a \u0026\u0026 !b) {\n      return true;\n    }\n    return !!a \u0026\u0026 !!b \u0026\u0026 equals2(a.firstPart, b.firstPart) \u0026\u0026 equals2(a.chordPart, b.chordPart);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actionWidget/browser/actionList.js\ninit_cancellation();\ninit_codicons();\ninit_lifecycle();\ninit_platform();\ninit_themables();\ninit_nls();\ninit_colorRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/layout/browser/layoutService.js\ninit_instantiation();\nvar ILayoutService = createDecorator(\"layoutService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actionWidget/browser/actionList.js\nvar __decorate49 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param44 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar acceptSelectedActionCommand = \"acceptSelectedCodeAction\";\nvar previewSelectedActionCommand = \"previewSelectedCodeAction\";\nvar HeaderRenderer = class {\n  get templateId() {\n    return \"header\";\n  }\n  renderTemplate(container) {\n    container.classList.add(\"group-header\");\n    const text2 = document.createElement(\"span\");\n    container.append(text2);\n    return { container, text: text2 };\n  }\n  renderElement(element, _index, templateData) {\n    templateData.text.textContent = element.group?.title ?? element.label ?? \"\";\n  }\n  disposeTemplate(_templateData) {\n  }\n};\nvar SeparatorRenderer = class {\n  get templateId() {\n    return \"separator\";\n  }\n  renderTemplate(container) {\n    container.classList.add(\"separator\");\n    const text2 = document.createElement(\"span\");\n    container.append(text2);\n    return { container, text: text2 };\n  }\n  renderElement(element, _index, templateData) {\n    templateData.text.textContent = element.label ?? \"\";\n  }\n  disposeTemplate(_templateData) {\n  }\n};\nvar ActionItemRenderer = class ActionItemRenderer2 {\n  get templateId() {\n    return \"action\";\n  }\n  constructor(_supportsPreview, _keybindingService) {\n    this._supportsPreview = _supportsPreview;\n    this._keybindingService = _keybindingService;\n  }\n  renderTemplate(container) {\n    container.classList.add(this.templateId);\n    const icon = document.createElement(\"div\");\n    icon.className = \"icon\";\n    container.append(icon);\n    const text2 = document.createElement(\"span\");\n    text2.className = \"title\";\n    container.append(text2);\n    const description = document.createElement(\"span\");\n    description.className = \"description\";\n    container.append(description);\n    const keybinding = new KeybindingLabel(container, OS);\n    return { container, icon, text: text2, description, keybinding };\n  }\n  renderElement(element, _index, data) {\n    if (element.group?.icon) {\n      data.icon.className = ThemeIcon.asClassName(element.group.icon);\n      if (element.group.icon.color) {\n        data.icon.style.color = asCssVariable(element.group.icon.color.id);\n      }\n    } else {\n      data.icon.className = ThemeIcon.asClassName(Codicon.lightBulb);\n      data.icon.style.color = \"var(--vscode-editorLightBulb-foreground)\";\n    }\n    if (!element.item || !element.label) {\n      return;\n    }\n    setVisibility(!element.hideIcon, data.icon);\n    data.text.textContent = stripNewlines(element.label);\n    if (element.keybinding) {\n      data.description.textContent = element.keybinding.getLabel();\n      data.description.style.display = \"inline\";\n      data.description.style.letterSpacing = \"0.5px\";\n    } else if (element.description) {\n      data.description.textContent = stripNewlines(element.description);\n      data.description.style.display = \"inline\";\n    } else {\n      data.description.textContent = \"\";\n      data.description.style.display = \"none\";\n    }\n    const actionTitle = this._keybindingService.lookupKeybinding(acceptSelectedActionCommand)?.getLabel();\n    const previewTitle = this._keybindingService.lookupKeybinding(previewSelectedActionCommand)?.getLabel();\n    data.container.classList.toggle(\"option-disabled\", element.disabled);\n    if (element.tooltip) {\n      data.container.title = element.tooltip;\n    } else if (element.disabled) {\n      data.container.title = element.label;\n    } else if (actionTitle \u0026\u0026 previewTitle) {\n      if (this._supportsPreview \u0026\u0026 element.canPreview) {\n        data.container.title = localize(1635, \"{0} to Apply, {1} to Preview\", actionTitle, previewTitle);\n      } else {\n        data.container.title = localize(1636, \"{0} to Apply\", actionTitle);\n      }\n    } else {\n      data.container.title = \"\";\n    }\n  }\n  disposeTemplate(templateData) {\n    templateData.keybinding.dispose();\n  }\n};\nActionItemRenderer = __decorate49([\n  __param44(1, IKeybindingService)\n], ActionItemRenderer);\nvar AcceptSelectedEvent = class extends UIEvent {\n  constructor() {\n    super(\"acceptSelectedAction\");\n  }\n};\nvar PreviewSelectedEvent = class extends UIEvent {\n  constructor() {\n    super(\"previewSelectedAction\");\n  }\n};\nfunction getKeyboardNavigationLabel(item) {\n  if (item.kind === \"action\") {\n    return item.label;\n  }\n  return void 0;\n}\nvar ActionList = class ActionList2 extends Disposable {\n  constructor(user, preview, items, _delegate, accessibilityProvider, _contextViewService, _keybindingService, _layoutService) {\n    super();\n    this._delegate = _delegate;\n    this._contextViewService = _contextViewService;\n    this._keybindingService = _keybindingService;\n    this._layoutService = _layoutService;\n    this._actionLineHeight = 24;\n    this._headerLineHeight = 26;\n    this._separatorLineHeight = 8;\n    this.cts = this._register(new CancellationTokenSource());\n    this.domNode = document.createElement(\"div\");\n    this.domNode.classList.add(\"actionList\");\n    const virtualDelegate = {\n      getHeight: (element) =\u003e {\n        switch (element.kind) {\n          case \"header\":\n            return this._headerLineHeight;\n          case \"separator\":\n            return this._separatorLineHeight;\n          default:\n            return this._actionLineHeight;\n        }\n      },\n      getTemplateId: (element) =\u003e element.kind\n    };\n    this._list = this._register(new List(user, this.domNode, virtualDelegate, [\n      new ActionItemRenderer(preview, this._keybindingService),\n      new HeaderRenderer(),\n      new SeparatorRenderer()\n    ], {\n      keyboardSupport: false,\n      typeNavigationEnabled: true,\n      keyboardNavigationLabelProvider: { getKeyboardNavigationLabel },\n      accessibilityProvider: {\n        getAriaLabel: (element) =\u003e {\n          if (element.kind === \"action\") {\n            let label = element.label ? stripNewlines(element?.label) : \"\";\n            if (element.disabled) {\n              label = localize(1637, \"{0}, Disabled Reason: {1}\", label, element.disabled);\n            }\n            return label;\n          }\n          return null;\n        },\n        getWidgetAriaLabel: () =\u003e localize(1638, \"Action Widget\"),\n        getRole: (e) =\u003e {\n          switch (e.kind) {\n            case \"action\":\n              return \"option\";\n            case \"separator\":\n              return \"separator\";\n            default:\n              return \"separator\";\n          }\n        },\n        getWidgetRole: () =\u003e \"listbox\",\n        ...accessibilityProvider\n      }\n    }));\n    this._list.style(defaultListStyles);\n    this._register(this._list.onMouseClick((e) =\u003e this.onListClick(e)));\n    this._register(this._list.onMouseOver((e) =\u003e this.onListHover(e)));\n    this._register(this._list.onDidChangeFocus(() =\u003e this.onFocus()));\n    this._register(this._list.onDidChangeSelection((e) =\u003e this.onListSelection(e)));\n    this._allMenuItems = items;\n    this._list.splice(0, this._list.length, this._allMenuItems);\n    if (this._list.length) {\n      this.focusNext();\n    }\n  }\n  focusCondition(element) {\n    return !element.disabled \u0026\u0026 element.kind === \"action\";\n  }\n  hide(didCancel) {\n    this._delegate.onHide(didCancel);\n    this.cts.cancel();\n    this._contextViewService.hideContextView();\n  }\n  layout(minWidth) {\n    const numHeaders = this._allMenuItems.filter((item) =\u003e item.kind === \"header\").length;\n    const numSeparators = this._allMenuItems.filter((item) =\u003e item.kind === \"separator\").length;\n    const itemsHeight = this._allMenuItems.length * this._actionLineHeight;\n    const heightWithHeaders = itemsHeight + numHeaders * this._headerLineHeight - numHeaders * this._actionLineHeight;\n    const heightWithSeparators = heightWithHeaders + numSeparators * this._separatorLineHeight - numSeparators * this._actionLineHeight;\n    this._list.layout(heightWithSeparators);\n    let maxWidth = minWidth;\n    if (this._allMenuItems.length \u003e= 50) {\n      maxWidth = 380;\n    } else {\n      const itemWidths = this._allMenuItems.map((_, index) =\u003e {\n        const element = this.domNode.ownerDocument.getElementById(this._list.getElementID(index));\n        if (element) {\n          element.style.width = \"auto\";\n          const width2 = element.getBoundingClientRect().width;\n          element.style.width = \"\";\n          return width2;\n        }\n        return 0;\n      });\n      maxWidth = Math.max(...itemWidths, minWidth);\n    }\n    const maxVhPrecentage = 0.7;\n    const height = Math.min(heightWithSeparators, this._layoutService.getContainer(getWindow(this.domNode)).clientHeight * maxVhPrecentage);\n    this._list.layout(height, maxWidth);\n    this.domNode.style.height = `${height}px`;\n    this._list.domFocus();\n    return maxWidth;\n  }\n  focusPrevious() {\n    this._list.focusPrevious(1, true, void 0, this.focusCondition);\n  }\n  focusNext() {\n    this._list.focusNext(1, true, void 0, this.focusCondition);\n  }\n  acceptSelected(preview) {\n    const focused = this._list.getFocus();\n    if (focused.length === 0) {\n      return;\n    }\n    const focusIndex = focused[0];\n    const element = this._list.element(focusIndex);\n    if (!this.focusCondition(element)) {\n      return;\n    }\n    const event = preview ? new PreviewSelectedEvent() : new AcceptSelectedEvent();\n    this._list.setSelection([focusIndex], event);\n  }\n  onListSelection(e) {\n    if (!e.elements.length) {\n      return;\n    }\n    const element = e.elements[0];\n    if (element.item \u0026\u0026 this.focusCondition(element)) {\n      this._delegate.onSelect(element.item, e.browserEvent instanceof PreviewSelectedEvent);\n    } else {\n      this._list.setSelection([]);\n    }\n  }\n  onFocus() {\n    const focused = this._list.getFocus();\n    if (focused.length === 0) {\n      return;\n    }\n    const focusIndex = focused[0];\n    const element = this._list.element(focusIndex);\n    this._delegate.onFocus?.(element.item);\n  }\n  async onListHover(e) {\n    const element = e.element;\n    if (element \u0026\u0026 element.item \u0026\u0026 this.focusCondition(element)) {\n      if (this._delegate.onHover \u0026\u0026 !element.disabled \u0026\u0026 element.kind === \"action\") {\n        const result = await this._delegate.onHover(element.item, this.cts.token);\n        element.canPreview = result ? result.canPreview : void 0;\n      }\n      if (e.index) {\n        this._list.splice(e.index, 1, [element]);\n      }\n    }\n    this._list.setFocus(typeof e.index === \"number\" ? [e.index] : []);\n  }\n  onListClick(e) {\n    if (e.element \u0026\u0026 this.focusCondition(e.element)) {\n      this._list.setFocus([]);\n    }\n  }\n};\nActionList = __decorate49([\n  __param44(5, IContextViewService),\n  __param44(6, IKeybindingService),\n  __param44(7, ILayoutService)\n], ActionList);\nfunction stripNewlines(str) {\n  return str.replace(/\\r\\n|\\r|\\n/g, \" \");\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/actionWidget/browser/actionWidget.js\ninit_actions2();\ninit_contextkey();\ninit_extensions();\ninit_instantiation();\ninit_colorRegistry();\nvar __decorate50 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param45 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nregisterColor(\"actionBar.toggledBackground\", inputActiveOptionBackground, localize(1639, \"Background color for toggled action items in action bar.\"));\nvar ActionWidgetContextKeys = {\n  Visible: new RawContextKey(\"codeActionMenuVisible\", false, localize(1640, \"Whether the action widget list is visible\"))\n};\nvar IActionWidgetService = createDecorator(\"actionWidgetService\");\nvar ActionWidgetService = class ActionWidgetService2 extends Disposable {\n  get isVisible() {\n    return ActionWidgetContextKeys.Visible.getValue(this._contextKeyService) || false;\n  }\n  constructor(_contextViewService, _contextKeyService, _instantiationService) {\n    super();\n    this._contextViewService = _contextViewService;\n    this._contextKeyService = _contextKeyService;\n    this._instantiationService = _instantiationService;\n    this._list = this._register(new MutableDisposable());\n  }\n  show(user, supportsPreview, items, delegate, anchor, container, actionBarActions, accessibilityProvider) {\n    const visibleContext = ActionWidgetContextKeys.Visible.bindTo(this._contextKeyService);\n    const list2 = this._instantiationService.createInstance(ActionList, user, supportsPreview, items, delegate, accessibilityProvider);\n    this._contextViewService.showContextView({\n      getAnchor: () =\u003e anchor,\n      render: (container2) =\u003e {\n        visibleContext.set(true);\n        return this._renderWidget(container2, list2, actionBarActions ?? []);\n      },\n      onHide: (didCancel) =\u003e {\n        visibleContext.reset();\n        this._onWidgetClosed(didCancel);\n      }\n    }, container, false);\n  }\n  acceptSelected(preview) {\n    this._list.value?.acceptSelected(preview);\n  }\n  focusPrevious() {\n    this._list?.value?.focusPrevious();\n  }\n  focusNext() {\n    this._list?.value?.focusNext();\n  }\n  hide(didCancel) {\n    this._list.value?.hide(didCancel);\n    this._list.clear();\n  }\n  _renderWidget(element, list2, actionBarActions) {\n    const widget = document.createElement(\"div\");\n    widget.classList.add(\"action-widget\");\n    element.appendChild(widget);\n    this._list.value = list2;\n    if (this._list.value) {\n      widget.appendChild(this._list.value.domNode);\n    } else {\n      throw new Error(\"List has no value\");\n    }\n    const renderDisposables = new DisposableStore();\n    const menuBlock = document.createElement(\"div\");\n    const block2 = element.appendChild(menuBlock);\n    block2.classList.add(\"context-view-block\");\n    renderDisposables.add(addDisposableListener(block2, EventType.MOUSE_DOWN, (e) =\u003e e.stopPropagation()));\n    const pointerBlockDiv = document.createElement(\"div\");\n    const pointerBlock = element.appendChild(pointerBlockDiv);\n    pointerBlock.classList.add(\"context-view-pointerBlock\");\n    renderDisposables.add(addDisposableListener(pointerBlock, EventType.POINTER_MOVE, () =\u003e pointerBlock.remove()));\n    renderDisposables.add(addDisposableListener(pointerBlock, EventType.MOUSE_DOWN, () =\u003e pointerBlock.remove()));\n    let actionBarWidth = 0;\n    if (actionBarActions.length) {\n      const actionBar2 = this._createActionBar(\".action-widget-action-bar\", actionBarActions);\n      if (actionBar2) {\n        widget.appendChild(actionBar2.getContainer().parentElement);\n        renderDisposables.add(actionBar2);\n        actionBarWidth = actionBar2.getContainer().offsetWidth;\n      }\n    }\n    const width2 = this._list.value?.layout(actionBarWidth);\n    widget.style.width = `${width2}px`;\n    const focusTracker = renderDisposables.add(trackFocus(element));\n    renderDisposables.add(focusTracker.onDidBlur(() =\u003e this.hide(true)));\n    return renderDisposables;\n  }\n  _createActionBar(className2, actions) {\n    if (!actions.length) {\n      return void 0;\n    }\n    const container = $(className2);\n    const actionBar2 = new ActionBar(container);\n    actionBar2.push(actions, { icon: false, label: true });\n    return actionBar2;\n  }\n  _onWidgetClosed(didCancel) {\n    this._list.value?.hide(didCancel);\n  }\n};\nActionWidgetService = __decorate50([\n  __param45(0, IContextViewService),\n  __param45(1, IContextKeyService),\n  __param45(2, IInstantiationService)\n], ActionWidgetService);\nregisterSingleton(\n  IActionWidgetService,\n  ActionWidgetService,\n  1\n  /* InstantiationType.Delayed */\n);\nvar weight = 100 + 1e3;\nregisterAction2(class extends Action2 {\n  constructor() {\n    super({\n      id: \"hideCodeActionWidget\",\n      title: localize2(1641, \"Hide action widget\"),\n      precondition: ActionWidgetContextKeys.Visible,\n      keybinding: {\n        weight,\n        primary: 9,\n        secondary: [\n          1024 | 9\n          /* KeyCode.Escape */\n        ]\n      }\n    });\n  }\n  run(accessor) {\n    accessor.get(IActionWidgetService).hide(true);\n  }\n});\nregisterAction2(class extends Action2 {\n  constructor() {\n    super({\n      id: \"selectPrevCodeAction\",\n      title: localize2(1642, \"Select previous action\"),\n      precondition: ActionWidgetContextKeys.Visible,\n      keybinding: {\n        weight,\n        primary: 16,\n        secondary: [\n          2048 | 16\n          /* KeyCode.UpArrow */\n        ],\n        mac: { primary: 16, secondary: [\n          2048 | 16,\n          256 | 46\n          /* KeyCode.KeyP */\n        ] }\n      }\n    });\n  }\n  run(accessor) {\n    const widgetService = accessor.get(IActionWidgetService);\n    if (widgetService instanceof ActionWidgetService) {\n      widgetService.focusPrevious();\n    }\n  }\n});\nregisterAction2(class extends Action2 {\n  constructor() {\n    super({\n      id: \"selectNextCodeAction\",\n      title: localize2(1643, \"Select next action\"),\n      precondition: ActionWidgetContextKeys.Visible,\n      keybinding: {\n        weight,\n        primary: 18,\n        secondary: [\n          2048 | 18\n          /* KeyCode.DownArrow */\n        ],\n        mac: { primary: 18, secondary: [\n          2048 | 18,\n          256 | 44\n          /* KeyCode.KeyN */\n        ] }\n      }\n    });\n  }\n  run(accessor) {\n    const widgetService = accessor.get(IActionWidgetService);\n    if (widgetService instanceof ActionWidgetService) {\n      widgetService.focusNext();\n    }\n  }\n});\nregisterAction2(class extends Action2 {\n  constructor() {\n    super({\n      id: acceptSelectedActionCommand,\n      title: localize2(1644, \"Accept selected action\"),\n      precondition: ActionWidgetContextKeys.Visible,\n      keybinding: {\n        weight,\n        primary: 3,\n        secondary: [\n          2048 | 89\n          /* KeyCode.Period */\n        ]\n      }\n    });\n  }\n  run(accessor) {\n    const widgetService = accessor.get(IActionWidgetService);\n    if (widgetService instanceof ActionWidgetService) {\n      widgetService.acceptSelected();\n    }\n  }\n});\nregisterAction2(class extends Action2 {\n  constructor() {\n    super({\n      id: previewSelectedActionCommand,\n      title: localize2(1645, \"Preview selected action\"),\n      precondition: ActionWidgetContextKeys.Visible,\n      keybinding: {\n        weight,\n        primary: 2048 | 3\n      }\n    });\n  }\n  run(accessor) {\n    const widgetService = accessor.get(IActionWidgetService);\n    if (widgetService instanceof ActionWidgetService) {\n      widgetService.acceptSelected(true);\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js\ninit_contextkey();\ninit_instantiation();\ninit_editorState();\nvar __decorate51 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param46 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar PostEditWidget_1;\nvar PostEditWidget = class PostEditWidget2 extends Disposable {\n  static {\n    PostEditWidget_1 = this;\n  }\n  static {\n    this.baseId = \"editor.widget.postEditWidget\";\n  }\n  constructor(typeId, editor2, visibleContext, showCommand, range2, edits, onSelectNewEdit, additionalActions, contextKeyService, _keybindingService, _actionWidgetService) {\n    super();\n    this.typeId = typeId;\n    this.editor = editor2;\n    this.showCommand = showCommand;\n    this.range = range2;\n    this.edits = edits;\n    this.onSelectNewEdit = onSelectNewEdit;\n    this.additionalActions = additionalActions;\n    this._keybindingService = _keybindingService;\n    this._actionWidgetService = _actionWidgetService;\n    this.allowEditorOverflow = true;\n    this.suppressMouseDown = true;\n    this.create();\n    this.visibleContext = visibleContext.bindTo(contextKeyService);\n    this.visibleContext.set(true);\n    this._register(toDisposable(() =\u003e this.visibleContext.reset()));\n    this.editor.addContentWidget(this);\n    this.editor.layoutContentWidget(this);\n    this._register(toDisposable((() =\u003e this.editor.removeContentWidget(this))));\n    this._register(this.editor.onDidChangeCursorPosition((e) =\u003e {\n      this.dispose();\n    }));\n    this._register(Event.runAndSubscribe(_keybindingService.onDidUpdateKeybindings, () =\u003e {\n      this._updateButtonTitle();\n    }));\n  }\n  _updateButtonTitle() {\n    const binding = this._keybindingService.lookupKeybinding(this.showCommand.id)?.getLabel();\n    this.button.element.title = this.showCommand.label + (binding ? ` (${binding})` : \"\");\n  }\n  create() {\n    this.domNode = $(\".post-edit-widget\");\n    this.button = this._register(new Button(this.domNode, {\n      supportIcons: true\n    }));\n    this.button.label = \"$(insert)\";\n    this._register(addDisposableListener(this.domNode, EventType.CLICK, () =\u003e this.showSelector()));\n  }\n  getId() {\n    return PostEditWidget_1.baseId + \".\" + this.typeId;\n  }\n  getDomNode() {\n    return this.domNode;\n  }\n  getPosition() {\n    return {\n      position: this.range.getEndPosition(),\n      preference: [\n        2\n        /* ContentWidgetPositionPreference.BELOW */\n      ]\n    };\n  }\n  showSelector() {\n    const pos = getDomNodePagePosition(this.button.element);\n    const anchor = { x: pos.left + pos.width, y: pos.top + pos.height };\n    this._actionWidgetService.show(\"postEditWidget\", false, this.edits.allEdits.map((edit2, i2) =\u003e {\n      return {\n        kind: \"action\",\n        item: edit2,\n        label: edit2.title,\n        disabled: false,\n        canPreview: false,\n        group: { title: \"\", icon: ThemeIcon.fromId(i2 === this.edits.activeEditIndex ? Codicon.check.id : Codicon.blank.id) }\n      };\n    }), {\n      onHide: () =\u003e {\n        this.editor.focus();\n      },\n      onSelect: (item) =\u003e {\n        this._actionWidgetService.hide(false);\n        const i2 = this.edits.allEdits.findIndex((edit2) =\u003e edit2 === item);\n        if (i2 !== this.edits.activeEditIndex) {\n          return this.onSelectNewEdit(i2);\n        }\n      }\n    }, anchor, this.editor.getDomNode() ?? void 0, this.additionalActions);\n  }\n};\nPostEditWidget = PostEditWidget_1 = __decorate51([\n  __param46(8, IContextKeyService),\n  __param46(9, IKeybindingService),\n  __param46(10, IActionWidgetService)\n], PostEditWidget);\nvar PostEditWidgetManager = class PostEditWidgetManager2 extends Disposable {\n  constructor(_id, _editor, _visibleContext, _showCommand, _getAdditionalActions, _instantiationService, _bulkEditService, _notificationService) {\n    super();\n    this._id = _id;\n    this._editor = _editor;\n    this._visibleContext = _visibleContext;\n    this._showCommand = _showCommand;\n    this._getAdditionalActions = _getAdditionalActions;\n    this._instantiationService = _instantiationService;\n    this._bulkEditService = _bulkEditService;\n    this._notificationService = _notificationService;\n    this._currentWidget = this._register(new MutableDisposable());\n    this._register(Event.any(_editor.onDidChangeModel, _editor.onDidChangeModelContent)(() =\u003e this.clear()));\n  }\n  async applyEditAndShowIfNeeded(ranges, edits, canShowWidget, resolve3, token) {\n    if (!ranges.length || !this._editor.hasModel()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    const edit2 = edits.allEdits.at(edits.activeEditIndex);\n    if (!edit2) {\n      return;\n    }\n    const onDidSelectEdit = async (newEditIndex) =\u003e {\n      const model2 = this._editor.getModel();\n      if (!model2) {\n        return;\n      }\n      await model2.undo();\n      this.applyEditAndShowIfNeeded(ranges, { activeEditIndex: newEditIndex, allEdits: edits.allEdits }, canShowWidget, resolve3, token);\n    };\n    const handleError = (e, message) =\u003e {\n      if (isCancellationError(e)) {\n        return;\n      }\n      this._notificationService.error(message);\n      if (canShowWidget) {\n        this.show(ranges[0], edits, onDidSelectEdit);\n      }\n    };\n    const editorStateCts = new EditorStateCancellationTokenSource(this._editor, 1 | 2, void 0, token);\n    let resolvedEdit;\n    try {\n      resolvedEdit = await raceCancellationError(resolve3(edit2, editorStateCts.token), editorStateCts.token);\n    } catch (e) {\n      return handleError(e, localize(929, \"Error resolving edit '{0}':\\n{1}\", edit2.title, toErrorMessage(e)));\n    } finally {\n      editorStateCts.dispose();\n    }\n    if (token.isCancellationRequested) {\n      return;\n    }\n    const combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, ranges, resolvedEdit);\n    const primaryRange = ranges[0];\n    const editTrackingDecoration = model.deltaDecorations([], [{\n      range: primaryRange,\n      options: {\n        description: \"paste-line-suffix\",\n        stickiness: 0\n        /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */\n      }\n    }]);\n    this._editor.focus();\n    let editResult;\n    let editRange;\n    try {\n      editResult = await this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor, token });\n      editRange = model.getDecorationRange(editTrackingDecoration[0]);\n    } catch (e) {\n      return handleError(e, localize(930, \"Error applying edit '{0}':\\n{1}\", edit2.title, toErrorMessage(e)));\n    } finally {\n      model.deltaDecorations(editTrackingDecoration, []);\n    }\n    if (token.isCancellationRequested) {\n      return;\n    }\n    if (canShowWidget \u0026\u0026 editResult.isApplied \u0026\u0026 edits.allEdits.length \u003e 1) {\n      this.show(editRange ?? primaryRange, edits, onDidSelectEdit);\n    }\n  }\n  show(range2, edits, onDidSelectEdit) {\n    this.clear();\n    if (this._editor.hasModel()) {\n      this._currentWidget.value = this._instantiationService.createInstance(PostEditWidget, this._id, this._editor, this._visibleContext, this._showCommand, range2, edits, onDidSelectEdit, this._getAdditionalActions());\n    }\n  }\n  clear() {\n    this._currentWidget.clear();\n  }\n  tryShowSelector() {\n    this._currentWidget.value?.showSelector();\n  }\n};\nPostEditWidgetManager = __decorate51([\n  __param46(5, IInstantiationService),\n  __param46(6, IBulkEditService),\n  __param46(7, INotificationService)\n], PostEditWidgetManager);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js\nvar __decorate52 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param47 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar CopyPasteController_1;\nvar changePasteTypeCommandId = \"editor.changePasteType\";\nvar pasteAsPreferenceConfig = \"editor.pasteAs.preferences\";\nvar pasteWidgetVisibleCtx = new RawContextKey(\"pasteWidgetVisible\", false, localize(909, \"Whether the paste widget is showing\"));\nvar vscodeClipboardMime = \"application/vnd.code.copymetadata\";\nvar CopyPasteController = class CopyPasteController2 extends Disposable {\n  static {\n    CopyPasteController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.copyPasteActionController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(CopyPasteController_1.ID);\n  }\n  constructor(editor2, instantiationService, _logService, _bulkEditService, _clipboardService, _commandService, _configService, _languageFeaturesService, _quickInputService, _progressService) {\n    super();\n    this._logService = _logService;\n    this._bulkEditService = _bulkEditService;\n    this._clipboardService = _clipboardService;\n    this._commandService = _commandService;\n    this._configService = _configService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._quickInputService = _quickInputService;\n    this._progressService = _progressService;\n    this._editor = editor2;\n    const container = editor2.getContainerDomNode();\n    this._register(addDisposableListener(container, \"copy\", (e) =\u003e this.handleCopy(e)));\n    this._register(addDisposableListener(container, \"cut\", (e) =\u003e this.handleCopy(e)));\n    this._register(addDisposableListener(container, \"paste\", (e) =\u003e this.handlePaste(e), true));\n    this._pasteProgressManager = this._register(new InlineProgressManager(\"pasteIntoEditor\", editor2, instantiationService));\n    this._postPasteWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, \"pasteIntoEditor\", editor2, pasteWidgetVisibleCtx, { id: changePasteTypeCommandId, label: localize(910, \"Show paste options...\") }, () =\u003e CopyPasteController_1._configureDefaultAction ? [CopyPasteController_1._configureDefaultAction] : []));\n  }\n  changePasteType() {\n    this._postPasteWidgetManager.tryShowSelector();\n  }\n  async pasteAs(preferred) {\n    this._logService.trace(\"CopyPasteController.pasteAs\");\n    this._editor.focus();\n    try {\n      this._logService.trace(\"Before calling editor.action.clipboardPasteAction\");\n      this._pasteAsActionContext = { preferred };\n      await this._commandService.executeCommand(\"editor.action.clipboardPasteAction\");\n    } finally {\n      this._pasteAsActionContext = void 0;\n    }\n  }\n  clearWidgets() {\n    this._postPasteWidgetManager.clear();\n  }\n  isPasteAsEnabled() {\n    return this._editor.getOption(\n      96\n      /* EditorOption.pasteAs */\n    ).enabled;\n  }\n  async finishedPaste() {\n    await this._currentPasteOperation;\n  }\n  handleCopy(e) {\n    let id = null;\n    if (e.clipboardData) {\n      const [text2, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n      const storedMetadata = metadata || InMemoryClipboardMetadataManager.INSTANCE.get(text2);\n      id = storedMetadata?.id || null;\n      this._logService.trace(\"CopyPasteController#handleCopy for id : \", id, \" with text.length : \", text2.length);\n    } else {\n      this._logService.trace(\"CopyPasteController#handleCopy\");\n    }\n    if (!this._editor.hasTextFocus()) {\n      return;\n    }\n    this._clipboardService.clearInternalState?.();\n    if (!e.clipboardData || !this.isPasteAsEnabled()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    const selections = this._editor.getSelections();\n    if (!model || !selections?.length) {\n      return;\n    }\n    const enableEmptySelectionClipboard = this._editor.getOption(\n      45\n      /* EditorOption.emptySelectionClipboard */\n    );\n    let ranges = selections;\n    const wasFromEmptySelection = selections.length === 1 \u0026\u0026 selections[0].isEmpty();\n    if (wasFromEmptySelection) {\n      if (!enableEmptySelectionClipboard) {\n        return;\n      }\n      ranges = [new Range(ranges[0].startLineNumber, 1, ranges[0].startLineNumber, 1 + model.getLineLength(ranges[0].startLineNumber))];\n    }\n    const toCopy = this._editor._getViewModel()?.getPlainTextToCopy(selections, enableEmptySelectionClipboard, isWindows);\n    const multicursorText = Array.isArray(toCopy) ? toCopy : null;\n    const defaultPastePayload = {\n      multicursorText,\n      pasteOnNewLine: wasFromEmptySelection,\n      mode: null\n    };\n    const providers = this._languageFeaturesService.documentPasteEditProvider.ordered(model).filter((x) =\u003e !!x.prepareDocumentPaste);\n    if (!providers.length) {\n      this.setCopyMetadata(e.clipboardData, { defaultPastePayload });\n      return;\n    }\n    const dataTransfer = toVSDataTransfer(e.clipboardData);\n    const providerCopyMimeTypes = providers.flatMap((x) =\u003e x.copyMimeTypes ?? []);\n    const handle = id ?? generateUuid();\n    this.setCopyMetadata(e.clipboardData, {\n      id: handle,\n      providerCopyMimeTypes,\n      defaultPastePayload\n    });\n    const operations = providers.map((provider) =\u003e {\n      return {\n        providerMimeTypes: provider.copyMimeTypes,\n        operation: createCancelablePromise((token) =\u003e provider.prepareDocumentPaste(model, ranges, dataTransfer, token).catch((err) =\u003e {\n          console.error(err);\n          return void 0;\n        }))\n      };\n    });\n    CopyPasteController_1._currentCopyOperation?.operations.forEach((entry) =\u003e entry.operation.cancel());\n    CopyPasteController_1._currentCopyOperation = { handle, operations };\n  }\n  async handlePaste(e) {\n    if (e.clipboardData) {\n      const [text2, metadata2] = ClipboardEventUtils.getTextData(e.clipboardData);\n      const metadataComputed = metadata2 || InMemoryClipboardMetadataManager.INSTANCE.get(text2);\n      this._logService.trace(\"CopyPasteController#handlePaste for id : \", metadataComputed?.id);\n    } else {\n      this._logService.trace(\"CopyPasteController#handlePaste\");\n    }\n    if (!e.clipboardData || !this._editor.hasTextFocus()) {\n      return;\n    }\n    MessageController.get(this._editor)?.closeMessage();\n    this._currentPasteOperation?.cancel();\n    this._currentPasteOperation = void 0;\n    const model = this._editor.getModel();\n    const selections = this._editor.getSelections();\n    if (!selections?.length || !model) {\n      return;\n    }\n    if (this._editor.getOption(\n      103\n      /* EditorOption.readOnly */\n    ) || !this.isPasteAsEnabled() \u0026\u0026 !this._pasteAsActionContext) {\n      return;\n    }\n    const metadata = this.fetchCopyMetadata(e);\n    this._logService.trace(\"CopyPasteController#handlePaste with metadata : \", metadata?.id, \" and text.length : \", e.clipboardData.getData(\"text/plain\").length);\n    const dataTransfer = toExternalVSDataTransfer(e.clipboardData);\n    dataTransfer.delete(vscodeClipboardMime);\n    const fileTypes = Array.from(e.clipboardData.files).map((file) =\u003e file.type);\n    const allPotentialMimeTypes = [\n      ...e.clipboardData.types,\n      ...fileTypes,\n      ...metadata?.providerCopyMimeTypes ?? [],\n      // TODO: always adds `uri-list` because this get set if there are resources in the system clipboard.\n      // However we can only check the system clipboard async. For this early check, just add it in.\n      // We filter providers again once we have the final dataTransfer we will use.\n      Mimes.uriList\n    ];\n    const allProviders = this._languageFeaturesService.documentPasteEditProvider.ordered(model).filter((provider) =\u003e {\n      const preference = this._pasteAsActionContext?.preferred;\n      if (preference) {\n        if (!this.providerMatchesPreference(provider, preference)) {\n          return false;\n        }\n      }\n      return provider.pasteMimeTypes?.some((type) =\u003e matchesMimeType(type, allPotentialMimeTypes));\n    });\n    if (!allProviders.length) {\n      if (this._pasteAsActionContext?.preferred) {\n        this.showPasteAsNoEditMessage(selections, this._pasteAsActionContext.preferred);\n        e.preventDefault();\n        e.stopImmediatePropagation();\n      }\n      return;\n    }\n    e.preventDefault();\n    e.stopImmediatePropagation();\n    if (this._pasteAsActionContext) {\n      this.showPasteAsPick(this._pasteAsActionContext.preferred, allProviders, selections, dataTransfer, metadata);\n    } else {\n      this.doPasteInline(allProviders, selections, dataTransfer, metadata, e);\n    }\n  }\n  showPasteAsNoEditMessage(selections, preference) {\n    const kindLabel = \"only\" in preference ? preference.only.value : \"preferences\" in preference ? preference.preferences.length ? preference.preferences.map((preference2) =\u003e preference2.value).join(\", \") : localize(911, \"empty\") : preference.providerId;\n    MessageController.get(this._editor)?.showMessage(localize(912, \"No paste edits for '{0}' found\", kindLabel), selections[0].getStartPosition());\n  }\n  doPasteInline(allProviders, selections, dataTransfer, metadata, clipboardEvent) {\n    this._logService.trace(\"CopyPasteController#doPasteInline\");\n    const editor2 = this._editor;\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const editorStateCts = new EditorStateCancellationTokenSource(editor2, 1 | 2, void 0);\n    const p = createCancelablePromise(async (pToken) =\u003e {\n      const editor3 = this._editor;\n      if (!editor3.hasModel()) {\n        return;\n      }\n      const model = editor3.getModel();\n      const disposables = new DisposableStore();\n      const cts = disposables.add(new CancellationTokenSource(pToken));\n      disposables.add(editorStateCts.token.onCancellationRequested(() =\u003e cts.cancel()));\n      const token = cts.token;\n      try {\n        await this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, token);\n        if (token.isCancellationRequested) {\n          return;\n        }\n        const supportedProviders = allProviders.filter((provider) =\u003e this.isSupportedPasteProvider(provider, dataTransfer));\n        if (!supportedProviders.length || supportedProviders.length === 1 \u0026\u0026 supportedProviders[0] instanceof DefaultTextPasteOrDropEditProvider) {\n          return this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n        }\n        const context = {\n          triggerKind: DocumentPasteTriggerKind.Automatic\n        };\n        const editSession = await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, token);\n        disposables.add(editSession);\n        if (token.isCancellationRequested) {\n          return;\n        }\n        if (editSession.edits.length === 1 \u0026\u0026 editSession.edits[0].provider instanceof DefaultTextPasteOrDropEditProvider) {\n          return this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n        }\n        if (editSession.edits.length) {\n          const canShowWidget = editor3.getOption(\n            96\n            /* EditorOption.pasteAs */\n          ).showPasteSelector === \"afterPaste\";\n          return this._postPasteWidgetManager.applyEditAndShowIfNeeded(selections, { activeEditIndex: this.getInitialActiveEditIndex(model, editSession.edits), allEdits: editSession.edits }, canShowWidget, async (edit2, resolveToken) =\u003e {\n            if (!edit2.provider.resolveDocumentPasteEdit) {\n              return edit2;\n            }\n            const resolveP = edit2.provider.resolveDocumentPasteEdit(edit2, resolveToken);\n            const showP = new DeferredPromise();\n            const resolved = await this._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize(913, \"Resolving paste edit for '{0}'. Click to cancel\", edit2.title), raceCancellation(Promise.race([showP.p, resolveP]), resolveToken), {\n              cancel: () =\u003e showP.cancel()\n            }, 0);\n            if (resolved) {\n              edit2.insertText = resolved.insertText;\n              edit2.additionalEdit = resolved.additionalEdit;\n            }\n            return edit2;\n          }, token);\n        }\n        await this.applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent);\n      } finally {\n        disposables.dispose();\n        if (this._currentPasteOperation === p) {\n          this._currentPasteOperation = void 0;\n        }\n      }\n    });\n    this._pasteProgressManager.showWhile(selections[0].getEndPosition(), localize(914, \"Running paste handlers. Click to cancel and do basic paste\"), p, {\n      cancel: async () =\u003e {\n        p.cancel();\n        if (editorStateCts.token.isCancellationRequested) {\n          return;\n        }\n        await this.applyDefaultPasteHandler(dataTransfer, metadata, editorStateCts.token, clipboardEvent);\n      }\n    }).finally(() =\u003e {\n      editorStateCts.dispose();\n    });\n    this._currentPasteOperation = p;\n  }\n  showPasteAsPick(preference, allProviders, selections, dataTransfer, metadata) {\n    this._logService.trace(\"CopyPasteController#showPasteAsPick\");\n    const p = createCancelablePromise(async (token) =\u003e {\n      const editor2 = this._editor;\n      if (!editor2.hasModel()) {\n        return;\n      }\n      const model = editor2.getModel();\n      const disposables = new DisposableStore();\n      const tokenSource = disposables.add(new EditorStateCancellationTokenSource(editor2, 1 | 2, void 0, token));\n      try {\n        await this.mergeInDataFromCopy(allProviders, dataTransfer, metadata, tokenSource.token);\n        if (tokenSource.token.isCancellationRequested) {\n          return;\n        }\n        let supportedProviders = allProviders.filter((provider) =\u003e this.isSupportedPasteProvider(provider, dataTransfer, preference));\n        if (preference) {\n          supportedProviders = supportedProviders.filter((provider) =\u003e this.providerMatchesPreference(provider, preference));\n        }\n        const context = {\n          triggerKind: DocumentPasteTriggerKind.PasteAs,\n          only: preference \u0026\u0026 \"only\" in preference ? preference.only : void 0\n        };\n        let editSession = disposables.add(await this.getPasteEdits(supportedProviders, dataTransfer, model, selections, context, tokenSource.token));\n        if (tokenSource.token.isCancellationRequested) {\n          return;\n        }\n        if (preference) {\n          editSession = {\n            edits: editSession.edits.filter((edit2) =\u003e {\n              if (\"only\" in preference) {\n                return preference.only.contains(edit2.kind);\n              } else if (\"preferences\" in preference) {\n                return preference.preferences.some((preference2) =\u003e preference2.contains(edit2.kind));\n              } else {\n                return preference.providerId === edit2.provider.id;\n              }\n            }),\n            dispose: editSession.dispose\n          };\n        }\n        if (!editSession.edits.length) {\n          if (preference) {\n            this.showPasteAsNoEditMessage(selections, preference);\n          }\n          return;\n        }\n        let pickedEdit;\n        if (preference) {\n          pickedEdit = editSession.edits.at(0);\n        } else {\n          const configureDefaultItem = {\n            id: \"editor.pasteAs.default\",\n            label: localize(915, \"Configure default paste action\"),\n            edit: void 0\n          };\n          const selected = await this._quickInputService.pick([\n            ...editSession.edits.map((edit2) =\u003e ({\n              label: edit2.title,\n              description: edit2.kind?.value,\n              edit: edit2\n            })),\n            ...CopyPasteController_1._configureDefaultAction ? [\n              upcast({ type: \"separator\" }),\n              {\n                label: CopyPasteController_1._configureDefaultAction.label,\n                edit: void 0\n              }\n            ] : []\n          ], {\n            placeHolder: localize(916, \"Select Paste Action\")\n          });\n          if (selected === configureDefaultItem) {\n            CopyPasteController_1._configureDefaultAction?.run();\n            return;\n          }\n          pickedEdit = selected?.edit;\n        }\n        if (!pickedEdit) {\n          return;\n        }\n        const combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, selections, pickedEdit);\n        await this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor });\n      } finally {\n        disposables.dispose();\n        if (this._currentPasteOperation === p) {\n          this._currentPasteOperation = void 0;\n        }\n      }\n    });\n    this._progressService.withProgress({\n      location: 10,\n      title: localize(917, \"Running paste handlers\")\n    }, () =\u003e p);\n  }\n  setCopyMetadata(dataTransfer, metadata) {\n    this._logService.trace(\"CopyPasteController#setCopyMetadata new id : \", metadata.id);\n    dataTransfer.setData(vscodeClipboardMime, JSON.stringify(metadata));\n  }\n  fetchCopyMetadata(e) {\n    this._logService.trace(\"CopyPasteController#fetchCopyMetadata\");\n    if (!e.clipboardData) {\n      return;\n    }\n    const rawMetadata = e.clipboardData.getData(vscodeClipboardMime);\n    if (rawMetadata) {\n      try {\n        return JSON.parse(rawMetadata);\n      } catch {\n        return void 0;\n      }\n    }\n    const [_, metadata] = ClipboardEventUtils.getTextData(e.clipboardData);\n    if (metadata) {\n      return {\n        defaultPastePayload: {\n          mode: metadata.mode,\n          multicursorText: metadata.multicursorText ?? null,\n          pasteOnNewLine: !!metadata.isFromEmptySelection\n        }\n      };\n    }\n    return void 0;\n  }\n  async mergeInDataFromCopy(allProviders, dataTransfer, metadata, token) {\n    this._logService.trace(\"CopyPasteController#mergeInDataFromCopy with metadata : \", metadata?.id);\n    if (metadata?.id \u0026\u0026 CopyPasteController_1._currentCopyOperation?.handle === metadata.id) {\n      const toResolve = CopyPasteController_1._currentCopyOperation.operations.filter((op) =\u003e allProviders.some((provider) =\u003e provider.pasteMimeTypes.some((type) =\u003e matchesMimeType(type, op.providerMimeTypes)))).map((op) =\u003e op.operation);\n      const toMergeResults = await Promise.all(toResolve);\n      if (token.isCancellationRequested) {\n        return;\n      }\n      for (const toMergeData of toMergeResults.reverse()) {\n        if (toMergeData) {\n          for (const [key, value] of toMergeData) {\n            dataTransfer.replace(key, value);\n          }\n        }\n      }\n    }\n    if (!dataTransfer.has(Mimes.uriList)) {\n      const resources = await this._clipboardService.readResources();\n      if (token.isCancellationRequested) {\n        return;\n      }\n      if (resources.length) {\n        dataTransfer.append(Mimes.uriList, createStringDataTransferItem(UriList.create(resources)));\n      }\n    }\n  }\n  async getPasteEdits(providers, dataTransfer, model, selections, context, token) {\n    const disposables = new DisposableStore();\n    const results = await raceCancellation(Promise.all(providers.map(async (provider) =\u003e {\n      try {\n        const edits2 = await provider.provideDocumentPasteEdits?.(model, selections, dataTransfer, context, token);\n        if (edits2) {\n          disposables.add(edits2);\n        }\n        return edits2?.edits?.map((edit2) =\u003e ({ ...edit2, provider }));\n      } catch (err) {\n        if (!isCancellationError(err)) {\n          console.error(err);\n        }\n        return void 0;\n      }\n    })), token);\n    const edits = coalesce(results ?? []).flat().filter((edit2) =\u003e {\n      return !context.only || context.only.contains(edit2.kind);\n    });\n    return {\n      edits: sortEditsByYieldTo(edits),\n      dispose: () =\u003e disposables.dispose()\n    };\n  }\n  async applyDefaultPasteHandler(dataTransfer, metadata, token, clipboardEvent) {\n    const textDataTransfer = dataTransfer.get(Mimes.text) ?? dataTransfer.get(\"text\");\n    const text2 = await textDataTransfer?.asString() ?? \"\";\n    if (token.isCancellationRequested) {\n      return;\n    }\n    const payload = {\n      clipboardEvent,\n      text: text2,\n      pasteOnNewLine: metadata?.defaultPastePayload.pasteOnNewLine ?? false,\n      multicursorText: metadata?.defaultPastePayload.multicursorText ?? null,\n      mode: null\n    };\n    this._logService.trace(\"CopyPasteController#applyDefaultPasteHandler for id : \", metadata?.id);\n    this._editor.trigger(\"keyboard\", \"paste\", payload);\n  }\n  /**\n   * Filter out providers if they:\n   * - Don't handle any of the data transfer types we have\n   * - Don't match the preferred paste kind\n   */\n  isSupportedPasteProvider(provider, dataTransfer, preference) {\n    if (!provider.pasteMimeTypes?.some((type) =\u003e dataTransfer.matches(type))) {\n      return false;\n    }\n    return !preference || this.providerMatchesPreference(provider, preference);\n  }\n  providerMatchesPreference(provider, preference) {\n    if (\"only\" in preference) {\n      return provider.providedPasteEditKinds.some((providedKind) =\u003e preference.only.contains(providedKind));\n    } else if (\"preferences\" in preference) {\n      return preference.preferences.some((providedKind) =\u003e preference.preferences.some((preferredKind) =\u003e preferredKind.contains(providedKind)));\n    } else {\n      return provider.id === preference.providerId;\n    }\n  }\n  getInitialActiveEditIndex(model, edits) {\n    const preferredProviders = this._configService.getValue(pasteAsPreferenceConfig, { resource: model.uri });\n    for (const config of Array.isArray(preferredProviders) ? preferredProviders : []) {\n      const desiredKind = new HierarchicalKind(config);\n      const editIndex = edits.findIndex((edit2) =\u003e desiredKind.contains(edit2.kind));\n      if (editIndex \u003e= 0) {\n        return editIndex;\n      }\n    }\n    return 0;\n  }\n};\nCopyPasteController = CopyPasteController_1 = __decorate52([\n  __param47(1, IInstantiationService),\n  __param47(2, ILogService),\n  __param47(3, IBulkEditService),\n  __param47(4, IClipboardService),\n  __param47(5, ICommandService),\n  __param47(6, IConfigurationService),\n  __param47(7, ILanguageFeaturesService),\n  __param47(8, IQuickInputService),\n  __param47(9, IProgressService)\n], CopyPasteController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/clipboard/browser/clipboard.js\nvar CLIPBOARD_CONTEXT_MENU_GROUP = \"9_cutcopypaste\";\nvar supportsCut = isNative || document.queryCommandSupported(\"cut\");\nvar supportsCopy = isNative || document.queryCommandSupported(\"copy\");\nvar supportsPaste = typeof navigator.clipboard === \"undefined\" || isFirefox ? document.queryCommandSupported(\"paste\") : true;\nfunction registerCommand3(command) {\n  command.register();\n  return command;\n}\nvar CutAction = supportsCut ? registerCommand3(new MultiCommand({\n  id: \"editor.action.clipboardCutAction\",\n  precondition: void 0,\n  kbOpts: (\n    // Do not bind cut keybindings in the browser,\n    // since browsers do that for us and it avoids security prompts\n    isNative ? {\n      primary: 2048 | 54,\n      win: { primary: 2048 | 54, secondary: [\n        1024 | 20\n        /* KeyCode.Delete */\n      ] },\n      weight: 100\n      /* KeybindingWeight.EditorContrib */\n    } : void 0\n  ),\n  menuOpts: [{\n    menuId: MenuId.MenubarEditMenu,\n    group: \"2_ccp\",\n    title: localize(806, \"Cu\u0026\u0026t\"),\n    order: 1\n  }, {\n    menuId: MenuId.EditorContext,\n    group: CLIPBOARD_CONTEXT_MENU_GROUP,\n    title: localize(807, \"Cut\"),\n    when: EditorContextKeys.writable,\n    order: 1\n  }, {\n    menuId: MenuId.CommandPalette,\n    group: \"\",\n    title: localize(808, \"Cut\"),\n    order: 1\n  }, {\n    menuId: MenuId.SimpleEditorContext,\n    group: CLIPBOARD_CONTEXT_MENU_GROUP,\n    title: localize(809, \"Cut\"),\n    when: EditorContextKeys.writable,\n    order: 1\n  }]\n})) : void 0;\nvar CopyAction = supportsCopy ? registerCommand3(new MultiCommand({\n  id: \"editor.action.clipboardCopyAction\",\n  precondition: void 0,\n  kbOpts: (\n    // Do not bind copy keybindings in the browser,\n    // since browsers do that for us and it avoids security prompts\n    isNative ? {\n      primary: 2048 | 33,\n      win: { primary: 2048 | 33, secondary: [\n        2048 | 19\n        /* KeyCode.Insert */\n      ] },\n      weight: 100\n      /* KeybindingWeight.EditorContrib */\n    } : void 0\n  ),\n  menuOpts: [{\n    menuId: MenuId.MenubarEditMenu,\n    group: \"2_ccp\",\n    title: localize(810, \"\u0026\u0026Copy\"),\n    order: 2\n  }, {\n    menuId: MenuId.EditorContext,\n    group: CLIPBOARD_CONTEXT_MENU_GROUP,\n    title: localize(811, \"Copy\"),\n    order: 2\n  }, {\n    menuId: MenuId.CommandPalette,\n    group: \"\",\n    title: localize(812, \"Copy\"),\n    order: 1\n  }, {\n    menuId: MenuId.SimpleEditorContext,\n    group: CLIPBOARD_CONTEXT_MENU_GROUP,\n    title: localize(813, \"Copy\"),\n    order: 2\n  }]\n})) : void 0;\nMenuRegistry.appendMenuItem(MenuId.MenubarEditMenu, { submenu: MenuId.MenubarCopy, title: localize2(818, \"Copy As\"), group: \"2_ccp\", order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextCopy, title: localize2(819, \"Copy As\"), group: CLIPBOARD_CONTEXT_MENU_GROUP, order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextShare, title: localize2(820, \"Share\"), group: \"11_share\", order: -1, when: ContextKeyExpr.and(ContextKeyExpr.notEquals(\"resourceScheme\", \"output\"), EditorContextKeys.editorTextFocus) });\nMenuRegistry.appendMenuItem(MenuId.ExplorerContext, { submenu: MenuId.ExplorerContextShare, title: localize2(821, \"Share\"), group: \"11_share\", order: -1 });\nvar PasteAction = supportsPaste ? registerCommand3(new MultiCommand({\n  id: \"editor.action.clipboardPasteAction\",\n  precondition: void 0,\n  kbOpts: (\n    // Do not bind paste keybindings in the browser,\n    // since browsers do that for us and it avoids security prompts\n    isNative ? {\n      primary: 2048 | 52,\n      win: { primary: 2048 | 52, secondary: [\n        1024 | 19\n        /* KeyCode.Insert */\n      ] },\n      linux: { primary: 2048 | 52, secondary: [\n        1024 | 19\n        /* KeyCode.Insert */\n      ] },\n      weight: 100\n      /* KeybindingWeight.EditorContrib */\n    } : void 0\n  ),\n  menuOpts: [{\n    menuId: MenuId.MenubarEditMenu,\n    group: \"2_ccp\",\n    title: localize(814, \"\u0026\u0026Paste\"),\n    order: 4\n  }, {\n    menuId: MenuId.EditorContext,\n    group: CLIPBOARD_CONTEXT_MENU_GROUP,\n    title: localize(815, \"Paste\"),\n    when: EditorContextKeys.writable,\n    order: 4\n  }, {\n    menuId: MenuId.CommandPalette,\n    group: \"\",\n    title: localize(816, \"Paste\"),\n    order: 1\n  }, {\n    menuId: MenuId.SimpleEditorContext,\n    group: CLIPBOARD_CONTEXT_MENU_GROUP,\n    title: localize(817, \"Paste\"),\n    when: EditorContextKeys.writable,\n    order: 4\n  }]\n})) : void 0;\nvar ExecCommandCopyWithSyntaxHighlightingAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.clipboardCopyWithSyntaxHighlightingAction\",\n      label: localize2(822, \"Copy with Syntax Highlighting\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const logService = accessor.get(ILogService);\n    logService.trace(\"ExecCommandCopyWithSyntaxHighlightingAction#run\");\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const emptySelectionClipboard = editor2.getOption(\n      45\n      /* EditorOption.emptySelectionClipboard */\n    );\n    if (!emptySelectionClipboard \u0026\u0026 editor2.getSelection().isEmpty()) {\n      return;\n    }\n    CopyOptions.forceCopyWithSyntaxHighlighting = true;\n    editor2.focus();\n    logService.trace(\"ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)\");\n    editor2.getContainerDomNode().ownerDocument.execCommand(\"copy\");\n    logService.trace(\"ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)\");\n    CopyOptions.forceCopyWithSyntaxHighlighting = false;\n  }\n};\nfunction registerExecCommandImpl(target, browserCommand) {\n  if (!target) {\n    return;\n  }\n  target.addImplementation(1e4, \"code-editor\", (accessor, args) =\u003e {\n    const logService = accessor.get(ILogService);\n    logService.trace(\"registerExecCommandImpl (addImplementation code-editor for : \", browserCommand, \")\");\n    const focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n    if (focusedEditor \u0026\u0026 focusedEditor.hasTextFocus()) {\n      const emptySelectionClipboard = focusedEditor.getOption(\n        45\n        /* EditorOption.emptySelectionClipboard */\n      );\n      const selection = focusedEditor.getSelection();\n      if (selection \u0026\u0026 selection.isEmpty() \u0026\u0026 !emptySelectionClipboard) {\n        return true;\n      }\n      if (focusedEditor.getOption(\n        169\n        /* EditorOption.effectiveEditContext */\n      ) \u0026\u0026 browserCommand === \"cut\") {\n        logCopyCommand(focusedEditor);\n        logService.trace(\"registerExecCommandImpl (before execCommand copy)\");\n        focusedEditor.getContainerDomNode().ownerDocument.execCommand(\"copy\");\n        focusedEditor.trigger(void 0, \"cut\", void 0);\n        logService.trace(\"registerExecCommandImpl (after execCommand copy)\");\n      } else {\n        logCopyCommand(focusedEditor);\n        logService.trace(\"registerExecCommandImpl (before execCommand \" + browserCommand + \")\");\n        focusedEditor.getContainerDomNode().ownerDocument.execCommand(browserCommand);\n        logService.trace(\"registerExecCommandImpl (after execCommand \" + browserCommand + \")\");\n      }\n      return true;\n    }\n    return false;\n  });\n  target.addImplementation(0, \"generic-dom\", (accessor, args) =\u003e {\n    const logService = accessor.get(ILogService);\n    logService.trace(\"registerExecCommandImpl (addImplementation generic-dom for : \", browserCommand, \")\");\n    logService.trace(\"registerExecCommandImpl (before execCommand \" + browserCommand + \")\");\n    getActiveDocument().execCommand(browserCommand);\n    logService.trace(\"registerExecCommandImpl (after execCommand \" + browserCommand + \")\");\n    return true;\n  });\n}\nfunction logCopyCommand(editor2) {\n  const editContextEnabled = editor2.getOption(\n    169\n    /* EditorOption.effectiveEditContext */\n  );\n  if (editContextEnabled) {\n    const nativeEditContext = NativeEditContextRegistry.get(editor2.getId());\n    if (nativeEditContext) {\n      nativeEditContext.onWillCopy();\n    }\n  }\n}\nregisterExecCommandImpl(CutAction, \"cut\");\nregisterExecCommandImpl(CopyAction, \"copy\");\nif (PasteAction) {\n  PasteAction.addImplementation(1e4, \"code-editor\", (accessor, args) =\u003e {\n    const logService = accessor.get(ILogService);\n    logService.trace(\"registerExecCommandImpl (addImplementation code-editor for : paste)\");\n    const codeEditorService = accessor.get(ICodeEditorService);\n    const clipboardService = accessor.get(IClipboardService);\n    const telemetryService = accessor.get(ITelemetryService);\n    const productService = accessor.get(IProductService);\n    const focusedEditor = codeEditorService.getFocusedCodeEditor();\n    if (focusedEditor \u0026\u0026 focusedEditor.hasModel() \u0026\u0026 focusedEditor.hasTextFocus()) {\n      const editContextEnabled = focusedEditor.getOption(\n        169\n        /* EditorOption.effectiveEditContext */\n      );\n      if (editContextEnabled) {\n        const nativeEditContext = NativeEditContextRegistry.get(focusedEditor.getId());\n        if (nativeEditContext) {\n          nativeEditContext.onWillPaste();\n        }\n      }\n      const sw = StopWatch.create(true);\n      logService.trace(\"registerExecCommandImpl (before triggerPaste)\");\n      const triggerPaste = clipboardService.triggerPaste(getActiveWindow().vscodeWindowId);\n      if (triggerPaste) {\n        logService.trace(\"registerExecCommandImpl (triggerPaste defined)\");\n        return triggerPaste.then(async () =\u003e {\n          logService.trace(\"registerExecCommandImpl (after triggerPaste)\");\n          if (productService.quality !== \"stable\") {\n            const duration = sw.elapsed();\n            telemetryService.publicLog2(\"editorAsyncPaste\", { duration });\n          }\n          return CopyPasteController.get(focusedEditor)?.finishedPaste() ?? Promise.resolve();\n        });\n      } else {\n        logService.trace(\"registerExecCommandImpl (triggerPaste undefined)\");\n      }\n      if (isWeb) {\n        logService.trace(\"registerExecCommandImpl (Paste handling on web)\");\n        return (async () =\u003e {\n          const clipboardText = await clipboardService.readText();\n          if (clipboardText !== \"\") {\n            const metadata = InMemoryClipboardMetadataManager.INSTANCE.get(clipboardText);\n            let pasteOnNewLine = false;\n            let multicursorText = null;\n            let mode = null;\n            if (metadata) {\n              pasteOnNewLine = focusedEditor.getOption(\n                45\n                /* EditorOption.emptySelectionClipboard */\n              ) \u0026\u0026 !!metadata.isFromEmptySelection;\n              multicursorText = typeof metadata.multicursorText !== \"undefined\" ? metadata.multicursorText : null;\n              mode = metadata.mode;\n            }\n            logService.trace(\"registerExecCommandImpl (clipboardText.length : \", clipboardText.length, \" id : \", metadata?.id, \")\");\n            focusedEditor.trigger(\"keyboard\", \"paste\", {\n              text: clipboardText,\n              pasteOnNewLine,\n              multicursorText,\n              mode\n            });\n          }\n        })();\n      }\n      return true;\n    }\n    return false;\n  });\n  PasteAction.addImplementation(0, \"generic-dom\", (accessor, args) =\u003e {\n    const logService = accessor.get(ILogService);\n    logService.trace(\"registerExecCommandImpl (addImplementation generic-dom for : paste)\");\n    const triggerPaste = accessor.get(IClipboardService).triggerPaste(getActiveWindow().vscodeWindowId);\n    return triggerPaste ?? false;\n  });\n}\nif (supportsCopy) {\n  registerEditorAction(ExecCommandCopyWithSyntaxHighlightingAction);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/config/editorConfigurationSchema.js\ninit_textModelDefaults();\ninit_nls();\ninit_configurationRegistry();\ninit_platform2();\nvar editorConfigurationBaseNode = Object.freeze({\n  id: \"editor\",\n  order: 5,\n  type: \"object\",\n  title: localize(144, \"Editor\"),\n  scope: 6\n});\nvar editorConfiguration = {\n  ...editorConfigurationBaseNode,\n  properties: {\n    \"editor.tabSize\": {\n      type: \"number\",\n      default: EDITOR_MODEL_DEFAULTS.tabSize,\n      minimum: 1,\n      maximum: 100,\n      markdownDescription: localize(145, \"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.\", \"`#editor.detectIndentation#`\")\n    },\n    \"editor.indentSize\": {\n      \"anyOf\": [\n        {\n          type: \"string\",\n          enum: [\"tabSize\"]\n        },\n        {\n          type: \"number\",\n          minimum: 1\n        }\n      ],\n      default: \"tabSize\",\n      markdownDescription: localize(146, 'The number of spaces used for indentation or `\"tabSize\"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')\n    },\n    \"editor.insertSpaces\": {\n      type: \"boolean\",\n      default: EDITOR_MODEL_DEFAULTS.insertSpaces,\n      markdownDescription: localize(147, \"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.\", \"`#editor.detectIndentation#`\")\n    },\n    \"editor.detectIndentation\": {\n      type: \"boolean\",\n      default: EDITOR_MODEL_DEFAULTS.detectIndentation,\n      markdownDescription: localize(148, \"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.\", \"`#editor.tabSize#`\", \"`#editor.insertSpaces#`\")\n    },\n    \"editor.trimAutoWhitespace\": {\n      type: \"boolean\",\n      default: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,\n      description: localize(149, \"Remove trailing auto inserted whitespace.\")\n    },\n    \"editor.largeFileOptimizations\": {\n      type: \"boolean\",\n      default: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,\n      description: localize(150, \"Special handling for large files to disable certain memory intensive features.\")\n    },\n    \"editor.wordBasedSuggestions\": {\n      enum: [\"off\", \"currentDocument\", \"matchingDocuments\", \"allDocuments\"],\n      default: \"matchingDocuments\",\n      enumDescriptions: [\n        localize(151, \"Turn off Word Based Suggestions.\"),\n        localize(152, \"Only suggest words from the active document.\"),\n        localize(153, \"Suggest words from all open documents of the same language.\"),\n        localize(154, \"Suggest words from all open documents.\")\n      ],\n      description: localize(155, \"Controls whether completions should be computed based on words in the document and from which documents they are computed.\")\n    },\n    \"editor.semanticHighlighting.enabled\": {\n      enum: [true, false, \"configuredByTheme\"],\n      enumDescriptions: [\n        localize(156, \"Semantic highlighting enabled for all color themes.\"),\n        localize(157, \"Semantic highlighting disabled for all color themes.\"),\n        localize(158, \"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.\")\n      ],\n      default: \"configuredByTheme\",\n      description: localize(159, \"Controls whether the semanticHighlighting is shown for the languages that support it.\")\n    },\n    \"editor.stablePeek\": {\n      type: \"boolean\",\n      default: false,\n      markdownDescription: localize(160, \"Keep peek editors open even when double-clicking their content or when hitting `Escape`.\")\n    },\n    \"editor.maxTokenizationLineLength\": {\n      type: \"integer\",\n      default: 2e4,\n      description: localize(161, \"Lines above this length will not be tokenized for performance reasons\")\n    },\n    \"editor.experimental.asyncTokenization\": {\n      type: \"boolean\",\n      default: true,\n      description: localize(162, \"Controls whether the tokenization should happen asynchronously on a web worker.\"),\n      tags: [\"experimental\"]\n    },\n    \"editor.experimental.asyncTokenizationLogging\": {\n      type: \"boolean\",\n      default: false,\n      description: localize(163, \"Controls whether async tokenization should be logged. For debugging only.\")\n    },\n    \"editor.experimental.asyncTokenizationVerification\": {\n      type: \"boolean\",\n      default: false,\n      description: localize(164, \"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only.\"),\n      tags: [\"experimental\"]\n    },\n    \"editor.experimental.treeSitterTelemetry\": {\n      type: \"boolean\",\n      default: false,\n      markdownDescription: localize(165, \"Controls whether tree sitter parsing should be turned on and telemetry collected. Setting `#editor.experimental.preferTreeSitter#` for specific languages will take precedence.\"),\n      tags: [\"experimental\"],\n      experiment: {\n        mode: \"auto\"\n      }\n    },\n    \"editor.experimental.preferTreeSitter.css\": {\n      type: \"boolean\",\n      default: false,\n      markdownDescription: localize(166, \"Controls whether tree sitter parsing should be turned on for css. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for css.\"),\n      tags: [\"experimental\"],\n      experiment: {\n        mode: \"auto\"\n      }\n    },\n    \"editor.experimental.preferTreeSitter.typescript\": {\n      type: \"boolean\",\n      default: false,\n      markdownDescription: localize(167, \"Controls whether tree sitter parsing should be turned on for typescript. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for typescript.\"),\n      tags: [\"experimental\"],\n      experiment: {\n        mode: \"auto\"\n      }\n    },\n    \"editor.experimental.preferTreeSitter.ini\": {\n      type: \"boolean\",\n      default: false,\n      markdownDescription: localize(168, \"Controls whether tree sitter parsing should be turned on for ini. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for ini.\"),\n      tags: [\"experimental\"],\n      experiment: {\n        mode: \"auto\"\n      }\n    },\n    \"editor.experimental.preferTreeSitter.regex\": {\n      type: \"boolean\",\n      default: false,\n      markdownDescription: localize(169, \"Controls whether tree sitter parsing should be turned on for regex. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for regex.\"),\n      tags: [\"experimental\"],\n      experiment: {\n        mode: \"auto\"\n      }\n    },\n    \"editor.language.brackets\": {\n      type: [\"array\", \"null\"],\n      default: null,\n      // We want to distinguish the empty array from not configured.\n      description: localize(170, \"Defines the bracket symbols that increase or decrease the indentation.\"),\n      items: {\n        type: \"array\",\n        items: [\n          {\n            type: \"string\",\n            description: localize(171, \"The opening bracket character or string sequence.\")\n          },\n          {\n            type: \"string\",\n            description: localize(172, \"The closing bracket character or string sequence.\")\n          }\n        ]\n      }\n    },\n    \"editor.language.colorizedBracketPairs\": {\n      type: [\"array\", \"null\"],\n      default: null,\n      // We want to distinguish the empty array from not configured.\n      description: localize(173, \"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled.\"),\n      items: {\n        type: \"array\",\n        items: [\n          {\n            type: \"string\",\n            description: localize(174, \"The opening bracket character or string sequence.\")\n          },\n          {\n            type: \"string\",\n            description: localize(175, \"The closing bracket character or string sequence.\")\n          }\n        ]\n      }\n    },\n    \"diffEditor.maxComputationTime\": {\n      type: \"number\",\n      default: diffEditorDefaultOptions.maxComputationTime,\n      description: localize(176, \"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.\")\n    },\n    \"diffEditor.maxFileSize\": {\n      type: \"number\",\n      default: diffEditorDefaultOptions.maxFileSize,\n      description: localize(177, \"Maximum file size in MB for which to compute diffs. Use 0 for no limit.\")\n    },\n    \"diffEditor.renderSideBySide\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.renderSideBySide,\n      description: localize(178, \"Controls whether the diff editor shows the diff side by side or inline.\")\n    },\n    \"diffEditor.renderSideBySideInlineBreakpoint\": {\n      type: \"number\",\n      default: diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,\n      description: localize(179, \"If the diff editor width is smaller than this value, the inline view is used.\")\n    },\n    \"diffEditor.useInlineViewWhenSpaceIsLimited\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,\n      description: localize(180, \"If enabled and the editor width is too small, the inline view is used.\")\n    },\n    \"diffEditor.renderMarginRevertIcon\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.renderMarginRevertIcon,\n      description: localize(181, \"When enabled, the diff editor shows arrows in its glyph margin to revert changes.\")\n    },\n    \"diffEditor.renderGutterMenu\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.renderGutterMenu,\n      description: localize(182, \"When enabled, the diff editor shows a special gutter for revert and stage actions.\")\n    },\n    \"diffEditor.ignoreTrimWhitespace\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.ignoreTrimWhitespace,\n      description: localize(183, \"When enabled, the diff editor ignores changes in leading or trailing whitespace.\")\n    },\n    \"diffEditor.renderIndicators\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.renderIndicators,\n      description: localize(184, \"Controls whether the diff editor shows +/- indicators for added/removed changes.\")\n    },\n    \"diffEditor.codeLens\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.diffCodeLens,\n      description: localize(185, \"Controls whether the editor shows CodeLens.\")\n    },\n    \"diffEditor.wordWrap\": {\n      type: \"string\",\n      enum: [\"off\", \"on\", \"inherit\"],\n      default: diffEditorDefaultOptions.diffWordWrap,\n      markdownEnumDescriptions: [\n        localize(186, \"Lines will never wrap.\"),\n        localize(187, \"Lines will wrap at the viewport width.\"),\n        localize(188, \"Lines will wrap according to the {0} setting.\", \"`#editor.wordWrap#`\")\n      ]\n    },\n    \"diffEditor.diffAlgorithm\": {\n      type: \"string\",\n      enum: [\"legacy\", \"advanced\"],\n      default: diffEditorDefaultOptions.diffAlgorithm,\n      markdownEnumDescriptions: [\n        localize(189, \"Uses the legacy diffing algorithm.\"),\n        localize(190, \"Uses the advanced diffing algorithm.\")\n      ]\n    },\n    \"diffEditor.hideUnchangedRegions.enabled\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.hideUnchangedRegions.enabled,\n      markdownDescription: localize(191, \"Controls whether the diff editor shows unchanged regions.\")\n    },\n    \"diffEditor.hideUnchangedRegions.revealLineCount\": {\n      type: \"integer\",\n      default: diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,\n      markdownDescription: localize(192, \"Controls how many lines are used for unchanged regions.\"),\n      minimum: 1\n    },\n    \"diffEditor.hideUnchangedRegions.minimumLineCount\": {\n      type: \"integer\",\n      default: diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,\n      markdownDescription: localize(193, \"Controls how many lines are used as a minimum for unchanged regions.\"),\n      minimum: 1\n    },\n    \"diffEditor.hideUnchangedRegions.contextLineCount\": {\n      type: \"integer\",\n      default: diffEditorDefaultOptions.hideUnchangedRegions.contextLineCount,\n      markdownDescription: localize(194, \"Controls how many lines are used as context when comparing unchanged regions.\"),\n      minimum: 1\n    },\n    \"diffEditor.experimental.showMoves\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.experimental.showMoves,\n      markdownDescription: localize(195, \"Controls whether the diff editor should show detected code moves.\")\n    },\n    \"diffEditor.experimental.showEmptyDecorations\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.experimental.showEmptyDecorations,\n      description: localize(196, \"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.\")\n    },\n    \"diffEditor.experimental.useTrueInlineView\": {\n      type: \"boolean\",\n      default: diffEditorDefaultOptions.experimental.useTrueInlineView,\n      description: localize(197, \"If enabled and the editor uses the inline view, word changes are rendered inline.\")\n    }\n  }\n};\nfunction isConfigurationPropertySchema(x) {\n  return typeof x.type !== \"undefined\" || typeof x.anyOf !== \"undefined\";\n}\nfor (const editorOption of editorOptionsRegistry) {\n  const schema = editorOption.schema;\n  if (typeof schema !== \"undefined\") {\n    if (isConfigurationPropertySchema(schema)) {\n      editorConfiguration.properties[`editor.${editorOption.name}`] = schema;\n    } else {\n      for (const key in schema) {\n        if (Object.hasOwnProperty.call(schema, key)) {\n          editorConfiguration.properties[key] = schema[key];\n        }\n      }\n    }\n  }\n}\nvar cachedEditorConfigurationKeys = null;\nfunction getEditorConfigurationKeys() {\n  if (cachedEditorConfigurationKeys === null) {\n    cachedEditorConfigurationKeys = /* @__PURE__ */ Object.create(null);\n    Object.keys(editorConfiguration.properties).forEach((prop) =\u003e {\n      cachedEditorConfigurationKeys[prop] = true;\n    });\n  }\n  return cachedEditorConfigurationKeys;\n}\nfunction isEditorConfigurationKey(key) {\n  const editorConfigurationKeys = getEditorConfigurationKeys();\n  return editorConfigurationKeys[`editor.${key}`] || false;\n}\nfunction isDiffEditorConfigurationKey(key) {\n  const editorConfigurationKeys = getEditorConfigurationKeys();\n  return editorConfigurationKeys[`diffEditor.${key}`] || false;\n}\nvar configurationRegistry2 = Registry.as(Extensions4.Configuration);\nconfigurationRegistry2.registerConfiguration(editorConfiguration);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js\ninit_strings();\ninit_editorExtensions();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeAction.js\ninit_arrays();\ninit_cancellation();\ninit_errors();\ninit_lifecycle();\ninit_uri();\ninit_nls();\ninit_commands();\ninit_telemetry();\ninit_range();\ninit_selection();\ninit_languages();\ninit_languageFeatures();\ninit_model();\ninit_textModelEditSource();\ninit_editorState();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/common/types.js\ninit_errors();\nvar CodeActionKind = new class {\n  constructor() {\n    this.QuickFix = new HierarchicalKind(\"quickfix\");\n    this.Refactor = new HierarchicalKind(\"refactor\");\n    this.RefactorExtract = this.Refactor.append(\"extract\");\n    this.RefactorInline = this.Refactor.append(\"inline\");\n    this.RefactorMove = this.Refactor.append(\"move\");\n    this.RefactorRewrite = this.Refactor.append(\"rewrite\");\n    this.Notebook = new HierarchicalKind(\"notebook\");\n    this.Source = new HierarchicalKind(\"source\");\n    this.SourceOrganizeImports = this.Source.append(\"organizeImports\");\n    this.SourceFixAll = this.Source.append(\"fixAll\");\n    this.SurroundWith = this.Refactor.append(\"surround\");\n  }\n}();\nvar CodeActionTriggerSource;\n(function(CodeActionTriggerSource2) {\n  CodeActionTriggerSource2[\"Refactor\"] = \"refactor\";\n  CodeActionTriggerSource2[\"RefactorPreview\"] = \"refactor preview\";\n  CodeActionTriggerSource2[\"Lightbulb\"] = \"lightbulb\";\n  CodeActionTriggerSource2[\"Default\"] = \"other (default)\";\n  CodeActionTriggerSource2[\"SourceAction\"] = \"source action\";\n  CodeActionTriggerSource2[\"QuickFix\"] = \"quick fix action\";\n  CodeActionTriggerSource2[\"FixAll\"] = \"fix all\";\n  CodeActionTriggerSource2[\"OrganizeImports\"] = \"organize imports\";\n  CodeActionTriggerSource2[\"AutoFix\"] = \"auto fix\";\n  CodeActionTriggerSource2[\"QuickFixHover\"] = \"quick fix hover window\";\n  CodeActionTriggerSource2[\"OnSave\"] = \"save participants\";\n  CodeActionTriggerSource2[\"ProblemsView\"] = \"problems view\";\n})(CodeActionTriggerSource || (CodeActionTriggerSource = {}));\nfunction mayIncludeActionsOfKind(filter, providedKind) {\n  if (filter.include \u0026\u0026 !filter.include.intersects(providedKind)) {\n    return false;\n  }\n  if (filter.excludes) {\n    if (filter.excludes.some((exclude) =\u003e excludesAction(providedKind, exclude, filter.include))) {\n      return false;\n    }\n  }\n  if (!filter.includeSourceActions \u0026\u0026 CodeActionKind.Source.contains(providedKind)) {\n    return false;\n  }\n  return true;\n}\nfunction filtersAction(filter, action) {\n  const actionKind = action.kind ? new HierarchicalKind(action.kind) : void 0;\n  if (filter.include) {\n    if (!actionKind || !filter.include.contains(actionKind)) {\n      return false;\n    }\n  }\n  if (filter.excludes) {\n    if (actionKind \u0026\u0026 filter.excludes.some((exclude) =\u003e excludesAction(actionKind, exclude, filter.include))) {\n      return false;\n    }\n  }\n  if (!filter.includeSourceActions) {\n    if (actionKind \u0026\u0026 CodeActionKind.Source.contains(actionKind)) {\n      return false;\n    }\n  }\n  if (filter.onlyIncludePreferredActions) {\n    if (!action.isPreferred) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction excludesAction(providedKind, exclude, include) {\n  if (!exclude.contains(providedKind)) {\n    return false;\n  }\n  if (include \u0026\u0026 exclude.contains(include)) {\n    return false;\n  }\n  return true;\n}\nvar CodeActionCommandArgs = class _CodeActionCommandArgs {\n  static fromUser(arg, defaults) {\n    if (!arg || typeof arg !== \"object\") {\n      return new _CodeActionCommandArgs(defaults.kind, defaults.apply, false);\n    }\n    return new _CodeActionCommandArgs(_CodeActionCommandArgs.getKindFromUser(arg, defaults.kind), _CodeActionCommandArgs.getApplyFromUser(arg, defaults.apply), _CodeActionCommandArgs.getPreferredUser(arg));\n  }\n  static getApplyFromUser(arg, defaultAutoApply) {\n    switch (typeof arg.apply === \"string\" ? arg.apply.toLowerCase() : \"\") {\n      case \"first\":\n        return \"first\";\n      case \"never\":\n        return \"never\";\n      case \"ifsingle\":\n        return \"ifSingle\";\n      default:\n        return defaultAutoApply;\n    }\n  }\n  static getKindFromUser(arg, defaultKind) {\n    return typeof arg.kind === \"string\" ? new HierarchicalKind(arg.kind) : defaultKind;\n  }\n  static getPreferredUser(arg) {\n    return typeof arg.preferred === \"boolean\" ? arg.preferred : false;\n  }\n  constructor(kind, apply2, preferred) {\n    this.kind = kind;\n    this.apply = apply2;\n    this.preferred = preferred;\n  }\n};\nvar CodeActionItem = class {\n  constructor(action, provider, highlightRange) {\n    this.action = action;\n    this.provider = provider;\n    this.highlightRange = highlightRange;\n  }\n  async resolve(token) {\n    if (this.provider?.resolveCodeAction \u0026\u0026 !this.action.edit) {\n      let action;\n      try {\n        action = await this.provider.resolveCodeAction(this.action, token);\n      } catch (err) {\n        onUnexpectedExternalError(err);\n      }\n      if (action) {\n        this.action.edit = action.edit;\n      }\n    }\n    return this;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeAction.js\nvar codeActionCommandId = \"editor.action.codeAction\";\nvar quickFixCommandId = \"editor.action.quickFix\";\nvar autoFixCommandId = \"editor.action.autoFix\";\nvar refactorCommandId = \"editor.action.refactor\";\nvar sourceActionCommandId = \"editor.action.sourceAction\";\nvar organizeImportsCommandId = \"editor.action.organizeImports\";\nvar fixAllCommandId = \"editor.action.fixAll\";\nvar CODE_ACTION_SOUND_APPLIED_DURATION = 1e3;\nvar ManagedCodeActionSet = class _ManagedCodeActionSet extends Disposable {\n  static codeActionsPreferredComparator(a, b) {\n    if (a.isPreferred \u0026\u0026 !b.isPreferred) {\n      return -1;\n    } else if (!a.isPreferred \u0026\u0026 b.isPreferred) {\n      return 1;\n    } else {\n      return 0;\n    }\n  }\n  static codeActionsComparator({ action: a }, { action: b }) {\n    if (a.isAI \u0026\u0026 !b.isAI) {\n      return 1;\n    } else if (!a.isAI \u0026\u0026 b.isAI) {\n      return -1;\n    }\n    if (isNonEmptyArray(a.diagnostics)) {\n      return isNonEmptyArray(b.diagnostics) ? _ManagedCodeActionSet.codeActionsPreferredComparator(a, b) : -1;\n    } else if (isNonEmptyArray(b.diagnostics)) {\n      return 1;\n    } else {\n      return _ManagedCodeActionSet.codeActionsPreferredComparator(a, b);\n    }\n  }\n  constructor(actions, documentation, disposables) {\n    super();\n    this.documentation = documentation;\n    this._register(disposables);\n    this.allActions = [...actions].sort(_ManagedCodeActionSet.codeActionsComparator);\n    this.validActions = this.allActions.filter(({ action }) =\u003e !action.disabled);\n  }\n  get hasAutoFix() {\n    return this.validActions.some(({ action: fix }) =\u003e !!fix.kind \u0026\u0026 CodeActionKind.QuickFix.contains(new HierarchicalKind(fix.kind)) \u0026\u0026 !!fix.isPreferred);\n  }\n  get hasAIFix() {\n    return this.validActions.some(({ action: fix }) =\u003e !!fix.isAI);\n  }\n  get allAIFixes() {\n    return this.validActions.every(({ action: fix }) =\u003e !!fix.isAI);\n  }\n};\nvar emptyCodeActionsResponse = { actions: [], documentation: void 0 };\nasync function getCodeActions(registry, model, rangeOrSelection, trigger, progress, token) {\n  const filter = trigger.filter || {};\n  const notebookFilter = {\n    ...filter,\n    excludes: [...filter.excludes || [], CodeActionKind.Notebook]\n  };\n  const codeActionContext = {\n    only: filter.include?.value,\n    trigger: trigger.type\n  };\n  const cts = new TextModelCancellationTokenSource(model, token);\n  const excludeNotebookCodeActions = trigger.type === 2;\n  const providers = getCodeActionProviders(registry, model, excludeNotebookCodeActions ? notebookFilter : filter);\n  const disposables = new DisposableStore();\n  const promises = providers.map(async (provider) =\u003e {\n    const handle = setTimeout(() =\u003e progress.report(provider), 1250);\n    try {\n      const providedCodeActions = await provider.provideCodeActions(model, rangeOrSelection, codeActionContext, cts.token);\n      if (cts.token.isCancellationRequested) {\n        providedCodeActions?.dispose();\n        return emptyCodeActionsResponse;\n      }\n      if (providedCodeActions) {\n        disposables.add(providedCodeActions);\n      }\n      const filteredActions = (providedCodeActions?.actions || []).filter((action) =\u003e action \u0026\u0026 filtersAction(filter, action));\n      const documentation = getDocumentationFromProvider(provider, filteredActions, filter.include);\n      return {\n        actions: filteredActions.map((action) =\u003e new CodeActionItem(action, provider)),\n        documentation\n      };\n    } catch (err) {\n      if (isCancellationError(err)) {\n        throw err;\n      }\n      onUnexpectedExternalError(err);\n      return emptyCodeActionsResponse;\n    } finally {\n      clearTimeout(handle);\n    }\n  });\n  const listener = registry.onDidChange(() =\u003e {\n    const newProviders = registry.all(model);\n    if (!equals(newProviders, providers)) {\n      cts.cancel();\n    }\n  });\n  try {\n    const actions = await Promise.all(promises);\n    const allActions = actions.map((x) =\u003e x.actions).flat();\n    const allDocumentation = [\n      ...coalesce(actions.map((x) =\u003e x.documentation)),\n      ...getAdditionalDocumentationForShowingActions(registry, model, trigger, allActions)\n    ];\n    const managedCodeActionSet = new ManagedCodeActionSet(allActions, allDocumentation, disposables);\n    disposables.add(managedCodeActionSet);\n    return managedCodeActionSet;\n  } catch (err) {\n    disposables.dispose();\n    throw err;\n  } finally {\n    listener.dispose();\n    cts.dispose();\n  }\n}\nfunction getCodeActionProviders(registry, model, filter) {\n  return registry.all(model).filter((provider) =\u003e {\n    if (!provider.providedCodeActionKinds) {\n      return true;\n    }\n    return provider.providedCodeActionKinds.some((kind) =\u003e mayIncludeActionsOfKind(filter, new HierarchicalKind(kind)));\n  });\n}\nfunction* getAdditionalDocumentationForShowingActions(registry, model, trigger, actionsToShow) {\n  if (model \u0026\u0026 actionsToShow.length) {\n    for (const provider of registry.all(model)) {\n      if (provider._getAdditionalMenuItems) {\n        yield* provider._getAdditionalMenuItems?.({ trigger: trigger.type, only: trigger.filter?.include?.value }, actionsToShow.map((item) =\u003e item.action));\n      }\n    }\n  }\n}\nfunction getDocumentationFromProvider(provider, providedCodeActions, only) {\n  if (!provider.documentation) {\n    return void 0;\n  }\n  const documentation = provider.documentation.map((entry) =\u003e ({ kind: new HierarchicalKind(entry.kind), command: entry.command }));\n  if (only) {\n    let currentBest;\n    for (const entry of documentation) {\n      if (entry.kind.contains(only)) {\n        if (!currentBest) {\n          currentBest = entry;\n        } else {\n          if (currentBest.kind.contains(entry.kind)) {\n            currentBest = entry;\n          }\n        }\n      }\n    }\n    if (currentBest) {\n      return currentBest?.command;\n    }\n  }\n  for (const action of providedCodeActions) {\n    if (!action.kind) {\n      continue;\n    }\n    for (const entry of documentation) {\n      if (entry.kind.contains(new HierarchicalKind(action.kind))) {\n        return entry.command;\n      }\n    }\n  }\n  return void 0;\n}\nvar ApplyCodeActionReason;\n(function(ApplyCodeActionReason2) {\n  ApplyCodeActionReason2[\"OnSave\"] = \"onSave\";\n  ApplyCodeActionReason2[\"FromProblemsView\"] = \"fromProblemsView\";\n  ApplyCodeActionReason2[\"FromCodeActions\"] = \"fromCodeActions\";\n  ApplyCodeActionReason2[\"FromAILightbulb\"] = \"fromAILightbulb\";\n  ApplyCodeActionReason2[\"FromProblemsHover\"] = \"fromProblemsHover\";\n})(ApplyCodeActionReason || (ApplyCodeActionReason = {}));\nasync function applyCodeAction(accessor, item, codeActionReason, options2, token = CancellationToken.None) {\n  const bulkEditService = accessor.get(IBulkEditService);\n  const commandService = accessor.get(ICommandService);\n  const telemetryService = accessor.get(ITelemetryService);\n  const notificationService = accessor.get(INotificationService);\n  const accessibilitySignalService = accessor.get(IAccessibilitySignalService);\n  telemetryService.publicLog2(\"codeAction.applyCodeAction\", {\n    codeActionTitle: item.action.title,\n    codeActionKind: item.action.kind,\n    codeActionIsPreferred: !!item.action.isPreferred,\n    reason: codeActionReason\n  });\n  accessibilitySignalService.playSignal(AccessibilitySignal.codeActionTriggered);\n  await item.resolve(token);\n  if (token.isCancellationRequested) {\n    return;\n  }\n  if (item.action.edit?.edits.length) {\n    const result = await bulkEditService.apply(item.action.edit, {\n      editor: options2?.editor,\n      label: item.action.title,\n      quotableLabel: item.action.title,\n      code: \"undoredo.codeAction\",\n      respectAutoSaveConfig: codeActionReason !== ApplyCodeActionReason.OnSave,\n      showPreview: options2?.preview,\n      reason: EditSources.codeAction({ kind: item.action.kind, providerId: ProviderId.fromExtensionId(item.provider?.extensionId) })\n    });\n    if (!result.isApplied) {\n      return;\n    }\n  }\n  if (item.action.command) {\n    try {\n      await commandService.executeCommand(item.action.command.id, ...item.action.command.arguments || []);\n    } catch (err) {\n      const message = asMessage(err);\n      notificationService.error(typeof message === \"string\" ? message : localize(823, \"An unknown error occurred while applying the code action\"));\n    }\n  }\n  setTimeout(() =\u003e accessibilitySignalService.playSignal(AccessibilitySignal.codeActionApplied), CODE_ACTION_SOUND_APPLIED_DURATION);\n}\nfunction asMessage(err) {\n  if (typeof err === \"string\") {\n    return err;\n  } else if (err instanceof Error \u0026\u0026 typeof err.message === \"string\") {\n    return err.message;\n  } else {\n    return void 0;\n  }\n}\nCommandsRegistry.registerCommand(\"_executeCodeActionProvider\", async function(accessor, resource, rangeOrSelection, kind, itemResolveCount) {\n  if (!(resource instanceof URI)) {\n    throw illegalArgument();\n  }\n  const { codeActionProvider } = accessor.get(ILanguageFeaturesService);\n  const model = accessor.get(IModelService).getModel(resource);\n  if (!model) {\n    throw illegalArgument();\n  }\n  const validatedRangeOrSelection = Selection.isISelection(rangeOrSelection) ? Selection.liftSelection(rangeOrSelection) : Range.isIRange(rangeOrSelection) ? model.validateRange(rangeOrSelection) : void 0;\n  if (!validatedRangeOrSelection) {\n    throw illegalArgument();\n  }\n  const include = typeof kind === \"string\" ? new HierarchicalKind(kind) : void 0;\n  const codeActionSet = await getCodeActions(codeActionProvider, model, validatedRangeOrSelection, { type: 1, triggerAction: CodeActionTriggerSource.Default, filter: { includeSourceActions: true, include } }, Progress.None, CancellationToken.None);\n  const resolving = [];\n  const resolveCount = Math.min(codeActionSet.validActions.length, typeof itemResolveCount === \"number\" ? itemResolveCount : 0);\n  for (let i2 = 0; i2 \u003c resolveCount; i2++) {\n    resolving.push(codeActionSet.validActions[i2].resolve(CancellationToken.None));\n  }\n  try {\n    await Promise.all(resolving);\n    return codeActionSet.validActions.map((item) =\u003e item.action);\n  } finally {\n    setTimeout(() =\u003e codeActionSet.dispose(), 100);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js\ninit_nls();\ninit_contextkey();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionController.js\ninit_dom();\ninit_errors();\ninit_lazy();\ninit_lifecycle();\ninit_nls();\ninit_commands();\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/markers/common/markers.js\ninit_nls();\ninit_instantiation();\nvar MarkerSeverity;\n(function(MarkerSeverity4) {\n  MarkerSeverity4[MarkerSeverity4[\"Hint\"] = 1] = \"Hint\";\n  MarkerSeverity4[MarkerSeverity4[\"Info\"] = 2] = \"Info\";\n  MarkerSeverity4[MarkerSeverity4[\"Warning\"] = 4] = \"Warning\";\n  MarkerSeverity4[MarkerSeverity4[\"Error\"] = 8] = \"Error\";\n})(MarkerSeverity || (MarkerSeverity = {}));\n(function(MarkerSeverity4) {\n  function compare2(a, b) {\n    return b - a;\n  }\n  MarkerSeverity4.compare = compare2;\n  const _displayStrings = /* @__PURE__ */ Object.create(null);\n  _displayStrings[MarkerSeverity4.Error] = localize(1713, \"Error\");\n  _displayStrings[MarkerSeverity4.Warning] = localize(1714, \"Warning\");\n  _displayStrings[MarkerSeverity4.Info] = localize(1715, \"Info\");\n  function toString(a) {\n    return _displayStrings[a] || \"\";\n  }\n  MarkerSeverity4.toString = toString;\n  const _displayStringsPlural = /* @__PURE__ */ Object.create(null);\n  _displayStringsPlural[MarkerSeverity4.Error] = localize(1716, \"Errors\");\n  _displayStringsPlural[MarkerSeverity4.Warning] = localize(1717, \"Warnings\");\n  _displayStringsPlural[MarkerSeverity4.Info] = localize(1718, \"Infos\");\n  function toStringPlural(a) {\n    return _displayStringsPlural[a] || \"\";\n  }\n  MarkerSeverity4.toStringPlural = toStringPlural;\n  function fromSeverity(severity) {\n    switch (severity) {\n      case severity_default.Error:\n        return MarkerSeverity4.Error;\n      case severity_default.Warning:\n        return MarkerSeverity4.Warning;\n      case severity_default.Info:\n        return MarkerSeverity4.Info;\n      case severity_default.Ignore:\n        return MarkerSeverity4.Hint;\n    }\n  }\n  MarkerSeverity4.fromSeverity = fromSeverity;\n  function toSeverity(severity) {\n    switch (severity) {\n      case MarkerSeverity4.Error:\n        return severity_default.Error;\n      case MarkerSeverity4.Warning:\n        return severity_default.Warning;\n      case MarkerSeverity4.Info:\n        return severity_default.Info;\n      case MarkerSeverity4.Hint:\n        return severity_default.Ignore;\n    }\n  }\n  MarkerSeverity4.toSeverity = toSeverity;\n})(MarkerSeverity || (MarkerSeverity = {}));\nvar IMarkerData;\n(function(IMarkerData2) {\n  const emptyString = \"\";\n  function makeKey(markerData) {\n    return makeKeyOptionalMessage(markerData, true);\n  }\n  IMarkerData2.makeKey = makeKey;\n  function makeKeyOptionalMessage(markerData, useMessage) {\n    const result = [emptyString];\n    if (markerData.source) {\n      result.push(markerData.source.replace(\"\\xA6\", \"\\\\\\xA6\"));\n    } else {\n      result.push(emptyString);\n    }\n    if (markerData.code) {\n      if (typeof markerData.code === \"string\") {\n        result.push(markerData.code.replace(\"\\xA6\", \"\\\\\\xA6\"));\n      } else {\n        result.push(markerData.code.value.replace(\"\\xA6\", \"\\\\\\xA6\"));\n      }\n    } else {\n      result.push(emptyString);\n    }\n    if (markerData.severity !== void 0 \u0026\u0026 markerData.severity !== null) {\n      result.push(MarkerSeverity.toString(markerData.severity));\n    } else {\n      result.push(emptyString);\n    }\n    if (markerData.message \u0026\u0026 useMessage) {\n      result.push(markerData.message.replace(\"\\xA6\", \"\\\\\\xA6\"));\n    } else {\n      result.push(emptyString);\n    }\n    if (markerData.startLineNumber !== void 0 \u0026\u0026 markerData.startLineNumber !== null) {\n      result.push(markerData.startLineNumber.toString());\n    } else {\n      result.push(emptyString);\n    }\n    if (markerData.startColumn !== void 0 \u0026\u0026 markerData.startColumn !== null) {\n      result.push(markerData.startColumn.toString());\n    } else {\n      result.push(emptyString);\n    }\n    if (markerData.endLineNumber !== void 0 \u0026\u0026 markerData.endLineNumber !== null) {\n      result.push(markerData.endLineNumber.toString());\n    } else {\n      result.push(emptyString);\n    }\n    if (markerData.endColumn !== void 0 \u0026\u0026 markerData.endColumn !== null) {\n      result.push(markerData.endColumn.toString());\n    } else {\n      result.push(emptyString);\n    }\n    result.push(emptyString);\n    return result.join(\"\\xA6\");\n  }\n  IMarkerData2.makeKeyOptionalMessage = makeKeyOptionalMessage;\n})(IMarkerData || (IMarkerData = {}));\nvar IMarkerService = createDecorator(\"markerService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionController.js\ninit_colorRegistry();\ninit_theme();\ninit_themeService();\ninit_position();\ninit_textModel();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionKeybindingResolver.js\ninit_lazy();\nvar __decorate53 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param48 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar CodeActionKeybindingResolver_1;\nvar CodeActionKeybindingResolver = class CodeActionKeybindingResolver2 {\n  static {\n    CodeActionKeybindingResolver_1 = this;\n  }\n  static {\n    this.codeActionCommands = [\n      refactorCommandId,\n      codeActionCommandId,\n      sourceActionCommandId,\n      organizeImportsCommandId,\n      fixAllCommandId\n    ];\n  }\n  constructor(keybindingService) {\n    this.keybindingService = keybindingService;\n  }\n  getResolver() {\n    const allCodeActionBindings = new Lazy(() =\u003e this.keybindingService.getKeybindings().filter((item) =\u003e CodeActionKeybindingResolver_1.codeActionCommands.indexOf(item.command) \u003e= 0).filter((item) =\u003e item.resolvedKeybinding).map((item) =\u003e {\n      let commandArgs = item.commandArgs;\n      if (item.command === organizeImportsCommandId) {\n        commandArgs = { kind: CodeActionKind.SourceOrganizeImports.value };\n      } else if (item.command === fixAllCommandId) {\n        commandArgs = { kind: CodeActionKind.SourceFixAll.value };\n      }\n      return {\n        resolvedKeybinding: item.resolvedKeybinding,\n        ...CodeActionCommandArgs.fromUser(commandArgs, {\n          kind: HierarchicalKind.None,\n          apply: \"never\"\n          /* CodeActionAutoApply.Never */\n        })\n      };\n    }));\n    return (action) =\u003e {\n      if (action.kind) {\n        const binding = this.bestKeybindingForCodeAction(action, allCodeActionBindings.value);\n        return binding?.resolvedKeybinding;\n      }\n      return void 0;\n    };\n  }\n  bestKeybindingForCodeAction(action, candidates) {\n    if (!action.kind) {\n      return void 0;\n    }\n    const kind = new HierarchicalKind(action.kind);\n    return candidates.filter((candidate) =\u003e candidate.kind.contains(kind)).filter((candidate) =\u003e {\n      if (candidate.preferred) {\n        return action.isPreferred;\n      }\n      return true;\n    }).reduceRight((currentBest, candidate) =\u003e {\n      if (!currentBest) {\n        return candidate;\n      }\n      return currentBest.kind.contains(candidate.kind) ? candidate : currentBest;\n    }, void 0);\n  }\n};\nCodeActionKeybindingResolver = CodeActionKeybindingResolver_1 = __decorate53([\n  __param48(0, IKeybindingService)\n], CodeActionKeybindingResolver);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js\ninit_codicons();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js\ninit_nls();\ninit_colorRegistry();\nvar SYMBOL_ICON_ARRAY_FOREGROUND = registerColor(\"symbolIcon.arrayForeground\", foreground, localize(1477, \"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_BOOLEAN_FOREGROUND = registerColor(\"symbolIcon.booleanForeground\", foreground, localize(1478, \"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_CLASS_FOREGROUND = registerColor(\"symbolIcon.classForeground\", {\n  dark: \"#EE9D28\",\n  light: \"#D67E00\",\n  hcDark: \"#EE9D28\",\n  hcLight: \"#D67E00\"\n}, localize(1479, \"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_COLOR_FOREGROUND = registerColor(\"symbolIcon.colorForeground\", foreground, localize(1480, \"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_CONSTANT_FOREGROUND = registerColor(\"symbolIcon.constantForeground\", foreground, localize(1481, \"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_CONSTRUCTOR_FOREGROUND = registerColor(\"symbolIcon.constructorForeground\", {\n  dark: \"#B180D7\",\n  light: \"#652D90\",\n  hcDark: \"#B180D7\",\n  hcLight: \"#652D90\"\n}, localize(1482, \"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_ENUMERATOR_FOREGROUND = registerColor(\"symbolIcon.enumeratorForeground\", {\n  dark: \"#EE9D28\",\n  light: \"#D67E00\",\n  hcDark: \"#EE9D28\",\n  hcLight: \"#D67E00\"\n}, localize(1483, \"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND = registerColor(\"symbolIcon.enumeratorMemberForeground\", {\n  dark: \"#75BEFF\",\n  light: \"#007ACC\",\n  hcDark: \"#75BEFF\",\n  hcLight: \"#007ACC\"\n}, localize(1484, \"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_EVENT_FOREGROUND = registerColor(\"symbolIcon.eventForeground\", {\n  dark: \"#EE9D28\",\n  light: \"#D67E00\",\n  hcDark: \"#EE9D28\",\n  hcLight: \"#D67E00\"\n}, localize(1485, \"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_FIELD_FOREGROUND = registerColor(\"symbolIcon.fieldForeground\", {\n  dark: \"#75BEFF\",\n  light: \"#007ACC\",\n  hcDark: \"#75BEFF\",\n  hcLight: \"#007ACC\"\n}, localize(1486, \"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_FILE_FOREGROUND = registerColor(\"symbolIcon.fileForeground\", foreground, localize(1487, \"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_FOLDER_FOREGROUND = registerColor(\"symbolIcon.folderForeground\", foreground, localize(1488, \"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_FUNCTION_FOREGROUND = registerColor(\"symbolIcon.functionForeground\", {\n  dark: \"#B180D7\",\n  light: \"#652D90\",\n  hcDark: \"#B180D7\",\n  hcLight: \"#652D90\"\n}, localize(1489, \"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_INTERFACE_FOREGROUND = registerColor(\"symbolIcon.interfaceForeground\", {\n  dark: \"#75BEFF\",\n  light: \"#007ACC\",\n  hcDark: \"#75BEFF\",\n  hcLight: \"#007ACC\"\n}, localize(1490, \"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_KEY_FOREGROUND = registerColor(\"symbolIcon.keyForeground\", foreground, localize(1491, \"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_KEYWORD_FOREGROUND = registerColor(\"symbolIcon.keywordForeground\", foreground, localize(1492, \"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_METHOD_FOREGROUND = registerColor(\"symbolIcon.methodForeground\", {\n  dark: \"#B180D7\",\n  light: \"#652D90\",\n  hcDark: \"#B180D7\",\n  hcLight: \"#652D90\"\n}, localize(1493, \"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_MODULE_FOREGROUND = registerColor(\"symbolIcon.moduleForeground\", foreground, localize(1494, \"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_NAMESPACE_FOREGROUND = registerColor(\"symbolIcon.namespaceForeground\", foreground, localize(1495, \"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_NULL_FOREGROUND = registerColor(\"symbolIcon.nullForeground\", foreground, localize(1496, \"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_NUMBER_FOREGROUND = registerColor(\"symbolIcon.numberForeground\", foreground, localize(1497, \"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_OBJECT_FOREGROUND = registerColor(\"symbolIcon.objectForeground\", foreground, localize(1498, \"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_OPERATOR_FOREGROUND = registerColor(\"symbolIcon.operatorForeground\", foreground, localize(1499, \"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_PACKAGE_FOREGROUND = registerColor(\"symbolIcon.packageForeground\", foreground, localize(1500, \"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_PROPERTY_FOREGROUND = registerColor(\"symbolIcon.propertyForeground\", foreground, localize(1501, \"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_REFERENCE_FOREGROUND = registerColor(\"symbolIcon.referenceForeground\", foreground, localize(1502, \"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_SNIPPET_FOREGROUND = registerColor(\"symbolIcon.snippetForeground\", foreground, localize(1503, \"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_STRING_FOREGROUND = registerColor(\"symbolIcon.stringForeground\", foreground, localize(1504, \"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_STRUCT_FOREGROUND = registerColor(\"symbolIcon.structForeground\", foreground, localize(1505, \"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_TEXT_FOREGROUND = registerColor(\"symbolIcon.textForeground\", foreground, localize(1506, \"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_TYPEPARAMETER_FOREGROUND = registerColor(\"symbolIcon.typeParameterForeground\", foreground, localize(1507, \"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_UNIT_FOREGROUND = registerColor(\"symbolIcon.unitForeground\", foreground, localize(1508, \"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\nvar SYMBOL_ICON_VARIABLE_FOREGROUND = registerColor(\"symbolIcon.variableForeground\", {\n  dark: \"#75BEFF\",\n  light: \"#007ACC\",\n  hcDark: \"#75BEFF\",\n  hcLight: \"#007ACC\"\n}, localize(1509, \"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget.\"));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js\ninit_nls();\nvar uncategorizedCodeActionGroup = Object.freeze({ kind: HierarchicalKind.Empty, title: localize(859, \"More Actions...\") });\nvar codeActionGroups = Object.freeze([\n  { kind: CodeActionKind.QuickFix, title: localize(860, \"Quick Fix\") },\n  { kind: CodeActionKind.RefactorExtract, title: localize(861, \"Extract\"), icon: Codicon.wrench },\n  { kind: CodeActionKind.RefactorInline, title: localize(862, \"Inline\"), icon: Codicon.wrench },\n  { kind: CodeActionKind.RefactorRewrite, title: localize(863, \"Rewrite\"), icon: Codicon.wrench },\n  { kind: CodeActionKind.RefactorMove, title: localize(864, \"Move\"), icon: Codicon.wrench },\n  { kind: CodeActionKind.SurroundWith, title: localize(865, \"Surround With\"), icon: Codicon.surroundWith },\n  { kind: CodeActionKind.Source, title: localize(866, \"Source Action\"), icon: Codicon.symbolFile },\n  uncategorizedCodeActionGroup\n]);\nfunction toMenuItems(inputCodeActions, showHeaders, keybindingResolver) {\n  if (!showHeaders) {\n    return inputCodeActions.map((action) =\u003e {\n      return {\n        kind: \"action\",\n        item: action,\n        group: uncategorizedCodeActionGroup,\n        disabled: !!action.action.disabled,\n        label: action.action.disabled || action.action.title,\n        canPreview: !!action.action.edit?.edits.length\n      };\n    });\n  }\n  const menuEntries = codeActionGroups.map((group) =\u003e ({ group, actions: [] }));\n  for (const action of inputCodeActions) {\n    const kind = action.action.kind ? new HierarchicalKind(action.action.kind) : HierarchicalKind.None;\n    for (const menuEntry of menuEntries) {\n      if (menuEntry.group.kind.contains(kind)) {\n        menuEntry.actions.push(action);\n        break;\n      }\n    }\n  }\n  const allMenuItems = [];\n  for (const menuEntry of menuEntries) {\n    if (menuEntry.actions.length) {\n      allMenuItems.push({ kind: \"header\", group: menuEntry.group });\n      for (const action of menuEntry.actions) {\n        const group = menuEntry.group;\n        allMenuItems.push({\n          kind: \"action\",\n          item: action,\n          group: action.action.isAI ? { title: group.title, kind: group.kind, icon: Codicon.sparkle } : group,\n          label: action.action.title,\n          disabled: !!action.action.disabled,\n          keybinding: keybindingResolver(action.action)\n        });\n      }\n    }\n  }\n  return allMenuItems;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionModel.js\ninit_async();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_resources();\ninit_contextkey();\ninit_position();\ninit_selection();\nvar SUPPORTED_CODE_ACTIONS = new RawContextKey(\"supportedCodeAction\", \"\");\nvar APPLY_FIX_ALL_COMMAND_ID = \"_typescript.applyFixAllCodeAction\";\nvar CodeActionOracle = class extends Disposable {\n  constructor(_editor, _markerService, _signalChange, _delay = 250) {\n    super();\n    this._editor = _editor;\n    this._markerService = _markerService;\n    this._signalChange = _signalChange;\n    this._delay = _delay;\n    this._autoTriggerTimer = this._register(new TimeoutTimer());\n    this._register(this._markerService.onMarkerChanged((e) =\u003e this._onMarkerChanges(e)));\n    this._register(this._editor.onDidChangeCursorPosition(() =\u003e this._tryAutoTrigger()));\n  }\n  trigger(trigger) {\n    const selection = this._getRangeOfSelectionUnlessWhitespaceEnclosed(trigger);\n    this._signalChange(selection ? { trigger, selection } : void 0);\n  }\n  _onMarkerChanges(resources) {\n    const model = this._editor.getModel();\n    if (model \u0026\u0026 resources.some((resource) =\u003e isEqual(resource, model.uri))) {\n      this._tryAutoTrigger();\n    }\n  }\n  _tryAutoTrigger() {\n    this._autoTriggerTimer.cancelAndSet(() =\u003e {\n      this.trigger({ type: 2, triggerAction: CodeActionTriggerSource.Default });\n    }, this._delay);\n  }\n  _getRangeOfSelectionUnlessWhitespaceEnclosed(trigger) {\n    if (!this._editor.hasModel()) {\n      return void 0;\n    }\n    const selection = this._editor.getSelection();\n    if (trigger.type === 1) {\n      return selection;\n    }\n    const enabled = this._editor.getOption(\n      73\n      /* EditorOption.lightbulb */\n    ).enabled;\n    if (enabled === ShowLightbulbIconMode.Off) {\n      return void 0;\n    } else if (enabled === ShowLightbulbIconMode.On) {\n      return selection;\n    } else if (enabled === ShowLightbulbIconMode.OnCode) {\n      const isSelectionEmpty = selection.isEmpty();\n      if (!isSelectionEmpty) {\n        return selection;\n      }\n      const model = this._editor.getModel();\n      const { lineNumber, column } = selection.getPosition();\n      const line = model.getLineContent(lineNumber);\n      if (line.length === 0) {\n        return void 0;\n      } else if (column === 1) {\n        if (/\\s/.test(line[0])) {\n          return void 0;\n        }\n      } else if (column === model.getLineMaxColumn(lineNumber)) {\n        if (/\\s/.test(line[line.length - 1])) {\n          return void 0;\n        }\n      } else {\n        if (/\\s/.test(line[column - 2]) \u0026\u0026 /\\s/.test(line[column - 1])) {\n          return void 0;\n        }\n      }\n    }\n    return selection;\n  }\n};\nvar CodeActionsState;\n(function(CodeActionsState2) {\n  CodeActionsState2.Empty = {\n    type: 0\n    /* Type.Empty */\n  };\n  class Triggered {\n    constructor(trigger, position, _cancellablePromise) {\n      this.trigger = trigger;\n      this.position = position;\n      this._cancellablePromise = _cancellablePromise;\n      this.type = 1;\n      this.actions = _cancellablePromise.catch((e) =\u003e {\n        if (isCancellationError(e)) {\n          return emptyCodeActionSet;\n        }\n        throw e;\n      });\n    }\n    cancel() {\n      this._cancellablePromise.cancel();\n    }\n  }\n  CodeActionsState2.Triggered = Triggered;\n})(CodeActionsState || (CodeActionsState = {}));\nvar emptyCodeActionSet = Object.freeze({\n  allActions: [],\n  validActions: [],\n  dispose: () =\u003e {\n  },\n  documentation: [],\n  hasAutoFix: false,\n  hasAIFix: false,\n  allAIFixes: false\n});\nvar CodeActionModel = class extends Disposable {\n  constructor(_editor, _registry2, _markerService, contextKeyService, _progressService, _configurationService) {\n    super();\n    this._editor = _editor;\n    this._registry = _registry2;\n    this._markerService = _markerService;\n    this._progressService = _progressService;\n    this._configurationService = _configurationService;\n    this._codeActionOracle = this._register(new MutableDisposable());\n    this._state = CodeActionsState.Empty;\n    this._onDidChangeState = this._register(new Emitter());\n    this.onDidChangeState = this._onDidChangeState.event;\n    this.codeActionsDisposable = this._register(new MutableDisposable());\n    this._disposed = false;\n    this._supportedCodeActions = SUPPORTED_CODE_ACTIONS.bindTo(contextKeyService);\n    this._register(this._editor.onDidChangeModel(() =\u003e this._update()));\n    this._register(this._editor.onDidChangeModelLanguage(() =\u003e this._update()));\n    this._register(this._registry.onDidChange(() =\u003e this._update()));\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        73\n        /* EditorOption.lightbulb */\n      )) {\n        this._update();\n      }\n    }));\n    this._update();\n  }\n  dispose() {\n    if (this._disposed) {\n      return;\n    }\n    this._disposed = true;\n    super.dispose();\n    this.setState(CodeActionsState.Empty, true);\n  }\n  _settingEnabledNearbyQuickfixes() {\n    const model = this._editor?.getModel();\n    return this._configurationService ? this._configurationService.getValue(\"editor.codeActionWidget.includeNearbyQuickFixes\", { resource: model?.uri }) : false;\n  }\n  _update() {\n    if (this._disposed) {\n      return;\n    }\n    this._codeActionOracle.value = void 0;\n    this.setState(CodeActionsState.Empty);\n    const model = this._editor.getModel();\n    if (model \u0026\u0026 this._registry.has(model) \u0026\u0026 !this._editor.getOption(\n      103\n      /* EditorOption.readOnly */\n    )) {\n      const supportedActions = this._registry.all(model).flatMap((provider) =\u003e provider.providedCodeActionKinds ?? []);\n      this._supportedCodeActions.set(supportedActions.join(\" \"));\n      this._codeActionOracle.value = new CodeActionOracle(this._editor, this._markerService, (trigger) =\u003e {\n        if (!trigger) {\n          this.setState(CodeActionsState.Empty);\n          return;\n        }\n        const startPosition = trigger.selection.getStartPosition();\n        const actions = createCancelablePromise(async (token) =\u003e {\n          if (this._settingEnabledNearbyQuickfixes() \u0026\u0026 trigger.trigger.type === 1 \u0026\u0026 (trigger.trigger.triggerAction === CodeActionTriggerSource.QuickFix || trigger.trigger.filter?.include?.contains(CodeActionKind.QuickFix))) {\n            const codeActionSet2 = await getCodeActions(this._registry, model, trigger.selection, trigger.trigger, Progress.None, token);\n            this.codeActionsDisposable.value = codeActionSet2;\n            const allCodeActions = [...codeActionSet2.allActions];\n            if (token.isCancellationRequested) {\n              codeActionSet2.dispose();\n              return emptyCodeActionSet;\n            }\n            const foundQuickfix = codeActionSet2.validActions?.some((action) =\u003e {\n              return action.action.kind \u0026\u0026 CodeActionKind.QuickFix.contains(new HierarchicalKind(action.action.kind)) \u0026\u0026 !action.action.isAI;\n            });\n            const allMarkers = this._markerService.read({ resource: model.uri });\n            if (foundQuickfix) {\n              for (const action of codeActionSet2.validActions) {\n                if (action.action.command?.arguments?.some((arg) =\u003e typeof arg === \"string\" \u0026\u0026 arg.includes(APPLY_FIX_ALL_COMMAND_ID))) {\n                  action.action.diagnostics = [...allMarkers.filter((marker) =\u003e marker.relatedInformation)];\n                }\n              }\n              return { validActions: codeActionSet2.validActions, allActions: allCodeActions, documentation: codeActionSet2.documentation, hasAutoFix: codeActionSet2.hasAutoFix, hasAIFix: codeActionSet2.hasAIFix, allAIFixes: codeActionSet2.allAIFixes, dispose: () =\u003e {\n                this.codeActionsDisposable.value = codeActionSet2;\n              } };\n            } else if (!foundQuickfix) {\n              if (allMarkers.length \u003e 0) {\n                const currPosition = trigger.selection.getPosition();\n                let trackedPosition = currPosition;\n                let distance = Number.MAX_VALUE;\n                const currentActions = [...codeActionSet2.validActions];\n                for (const marker of allMarkers) {\n                  const col = marker.endColumn;\n                  const row = marker.endLineNumber;\n                  const startRow = marker.startLineNumber;\n                  if (row === currPosition.lineNumber || startRow === currPosition.lineNumber) {\n                    trackedPosition = new Position(row, col);\n                    const newCodeActionTrigger = {\n                      type: trigger.trigger.type,\n                      triggerAction: trigger.trigger.triggerAction,\n                      filter: { include: trigger.trigger.filter?.include ? trigger.trigger.filter?.include : CodeActionKind.QuickFix },\n                      autoApply: trigger.trigger.autoApply,\n                      context: { notAvailableMessage: trigger.trigger.context?.notAvailableMessage || \"\", position: trackedPosition }\n                    };\n                    const selectionAsPosition = new Selection(trackedPosition.lineNumber, trackedPosition.column, trackedPosition.lineNumber, trackedPosition.column);\n                    const actionsAtMarker = await getCodeActions(this._registry, model, selectionAsPosition, newCodeActionTrigger, Progress.None, token);\n                    if (token.isCancellationRequested) {\n                      actionsAtMarker.dispose();\n                      return emptyCodeActionSet;\n                    }\n                    if (actionsAtMarker.validActions.length !== 0) {\n                      for (const action of actionsAtMarker.validActions) {\n                        if (action.action.command?.arguments?.some((arg) =\u003e typeof arg === \"string\" \u0026\u0026 arg.includes(APPLY_FIX_ALL_COMMAND_ID))) {\n                          action.action.diagnostics = [...allMarkers.filter((marker2) =\u003e marker2.relatedInformation)];\n                        }\n                      }\n                      if (codeActionSet2.allActions.length === 0) {\n                        allCodeActions.push(...actionsAtMarker.allActions);\n                      }\n                      if (Math.abs(currPosition.column - col) \u003c distance) {\n                        currentActions.unshift(...actionsAtMarker.validActions);\n                      } else {\n                        currentActions.push(...actionsAtMarker.validActions);\n                      }\n                    }\n                    distance = Math.abs(currPosition.column - col);\n                  }\n                }\n                const filteredActions = currentActions.filter((action, index, self2) =\u003e self2.findIndex((a) =\u003e a.action.title === action.action.title) === index);\n                filteredActions.sort((a, b) =\u003e {\n                  if (a.action.isPreferred \u0026\u0026 !b.action.isPreferred) {\n                    return -1;\n                  } else if (!a.action.isPreferred \u0026\u0026 b.action.isPreferred) {\n                    return 1;\n                  } else if (a.action.isAI \u0026\u0026 !b.action.isAI) {\n                    return 1;\n                  } else if (!a.action.isAI \u0026\u0026 b.action.isAI) {\n                    return -1;\n                  } else {\n                    return 0;\n                  }\n                });\n                return { validActions: filteredActions, allActions: allCodeActions, documentation: codeActionSet2.documentation, hasAutoFix: codeActionSet2.hasAutoFix, hasAIFix: codeActionSet2.hasAIFix, allAIFixes: codeActionSet2.allAIFixes, dispose: () =\u003e {\n                  this.codeActionsDisposable.value = codeActionSet2;\n                } };\n              }\n            }\n          }\n          if (trigger.trigger.type === 1) {\n            const codeActions = await getCodeActions(this._registry, model, trigger.selection, trigger.trigger, Progress.None, token);\n            this.codeActionsDisposable.value = codeActions;\n            return codeActions;\n          }\n          const codeActionSet = await getCodeActions(this._registry, model, trigger.selection, trigger.trigger, Progress.None, token);\n          this.codeActionsDisposable.value = codeActionSet;\n          return codeActionSet;\n        });\n        if (trigger.trigger.type === 1) {\n          this._progressService?.showWhile(actions, 250);\n        }\n        const newState = new CodeActionsState.Triggered(trigger.trigger, startPosition, actions);\n        let isManualToAutoTransition = false;\n        if (this._state.type === 1) {\n          isManualToAutoTransition = this._state.trigger.type === 1 \u0026\u0026 newState.type === 1 \u0026\u0026 newState.trigger.type === 2 \u0026\u0026 this._state.position !== newState.position;\n        }\n        if (!isManualToAutoTransition) {\n          this.setState(newState);\n        } else {\n          setTimeout(() =\u003e {\n            this.setState(newState);\n          }, 500);\n        }\n      }, void 0);\n      this._codeActionOracle.value.trigger({ type: 2, triggerAction: CodeActionTriggerSource.Default });\n    } else {\n      this._supportedCodeActions.reset();\n    }\n  }\n  trigger(trigger) {\n    this._codeActionOracle.value?.trigger(trigger);\n    this.codeActionsDisposable.dispose();\n  }\n  setState(newState, skipNotify) {\n    if (newState === this._state) {\n      return;\n    }\n    if (this._state.type === 1) {\n      this._state.cancel();\n    }\n    this._state = newState;\n    if (!skipNotify \u0026\u0026 !this._disposed) {\n      this._onDidChangeState.fire(newState);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js\ninit_dom();\ninit_codicons();\ninit_event();\ninit_lifecycle();\ninit_themables();\ninit_model2();\ninit_textModel();\ninit_utils4();\ninit_nls();\ninit_range();\nvar __decorate54 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param49 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar LightBulbWidget_1;\nvar GUTTER_LIGHTBULB_ICON = registerIcon(\"gutter-lightbulb\", Codicon.lightBulb, localize(867, \"Icon which spawns code actions menu from the gutter when there is no space in the editor.\"));\nvar GUTTER_LIGHTBULB_AUTO_FIX_ICON = registerIcon(\"gutter-lightbulb-auto-fix\", Codicon.lightbulbAutofix, localize(868, \"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.\"));\nvar GUTTER_LIGHTBULB_AIFIX_ICON = registerIcon(\"gutter-lightbulb-sparkle\", Codicon.lightbulbSparkle, localize(869, \"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.\"));\nvar GUTTER_LIGHTBULB_AIFIX_AUTO_FIX_ICON = registerIcon(\"gutter-lightbulb-aifix-auto-fix\", Codicon.lightbulbSparkleAutofix, localize(870, \"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.\"));\nvar GUTTER_SPARKLE_FILLED_ICON = registerIcon(\"gutter-lightbulb-sparkle-filled\", Codicon.sparkleFilled, localize(871, \"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.\"));\nvar LightBulbState;\n(function(LightBulbState2) {\n  LightBulbState2.Hidden = {\n    type: 0\n    /* Type.Hidden */\n  };\n  class Showing {\n    constructor(actions, trigger, editorPosition, widgetPosition) {\n      this.actions = actions;\n      this.trigger = trigger;\n      this.editorPosition = editorPosition;\n      this.widgetPosition = widgetPosition;\n      this.type = 1;\n    }\n  }\n  LightBulbState2.Showing = Showing;\n})(LightBulbState || (LightBulbState = {}));\nvar LightBulbWidget = class LightBulbWidget2 extends Disposable {\n  static {\n    LightBulbWidget_1 = this;\n  }\n  static {\n    this.GUTTER_DECORATION = ModelDecorationOptions.register({\n      description: \"codicon-gutter-lightbulb-decoration\",\n      glyphMarginClassName: ThemeIcon.asClassName(Codicon.lightBulb),\n      glyphMargin: { position: GlyphMarginLane.Left },\n      stickiness: 1\n    });\n  }\n  static {\n    this.ID = \"editor.contrib.lightbulbWidget\";\n  }\n  static {\n    this._posPref = [\n      0\n      /* ContentWidgetPositionPreference.EXACT */\n    ];\n  }\n  constructor(_editor, _keybindingService) {\n    super();\n    this._editor = _editor;\n    this._keybindingService = _keybindingService;\n    this._onClick = this._register(new Emitter());\n    this.onClick = this._onClick.event;\n    this._state = LightBulbState.Hidden;\n    this._gutterState = LightBulbState.Hidden;\n    this._iconClasses = [];\n    this.lightbulbClasses = [\n      \"codicon-\" + GUTTER_LIGHTBULB_ICON.id,\n      \"codicon-\" + GUTTER_LIGHTBULB_AIFIX_AUTO_FIX_ICON.id,\n      \"codicon-\" + GUTTER_LIGHTBULB_AUTO_FIX_ICON.id,\n      \"codicon-\" + GUTTER_LIGHTBULB_AIFIX_ICON.id,\n      \"codicon-\" + GUTTER_SPARKLE_FILLED_ICON.id\n    ];\n    this.gutterDecoration = LightBulbWidget_1.GUTTER_DECORATION;\n    this._domNode = $(\"div.lightBulbWidget\");\n    this._domNode.role = \"listbox\";\n    this._register(Gesture.ignoreTarget(this._domNode));\n    this._editor.addContentWidget(this);\n    this._register(this._editor.onDidChangeModelContent((_) =\u003e {\n      const editorModel = this._editor.getModel();\n      if (this.state.type !== 1 || !editorModel || this.state.editorPosition.lineNumber \u003e= editorModel.getLineCount()) {\n        this.hide();\n      }\n      if (this.gutterState.type !== 1 || !editorModel || this.gutterState.editorPosition.lineNumber \u003e= editorModel.getLineCount()) {\n        this.gutterHide();\n      }\n    }));\n    this._register(addStandardDisposableGenericMouseDownListener(this._domNode, (e) =\u003e {\n      if (this.state.type !== 1) {\n        return;\n      }\n      this._editor.focus();\n      e.preventDefault();\n      const { top, height } = getDomNodePagePosition(this._domNode);\n      const lineHeight = this._editor.getOption(\n        75\n        /* EditorOption.lineHeight */\n      );\n      let pad = Math.floor(lineHeight / 3);\n      if (this.state.widgetPosition.position !== null \u0026\u0026 this.state.widgetPosition.position.lineNumber \u003c this.state.editorPosition.lineNumber) {\n        pad += lineHeight;\n      }\n      this._onClick.fire({\n        x: e.posx,\n        y: top + height + pad,\n        actions: this.state.actions,\n        trigger: this.state.trigger\n      });\n    }));\n    this._register(addDisposableListener(this._domNode, \"mouseenter\", (e) =\u003e {\n      if ((e.buttons \u0026 1) !== 1) {\n        return;\n      }\n      this.hide();\n    }));\n    this._register(Event.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings, () =\u003e {\n      this._preferredKbLabel = this._keybindingService.lookupKeybinding(autoFixCommandId)?.getLabel() ?? void 0;\n      this._quickFixKbLabel = this._keybindingService.lookupKeybinding(quickFixCommandId)?.getLabel() ?? void 0;\n      this._updateLightBulbTitleAndIcon();\n    }));\n    this._register(this._editor.onMouseDown(async (e) =\u003e {\n      if (!e.target.element || !this.lightbulbClasses.some((cls) =\u003e e.target.element \u0026\u0026 e.target.element.classList.contains(cls))) {\n        return;\n      }\n      if (this.gutterState.type !== 1) {\n        return;\n      }\n      this._editor.focus();\n      const { top, height } = getDomNodePagePosition(e.target.element);\n      const lineHeight = this._editor.getOption(\n        75\n        /* EditorOption.lineHeight */\n      );\n      let pad = Math.floor(lineHeight / 3);\n      if (this.gutterState.widgetPosition.position !== null \u0026\u0026 this.gutterState.widgetPosition.position.lineNumber \u003c this.gutterState.editorPosition.lineNumber) {\n        pad += lineHeight;\n      }\n      this._onClick.fire({\n        x: e.event.posx,\n        y: top + height + pad,\n        actions: this.gutterState.actions,\n        trigger: this.gutterState.trigger\n      });\n    }));\n  }\n  dispose() {\n    super.dispose();\n    this._editor.removeContentWidget(this);\n    if (this._gutterDecorationID) {\n      this._removeGutterDecoration(this._gutterDecorationID);\n    }\n  }\n  getId() {\n    return \"LightBulbWidget\";\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  getPosition() {\n    return this._state.type === 1 ? this._state.widgetPosition : null;\n  }\n  update(actions, trigger, atPosition) {\n    if (actions.validActions.length \u003c= 0) {\n      this.gutterHide();\n      return this.hide();\n    }\n    const hasTextFocus = this._editor.hasTextFocus();\n    if (!hasTextFocus) {\n      this.gutterHide();\n      return this.hide();\n    }\n    const options2 = this._editor.getOptions();\n    if (!options2.get(\n      73\n      /* EditorOption.lightbulb */\n    ).enabled) {\n      this.gutterHide();\n      return this.hide();\n    }\n    const model = this._editor.getModel();\n    if (!model) {\n      this.gutterHide();\n      return this.hide();\n    }\n    const { lineNumber, column } = model.validatePosition(atPosition);\n    const tabSize = model.getOptions().tabSize;\n    const fontInfo = this._editor.getOptions().get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const lineContent = model.getLineContent(lineNumber);\n    const indent = computeIndentLevel(lineContent, tabSize);\n    const lineHasSpace = fontInfo.spaceWidth * indent \u003e 22;\n    const isFolded = (lineNumber2) =\u003e {\n      return lineNumber2 \u003e 2 \u0026\u0026 this._editor.getTopForLineNumber(lineNumber2) === this._editor.getTopForLineNumber(lineNumber2 - 1);\n    };\n    const currLineDecorations = this._editor.getLineDecorations(lineNumber);\n    let hasDecoration = false;\n    if (currLineDecorations) {\n      for (const decoration3 of currLineDecorations) {\n        const glyphClass = decoration3.options.glyphMarginClassName;\n        if (glyphClass \u0026\u0026 !this.lightbulbClasses.some((className2) =\u003e glyphClass.includes(className2))) {\n          hasDecoration = true;\n          break;\n        }\n      }\n    }\n    let effectiveLineNumber = lineNumber;\n    let effectiveColumnNumber = 1;\n    if (!lineHasSpace) {\n      const isLineEmptyOrIndented = (lineNumber2) =\u003e {\n        const lineContent2 = model.getLineContent(lineNumber2);\n        return /^\\s*$|^\\s+/.test(lineContent2) || lineContent2.length \u003c= effectiveColumnNumber;\n      };\n      if (lineNumber \u003e 1 \u0026\u0026 !isFolded(lineNumber - 1)) {\n        const lineCount = model.getLineCount();\n        const endLine = lineNumber === lineCount;\n        const prevLineEmptyOrIndented = lineNumber \u003e 1 \u0026\u0026 isLineEmptyOrIndented(lineNumber - 1);\n        const nextLineEmptyOrIndented = !endLine \u0026\u0026 isLineEmptyOrIndented(lineNumber + 1);\n        const currLineEmptyOrIndented = isLineEmptyOrIndented(lineNumber);\n        const notEmpty = !nextLineEmptyOrIndented \u0026\u0026 !prevLineEmptyOrIndented;\n        if (!nextLineEmptyOrIndented \u0026\u0026 !prevLineEmptyOrIndented \u0026\u0026 !hasDecoration) {\n          this.gutterState = new LightBulbState.Showing(actions, trigger, atPosition, {\n            position: { lineNumber: effectiveLineNumber, column: effectiveColumnNumber },\n            preference: LightBulbWidget_1._posPref\n          });\n          this.renderGutterLightbub();\n          return this.hide();\n        } else if (prevLineEmptyOrIndented || endLine || prevLineEmptyOrIndented \u0026\u0026 !currLineEmptyOrIndented) {\n          effectiveLineNumber -= 1;\n        } else if (nextLineEmptyOrIndented || notEmpty \u0026\u0026 currLineEmptyOrIndented) {\n          effectiveLineNumber += 1;\n        }\n      } else if (lineNumber === 1 \u0026\u0026 (lineNumber === model.getLineCount() || !isLineEmptyOrIndented(lineNumber + 1) \u0026\u0026 !isLineEmptyOrIndented(lineNumber))) {\n        this.gutterState = new LightBulbState.Showing(actions, trigger, atPosition, {\n          position: { lineNumber: effectiveLineNumber, column: effectiveColumnNumber },\n          preference: LightBulbWidget_1._posPref\n        });\n        if (hasDecoration) {\n          this.gutterHide();\n        } else {\n          this.renderGutterLightbub();\n          return this.hide();\n        }\n      } else if (lineNumber \u003c model.getLineCount() \u0026\u0026 !isFolded(lineNumber + 1)) {\n        effectiveLineNumber += 1;\n      } else if (column * fontInfo.spaceWidth \u003c 22) {\n        return this.hide();\n      }\n      effectiveColumnNumber = /^\\S\\s*$/.test(model.getLineContent(effectiveLineNumber)) ? 2 : 1;\n    }\n    this.state = new LightBulbState.Showing(actions, trigger, atPosition, {\n      position: { lineNumber: effectiveLineNumber, column: effectiveColumnNumber },\n      preference: LightBulbWidget_1._posPref\n    });\n    if (this._gutterDecorationID) {\n      this._removeGutterDecoration(this._gutterDecorationID);\n      this.gutterHide();\n    }\n    const validActions = actions.validActions;\n    const actionKind = actions.validActions[0].action.kind;\n    if (validActions.length !== 1 || !actionKind) {\n      this._editor.layoutContentWidget(this);\n      return;\n    }\n    this._editor.layoutContentWidget(this);\n  }\n  hide() {\n    if (this.state === LightBulbState.Hidden) {\n      return;\n    }\n    this.state = LightBulbState.Hidden;\n    this._editor.layoutContentWidget(this);\n  }\n  gutterHide() {\n    if (this.gutterState === LightBulbState.Hidden) {\n      return;\n    }\n    if (this._gutterDecorationID) {\n      this._removeGutterDecoration(this._gutterDecorationID);\n    }\n    this.gutterState = LightBulbState.Hidden;\n  }\n  get state() {\n    return this._state;\n  }\n  set state(value) {\n    this._state = value;\n    this._updateLightBulbTitleAndIcon();\n  }\n  get gutterState() {\n    return this._gutterState;\n  }\n  set gutterState(value) {\n    this._gutterState = value;\n    this._updateGutterLightBulbTitleAndIcon();\n  }\n  _updateLightBulbTitleAndIcon() {\n    this._domNode.classList.remove(...this._iconClasses);\n    this._iconClasses = [];\n    if (this.state.type !== 1) {\n      return;\n    }\n    let icon;\n    let autoRun = false;\n    if (this.state.actions.allAIFixes) {\n      icon = Codicon.sparkleFilled;\n      if (this.state.actions.validActions.length === 1) {\n        autoRun = true;\n      }\n    } else if (this.state.actions.hasAutoFix) {\n      if (this.state.actions.hasAIFix) {\n        icon = Codicon.lightbulbSparkleAutofix;\n      } else {\n        icon = Codicon.lightbulbAutofix;\n      }\n    } else if (this.state.actions.hasAIFix) {\n      icon = Codicon.lightbulbSparkle;\n    } else {\n      icon = Codicon.lightBulb;\n    }\n    this._updateLightbulbTitle(this.state.actions.hasAutoFix, autoRun);\n    this._iconClasses = ThemeIcon.asClassNameArray(icon);\n    this._domNode.classList.add(...this._iconClasses);\n  }\n  _updateGutterLightBulbTitleAndIcon() {\n    if (this.gutterState.type !== 1) {\n      return;\n    }\n    let icon;\n    let autoRun = false;\n    if (this.gutterState.actions.allAIFixes) {\n      icon = GUTTER_SPARKLE_FILLED_ICON;\n      if (this.gutterState.actions.validActions.length === 1) {\n        autoRun = true;\n      }\n    } else if (this.gutterState.actions.hasAutoFix) {\n      if (this.gutterState.actions.hasAIFix) {\n        icon = GUTTER_LIGHTBULB_AIFIX_AUTO_FIX_ICON;\n      } else {\n        icon = GUTTER_LIGHTBULB_AUTO_FIX_ICON;\n      }\n    } else if (this.gutterState.actions.hasAIFix) {\n      icon = GUTTER_LIGHTBULB_AIFIX_ICON;\n    } else {\n      icon = GUTTER_LIGHTBULB_ICON;\n    }\n    this._updateLightbulbTitle(this.gutterState.actions.hasAutoFix, autoRun);\n    const GUTTER_DECORATION = ModelDecorationOptions.register({\n      description: \"codicon-gutter-lightbulb-decoration\",\n      glyphMarginClassName: ThemeIcon.asClassName(icon),\n      glyphMargin: { position: GlyphMarginLane.Left },\n      stickiness: 1\n    });\n    this.gutterDecoration = GUTTER_DECORATION;\n  }\n  /* Gutter Helper Functions */\n  renderGutterLightbub() {\n    const selection = this._editor.getSelection();\n    if (!selection) {\n      return;\n    }\n    if (this._gutterDecorationID === void 0) {\n      this._addGutterDecoration(selection.startLineNumber);\n    } else {\n      this._updateGutterDecoration(this._gutterDecorationID, selection.startLineNumber);\n    }\n  }\n  _addGutterDecoration(lineNumber) {\n    this._editor.changeDecorations((accessor) =\u003e {\n      this._gutterDecorationID = accessor.addDecoration(new Range(lineNumber, 0, lineNumber, 0), this.gutterDecoration);\n    });\n  }\n  _removeGutterDecoration(decorationId) {\n    this._editor.changeDecorations((accessor) =\u003e {\n      accessor.removeDecoration(decorationId);\n      this._gutterDecorationID = void 0;\n    });\n  }\n  _updateGutterDecoration(decorationId, lineNumber) {\n    this._editor.changeDecorations((accessor) =\u003e {\n      accessor.changeDecoration(decorationId, new Range(lineNumber, 0, lineNumber, 0));\n      accessor.changeDecorationOptions(decorationId, this.gutterDecoration);\n    });\n  }\n  _updateLightbulbTitle(autoFix, autoRun) {\n    if (this.state.type !== 1) {\n      return;\n    }\n    if (autoRun) {\n      this.title = localize(872, \"Run: {0}\", this.state.actions.validActions[0].action.title);\n    } else if (autoFix \u0026\u0026 this._preferredKbLabel) {\n      this.title = localize(873, \"Show Code Actions. Preferred Quick Fix Available ({0})\", this._preferredKbLabel);\n    } else if (!autoFix \u0026\u0026 this._quickFixKbLabel) {\n      this.title = localize(874, \"Show Code Actions ({0})\", this._quickFixKbLabel);\n    } else if (!autoFix) {\n      this.title = localize(875, \"Show Code Actions\");\n    }\n  }\n  set title(value) {\n    this._domNode.title = value;\n  }\n};\nLightBulbWidget = LightBulbWidget_1 = __decorate54([\n  __param49(1, IKeybindingService)\n], LightBulbWidget);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionController.js\nvar __decorate55 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param50 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar CodeActionController_1;\nvar DECORATION_CLASS_NAME = \"quickfix-edit-highlight\";\nvar CodeActionController = class CodeActionController2 extends Disposable {\n  static {\n    CodeActionController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.codeActionController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(CodeActionController_1.ID);\n  }\n  constructor(editor2, markerService, contextKeyService, instantiationService, languageFeaturesService, progressService, _commandService, _configurationService, _actionWidgetService, _instantiationService, _progressService) {\n    super();\n    this._commandService = _commandService;\n    this._configurationService = _configurationService;\n    this._actionWidgetService = _actionWidgetService;\n    this._instantiationService = _instantiationService;\n    this._progressService = _progressService;\n    this._activeCodeActions = this._register(new MutableDisposable());\n    this._showDisabled = false;\n    this._disposed = false;\n    this._editor = editor2;\n    this._model = this._register(new CodeActionModel(this._editor, languageFeaturesService.codeActionProvider, markerService, contextKeyService, progressService, _configurationService));\n    this._register(this._model.onDidChangeState((newState) =\u003e this.update(newState)));\n    this._lightBulbWidget = new Lazy(() =\u003e {\n      const widget = this._editor.getContribution(LightBulbWidget.ID);\n      if (widget) {\n        this._register(widget.onClick((e) =\u003e this.showCodeActionsFromLightbulb(e.actions, e)));\n      }\n      return widget;\n    });\n    this._resolver = instantiationService.createInstance(CodeActionKeybindingResolver);\n    this._register(this._editor.onDidLayoutChange(() =\u003e this._actionWidgetService.hide()));\n  }\n  dispose() {\n    this._disposed = true;\n    super.dispose();\n  }\n  async showCodeActionsFromLightbulb(actions, at) {\n    if (actions.allAIFixes \u0026\u0026 actions.validActions.length === 1) {\n      const actionItem = actions.validActions[0];\n      const command = actionItem.action.command;\n      if (command \u0026\u0026 command.id === \"inlineChat.start\") {\n        if (command.arguments \u0026\u0026 command.arguments.length \u003e= 1) {\n          command.arguments[0] = { ...command.arguments[0], autoSend: false };\n        }\n      }\n      await this.applyCodeAction(actionItem, false, false, ApplyCodeActionReason.FromAILightbulb);\n      return;\n    }\n    await this.showCodeActionList(actions, at, { includeDisabledActions: false, fromLightbulb: true });\n  }\n  showCodeActions(_trigger, actions, at) {\n    return this.showCodeActionList(actions, at, { includeDisabledActions: false, fromLightbulb: false });\n  }\n  manualTriggerAtCurrentPosition(notAvailableMessage, triggerAction, filter, autoApply) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    MessageController.get(this._editor)?.closeMessage();\n    const triggerPosition = this._editor.getPosition();\n    this._trigger({ type: 1, triggerAction, filter, autoApply, context: { notAvailableMessage, position: triggerPosition } });\n  }\n  _trigger(trigger) {\n    return this._model.trigger(trigger);\n  }\n  async applyCodeAction(action, retrigger, preview, actionReason) {\n    const progress = this._progressService.show(true, 500);\n    try {\n      await this._instantiationService.invokeFunction(applyCodeAction, action, actionReason, { preview, editor: this._editor });\n    } finally {\n      if (retrigger) {\n        this._trigger({ type: 2, triggerAction: CodeActionTriggerSource.QuickFix, filter: {} });\n      }\n      progress.done();\n    }\n  }\n  hideLightBulbWidget() {\n    this._lightBulbWidget.rawValue?.hide();\n    this._lightBulbWidget.rawValue?.gutterHide();\n  }\n  async update(newState) {\n    if (newState.type !== 1) {\n      this.hideLightBulbWidget();\n      return;\n    }\n    let actions;\n    try {\n      actions = await newState.actions;\n    } catch (e) {\n      onUnexpectedError(e);\n      return;\n    }\n    if (this._disposed) {\n      return;\n    }\n    const selection = this._editor.getSelection();\n    if (selection?.startLineNumber !== newState.position.lineNumber) {\n      return;\n    }\n    this._lightBulbWidget.value?.update(actions, newState.trigger, newState.position);\n    if (newState.trigger.type === 1) {\n      if (newState.trigger.filter?.include) {\n        const validActionToApply = this.tryGetValidActionToApply(newState.trigger, actions);\n        if (validActionToApply) {\n          try {\n            this.hideLightBulbWidget();\n            await this.applyCodeAction(validActionToApply, false, false, ApplyCodeActionReason.FromCodeActions);\n          } finally {\n            actions.dispose();\n          }\n          return;\n        }\n        if (newState.trigger.context) {\n          const invalidAction = this.getInvalidActionThatWouldHaveBeenApplied(newState.trigger, actions);\n          if (invalidAction \u0026\u0026 invalidAction.action.disabled) {\n            MessageController.get(this._editor)?.showMessage(invalidAction.action.disabled, newState.trigger.context.position);\n            actions.dispose();\n            return;\n          }\n        }\n      }\n      const includeDisabledActions = !!newState.trigger.filter?.include;\n      if (newState.trigger.context) {\n        if (!actions.allActions.length || !includeDisabledActions \u0026\u0026 !actions.validActions.length) {\n          MessageController.get(this._editor)?.showMessage(newState.trigger.context.notAvailableMessage, newState.trigger.context.position);\n          this._activeCodeActions.value = actions;\n          actions.dispose();\n          return;\n        }\n      }\n      this._activeCodeActions.value = actions;\n      this.showCodeActionList(actions, this.toCoords(newState.position), { includeDisabledActions, fromLightbulb: false });\n    } else {\n      if (this._actionWidgetService.isVisible) {\n        actions.dispose();\n      } else {\n        this._activeCodeActions.value = actions;\n      }\n    }\n  }\n  getInvalidActionThatWouldHaveBeenApplied(trigger, actions) {\n    if (!actions.allActions.length) {\n      return void 0;\n    }\n    if (trigger.autoApply === \"first\" \u0026\u0026 actions.validActions.length === 0 || trigger.autoApply === \"ifSingle\" \u0026\u0026 actions.allActions.length === 1) {\n      return actions.allActions.find(({ action }) =\u003e action.disabled);\n    }\n    return void 0;\n  }\n  tryGetValidActionToApply(trigger, actions) {\n    if (!actions.validActions.length) {\n      return void 0;\n    }\n    if (trigger.autoApply === \"first\" \u0026\u0026 actions.validActions.length \u003e 0 || trigger.autoApply === \"ifSingle\" \u0026\u0026 actions.validActions.length === 1) {\n      return actions.validActions[0];\n    }\n    return void 0;\n  }\n  static {\n    this.DECORATION = ModelDecorationOptions.register({\n      description: \"quickfix-highlight\",\n      className: DECORATION_CLASS_NAME\n    });\n  }\n  async showCodeActionList(actions, at, options2) {\n    const currentDecorations = this._editor.createDecorationsCollection();\n    const editorDom = this._editor.getDomNode();\n    if (!editorDom) {\n      return;\n    }\n    const actionsToShow = options2.includeDisabledActions \u0026\u0026 (this._showDisabled || actions.validActions.length === 0) ? actions.allActions : actions.validActions;\n    if (!actionsToShow.length) {\n      return;\n    }\n    const anchor = Position.isIPosition(at) ? this.toCoords(at) : at;\n    const delegate = {\n      onSelect: async (action, preview) =\u003e {\n        this.applyCodeAction(\n          action,\n          /* retrigger */\n          true,\n          !!preview,\n          options2.fromLightbulb ? ApplyCodeActionReason.FromAILightbulb : ApplyCodeActionReason.FromCodeActions\n        );\n        this._actionWidgetService.hide(false);\n        currentDecorations.clear();\n      },\n      onHide: (didCancel) =\u003e {\n        this._editor?.focus();\n        currentDecorations.clear();\n      },\n      onHover: async (action, token) =\u003e {\n        if (token.isCancellationRequested) {\n          return;\n        }\n        let canPreview = false;\n        const actionKind = action.action.kind;\n        if (actionKind) {\n          const hierarchicalKind = new HierarchicalKind(actionKind);\n          const refactorKinds = [\n            CodeActionKind.RefactorExtract,\n            CodeActionKind.RefactorInline,\n            CodeActionKind.RefactorRewrite,\n            CodeActionKind.RefactorMove,\n            CodeActionKind.Source\n          ];\n          canPreview = refactorKinds.some((refactorKind) =\u003e refactorKind.contains(hierarchicalKind));\n        }\n        return { canPreview: canPreview || !!action.action.edit?.edits.length };\n      },\n      onFocus: (action) =\u003e {\n        if (action \u0026\u0026 action.action) {\n          const ranges = action.action.ranges;\n          const diagnostics = action.action.diagnostics;\n          currentDecorations.clear();\n          if (ranges \u0026\u0026 ranges.length \u003e 0) {\n            const decorations = diagnostics \u0026\u0026 diagnostics?.length \u003e 1 ? diagnostics.map((diagnostic) =\u003e ({ range: diagnostic, options: CodeActionController_1.DECORATION })) : ranges.map((range2) =\u003e ({ range: range2, options: CodeActionController_1.DECORATION }));\n            currentDecorations.set(decorations);\n          } else if (diagnostics \u0026\u0026 diagnostics.length \u003e 0) {\n            const decorations = diagnostics.map((diagnostic2) =\u003e ({ range: diagnostic2, options: CodeActionController_1.DECORATION }));\n            currentDecorations.set(decorations);\n            const diagnostic = diagnostics[0];\n            if (diagnostic.startLineNumber \u0026\u0026 diagnostic.startColumn) {\n              const selectionText = this._editor.getModel()?.getWordAtPosition({ lineNumber: diagnostic.startLineNumber, column: diagnostic.startColumn })?.word;\n              status(localize(856, \"Context: {0} at line {1} and column {2}.\", selectionText, diagnostic.startLineNumber, diagnostic.startColumn));\n            }\n          }\n        } else {\n          currentDecorations.clear();\n        }\n      }\n    };\n    this._actionWidgetService.show(\"codeActionWidget\", true, toMenuItems(actionsToShow, this._shouldShowHeaders(), this._resolver.getResolver()), delegate, anchor, editorDom, this._getActionBarActions(actions, at, options2));\n  }\n  toCoords(position) {\n    if (!this._editor.hasModel()) {\n      return { x: 0, y: 0 };\n    }\n    this._editor.revealPosition(\n      position,\n      1\n      /* ScrollType.Immediate */\n    );\n    this._editor.render();\n    const cursorCoords = this._editor.getScrolledVisiblePosition(position);\n    const editorCoords = getDomNodePagePosition(this._editor.getDomNode());\n    const x = editorCoords.left + cursorCoords.left;\n    const y = editorCoords.top + cursorCoords.top + cursorCoords.height;\n    return { x, y };\n  }\n  _shouldShowHeaders() {\n    const model = this._editor?.getModel();\n    return this._configurationService.getValue(\"editor.codeActionWidget.showHeaders\", { resource: model?.uri });\n  }\n  _getActionBarActions(actions, at, options2) {\n    if (options2.fromLightbulb) {\n      return [];\n    }\n    const resultActions = actions.documentation.map((command) =\u003e ({\n      id: command.id,\n      label: command.title,\n      tooltip: command.tooltip ?? \"\",\n      class: void 0,\n      enabled: true,\n      run: () =\u003e this._commandService.executeCommand(command.id, ...command.arguments ?? [])\n    }));\n    if (options2.includeDisabledActions \u0026\u0026 actions.validActions.length \u003e 0 \u0026\u0026 actions.allActions.length !== actions.validActions.length) {\n      resultActions.push(this._showDisabled ? {\n        id: \"hideMoreActions\",\n        label: localize(857, \"Hide Disabled\"),\n        enabled: true,\n        tooltip: \"\",\n        class: void 0,\n        run: () =\u003e {\n          this._showDisabled = false;\n          return this.showCodeActionList(actions, at, options2);\n        }\n      } : {\n        id: \"showMoreActions\",\n        label: localize(858, \"Show Disabled\"),\n        enabled: true,\n        tooltip: \"\",\n        class: void 0,\n        run: () =\u003e {\n          this._showDisabled = true;\n          return this.showCodeActionList(actions, at, options2);\n        }\n      });\n    }\n    return resultActions;\n  }\n};\nCodeActionController = CodeActionController_1 = __decorate55([\n  __param50(1, IMarkerService),\n  __param50(2, IContextKeyService),\n  __param50(3, IInstantiationService),\n  __param50(4, ILanguageFeaturesService),\n  __param50(5, IEditorProgressService),\n  __param50(6, ICommandService),\n  __param50(7, IConfigurationService),\n  __param50(8, IActionWidgetService),\n  __param50(9, IInstantiationService),\n  __param50(10, IEditorProgressService)\n], CodeActionController);\nregisterThemingParticipant((theme, collector) =\u003e {\n  const addBackgroundColorRule = (selector, color) =\u003e {\n    if (color) {\n      collector.addRule(`.monaco-editor ${selector} { background-color: ${color}; }`);\n    }\n  };\n  addBackgroundColorRule(\".quickfix-edit-highlight\", theme.getColor(editorFindMatchHighlight));\n  const findMatchHighlightBorder = theme.getColor(editorFindMatchHighlightBorder);\n  if (findMatchHighlightBorder) {\n    collector.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${isHighContrast(theme.type) ? \"dotted\" : \"solid\"} ${findMatchHighlightBorder}; box-sizing: border-box; }`);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js\nfunction contextKeyForSupportedActions(kind) {\n  return ContextKeyExpr.regex(SUPPORTED_CODE_ACTIONS.keys()[0], new RegExp(\"(\\\\s|^)\" + escapeRegExpCharacters(kind.value) + \"\\\\b\"));\n}\nvar argsSchema = {\n  type: \"object\",\n  defaultSnippets: [{ body: { kind: \"\" } }],\n  properties: {\n    \"kind\": {\n      type: \"string\",\n      description: localize(824, \"Kind of the code action to run.\")\n    },\n    \"apply\": {\n      type: \"string\",\n      description: localize(825, \"Controls when the returned actions are applied.\"),\n      default: \"ifSingle\",\n      enum: [\n        \"first\",\n        \"ifSingle\",\n        \"never\"\n        /* CodeActionAutoApply.Never */\n      ],\n      enumDescriptions: [\n        localize(826, \"Always apply the first returned code action.\"),\n        localize(827, \"Apply the first returned code action if it is the only one.\"),\n        localize(828, \"Do not apply the returned code actions.\")\n      ]\n    },\n    \"preferred\": {\n      type: \"boolean\",\n      default: false,\n      description: localize(829, \"Controls if only preferred code actions should be returned.\")\n    }\n  }\n};\nfunction triggerCodeActionsForEditorSelection(editor2, notAvailableMessage, filter, autoApply, triggerAction = CodeActionTriggerSource.Default) {\n  if (editor2.hasModel()) {\n    const controller = CodeActionController.get(editor2);\n    controller?.manualTriggerAtCurrentPosition(notAvailableMessage, triggerAction, filter, autoApply);\n  }\n}\nvar QuickFixAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: quickFixCommandId,\n      label: localize2(846, \"Quick Fix...\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 | 89,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    return triggerCodeActionsForEditorSelection(editor2, localize(830, \"No code actions available\"), void 0, void 0, CodeActionTriggerSource.QuickFix);\n  }\n};\nvar CodeActionCommand = class extends EditorCommand {\n  constructor() {\n    super({\n      id: codeActionCommandId,\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n      metadata: {\n        description: \"Trigger a code action\",\n        args: [{ name: \"args\", schema: argsSchema }]\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2, userArgs) {\n    const args = CodeActionCommandArgs.fromUser(userArgs, {\n      kind: HierarchicalKind.Empty,\n      apply: \"ifSingle\"\n    });\n    return triggerCodeActionsForEditorSelection(editor2, typeof userArgs?.kind === \"string\" ? args.preferred ? localize(831, \"No preferred code actions for '{0}' available\", userArgs.kind) : localize(832, \"No code actions for '{0}' available\", userArgs.kind) : args.preferred ? localize(833, \"No preferred code actions available\") : localize(834, \"No code actions available\"), {\n      include: args.kind,\n      includeSourceActions: true,\n      onlyIncludePreferredActions: args.preferred\n    }, args.apply);\n  }\n};\nvar RefactorAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: refactorCommandId,\n      label: localize2(847, \"Refactor...\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 | 1024 | 48,\n        mac: {\n          primary: 256 | 1024 | 48\n          /* KeyCode.KeyR */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      contextMenuOpts: {\n        group: \"1_modification\",\n        order: 2,\n        when: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.Refactor))\n      },\n      metadata: {\n        description: \"Refactor...\",\n        args: [{ name: \"args\", schema: argsSchema }]\n      }\n    });\n  }\n  run(_accessor, editor2, userArgs) {\n    const args = CodeActionCommandArgs.fromUser(userArgs, {\n      kind: CodeActionKind.Refactor,\n      apply: \"never\"\n      /* CodeActionAutoApply.Never */\n    });\n    return triggerCodeActionsForEditorSelection(editor2, typeof userArgs?.kind === \"string\" ? args.preferred ? localize(835, \"No preferred refactorings for '{0}' available\", userArgs.kind) : localize(836, \"No refactorings for '{0}' available\", userArgs.kind) : args.preferred ? localize(837, \"No preferred refactorings available\") : localize(838, \"No refactorings available\"), {\n      include: CodeActionKind.Refactor.contains(args.kind) ? args.kind : HierarchicalKind.None,\n      onlyIncludePreferredActions: args.preferred\n    }, args.apply, CodeActionTriggerSource.Refactor);\n  }\n};\nvar SourceAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: sourceActionCommandId,\n      label: localize2(848, \"Source Action...\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n      contextMenuOpts: {\n        group: \"1_modification\",\n        order: 2.1,\n        when: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.Source))\n      },\n      metadata: {\n        description: \"Source Action...\",\n        args: [{ name: \"args\", schema: argsSchema }]\n      }\n    });\n  }\n  run(_accessor, editor2, userArgs) {\n    const args = CodeActionCommandArgs.fromUser(userArgs, {\n      kind: CodeActionKind.Source,\n      apply: \"never\"\n      /* CodeActionAutoApply.Never */\n    });\n    return triggerCodeActionsForEditorSelection(editor2, typeof userArgs?.kind === \"string\" ? args.preferred ? localize(839, \"No preferred source actions for '{0}' available\", userArgs.kind) : localize(840, \"No source actions for '{0}' available\", userArgs.kind) : args.preferred ? localize(841, \"No preferred source actions available\") : localize(842, \"No source actions available\"), {\n      include: CodeActionKind.Source.contains(args.kind) ? args.kind : HierarchicalKind.None,\n      includeSourceActions: true,\n      onlyIncludePreferredActions: args.preferred\n    }, args.apply, CodeActionTriggerSource.SourceAction);\n  }\n};\nvar OrganizeImportsAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: organizeImportsCommandId,\n      label: localize2(849, \"Organize Imports\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.SourceOrganizeImports)),\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 1024 | 512 | 45,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(850, \"Organize imports in the current file. Also called 'Optimize Imports' by some tools\")\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    return triggerCodeActionsForEditorSelection(editor2, localize(843, \"No organize imports action available\"), { include: CodeActionKind.SourceOrganizeImports, includeSourceActions: true }, \"ifSingle\", CodeActionTriggerSource.OrganizeImports);\n  }\n};\nvar FixAllAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: fixAllCommandId,\n      label: localize2(851, \"Fix All\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.SourceFixAll))\n    });\n  }\n  run(_accessor, editor2) {\n    return triggerCodeActionsForEditorSelection(editor2, localize(844, \"No fix all action available\"), { include: CodeActionKind.SourceFixAll, includeSourceActions: true }, \"ifSingle\", CodeActionTriggerSource.FixAll);\n  }\n};\nvar AutoFixAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: autoFixCommandId,\n      label: localize2(852, \"Auto Fix...\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.QuickFix)),\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 512 | 1024 | 89,\n        mac: {\n          primary: 2048 | 512 | 89\n          /* KeyCode.Period */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    return triggerCodeActionsForEditorSelection(editor2, localize(845, \"No auto fixes available\"), {\n      include: CodeActionKind.QuickFix,\n      onlyIncludePreferredActions: true\n    }, \"ifSingle\", CodeActionTriggerSource.AutoFix);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js\ninit_nls();\ninit_configurationRegistry();\ninit_platform2();\nregisterEditorContribution(\n  CodeActionController.ID,\n  CodeActionController,\n  3\n  /* EditorContributionInstantiation.Eventually */\n);\nregisterEditorContribution(\n  LightBulbWidget.ID,\n  LightBulbWidget,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\nregisterEditorAction(QuickFixAction);\nregisterEditorAction(RefactorAction);\nregisterEditorAction(SourceAction);\nregisterEditorAction(OrganizeImportsAction);\nregisterEditorAction(AutoFixAction);\nregisterEditorAction(FixAllAction);\nregisterEditorCommand(new CodeActionCommand());\nRegistry.as(Extensions4.Configuration).registerConfiguration({\n  ...editorConfigurationBaseNode,\n  properties: {\n    \"editor.codeActionWidget.showHeaders\": {\n      type: \"boolean\",\n      scope: 6,\n      description: localize(853, \"Enable/disable showing group headers in the Code Action menu.\"),\n      default: true\n    }\n  }\n});\nRegistry.as(Extensions4.Configuration).registerConfiguration({\n  ...editorConfigurationBaseNode,\n  properties: {\n    \"editor.codeActionWidget.includeNearbyQuickFixes\": {\n      type: \"boolean\",\n      scope: 6,\n      description: localize(854, \"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic.\"),\n      default: true\n    }\n  }\n});\nRegistry.as(Extensions4.Configuration).registerConfiguration({\n  ...editorConfigurationBaseNode,\n  properties: {\n    \"editor.codeActions.triggerOnFocusChange\": {\n      type: \"boolean\",\n      scope: 6,\n      markdownDescription: localize(855, \"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.\", \"`#editor.codeActionsOnSave#`\", \"`#files.autoSave#`\", \"`afterDelay`\", \"`always`\"),\n      default: false\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codelens/browser/codelensController.js\ninit_async();\ninit_errors();\ninit_lifecycle();\ninit_editorExtensions();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codelens/browser/codelens.js\ninit_cancellation();\ninit_errors();\ninit_lifecycle();\ninit_types();\ninit_uri();\ninit_model();\ninit_commands();\ninit_languageFeatures();\nvar CodeLensModel = class _CodeLensModel {\n  constructor() {\n    this.lenses = [];\n  }\n  static {\n    this.Empty = new _CodeLensModel();\n  }\n  dispose() {\n    this._store?.dispose();\n  }\n  get isDisposed() {\n    return this._store?.isDisposed ?? false;\n  }\n  add(list2, provider) {\n    if (isDisposable(list2)) {\n      this._store ??= new DisposableStore();\n      this._store.add(list2);\n    }\n    for (const symbol of list2.lenses) {\n      this.lenses.push({ symbol, provider });\n    }\n  }\n};\nasync function getCodeLensModel(registry, model, token) {\n  const provider = registry.ordered(model);\n  const providerRanks = /* @__PURE__ */ new Map();\n  const result = new CodeLensModel();\n  const promises = provider.map(async (provider2, i2) =\u003e {\n    providerRanks.set(provider2, i2);\n    try {\n      const list2 = await Promise.resolve(provider2.provideCodeLenses(model, token));\n      if (list2) {\n        result.add(list2, provider2);\n      }\n    } catch (err) {\n      onUnexpectedExternalError(err);\n    }\n  });\n  await Promise.all(promises);\n  if (token.isCancellationRequested) {\n    result.dispose();\n    return CodeLensModel.Empty;\n  }\n  result.lenses = result.lenses.sort((a, b) =\u003e {\n    if (a.symbol.range.startLineNumber \u003c b.symbol.range.startLineNumber) {\n      return -1;\n    } else if (a.symbol.range.startLineNumber \u003e b.symbol.range.startLineNumber) {\n      return 1;\n    } else if (providerRanks.get(a.provider) \u003c providerRanks.get(b.provider)) {\n      return -1;\n    } else if (providerRanks.get(a.provider) \u003e providerRanks.get(b.provider)) {\n      return 1;\n    } else if (a.symbol.range.startColumn \u003c b.symbol.range.startColumn) {\n      return -1;\n    } else if (a.symbol.range.startColumn \u003e b.symbol.range.startColumn) {\n      return 1;\n    } else {\n      return 0;\n    }\n  });\n  return result;\n}\nCommandsRegistry.registerCommand(\"_executeCodeLensProvider\", function(accessor, ...args) {\n  let [uri, itemResolveCount] = args;\n  assertType(URI.isUri(uri));\n  assertType(typeof itemResolveCount === \"number\" || !itemResolveCount);\n  const { codeLensProvider } = accessor.get(ILanguageFeaturesService);\n  const model = accessor.get(IModelService).getModel(uri);\n  if (!model) {\n    throw illegalArgument();\n  }\n  const result = [];\n  const disposables = new DisposableStore();\n  return getCodeLensModel(codeLensProvider, model, CancellationToken.None).then((value) =\u003e {\n    disposables.add(value);\n    const resolve3 = [];\n    for (const item of value.lenses) {\n      if (itemResolveCount === void 0 || itemResolveCount === null || Boolean(item.symbol.command)) {\n        result.push(item.symbol);\n      } else if (itemResolveCount-- \u003e 0 \u0026\u0026 item.provider.resolveCodeLens) {\n        resolve3.push(Promise.resolve(item.provider.resolveCodeLens(model, item.symbol, CancellationToken.None)).then((symbol) =\u003e result.push(symbol || item.symbol)));\n      }\n    }\n    return Promise.all(resolve3);\n  }).then(() =\u003e {\n    return result;\n  }).finally(() =\u003e {\n    setTimeout(() =\u003e disposables.dispose(), 100);\n  });\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codelens/browser/codeLensCache.js\ninit_event();\ninit_map();\ninit_range();\ninit_extensions();\ninit_instantiation();\ninit_window();\ninit_dom();\nvar __decorate56 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param51 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ICodeLensCache = createDecorator(\"ICodeLensCache\");\nvar CacheItem = class {\n  constructor(lineCount, data) {\n    this.lineCount = lineCount;\n    this.data = data;\n  }\n};\nvar CodeLensCache = class CodeLensCache2 {\n  constructor(storageService) {\n    this._fakeProvider = new class {\n      provideCodeLenses() {\n        throw new Error(\"not supported\");\n      }\n    }();\n    this._cache = new LRUCache(20, 0.75);\n    const oldkey = \"codelens/cache\";\n    runWhenWindowIdle(mainWindow, () =\u003e storageService.remove(\n      oldkey,\n      1\n      /* StorageScope.WORKSPACE */\n    ));\n    const key = \"codelens/cache2\";\n    const raw = storageService.get(key, 1, \"{}\");\n    this._deserialize(raw);\n    const onWillSaveStateBecauseOfShutdown = Event.filter(storageService.onWillSaveState, (e) =\u003e e.reason === WillSaveStateReason.SHUTDOWN);\n    Event.once(onWillSaveStateBecauseOfShutdown)((e) =\u003e {\n      storageService.store(\n        key,\n        this._serialize(),\n        1,\n        1\n        /* StorageTarget.MACHINE */\n      );\n    });\n  }\n  put(model, data) {\n    const copyItems = data.lenses.map((item2) =\u003e {\n      return {\n        range: item2.symbol.range,\n        command: item2.symbol.command \u0026\u0026 { id: \"\", title: item2.symbol.command?.title }\n      };\n    });\n    const copyModel = new CodeLensModel();\n    copyModel.add({ lenses: copyItems }, this._fakeProvider);\n    const item = new CacheItem(model.getLineCount(), copyModel);\n    this._cache.set(model.uri.toString(), item);\n  }\n  get(model) {\n    const item = this._cache.get(model.uri.toString());\n    return item \u0026\u0026 item.lineCount === model.getLineCount() ? item.data : void 0;\n  }\n  delete(model) {\n    this._cache.delete(model.uri.toString());\n  }\n  // --- persistence\n  _serialize() {\n    const data = /* @__PURE__ */ Object.create(null);\n    for (const [key, value] of this._cache) {\n      const lines = /* @__PURE__ */ new Set();\n      for (const d of value.data.lenses) {\n        lines.add(d.symbol.range.startLineNumber);\n      }\n      data[key] = {\n        lineCount: value.lineCount,\n        lines: [...lines.values()]\n      };\n    }\n    return JSON.stringify(data);\n  }\n  _deserialize(raw) {\n    try {\n      const data = JSON.parse(raw);\n      for (const key in data) {\n        const element = data[key];\n        const lenses = [];\n        for (const line of element.lines) {\n          lenses.push({ range: new Range(line, 1, line, 11) });\n        }\n        const model = new CodeLensModel();\n        model.add({ lenses }, this._fakeProvider);\n        this._cache.set(key, new CacheItem(element.lineCount, model));\n      }\n    } catch {\n    }\n  }\n};\nCodeLensCache = __decorate56([\n  __param51(0, IStorageService)\n], CodeLensCache);\nregisterSingleton(\n  ICodeLensCache,\n  CodeLensCache,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codelens/browser/codelensWidget.js\ninit_dom();\ninit_iconLabels2();\ninit_range();\ninit_textModel();\nvar CodeLensViewZone = class {\n  constructor(afterLineNumber, heightInPx, onHeight) {\n    this.afterColumn = 1073741824;\n    this.afterLineNumber = afterLineNumber;\n    this.heightInPx = heightInPx;\n    this._onHeight = onHeight;\n    this.suppressMouseDown = true;\n    this.domNode = document.createElement(\"div\");\n  }\n  onComputedHeight(height) {\n    if (this._lastHeight === void 0) {\n      this._lastHeight = height;\n    } else if (this._lastHeight !== height) {\n      this._lastHeight = height;\n      this._onHeight();\n    }\n  }\n  isVisible() {\n    return this._lastHeight !== 0 \u0026\u0026 this.domNode.hasAttribute(\"monaco-visible-view-zone\");\n  }\n};\nvar CodeLensContentWidget = class _CodeLensContentWidget {\n  static {\n    this._idPool = 0;\n  }\n  constructor(editor2, line) {\n    this.allowEditorOverflow = false;\n    this.suppressMouseDown = true;\n    this._commands = /* @__PURE__ */ new Map();\n    this._isEmpty = true;\n    this._editor = editor2;\n    this._id = `codelens.widget-${_CodeLensContentWidget._idPool++}`;\n    this.updatePosition(line);\n    this._domNode = document.createElement(\"span\");\n    this._domNode.className = `codelens-decoration`;\n  }\n  withCommands(lenses, animate2) {\n    this._commands.clear();\n    const children = [];\n    let hasSymbol = false;\n    for (let i2 = 0; i2 \u003c lenses.length; i2++) {\n      const lens = lenses[i2];\n      if (!lens) {\n        continue;\n      }\n      hasSymbol = true;\n      if (lens.command) {\n        const title = renderLabelWithIcons(lens.command.title.trim());\n        if (lens.command.id) {\n          const id = `c${_CodeLensContentWidget._idPool++}`;\n          children.push($(\"a\", { id, title: lens.command.tooltip, role: \"button\" }, ...title));\n          this._commands.set(id, lens.command);\n        } else {\n          children.push($(\"span\", { title: lens.command.tooltip }, ...title));\n        }\n        if (i2 + 1 \u003c lenses.length) {\n          children.push($(\"span\", void 0, \"\\xA0|\\xA0\"));\n        }\n      }\n    }\n    if (!hasSymbol) {\n      reset(this._domNode, $(\"span\", void 0, \"no commands\"));\n    } else {\n      reset(this._domNode, ...children);\n      if (this._isEmpty \u0026\u0026 animate2) {\n        this._domNode.classList.add(\"fadein\");\n      }\n      this._isEmpty = false;\n    }\n  }\n  getCommand(link2) {\n    return link2.parentElement === this._domNode ? this._commands.get(link2.id) : void 0;\n  }\n  getId() {\n    return this._id;\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  updatePosition(line) {\n    const column = this._editor.getModel().getLineFirstNonWhitespaceColumn(line);\n    this._widgetPosition = {\n      position: { lineNumber: line, column },\n      preference: [\n        1\n        /* ContentWidgetPositionPreference.ABOVE */\n      ]\n    };\n  }\n  getPosition() {\n    return this._widgetPosition || null;\n  }\n};\nvar CodeLensHelper = class {\n  constructor() {\n    this._removeDecorations = [];\n    this._addDecorations = [];\n    this._addDecorationsCallbacks = [];\n  }\n  addDecoration(decoration3, callback) {\n    this._addDecorations.push(decoration3);\n    this._addDecorationsCallbacks.push(callback);\n  }\n  removeDecoration(decorationId) {\n    this._removeDecorations.push(decorationId);\n  }\n  commit(changeAccessor) {\n    const resultingDecorations = changeAccessor.deltaDecorations(this._removeDecorations, this._addDecorations);\n    for (let i2 = 0, len = resultingDecorations.length; i2 \u003c len; i2++) {\n      this._addDecorationsCallbacks[i2](resultingDecorations[i2]);\n    }\n  }\n};\nvar codeLensDecorationOptions = ModelDecorationOptions.register({\n  collapseOnReplaceEdit: true,\n  description: \"codelens\"\n});\nvar CodeLensWidget = class {\n  constructor(data, editor2, helper, viewZoneChangeAccessor, heightInPx, updateCallback) {\n    this._isDisposed = false;\n    this._editor = editor2;\n    this._data = data;\n    this._decorationIds = [];\n    let range2;\n    const lenses = [];\n    this._data.forEach((codeLensData, i2) =\u003e {\n      if (codeLensData.symbol.command) {\n        lenses.push(codeLensData.symbol);\n      }\n      helper.addDecoration({\n        range: codeLensData.symbol.range,\n        options: codeLensDecorationOptions\n      }, (id) =\u003e this._decorationIds[i2] = id);\n      if (!range2) {\n        range2 = Range.lift(codeLensData.symbol.range);\n      } else {\n        range2 = Range.plusRange(range2, codeLensData.symbol.range);\n      }\n    });\n    this._viewZone = new CodeLensViewZone(range2.startLineNumber - 1, heightInPx, updateCallback);\n    this._viewZoneId = viewZoneChangeAccessor.addZone(this._viewZone);\n    if (lenses.length \u003e 0) {\n      this._createContentWidgetIfNecessary();\n      this._contentWidget.withCommands(lenses, false);\n    }\n  }\n  _createContentWidgetIfNecessary() {\n    if (!this._contentWidget) {\n      this._contentWidget = new CodeLensContentWidget(this._editor, this._viewZone.afterLineNumber + 1);\n      this._editor.addContentWidget(this._contentWidget);\n    } else {\n      this._editor.layoutContentWidget(this._contentWidget);\n    }\n  }\n  dispose(helper, viewZoneChangeAccessor) {\n    this._decorationIds.forEach(helper.removeDecoration, helper);\n    this._decorationIds = [];\n    viewZoneChangeAccessor?.removeZone(this._viewZoneId);\n    if (this._contentWidget) {\n      this._editor.removeContentWidget(this._contentWidget);\n      this._contentWidget = void 0;\n    }\n    this._isDisposed = true;\n  }\n  isDisposed() {\n    return this._isDisposed;\n  }\n  isValid() {\n    return this._decorationIds.some((id, i2) =\u003e {\n      const range2 = this._editor.getModel().getDecorationRange(id);\n      const symbol = this._data[i2].symbol;\n      return !!(range2 \u0026\u0026 Range.isEmpty(symbol.range) === range2.isEmpty());\n    });\n  }\n  updateCodeLensSymbols(data, helper) {\n    this._decorationIds.forEach(helper.removeDecoration, helper);\n    this._decorationIds = [];\n    this._data = data;\n    this._data.forEach((codeLensData, i2) =\u003e {\n      helper.addDecoration({\n        range: codeLensData.symbol.range,\n        options: codeLensDecorationOptions\n      }, (id) =\u003e this._decorationIds[i2] = id);\n    });\n  }\n  updateHeight(height, viewZoneChangeAccessor) {\n    this._viewZone.heightInPx = height;\n    viewZoneChangeAccessor.layoutZone(this._viewZoneId);\n    if (this._contentWidget) {\n      this._editor.layoutContentWidget(this._contentWidget);\n    }\n  }\n  computeIfNecessary(model) {\n    if (!this._viewZone.isVisible()) {\n      return null;\n    }\n    for (let i2 = 0; i2 \u003c this._decorationIds.length; i2++) {\n      const range2 = model.getDecorationRange(this._decorationIds[i2]);\n      if (range2) {\n        this._data[i2].symbol.range = range2;\n      }\n    }\n    return this._data;\n  }\n  updateCommands(symbols) {\n    this._createContentWidgetIfNecessary();\n    this._contentWidget.withCommands(symbols, true);\n    for (let i2 = 0; i2 \u003c this._data.length; i2++) {\n      const resolved = symbols[i2];\n      if (resolved) {\n        const { symbol } = this._data[i2];\n        symbol.command = resolved.command || symbol.command;\n      }\n    }\n  }\n  getCommand(link2) {\n    return this._contentWidget?.getCommand(link2);\n  }\n  getLineNumber() {\n    const range2 = this._editor.getModel().getDecorationRange(this._decorationIds[0]);\n    if (range2) {\n      return range2.startLineNumber;\n    }\n    return -1;\n  }\n  update(viewZoneChangeAccessor) {\n    if (this.isValid()) {\n      const range2 = this._editor.getModel().getDecorationRange(this._decorationIds[0]);\n      if (range2) {\n        this._viewZone.afterLineNumber = range2.startLineNumber - 1;\n        viewZoneChangeAccessor.layoutZone(this._viewZoneId);\n        if (this._contentWidget) {\n          this._contentWidget.updatePosition(range2.startLineNumber);\n          this._editor.layoutContentWidget(this._contentWidget);\n        }\n      }\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/codelens/browser/codelensController.js\ninit_nls();\ninit_commands();\ninit_languageFeatureDebounce();\ninit_languageFeatures();\nvar __decorate58 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param53 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar CodeLensContribution = class CodeLensContribution2 {\n  static {\n    this.ID = \"css.editor.codeLens\";\n  }\n  constructor(_editor, _languageFeaturesService, debounceService, _commandService, _notificationService, _codeLensCache) {\n    this._editor = _editor;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._commandService = _commandService;\n    this._notificationService = _notificationService;\n    this._codeLensCache = _codeLensCache;\n    this._disposables = new DisposableStore();\n    this._localToDispose = new DisposableStore();\n    this._lenses = [];\n    this._oldCodeLensModels = new DisposableStore();\n    this._provideCodeLensDebounce = debounceService.for(_languageFeaturesService.codeLensProvider, \"CodeLensProvide\", { min: 250 });\n    this._resolveCodeLensesDebounce = debounceService.for(_languageFeaturesService.codeLensProvider, \"CodeLensResolve\", { min: 250, salt: \"resolve\" });\n    this._resolveCodeLensesScheduler = new RunOnceScheduler(() =\u003e this._resolveCodeLensesInViewport(), this._resolveCodeLensesDebounce.default());\n    this._disposables.add(this._editor.onDidChangeModel(() =\u003e this._onModelChange()));\n    this._disposables.add(this._editor.onDidChangeModelLanguage(() =\u003e this._onModelChange()));\n    this._disposables.add(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        59\n        /* EditorOption.fontInfo */\n      ) || e.hasChanged(\n        25\n        /* EditorOption.codeLensFontSize */\n      ) || e.hasChanged(\n        24\n        /* EditorOption.codeLensFontFamily */\n      )) {\n        this._updateLensStyle();\n      }\n      if (e.hasChanged(\n        23\n        /* EditorOption.codeLens */\n      )) {\n        this._onModelChange();\n      }\n    }));\n    this._disposables.add(_languageFeaturesService.codeLensProvider.onDidChange(this._onModelChange, this));\n    this._onModelChange();\n    this._updateLensStyle();\n  }\n  dispose() {\n    this._localDispose();\n    this._localToDispose.dispose();\n    this._disposables.dispose();\n    this._oldCodeLensModels.dispose();\n    this._currentCodeLensModel?.dispose();\n  }\n  _getLayoutInfo() {\n    const lineHeightFactor = Math.max(1.3, this._editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    ) / this._editor.getOption(\n      61\n      /* EditorOption.fontSize */\n    ));\n    let fontSize = this._editor.getOption(\n      25\n      /* EditorOption.codeLensFontSize */\n    );\n    if (!fontSize || fontSize \u003c 5) {\n      fontSize = this._editor.getOption(\n        61\n        /* EditorOption.fontSize */\n      ) * 0.9 | 0;\n    }\n    return {\n      fontSize,\n      codeLensHeight: fontSize * lineHeightFactor | 0\n    };\n  }\n  _updateLensStyle() {\n    const { codeLensHeight, fontSize } = this._getLayoutInfo();\n    const fontFamily = this._editor.getOption(\n      24\n      /* EditorOption.codeLensFontFamily */\n    );\n    const editorFontInfo = this._editor.getOption(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const { style } = this._editor.getContainerDomNode();\n    style.setProperty(\"--vscode-editorCodeLens-lineHeight\", `${codeLensHeight}px`);\n    style.setProperty(\"--vscode-editorCodeLens-fontSize\", `${fontSize}px`);\n    style.setProperty(\"--vscode-editorCodeLens-fontFeatureSettings\", editorFontInfo.fontFeatureSettings);\n    if (fontFamily) {\n      style.setProperty(\"--vscode-editorCodeLens-fontFamily\", fontFamily);\n      style.setProperty(\"--vscode-editorCodeLens-fontFamilyDefault\", EDITOR_FONT_DEFAULTS.fontFamily);\n    }\n    this._editor.changeViewZones((accessor) =\u003e {\n      for (const lens of this._lenses) {\n        lens.updateHeight(codeLensHeight, accessor);\n      }\n    });\n  }\n  _localDispose() {\n    this._getCodeLensModelPromise?.cancel();\n    this._getCodeLensModelPromise = void 0;\n    this._resolveCodeLensesPromise?.cancel();\n    this._resolveCodeLensesPromise = void 0;\n    this._localToDispose.clear();\n    this._oldCodeLensModels.clear();\n    this._currentCodeLensModel?.dispose();\n  }\n  _onModelChange() {\n    this._localDispose();\n    const model = this._editor.getModel();\n    if (!model) {\n      return;\n    }\n    if (!this._editor.getOption(\n      23\n      /* EditorOption.codeLens */\n    ) || model.isTooLargeForTokenization()) {\n      return;\n    }\n    const cachedLenses = this._codeLensCache.get(model);\n    if (cachedLenses) {\n      this._renderCodeLensSymbols(cachedLenses);\n    }\n    if (!this._languageFeaturesService.codeLensProvider.has(model)) {\n      if (cachedLenses) {\n        disposableTimeout(() =\u003e {\n          const cachedLensesNow = this._codeLensCache.get(model);\n          if (cachedLenses === cachedLensesNow) {\n            this._codeLensCache.delete(model);\n            this._onModelChange();\n          }\n        }, 30 * 1e3, this._localToDispose);\n      }\n      return;\n    }\n    for (const provider of this._languageFeaturesService.codeLensProvider.all(model)) {\n      if (typeof provider.onDidChange === \"function\") {\n        const registration = provider.onDidChange(() =\u003e scheduler.schedule());\n        this._localToDispose.add(registration);\n      }\n    }\n    const scheduler = new RunOnceScheduler(() =\u003e {\n      const t1 = Date.now();\n      this._getCodeLensModelPromise?.cancel();\n      this._getCodeLensModelPromise = createCancelablePromise((token) =\u003e getCodeLensModel(this._languageFeaturesService.codeLensProvider, model, token));\n      this._getCodeLensModelPromise.then((result) =\u003e {\n        if (this._currentCodeLensModel) {\n          this._oldCodeLensModels.add(this._currentCodeLensModel);\n        }\n        this._currentCodeLensModel = result;\n        this._codeLensCache.put(model, result);\n        const newDelay = this._provideCodeLensDebounce.update(model, Date.now() - t1);\n        scheduler.delay = newDelay;\n        this._renderCodeLensSymbols(result);\n        this._resolveCodeLensesInViewportSoon();\n      }, onUnexpectedError);\n    }, this._provideCodeLensDebounce.get(model));\n    this._localToDispose.add(scheduler);\n    this._localToDispose.add(toDisposable(() =\u003e this._resolveCodeLensesScheduler.cancel()));\n    this._localToDispose.add(this._editor.onDidChangeModelContent(() =\u003e {\n      this._editor.changeDecorations((decorationsAccessor) =\u003e {\n        this._editor.changeViewZones((viewZonesAccessor) =\u003e {\n          const toDispose = [];\n          let lastLensLineNumber = -1;\n          this._lenses.forEach((lens) =\u003e {\n            if (!lens.isValid() || lastLensLineNumber === lens.getLineNumber()) {\n              toDispose.push(lens);\n            } else {\n              lens.update(viewZonesAccessor);\n              lastLensLineNumber = lens.getLineNumber();\n            }\n          });\n          const helper = new CodeLensHelper();\n          toDispose.forEach((l) =\u003e {\n            l.dispose(helper, viewZonesAccessor);\n            this._lenses.splice(this._lenses.indexOf(l), 1);\n          });\n          helper.commit(decorationsAccessor);\n        });\n      });\n      scheduler.schedule();\n      this._resolveCodeLensesScheduler.cancel();\n      this._resolveCodeLensesPromise?.cancel();\n      this._resolveCodeLensesPromise = void 0;\n    }));\n    this._localToDispose.add(this._editor.onDidFocusEditorText(() =\u003e {\n      scheduler.schedule();\n    }));\n    this._localToDispose.add(this._editor.onDidBlurEditorText(() =\u003e {\n      scheduler.cancel();\n    }));\n    this._localToDispose.add(this._editor.onDidScrollChange((e) =\u003e {\n      if (e.scrollTopChanged \u0026\u0026 this._lenses.length \u003e 0) {\n        this._resolveCodeLensesInViewportSoon();\n      }\n    }));\n    this._localToDispose.add(this._editor.onDidLayoutChange(() =\u003e {\n      this._resolveCodeLensesInViewportSoon();\n    }));\n    this._localToDispose.add(toDisposable(() =\u003e {\n      if (this._editor.getModel()) {\n        const scrollState = StableEditorScrollState.capture(this._editor);\n        this._editor.changeDecorations((decorationsAccessor) =\u003e {\n          this._editor.changeViewZones((viewZonesAccessor) =\u003e {\n            this._disposeAllLenses(decorationsAccessor, viewZonesAccessor);\n          });\n        });\n        scrollState.restore(this._editor);\n      } else {\n        this._disposeAllLenses(void 0, void 0);\n      }\n    }));\n    this._localToDispose.add(this._editor.onMouseDown((e) =\u003e {\n      if (e.target.type !== 9) {\n        return;\n      }\n      let target = e.target.element;\n      if (target?.tagName === \"SPAN\") {\n        target = target.parentElement;\n      }\n      if (target?.tagName === \"A\") {\n        for (const lens of this._lenses) {\n          const command = lens.getCommand(target);\n          if (command) {\n            this._commandService.executeCommand(command.id, ...command.arguments || []).catch((err) =\u003e this._notificationService.error(err));\n            break;\n          }\n        }\n      }\n    }));\n    scheduler.schedule();\n  }\n  _disposeAllLenses(decChangeAccessor, viewZoneChangeAccessor) {\n    const helper = new CodeLensHelper();\n    for (const lens of this._lenses) {\n      lens.dispose(helper, viewZoneChangeAccessor);\n    }\n    if (decChangeAccessor) {\n      helper.commit(decChangeAccessor);\n    }\n    this._lenses.length = 0;\n  }\n  _renderCodeLensSymbols(symbols) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const maxLineNumber = this._editor.getModel().getLineCount();\n    const groups = [];\n    let lastGroup;\n    for (const symbol of symbols.lenses) {\n      const line = symbol.symbol.range.startLineNumber;\n      if (line \u003c 1 || line \u003e maxLineNumber) {\n        continue;\n      } else if (lastGroup \u0026\u0026 lastGroup[lastGroup.length - 1].symbol.range.startLineNumber === line) {\n        lastGroup.push(symbol);\n      } else {\n        lastGroup = [symbol];\n        groups.push(lastGroup);\n      }\n    }\n    if (!groups.length \u0026\u0026 !this._lenses.length) {\n      return;\n    }\n    const scrollState = StableEditorScrollState.capture(this._editor);\n    const layoutInfo = this._getLayoutInfo();\n    this._editor.changeDecorations((decorationsAccessor) =\u003e {\n      this._editor.changeViewZones((viewZoneAccessor) =\u003e {\n        const helper = new CodeLensHelper();\n        let codeLensIndex = 0;\n        let groupsIndex = 0;\n        while (groupsIndex \u003c groups.length \u0026\u0026 codeLensIndex \u003c this._lenses.length) {\n          const symbolsLineNumber = groups[groupsIndex][0].symbol.range.startLineNumber;\n          const codeLensLineNumber = this._lenses[codeLensIndex].getLineNumber();\n          if (codeLensLineNumber \u003c symbolsLineNumber) {\n            this._lenses[codeLensIndex].dispose(helper, viewZoneAccessor);\n            this._lenses.splice(codeLensIndex, 1);\n          } else if (codeLensLineNumber === symbolsLineNumber) {\n            this._lenses[codeLensIndex].updateCodeLensSymbols(groups[groupsIndex], helper);\n            groupsIndex++;\n            codeLensIndex++;\n          } else {\n            this._lenses.splice(codeLensIndex, 0, new CodeLensWidget(groups[groupsIndex], this._editor, helper, viewZoneAccessor, layoutInfo.codeLensHeight, () =\u003e this._resolveCodeLensesInViewportSoon()));\n            codeLensIndex++;\n            groupsIndex++;\n          }\n        }\n        while (codeLensIndex \u003c this._lenses.length) {\n          this._lenses[codeLensIndex].dispose(helper, viewZoneAccessor);\n          this._lenses.splice(codeLensIndex, 1);\n        }\n        while (groupsIndex \u003c groups.length) {\n          this._lenses.push(new CodeLensWidget(groups[groupsIndex], this._editor, helper, viewZoneAccessor, layoutInfo.codeLensHeight, () =\u003e this._resolveCodeLensesInViewportSoon()));\n          groupsIndex++;\n        }\n        helper.commit(decorationsAccessor);\n      });\n    });\n    scrollState.restore(this._editor);\n  }\n  _resolveCodeLensesInViewportSoon() {\n    const model = this._editor.getModel();\n    if (model) {\n      this._resolveCodeLensesScheduler.schedule();\n    }\n  }\n  _resolveCodeLensesInViewport() {\n    this._resolveCodeLensesPromise?.cancel();\n    this._resolveCodeLensesPromise = void 0;\n    const model = this._editor.getModel();\n    if (!model) {\n      return;\n    }\n    const toResolve = [];\n    const lenses = [];\n    this._lenses.forEach((lens) =\u003e {\n      const request = lens.computeIfNecessary(model);\n      if (request) {\n        toResolve.push(request);\n        lenses.push(lens);\n      }\n    });\n    if (toResolve.length === 0) {\n      this._oldCodeLensModels.clear();\n      return;\n    }\n    const t1 = Date.now();\n    const resolvePromise = createCancelablePromise((token) =\u003e {\n      const promises = toResolve.map((request, i2) =\u003e {\n        const resolvedSymbols = new Array(request.length);\n        const promises2 = request.map((request2, i3) =\u003e {\n          if (!request2.symbol.command \u0026\u0026 typeof request2.provider.resolveCodeLens === \"function\") {\n            return Promise.resolve(request2.provider.resolveCodeLens(model, request2.symbol, token)).then((symbol) =\u003e {\n              resolvedSymbols[i3] = symbol;\n            }, onUnexpectedExternalError);\n          } else {\n            resolvedSymbols[i3] = request2.symbol;\n            return Promise.resolve(void 0);\n          }\n        });\n        return Promise.all(promises2).then(() =\u003e {\n          if (!token.isCancellationRequested \u0026\u0026 !lenses[i2].isDisposed()) {\n            lenses[i2].updateCommands(resolvedSymbols);\n          }\n        });\n      });\n      return Promise.all(promises);\n    });\n    this._resolveCodeLensesPromise = resolvePromise;\n    this._resolveCodeLensesPromise.then(() =\u003e {\n      const newDelay = this._resolveCodeLensesDebounce.update(model, Date.now() - t1);\n      this._resolveCodeLensesScheduler.delay = newDelay;\n      if (this._currentCodeLensModel) {\n        this._codeLensCache.put(model, this._currentCodeLensModel);\n      }\n      this._oldCodeLensModels.clear();\n      if (resolvePromise === this._resolveCodeLensesPromise) {\n        this._resolveCodeLensesPromise = void 0;\n      }\n    }, (err) =\u003e {\n      onUnexpectedError(err);\n      if (resolvePromise === this._resolveCodeLensesPromise) {\n        this._resolveCodeLensesPromise = void 0;\n      }\n    });\n  }\n  async getModel() {\n    await this._getCodeLensModelPromise;\n    await this._resolveCodeLensesPromise;\n    return !this._currentCodeLensModel?.isDisposed ? this._currentCodeLensModel : void 0;\n  }\n};\nCodeLensContribution = __decorate58([\n  __param53(1, ILanguageFeaturesService),\n  __param53(2, ILanguageFeatureDebounceService),\n  __param53(3, ICommandService),\n  __param53(4, INotificationService),\n  __param53(5, ICodeLensCache)\n], CodeLensContribution);\nregisterEditorContribution(\n  CodeLensContribution.ID,\n  CodeLensContribution,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nregisterEditorAction(class ShowLensesInCurrentLine extends EditorAction {\n  constructor() {\n    super({\n      id: \"codelens.showLensesInCurrentLine\",\n      precondition: EditorContextKeys.hasCodeLensProvider,\n      label: localize2(877, \"Show CodeLens Commands for Current Line\")\n    });\n  }\n  async run(accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const quickInputService = accessor.get(IQuickInputService);\n    const commandService = accessor.get(ICommandService);\n    const notificationService = accessor.get(INotificationService);\n    const lineNumber = editor2.getSelection().positionLineNumber;\n    const codelensController = editor2.getContribution(CodeLensContribution.ID);\n    if (!codelensController) {\n      return;\n    }\n    const model = await codelensController.getModel();\n    if (!model) {\n      return;\n    }\n    const items = [];\n    for (const lens of model.lenses) {\n      if (lens.symbol.command \u0026\u0026 lens.symbol.range.startLineNumber === lineNumber) {\n        items.push({\n          label: lens.symbol.command.title,\n          command: lens.symbol.command\n        });\n      }\n    }\n    if (items.length === 0) {\n      return;\n    }\n    const item = await quickInputService.pick(items, {\n      canPickMany: false,\n      placeHolder: localize(876, \"Select a command\")\n    });\n    if (!item) {\n      return;\n    }\n    let command = item.command;\n    if (model.isDisposed) {\n      const newModel = await codelensController.getModel();\n      const newLens = newModel?.lenses.find((lens) =\u003e lens.symbol.range.startLineNumber === lineNumber \u0026\u0026 lens.symbol.command?.title === command.title);\n      if (!newLens || !newLens.symbol.command) {\n        return;\n      }\n      command = newLens.symbol.command;\n    }\n    try {\n      await commandService.executeCommand(command.id, ...command.arguments || []);\n    } catch (err) {\n      notificationService.error(err);\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerContribution.js\ninit_cancellation();\ninit_errors();\ninit_uri();\ninit_actions2();\ninit_commands();\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/editorFeatures.js\nvar editorFeatures = [];\nfunction registerEditorFeature(ctor) {\n  editorFeatures.push(ctor);\n}\nfunction getEditorFeatures() {\n  return editorFeatures.slice(0);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/hoverTypes.js\nvar HoverRangeAnchor = class {\n  constructor(priority, range2, initialMousePosX, initialMousePosY) {\n    this.priority = priority;\n    this.range = range2;\n    this.initialMousePosX = initialMousePosX;\n    this.initialMousePosY = initialMousePosY;\n    this.type = 1;\n  }\n  equals(other) {\n    return other.type === 1 \u0026\u0026 this.range.equalsRange(other.range);\n  }\n  canAdoptVisibleHover(lastAnchor, showAtPosition) {\n    return lastAnchor.type === 1 \u0026\u0026 showAtPosition.lineNumber === this.range.startLineNumber;\n  }\n};\nvar HoverForeignElementAnchor = class {\n  constructor(priority, owner, range2, initialMousePosX, initialMousePosY, supportsMarkerHover) {\n    this.priority = priority;\n    this.owner = owner;\n    this.range = range2;\n    this.initialMousePosX = initialMousePosX;\n    this.initialMousePosY = initialMousePosY;\n    this.supportsMarkerHover = supportsMarkerHover;\n    this.type = 2;\n  }\n  equals(other) {\n    return other.type === 2 \u0026\u0026 this.owner === other.owner;\n  }\n  canAdoptVisibleHover(lastAnchor, showAtPosition) {\n    return lastAnchor.type === 2 \u0026\u0026 this.owner === lastAnchor.owner;\n  }\n};\nvar RenderedHoverParts = class {\n  constructor(renderedHoverParts, disposables) {\n    this.renderedHoverParts = renderedHoverParts;\n    this.disposables = disposables;\n  }\n  dispose() {\n    for (const part of this.renderedHoverParts) {\n      part.dispose();\n    }\n    this.disposables?.dispose();\n  }\n};\nvar HoverParticipantRegistry = new class HoverParticipantRegistry2 {\n  constructor() {\n    this._participants = [];\n  }\n  register(ctor) {\n    this._participants.push(ctor);\n  }\n  getAll() {\n    return this._participants;\n  }\n}();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/color.js\ninit_cancellation();\ninit_errors();\ninit_model();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/defaultDocumentColorProvider.js\ninit_color();\ninit_lifecycle();\ninit_languageFeatures();\ninit_editorWorker();\nvar __decorate59 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param54 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DefaultDocumentColorProvider = class DefaultDocumentColorProvider2 {\n  constructor(_editorWorkerService) {\n    this._editorWorkerService = _editorWorkerService;\n  }\n  async provideDocumentColors(model, _token) {\n    return this._editorWorkerService.computeDefaultDocumentColors(model.uri);\n  }\n  provideColorPresentations(_model, colorInfo, _token) {\n    const range2 = colorInfo.range;\n    const colorFromInfo = colorInfo.color;\n    const alpha = colorFromInfo.alpha;\n    const color = new Color(new RGBA(Math.round(255 * colorFromInfo.red), Math.round(255 * colorFromInfo.green), Math.round(255 * colorFromInfo.blue), alpha));\n    const rgb = alpha ? Color.Format.CSS.formatRGBA(color) : Color.Format.CSS.formatRGB(color);\n    const hsl = alpha ? Color.Format.CSS.formatHSLA(color) : Color.Format.CSS.formatHSL(color);\n    const hex = alpha ? Color.Format.CSS.formatHexA(color) : Color.Format.CSS.formatHex(color);\n    const colorPresentations = [];\n    colorPresentations.push({ label: rgb, textEdit: { range: range2, text: rgb } });\n    colorPresentations.push({ label: hsl, textEdit: { range: range2, text: hsl } });\n    colorPresentations.push({ label: hex, textEdit: { range: range2, text: hex } });\n    return colorPresentations;\n  }\n};\nDefaultDocumentColorProvider = __decorate59([\n  __param54(0, IEditorWorkerService)\n], DefaultDocumentColorProvider);\nvar DefaultDocumentColorProviderFeature = class DefaultDocumentColorProviderFeature2 extends Disposable {\n  constructor(_languageFeaturesService, editorWorkerService) {\n    super();\n    this._register(_languageFeaturesService.colorProvider.register(\"*\", new DefaultDocumentColorProvider(editorWorkerService)));\n  }\n};\nDefaultDocumentColorProviderFeature = __decorate59([\n  __param54(0, ILanguageFeaturesService),\n  __param54(1, IEditorWorkerService)\n], DefaultDocumentColorProviderFeature);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/color.js\ninit_configuration();\nasync function getColors(colorProviderRegistry, model, token, defaultColorDecoratorsEnablement = \"auto\") {\n  return _findColorData(new ColorDataCollector(), colorProviderRegistry, model, token, defaultColorDecoratorsEnablement);\n}\nfunction getColorPresentations(model, colorInfo, provider, token) {\n  return Promise.resolve(provider.provideColorPresentations(model, colorInfo, token));\n}\nvar ColorDataCollector = class {\n  constructor() {\n  }\n  async compute(provider, model, token, colors) {\n    const documentColors = await provider.provideDocumentColors(model, token);\n    if (Array.isArray(documentColors)) {\n      for (const colorInfo of documentColors) {\n        colors.push({ colorInfo, provider });\n      }\n    }\n    return Array.isArray(documentColors);\n  }\n};\nvar ExtColorDataCollector = class {\n  constructor() {\n  }\n  async compute(provider, model, token, colors) {\n    const documentColors = await provider.provideDocumentColors(model, token);\n    if (Array.isArray(documentColors)) {\n      for (const colorInfo of documentColors) {\n        colors.push({ range: colorInfo.range, color: [colorInfo.color.red, colorInfo.color.green, colorInfo.color.blue, colorInfo.color.alpha] });\n      }\n    }\n    return Array.isArray(documentColors);\n  }\n};\nvar ColorPresentationsCollector = class {\n  constructor(colorInfo) {\n    this.colorInfo = colorInfo;\n  }\n  async compute(provider, model, _token, colors) {\n    const documentColors = await provider.provideColorPresentations(model, this.colorInfo, CancellationToken.None);\n    if (Array.isArray(documentColors)) {\n      colors.push(...documentColors);\n    }\n    return Array.isArray(documentColors);\n  }\n};\nasync function _findColorData(collector, colorProviderRegistry, model, token, defaultColorDecoratorsEnablement) {\n  let validDocumentColorProviderFound = false;\n  let defaultProvider;\n  const colorData = [];\n  const documentColorProviders = colorProviderRegistry.ordered(model);\n  for (let i2 = documentColorProviders.length - 1; i2 \u003e= 0; i2--) {\n    const provider = documentColorProviders[i2];\n    if (defaultColorDecoratorsEnablement !== \"always\" \u0026\u0026 provider instanceof DefaultDocumentColorProvider) {\n      defaultProvider = provider;\n    } else {\n      try {\n        if (await collector.compute(provider, model, token, colorData)) {\n          validDocumentColorProviderFound = true;\n        }\n      } catch (e) {\n        onUnexpectedExternalError(e);\n      }\n    }\n  }\n  if (validDocumentColorProviderFound) {\n    return colorData;\n  }\n  if (defaultProvider \u0026\u0026 defaultColorDecoratorsEnablement !== \"never\") {\n    await collector.compute(defaultProvider, model, token, colorData);\n    return colorData;\n  }\n  return [];\n}\nfunction _setupColorCommand(accessor, resource) {\n  const { colorProvider: colorProviderRegistry } = accessor.get(ILanguageFeaturesService);\n  const model = accessor.get(IModelService).getModel(resource);\n  if (!model) {\n    throw illegalArgument();\n  }\n  const defaultColorDecoratorsEnablement = accessor.get(IConfigurationService).getValue(\"editor.defaultColorDecorators\", { resource });\n  return { model, colorProviderRegistry, defaultColorDecoratorsEnablement };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js\ninit_async();\ninit_color();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_stopwatch();\ninit_strings();\ninit_range();\ninit_textModel();\ninit_languageFeatureDebounce();\ninit_languageFeatures();\ninit_configuration();\nvar __decorate60 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param55 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ColorDetector_1;\nvar ColorDecorationInjectedTextMarker = /* @__PURE__ */ Object.create({});\nvar ColorDetector = class ColorDetector2 extends Disposable {\n  static {\n    ColorDetector_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.colorDetector\";\n  }\n  static {\n    this.RECOMPUTE_TIME = 1e3;\n  }\n  // ms\n  constructor(_editor, _configurationService, _languageFeaturesService, languageFeatureDebounceService) {\n    super();\n    this._editor = _editor;\n    this._configurationService = _configurationService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._localToDispose = this._register(new DisposableStore());\n    this._decorationsIds = [];\n    this._colorDatas = /* @__PURE__ */ new Map();\n    this._decoratorLimitReporter = this._register(new DecoratorLimitReporter());\n    this._colorDecorationClassRefs = this._register(new DisposableStore());\n    this._colorDecoratorIds = this._editor.createDecorationsCollection();\n    this._ruleFactory = this._register(new DynamicCssRules(this._editor));\n    this._debounceInformation = languageFeatureDebounceService.for(_languageFeaturesService.colorProvider, \"Document Colors\", { min: ColorDetector_1.RECOMPUTE_TIME });\n    this._register(_editor.onDidChangeModel(() =\u003e {\n      this._isColorDecoratorsEnabled = this.isEnabled();\n      this.updateColors();\n    }));\n    this._register(_editor.onDidChangeModelLanguage(() =\u003e this.updateColors()));\n    this._register(_languageFeaturesService.colorProvider.onDidChange(() =\u003e this.updateColors()));\n    this._register(_editor.onDidChangeConfiguration((e) =\u003e {\n      const prevIsEnabled = this._isColorDecoratorsEnabled;\n      this._isColorDecoratorsEnabled = this.isEnabled();\n      this._defaultColorDecoratorsEnablement = this._editor.getOption(\n        166\n        /* EditorOption.defaultColorDecorators */\n      );\n      const updatedColorDecoratorsSetting = prevIsEnabled !== this._isColorDecoratorsEnabled || e.hasChanged(\n        27\n        /* EditorOption.colorDecoratorsLimit */\n      );\n      const updatedDefaultColorDecoratorsSetting = e.hasChanged(\n        166\n        /* EditorOption.defaultColorDecorators */\n      );\n      if (updatedColorDecoratorsSetting || updatedDefaultColorDecoratorsSetting) {\n        if (this._isColorDecoratorsEnabled) {\n          this.updateColors();\n        } else {\n          this.removeAllDecorations();\n        }\n      }\n    }));\n    this._timeoutTimer = null;\n    this._computePromise = null;\n    this._isColorDecoratorsEnabled = this.isEnabled();\n    this._defaultColorDecoratorsEnablement = this._editor.getOption(\n      166\n      /* EditorOption.defaultColorDecorators */\n    );\n    this.updateColors();\n  }\n  isEnabled() {\n    const model = this._editor.getModel();\n    if (!model) {\n      return false;\n    }\n    const languageId = model.getLanguageId();\n    const deprecatedConfig = this._configurationService.getValue(languageId);\n    if (deprecatedConfig \u0026\u0026 typeof deprecatedConfig === \"object\") {\n      const colorDecorators = deprecatedConfig[\"colorDecorators\"];\n      if (colorDecorators \u0026\u0026 colorDecorators[\"enable\"] !== void 0 \u0026\u0026 !colorDecorators[\"enable\"]) {\n        return colorDecorators[\"enable\"];\n      }\n    }\n    return this._editor.getOption(\n      26\n      /* EditorOption.colorDecorators */\n    );\n  }\n  static get(editor2) {\n    return editor2.getContribution(this.ID);\n  }\n  dispose() {\n    this.stop();\n    this.removeAllDecorations();\n    super.dispose();\n  }\n  updateColors() {\n    this.stop();\n    if (!this._isColorDecoratorsEnabled) {\n      return;\n    }\n    const model = this._editor.getModel();\n    if (!model || !this._languageFeaturesService.colorProvider.has(model)) {\n      return;\n    }\n    this._localToDispose.add(this._editor.onDidChangeModelContent(() =\u003e {\n      if (!this._timeoutTimer) {\n        this._timeoutTimer = new TimeoutTimer();\n        this._timeoutTimer.cancelAndSet(() =\u003e {\n          this._timeoutTimer = null;\n          this.beginCompute();\n        }, this._debounceInformation.get(model));\n      }\n    }));\n    this.beginCompute();\n  }\n  async beginCompute() {\n    this._computePromise = createCancelablePromise(async (token) =\u003e {\n      const model = this._editor.getModel();\n      if (!model) {\n        return [];\n      }\n      const sw = new StopWatch(false);\n      const colors = await getColors(this._languageFeaturesService.colorProvider, model, token, this._defaultColorDecoratorsEnablement);\n      this._debounceInformation.update(model, sw.elapsed());\n      return colors;\n    });\n    try {\n      const colors = await this._computePromise;\n      this.updateDecorations(colors);\n      this.updateColorDecorators(colors);\n      this._computePromise = null;\n    } catch (e) {\n      onUnexpectedError(e);\n    }\n  }\n  stop() {\n    if (this._timeoutTimer) {\n      this._timeoutTimer.cancel();\n      this._timeoutTimer = null;\n    }\n    if (this._computePromise) {\n      this._computePromise.cancel();\n      this._computePromise = null;\n    }\n    this._localToDispose.clear();\n  }\n  updateDecorations(colorDatas) {\n    const decorations = colorDatas.map((c) =\u003e ({\n      range: {\n        startLineNumber: c.colorInfo.range.startLineNumber,\n        startColumn: c.colorInfo.range.startColumn,\n        endLineNumber: c.colorInfo.range.endLineNumber,\n        endColumn: c.colorInfo.range.endColumn\n      },\n      options: ModelDecorationOptions.EMPTY\n    }));\n    this._editor.changeDecorations((changeAccessor) =\u003e {\n      this._decorationsIds = changeAccessor.deltaDecorations(this._decorationsIds, decorations);\n      this._colorDatas = /* @__PURE__ */ new Map();\n      this._decorationsIds.forEach((id, i2) =\u003e this._colorDatas.set(id, colorDatas[i2]));\n    });\n  }\n  updateColorDecorators(colorData) {\n    this._colorDecorationClassRefs.clear();\n    const decorations = [];\n    const limit = this._editor.getOption(\n      27\n      /* EditorOption.colorDecoratorsLimit */\n    );\n    for (let i2 = 0; i2 \u003c colorData.length \u0026\u0026 decorations.length \u003c limit; i2++) {\n      const { red, green, blue, alpha } = colorData[i2].colorInfo.color;\n      const rgba = new RGBA(Math.round(red * 255), Math.round(green * 255), Math.round(blue * 255), alpha);\n      const color = `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;\n      const ref = this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({\n        backgroundColor: color\n      }));\n      decorations.push({\n        range: {\n          startLineNumber: colorData[i2].colorInfo.range.startLineNumber,\n          startColumn: colorData[i2].colorInfo.range.startColumn,\n          endLineNumber: colorData[i2].colorInfo.range.endLineNumber,\n          endColumn: colorData[i2].colorInfo.range.endColumn\n        },\n        options: {\n          description: \"colorDetector\",\n          before: {\n            content: noBreakWhitespace,\n            inlineClassName: `${ref.className} colorpicker-color-decoration`,\n            inlineClassNameAffectsLetterSpacing: true,\n            attachedData: ColorDecorationInjectedTextMarker\n          }\n        }\n      });\n    }\n    const limited = limit \u003c colorData.length ? limit : false;\n    this._decoratorLimitReporter.update(colorData.length, limited);\n    this._colorDecoratorIds.set(decorations);\n  }\n  removeAllDecorations() {\n    this._editor.removeDecorations(this._decorationsIds);\n    this._decorationsIds = [];\n    this._colorDecoratorIds.clear();\n    this._colorDecorationClassRefs.clear();\n  }\n  getColorData(position) {\n    const model = this._editor.getModel();\n    if (!model) {\n      return null;\n    }\n    const decorations = model.getDecorationsInRange(Range.fromPositions(position, position)).filter((d) =\u003e this._colorDatas.has(d.id));\n    if (decorations.length === 0) {\n      return null;\n    }\n    return this._colorDatas.get(decorations[0].id);\n  }\n  isColorDecoration(decoration3) {\n    return this._colorDecoratorIds.has(decoration3);\n  }\n};\nColorDetector = ColorDetector_1 = __decorate60([\n  __param55(1, IConfigurationService),\n  __param55(2, ILanguageFeaturesService),\n  __param55(3, ILanguageFeatureDebounceService)\n], ColorDetector);\nvar DecoratorLimitReporter = class extends Disposable {\n  constructor() {\n    super(...arguments);\n    this._onDidChange = this._register(new Emitter());\n    this._computed = 0;\n    this._limited = false;\n  }\n  update(computed, limited) {\n    if (computed !== this._computed || limited !== this._limited) {\n      this._computed = computed;\n      this._limited = limited;\n      this._onDidChange.fire();\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerContribution.js\ninit_lifecycle();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/hoverActionIds.js\ninit_nls();\nvar SHOW_OR_FOCUS_HOVER_ACTION_ID = \"editor.action.showHover\";\nvar SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID = \"editor.action.showDefinitionPreviewHover\";\nvar HIDE_HOVER_ACTION_ID = \"editor.action.hideHover\";\nvar SCROLL_UP_HOVER_ACTION_ID = \"editor.action.scrollUpHover\";\nvar SCROLL_DOWN_HOVER_ACTION_ID = \"editor.action.scrollDownHover\";\nvar SCROLL_LEFT_HOVER_ACTION_ID = \"editor.action.scrollLeftHover\";\nvar SCROLL_RIGHT_HOVER_ACTION_ID = \"editor.action.scrollRightHover\";\nvar PAGE_UP_HOVER_ACTION_ID = \"editor.action.pageUpHover\";\nvar PAGE_DOWN_HOVER_ACTION_ID = \"editor.action.pageDownHover\";\nvar GO_TO_TOP_HOVER_ACTION_ID = \"editor.action.goToTopHover\";\nvar GO_TO_BOTTOM_HOVER_ACTION_ID = \"editor.action.goToBottomHover\";\nvar INCREASE_HOVER_VERBOSITY_ACTION_ID = \"editor.action.increaseHoverVerbosityLevel\";\nvar INCREASE_HOVER_VERBOSITY_ACTION_LABEL = localize(1094, \"Increase Hover Verbosity Level\");\nvar DECREASE_HOVER_VERBOSITY_ACTION_ID = \"editor.action.decreaseHoverVerbosityLevel\";\nvar DECREASE_HOVER_VERBOSITY_ACTION_LABEL = localize(1095, \"Decrease Hover Verbosity Level\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverController.js\ninit_lifecycle();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js\ninit_dom();\ninit_actions();\ninit_arrays();\ninit_async();\ninit_codicons();\ninit_lifecycle();\ninit_observable();\ninit_platform();\ninit_themables();\ninit_nls();\ninit_actions2();\ninit_commands();\ninit_contextkey();\ninit_instantiation();\ninit_telemetry();\ninit_position();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/controller/commandIds.js\nvar inlineSuggestCommitId = \"editor.action.inlineSuggest.commit\";\nvar showPreviousInlineSuggestionActionId = \"editor.action.inlineSuggest.showPrevious\";\nvar showNextInlineSuggestionActionId = \"editor.action.inlineSuggest.showNext\";\nvar jumpToNextInlineEditId = \"editor.action.inlineSuggest.jump\";\nvar hideInlineCompletionId = \"editor.action.inlineSuggest.hide\";\nvar toggleShowCollapsedId = \"editor.action.inlineSuggest.toggleShowCollapsed\";\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js\nvar __decorate61 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param56 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineSuggestionHintsContentWidget_1;\nvar InlineCompletionsHintsWidget = class InlineCompletionsHintsWidget2 extends Disposable {\n  constructor(editor2, model, instantiationService) {\n    super();\n    this.editor = editor2;\n    this.model = model;\n    this.instantiationService = instantiationService;\n    this.alwaysShowToolbar = observableFromEvent(this, this.editor.onDidChangeConfiguration, () =\u003e this.editor.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).showToolbar === \"always\");\n    this.sessionPosition = void 0;\n    this.position = derived(this, (reader) =\u003e {\n      const ghostText = this.model.read(reader)?.primaryGhostText.read(reader);\n      if (!this.alwaysShowToolbar.read(reader) || !ghostText || ghostText.parts.length === 0) {\n        this.sessionPosition = void 0;\n        return null;\n      }\n      const firstColumn = ghostText.parts[0].column;\n      if (this.sessionPosition \u0026\u0026 this.sessionPosition.lineNumber !== ghostText.lineNumber) {\n        this.sessionPosition = void 0;\n      }\n      const position = new Position(ghostText.lineNumber, Math.min(firstColumn, this.sessionPosition?.column ?? Number.MAX_SAFE_INTEGER));\n      this.sessionPosition = position;\n      return position;\n    });\n    this._register(autorunWithStore((reader, store) =\u003e {\n      const model2 = this.model.read(reader);\n      if (!model2 || !this.alwaysShowToolbar.read(reader)) {\n        return;\n      }\n      const contentWidgetValue = derived((reader2) =\u003e {\n        const contentWidget = reader2.store.add(this.instantiationService.createInstance(InlineSuggestionHintsContentWidget.hot.read(reader2), this.editor, true, this.position, model2.selectedInlineCompletionIndex, model2.inlineCompletionsCount, model2.activeCommands, model2.warning, () =\u003e {\n        }));\n        editor2.addContentWidget(contentWidget);\n        reader2.store.add(toDisposable(() =\u003e editor2.removeContentWidget(contentWidget)));\n        reader2.store.add(autorun((reader3) =\u003e {\n          const position = this.position.read(reader3);\n          if (!position) {\n            return;\n          }\n          if (model2.lastTriggerKind.read(reader3) !== InlineCompletionTriggerKind.Explicit) {\n            model2.triggerExplicitly();\n          }\n        }));\n        return contentWidget;\n      });\n      const hadPosition = derivedObservableWithCache(this, (reader2, lastValue) =\u003e !!this.position.read(reader2) || !!lastValue);\n      store.add(autorun((reader2) =\u003e {\n        if (hadPosition.read(reader2)) {\n          contentWidgetValue.read(reader2);\n        }\n      }));\n    }));\n  }\n};\nInlineCompletionsHintsWidget = __decorate61([\n  __param56(2, IInstantiationService)\n], InlineCompletionsHintsWidget);\nvar inlineSuggestionHintsNextIcon = registerIcon(\"inline-suggestion-hints-next\", Codicon.chevronRight, localize(1195, \"Icon for show next parameter hint.\"));\nvar inlineSuggestionHintsPreviousIcon = registerIcon(\"inline-suggestion-hints-previous\", Codicon.chevronLeft, localize(1196, \"Icon for show previous parameter hint.\"));\nvar InlineSuggestionHintsContentWidget = class InlineSuggestionHintsContentWidget2 extends Disposable {\n  static {\n    InlineSuggestionHintsContentWidget_1 = this;\n  }\n  static {\n    this.hot = createHotClass(InlineSuggestionHintsContentWidget_1);\n  }\n  static {\n    this._dropDownVisible = false;\n  }\n  static get dropDownVisible() {\n    return this._dropDownVisible;\n  }\n  static {\n    this.id = 0;\n  }\n  createCommandAction(commandId, label, iconClassName) {\n    const action = new Action(commandId, label, iconClassName, true, () =\u003e this._commandService.executeCommand(commandId));\n    const kb = this.keybindingService.lookupKeybinding(commandId, this._contextKeyService);\n    let tooltip = label;\n    if (kb) {\n      tooltip = localize(1197, \"{0} ({1})\", label, kb.getLabel());\n    }\n    action.tooltip = tooltip;\n    return action;\n  }\n  constructor(editor2, withBorder, _position, _currentSuggestionIdx, _suggestionCount, _extraCommands, _warning, _relayout, _commandService, instantiationService, keybindingService, _contextKeyService, _menuService) {\n    super();\n    this.editor = editor2;\n    this.withBorder = withBorder;\n    this._position = _position;\n    this._currentSuggestionIdx = _currentSuggestionIdx;\n    this._suggestionCount = _suggestionCount;\n    this._extraCommands = _extraCommands;\n    this._warning = _warning;\n    this._relayout = _relayout;\n    this._commandService = _commandService;\n    this.keybindingService = keybindingService;\n    this._contextKeyService = _contextKeyService;\n    this._menuService = _menuService;\n    this.id = `InlineSuggestionHintsContentWidget${InlineSuggestionHintsContentWidget_1.id++}`;\n    this.allowEditorOverflow = true;\n    this.suppressMouseDown = false;\n    this._warningMessageContentNode = derived((reader) =\u003e {\n      const warning = this._warning.read(reader);\n      if (!warning) {\n        return void 0;\n      }\n      if (typeof warning.message === \"string\") {\n        return warning.message;\n      }\n      const markdownElement = reader.store.add(renderMarkdown(warning.message));\n      return markdownElement.element;\n    });\n    this._warningMessageNode = n.div({\n      class: \"warningMessage\",\n      style: {\n        maxWidth: 400,\n        margin: 4,\n        marginBottom: 4,\n        display: derived((reader) =\u003e this._warning.read(reader) ? \"block\" : \"none\")\n      }\n    }, [\n      this._warningMessageContentNode\n    ]).keepUpdated(this._store);\n    this.nodes = h(\"div.inlineSuggestionsHints\", { className: this.withBorder ? \"monaco-hover monaco-hover-content\" : \"\" }, [\n      this._warningMessageNode.element,\n      h(\"div@toolBar\")\n    ]);\n    this.previousAction = this._register(this.createCommandAction(showPreviousInlineSuggestionActionId, localize(1198, \"Previous\"), ThemeIcon.asClassName(inlineSuggestionHintsPreviousIcon)));\n    this.availableSuggestionCountAction = this._register(new Action(\"inlineSuggestionHints.availableSuggestionCount\", \"\", void 0, false));\n    this.nextAction = this._register(this.createCommandAction(showNextInlineSuggestionActionId, localize(1199, \"Next\"), ThemeIcon.asClassName(inlineSuggestionHintsNextIcon)));\n    this.inlineCompletionsActionsMenus = this._register(this._menuService.createMenu(MenuId.InlineCompletionsActions, this._contextKeyService));\n    this.clearAvailableSuggestionCountLabelDebounced = this._register(new RunOnceScheduler(() =\u003e {\n      this.availableSuggestionCountAction.label = \"\";\n    }, 100));\n    this.disableButtonsDebounced = this._register(new RunOnceScheduler(() =\u003e {\n      this.previousAction.enabled = this.nextAction.enabled = false;\n    }, 100));\n    this._register(autorun((reader) =\u003e {\n      this._warningMessageContentNode.read(reader);\n      this._warningMessageNode.readEffect(reader);\n      this._relayout();\n    }));\n    this.toolBar = this._register(instantiationService.createInstance(CustomizedMenuWorkbenchToolBar, this.nodes.toolBar, MenuId.InlineSuggestionToolbar, {\n      menuOptions: { renderShortTitle: true },\n      toolbarOptions: { primaryGroup: (g) =\u003e g.startsWith(\"primary\") },\n      actionViewItemProvider: (action, options2) =\u003e {\n        if (action instanceof MenuItemAction) {\n          return instantiationService.createInstance(StatusBarViewItem, action, void 0);\n        }\n        if (action === this.availableSuggestionCountAction) {\n          const a = new ActionViewItemWithClassName(void 0, action, { label: true, icon: false });\n          a.setClass(\"availableSuggestionCount\");\n          return a;\n        }\n        return void 0;\n      },\n      telemetrySource: \"InlineSuggestionToolbar\"\n    }));\n    this.toolBar.setPrependedPrimaryActions([\n      this.previousAction,\n      this.availableSuggestionCountAction,\n      this.nextAction\n    ]);\n    this._register(this.toolBar.onDidChangeDropdownVisibility((e) =\u003e {\n      InlineSuggestionHintsContentWidget_1._dropDownVisible = e;\n    }));\n    this._register(autorun((reader) =\u003e {\n      this._position.read(reader);\n      this.editor.layoutContentWidget(this);\n    }));\n    this._register(autorun((reader) =\u003e {\n      const suggestionCount = this._suggestionCount.read(reader);\n      const currentSuggestionIdx = this._currentSuggestionIdx.read(reader);\n      if (suggestionCount !== void 0) {\n        this.clearAvailableSuggestionCountLabelDebounced.cancel();\n        this.availableSuggestionCountAction.label = `${currentSuggestionIdx + 1}/${suggestionCount}`;\n      } else {\n        this.clearAvailableSuggestionCountLabelDebounced.schedule();\n      }\n      if (suggestionCount !== void 0 \u0026\u0026 suggestionCount \u003e 1) {\n        this.disableButtonsDebounced.cancel();\n        this.previousAction.enabled = this.nextAction.enabled = true;\n      } else {\n        this.disableButtonsDebounced.schedule();\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      const extraCommands = this._extraCommands.read(reader);\n      const extraActions = extraCommands.map((c) =\u003e ({\n        class: void 0,\n        id: c.command.id,\n        enabled: true,\n        tooltip: c.command.tooltip || \"\",\n        label: c.command.title,\n        run: (event) =\u003e {\n          return this._commandService.executeCommand(c.command.id);\n        }\n      }));\n      for (const [_, group] of this.inlineCompletionsActionsMenus.getActions()) {\n        for (const action of group) {\n          if (action instanceof MenuItemAction) {\n            extraActions.push(action);\n          }\n        }\n      }\n      if (extraActions.length \u003e 0) {\n        extraActions.unshift(new Separator());\n      }\n      this.toolBar.setAdditionalSecondaryActions(extraActions);\n    }));\n  }\n  getId() {\n    return this.id;\n  }\n  getDomNode() {\n    return this.nodes.root;\n  }\n  getPosition() {\n    return {\n      position: this._position.get(),\n      preference: [\n        1,\n        2\n        /* ContentWidgetPositionPreference.BELOW */\n      ],\n      positionAffinity: 3\n    };\n  }\n};\nInlineSuggestionHintsContentWidget = InlineSuggestionHintsContentWidget_1 = __decorate61([\n  __param56(8, ICommandService),\n  __param56(9, IInstantiationService),\n  __param56(10, IKeybindingService),\n  __param56(11, IContextKeyService),\n  __param56(12, IMenuService)\n], InlineSuggestionHintsContentWidget);\nvar ActionViewItemWithClassName = class extends ActionViewItem {\n  constructor() {\n    super(...arguments);\n    this._className = void 0;\n  }\n  setClass(className2) {\n    this._className = className2;\n  }\n  render(container) {\n    super.render(container);\n    if (this._className) {\n      container.classList.add(this._className);\n    }\n  }\n  updateTooltip() {\n  }\n};\nvar StatusBarViewItem = class extends MenuEntryActionViewItem {\n  updateLabel() {\n    const kb = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService, true);\n    if (!kb) {\n      return super.updateLabel();\n    }\n    if (this.label) {\n      const div = h(\"div.keybinding\").root;\n      const k = this._register(new KeybindingLabel(div, OS, { disableTitle: true, ...unthemedKeybindingLabelOptions }));\n      k.set(kb);\n      this.label.textContent = this._action.label;\n      this.label.appendChild(div);\n      this.label.classList.add(\"inlineSuggestionStatusBarItemLabel\");\n    }\n  }\n  updateTooltip() {\n  }\n};\nvar CustomizedMenuWorkbenchToolBar = class CustomizedMenuWorkbenchToolBar2 extends WorkbenchToolBar {\n  constructor(container, menuId, options2, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService) {\n    super(container, { resetMenu: menuId, ...options2 }, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService);\n    this.menuId = menuId;\n    this.options2 = options2;\n    this.menuService = menuService;\n    this.contextKeyService = contextKeyService;\n    this.menu = this._store.add(this.menuService.createMenu(this.menuId, this.contextKeyService, { emitEventsForSubmenuChanges: true }));\n    this.additionalActions = [];\n    this.prependedPrimaryActions = [];\n    this.additionalPrimaryActions = [];\n    this._store.add(this.menu.onDidChange(() =\u003e this.updateToolbar()));\n    this.updateToolbar();\n  }\n  updateToolbar() {\n    const { primary, secondary } = getActionBarActions(this.menu.getActions(this.options2?.menuOptions), this.options2?.toolbarOptions?.primaryGroup, this.options2?.toolbarOptions?.shouldInlineSubmenu, this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions);\n    secondary.push(...this.additionalActions);\n    primary.unshift(...this.prependedPrimaryActions);\n    primary.push(...this.additionalPrimaryActions);\n    this.setActions(primary, secondary);\n  }\n  setPrependedPrimaryActions(actions) {\n    if (equals(this.prependedPrimaryActions, actions, (a, b) =\u003e a === b)) {\n      return;\n    }\n    this.prependedPrimaryActions = actions;\n    this.updateToolbar();\n  }\n  setAdditionalSecondaryActions(actions) {\n    if (equals(this.additionalActions, actions, (a, b) =\u003e a === b)) {\n      return;\n    }\n    this.additionalActions = actions;\n    this.updateToolbar();\n  }\n};\nCustomizedMenuWorkbenchToolBar = __decorate61([\n  __param56(3, IMenuService),\n  __param56(4, IContextKeyService),\n  __param56(5, IContextMenuService),\n  __param56(6, IKeybindingService),\n  __param56(7, ICommandService),\n  __param56(8, ITelemetryService)\n], CustomizedMenuWorkbenchToolBar);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverController.js\ninit_async();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/hoverUtils.js\ninit_dom();\nfunction isMousePositionWithinElement(element, posx, posy) {\n  const elementRect = getDomNodePagePosition(element);\n  if (posx \u003c elementRect.left || posx \u003e elementRect.left + elementRect.width || posy \u003c elementRect.top || posy \u003e elementRect.top + elementRect.height) {\n    return false;\n  }\n  return true;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverWidgetWrapper.js\ninit_dom();\ninit_lifecycle();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/hoverOperation.js\ninit_async();\ninit_errors();\ninit_event();\ninit_lifecycle();\nvar HoverResult = class {\n  constructor(value, isComplete, hasLoadingMessage, options2) {\n    this.value = value;\n    this.isComplete = isComplete;\n    this.hasLoadingMessage = hasLoadingMessage;\n    this.options = options2;\n  }\n};\nvar HoverOperation = class extends Disposable {\n  constructor(_editor, _computer) {\n    super();\n    this._editor = _editor;\n    this._computer = _computer;\n    this._onResult = this._register(new Emitter());\n    this.onResult = this._onResult.event;\n    this._asyncComputationScheduler = this._register(new Debouncer((options2) =\u003e this._triggerAsyncComputation(options2), 0));\n    this._syncComputationScheduler = this._register(new Debouncer((options2) =\u003e this._triggerSyncComputation(options2), 0));\n    this._loadingMessageScheduler = this._register(new Debouncer((options2) =\u003e this._triggerLoadingMessage(options2), 0));\n    this._state = 0;\n    this._asyncIterable = null;\n    this._asyncIterableDone = false;\n    this._result = [];\n  }\n  dispose() {\n    if (this._asyncIterable) {\n      this._asyncIterable.cancel();\n      this._asyncIterable = null;\n    }\n    this._options = void 0;\n    super.dispose();\n  }\n  get _hoverTime() {\n    return this._editor.getOption(\n      69\n      /* EditorOption.hover */\n    ).delay;\n  }\n  get _firstWaitTime() {\n    return this._hoverTime / 2;\n  }\n  get _secondWaitTime() {\n    return this._hoverTime - this._firstWaitTime;\n  }\n  get _loadingMessageTime() {\n    return 3 * this._hoverTime;\n  }\n  _setState(state, options2) {\n    this._options = options2;\n    this._state = state;\n    this._fireResult(options2);\n  }\n  _triggerAsyncComputation(options2) {\n    this._setState(2, options2);\n    this._syncComputationScheduler.schedule(options2, this._secondWaitTime);\n    if (this._computer.computeAsync) {\n      this._asyncIterableDone = false;\n      this._asyncIterable = createCancelableAsyncIterableProducer((token) =\u003e this._computer.computeAsync(options2, token));\n      (async () =\u003e {\n        try {\n          for await (const item of this._asyncIterable) {\n            if (item) {\n              this._result.push(item);\n              this._fireResult(options2);\n            }\n          }\n          this._asyncIterableDone = true;\n          if (this._state === 3 || this._state === 4) {\n            this._setState(0, options2);\n          }\n        } catch (e) {\n          onUnexpectedError(e);\n        }\n      })();\n    } else {\n      this._asyncIterableDone = true;\n    }\n  }\n  _triggerSyncComputation(options2) {\n    if (this._computer.computeSync) {\n      this._result = this._result.concat(this._computer.computeSync(options2));\n    }\n    this._setState(this._asyncIterableDone ? 0 : 3, options2);\n  }\n  _triggerLoadingMessage(options2) {\n    if (this._state === 3) {\n      this._setState(4, options2);\n    }\n  }\n  _fireResult(options2) {\n    if (this._state === 1 || this._state === 2) {\n      return;\n    }\n    const isComplete = this._state === 0;\n    const hasLoadingMessage = this._state === 4;\n    this._onResult.fire(new HoverResult(this._result.slice(0), isComplete, hasLoadingMessage, options2));\n  }\n  start(mode, options2) {\n    if (mode === 0) {\n      if (this._state === 0) {\n        this._setState(1, options2);\n        this._asyncComputationScheduler.schedule(options2, this._firstWaitTime);\n        this._loadingMessageScheduler.schedule(options2, this._loadingMessageTime);\n      }\n    } else {\n      switch (this._state) {\n        case 0:\n          this._triggerAsyncComputation(options2);\n          this._syncComputationScheduler.cancel();\n          this._triggerSyncComputation(options2);\n          break;\n        case 2:\n          this._syncComputationScheduler.cancel();\n          this._triggerSyncComputation(options2);\n          break;\n      }\n    }\n  }\n  cancel() {\n    this._asyncComputationScheduler.cancel();\n    this._syncComputationScheduler.cancel();\n    this._loadingMessageScheduler.cancel();\n    if (this._asyncIterable) {\n      this._asyncIterable.cancel();\n      this._asyncIterable = null;\n    }\n    this._result = [];\n    this._options = void 0;\n    this._state = 0;\n  }\n  get options() {\n    return this._options;\n  }\n};\nvar Debouncer = class extends Disposable {\n  constructor(runner, debounceTimeMs) {\n    super();\n    this._scheduler = this._register(new RunOnceScheduler(() =\u003e runner(this._options), debounceTimeMs));\n  }\n  schedule(options2, debounceTimeMs) {\n    this._options = options2;\n    this._scheduler.schedule(debounceTimeMs);\n  }\n  cancel() {\n    this._scheduler.cancel();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverWidgetWrapper.js\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverWidget.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/resizable/resizable.js\ninit_dom();\ninit_event();\ninit_lifecycle();\nvar ResizableHTMLElement = class {\n  get onDidWillResize() {\n    return this._onDidWillResize.event;\n  }\n  get onDidResize() {\n    return this._onDidResize.event;\n  }\n  constructor() {\n    this._onDidWillResize = new Emitter();\n    this._onDidResize = new Emitter();\n    this._sashListener = new DisposableStore();\n    this._size = new Dimension(0, 0);\n    this._minSize = new Dimension(0, 0);\n    this._maxSize = new Dimension(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n    this.domNode = document.createElement(\"div\");\n    this._eastSash = new Sash(this.domNode, { getVerticalSashLeft: () =\u003e this._size.width }, {\n      orientation: 0\n      /* Orientation.VERTICAL */\n    });\n    this._westSash = new Sash(this.domNode, { getVerticalSashLeft: () =\u003e 0 }, {\n      orientation: 0\n      /* Orientation.VERTICAL */\n    });\n    this._northSash = new Sash(this.domNode, { getHorizontalSashTop: () =\u003e 0 }, { orientation: 1, orthogonalEdge: OrthogonalEdge.North });\n    this._southSash = new Sash(this.domNode, { getHorizontalSashTop: () =\u003e this._size.height }, { orientation: 1, orthogonalEdge: OrthogonalEdge.South });\n    this._northSash.orthogonalStartSash = this._westSash;\n    this._northSash.orthogonalEndSash = this._eastSash;\n    this._southSash.orthogonalStartSash = this._westSash;\n    this._southSash.orthogonalEndSash = this._eastSash;\n    let currentSize;\n    let deltaY = 0;\n    let deltaX = 0;\n    this._sashListener.add(Event.any(this._northSash.onDidStart, this._eastSash.onDidStart, this._southSash.onDidStart, this._westSash.onDidStart)(() =\u003e {\n      if (currentSize === void 0) {\n        this._onDidWillResize.fire();\n        currentSize = this._size;\n        deltaY = 0;\n        deltaX = 0;\n      }\n    }));\n    this._sashListener.add(Event.any(this._northSash.onDidEnd, this._eastSash.onDidEnd, this._southSash.onDidEnd, this._westSash.onDidEnd)(() =\u003e {\n      if (currentSize !== void 0) {\n        currentSize = void 0;\n        deltaY = 0;\n        deltaX = 0;\n        this._onDidResize.fire({ dimension: this._size, done: true });\n      }\n    }));\n    this._sashListener.add(this._eastSash.onDidChange((e) =\u003e {\n      if (currentSize) {\n        deltaX = e.currentX - e.startX;\n        this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n        this._onDidResize.fire({ dimension: this._size, done: false, east: true });\n      }\n    }));\n    this._sashListener.add(this._westSash.onDidChange((e) =\u003e {\n      if (currentSize) {\n        deltaX = -(e.currentX - e.startX);\n        this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n        this._onDidResize.fire({ dimension: this._size, done: false, west: true });\n      }\n    }));\n    this._sashListener.add(this._northSash.onDidChange((e) =\u003e {\n      if (currentSize) {\n        deltaY = -(e.currentY - e.startY);\n        this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n        this._onDidResize.fire({ dimension: this._size, done: false, north: true });\n      }\n    }));\n    this._sashListener.add(this._southSash.onDidChange((e) =\u003e {\n      if (currentSize) {\n        deltaY = e.currentY - e.startY;\n        this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n        this._onDidResize.fire({ dimension: this._size, done: false, south: true });\n      }\n    }));\n    this._sashListener.add(Event.any(this._eastSash.onDidReset, this._westSash.onDidReset)((e) =\u003e {\n      if (this._preferredSize) {\n        this.layout(this._size.height, this._preferredSize.width);\n        this._onDidResize.fire({ dimension: this._size, done: true });\n      }\n    }));\n    this._sashListener.add(Event.any(this._northSash.onDidReset, this._southSash.onDidReset)((e) =\u003e {\n      if (this._preferredSize) {\n        this.layout(this._preferredSize.height, this._size.width);\n        this._onDidResize.fire({ dimension: this._size, done: true });\n      }\n    }));\n  }\n  dispose() {\n    this._northSash.dispose();\n    this._southSash.dispose();\n    this._eastSash.dispose();\n    this._westSash.dispose();\n    this._sashListener.dispose();\n    this._onDidResize.dispose();\n    this._onDidWillResize.dispose();\n    this.domNode.remove();\n  }\n  enableSashes(north, east, south, west) {\n    this._northSash.state = north ? 3 : 0;\n    this._eastSash.state = east ? 3 : 0;\n    this._southSash.state = south ? 3 : 0;\n    this._westSash.state = west ? 3 : 0;\n  }\n  layout(height = this.size.height, width2 = this.size.width) {\n    const { height: minHeight, width: minWidth } = this._minSize;\n    const { height: maxHeight, width: maxWidth } = this._maxSize;\n    height = Math.max(minHeight, Math.min(maxHeight, height));\n    width2 = Math.max(minWidth, Math.min(maxWidth, width2));\n    const newSize = new Dimension(width2, height);\n    if (!Dimension.equals(newSize, this._size)) {\n      this.domNode.style.height = height + \"px\";\n      this.domNode.style.width = width2 + \"px\";\n      this._size = newSize;\n      this._northSash.layout();\n      this._eastSash.layout();\n      this._southSash.layout();\n      this._westSash.layout();\n    }\n  }\n  clearSashHoverState() {\n    this._eastSash.clearSashHoverState();\n    this._westSash.clearSashHoverState();\n    this._northSash.clearSashHoverState();\n    this._southSash.clearSashHoverState();\n  }\n  get size() {\n    return this._size;\n  }\n  set maxSize(value) {\n    this._maxSize = value;\n  }\n  get maxSize() {\n    return this._maxSize;\n  }\n  set minSize(value) {\n    this._minSize = value;\n  }\n  get minSize() {\n    return this._minSize;\n  }\n  set preferredSize(value) {\n    this._preferredSize = value;\n  }\n  get preferredSize() {\n    return this._preferredSize;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/resizableContentWidget.js\ninit_lifecycle();\ninit_position();\ninit_dom();\nvar TOP_HEIGHT = 30;\nvar BOTTOM_HEIGHT = 24;\nvar ResizableContentWidget = class extends Disposable {\n  constructor(_editor, minimumSize = new Dimension(10, 10)) {\n    super();\n    this._editor = _editor;\n    this.allowEditorOverflow = true;\n    this.suppressMouseDown = false;\n    this._resizableNode = this._register(new ResizableHTMLElement());\n    this._contentPosition = null;\n    this._isResizing = false;\n    this._resizableNode.domNode.style.position = \"absolute\";\n    this._resizableNode.minSize = Dimension.lift(minimumSize);\n    this._resizableNode.layout(minimumSize.height, minimumSize.width);\n    this._resizableNode.enableSashes(true, true, true, true);\n    this._register(this._resizableNode.onDidResize((e) =\u003e {\n      this._resize(new Dimension(e.dimension.width, e.dimension.height));\n      if (e.done) {\n        this._isResizing = false;\n      }\n    }));\n    this._register(this._resizableNode.onDidWillResize(() =\u003e {\n      this._isResizing = true;\n    }));\n  }\n  get isResizing() {\n    return this._isResizing;\n  }\n  getDomNode() {\n    return this._resizableNode.domNode;\n  }\n  getPosition() {\n    return this._contentPosition;\n  }\n  get position() {\n    return this._contentPosition?.position ? Position.lift(this._contentPosition.position) : void 0;\n  }\n  _availableVerticalSpaceAbove(position) {\n    const editorDomNode = this._editor.getDomNode();\n    const mouseBox = this._editor.getScrolledVisiblePosition(position);\n    if (!editorDomNode || !mouseBox) {\n      return;\n    }\n    const editorBox = getDomNodePagePosition(editorDomNode);\n    return editorBox.top + mouseBox.top - TOP_HEIGHT;\n  }\n  _availableVerticalSpaceBelow(position) {\n    const editorDomNode = this._editor.getDomNode();\n    const mouseBox = this._editor.getScrolledVisiblePosition(position);\n    if (!editorDomNode || !mouseBox) {\n      return;\n    }\n    const editorBox = getDomNodePagePosition(editorDomNode);\n    const bodyBox = getClientArea(editorDomNode.ownerDocument.body);\n    const mouseBottom = editorBox.top + mouseBox.top + mouseBox.height;\n    return bodyBox.height - mouseBottom - BOTTOM_HEIGHT;\n  }\n  _findPositionPreference(widgetHeight, showAtPosition) {\n    const maxHeightBelow = Math.min(this._availableVerticalSpaceBelow(showAtPosition) ?? Infinity, widgetHeight);\n    const maxHeightAbove = Math.min(this._availableVerticalSpaceAbove(showAtPosition) ?? Infinity, widgetHeight);\n    const maxHeight = Math.min(Math.max(maxHeightAbove, maxHeightBelow), widgetHeight);\n    const height = Math.min(widgetHeight, maxHeight);\n    let renderingAbove;\n    if (this._editor.getOption(\n      69\n      /* EditorOption.hover */\n    ).above) {\n      renderingAbove = height \u003c= maxHeightAbove ? 1 : 2;\n    } else {\n      renderingAbove = height \u003c= maxHeightBelow ? 2 : 1;\n    }\n    if (renderingAbove === 1) {\n      this._resizableNode.enableSashes(true, true, false, false);\n    } else {\n      this._resizableNode.enableSashes(false, true, true, false);\n    }\n    return renderingAbove;\n  }\n  _resize(dimension) {\n    this._resizableNode.layout(dimension.height, dimension.width);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverWidget.js\ninit_contextkey();\ninit_configuration();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/hover/hoverWidget.js\ninit_dom();\ninit_keyboardEvent();\ninit_lifecycle();\ninit_nls();\nvar $4 = $;\nvar HoverWidget = class extends Disposable {\n  constructor(fadeIn) {\n    super();\n    this.containerDomNode = document.createElement(\"div\");\n    this.containerDomNode.className = \"monaco-hover\";\n    this.containerDomNode.classList.toggle(\"fade-in\", !!fadeIn);\n    this.containerDomNode.tabIndex = 0;\n    this.containerDomNode.setAttribute(\"role\", \"tooltip\");\n    this.contentsDomNode = document.createElement(\"div\");\n    this.contentsDomNode.className = \"monaco-hover-content\";\n    this.scrollbar = this._register(new DomScrollableElement(this.contentsDomNode, {\n      consumeMouseWheelIfScrollbarIsNeeded: true\n    }));\n    this.containerDomNode.appendChild(this.scrollbar.getDomNode());\n  }\n  onContentsChanged() {\n    this.scrollbar.scanDomNode();\n  }\n};\nvar HoverAction = class _HoverAction extends Disposable {\n  static render(parent, actionOptions, keybindingLabel) {\n    return new _HoverAction(parent, actionOptions, keybindingLabel);\n  }\n  constructor(parent, actionOptions, keybindingLabel) {\n    super();\n    this.actionLabel = actionOptions.label;\n    this.actionKeybindingLabel = keybindingLabel;\n    this.actionContainer = append(parent, $4(\"div.action-container\"));\n    this.actionContainer.setAttribute(\"tabindex\", \"0\");\n    this.action = append(this.actionContainer, $4(\"a.action\"));\n    this.action.setAttribute(\"role\", \"button\");\n    if (actionOptions.iconClass) {\n      const iconElement = append(this.action, $4(`span.icon`));\n      iconElement.classList.add(...actionOptions.iconClass.split(\" \"));\n    }\n    this.actionRenderedLabel = keybindingLabel ? `${actionOptions.label} (${keybindingLabel})` : actionOptions.label;\n    const label = append(this.action, $4(\"span\"));\n    label.textContent = this.actionRenderedLabel;\n    this._store.add(new ClickAction(this.actionContainer, actionOptions.run));\n    this._store.add(new KeyDownAction(this.actionContainer, actionOptions.run, [\n      3,\n      10\n      /* KeyCode.Space */\n    ]));\n    this.setEnabled(true);\n  }\n  setEnabled(enabled) {\n    if (enabled) {\n      this.actionContainer.classList.remove(\"disabled\");\n      this.actionContainer.removeAttribute(\"aria-disabled\");\n    } else {\n      this.actionContainer.classList.add(\"disabled\");\n      this.actionContainer.setAttribute(\"aria-disabled\", \"true\");\n    }\n  }\n};\nfunction getHoverAccessibleViewHint(shouldHaveHint, keybinding) {\n  return shouldHaveHint \u0026\u0026 keybinding ? localize(7, \"Inspect this in the accessible view with {0}.\", keybinding) : shouldHaveHint ? localize(8, \"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\") : \"\";\n}\nvar ClickAction = class extends Disposable {\n  constructor(container, run) {\n    super();\n    this._register(addDisposableListener(container, EventType.CLICK, (e) =\u003e {\n      e.stopPropagation();\n      e.preventDefault();\n      run(container);\n    }));\n  }\n};\nvar KeyDownAction = class extends Disposable {\n  constructor(container, run, keyCodes) {\n    super();\n    this._register(addDisposableListener(container, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      if (keyCodes.some((keyCode) =\u003e event.equals(keyCode))) {\n        e.stopPropagation();\n        e.preventDefault();\n        run(container);\n      }\n    }));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverWidget.js\ninit_event();\nvar __decorate62 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param57 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ContentHoverWidget_1;\nvar HORIZONTAL_SCROLLING_BY = 30;\nvar ContentHoverWidget = class ContentHoverWidget2 extends ResizableContentWidget {\n  static {\n    ContentHoverWidget_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.resizableContentHoverWidget\";\n  }\n  static {\n    this._lastDimensions = new Dimension(0, 0);\n  }\n  get isVisibleFromKeyboard() {\n    return this._renderedHover?.source === 2;\n  }\n  get isVisible() {\n    return this._hoverVisibleKey.get() ?? false;\n  }\n  get isFocused() {\n    return this._hoverFocusedKey.get() ?? false;\n  }\n  constructor(editor2, contextKeyService, _configurationService, _accessibilityService, _keybindingService) {\n    const minimumHeight = editor2.getOption(\n      75\n      /* EditorOption.lineHeight */\n    ) + 8;\n    const minimumWidth = 150;\n    const minimumSize = new Dimension(minimumWidth, minimumHeight);\n    super(editor2, minimumSize);\n    this._configurationService = _configurationService;\n    this._accessibilityService = _accessibilityService;\n    this._keybindingService = _keybindingService;\n    this._hover = this._register(new HoverWidget(true));\n    this._onDidResize = this._register(new Emitter());\n    this.onDidResize = this._onDidResize.event;\n    this._onDidScroll = this._register(new Emitter());\n    this.onDidScroll = this._onDidScroll.event;\n    this._onContentsChanged = this._register(new Emitter());\n    this.onContentsChanged = this._onContentsChanged.event;\n    this._minimumSize = minimumSize;\n    this._hoverVisibleKey = EditorContextKeys.hoverVisible.bindTo(contextKeyService);\n    this._hoverFocusedKey = EditorContextKeys.hoverFocused.bindTo(contextKeyService);\n    append(this._resizableNode.domNode, this._hover.containerDomNode);\n    this._resizableNode.domNode.style.zIndex = \"50\";\n    this._resizableNode.domNode.className = \"monaco-resizable-hover\";\n    this._register(this._editor.onDidLayoutChange(() =\u003e {\n      if (this.isVisible) {\n        this._updateMaxDimensions();\n      }\n    }));\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        59\n        /* EditorOption.fontInfo */\n      )) {\n        this._updateFont();\n      }\n    }));\n    const focusTracker = this._register(trackFocus(this._resizableNode.domNode));\n    this._register(focusTracker.onDidFocus(() =\u003e {\n      this._hoverFocusedKey.set(true);\n    }));\n    this._register(focusTracker.onDidBlur(() =\u003e {\n      this._hoverFocusedKey.set(false);\n    }));\n    this._register(this._hover.scrollbar.onScroll((e) =\u003e {\n      this._onDidScroll.fire(e);\n    }));\n    this._setRenderedHover(void 0);\n    this._editor.addContentWidget(this);\n  }\n  dispose() {\n    super.dispose();\n    this._renderedHover?.dispose();\n    this._editor.removeContentWidget(this);\n  }\n  getId() {\n    return ContentHoverWidget_1.ID;\n  }\n  static _applyDimensions(container, width2, height) {\n    const transformedWidth = typeof width2 === \"number\" ? `${width2}px` : width2;\n    const transformedHeight = typeof height === \"number\" ? `${height}px` : height;\n    container.style.width = transformedWidth;\n    container.style.height = transformedHeight;\n  }\n  _setContentsDomNodeDimensions(width2, height) {\n    const contentsDomNode = this._hover.contentsDomNode;\n    return ContentHoverWidget_1._applyDimensions(contentsDomNode, width2, height);\n  }\n  _setContainerDomNodeDimensions(width2, height) {\n    const containerDomNode = this._hover.containerDomNode;\n    return ContentHoverWidget_1._applyDimensions(containerDomNode, width2, height);\n  }\n  _setScrollableElementDimensions(width2, height) {\n    const scrollbarDomElement = this._hover.scrollbar.getDomNode();\n    return ContentHoverWidget_1._applyDimensions(scrollbarDomElement, width2, height);\n  }\n  _setHoverWidgetDimensions(width2, height) {\n    this._setContainerDomNodeDimensions(width2, height);\n    this._setScrollableElementDimensions(width2, height);\n    this._setContentsDomNodeDimensions(width2, height);\n    this._layoutContentWidget();\n  }\n  static _applyMaxDimensions(container, width2, height) {\n    const transformedWidth = typeof width2 === \"number\" ? `${width2}px` : width2;\n    const transformedHeight = typeof height === \"number\" ? `${height}px` : height;\n    container.style.maxWidth = transformedWidth;\n    container.style.maxHeight = transformedHeight;\n  }\n  _setHoverWidgetMaxDimensions(width2, height) {\n    ContentHoverWidget_1._applyMaxDimensions(this._hover.contentsDomNode, width2, height);\n    ContentHoverWidget_1._applyMaxDimensions(this._hover.scrollbar.getDomNode(), width2, height);\n    ContentHoverWidget_1._applyMaxDimensions(this._hover.containerDomNode, width2, height);\n    this._hover.containerDomNode.style.setProperty(\"--vscode-hover-maxWidth\", typeof width2 === \"number\" ? `${width2}px` : width2);\n    this._layoutContentWidget();\n  }\n  _setAdjustedHoverWidgetDimensions(size2) {\n    this._setHoverWidgetMaxDimensions(\"none\", \"none\");\n    this._setHoverWidgetDimensions(size2.width, size2.height);\n  }\n  _updateResizableNodeMaxDimensions() {\n    const maxRenderingWidth = this._findMaximumRenderingWidth() ?? Infinity;\n    const maxRenderingHeight = this._findMaximumRenderingHeight() ?? Infinity;\n    this._resizableNode.maxSize = new Dimension(maxRenderingWidth, maxRenderingHeight);\n    this._setHoverWidgetMaxDimensions(maxRenderingWidth, maxRenderingHeight);\n  }\n  _resize(size2) {\n    ContentHoverWidget_1._lastDimensions = new Dimension(size2.width, size2.height);\n    this._setAdjustedHoverWidgetDimensions(size2);\n    this._resizableNode.layout(size2.height, size2.width);\n    this._updateResizableNodeMaxDimensions();\n    this._hover.scrollbar.scanDomNode();\n    this._editor.layoutContentWidget(this);\n    this._onDidResize.fire();\n  }\n  _findAvailableSpaceVertically() {\n    const position = this._renderedHover?.showAtPosition;\n    if (!position) {\n      return;\n    }\n    return this._positionPreference === 1 ? this._availableVerticalSpaceAbove(position) : this._availableVerticalSpaceBelow(position);\n  }\n  _findMaximumRenderingHeight() {\n    const availableSpace = this._findAvailableSpaceVertically();\n    if (!availableSpace) {\n      return;\n    }\n    const children = this._hover.contentsDomNode.children;\n    let maximumHeight = children.length - 1;\n    Array.from(this._hover.contentsDomNode.children).forEach((hoverPart) =\u003e {\n      maximumHeight += hoverPart.clientHeight;\n    });\n    return Math.min(availableSpace, maximumHeight);\n  }\n  _isHoverTextOverflowing() {\n    this._hover.containerDomNode.style.setProperty(\"--vscode-hover-whiteSpace\", \"nowrap\");\n    this._hover.containerDomNode.style.setProperty(\"--vscode-hover-sourceWhiteSpace\", \"nowrap\");\n    const overflowing = Array.from(this._hover.contentsDomNode.children).some((hoverElement) =\u003e {\n      return hoverElement.scrollWidth \u003e hoverElement.clientWidth;\n    });\n    this._hover.containerDomNode.style.removeProperty(\"--vscode-hover-whiteSpace\");\n    this._hover.containerDomNode.style.removeProperty(\"--vscode-hover-sourceWhiteSpace\");\n    return overflowing;\n  }\n  _findMaximumRenderingWidth() {\n    if (!this._editor || !this._editor.hasModel()) {\n      return;\n    }\n    const overflowing = this._isHoverTextOverflowing();\n    const initialWidth = typeof this._contentWidth === \"undefined\" ? 0 : this._contentWidth;\n    if (overflowing || this._hover.containerDomNode.clientWidth \u003c initialWidth) {\n      const bodyBoxWidth = getClientArea(this._hover.containerDomNode.ownerDocument.body).width;\n      const horizontalPadding = 14;\n      return bodyBoxWidth - horizontalPadding;\n    } else {\n      return this._hover.containerDomNode.clientWidth;\n    }\n  }\n  isMouseGettingCloser(posx, posy) {\n    if (!this._renderedHover) {\n      return false;\n    }\n    if (this._renderedHover.initialMousePosX === void 0 || this._renderedHover.initialMousePosY === void 0) {\n      this._renderedHover.initialMousePosX = posx;\n      this._renderedHover.initialMousePosY = posy;\n      return false;\n    }\n    const widgetRect = getDomNodePagePosition(this.getDomNode());\n    if (this._renderedHover.closestMouseDistance === void 0) {\n      this._renderedHover.closestMouseDistance = computeDistanceFromPointToRectangle(this._renderedHover.initialMousePosX, this._renderedHover.initialMousePosY, widgetRect.left, widgetRect.top, widgetRect.width, widgetRect.height);\n    }\n    const distance = computeDistanceFromPointToRectangle(posx, posy, widgetRect.left, widgetRect.top, widgetRect.width, widgetRect.height);\n    if (distance \u003e this._renderedHover.closestMouseDistance + 4) {\n      return false;\n    }\n    this._renderedHover.closestMouseDistance = Math.min(this._renderedHover.closestMouseDistance, distance);\n    return true;\n  }\n  _setRenderedHover(renderedHover) {\n    this._renderedHover?.dispose();\n    this._renderedHover = renderedHover;\n    this._hoverVisibleKey.set(!!renderedHover);\n    this._hover.containerDomNode.classList.toggle(\"hidden\", !renderedHover);\n  }\n  _updateFont() {\n    const { fontSize, lineHeight } = this._editor.getOption(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const contentsDomNode = this._hover.contentsDomNode;\n    contentsDomNode.style.fontSize = `${fontSize}px`;\n    contentsDomNode.style.lineHeight = `${lineHeight / fontSize}`;\n    const codeClasses = Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName(\"code\"));\n    codeClasses.forEach((node) =\u003e this._editor.applyFontInfo(node));\n  }\n  _updateContent(node) {\n    const contentsDomNode = this._hover.contentsDomNode;\n    contentsDomNode.style.paddingBottom = \"\";\n    contentsDomNode.textContent = \"\";\n    contentsDomNode.appendChild(node);\n  }\n  _layoutContentWidget() {\n    this._editor.layoutContentWidget(this);\n    this._hover.onContentsChanged();\n  }\n  _updateMaxDimensions() {\n    const height = Math.max(this._editor.getLayoutInfo().height / 4, 250, ContentHoverWidget_1._lastDimensions.height);\n    const width2 = Math.max(this._editor.getLayoutInfo().width * 0.66, 750, ContentHoverWidget_1._lastDimensions.width);\n    this._resizableNode.maxSize = new Dimension(width2, height);\n    this._setHoverWidgetMaxDimensions(width2, height);\n  }\n  _render(renderedHover) {\n    this._setRenderedHover(renderedHover);\n    this._updateFont();\n    this._updateContent(renderedHover.domNode);\n    this.handleContentsChanged();\n    this._editor.render();\n  }\n  getPosition() {\n    if (!this._renderedHover) {\n      return null;\n    }\n    return {\n      position: this._renderedHover.showAtPosition,\n      secondaryPosition: this._renderedHover.showAtSecondaryPosition,\n      positionAffinity: this._renderedHover.shouldAppearBeforeContent ? 3 : void 0,\n      preference: [\n        this._positionPreference ?? 1\n        /* ContentWidgetPositionPreference.ABOVE */\n      ]\n    };\n  }\n  show(renderedHover) {\n    if (!this._editor || !this._editor.hasModel()) {\n      return;\n    }\n    this._render(renderedHover);\n    const widgetHeight = getTotalHeight(this._hover.containerDomNode);\n    const widgetPosition = renderedHover.showAtPosition;\n    this._positionPreference = this._findPositionPreference(widgetHeight, widgetPosition) ?? 1;\n    this.handleContentsChanged();\n    if (renderedHover.shouldFocus) {\n      this._hover.containerDomNode.focus();\n    }\n    this._onDidResize.fire();\n    const hoverFocused = this._hover.containerDomNode.ownerDocument.activeElement === this._hover.containerDomNode;\n    const accessibleViewHint = hoverFocused \u0026\u0026 getHoverAccessibleViewHint(this._configurationService.getValue(\"accessibility.verbosity.hover\") === true \u0026\u0026 this._accessibilityService.isScreenReaderOptimized(), this._keybindingService.lookupKeybinding(\"editor.action.accessibleView\")?.getAriaLabel() ?? \"\");\n    if (accessibleViewHint) {\n      this._hover.contentsDomNode.ariaLabel = this._hover.contentsDomNode.textContent + \", \" + accessibleViewHint;\n    }\n  }\n  hide() {\n    if (!this._renderedHover) {\n      return;\n    }\n    const hoverStoleFocus = this._renderedHover.shouldFocus || this._hoverFocusedKey.get();\n    this._setRenderedHover(void 0);\n    this._resizableNode.maxSize = new Dimension(Infinity, Infinity);\n    this._resizableNode.clearSashHoverState();\n    this._hoverFocusedKey.set(false);\n    this._editor.layoutContentWidget(this);\n    if (hoverStoleFocus) {\n      this._editor.focus();\n    }\n  }\n  _removeConstraintsRenderNormally() {\n    const layoutInfo = this._editor.getLayoutInfo();\n    this._resizableNode.layout(layoutInfo.height, layoutInfo.width);\n    this._setHoverWidgetDimensions(\"auto\", \"auto\");\n    this._updateMaxDimensions();\n  }\n  setMinimumDimensions(dimensions) {\n    this._minimumSize = new Dimension(Math.max(this._minimumSize.width, dimensions.width), Math.max(this._minimumSize.height, dimensions.height));\n    this._updateMinimumWidth();\n  }\n  _updateMinimumWidth() {\n    const width2 = typeof this._contentWidth === \"undefined\" ? this._minimumSize.width : Math.min(this._contentWidth, this._minimumSize.width);\n    this._resizableNode.minSize = new Dimension(width2, this._minimumSize.height);\n  }\n  handleContentsChanged() {\n    this._removeConstraintsRenderNormally();\n    const contentsDomNode = this._hover.contentsDomNode;\n    let height = getTotalHeight(contentsDomNode);\n    let width2 = getTotalWidth(contentsDomNode) + 2;\n    this._resizableNode.layout(height, width2);\n    this._setHoverWidgetDimensions(width2, height);\n    height = getTotalHeight(contentsDomNode);\n    width2 = getTotalWidth(contentsDomNode);\n    this._contentWidth = width2;\n    this._updateMinimumWidth();\n    this._resizableNode.layout(height, width2);\n    if (this._renderedHover?.showAtPosition) {\n      const widgetHeight = getTotalHeight(this._hover.containerDomNode);\n      this._positionPreference = this._findPositionPreference(widgetHeight, this._renderedHover.showAtPosition);\n    }\n    this._layoutContentWidget();\n    this._onContentsChanged.fire();\n  }\n  focus() {\n    this._hover.containerDomNode.focus();\n  }\n  scrollUp() {\n    const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n    const fontInfo = this._editor.getOption(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop - fontInfo.lineHeight });\n  }\n  scrollDown() {\n    const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n    const fontInfo = this._editor.getOption(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop + fontInfo.lineHeight });\n  }\n  scrollLeft() {\n    const scrollLeft = this._hover.scrollbar.getScrollPosition().scrollLeft;\n    this._hover.scrollbar.setScrollPosition({ scrollLeft: scrollLeft - HORIZONTAL_SCROLLING_BY });\n  }\n  scrollRight() {\n    const scrollLeft = this._hover.scrollbar.getScrollPosition().scrollLeft;\n    this._hover.scrollbar.setScrollPosition({ scrollLeft: scrollLeft + HORIZONTAL_SCROLLING_BY });\n  }\n  pageUp() {\n    const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n    const scrollHeight = this._hover.scrollbar.getScrollDimensions().height;\n    this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop - scrollHeight });\n  }\n  pageDown() {\n    const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n    const scrollHeight = this._hover.scrollbar.getScrollDimensions().height;\n    this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop + scrollHeight });\n  }\n  goToTop() {\n    this._hover.scrollbar.setScrollPosition({ scrollTop: 0 });\n  }\n  goToBottom() {\n    this._hover.scrollbar.setScrollPosition({ scrollTop: this._hover.scrollbar.getScrollDimensions().scrollHeight });\n  }\n};\nContentHoverWidget = ContentHoverWidget_1 = __decorate62([\n  __param57(1, IContextKeyService),\n  __param57(2, IConfigurationService),\n  __param57(3, IAccessibilityService),\n  __param57(4, IKeybindingService)\n], ContentHoverWidget);\nfunction computeDistanceFromPointToRectangle(pointX, pointY, left, top, width2, height) {\n  const x = left + width2 / 2;\n  const y = top + height / 2;\n  const dx = Math.max(Math.abs(pointX - x) - width2 / 2, 0);\n  const dy = Math.max(Math.abs(pointY - y) - height / 2, 0);\n  return Math.sqrt(dx * dx + dy * dy);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverComputer.js\ninit_arrays();\ninit_async();\nvar ContentHoverComputer = class _ContentHoverComputer {\n  constructor(_editor, _participants) {\n    this._editor = _editor;\n    this._participants = _participants;\n  }\n  static _getLineDecorations(editor2, anchor) {\n    if (anchor.type !== 1 \u0026\u0026 !anchor.supportsMarkerHover) {\n      return [];\n    }\n    const model = editor2.getModel();\n    const lineNumber = anchor.range.startLineNumber;\n    if (lineNumber \u003e model.getLineCount()) {\n      return [];\n    }\n    const maxColumn = model.getLineMaxColumn(lineNumber);\n    return editor2.getLineDecorations(lineNumber).filter((d) =\u003e {\n      if (d.options.isWholeLine) {\n        return true;\n      }\n      const startColumn = d.range.startLineNumber === lineNumber ? d.range.startColumn : 1;\n      const endColumn = d.range.endLineNumber === lineNumber ? d.range.endColumn : maxColumn;\n      if (d.options.showIfCollapsed) {\n        if (startColumn \u003e anchor.range.startColumn + 1 || anchor.range.endColumn - 1 \u003e endColumn) {\n          return false;\n        }\n      } else {\n        if (startColumn \u003e anchor.range.startColumn || anchor.range.endColumn \u003e endColumn) {\n          return false;\n        }\n      }\n      return true;\n    });\n  }\n  computeAsync(options2, token) {\n    const anchor = options2.anchor;\n    if (!this._editor.hasModel() || !anchor) {\n      return AsyncIterableProducer.EMPTY;\n    }\n    const lineDecorations = _ContentHoverComputer._getLineDecorations(this._editor, anchor);\n    return AsyncIterableProducer.merge(this._participants.map((participant) =\u003e {\n      if (!participant.computeAsync) {\n        return AsyncIterableProducer.EMPTY;\n      }\n      return participant.computeAsync(anchor, lineDecorations, options2.source, token);\n    }));\n  }\n  computeSync(options2) {\n    if (!this._editor.hasModel()) {\n      return [];\n    }\n    const anchor = options2.anchor;\n    const lineDecorations = _ContentHoverComputer._getLineDecorations(this._editor, anchor);\n    let result = [];\n    for (const participant of this._participants) {\n      result = result.concat(participant.computeSync(anchor, lineDecorations, options2.source));\n    }\n    return coalesce(result);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverTypes.js\nvar ContentHoverResult = class {\n  constructor(hoverParts, isComplete, options2) {\n    this.hoverParts = hoverParts;\n    this.isComplete = isComplete;\n    this.options = options2;\n  }\n  filter(anchor) {\n    const filteredHoverParts = this.hoverParts.filter((m) =\u003e m.isValidForHoverAnchor(anchor));\n    if (filteredHoverParts.length === this.hoverParts.length) {\n      return this;\n    }\n    return new FilteredContentHoverResult(this, filteredHoverParts, this.isComplete, this.options);\n  }\n};\nvar FilteredContentHoverResult = class extends ContentHoverResult {\n  constructor(original, messages, isComplete, options2) {\n    super(messages, isComplete, options2);\n    this.original = original;\n  }\n  filter(anchor) {\n    return this.original.filter(anchor);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverWidgetWrapper.js\ninit_event();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverRendered.js\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverStatusBar.js\ninit_dom();\ninit_lifecycle();\nvar __decorate63 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param58 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar $5 = $;\nvar EditorHoverStatusBar = class EditorHoverStatusBar2 extends Disposable {\n  get hasContent() {\n    return this._hasContent;\n  }\n  constructor(_keybindingService, _hoverService) {\n    super();\n    this._keybindingService = _keybindingService;\n    this._hoverService = _hoverService;\n    this.actions = [];\n    this._hasContent = false;\n    this.hoverElement = $5(\"div.hover-row.status-bar\");\n    this.hoverElement.tabIndex = 0;\n    this.actionsElement = append(this.hoverElement, $5(\"div.actions\"));\n  }\n  addAction(actionOptions) {\n    const keybinding = this._keybindingService.lookupKeybinding(actionOptions.commandId);\n    const keybindingLabel = keybinding ? keybinding.getLabel() : null;\n    this._hasContent = true;\n    const action = this._register(HoverAction.render(this.actionsElement, actionOptions, keybindingLabel));\n    this._register(this._hoverService.setupManagedHover(getDefaultHoverDelegate(\"element\"), action.actionContainer, action.actionRenderedLabel));\n    this.actions.push(action);\n    return action;\n  }\n  append(element) {\n    const result = append(this.actionsElement, element);\n    this._hasContent = true;\n    return result;\n  }\n};\nEditorHoverStatusBar = __decorate63([\n  __param58(0, IKeybindingService),\n  __param58(1, IHoverService)\n], EditorHoverStatusBar);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverRendered.js\ninit_textModel();\ninit_position();\ninit_range();\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js\ninit_dom();\ninit_arrays();\ninit_cancellation();\ninit_htmlContent();\ninit_lifecycle();\ninit_range();\ninit_language();\ninit_nls();\ninit_configuration();\ninit_languageFeatures();\ninit_languages();\ninit_codicons();\ninit_themables();\ninit_errors();\ninit_async();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/getHover.js\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_editorExtensions();\ninit_languageFeatures();\nvar HoverProviderResult = class {\n  constructor(provider, hover, ordinal) {\n    this.provider = provider;\n    this.hover = hover;\n    this.ordinal = ordinal;\n  }\n};\nasync function executeProvider(provider, ordinal, model, position, token) {\n  const result = await Promise.resolve(provider.provideHover(model, position, token)).catch(onUnexpectedExternalError);\n  if (!result || !isValid(result)) {\n    return void 0;\n  }\n  return new HoverProviderResult(provider, result, ordinal);\n}\nfunction getHoverProviderResultsAsAsyncIterable(registry, model, position, token, recursive = false) {\n  const providers = registry.ordered(model, recursive);\n  const promises = providers.map((provider, index) =\u003e executeProvider(provider, index, model, position, token));\n  return AsyncIterableProducer.fromPromisesResolveOrder(promises).coalesce();\n}\nasync function getHoversPromise(registry, model, position, token, recursive = false) {\n  const out = [];\n  for await (const item of getHoverProviderResultsAsAsyncIterable(registry, model, position, token, recursive)) {\n    out.push(item.hover);\n  }\n  return out;\n}\nregisterModelAndPositionCommand(\"_executeHoverProvider\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  return getHoversPromise(languageFeaturesService.hoverProvider, model, position, CancellationToken.None);\n});\nregisterModelAndPositionCommand(\"_executeHoverProvider_recursive\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  return getHoversPromise(languageFeaturesService.hoverProvider, model, position, CancellationToken.None, true);\n});\nfunction isValid(result) {\n  const hasRange = typeof result.range !== \"undefined\";\n  const hasHtmlContent = typeof result.contents !== \"undefined\" \u0026\u0026 result.contents \u0026\u0026 result.contents.length \u003e 0;\n  return hasRange \u0026\u0026 hasHtmlContent;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js\ninit_commands();\nvar __decorate64 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param59 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar $6 = $;\nvar increaseHoverVerbosityIcon = registerIcon(\"hover-increase-verbosity\", Codicon.add, localize(1120, \"Icon for increaseing hover verbosity.\"));\nvar decreaseHoverVerbosityIcon = registerIcon(\"hover-decrease-verbosity\", Codicon.remove, localize(1121, \"Icon for decreasing hover verbosity.\"));\nvar MarkdownHover = class {\n  constructor(owner, range2, contents, isBeforeContent, ordinal, source = void 0) {\n    this.owner = owner;\n    this.range = range2;\n    this.contents = contents;\n    this.isBeforeContent = isBeforeContent;\n    this.ordinal = ordinal;\n    this.source = source;\n  }\n  isValidForHoverAnchor(anchor) {\n    return anchor.type === 1 \u0026\u0026 this.range.startColumn \u003c= anchor.range.startColumn \u0026\u0026 this.range.endColumn \u003e= anchor.range.endColumn;\n  }\n};\nvar HoverSource = class {\n  constructor(hover, hoverProvider, hoverPosition) {\n    this.hover = hover;\n    this.hoverProvider = hoverProvider;\n    this.hoverPosition = hoverPosition;\n  }\n  supportsVerbosityAction(hoverVerbosityAction) {\n    switch (hoverVerbosityAction) {\n      case HoverVerbosityAction.Increase:\n        return this.hover.canIncreaseVerbosity ?? false;\n      case HoverVerbosityAction.Decrease:\n        return this.hover.canDecreaseVerbosity ?? false;\n    }\n  }\n};\nvar MarkdownHoverParticipant = class MarkdownHoverParticipant2 {\n  constructor(_editor, _languageService, _openerService, _configurationService, _languageFeaturesService, _keybindingService, _hoverService, _commandService) {\n    this._editor = _editor;\n    this._languageService = _languageService;\n    this._openerService = _openerService;\n    this._configurationService = _configurationService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._keybindingService = _keybindingService;\n    this._hoverService = _hoverService;\n    this._commandService = _commandService;\n    this.hoverOrdinal = 3;\n  }\n  createLoadingMessage(anchor) {\n    return new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(localize(1122, \"Loading...\"))], false, 2e3);\n  }\n  computeSync(anchor, lineDecorations) {\n    if (!this._editor.hasModel() || anchor.type !== 1) {\n      return [];\n    }\n    const model = this._editor.getModel();\n    const lineNumber = anchor.range.startLineNumber;\n    const maxColumn = model.getLineMaxColumn(lineNumber);\n    const result = [];\n    let index = 1e3;\n    const lineLength = model.getLineLength(lineNumber);\n    const languageId = model.getLanguageIdAtPosition(anchor.range.startLineNumber, anchor.range.startColumn);\n    const stopRenderingLineAfter = this._editor.getOption(\n      132\n      /* EditorOption.stopRenderingLineAfter */\n    );\n    const maxTokenizationLineLength = this._configurationService.getValue(\"editor.maxTokenizationLineLength\", {\n      overrideIdentifier: languageId\n    });\n    let stopRenderingMessage = false;\n    if (stopRenderingLineAfter \u003e= 0 \u0026\u0026 lineLength \u003e stopRenderingLineAfter \u0026\u0026 anchor.range.startColumn \u003e= stopRenderingLineAfter) {\n      stopRenderingMessage = true;\n      result.push(new MarkdownHover(this, anchor.range, [{\n        value: localize(1123, \"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.\")\n      }], false, index++));\n    }\n    if (!stopRenderingMessage \u0026\u0026 typeof maxTokenizationLineLength === \"number\" \u0026\u0026 lineLength \u003e= maxTokenizationLineLength) {\n      result.push(new MarkdownHover(this, anchor.range, [{\n        value: localize(1124, \"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.\")\n      }], false, index++));\n    }\n    let isBeforeContent = false;\n    for (const d of lineDecorations) {\n      const startColumn = d.range.startLineNumber === lineNumber ? d.range.startColumn : 1;\n      const endColumn = d.range.endLineNumber === lineNumber ? d.range.endColumn : maxColumn;\n      const hoverMessage = d.options.hoverMessage;\n      if (!hoverMessage || isEmptyMarkdownString(hoverMessage)) {\n        continue;\n      }\n      if (d.options.beforeContentClassName) {\n        isBeforeContent = true;\n      }\n      const range2 = new Range(anchor.range.startLineNumber, startColumn, anchor.range.startLineNumber, endColumn);\n      result.push(new MarkdownHover(this, range2, asArray(hoverMessage), isBeforeContent, index++));\n    }\n    return result;\n  }\n  computeAsync(anchor, lineDecorations, source, token) {\n    if (!this._editor.hasModel() || anchor.type !== 1) {\n      return AsyncIterableProducer.EMPTY;\n    }\n    const model = this._editor.getModel();\n    const hoverProviderRegistry = this._languageFeaturesService.hoverProvider;\n    if (!hoverProviderRegistry.has(model)) {\n      return AsyncIterableProducer.EMPTY;\n    }\n    return this._getMarkdownHovers(hoverProviderRegistry, model, anchor, token);\n  }\n  async *_getMarkdownHovers(hoverProviderRegistry, model, anchor, token) {\n    const position = anchor.range.getStartPosition();\n    const hoverProviderResults = getHoverProviderResultsAsAsyncIterable(hoverProviderRegistry, model, position, token);\n    for await (const item of hoverProviderResults) {\n      if (!isEmptyMarkdownString(item.hover.contents)) {\n        const range2 = item.hover.range ? Range.lift(item.hover.range) : anchor.range;\n        const hoverSource = new HoverSource(item.hover, item.provider, position);\n        yield new MarkdownHover(this, range2, item.hover.contents, false, item.ordinal, hoverSource);\n      }\n    }\n  }\n  renderHoverParts(context, hoverParts) {\n    this._renderedHoverParts = new MarkdownRenderedHoverParts(hoverParts, context.fragment, this, this._editor, this._languageService, this._openerService, this._commandService, this._keybindingService, this._hoverService, this._configurationService, context.onContentsChanged);\n    return this._renderedHoverParts;\n  }\n  handleScroll(e) {\n    this._renderedHoverParts?.handleScroll(e);\n  }\n  updateMarkdownHoverVerbosityLevel(action, index) {\n    return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(action, index));\n  }\n};\nMarkdownHoverParticipant = __decorate64([\n  __param59(1, ILanguageService),\n  __param59(2, IOpenerService),\n  __param59(3, IConfigurationService),\n  __param59(4, ILanguageFeaturesService),\n  __param59(5, IKeybindingService),\n  __param59(6, IHoverService),\n  __param59(7, ICommandService)\n], MarkdownHoverParticipant);\nvar RenderedMarkdownHoverPart = class {\n  constructor(hoverPart, hoverElement, disposables, actionsContainer) {\n    this.hoverPart = hoverPart;\n    this.hoverElement = hoverElement;\n    this.disposables = disposables;\n    this.actionsContainer = actionsContainer;\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\nvar MarkdownRenderedHoverParts = class {\n  constructor(hoverParts, hoverPartsContainer, _hoverParticipant, _editor, _languageService, _openerService, _commandService, _keybindingService, _hoverService, _configurationService, _onFinishedRendering) {\n    this._hoverParticipant = _hoverParticipant;\n    this._editor = _editor;\n    this._languageService = _languageService;\n    this._openerService = _openerService;\n    this._commandService = _commandService;\n    this._keybindingService = _keybindingService;\n    this._hoverService = _hoverService;\n    this._configurationService = _configurationService;\n    this._onFinishedRendering = _onFinishedRendering;\n    this._ongoingHoverOperations = /* @__PURE__ */ new Map();\n    this._disposables = new DisposableStore();\n    this.renderedHoverParts = this._renderHoverParts(hoverParts, hoverPartsContainer, this._onFinishedRendering);\n    this._disposables.add(toDisposable(() =\u003e {\n      this.renderedHoverParts.forEach((renderedHoverPart) =\u003e {\n        renderedHoverPart.dispose();\n      });\n      this._ongoingHoverOperations.forEach((operation) =\u003e {\n        operation.tokenSource.dispose(true);\n      });\n    }));\n  }\n  _renderHoverParts(hoverParts, hoverPartsContainer, onFinishedRendering) {\n    hoverParts.sort(compareBy((hover) =\u003e hover.ordinal, numberComparator));\n    return hoverParts.map((hoverPart) =\u003e {\n      const renderedHoverPart = this._renderHoverPart(hoverPart, onFinishedRendering);\n      hoverPartsContainer.appendChild(renderedHoverPart.hoverElement);\n      return renderedHoverPart;\n    });\n  }\n  _renderHoverPart(hoverPart, onFinishedRendering) {\n    const renderedMarkdownPart = this._renderMarkdownHover(hoverPart, onFinishedRendering);\n    const renderedMarkdownElement = renderedMarkdownPart.hoverElement;\n    const hoverSource = hoverPart.source;\n    const disposables = new DisposableStore();\n    disposables.add(renderedMarkdownPart);\n    if (!hoverSource) {\n      return new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables);\n    }\n    const canIncreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Increase);\n    const canDecreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Decrease);\n    if (!canIncreaseVerbosity \u0026\u0026 !canDecreaseVerbosity) {\n      return new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables);\n    }\n    const actionsContainer = $6(\"div.verbosity-actions\");\n    renderedMarkdownElement.prepend(actionsContainer);\n    const actionsContainerInner = $6(\"div.verbosity-actions-inner\");\n    actionsContainer.append(actionsContainerInner);\n    disposables.add(this._renderHoverExpansionAction(actionsContainerInner, HoverVerbosityAction.Increase, canIncreaseVerbosity));\n    disposables.add(this._renderHoverExpansionAction(actionsContainerInner, HoverVerbosityAction.Decrease, canDecreaseVerbosity));\n    return new RenderedMarkdownHoverPart(hoverPart, renderedMarkdownElement, disposables, actionsContainerInner);\n  }\n  _renderMarkdownHover(markdownHover, onFinishedRendering) {\n    const renderedMarkdownHover = renderMarkdown2(this._editor, markdownHover, this._languageService, this._openerService, onFinishedRendering);\n    return renderedMarkdownHover;\n  }\n  _renderHoverExpansionAction(container, action, actionEnabled) {\n    const store = new DisposableStore();\n    const isActionIncrease = action === HoverVerbosityAction.Increase;\n    const actionElement = append(container, $6(ThemeIcon.asCSSSelector(isActionIncrease ? increaseHoverVerbosityIcon : decreaseHoverVerbosityIcon)));\n    actionElement.tabIndex = 0;\n    const hoverDelegate = new WorkbenchHoverDelegate(\"mouse\", void 0, { target: container, position: {\n      hoverPosition: 0\n      /* HoverPosition.LEFT */\n    } }, this._configurationService, this._hoverService);\n    store.add(this._hoverService.setupManagedHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action)));\n    if (!actionEnabled) {\n      actionElement.classList.add(\"disabled\");\n      return store;\n    }\n    actionElement.classList.add(\"enabled\");\n    const actionFunction = () =\u003e this._commandService.executeCommand(action === HoverVerbosityAction.Increase ? INCREASE_HOVER_VERBOSITY_ACTION_ID : DECREASE_HOVER_VERBOSITY_ACTION_ID, { focus: true });\n    store.add(new ClickAction(actionElement, actionFunction));\n    store.add(new KeyDownAction(actionElement, actionFunction, [\n      3,\n      10\n      /* KeyCode.Space */\n    ]));\n    return store;\n  }\n  handleScroll(e) {\n    this.renderedHoverParts.forEach((renderedHoverPart) =\u003e {\n      const actionsContainerInner = renderedHoverPart.actionsContainer;\n      if (!actionsContainerInner) {\n        return;\n      }\n      const hoverElement = renderedHoverPart.hoverElement;\n      const topOfHoverScrollPosition = e.scrollTop;\n      const bottomOfHoverScrollPosition = topOfHoverScrollPosition + e.height;\n      const topOfRenderedPart = hoverElement.offsetTop;\n      const hoverElementHeight = hoverElement.clientHeight;\n      const bottomOfRenderedPart = topOfRenderedPart + hoverElementHeight;\n      const iconsHeight = 22;\n      let top;\n      if (bottomOfRenderedPart \u003c= bottomOfHoverScrollPosition || topOfRenderedPart \u003e= bottomOfHoverScrollPosition) {\n        top = hoverElementHeight - iconsHeight;\n      } else {\n        top = bottomOfHoverScrollPosition - topOfRenderedPart - iconsHeight;\n      }\n      actionsContainerInner.style.top = `${top}px`;\n    });\n  }\n  async updateMarkdownHoverPartVerbosityLevel(action, index) {\n    const model = this._editor.getModel();\n    if (!model) {\n      return void 0;\n    }\n    const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);\n    const hoverSource = hoverRenderedPart?.hoverPart.source;\n    if (!hoverRenderedPart || !hoverSource?.supportsVerbosityAction(action)) {\n      return void 0;\n    }\n    const newHover = await this._fetchHover(hoverSource, model, action);\n    if (!newHover) {\n      return void 0;\n    }\n    const newHoverSource = new HoverSource(newHover, hoverSource.hoverProvider, hoverSource.hoverPosition);\n    const initialHoverPart = hoverRenderedPart.hoverPart;\n    const newHoverPart = new MarkdownHover(this._hoverParticipant, initialHoverPart.range, newHover.contents, initialHoverPart.isBeforeContent, initialHoverPart.ordinal, newHoverSource);\n    const newHoverRenderedPart = this._updateRenderedHoverPart(index, newHoverPart);\n    if (!newHoverRenderedPart) {\n      return void 0;\n    }\n    return {\n      hoverPart: newHoverPart,\n      hoverElement: newHoverRenderedPart.hoverElement\n    };\n  }\n  async _fetchHover(hoverSource, model, action) {\n    let verbosityDelta = action === HoverVerbosityAction.Increase ? 1 : -1;\n    const provider = hoverSource.hoverProvider;\n    const ongoingHoverOperation = this._ongoingHoverOperations.get(provider);\n    if (ongoingHoverOperation) {\n      ongoingHoverOperation.tokenSource.cancel();\n      verbosityDelta += ongoingHoverOperation.verbosityDelta;\n    }\n    const tokenSource = new CancellationTokenSource();\n    this._ongoingHoverOperations.set(provider, { verbosityDelta, tokenSource });\n    const context = { verbosityRequest: { verbosityDelta, previousHover: hoverSource.hover } };\n    let hover;\n    try {\n      hover = await Promise.resolve(provider.provideHover(model, hoverSource.hoverPosition, tokenSource.token, context));\n    } catch (e) {\n      onUnexpectedExternalError(e);\n    }\n    tokenSource.dispose();\n    this._ongoingHoverOperations.delete(provider);\n    return hover;\n  }\n  _updateRenderedHoverPart(index, hoverPart) {\n    if (index \u003e= this.renderedHoverParts.length || index \u003c 0) {\n      return void 0;\n    }\n    const renderedHoverPart = this._renderHoverPart(hoverPart, this._onFinishedRendering);\n    const currentRenderedHoverPart = this.renderedHoverParts[index];\n    const currentRenderedMarkdown = currentRenderedHoverPart.hoverElement;\n    const renderedMarkdown = renderedHoverPart.hoverElement;\n    const renderedChildrenElements = Array.from(renderedMarkdown.children);\n    currentRenderedMarkdown.replaceChildren(...renderedChildrenElements);\n    const newRenderedHoverPart = new RenderedMarkdownHoverPart(hoverPart, currentRenderedMarkdown, renderedHoverPart.disposables, renderedHoverPart.actionsContainer);\n    currentRenderedHoverPart.dispose();\n    this.renderedHoverParts[index] = newRenderedHoverPart;\n    return newRenderedHoverPart;\n  }\n  _getRenderedHoverPartAtIndex(index) {\n    return this.renderedHoverParts[index];\n  }\n  dispose() {\n    this._disposables.dispose();\n  }\n};\nfunction renderMarkdownHovers(context, markdownHovers, editor2, languageService, openerService) {\n  markdownHovers.sort(compareBy((hover) =\u003e hover.ordinal, numberComparator));\n  const renderedHoverParts = [];\n  for (const markdownHover of markdownHovers) {\n    const renderedHoverPart = renderMarkdown2(editor2, markdownHover, languageService, openerService, context.onContentsChanged);\n    context.fragment.appendChild(renderedHoverPart.hoverElement);\n    renderedHoverParts.push(renderedHoverPart);\n  }\n  return new RenderedHoverParts(renderedHoverParts);\n}\nfunction renderMarkdown2(editor2, markdownHover, languageService, openerService, onFinishedRendering) {\n  const disposables = new DisposableStore();\n  const renderedMarkdown = $6(\"div.hover-row\");\n  const renderedMarkdownContents = $6(\"div.hover-row-contents\");\n  renderedMarkdown.appendChild(renderedMarkdownContents);\n  const markdownStrings = markdownHover.contents;\n  for (const markdownString of markdownStrings) {\n    if (isEmptyMarkdownString(markdownString)) {\n      continue;\n    }\n    const markdownHoverElement = $6(\"div.markdown-hover\");\n    const hoverContentsElement = append(markdownHoverElement, $6(\"div.hover-contents\"));\n    const renderer = new MarkdownRenderer({ editor: editor2 }, languageService, openerService);\n    const renderedContents = disposables.add(renderer.render(markdownString, {\n      asyncRenderCallback: () =\u003e {\n        hoverContentsElement.className = \"hover-contents code-hover-contents\";\n        onFinishedRendering();\n      }\n    }));\n    hoverContentsElement.appendChild(renderedContents.element);\n    renderedMarkdownContents.appendChild(markdownHoverElement);\n  }\n  const renderedHoverPart = {\n    hoverPart: markdownHover,\n    hoverElement: renderedMarkdown,\n    dispose() {\n      disposables.dispose();\n    }\n  };\n  return renderedHoverPart;\n}\nfunction labelForHoverVerbosityAction(keybindingService, action) {\n  switch (action) {\n    case HoverVerbosityAction.Increase: {\n      const kb = keybindingService.lookupKeybinding(INCREASE_HOVER_VERBOSITY_ACTION_ID);\n      return kb ? localize(1125, \"Increase Hover Verbosity ({0})\", kb.getLabel()) : localize(1126, \"Increase Hover Verbosity\");\n    }\n    case HoverVerbosityAction.Decrease: {\n      const kb = keybindingService.lookupKeybinding(DECREASE_HOVER_VERBOSITY_ACTION_ID);\n      return kb ? localize(1127, \"Decrease Hover Verbosity ({0})\", kb.getLabel()) : localize(1128, \"Decrease Hover Verbosity\");\n    }\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js\ninit_async();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerBody.js\ninit_dom();\ninit_color();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerSaturationBox.js\ninit_dom();\ninit_color();\ninit_event();\ninit_lifecycle();\nvar $7 = $;\nvar SaturationBox = class extends Disposable {\n  constructor(container, model, pixelRatio) {\n    super();\n    this.model = model;\n    this.pixelRatio = pixelRatio;\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n    this._onColorFlushed = new Emitter();\n    this.onColorFlushed = this._onColorFlushed.event;\n    this._domNode = $7(\".saturation-wrap\");\n    append(container, this._domNode);\n    this._canvas = document.createElement(\"canvas\");\n    this._canvas.className = \"saturation-box\";\n    append(this._domNode, this._canvas);\n    this.selection = $7(\".saturation-selection\");\n    append(this._domNode, this.selection);\n    this.layout();\n    this._register(addDisposableListener(this._domNode, EventType.POINTER_DOWN, (e) =\u003e this.onPointerDown(e)));\n    this._register(this.model.onDidChangeColor(this.onDidChangeColor, this));\n    this.monitor = null;\n  }\n  get domNode() {\n    return this._domNode;\n  }\n  onPointerDown(e) {\n    if (!e.target || !(e.target instanceof Element)) {\n      return;\n    }\n    this.monitor = this._register(new GlobalPointerMoveMonitor());\n    const origin = getDomNodePagePosition(this._domNode);\n    if (e.target !== this.selection) {\n      this.onDidChangePosition(e.offsetX, e.offsetY);\n    }\n    this.monitor.startMonitoring(e.target, e.pointerId, e.buttons, (event) =\u003e this.onDidChangePosition(event.pageX - origin.left, event.pageY - origin.top), () =\u003e null);\n    const pointerUpListener = addDisposableListener(e.target.ownerDocument, EventType.POINTER_UP, () =\u003e {\n      this._onColorFlushed.fire();\n      pointerUpListener.dispose();\n      if (this.monitor) {\n        this.monitor.stopMonitoring(true);\n        this.monitor = null;\n      }\n    }, true);\n  }\n  onDidChangePosition(left, top) {\n    const s = Math.max(0, Math.min(1, left / this.width));\n    const v = Math.max(0, Math.min(1, 1 - top / this.height));\n    this.paintSelection(s, v);\n    this._onDidChange.fire({ s, v });\n  }\n  layout() {\n    this.width = this._domNode.offsetWidth;\n    this.height = this._domNode.offsetHeight;\n    this._canvas.width = this.width * this.pixelRatio;\n    this._canvas.height = this.height * this.pixelRatio;\n    this.paint();\n    const hsva = this.model.color.hsva;\n    this.paintSelection(hsva.s, hsva.v);\n  }\n  paint() {\n    const hsva = this.model.color.hsva;\n    const saturatedColor = new Color(new HSVA(hsva.h, 1, 1, 1));\n    const ctx = this._canvas.getContext(\"2d\");\n    const whiteGradient = ctx.createLinearGradient(0, 0, this._canvas.width, 0);\n    whiteGradient.addColorStop(0, \"rgba(255, 255, 255, 1)\");\n    whiteGradient.addColorStop(0.5, \"rgba(255, 255, 255, 0.5)\");\n    whiteGradient.addColorStop(1, \"rgba(255, 255, 255, 0)\");\n    const blackGradient = ctx.createLinearGradient(0, 0, 0, this._canvas.height);\n    blackGradient.addColorStop(0, \"rgba(0, 0, 0, 0)\");\n    blackGradient.addColorStop(1, \"rgba(0, 0, 0, 1)\");\n    ctx.rect(0, 0, this._canvas.width, this._canvas.height);\n    ctx.fillStyle = Color.Format.CSS.format(saturatedColor);\n    ctx.fill();\n    ctx.fillStyle = whiteGradient;\n    ctx.fill();\n    ctx.fillStyle = blackGradient;\n    ctx.fill();\n  }\n  paintSelection(s, v) {\n    this.selection.style.left = `${s * this.width}px`;\n    this.selection.style.top = `${this.height - v * this.height}px`;\n  }\n  onDidChangeColor(color) {\n    if (this.monitor \u0026\u0026 this.monitor.isMonitoring()) {\n      return;\n    }\n    this.paint();\n    const hsva = color.hsva;\n    this.paintSelection(hsva.s, hsva.v);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerInsertButton.js\ninit_dom();\ninit_event();\ninit_lifecycle();\nvar InsertButton = class extends Disposable {\n  constructor(container) {\n    super();\n    this._onClicked = this._register(new Emitter());\n    this.onClicked = this._onClicked.event;\n    this._button = append(container, document.createElement(\"button\"));\n    this._button.classList.add(\"insert-button\");\n    this._button.textContent = \"Insert\";\n    this._register(addDisposableListener(this._button, EventType.CLICK, () =\u003e {\n      this._onClicked.fire();\n    }));\n  }\n  get button() {\n    return this._button;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerStrip.js\ninit_dom();\ninit_color();\ninit_event();\ninit_lifecycle();\nvar $8 = $;\nvar Strip = class extends Disposable {\n  constructor(container, model, type) {\n    super();\n    this.model = model;\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n    this._onColorFlushed = new Emitter();\n    this.onColorFlushed = this._onColorFlushed.event;\n    if (type === \"standalone\") {\n      this.domNode = append(container, $8(\".standalone-strip\"));\n      this.overlay = append(this.domNode, $8(\".standalone-overlay\"));\n    } else {\n      this.domNode = append(container, $8(\".strip\"));\n      this.overlay = append(this.domNode, $8(\".overlay\"));\n    }\n    this.slider = append(this.domNode, $8(\".slider\"));\n    this.slider.style.top = `0px`;\n    this._register(addDisposableListener(this.domNode, EventType.POINTER_DOWN, (e) =\u003e this.onPointerDown(e)));\n    this._register(model.onDidChangeColor(this.onDidChangeColor, this));\n    this.layout();\n  }\n  layout() {\n    this.height = this.domNode.offsetHeight - this.slider.offsetHeight;\n    const value = this.getValue(this.model.color);\n    this.updateSliderPosition(value);\n  }\n  onDidChangeColor(color) {\n    const value = this.getValue(color);\n    this.updateSliderPosition(value);\n  }\n  onPointerDown(e) {\n    if (!e.target || !(e.target instanceof Element)) {\n      return;\n    }\n    const monitor = this._register(new GlobalPointerMoveMonitor());\n    const origin = getDomNodePagePosition(this.domNode);\n    this.domNode.classList.add(\"grabbing\");\n    if (e.target !== this.slider) {\n      this.onDidChangeTop(e.offsetY);\n    }\n    monitor.startMonitoring(e.target, e.pointerId, e.buttons, (event) =\u003e this.onDidChangeTop(event.pageY - origin.top), () =\u003e null);\n    const pointerUpListener = addDisposableListener(e.target.ownerDocument, EventType.POINTER_UP, () =\u003e {\n      this._onColorFlushed.fire();\n      pointerUpListener.dispose();\n      monitor.stopMonitoring(true);\n      this.domNode.classList.remove(\"grabbing\");\n    }, true);\n  }\n  onDidChangeTop(top) {\n    const value = Math.max(0, Math.min(1, 1 - top / this.height));\n    this.updateSliderPosition(value);\n    this._onDidChange.fire(value);\n  }\n  updateSliderPosition(value) {\n    this.slider.style.top = `${(1 - value) * this.height}px`;\n  }\n};\nvar OpacityStrip = class extends Strip {\n  constructor(container, model, type) {\n    super(container, model, type);\n    this.domNode.classList.add(\"opacity-strip\");\n    this.onDidChangeColor(this.model.color);\n  }\n  onDidChangeColor(color) {\n    super.onDidChangeColor(color);\n    const { r, g, b } = color.rgba;\n    const opaque = new Color(new RGBA(r, g, b, 1));\n    const transparent2 = new Color(new RGBA(r, g, b, 0));\n    this.overlay.style.background = `linear-gradient(to bottom, ${opaque} 0%, ${transparent2} 100%)`;\n  }\n  getValue(color) {\n    return color.hsva.a;\n  }\n};\nvar HueStrip = class extends Strip {\n  constructor(container, model, type) {\n    super(container, model, type);\n    this.domNode.classList.add(\"hue-strip\");\n  }\n  getValue(color) {\n    return 1 - color.hsva.h / 360;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerBody.js\nvar $9 = $;\nvar ColorPickerBody = class extends Disposable {\n  constructor(container, model, pixelRatio, type) {\n    super();\n    this.model = model;\n    this.pixelRatio = pixelRatio;\n    this._insertButton = null;\n    this._domNode = $9(\".colorpicker-body\");\n    append(container, this._domNode);\n    this._saturationBox = new SaturationBox(this._domNode, this.model, this.pixelRatio);\n    this._register(this._saturationBox);\n    this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange, this));\n    this._register(this._saturationBox.onColorFlushed(this.flushColor, this));\n    this._opacityStrip = new OpacityStrip(this._domNode, this.model, type);\n    this._register(this._opacityStrip);\n    this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange, this));\n    this._register(this._opacityStrip.onColorFlushed(this.flushColor, this));\n    this._hueStrip = new HueStrip(this._domNode, this.model, type);\n    this._register(this._hueStrip);\n    this._register(this._hueStrip.onDidChange(this.onDidHueChange, this));\n    this._register(this._hueStrip.onColorFlushed(this.flushColor, this));\n    if (type === \"standalone\") {\n      this._insertButton = this._register(new InsertButton(this._domNode));\n      this._domNode.classList.add(\"standalone-colorpicker\");\n    }\n  }\n  flushColor() {\n    this.model.flushColor();\n  }\n  onDidSaturationValueChange({ s, v }) {\n    const hsva = this.model.color.hsva;\n    this.model.color = new Color(new HSVA(hsva.h, s, v, hsva.a));\n  }\n  onDidOpacityChange(a) {\n    const hsva = this.model.color.hsva;\n    this.model.color = new Color(new HSVA(hsva.h, hsva.s, hsva.v, a));\n  }\n  onDidHueChange(value) {\n    const hsva = this.model.color.hsva;\n    const h2 = (1 - value) * 360;\n    this.model.color = new Color(new HSVA(h2 === 360 ? 0 : h2, hsva.s, hsva.v, hsva.a));\n  }\n  get domNode() {\n    return this._domNode;\n  }\n  get saturationBox() {\n    return this._saturationBox;\n  }\n  get enterButton() {\n    return this._insertButton;\n  }\n  layout() {\n    this._saturationBox.layout();\n    this._opacityStrip.layout();\n    this._hueStrip.layout();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js\ninit_dom();\ninit_color();\ninit_lifecycle();\ninit_nls();\ninit_colorRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerCloseButton.js\ninit_dom();\ninit_lifecycle();\ninit_nls();\ninit_event();\ninit_themables();\ninit_codicons();\nvar $10 = $;\nvar CloseButton = class extends Disposable {\n  constructor(container) {\n    super();\n    this._onClicked = this._register(new Emitter());\n    this.onClicked = this._onClicked.event;\n    this._button = document.createElement(\"div\");\n    this._button.classList.add(\"close-button\");\n    append(container, this._button);\n    const innerDiv = document.createElement(\"div\");\n    innerDiv.classList.add(\"close-button-inner-div\");\n    append(this._button, innerDiv);\n    const closeButton = append(innerDiv, $10(\".button\" + ThemeIcon.asCSSSelector(registerIcon(\"color-picker-close\", Codicon.close, localize(878, \"Icon to close the color picker\")))));\n    closeButton.classList.add(\"close-icon\");\n    this._register(addDisposableListener(this._button, EventType.CLICK, () =\u003e {\n      this._onClicked.fire();\n    }));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParts/colorPickerHeader.js\nvar $11 = $;\nvar ColorPickerHeader = class extends Disposable {\n  constructor(container, model, themeService, type) {\n    super();\n    this.model = model;\n    this.type = type;\n    this._closeButton = null;\n    this._domNode = $11(\".colorpicker-header\");\n    append(container, this._domNode);\n    this._pickedColorNode = append(this._domNode, $11(\".picked-color\"));\n    append(this._pickedColorNode, $11(\"span.codicon.codicon-color-mode\"));\n    this._pickedColorPresentation = append(this._pickedColorNode, document.createElement(\"span\"));\n    this._pickedColorPresentation.classList.add(\"picked-color-presentation\");\n    const tooltip = localize(879, \"Click to toggle color options (rgb/hsl/hex)\");\n    this._pickedColorNode.setAttribute(\"title\", tooltip);\n    this._originalColorNode = append(this._domNode, $11(\".original-color\"));\n    this._originalColorNode.style.backgroundColor = Color.Format.CSS.format(this.model.originalColor) || \"\";\n    this.backgroundColor = themeService.getColorTheme().getColor(editorHoverBackground) || Color.white;\n    this._register(themeService.onDidColorThemeChange((theme) =\u003e {\n      this.backgroundColor = theme.getColor(editorHoverBackground) || Color.white;\n    }));\n    this._register(addDisposableListener(this._pickedColorNode, EventType.CLICK, () =\u003e this.model.selectNextColorPresentation()));\n    this._register(addDisposableListener(this._originalColorNode, EventType.CLICK, () =\u003e {\n      this.model.color = this.model.originalColor;\n      this.model.flushColor();\n    }));\n    this._register(model.onDidChangeColor(this.onDidChangeColor, this));\n    this._register(model.onDidChangePresentation(this.onDidChangePresentation, this));\n    this._pickedColorNode.style.backgroundColor = Color.Format.CSS.format(model.color) || \"\";\n    this._pickedColorNode.classList.toggle(\"light\", model.color.rgba.a \u003c 0.5 ? this.backgroundColor.isLighter() : model.color.isLighter());\n    this.onDidChangeColor(this.model.color);\n    if (this.type === \"standalone\") {\n      this._domNode.classList.add(\"standalone-colorpicker\");\n      this._closeButton = this._register(new CloseButton(this._domNode));\n    }\n  }\n  get closeButton() {\n    return this._closeButton;\n  }\n  get pickedColorNode() {\n    return this._pickedColorNode;\n  }\n  get originalColorNode() {\n    return this._originalColorNode;\n  }\n  onDidChangeColor(color) {\n    this._pickedColorNode.style.backgroundColor = Color.Format.CSS.format(color) || \"\";\n    this._pickedColorNode.classList.toggle(\"light\", color.rgba.a \u003c 0.5 ? this.backgroundColor.isLighter() : color.isLighter());\n    this.onDidChangePresentation();\n  }\n  onDidChangePresentation() {\n    this._pickedColorPresentation.textContent = this.model.presentation ? this.model.presentation.label : \"\";\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js\nvar $12 = $;\nvar ColorPickerWidget = class extends Widget {\n  constructor(container, model, pixelRatio, themeService, type) {\n    super();\n    this.model = model;\n    this.pixelRatio = pixelRatio;\n    this._register(PixelRatio.getInstance(getWindow(container)).onDidChange(() =\u003e this.layout()));\n    this._domNode = $12(\".colorpicker-widget\");\n    container.appendChild(this._domNode);\n    this.header = this._register(new ColorPickerHeader(this._domNode, this.model, themeService, type));\n    this.body = this._register(new ColorPickerBody(this._domNode, this.model, this.pixelRatio, type));\n  }\n  layout() {\n    this.body.layout();\n  }\n  get domNode() {\n    return this._domNode;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParticipantUtils.js\ninit_cancellation();\ninit_color();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerModel.js\ninit_event();\nvar ColorPickerModel = class {\n  get color() {\n    return this._color;\n  }\n  set color(color) {\n    if (this._color.equals(color)) {\n      return;\n    }\n    this._color = color;\n    this._onDidChangeColor.fire(color);\n  }\n  get presentation() {\n    return this.colorPresentations[this.presentationIndex];\n  }\n  get colorPresentations() {\n    return this._colorPresentations;\n  }\n  set colorPresentations(colorPresentations) {\n    this._colorPresentations = colorPresentations;\n    if (this.presentationIndex \u003e colorPresentations.length - 1) {\n      this.presentationIndex = 0;\n    }\n    this._onDidChangePresentation.fire(this.presentation);\n  }\n  constructor(color, availableColorPresentations, presentationIndex) {\n    this.presentationIndex = presentationIndex;\n    this._onColorFlushed = new Emitter();\n    this.onColorFlushed = this._onColorFlushed.event;\n    this._onDidChangeColor = new Emitter();\n    this.onDidChangeColor = this._onDidChangeColor.event;\n    this._onDidChangePresentation = new Emitter();\n    this.onDidChangePresentation = this._onDidChangePresentation.event;\n    this.originalColor = color;\n    this._color = color;\n    this._colorPresentations = availableColorPresentations;\n  }\n  selectNextColorPresentation() {\n    this.presentationIndex = (this.presentationIndex + 1) % this.colorPresentations.length;\n    this.flushColor();\n    this._onDidChangePresentation.fire(this.presentation);\n  }\n  guessColorPresentation(color, originalText) {\n    let presentationIndex = -1;\n    for (let i2 = 0; i2 \u003c this.colorPresentations.length; i2++) {\n      if (originalText.toLowerCase() === this.colorPresentations[i2].label) {\n        presentationIndex = i2;\n        break;\n      }\n    }\n    if (presentationIndex === -1) {\n      const originalTextPrefix = originalText.split(\"(\")[0].toLowerCase();\n      for (let i2 = 0; i2 \u003c this.colorPresentations.length; i2++) {\n        if (this.colorPresentations[i2].label.toLowerCase().startsWith(originalTextPrefix)) {\n          presentationIndex = i2;\n          break;\n        }\n      }\n    }\n    if (presentationIndex !== -1 \u0026\u0026 presentationIndex !== this.presentationIndex) {\n      this.presentationIndex = presentationIndex;\n      this._onDidChangePresentation.fire(this.presentation);\n    }\n  }\n  flushColor() {\n    this._onColorFlushed.fire(this._color);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerParticipantUtils.js\ninit_range();\nasync function createColorHover(editorModel, colorInfo, provider) {\n  const originalText = editorModel.getValueInRange(colorInfo.range);\n  const { red, green, blue, alpha } = colorInfo.color;\n  const rgba = new RGBA(Math.round(red * 255), Math.round(green * 255), Math.round(blue * 255), alpha);\n  const color = new Color(rgba);\n  const colorPresentations = await getColorPresentations(editorModel, colorInfo, provider, CancellationToken.None);\n  const model = new ColorPickerModel(color, [], 0);\n  model.colorPresentations = colorPresentations || [];\n  model.guessColorPresentation(color, originalText);\n  return {\n    range: Range.lift(colorInfo.range),\n    model,\n    provider\n  };\n}\nfunction updateEditorModel(editor2, range2, model) {\n  const textEdits = [];\n  const edit2 = model.presentation.textEdit ?? { range: range2, text: model.presentation.label, forceMoveMarkers: false };\n  textEdits.push(edit2);\n  if (model.presentation.additionalTextEdits) {\n    textEdits.push(...model.presentation.additionalTextEdits);\n  }\n  const replaceRange = Range.lift(edit2.range);\n  const trackedRange = editor2.getModel()._setTrackedRange(\n    null,\n    replaceRange,\n    3\n    /* TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */\n  );\n  editor2.executeEdits(\"colorpicker\", textEdits);\n  editor2.pushUndoStop();\n  return editor2.getModel()._getTrackedRange(trackedRange) ?? replaceRange;\n}\nasync function updateColorPresentations(editorModel, colorPickerModel, color, range2, colorHover) {\n  const colorPresentations = await getColorPresentations(editorModel, {\n    range: range2,\n    color: {\n      red: color.rgba.r / 255,\n      green: color.rgba.g / 255,\n      blue: color.rgba.b / 255,\n      alpha: color.rgba.a\n    }\n  }, colorHover.provider, CancellationToken.None);\n  colorPickerModel.colorPresentations = colorPresentations || [];\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerParticipant.js\ninit_dom();\ninit_lifecycle();\nvar __decorate65 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param60 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ColorHover = class _ColorHover {\n  constructor(owner, range2, model, provider) {\n    this.owner = owner;\n    this.range = range2;\n    this.model = model;\n    this.provider = provider;\n    this.forceShowAtRange = true;\n  }\n  isValidForHoverAnchor(anchor) {\n    return anchor.type === 1 \u0026\u0026 this.range.startColumn \u003c= anchor.range.startColumn \u0026\u0026 this.range.endColumn \u003e= anchor.range.endColumn;\n  }\n  static fromBaseColor(owner, color) {\n    return new _ColorHover(owner, color.range, color.model, color.provider);\n  }\n};\nvar HoverColorPickerParticipant = class HoverColorPickerParticipant2 {\n  constructor(_editor, _themeService) {\n    this._editor = _editor;\n    this._themeService = _themeService;\n    this.hoverOrdinal = 2;\n  }\n  computeSync(_anchor, _lineDecorations, source) {\n    return [];\n  }\n  computeAsync(anchor, lineDecorations, source, token) {\n    return AsyncIterableProducer.fromPromise(this._computeAsync(anchor, lineDecorations, source));\n  }\n  async _computeAsync(_anchor, lineDecorations, source) {\n    if (!this._editor.hasModel()) {\n      return [];\n    }\n    if (!this._isValidRequest(source)) {\n      return [];\n    }\n    const colorDetector = ColorDetector.get(this._editor);\n    if (!colorDetector) {\n      return [];\n    }\n    for (const d of lineDecorations) {\n      if (!colorDetector.isColorDecoration(d)) {\n        continue;\n      }\n      const colorData = colorDetector.getColorData(d.range.getStartPosition());\n      if (colorData) {\n        const colorHover = ColorHover.fromBaseColor(this, await createColorHover(this._editor.getModel(), colorData.colorInfo, colorData.provider));\n        return [colorHover];\n      }\n    }\n    return [];\n  }\n  _isValidRequest(source) {\n    const decoratorActivatedOn = this._editor.getOption(\n      167\n      /* EditorOption.colorDecoratorsActivatedOn */\n    );\n    switch (source) {\n      case 0:\n        return decoratorActivatedOn === \"hover\" || decoratorActivatedOn === \"clickAndHover\";\n      case 1:\n        return decoratorActivatedOn === \"click\" || decoratorActivatedOn === \"clickAndHover\";\n      case 2:\n        return true;\n    }\n  }\n  renderHoverParts(context, hoverParts) {\n    const editor2 = this._editor;\n    if (hoverParts.length === 0 || !editor2.hasModel()) {\n      return new RenderedHoverParts([]);\n    }\n    const minimumHeight = editor2.getOption(\n      75\n      /* EditorOption.lineHeight */\n    ) + 8;\n    context.setMinimumDimensions(new Dimension(302, minimumHeight));\n    const disposables = new DisposableStore();\n    const colorHover = hoverParts[0];\n    const editorModel = editor2.getModel();\n    const model = colorHover.model;\n    this._colorPicker = disposables.add(new ColorPickerWidget(\n      context.fragment,\n      model,\n      editor2.getOption(\n        162\n        /* EditorOption.pixelRatio */\n      ),\n      this._themeService,\n      \"hover\"\n      /* ColorPickerWidgetType.Hover */\n    ));\n    let editorUpdatedByColorPicker = false;\n    let range2 = new Range(colorHover.range.startLineNumber, colorHover.range.startColumn, colorHover.range.endLineNumber, colorHover.range.endColumn);\n    disposables.add(model.onColorFlushed(async (color) =\u003e {\n      await updateColorPresentations(editorModel, model, color, range2, colorHover);\n      editorUpdatedByColorPicker = true;\n      range2 = updateEditorModel(editor2, range2, model);\n    }));\n    disposables.add(model.onDidChangeColor((color) =\u003e {\n      updateColorPresentations(editorModel, model, color, range2, colorHover);\n    }));\n    disposables.add(editor2.onDidChangeModelContent((e) =\u003e {\n      if (editorUpdatedByColorPicker) {\n        editorUpdatedByColorPicker = false;\n      } else {\n        context.hide();\n        editor2.focus();\n      }\n    }));\n    const renderedHoverPart = {\n      hoverPart: ColorHover.fromBaseColor(this, colorHover),\n      hoverElement: this._colorPicker.domNode,\n      dispose() {\n        disposables.dispose();\n      }\n    };\n    return new RenderedHoverParts([renderedHoverPart]);\n  }\n  handleResize() {\n    this._colorPicker?.layout();\n  }\n  handleContentsChanged() {\n    this._colorPicker?.layout();\n  }\n  handleHide() {\n    this._colorPicker?.dispose();\n    this._colorPicker = void 0;\n  }\n  isColorPickerVisible() {\n    return !!this._colorPicker;\n  }\n};\nHoverColorPickerParticipant = __decorate65([\n  __param60(1, IThemeService)\n], HoverColorPickerParticipant);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js\ninit_async();\ninit_htmlContent();\ninit_position();\ninit_textModel();\ninit_language();\ninit_resolverService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js\ninit_dom();\ninit_arrays();\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_lifecycle();\ninit_map();\ninit_types();\ninit_uri();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/editOperation.js\ninit_range();\nvar EditOperation = class {\n  static insert(position, text2) {\n    return {\n      range: new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n      text: text2,\n      forceMoveMarkers: true\n    };\n  }\n  static delete(range2) {\n    return {\n      range: range2,\n      text: null\n    };\n  }\n  static replace(range2, text2) {\n    return {\n      range: range2,\n      text: text2\n    };\n  }\n  static replaceMove(range2, text2) {\n    return {\n      range: range2,\n      text: text2,\n      forceMoveMarkers: true\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js\ninit_range();\ninit_languages();\ninit_model2();\ninit_textModel();\ninit_languageFeatureDebounce();\ninit_languageFeatures();\ninit_resolverService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js\ninit_event();\ninit_lifecycle();\ninit_platform();\nfunction hasModifier(e, modifier) {\n  return !!e[modifier];\n}\nvar ClickLinkMouseEvent = class {\n  constructor(source, opts) {\n    this.target = source.target;\n    this.isLeftClick = source.event.leftButton;\n    this.isMiddleClick = source.event.middleButton;\n    this.isRightClick = source.event.rightButton;\n    this.hasTriggerModifier = hasModifier(source.event, opts.triggerModifier);\n    this.hasSideBySideModifier = hasModifier(source.event, opts.triggerSideBySideModifier);\n    this.isNoneOrSingleMouseDown = source.event.detail \u003c= 1;\n  }\n};\nvar ClickLinkKeyboardEvent = class {\n  constructor(source, opts) {\n    this.keyCodeIsTriggerKey = source.keyCode === opts.triggerKey;\n    this.keyCodeIsSideBySideKey = source.keyCode === opts.triggerSideBySideKey;\n    this.hasTriggerModifier = hasModifier(source, opts.triggerModifier);\n  }\n};\nvar ClickLinkOptions = class {\n  constructor(triggerKey, triggerModifier, triggerSideBySideKey, triggerSideBySideModifier) {\n    this.triggerKey = triggerKey;\n    this.triggerModifier = triggerModifier;\n    this.triggerSideBySideKey = triggerSideBySideKey;\n    this.triggerSideBySideModifier = triggerSideBySideModifier;\n  }\n  equals(other) {\n    return this.triggerKey === other.triggerKey \u0026\u0026 this.triggerModifier === other.triggerModifier \u0026\u0026 this.triggerSideBySideKey === other.triggerSideBySideKey \u0026\u0026 this.triggerSideBySideModifier === other.triggerSideBySideModifier;\n  }\n};\nfunction createOptions(multiCursorModifier) {\n  if (multiCursorModifier === \"altKey\") {\n    if (isMacintosh) {\n      return new ClickLinkOptions(57, \"metaKey\", 6, \"altKey\");\n    }\n    return new ClickLinkOptions(5, \"ctrlKey\", 6, \"altKey\");\n  }\n  if (isMacintosh) {\n    return new ClickLinkOptions(6, \"altKey\", 57, \"metaKey\");\n  }\n  return new ClickLinkOptions(6, \"altKey\", 5, \"ctrlKey\");\n}\nvar ClickLinkGesture = class extends Disposable {\n  constructor(editor2, opts) {\n    super();\n    this._onMouseMoveOrRelevantKeyDown = this._register(new Emitter());\n    this.onMouseMoveOrRelevantKeyDown = this._onMouseMoveOrRelevantKeyDown.event;\n    this._onExecute = this._register(new Emitter());\n    this.onExecute = this._onExecute.event;\n    this._onCancel = this._register(new Emitter());\n    this.onCancel = this._onCancel.event;\n    this._editor = editor2;\n    this._extractLineNumberFromMouseEvent = opts?.extractLineNumberFromMouseEvent ?? ((e) =\u003e e.target.position ? e.target.position.lineNumber : 0);\n    this._opts = createOptions(this._editor.getOption(\n      86\n      /* EditorOption.multiCursorModifier */\n    ));\n    this._lastMouseMoveEvent = null;\n    this._hasTriggerKeyOnMouseDown = false;\n    this._lineNumberOnMouseDown = 0;\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        86\n        /* EditorOption.multiCursorModifier */\n      )) {\n        const newOpts = createOptions(this._editor.getOption(\n          86\n          /* EditorOption.multiCursorModifier */\n        ));\n        if (this._opts.equals(newOpts)) {\n          return;\n        }\n        this._opts = newOpts;\n        this._lastMouseMoveEvent = null;\n        this._hasTriggerKeyOnMouseDown = false;\n        this._lineNumberOnMouseDown = 0;\n        this._onCancel.fire();\n      }\n    }));\n    this._register(this._editor.onMouseMove((e) =\u003e this._onEditorMouseMove(new ClickLinkMouseEvent(e, this._opts))));\n    this._register(this._editor.onMouseDown((e) =\u003e this._onEditorMouseDown(new ClickLinkMouseEvent(e, this._opts))));\n    this._register(this._editor.onMouseUp((e) =\u003e this._onEditorMouseUp(new ClickLinkMouseEvent(e, this._opts))));\n    this._register(this._editor.onKeyDown((e) =\u003e this._onEditorKeyDown(new ClickLinkKeyboardEvent(e, this._opts))));\n    this._register(this._editor.onKeyUp((e) =\u003e this._onEditorKeyUp(new ClickLinkKeyboardEvent(e, this._opts))));\n    this._register(this._editor.onMouseDrag(() =\u003e this._resetHandler()));\n    this._register(this._editor.onDidChangeCursorSelection((e) =\u003e this._onDidChangeCursorSelection(e)));\n    this._register(this._editor.onDidChangeModel((e) =\u003e this._resetHandler()));\n    this._register(this._editor.onDidChangeModelContent(() =\u003e this._resetHandler()));\n    this._register(this._editor.onDidScrollChange((e) =\u003e {\n      if (e.scrollTopChanged || e.scrollLeftChanged) {\n        this._resetHandler();\n      }\n    }));\n  }\n  _onDidChangeCursorSelection(e) {\n    if (e.selection \u0026\u0026 e.selection.startColumn !== e.selection.endColumn) {\n      this._resetHandler();\n    }\n  }\n  _onEditorMouseMove(mouseEvent) {\n    this._lastMouseMoveEvent = mouseEvent;\n    this._onMouseMoveOrRelevantKeyDown.fire([mouseEvent, null]);\n  }\n  _onEditorMouseDown(mouseEvent) {\n    this._hasTriggerKeyOnMouseDown = mouseEvent.hasTriggerModifier;\n    this._lineNumberOnMouseDown = this._extractLineNumberFromMouseEvent(mouseEvent);\n  }\n  _onEditorMouseUp(mouseEvent) {\n    const currentLineNumber = this._extractLineNumberFromMouseEvent(mouseEvent);\n    if (this._hasTriggerKeyOnMouseDown \u0026\u0026 this._lineNumberOnMouseDown \u0026\u0026 this._lineNumberOnMouseDown === currentLineNumber) {\n      this._onExecute.fire(mouseEvent);\n    }\n  }\n  _onEditorKeyDown(e) {\n    if (this._lastMouseMoveEvent \u0026\u0026 (e.keyCodeIsTriggerKey || e.keyCodeIsSideBySideKey \u0026\u0026 e.hasTriggerModifier)) {\n      this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent, e]);\n    } else if (e.hasTriggerModifier) {\n      this._onCancel.fire();\n    }\n  }\n  _onEditorKeyUp(e) {\n    if (e.keyCodeIsTriggerKey) {\n      this._onCancel.fire();\n    }\n  }\n  _resetHandler() {\n    this._lastMouseMoveEvent = null;\n    this._hasTriggerKeyOnMouseDown = false;\n    this._onCancel.fire();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHints.js\ninit_errors();\ninit_lifecycle();\ninit_position();\ninit_range();\ninit_network();\ninit_uri();\nvar InlayHintAnchor = class {\n  constructor(range2, direction) {\n    this.range = range2;\n    this.direction = direction;\n  }\n};\nvar InlayHintItem = class _InlayHintItem {\n  constructor(hint, anchor, provider) {\n    this.hint = hint;\n    this.anchor = anchor;\n    this.provider = provider;\n    this._isResolved = false;\n  }\n  with(delta) {\n    const result = new _InlayHintItem(this.hint, delta.anchor, this.provider);\n    result._isResolved = this._isResolved;\n    result._currentResolve = this._currentResolve;\n    return result;\n  }\n  async resolve(token) {\n    if (typeof this.provider.resolveInlayHint !== \"function\") {\n      return;\n    }\n    if (this._currentResolve) {\n      await this._currentResolve;\n      if (token.isCancellationRequested) {\n        return;\n      }\n      return this.resolve(token);\n    }\n    if (!this._isResolved) {\n      this._currentResolve = this._doResolve(token).finally(() =\u003e this._currentResolve = void 0);\n    }\n    await this._currentResolve;\n  }\n  async _doResolve(token) {\n    try {\n      const newHint = await Promise.resolve(this.provider.resolveInlayHint(this.hint, token));\n      this.hint.tooltip = newHint?.tooltip ?? this.hint.tooltip;\n      this.hint.label = newHint?.label ?? this.hint.label;\n      this.hint.textEdits = newHint?.textEdits ?? this.hint.textEdits;\n      this._isResolved = true;\n    } catch (err) {\n      onUnexpectedExternalError(err);\n      this._isResolved = false;\n    }\n  }\n};\nvar InlayHintsFragments = class _InlayHintsFragments {\n  static {\n    this._emptyInlayHintList = Object.freeze({ dispose() {\n    }, hints: [] });\n  }\n  static async create(registry, model, ranges, token) {\n    const data = [];\n    const promises = registry.ordered(model).reverse().map((provider) =\u003e ranges.map(async (range2) =\u003e {\n      try {\n        const result = await provider.provideInlayHints(model, range2, token);\n        if (result?.hints.length || provider.onDidChangeInlayHints) {\n          data.push([result ?? _InlayHintsFragments._emptyInlayHintList, provider]);\n        }\n      } catch (err) {\n        onUnexpectedExternalError(err);\n      }\n    }));\n    await Promise.all(promises.flat());\n    if (token.isCancellationRequested || model.isDisposed()) {\n      throw new CancellationError();\n    }\n    return new _InlayHintsFragments(ranges, data, model);\n  }\n  constructor(ranges, data, model) {\n    this._disposables = new DisposableStore();\n    this.ranges = ranges;\n    this.provider = /* @__PURE__ */ new Set();\n    const items = [];\n    for (const [list2, provider] of data) {\n      this._disposables.add(list2);\n      this.provider.add(provider);\n      for (const hint of list2.hints) {\n        const position = model.validatePosition(hint.position);\n        let direction = \"before\";\n        const wordRange = _InlayHintsFragments._getRangeAtPosition(model, position);\n        let range2;\n        if (wordRange.getStartPosition().isBefore(position)) {\n          range2 = Range.fromPositions(wordRange.getStartPosition(), position);\n          direction = \"after\";\n        } else {\n          range2 = Range.fromPositions(position, wordRange.getEndPosition());\n          direction = \"before\";\n        }\n        items.push(new InlayHintItem(hint, new InlayHintAnchor(range2, direction), provider));\n      }\n    }\n    this.items = items.sort((a, b) =\u003e Position.compare(a.hint.position, b.hint.position));\n  }\n  dispose() {\n    this._disposables.dispose();\n  }\n  static _getRangeAtPosition(model, position) {\n    const line = position.lineNumber;\n    const word = model.getWordAtPosition(position);\n    if (word) {\n      return new Range(line, word.startColumn, line, word.endColumn);\n    }\n    model.tokenization.tokenizeIfCheap(line);\n    const tokens = model.tokenization.getLineTokens(line);\n    const offset = position.column - 1;\n    const idx = tokens.findTokenIndexAtOffset(offset);\n    let start = tokens.getStartOffset(idx);\n    let end = tokens.getEndOffset(idx);\n    if (end - start === 1) {\n      if (start === offset \u0026\u0026 idx \u003e 1) {\n        start = tokens.getStartOffset(idx - 1);\n        end = tokens.getEndOffset(idx - 1);\n      } else if (end === offset \u0026\u0026 idx \u003c tokens.getCount() - 1) {\n        start = tokens.getStartOffset(idx + 1);\n        end = tokens.getEndOffset(idx + 1);\n      }\n    }\n    return new Range(line, start + 1, line, end + 1);\n  }\n};\nfunction asCommandLink(command) {\n  return URI.from({\n    scheme: Schemas.command,\n    path: command.id,\n    query: command.arguments \u0026\u0026 encodeURIComponent(JSON.stringify(command.arguments))\n  }).toString();\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js\ninit_dom();\ninit_actions();\ninit_cancellation();\ninit_uuid();\ninit_range();\ninit_resolverService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js\ninit_async();\ninit_keyCodes();\ninit_types();\ninit_uri();\ninit_editorState();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/editorBrowser.js\nfunction isCodeEditor(thing) {\n  if (thing \u0026\u0026 typeof thing.getEditorType === \"function\") {\n    return thing.getEditorType() === EditorType.ICodeEditor;\n  } else {\n    return false;\n  }\n}\nfunction isDiffEditor(thing) {\n  if (thing \u0026\u0026 typeof thing.getEditorType === \"function\") {\n    return thing.getEditorType() === EditorType.IDiffEditor;\n  } else {\n    return false;\n  }\n}\nfunction isCompositeEditor(thing) {\n  return !!thing \u0026\u0026 typeof thing === \"object\" \u0026\u0026 typeof thing.onDidChangeActiveEditor === \"function\";\n}\nfunction getCodeEditor(thing) {\n  if (isCodeEditor(thing)) {\n    return thing;\n  }\n  if (isDiffEditor(thing)) {\n    return thing.getModifiedEditor();\n  }\n  if (isCompositeEditor(thing) \u0026\u0026 isCodeEditor(thing.activeCodeEditor)) {\n    return thing.activeCodeEditor;\n  }\n  return null;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js\ninit_editorExtensions();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/codeEditor/embeddedCodeEditorWidget.js\ninit_objects();\ninit_codeEditorService();\ninit_languageConfigurationRegistry();\ninit_languageFeatures();\ninit_commands();\ninit_contextkey();\ninit_instantiation();\ninit_themeService();\nvar __decorate66 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param61 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar EmbeddedCodeEditorWidget = class EmbeddedCodeEditorWidget2 extends CodeEditorWidget {\n  constructor(domElement, options2, codeEditorWidgetOptions, parentEditor, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {\n    super(domElement, { ...parentEditor.getRawOptions(), overflowWidgetsDomNode: parentEditor.getOverflowWidgetsDomNode() }, codeEditorWidgetOptions, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n    this._parentEditor = parentEditor;\n    this._overwriteOptions = options2;\n    super.updateOptions(this._overwriteOptions);\n    this._register(parentEditor.onDidChangeConfiguration((e) =\u003e this._onParentConfigurationChanged(e)));\n  }\n  getParentEditor() {\n    return this._parentEditor;\n  }\n  _onParentConfigurationChanged(e) {\n    super.updateOptions(this._parentEditor.getRawOptions());\n    super.updateOptions(this._overwriteOptions);\n  }\n  updateOptions(newOptions) {\n    mixin(this._overwriteOptions, newOptions, true);\n    super.updateOptions(this._overwriteOptions);\n  }\n};\nEmbeddedCodeEditorWidget = __decorate66([\n  __param61(4, IInstantiationService),\n  __param61(5, ICodeEditorService),\n  __param61(6, ICommandService),\n  __param61(7, IContextKeyService),\n  __param61(8, IThemeService),\n  __param61(9, INotificationService),\n  __param61(10, IAccessibilityService),\n  __param61(11, ILanguageConfigurationService),\n  __param61(12, ILanguageFeaturesService)\n], EmbeddedCodeEditorWidget);\nfunction getOuterEditor(accessor) {\n  const editor2 = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n  if (editor2 instanceof EmbeddedCodeEditorWidget) {\n    return editor2.getParentEditor();\n  }\n  return editor2;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js\ninit_position();\ninit_range();\ninit_editorContextKeys();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js\ninit_async();\ninit_errors();\ninit_keyCodes();\ninit_lifecycle();\ninit_codeEditorService();\ninit_position();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/peekView/browser/peekView.js\ninit_dom();\ninit_actions();\ninit_codicons();\ninit_themables();\ninit_color();\ninit_event();\ninit_objects();\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/zoneWidget/browser/zoneWidget.js\ninit_color();\ninit_lifecycle();\ninit_objects();\ninit_range();\ninit_textModel();\nvar defaultColor = new Color(new RGBA(0, 122, 204));\nvar defaultOptions = {\n  showArrow: true,\n  showFrame: true,\n  className: \"\",\n  frameColor: defaultColor,\n  arrowColor: defaultColor,\n  keepEditorSelection: false\n};\nvar WIDGET_ID = \"vs.editor.contrib.zoneWidget\";\nvar ViewZoneDelegate = class {\n  constructor(domNode, afterLineNumber, afterColumn, heightInLines, onDomNodeTop, onComputedHeight, showInHiddenAreas, ordinal) {\n    this.id = \"\";\n    this.domNode = domNode;\n    this.afterLineNumber = afterLineNumber;\n    this.afterColumn = afterColumn;\n    this.heightInLines = heightInLines;\n    this.showInHiddenAreas = showInHiddenAreas;\n    this.ordinal = ordinal;\n    this._onDomNodeTop = onDomNodeTop;\n    this._onComputedHeight = onComputedHeight;\n  }\n  onDomNodeTop(top) {\n    this._onDomNodeTop(top);\n  }\n  onComputedHeight(height) {\n    this._onComputedHeight(height);\n  }\n};\nvar OverlayWidgetDelegate = class {\n  constructor(id, domNode) {\n    this._id = id;\n    this._domNode = domNode;\n  }\n  getId() {\n    return this._id;\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  getPosition() {\n    return null;\n  }\n};\nvar Arrow = class _Arrow {\n  static {\n    this._IdGenerator = new IdGenerator(\".arrow-decoration-\");\n  }\n  constructor(_editor) {\n    this._editor = _editor;\n    this._ruleName = _Arrow._IdGenerator.nextId();\n    this._color = null;\n    this._height = -1;\n    this._decorations = this._editor.createDecorationsCollection();\n  }\n  dispose() {\n    this.hide();\n    removeCSSRulesContainingSelector(this._ruleName);\n  }\n  set color(value) {\n    if (this._color !== value) {\n      this._color = value;\n      this._updateStyle();\n    }\n  }\n  set height(value) {\n    if (this._height !== value) {\n      this._height = value;\n      this._updateStyle();\n    }\n  }\n  _updateStyle() {\n    removeCSSRulesContainingSelector(this._ruleName);\n    createCSSRule(`.monaco-editor ${this._ruleName}`, `border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `);\n  }\n  show(where) {\n    if (where.column === 1) {\n      where = { lineNumber: where.lineNumber, column: 2 };\n    }\n    this._decorations.set([{\n      range: Range.fromPositions(where),\n      options: {\n        description: \"zone-widget-arrow\",\n        className: this._ruleName,\n        stickiness: 1\n        /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n      }\n    }]);\n  }\n  hide() {\n    this._decorations.clear();\n  }\n};\nvar ZoneWidget = class {\n  constructor(editor2, options2 = {}) {\n    this._arrow = null;\n    this._overlayWidget = null;\n    this._resizeSash = null;\n    this._isSashResizeHeight = false;\n    this._viewZone = null;\n    this._disposables = new DisposableStore();\n    this.container = null;\n    this._isShowing = false;\n    this.editor = editor2;\n    this._positionMarkerId = this.editor.createDecorationsCollection();\n    this.options = deepClone(options2);\n    mixin(this.options, defaultOptions, false);\n    this.domNode = document.createElement(\"div\");\n    if (!this.options.isAccessible) {\n      this.domNode.setAttribute(\"aria-hidden\", \"true\");\n      this.domNode.setAttribute(\"role\", \"presentation\");\n    }\n    this._disposables.add(this.editor.onDidLayoutChange((info) =\u003e {\n      const width2 = this._getWidth(info);\n      this.domNode.style.width = width2 + \"px\";\n      this.domNode.style.left = this._getLeft(info) + \"px\";\n      this._onWidth(width2);\n    }));\n  }\n  dispose() {\n    if (this._overlayWidget) {\n      this.editor.removeOverlayWidget(this._overlayWidget);\n      this._overlayWidget = null;\n    }\n    if (this._viewZone) {\n      this.editor.changeViewZones((accessor) =\u003e {\n        if (this._viewZone) {\n          accessor.removeZone(this._viewZone.id);\n        }\n        this._viewZone = null;\n      });\n    }\n    this._positionMarkerId.clear();\n    this._disposables.dispose();\n  }\n  create() {\n    this.domNode.classList.add(\"zone-widget\");\n    if (this.options.className) {\n      this.domNode.classList.add(this.options.className);\n    }\n    this.container = document.createElement(\"div\");\n    this.container.classList.add(\"zone-widget-container\");\n    this.domNode.appendChild(this.container);\n    if (this.options.showArrow) {\n      this._arrow = new Arrow(this.editor);\n      this._disposables.add(this._arrow);\n    }\n    this._fillContainer(this.container);\n    this._initSash();\n    this._applyStyles();\n  }\n  style(styles) {\n    if (styles.frameColor) {\n      this.options.frameColor = styles.frameColor;\n    }\n    if (styles.arrowColor) {\n      this.options.arrowColor = styles.arrowColor;\n    }\n    this._applyStyles();\n  }\n  _applyStyles() {\n    if (this.container \u0026\u0026 this.options.frameColor) {\n      const frameColor = this.options.frameColor.toString();\n      this.container.style.borderTopColor = frameColor;\n      this.container.style.borderBottomColor = frameColor;\n    }\n    if (this._arrow \u0026\u0026 this.options.arrowColor) {\n      const arrowColor = this.options.arrowColor.toString();\n      this._arrow.color = arrowColor;\n    }\n  }\n  _getWidth(info) {\n    return info.width - info.minimap.minimapWidth - info.verticalScrollbarWidth;\n  }\n  _getLeft(info) {\n    if (info.minimap.minimapWidth \u003e 0 \u0026\u0026 info.minimap.minimapLeft === 0) {\n      return info.minimap.minimapWidth;\n    }\n    return 0;\n  }\n  _onViewZoneTop(top) {\n    this.domNode.style.top = top + \"px\";\n  }\n  _onViewZoneHeight(height) {\n    this.domNode.style.height = `${height}px`;\n    if (this.container) {\n      const containerHeight = height - this._decoratingElementsHeight();\n      this.container.style.height = `${containerHeight}px`;\n      const layoutInfo = this.editor.getLayoutInfo();\n      this._doLayout(containerHeight, this._getWidth(layoutInfo));\n    }\n    this._resizeSash?.layout();\n  }\n  get position() {\n    const range2 = this._positionMarkerId.getRange(0);\n    if (!range2) {\n      return void 0;\n    }\n    return range2.getStartPosition();\n  }\n  show(rangeOrPos, heightInLines) {\n    const range2 = Range.isIRange(rangeOrPos) ? Range.lift(rangeOrPos) : Range.fromPositions(rangeOrPos);\n    this._isShowing = true;\n    this._showImpl(range2, heightInLines);\n    this._isShowing = false;\n    this._positionMarkerId.set([{ range: range2, options: ModelDecorationOptions.EMPTY }]);\n  }\n  hide() {\n    if (this._viewZone) {\n      this.editor.changeViewZones((accessor) =\u003e {\n        if (this._viewZone) {\n          accessor.removeZone(this._viewZone.id);\n        }\n      });\n      this._viewZone = null;\n    }\n    if (this._overlayWidget) {\n      this.editor.removeOverlayWidget(this._overlayWidget);\n      this._overlayWidget = null;\n    }\n    this._arrow?.hide();\n    this._positionMarkerId.clear();\n    this._isSashResizeHeight = false;\n  }\n  _decoratingElementsHeight() {\n    const lineHeight = this.editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    );\n    let result = 0;\n    if (this.options.showArrow) {\n      const arrowHeight = Math.round(lineHeight / 3);\n      result += 2 * arrowHeight;\n    }\n    if (this.options.showFrame) {\n      const frameThickness = this.options.frameWidth ?? Math.round(lineHeight / 9);\n      result += 2 * frameThickness;\n    }\n    return result;\n  }\n  /** Gets the maximum widget height in lines. */\n  _getMaximumHeightInLines() {\n    return Math.max(12, this.editor.getLayoutInfo().height / this.editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    ) * 0.8);\n  }\n  _showImpl(where, heightInLines) {\n    const position = where.getStartPosition();\n    const layoutInfo = this.editor.getLayoutInfo();\n    const width2 = this._getWidth(layoutInfo);\n    this.domNode.style.width = `${width2}px`;\n    this.domNode.style.left = this._getLeft(layoutInfo) + \"px\";\n    const viewZoneDomNode = document.createElement(\"div\");\n    viewZoneDomNode.style.overflow = \"hidden\";\n    const lineHeight = this.editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const maxHeightInLines = this._getMaximumHeightInLines();\n    if (maxHeightInLines !== void 0) {\n      heightInLines = Math.min(heightInLines, maxHeightInLines);\n    }\n    let arrowHeight = 0;\n    let frameThickness = 0;\n    if (this._arrow \u0026\u0026 this.options.showArrow) {\n      arrowHeight = Math.round(lineHeight / 3);\n      this._arrow.height = arrowHeight;\n      this._arrow.show(position);\n    }\n    if (this.options.showFrame) {\n      frameThickness = Math.round(lineHeight / 9);\n    }\n    this.editor.changeViewZones((accessor) =\u003e {\n      if (this._viewZone) {\n        accessor.removeZone(this._viewZone.id);\n      }\n      if (this._overlayWidget) {\n        this.editor.removeOverlayWidget(this._overlayWidget);\n        this._overlayWidget = null;\n      }\n      this.domNode.style.top = \"-1000px\";\n      this._viewZone = new ViewZoneDelegate(viewZoneDomNode, position.lineNumber, position.column, heightInLines, (top) =\u003e this._onViewZoneTop(top), (height) =\u003e this._onViewZoneHeight(height), this.options.showInHiddenAreas, this.options.ordinal);\n      this._viewZone.id = accessor.addZone(this._viewZone);\n      this._overlayWidget = new OverlayWidgetDelegate(WIDGET_ID + this._viewZone.id, this.domNode);\n      this.editor.addOverlayWidget(this._overlayWidget);\n    });\n    this._updateSashEnablement();\n    if (this.container \u0026\u0026 this.options.showFrame) {\n      const width3 = this.options.frameWidth ? this.options.frameWidth : frameThickness;\n      this.container.style.borderTopWidth = width3 + \"px\";\n      this.container.style.borderBottomWidth = width3 + \"px\";\n    }\n    const containerHeight = heightInLines * lineHeight - this._decoratingElementsHeight();\n    if (this.container) {\n      this.container.style.top = arrowHeight + \"px\";\n      this.container.style.height = containerHeight + \"px\";\n      this.container.style.overflow = \"hidden\";\n    }\n    this._doLayout(containerHeight, width2);\n    if (!this.options.keepEditorSelection) {\n      this.editor.setSelection(where);\n    }\n    const model = this.editor.getModel();\n    if (model) {\n      const range2 = model.validateRange(new Range(where.startLineNumber, 1, where.endLineNumber + 1, 1));\n      this.revealRange(range2, range2.startLineNumber === model.getLineCount());\n    }\n  }\n  revealRange(range2, isLastLine) {\n    if (isLastLine) {\n      this.editor.revealLineNearTop(\n        range2.endLineNumber,\n        0\n        /* ScrollType.Smooth */\n      );\n    } else {\n      this.editor.revealRange(\n        range2,\n        0\n        /* ScrollType.Smooth */\n      );\n    }\n  }\n  setCssClass(className2, classToReplace) {\n    if (!this.container) {\n      return;\n    }\n    if (classToReplace) {\n      this.container.classList.remove(classToReplace);\n    }\n    this.container.classList.add(className2);\n  }\n  _onWidth(widthInPixel) {\n  }\n  _doLayout(heightInPixel, widthInPixel) {\n  }\n  _relayout(_newHeightInLines, useMax) {\n    const maxHeightInLines = this._getMaximumHeightInLines();\n    const newHeightInLines = useMax \u0026\u0026 maxHeightInLines !== void 0 ? Math.min(maxHeightInLines, _newHeightInLines) : _newHeightInLines;\n    if (this._viewZone \u0026\u0026 this._viewZone.heightInLines !== newHeightInLines) {\n      this.editor.changeViewZones((accessor) =\u003e {\n        if (this._viewZone) {\n          this._viewZone.heightInLines = newHeightInLines;\n          accessor.layoutZone(this._viewZone.id);\n        }\n      });\n      this._updateSashEnablement();\n    }\n  }\n  // --- sash\n  _initSash() {\n    if (this._resizeSash) {\n      return;\n    }\n    this._resizeSash = this._disposables.add(new Sash(this.domNode, this, {\n      orientation: 1\n      /* Orientation.HORIZONTAL */\n    }));\n    if (!this.options.isResizeable) {\n      this._resizeSash.state = 0;\n    }\n    let data;\n    this._disposables.add(this._resizeSash.onDidStart((e) =\u003e {\n      if (this._viewZone) {\n        data = {\n          startY: e.startY,\n          heightInLines: this._viewZone.heightInLines,\n          ...this._getResizeBounds()\n        };\n      }\n    }));\n    this._disposables.add(this._resizeSash.onDidEnd(() =\u003e {\n      data = void 0;\n    }));\n    this._disposables.add(this._resizeSash.onDidChange((evt) =\u003e {\n      if (data) {\n        const lineDelta = (evt.currentY - data.startY) / this.editor.getOption(\n          75\n          /* EditorOption.lineHeight */\n        );\n        const roundedLineDelta = lineDelta \u003c 0 ? Math.ceil(lineDelta) : Math.floor(lineDelta);\n        const newHeightInLines = data.heightInLines + roundedLineDelta;\n        if (newHeightInLines \u003e data.minLines \u0026\u0026 newHeightInLines \u003c data.maxLines) {\n          this._isSashResizeHeight = true;\n          this._relayout(newHeightInLines);\n        }\n      }\n    }));\n  }\n  _updateSashEnablement() {\n    if (this._resizeSash) {\n      const { minLines, maxLines } = this._getResizeBounds();\n      this._resizeSash.state = minLines === maxLines ? 0 : 3;\n    }\n  }\n  _getResizeBounds() {\n    return { minLines: 5, maxLines: 35 };\n  }\n  getHorizontalSashLeft() {\n    return 0;\n  }\n  getHorizontalSashTop() {\n    return (this.domNode.style.height === null ? 0 : parseInt(this.domNode.style.height)) - this._decoratingElementsHeight() / 2;\n  }\n  getHorizontalSashWidth() {\n    const layoutInfo = this.editor.getLayoutInfo();\n    return layoutInfo.width - layoutInfo.minimap.minimapWidth;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/peekView/browser/peekView.js\ninit_nls();\ninit_contextkey();\ninit_extensions();\ninit_instantiation();\ninit_colorRegistry();\ninit_observableCodeEditor();\nvar __decorate67 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param62 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar IPeekViewService = createDecorator(\"IPeekViewService\");\nregisterSingleton(\n  IPeekViewService,\n  class {\n    constructor() {\n      this._widgets = /* @__PURE__ */ new Map();\n    }\n    addExclusiveWidget(editor2, widget) {\n      const existing = this._widgets.get(editor2);\n      if (existing) {\n        existing.listener.dispose();\n        existing.widget.dispose();\n      }\n      const remove = () =\u003e {\n        const data = this._widgets.get(editor2);\n        if (data \u0026\u0026 data.widget === widget) {\n          data.listener.dispose();\n          this._widgets.delete(editor2);\n        }\n      };\n      this._widgets.set(editor2, { widget, listener: widget.onDidClose(remove) });\n    }\n  },\n  1\n  /* InstantiationType.Delayed */\n);\nvar PeekContext;\n(function(PeekContext2) {\n  PeekContext2.inPeekEditor = new RawContextKey(\"inReferenceSearchEditor\", true, localize(1303, \"Whether the current code editor is embedded inside peek\"));\n  PeekContext2.notInPeekEditor = PeekContext2.inPeekEditor.toNegated();\n})(PeekContext || (PeekContext = {}));\nvar PeekContextController = class PeekContextController2 {\n  static {\n    this.ID = \"editor.contrib.referenceController\";\n  }\n  constructor(editor2, contextKeyService) {\n    if (editor2 instanceof EmbeddedCodeEditorWidget) {\n      PeekContext.inPeekEditor.bindTo(contextKeyService);\n    }\n  }\n  dispose() {\n  }\n};\nPeekContextController = __decorate67([\n  __param62(1, IContextKeyService)\n], PeekContextController);\nregisterEditorContribution(\n  PeekContextController.ID,\n  PeekContextController,\n  0\n  /* EditorContributionInstantiation.Eager */\n);\nvar defaultOptions2 = {\n  headerBackgroundColor: Color.white,\n  primaryHeadingColor: Color.fromHex(\"#333333\"),\n  secondaryHeadingColor: Color.fromHex(\"#6c6c6cb3\")\n};\nvar PeekViewWidget = class PeekViewWidget2 extends ZoneWidget {\n  constructor(editor2, options2, instantiationService) {\n    super(editor2, options2);\n    this.instantiationService = instantiationService;\n    this._onDidClose = new Emitter();\n    this.onDidClose = this._onDidClose.event;\n    mixin(this.options, defaultOptions2, false);\n    const e = observableCodeEditor(this.editor);\n    e.openedPeekWidgets.set(e.openedPeekWidgets.get() + 1, void 0);\n  }\n  dispose() {\n    if (!this.disposed) {\n      this.disposed = true;\n      super.dispose();\n      this._onDidClose.fire(this);\n      const e = observableCodeEditor(this.editor);\n      e.openedPeekWidgets.set(e.openedPeekWidgets.get() - 1, void 0);\n    }\n  }\n  style(styles) {\n    const options2 = this.options;\n    if (styles.headerBackgroundColor) {\n      options2.headerBackgroundColor = styles.headerBackgroundColor;\n    }\n    if (styles.primaryHeadingColor) {\n      options2.primaryHeadingColor = styles.primaryHeadingColor;\n    }\n    if (styles.secondaryHeadingColor) {\n      options2.secondaryHeadingColor = styles.secondaryHeadingColor;\n    }\n    super.style(styles);\n  }\n  _applyStyles() {\n    super._applyStyles();\n    const options2 = this.options;\n    if (this._headElement \u0026\u0026 options2.headerBackgroundColor) {\n      this._headElement.style.backgroundColor = options2.headerBackgroundColor.toString();\n    }\n    if (this._primaryHeading \u0026\u0026 options2.primaryHeadingColor) {\n      this._primaryHeading.style.color = options2.primaryHeadingColor.toString();\n    }\n    if (this._secondaryHeading \u0026\u0026 options2.secondaryHeadingColor) {\n      this._secondaryHeading.style.color = options2.secondaryHeadingColor.toString();\n    }\n    if (this._bodyElement \u0026\u0026 options2.frameColor) {\n      this._bodyElement.style.borderColor = options2.frameColor.toString();\n    }\n  }\n  _fillContainer(container) {\n    this.setCssClass(\"peekview-widget\");\n    this._headElement = $(\".head\");\n    this._bodyElement = $(\".body\");\n    this._fillHead(this._headElement);\n    this._fillBody(this._bodyElement);\n    container.appendChild(this._headElement);\n    container.appendChild(this._bodyElement);\n  }\n  _fillHead(container, noCloseAction) {\n    this._titleElement = $(\".peekview-title\");\n    if (this.options.supportOnTitleClick) {\n      this._titleElement.classList.add(\"clickable\");\n      addStandardDisposableListener(this._titleElement, \"click\", (event) =\u003e this._onTitleClick(event));\n    }\n    append(this._headElement, this._titleElement);\n    this._fillTitleIcon(this._titleElement);\n    this._primaryHeading = $(\"span.filename\");\n    this._secondaryHeading = $(\"span.dirname\");\n    this._metaHeading = $(\"span.meta\");\n    append(this._titleElement, this._primaryHeading, this._secondaryHeading, this._metaHeading);\n    const actionsContainer = $(\".peekview-actions\");\n    append(this._headElement, actionsContainer);\n    const actionBarOptions = this._getActionBarOptions();\n    this._actionbarWidget = new ActionBar(actionsContainer, actionBarOptions);\n    this._disposables.add(this._actionbarWidget);\n    if (!noCloseAction) {\n      this._actionbarWidget.push(this._disposables.add(new Action(\"peekview.close\", localize(1304, \"Close\"), ThemeIcon.asClassName(Codicon.close), true, () =\u003e {\n        this.dispose();\n        return Promise.resolve();\n      })), { label: false, icon: true });\n    }\n  }\n  _fillTitleIcon(container) {\n  }\n  _getActionBarOptions() {\n    return {\n      actionViewItemProvider: createActionViewItem.bind(void 0, this.instantiationService),\n      orientation: 0\n      /* ActionsOrientation.HORIZONTAL */\n    };\n  }\n  _onTitleClick(event) {\n  }\n  setTitle(primaryHeading, secondaryHeading) {\n    if (this._primaryHeading \u0026\u0026 this._secondaryHeading) {\n      this._primaryHeading.innerText = primaryHeading;\n      this._primaryHeading.setAttribute(\"title\", primaryHeading);\n      if (secondaryHeading) {\n        this._secondaryHeading.innerText = secondaryHeading;\n      } else {\n        clearNode(this._secondaryHeading);\n      }\n    }\n  }\n  setMetaTitle(value) {\n    if (this._metaHeading) {\n      if (value) {\n        this._metaHeading.innerText = value;\n        show(this._metaHeading);\n      } else {\n        hide(this._metaHeading);\n      }\n    }\n  }\n  _doLayout(heightInPixel, widthInPixel) {\n    if (!this._isShowing \u0026\u0026 heightInPixel \u003c 0) {\n      this.dispose();\n      return;\n    }\n    const headHeight = Math.ceil(this.editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    ) * 1.2);\n    const bodyHeight = Math.round(heightInPixel - (headHeight + 1));\n    this._doLayoutHead(headHeight, widthInPixel);\n    this._doLayoutBody(bodyHeight, widthInPixel);\n  }\n  _doLayoutHead(heightInPixel, widthInPixel) {\n    if (this._headElement) {\n      this._headElement.style.height = `${heightInPixel}px`;\n      this._headElement.style.lineHeight = this._headElement.style.height;\n    }\n  }\n  _doLayoutBody(heightInPixel, widthInPixel) {\n    if (this._bodyElement) {\n      this._bodyElement.style.height = `${heightInPixel}px`;\n    }\n  }\n};\nPeekViewWidget = __decorate67([\n  __param62(2, IInstantiationService)\n], PeekViewWidget);\nvar peekViewTitleBackground = registerColor(\"peekViewTitle.background\", { dark: \"#252526\", light: \"#F3F3F3\", hcDark: Color.black, hcLight: Color.white }, localize(1305, \"Background color of the peek view title area.\"));\nvar peekViewTitleForeground = registerColor(\"peekViewTitleLabel.foreground\", { dark: Color.white, light: Color.black, hcDark: Color.white, hcLight: editorForeground }, localize(1306, \"Color of the peek view title.\"));\nvar peekViewTitleInfoForeground = registerColor(\"peekViewTitleDescription.foreground\", { dark: \"#ccccccb3\", light: \"#616161\", hcDark: \"#FFFFFF99\", hcLight: \"#292929\" }, localize(1307, \"Color of the peek view title info.\"));\nvar peekViewBorder = registerColor(\"peekView.border\", { dark: editorInfoForeground, light: editorInfoForeground, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1308, \"Color of the peek view borders and arrow.\"));\nvar peekViewResultsBackground = registerColor(\"peekViewResult.background\", { dark: \"#252526\", light: \"#F3F3F3\", hcDark: Color.black, hcLight: Color.white }, localize(1309, \"Background color of the peek view result list.\"));\nvar peekViewResultsMatchForeground = registerColor(\"peekViewResult.lineForeground\", { dark: \"#bbbbbb\", light: \"#646465\", hcDark: Color.white, hcLight: editorForeground }, localize(1310, \"Foreground color for line nodes in the peek view result list.\"));\nvar peekViewResultsFileForeground = registerColor(\"peekViewResult.fileForeground\", { dark: Color.white, light: \"#1E1E1E\", hcDark: Color.white, hcLight: editorForeground }, localize(1311, \"Foreground color for file nodes in the peek view result list.\"));\nvar peekViewResultsSelectionBackground = registerColor(\"peekViewResult.selectionBackground\", { dark: \"#3399ff33\", light: \"#3399ff33\", hcDark: null, hcLight: null }, localize(1312, \"Background color of the selected entry in the peek view result list.\"));\nvar peekViewResultsSelectionForeground = registerColor(\"peekViewResult.selectionForeground\", { dark: Color.white, light: \"#6C6C6C\", hcDark: Color.white, hcLight: editorForeground }, localize(1313, \"Foreground color of the selected entry in the peek view result list.\"));\nvar peekViewEditorBackground = registerColor(\"peekViewEditor.background\", { dark: \"#001F33\", light: \"#F2F8FC\", hcDark: Color.black, hcLight: Color.white }, localize(1314, \"Background color of the peek view editor.\"));\nvar peekViewEditorGutterBackground = registerColor(\"peekViewEditorGutter.background\", peekViewEditorBackground, localize(1315, \"Background color of the gutter in the peek view editor.\"));\nvar peekViewEditorStickyScrollBackground = registerColor(\"peekViewEditorStickyScroll.background\", peekViewEditorBackground, localize(1316, \"Background color of sticky scroll in the peek view editor.\"));\nvar peekViewEditorStickyScrollGutterBackground = registerColor(\"peekViewEditorStickyScrollGutter.background\", peekViewEditorBackground, localize(1317, \"Background color of the gutter part of sticky scroll in the peek view editor.\"));\nvar peekViewResultsMatchHighlight = registerColor(\"peekViewResult.matchHighlightBackground\", { dark: \"#ea5c004d\", light: \"#ea5c004d\", hcDark: null, hcLight: null }, localize(1318, \"Match highlight color in the peek view result list.\"));\nvar peekViewEditorMatchHighlight = registerColor(\"peekViewEditor.matchHighlightBackground\", { dark: \"#ff8f0099\", light: \"#f5d802de\", hcDark: null, hcLight: null }, localize(1319, \"Match highlight color in the peek view editor.\"));\nvar peekViewEditorMatchHighlightBorder = registerColor(\"peekViewEditor.matchHighlightBorder\", { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1320, \"Match highlight border in the peek view editor.\"));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js\ninit_nls();\ninit_commands();\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\ninit_keybindingsRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/list/browser/listService.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/list/listPaging.js\ninit_arrays();\ninit_cancellation();\ninit_event();\ninit_lifecycle();\nvar PagedRenderer = class {\n  get templateId() {\n    return this.renderer.templateId;\n  }\n  constructor(renderer, modelProvider) {\n    this.renderer = renderer;\n    this.modelProvider = modelProvider;\n  }\n  renderTemplate(container) {\n    const data = this.renderer.renderTemplate(container);\n    return { data, disposable: Disposable.None };\n  }\n  renderElement(index, _, data, details) {\n    data.disposable?.dispose();\n    if (!data.data) {\n      return;\n    }\n    const model = this.modelProvider();\n    if (model.isResolved(index)) {\n      return this.renderer.renderElement(model.get(index), index, data.data, details);\n    }\n    const cts = new CancellationTokenSource();\n    const promise = model.resolve(index, cts.token);\n    data.disposable = { dispose: () =\u003e cts.cancel() };\n    this.renderer.renderPlaceholder(index, data.data);\n    promise.then((entry) =\u003e this.renderer.renderElement(entry, index, data.data, details));\n  }\n  disposeTemplate(data) {\n    if (data.disposable) {\n      data.disposable.dispose();\n      data.disposable = void 0;\n    }\n    if (data.data) {\n      this.renderer.disposeTemplate(data.data);\n      data.data = void 0;\n    }\n  }\n};\nvar PagedAccessibilityProvider = class {\n  constructor(modelProvider, accessibilityProvider) {\n    this.modelProvider = modelProvider;\n    this.accessibilityProvider = accessibilityProvider;\n  }\n  getWidgetAriaLabel() {\n    return this.accessibilityProvider.getWidgetAriaLabel();\n  }\n  getAriaLabel(index) {\n    const model = this.modelProvider();\n    if (!model.isResolved(index)) {\n      return null;\n    }\n    return this.accessibilityProvider.getAriaLabel(model.get(index));\n  }\n};\nfunction fromPagedListOptions(modelProvider, options2) {\n  return {\n    ...options2,\n    accessibilityProvider: options2.accessibilityProvider \u0026\u0026 new PagedAccessibilityProvider(modelProvider, options2.accessibilityProvider)\n  };\n}\nvar PagedList = class {\n  constructor(user, container, virtualDelegate, renderers, options2 = {}) {\n    const modelProvider = () =\u003e this.model;\n    const pagedRenderers = renderers.map((r) =\u003e new PagedRenderer(r, modelProvider));\n    this.list = new List(user, container, virtualDelegate, pagedRenderers, fromPagedListOptions(modelProvider, options2));\n  }\n  updateOptions(options2) {\n    this.list.updateOptions(options2);\n  }\n  getHTMLElement() {\n    return this.list.getHTMLElement();\n  }\n  get onDidFocus() {\n    return this.list.onDidFocus;\n  }\n  get widget() {\n    return this.list;\n  }\n  get onDidDispose() {\n    return this.list.onDidDispose;\n  }\n  get onMouseDblClick() {\n    return Event.map(this.list.onMouseDblClick, ({ element, index, browserEvent }) =\u003e ({ element: element === void 0 ? void 0 : this._model.get(element), index, browserEvent }));\n  }\n  get onPointer() {\n    return Event.map(this.list.onPointer, ({ element, index, browserEvent }) =\u003e ({ element: element === void 0 ? void 0 : this._model.get(element), index, browserEvent }));\n  }\n  get onDidChangeSelection() {\n    return Event.map(this.list.onDidChangeSelection, ({ elements, indexes, browserEvent }) =\u003e ({ elements: elements.map((e) =\u003e this._model.get(e)), indexes, browserEvent }));\n  }\n  get model() {\n    return this._model;\n  }\n  set model(model) {\n    this._model = model;\n    this.list.splice(0, this.list.length, range(model.length));\n  }\n  getFocus() {\n    return this.list.getFocus();\n  }\n  getSelection() {\n    return this.list.getSelection();\n  }\n  getSelectedElements() {\n    return this.getSelection().map((i2) =\u003e this.model.get(i2));\n  }\n  style(styles) {\n    this.list.style(styles);\n  }\n  dispose() {\n    this.list.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/table/tableWidget.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/splitview/splitview.js\ninit_dom();\ninit_arrays();\ninit_color();\ninit_event();\ninit_lifecycle();\ninit_numbers();\ninit_types();\nvar defaultStyles = {\n  separatorBorder: Color.transparent\n};\nvar ViewItem = class {\n  set size(size2) {\n    this._size = size2;\n  }\n  get size() {\n    return this._size;\n  }\n  get visible() {\n    return typeof this._cachedVisibleSize === \"undefined\";\n  }\n  setVisible(visible, size2) {\n    if (visible === this.visible) {\n      return;\n    }\n    if (visible) {\n      this.size = clamp(this._cachedVisibleSize, this.viewMinimumSize, this.viewMaximumSize);\n      this._cachedVisibleSize = void 0;\n    } else {\n      this._cachedVisibleSize = typeof size2 === \"number\" ? size2 : this.size;\n      this.size = 0;\n    }\n    this.container.classList.toggle(\"visible\", visible);\n    try {\n      this.view.setVisible?.(visible);\n    } catch (e) {\n      console.error(\"Splitview: Failed to set visible view\");\n      console.error(e);\n    }\n  }\n  get minimumSize() {\n    return this.visible ? this.view.minimumSize : 0;\n  }\n  get viewMinimumSize() {\n    return this.view.minimumSize;\n  }\n  get maximumSize() {\n    return this.visible ? this.view.maximumSize : 0;\n  }\n  get viewMaximumSize() {\n    return this.view.maximumSize;\n  }\n  get priority() {\n    return this.view.priority;\n  }\n  get proportionalLayout() {\n    return this.view.proportionalLayout ?? true;\n  }\n  get snap() {\n    return !!this.view.snap;\n  }\n  set enabled(enabled) {\n    this.container.style.pointerEvents = enabled ? \"\" : \"none\";\n  }\n  constructor(container, view, size2, disposable) {\n    this.container = container;\n    this.view = view;\n    this.disposable = disposable;\n    this._cachedVisibleSize = void 0;\n    if (typeof size2 === \"number\") {\n      this._size = size2;\n      this._cachedVisibleSize = void 0;\n      container.classList.add(\"visible\");\n    } else {\n      this._size = 0;\n      this._cachedVisibleSize = size2.cachedVisibleSize;\n    }\n  }\n  layout(offset, layoutContext) {\n    this.layoutContainer(offset);\n    try {\n      this.view.layout(this.size, offset, layoutContext);\n    } catch (e) {\n      console.error(\"Splitview: Failed to layout view\");\n      console.error(e);\n    }\n  }\n  dispose() {\n    this.disposable.dispose();\n  }\n};\nvar VerticalViewItem = class extends ViewItem {\n  layoutContainer(offset) {\n    this.container.style.top = `${offset}px`;\n    this.container.style.height = `${this.size}px`;\n  }\n};\nvar HorizontalViewItem = class extends ViewItem {\n  layoutContainer(offset) {\n    this.container.style.left = `${offset}px`;\n    this.container.style.width = `${this.size}px`;\n  }\n};\nvar State;\n(function(State2) {\n  State2[State2[\"Idle\"] = 0] = \"Idle\";\n  State2[State2[\"Busy\"] = 1] = \"Busy\";\n})(State || (State = {}));\nvar Sizing;\n(function(Sizing2) {\n  Sizing2.Distribute = { type: \"distribute\" };\n  function Split(index) {\n    return { type: \"split\", index };\n  }\n  Sizing2.Split = Split;\n  function Auto(index) {\n    return { type: \"auto\", index };\n  }\n  Sizing2.Auto = Auto;\n  function Invisible(cachedVisibleSize) {\n    return { type: \"invisible\", cachedVisibleSize };\n  }\n  Sizing2.Invisible = Invisible;\n})(Sizing || (Sizing = {}));\nvar SplitView = class extends Disposable {\n  get orthogonalStartSash() {\n    return this._orthogonalStartSash;\n  }\n  get orthogonalEndSash() {\n    return this._orthogonalEndSash;\n  }\n  get startSnappingEnabled() {\n    return this._startSnappingEnabled;\n  }\n  get endSnappingEnabled() {\n    return this._endSnappingEnabled;\n  }\n  /**\n   * A reference to a sash, perpendicular to all sashes in this {@link SplitView},\n   * located at the left- or top-most side of the SplitView.\n   * Corner sashes will be created automatically at the intersections.\n   */\n  set orthogonalStartSash(sash) {\n    for (const sashItem of this.sashItems) {\n      sashItem.sash.orthogonalStartSash = sash;\n    }\n    this._orthogonalStartSash = sash;\n  }\n  /**\n   * A reference to a sash, perpendicular to all sashes in this {@link SplitView},\n   * located at the right- or bottom-most side of the SplitView.\n   * Corner sashes will be created automatically at the intersections.\n   */\n  set orthogonalEndSash(sash) {\n    for (const sashItem of this.sashItems) {\n      sashItem.sash.orthogonalEndSash = sash;\n    }\n    this._orthogonalEndSash = sash;\n  }\n  /**\n   * Enable/disable snapping at the beginning of this {@link SplitView}.\n   */\n  set startSnappingEnabled(startSnappingEnabled) {\n    if (this._startSnappingEnabled === startSnappingEnabled) {\n      return;\n    }\n    this._startSnappingEnabled = startSnappingEnabled;\n    this.updateSashEnablement();\n  }\n  /**\n   * Enable/disable snapping at the end of this {@link SplitView}.\n   */\n  set endSnappingEnabled(endSnappingEnabled) {\n    if (this._endSnappingEnabled === endSnappingEnabled) {\n      return;\n    }\n    this._endSnappingEnabled = endSnappingEnabled;\n    this.updateSashEnablement();\n  }\n  /**\n   * Create a new {@link SplitView} instance.\n   */\n  constructor(container, options2 = {}) {\n    super();\n    this.size = 0;\n    this._contentSize = 0;\n    this.proportions = void 0;\n    this.viewItems = [];\n    this.sashItems = [];\n    this.state = State.Idle;\n    this._onDidSashChange = this._register(new Emitter());\n    this._onDidSashReset = this._register(new Emitter());\n    this._startSnappingEnabled = true;\n    this._endSnappingEnabled = true;\n    this.onDidSashChange = this._onDidSashChange.event;\n    this.onDidSashReset = this._onDidSashReset.event;\n    this.orientation = options2.orientation ?? 0;\n    this.inverseAltBehavior = options2.inverseAltBehavior ?? false;\n    this.proportionalLayout = options2.proportionalLayout ?? true;\n    this.getSashOrthogonalSize = options2.getSashOrthogonalSize;\n    this.el = document.createElement(\"div\");\n    this.el.classList.add(\"monaco-split-view2\");\n    this.el.classList.add(this.orientation === 0 ? \"vertical\" : \"horizontal\");\n    container.appendChild(this.el);\n    this.sashContainer = append(this.el, $(\".sash-container\"));\n    this.viewContainer = $(\".split-view-container\");\n    this.scrollable = this._register(new Scrollable({\n      forceIntegerValues: true,\n      smoothScrollDuration: 125,\n      scheduleAtNextAnimationFrame: (callback) =\u003e scheduleAtNextAnimationFrame(getWindow(this.el), callback)\n    }));\n    this.scrollableElement = this._register(new SmoothScrollableElement(this.viewContainer, {\n      vertical: this.orientation === 0 ? options2.scrollbarVisibility ?? 1 : 2,\n      horizontal: this.orientation === 1 ? options2.scrollbarVisibility ?? 1 : 2\n      /* ScrollbarVisibility.Hidden */\n    }, this.scrollable));\n    const onDidScrollViewContainer = this._register(new DomEmitter(this.viewContainer, \"scroll\")).event;\n    this._register(onDidScrollViewContainer((_) =\u003e {\n      const position = this.scrollableElement.getScrollPosition();\n      const scrollLeft = Math.abs(this.viewContainer.scrollLeft - position.scrollLeft) \u003c= 1 ? void 0 : this.viewContainer.scrollLeft;\n      const scrollTop = Math.abs(this.viewContainer.scrollTop - position.scrollTop) \u003c= 1 ? void 0 : this.viewContainer.scrollTop;\n      if (scrollLeft !== void 0 || scrollTop !== void 0) {\n        this.scrollableElement.setScrollPosition({ scrollLeft, scrollTop });\n      }\n    }));\n    this.onDidScroll = this.scrollableElement.onScroll;\n    this._register(this.onDidScroll((e) =\u003e {\n      if (e.scrollTopChanged) {\n        this.viewContainer.scrollTop = e.scrollTop;\n      }\n      if (e.scrollLeftChanged) {\n        this.viewContainer.scrollLeft = e.scrollLeft;\n      }\n    }));\n    append(this.el, this.scrollableElement.getDomNode());\n    this.style(options2.styles || defaultStyles);\n    if (options2.descriptor) {\n      this.size = options2.descriptor.size;\n      options2.descriptor.views.forEach((viewDescriptor, index) =\u003e {\n        const sizing = isUndefined(viewDescriptor.visible) || viewDescriptor.visible ? viewDescriptor.size : { type: \"invisible\", cachedVisibleSize: viewDescriptor.size };\n        const view = viewDescriptor.view;\n        this.doAddView(view, sizing, index, true);\n      });\n      this._contentSize = this.viewItems.reduce((r, i2) =\u003e r + i2.size, 0);\n      this.saveProportions();\n    }\n  }\n  style(styles) {\n    if (styles.separatorBorder.isTransparent()) {\n      this.el.classList.remove(\"separator-border\");\n      this.el.style.removeProperty(\"--separator-border\");\n    } else {\n      this.el.classList.add(\"separator-border\");\n      this.el.style.setProperty(\"--separator-border\", styles.separatorBorder.toString());\n    }\n  }\n  /**\n   * Add a {@link IView view} to this {@link SplitView}.\n   *\n   * @param view The view to add.\n   * @param size Either a fixed size, or a dynamic {@link Sizing} strategy.\n   * @param index The index to insert the view on.\n   * @param skipLayout Whether layout should be skipped.\n   */\n  addView(view, size2, index = this.viewItems.length, skipLayout) {\n    this.doAddView(view, size2, index, skipLayout);\n  }\n  /**\n   * Layout the {@link SplitView}.\n   *\n   * @param size The entire size of the {@link SplitView}.\n   * @param layoutContext An optional layout context to pass along to {@link IView views}.\n   */\n  layout(size2, layoutContext) {\n    const previousSize = Math.max(this.size, this._contentSize);\n    this.size = size2;\n    this.layoutContext = layoutContext;\n    if (!this.proportions) {\n      const indexes = range(this.viewItems.length);\n      const lowPriorityIndexes = indexes.filter(\n        (i2) =\u003e this.viewItems[i2].priority === 1\n        /* LayoutPriority.Low */\n      );\n      const highPriorityIndexes = indexes.filter(\n        (i2) =\u003e this.viewItems[i2].priority === 2\n        /* LayoutPriority.High */\n      );\n      this.resize(this.viewItems.length - 1, size2 - previousSize, void 0, lowPriorityIndexes, highPriorityIndexes);\n    } else {\n      let total = 0;\n      for (let i2 = 0; i2 \u003c this.viewItems.length; i2++) {\n        const item = this.viewItems[i2];\n        const proportion = this.proportions[i2];\n        if (typeof proportion === \"number\") {\n          total += proportion;\n        } else {\n          size2 -= item.size;\n        }\n      }\n      for (let i2 = 0; i2 \u003c this.viewItems.length; i2++) {\n        const item = this.viewItems[i2];\n        const proportion = this.proportions[i2];\n        if (typeof proportion === \"number\" \u0026\u0026 total \u003e 0) {\n          item.size = clamp(Math.round(proportion * size2 / total), item.minimumSize, item.maximumSize);\n        }\n      }\n    }\n    this.distributeEmptySpace();\n    this.layoutViews();\n  }\n  saveProportions() {\n    if (this.proportionalLayout \u0026\u0026 this._contentSize \u003e 0) {\n      this.proportions = this.viewItems.map((v) =\u003e v.proportionalLayout \u0026\u0026 v.visible ? v.size / this._contentSize : void 0);\n    }\n  }\n  onSashStart({ sash, start, alt }) {\n    for (const item of this.viewItems) {\n      item.enabled = false;\n    }\n    const index = this.sashItems.findIndex((item) =\u003e item.sash === sash);\n    const disposable = combinedDisposable(addDisposableListener(this.el.ownerDocument.body, \"keydown\", (e) =\u003e resetSashDragState(this.sashDragState.current, e.altKey)), addDisposableListener(this.el.ownerDocument.body, \"keyup\", () =\u003e resetSashDragState(this.sashDragState.current, false)));\n    const resetSashDragState = (start2, alt2) =\u003e {\n      const sizes = this.viewItems.map((i2) =\u003e i2.size);\n      let minDelta = Number.NEGATIVE_INFINITY;\n      let maxDelta = Number.POSITIVE_INFINITY;\n      if (this.inverseAltBehavior) {\n        alt2 = !alt2;\n      }\n      if (alt2) {\n        const isLastSash = index === this.sashItems.length - 1;\n        if (isLastSash) {\n          const viewItem = this.viewItems[index];\n          minDelta = (viewItem.minimumSize - viewItem.size) / 2;\n          maxDelta = (viewItem.maximumSize - viewItem.size) / 2;\n        } else {\n          const viewItem = this.viewItems[index + 1];\n          minDelta = (viewItem.size - viewItem.maximumSize) / 2;\n          maxDelta = (viewItem.size - viewItem.minimumSize) / 2;\n        }\n      }\n      let snapBefore;\n      let snapAfter;\n      if (!alt2) {\n        const upIndexes = range(index, -1);\n        const downIndexes = range(index + 1, this.viewItems.length);\n        const minDeltaUp = upIndexes.reduce((r, i2) =\u003e r + (this.viewItems[i2].minimumSize - sizes[i2]), 0);\n        const maxDeltaUp = upIndexes.reduce((r, i2) =\u003e r + (this.viewItems[i2].viewMaximumSize - sizes[i2]), 0);\n        const maxDeltaDown = downIndexes.length === 0 ? Number.POSITIVE_INFINITY : downIndexes.reduce((r, i2) =\u003e r + (sizes[i2] - this.viewItems[i2].minimumSize), 0);\n        const minDeltaDown = downIndexes.length === 0 ? Number.NEGATIVE_INFINITY : downIndexes.reduce((r, i2) =\u003e r + (sizes[i2] - this.viewItems[i2].viewMaximumSize), 0);\n        const minDelta2 = Math.max(minDeltaUp, minDeltaDown);\n        const maxDelta2 = Math.min(maxDeltaDown, maxDeltaUp);\n        const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n        const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n        if (typeof snapBeforeIndex === \"number\") {\n          const viewItem = this.viewItems[snapBeforeIndex];\n          const halfSize = Math.floor(viewItem.viewMinimumSize / 2);\n          snapBefore = {\n            index: snapBeforeIndex,\n            limitDelta: viewItem.visible ? minDelta2 - halfSize : minDelta2 + halfSize,\n            size: viewItem.size\n          };\n        }\n        if (typeof snapAfterIndex === \"number\") {\n          const viewItem = this.viewItems[snapAfterIndex];\n          const halfSize = Math.floor(viewItem.viewMinimumSize / 2);\n          snapAfter = {\n            index: snapAfterIndex,\n            limitDelta: viewItem.visible ? maxDelta2 + halfSize : maxDelta2 - halfSize,\n            size: viewItem.size\n          };\n        }\n      }\n      this.sashDragState = { start: start2, current: start2, index, sizes, minDelta, maxDelta, alt: alt2, snapBefore, snapAfter, disposable };\n    };\n    resetSashDragState(start, alt);\n  }\n  onSashChange({ current }) {\n    const { index, start, sizes, alt, minDelta, maxDelta, snapBefore, snapAfter } = this.sashDragState;\n    this.sashDragState.current = current;\n    const delta = current - start;\n    const newDelta = this.resize(index, delta, sizes, void 0, void 0, minDelta, maxDelta, snapBefore, snapAfter);\n    if (alt) {\n      const isLastSash = index === this.sashItems.length - 1;\n      const newSizes = this.viewItems.map((i2) =\u003e i2.size);\n      const viewItemIndex = isLastSash ? index : index + 1;\n      const viewItem = this.viewItems[viewItemIndex];\n      const newMinDelta = viewItem.size - viewItem.maximumSize;\n      const newMaxDelta = viewItem.size - viewItem.minimumSize;\n      const resizeIndex = isLastSash ? index - 1 : index + 1;\n      this.resize(resizeIndex, -newDelta, newSizes, void 0, void 0, newMinDelta, newMaxDelta);\n    }\n    this.distributeEmptySpace();\n    this.layoutViews();\n  }\n  onSashEnd(index) {\n    this._onDidSashChange.fire(index);\n    this.sashDragState.disposable.dispose();\n    this.saveProportions();\n    for (const item of this.viewItems) {\n      item.enabled = true;\n    }\n  }\n  onViewChange(item, size2) {\n    const index = this.viewItems.indexOf(item);\n    if (index \u003c 0 || index \u003e= this.viewItems.length) {\n      return;\n    }\n    size2 = typeof size2 === \"number\" ? size2 : item.size;\n    size2 = clamp(size2, item.minimumSize, item.maximumSize);\n    if (this.inverseAltBehavior \u0026\u0026 index \u003e 0) {\n      this.resize(index - 1, Math.floor((item.size - size2) / 2));\n      this.distributeEmptySpace();\n      this.layoutViews();\n    } else {\n      item.size = size2;\n      this.relayout([index], void 0);\n    }\n  }\n  /**\n   * Resize a {@link IView view} within the {@link SplitView}.\n   *\n   * @param index The {@link IView view} index.\n   * @param size The {@link IView view} size.\n   */\n  resizeView(index, size2) {\n    if (index \u003c 0 || index \u003e= this.viewItems.length) {\n      return;\n    }\n    if (this.state !== State.Idle) {\n      throw new Error(\"Cant modify splitview\");\n    }\n    this.state = State.Busy;\n    try {\n      const indexes = range(this.viewItems.length).filter((i2) =\u003e i2 !== index);\n      const lowPriorityIndexes = [...indexes.filter(\n        (i2) =\u003e this.viewItems[i2].priority === 1\n        /* LayoutPriority.Low */\n      ), index];\n      const highPriorityIndexes = indexes.filter(\n        (i2) =\u003e this.viewItems[i2].priority === 2\n        /* LayoutPriority.High */\n      );\n      const item = this.viewItems[index];\n      size2 = Math.round(size2);\n      size2 = clamp(size2, item.minimumSize, Math.min(item.maximumSize, this.size));\n      item.size = size2;\n      this.relayout(lowPriorityIndexes, highPriorityIndexes);\n    } finally {\n      this.state = State.Idle;\n    }\n  }\n  /**\n   * Distribute the entire {@link SplitView} size among all {@link IView views}.\n   */\n  distributeViewSizes() {\n    const flexibleViewItems = [];\n    let flexibleSize = 0;\n    for (const item of this.viewItems) {\n      if (item.maximumSize - item.minimumSize \u003e 0) {\n        flexibleViewItems.push(item);\n        flexibleSize += item.size;\n      }\n    }\n    const size2 = Math.floor(flexibleSize / flexibleViewItems.length);\n    for (const item of flexibleViewItems) {\n      item.size = clamp(size2, item.minimumSize, item.maximumSize);\n    }\n    const indexes = range(this.viewItems.length);\n    const lowPriorityIndexes = indexes.filter(\n      (i2) =\u003e this.viewItems[i2].priority === 1\n      /* LayoutPriority.Low */\n    );\n    const highPriorityIndexes = indexes.filter(\n      (i2) =\u003e this.viewItems[i2].priority === 2\n      /* LayoutPriority.High */\n    );\n    this.relayout(lowPriorityIndexes, highPriorityIndexes);\n  }\n  /**\n   * Returns the size of a {@link IView view}.\n   */\n  getViewSize(index) {\n    if (index \u003c 0 || index \u003e= this.viewItems.length) {\n      return -1;\n    }\n    return this.viewItems[index].size;\n  }\n  doAddView(view, size2, index = this.viewItems.length, skipLayout) {\n    if (this.state !== State.Idle) {\n      throw new Error(\"Cant modify splitview\");\n    }\n    this.state = State.Busy;\n    try {\n      const container = $(\".split-view-view\");\n      if (index === this.viewItems.length) {\n        this.viewContainer.appendChild(container);\n      } else {\n        this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));\n      }\n      const onChangeDisposable = view.onDidChange((size3) =\u003e this.onViewChange(item, size3));\n      const containerDisposable = toDisposable(() =\u003e container.remove());\n      const disposable = combinedDisposable(onChangeDisposable, containerDisposable);\n      let viewSize;\n      if (typeof size2 === \"number\") {\n        viewSize = size2;\n      } else {\n        if (size2.type === \"auto\") {\n          if (this.areViewsDistributed()) {\n            size2 = { type: \"distribute\" };\n          } else {\n            size2 = { type: \"split\", index: size2.index };\n          }\n        }\n        if (size2.type === \"split\") {\n          viewSize = this.getViewSize(size2.index) / 2;\n        } else if (size2.type === \"invisible\") {\n          viewSize = { cachedVisibleSize: size2.cachedVisibleSize };\n        } else {\n          viewSize = view.minimumSize;\n        }\n      }\n      const item = this.orientation === 0 ? new VerticalViewItem(container, view, viewSize, disposable) : new HorizontalViewItem(container, view, viewSize, disposable);\n      this.viewItems.splice(index, 0, item);\n      if (this.viewItems.length \u003e 1) {\n        const opts = { orthogonalStartSash: this.orthogonalStartSash, orthogonalEndSash: this.orthogonalEndSash };\n        const sash = this.orientation === 0 ? new Sash(this.sashContainer, { getHorizontalSashTop: (s) =\u003e this.getSashPosition(s), getHorizontalSashWidth: this.getSashOrthogonalSize }, {\n          ...opts,\n          orientation: 1\n          /* Orientation.HORIZONTAL */\n        }) : new Sash(this.sashContainer, { getVerticalSashLeft: (s) =\u003e this.getSashPosition(s), getVerticalSashHeight: this.getSashOrthogonalSize }, {\n          ...opts,\n          orientation: 0\n          /* Orientation.VERTICAL */\n        });\n        const sashEventMapper = this.orientation === 0 ? (e) =\u003e ({ sash, start: e.startY, current: e.currentY, alt: e.altKey }) : (e) =\u003e ({ sash, start: e.startX, current: e.currentX, alt: e.altKey });\n        const onStart = Event.map(sash.onDidStart, sashEventMapper);\n        const onStartDisposable = onStart(this.onSashStart, this);\n        const onChange = Event.map(sash.onDidChange, sashEventMapper);\n        const onChangeDisposable2 = onChange(this.onSashChange, this);\n        const onEnd = Event.map(sash.onDidEnd, () =\u003e this.sashItems.findIndex((item2) =\u003e item2.sash === sash));\n        const onEndDisposable = onEnd(this.onSashEnd, this);\n        const onDidResetDisposable = sash.onDidReset(() =\u003e {\n          const index2 = this.sashItems.findIndex((item2) =\u003e item2.sash === sash);\n          const upIndexes = range(index2, -1);\n          const downIndexes = range(index2 + 1, this.viewItems.length);\n          const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n          const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n          if (typeof snapBeforeIndex === \"number\" \u0026\u0026 !this.viewItems[snapBeforeIndex].visible) {\n            return;\n          }\n          if (typeof snapAfterIndex === \"number\" \u0026\u0026 !this.viewItems[snapAfterIndex].visible) {\n            return;\n          }\n          this._onDidSashReset.fire(index2);\n        });\n        const disposable2 = combinedDisposable(onStartDisposable, onChangeDisposable2, onEndDisposable, onDidResetDisposable, sash);\n        const sashItem = { sash, disposable: disposable2 };\n        this.sashItems.splice(index - 1, 0, sashItem);\n      }\n      container.appendChild(view.element);\n      let highPriorityIndexes;\n      if (typeof size2 !== \"number\" \u0026\u0026 size2.type === \"split\") {\n        highPriorityIndexes = [size2.index];\n      }\n      if (!skipLayout) {\n        this.relayout([index], highPriorityIndexes);\n      }\n      if (!skipLayout \u0026\u0026 typeof size2 !== \"number\" \u0026\u0026 size2.type === \"distribute\") {\n        this.distributeViewSizes();\n      }\n    } finally {\n      this.state = State.Idle;\n    }\n  }\n  relayout(lowPriorityIndexes, highPriorityIndexes) {\n    const contentSize = this.viewItems.reduce((r, i2) =\u003e r + i2.size, 0);\n    this.resize(this.viewItems.length - 1, this.size - contentSize, void 0, lowPriorityIndexes, highPriorityIndexes);\n    this.distributeEmptySpace();\n    this.layoutViews();\n    this.saveProportions();\n  }\n  resize(index, delta, sizes = this.viewItems.map((i2) =\u003e i2.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) {\n    if (index \u003c 0 || index \u003e= this.viewItems.length) {\n      return 0;\n    }\n    const upIndexes = range(index, -1);\n    const downIndexes = range(index + 1, this.viewItems.length);\n    if (highPriorityIndexes) {\n      for (const index2 of highPriorityIndexes) {\n        pushToStart(upIndexes, index2);\n        pushToStart(downIndexes, index2);\n      }\n    }\n    if (lowPriorityIndexes) {\n      for (const index2 of lowPriorityIndexes) {\n        pushToEnd(upIndexes, index2);\n        pushToEnd(downIndexes, index2);\n      }\n    }\n    const upItems = upIndexes.map((i2) =\u003e this.viewItems[i2]);\n    const upSizes = upIndexes.map((i2) =\u003e sizes[i2]);\n    const downItems = downIndexes.map((i2) =\u003e this.viewItems[i2]);\n    const downSizes = downIndexes.map((i2) =\u003e sizes[i2]);\n    const minDeltaUp = upIndexes.reduce((r, i2) =\u003e r + (this.viewItems[i2].minimumSize - sizes[i2]), 0);\n    const maxDeltaUp = upIndexes.reduce((r, i2) =\u003e r + (this.viewItems[i2].maximumSize - sizes[i2]), 0);\n    const maxDeltaDown = downIndexes.length === 0 ? Number.POSITIVE_INFINITY : downIndexes.reduce((r, i2) =\u003e r + (sizes[i2] - this.viewItems[i2].minimumSize), 0);\n    const minDeltaDown = downIndexes.length === 0 ? Number.NEGATIVE_INFINITY : downIndexes.reduce((r, i2) =\u003e r + (sizes[i2] - this.viewItems[i2].maximumSize), 0);\n    const minDelta = Math.max(minDeltaUp, minDeltaDown, overloadMinDelta);\n    const maxDelta = Math.min(maxDeltaDown, maxDeltaUp, overloadMaxDelta);\n    let snapped = false;\n    if (snapBefore) {\n      const snapView = this.viewItems[snapBefore.index];\n      const visible = delta \u003e= snapBefore.limitDelta;\n      snapped = visible !== snapView.visible;\n      snapView.setVisible(visible, snapBefore.size);\n    }\n    if (!snapped \u0026\u0026 snapAfter) {\n      const snapView = this.viewItems[snapAfter.index];\n      const visible = delta \u003c snapAfter.limitDelta;\n      snapped = visible !== snapView.visible;\n      snapView.setVisible(visible, snapAfter.size);\n    }\n    if (snapped) {\n      return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);\n    }\n    delta = clamp(delta, minDelta, maxDelta);\n    for (let i2 = 0, deltaUp = delta; i2 \u003c upItems.length; i2++) {\n      const item = upItems[i2];\n      const size2 = clamp(upSizes[i2] + deltaUp, item.minimumSize, item.maximumSize);\n      const viewDelta = size2 - upSizes[i2];\n      deltaUp -= viewDelta;\n      item.size = size2;\n    }\n    for (let i2 = 0, deltaDown = delta; i2 \u003c downItems.length; i2++) {\n      const item = downItems[i2];\n      const size2 = clamp(downSizes[i2] - deltaDown, item.minimumSize, item.maximumSize);\n      const viewDelta = size2 - downSizes[i2];\n      deltaDown += viewDelta;\n      item.size = size2;\n    }\n    return delta;\n  }\n  distributeEmptySpace(lowPriorityIndex) {\n    const contentSize = this.viewItems.reduce((r, i2) =\u003e r + i2.size, 0);\n    let emptyDelta = this.size - contentSize;\n    const indexes = range(this.viewItems.length - 1, -1);\n    const lowPriorityIndexes = indexes.filter(\n      (i2) =\u003e this.viewItems[i2].priority === 1\n      /* LayoutPriority.Low */\n    );\n    const highPriorityIndexes = indexes.filter(\n      (i2) =\u003e this.viewItems[i2].priority === 2\n      /* LayoutPriority.High */\n    );\n    for (const index of highPriorityIndexes) {\n      pushToStart(indexes, index);\n    }\n    for (const index of lowPriorityIndexes) {\n      pushToEnd(indexes, index);\n    }\n    if (typeof lowPriorityIndex === \"number\") {\n      pushToEnd(indexes, lowPriorityIndex);\n    }\n    for (let i2 = 0; emptyDelta !== 0 \u0026\u0026 i2 \u003c indexes.length; i2++) {\n      const item = this.viewItems[indexes[i2]];\n      const size2 = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);\n      const viewDelta = size2 - item.size;\n      emptyDelta -= viewDelta;\n      item.size = size2;\n    }\n  }\n  layoutViews() {\n    this._contentSize = this.viewItems.reduce((r, i2) =\u003e r + i2.size, 0);\n    let offset = 0;\n    for (const viewItem of this.viewItems) {\n      viewItem.layout(offset, this.layoutContext);\n      offset += viewItem.size;\n    }\n    this.sashItems.forEach((item) =\u003e item.sash.layout());\n    this.updateSashEnablement();\n    this.updateScrollableElement();\n  }\n  updateScrollableElement() {\n    if (this.orientation === 0) {\n      this.scrollableElement.setScrollDimensions({\n        height: this.size,\n        scrollHeight: this._contentSize\n      });\n    } else {\n      this.scrollableElement.setScrollDimensions({\n        width: this.size,\n        scrollWidth: this._contentSize\n      });\n    }\n  }\n  updateSashEnablement() {\n    let previous = false;\n    const collapsesDown = this.viewItems.map((i2) =\u003e previous = i2.size - i2.minimumSize \u003e 0 || previous);\n    previous = false;\n    const expandsDown = this.viewItems.map((i2) =\u003e previous = i2.maximumSize - i2.size \u003e 0 || previous);\n    const reverseViews = [...this.viewItems].reverse();\n    previous = false;\n    const collapsesUp = reverseViews.map((i2) =\u003e previous = i2.size - i2.minimumSize \u003e 0 || previous).reverse();\n    previous = false;\n    const expandsUp = reverseViews.map((i2) =\u003e previous = i2.maximumSize - i2.size \u003e 0 || previous).reverse();\n    let position = 0;\n    for (let index = 0; index \u003c this.sashItems.length; index++) {\n      const { sash } = this.sashItems[index];\n      const viewItem = this.viewItems[index];\n      position += viewItem.size;\n      const min = !(collapsesDown[index] \u0026\u0026 expandsUp[index + 1]);\n      const max = !(expandsDown[index] \u0026\u0026 collapsesUp[index + 1]);\n      if (min \u0026\u0026 max) {\n        const upIndexes = range(index, -1);\n        const downIndexes = range(index + 1, this.viewItems.length);\n        const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n        const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n        const snappedBefore = typeof snapBeforeIndex === \"number\" \u0026\u0026 !this.viewItems[snapBeforeIndex].visible;\n        const snappedAfter = typeof snapAfterIndex === \"number\" \u0026\u0026 !this.viewItems[snapAfterIndex].visible;\n        if (snappedBefore \u0026\u0026 collapsesUp[index] \u0026\u0026 (position \u003e 0 || this.startSnappingEnabled)) {\n          sash.state = 1;\n        } else if (snappedAfter \u0026\u0026 collapsesDown[index] \u0026\u0026 (position \u003c this._contentSize || this.endSnappingEnabled)) {\n          sash.state = 2;\n        } else {\n          sash.state = 0;\n        }\n      } else if (min \u0026\u0026 !max) {\n        sash.state = 1;\n      } else if (!min \u0026\u0026 max) {\n        sash.state = 2;\n      } else {\n        sash.state = 3;\n      }\n    }\n  }\n  getSashPosition(sash) {\n    let position = 0;\n    for (let i2 = 0; i2 \u003c this.sashItems.length; i2++) {\n      position += this.viewItems[i2].size;\n      if (this.sashItems[i2].sash === sash) {\n        return position;\n      }\n    }\n    return 0;\n  }\n  findFirstSnapIndex(indexes) {\n    for (const index of indexes) {\n      const viewItem = this.viewItems[index];\n      if (!viewItem.visible) {\n        continue;\n      }\n      if (viewItem.snap) {\n        return index;\n      }\n    }\n    for (const index of indexes) {\n      const viewItem = this.viewItems[index];\n      if (viewItem.visible \u0026\u0026 viewItem.maximumSize - viewItem.minimumSize \u003e 0) {\n        return void 0;\n      }\n      if (!viewItem.visible \u0026\u0026 viewItem.snap) {\n        return index;\n      }\n    }\n    return void 0;\n  }\n  areViewsDistributed() {\n    let min = void 0, max = void 0;\n    for (const view of this.viewItems) {\n      min = min === void 0 ? view.size : Math.min(min, view.size);\n      max = max === void 0 ? view.size : Math.max(max, view.size);\n      if (max - min \u003e 2) {\n        return false;\n      }\n    }\n    return true;\n  }\n  dispose() {\n    this.sashDragState?.disposable.dispose();\n    dispose(this.viewItems);\n    this.viewItems = [];\n    this.sashItems.forEach((i2) =\u003e i2.disposable.dispose());\n    this.sashItems = [];\n    super.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/table/tableWidget.js\ninit_event();\ninit_lifecycle();\nvar TableListRenderer = class _TableListRenderer {\n  static {\n    this.TemplateId = \"row\";\n  }\n  constructor(columns, renderers, getColumnSize) {\n    this.columns = columns;\n    this.getColumnSize = getColumnSize;\n    this.templateId = _TableListRenderer.TemplateId;\n    this.renderedTemplates = /* @__PURE__ */ new Set();\n    const rendererMap = new Map(renderers.map((r) =\u003e [r.templateId, r]));\n    this.renderers = [];\n    for (const column of columns) {\n      const renderer = rendererMap.get(column.templateId);\n      if (!renderer) {\n        throw new Error(`Table cell renderer for template id ${column.templateId} not found.`);\n      }\n      this.renderers.push(renderer);\n    }\n  }\n  renderTemplate(container) {\n    const rowContainer = append(container, $(\".monaco-table-tr\"));\n    const cellContainers = [];\n    const cellTemplateData = [];\n    for (let i2 = 0; i2 \u003c this.columns.length; i2++) {\n      const renderer = this.renderers[i2];\n      const cellContainer = append(rowContainer, $(\".monaco-table-td\", { \"data-col-index\": i2 }));\n      cellContainer.style.width = `${this.getColumnSize(i2)}px`;\n      cellContainers.push(cellContainer);\n      cellTemplateData.push(renderer.renderTemplate(cellContainer));\n    }\n    const result = { container, cellContainers, cellTemplateData };\n    this.renderedTemplates.add(result);\n    return result;\n  }\n  renderElement(element, index, templateData, renderDetails) {\n    for (let i2 = 0; i2 \u003c this.columns.length; i2++) {\n      const column = this.columns[i2];\n      const cell = column.project(element);\n      const renderer = this.renderers[i2];\n      renderer.renderElement(cell, index, templateData.cellTemplateData[i2], renderDetails);\n    }\n  }\n  disposeElement(element, index, templateData, renderDetails) {\n    for (let i2 = 0; i2 \u003c this.columns.length; i2++) {\n      const renderer = this.renderers[i2];\n      if (renderer.disposeElement) {\n        const column = this.columns[i2];\n        const cell = column.project(element);\n        renderer.disposeElement(cell, index, templateData.cellTemplateData[i2], renderDetails);\n      }\n    }\n  }\n  disposeTemplate(templateData) {\n    for (let i2 = 0; i2 \u003c this.columns.length; i2++) {\n      const renderer = this.renderers[i2];\n      renderer.disposeTemplate(templateData.cellTemplateData[i2]);\n    }\n    clearNode(templateData.container);\n    this.renderedTemplates.delete(templateData);\n  }\n  layoutColumn(index, size2) {\n    for (const { cellContainers } of this.renderedTemplates) {\n      cellContainers[index].style.width = `${size2}px`;\n    }\n  }\n};\nfunction asListVirtualDelegate(delegate) {\n  return {\n    getHeight(row) {\n      return delegate.getHeight(row);\n    },\n    getTemplateId() {\n      return TableListRenderer.TemplateId;\n    }\n  };\n}\nvar ColumnHeader = class extends Disposable {\n  get minimumSize() {\n    return this.column.minimumWidth ?? 120;\n  }\n  get maximumSize() {\n    return this.column.maximumWidth ?? Number.POSITIVE_INFINITY;\n  }\n  get onDidChange() {\n    return this.column.onDidChangeWidthConstraints ?? Event.None;\n  }\n  constructor(column, index) {\n    super();\n    this.column = column;\n    this.index = index;\n    this._onDidLayout = new Emitter();\n    this.onDidLayout = this._onDidLayout.event;\n    this.element = $(\".monaco-table-th\", { \"data-col-index\": index }, column.label);\n    if (column.tooltip) {\n      this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate(\"mouse\"), this.element, column.tooltip));\n    }\n  }\n  layout(size2) {\n    this._onDidLayout.fire([this.index, size2]);\n  }\n};\nvar Table = class _Table {\n  static {\n    this.InstanceCount = 0;\n  }\n  get onDidChangeFocus() {\n    return this.list.onDidChangeFocus;\n  }\n  get onDidChangeSelection() {\n    return this.list.onDidChangeSelection;\n  }\n  get onDidScroll() {\n    return this.list.onDidScroll;\n  }\n  get onMouseDblClick() {\n    return this.list.onMouseDblClick;\n  }\n  get onPointer() {\n    return this.list.onPointer;\n  }\n  get onDidFocus() {\n    return this.list.onDidFocus;\n  }\n  get scrollTop() {\n    return this.list.scrollTop;\n  }\n  set scrollTop(scrollTop) {\n    this.list.scrollTop = scrollTop;\n  }\n  get scrollHeight() {\n    return this.list.scrollHeight;\n  }\n  get renderHeight() {\n    return this.list.renderHeight;\n  }\n  get onDidDispose() {\n    return this.list.onDidDispose;\n  }\n  constructor(user, container, virtualDelegate, columns, renderers, _options) {\n    this.virtualDelegate = virtualDelegate;\n    this.columns = columns;\n    this.domId = `table_id_${++_Table.InstanceCount}`;\n    this.disposables = new DisposableStore();\n    this.cachedWidth = 0;\n    this.cachedHeight = 0;\n    this.domNode = append(container, $(`.monaco-table.${this.domId}`));\n    const headers = columns.map((c, i2) =\u003e this.disposables.add(new ColumnHeader(c, i2)));\n    const descriptor = {\n      size: headers.reduce((a, b) =\u003e a + b.column.weight, 0),\n      views: headers.map((view) =\u003e ({ size: view.column.weight, view }))\n    };\n    this.splitview = this.disposables.add(new SplitView(this.domNode, {\n      orientation: 1,\n      scrollbarVisibility: 2,\n      getSashOrthogonalSize: () =\u003e this.cachedHeight,\n      descriptor\n    }));\n    this.splitview.el.style.height = `${virtualDelegate.headerRowHeight}px`;\n    this.splitview.el.style.lineHeight = `${virtualDelegate.headerRowHeight}px`;\n    const renderer = new TableListRenderer(columns, renderers, (i2) =\u003e this.splitview.getViewSize(i2));\n    this.list = this.disposables.add(new List(user, this.domNode, asListVirtualDelegate(virtualDelegate), [renderer], _options));\n    Event.any(...headers.map((h2) =\u003e h2.onDidLayout))(([index, size2]) =\u003e renderer.layoutColumn(index, size2), null, this.disposables);\n    this.splitview.onDidSashReset((index) =\u003e {\n      const totalWeight = columns.reduce((r, c) =\u003e r + c.weight, 0);\n      const size2 = columns[index].weight / totalWeight * this.cachedWidth;\n      this.splitview.resizeView(index, size2);\n    }, null, this.disposables);\n    this.styleElement = createStyleSheet(this.domNode);\n    this.style(unthemedListStyles);\n  }\n  updateOptions(options2) {\n    this.list.updateOptions(options2);\n  }\n  splice(start, deleteCount, elements = []) {\n    this.list.splice(start, deleteCount, elements);\n  }\n  getHTMLElement() {\n    return this.domNode;\n  }\n  style(styles) {\n    const content = [];\n    content.push(`.monaco-table.${this.domId} \u003e .monaco-split-view2 .monaco-sash.vertical::before {\n\t\t\ttop: ${this.virtualDelegate.headerRowHeight + 1}px;\n\t\t\theight: calc(100% - ${this.virtualDelegate.headerRowHeight}px);\n\t\t}`);\n    this.styleElement.textContent = content.join(\"\\n\");\n    this.list.style(styles);\n  }\n  getSelectedElements() {\n    return this.list.getSelectedElements();\n  }\n  getSelection() {\n    return this.list.getSelection();\n  }\n  getFocus() {\n    return this.list.getFocus();\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/abstractTree.js\ninit_dom();\ninit_keyboardEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/findinput/findInput.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/toggle/toggle.js\ninit_codicons();\ninit_event();\ninit_themables();\nvar unthemedToggleStyles = {\n  inputActiveOptionBorder: \"#007ACC00\",\n  inputActiveOptionForeground: \"#FFFFFF\",\n  inputActiveOptionBackground: \"#0E639C50\"\n};\nvar Toggle = class extends Widget {\n  get onChange() {\n    return this._onChange.event;\n  }\n  get onKeyDown() {\n    return this._onKeyDown.event;\n  }\n  constructor(opts) {\n    super();\n    this._onChange = this._register(new Emitter());\n    this._onKeyDown = this._register(new Emitter());\n    this._opts = opts;\n    this._checked = this._opts.isChecked;\n    const classes2 = [\"monaco-custom-toggle\"];\n    if (this._opts.icon) {\n      this._icon = this._opts.icon;\n      classes2.push(...ThemeIcon.asClassNameArray(this._icon));\n    }\n    if (this._opts.actionClassName) {\n      classes2.push(...this._opts.actionClassName.split(\" \"));\n    }\n    if (this._checked) {\n      classes2.push(\"checked\");\n    }\n    this.domNode = document.createElement(\"div\");\n    this._hover = this._register(getBaseLayerHoverDelegate().setupManagedHover(opts.hoverDelegate ?? getDefaultHoverDelegate(\"mouse\"), this.domNode, this._opts.title));\n    this.domNode.classList.add(...classes2);\n    if (!this._opts.notFocusable) {\n      this.domNode.tabIndex = 0;\n    }\n    this.domNode.setAttribute(\"role\", \"checkbox\");\n    this.domNode.setAttribute(\"aria-checked\", String(this._checked));\n    this.domNode.setAttribute(\"aria-label\", this._opts.title);\n    this.applyStyles();\n    this.onclick(this.domNode, (ev) =\u003e {\n      if (this.enabled) {\n        this.checked = !this._checked;\n        this._onChange.fire(false);\n        ev.preventDefault();\n      }\n    });\n    this._register(this.ignoreGesture(this.domNode));\n    this.onkeydown(this.domNode, (keyboardEvent) =\u003e {\n      if (!this.enabled) {\n        return;\n      }\n      if (keyboardEvent.keyCode === 10 || keyboardEvent.keyCode === 3) {\n        this.checked = !this._checked;\n        this._onChange.fire(true);\n        keyboardEvent.preventDefault();\n        keyboardEvent.stopPropagation();\n        return;\n      }\n      this._onKeyDown.fire(keyboardEvent);\n    });\n  }\n  get enabled() {\n    return this.domNode.getAttribute(\"aria-disabled\") !== \"true\";\n  }\n  focus() {\n    this.domNode.focus();\n  }\n  get checked() {\n    return this._checked;\n  }\n  set checked(newIsChecked) {\n    this._checked = newIsChecked;\n    this.domNode.setAttribute(\"aria-checked\", String(this._checked));\n    this.domNode.classList.toggle(\"checked\", this._checked);\n    this.applyStyles();\n  }\n  setIcon(icon) {\n    if (this._icon) {\n      this.domNode.classList.remove(...ThemeIcon.asClassNameArray(this._icon));\n    }\n    this._icon = icon;\n    if (this._icon) {\n      this.domNode.classList.add(...ThemeIcon.asClassNameArray(this._icon));\n    }\n  }\n  width() {\n    return 2 + 2 + 2 + 16;\n  }\n  applyStyles() {\n    if (this.domNode) {\n      this.domNode.style.borderColor = this._checked \u0026\u0026 this._opts.inputActiveOptionBorder || \"\";\n      this.domNode.style.color = this._checked \u0026\u0026 this._opts.inputActiveOptionForeground || \"inherit\";\n      this.domNode.style.backgroundColor = this._checked \u0026\u0026 this._opts.inputActiveOptionBackground || \"\";\n    }\n  }\n  enable() {\n    this.domNode.setAttribute(\"aria-disabled\", String(false));\n    this.domNode.classList.remove(\"disabled\");\n  }\n  disable() {\n    this.domNode.setAttribute(\"aria-disabled\", String(true));\n    this.domNode.classList.add(\"disabled\");\n  }\n  setTitle(newTitle) {\n    this._hover.update(newTitle);\n    this.domNode.setAttribute(\"aria-label\", newTitle);\n  }\n};\nvar BaseCheckbox = class extends Widget {\n  static {\n    this.CLASS_NAME = \"monaco-checkbox\";\n  }\n  constructor(checkbox, domNode, styles) {\n    super();\n    this.checkbox = checkbox;\n    this.domNode = domNode;\n    this.styles = styles;\n    this._onChange = this._register(new Emitter());\n    this.onChange = this._onChange.event;\n    this.applyStyles();\n  }\n  get enabled() {\n    return this.checkbox.enabled;\n  }\n  enable() {\n    this.checkbox.enable();\n    this.applyStyles(true);\n  }\n  disable() {\n    this.checkbox.disable();\n    this.applyStyles(false);\n  }\n  setTitle(newTitle) {\n    this.checkbox.setTitle(newTitle);\n  }\n  applyStyles(enabled = this.enabled) {\n    this.domNode.style.color = (enabled ? this.styles.checkboxForeground : this.styles.checkboxDisabledForeground) || \"\";\n    this.domNode.style.backgroundColor = (enabled ? this.styles.checkboxBackground : this.styles.checkboxDisabledBackground) || \"\";\n    this.domNode.style.borderColor = (enabled ? this.styles.checkboxBorder : this.styles.checkboxDisabledBackground) || \"\";\n    const size2 = this.styles.size || 18;\n    this.domNode.style.width = this.domNode.style.height = this.domNode.style.fontSize = `${size2}px`;\n    this.domNode.style.fontSize = `${size2 - 2}px`;\n  }\n};\nvar Checkbox = class extends BaseCheckbox {\n  constructor(title, isChecked, styles) {\n    const toggle = new Toggle({ title, isChecked, icon: Codicon.check, actionClassName: BaseCheckbox.CLASS_NAME, hoverDelegate: styles.hoverDelegate, ...unthemedToggleStyles });\n    super(toggle, toggle.domNode, styles);\n    this._register(toggle);\n    this._register(this.checkbox.onChange((keyboard) =\u003e {\n      this.applyStyles();\n      this._onChange.fire(keyboard);\n    }));\n  }\n  get checked() {\n    return this.checkbox.checked;\n  }\n  set checked(newIsChecked) {\n    this.checkbox.checked = newIsChecked;\n    this.applyStyles();\n  }\n  applyStyles(enabled) {\n    if (this.checkbox.checked) {\n      this.checkbox.setIcon(Codicon.check);\n    } else {\n      this.checkbox.setIcon(void 0);\n    }\n    super.applyStyles(enabled);\n  }\n};\nvar TriStateCheckbox = class extends BaseCheckbox {\n  constructor(title, _state, styles) {\n    let icon;\n    switch (_state) {\n      case true:\n        icon = Codicon.check;\n        break;\n      case \"partial\":\n        icon = Codicon.dash;\n        break;\n      case false:\n        icon = void 0;\n        break;\n    }\n    const checkbox = new Toggle({\n      title,\n      isChecked: _state === true,\n      icon,\n      actionClassName: Checkbox.CLASS_NAME,\n      hoverDelegate: styles.hoverDelegate,\n      ...unthemedToggleStyles\n    });\n    super(checkbox, checkbox.domNode, styles);\n    this._state = _state;\n    this._register(checkbox);\n    this._register(this.checkbox.onChange((keyboard) =\u003e {\n      this._state = this.checkbox.checked;\n      this.applyStyles();\n      this._onChange.fire(keyboard);\n    }));\n  }\n  get checked() {\n    return this._state;\n  }\n  set checked(newState) {\n    if (this._state !== newState) {\n      this._state = newState;\n      this.checkbox.checked = newState === true;\n      this.applyStyles();\n    }\n  }\n  applyStyles(enabled) {\n    switch (this._state) {\n      case true:\n        this.checkbox.setIcon(Codicon.check);\n        break;\n      case \"partial\":\n        this.checkbox.setIcon(Codicon.dash);\n        break;\n      case false:\n        this.checkbox.setIcon(void 0);\n        break;\n    }\n    super.applyStyles(enabled);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/findinput/findInputToggles.js\ninit_codicons();\ninit_nls();\nvar NLS_CASE_SENSITIVE_TOGGLE_LABEL = localize(2, \"Match Case\");\nvar NLS_WHOLE_WORD_TOGGLE_LABEL = localize(3, \"Match Whole Word\");\nvar NLS_REGEX_TOGGLE_LABEL = localize(4, \"Use Regular Expression\");\nvar CaseSensitiveToggle = class extends Toggle {\n  constructor(opts) {\n    super({\n      icon: Codicon.caseSensitive,\n      title: NLS_CASE_SENSITIVE_TOGGLE_LABEL + opts.appendTitle,\n      isChecked: opts.isChecked,\n      hoverDelegate: opts.hoverDelegate ?? getDefaultHoverDelegate(\"element\"),\n      inputActiveOptionBorder: opts.inputActiveOptionBorder,\n      inputActiveOptionForeground: opts.inputActiveOptionForeground,\n      inputActiveOptionBackground: opts.inputActiveOptionBackground\n    });\n  }\n};\nvar WholeWordsToggle = class extends Toggle {\n  constructor(opts) {\n    super({\n      icon: Codicon.wholeWord,\n      title: NLS_WHOLE_WORD_TOGGLE_LABEL + opts.appendTitle,\n      isChecked: opts.isChecked,\n      hoverDelegate: opts.hoverDelegate ?? getDefaultHoverDelegate(\"element\"),\n      inputActiveOptionBorder: opts.inputActiveOptionBorder,\n      inputActiveOptionForeground: opts.inputActiveOptionForeground,\n      inputActiveOptionBackground: opts.inputActiveOptionBackground\n    });\n  }\n};\nvar RegexToggle = class extends Toggle {\n  constructor(opts) {\n    super({\n      icon: Codicon.regex,\n      title: NLS_REGEX_TOGGLE_LABEL + opts.appendTitle,\n      isChecked: opts.isChecked,\n      hoverDelegate: opts.hoverDelegate ?? getDefaultHoverDelegate(\"element\"),\n      inputActiveOptionBorder: opts.inputActiveOptionBorder,\n      inputActiveOptionForeground: opts.inputActiveOptionForeground,\n      inputActiveOptionBackground: opts.inputActiveOptionBackground\n    });\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/inputbox/inputBox.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/formattedTextRenderer.js\ninit_dom();\nfunction renderText(text2, _options, target) {\n  const element = target ?? document.createElement(\"div\");\n  element.textContent = text2;\n  return element;\n}\nfunction renderFormattedText(formattedText, options2, target) {\n  const element = target ?? document.createElement(\"div\");\n  element.textContent = \"\";\n  _renderFormattedText(element, parseFormattedText(formattedText, !!options2?.renderCodeSegments), options2?.actionHandler, options2?.renderCodeSegments);\n  return element;\n}\nvar StringStream = class {\n  constructor(source) {\n    this.source = source;\n    this.index = 0;\n  }\n  eos() {\n    return this.index \u003e= this.source.length;\n  }\n  next() {\n    const next = this.peek();\n    this.advance();\n    return next;\n  }\n  peek() {\n    return this.source[this.index];\n  }\n  advance() {\n    this.index++;\n  }\n};\nfunction _renderFormattedText(element, treeNode, actionHandler, renderCodeSegments) {\n  let child;\n  if (treeNode.type === 2) {\n    child = document.createTextNode(treeNode.content || \"\");\n  } else if (treeNode.type === 3) {\n    child = document.createElement(\"b\");\n  } else if (treeNode.type === 4) {\n    child = document.createElement(\"i\");\n  } else if (treeNode.type === 7 \u0026\u0026 renderCodeSegments) {\n    child = document.createElement(\"code\");\n  } else if (treeNode.type === 5 \u0026\u0026 actionHandler) {\n    const a = document.createElement(\"a\");\n    actionHandler.disposables.add(addStandardDisposableListener(a, \"click\", (event) =\u003e {\n      actionHandler.callback(String(treeNode.index), event);\n    }));\n    child = a;\n  } else if (treeNode.type === 8) {\n    child = document.createElement(\"br\");\n  } else if (treeNode.type === 1) {\n    child = element;\n  }\n  if (child \u0026\u0026 element !== child) {\n    element.appendChild(child);\n  }\n  if (child \u0026\u0026 Array.isArray(treeNode.children)) {\n    treeNode.children.forEach((nodeChild) =\u003e {\n      _renderFormattedText(child, nodeChild, actionHandler, renderCodeSegments);\n    });\n  }\n}\nfunction parseFormattedText(content, parseCodeSegments) {\n  const root = {\n    type: 1,\n    children: []\n  };\n  let actionViewItemIndex = 0;\n  let current = root;\n  const stack = [];\n  const stream = new StringStream(content);\n  while (!stream.eos()) {\n    let next = stream.next();\n    const isEscapedFormatType = next === \"\\\\\" \u0026\u0026 formatTagType(stream.peek(), parseCodeSegments) !== 0;\n    if (isEscapedFormatType) {\n      next = stream.next();\n    }\n    if (!isEscapedFormatType \u0026\u0026 isFormatTag(next, parseCodeSegments) \u0026\u0026 next === stream.peek()) {\n      stream.advance();\n      if (current.type === 2) {\n        current = stack.pop();\n      }\n      const type = formatTagType(next, parseCodeSegments);\n      if (current.type === type || current.type === 5 \u0026\u0026 type === 6) {\n        current = stack.pop();\n      } else {\n        const newCurrent = {\n          type,\n          children: []\n        };\n        if (type === 5) {\n          newCurrent.index = actionViewItemIndex;\n          actionViewItemIndex++;\n        }\n        current.children.push(newCurrent);\n        stack.push(current);\n        current = newCurrent;\n      }\n    } else if (next === \"\\n\") {\n      if (current.type === 2) {\n        current = stack.pop();\n      }\n      current.children.push({\n        type: 8\n        /* FormatType.NewLine */\n      });\n    } else {\n      if (current.type !== 2) {\n        const textCurrent = {\n          type: 2,\n          content: next\n        };\n        current.children.push(textCurrent);\n        stack.push(current);\n        current = textCurrent;\n      } else {\n        current.content += next;\n      }\n    }\n  }\n  if (current.type === 2) {\n    current = stack.pop();\n  }\n  if (stack.length) {\n  }\n  return root;\n}\nfunction isFormatTag(char, supportCodeSegments) {\n  return formatTagType(char, supportCodeSegments) !== 0;\n}\nfunction formatTagType(char, supportCodeSegments) {\n  switch (char) {\n    case \"*\":\n      return 3;\n    case \"_\":\n      return 4;\n    case \"[\":\n      return 5;\n    case \"]\":\n      return 6;\n    case \"`\":\n      return supportCodeSegments ? 7 : 0;\n    default:\n      return 0;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/inputbox/inputBox.js\ninit_event();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/navigator.js\nvar ArrayNavigator = class {\n  constructor(items, start = 0, end = items.length, index = start - 1) {\n    this.items = items;\n    this.start = start;\n    this.end = end;\n    this.index = index;\n  }\n  current() {\n    if (this.index === this.start - 1 || this.index === this.end) {\n      return null;\n    }\n    return this.items[this.index];\n  }\n  next() {\n    this.index = Math.min(this.index + 1, this.end);\n    return this.current();\n  }\n  previous() {\n    this.index = Math.max(this.index - 1, this.start - 1);\n    return this.current();\n  }\n  first() {\n    this.index = this.start;\n    return this.current();\n  }\n  last() {\n    this.index = this.end - 1;\n    return this.current();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/history.js\nvar HistoryNavigator = class {\n  constructor(_history = /* @__PURE__ */ new Set(), limit = 10) {\n    this._history = _history;\n    this._limit = limit;\n    this._onChange();\n    if (this._history.onDidChange) {\n      this._disposable = this._history.onDidChange(() =\u003e this._onChange());\n    }\n  }\n  getHistory() {\n    return this._elements;\n  }\n  add(t) {\n    this._history.delete(t);\n    this._history.add(t);\n    this._onChange();\n  }\n  next() {\n    return this._navigator.next();\n  }\n  previous() {\n    if (this._currentPosition() !== 0) {\n      return this._navigator.previous();\n    }\n    return null;\n  }\n  current() {\n    return this._navigator.current();\n  }\n  first() {\n    return this._navigator.first();\n  }\n  last() {\n    return this._navigator.last();\n  }\n  isLast() {\n    return this._currentPosition() \u003e= this._elements.length - 1;\n  }\n  isNowhere() {\n    return this._navigator.current() === null;\n  }\n  has(t) {\n    return this._history.has(t);\n  }\n  _onChange() {\n    this._reduceToLimit();\n    const elements = this._elements;\n    this._navigator = new ArrayNavigator(elements, 0, elements.length, elements.length);\n  }\n  _reduceToLimit() {\n    const data = this._elements;\n    if (data.length \u003e this._limit) {\n      const replaceValue = data.slice(data.length - this._limit);\n      if (this._history.replace) {\n        this._history.replace(replaceValue);\n      } else {\n        this._history = new Set(replaceValue);\n      }\n    }\n  }\n  _currentPosition() {\n    const currentElement = this._navigator.current();\n    if (!currentElement) {\n      return -1;\n    }\n    return this._elements.indexOf(currentElement);\n  }\n  get _elements() {\n    const elements = [];\n    this._history.forEach((e) =\u003e elements.push(e));\n    return elements;\n  }\n  dispose() {\n    if (this._disposable) {\n      this._disposable.dispose();\n      this._disposable = void 0;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/inputbox/inputBox.js\ninit_objects();\ninit_nls();\ninit_lifecycle();\nvar $13 = $;\nvar InputBox = class extends Widget {\n  get onDidChange() {\n    return this._onDidChange.event;\n  }\n  get onDidHeightChange() {\n    return this._onDidHeightChange.event;\n  }\n  constructor(container, contextViewProvider, options2) {\n    super();\n    this.state = \"idle\";\n    this.maxHeight = Number.POSITIVE_INFINITY;\n    this.hover = this._register(new MutableDisposable());\n    this._onDidChange = this._register(new Emitter());\n    this._onDidHeightChange = this._register(new Emitter());\n    this.contextViewProvider = contextViewProvider;\n    this.options = options2;\n    this.message = null;\n    this.placeholder = this.options.placeholder || \"\";\n    this.tooltip = this.options.tooltip ?? (this.placeholder || \"\");\n    this.ariaLabel = this.options.ariaLabel || \"\";\n    if (this.options.validationOptions) {\n      this.validation = this.options.validationOptions.validation;\n    }\n    this.element = append(container, $13(\".monaco-inputbox.idle\"));\n    const tagName = this.options.flexibleHeight ? \"textarea\" : \"input\";\n    const wrapper = append(this.element, $13(\".ibwrapper\"));\n    this.input = append(wrapper, $13(tagName + \".input.empty\"));\n    this.input.setAttribute(\"autocorrect\", \"off\");\n    this.input.setAttribute(\"autocapitalize\", \"off\");\n    this.input.setAttribute(\"spellcheck\", \"false\");\n    this.onfocus(this.input, () =\u003e this.element.classList.add(\"synthetic-focus\"));\n    this.onblur(this.input, () =\u003e this.element.classList.remove(\"synthetic-focus\"));\n    if (this.options.flexibleHeight) {\n      this.maxHeight = typeof this.options.flexibleMaxHeight === \"number\" ? this.options.flexibleMaxHeight : Number.POSITIVE_INFINITY;\n      this.mirror = append(wrapper, $13(\"div.mirror\"));\n      this.mirror.innerText = \"\\xA0\";\n      this.scrollableElement = new ScrollableElement(this.element, {\n        vertical: 1\n        /* ScrollbarVisibility.Auto */\n      });\n      if (this.options.flexibleWidth) {\n        this.input.setAttribute(\"wrap\", \"off\");\n        this.mirror.style.whiteSpace = \"pre\";\n        this.mirror.style.wordWrap = \"initial\";\n      }\n      append(container, this.scrollableElement.getDomNode());\n      this._register(this.scrollableElement);\n      this._register(this.scrollableElement.onScroll((e) =\u003e this.input.scrollTop = e.scrollTop));\n      const onSelectionChange = this._register(new DomEmitter(container.ownerDocument, \"selectionchange\"));\n      const onAnchoredSelectionChange = Event.filter(onSelectionChange.event, () =\u003e {\n        const selection = container.ownerDocument.getSelection();\n        return selection?.anchorNode === wrapper;\n      });\n      this._register(onAnchoredSelectionChange(this.updateScrollDimensions, this));\n      this._register(this.onDidHeightChange(this.updateScrollDimensions, this));\n    } else {\n      this.input.type = this.options.type || \"text\";\n      this.input.setAttribute(\"wrap\", \"off\");\n    }\n    if (this.ariaLabel) {\n      this.input.setAttribute(\"aria-label\", this.ariaLabel);\n    }\n    if (this.placeholder \u0026\u0026 !this.options.showPlaceholderOnFocus) {\n      this.setPlaceHolder(this.placeholder);\n    }\n    if (this.tooltip) {\n      this.setTooltip(this.tooltip);\n    }\n    this.oninput(this.input, () =\u003e this.onValueChange());\n    this.onblur(this.input, () =\u003e this.onBlur());\n    this.onfocus(this.input, () =\u003e this.onFocus());\n    this._register(this.ignoreGesture(this.input));\n    setTimeout(() =\u003e this.updateMirror(), 0);\n    if (this.options.actions) {\n      this.actionbar = this._register(new ActionBar(this.element));\n      this.actionbar.push(this.options.actions, { icon: true, label: false });\n    }\n    this.applyStyles();\n  }\n  onBlur() {\n    this._hideMessage();\n    if (this.options.showPlaceholderOnFocus) {\n      this.input.setAttribute(\"placeholder\", \"\");\n    }\n  }\n  onFocus() {\n    this._showMessage();\n    if (this.options.showPlaceholderOnFocus) {\n      this.input.setAttribute(\"placeholder\", this.placeholder || \"\");\n    }\n  }\n  setPlaceHolder(placeHolder) {\n    this.placeholder = placeHolder;\n    this.input.setAttribute(\"placeholder\", placeHolder);\n  }\n  setTooltip(tooltip) {\n    this.tooltip = tooltip;\n    if (!this.hover.value) {\n      this.hover.value = this._register(getBaseLayerHoverDelegate().setupDelayedHoverAtMouse(this.input, () =\u003e ({\n        content: this.tooltip,\n        appearance: {\n          compact: true\n        }\n      })));\n    }\n  }\n  get inputElement() {\n    return this.input;\n  }\n  get value() {\n    return this.input.value;\n  }\n  set value(newValue) {\n    if (this.input.value !== newValue) {\n      this.input.value = newValue;\n      this.onValueChange();\n    }\n  }\n  get height() {\n    return typeof this.cachedHeight === \"number\" ? this.cachedHeight : getTotalHeight(this.element);\n  }\n  focus() {\n    this.input.focus();\n  }\n  blur() {\n    this.input.blur();\n  }\n  hasFocus() {\n    return isActiveElement(this.input);\n  }\n  select(range2 = null) {\n    this.input.select();\n    if (range2) {\n      this.input.setSelectionRange(range2.start, range2.end);\n      if (range2.end === this.input.value.length) {\n        this.input.scrollLeft = this.input.scrollWidth;\n      }\n    }\n  }\n  isSelectionAtEnd() {\n    return this.input.selectionEnd === this.input.value.length \u0026\u0026 this.input.selectionStart === this.input.selectionEnd;\n  }\n  getSelection() {\n    const selectionStart = this.input.selectionStart;\n    if (selectionStart === null) {\n      return null;\n    }\n    const selectionEnd = this.input.selectionEnd ?? selectionStart;\n    return {\n      start: selectionStart,\n      end: selectionEnd\n    };\n  }\n  enable() {\n    this.input.removeAttribute(\"disabled\");\n  }\n  disable() {\n    this.blur();\n    this.input.disabled = true;\n    this._hideMessage();\n  }\n  set paddingRight(paddingRight) {\n    this.input.style.width = `calc(100% - ${paddingRight}px)`;\n    if (this.mirror) {\n      this.mirror.style.paddingRight = paddingRight + \"px\";\n    }\n  }\n  updateScrollDimensions() {\n    if (typeof this.cachedContentHeight !== \"number\" || typeof this.cachedHeight !== \"number\" || !this.scrollableElement) {\n      return;\n    }\n    const scrollHeight = this.cachedContentHeight;\n    const height = this.cachedHeight;\n    const scrollTop = this.input.scrollTop;\n    this.scrollableElement.setScrollDimensions({ scrollHeight, height });\n    this.scrollableElement.setScrollPosition({ scrollTop });\n  }\n  showMessage(message, force) {\n    if (this.state === \"open\" \u0026\u0026 equals2(this.message, message)) {\n      return;\n    }\n    this.message = message;\n    this.element.classList.remove(\"idle\");\n    this.element.classList.remove(\"info\");\n    this.element.classList.remove(\"warning\");\n    this.element.classList.remove(\"error\");\n    this.element.classList.add(this.classForType(message.type));\n    const styles = this.stylesForType(this.message.type);\n    this.element.style.border = `1px solid ${asCssValueWithDefault(styles.border, \"transparent\")}`;\n    if (this.message.content \u0026\u0026 (this.hasFocus() || force)) {\n      this._showMessage();\n    }\n  }\n  hideMessage() {\n    this.message = null;\n    this.element.classList.remove(\"info\");\n    this.element.classList.remove(\"warning\");\n    this.element.classList.remove(\"error\");\n    this.element.classList.add(\"idle\");\n    this._hideMessage();\n    this.applyStyles();\n  }\n  validate() {\n    let errorMsg = null;\n    if (this.validation) {\n      errorMsg = this.validation(this.value);\n      if (errorMsg) {\n        this.inputElement.setAttribute(\"aria-invalid\", \"true\");\n        this.showMessage(errorMsg);\n      } else if (this.inputElement.hasAttribute(\"aria-invalid\")) {\n        this.inputElement.removeAttribute(\"aria-invalid\");\n        this.hideMessage();\n      }\n    }\n    return errorMsg?.type;\n  }\n  stylesForType(type) {\n    const styles = this.options.inputBoxStyles;\n    switch (type) {\n      case 1:\n        return { border: styles.inputValidationInfoBorder, background: styles.inputValidationInfoBackground, foreground: styles.inputValidationInfoForeground };\n      case 2:\n        return { border: styles.inputValidationWarningBorder, background: styles.inputValidationWarningBackground, foreground: styles.inputValidationWarningForeground };\n      default:\n        return { border: styles.inputValidationErrorBorder, background: styles.inputValidationErrorBackground, foreground: styles.inputValidationErrorForeground };\n    }\n  }\n  classForType(type) {\n    switch (type) {\n      case 1:\n        return \"info\";\n      case 2:\n        return \"warning\";\n      default:\n        return \"error\";\n    }\n  }\n  _showMessage() {\n    if (!this.contextViewProvider || !this.message) {\n      return;\n    }\n    let div;\n    const layout2 = () =\u003e div.style.width = getTotalWidth(this.element) + \"px\";\n    this.contextViewProvider.showContextView({\n      getAnchor: () =\u003e this.element,\n      anchorAlignment: 1,\n      render: (container) =\u003e {\n        if (!this.message) {\n          return null;\n        }\n        div = append(container, $13(\".monaco-inputbox-container\"));\n        layout2();\n        const spanElement = $13(\"span.monaco-inputbox-message\");\n        if (this.message.formatContent) {\n          renderFormattedText(this.message.content, void 0, spanElement);\n        } else {\n          renderText(this.message.content, void 0, spanElement);\n        }\n        spanElement.classList.add(this.classForType(this.message.type));\n        const styles = this.stylesForType(this.message.type);\n        spanElement.style.backgroundColor = styles.background ?? \"\";\n        spanElement.style.color = styles.foreground ?? \"\";\n        spanElement.style.border = styles.border ? `1px solid ${styles.border}` : \"\";\n        append(div, spanElement);\n        return null;\n      },\n      onHide: () =\u003e {\n        this.state = \"closed\";\n      },\n      layout: layout2\n    });\n    let alertText;\n    if (this.message.type === 3) {\n      alertText = localize(9, \"Error: {0}\", this.message.content);\n    } else if (this.message.type === 2) {\n      alertText = localize(10, \"Warning: {0}\", this.message.content);\n    } else {\n      alertText = localize(11, \"Info: {0}\", this.message.content);\n    }\n    alert(alertText);\n    this.state = \"open\";\n  }\n  _hideMessage() {\n    if (!this.contextViewProvider) {\n      return;\n    }\n    if (this.state === \"open\") {\n      this.contextViewProvider.hideContextView();\n    }\n    this.state = \"idle\";\n  }\n  onValueChange() {\n    this._onDidChange.fire(this.value);\n    this.validate();\n    this.updateMirror();\n    this.input.classList.toggle(\"empty\", !this.value);\n    if (this.state === \"open\" \u0026\u0026 this.contextViewProvider) {\n      this.contextViewProvider.layout();\n    }\n  }\n  updateMirror() {\n    if (!this.mirror) {\n      return;\n    }\n    const value = this.value;\n    const lastCharCode = value.charCodeAt(value.length - 1);\n    const suffix = lastCharCode === 10 ? \" \" : \"\";\n    const mirrorTextContent = (value + suffix).replace(/\\u000c/g, \"\");\n    if (mirrorTextContent) {\n      this.mirror.textContent = value + suffix;\n    } else {\n      this.mirror.innerText = \"\\xA0\";\n    }\n    this.layout();\n  }\n  applyStyles() {\n    const styles = this.options.inputBoxStyles;\n    const background = styles.inputBackground ?? \"\";\n    const foreground2 = styles.inputForeground ?? \"\";\n    const border = styles.inputBorder ?? \"\";\n    this.element.style.backgroundColor = background;\n    this.element.style.color = foreground2;\n    this.input.style.backgroundColor = \"inherit\";\n    this.input.style.color = foreground2;\n    this.element.style.border = `1px solid ${asCssValueWithDefault(border, \"transparent\")}`;\n  }\n  layout() {\n    if (!this.mirror) {\n      return;\n    }\n    const previousHeight = this.cachedContentHeight;\n    this.cachedContentHeight = getTotalHeight(this.mirror);\n    if (previousHeight !== this.cachedContentHeight) {\n      this.cachedHeight = Math.min(this.cachedContentHeight, this.maxHeight);\n      this.input.style.height = this.cachedHeight + \"px\";\n      this._onDidHeightChange.fire(this.cachedContentHeight);\n    }\n  }\n  insertAtCursor(text2) {\n    const inputElement = this.inputElement;\n    const start = inputElement.selectionStart;\n    const end = inputElement.selectionEnd;\n    const content = inputElement.value;\n    if (start !== null \u0026\u0026 end !== null) {\n      this.value = content.substr(0, start) + text2 + content.substr(end);\n      inputElement.setSelectionRange(start + 1, start + 1);\n      this.layout();\n    }\n  }\n  dispose() {\n    this._hideMessage();\n    this.message = null;\n    this.actionbar?.dispose();\n    super.dispose();\n  }\n};\nvar HistoryInputBox = class extends InputBox {\n  constructor(container, contextViewProvider, options2) {\n    const NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS = localize(12, \" or {0} for history\", `\\u21C5`);\n    const NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS = localize(13, \" ({0} for history)\", `\\u21C5`);\n    super(container, contextViewProvider, options2);\n    this._onDidFocus = this._register(new Emitter());\n    this.onDidFocus = this._onDidFocus.event;\n    this._onDidBlur = this._register(new Emitter());\n    this.onDidBlur = this._onDidBlur.event;\n    this.history = this._register(new HistoryNavigator(options2.history, 100));\n    const addSuffix = () =\u003e {\n      if (options2.showHistoryHint \u0026\u0026 options2.showHistoryHint() \u0026\u0026 !this.placeholder.endsWith(NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS) \u0026\u0026 !this.placeholder.endsWith(NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS) \u0026\u0026 this.history.getHistory().length) {\n        const suffix = this.placeholder.endsWith(\")\") ? NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS : NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS;\n        const suffixedPlaceholder = this.placeholder + suffix;\n        if (options2.showPlaceholderOnFocus \u0026\u0026 !isActiveElement(this.input)) {\n          this.placeholder = suffixedPlaceholder;\n        } else {\n          this.setPlaceHolder(suffixedPlaceholder);\n        }\n      }\n    };\n    this.observer = new MutationObserver((mutationList, observer) =\u003e {\n      mutationList.forEach((mutation) =\u003e {\n        if (!mutation.target.textContent) {\n          addSuffix();\n        }\n      });\n    });\n    this.observer.observe(this.input, { attributeFilter: [\"class\"] });\n    this.onfocus(this.input, () =\u003e addSuffix());\n    this.onblur(this.input, () =\u003e {\n      const resetPlaceholder = (historyHint) =\u003e {\n        if (!this.placeholder.endsWith(historyHint)) {\n          return false;\n        } else {\n          const revertedPlaceholder = this.placeholder.slice(0, this.placeholder.length - historyHint.length);\n          if (options2.showPlaceholderOnFocus) {\n            this.placeholder = revertedPlaceholder;\n          } else {\n            this.setPlaceHolder(revertedPlaceholder);\n          }\n          return true;\n        }\n      };\n      if (!resetPlaceholder(NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_IN_PARENS)) {\n        resetPlaceholder(NLS_PLACEHOLDER_HISTORY_HINT_SUFFIX_NO_PARENS);\n      }\n    });\n  }\n  dispose() {\n    super.dispose();\n    if (this.observer) {\n      this.observer.disconnect();\n      this.observer = void 0;\n    }\n  }\n  addToHistory(always) {\n    if (this.value \u0026\u0026 (always || this.value !== this.getCurrentValue())) {\n      this.history.add(this.value);\n    }\n  }\n  isAtLastInHistory() {\n    return this.history.isLast();\n  }\n  isNowhereInHistory() {\n    return this.history.isNowhere();\n  }\n  showNextValue() {\n    if (!this.history.has(this.value)) {\n      this.addToHistory();\n    }\n    let next = this.getNextValue();\n    if (next) {\n      next = next === this.value ? this.getNextValue() : next;\n    }\n    this.value = next ?? \"\";\n    status(this.value ? this.value : localize(14, \"Cleared Input\"));\n  }\n  showPreviousValue() {\n    if (!this.history.has(this.value)) {\n      this.addToHistory();\n    }\n    let previous = this.getPreviousValue();\n    if (previous) {\n      previous = previous === this.value ? this.getPreviousValue() : previous;\n    }\n    if (previous) {\n      this.value = previous;\n      status(this.value);\n    }\n  }\n  setPlaceHolder(placeHolder) {\n    super.setPlaceHolder(placeHolder);\n    this.setTooltip(placeHolder);\n  }\n  onBlur() {\n    super.onBlur();\n    this._onDidBlur.fire();\n  }\n  onFocus() {\n    super.onFocus();\n    this._onDidFocus.fire();\n  }\n  getCurrentValue() {\n    let currentValue = this.history.current();\n    if (!currentValue) {\n      currentValue = this.history.last();\n      this.history.next();\n    }\n    return currentValue;\n  }\n  getPreviousValue() {\n    return this.history.previous() || this.history.first();\n  }\n  getNextValue() {\n    return this.history.next();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/findinput/findInput.js\ninit_event();\ninit_nls();\ninit_lifecycle();\nvar NLS_DEFAULT_LABEL = localize(1, \"input\");\nvar FindInput = class extends Widget {\n  get onDidOptionChange() {\n    return this._onDidOptionChange.event;\n  }\n  get onKeyDown() {\n    return this._onKeyDown.event;\n  }\n  get onMouseDown() {\n    return this._onMouseDown.event;\n  }\n  get onCaseSensitiveKeyDown() {\n    return this._onCaseSensitiveKeyDown.event;\n  }\n  get onRegexKeyDown() {\n    return this._onRegexKeyDown.event;\n  }\n  constructor(parent, contextViewProvider, options2) {\n    super();\n    this.fixFocusOnOptionClickEnabled = true;\n    this.imeSessionInProgress = false;\n    this.additionalTogglesDisposables = this._register(new MutableDisposable());\n    this.additionalToggles = [];\n    this._onDidOptionChange = this._register(new Emitter());\n    this._onKeyDown = this._register(new Emitter());\n    this._onMouseDown = this._register(new Emitter());\n    this._onInput = this._register(new Emitter());\n    this._onKeyUp = this._register(new Emitter());\n    this._onCaseSensitiveKeyDown = this._register(new Emitter());\n    this._onRegexKeyDown = this._register(new Emitter());\n    this._lastHighlightFindOptions = 0;\n    this.placeholder = options2.placeholder || \"\";\n    this.validation = options2.validation;\n    this.label = options2.label || NLS_DEFAULT_LABEL;\n    this.showCommonFindToggles = !!options2.showCommonFindToggles;\n    const appendCaseSensitiveLabel = options2.appendCaseSensitiveLabel || \"\";\n    const appendWholeWordsLabel = options2.appendWholeWordsLabel || \"\";\n    const appendRegexLabel = options2.appendRegexLabel || \"\";\n    const flexibleHeight = !!options2.flexibleHeight;\n    const flexibleWidth = !!options2.flexibleWidth;\n    const flexibleMaxHeight = options2.flexibleMaxHeight;\n    this.domNode = document.createElement(\"div\");\n    this.domNode.classList.add(\"monaco-findInput\");\n    this.inputBox = this._register(new HistoryInputBox(this.domNode, contextViewProvider, {\n      placeholder: this.placeholder || \"\",\n      ariaLabel: this.label || \"\",\n      validationOptions: {\n        validation: this.validation\n      },\n      showHistoryHint: options2.showHistoryHint,\n      flexibleHeight,\n      flexibleWidth,\n      flexibleMaxHeight,\n      inputBoxStyles: options2.inputBoxStyles,\n      history: options2.history\n    }));\n    const hoverDelegate = this._register(createInstantHoverDelegate());\n    if (this.showCommonFindToggles) {\n      this.regex = this._register(new RegexToggle({\n        appendTitle: appendRegexLabel,\n        isChecked: false,\n        hoverDelegate,\n        ...options2.toggleStyles\n      }));\n      this._register(this.regex.onChange((viaKeyboard) =\u003e {\n        this._onDidOptionChange.fire(viaKeyboard);\n        if (!viaKeyboard \u0026\u0026 this.fixFocusOnOptionClickEnabled) {\n          this.inputBox.focus();\n        }\n        this.validate();\n      }));\n      this._register(this.regex.onKeyDown((e) =\u003e {\n        this._onRegexKeyDown.fire(e);\n      }));\n      this.wholeWords = this._register(new WholeWordsToggle({\n        appendTitle: appendWholeWordsLabel,\n        isChecked: false,\n        hoverDelegate,\n        ...options2.toggleStyles\n      }));\n      this._register(this.wholeWords.onChange((viaKeyboard) =\u003e {\n        this._onDidOptionChange.fire(viaKeyboard);\n        if (!viaKeyboard \u0026\u0026 this.fixFocusOnOptionClickEnabled) {\n          this.inputBox.focus();\n        }\n        this.validate();\n      }));\n      this.caseSensitive = this._register(new CaseSensitiveToggle({\n        appendTitle: appendCaseSensitiveLabel,\n        isChecked: false,\n        hoverDelegate,\n        ...options2.toggleStyles\n      }));\n      this._register(this.caseSensitive.onChange((viaKeyboard) =\u003e {\n        this._onDidOptionChange.fire(viaKeyboard);\n        if (!viaKeyboard \u0026\u0026 this.fixFocusOnOptionClickEnabled) {\n          this.inputBox.focus();\n        }\n        this.validate();\n      }));\n      this._register(this.caseSensitive.onKeyDown((e) =\u003e {\n        this._onCaseSensitiveKeyDown.fire(e);\n      }));\n      const indexes = [this.caseSensitive.domNode, this.wholeWords.domNode, this.regex.domNode];\n      this.onkeydown(this.domNode, (event) =\u003e {\n        if (event.equals(\n          15\n          /* KeyCode.LeftArrow */\n        ) || event.equals(\n          17\n          /* KeyCode.RightArrow */\n        ) || event.equals(\n          9\n          /* KeyCode.Escape */\n        )) {\n          const index = indexes.indexOf(this.domNode.ownerDocument.activeElement);\n          if (index \u003e= 0) {\n            let newIndex = -1;\n            if (event.equals(\n              17\n              /* KeyCode.RightArrow */\n            )) {\n              newIndex = (index + 1) % indexes.length;\n            } else if (event.equals(\n              15\n              /* KeyCode.LeftArrow */\n            )) {\n              if (index === 0) {\n                newIndex = indexes.length - 1;\n              } else {\n                newIndex = index - 1;\n              }\n            }\n            if (event.equals(\n              9\n              /* KeyCode.Escape */\n            )) {\n              indexes[index].blur();\n              this.inputBox.focus();\n            } else if (newIndex \u003e= 0) {\n              indexes[newIndex].focus();\n            }\n            EventHelper.stop(event, true);\n          }\n        }\n      });\n    }\n    this.controls = document.createElement(\"div\");\n    this.controls.className = \"controls\";\n    this.controls.style.display = this.showCommonFindToggles ? \"\" : \"none\";\n    if (this.caseSensitive) {\n      this.controls.append(this.caseSensitive.domNode);\n    }\n    if (this.wholeWords) {\n      this.controls.appendChild(this.wholeWords.domNode);\n    }\n    if (this.regex) {\n      this.controls.appendChild(this.regex.domNode);\n    }\n    this.setAdditionalToggles(options2?.additionalToggles);\n    if (this.controls) {\n      this.domNode.appendChild(this.controls);\n    }\n    parent?.appendChild(this.domNode);\n    this._register(addDisposableListener(this.inputBox.inputElement, \"compositionstart\", (e) =\u003e {\n      this.imeSessionInProgress = true;\n    }));\n    this._register(addDisposableListener(this.inputBox.inputElement, \"compositionend\", (e) =\u003e {\n      this.imeSessionInProgress = false;\n      this._onInput.fire();\n    }));\n    this.onkeydown(this.inputBox.inputElement, (e) =\u003e this._onKeyDown.fire(e));\n    this.onkeyup(this.inputBox.inputElement, (e) =\u003e this._onKeyUp.fire(e));\n    this.oninput(this.inputBox.inputElement, (e) =\u003e this._onInput.fire());\n    this.onmousedown(this.inputBox.inputElement, (e) =\u003e this._onMouseDown.fire(e));\n  }\n  get onDidChange() {\n    return this.inputBox.onDidChange;\n  }\n  layout(style) {\n    this.inputBox.layout();\n    this.updateInputBoxPadding(style.collapsedFindWidget);\n  }\n  enable() {\n    this.domNode.classList.remove(\"disabled\");\n    this.inputBox.enable();\n    this.regex?.enable();\n    this.wholeWords?.enable();\n    this.caseSensitive?.enable();\n    for (const toggle of this.additionalToggles) {\n      toggle.enable();\n    }\n  }\n  disable() {\n    this.domNode.classList.add(\"disabled\");\n    this.inputBox.disable();\n    this.regex?.disable();\n    this.wholeWords?.disable();\n    this.caseSensitive?.disable();\n    for (const toggle of this.additionalToggles) {\n      toggle.disable();\n    }\n  }\n  setFocusInputOnOptionClick(value) {\n    this.fixFocusOnOptionClickEnabled = value;\n  }\n  setEnabled(enabled) {\n    if (enabled) {\n      this.enable();\n    } else {\n      this.disable();\n    }\n  }\n  setAdditionalToggles(toggles) {\n    for (const currentToggle of this.additionalToggles) {\n      currentToggle.domNode.remove();\n    }\n    this.additionalToggles = [];\n    this.additionalTogglesDisposables.value = new DisposableStore();\n    for (const toggle of toggles ?? []) {\n      this.additionalTogglesDisposables.value.add(toggle);\n      this.controls.appendChild(toggle.domNode);\n      this.additionalTogglesDisposables.value.add(toggle.onChange((viaKeyboard) =\u003e {\n        this._onDidOptionChange.fire(viaKeyboard);\n        if (!viaKeyboard \u0026\u0026 this.fixFocusOnOptionClickEnabled) {\n          this.inputBox.focus();\n        }\n      }));\n      this.additionalToggles.push(toggle);\n    }\n    if (this.additionalToggles.length \u003e 0) {\n      this.controls.style.display = \"\";\n    }\n    this.updateInputBoxPadding();\n  }\n  updateInputBoxPadding(controlsHidden = false) {\n    if (controlsHidden) {\n      this.inputBox.paddingRight = 0;\n    } else {\n      this.inputBox.paddingRight = (this.caseSensitive?.width() ?? 0) + (this.wholeWords?.width() ?? 0) + (this.regex?.width() ?? 0) + this.additionalToggles.reduce((r, t) =\u003e r + t.width(), 0);\n    }\n  }\n  getValue() {\n    return this.inputBox.value;\n  }\n  setValue(value) {\n    if (this.inputBox.value !== value) {\n      this.inputBox.value = value;\n    }\n  }\n  select() {\n    this.inputBox.select();\n  }\n  focus() {\n    this.inputBox.focus();\n  }\n  getCaseSensitive() {\n    return this.caseSensitive?.checked ?? false;\n  }\n  setCaseSensitive(value) {\n    if (this.caseSensitive) {\n      this.caseSensitive.checked = value;\n    }\n  }\n  getWholeWords() {\n    return this.wholeWords?.checked ?? false;\n  }\n  setWholeWords(value) {\n    if (this.wholeWords) {\n      this.wholeWords.checked = value;\n    }\n  }\n  getRegex() {\n    return this.regex?.checked ?? false;\n  }\n  setRegex(value) {\n    if (this.regex) {\n      this.regex.checked = value;\n      this.validate();\n    }\n  }\n  focusOnCaseSensitive() {\n    this.caseSensitive?.focus();\n  }\n  highlightFindOptions() {\n    this.domNode.classList.remove(\"highlight-\" + this._lastHighlightFindOptions);\n    this._lastHighlightFindOptions = 1 - this._lastHighlightFindOptions;\n    this.domNode.classList.add(\"highlight-\" + this._lastHighlightFindOptions);\n  }\n  validate() {\n    this.inputBox.validate();\n  }\n  showMessage(message) {\n    this.inputBox.showMessage(message);\n  }\n  clearMessage() {\n    this.inputBox.hideMessage();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/tree.js\nvar ObjectTreeElementCollapseState;\n(function(ObjectTreeElementCollapseState2) {\n  ObjectTreeElementCollapseState2[ObjectTreeElementCollapseState2[\"Expanded\"] = 0] = \"Expanded\";\n  ObjectTreeElementCollapseState2[ObjectTreeElementCollapseState2[\"Collapsed\"] = 1] = \"Collapsed\";\n  ObjectTreeElementCollapseState2[ObjectTreeElementCollapseState2[\"PreserveOrExpanded\"] = 2] = \"PreserveOrExpanded\";\n  ObjectTreeElementCollapseState2[ObjectTreeElementCollapseState2[\"PreserveOrCollapsed\"] = 3] = \"PreserveOrCollapsed\";\n})(ObjectTreeElementCollapseState || (ObjectTreeElementCollapseState = {}));\nvar TreeMouseEventTarget;\n(function(TreeMouseEventTarget2) {\n  TreeMouseEventTarget2[TreeMouseEventTarget2[\"Unknown\"] = 0] = \"Unknown\";\n  TreeMouseEventTarget2[TreeMouseEventTarget2[\"Twistie\"] = 1] = \"Twistie\";\n  TreeMouseEventTarget2[TreeMouseEventTarget2[\"Element\"] = 2] = \"Element\";\n  TreeMouseEventTarget2[TreeMouseEventTarget2[\"Filter\"] = 3] = \"Filter\";\n})(TreeMouseEventTarget || (TreeMouseEventTarget = {}));\nvar TreeError = class extends Error {\n  constructor(user, message) {\n    super(`TreeError [${user}] ${message}`);\n  }\n};\nvar WeakMapper = class {\n  constructor(fn) {\n    this.fn = fn;\n    this._map = /* @__PURE__ */ new WeakMap();\n  }\n  map(key) {\n    let result = this._map.get(key);\n    if (!result) {\n      result = this.fn(key);\n      this._map.set(key, result);\n    }\n    return result;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/indexTreeModel.js\ninit_arrays();\ninit_async();\ninit_symbols();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/diff/diffChange.js\nvar DiffChange = class {\n  /**\n   * Constructs a new DiffChange with the given sequence information\n   * and content.\n   */\n  constructor(originalStart, originalLength, modifiedStart, modifiedLength) {\n    this.originalStart = originalStart;\n    this.originalLength = originalLength;\n    this.modifiedStart = modifiedStart;\n    this.modifiedLength = modifiedLength;\n  }\n  /**\n   * The end point (exclusive) of the change in the original sequence.\n   */\n  getOriginalEnd() {\n    return this.originalStart + this.originalLength;\n  }\n  /**\n   * The end point (exclusive) of the change in the modified sequence.\n   */\n  getModifiedEnd() {\n    return this.modifiedStart + this.modifiedLength;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/diff/diff.js\ninit_hash();\nvar StringDiffSequence = class {\n  constructor(source) {\n    this.source = source;\n  }\n  getElements() {\n    const source = this.source;\n    const characters = new Int32Array(source.length);\n    for (let i2 = 0, len = source.length; i2 \u003c len; i2++) {\n      characters[i2] = source.charCodeAt(i2);\n    }\n    return characters;\n  }\n};\nfunction stringDiff(original, modified, pretty) {\n  return new LcsDiff(new StringDiffSequence(original), new StringDiffSequence(modified)).ComputeDiff(pretty).changes;\n}\nvar Debug = class {\n  static Assert(condition, message) {\n    if (!condition) {\n      throw new Error(message);\n    }\n  }\n};\nvar MyArray = class {\n  /**\n   * Copies a range of elements from an Array starting at the specified source index and pastes\n   * them to another Array starting at the specified destination index. The length and the indexes\n   * are specified as 64-bit integers.\n   * sourceArray:\n   *\t\tThe Array that contains the data to copy.\n   * sourceIndex:\n   *\t\tA 64-bit integer that represents the index in the sourceArray at which copying begins.\n   * destinationArray:\n   *\t\tThe Array that receives the data.\n   * destinationIndex:\n   *\t\tA 64-bit integer that represents the index in the destinationArray at which storing begins.\n   * length:\n   *\t\tA 64-bit integer that represents the number of elements to copy.\n   */\n  static Copy(sourceArray, sourceIndex, destinationArray, destinationIndex, length) {\n    for (let i2 = 0; i2 \u003c length; i2++) {\n      destinationArray[destinationIndex + i2] = sourceArray[sourceIndex + i2];\n    }\n  }\n  static Copy2(sourceArray, sourceIndex, destinationArray, destinationIndex, length) {\n    for (let i2 = 0; i2 \u003c length; i2++) {\n      destinationArray[destinationIndex + i2] = sourceArray[sourceIndex + i2];\n    }\n  }\n};\nvar DiffChangeHelper = class {\n  /**\n   * Constructs a new DiffChangeHelper for the given DiffSequences.\n   */\n  constructor() {\n    this.m_changes = [];\n    this.m_originalStart = 1073741824;\n    this.m_modifiedStart = 1073741824;\n    this.m_originalCount = 0;\n    this.m_modifiedCount = 0;\n  }\n  /**\n   * Marks the beginning of the next change in the set of differences.\n   */\n  MarkNextChange() {\n    if (this.m_originalCount \u003e 0 || this.m_modifiedCount \u003e 0) {\n      this.m_changes.push(new DiffChange(this.m_originalStart, this.m_originalCount, this.m_modifiedStart, this.m_modifiedCount));\n    }\n    this.m_originalCount = 0;\n    this.m_modifiedCount = 0;\n    this.m_originalStart = 1073741824;\n    this.m_modifiedStart = 1073741824;\n  }\n  /**\n   * Adds the original element at the given position to the elements\n   * affected by the current change. The modified index gives context\n   * to the change position with respect to the original sequence.\n   * @param originalIndex The index of the original element to add.\n   * @param modifiedIndex The index of the modified element that provides corresponding position in the modified sequence.\n   */\n  AddOriginalElement(originalIndex, modifiedIndex) {\n    this.m_originalStart = Math.min(this.m_originalStart, originalIndex);\n    this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex);\n    this.m_originalCount++;\n  }\n  /**\n   * Adds the modified element at the given position to the elements\n   * affected by the current change. The original index gives context\n   * to the change position with respect to the modified sequence.\n   * @param originalIndex The index of the original element that provides corresponding position in the original sequence.\n   * @param modifiedIndex The index of the modified element to add.\n   */\n  AddModifiedElement(originalIndex, modifiedIndex) {\n    this.m_originalStart = Math.min(this.m_originalStart, originalIndex);\n    this.m_modifiedStart = Math.min(this.m_modifiedStart, modifiedIndex);\n    this.m_modifiedCount++;\n  }\n  /**\n   * Retrieves all of the changes marked by the class.\n   */\n  getChanges() {\n    if (this.m_originalCount \u003e 0 || this.m_modifiedCount \u003e 0) {\n      this.MarkNextChange();\n    }\n    return this.m_changes;\n  }\n  /**\n   * Retrieves all of the changes marked by the class in the reverse order\n   */\n  getReverseChanges() {\n    if (this.m_originalCount \u003e 0 || this.m_modifiedCount \u003e 0) {\n      this.MarkNextChange();\n    }\n    this.m_changes.reverse();\n    return this.m_changes;\n  }\n};\nvar LcsDiff = class _LcsDiff {\n  /**\n   * Constructs the DiffFinder\n   */\n  constructor(originalSequence, modifiedSequence, continueProcessingPredicate = null) {\n    this.ContinueProcessingPredicate = continueProcessingPredicate;\n    this._originalSequence = originalSequence;\n    this._modifiedSequence = modifiedSequence;\n    const [originalStringElements, originalElementsOrHash, originalHasStrings] = _LcsDiff._getElements(originalSequence);\n    const [modifiedStringElements, modifiedElementsOrHash, modifiedHasStrings] = _LcsDiff._getElements(modifiedSequence);\n    this._hasStrings = originalHasStrings \u0026\u0026 modifiedHasStrings;\n    this._originalStringElements = originalStringElements;\n    this._originalElementsOrHash = originalElementsOrHash;\n    this._modifiedStringElements = modifiedStringElements;\n    this._modifiedElementsOrHash = modifiedElementsOrHash;\n    this.m_forwardHistory = [];\n    this.m_reverseHistory = [];\n  }\n  static _isStringArray(arr) {\n    return arr.length \u003e 0 \u0026\u0026 typeof arr[0] === \"string\";\n  }\n  static _getElements(sequence) {\n    const elements = sequence.getElements();\n    if (_LcsDiff._isStringArray(elements)) {\n      const hashes = new Int32Array(elements.length);\n      for (let i2 = 0, len = elements.length; i2 \u003c len; i2++) {\n        hashes[i2] = stringHash(elements[i2], 0);\n      }\n      return [elements, hashes, true];\n    }\n    if (elements instanceof Int32Array) {\n      return [[], elements, false];\n    }\n    return [[], new Int32Array(elements), false];\n  }\n  ElementsAreEqual(originalIndex, newIndex) {\n    if (this._originalElementsOrHash[originalIndex] !== this._modifiedElementsOrHash[newIndex]) {\n      return false;\n    }\n    return this._hasStrings ? this._originalStringElements[originalIndex] === this._modifiedStringElements[newIndex] : true;\n  }\n  ElementsAreStrictEqual(originalIndex, newIndex) {\n    if (!this.ElementsAreEqual(originalIndex, newIndex)) {\n      return false;\n    }\n    const originalElement = _LcsDiff._getStrictElement(this._originalSequence, originalIndex);\n    const modifiedElement = _LcsDiff._getStrictElement(this._modifiedSequence, newIndex);\n    return originalElement === modifiedElement;\n  }\n  static _getStrictElement(sequence, index) {\n    if (typeof sequence.getStrictElement === \"function\") {\n      return sequence.getStrictElement(index);\n    }\n    return null;\n  }\n  OriginalElementsAreEqual(index1, index2) {\n    if (this._originalElementsOrHash[index1] !== this._originalElementsOrHash[index2]) {\n      return false;\n    }\n    return this._hasStrings ? this._originalStringElements[index1] === this._originalStringElements[index2] : true;\n  }\n  ModifiedElementsAreEqual(index1, index2) {\n    if (this._modifiedElementsOrHash[index1] !== this._modifiedElementsOrHash[index2]) {\n      return false;\n    }\n    return this._hasStrings ? this._modifiedStringElements[index1] === this._modifiedStringElements[index2] : true;\n  }\n  ComputeDiff(pretty) {\n    return this._ComputeDiff(0, this._originalElementsOrHash.length - 1, 0, this._modifiedElementsOrHash.length - 1, pretty);\n  }\n  /**\n   * Computes the differences between the original and modified input\n   * sequences on the bounded range.\n   * @returns An array of the differences between the two input sequences.\n   */\n  _ComputeDiff(originalStart, originalEnd, modifiedStart, modifiedEnd, pretty) {\n    const quitEarlyArr = [false];\n    let changes = this.ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr);\n    if (pretty) {\n      changes = this.PrettifyChanges(changes);\n    }\n    return {\n      quitEarly: quitEarlyArr[0],\n      changes\n    };\n  }\n  /**\n   * Private helper method which computes the differences on the bounded range\n   * recursively.\n   * @returns An array of the differences between the two input sequences.\n   */\n  ComputeDiffRecursive(originalStart, originalEnd, modifiedStart, modifiedEnd, quitEarlyArr) {\n    quitEarlyArr[0] = false;\n    while (originalStart \u003c= originalEnd \u0026\u0026 modifiedStart \u003c= modifiedEnd \u0026\u0026 this.ElementsAreEqual(originalStart, modifiedStart)) {\n      originalStart++;\n      modifiedStart++;\n    }\n    while (originalEnd \u003e= originalStart \u0026\u0026 modifiedEnd \u003e= modifiedStart \u0026\u0026 this.ElementsAreEqual(originalEnd, modifiedEnd)) {\n      originalEnd--;\n      modifiedEnd--;\n    }\n    if (originalStart \u003e originalEnd || modifiedStart \u003e modifiedEnd) {\n      let changes;\n      if (modifiedStart \u003c= modifiedEnd) {\n        Debug.Assert(originalStart === originalEnd + 1, \"originalStart should only be one more than originalEnd\");\n        changes = [\n          new DiffChange(originalStart, 0, modifiedStart, modifiedEnd - modifiedStart + 1)\n        ];\n      } else if (originalStart \u003c= originalEnd) {\n        Debug.Assert(modifiedStart === modifiedEnd + 1, \"modifiedStart should only be one more than modifiedEnd\");\n        changes = [\n          new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, 0)\n        ];\n      } else {\n        Debug.Assert(originalStart === originalEnd + 1, \"originalStart should only be one more than originalEnd\");\n        Debug.Assert(modifiedStart === modifiedEnd + 1, \"modifiedStart should only be one more than modifiedEnd\");\n        changes = [];\n      }\n      return changes;\n    }\n    const midOriginalArr = [0];\n    const midModifiedArr = [0];\n    const result = this.ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr);\n    const midOriginal = midOriginalArr[0];\n    const midModified = midModifiedArr[0];\n    if (result !== null) {\n      return result;\n    } else if (!quitEarlyArr[0]) {\n      const leftChanges = this.ComputeDiffRecursive(originalStart, midOriginal, modifiedStart, midModified, quitEarlyArr);\n      let rightChanges = [];\n      if (!quitEarlyArr[0]) {\n        rightChanges = this.ComputeDiffRecursive(midOriginal + 1, originalEnd, midModified + 1, modifiedEnd, quitEarlyArr);\n      } else {\n        rightChanges = [\n          new DiffChange(midOriginal + 1, originalEnd - (midOriginal + 1) + 1, midModified + 1, modifiedEnd - (midModified + 1) + 1)\n        ];\n      }\n      return this.ConcatenateChanges(leftChanges, rightChanges);\n    }\n    return [\n      new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1)\n    ];\n  }\n  WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr) {\n    let forwardChanges = null;\n    let reverseChanges = null;\n    let changeHelper = new DiffChangeHelper();\n    let diagonalMin = diagonalForwardStart;\n    let diagonalMax = diagonalForwardEnd;\n    let diagonalRelative = midOriginalArr[0] - midModifiedArr[0] - diagonalForwardOffset;\n    let lastOriginalIndex = -1073741824;\n    let historyIndex = this.m_forwardHistory.length - 1;\n    do {\n      const diagonal = diagonalRelative + diagonalForwardBase;\n      if (diagonal === diagonalMin || diagonal \u003c diagonalMax \u0026\u0026 forwardPoints[diagonal - 1] \u003c forwardPoints[diagonal + 1]) {\n        originalIndex = forwardPoints[diagonal + 1];\n        modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset;\n        if (originalIndex \u003c lastOriginalIndex) {\n          changeHelper.MarkNextChange();\n        }\n        lastOriginalIndex = originalIndex;\n        changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex);\n        diagonalRelative = diagonal + 1 - diagonalForwardBase;\n      } else {\n        originalIndex = forwardPoints[diagonal - 1] + 1;\n        modifiedIndex = originalIndex - diagonalRelative - diagonalForwardOffset;\n        if (originalIndex \u003c lastOriginalIndex) {\n          changeHelper.MarkNextChange();\n        }\n        lastOriginalIndex = originalIndex - 1;\n        changeHelper.AddOriginalElement(originalIndex, modifiedIndex + 1);\n        diagonalRelative = diagonal - 1 - diagonalForwardBase;\n      }\n      if (historyIndex \u003e= 0) {\n        forwardPoints = this.m_forwardHistory[historyIndex];\n        diagonalForwardBase = forwardPoints[0];\n        diagonalMin = 1;\n        diagonalMax = forwardPoints.length - 1;\n      }\n    } while (--historyIndex \u003e= -1);\n    forwardChanges = changeHelper.getReverseChanges();\n    if (quitEarlyArr[0]) {\n      let originalStartPoint = midOriginalArr[0] + 1;\n      let modifiedStartPoint = midModifiedArr[0] + 1;\n      if (forwardChanges !== null \u0026\u0026 forwardChanges.length \u003e 0) {\n        const lastForwardChange = forwardChanges[forwardChanges.length - 1];\n        originalStartPoint = Math.max(originalStartPoint, lastForwardChange.getOriginalEnd());\n        modifiedStartPoint = Math.max(modifiedStartPoint, lastForwardChange.getModifiedEnd());\n      }\n      reverseChanges = [\n        new DiffChange(originalStartPoint, originalEnd - originalStartPoint + 1, modifiedStartPoint, modifiedEnd - modifiedStartPoint + 1)\n      ];\n    } else {\n      changeHelper = new DiffChangeHelper();\n      diagonalMin = diagonalReverseStart;\n      diagonalMax = diagonalReverseEnd;\n      diagonalRelative = midOriginalArr[0] - midModifiedArr[0] - diagonalReverseOffset;\n      lastOriginalIndex = 1073741824;\n      historyIndex = deltaIsEven ? this.m_reverseHistory.length - 1 : this.m_reverseHistory.length - 2;\n      do {\n        const diagonal = diagonalRelative + diagonalReverseBase;\n        if (diagonal === diagonalMin || diagonal \u003c diagonalMax \u0026\u0026 reversePoints[diagonal - 1] \u003e= reversePoints[diagonal + 1]) {\n          originalIndex = reversePoints[diagonal + 1] - 1;\n          modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset;\n          if (originalIndex \u003e lastOriginalIndex) {\n            changeHelper.MarkNextChange();\n          }\n          lastOriginalIndex = originalIndex + 1;\n          changeHelper.AddOriginalElement(originalIndex + 1, modifiedIndex + 1);\n          diagonalRelative = diagonal + 1 - diagonalReverseBase;\n        } else {\n          originalIndex = reversePoints[diagonal - 1];\n          modifiedIndex = originalIndex - diagonalRelative - diagonalReverseOffset;\n          if (originalIndex \u003e lastOriginalIndex) {\n            changeHelper.MarkNextChange();\n          }\n          lastOriginalIndex = originalIndex;\n          changeHelper.AddModifiedElement(originalIndex + 1, modifiedIndex + 1);\n          diagonalRelative = diagonal - 1 - diagonalReverseBase;\n        }\n        if (historyIndex \u003e= 0) {\n          reversePoints = this.m_reverseHistory[historyIndex];\n          diagonalReverseBase = reversePoints[0];\n          diagonalMin = 1;\n          diagonalMax = reversePoints.length - 1;\n        }\n      } while (--historyIndex \u003e= -1);\n      reverseChanges = changeHelper.getChanges();\n    }\n    return this.ConcatenateChanges(forwardChanges, reverseChanges);\n  }\n  /**\n   * Given the range to compute the diff on, this method finds the point:\n   * (midOriginal, midModified)\n   * that exists in the middle of the LCS of the two sequences and\n   * is the point at which the LCS problem may be broken down recursively.\n   * This method will try to keep the LCS trace in memory. If the LCS recursion\n   * point is calculated and the full trace is available in memory, then this method\n   * will return the change list.\n   * @param originalStart The start bound of the original sequence range\n   * @param originalEnd The end bound of the original sequence range\n   * @param modifiedStart The start bound of the modified sequence range\n   * @param modifiedEnd The end bound of the modified sequence range\n   * @param midOriginal The middle point of the original sequence range\n   * @param midModified The middle point of the modified sequence range\n   * @returns The diff changes, if available, otherwise null\n   */\n  ComputeRecursionPoint(originalStart, originalEnd, modifiedStart, modifiedEnd, midOriginalArr, midModifiedArr, quitEarlyArr) {\n    let originalIndex = 0, modifiedIndex = 0;\n    let diagonalForwardStart = 0, diagonalForwardEnd = 0;\n    let diagonalReverseStart = 0, diagonalReverseEnd = 0;\n    originalStart--;\n    modifiedStart--;\n    midOriginalArr[0] = 0;\n    midModifiedArr[0] = 0;\n    this.m_forwardHistory = [];\n    this.m_reverseHistory = [];\n    const maxDifferences = originalEnd - originalStart + (modifiedEnd - modifiedStart);\n    const numDiagonals = maxDifferences + 1;\n    const forwardPoints = new Int32Array(numDiagonals);\n    const reversePoints = new Int32Array(numDiagonals);\n    const diagonalForwardBase = modifiedEnd - modifiedStart;\n    const diagonalReverseBase = originalEnd - originalStart;\n    const diagonalForwardOffset = originalStart - modifiedStart;\n    const diagonalReverseOffset = originalEnd - modifiedEnd;\n    const delta = diagonalReverseBase - diagonalForwardBase;\n    const deltaIsEven = delta % 2 === 0;\n    forwardPoints[diagonalForwardBase] = originalStart;\n    reversePoints[diagonalReverseBase] = originalEnd;\n    quitEarlyArr[0] = false;\n    for (let numDifferences = 1; numDifferences \u003c= maxDifferences / 2 + 1; numDifferences++) {\n      let furthestOriginalIndex = 0;\n      let furthestModifiedIndex = 0;\n      diagonalForwardStart = this.ClipDiagonalBound(diagonalForwardBase - numDifferences, numDifferences, diagonalForwardBase, numDiagonals);\n      diagonalForwardEnd = this.ClipDiagonalBound(diagonalForwardBase + numDifferences, numDifferences, diagonalForwardBase, numDiagonals);\n      for (let diagonal = diagonalForwardStart; diagonal \u003c= diagonalForwardEnd; diagonal += 2) {\n        if (diagonal === diagonalForwardStart || diagonal \u003c diagonalForwardEnd \u0026\u0026 forwardPoints[diagonal - 1] \u003c forwardPoints[diagonal + 1]) {\n          originalIndex = forwardPoints[diagonal + 1];\n        } else {\n          originalIndex = forwardPoints[diagonal - 1] + 1;\n        }\n        modifiedIndex = originalIndex - (diagonal - diagonalForwardBase) - diagonalForwardOffset;\n        const tempOriginalIndex = originalIndex;\n        while (originalIndex \u003c originalEnd \u0026\u0026 modifiedIndex \u003c modifiedEnd \u0026\u0026 this.ElementsAreEqual(originalIndex + 1, modifiedIndex + 1)) {\n          originalIndex++;\n          modifiedIndex++;\n        }\n        forwardPoints[diagonal] = originalIndex;\n        if (originalIndex + modifiedIndex \u003e furthestOriginalIndex + furthestModifiedIndex) {\n          furthestOriginalIndex = originalIndex;\n          furthestModifiedIndex = modifiedIndex;\n        }\n        if (!deltaIsEven \u0026\u0026 Math.abs(diagonal - diagonalReverseBase) \u003c= numDifferences - 1) {\n          if (originalIndex \u003e= reversePoints[diagonal]) {\n            midOriginalArr[0] = originalIndex;\n            midModifiedArr[0] = modifiedIndex;\n            if (tempOriginalIndex \u003c= reversePoints[diagonal] \u0026\u0026 1447 \u003e 0 \u0026\u0026 numDifferences \u003c= 1447 + 1) {\n              return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\n            } else {\n              return null;\n            }\n          }\n        }\n      }\n      const matchLengthOfLongest = (furthestOriginalIndex - originalStart + (furthestModifiedIndex - modifiedStart) - numDifferences) / 2;\n      if (this.ContinueProcessingPredicate !== null \u0026\u0026 !this.ContinueProcessingPredicate(furthestOriginalIndex, matchLengthOfLongest)) {\n        quitEarlyArr[0] = true;\n        midOriginalArr[0] = furthestOriginalIndex;\n        midModifiedArr[0] = furthestModifiedIndex;\n        if (matchLengthOfLongest \u003e 0 \u0026\u0026 1447 \u003e 0 \u0026\u0026 numDifferences \u003c= 1447 + 1) {\n          return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\n        } else {\n          originalStart++;\n          modifiedStart++;\n          return [\n            new DiffChange(originalStart, originalEnd - originalStart + 1, modifiedStart, modifiedEnd - modifiedStart + 1)\n          ];\n        }\n      }\n      diagonalReverseStart = this.ClipDiagonalBound(diagonalReverseBase - numDifferences, numDifferences, diagonalReverseBase, numDiagonals);\n      diagonalReverseEnd = this.ClipDiagonalBound(diagonalReverseBase + numDifferences, numDifferences, diagonalReverseBase, numDiagonals);\n      for (let diagonal = diagonalReverseStart; diagonal \u003c= diagonalReverseEnd; diagonal += 2) {\n        if (diagonal === diagonalReverseStart || diagonal \u003c diagonalReverseEnd \u0026\u0026 reversePoints[diagonal - 1] \u003e= reversePoints[diagonal + 1]) {\n          originalIndex = reversePoints[diagonal + 1] - 1;\n        } else {\n          originalIndex = reversePoints[diagonal - 1];\n        }\n        modifiedIndex = originalIndex - (diagonal - diagonalReverseBase) - diagonalReverseOffset;\n        const tempOriginalIndex = originalIndex;\n        while (originalIndex \u003e originalStart \u0026\u0026 modifiedIndex \u003e modifiedStart \u0026\u0026 this.ElementsAreEqual(originalIndex, modifiedIndex)) {\n          originalIndex--;\n          modifiedIndex--;\n        }\n        reversePoints[diagonal] = originalIndex;\n        if (deltaIsEven \u0026\u0026 Math.abs(diagonal - diagonalForwardBase) \u003c= numDifferences) {\n          if (originalIndex \u003c= forwardPoints[diagonal]) {\n            midOriginalArr[0] = originalIndex;\n            midModifiedArr[0] = modifiedIndex;\n            if (tempOriginalIndex \u003e= forwardPoints[diagonal] \u0026\u0026 1447 \u003e 0 \u0026\u0026 numDifferences \u003c= 1447 + 1) {\n              return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\n            } else {\n              return null;\n            }\n          }\n        }\n      }\n      if (numDifferences \u003c= 1447) {\n        let temp = new Int32Array(diagonalForwardEnd - diagonalForwardStart + 2);\n        temp[0] = diagonalForwardBase - diagonalForwardStart + 1;\n        MyArray.Copy2(forwardPoints, diagonalForwardStart, temp, 1, diagonalForwardEnd - diagonalForwardStart + 1);\n        this.m_forwardHistory.push(temp);\n        temp = new Int32Array(diagonalReverseEnd - diagonalReverseStart + 2);\n        temp[0] = diagonalReverseBase - diagonalReverseStart + 1;\n        MyArray.Copy2(reversePoints, diagonalReverseStart, temp, 1, diagonalReverseEnd - diagonalReverseStart + 1);\n        this.m_reverseHistory.push(temp);\n      }\n    }\n    return this.WALKTRACE(diagonalForwardBase, diagonalForwardStart, diagonalForwardEnd, diagonalForwardOffset, diagonalReverseBase, diagonalReverseStart, diagonalReverseEnd, diagonalReverseOffset, forwardPoints, reversePoints, originalIndex, originalEnd, midOriginalArr, modifiedIndex, modifiedEnd, midModifiedArr, deltaIsEven, quitEarlyArr);\n  }\n  /**\n   * Shifts the given changes to provide a more intuitive diff.\n   * While the first element in a diff matches the first element after the diff,\n   * we shift the diff down.\n   *\n   * @param changes The list of changes to shift\n   * @returns The shifted changes\n   */\n  PrettifyChanges(changes) {\n    for (let i2 = 0; i2 \u003c changes.length; i2++) {\n      const change = changes[i2];\n      const originalStop = i2 \u003c changes.length - 1 ? changes[i2 + 1].originalStart : this._originalElementsOrHash.length;\n      const modifiedStop = i2 \u003c changes.length - 1 ? changes[i2 + 1].modifiedStart : this._modifiedElementsOrHash.length;\n      const checkOriginal = change.originalLength \u003e 0;\n      const checkModified = change.modifiedLength \u003e 0;\n      while (change.originalStart + change.originalLength \u003c originalStop \u0026\u0026 change.modifiedStart + change.modifiedLength \u003c modifiedStop \u0026\u0026 (!checkOriginal || this.OriginalElementsAreEqual(change.originalStart, change.originalStart + change.originalLength)) \u0026\u0026 (!checkModified || this.ModifiedElementsAreEqual(change.modifiedStart, change.modifiedStart + change.modifiedLength))) {\n        const startStrictEqual = this.ElementsAreStrictEqual(change.originalStart, change.modifiedStart);\n        const endStrictEqual = this.ElementsAreStrictEqual(change.originalStart + change.originalLength, change.modifiedStart + change.modifiedLength);\n        if (endStrictEqual \u0026\u0026 !startStrictEqual) {\n          break;\n        }\n        change.originalStart++;\n        change.modifiedStart++;\n      }\n      const mergedChangeArr = [null];\n      if (i2 \u003c changes.length - 1 \u0026\u0026 this.ChangesOverlap(changes[i2], changes[i2 + 1], mergedChangeArr)) {\n        changes[i2] = mergedChangeArr[0];\n        changes.splice(i2 + 1, 1);\n        i2--;\n        continue;\n      }\n    }\n    for (let i2 = changes.length - 1; i2 \u003e= 0; i2--) {\n      const change = changes[i2];\n      let originalStop = 0;\n      let modifiedStop = 0;\n      if (i2 \u003e 0) {\n        const prevChange = changes[i2 - 1];\n        originalStop = prevChange.originalStart + prevChange.originalLength;\n        modifiedStop = prevChange.modifiedStart + prevChange.modifiedLength;\n      }\n      const checkOriginal = change.originalLength \u003e 0;\n      const checkModified = change.modifiedLength \u003e 0;\n      let bestDelta = 0;\n      let bestScore = this._boundaryScore(change.originalStart, change.originalLength, change.modifiedStart, change.modifiedLength);\n      for (let delta = 1; ; delta++) {\n        const originalStart = change.originalStart - delta;\n        const modifiedStart = change.modifiedStart - delta;\n        if (originalStart \u003c originalStop || modifiedStart \u003c modifiedStop) {\n          break;\n        }\n        if (checkOriginal \u0026\u0026 !this.OriginalElementsAreEqual(originalStart, originalStart + change.originalLength)) {\n          break;\n        }\n        if (checkModified \u0026\u0026 !this.ModifiedElementsAreEqual(modifiedStart, modifiedStart + change.modifiedLength)) {\n          break;\n        }\n        const touchingPreviousChange = originalStart === originalStop \u0026\u0026 modifiedStart === modifiedStop;\n        const score3 = (touchingPreviousChange ? 5 : 0) + this._boundaryScore(originalStart, change.originalLength, modifiedStart, change.modifiedLength);\n        if (score3 \u003e bestScore) {\n          bestScore = score3;\n          bestDelta = delta;\n        }\n      }\n      change.originalStart -= bestDelta;\n      change.modifiedStart -= bestDelta;\n      const mergedChangeArr = [null];\n      if (i2 \u003e 0 \u0026\u0026 this.ChangesOverlap(changes[i2 - 1], changes[i2], mergedChangeArr)) {\n        changes[i2 - 1] = mergedChangeArr[0];\n        changes.splice(i2, 1);\n        i2++;\n        continue;\n      }\n    }\n    if (this._hasStrings) {\n      for (let i2 = 1, len = changes.length; i2 \u003c len; i2++) {\n        const aChange = changes[i2 - 1];\n        const bChange = changes[i2];\n        const matchedLength = bChange.originalStart - aChange.originalStart - aChange.originalLength;\n        const aOriginalStart = aChange.originalStart;\n        const bOriginalEnd = bChange.originalStart + bChange.originalLength;\n        const abOriginalLength = bOriginalEnd - aOriginalStart;\n        const aModifiedStart = aChange.modifiedStart;\n        const bModifiedEnd = bChange.modifiedStart + bChange.modifiedLength;\n        const abModifiedLength = bModifiedEnd - aModifiedStart;\n        if (matchedLength \u003c 5 \u0026\u0026 abOriginalLength \u003c 20 \u0026\u0026 abModifiedLength \u003c 20) {\n          const t = this._findBetterContiguousSequence(aOriginalStart, abOriginalLength, aModifiedStart, abModifiedLength, matchedLength);\n          if (t) {\n            const [originalMatchStart, modifiedMatchStart] = t;\n            if (originalMatchStart !== aChange.originalStart + aChange.originalLength || modifiedMatchStart !== aChange.modifiedStart + aChange.modifiedLength) {\n              aChange.originalLength = originalMatchStart - aChange.originalStart;\n              aChange.modifiedLength = modifiedMatchStart - aChange.modifiedStart;\n              bChange.originalStart = originalMatchStart + matchedLength;\n              bChange.modifiedStart = modifiedMatchStart + matchedLength;\n              bChange.originalLength = bOriginalEnd - bChange.originalStart;\n              bChange.modifiedLength = bModifiedEnd - bChange.modifiedStart;\n            }\n          }\n        }\n      }\n    }\n    return changes;\n  }\n  _findBetterContiguousSequence(originalStart, originalLength, modifiedStart, modifiedLength, desiredLength) {\n    if (originalLength \u003c desiredLength || modifiedLength \u003c desiredLength) {\n      return null;\n    }\n    const originalMax = originalStart + originalLength - desiredLength + 1;\n    const modifiedMax = modifiedStart + modifiedLength - desiredLength + 1;\n    let bestScore = 0;\n    let bestOriginalStart = 0;\n    let bestModifiedStart = 0;\n    for (let i2 = originalStart; i2 \u003c originalMax; i2++) {\n      for (let j = modifiedStart; j \u003c modifiedMax; j++) {\n        const score3 = this._contiguousSequenceScore(i2, j, desiredLength);\n        if (score3 \u003e 0 \u0026\u0026 score3 \u003e bestScore) {\n          bestScore = score3;\n          bestOriginalStart = i2;\n          bestModifiedStart = j;\n        }\n      }\n    }\n    if (bestScore \u003e 0) {\n      return [bestOriginalStart, bestModifiedStart];\n    }\n    return null;\n  }\n  _contiguousSequenceScore(originalStart, modifiedStart, length) {\n    let score3 = 0;\n    for (let l = 0; l \u003c length; l++) {\n      if (!this.ElementsAreEqual(originalStart + l, modifiedStart + l)) {\n        return 0;\n      }\n      score3 += this._originalStringElements[originalStart + l].length;\n    }\n    return score3;\n  }\n  _OriginalIsBoundary(index) {\n    if (index \u003c= 0 || index \u003e= this._originalElementsOrHash.length - 1) {\n      return true;\n    }\n    return this._hasStrings \u0026\u0026 /^\\s*$/.test(this._originalStringElements[index]);\n  }\n  _OriginalRegionIsBoundary(originalStart, originalLength) {\n    if (this._OriginalIsBoundary(originalStart) || this._OriginalIsBoundary(originalStart - 1)) {\n      return true;\n    }\n    if (originalLength \u003e 0) {\n      const originalEnd = originalStart + originalLength;\n      if (this._OriginalIsBoundary(originalEnd - 1) || this._OriginalIsBoundary(originalEnd)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  _ModifiedIsBoundary(index) {\n    if (index \u003c= 0 || index \u003e= this._modifiedElementsOrHash.length - 1) {\n      return true;\n    }\n    return this._hasStrings \u0026\u0026 /^\\s*$/.test(this._modifiedStringElements[index]);\n  }\n  _ModifiedRegionIsBoundary(modifiedStart, modifiedLength) {\n    if (this._ModifiedIsBoundary(modifiedStart) || this._ModifiedIsBoundary(modifiedStart - 1)) {\n      return true;\n    }\n    if (modifiedLength \u003e 0) {\n      const modifiedEnd = modifiedStart + modifiedLength;\n      if (this._ModifiedIsBoundary(modifiedEnd - 1) || this._ModifiedIsBoundary(modifiedEnd)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  _boundaryScore(originalStart, originalLength, modifiedStart, modifiedLength) {\n    const originalScore = this._OriginalRegionIsBoundary(originalStart, originalLength) ? 1 : 0;\n    const modifiedScore = this._ModifiedRegionIsBoundary(modifiedStart, modifiedLength) ? 1 : 0;\n    return originalScore + modifiedScore;\n  }\n  /**\n   * Concatenates the two input DiffChange lists and returns the resulting\n   * list.\n   * @param The left changes\n   * @param The right changes\n   * @returns The concatenated list\n   */\n  ConcatenateChanges(left, right) {\n    const mergedChangeArr = [];\n    if (left.length === 0 || right.length === 0) {\n      return right.length \u003e 0 ? right : left;\n    } else if (this.ChangesOverlap(left[left.length - 1], right[0], mergedChangeArr)) {\n      const result = new Array(left.length + right.length - 1);\n      MyArray.Copy(left, 0, result, 0, left.length - 1);\n      result[left.length - 1] = mergedChangeArr[0];\n      MyArray.Copy(right, 1, result, left.length, right.length - 1);\n      return result;\n    } else {\n      const result = new Array(left.length + right.length);\n      MyArray.Copy(left, 0, result, 0, left.length);\n      MyArray.Copy(right, 0, result, left.length, right.length);\n      return result;\n    }\n  }\n  /**\n   * Returns true if the two changes overlap and can be merged into a single\n   * change\n   * @param left The left change\n   * @param right The right change\n   * @param mergedChange The merged change if the two overlap, null otherwise\n   * @returns True if the two changes overlap\n   */\n  ChangesOverlap(left, right, mergedChangeArr) {\n    Debug.Assert(left.originalStart \u003c= right.originalStart, \"Left change is not less than or equal to right change\");\n    Debug.Assert(left.modifiedStart \u003c= right.modifiedStart, \"Left change is not less than or equal to right change\");\n    if (left.originalStart + left.originalLength \u003e= right.originalStart || left.modifiedStart + left.modifiedLength \u003e= right.modifiedStart) {\n      const originalStart = left.originalStart;\n      let originalLength = left.originalLength;\n      const modifiedStart = left.modifiedStart;\n      let modifiedLength = left.modifiedLength;\n      if (left.originalStart + left.originalLength \u003e= right.originalStart) {\n        originalLength = right.originalStart + right.originalLength - left.originalStart;\n      }\n      if (left.modifiedStart + left.modifiedLength \u003e= right.modifiedStart) {\n        modifiedLength = right.modifiedStart + right.modifiedLength - left.modifiedStart;\n      }\n      mergedChangeArr[0] = new DiffChange(originalStart, originalLength, modifiedStart, modifiedLength);\n      return true;\n    } else {\n      mergedChangeArr[0] = null;\n      return false;\n    }\n  }\n  /**\n   * Helper method used to clip a diagonal index to the range of valid\n   * diagonals. This also decides whether or not the diagonal index,\n   * if it exceeds the boundary, should be clipped to the boundary or clipped\n   * one inside the boundary depending on the Even/Odd status of the boundary\n   * and numDifferences.\n   * @param diagonal The index of the diagonal to clip.\n   * @param numDifferences The current number of differences being iterated upon.\n   * @param diagonalBaseIndex The base reference diagonal.\n   * @param numDiagonals The total number of diagonals.\n   * @returns The clipped diagonal index.\n   */\n  ClipDiagonalBound(diagonal, numDifferences, diagonalBaseIndex, numDiagonals) {\n    if (diagonal \u003e= 0 \u0026\u0026 diagonal \u003c numDiagonals) {\n      return diagonal;\n    }\n    const diagonalsBelow = diagonalBaseIndex;\n    const diagonalsAbove = numDiagonals - diagonalBaseIndex - 1;\n    const diffEven = numDifferences % 2 === 0;\n    if (diagonal \u003c 0) {\n      const lowerBoundEven = diagonalsBelow % 2 === 0;\n      return diffEven === lowerBoundEven ? 0 : 1;\n    } else {\n      const upperBoundEven = diagonalsAbove % 2 === 0;\n      return diffEven === upperBoundEven ? numDiagonals - 1 : numDiagonals - 2;\n    }\n  }\n};\nvar precomputedEqualityArray = new Uint32Array(65536);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/indexTreeModel.js\ninit_event();\ninit_iterator();\nfunction isFilterResult(obj) {\n  return !!obj \u0026\u0026 obj.visibility !== void 0;\n}\nfunction getVisibleState(visibility) {\n  switch (visibility) {\n    case true:\n      return 1;\n    case false:\n      return 0;\n    default:\n      return visibility;\n  }\n}\nfunction isCollapsibleStateUpdate(update) {\n  return typeof update.collapsible === \"boolean\";\n}\nvar IndexTreeModel = class {\n  constructor(user, rootElement, options2 = {}) {\n    this.user = user;\n    this.rootRef = [];\n    this.eventBufferer = new EventBufferer();\n    this._onDidSpliceModel = new Emitter();\n    this.onDidSpliceModel = this._onDidSpliceModel.event;\n    this._onDidSpliceRenderedNodes = new Emitter();\n    this.onDidSpliceRenderedNodes = this._onDidSpliceRenderedNodes.event;\n    this._onDidChangeCollapseState = new Emitter();\n    this.onDidChangeCollapseState = this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event);\n    this._onDidChangeRenderNodeCount = new Emitter();\n    this.onDidChangeRenderNodeCount = this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event);\n    this.refilterDelayer = new Delayer(MicrotaskDelay);\n    this.collapseByDefault = typeof options2.collapseByDefault === \"undefined\" ? false : options2.collapseByDefault;\n    this.allowNonCollapsibleParents = options2.allowNonCollapsibleParents ?? false;\n    this.filter = options2.filter;\n    this.autoExpandSingleChildren = typeof options2.autoExpandSingleChildren === \"undefined\" ? false : options2.autoExpandSingleChildren;\n    this.root = {\n      parent: void 0,\n      element: rootElement,\n      children: [],\n      depth: 0,\n      visibleChildrenCount: 0,\n      visibleChildIndex: -1,\n      collapsible: false,\n      collapsed: false,\n      renderNodeCount: 0,\n      visibility: 1,\n      visible: true,\n      filterData: void 0\n    };\n  }\n  splice(location2, deleteCount, toInsert = Iterable.empty(), options2 = {}) {\n    if (location2.length === 0) {\n      throw new TreeError(this.user, \"Invalid tree location\");\n    }\n    if (options2.diffIdentityProvider) {\n      this.spliceSmart(options2.diffIdentityProvider, location2, deleteCount, toInsert, options2);\n    } else {\n      this.spliceSimple(location2, deleteCount, toInsert, options2);\n    }\n  }\n  spliceSmart(identity2, location2, deleteCount, toInsertIterable = Iterable.empty(), options2, recurseLevels = options2.diffDepth ?? 0) {\n    const { parentNode } = this.getParentNodeWithListIndex(location2);\n    if (!parentNode.lastDiffIds) {\n      return this.spliceSimple(location2, deleteCount, toInsertIterable, options2);\n    }\n    const toInsert = [...toInsertIterable];\n    const index = location2[location2.length - 1];\n    const diff = new LcsDiff({ getElements: () =\u003e parentNode.lastDiffIds }, {\n      getElements: () =\u003e [\n        ...parentNode.children.slice(0, index),\n        ...toInsert,\n        ...parentNode.children.slice(index + deleteCount)\n      ].map((e) =\u003e identity2.getId(e.element).toString())\n    }).ComputeDiff(false);\n    if (diff.quitEarly) {\n      parentNode.lastDiffIds = void 0;\n      return this.spliceSimple(location2, deleteCount, toInsert, options2);\n    }\n    const locationPrefix = location2.slice(0, -1);\n    const recurseSplice = (fromOriginal, fromModified, count) =\u003e {\n      if (recurseLevels \u003e 0) {\n        for (let i2 = 0; i2 \u003c count; i2++) {\n          fromOriginal--;\n          fromModified--;\n          this.spliceSmart(identity2, [...locationPrefix, fromOriginal, 0], Number.MAX_SAFE_INTEGER, toInsert[fromModified].children, options2, recurseLevels - 1);\n        }\n      }\n    };\n    let lastStartO = Math.min(parentNode.children.length, index + deleteCount);\n    let lastStartM = toInsert.length;\n    for (const change of diff.changes.sort((a, b) =\u003e b.originalStart - a.originalStart)) {\n      recurseSplice(lastStartO, lastStartM, lastStartO - (change.originalStart + change.originalLength));\n      lastStartO = change.originalStart;\n      lastStartM = change.modifiedStart - index;\n      this.spliceSimple([...locationPrefix, lastStartO], change.originalLength, Iterable.slice(toInsert, lastStartM, lastStartM + change.modifiedLength), options2);\n    }\n    recurseSplice(lastStartO, lastStartM, lastStartO);\n  }\n  spliceSimple(location2, deleteCount, toInsert = Iterable.empty(), { onDidCreateNode, onDidDeleteNode, diffIdentityProvider }) {\n    const { parentNode, listIndex, revealed, visible } = this.getParentNodeWithListIndex(location2);\n    const treeListElementsToInsert = [];\n    const nodesToInsertIterator = Iterable.map(toInsert, (el) =\u003e this.createTreeNode(el, parentNode, parentNode.visible ? 1 : 0, revealed, treeListElementsToInsert, onDidCreateNode));\n    const lastIndex = location2[location2.length - 1];\n    let visibleChildStartIndex = 0;\n    for (let i2 = lastIndex; i2 \u003e= 0 \u0026\u0026 i2 \u003c parentNode.children.length; i2--) {\n      const child = parentNode.children[i2];\n      if (child.visible) {\n        visibleChildStartIndex = child.visibleChildIndex;\n        break;\n      }\n    }\n    const nodesToInsert = [];\n    let insertedVisibleChildrenCount = 0;\n    let renderNodeCount = 0;\n    for (const child of nodesToInsertIterator) {\n      nodesToInsert.push(child);\n      renderNodeCount += child.renderNodeCount;\n      if (child.visible) {\n        child.visibleChildIndex = visibleChildStartIndex + insertedVisibleChildrenCount++;\n      }\n    }\n    const deletedNodes = splice(parentNode.children, lastIndex, deleteCount, nodesToInsert);\n    if (!diffIdentityProvider) {\n      parentNode.lastDiffIds = void 0;\n    } else if (parentNode.lastDiffIds) {\n      splice(parentNode.lastDiffIds, lastIndex, deleteCount, nodesToInsert.map((n2) =\u003e diffIdentityProvider.getId(n2.element).toString()));\n    } else {\n      parentNode.lastDiffIds = parentNode.children.map((n2) =\u003e diffIdentityProvider.getId(n2.element).toString());\n    }\n    let deletedVisibleChildrenCount = 0;\n    for (const child of deletedNodes) {\n      if (child.visible) {\n        deletedVisibleChildrenCount++;\n      }\n    }\n    if (deletedVisibleChildrenCount !== 0) {\n      for (let i2 = lastIndex + nodesToInsert.length; i2 \u003c parentNode.children.length; i2++) {\n        const child = parentNode.children[i2];\n        if (child.visible) {\n          child.visibleChildIndex -= deletedVisibleChildrenCount;\n        }\n      }\n    }\n    parentNode.visibleChildrenCount += insertedVisibleChildrenCount - deletedVisibleChildrenCount;\n    if (deletedNodes.length \u003e 0 \u0026\u0026 onDidDeleteNode) {\n      const visit = (node2) =\u003e {\n        onDidDeleteNode(node2);\n        node2.children.forEach(visit);\n      };\n      deletedNodes.forEach(visit);\n    }\n    if (revealed \u0026\u0026 visible) {\n      const visibleDeleteCount = deletedNodes.reduce((r, node2) =\u003e r + (node2.visible ? node2.renderNodeCount : 0), 0);\n      this._updateAncestorsRenderNodeCount(parentNode, renderNodeCount - visibleDeleteCount);\n      this._onDidSpliceRenderedNodes.fire({ start: listIndex, deleteCount: visibleDeleteCount, elements: treeListElementsToInsert });\n    }\n    this._onDidSpliceModel.fire({ insertedNodes: nodesToInsert, deletedNodes });\n    let node = parentNode;\n    while (node) {\n      if (node.visibility === 2) {\n        this.refilterDelayer.trigger(() =\u003e this.refilter());\n        break;\n      }\n      node = node.parent;\n    }\n  }\n  rerender(location2) {\n    if (location2.length === 0) {\n      throw new TreeError(this.user, \"Invalid tree location\");\n    }\n    const { node, listIndex, revealed } = this.getTreeNodeWithListIndex(location2);\n    if (node.visible \u0026\u0026 revealed) {\n      this._onDidSpliceRenderedNodes.fire({ start: listIndex, deleteCount: 1, elements: [node] });\n    }\n  }\n  has(location2) {\n    return this.hasTreeNode(location2);\n  }\n  getListIndex(location2) {\n    const { listIndex, visible, revealed } = this.getTreeNodeWithListIndex(location2);\n    return visible \u0026\u0026 revealed ? listIndex : -1;\n  }\n  getListRenderCount(location2) {\n    return this.getTreeNode(location2).renderNodeCount;\n  }\n  isCollapsible(location2) {\n    return this.getTreeNode(location2).collapsible;\n  }\n  setCollapsible(location2, collapsible) {\n    const node = this.getTreeNode(location2);\n    if (typeof collapsible === \"undefined\") {\n      collapsible = !node.collapsible;\n    }\n    const update = { collapsible };\n    return this.eventBufferer.bufferEvents(() =\u003e this._setCollapseState(location2, update));\n  }\n  isCollapsed(location2) {\n    return this.getTreeNode(location2).collapsed;\n  }\n  setCollapsed(location2, collapsed2, recursive) {\n    const node = this.getTreeNode(location2);\n    if (typeof collapsed2 === \"undefined\") {\n      collapsed2 = !node.collapsed;\n    }\n    const update = { collapsed: collapsed2, recursive: recursive || false };\n    return this.eventBufferer.bufferEvents(() =\u003e this._setCollapseState(location2, update));\n  }\n  _setCollapseState(location2, update) {\n    const { node, listIndex, revealed } = this.getTreeNodeWithListIndex(location2);\n    const result = this._setListNodeCollapseState(node, listIndex, revealed, update);\n    if (node !== this.root \u0026\u0026 this.autoExpandSingleChildren \u0026\u0026 result \u0026\u0026 !isCollapsibleStateUpdate(update) \u0026\u0026 node.collapsible \u0026\u0026 !node.collapsed \u0026\u0026 !update.recursive) {\n      let onlyVisibleChildIndex = -1;\n      for (let i2 = 0; i2 \u003c node.children.length; i2++) {\n        const child = node.children[i2];\n        if (child.visible) {\n          if (onlyVisibleChildIndex \u003e -1) {\n            onlyVisibleChildIndex = -1;\n            break;\n          } else {\n            onlyVisibleChildIndex = i2;\n          }\n        }\n      }\n      if (onlyVisibleChildIndex \u003e -1) {\n        this._setCollapseState([...location2, onlyVisibleChildIndex], update);\n      }\n    }\n    return result;\n  }\n  _setListNodeCollapseState(node, listIndex, revealed, update) {\n    const result = this._setNodeCollapseState(node, update, false);\n    if (!revealed || !node.visible || !result) {\n      return result;\n    }\n    const previousRenderNodeCount = node.renderNodeCount;\n    const toInsert = this.updateNodeAfterCollapseChange(node);\n    const deleteCount = previousRenderNodeCount - (listIndex === -1 ? 0 : 1);\n    this._onDidSpliceRenderedNodes.fire({ start: listIndex + 1, deleteCount, elements: toInsert.slice(1) });\n    return result;\n  }\n  _setNodeCollapseState(node, update, deep) {\n    let result;\n    if (node === this.root) {\n      result = false;\n    } else {\n      if (isCollapsibleStateUpdate(update)) {\n        result = node.collapsible !== update.collapsible;\n        node.collapsible = update.collapsible;\n      } else if (!node.collapsible) {\n        result = false;\n      } else {\n        result = node.collapsed !== update.collapsed;\n        node.collapsed = update.collapsed;\n      }\n      if (result) {\n        this._onDidChangeCollapseState.fire({ node, deep });\n      }\n    }\n    if (!isCollapsibleStateUpdate(update) \u0026\u0026 update.recursive) {\n      for (const child of node.children) {\n        result = this._setNodeCollapseState(child, update, true) || result;\n      }\n    }\n    return result;\n  }\n  expandTo(location2) {\n    this.eventBufferer.bufferEvents(() =\u003e {\n      let node = this.getTreeNode(location2);\n      while (node.parent) {\n        node = node.parent;\n        location2 = location2.slice(0, location2.length - 1);\n        if (node.collapsed) {\n          this._setCollapseState(location2, { collapsed: false, recursive: false });\n        }\n      }\n    });\n  }\n  refilter() {\n    const previousRenderNodeCount = this.root.renderNodeCount;\n    const toInsert = this.updateNodeAfterFilterChange(this.root);\n    this._onDidSpliceRenderedNodes.fire({ start: 0, deleteCount: previousRenderNodeCount, elements: toInsert });\n    this.refilterDelayer.cancel();\n  }\n  createTreeNode(treeElement, parent, parentVisibility, revealed, treeListElements, onDidCreateNode) {\n    const node = {\n      parent,\n      element: treeElement.element,\n      children: [],\n      depth: parent.depth + 1,\n      visibleChildrenCount: 0,\n      visibleChildIndex: -1,\n      collapsible: typeof treeElement.collapsible === \"boolean\" ? treeElement.collapsible : typeof treeElement.collapsed !== \"undefined\",\n      collapsed: typeof treeElement.collapsed === \"undefined\" ? this.collapseByDefault : treeElement.collapsed,\n      renderNodeCount: 1,\n      visibility: 1,\n      visible: true,\n      filterData: void 0\n    };\n    const visibility = this._filterNode(node, parentVisibility);\n    node.visibility = visibility;\n    if (revealed) {\n      treeListElements.push(node);\n    }\n    const childElements = treeElement.children || Iterable.empty();\n    const childRevealed = revealed \u0026\u0026 visibility !== 0 \u0026\u0026 !node.collapsed;\n    let visibleChildrenCount = 0;\n    let renderNodeCount = 1;\n    for (const el of childElements) {\n      const child = this.createTreeNode(el, node, visibility, childRevealed, treeListElements, onDidCreateNode);\n      node.children.push(child);\n      renderNodeCount += child.renderNodeCount;\n      if (child.visible) {\n        child.visibleChildIndex = visibleChildrenCount++;\n      }\n    }\n    if (!this.allowNonCollapsibleParents) {\n      node.collapsible = node.collapsible || node.children.length \u003e 0;\n    }\n    node.visibleChildrenCount = visibleChildrenCount;\n    node.visible = visibility === 2 ? visibleChildrenCount \u003e 0 : visibility === 1;\n    if (!node.visible) {\n      node.renderNodeCount = 0;\n      if (revealed) {\n        treeListElements.pop();\n      }\n    } else if (!node.collapsed) {\n      node.renderNodeCount = renderNodeCount;\n    }\n    onDidCreateNode?.(node);\n    return node;\n  }\n  updateNodeAfterCollapseChange(node) {\n    const previousRenderNodeCount = node.renderNodeCount;\n    const result = [];\n    this._updateNodeAfterCollapseChange(node, result);\n    this._updateAncestorsRenderNodeCount(node.parent, result.length - previousRenderNodeCount);\n    return result;\n  }\n  _updateNodeAfterCollapseChange(node, result) {\n    if (node.visible === false) {\n      return 0;\n    }\n    result.push(node);\n    node.renderNodeCount = 1;\n    if (!node.collapsed) {\n      for (const child of node.children) {\n        node.renderNodeCount += this._updateNodeAfterCollapseChange(child, result);\n      }\n    }\n    this._onDidChangeRenderNodeCount.fire(node);\n    return node.renderNodeCount;\n  }\n  updateNodeAfterFilterChange(node) {\n    const previousRenderNodeCount = node.renderNodeCount;\n    const result = [];\n    this._updateNodeAfterFilterChange(node, node.visible ? 1 : 0, result);\n    this._updateAncestorsRenderNodeCount(node.parent, result.length - previousRenderNodeCount);\n    return result;\n  }\n  _updateNodeAfterFilterChange(node, parentVisibility, result, revealed = true) {\n    let visibility;\n    if (node !== this.root) {\n      visibility = this._filterNode(node, parentVisibility);\n      if (visibility === 0) {\n        node.visible = false;\n        node.renderNodeCount = 0;\n        return false;\n      }\n      if (revealed) {\n        result.push(node);\n      }\n    }\n    const resultStartLength = result.length;\n    node.renderNodeCount = node === this.root ? 0 : 1;\n    let hasVisibleDescendants = false;\n    if (!node.collapsed || visibility !== 0) {\n      let visibleChildIndex = 0;\n      for (const child of node.children) {\n        hasVisibleDescendants = this._updateNodeAfterFilterChange(child, visibility, result, revealed \u0026\u0026 !node.collapsed) || hasVisibleDescendants;\n        if (child.visible) {\n          child.visibleChildIndex = visibleChildIndex++;\n        }\n      }\n      node.visibleChildrenCount = visibleChildIndex;\n    } else {\n      node.visibleChildrenCount = 0;\n    }\n    if (node !== this.root) {\n      node.visible = visibility === 2 ? hasVisibleDescendants : visibility === 1;\n      node.visibility = visibility;\n    }\n    if (!node.visible) {\n      node.renderNodeCount = 0;\n      if (revealed) {\n        result.pop();\n      }\n    } else if (!node.collapsed) {\n      node.renderNodeCount += result.length - resultStartLength;\n    }\n    this._onDidChangeRenderNodeCount.fire(node);\n    return node.visible;\n  }\n  _updateAncestorsRenderNodeCount(node, diff) {\n    if (diff === 0) {\n      return;\n    }\n    while (node) {\n      node.renderNodeCount += diff;\n      this._onDidChangeRenderNodeCount.fire(node);\n      node = node.parent;\n    }\n  }\n  _filterNode(node, parentVisibility) {\n    const result = this.filter ? this.filter.filter(node.element, parentVisibility) : 1;\n    if (typeof result === \"boolean\") {\n      node.filterData = void 0;\n      return result ? 1 : 0;\n    } else if (isFilterResult(result)) {\n      node.filterData = result.data;\n      return getVisibleState(result.visibility);\n    } else {\n      node.filterData = void 0;\n      return getVisibleState(result);\n    }\n  }\n  // cheap\n  hasTreeNode(location2, node = this.root) {\n    if (!location2 || location2.length === 0) {\n      return true;\n    }\n    const [index, ...rest] = location2;\n    if (index \u003c 0 || index \u003e node.children.length) {\n      return false;\n    }\n    return this.hasTreeNode(rest, node.children[index]);\n  }\n  // cheap\n  getTreeNode(location2, node = this.root) {\n    if (!location2 || location2.length === 0) {\n      return node;\n    }\n    const [index, ...rest] = location2;\n    if (index \u003c 0 || index \u003e node.children.length) {\n      throw new TreeError(this.user, \"Invalid tree location\");\n    }\n    return this.getTreeNode(rest, node.children[index]);\n  }\n  // expensive\n  getTreeNodeWithListIndex(location2) {\n    if (location2.length === 0) {\n      return { node: this.root, listIndex: -1, revealed: true, visible: false };\n    }\n    const { parentNode, listIndex, revealed, visible } = this.getParentNodeWithListIndex(location2);\n    const index = location2[location2.length - 1];\n    if (index \u003c 0 || index \u003e parentNode.children.length) {\n      throw new TreeError(this.user, \"Invalid tree location\");\n    }\n    const node = parentNode.children[index];\n    return { node, listIndex, revealed, visible: visible \u0026\u0026 node.visible };\n  }\n  getParentNodeWithListIndex(location2, node = this.root, listIndex = 0, revealed = true, visible = true) {\n    const [index, ...rest] = location2;\n    if (index \u003c 0 || index \u003e node.children.length) {\n      throw new TreeError(this.user, \"Invalid tree location\");\n    }\n    for (let i2 = 0; i2 \u003c index; i2++) {\n      listIndex += node.children[i2].renderNodeCount;\n    }\n    revealed = revealed \u0026\u0026 !node.collapsed;\n    visible = visible \u0026\u0026 node.visible;\n    if (rest.length === 0) {\n      return { parentNode: node, listIndex, revealed, visible };\n    }\n    return this.getParentNodeWithListIndex(rest, node.children[index], listIndex + 1, revealed, visible);\n  }\n  getNode(location2 = []) {\n    return this.getTreeNode(location2);\n  }\n  // TODO@joao perf!\n  getNodeLocation(node) {\n    const location2 = [];\n    let indexTreeNode = node;\n    while (indexTreeNode.parent) {\n      location2.push(indexTreeNode.parent.children.indexOf(indexTreeNode));\n      indexTreeNode = indexTreeNode.parent;\n    }\n    return location2.reverse();\n  }\n  getParentNodeLocation(location2) {\n    if (location2.length === 0) {\n      return void 0;\n    } else if (location2.length === 1) {\n      return [];\n    } else {\n      return tail(location2)[0];\n    }\n  }\n  getFirstElementChild(location2) {\n    const node = this.getTreeNode(location2);\n    if (node.children.length === 0) {\n      return void 0;\n    }\n    return node.children[0].element;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/abstractTree.js\ninit_actions();\ninit_arrays();\ninit_async();\ninit_codicons();\ninit_themables();\ninit_map();\ninit_event();\ninit_filters();\ninit_lifecycle();\ninit_numbers();\ninit_nls();\ninit_observable();\nvar TreeElementsDragAndDropData = class extends ElementsDragAndDropData {\n  constructor(data) {\n    super(data.elements.map((node) =\u003e node.element));\n    this.data = data;\n  }\n};\nfunction asTreeDragAndDropData(data) {\n  if (data instanceof ElementsDragAndDropData) {\n    return new TreeElementsDragAndDropData(data);\n  }\n  return data;\n}\nvar TreeNodeListDragAndDrop = class {\n  constructor(modelProvider, dnd) {\n    this.modelProvider = modelProvider;\n    this.dnd = dnd;\n    this.autoExpandDisposable = Disposable.None;\n    this.disposables = new DisposableStore();\n  }\n  getDragURI(node) {\n    return this.dnd.getDragURI(node.element);\n  }\n  getDragLabel(nodes, originalEvent) {\n    if (this.dnd.getDragLabel) {\n      return this.dnd.getDragLabel(nodes.map((node) =\u003e node.element), originalEvent);\n    }\n    return void 0;\n  }\n  onDragStart(data, originalEvent) {\n    this.dnd.onDragStart?.(asTreeDragAndDropData(data), originalEvent);\n  }\n  onDragOver(data, targetNode, targetIndex, targetSector, originalEvent, raw = true) {\n    const result = this.dnd.onDragOver(asTreeDragAndDropData(data), targetNode \u0026\u0026 targetNode.element, targetIndex, targetSector, originalEvent);\n    const didChangeAutoExpandNode = this.autoExpandNode !== targetNode;\n    if (didChangeAutoExpandNode) {\n      this.autoExpandDisposable.dispose();\n      this.autoExpandNode = targetNode;\n    }\n    if (typeof targetNode === \"undefined\") {\n      return result;\n    }\n    if (didChangeAutoExpandNode \u0026\u0026 typeof result !== \"boolean\" \u0026\u0026 result.autoExpand) {\n      this.autoExpandDisposable = disposableTimeout(() =\u003e {\n        const model2 = this.modelProvider();\n        const ref2 = model2.getNodeLocation(targetNode);\n        if (model2.isCollapsed(ref2)) {\n          model2.setCollapsed(ref2, false);\n        }\n        this.autoExpandNode = void 0;\n      }, 500, this.disposables);\n    }\n    if (typeof result === \"boolean\" || !result.accept || typeof result.bubble === \"undefined\" || result.feedback) {\n      if (!raw) {\n        const accept = typeof result === \"boolean\" ? result : result.accept;\n        const effect = typeof result === \"boolean\" ? void 0 : result.effect;\n        return { accept, effect, feedback: [targetIndex] };\n      }\n      return result;\n    }\n    if (result.bubble === 1) {\n      const model2 = this.modelProvider();\n      const ref2 = model2.getNodeLocation(targetNode);\n      const parentRef = model2.getParentNodeLocation(ref2);\n      const parentNode = model2.getNode(parentRef);\n      const parentIndex = parentRef \u0026\u0026 model2.getListIndex(parentRef);\n      return this.onDragOver(data, parentNode, parentIndex, targetSector, originalEvent, false);\n    }\n    const model = this.modelProvider();\n    const ref = model.getNodeLocation(targetNode);\n    const start = model.getListIndex(ref);\n    const length = model.getListRenderCount(ref);\n    return { ...result, feedback: range(start, start + length) };\n  }\n  drop(data, targetNode, targetIndex, targetSector, originalEvent) {\n    this.autoExpandDisposable.dispose();\n    this.autoExpandNode = void 0;\n    this.dnd.drop(asTreeDragAndDropData(data), targetNode \u0026\u0026 targetNode.element, targetIndex, targetSector, originalEvent);\n  }\n  onDragEnd(originalEvent) {\n    this.dnd.onDragEnd?.(originalEvent);\n  }\n  dispose() {\n    this.disposables.dispose();\n    this.dnd.dispose();\n  }\n};\nfunction asListOptions(modelProvider, disposableStore, options2) {\n  return options2 \u0026\u0026 {\n    ...options2,\n    identityProvider: options2.identityProvider \u0026\u0026 {\n      getId(el) {\n        return options2.identityProvider.getId(el.element);\n      }\n    },\n    dnd: options2.dnd \u0026\u0026 disposableStore.add(new TreeNodeListDragAndDrop(modelProvider, options2.dnd)),\n    multipleSelectionController: options2.multipleSelectionController \u0026\u0026 {\n      isSelectionSingleChangeEvent(e) {\n        return options2.multipleSelectionController.isSelectionSingleChangeEvent({ ...e, element: e.element });\n      },\n      isSelectionRangeChangeEvent(e) {\n        return options2.multipleSelectionController.isSelectionRangeChangeEvent({ ...e, element: e.element });\n      }\n    },\n    accessibilityProvider: options2.accessibilityProvider \u0026\u0026 {\n      ...options2.accessibilityProvider,\n      getSetSize(node) {\n        const model = modelProvider();\n        const ref = model.getNodeLocation(node);\n        const parentRef = model.getParentNodeLocation(ref);\n        const parentNode = model.getNode(parentRef);\n        return parentNode.visibleChildrenCount;\n      },\n      getPosInSet(node) {\n        return node.visibleChildIndex + 1;\n      },\n      isChecked: options2.accessibilityProvider \u0026\u0026 options2.accessibilityProvider.isChecked ? (node) =\u003e {\n        return options2.accessibilityProvider.isChecked(node.element);\n      } : void 0,\n      getRole: options2.accessibilityProvider \u0026\u0026 options2.accessibilityProvider.getRole ? (node) =\u003e {\n        return options2.accessibilityProvider.getRole(node.element);\n      } : () =\u003e \"treeitem\",\n      getAriaLabel(e) {\n        return options2.accessibilityProvider.getAriaLabel(e.element);\n      },\n      getWidgetAriaLabel() {\n        return options2.accessibilityProvider.getWidgetAriaLabel();\n      },\n      getWidgetRole: options2.accessibilityProvider \u0026\u0026 options2.accessibilityProvider.getWidgetRole ? () =\u003e options2.accessibilityProvider.getWidgetRole() : () =\u003e \"tree\",\n      getAriaLevel: options2.accessibilityProvider \u0026\u0026 options2.accessibilityProvider.getAriaLevel ? (node) =\u003e options2.accessibilityProvider.getAriaLevel(node.element) : (node) =\u003e {\n        return node.depth;\n      },\n      getActiveDescendantId: options2.accessibilityProvider.getActiveDescendantId \u0026\u0026 ((node) =\u003e {\n        return options2.accessibilityProvider.getActiveDescendantId(node.element);\n      })\n    },\n    keyboardNavigationLabelProvider: options2.keyboardNavigationLabelProvider \u0026\u0026 {\n      ...options2.keyboardNavigationLabelProvider,\n      getKeyboardNavigationLabel(node) {\n        return options2.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(node.element);\n      }\n    }\n  };\n}\nvar ComposedTreeDelegate = class {\n  constructor(delegate) {\n    this.delegate = delegate;\n  }\n  getHeight(element) {\n    return this.delegate.getHeight(element.element);\n  }\n  getTemplateId(element) {\n    return this.delegate.getTemplateId(element.element);\n  }\n  hasDynamicHeight(element) {\n    return !!this.delegate.hasDynamicHeight \u0026\u0026 this.delegate.hasDynamicHeight(element.element);\n  }\n  setDynamicHeight(element, height) {\n    this.delegate.setDynamicHeight?.(element.element, height);\n  }\n};\nvar RenderIndentGuides;\n(function(RenderIndentGuides2) {\n  RenderIndentGuides2[\"None\"] = \"none\";\n  RenderIndentGuides2[\"OnHover\"] = \"onHover\";\n  RenderIndentGuides2[\"Always\"] = \"always\";\n})(RenderIndentGuides || (RenderIndentGuides = {}));\nvar EventCollection = class {\n  get elements() {\n    return this._elements;\n  }\n  constructor(onDidChange, _elements = []) {\n    this._elements = _elements;\n    this.disposables = new DisposableStore();\n    this.onDidChange = Event.forEach(onDidChange, (elements) =\u003e this._elements = elements, this.disposables);\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\nvar TreeRenderer = class _TreeRenderer {\n  static {\n    this.DefaultIndent = 8;\n  }\n  constructor(renderer, model, onDidChangeCollapseState, activeNodes, renderedIndentGuides, options2 = {}) {\n    this.renderer = renderer;\n    this.model = model;\n    this.activeNodes = activeNodes;\n    this.renderedIndentGuides = renderedIndentGuides;\n    this.renderedElements = /* @__PURE__ */ new Map();\n    this.renderedNodes = /* @__PURE__ */ new Map();\n    this.indent = _TreeRenderer.DefaultIndent;\n    this.hideTwistiesOfChildlessElements = false;\n    this.shouldRenderIndentGuides = false;\n    this.activeIndentNodes = /* @__PURE__ */ new Set();\n    this.indentGuidesDisposable = Disposable.None;\n    this.disposables = new DisposableStore();\n    this.templateId = renderer.templateId;\n    this.updateOptions(options2);\n    Event.map(onDidChangeCollapseState, (e) =\u003e e.node)(this.onDidChangeNodeTwistieState, this, this.disposables);\n    renderer.onDidChangeTwistieState?.(this.onDidChangeTwistieState, this, this.disposables);\n  }\n  updateOptions(options2 = {}) {\n    if (typeof options2.indent !== \"undefined\") {\n      const indent = clamp(options2.indent, 0, 40);\n      if (indent !== this.indent) {\n        this.indent = indent;\n        for (const [node, templateData] of this.renderedNodes) {\n          templateData.indentSize = _TreeRenderer.DefaultIndent + (node.depth - 1) * this.indent;\n          this.renderTreeElement(node, templateData);\n        }\n      }\n    }\n    if (typeof options2.renderIndentGuides !== \"undefined\") {\n      const shouldRenderIndentGuides = options2.renderIndentGuides !== RenderIndentGuides.None;\n      if (shouldRenderIndentGuides !== this.shouldRenderIndentGuides) {\n        this.shouldRenderIndentGuides = shouldRenderIndentGuides;\n        for (const [node, templateData] of this.renderedNodes) {\n          this._renderIndentGuides(node, templateData);\n        }\n        this.indentGuidesDisposable.dispose();\n        if (shouldRenderIndentGuides) {\n          const disposables = new DisposableStore();\n          this.activeNodes.onDidChange(this._onDidChangeActiveNodes, this, disposables);\n          this.indentGuidesDisposable = disposables;\n          this._onDidChangeActiveNodes(this.activeNodes.elements);\n        }\n      }\n    }\n    if (typeof options2.hideTwistiesOfChildlessElements !== \"undefined\") {\n      this.hideTwistiesOfChildlessElements = options2.hideTwistiesOfChildlessElements;\n    }\n  }\n  renderTemplate(container) {\n    const el = append(container, $(\".monaco-tl-row\"));\n    const indent = append(el, $(\".monaco-tl-indent\"));\n    const twistie = append(el, $(\".monaco-tl-twistie\"));\n    const contents = append(el, $(\".monaco-tl-contents\"));\n    const templateData = this.renderer.renderTemplate(contents);\n    return { container, indent, twistie, indentGuidesDisposable: Disposable.None, indentSize: 0, templateData };\n  }\n  renderElement(node, index, templateData, details) {\n    templateData.indentSize = _TreeRenderer.DefaultIndent + (node.depth - 1) * this.indent;\n    this.renderedNodes.set(node, templateData);\n    this.renderedElements.set(node.element, node);\n    this.renderTreeElement(node, templateData);\n    this.renderer.renderElement(node, index, templateData.templateData, { ...details, indent: templateData.indentSize });\n  }\n  disposeElement(node, index, templateData, details) {\n    templateData.indentGuidesDisposable.dispose();\n    this.renderer.disposeElement?.(node, index, templateData.templateData, { ...details, indent: templateData.indentSize });\n    if (typeof details?.height === \"number\") {\n      this.renderedNodes.delete(node);\n      this.renderedElements.delete(node.element);\n    }\n  }\n  disposeTemplate(templateData) {\n    this.renderer.disposeTemplate(templateData.templateData);\n  }\n  onDidChangeTwistieState(element) {\n    const node = this.renderedElements.get(element);\n    if (!node) {\n      return;\n    }\n    this.onDidChangeNodeTwistieState(node);\n  }\n  onDidChangeNodeTwistieState(node) {\n    const templateData = this.renderedNodes.get(node);\n    if (!templateData) {\n      return;\n    }\n    this._onDidChangeActiveNodes(this.activeNodes.elements);\n    this.renderTreeElement(node, templateData);\n  }\n  renderTreeElement(node, templateData) {\n    templateData.twistie.style.paddingLeft = `${templateData.indentSize}px`;\n    templateData.indent.style.width = `${templateData.indentSize + this.indent - 16}px`;\n    if (node.collapsible) {\n      templateData.container.setAttribute(\"aria-expanded\", String(!node.collapsed));\n    } else {\n      templateData.container.removeAttribute(\"aria-expanded\");\n    }\n    templateData.twistie.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));\n    let twistieRendered = false;\n    if (this.renderer.renderTwistie) {\n      twistieRendered = this.renderer.renderTwistie(node.element, templateData.twistie);\n    }\n    if (node.collapsible \u0026\u0026 (!this.hideTwistiesOfChildlessElements || node.visibleChildrenCount \u003e 0)) {\n      if (!twistieRendered) {\n        templateData.twistie.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));\n      }\n      templateData.twistie.classList.add(\"collapsible\");\n      templateData.twistie.classList.toggle(\"collapsed\", node.collapsed);\n    } else {\n      templateData.twistie.classList.remove(\"collapsible\", \"collapsed\");\n    }\n    this._renderIndentGuides(node, templateData);\n  }\n  _renderIndentGuides(node, templateData) {\n    clearNode(templateData.indent);\n    templateData.indentGuidesDisposable.dispose();\n    if (!this.shouldRenderIndentGuides) {\n      return;\n    }\n    const disposableStore = new DisposableStore();\n    while (true) {\n      const ref = this.model.getNodeLocation(node);\n      const parentRef = this.model.getParentNodeLocation(ref);\n      if (!parentRef) {\n        break;\n      }\n      const parent = this.model.getNode(parentRef);\n      const guide = $(\".indent-guide\", { style: `width: ${this.indent}px` });\n      if (this.activeIndentNodes.has(parent)) {\n        guide.classList.add(\"active\");\n      }\n      if (templateData.indent.childElementCount === 0) {\n        templateData.indent.appendChild(guide);\n      } else {\n        templateData.indent.insertBefore(guide, templateData.indent.firstElementChild);\n      }\n      this.renderedIndentGuides.add(parent, guide);\n      disposableStore.add(toDisposable(() =\u003e this.renderedIndentGuides.delete(parent, guide)));\n      node = parent;\n    }\n    templateData.indentGuidesDisposable = disposableStore;\n  }\n  _onDidChangeActiveNodes(nodes) {\n    if (!this.shouldRenderIndentGuides) {\n      return;\n    }\n    const set = /* @__PURE__ */ new Set();\n    nodes.forEach((node) =\u003e {\n      const ref = this.model.getNodeLocation(node);\n      try {\n        const parentRef = this.model.getParentNodeLocation(ref);\n        if (node.collapsible \u0026\u0026 node.children.length \u003e 0 \u0026\u0026 !node.collapsed) {\n          set.add(node);\n        } else if (parentRef) {\n          set.add(this.model.getNode(parentRef));\n        }\n      } catch {\n      }\n    });\n    this.activeIndentNodes.forEach((node) =\u003e {\n      if (!set.has(node)) {\n        this.renderedIndentGuides.forEach(node, (line) =\u003e line.classList.remove(\"active\"));\n      }\n    });\n    set.forEach((node) =\u003e {\n      if (!this.activeIndentNodes.has(node)) {\n        this.renderedIndentGuides.forEach(node, (line) =\u003e line.classList.add(\"active\"));\n      }\n    });\n    this.activeIndentNodes = set;\n  }\n  dispose() {\n    this.renderedNodes.clear();\n    this.renderedElements.clear();\n    this.indentGuidesDisposable.dispose();\n    dispose(this.disposables);\n  }\n};\nfunction contiguousFuzzyScore(patternLower, wordLower) {\n  const index = wordLower.toLowerCase().indexOf(patternLower);\n  let score3;\n  if (index \u003e -1) {\n    score3 = [Number.MAX_SAFE_INTEGER, 0];\n    for (let i2 = patternLower.length; i2 \u003e 0; i2--) {\n      score3.push(index + i2 - 1);\n    }\n  }\n  return score3;\n}\nvar FindFilter = class {\n  get totalCount() {\n    return this._totalCount;\n  }\n  get matchCount() {\n    return this._matchCount;\n  }\n  set findMatchType(type) {\n    this._findMatchType = type;\n  }\n  get findMatchType() {\n    return this._findMatchType;\n  }\n  set findMode(mode) {\n    this._findMode = mode;\n  }\n  get findMode() {\n    return this._findMode;\n  }\n  constructor(_keyboardNavigationLabelProvider, _filter, _defaultFindVisibility) {\n    this._keyboardNavigationLabelProvider = _keyboardNavigationLabelProvider;\n    this._filter = _filter;\n    this._defaultFindVisibility = _defaultFindVisibility;\n    this._totalCount = 0;\n    this._matchCount = 0;\n    this._findMatchType = TreeFindMatchType.Fuzzy;\n    this._findMode = TreeFindMode.Highlight;\n    this._pattern = \"\";\n    this._lowercasePattern = \"\";\n    this.disposables = new DisposableStore();\n  }\n  filter(element, parentVisibility) {\n    let visibility = 1;\n    if (this._filter) {\n      const result = this._filter.filter(element, parentVisibility);\n      if (typeof result === \"boolean\") {\n        visibility = result ? 1 : 0;\n      } else if (isFilterResult(result)) {\n        visibility = getVisibleState(result.visibility);\n      } else {\n        visibility = result;\n      }\n      if (visibility === 0) {\n        return false;\n      }\n    }\n    this._totalCount++;\n    if (!this._pattern) {\n      this._matchCount++;\n      return { data: FuzzyScore.Default, visibility };\n    }\n    const label = this._keyboardNavigationLabelProvider.getKeyboardNavigationLabel(element);\n    const labels = Array.isArray(label) ? label : [label];\n    for (const l of labels) {\n      const labelStr = l \u0026\u0026 l.toString();\n      if (typeof labelStr === \"undefined\") {\n        return { data: FuzzyScore.Default, visibility };\n      }\n      let score3;\n      if (this._findMatchType === TreeFindMatchType.Contiguous) {\n        score3 = contiguousFuzzyScore(this._lowercasePattern, labelStr.toLowerCase());\n      } else {\n        score3 = fuzzyScore(this._pattern, this._lowercasePattern, 0, labelStr, labelStr.toLowerCase(), 0, { firstMatchCanBeWeak: true, boostFullMatch: true });\n      }\n      if (score3) {\n        this._matchCount++;\n        return labels.length === 1 ? { data: score3, visibility } : { data: { label: labelStr, score: score3 }, visibility };\n      }\n    }\n    if (this._findMode === TreeFindMode.Filter) {\n      if (typeof this._defaultFindVisibility === \"number\") {\n        return this._defaultFindVisibility;\n      } else if (this._defaultFindVisibility) {\n        return this._defaultFindVisibility(element);\n      } else {\n        return 2;\n      }\n    } else {\n      return { data: FuzzyScore.Default, visibility };\n    }\n  }\n  reset() {\n    this._totalCount = 0;\n    this._matchCount = 0;\n  }\n  dispose() {\n    dispose(this.disposables);\n  }\n};\nvar FindToggles = class {\n  constructor(startStates) {\n    this.stateMap = new Map(startStates.map((state) =\u003e [state.id, { ...state }]));\n  }\n  get(id) {\n    const state = this.stateMap.get(id);\n    if (state === void 0) {\n      throw new Error(`No state found for toggle id ${id}`);\n    }\n    return state.isChecked;\n  }\n  set(id, value) {\n    const state = this.stateMap.get(id);\n    if (state === void 0) {\n      throw new Error(`No state found for toggle id ${id}`);\n    }\n    if (state.isChecked === value) {\n      return false;\n    }\n    state.isChecked = value;\n    return true;\n  }\n};\nvar TreeFindMode;\n(function(TreeFindMode2) {\n  TreeFindMode2[TreeFindMode2[\"Highlight\"] = 0] = \"Highlight\";\n  TreeFindMode2[TreeFindMode2[\"Filter\"] = 1] = \"Filter\";\n})(TreeFindMode || (TreeFindMode = {}));\nvar TreeFindMatchType;\n(function(TreeFindMatchType2) {\n  TreeFindMatchType2[TreeFindMatchType2[\"Fuzzy\"] = 0] = \"Fuzzy\";\n  TreeFindMatchType2[TreeFindMatchType2[\"Contiguous\"] = 1] = \"Contiguous\";\n})(TreeFindMatchType || (TreeFindMatchType = {}));\nvar DefaultTreeToggles;\n(function(DefaultTreeToggles2) {\n  DefaultTreeToggles2[\"Mode\"] = \"mode\";\n  DefaultTreeToggles2[\"MatchType\"] = \"matchType\";\n})(DefaultTreeToggles || (DefaultTreeToggles = {}));\nvar AbstractFindController = class {\n  get pattern() {\n    return this._pattern;\n  }\n  get placeholder() {\n    return this._placeholder;\n  }\n  set placeholder(value) {\n    this._placeholder = value;\n    this.widget?.setPlaceHolder(value);\n  }\n  constructor(tree, filter, contextViewProvider, options2 = {}) {\n    this.tree = tree;\n    this.filter = filter;\n    this.contextViewProvider = contextViewProvider;\n    this.options = options2;\n    this._pattern = \"\";\n    this._onDidChangePattern = new Emitter();\n    this._onDidChangeOpenState = new Emitter();\n    this.onDidChangeOpenState = this._onDidChangeOpenState.event;\n    this.enabledDisposables = new DisposableStore();\n    this.disposables = new DisposableStore();\n    this.toggles = new FindToggles(options2.toggles ?? []);\n    this._placeholder = options2.placeholder ?? localize(20, \"Type to search\");\n  }\n  isOpened() {\n    return !!this.widget;\n  }\n  updateToggleState(id, checked) {\n    this.toggles.set(id, checked);\n    this.widget?.setToggleState(id, checked);\n  }\n  renderMessage(showNotFound, warningMessage) {\n    if (showNotFound) {\n      if (this.tree.options.showNotFoundMessage ?? true) {\n        this.widget?.showMessage({ type: 2, content: warningMessage ?? localize(21, \"No results found.\") });\n      } else {\n        this.widget?.showMessage({\n          type: 2\n          /* MessageType.WARNING */\n        });\n      }\n    } else {\n      this.widget?.clearMessage();\n    }\n  }\n  alertResults(results) {\n    if (!results) {\n      alert(localize(22, \"No results\"));\n    } else {\n      alert(localize(23, \"{0} results\", results));\n    }\n  }\n  dispose() {\n    this._history = void 0;\n    this._onDidChangePattern.dispose();\n    this.enabledDisposables.dispose();\n    this.disposables.dispose();\n  }\n};\nvar FindController = class extends AbstractFindController {\n  get mode() {\n    return this.toggles.get(DefaultTreeToggles.Mode) ? TreeFindMode.Filter : TreeFindMode.Highlight;\n  }\n  set mode(mode) {\n    if (mode === this.mode) {\n      return;\n    }\n    const isFilterMode = mode === TreeFindMode.Filter;\n    this.updateToggleState(DefaultTreeToggles.Mode, isFilterMode);\n    this.placeholder = isFilterMode ? localize(24, \"Type to filter\") : localize(25, \"Type to search\");\n    this.filter.findMode = mode;\n    this.tree.refilter();\n    this.render();\n    this._onDidChangeMode.fire(mode);\n  }\n  get matchType() {\n    return this.toggles.get(DefaultTreeToggles.MatchType) ? TreeFindMatchType.Fuzzy : TreeFindMatchType.Contiguous;\n  }\n  set matchType(matchType) {\n    if (matchType === this.matchType) {\n      return;\n    }\n    this.updateToggleState(DefaultTreeToggles.MatchType, matchType === TreeFindMatchType.Fuzzy);\n    this.filter.findMatchType = matchType;\n    this.tree.refilter();\n    this.render();\n    this._onDidChangeMatchType.fire(matchType);\n  }\n  constructor(tree, filter, contextViewProvider, options2 = {}) {\n    const defaultFindMode = options2.defaultFindMode ?? TreeFindMode.Highlight;\n    const defaultFindMatchType = options2.defaultFindMatchType ?? TreeFindMatchType.Fuzzy;\n    const toggleContributions = [{\n      id: DefaultTreeToggles.Mode,\n      icon: Codicon.listFilter,\n      title: localize(26, \"Filter\"),\n      isChecked: defaultFindMode === TreeFindMode.Filter\n    }, {\n      id: DefaultTreeToggles.MatchType,\n      icon: Codicon.searchFuzzy,\n      title: localize(27, \"Fuzzy Match\"),\n      isChecked: defaultFindMatchType === TreeFindMatchType.Fuzzy\n    }];\n    filter.findMatchType = defaultFindMatchType;\n    filter.findMode = defaultFindMode;\n    super(tree, filter, contextViewProvider, { ...options2, toggles: toggleContributions });\n    this.filter = filter;\n    this._onDidChangeMode = new Emitter();\n    this.onDidChangeMode = this._onDidChangeMode.event;\n    this._onDidChangeMatchType = new Emitter();\n    this.onDidChangeMatchType = this._onDidChangeMatchType.event;\n    this.disposables.add(this.tree.onDidChangeModel(() =\u003e {\n      if (!this.isOpened()) {\n        return;\n      }\n      if (this.pattern.length !== 0) {\n        this.tree.refilter();\n      }\n      this.render();\n    }));\n    this.disposables.add(this.tree.onWillRefilter(() =\u003e this.filter.reset()));\n  }\n  updateOptions(optionsUpdate = {}) {\n    if (optionsUpdate.defaultFindMode !== void 0) {\n      this.mode = optionsUpdate.defaultFindMode;\n    }\n    if (optionsUpdate.defaultFindMatchType !== void 0) {\n      this.matchType = optionsUpdate.defaultFindMatchType;\n    }\n  }\n  shouldAllowFocus(node) {\n    if (!this.isOpened() || !this.pattern) {\n      return true;\n    }\n    if (this.filter.totalCount \u003e 0 \u0026\u0026 this.filter.matchCount \u003c= 1) {\n      return true;\n    }\n    return !FuzzyScore.isDefault(node.filterData);\n  }\n  render() {\n    const noMatches = this.filter.matchCount === 0 \u0026\u0026 this.filter.totalCount \u003e 0;\n    const showNotFound = noMatches \u0026\u0026 this.pattern.length \u003e 0;\n    this.renderMessage(showNotFound);\n    if (this.pattern.length) {\n      this.alertResults(this.filter.matchCount);\n    }\n  }\n};\nfunction stickyScrollNodeStateEquals(node1, node2) {\n  return node1.position === node2.position \u0026\u0026 stickyScrollNodeEquals(node1, node2);\n}\nfunction stickyScrollNodeEquals(node1, node2) {\n  return node1.node.element === node2.node.element \u0026\u0026 node1.startIndex === node2.startIndex \u0026\u0026 node1.height === node2.height \u0026\u0026 node1.endIndex === node2.endIndex;\n}\nvar StickyScrollState = class {\n  constructor(stickyNodes = []) {\n    this.stickyNodes = stickyNodes;\n  }\n  get count() {\n    return this.stickyNodes.length;\n  }\n  equal(state) {\n    return equals(this.stickyNodes, state.stickyNodes, stickyScrollNodeStateEquals);\n  }\n  contains(element) {\n    return this.stickyNodes.some((node) =\u003e node.node.element === element.element);\n  }\n  lastNodePartiallyVisible() {\n    if (this.count === 0) {\n      return false;\n    }\n    const lastStickyNode = this.stickyNodes[this.count - 1];\n    if (this.count === 1) {\n      return lastStickyNode.position !== 0;\n    }\n    const secondLastStickyNode = this.stickyNodes[this.count - 2];\n    return secondLastStickyNode.position + secondLastStickyNode.height !== lastStickyNode.position;\n  }\n  animationStateChanged(previousState) {\n    if (!equals(this.stickyNodes, previousState.stickyNodes, stickyScrollNodeEquals)) {\n      return false;\n    }\n    if (this.count === 0) {\n      return false;\n    }\n    const lastStickyNode = this.stickyNodes[this.count - 1];\n    const previousLastStickyNode = previousState.stickyNodes[previousState.count - 1];\n    return lastStickyNode.position !== previousLastStickyNode.position;\n  }\n};\nvar DefaultStickyScrollDelegate = class {\n  constrainStickyScrollNodes(stickyNodes, stickyScrollMaxItemCount, maxWidgetHeight) {\n    for (let i2 = 0; i2 \u003c stickyNodes.length; i2++) {\n      const stickyNode = stickyNodes[i2];\n      const stickyNodeBottom = stickyNode.position + stickyNode.height;\n      if (stickyNodeBottom \u003e maxWidgetHeight || i2 \u003e= stickyScrollMaxItemCount) {\n        return stickyNodes.slice(0, i2);\n      }\n    }\n    return stickyNodes;\n  }\n};\nvar StickyScrollController = class extends Disposable {\n  constructor(tree, model, view, renderers, treeDelegate, options2 = {}) {\n    super();\n    this.tree = tree;\n    this.model = model;\n    this.view = view;\n    this.treeDelegate = treeDelegate;\n    this.maxWidgetViewRatio = 0.4;\n    const stickyScrollOptions = this.validateStickySettings(options2);\n    this.stickyScrollMaxItemCount = stickyScrollOptions.stickyScrollMaxItemCount;\n    this.stickyScrollDelegate = options2.stickyScrollDelegate ?? new DefaultStickyScrollDelegate();\n    this.paddingTop = options2.paddingTop ?? 0;\n    this._widget = this._register(new StickyScrollWidget(view.getScrollableElement(), view, tree, renderers, treeDelegate, options2.accessibilityProvider));\n    this.onDidChangeHasFocus = this._widget.onDidChangeHasFocus;\n    this.onContextMenu = this._widget.onContextMenu;\n    this._register(view.onDidScroll(() =\u003e this.update()));\n    this._register(view.onDidChangeContentHeight(() =\u003e this.update()));\n    this._register(tree.onDidChangeCollapseState(() =\u003e this.update()));\n    this._register(model.onDidSpliceRenderedNodes((e) =\u003e {\n      const state = this._widget.state;\n      if (!state) {\n        return;\n      }\n      const hasRemovedStickyNode = e.deleteCount \u003e 0 \u0026\u0026 state.stickyNodes.some((stickyNode) =\u003e !this.model.has(this.model.getNodeLocation(stickyNode.node)));\n      if (hasRemovedStickyNode) {\n        this.update();\n        return;\n      }\n      const shouldRerenderStickyNodes = state.stickyNodes.some((stickyNode) =\u003e {\n        const listIndex = this.model.getListIndex(this.model.getNodeLocation(stickyNode.node));\n        return listIndex \u003e= e.start \u0026\u0026 listIndex \u003c e.start + e.deleteCount \u0026\u0026 state.contains(stickyNode.node);\n      });\n      if (shouldRerenderStickyNodes) {\n        this._widget.rerender();\n      }\n    }));\n    this.update();\n  }\n  get height() {\n    return this._widget.height;\n  }\n  getNodeAtHeight(height) {\n    let index;\n    if (height === 0) {\n      index = this.view.firstVisibleIndex;\n    } else {\n      index = this.view.indexAt(height + this.view.scrollTop);\n    }\n    if (index \u003c 0 || index \u003e= this.view.length) {\n      return void 0;\n    }\n    return this.view.element(index);\n  }\n  update() {\n    const firstVisibleNode = this.getNodeAtHeight(this.paddingTop);\n    if (!firstVisibleNode || this.tree.scrollTop \u003c= this.paddingTop) {\n      this._widget.setState(void 0);\n      return;\n    }\n    const stickyState = this.findStickyState(firstVisibleNode);\n    this._widget.setState(stickyState);\n  }\n  findStickyState(firstVisibleNode) {\n    const stickyNodes = [];\n    let firstVisibleNodeUnderWidget = firstVisibleNode;\n    let stickyNodesHeight = 0;\n    let nextStickyNode = this.getNextStickyNode(firstVisibleNodeUnderWidget, void 0, stickyNodesHeight);\n    while (nextStickyNode) {\n      stickyNodes.push(nextStickyNode);\n      stickyNodesHeight += nextStickyNode.height;\n      if (stickyNodes.length \u003c= this.stickyScrollMaxItemCount) {\n        firstVisibleNodeUnderWidget = this.getNextVisibleNode(nextStickyNode);\n        if (!firstVisibleNodeUnderWidget) {\n          break;\n        }\n      }\n      nextStickyNode = this.getNextStickyNode(firstVisibleNodeUnderWidget, nextStickyNode.node, stickyNodesHeight);\n    }\n    const contrainedStickyNodes = this.constrainStickyNodes(stickyNodes);\n    return contrainedStickyNodes.length ? new StickyScrollState(contrainedStickyNodes) : void 0;\n  }\n  getNextVisibleNode(previousStickyNode) {\n    return this.getNodeAtHeight(previousStickyNode.position + previousStickyNode.height);\n  }\n  getNextStickyNode(firstVisibleNodeUnderWidget, previousStickyNode, stickyNodesHeight) {\n    const nextStickyNode = this.getAncestorUnderPrevious(firstVisibleNodeUnderWidget, previousStickyNode);\n    if (!nextStickyNode) {\n      return void 0;\n    }\n    if (nextStickyNode === firstVisibleNodeUnderWidget) {\n      if (!this.nodeIsUncollapsedParent(firstVisibleNodeUnderWidget)) {\n        return void 0;\n      }\n      if (this.nodeTopAlignsWithStickyNodesBottom(firstVisibleNodeUnderWidget, stickyNodesHeight)) {\n        return void 0;\n      }\n    }\n    return this.createStickyScrollNode(nextStickyNode, stickyNodesHeight);\n  }\n  nodeTopAlignsWithStickyNodesBottom(node, stickyNodesHeight) {\n    const nodeIndex = this.getNodeIndex(node);\n    const elementTop = this.view.getElementTop(nodeIndex);\n    const stickyPosition = stickyNodesHeight;\n    return this.view.scrollTop === elementTop - stickyPosition;\n  }\n  createStickyScrollNode(node, currentStickyNodesHeight) {\n    const height = this.treeDelegate.getHeight(node);\n    const { startIndex, endIndex } = this.getNodeRange(node);\n    const position = this.calculateStickyNodePosition(endIndex, currentStickyNodesHeight, height);\n    return { node, position, height, startIndex, endIndex };\n  }\n  getAncestorUnderPrevious(node, previousAncestor = void 0) {\n    let currentAncestor = node;\n    let parentOfcurrentAncestor = this.getParentNode(currentAncestor);\n    while (parentOfcurrentAncestor) {\n      if (parentOfcurrentAncestor === previousAncestor) {\n        return currentAncestor;\n      }\n      currentAncestor = parentOfcurrentAncestor;\n      parentOfcurrentAncestor = this.getParentNode(currentAncestor);\n    }\n    if (previousAncestor === void 0) {\n      return currentAncestor;\n    }\n    return void 0;\n  }\n  calculateStickyNodePosition(lastDescendantIndex, stickyRowPositionTop, stickyNodeHeight) {\n    let lastChildRelativeTop = this.view.getRelativeTop(lastDescendantIndex);\n    if (lastChildRelativeTop === null \u0026\u0026 this.view.firstVisibleIndex === lastDescendantIndex \u0026\u0026 lastDescendantIndex + 1 \u003c this.view.length) {\n      const nodeHeight = this.treeDelegate.getHeight(this.view.element(lastDescendantIndex));\n      const nextNodeRelativeTop = this.view.getRelativeTop(lastDescendantIndex + 1);\n      lastChildRelativeTop = nextNodeRelativeTop ? nextNodeRelativeTop - nodeHeight / this.view.renderHeight : null;\n    }\n    if (lastChildRelativeTop === null) {\n      return stickyRowPositionTop;\n    }\n    const lastChildNode = this.view.element(lastDescendantIndex);\n    const lastChildHeight = this.treeDelegate.getHeight(lastChildNode);\n    const topOfLastChild = lastChildRelativeTop * this.view.renderHeight;\n    const bottomOfLastChild = topOfLastChild + lastChildHeight;\n    if (stickyRowPositionTop + stickyNodeHeight \u003e bottomOfLastChild \u0026\u0026 stickyRowPositionTop \u003c= bottomOfLastChild) {\n      return bottomOfLastChild - stickyNodeHeight;\n    }\n    return stickyRowPositionTop;\n  }\n  constrainStickyNodes(stickyNodes) {\n    if (stickyNodes.length === 0) {\n      return [];\n    }\n    const maximumStickyWidgetHeight = this.view.renderHeight * this.maxWidgetViewRatio;\n    const lastStickyNode = stickyNodes[stickyNodes.length - 1];\n    if (stickyNodes.length \u003c= this.stickyScrollMaxItemCount \u0026\u0026 lastStickyNode.position + lastStickyNode.height \u003c= maximumStickyWidgetHeight) {\n      return stickyNodes;\n    }\n    const constrainedStickyNodes = this.stickyScrollDelegate.constrainStickyScrollNodes(stickyNodes, this.stickyScrollMaxItemCount, maximumStickyWidgetHeight);\n    if (!constrainedStickyNodes.length) {\n      return [];\n    }\n    const lastConstrainedStickyNode = constrainedStickyNodes[constrainedStickyNodes.length - 1];\n    if (constrainedStickyNodes.length \u003e this.stickyScrollMaxItemCount || lastConstrainedStickyNode.position + lastConstrainedStickyNode.height \u003e maximumStickyWidgetHeight) {\n      throw new Error(\"stickyScrollDelegate violates constraints\");\n    }\n    return constrainedStickyNodes;\n  }\n  getParentNode(node) {\n    const nodeLocation = this.model.getNodeLocation(node);\n    const parentLocation = this.model.getParentNodeLocation(nodeLocation);\n    return parentLocation ? this.model.getNode(parentLocation) : void 0;\n  }\n  nodeIsUncollapsedParent(node) {\n    const nodeLocation = this.model.getNodeLocation(node);\n    return this.model.getListRenderCount(nodeLocation) \u003e 1;\n  }\n  getNodeIndex(node) {\n    const nodeLocation = this.model.getNodeLocation(node);\n    const nodeIndex = this.model.getListIndex(nodeLocation);\n    return nodeIndex;\n  }\n  getNodeRange(node) {\n    const nodeLocation = this.model.getNodeLocation(node);\n    const startIndex = this.model.getListIndex(nodeLocation);\n    if (startIndex \u003c 0) {\n      throw new Error(\"Node not found in tree\");\n    }\n    const renderCount = this.model.getListRenderCount(nodeLocation);\n    const endIndex = startIndex + renderCount - 1;\n    return { startIndex, endIndex };\n  }\n  nodePositionTopBelowWidget(node) {\n    const ancestors = [];\n    let currentAncestor = this.getParentNode(node);\n    while (currentAncestor) {\n      ancestors.push(currentAncestor);\n      currentAncestor = this.getParentNode(currentAncestor);\n    }\n    let widgetHeight = 0;\n    for (let i2 = 0; i2 \u003c ancestors.length \u0026\u0026 i2 \u003c this.stickyScrollMaxItemCount; i2++) {\n      widgetHeight += this.treeDelegate.getHeight(ancestors[i2]);\n    }\n    return widgetHeight;\n  }\n  domFocus() {\n    this._widget.domFocus();\n  }\n  // Whether sticky scroll was the last focused part in the tree or not\n  focusedLast() {\n    return this._widget.focusedLast();\n  }\n  updateOptions(optionsUpdate = {}) {\n    if (optionsUpdate.paddingTop !== void 0) {\n      this.paddingTop = optionsUpdate.paddingTop;\n    }\n    if (optionsUpdate.stickyScrollMaxItemCount !== void 0) {\n      const validatedOptions = this.validateStickySettings(optionsUpdate);\n      if (this.stickyScrollMaxItemCount !== validatedOptions.stickyScrollMaxItemCount) {\n        this.stickyScrollMaxItemCount = validatedOptions.stickyScrollMaxItemCount;\n        this.update();\n      }\n    }\n  }\n  validateStickySettings(options2) {\n    let stickyScrollMaxItemCount = 7;\n    if (typeof options2.stickyScrollMaxItemCount === \"number\") {\n      stickyScrollMaxItemCount = Math.max(options2.stickyScrollMaxItemCount, 1);\n    }\n    return { stickyScrollMaxItemCount };\n  }\n};\nvar StickyScrollWidget = class {\n  get state() {\n    return this._previousState;\n  }\n  constructor(container, view, tree, treeRenderers, treeDelegate, accessibilityProvider) {\n    this.view = view;\n    this.tree = tree;\n    this.treeRenderers = treeRenderers;\n    this.treeDelegate = treeDelegate;\n    this.accessibilityProvider = accessibilityProvider;\n    this._previousElements = [];\n    this._previousStateDisposables = new DisposableStore();\n    this._rootDomNode = $(\".monaco-tree-sticky-container.empty\");\n    container.appendChild(this._rootDomNode);\n    const shadow = $(\".monaco-tree-sticky-container-shadow\");\n    this._rootDomNode.appendChild(shadow);\n    this.stickyScrollFocus = new StickyScrollFocus(this._rootDomNode, view);\n    this.onDidChangeHasFocus = this.stickyScrollFocus.onDidChangeHasFocus;\n    this.onContextMenu = this.stickyScrollFocus.onContextMenu;\n  }\n  get height() {\n    if (!this._previousState) {\n      return 0;\n    }\n    const lastElement = this._previousState.stickyNodes[this._previousState.count - 1];\n    return lastElement.position + lastElement.height;\n  }\n  setState(state) {\n    const wasVisible = !!this._previousState \u0026\u0026 this._previousState.count \u003e 0;\n    const isVisible = !!state \u0026\u0026 state.count \u003e 0;\n    if (!wasVisible \u0026\u0026 !isVisible || wasVisible \u0026\u0026 isVisible \u0026\u0026 this._previousState.equal(state)) {\n      return;\n    }\n    if (wasVisible !== isVisible) {\n      this.setVisible(isVisible);\n    }\n    if (!isVisible) {\n      this._previousState = void 0;\n      this._previousElements = [];\n      this._previousStateDisposables.clear();\n      return;\n    }\n    const lastStickyNode = state.stickyNodes[state.count - 1];\n    if (this._previousState \u0026\u0026 state.animationStateChanged(this._previousState)) {\n      this._previousElements[this._previousState.count - 1].style.top = `${lastStickyNode.position}px`;\n    } else {\n      this.renderState(state);\n    }\n    this._previousState = state;\n    this._rootDomNode.style.height = `${lastStickyNode.position + lastStickyNode.height}px`;\n  }\n  renderState(state) {\n    this._previousStateDisposables.clear();\n    const elements = Array(state.count);\n    for (let stickyIndex = state.count - 1; stickyIndex \u003e= 0; stickyIndex--) {\n      const stickyNode = state.stickyNodes[stickyIndex];\n      const { element, disposable } = this.createElement(stickyNode, stickyIndex, state.count);\n      elements[stickyIndex] = element;\n      this._rootDomNode.appendChild(element);\n      this._previousStateDisposables.add(disposable);\n    }\n    this.stickyScrollFocus.updateElements(elements, state);\n    this._previousElements = elements;\n  }\n  rerender() {\n    if (this._previousState) {\n      this.renderState(this._previousState);\n    }\n  }\n  createElement(stickyNode, stickyIndex, stickyNodesTotal) {\n    const nodeIndex = stickyNode.startIndex;\n    const stickyElement = document.createElement(\"div\");\n    stickyElement.style.top = `${stickyNode.position}px`;\n    if (this.tree.options.setRowHeight !== false) {\n      stickyElement.style.height = `${stickyNode.height}px`;\n    }\n    if (this.tree.options.setRowLineHeight !== false) {\n      stickyElement.style.lineHeight = `${stickyNode.height}px`;\n    }\n    stickyElement.classList.add(\"monaco-tree-sticky-row\");\n    stickyElement.classList.add(\"monaco-list-row\");\n    stickyElement.setAttribute(\"data-index\", `${nodeIndex}`);\n    stickyElement.setAttribute(\"data-parity\", nodeIndex % 2 === 0 ? \"even\" : \"odd\");\n    stickyElement.setAttribute(\"id\", this.view.getElementID(nodeIndex));\n    const accessibilityDisposable = this.setAccessibilityAttributes(stickyElement, stickyNode.node.element, stickyIndex, stickyNodesTotal);\n    const nodeTemplateId = this.treeDelegate.getTemplateId(stickyNode.node);\n    const renderer = this.treeRenderers.find((renderer2) =\u003e renderer2.templateId === nodeTemplateId);\n    if (!renderer) {\n      throw new Error(`No renderer found for template id ${nodeTemplateId}`);\n    }\n    let nodeCopy = stickyNode.node;\n    if (nodeCopy === this.tree.getNode(this.tree.getNodeLocation(stickyNode.node))) {\n      nodeCopy = new Proxy(stickyNode.node, {});\n    }\n    const templateData = renderer.renderTemplate(stickyElement);\n    renderer.renderElement(nodeCopy, stickyNode.startIndex, templateData, { height: stickyNode.height });\n    const disposable = toDisposable(() =\u003e {\n      accessibilityDisposable.dispose();\n      renderer.disposeElement(nodeCopy, stickyNode.startIndex, templateData, { height: stickyNode.height });\n      renderer.disposeTemplate(templateData);\n      stickyElement.remove();\n    });\n    return { element: stickyElement, disposable };\n  }\n  setAccessibilityAttributes(container, element, stickyIndex, stickyNodesTotal) {\n    if (!this.accessibilityProvider) {\n      return Disposable.None;\n    }\n    if (this.accessibilityProvider.getSetSize) {\n      container.setAttribute(\"aria-setsize\", String(this.accessibilityProvider.getSetSize(element, stickyIndex, stickyNodesTotal)));\n    }\n    if (this.accessibilityProvider.getPosInSet) {\n      container.setAttribute(\"aria-posinset\", String(this.accessibilityProvider.getPosInSet(element, stickyIndex)));\n    }\n    if (this.accessibilityProvider.getRole) {\n      container.setAttribute(\"role\", this.accessibilityProvider.getRole(element) ?? \"treeitem\");\n    }\n    const ariaLabel = this.accessibilityProvider.getAriaLabel(element);\n    const observable = ariaLabel \u0026\u0026 typeof ariaLabel !== \"string\" ? ariaLabel : constObservable(ariaLabel);\n    const result = autorun((reader) =\u003e {\n      const value = reader.readObservable(observable);\n      if (value) {\n        container.setAttribute(\"aria-label\", value);\n      } else {\n        container.removeAttribute(\"aria-label\");\n      }\n    });\n    if (typeof ariaLabel === \"string\") {\n    } else if (ariaLabel) {\n      container.setAttribute(\"aria-label\", ariaLabel.get());\n    }\n    const ariaLevel = this.accessibilityProvider.getAriaLevel \u0026\u0026 this.accessibilityProvider.getAriaLevel(element);\n    if (typeof ariaLevel === \"number\") {\n      container.setAttribute(\"aria-level\", `${ariaLevel}`);\n    }\n    container.setAttribute(\"aria-selected\", String(false));\n    return result;\n  }\n  setVisible(visible) {\n    this._rootDomNode.classList.toggle(\"empty\", !visible);\n    if (!visible) {\n      this.stickyScrollFocus.updateElements([], void 0);\n    }\n  }\n  domFocus() {\n    this.stickyScrollFocus.domFocus();\n  }\n  focusedLast() {\n    return this.stickyScrollFocus.focusedLast();\n  }\n  dispose() {\n    this.stickyScrollFocus.dispose();\n    this._previousStateDisposables.dispose();\n    this._rootDomNode.remove();\n  }\n};\nvar StickyScrollFocus = class extends Disposable {\n  get domHasFocus() {\n    return this._domHasFocus;\n  }\n  set domHasFocus(hasFocus) {\n    if (hasFocus !== this._domHasFocus) {\n      this._onDidChangeHasFocus.fire(hasFocus);\n      this._domHasFocus = hasFocus;\n    }\n  }\n  constructor(container, view) {\n    super();\n    this.container = container;\n    this.view = view;\n    this.focusedIndex = -1;\n    this.elements = [];\n    this._onDidChangeHasFocus = new Emitter();\n    this.onDidChangeHasFocus = this._onDidChangeHasFocus.event;\n    this._onContextMenu = new Emitter();\n    this.onContextMenu = this._onContextMenu.event;\n    this._domHasFocus = false;\n    this._register(addDisposableListener(this.container, \"focus\", () =\u003e this.onFocus()));\n    this._register(addDisposableListener(this.container, \"blur\", () =\u003e this.onBlur()));\n    this._register(this.view.onDidFocus(() =\u003e this.toggleStickyScrollFocused(false)));\n    this._register(this.view.onKeyDown((e) =\u003e this.onKeyDown(e)));\n    this._register(this.view.onMouseDown((e) =\u003e this.onMouseDown(e)));\n    this._register(this.view.onContextMenu((e) =\u003e this.handleContextMenu(e)));\n  }\n  handleContextMenu(e) {\n    const target = e.browserEvent.target;\n    if (!isStickyScrollContainer(target) \u0026\u0026 !isStickyScrollElement(target)) {\n      if (this.focusedLast()) {\n        this.view.domFocus();\n      }\n      return;\n    }\n    if (!isKeyboardEvent(e.browserEvent)) {\n      if (!this.state) {\n        throw new Error(\"Context menu should not be triggered when state is undefined\");\n      }\n      const stickyIndex = this.state.stickyNodes.findIndex((stickyNode2) =\u003e stickyNode2.node.element === e.element?.element);\n      if (stickyIndex === -1) {\n        throw new Error(\"Context menu should not be triggered when element is not in sticky scroll widget\");\n      }\n      this.container.focus();\n      this.setFocus(stickyIndex);\n      return;\n    }\n    if (!this.state || this.focusedIndex \u003c 0) {\n      throw new Error(\"Context menu key should not be triggered when focus is not in sticky scroll widget\");\n    }\n    const stickyNode = this.state.stickyNodes[this.focusedIndex];\n    const element = stickyNode.node.element;\n    const anchor = this.elements[this.focusedIndex];\n    this._onContextMenu.fire({ element, anchor, browserEvent: e.browserEvent, isStickyScroll: true });\n  }\n  onKeyDown(e) {\n    if (this.domHasFocus \u0026\u0026 this.state) {\n      if (e.key === \"ArrowUp\") {\n        this.setFocusedElement(Math.max(0, this.focusedIndex - 1));\n        e.preventDefault();\n        e.stopPropagation();\n      } else if (e.key === \"ArrowDown\" || e.key === \"ArrowRight\") {\n        if (this.focusedIndex \u003e= this.state.count - 1) {\n          const nodeIndexToFocus = this.state.stickyNodes[this.state.count - 1].startIndex + 1;\n          this.view.domFocus();\n          this.view.setFocus([nodeIndexToFocus]);\n          this.scrollNodeUnderWidget(nodeIndexToFocus, this.state);\n        } else {\n          this.setFocusedElement(this.focusedIndex + 1);\n        }\n        e.preventDefault();\n        e.stopPropagation();\n      }\n    }\n  }\n  onMouseDown(e) {\n    const target = e.browserEvent.target;\n    if (!isStickyScrollContainer(target) \u0026\u0026 !isStickyScrollElement(target)) {\n      return;\n    }\n    e.browserEvent.preventDefault();\n    e.browserEvent.stopPropagation();\n  }\n  updateElements(elements, state) {\n    if (state \u0026\u0026 state.count === 0) {\n      throw new Error(\"Sticky scroll state must be undefined when there are no sticky nodes\");\n    }\n    if (state \u0026\u0026 state.count !== elements.length) {\n      throw new Error(\"Sticky scroll focus received illigel state\");\n    }\n    const previousIndex = this.focusedIndex;\n    this.removeFocus();\n    this.elements = elements;\n    this.state = state;\n    if (state) {\n      const newFocusedIndex = clamp(previousIndex, 0, state.count - 1);\n      this.setFocus(newFocusedIndex);\n    } else {\n      if (this.domHasFocus) {\n        this.view.domFocus();\n      }\n    }\n    this.container.tabIndex = state ? 0 : -1;\n  }\n  setFocusedElement(stickyIndex) {\n    const state = this.state;\n    if (!state) {\n      throw new Error(\"Cannot set focus when state is undefined\");\n    }\n    this.setFocus(stickyIndex);\n    if (stickyIndex \u003c state.count - 1) {\n      return;\n    }\n    if (state.lastNodePartiallyVisible()) {\n      const lastStickyNode = state.stickyNodes[stickyIndex];\n      this.scrollNodeUnderWidget(lastStickyNode.endIndex + 1, state);\n    }\n  }\n  scrollNodeUnderWidget(nodeIndex, state) {\n    const lastStickyNode = state.stickyNodes[state.count - 1];\n    const secondLastStickyNode = state.count \u003e 1 ? state.stickyNodes[state.count - 2] : void 0;\n    const elementScrollTop = this.view.getElementTop(nodeIndex);\n    const elementTargetViewTop = secondLastStickyNode ? secondLastStickyNode.position + secondLastStickyNode.height + lastStickyNode.height : lastStickyNode.height;\n    this.view.scrollTop = elementScrollTop - elementTargetViewTop;\n  }\n  domFocus() {\n    if (!this.state) {\n      throw new Error(\"Cannot focus when state is undefined\");\n    }\n    this.container.focus();\n  }\n  focusedLast() {\n    if (!this.state) {\n      return false;\n    }\n    return this.view.getHTMLElement().classList.contains(\"sticky-scroll-focused\");\n  }\n  removeFocus() {\n    if (this.focusedIndex === -1) {\n      return;\n    }\n    this.toggleElementFocus(this.elements[this.focusedIndex], false);\n    this.focusedIndex = -1;\n  }\n  setFocus(newFocusIndex) {\n    if (0 \u003e newFocusIndex) {\n      throw new Error(\"addFocus() can not remove focus\");\n    }\n    if (!this.state \u0026\u0026 newFocusIndex \u003e= 0) {\n      throw new Error(\"Cannot set focus index when state is undefined\");\n    }\n    if (this.state \u0026\u0026 newFocusIndex \u003e= this.state.count) {\n      throw new Error(\"Cannot set focus index to an index that does not exist\");\n    }\n    const oldIndex = this.focusedIndex;\n    if (oldIndex \u003e= 0) {\n      this.toggleElementFocus(this.elements[oldIndex], false);\n    }\n    if (newFocusIndex \u003e= 0) {\n      this.toggleElementFocus(this.elements[newFocusIndex], true);\n    }\n    this.focusedIndex = newFocusIndex;\n  }\n  toggleElementFocus(element, focused) {\n    this.toggleElementActiveFocus(element, focused \u0026\u0026 this.domHasFocus);\n    this.toggleElementPassiveFocus(element, focused);\n  }\n  toggleCurrentElementActiveFocus(focused) {\n    if (this.focusedIndex === -1) {\n      return;\n    }\n    this.toggleElementActiveFocus(this.elements[this.focusedIndex], focused);\n  }\n  toggleElementActiveFocus(element, focused) {\n    element.classList.toggle(\"focused\", focused);\n  }\n  toggleElementPassiveFocus(element, focused) {\n    element.classList.toggle(\"passive-focused\", focused);\n  }\n  toggleStickyScrollFocused(focused) {\n    this.view.getHTMLElement().classList.toggle(\"sticky-scroll-focused\", focused);\n  }\n  onFocus() {\n    if (!this.state || this.elements.length === 0) {\n      throw new Error(\"Cannot focus when state is undefined or elements are empty\");\n    }\n    this.domHasFocus = true;\n    this.toggleStickyScrollFocused(true);\n    this.toggleCurrentElementActiveFocus(true);\n    if (this.focusedIndex === -1) {\n      this.setFocus(0);\n    }\n  }\n  onBlur() {\n    this.domHasFocus = false;\n    this.toggleCurrentElementActiveFocus(false);\n  }\n  dispose() {\n    this.toggleStickyScrollFocused(false);\n    this._onDidChangeHasFocus.fire(false);\n    super.dispose();\n  }\n};\nfunction asTreeMouseEvent(event) {\n  let target = TreeMouseEventTarget.Unknown;\n  if (hasParentWithClass(event.browserEvent.target, \"monaco-tl-twistie\", \"monaco-tl-row\")) {\n    target = TreeMouseEventTarget.Twistie;\n  } else if (hasParentWithClass(event.browserEvent.target, \"monaco-tl-contents\", \"monaco-tl-row\")) {\n    target = TreeMouseEventTarget.Element;\n  } else if (hasParentWithClass(event.browserEvent.target, \"monaco-tree-type-filter\", \"monaco-list\")) {\n    target = TreeMouseEventTarget.Filter;\n  }\n  return {\n    browserEvent: event.browserEvent,\n    element: event.element ? event.element.element : null,\n    target\n  };\n}\nfunction asTreeContextMenuEvent(event) {\n  const isStickyScroll = isStickyScrollContainer(event.browserEvent.target);\n  return {\n    element: event.element ? event.element.element : null,\n    browserEvent: event.browserEvent,\n    anchor: event.anchor,\n    isStickyScroll\n  };\n}\nfunction dfs(node, fn) {\n  fn(node);\n  node.children.forEach((child) =\u003e dfs(child, fn));\n}\nvar Trait2 = class {\n  get nodeSet() {\n    if (!this._nodeSet) {\n      this._nodeSet = this.createNodeSet();\n    }\n    return this._nodeSet;\n  }\n  constructor(getFirstViewElementWithTrait, identityProvider) {\n    this.getFirstViewElementWithTrait = getFirstViewElementWithTrait;\n    this.identityProvider = identityProvider;\n    this.nodes = [];\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n  }\n  set(nodes, browserEvent) {\n    if (!browserEvent?.__forceEvent \u0026\u0026 equals(this.nodes, nodes)) {\n      return;\n    }\n    this._set(nodes, false, browserEvent);\n  }\n  _set(nodes, silent, browserEvent) {\n    this.nodes = [...nodes];\n    this.elements = void 0;\n    this._nodeSet = void 0;\n    if (!silent) {\n      const that = this;\n      this._onDidChange.fire({ get elements() {\n        return that.get();\n      }, browserEvent });\n    }\n  }\n  get() {\n    if (!this.elements) {\n      this.elements = this.nodes.map((node) =\u003e node.element);\n    }\n    return [...this.elements];\n  }\n  getNodes() {\n    return this.nodes;\n  }\n  has(node) {\n    return this.nodeSet.has(node);\n  }\n  onDidModelSplice({ insertedNodes, deletedNodes }) {\n    if (!this.identityProvider) {\n      const set = this.createNodeSet();\n      const visit = (node) =\u003e set.delete(node);\n      deletedNodes.forEach((node) =\u003e dfs(node, visit));\n      this.set([...set.values()]);\n      return;\n    }\n    const deletedNodesIdSet = /* @__PURE__ */ new Set();\n    const deletedNodesVisitor = (node) =\u003e deletedNodesIdSet.add(this.identityProvider.getId(node.element).toString());\n    deletedNodes.forEach((node) =\u003e dfs(node, deletedNodesVisitor));\n    const insertedNodesMap = /* @__PURE__ */ new Map();\n    const insertedNodesVisitor = (node) =\u003e insertedNodesMap.set(this.identityProvider.getId(node.element).toString(), node);\n    insertedNodes.forEach((node) =\u003e dfs(node, insertedNodesVisitor));\n    const nodes = [];\n    for (const node of this.nodes) {\n      const id = this.identityProvider.getId(node.element).toString();\n      const wasDeleted = deletedNodesIdSet.has(id);\n      if (!wasDeleted) {\n        nodes.push(node);\n      } else {\n        const insertedNode = insertedNodesMap.get(id);\n        if (insertedNode \u0026\u0026 insertedNode.visible) {\n          nodes.push(insertedNode);\n        }\n      }\n    }\n    if (this.nodes.length \u003e 0 \u0026\u0026 nodes.length === 0) {\n      const node = this.getFirstViewElementWithTrait();\n      if (node) {\n        nodes.push(node);\n      }\n    }\n    this._set(nodes, true);\n  }\n  createNodeSet() {\n    const set = /* @__PURE__ */ new Set();\n    for (const node of this.nodes) {\n      set.add(node);\n    }\n    return set;\n  }\n};\nvar TreeNodeListMouseController = class extends MouseController {\n  constructor(list2, tree, stickyScrollProvider) {\n    super(list2);\n    this.tree = tree;\n    this.stickyScrollProvider = stickyScrollProvider;\n  }\n  onViewPointer(e) {\n    if (isButton(e.browserEvent.target) || isEditableElement(e.browserEvent.target) || isMonacoEditor(e.browserEvent.target)) {\n      return;\n    }\n    if (e.browserEvent.isHandledByList) {\n      return;\n    }\n    const node = e.element;\n    if (!node) {\n      return super.onViewPointer(e);\n    }\n    if (this.isSelectionRangeChangeEvent(e) || this.isSelectionSingleChangeEvent(e)) {\n      return super.onViewPointer(e);\n    }\n    const target = e.browserEvent.target;\n    const onTwistie = target.classList.contains(\"monaco-tl-twistie\") || target.classList.contains(\"monaco-icon-label\") \u0026\u0026 target.classList.contains(\"folder-icon\") \u0026\u0026 e.browserEvent.offsetX \u003c 16;\n    const isStickyElement = isStickyScrollElement(e.browserEvent.target);\n    let expandOnlyOnTwistieClick = false;\n    if (isStickyElement) {\n      expandOnlyOnTwistieClick = true;\n    } else if (typeof this.tree.expandOnlyOnTwistieClick === \"function\") {\n      expandOnlyOnTwistieClick = this.tree.expandOnlyOnTwistieClick(node.element);\n    } else {\n      expandOnlyOnTwistieClick = !!this.tree.expandOnlyOnTwistieClick;\n    }\n    if (!isStickyElement) {\n      if (expandOnlyOnTwistieClick \u0026\u0026 !onTwistie \u0026\u0026 e.browserEvent.detail !== 2) {\n        return super.onViewPointer(e);\n      }\n      if (!this.tree.expandOnDoubleClick \u0026\u0026 e.browserEvent.detail === 2) {\n        return super.onViewPointer(e);\n      }\n    } else {\n      this.handleStickyScrollMouseEvent(e, node);\n    }\n    if (node.collapsible \u0026\u0026 (!isStickyElement || onTwistie)) {\n      const location2 = this.tree.getNodeLocation(node);\n      const recursive = e.browserEvent.altKey;\n      this.tree.setFocus([location2]);\n      this.tree.toggleCollapsed(location2, recursive);\n      if (onTwistie) {\n        e.browserEvent.isHandledByList = true;\n        return;\n      }\n    }\n    if (!isStickyElement) {\n      super.onViewPointer(e);\n    }\n  }\n  handleStickyScrollMouseEvent(e, node) {\n    if (isMonacoCustomToggle(e.browserEvent.target) || isActionItem(e.browserEvent.target)) {\n      return;\n    }\n    const stickyScrollController = this.stickyScrollProvider();\n    if (!stickyScrollController) {\n      throw new Error(\"Sticky scroll controller not found\");\n    }\n    const nodeIndex = this.list.indexOf(node);\n    const elementScrollTop = this.list.getElementTop(nodeIndex);\n    const elementTargetViewTop = stickyScrollController.nodePositionTopBelowWidget(node);\n    this.tree.scrollTop = elementScrollTop - elementTargetViewTop;\n    this.list.domFocus();\n    this.list.setFocus([nodeIndex]);\n    this.list.setSelection([nodeIndex]);\n  }\n  onDoubleClick(e) {\n    const onTwistie = e.browserEvent.target.classList.contains(\"monaco-tl-twistie\");\n    if (onTwistie || !this.tree.expandOnDoubleClick) {\n      return;\n    }\n    if (e.browserEvent.isHandledByList) {\n      return;\n    }\n    super.onDoubleClick(e);\n  }\n  // to make sure dom focus is not stolen (for example with context menu)\n  onMouseDown(e) {\n    const target = e.browserEvent.target;\n    if (!isStickyScrollContainer(target) \u0026\u0026 !isStickyScrollElement(target)) {\n      super.onMouseDown(e);\n      return;\n    }\n  }\n  onContextMenu(e) {\n    const target = e.browserEvent.target;\n    if (!isStickyScrollContainer(target) \u0026\u0026 !isStickyScrollElement(target)) {\n      super.onContextMenu(e);\n      return;\n    }\n  }\n};\nvar TreeNodeList = class extends List {\n  constructor(user, container, virtualDelegate, renderers, focusTrait, selectionTrait, anchorTrait, options2) {\n    super(user, container, virtualDelegate, renderers, options2);\n    this.focusTrait = focusTrait;\n    this.selectionTrait = selectionTrait;\n    this.anchorTrait = anchorTrait;\n  }\n  createMouseController(options2) {\n    return new TreeNodeListMouseController(this, options2.tree, options2.stickyScrollProvider);\n  }\n  splice(start, deleteCount, elements = []) {\n    super.splice(start, deleteCount, elements);\n    if (elements.length === 0) {\n      return;\n    }\n    const additionalFocus = [];\n    const additionalSelection = [];\n    let anchor;\n    elements.forEach((node, index) =\u003e {\n      if (this.focusTrait.has(node)) {\n        additionalFocus.push(start + index);\n      }\n      if (this.selectionTrait.has(node)) {\n        additionalSelection.push(start + index);\n      }\n      if (this.anchorTrait.has(node)) {\n        anchor = start + index;\n      }\n    });\n    if (additionalFocus.length \u003e 0) {\n      super.setFocus(distinct([...super.getFocus(), ...additionalFocus]));\n    }\n    if (additionalSelection.length \u003e 0) {\n      super.setSelection(distinct([...super.getSelection(), ...additionalSelection]));\n    }\n    if (typeof anchor === \"number\") {\n      super.setAnchor(anchor);\n    }\n  }\n  setFocus(indexes, browserEvent, fromAPI = false) {\n    super.setFocus(indexes, browserEvent);\n    if (!fromAPI) {\n      this.focusTrait.set(indexes.map((i2) =\u003e this.element(i2)), browserEvent);\n    }\n  }\n  setSelection(indexes, browserEvent, fromAPI = false) {\n    super.setSelection(indexes, browserEvent);\n    if (!fromAPI) {\n      this.selectionTrait.set(indexes.map((i2) =\u003e this.element(i2)), browserEvent);\n    }\n  }\n  setAnchor(index, fromAPI = false) {\n    super.setAnchor(index);\n    if (!fromAPI) {\n      if (typeof index === \"undefined\") {\n        this.anchorTrait.set([]);\n      } else {\n        this.anchorTrait.set([this.element(index)]);\n      }\n    }\n  }\n};\nvar AbstractTree = class {\n  get onDidScroll() {\n    return this.view.onDidScroll;\n  }\n  get onDidChangeFocus() {\n    return this.eventBufferer.wrapEvent(this.focus.onDidChange);\n  }\n  get onDidChangeSelection() {\n    return this.eventBufferer.wrapEvent(this.selection.onDidChange);\n  }\n  get onMouseDblClick() {\n    return Event.filter(Event.map(this.view.onMouseDblClick, asTreeMouseEvent), (e) =\u003e e.target !== TreeMouseEventTarget.Filter);\n  }\n  get onMouseOver() {\n    return Event.map(this.view.onMouseOver, asTreeMouseEvent);\n  }\n  get onMouseOut() {\n    return Event.map(this.view.onMouseOut, asTreeMouseEvent);\n  }\n  get onContextMenu() {\n    return Event.any(Event.filter(Event.map(this.view.onContextMenu, asTreeContextMenuEvent), (e) =\u003e !e.isStickyScroll), this.stickyScrollController?.onContextMenu ?? Event.None);\n  }\n  get onPointer() {\n    return Event.map(this.view.onPointer, asTreeMouseEvent);\n  }\n  get onKeyDown() {\n    return this.view.onKeyDown;\n  }\n  get onDidFocus() {\n    return this.view.onDidFocus;\n  }\n  get onDidChangeModel() {\n    return Event.any(this.onDidChangeModelRelay.event, this.onDidSwapModel.event);\n  }\n  get onDidChangeCollapseState() {\n    return this.onDidChangeCollapseStateRelay.event;\n  }\n  get expandOnDoubleClick() {\n    return typeof this._options.expandOnDoubleClick === \"undefined\" ? true : this._options.expandOnDoubleClick;\n  }\n  get expandOnlyOnTwistieClick() {\n    return typeof this._options.expandOnlyOnTwistieClick === \"undefined\" ? true : this._options.expandOnlyOnTwistieClick;\n  }\n  get onDidDispose() {\n    return this.view.onDidDispose;\n  }\n  constructor(_user, container, delegate, renderers, _options = {}) {\n    this._user = _user;\n    this._options = _options;\n    this.eventBufferer = new EventBufferer();\n    this.onDidChangeFindOpenState = Event.None;\n    this.onDidChangeStickyScrollFocused = Event.None;\n    this.disposables = new DisposableStore();\n    this.onDidSwapModel = this.disposables.add(new Emitter());\n    this.onDidChangeModelRelay = this.disposables.add(new Relay());\n    this.onDidSpliceModelRelay = this.disposables.add(new Relay());\n    this.onDidChangeCollapseStateRelay = this.disposables.add(new Relay());\n    this.onDidChangeRenderNodeCountRelay = this.disposables.add(new Relay());\n    this.onDidChangeActiveNodesRelay = this.disposables.add(new Relay());\n    this._onWillRefilter = new Emitter();\n    this.onWillRefilter = this._onWillRefilter.event;\n    this._onDidUpdateOptions = new Emitter();\n    this.modelDisposables = new DisposableStore();\n    if (_options.keyboardNavigationLabelProvider \u0026\u0026 (_options.findWidgetEnabled ?? true)) {\n      this.findFilter = new FindFilter(_options.keyboardNavigationLabelProvider, _options.filter, _options.defaultFindVisibility);\n      _options = { ..._options, filter: this.findFilter };\n      this.disposables.add(this.findFilter);\n    }\n    this.model = this.createModel(_user, _options);\n    this.treeDelegate = new ComposedTreeDelegate(delegate);\n    const activeNodes = this.disposables.add(new EventCollection(this.onDidChangeActiveNodesRelay.event));\n    const renderedIndentGuides = new SetMap();\n    this.renderers = renderers.map((r) =\u003e new TreeRenderer(r, this.model, this.onDidChangeCollapseStateRelay.event, activeNodes, renderedIndentGuides, _options));\n    for (const r of this.renderers) {\n      this.disposables.add(r);\n    }\n    this.focus = new Trait2(() =\u003e this.view.getFocusedElements()[0], _options.identityProvider);\n    this.selection = new Trait2(() =\u003e this.view.getSelectedElements()[0], _options.identityProvider);\n    this.anchor = new Trait2(() =\u003e this.view.getAnchorElement(), _options.identityProvider);\n    this.view = new TreeNodeList(_user, container, this.treeDelegate, this.renderers, this.focus, this.selection, this.anchor, { ...asListOptions(() =\u003e this.model, this.disposables, _options), tree: this, stickyScrollProvider: () =\u003e this.stickyScrollController });\n    this.setupModel(this.model);\n    if (_options.keyboardSupport !== false) {\n      const onKeyDown = Event.chain(this.view.onKeyDown, ($23) =\u003e $23.filter((e) =\u003e !isEditableElement(e.target)).map((e) =\u003e new StandardKeyboardEvent(e)));\n      Event.chain(onKeyDown, ($23) =\u003e $23.filter(\n        (e) =\u003e e.keyCode === 15\n        /* KeyCode.LeftArrow */\n      ))(this.onLeftArrow, this, this.disposables);\n      Event.chain(onKeyDown, ($23) =\u003e $23.filter(\n        (e) =\u003e e.keyCode === 17\n        /* KeyCode.RightArrow */\n      ))(this.onRightArrow, this, this.disposables);\n      Event.chain(onKeyDown, ($23) =\u003e $23.filter(\n        (e) =\u003e e.keyCode === 10\n        /* KeyCode.Space */\n      ))(this.onSpace, this, this.disposables);\n    }\n    if ((_options.findWidgetEnabled ?? true) \u0026\u0026 _options.keyboardNavigationLabelProvider \u0026\u0026 _options.contextViewProvider) {\n      const findOptions = {\n        styles: _options.findWidgetStyles,\n        defaultFindMode: _options.defaultFindMode,\n        defaultFindMatchType: _options.defaultFindMatchType,\n        showNotFoundMessage: _options.showNotFoundMessage\n      };\n      this.findController = this.disposables.add(new FindController(this, this.findFilter, _options.contextViewProvider, findOptions));\n      this.focusNavigationFilter = (node) =\u003e this.findController.shouldAllowFocus(node);\n      this.onDidChangeFindOpenState = this.findController.onDidChangeOpenState;\n      this.onDidChangeFindMode = this.findController.onDidChangeMode;\n      this.onDidChangeFindMatchType = this.findController.onDidChangeMatchType;\n    } else {\n      this.onDidChangeFindMode = Event.None;\n      this.onDidChangeFindMatchType = Event.None;\n    }\n    if (_options.enableStickyScroll) {\n      this.stickyScrollController = new StickyScrollController(this, this.model, this.view, this.renderers, this.treeDelegate, _options);\n      this.onDidChangeStickyScrollFocused = this.stickyScrollController.onDidChangeHasFocus;\n    }\n    this.styleElement = createStyleSheet(this.view.getHTMLElement());\n    this.getHTMLElement().classList.toggle(\"always\", this._options.renderIndentGuides === RenderIndentGuides.Always);\n  }\n  updateOptions(optionsUpdate = {}) {\n    this._options = { ...this._options, ...optionsUpdate };\n    for (const renderer of this.renderers) {\n      renderer.updateOptions(optionsUpdate);\n    }\n    this.view.updateOptions(this._options);\n    this.findController?.updateOptions(optionsUpdate);\n    this.updateStickyScroll(optionsUpdate);\n    this._onDidUpdateOptions.fire(this._options);\n    this.getHTMLElement().classList.toggle(\"always\", this._options.renderIndentGuides === RenderIndentGuides.Always);\n  }\n  get options() {\n    return this._options;\n  }\n  updateStickyScroll(optionsUpdate) {\n    if (!this.stickyScrollController \u0026\u0026 this._options.enableStickyScroll) {\n      this.stickyScrollController = new StickyScrollController(this, this.model, this.view, this.renderers, this.treeDelegate, this._options);\n      this.onDidChangeStickyScrollFocused = this.stickyScrollController.onDidChangeHasFocus;\n    } else if (this.stickyScrollController \u0026\u0026 !this._options.enableStickyScroll) {\n      this.onDidChangeStickyScrollFocused = Event.None;\n      this.stickyScrollController.dispose();\n      this.stickyScrollController = void 0;\n    }\n    this.stickyScrollController?.updateOptions(optionsUpdate);\n  }\n  // Widget\n  getHTMLElement() {\n    return this.view.getHTMLElement();\n  }\n  get onDidChangeContentHeight() {\n    return this.view.onDidChangeContentHeight;\n  }\n  get scrollTop() {\n    return this.view.scrollTop;\n  }\n  set scrollTop(scrollTop) {\n    this.view.scrollTop = scrollTop;\n  }\n  get scrollHeight() {\n    return this.view.scrollHeight;\n  }\n  get renderHeight() {\n    return this.view.renderHeight;\n  }\n  get ariaLabel() {\n    return this.view.ariaLabel;\n  }\n  set ariaLabel(value) {\n    this.view.ariaLabel = value;\n  }\n  domFocus() {\n    if (this.stickyScrollController?.focusedLast()) {\n      this.stickyScrollController.domFocus();\n    } else {\n      this.view.domFocus();\n    }\n  }\n  layout(height, width2) {\n    this.view.layout(height, width2);\n  }\n  style(styles) {\n    const suffix = `.${this.view.domId}`;\n    const content = [];\n    if (styles.treeIndentGuidesStroke) {\n      content.push(`.monaco-list${suffix}:hover .monaco-tl-indent \u003e .indent-guide, .monaco-list${suffix}.always .monaco-tl-indent \u003e .indent-guide  { opacity: 1; border-color: ${styles.treeInactiveIndentGuidesStroke}; }`);\n      content.push(`.monaco-list${suffix} .monaco-tl-indent \u003e .indent-guide.active { opacity: 1; border-color: ${styles.treeIndentGuidesStroke}; }`);\n    }\n    const stickyScrollBackground = styles.treeStickyScrollBackground ?? styles.listBackground;\n    if (stickyScrollBackground) {\n      content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${stickyScrollBackground}; }`);\n      content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${stickyScrollBackground}; }`);\n    }\n    if (styles.treeStickyScrollBorder) {\n      content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${styles.treeStickyScrollBorder}; }`);\n    }\n    if (styles.treeStickyScrollShadow) {\n      content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${styles.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`);\n    }\n    if (styles.listFocusForeground) {\n      content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${styles.listFocusForeground}; }`);\n      content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`);\n    }\n    const focusAndSelectionOutline = asCssValueWithDefault(styles.listFocusAndSelectionOutline, asCssValueWithDefault(styles.listSelectionOutline, styles.listFocusOutline ?? \"\"));\n    if (focusAndSelectionOutline) {\n      content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${focusAndSelectionOutline}; outline-offset: -1px;}`);\n      content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`);\n    }\n    if (styles.listFocusOutline) {\n      content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }`);\n      content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`);\n      content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }`);\n      content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`);\n      content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`);\n    }\n    this.styleElement.textContent = content.join(\"\\n\");\n    this.view.style(styles);\n  }\n  // Tree navigation\n  getParentElement(location2) {\n    const parentRef = this.model.getParentNodeLocation(location2);\n    const parentNode = this.model.getNode(parentRef);\n    return parentNode.element;\n  }\n  getFirstElementChild(location2) {\n    return this.model.getFirstElementChild(location2);\n  }\n  // Tree\n  getNode(location2) {\n    return this.model.getNode(location2);\n  }\n  getNodeLocation(node) {\n    return this.model.getNodeLocation(node);\n  }\n  collapse(location2, recursive = false) {\n    return this.model.setCollapsed(location2, true, recursive);\n  }\n  expand(location2, recursive = false) {\n    return this.model.setCollapsed(location2, false, recursive);\n  }\n  toggleCollapsed(location2, recursive = false) {\n    return this.model.setCollapsed(location2, void 0, recursive);\n  }\n  isCollapsible(location2) {\n    return this.model.isCollapsible(location2);\n  }\n  setCollapsible(location2, collapsible) {\n    return this.model.setCollapsible(location2, collapsible);\n  }\n  isCollapsed(location2) {\n    return this.model.isCollapsed(location2);\n  }\n  refilter() {\n    this._onWillRefilter.fire(void 0);\n    this.model.refilter();\n  }\n  setSelection(elements, browserEvent) {\n    this.eventBufferer.bufferEvents(() =\u003e {\n      const nodes = elements.map((e) =\u003e this.model.getNode(e));\n      this.selection.set(nodes, browserEvent);\n      const indexes = elements.map((e) =\u003e this.model.getListIndex(e)).filter((i2) =\u003e i2 \u003e -1);\n      this.view.setSelection(indexes, browserEvent, true);\n    });\n  }\n  getSelection() {\n    return this.selection.get();\n  }\n  setFocus(elements, browserEvent) {\n    this.eventBufferer.bufferEvents(() =\u003e {\n      const nodes = elements.map((e) =\u003e this.model.getNode(e));\n      this.focus.set(nodes, browserEvent);\n      const indexes = elements.map((e) =\u003e this.model.getListIndex(e)).filter((i2) =\u003e i2 \u003e -1);\n      this.view.setFocus(indexes, browserEvent, true);\n    });\n  }\n  focusNext(n2 = 1, loop = false, browserEvent, filter = isKeyboardEvent(browserEvent) \u0026\u0026 browserEvent.altKey ? void 0 : this.focusNavigationFilter) {\n    this.view.focusNext(n2, loop, browserEvent, filter);\n  }\n  focusPrevious(n2 = 1, loop = false, browserEvent, filter = isKeyboardEvent(browserEvent) \u0026\u0026 browserEvent.altKey ? void 0 : this.focusNavigationFilter) {\n    this.view.focusPrevious(n2, loop, browserEvent, filter);\n  }\n  focusNextPage(browserEvent, filter = isKeyboardEvent(browserEvent) \u0026\u0026 browserEvent.altKey ? void 0 : this.focusNavigationFilter) {\n    return this.view.focusNextPage(browserEvent, filter);\n  }\n  focusPreviousPage(browserEvent, filter = isKeyboardEvent(browserEvent) \u0026\u0026 browserEvent.altKey ? void 0 : this.focusNavigationFilter) {\n    return this.view.focusPreviousPage(browserEvent, filter, () =\u003e this.stickyScrollController?.height ?? 0);\n  }\n  focusLast(browserEvent, filter = isKeyboardEvent(browserEvent) \u0026\u0026 browserEvent.altKey ? void 0 : this.focusNavigationFilter) {\n    this.view.focusLast(browserEvent, filter);\n  }\n  focusFirst(browserEvent, filter = isKeyboardEvent(browserEvent) \u0026\u0026 browserEvent.altKey ? void 0 : this.focusNavigationFilter) {\n    this.view.focusFirst(browserEvent, filter);\n  }\n  getFocus() {\n    return this.focus.get();\n  }\n  reveal(location2, relativeTop) {\n    this.model.expandTo(location2);\n    const index = this.model.getListIndex(location2);\n    if (index === -1) {\n      return;\n    }\n    if (!this.stickyScrollController) {\n      this.view.reveal(index, relativeTop);\n    } else {\n      const paddingTop = this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(location2));\n      this.view.reveal(index, relativeTop, paddingTop);\n    }\n  }\n  // List\n  onLeftArrow(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    const nodes = this.view.getFocusedElements();\n    if (nodes.length === 0) {\n      return;\n    }\n    const node = nodes[0];\n    const location2 = this.model.getNodeLocation(node);\n    const didChange = this.model.setCollapsed(location2, true);\n    if (!didChange) {\n      const parentLocation = this.model.getParentNodeLocation(location2);\n      if (!parentLocation) {\n        return;\n      }\n      const parentListIndex = this.model.getListIndex(parentLocation);\n      this.view.reveal(parentListIndex);\n      this.view.setFocus([parentListIndex]);\n    }\n  }\n  onRightArrow(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    const nodes = this.view.getFocusedElements();\n    if (nodes.length === 0) {\n      return;\n    }\n    const node = nodes[0];\n    const location2 = this.model.getNodeLocation(node);\n    const didChange = this.model.setCollapsed(location2, false);\n    if (!didChange) {\n      if (!node.children.some((child) =\u003e child.visible)) {\n        return;\n      }\n      const [focusedIndex] = this.view.getFocus();\n      const firstChildIndex = focusedIndex + 1;\n      this.view.reveal(firstChildIndex);\n      this.view.setFocus([firstChildIndex]);\n    }\n  }\n  onSpace(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    const nodes = this.view.getFocusedElements();\n    if (nodes.length === 0) {\n      return;\n    }\n    const node = nodes[0];\n    const location2 = this.model.getNodeLocation(node);\n    const recursive = e.browserEvent.altKey;\n    this.model.setCollapsed(location2, void 0, recursive);\n  }\n  setupModel(model) {\n    this.modelDisposables.clear();\n    this.modelDisposables.add(model.onDidSpliceRenderedNodes(({ start, deleteCount, elements }) =\u003e this.view.splice(start, deleteCount, elements)));\n    const onDidModelSplice = Event.forEach(model.onDidSpliceModel, (e) =\u003e {\n      this.eventBufferer.bufferEvents(() =\u003e {\n        this.focus.onDidModelSplice(e);\n        this.selection.onDidModelSplice(e);\n      });\n    }, this.modelDisposables);\n    onDidModelSplice(() =\u003e null, null, this.modelDisposables);\n    const activeNodesEmitter = this.modelDisposables.add(new Emitter());\n    const activeNodesDebounce = this.modelDisposables.add(new Delayer(0));\n    this.modelDisposables.add(Event.any(onDidModelSplice, this.focus.onDidChange, this.selection.onDidChange)(() =\u003e {\n      activeNodesDebounce.trigger(() =\u003e {\n        const set = /* @__PURE__ */ new Set();\n        for (const node of this.focus.getNodes()) {\n          set.add(node);\n        }\n        for (const node of this.selection.getNodes()) {\n          set.add(node);\n        }\n        activeNodesEmitter.fire([...set.values()]);\n      });\n    }));\n    this.onDidChangeActiveNodesRelay.input = activeNodesEmitter.event;\n    this.onDidChangeModelRelay.input = Event.signal(model.onDidSpliceModel);\n    this.onDidChangeCollapseStateRelay.input = model.onDidChangeCollapseState;\n    this.onDidChangeRenderNodeCountRelay.input = model.onDidChangeRenderNodeCount;\n    this.onDidSpliceModelRelay.input = model.onDidSpliceModel;\n  }\n  dispose() {\n    dispose(this.disposables);\n    this.stickyScrollController?.dispose();\n    this.view.dispose();\n    this.modelDisposables.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/objectTreeModel.js\ninit_iterator();\nvar ObjectTreeModel = class {\n  constructor(user, options2 = {}) {\n    this.user = user;\n    this.rootRef = null;\n    this.nodes = /* @__PURE__ */ new Map();\n    this.nodesByIdentity = /* @__PURE__ */ new Map();\n    this.model = new IndexTreeModel(user, null, options2);\n    this.onDidSpliceModel = this.model.onDidSpliceModel;\n    this.onDidSpliceRenderedNodes = this.model.onDidSpliceRenderedNodes;\n    this.onDidChangeCollapseState = this.model.onDidChangeCollapseState;\n    this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount;\n    if (options2.sorter) {\n      this.sorter = {\n        compare(a, b) {\n          return options2.sorter.compare(a.element, b.element);\n        }\n      };\n    }\n    this.identityProvider = options2.identityProvider;\n  }\n  setChildren(element, children = Iterable.empty(), options2 = {}) {\n    const location2 = this.getElementLocation(element);\n    this._setChildren(location2, this.preserveCollapseState(children), options2);\n  }\n  _setChildren(location2, children = Iterable.empty(), options2) {\n    const insertedElements = /* @__PURE__ */ new Set();\n    const insertedElementIds = /* @__PURE__ */ new Set();\n    const onDidCreateNode = (node) =\u003e {\n      if (node.element === null) {\n        return;\n      }\n      const tnode = node;\n      insertedElements.add(tnode.element);\n      this.nodes.set(tnode.element, tnode);\n      if (this.identityProvider) {\n        const id = this.identityProvider.getId(tnode.element).toString();\n        insertedElementIds.add(id);\n        this.nodesByIdentity.set(id, tnode);\n      }\n      options2.onDidCreateNode?.(tnode);\n    };\n    const onDidDeleteNode = (node) =\u003e {\n      if (node.element === null) {\n        return;\n      }\n      const tnode = node;\n      if (!insertedElements.has(tnode.element)) {\n        this.nodes.delete(tnode.element);\n      }\n      if (this.identityProvider) {\n        const id = this.identityProvider.getId(tnode.element).toString();\n        if (!insertedElementIds.has(id)) {\n          this.nodesByIdentity.delete(id);\n        }\n      }\n      options2.onDidDeleteNode?.(tnode);\n    };\n    this.model.splice([...location2, 0], Number.MAX_VALUE, children, { ...options2, onDidCreateNode, onDidDeleteNode });\n  }\n  preserveCollapseState(elements = Iterable.empty()) {\n    if (this.sorter) {\n      elements = [...elements].sort(this.sorter.compare.bind(this.sorter));\n    }\n    return Iterable.map(elements, (treeElement) =\u003e {\n      let node = this.nodes.get(treeElement.element);\n      if (!node \u0026\u0026 this.identityProvider) {\n        const id = this.identityProvider.getId(treeElement.element).toString();\n        node = this.nodesByIdentity.get(id);\n      }\n      if (!node) {\n        let collapsed3;\n        if (typeof treeElement.collapsed === \"undefined\") {\n          collapsed3 = void 0;\n        } else if (treeElement.collapsed === ObjectTreeElementCollapseState.Collapsed || treeElement.collapsed === ObjectTreeElementCollapseState.PreserveOrCollapsed) {\n          collapsed3 = true;\n        } else if (treeElement.collapsed === ObjectTreeElementCollapseState.Expanded || treeElement.collapsed === ObjectTreeElementCollapseState.PreserveOrExpanded) {\n          collapsed3 = false;\n        } else {\n          collapsed3 = Boolean(treeElement.collapsed);\n        }\n        return {\n          ...treeElement,\n          children: this.preserveCollapseState(treeElement.children),\n          collapsed: collapsed3\n        };\n      }\n      const collapsible = typeof treeElement.collapsible === \"boolean\" ? treeElement.collapsible : node.collapsible;\n      let collapsed2;\n      if (typeof treeElement.collapsed === \"undefined\" || treeElement.collapsed === ObjectTreeElementCollapseState.PreserveOrCollapsed || treeElement.collapsed === ObjectTreeElementCollapseState.PreserveOrExpanded) {\n        collapsed2 = node.collapsed;\n      } else if (treeElement.collapsed === ObjectTreeElementCollapseState.Collapsed) {\n        collapsed2 = true;\n      } else if (treeElement.collapsed === ObjectTreeElementCollapseState.Expanded) {\n        collapsed2 = false;\n      } else {\n        collapsed2 = Boolean(treeElement.collapsed);\n      }\n      return {\n        ...treeElement,\n        collapsible,\n        collapsed: collapsed2,\n        children: this.preserveCollapseState(treeElement.children)\n      };\n    });\n  }\n  rerender(element) {\n    const location2 = this.getElementLocation(element);\n    this.model.rerender(location2);\n  }\n  getFirstElementChild(ref = null) {\n    const location2 = this.getElementLocation(ref);\n    return this.model.getFirstElementChild(location2);\n  }\n  has(element) {\n    return this.nodes.has(element);\n  }\n  getListIndex(element) {\n    const location2 = this.getElementLocation(element);\n    return this.model.getListIndex(location2);\n  }\n  getListRenderCount(element) {\n    const location2 = this.getElementLocation(element);\n    return this.model.getListRenderCount(location2);\n  }\n  isCollapsible(element) {\n    const location2 = this.getElementLocation(element);\n    return this.model.isCollapsible(location2);\n  }\n  setCollapsible(element, collapsible) {\n    const location2 = this.getElementLocation(element);\n    return this.model.setCollapsible(location2, collapsible);\n  }\n  isCollapsed(element) {\n    const location2 = this.getElementLocation(element);\n    return this.model.isCollapsed(location2);\n  }\n  setCollapsed(element, collapsed2, recursive) {\n    const location2 = this.getElementLocation(element);\n    return this.model.setCollapsed(location2, collapsed2, recursive);\n  }\n  expandTo(element) {\n    const location2 = this.getElementLocation(element);\n    this.model.expandTo(location2);\n  }\n  refilter() {\n    this.model.refilter();\n  }\n  getNode(element = null) {\n    if (element === null) {\n      return this.model.getNode(this.model.rootRef);\n    }\n    const node = this.nodes.get(element);\n    if (!node) {\n      throw new TreeError(this.user, `Tree element not found: ${element}`);\n    }\n    return node;\n  }\n  getNodeLocation(node) {\n    return node.element;\n  }\n  getParentNodeLocation(element) {\n    if (element === null) {\n      throw new TreeError(this.user, `Invalid getParentNodeLocation call`);\n    }\n    const node = this.nodes.get(element);\n    if (!node) {\n      throw new TreeError(this.user, `Tree element not found: ${element}`);\n    }\n    const location2 = this.model.getNodeLocation(node);\n    const parentLocation = this.model.getParentNodeLocation(location2);\n    const parent = this.model.getNode(parentLocation);\n    return parent.element;\n  }\n  getElementLocation(element) {\n    if (element === null) {\n      return [];\n    }\n    const node = this.nodes.get(element);\n    if (!node) {\n      throw new TreeError(this.user, `Tree element not found: ${element}`);\n    }\n    return this.model.getNodeLocation(node);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js\ninit_arrays();\ninit_event();\ninit_iterator();\nfunction noCompress(element) {\n  const elements = [element.element];\n  const incompressible = element.incompressible || false;\n  return {\n    element: { elements, incompressible },\n    children: Iterable.map(Iterable.from(element.children), noCompress),\n    collapsible: element.collapsible,\n    collapsed: element.collapsed\n  };\n}\nfunction compress(element) {\n  const elements = [element.element];\n  const incompressible = element.incompressible || false;\n  let childrenIterator;\n  let children;\n  while (true) {\n    [children, childrenIterator] = Iterable.consume(Iterable.from(element.children), 2);\n    if (children.length !== 1) {\n      break;\n    }\n    if (children[0].incompressible) {\n      break;\n    }\n    element = children[0];\n    elements.push(element.element);\n  }\n  return {\n    element: { elements, incompressible },\n    children: Iterable.map(Iterable.concat(children, childrenIterator), compress),\n    collapsible: element.collapsible,\n    collapsed: element.collapsed\n  };\n}\nfunction _decompress(element, index = 0) {\n  let children;\n  if (index \u003c element.element.elements.length - 1) {\n    children = [_decompress(element, index + 1)];\n  } else {\n    children = Iterable.map(Iterable.from(element.children), (el) =\u003e _decompress(el, 0));\n  }\n  if (index === 0 \u0026\u0026 element.element.incompressible) {\n    return {\n      element: element.element.elements[index],\n      children,\n      incompressible: true,\n      collapsible: element.collapsible,\n      collapsed: element.collapsed\n    };\n  }\n  return {\n    element: element.element.elements[index],\n    children,\n    collapsible: element.collapsible,\n    collapsed: element.collapsed\n  };\n}\nfunction decompress(element) {\n  return _decompress(element, 0);\n}\nfunction splice2(treeElement, element, children) {\n  if (treeElement.element === element) {\n    return { ...treeElement, children };\n  }\n  return { ...treeElement, children: Iterable.map(Iterable.from(treeElement.children), (e) =\u003e splice2(e, element, children)) };\n}\nvar wrapIdentityProvider = (base) =\u003e ({\n  getId(node) {\n    return node.elements.map((e) =\u003e base.getId(e).toString()).join(\"\\0\");\n  }\n});\nvar CompressedObjectTreeModel = class {\n  get onDidSpliceRenderedNodes() {\n    return this.model.onDidSpliceRenderedNodes;\n  }\n  get onDidSpliceModel() {\n    return this.model.onDidSpliceModel;\n  }\n  get onDidChangeCollapseState() {\n    return this.model.onDidChangeCollapseState;\n  }\n  get onDidChangeRenderNodeCount() {\n    return this.model.onDidChangeRenderNodeCount;\n  }\n  constructor(user, options2 = {}) {\n    this.user = user;\n    this.rootRef = null;\n    this.nodes = /* @__PURE__ */ new Map();\n    this.model = new ObjectTreeModel(user, options2);\n    this.enabled = typeof options2.compressionEnabled === \"undefined\" ? true : options2.compressionEnabled;\n    this.identityProvider = options2.identityProvider;\n  }\n  setChildren(element, children = Iterable.empty(), options2) {\n    const diffIdentityProvider = options2.diffIdentityProvider \u0026\u0026 wrapIdentityProvider(options2.diffIdentityProvider);\n    if (element === null) {\n      const compressedChildren = Iterable.map(children, this.enabled ? compress : noCompress);\n      this._setChildren(null, compressedChildren, { diffIdentityProvider, diffDepth: Infinity });\n      return;\n    }\n    const compressedNode = this.nodes.get(element);\n    if (!compressedNode) {\n      throw new TreeError(this.user, \"Unknown compressed tree node\");\n    }\n    const node = this.model.getNode(compressedNode);\n    const compressedParentNode = this.model.getParentNodeLocation(compressedNode);\n    const parent = this.model.getNode(compressedParentNode);\n    const decompressedElement = decompress(node);\n    const splicedElement = splice2(decompressedElement, element, children);\n    const recompressedElement = (this.enabled ? compress : noCompress)(splicedElement);\n    const elementComparator = options2.diffIdentityProvider ? ((a, b) =\u003e options2.diffIdentityProvider.getId(a) === options2.diffIdentityProvider.getId(b)) : void 0;\n    if (equals(recompressedElement.element.elements, node.element.elements, elementComparator)) {\n      this._setChildren(compressedNode, recompressedElement.children || Iterable.empty(), { diffIdentityProvider, diffDepth: 1 });\n      return;\n    }\n    const parentChildren = parent.children.map((child) =\u003e child === node ? recompressedElement : child);\n    this._setChildren(parent.element, parentChildren, {\n      diffIdentityProvider,\n      diffDepth: node.depth - parent.depth\n    });\n  }\n  isCompressionEnabled() {\n    return this.enabled;\n  }\n  setCompressionEnabled(enabled) {\n    if (enabled === this.enabled) {\n      return;\n    }\n    this.enabled = enabled;\n    const root = this.model.getNode();\n    const rootChildren = root.children;\n    const decompressedRootChildren = Iterable.map(rootChildren, decompress);\n    const recompressedRootChildren = Iterable.map(decompressedRootChildren, enabled ? compress : noCompress);\n    this._setChildren(null, recompressedRootChildren, {\n      diffIdentityProvider: this.identityProvider,\n      diffDepth: Infinity\n    });\n  }\n  _setChildren(node, children, options2) {\n    const insertedElements = /* @__PURE__ */ new Set();\n    const onDidCreateNode = (node2) =\u003e {\n      for (const element of node2.element.elements) {\n        insertedElements.add(element);\n        this.nodes.set(element, node2.element);\n      }\n    };\n    const onDidDeleteNode = (node2) =\u003e {\n      for (const element of node2.element.elements) {\n        if (!insertedElements.has(element)) {\n          this.nodes.delete(element);\n        }\n      }\n    };\n    this.model.setChildren(node, children, { ...options2, onDidCreateNode, onDidDeleteNode });\n  }\n  has(element) {\n    return this.nodes.has(element);\n  }\n  getListIndex(location2) {\n    const node = this.getCompressedNode(location2);\n    return this.model.getListIndex(node);\n  }\n  getListRenderCount(location2) {\n    const node = this.getCompressedNode(location2);\n    return this.model.getListRenderCount(node);\n  }\n  getNode(location2) {\n    if (typeof location2 === \"undefined\") {\n      return this.model.getNode();\n    }\n    const node = this.getCompressedNode(location2);\n    return this.model.getNode(node);\n  }\n  // TODO: review this\n  getNodeLocation(node) {\n    const compressedNode = this.model.getNodeLocation(node);\n    if (compressedNode === null) {\n      return null;\n    }\n    return compressedNode.elements[compressedNode.elements.length - 1];\n  }\n  // TODO: review this\n  getParentNodeLocation(location2) {\n    const compressedNode = this.getCompressedNode(location2);\n    const parentNode = this.model.getParentNodeLocation(compressedNode);\n    if (parentNode === null) {\n      return null;\n    }\n    return parentNode.elements[parentNode.elements.length - 1];\n  }\n  getFirstElementChild(location2) {\n    const compressedNode = this.getCompressedNode(location2);\n    return this.model.getFirstElementChild(compressedNode);\n  }\n  isCollapsible(location2) {\n    const compressedNode = this.getCompressedNode(location2);\n    return this.model.isCollapsible(compressedNode);\n  }\n  setCollapsible(location2, collapsible) {\n    const compressedNode = this.getCompressedNode(location2);\n    return this.model.setCollapsible(compressedNode, collapsible);\n  }\n  isCollapsed(location2) {\n    const compressedNode = this.getCompressedNode(location2);\n    return this.model.isCollapsed(compressedNode);\n  }\n  setCollapsed(location2, collapsed2, recursive) {\n    const compressedNode = this.getCompressedNode(location2);\n    return this.model.setCollapsed(compressedNode, collapsed2, recursive);\n  }\n  expandTo(location2) {\n    const compressedNode = this.getCompressedNode(location2);\n    this.model.expandTo(compressedNode);\n  }\n  rerender(location2) {\n    const compressedNode = this.getCompressedNode(location2);\n    this.model.rerender(compressedNode);\n  }\n  refilter() {\n    this.model.refilter();\n  }\n  getCompressedNode(element) {\n    if (element === null) {\n      return null;\n    }\n    const node = this.nodes.get(element);\n    if (!node) {\n      throw new TreeError(this.user, `Tree element not found: ${element}`);\n    }\n    return node;\n  }\n};\nvar DefaultElementMapper = (elements) =\u003e elements[elements.length - 1];\nvar CompressedTreeNodeWrapper = class _CompressedTreeNodeWrapper {\n  get element() {\n    return this.node.element === null ? null : this.unwrapper(this.node.element);\n  }\n  get children() {\n    return this.node.children.map((node) =\u003e new _CompressedTreeNodeWrapper(this.unwrapper, node));\n  }\n  get depth() {\n    return this.node.depth;\n  }\n  get visibleChildrenCount() {\n    return this.node.visibleChildrenCount;\n  }\n  get visibleChildIndex() {\n    return this.node.visibleChildIndex;\n  }\n  get collapsible() {\n    return this.node.collapsible;\n  }\n  get collapsed() {\n    return this.node.collapsed;\n  }\n  get visible() {\n    return this.node.visible;\n  }\n  get filterData() {\n    return this.node.filterData;\n  }\n  constructor(unwrapper, node) {\n    this.unwrapper = unwrapper;\n    this.node = node;\n  }\n};\nfunction mapOptions(compressedNodeUnwrapper, options2) {\n  return {\n    ...options2,\n    identityProvider: options2.identityProvider \u0026\u0026 {\n      getId(node) {\n        return options2.identityProvider.getId(compressedNodeUnwrapper(node));\n      }\n    },\n    sorter: options2.sorter \u0026\u0026 {\n      compare(node, otherNode) {\n        return options2.sorter.compare(node.elements[0], otherNode.elements[0]);\n      }\n    },\n    filter: options2.filter \u0026\u0026 {\n      filter(node, parentVisibility) {\n        const elements = node.elements;\n        for (let i2 = 0; i2 \u003c elements.length - 1; i2++) {\n          const result = options2.filter.filter(elements[i2], parentVisibility);\n          parentVisibility = getVisibleState(isFilterResult(result) ? result.visibility : result);\n        }\n        return options2.filter.filter(elements[elements.length - 1], parentVisibility);\n      }\n    }\n  };\n}\nvar CompressibleObjectTreeModel = class {\n  get onDidSpliceModel() {\n    return Event.map(this.model.onDidSpliceModel, ({ insertedNodes, deletedNodes }) =\u003e ({\n      insertedNodes: insertedNodes.map((node) =\u003e this.nodeMapper.map(node)),\n      deletedNodes: deletedNodes.map((node) =\u003e this.nodeMapper.map(node))\n    }));\n  }\n  get onDidSpliceRenderedNodes() {\n    return Event.map(this.model.onDidSpliceRenderedNodes, ({ start, deleteCount, elements }) =\u003e ({\n      start,\n      deleteCount,\n      elements: elements.map((node) =\u003e this.nodeMapper.map(node))\n    }));\n  }\n  get onDidChangeCollapseState() {\n    return Event.map(this.model.onDidChangeCollapseState, ({ node, deep }) =\u003e ({\n      node: this.nodeMapper.map(node),\n      deep\n    }));\n  }\n  get onDidChangeRenderNodeCount() {\n    return Event.map(this.model.onDidChangeRenderNodeCount, (node) =\u003e this.nodeMapper.map(node));\n  }\n  constructor(user, options2 = {}) {\n    this.rootRef = null;\n    this.elementMapper = options2.elementMapper || DefaultElementMapper;\n    const compressedNodeUnwrapper = (node) =\u003e this.elementMapper(node.elements);\n    this.nodeMapper = new WeakMapper((node) =\u003e new CompressedTreeNodeWrapper(compressedNodeUnwrapper, node));\n    this.model = new CompressedObjectTreeModel(user, mapOptions(compressedNodeUnwrapper, options2));\n  }\n  setChildren(element, children = Iterable.empty(), options2 = {}) {\n    this.model.setChildren(element, children, options2);\n  }\n  isCompressionEnabled() {\n    return this.model.isCompressionEnabled();\n  }\n  setCompressionEnabled(enabled) {\n    this.model.setCompressionEnabled(enabled);\n  }\n  has(location2) {\n    return this.model.has(location2);\n  }\n  getListIndex(location2) {\n    return this.model.getListIndex(location2);\n  }\n  getListRenderCount(location2) {\n    return this.model.getListRenderCount(location2);\n  }\n  getNode(location2) {\n    return this.nodeMapper.map(this.model.getNode(location2));\n  }\n  getNodeLocation(node) {\n    return node.element;\n  }\n  getParentNodeLocation(location2) {\n    return this.model.getParentNodeLocation(location2);\n  }\n  getFirstElementChild(location2) {\n    const result = this.model.getFirstElementChild(location2);\n    if (result === null || typeof result === \"undefined\") {\n      return result;\n    }\n    return this.elementMapper(result.elements);\n  }\n  isCollapsible(location2) {\n    return this.model.isCollapsible(location2);\n  }\n  setCollapsible(location2, collapsed2) {\n    return this.model.setCollapsible(location2, collapsed2);\n  }\n  isCollapsed(location2) {\n    return this.model.isCollapsed(location2);\n  }\n  setCollapsed(location2, collapsed2, recursive) {\n    return this.model.setCollapsed(location2, collapsed2, recursive);\n  }\n  expandTo(location2) {\n    return this.model.expandTo(location2);\n  }\n  rerender(location2) {\n    return this.model.rerender(location2);\n  }\n  refilter() {\n    return this.model.refilter();\n  }\n  getCompressedTreeNode(location2 = null) {\n    return this.model.getNode(location2);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/objectTree.js\ninit_iterator();\nvar __decorate68 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar ObjectTree = class extends AbstractTree {\n  get onDidChangeCollapseState() {\n    return this.model.onDidChangeCollapseState;\n  }\n  constructor(user, container, delegate, renderers, options2 = {}) {\n    super(user, container, delegate, renderers, options2);\n    this.user = user;\n  }\n  setChildren(element, children = Iterable.empty(), options2) {\n    this.model.setChildren(element, children, options2);\n  }\n  rerender(element) {\n    if (element === void 0) {\n      this.view.rerender();\n      return;\n    }\n    this.model.rerender(element);\n  }\n  hasElement(element) {\n    return this.model.has(element);\n  }\n  createModel(user, options2) {\n    return new ObjectTreeModel(user, options2);\n  }\n};\nvar CompressibleRenderer = class {\n  get compressedTreeNodeProvider() {\n    return this._compressedTreeNodeProvider();\n  }\n  constructor(_compressedTreeNodeProvider, stickyScrollDelegate, renderer) {\n    this._compressedTreeNodeProvider = _compressedTreeNodeProvider;\n    this.stickyScrollDelegate = stickyScrollDelegate;\n    this.renderer = renderer;\n    this.templateId = renderer.templateId;\n    if (renderer.onDidChangeTwistieState) {\n      this.onDidChangeTwistieState = renderer.onDidChangeTwistieState;\n    }\n  }\n  renderTemplate(container) {\n    const data = this.renderer.renderTemplate(container);\n    return { compressedTreeNode: void 0, data };\n  }\n  renderElement(node, index, templateData, details) {\n    let compressedTreeNode = this.stickyScrollDelegate.getCompressedNode(node);\n    if (!compressedTreeNode) {\n      compressedTreeNode = this.compressedTreeNodeProvider.getCompressedTreeNode(node.element);\n    }\n    if (compressedTreeNode.element.elements.length === 1) {\n      templateData.compressedTreeNode = void 0;\n      this.renderer.renderElement(node, index, templateData.data, details);\n    } else {\n      templateData.compressedTreeNode = compressedTreeNode;\n      this.renderer.renderCompressedElements(compressedTreeNode, index, templateData.data, details);\n    }\n  }\n  disposeElement(node, index, templateData, details) {\n    if (templateData.compressedTreeNode) {\n      this.renderer.disposeCompressedElements?.(templateData.compressedTreeNode, index, templateData.data, details);\n    } else {\n      this.renderer.disposeElement?.(node, index, templateData.data, details);\n    }\n  }\n  disposeTemplate(templateData) {\n    this.renderer.disposeTemplate(templateData.data);\n  }\n  renderTwistie(element, twistieElement) {\n    return this.renderer.renderTwistie?.(element, twistieElement) ?? false;\n  }\n};\n__decorate68([\n  memoize\n], CompressibleRenderer.prototype, \"compressedTreeNodeProvider\", null);\nvar CompressibleStickyScrollDelegate = class {\n  constructor(modelProvider) {\n    this.modelProvider = modelProvider;\n    this.compressedStickyNodes = /* @__PURE__ */ new Map();\n  }\n  getCompressedNode(node) {\n    return this.compressedStickyNodes.get(node);\n  }\n  constrainStickyScrollNodes(stickyNodes, stickyScrollMaxItemCount, maxWidgetHeight) {\n    this.compressedStickyNodes.clear();\n    if (stickyNodes.length === 0) {\n      return [];\n    }\n    for (let i2 = 0; i2 \u003c stickyNodes.length; i2++) {\n      const stickyNode = stickyNodes[i2];\n      const stickyNodeBottom = stickyNode.position + stickyNode.height;\n      const followingReachesMaxHeight = i2 + 1 \u003c stickyNodes.length \u0026\u0026 stickyNodeBottom + stickyNodes[i2 + 1].height \u003e maxWidgetHeight;\n      if (followingReachesMaxHeight || i2 \u003e= stickyScrollMaxItemCount - 1 \u0026\u0026 stickyScrollMaxItemCount \u003c stickyNodes.length) {\n        const uncompressedStickyNodes = stickyNodes.slice(0, i2);\n        const overflowingStickyNodes = stickyNodes.slice(i2);\n        const compressedStickyNode = this.compressStickyNodes(overflowingStickyNodes);\n        return [...uncompressedStickyNodes, compressedStickyNode];\n      }\n    }\n    return stickyNodes;\n  }\n  compressStickyNodes(stickyNodes) {\n    if (stickyNodes.length === 0) {\n      throw new Error(\"Can't compress empty sticky nodes\");\n    }\n    const compressionModel = this.modelProvider();\n    if (!compressionModel.isCompressionEnabled()) {\n      return stickyNodes[0];\n    }\n    const elements = [];\n    for (let i2 = 0; i2 \u003c stickyNodes.length; i2++) {\n      const stickyNode = stickyNodes[i2];\n      const compressedNode2 = compressionModel.getCompressedTreeNode(stickyNode.node.element);\n      if (compressedNode2.element) {\n        if (i2 !== 0 \u0026\u0026 compressedNode2.element.incompressible) {\n          break;\n        }\n        elements.push(...compressedNode2.element.elements);\n      }\n    }\n    if (elements.length \u003c 2) {\n      return stickyNodes[0];\n    }\n    const lastStickyNode = stickyNodes[stickyNodes.length - 1];\n    const compressedElement = { elements, incompressible: false };\n    const compressedNode = { ...lastStickyNode.node, children: [], element: compressedElement };\n    const stickyTreeNode = new Proxy(stickyNodes[0].node, {});\n    const compressedStickyNode = {\n      node: stickyTreeNode,\n      startIndex: stickyNodes[0].startIndex,\n      endIndex: lastStickyNode.endIndex,\n      position: stickyNodes[0].position,\n      height: stickyNodes[0].height\n    };\n    this.compressedStickyNodes.set(stickyTreeNode, compressedNode);\n    return compressedStickyNode;\n  }\n};\nfunction asObjectTreeOptions(compressedTreeNodeProvider, options2) {\n  return options2 \u0026\u0026 {\n    ...options2,\n    keyboardNavigationLabelProvider: options2.keyboardNavigationLabelProvider \u0026\u0026 {\n      getKeyboardNavigationLabel(e) {\n        let compressedTreeNode;\n        try {\n          compressedTreeNode = compressedTreeNodeProvider().getCompressedTreeNode(e);\n        } catch {\n          return options2.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e);\n        }\n        if (compressedTreeNode.element.elements.length === 1) {\n          return options2.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e);\n        } else {\n          return options2.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(compressedTreeNode.element.elements);\n        }\n      }\n    }\n  };\n}\nvar CompressibleObjectTree = class extends ObjectTree {\n  constructor(user, container, delegate, renderers, options2 = {}) {\n    const compressedTreeNodeProvider = () =\u003e this;\n    const stickyScrollDelegate = new CompressibleStickyScrollDelegate(() =\u003e this.model);\n    const compressibleRenderers = renderers.map((r) =\u003e new CompressibleRenderer(compressedTreeNodeProvider, stickyScrollDelegate, r));\n    super(user, container, delegate, compressibleRenderers, { ...asObjectTreeOptions(compressedTreeNodeProvider, options2), stickyScrollDelegate });\n  }\n  setChildren(element, children = Iterable.empty(), options2) {\n    this.model.setChildren(element, children, options2);\n  }\n  createModel(user, options2) {\n    return new CompressibleObjectTreeModel(user, options2);\n  }\n  updateOptions(optionsUpdate = {}) {\n    super.updateOptions(optionsUpdate);\n    if (typeof optionsUpdate.compressionEnabled !== \"undefined\") {\n      this.model.setCompressionEnabled(optionsUpdate.compressionEnabled);\n    }\n  }\n  getCompressedTreeNode(element = null) {\n    return this.model.getCompressedTreeNode(element);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/asyncDataTree.js\ninit_async();\ninit_codicons();\ninit_themables();\ninit_errors();\ninit_event();\ninit_iterator();\ninit_lifecycle();\ninit_types();\ninit_filters();\ninit_arrays();\nfunction createAsyncDataTreeNode(props) {\n  return {\n    ...props,\n    children: [],\n    refreshPromise: void 0,\n    stale: true,\n    slow: false,\n    forceExpanded: false\n  };\n}\nfunction isAncestor2(ancestor, descendant) {\n  if (!descendant.parent) {\n    return false;\n  } else if (descendant.parent === ancestor) {\n    return true;\n  } else {\n    return isAncestor2(ancestor, descendant.parent);\n  }\n}\nfunction intersects(node, other) {\n  return node === other || isAncestor2(node, other) || isAncestor2(other, node);\n}\nvar AsyncDataTreeNodeWrapper = class _AsyncDataTreeNodeWrapper {\n  get element() {\n    return this.node.element.element;\n  }\n  get children() {\n    return this.node.children.map((node) =\u003e new _AsyncDataTreeNodeWrapper(node));\n  }\n  get depth() {\n    return this.node.depth;\n  }\n  get visibleChildrenCount() {\n    return this.node.visibleChildrenCount;\n  }\n  get visibleChildIndex() {\n    return this.node.visibleChildIndex;\n  }\n  get collapsible() {\n    return this.node.collapsible;\n  }\n  get collapsed() {\n    return this.node.collapsed;\n  }\n  get visible() {\n    return this.node.visible;\n  }\n  get filterData() {\n    return this.node.filterData;\n  }\n  constructor(node) {\n    this.node = node;\n  }\n};\nvar AsyncDataTreeRenderer = class {\n  constructor(renderer, nodeMapper, onDidChangeTwistieState) {\n    this.renderer = renderer;\n    this.nodeMapper = nodeMapper;\n    this.onDidChangeTwistieState = onDidChangeTwistieState;\n    this.renderedNodes = /* @__PURE__ */ new Map();\n    this.templateId = renderer.templateId;\n  }\n  renderTemplate(container) {\n    const templateData = this.renderer.renderTemplate(container);\n    return { templateData };\n  }\n  renderElement(node, index, templateData, details) {\n    this.renderer.renderElement(this.nodeMapper.map(node), index, templateData.templateData, details);\n  }\n  renderTwistie(element, twistieElement) {\n    if (element.slow) {\n      twistieElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading));\n      return true;\n    } else {\n      twistieElement.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading));\n      return false;\n    }\n  }\n  disposeElement(node, index, templateData, details) {\n    this.renderer.disposeElement?.(this.nodeMapper.map(node), index, templateData.templateData, details);\n  }\n  disposeTemplate(templateData) {\n    this.renderer.disposeTemplate(templateData.templateData);\n  }\n  dispose() {\n    this.renderedNodes.clear();\n  }\n};\nfunction asTreeEvent(e) {\n  return {\n    browserEvent: e.browserEvent,\n    elements: e.elements.map((e2) =\u003e e2.element)\n  };\n}\nfunction asTreeMouseEvent2(e) {\n  return {\n    browserEvent: e.browserEvent,\n    element: e.element \u0026\u0026 e.element.element,\n    target: e.target\n  };\n}\nvar AsyncDataTreeElementsDragAndDropData = class extends ElementsDragAndDropData {\n  constructor(data) {\n    super(data.elements.map((node) =\u003e node.element));\n    this.data = data;\n  }\n};\nfunction asAsyncDataTreeDragAndDropData(data) {\n  if (data instanceof ElementsDragAndDropData) {\n    return new AsyncDataTreeElementsDragAndDropData(data);\n  }\n  return data;\n}\nvar AsyncDataTreeNodeListDragAndDrop = class {\n  constructor(dnd) {\n    this.dnd = dnd;\n  }\n  getDragURI(node) {\n    return this.dnd.getDragURI(node.element);\n  }\n  getDragLabel(nodes, originalEvent) {\n    if (this.dnd.getDragLabel) {\n      return this.dnd.getDragLabel(nodes.map((node) =\u003e node.element), originalEvent);\n    }\n    return void 0;\n  }\n  onDragStart(data, originalEvent) {\n    this.dnd.onDragStart?.(asAsyncDataTreeDragAndDropData(data), originalEvent);\n  }\n  onDragOver(data, targetNode, targetIndex, targetSector, originalEvent, raw = true) {\n    return this.dnd.onDragOver(asAsyncDataTreeDragAndDropData(data), targetNode \u0026\u0026 targetNode.element, targetIndex, targetSector, originalEvent);\n  }\n  drop(data, targetNode, targetIndex, targetSector, originalEvent) {\n    this.dnd.drop(asAsyncDataTreeDragAndDropData(data), targetNode \u0026\u0026 targetNode.element, targetIndex, targetSector, originalEvent);\n  }\n  onDragEnd(originalEvent) {\n    this.dnd.onDragEnd?.(originalEvent);\n  }\n  dispose() {\n    this.dnd.dispose();\n  }\n};\nvar AsyncFindFilter = class extends FindFilter {\n  constructor(findProvider, keyboardNavigationLabelProvider, filter) {\n    super(keyboardNavigationLabelProvider, filter);\n    this.findProvider = findProvider;\n    this.isFindSessionActive = false;\n  }\n  filter(element, parentVisibility) {\n    const filterResult = super.filter(element, parentVisibility);\n    if (!this.isFindSessionActive || this.findMode === TreeFindMode.Highlight || !this.findProvider.isVisible) {\n      return filterResult;\n    }\n    const visibility = isFilterResult(filterResult) ? filterResult.visibility : filterResult;\n    if (getVisibleState(visibility) === 0) {\n      return 0;\n    }\n    return this.findProvider.isVisible(element) ? filterResult : 0;\n  }\n};\nvar AsyncFindController = class extends FindController {\n  constructor(tree, findProvider, filter, contextViewProvider, options2) {\n    super(tree, filter, contextViewProvider, options2);\n    this.findProvider = findProvider;\n    this.filter = filter;\n    this.activeSession = false;\n    this.asyncWorkInProgress = false;\n    this.disposables.add(toDisposable(async () =\u003e {\n      if (this.activeSession) {\n        await this.findProvider.endSession?.();\n      }\n    }));\n  }\n  render() {\n    if (this.asyncWorkInProgress || !this.activeFindMetadata) {\n      return;\n    }\n    const showNotFound = this.activeFindMetadata.matchCount === 0 \u0026\u0026 this.pattern.length \u003e 0;\n    this.renderMessage(showNotFound);\n    if (this.pattern.length) {\n      this.alertResults(this.activeFindMetadata.matchCount);\n    }\n  }\n  shouldAllowFocus(node) {\n    return this.shouldFocusWhenNavigating(node);\n  }\n  shouldFocusWhenNavigating(node) {\n    if (!this.activeSession || !this.activeFindMetadata) {\n      return true;\n    }\n    const element = node.element?.element;\n    if (element \u0026\u0026 this.activeFindMetadata.isMatch(element)) {\n      return true;\n    }\n    return !FuzzyScore.isDefault(node.filterData);\n  }\n};\nfunction asObjectTreeOptions2(options2) {\n  return options2 \u0026\u0026 {\n    ...options2,\n    collapseByDefault: true,\n    identityProvider: options2.identityProvider \u0026\u0026 {\n      getId(el) {\n        return options2.identityProvider.getId(el.element);\n      }\n    },\n    dnd: options2.dnd \u0026\u0026 new AsyncDataTreeNodeListDragAndDrop(options2.dnd),\n    multipleSelectionController: options2.multipleSelectionController \u0026\u0026 {\n      isSelectionSingleChangeEvent(e) {\n        return options2.multipleSelectionController.isSelectionSingleChangeEvent({ ...e, element: e.element });\n      },\n      isSelectionRangeChangeEvent(e) {\n        return options2.multipleSelectionController.isSelectionRangeChangeEvent({ ...e, element: e.element });\n      }\n    },\n    accessibilityProvider: options2.accessibilityProvider \u0026\u0026 {\n      ...options2.accessibilityProvider,\n      getPosInSet: void 0,\n      getSetSize: void 0,\n      getRole: options2.accessibilityProvider.getRole ? (el) =\u003e {\n        return options2.accessibilityProvider.getRole(el.element);\n      } : () =\u003e \"treeitem\",\n      isChecked: options2.accessibilityProvider.isChecked ? (e) =\u003e {\n        return !!options2.accessibilityProvider?.isChecked(e.element);\n      } : void 0,\n      getAriaLabel(e) {\n        return options2.accessibilityProvider.getAriaLabel(e.element);\n      },\n      getWidgetAriaLabel() {\n        return options2.accessibilityProvider.getWidgetAriaLabel();\n      },\n      getWidgetRole: options2.accessibilityProvider.getWidgetRole ? () =\u003e options2.accessibilityProvider.getWidgetRole() : () =\u003e \"tree\",\n      getAriaLevel: options2.accessibilityProvider.getAriaLevel \u0026\u0026 ((node) =\u003e {\n        return options2.accessibilityProvider.getAriaLevel(node.element);\n      }),\n      getActiveDescendantId: options2.accessibilityProvider.getActiveDescendantId \u0026\u0026 ((node) =\u003e {\n        return options2.accessibilityProvider.getActiveDescendantId(node.element);\n      })\n    },\n    filter: options2.filter \u0026\u0026 {\n      filter(e, parentVisibility) {\n        return options2.filter.filter(e.element, parentVisibility);\n      }\n    },\n    keyboardNavigationLabelProvider: options2.keyboardNavigationLabelProvider \u0026\u0026 {\n      ...options2.keyboardNavigationLabelProvider,\n      getKeyboardNavigationLabel(e) {\n        return options2.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element);\n      }\n    },\n    sorter: void 0,\n    expandOnlyOnTwistieClick: typeof options2.expandOnlyOnTwistieClick === \"undefined\" ? void 0 : typeof options2.expandOnlyOnTwistieClick !== \"function\" ? options2.expandOnlyOnTwistieClick : ((e) =\u003e options2.expandOnlyOnTwistieClick(e.element)),\n    defaultFindVisibility: (e) =\u003e {\n      if (e.hasChildren \u0026\u0026 e.stale) {\n        return 1;\n      } else if (typeof options2.defaultFindVisibility === \"number\") {\n        return options2.defaultFindVisibility;\n      } else if (typeof options2.defaultFindVisibility === \"undefined\") {\n        return 2;\n      } else {\n        return options2.defaultFindVisibility(e.element);\n      }\n    }\n  };\n}\nfunction dfs2(node, fn) {\n  fn(node);\n  node.children.forEach((child) =\u003e dfs2(child, fn));\n}\nvar AsyncDataTree = class {\n  get onDidScroll() {\n    return this.tree.onDidScroll;\n  }\n  get onDidChangeFocus() {\n    return Event.map(this.tree.onDidChangeFocus, asTreeEvent);\n  }\n  get onDidChangeSelection() {\n    return Event.map(this.tree.onDidChangeSelection, asTreeEvent);\n  }\n  get onMouseDblClick() {\n    return Event.map(this.tree.onMouseDblClick, asTreeMouseEvent2);\n  }\n  get onPointer() {\n    return Event.map(this.tree.onPointer, asTreeMouseEvent2);\n  }\n  get onDidFocus() {\n    return this.tree.onDidFocus;\n  }\n  /**\n   * To be used internally only!\n   * @deprecated\n   */\n  get onDidChangeModel() {\n    return this.tree.onDidChangeModel;\n  }\n  get onDidChangeCollapseState() {\n    return this.tree.onDidChangeCollapseState;\n  }\n  get onDidChangeStickyScrollFocused() {\n    return this.tree.onDidChangeStickyScrollFocused;\n  }\n  get onDidDispose() {\n    return this.tree.onDidDispose;\n  }\n  constructor(user, container, delegate, renderers, dataSource, options2 = {}) {\n    this.user = user;\n    this.dataSource = dataSource;\n    this.nodes = /* @__PURE__ */ new Map();\n    this.subTreeRefreshPromises = /* @__PURE__ */ new Map();\n    this.refreshPromises = /* @__PURE__ */ new Map();\n    this._onDidRender = new Emitter();\n    this._onDidChangeNodeSlowState = new Emitter();\n    this.nodeMapper = new WeakMapper((node) =\u003e new AsyncDataTreeNodeWrapper(node));\n    this.disposables = new DisposableStore();\n    this.identityProvider = options2.identityProvider;\n    this.autoExpandSingleChildren = typeof options2.autoExpandSingleChildren === \"undefined\" ? false : options2.autoExpandSingleChildren;\n    this.sorter = options2.sorter;\n    this.getDefaultCollapseState = (e) =\u003e options2.collapseByDefault ? options2.collapseByDefault(e) ? ObjectTreeElementCollapseState.PreserveOrCollapsed : ObjectTreeElementCollapseState.PreserveOrExpanded : void 0;\n    let asyncFindEnabled = false;\n    let findFilter;\n    if (options2.findProvider \u0026\u0026 (options2.findWidgetEnabled ?? true) \u0026\u0026 options2.keyboardNavigationLabelProvider \u0026\u0026 options2.contextViewProvider) {\n      asyncFindEnabled = true;\n      findFilter = new AsyncFindFilter(options2.findProvider, options2.keyboardNavigationLabelProvider, options2.filter);\n    }\n    this.tree = this.createTree(user, container, delegate, renderers, { ...options2, findWidgetEnabled: !asyncFindEnabled, filter: findFilter ?? options2.filter });\n    this.root = createAsyncDataTreeNode({\n      element: void 0,\n      parent: null,\n      hasChildren: true,\n      defaultCollapseState: void 0\n    });\n    if (this.identityProvider) {\n      this.root = {\n        ...this.root,\n        id: null\n      };\n    }\n    this.nodes.set(null, this.root);\n    this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState, this, this.disposables);\n    if (asyncFindEnabled) {\n      const findOptions = {\n        styles: options2.findWidgetStyles,\n        showNotFoundMessage: options2.showNotFoundMessage,\n        defaultFindMatchType: options2.defaultFindMatchType,\n        defaultFindMode: options2.defaultFindMode\n      };\n      this.findController = this.disposables.add(new AsyncFindController(this.tree, options2.findProvider, findFilter, this.tree.options.contextViewProvider, findOptions));\n      this.focusNavigationFilter = (node) =\u003e this.findController.shouldFocusWhenNavigating(node);\n      this.onDidChangeFindOpenState = this.findController.onDidChangeOpenState;\n      this.onDidChangeFindMode = this.findController.onDidChangeMode;\n      this.onDidChangeFindMatchType = this.findController.onDidChangeMatchType;\n    } else {\n      this.onDidChangeFindOpenState = this.tree.onDidChangeFindOpenState;\n      this.onDidChangeFindMode = this.tree.onDidChangeFindMode;\n      this.onDidChangeFindMatchType = this.tree.onDidChangeFindMatchType;\n    }\n  }\n  createTree(user, container, delegate, renderers, options2) {\n    const objectTreeDelegate = new ComposedTreeDelegate(delegate);\n    const objectTreeRenderers = renderers.map((r) =\u003e new AsyncDataTreeRenderer(r, this.nodeMapper, this._onDidChangeNodeSlowState.event));\n    const objectTreeOptions = asObjectTreeOptions2(options2) || {};\n    return new ObjectTree(user, container, objectTreeDelegate, objectTreeRenderers, objectTreeOptions);\n  }\n  updateOptions(optionsUpdate = {}) {\n    if (this.findController) {\n      if (optionsUpdate.defaultFindMode !== void 0) {\n        this.findController.mode = optionsUpdate.defaultFindMode;\n      }\n      if (optionsUpdate.defaultFindMatchType !== void 0) {\n        this.findController.matchType = optionsUpdate.defaultFindMatchType;\n      }\n    }\n    this.tree.updateOptions(optionsUpdate);\n  }\n  // Widget\n  getHTMLElement() {\n    return this.tree.getHTMLElement();\n  }\n  get scrollTop() {\n    return this.tree.scrollTop;\n  }\n  set scrollTop(scrollTop) {\n    this.tree.scrollTop = scrollTop;\n  }\n  get scrollHeight() {\n    return this.tree.scrollHeight;\n  }\n  get renderHeight() {\n    return this.tree.renderHeight;\n  }\n  domFocus() {\n    this.tree.domFocus();\n  }\n  layout(height, width2) {\n    this.tree.layout(height, width2);\n  }\n  style(styles) {\n    this.tree.style(styles);\n  }\n  // Model\n  getInput() {\n    return this.root.element;\n  }\n  async setInput(input, viewState) {\n    this.cancelAllRefreshPromises();\n    this.root.element = input;\n    const viewStateContext = viewState \u0026\u0026 { viewState, focus: [], selection: [] };\n    await this._updateChildren(input, true, false, viewStateContext);\n    if (viewStateContext) {\n      this.tree.setFocus(viewStateContext.focus);\n      this.tree.setSelection(viewStateContext.selection);\n    }\n    if (viewState \u0026\u0026 typeof viewState.scrollTop === \"number\") {\n      this.scrollTop = viewState.scrollTop;\n    }\n  }\n  cancelAllRefreshPromises(includeSubTrees = false) {\n    this.refreshPromises.forEach((promise) =\u003e promise.cancel());\n    this.refreshPromises.clear();\n    if (includeSubTrees) {\n      this.subTreeRefreshPromises.forEach((promise) =\u003e promise.cancel());\n      this.subTreeRefreshPromises.clear();\n    }\n  }\n  async _updateChildren(element = this.root.element, recursive = true, rerender = false, viewStateContext, options2) {\n    if (typeof this.root.element === \"undefined\") {\n      throw new TreeError(this.user, \"Tree input not set\");\n    }\n    if (this.root.refreshPromise) {\n      await this.root.refreshPromise;\n      await Event.toPromise(this._onDidRender.event);\n    }\n    const node = this.getDataNode(element);\n    await this.refreshAndRenderNode(node, recursive, viewStateContext, options2);\n    if (rerender) {\n      try {\n        this.tree.rerender(node);\n      } catch {\n      }\n    }\n  }\n  // View\n  rerender(element) {\n    if (element === void 0 || element === this.root.element) {\n      this.tree.rerender();\n      return;\n    }\n    const node = this.getDataNode(element);\n    this.tree.rerender(node);\n  }\n  // Tree\n  getNode(element = this.root.element) {\n    const dataNode = this.getDataNode(element);\n    const node = this.tree.getNode(dataNode === this.root ? null : dataNode);\n    return this.nodeMapper.map(node);\n  }\n  collapse(element, recursive = false) {\n    const node = this.getDataNode(element);\n    return this.tree.collapse(node === this.root ? null : node, recursive);\n  }\n  async expand(element, recursive = false) {\n    if (typeof this.root.element === \"undefined\") {\n      throw new TreeError(this.user, \"Tree input not set\");\n    }\n    if (this.root.refreshPromise) {\n      await this.root.refreshPromise;\n      await Event.toPromise(this._onDidRender.event);\n    }\n    const node = this.getDataNode(element);\n    if (this.tree.hasElement(node) \u0026\u0026 !this.tree.isCollapsible(node)) {\n      return false;\n    }\n    if (node.refreshPromise) {\n      await node.refreshPromise;\n      await Event.toPromise(this._onDidRender.event);\n    }\n    if (node !== this.root \u0026\u0026 !node.refreshPromise \u0026\u0026 !this.tree.isCollapsed(node)) {\n      return false;\n    }\n    const result = this.tree.expand(node === this.root ? null : node, recursive);\n    if (node.refreshPromise) {\n      await node.refreshPromise;\n      await Event.toPromise(this._onDidRender.event);\n    }\n    return result;\n  }\n  setSelection(elements, browserEvent) {\n    const nodes = elements.map((e) =\u003e this.getDataNode(e));\n    this.tree.setSelection(nodes, browserEvent);\n  }\n  getSelection() {\n    const nodes = this.tree.getSelection();\n    return nodes.map((n2) =\u003e n2.element);\n  }\n  setFocus(elements, browserEvent) {\n    const nodes = elements.map((e) =\u003e this.getDataNode(e));\n    this.tree.setFocus(nodes, browserEvent);\n  }\n  getFocus() {\n    const nodes = this.tree.getFocus();\n    return nodes.map((n2) =\u003e n2.element);\n  }\n  reveal(element, relativeTop) {\n    this.tree.reveal(this.getDataNode(element), relativeTop);\n  }\n  // Tree navigation\n  getParentElement(element) {\n    const node = this.tree.getParentElement(this.getDataNode(element));\n    return node \u0026\u0026 node.element;\n  }\n  getFirstElementChild(element = this.root.element) {\n    const dataNode = this.getDataNode(element);\n    const node = this.tree.getFirstElementChild(dataNode === this.root ? null : dataNode);\n    return node \u0026\u0026 node.element;\n  }\n  // Implementation\n  getDataNode(element) {\n    const node = this.nodes.get(element === this.root.element ? null : element);\n    if (!node) {\n      const nodeIdentity = this.identityProvider?.getId(element).toString();\n      throw new TreeError(this.user, `Data tree node not found${nodeIdentity ? `: ${nodeIdentity}` : \"\"}`);\n    }\n    return node;\n  }\n  async refreshAndRenderNode(node, recursive, viewStateContext, options2) {\n    if (this.disposables.isDisposed) {\n      return;\n    }\n    await this.refreshNode(node, recursive, viewStateContext);\n    if (this.disposables.isDisposed) {\n      return;\n    }\n    this.render(node, viewStateContext, options2);\n  }\n  async refreshNode(node, recursive, viewStateContext) {\n    let result;\n    this.subTreeRefreshPromises.forEach((refreshPromise, refreshNode) =\u003e {\n      if (!result \u0026\u0026 intersects(refreshNode, node)) {\n        result = refreshPromise.then(() =\u003e this.refreshNode(node, recursive, viewStateContext));\n      }\n    });\n    if (result) {\n      return result;\n    }\n    if (node !== this.root) {\n      const treeNode = this.tree.getNode(node);\n      if (treeNode.collapsed) {\n        node.hasChildren = !!this.dataSource.hasChildren(node.element);\n        node.stale = true;\n        this.setChildren(node, [], recursive, viewStateContext);\n        return;\n      }\n    }\n    return this.doRefreshSubTree(node, recursive, viewStateContext);\n  }\n  async doRefreshSubTree(node, recursive, viewStateContext) {\n    const cancelablePromise = createCancelablePromise(async () =\u003e {\n      const childrenToRefresh = await this.doRefreshNode(node, recursive, viewStateContext);\n      node.stale = false;\n      await Promises.settled(childrenToRefresh.map((child) =\u003e this.doRefreshSubTree(child, recursive, viewStateContext)));\n    });\n    node.refreshPromise = cancelablePromise;\n    this.subTreeRefreshPromises.set(node, cancelablePromise);\n    cancelablePromise.finally(() =\u003e {\n      node.refreshPromise = void 0;\n      this.subTreeRefreshPromises.delete(node);\n    });\n    return cancelablePromise;\n  }\n  async doRefreshNode(node, recursive, viewStateContext) {\n    node.hasChildren = !!this.dataSource.hasChildren(node.element);\n    let childrenPromise;\n    if (!node.hasChildren) {\n      childrenPromise = Promise.resolve(Iterable.empty());\n    } else {\n      const children = this.doGetChildren(node);\n      if (isIterable(children)) {\n        childrenPromise = Promise.resolve(children);\n      } else {\n        const slowTimeout = timeout(800);\n        slowTimeout.then(() =\u003e {\n          node.slow = true;\n          this._onDidChangeNodeSlowState.fire(node);\n        }, (_) =\u003e null);\n        childrenPromise = children.finally(() =\u003e slowTimeout.cancel());\n      }\n    }\n    try {\n      const children = await childrenPromise;\n      return this.setChildren(node, children, recursive, viewStateContext);\n    } catch (err) {\n      if (node !== this.root \u0026\u0026 this.tree.hasElement(node)) {\n        this.tree.collapse(node);\n      }\n      if (isCancellationError(err)) {\n        return [];\n      }\n      throw err;\n    } finally {\n      if (node.slow) {\n        node.slow = false;\n        this._onDidChangeNodeSlowState.fire(node);\n      }\n    }\n  }\n  doGetChildren(node) {\n    let result = this.refreshPromises.get(node);\n    if (result) {\n      return result;\n    }\n    const children = this.dataSource.getChildren(node.element);\n    if (isIterable(children)) {\n      return this.processChildren(children);\n    } else {\n      result = createCancelablePromise(async () =\u003e this.processChildren(await children));\n      this.refreshPromises.set(node, result);\n      return result.finally(() =\u003e {\n        this.refreshPromises.delete(node);\n      });\n    }\n  }\n  _onDidChangeCollapseState({ node, deep }) {\n    if (node.element === null) {\n      return;\n    }\n    if (!node.collapsed \u0026\u0026 node.element.stale) {\n      if (deep) {\n        this.collapse(node.element.element);\n      } else {\n        this.refreshAndRenderNode(node.element, false).catch(onUnexpectedError);\n      }\n    }\n  }\n  setChildren(node, childrenElementsIterable, recursive, viewStateContext) {\n    const childrenElements = [...childrenElementsIterable];\n    if (node.children.length === 0 \u0026\u0026 childrenElements.length === 0) {\n      return [];\n    }\n    const nodesToForget = /* @__PURE__ */ new Map();\n    const childrenTreeNodesById = /* @__PURE__ */ new Map();\n    for (const child of node.children) {\n      nodesToForget.set(child.element, child);\n      if (this.identityProvider) {\n        childrenTreeNodesById.set(child.id, { node: child, collapsed: this.tree.hasElement(child) \u0026\u0026 this.tree.isCollapsed(child) });\n      }\n    }\n    const childrenToRefresh = [];\n    const children = childrenElements.map((element) =\u003e {\n      const hasChildren = !!this.dataSource.hasChildren(element);\n      if (!this.identityProvider) {\n        const asyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, hasChildren, defaultCollapseState: this.getDefaultCollapseState(element) });\n        if (hasChildren \u0026\u0026 asyncDataTreeNode.defaultCollapseState === ObjectTreeElementCollapseState.PreserveOrExpanded) {\n          childrenToRefresh.push(asyncDataTreeNode);\n        }\n        return asyncDataTreeNode;\n      }\n      const id = this.identityProvider.getId(element).toString();\n      const result = childrenTreeNodesById.get(id);\n      if (result) {\n        const asyncDataTreeNode = result.node;\n        nodesToForget.delete(asyncDataTreeNode.element);\n        this.nodes.delete(asyncDataTreeNode.element);\n        this.nodes.set(element, asyncDataTreeNode);\n        asyncDataTreeNode.element = element;\n        asyncDataTreeNode.hasChildren = hasChildren;\n        if (recursive) {\n          if (result.collapsed) {\n            asyncDataTreeNode.children.forEach((node2) =\u003e dfs2(node2, (node3) =\u003e this.nodes.delete(node3.element)));\n            asyncDataTreeNode.children.splice(0, asyncDataTreeNode.children.length);\n            asyncDataTreeNode.stale = true;\n          } else {\n            childrenToRefresh.push(asyncDataTreeNode);\n          }\n        } else if (hasChildren \u0026\u0026 !result.collapsed) {\n          childrenToRefresh.push(asyncDataTreeNode);\n        }\n        return asyncDataTreeNode;\n      }\n      const childAsyncDataTreeNode = createAsyncDataTreeNode({ element, parent: node, id, hasChildren, defaultCollapseState: this.getDefaultCollapseState(element) });\n      if (viewStateContext \u0026\u0026 viewStateContext.viewState.focus \u0026\u0026 viewStateContext.viewState.focus.indexOf(id) \u003e -1) {\n        viewStateContext.focus.push(childAsyncDataTreeNode);\n      }\n      if (viewStateContext \u0026\u0026 viewStateContext.viewState.selection \u0026\u0026 viewStateContext.viewState.selection.indexOf(id) \u003e -1) {\n        viewStateContext.selection.push(childAsyncDataTreeNode);\n      }\n      if (viewStateContext \u0026\u0026 viewStateContext.viewState.expanded \u0026\u0026 viewStateContext.viewState.expanded.indexOf(id) \u003e -1) {\n        childrenToRefresh.push(childAsyncDataTreeNode);\n      } else if (hasChildren \u0026\u0026 childAsyncDataTreeNode.defaultCollapseState === ObjectTreeElementCollapseState.PreserveOrExpanded) {\n        childrenToRefresh.push(childAsyncDataTreeNode);\n      }\n      return childAsyncDataTreeNode;\n    });\n    for (const node2 of nodesToForget.values()) {\n      dfs2(node2, (node3) =\u003e this.nodes.delete(node3.element));\n    }\n    for (const child of children) {\n      this.nodes.set(child.element, child);\n    }\n    splice(node.children, 0, node.children.length, children);\n    if (node !== this.root \u0026\u0026 this.autoExpandSingleChildren \u0026\u0026 children.length === 1 \u0026\u0026 childrenToRefresh.length === 0) {\n      children[0].forceExpanded = true;\n      childrenToRefresh.push(children[0]);\n    }\n    return childrenToRefresh;\n  }\n  render(node, viewStateContext, options2) {\n    const children = node.children.map((node2) =\u003e this.asTreeElement(node2, viewStateContext));\n    const objectTreeOptions = options2 \u0026\u0026 {\n      ...options2,\n      diffIdentityProvider: options2.diffIdentityProvider \u0026\u0026 {\n        getId(node2) {\n          return options2.diffIdentityProvider.getId(node2.element);\n        }\n      }\n    };\n    this.tree.setChildren(node === this.root ? null : node, children, objectTreeOptions);\n    if (node !== this.root) {\n      this.tree.setCollapsible(node, node.hasChildren);\n    }\n    this._onDidRender.fire();\n  }\n  asTreeElement(node, viewStateContext) {\n    if (node.stale) {\n      return {\n        element: node,\n        collapsible: node.hasChildren,\n        collapsed: true\n      };\n    }\n    let collapsed2;\n    if (viewStateContext \u0026\u0026 viewStateContext.viewState.expanded \u0026\u0026 node.id \u0026\u0026 viewStateContext.viewState.expanded.indexOf(node.id) \u003e -1) {\n      collapsed2 = false;\n    } else if (node.forceExpanded) {\n      collapsed2 = false;\n      node.forceExpanded = false;\n    } else {\n      collapsed2 = node.defaultCollapseState;\n    }\n    return {\n      element: node,\n      children: node.hasChildren ? Iterable.map(node.children, (child) =\u003e this.asTreeElement(child, viewStateContext)) : [],\n      collapsible: node.hasChildren,\n      collapsed: collapsed2\n    };\n  }\n  processChildren(children) {\n    if (this.sorter) {\n      children = [...children].sort(this.sorter.compare.bind(this.sorter));\n    }\n    return children;\n  }\n  dispose() {\n    this.disposables.dispose();\n    this.tree.dispose();\n  }\n};\nvar CompressibleAsyncDataTreeNodeWrapper = class _CompressibleAsyncDataTreeNodeWrapper {\n  get element() {\n    return {\n      elements: this.node.element.elements.map((e) =\u003e e.element),\n      incompressible: this.node.element.incompressible\n    };\n  }\n  get children() {\n    return this.node.children.map((node) =\u003e new _CompressibleAsyncDataTreeNodeWrapper(node));\n  }\n  get depth() {\n    return this.node.depth;\n  }\n  get visibleChildrenCount() {\n    return this.node.visibleChildrenCount;\n  }\n  get visibleChildIndex() {\n    return this.node.visibleChildIndex;\n  }\n  get collapsible() {\n    return this.node.collapsible;\n  }\n  get collapsed() {\n    return this.node.collapsed;\n  }\n  get visible() {\n    return this.node.visible;\n  }\n  get filterData() {\n    return this.node.filterData;\n  }\n  constructor(node) {\n    this.node = node;\n  }\n};\nvar CompressibleAsyncDataTreeRenderer = class {\n  constructor(renderer, nodeMapper, compressibleNodeMapperProvider, onDidChangeTwistieState) {\n    this.renderer = renderer;\n    this.nodeMapper = nodeMapper;\n    this.compressibleNodeMapperProvider = compressibleNodeMapperProvider;\n    this.onDidChangeTwistieState = onDidChangeTwistieState;\n    this.renderedNodes = /* @__PURE__ */ new Map();\n    this.disposables = [];\n    this.templateId = renderer.templateId;\n  }\n  renderTemplate(container) {\n    const templateData = this.renderer.renderTemplate(container);\n    return { templateData };\n  }\n  renderElement(node, index, templateData, details) {\n    this.renderer.renderElement(this.nodeMapper.map(node), index, templateData.templateData, details);\n  }\n  renderCompressedElements(node, index, templateData, details) {\n    this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(node), index, templateData.templateData, details);\n  }\n  renderTwistie(element, twistieElement) {\n    if (element.slow) {\n      twistieElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading));\n      return true;\n    } else {\n      twistieElement.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemLoading));\n      return false;\n    }\n  }\n  disposeElement(node, index, templateData, details) {\n    this.renderer.disposeElement?.(this.nodeMapper.map(node), index, templateData.templateData, details);\n  }\n  disposeCompressedElements(node, index, templateData, details) {\n    this.renderer.disposeCompressedElements?.(this.compressibleNodeMapperProvider().map(node), index, templateData.templateData, details);\n  }\n  disposeTemplate(templateData) {\n    this.renderer.disposeTemplate(templateData.templateData);\n  }\n  dispose() {\n    this.renderedNodes.clear();\n    this.disposables = dispose(this.disposables);\n  }\n};\nfunction asCompressibleObjectTreeOptions(options2) {\n  const objectTreeOptions = options2 \u0026\u0026 asObjectTreeOptions2(options2);\n  return objectTreeOptions \u0026\u0026 {\n    ...objectTreeOptions,\n    keyboardNavigationLabelProvider: objectTreeOptions.keyboardNavigationLabelProvider \u0026\u0026 {\n      ...objectTreeOptions.keyboardNavigationLabelProvider,\n      getCompressedNodeKeyboardNavigationLabel(els) {\n        return options2.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(els.map((e) =\u003e e.element));\n      }\n    }\n  };\n}\nvar CompressibleAsyncDataTree = class extends AsyncDataTree {\n  constructor(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, options2 = {}) {\n    super(user, container, virtualDelegate, renderers, dataSource, options2);\n    this.compressionDelegate = compressionDelegate;\n    this.compressibleNodeMapper = new WeakMapper((node) =\u003e new CompressibleAsyncDataTreeNodeWrapper(node));\n    this.filter = options2.filter;\n  }\n  createTree(user, container, delegate, renderers, options2) {\n    const objectTreeDelegate = new ComposedTreeDelegate(delegate);\n    const objectTreeRenderers = renderers.map((r) =\u003e new CompressibleAsyncDataTreeRenderer(r, this.nodeMapper, () =\u003e this.compressibleNodeMapper, this._onDidChangeNodeSlowState.event));\n    const objectTreeOptions = asCompressibleObjectTreeOptions(options2) || {};\n    return new CompressibleObjectTree(user, container, objectTreeDelegate, objectTreeRenderers, objectTreeOptions);\n  }\n  asTreeElement(node, viewStateContext) {\n    return {\n      incompressible: this.compressionDelegate.isIncompressible(node.element),\n      ...super.asTreeElement(node, viewStateContext)\n    };\n  }\n  render(node, viewStateContext, options2) {\n    if (!this.identityProvider) {\n      return super.render(node, viewStateContext);\n    }\n    const getId = (element) =\u003e this.identityProvider.getId(element).toString();\n    const getUncompressedIds = (nodes) =\u003e {\n      const result = /* @__PURE__ */ new Set();\n      for (const node2 of nodes) {\n        const compressedNode = this.tree.getCompressedTreeNode(node2 === this.root ? null : node2);\n        if (!compressedNode.element) {\n          continue;\n        }\n        for (const node3 of compressedNode.element.elements) {\n          result.add(getId(node3.element));\n        }\n      }\n      return result;\n    };\n    const oldSelection = getUncompressedIds(this.tree.getSelection());\n    const oldFocus = getUncompressedIds(this.tree.getFocus());\n    super.render(node, viewStateContext, options2);\n    const selection = this.getSelection();\n    let didChangeSelection = false;\n    const focus = this.getFocus();\n    let didChangeFocus = false;\n    const visit = (node2) =\u003e {\n      const compressedNode = node2.element;\n      if (compressedNode) {\n        for (let i2 = 0; i2 \u003c compressedNode.elements.length; i2++) {\n          const id = getId(compressedNode.elements[i2].element);\n          const element = compressedNode.elements[compressedNode.elements.length - 1].element;\n          if (oldSelection.has(id) \u0026\u0026 selection.indexOf(element) === -1) {\n            selection.push(element);\n            didChangeSelection = true;\n          }\n          if (oldFocus.has(id) \u0026\u0026 focus.indexOf(element) === -1) {\n            focus.push(element);\n            didChangeFocus = true;\n          }\n        }\n      }\n      node2.children.forEach(visit);\n    };\n    visit(this.tree.getCompressedTreeNode(node === this.root ? null : node));\n    if (didChangeSelection) {\n      this.setSelection(selection);\n    }\n    if (didChangeFocus) {\n      this.setFocus(focus);\n    }\n  }\n  // For compressed async data trees, `TreeVisibility.Recurse` doesn't currently work\n  // and we have to filter everything beforehand\n  // Related to #85193 and #85835\n  processChildren(children) {\n    if (this.filter) {\n      children = Iterable.filter(children, (e) =\u003e {\n        const result = this.filter.filter(\n          e,\n          1\n          /* TreeVisibility.Visible */\n        );\n        const visibility = getVisibility(result);\n        if (visibility === 2) {\n          throw new Error(\"Recursive tree visibility not supported in async data compressed trees\");\n        }\n        return visibility === 1;\n      });\n    }\n    return super.processChildren(children);\n  }\n};\nfunction getVisibility(filterResult) {\n  if (typeof filterResult === \"boolean\") {\n    return filterResult ? 1 : 0;\n  } else if (isFilterResult(filterResult)) {\n    return getVisibleState(filterResult.visibility);\n  } else {\n    return getVisibleState(filterResult);\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/tree/dataTree.js\nvar DataTree = class extends AbstractTree {\n  constructor(user, container, delegate, renderers, dataSource, options2 = {}) {\n    super(user, container, delegate, renderers, options2);\n    this.user = user;\n    this.dataSource = dataSource;\n    this.identityProvider = options2.identityProvider;\n  }\n  createModel(user, options2) {\n    return new ObjectTreeModel(user, options2);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/list/browser/listService.js\ninit_event();\ninit_lifecycle();\ninit_nls();\ninit_configuration();\ninit_configurationRegistry();\ninit_contextkey();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextkey/common/contextkeys.js\ninit_platform();\ninit_nls();\ninit_contextkey();\nvar IsMacContext = new RawContextKey(\"isMac\", isMacintosh, localize(1666, \"Whether the operating system is macOS\"));\nvar IsLinuxContext = new RawContextKey(\"isLinux\", isLinux, localize(1667, \"Whether the operating system is Linux\"));\nvar IsWindowsContext = new RawContextKey(\"isWindows\", isWindows, localize(1668, \"Whether the operating system is Windows\"));\nvar IsWebContext = new RawContextKey(\"isWeb\", isWeb, localize(1669, \"Whether the platform is a web browser\"));\nvar IsMacNativeContext = new RawContextKey(\"isMacNative\", isMacintosh \u0026\u0026 !isWeb, localize(1670, \"Whether the operating system is macOS on a non-browser platform\"));\nvar IsIOSContext = new RawContextKey(\"isIOS\", isIOS, localize(1671, \"Whether the operating system is iOS\"));\nvar IsMobileContext = new RawContextKey(\"isMobile\", isMobile, localize(1672, \"Whether the platform is a mobile web browser\"));\nvar IsDevelopmentContext = new RawContextKey(\"isDevelopment\", false, true);\nvar ProductQualityContext = new RawContextKey(\"productQualityType\", \"\", localize(1673, \"Quality type of VS Code\"));\nvar IsSimulationContext = new RawContextKey(\"isSimulation\", false, localize(1674, \"Whether the application runs in simulation mode\"));\nvar InputFocusedContextKey = \"inputFocus\";\nvar InputFocusedContext = new RawContextKey(InputFocusedContextKey, false, localize(1675, \"Whether keyboard focus is inside an input box\"));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/list/browser/listService.js\ninit_instantiation();\ninit_platform2();\nvar __decorate69 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param63 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar IListService = createDecorator(\"listService\");\nvar ListService = class {\n  get lastFocusedList() {\n    return this._lastFocusedWidget;\n  }\n  constructor() {\n    this.disposables = new DisposableStore();\n    this.lists = [];\n    this._lastFocusedWidget = void 0;\n  }\n  setLastFocusedList(widget) {\n    if (widget === this._lastFocusedWidget) {\n      return;\n    }\n    this._lastFocusedWidget?.getHTMLElement().classList.remove(\"last-focused\");\n    this._lastFocusedWidget = widget;\n    this._lastFocusedWidget?.getHTMLElement().classList.add(\"last-focused\");\n  }\n  register(widget, extraContextKeys) {\n    if (this.lists.some((l) =\u003e l.widget === widget)) {\n      throw new Error(\"Cannot register the same widget multiple times\");\n    }\n    const registeredList = { widget, extraContextKeys };\n    this.lists.push(registeredList);\n    if (isActiveElement(widget.getHTMLElement())) {\n      this.setLastFocusedList(widget);\n    }\n    return combinedDisposable(widget.onDidFocus(() =\u003e this.setLastFocusedList(widget)), toDisposable(() =\u003e this.lists.splice(this.lists.indexOf(registeredList), 1)), widget.onDidDispose(() =\u003e {\n      this.lists = this.lists.filter((l) =\u003e l !== registeredList);\n      if (this._lastFocusedWidget === widget) {\n        this.setLastFocusedList(void 0);\n      }\n    }));\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\nvar RawWorkbenchListScrollAtBoundaryContextKey = new RawContextKey(\"listScrollAtBoundary\", \"none\");\nvar WorkbenchListScrollAtTopContextKey = ContextKeyExpr.or(RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo(\"top\"), RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo(\"both\"));\nvar WorkbenchListScrollAtBottomContextKey = ContextKeyExpr.or(RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo(\"bottom\"), RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo(\"both\"));\nvar RawWorkbenchListFocusContextKey = new RawContextKey(\"listFocus\", true);\nvar WorkbenchTreeStickyScrollFocused = new RawContextKey(\"treestickyScrollFocused\", false);\nvar WorkbenchListSupportsMultiSelectContextKey = new RawContextKey(\"listSupportsMultiselect\", true);\nvar WorkbenchListFocusContextKey = ContextKeyExpr.and(RawWorkbenchListFocusContextKey, ContextKeyExpr.not(InputFocusedContextKey), WorkbenchTreeStickyScrollFocused.negate());\nvar WorkbenchListHasSelectionOrFocus = new RawContextKey(\"listHasSelectionOrFocus\", false);\nvar WorkbenchListDoubleSelection = new RawContextKey(\"listDoubleSelection\", false);\nvar WorkbenchListMultiSelection = new RawContextKey(\"listMultiSelection\", false);\nvar WorkbenchListSelectionNavigation = new RawContextKey(\"listSelectionNavigation\", false);\nvar WorkbenchListSupportsFind = new RawContextKey(\"listSupportsFind\", true);\nvar WorkbenchTreeElementCanCollapse = new RawContextKey(\"treeElementCanCollapse\", false);\nvar WorkbenchTreeElementHasParent = new RawContextKey(\"treeElementHasParent\", false);\nvar WorkbenchTreeElementCanExpand = new RawContextKey(\"treeElementCanExpand\", false);\nvar WorkbenchTreeElementHasChild = new RawContextKey(\"treeElementHasChild\", false);\nvar WorkbenchTreeFindOpen = new RawContextKey(\"treeFindOpen\", false);\nvar WorkbenchListTypeNavigationModeKey = \"listTypeNavigationMode\";\nvar WorkbenchListAutomaticKeyboardNavigationLegacyKey = \"listAutomaticKeyboardNavigation\";\nfunction createScopedContextKeyService(contextKeyService, widget) {\n  const result = contextKeyService.createScoped(widget.getHTMLElement());\n  RawWorkbenchListFocusContextKey.bindTo(result);\n  return result;\n}\nfunction createScrollObserver(contextKeyService, widget) {\n  const listScrollAt = RawWorkbenchListScrollAtBoundaryContextKey.bindTo(contextKeyService);\n  const update = () =\u003e {\n    const atTop = widget.scrollTop === 0;\n    const atBottom = widget.scrollHeight - widget.renderHeight - widget.scrollTop \u003c 1;\n    if (atTop \u0026\u0026 atBottom) {\n      listScrollAt.set(\"both\");\n    } else if (atTop) {\n      listScrollAt.set(\"top\");\n    } else if (atBottom) {\n      listScrollAt.set(\"bottom\");\n    } else {\n      listScrollAt.set(\"none\");\n    }\n  };\n  update();\n  return widget.onDidScroll(update);\n}\nvar multiSelectModifierSettingKey = \"workbench.list.multiSelectModifier\";\nvar openModeSettingKey = \"workbench.list.openMode\";\nvar horizontalScrollingKey = \"workbench.list.horizontalScrolling\";\nvar defaultFindModeSettingKey = \"workbench.list.defaultFindMode\";\nvar typeNavigationModeSettingKey = \"workbench.list.typeNavigationMode\";\nvar keyboardNavigationSettingKey = \"workbench.list.keyboardNavigation\";\nvar scrollByPageKey = \"workbench.list.scrollByPage\";\nvar defaultFindMatchTypeSettingKey = \"workbench.list.defaultFindMatchType\";\nvar treeIndentKey = \"workbench.tree.indent\";\nvar treeRenderIndentGuidesKey = \"workbench.tree.renderIndentGuides\";\nvar listSmoothScrolling = \"workbench.list.smoothScrolling\";\nvar mouseWheelScrollSensitivityKey = \"workbench.list.mouseWheelScrollSensitivity\";\nvar fastScrollSensitivityKey = \"workbench.list.fastScrollSensitivity\";\nvar treeExpandMode = \"workbench.tree.expandMode\";\nvar treeStickyScroll = \"workbench.tree.enableStickyScroll\";\nvar treeStickyScrollMaxElements = \"workbench.tree.stickyScrollMaxItemCount\";\nfunction useAltAsMultipleSelectionModifier(configurationService) {\n  return configurationService.getValue(multiSelectModifierSettingKey) === \"alt\";\n}\nvar MultipleSelectionController = class extends Disposable {\n  constructor(configurationService) {\n    super();\n    this.configurationService = configurationService;\n    this.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n    this.registerListeners();\n  }\n  registerListeners() {\n    this._register(this.configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n        this.useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(this.configurationService);\n      }\n    }));\n  }\n  isSelectionSingleChangeEvent(event) {\n    if (this.useAltAsMultipleSelectionModifier) {\n      return event.browserEvent.altKey;\n    }\n    return isSelectionSingleChangeEvent(event);\n  }\n  isSelectionRangeChangeEvent(event) {\n    return isSelectionRangeChangeEvent(event);\n  }\n};\nfunction toWorkbenchListOptions(accessor, options2) {\n  const configurationService = accessor.get(IConfigurationService);\n  const keybindingService = accessor.get(IKeybindingService);\n  const disposables = new DisposableStore();\n  const result = {\n    ...options2,\n    keyboardNavigationDelegate: { mightProducePrintableCharacter(e) {\n      return keybindingService.mightProducePrintableCharacter(e);\n    } },\n    smoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)),\n    mouseWheelScrollSensitivity: configurationService.getValue(mouseWheelScrollSensitivityKey),\n    fastScrollSensitivity: configurationService.getValue(fastScrollSensitivityKey),\n    multipleSelectionController: options2.multipleSelectionController ?? disposables.add(new MultipleSelectionController(configurationService)),\n    keyboardNavigationEventFilter: createKeyboardNavigationEventFilter(keybindingService),\n    scrollByPage: Boolean(configurationService.getValue(scrollByPageKey))\n  };\n  return [result, disposables];\n}\nvar WorkbenchList = class WorkbenchList2 extends List {\n  constructor(user, container, delegate, renderers, options2, contextKeyService, listService, configurationService, instantiationService) {\n    const horizontalScrolling = typeof options2.horizontalScrolling !== \"undefined\" ? options2.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n    const [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options2);\n    super(user, container, delegate, renderers, {\n      keyboardSupport: false,\n      ...workbenchListOptions,\n      horizontalScrolling\n    });\n    this.disposables.add(workbenchListOptionsDisposable);\n    this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n    this.disposables.add(createScrollObserver(this.contextKeyService, this));\n    this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n    this.listSupportsMultiSelect.set(options2.multipleSelectionSupport !== false);\n    const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n    listSelectionNavigation.set(Boolean(options2.selectionNavigation));\n    this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n    this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n    this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n    this.horizontalScrolling = options2.horizontalScrolling;\n    this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n    this.disposables.add(this.contextKeyService);\n    this.disposables.add(listService.register(this));\n    this.updateStyles(options2.overrideStyles);\n    this.disposables.add(this.onDidChangeSelection(() =\u003e {\n      const selection = this.getSelection();\n      const focus = this.getFocus();\n      this.contextKeyService.bufferChangeEvents(() =\u003e {\n        this.listHasSelectionOrFocus.set(selection.length \u003e 0 || focus.length \u003e 0);\n        this.listMultiSelection.set(selection.length \u003e 1);\n        this.listDoubleSelection.set(selection.length === 2);\n      });\n    }));\n    this.disposables.add(this.onDidChangeFocus(() =\u003e {\n      const selection = this.getSelection();\n      const focus = this.getFocus();\n      this.listHasSelectionOrFocus.set(selection.length \u003e 0 || focus.length \u003e 0);\n    }));\n    this.disposables.add(configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n        this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n      }\n      let options3 = {};\n      if (e.affectsConfiguration(horizontalScrollingKey) \u0026\u0026 this.horizontalScrolling === void 0) {\n        const horizontalScrolling2 = Boolean(configurationService.getValue(horizontalScrollingKey));\n        options3 = { ...options3, horizontalScrolling: horizontalScrolling2 };\n      }\n      if (e.affectsConfiguration(scrollByPageKey)) {\n        const scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n        options3 = { ...options3, scrollByPage };\n      }\n      if (e.affectsConfiguration(listSmoothScrolling)) {\n        const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n        options3 = { ...options3, smoothScrolling };\n      }\n      if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n        const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n        options3 = { ...options3, mouseWheelScrollSensitivity };\n      }\n      if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n        const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n        options3 = { ...options3, fastScrollSensitivity };\n      }\n      if (Object.keys(options3).length \u003e 0) {\n        this.updateOptions(options3);\n      }\n    }));\n    this.navigator = new ListResourceNavigator(this, { configurationService, ...options2 });\n    this.disposables.add(this.navigator);\n  }\n  updateOptions(options2) {\n    super.updateOptions(options2);\n    if (options2.overrideStyles !== void 0) {\n      this.updateStyles(options2.overrideStyles);\n    }\n    if (options2.multipleSelectionSupport !== void 0) {\n      this.listSupportsMultiSelect.set(!!options2.multipleSelectionSupport);\n    }\n  }\n  updateStyles(styles) {\n    this.style(styles ? getListStyles(styles) : defaultListStyles);\n  }\n};\nWorkbenchList = __decorate69([\n  __param63(5, IContextKeyService),\n  __param63(6, IListService),\n  __param63(7, IConfigurationService),\n  __param63(8, IInstantiationService)\n], WorkbenchList);\nvar WorkbenchPagedList = class WorkbenchPagedList2 extends PagedList {\n  constructor(user, container, delegate, renderers, options2, contextKeyService, listService, configurationService, instantiationService) {\n    const horizontalScrolling = typeof options2.horizontalScrolling !== \"undefined\" ? options2.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n    const [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options2);\n    super(user, container, delegate, renderers, {\n      keyboardSupport: false,\n      ...workbenchListOptions,\n      horizontalScrolling\n    });\n    this.disposables = new DisposableStore();\n    this.disposables.add(workbenchListOptionsDisposable);\n    this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n    this.disposables.add(createScrollObserver(this.contextKeyService, this.widget));\n    this.horizontalScrolling = options2.horizontalScrolling;\n    this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n    this.listSupportsMultiSelect.set(options2.multipleSelectionSupport !== false);\n    const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n    listSelectionNavigation.set(Boolean(options2.selectionNavigation));\n    this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n    this.disposables.add(this.contextKeyService);\n    this.disposables.add(listService.register(this));\n    this.updateStyles(options2.overrideStyles);\n    this.disposables.add(configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n        this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n      }\n      let options3 = {};\n      if (e.affectsConfiguration(horizontalScrollingKey) \u0026\u0026 this.horizontalScrolling === void 0) {\n        const horizontalScrolling2 = Boolean(configurationService.getValue(horizontalScrollingKey));\n        options3 = { ...options3, horizontalScrolling: horizontalScrolling2 };\n      }\n      if (e.affectsConfiguration(scrollByPageKey)) {\n        const scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n        options3 = { ...options3, scrollByPage };\n      }\n      if (e.affectsConfiguration(listSmoothScrolling)) {\n        const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n        options3 = { ...options3, smoothScrolling };\n      }\n      if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n        const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n        options3 = { ...options3, mouseWheelScrollSensitivity };\n      }\n      if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n        const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n        options3 = { ...options3, fastScrollSensitivity };\n      }\n      if (Object.keys(options3).length \u003e 0) {\n        this.updateOptions(options3);\n      }\n    }));\n    this.navigator = new ListResourceNavigator(this, { configurationService, ...options2 });\n    this.disposables.add(this.navigator);\n  }\n  updateOptions(options2) {\n    super.updateOptions(options2);\n    if (options2.overrideStyles !== void 0) {\n      this.updateStyles(options2.overrideStyles);\n    }\n    if (options2.multipleSelectionSupport !== void 0) {\n      this.listSupportsMultiSelect.set(!!options2.multipleSelectionSupport);\n    }\n  }\n  updateStyles(styles) {\n    this.style(styles ? getListStyles(styles) : defaultListStyles);\n  }\n  dispose() {\n    this.disposables.dispose();\n    super.dispose();\n  }\n};\nWorkbenchPagedList = __decorate69([\n  __param63(5, IContextKeyService),\n  __param63(6, IListService),\n  __param63(7, IConfigurationService),\n  __param63(8, IInstantiationService)\n], WorkbenchPagedList);\nvar WorkbenchTable = class WorkbenchTable2 extends Table {\n  constructor(user, container, delegate, columns, renderers, options2, contextKeyService, listService, configurationService, instantiationService) {\n    const horizontalScrolling = typeof options2.horizontalScrolling !== \"undefined\" ? options2.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n    const [workbenchListOptions, workbenchListOptionsDisposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options2);\n    super(user, container, delegate, columns, renderers, {\n      keyboardSupport: false,\n      ...workbenchListOptions,\n      horizontalScrolling\n    });\n    this.disposables.add(workbenchListOptionsDisposable);\n    this.contextKeyService = createScopedContextKeyService(contextKeyService, this);\n    this.disposables.add(createScrollObserver(this.contextKeyService, this));\n    this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n    this.listSupportsMultiSelect.set(options2.multipleSelectionSupport !== false);\n    const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n    listSelectionNavigation.set(Boolean(options2.selectionNavigation));\n    this.listHasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n    this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n    this.listMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n    this.horizontalScrolling = options2.horizontalScrolling;\n    this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n    this.disposables.add(this.contextKeyService);\n    this.disposables.add(listService.register(this));\n    this.updateStyles(options2.overrideStyles);\n    this.disposables.add(this.onDidChangeSelection(() =\u003e {\n      const selection = this.getSelection();\n      const focus = this.getFocus();\n      this.contextKeyService.bufferChangeEvents(() =\u003e {\n        this.listHasSelectionOrFocus.set(selection.length \u003e 0 || focus.length \u003e 0);\n        this.listMultiSelection.set(selection.length \u003e 1);\n        this.listDoubleSelection.set(selection.length === 2);\n      });\n    }));\n    this.disposables.add(this.onDidChangeFocus(() =\u003e {\n      const selection = this.getSelection();\n      const focus = this.getFocus();\n      this.listHasSelectionOrFocus.set(selection.length \u003e 0 || focus.length \u003e 0);\n    }));\n    this.disposables.add(configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n        this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n      }\n      let options3 = {};\n      if (e.affectsConfiguration(horizontalScrollingKey) \u0026\u0026 this.horizontalScrolling === void 0) {\n        const horizontalScrolling2 = Boolean(configurationService.getValue(horizontalScrollingKey));\n        options3 = { ...options3, horizontalScrolling: horizontalScrolling2 };\n      }\n      if (e.affectsConfiguration(scrollByPageKey)) {\n        const scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n        options3 = { ...options3, scrollByPage };\n      }\n      if (e.affectsConfiguration(listSmoothScrolling)) {\n        const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n        options3 = { ...options3, smoothScrolling };\n      }\n      if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n        const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n        options3 = { ...options3, mouseWheelScrollSensitivity };\n      }\n      if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n        const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n        options3 = { ...options3, fastScrollSensitivity };\n      }\n      if (Object.keys(options3).length \u003e 0) {\n        this.updateOptions(options3);\n      }\n    }));\n    this.navigator = new TableResourceNavigator(this, { configurationService, ...options2 });\n    this.disposables.add(this.navigator);\n  }\n  updateOptions(options2) {\n    super.updateOptions(options2);\n    if (options2.overrideStyles !== void 0) {\n      this.updateStyles(options2.overrideStyles);\n    }\n    if (options2.multipleSelectionSupport !== void 0) {\n      this.listSupportsMultiSelect.set(!!options2.multipleSelectionSupport);\n    }\n  }\n  updateStyles(styles) {\n    this.style(styles ? getListStyles(styles) : defaultListStyles);\n  }\n  dispose() {\n    this.disposables.dispose();\n    super.dispose();\n  }\n};\nWorkbenchTable = __decorate69([\n  __param63(6, IContextKeyService),\n  __param63(7, IListService),\n  __param63(8, IConfigurationService),\n  __param63(9, IInstantiationService)\n], WorkbenchTable);\nvar ResourceNavigator = class extends Disposable {\n  constructor(widget, options2) {\n    super();\n    this.widget = widget;\n    this._onDidOpen = this._register(new Emitter());\n    this.onDidOpen = this._onDidOpen.event;\n    this._register(Event.filter(this.widget.onDidChangeSelection, (e) =\u003e isKeyboardEvent(e.browserEvent))((e) =\u003e this.onSelectionFromKeyboard(e)));\n    this._register(this.widget.onPointer((e) =\u003e this.onPointer(e.element, e.browserEvent)));\n    this._register(this.widget.onMouseDblClick((e) =\u003e this.onMouseDblClick(e.element, e.browserEvent)));\n    if (typeof options2?.openOnSingleClick !== \"boolean\" \u0026\u0026 options2?.configurationService) {\n      this.openOnSingleClick = options2?.configurationService.getValue(openModeSettingKey) !== \"doubleClick\";\n      this._register(options2?.configurationService.onDidChangeConfiguration((e) =\u003e {\n        if (e.affectsConfiguration(openModeSettingKey)) {\n          this.openOnSingleClick = options2?.configurationService.getValue(openModeSettingKey) !== \"doubleClick\";\n        }\n      }));\n    } else {\n      this.openOnSingleClick = options2?.openOnSingleClick ?? true;\n    }\n  }\n  onSelectionFromKeyboard(event) {\n    if (event.elements.length !== 1) {\n      return;\n    }\n    const selectionKeyboardEvent = event.browserEvent;\n    const preserveFocus = typeof selectionKeyboardEvent.preserveFocus === \"boolean\" ? selectionKeyboardEvent.preserveFocus : true;\n    const pinned = typeof selectionKeyboardEvent.pinned === \"boolean\" ? selectionKeyboardEvent.pinned : !preserveFocus;\n    const sideBySide = false;\n    this._open(this.getSelectedElement(), preserveFocus, pinned, sideBySide, event.browserEvent);\n  }\n  onPointer(element, browserEvent) {\n    if (!this.openOnSingleClick) {\n      return;\n    }\n    const isDoubleClick = browserEvent.detail === 2;\n    if (isDoubleClick) {\n      return;\n    }\n    const isMiddleClick = browserEvent.button === 1;\n    const preserveFocus = true;\n    const pinned = isMiddleClick;\n    const sideBySide = browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey;\n    this._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n  }\n  onMouseDblClick(element, browserEvent) {\n    if (!browserEvent) {\n      return;\n    }\n    const target = browserEvent.target;\n    const onTwistie = target.classList.contains(\"monaco-tl-twistie\") || target.classList.contains(\"monaco-icon-label\") \u0026\u0026 target.classList.contains(\"folder-icon\") \u0026\u0026 browserEvent.offsetX \u003c 16;\n    if (onTwistie) {\n      return;\n    }\n    const preserveFocus = false;\n    const pinned = true;\n    const sideBySide = browserEvent.ctrlKey || browserEvent.metaKey || browserEvent.altKey;\n    this._open(element, preserveFocus, pinned, sideBySide, browserEvent);\n  }\n  _open(element, preserveFocus, pinned, sideBySide, browserEvent) {\n    if (!element) {\n      return;\n    }\n    this._onDidOpen.fire({\n      editorOptions: {\n        preserveFocus,\n        pinned,\n        revealIfVisible: true\n      },\n      sideBySide,\n      element,\n      browserEvent\n    });\n  }\n};\nvar ListResourceNavigator = class extends ResourceNavigator {\n  constructor(widget, options2) {\n    super(widget, options2);\n    this.widget = widget;\n  }\n  getSelectedElement() {\n    return this.widget.getSelectedElements()[0];\n  }\n};\nvar TableResourceNavigator = class extends ResourceNavigator {\n  constructor(widget, options2) {\n    super(widget, options2);\n  }\n  getSelectedElement() {\n    return this.widget.getSelectedElements()[0];\n  }\n};\nvar TreeResourceNavigator = class extends ResourceNavigator {\n  constructor(widget, options2) {\n    super(widget, options2);\n  }\n  getSelectedElement() {\n    return this.widget.getSelection()[0] ?? void 0;\n  }\n};\nfunction createKeyboardNavigationEventFilter(keybindingService) {\n  let inMultiChord = false;\n  return (event) =\u003e {\n    if (event.toKeyCodeChord().isModifierKey()) {\n      return false;\n    }\n    if (inMultiChord) {\n      inMultiChord = false;\n      return false;\n    }\n    const result = keybindingService.softDispatch(event, event.target);\n    if (result.kind === 1) {\n      inMultiChord = true;\n      return false;\n    }\n    inMultiChord = false;\n    return result.kind === 0;\n  };\n}\nvar WorkbenchObjectTree = class WorkbenchObjectTree2 extends ObjectTree {\n  get onDidOpen() {\n    return this.internals.onDidOpen;\n  }\n  constructor(user, container, delegate, renderers, options2, instantiationService, contextKeyService, listService, configurationService) {\n    const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options2);\n    super(user, container, delegate, renderers, treeOptions);\n    this.disposables.add(disposable);\n    this.internals = new WorkbenchTreeInternals(this, options2, getTypeNavigationMode, options2.overrideStyles, contextKeyService, listService, configurationService);\n    this.disposables.add(this.internals);\n  }\n  updateOptions(options2) {\n    super.updateOptions(options2);\n    this.internals.updateOptions(options2);\n  }\n};\nWorkbenchObjectTree = __decorate69([\n  __param63(5, IInstantiationService),\n  __param63(6, IContextKeyService),\n  __param63(7, IListService),\n  __param63(8, IConfigurationService)\n], WorkbenchObjectTree);\nvar WorkbenchCompressibleObjectTree = class WorkbenchCompressibleObjectTree2 extends CompressibleObjectTree {\n  constructor(user, container, delegate, renderers, options2, instantiationService, contextKeyService, listService, configurationService) {\n    const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options2);\n    super(user, container, delegate, renderers, treeOptions);\n    this.disposables.add(disposable);\n    this.internals = new WorkbenchTreeInternals(this, options2, getTypeNavigationMode, options2.overrideStyles, contextKeyService, listService, configurationService);\n    this.disposables.add(this.internals);\n  }\n  updateOptions(options2 = {}) {\n    super.updateOptions(options2);\n    if (options2.overrideStyles) {\n      this.internals.updateStyleOverrides(options2.overrideStyles);\n    }\n    this.internals.updateOptions(options2);\n  }\n};\nWorkbenchCompressibleObjectTree = __decorate69([\n  __param63(5, IInstantiationService),\n  __param63(6, IContextKeyService),\n  __param63(7, IListService),\n  __param63(8, IConfigurationService)\n], WorkbenchCompressibleObjectTree);\nvar WorkbenchDataTree = class WorkbenchDataTree2 extends DataTree {\n  constructor(user, container, delegate, renderers, dataSource, options2, instantiationService, contextKeyService, listService, configurationService) {\n    const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options2);\n    super(user, container, delegate, renderers, dataSource, treeOptions);\n    this.disposables.add(disposable);\n    this.internals = new WorkbenchTreeInternals(this, options2, getTypeNavigationMode, options2.overrideStyles, contextKeyService, listService, configurationService);\n    this.disposables.add(this.internals);\n  }\n  updateOptions(options2 = {}) {\n    super.updateOptions(options2);\n    if (options2.overrideStyles !== void 0) {\n      this.internals.updateStyleOverrides(options2.overrideStyles);\n    }\n    this.internals.updateOptions(options2);\n  }\n};\nWorkbenchDataTree = __decorate69([\n  __param63(6, IInstantiationService),\n  __param63(7, IContextKeyService),\n  __param63(8, IListService),\n  __param63(9, IConfigurationService)\n], WorkbenchDataTree);\nvar WorkbenchAsyncDataTree = class WorkbenchAsyncDataTree2 extends AsyncDataTree {\n  get onDidOpen() {\n    return this.internals.onDidOpen;\n  }\n  constructor(user, container, delegate, renderers, dataSource, options2, instantiationService, contextKeyService, listService, configurationService) {\n    const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options2);\n    super(user, container, delegate, renderers, dataSource, treeOptions);\n    this.disposables.add(disposable);\n    this.internals = new WorkbenchTreeInternals(this, options2, getTypeNavigationMode, options2.overrideStyles, contextKeyService, listService, configurationService);\n    this.disposables.add(this.internals);\n  }\n  updateOptions(options2 = {}) {\n    super.updateOptions(options2);\n    if (options2.overrideStyles) {\n      this.internals.updateStyleOverrides(options2.overrideStyles);\n    }\n    this.internals.updateOptions(options2);\n  }\n};\nWorkbenchAsyncDataTree = __decorate69([\n  __param63(6, IInstantiationService),\n  __param63(7, IContextKeyService),\n  __param63(8, IListService),\n  __param63(9, IConfigurationService)\n], WorkbenchAsyncDataTree);\nvar WorkbenchCompressibleAsyncDataTree = class WorkbenchCompressibleAsyncDataTree2 extends CompressibleAsyncDataTree {\n  constructor(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, options2, instantiationService, contextKeyService, listService, configurationService) {\n    const { options: treeOptions, getTypeNavigationMode, disposable } = instantiationService.invokeFunction(workbenchTreeDataPreamble, options2);\n    super(user, container, virtualDelegate, compressionDelegate, renderers, dataSource, treeOptions);\n    this.disposables.add(disposable);\n    this.internals = new WorkbenchTreeInternals(this, options2, getTypeNavigationMode, options2.overrideStyles, contextKeyService, listService, configurationService);\n    this.disposables.add(this.internals);\n  }\n  updateOptions(options2) {\n    super.updateOptions(options2);\n    this.internals.updateOptions(options2);\n  }\n};\nWorkbenchCompressibleAsyncDataTree = __decorate69([\n  __param63(7, IInstantiationService),\n  __param63(8, IContextKeyService),\n  __param63(9, IListService),\n  __param63(10, IConfigurationService)\n], WorkbenchCompressibleAsyncDataTree);\nfunction getDefaultTreeFindMode(configurationService) {\n  const value = configurationService.getValue(defaultFindModeSettingKey);\n  if (value === \"highlight\") {\n    return TreeFindMode.Highlight;\n  } else if (value === \"filter\") {\n    return TreeFindMode.Filter;\n  }\n  const deprecatedValue = configurationService.getValue(keyboardNavigationSettingKey);\n  if (deprecatedValue === \"simple\" || deprecatedValue === \"highlight\") {\n    return TreeFindMode.Highlight;\n  } else if (deprecatedValue === \"filter\") {\n    return TreeFindMode.Filter;\n  }\n  return void 0;\n}\nfunction getDefaultTreeFindMatchType(configurationService) {\n  const value = configurationService.getValue(defaultFindMatchTypeSettingKey);\n  if (value === \"fuzzy\") {\n    return TreeFindMatchType.Fuzzy;\n  } else if (value === \"contiguous\") {\n    return TreeFindMatchType.Contiguous;\n  }\n  return void 0;\n}\nfunction workbenchTreeDataPreamble(accessor, options2) {\n  const configurationService = accessor.get(IConfigurationService);\n  const contextViewService = accessor.get(IContextViewService);\n  const contextKeyService = accessor.get(IContextKeyService);\n  const instantiationService = accessor.get(IInstantiationService);\n  const getTypeNavigationMode = () =\u003e {\n    const modeString = contextKeyService.getContextKeyValue(WorkbenchListTypeNavigationModeKey);\n    if (modeString === \"automatic\") {\n      return TypeNavigationMode.Automatic;\n    } else if (modeString === \"trigger\") {\n      return TypeNavigationMode.Trigger;\n    }\n    const modeBoolean = contextKeyService.getContextKeyValue(WorkbenchListAutomaticKeyboardNavigationLegacyKey);\n    if (modeBoolean === false) {\n      return TypeNavigationMode.Trigger;\n    }\n    const configString = configurationService.getValue(typeNavigationModeSettingKey);\n    if (configString === \"automatic\") {\n      return TypeNavigationMode.Automatic;\n    } else if (configString === \"trigger\") {\n      return TypeNavigationMode.Trigger;\n    }\n    return void 0;\n  };\n  const horizontalScrolling = options2.horizontalScrolling !== void 0 ? options2.horizontalScrolling : Boolean(configurationService.getValue(horizontalScrollingKey));\n  const [workbenchListOptions, disposable] = instantiationService.invokeFunction(toWorkbenchListOptions, options2);\n  const paddingBottom = options2.paddingBottom;\n  const renderIndentGuides = options2.renderIndentGuides !== void 0 ? options2.renderIndentGuides : configurationService.getValue(treeRenderIndentGuidesKey);\n  return {\n    getTypeNavigationMode,\n    disposable,\n    // eslint-disable-next-line local/code-no-dangerous-type-assertions\n    options: {\n      // ...options, // TODO@Joao why is this not splatted here?\n      keyboardSupport: false,\n      ...workbenchListOptions,\n      indent: typeof configurationService.getValue(treeIndentKey) === \"number\" ? configurationService.getValue(treeIndentKey) : void 0,\n      renderIndentGuides,\n      smoothScrolling: Boolean(configurationService.getValue(listSmoothScrolling)),\n      defaultFindMode: getDefaultTreeFindMode(configurationService),\n      defaultFindMatchType: getDefaultTreeFindMatchType(configurationService),\n      horizontalScrolling,\n      scrollByPage: Boolean(configurationService.getValue(scrollByPageKey)),\n      paddingBottom,\n      hideTwistiesOfChildlessElements: options2.hideTwistiesOfChildlessElements,\n      expandOnlyOnTwistieClick: options2.expandOnlyOnTwistieClick ?? configurationService.getValue(treeExpandMode) === \"doubleClick\",\n      contextViewProvider: contextViewService,\n      findWidgetStyles: defaultFindWidgetStyles,\n      enableStickyScroll: Boolean(configurationService.getValue(treeStickyScroll)),\n      stickyScrollMaxItemCount: Number(configurationService.getValue(treeStickyScrollMaxElements))\n    }\n  };\n}\nvar WorkbenchTreeInternals = class WorkbenchTreeInternals2 {\n  get onDidOpen() {\n    return this.navigator.onDidOpen;\n  }\n  constructor(tree, options2, getTypeNavigationMode, overrideStyles2, contextKeyService, listService, configurationService) {\n    this.tree = tree;\n    this.disposables = [];\n    this.contextKeyService = createScopedContextKeyService(contextKeyService, tree);\n    this.disposables.push(createScrollObserver(this.contextKeyService, tree));\n    this.listSupportsMultiSelect = WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService);\n    this.listSupportsMultiSelect.set(options2.multipleSelectionSupport !== false);\n    const listSelectionNavigation = WorkbenchListSelectionNavigation.bindTo(this.contextKeyService);\n    listSelectionNavigation.set(Boolean(options2.selectionNavigation));\n    this.listSupportFindWidget = WorkbenchListSupportsFind.bindTo(this.contextKeyService);\n    this.listSupportFindWidget.set(options2.findWidgetEnabled ?? true);\n    this.hasSelectionOrFocus = WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService);\n    this.hasDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService);\n    this.hasMultiSelection = WorkbenchListMultiSelection.bindTo(this.contextKeyService);\n    this.treeElementCanCollapse = WorkbenchTreeElementCanCollapse.bindTo(this.contextKeyService);\n    this.treeElementHasParent = WorkbenchTreeElementHasParent.bindTo(this.contextKeyService);\n    this.treeElementCanExpand = WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService);\n    this.treeElementHasChild = WorkbenchTreeElementHasChild.bindTo(this.contextKeyService);\n    this.treeFindOpen = WorkbenchTreeFindOpen.bindTo(this.contextKeyService);\n    this.treeStickyScrollFocused = WorkbenchTreeStickyScrollFocused.bindTo(this.contextKeyService);\n    this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n    this.updateStyleOverrides(overrideStyles2);\n    const updateCollapseContextKeys = () =\u003e {\n      const focus = tree.getFocus()[0];\n      if (!focus) {\n        return;\n      }\n      const node = tree.getNode(focus);\n      this.treeElementCanCollapse.set(node.collapsible \u0026\u0026 !node.collapsed);\n      this.treeElementHasParent.set(!!tree.getParentElement(focus));\n      this.treeElementCanExpand.set(node.collapsible \u0026\u0026 node.collapsed);\n      this.treeElementHasChild.set(!!tree.getFirstElementChild(focus));\n    };\n    const interestingContextKeys = /* @__PURE__ */ new Set();\n    interestingContextKeys.add(WorkbenchListTypeNavigationModeKey);\n    interestingContextKeys.add(WorkbenchListAutomaticKeyboardNavigationLegacyKey);\n    this.disposables.push(this.contextKeyService, listService.register(tree), tree.onDidChangeSelection(() =\u003e {\n      const selection = tree.getSelection();\n      const focus = tree.getFocus();\n      this.contextKeyService.bufferChangeEvents(() =\u003e {\n        this.hasSelectionOrFocus.set(selection.length \u003e 0 || focus.length \u003e 0);\n        this.hasMultiSelection.set(selection.length \u003e 1);\n        this.hasDoubleSelection.set(selection.length === 2);\n      });\n    }), tree.onDidChangeFocus(() =\u003e {\n      const selection = tree.getSelection();\n      const focus = tree.getFocus();\n      this.hasSelectionOrFocus.set(selection.length \u003e 0 || focus.length \u003e 0);\n      updateCollapseContextKeys();\n    }), tree.onDidChangeCollapseState(updateCollapseContextKeys), tree.onDidChangeModel(updateCollapseContextKeys), tree.onDidChangeFindOpenState((enabled) =\u003e this.treeFindOpen.set(enabled)), tree.onDidChangeStickyScrollFocused((focused) =\u003e this.treeStickyScrollFocused.set(focused)), configurationService.onDidChangeConfiguration((e) =\u003e {\n      let newOptions = {};\n      if (e.affectsConfiguration(multiSelectModifierSettingKey)) {\n        this._useAltAsMultipleSelectionModifier = useAltAsMultipleSelectionModifier(configurationService);\n      }\n      if (e.affectsConfiguration(treeIndentKey)) {\n        const indent = configurationService.getValue(treeIndentKey);\n        newOptions = { ...newOptions, indent };\n      }\n      if (e.affectsConfiguration(treeRenderIndentGuidesKey) \u0026\u0026 options2.renderIndentGuides === void 0) {\n        const renderIndentGuides = configurationService.getValue(treeRenderIndentGuidesKey);\n        newOptions = { ...newOptions, renderIndentGuides };\n      }\n      if (e.affectsConfiguration(listSmoothScrolling)) {\n        const smoothScrolling = Boolean(configurationService.getValue(listSmoothScrolling));\n        newOptions = { ...newOptions, smoothScrolling };\n      }\n      if (e.affectsConfiguration(defaultFindModeSettingKey) || e.affectsConfiguration(keyboardNavigationSettingKey)) {\n        const defaultFindMode = getDefaultTreeFindMode(configurationService);\n        newOptions = { ...newOptions, defaultFindMode };\n      }\n      if (e.affectsConfiguration(typeNavigationModeSettingKey) || e.affectsConfiguration(keyboardNavigationSettingKey)) {\n        const typeNavigationMode = getTypeNavigationMode();\n        newOptions = { ...newOptions, typeNavigationMode };\n      }\n      if (e.affectsConfiguration(defaultFindMatchTypeSettingKey)) {\n        const defaultFindMatchType = getDefaultTreeFindMatchType(configurationService);\n        newOptions = { ...newOptions, defaultFindMatchType };\n      }\n      if (e.affectsConfiguration(horizontalScrollingKey) \u0026\u0026 options2.horizontalScrolling === void 0) {\n        const horizontalScrolling = Boolean(configurationService.getValue(horizontalScrollingKey));\n        newOptions = { ...newOptions, horizontalScrolling };\n      }\n      if (e.affectsConfiguration(scrollByPageKey)) {\n        const scrollByPage = Boolean(configurationService.getValue(scrollByPageKey));\n        newOptions = { ...newOptions, scrollByPage };\n      }\n      if (e.affectsConfiguration(treeExpandMode) \u0026\u0026 options2.expandOnlyOnTwistieClick === void 0) {\n        newOptions = { ...newOptions, expandOnlyOnTwistieClick: configurationService.getValue(treeExpandMode) === \"doubleClick\" };\n      }\n      if (e.affectsConfiguration(treeStickyScroll)) {\n        const enableStickyScroll = configurationService.getValue(treeStickyScroll);\n        newOptions = { ...newOptions, enableStickyScroll };\n      }\n      if (e.affectsConfiguration(treeStickyScrollMaxElements)) {\n        const stickyScrollMaxItemCount = Math.max(1, configurationService.getValue(treeStickyScrollMaxElements));\n        newOptions = { ...newOptions, stickyScrollMaxItemCount };\n      }\n      if (e.affectsConfiguration(mouseWheelScrollSensitivityKey)) {\n        const mouseWheelScrollSensitivity = configurationService.getValue(mouseWheelScrollSensitivityKey);\n        newOptions = { ...newOptions, mouseWheelScrollSensitivity };\n      }\n      if (e.affectsConfiguration(fastScrollSensitivityKey)) {\n        const fastScrollSensitivity = configurationService.getValue(fastScrollSensitivityKey);\n        newOptions = { ...newOptions, fastScrollSensitivity };\n      }\n      if (Object.keys(newOptions).length \u003e 0) {\n        tree.updateOptions(newOptions);\n      }\n    }), this.contextKeyService.onDidChangeContext((e) =\u003e {\n      if (e.affectsSome(interestingContextKeys)) {\n        tree.updateOptions({ typeNavigationMode: getTypeNavigationMode() });\n      }\n    }));\n    this.navigator = new TreeResourceNavigator(tree, { configurationService, ...options2 });\n    this.disposables.push(this.navigator);\n  }\n  updateOptions(options2) {\n    if (options2.multipleSelectionSupport !== void 0) {\n      this.listSupportsMultiSelect.set(!!options2.multipleSelectionSupport);\n    }\n  }\n  updateStyleOverrides(overrideStyles2) {\n    this.tree.style(overrideStyles2 ? getListStyles(overrideStyles2) : defaultListStyles);\n  }\n  dispose() {\n    this.disposables = dispose(this.disposables);\n  }\n};\nWorkbenchTreeInternals = __decorate69([\n  __param63(4, IContextKeyService),\n  __param63(5, IListService),\n  __param63(6, IConfigurationService)\n], WorkbenchTreeInternals);\nvar configurationRegistry3 = Registry.as(Extensions4.Configuration);\nconfigurationRegistry3.registerConfiguration({\n  id: \"workbench\",\n  order: 7,\n  title: localize(1686, \"Workbench\"),\n  type: \"object\",\n  properties: {\n    [multiSelectModifierSettingKey]: {\n      type: \"string\",\n      enum: [\"ctrlCmd\", \"alt\"],\n      markdownEnumDescriptions: [\n        localize(1687, \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n        localize(1688, \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n      ],\n      default: \"ctrlCmd\",\n      description: localize(1689, \"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.\")\n    },\n    [openModeSettingKey]: {\n      type: \"string\",\n      enum: [\"singleClick\", \"doubleClick\"],\n      default: \"singleClick\",\n      description: localize(1690, \"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.\")\n    },\n    [horizontalScrollingKey]: {\n      type: \"boolean\",\n      default: false,\n      description: localize(1691, \"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.\")\n    },\n    [scrollByPageKey]: {\n      type: \"boolean\",\n      default: false,\n      description: localize(1692, \"Controls whether clicks in the scrollbar scroll page by page.\")\n    },\n    [treeIndentKey]: {\n      type: \"number\",\n      default: 8,\n      minimum: 4,\n      maximum: 40,\n      description: localize(1693, \"Controls tree indentation in pixels.\")\n    },\n    [treeRenderIndentGuidesKey]: {\n      type: \"string\",\n      enum: [\"none\", \"onHover\", \"always\"],\n      default: \"onHover\",\n      description: localize(1694, \"Controls whether the tree should render indent guides.\")\n    },\n    [listSmoothScrolling]: {\n      type: \"boolean\",\n      default: false,\n      description: localize(1695, \"Controls whether lists and trees have smooth scrolling.\")\n    },\n    [mouseWheelScrollSensitivityKey]: {\n      type: \"number\",\n      default: 1,\n      markdownDescription: localize(1696, \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\")\n    },\n    [fastScrollSensitivityKey]: {\n      type: \"number\",\n      default: 5,\n      markdownDescription: localize(1697, \"Scrolling speed multiplier when pressing `Alt`.\")\n    },\n    [defaultFindModeSettingKey]: {\n      type: \"string\",\n      enum: [\"highlight\", \"filter\"],\n      enumDescriptions: [\n        localize(1698, \"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements.\"),\n        localize(1699, \"Filter elements when searching.\")\n      ],\n      default: \"highlight\",\n      description: localize(1700, \"Controls the default find mode for lists and trees in the workbench.\")\n    },\n    [keyboardNavigationSettingKey]: {\n      type: \"string\",\n      enum: [\"simple\", \"highlight\", \"filter\"],\n      enumDescriptions: [\n        localize(1701, \"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes.\"),\n        localize(1702, \"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements.\"),\n        localize(1703, \"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.\")\n      ],\n      default: \"highlight\",\n      description: localize(1704, \"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter.\"),\n      deprecated: true,\n      deprecationMessage: localize(1705, \"Please use 'workbench.list.defaultFindMode' and\t'workbench.list.typeNavigationMode' instead.\")\n    },\n    [defaultFindMatchTypeSettingKey]: {\n      type: \"string\",\n      enum: [\"fuzzy\", \"contiguous\"],\n      enumDescriptions: [\n        localize(1706, \"Use fuzzy matching when searching.\"),\n        localize(1707, \"Use contiguous matching when searching.\")\n      ],\n      default: \"fuzzy\",\n      description: localize(1708, \"Controls the type of matching used when searching lists and trees in the workbench.\")\n    },\n    [treeExpandMode]: {\n      type: \"string\",\n      enum: [\"singleClick\", \"doubleClick\"],\n      default: \"singleClick\",\n      description: localize(1709, \"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.\")\n    },\n    [treeStickyScroll]: {\n      type: \"boolean\",\n      default: true,\n      description: localize(1710, \"Controls whether sticky scrolling is enabled in trees.\")\n    },\n    [treeStickyScrollMaxElements]: {\n      type: \"number\",\n      minimum: 1,\n      default: 7,\n      markdownDescription: localize(1711, \"Controls the number of sticky elements displayed in the tree when {0} is enabled.\", \"`#workbench.tree.enableStickyScroll#`\")\n    },\n    [typeNavigationModeSettingKey]: {\n      type: \"string\",\n      enum: [\"automatic\", \"trigger\"],\n      default: \"automatic\",\n      markdownDescription: localize(1712, \"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.\")\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_map();\ninit_resources();\ninit_strings();\ninit_range();\ninit_nls();\nvar OneReference = class {\n  constructor(isProviderFirst, parent, link2, _rangeCallback) {\n    this.isProviderFirst = isProviderFirst;\n    this.parent = parent;\n    this.link = link2;\n    this._rangeCallback = _rangeCallback;\n    this.id = defaultGenerator.nextId();\n  }\n  get uri() {\n    return this.link.uri;\n  }\n  get range() {\n    return this._range ?? this.link.targetSelectionRange ?? this.link.range;\n  }\n  set range(value) {\n    this._range = value;\n    this._rangeCallback(this);\n  }\n  get ariaMessage() {\n    const preview = this.parent.getPreview(this)?.preview(this.range);\n    if (!preview) {\n      return localize(1079, \"in {0} on line {1} at column {2}\", basename2(this.uri), this.range.startLineNumber, this.range.startColumn);\n    } else {\n      return localize(1080, \"{0} in {1} on line {2} at column {3}\", preview.value, basename2(this.uri), this.range.startLineNumber, this.range.startColumn);\n    }\n  }\n};\nvar FilePreview = class {\n  constructor(_modelReference) {\n    this._modelReference = _modelReference;\n  }\n  dispose() {\n    this._modelReference.dispose();\n  }\n  preview(range2, n2 = 8) {\n    const model = this._modelReference.object.textEditorModel;\n    if (!model) {\n      return void 0;\n    }\n    const { startLineNumber, startColumn, endLineNumber, endColumn } = range2;\n    const word = model.getWordUntilPosition({ lineNumber: startLineNumber, column: startColumn - n2 });\n    const beforeRange = new Range(startLineNumber, word.startColumn, startLineNumber, startColumn);\n    const afterRange = new Range(\n      endLineNumber,\n      endColumn,\n      endLineNumber,\n      1073741824\n      /* Constants.MAX_SAFE_SMALL_INTEGER */\n    );\n    const before = model.getValueInRange(beforeRange).replace(/^\\s+/, \"\");\n    const inside = model.getValueInRange(range2);\n    const after2 = model.getValueInRange(afterRange).replace(/\\s+$/, \"\");\n    return {\n      value: before + inside + after2,\n      highlight: { start: before.length, end: before.length + inside.length }\n    };\n  }\n};\nvar FileReferences = class {\n  constructor(parent, uri) {\n    this.parent = parent;\n    this.uri = uri;\n    this.children = [];\n    this._previews = new ResourceMap();\n  }\n  dispose() {\n    dispose(this._previews.values());\n    this._previews.clear();\n  }\n  getPreview(child) {\n    return this._previews.get(child.uri);\n  }\n  get ariaMessage() {\n    const len = this.children.length;\n    if (len === 1) {\n      return localize(1081, \"1 symbol in {0}, full path {1}\", basename2(this.uri), this.uri.fsPath);\n    } else {\n      return localize(1082, \"{0} symbols in {1}, full path {2}\", len, basename2(this.uri), this.uri.fsPath);\n    }\n  }\n  async resolve(textModelResolverService) {\n    if (this._previews.size !== 0) {\n      return this;\n    }\n    for (const child of this.children) {\n      if (this._previews.has(child.uri)) {\n        continue;\n      }\n      try {\n        const ref = await textModelResolverService.createModelReference(child.uri);\n        this._previews.set(child.uri, new FilePreview(ref));\n      } catch (err) {\n        onUnexpectedError(err);\n      }\n    }\n    return this;\n  }\n};\nvar ReferencesModel = class _ReferencesModel {\n  constructor(links, title) {\n    this.groups = [];\n    this.references = [];\n    this._onDidChangeReferenceRange = new Emitter();\n    this.onDidChangeReferenceRange = this._onDidChangeReferenceRange.event;\n    this._links = links;\n    this._title = title;\n    const [providersFirst] = links;\n    links.sort(_ReferencesModel._compareReferences);\n    let current;\n    for (const link2 of links) {\n      if (!current || !extUri.isEqual(current.uri, link2.uri, true)) {\n        current = new FileReferences(this, link2.uri);\n        this.groups.push(current);\n      }\n      if (current.children.length === 0 || _ReferencesModel._compareReferences(link2, current.children[current.children.length - 1]) !== 0) {\n        const oneRef = new OneReference(providersFirst === link2, current, link2, (ref) =\u003e this._onDidChangeReferenceRange.fire(ref));\n        this.references.push(oneRef);\n        current.children.push(oneRef);\n      }\n    }\n  }\n  dispose() {\n    dispose(this.groups);\n    this._onDidChangeReferenceRange.dispose();\n    this.groups.length = 0;\n  }\n  clone() {\n    return new _ReferencesModel(this._links, this._title);\n  }\n  get title() {\n    return this._title;\n  }\n  get isEmpty() {\n    return this.groups.length === 0;\n  }\n  get ariaMessage() {\n    if (this.isEmpty) {\n      return localize(1083, \"No results found\");\n    } else if (this.references.length === 1) {\n      return localize(1084, \"Found 1 symbol in {0}\", this.references[0].uri.fsPath);\n    } else if (this.groups.length === 1) {\n      return localize(1085, \"Found {0} symbols in {1}\", this.references.length, this.groups[0].uri.fsPath);\n    } else {\n      return localize(1086, \"Found {0} symbols in {1} files\", this.references.length, this.groups.length);\n    }\n  }\n  nextOrPreviousReference(reference, next) {\n    const { parent } = reference;\n    let idx = parent.children.indexOf(reference);\n    const childCount = parent.children.length;\n    const groupCount = parent.parent.groups.length;\n    if (groupCount === 1 || next \u0026\u0026 idx + 1 \u003c childCount || !next \u0026\u0026 idx \u003e 0) {\n      if (next) {\n        idx = (idx + 1) % childCount;\n      } else {\n        idx = (idx + childCount - 1) % childCount;\n      }\n      return parent.children[idx];\n    }\n    idx = parent.parent.groups.indexOf(parent);\n    if (next) {\n      idx = (idx + 1) % groupCount;\n      return parent.parent.groups[idx].children[0];\n    } else {\n      idx = (idx + groupCount - 1) % groupCount;\n      return parent.parent.groups[idx].children[parent.parent.groups[idx].children.length - 1];\n    }\n  }\n  nearestReference(resource, position) {\n    const nearest = this.references.map((ref, idx) =\u003e {\n      return {\n        idx,\n        prefixLen: commonPrefixLength(ref.uri.toString(), resource.toString()),\n        offsetDist: Math.abs(ref.range.startLineNumber - position.lineNumber) * 100 + Math.abs(ref.range.startColumn - position.column)\n      };\n    }).sort((a, b) =\u003e {\n      if (a.prefixLen \u003e b.prefixLen) {\n        return -1;\n      } else if (a.prefixLen \u003c b.prefixLen) {\n        return 1;\n      } else if (a.offsetDist \u003c b.offsetDist) {\n        return -1;\n      } else if (a.offsetDist \u003e b.offsetDist) {\n        return 1;\n      } else {\n        return 0;\n      }\n    })[0];\n    if (nearest) {\n      return this.references[nearest.idx];\n    }\n    return void 0;\n  }\n  referenceAt(resource, position) {\n    for (const ref of this.references) {\n      if (ref.uri.toString() === resource.toString()) {\n        if (Range.containsPosition(ref.range, position)) {\n          return ref;\n        }\n      }\n    }\n    return void 0;\n  }\n  firstReference() {\n    for (const ref of this.references) {\n      if (ref.isProviderFirst) {\n        return ref;\n      }\n    }\n    return this.references[0];\n  }\n  static _compareReferences(a, b) {\n    return extUri.compare(a.uri, b.uri) || Range.compareRangesUsingStarts(a.range, b.range);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js\ninit_dom();\ninit_color();\ninit_event();\ninit_lifecycle();\ninit_network();\ninit_resources();\ninit_range();\ninit_textModel();\ninit_modesRegistry();\ninit_resolverService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/countBadge/countBadge.js\ninit_dom();\ninit_strings();\ninit_lifecycle();\nvar CountBadge = class extends Disposable {\n  constructor(container, options2, styles) {\n    super();\n    this.options = options2;\n    this.styles = styles;\n    this.count = 0;\n    this.hover = this._register(new MutableDisposable());\n    this.element = append(container, $(\".monaco-count-badge\"));\n    this._register(toDisposable(() =\u003e container.removeChild(this.element)));\n    this.countFormat = this.options.countFormat || \"{0}\";\n    this.titleFormat = this.options.titleFormat || \"\";\n    this.setCount(this.options.count || 0);\n    this.updateHover();\n  }\n  setCount(count) {\n    this.count = count;\n    this.render();\n  }\n  setTitleFormat(titleFormat) {\n    this.titleFormat = titleFormat;\n    this.updateHover();\n    this.render();\n  }\n  updateHover() {\n    if (this.titleFormat !== \"\" \u0026\u0026 !this.hover.value) {\n      this.hover.value = getBaseLayerHoverDelegate().setupDelayedHoverAtMouse(this.element, () =\u003e ({ content: format(this.titleFormat, this.count), appearance: { compact: true } }));\n    } else if (this.titleFormat === \"\" \u0026\u0026 this.hover.value) {\n      this.hover.value = void 0;\n    }\n  }\n  render() {\n    this.element.textContent = format(this.countFormat, this.count);\n    this.element.style.backgroundColor = this.styles.badgeBackground ?? \"\";\n    this.element.style.color = this.styles.badgeForeground ?? \"\";\n    if (this.styles.badgeBorder) {\n      this.element.style.border = `1px solid ${this.styles.badgeBorder}`;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/highlightedlabel/highlightedLabel.js\ninit_dom();\ninit_iconLabels2();\ninit_lifecycle();\ninit_objects();\nvar HighlightedLabel = class _HighlightedLabel extends Disposable {\n  /**\n   * Create a new {@link HighlightedLabel}.\n   *\n   * @param container The parent container to append to.\n   */\n  constructor(container, options2) {\n    super();\n    this.options = options2;\n    this.text = \"\";\n    this.title = \"\";\n    this.highlights = [];\n    this.didEverRender = false;\n    this.supportIcons = options2?.supportIcons ?? false;\n    this.domNode = append(container, $(\"span.monaco-highlighted-label\"));\n  }\n  /**\n   * The label's DOM node.\n   */\n  get element() {\n    return this.domNode;\n  }\n  /**\n   * Set the label and highlights.\n   *\n   * @param text The label to display.\n   * @param highlights The ranges to highlight.\n   * @param title An optional title for the hover tooltip.\n   * @param escapeNewLines Whether to escape new lines.\n   * @returns\n   */\n  set(text2, highlights = [], title = \"\", escapeNewLines) {\n    if (!text2) {\n      text2 = \"\";\n    }\n    if (escapeNewLines) {\n      text2 = _HighlightedLabel.escapeNewLines(text2, highlights);\n    }\n    if (this.didEverRender \u0026\u0026 this.text === text2 \u0026\u0026 this.title === title \u0026\u0026 equals2(this.highlights, highlights)) {\n      return;\n    }\n    this.text = text2;\n    this.title = title;\n    this.highlights = highlights;\n    this.render();\n  }\n  render() {\n    const children = [];\n    let pos = 0;\n    for (const highlight of this.highlights) {\n      if (highlight.end === highlight.start) {\n        continue;\n      }\n      if (pos \u003c highlight.start) {\n        const substring2 = this.text.substring(pos, highlight.start);\n        if (this.supportIcons) {\n          children.push(...renderLabelWithIcons(substring2));\n        } else {\n          children.push(substring2);\n        }\n        pos = highlight.start;\n      }\n      const substring = this.text.substring(pos, highlight.end);\n      const element = $(\"span.highlight\", void 0, ...this.supportIcons ? renderLabelWithIcons(substring) : [substring]);\n      if (highlight.extraClasses) {\n        element.classList.add(...highlight.extraClasses);\n      }\n      children.push(element);\n      pos = highlight.end;\n    }\n    if (pos \u003c this.text.length) {\n      const substring = this.text.substring(pos);\n      if (this.supportIcons) {\n        children.push(...renderLabelWithIcons(substring));\n      } else {\n        children.push(substring);\n      }\n    }\n    reset(this.domNode, ...children);\n    if (!this.customHover \u0026\u0026 this.title !== \"\") {\n      const hoverDelegate = this.options?.hoverDelegate ?? getDefaultHoverDelegate(\"mouse\");\n      this.customHover = this._register(getBaseLayerHoverDelegate().setupManagedHover(hoverDelegate, this.domNode, this.title));\n    } else if (this.customHover) {\n      this.customHover.update(this.title);\n    }\n    this.didEverRender = true;\n  }\n  static escapeNewLines(text2, highlights) {\n    let total = 0;\n    let extra = 0;\n    return text2.replace(/\\r\\n|\\r|\\n/g, (match2, offset) =\u003e {\n      extra = match2 === \"\\r\\n\" ? -1 : 0;\n      offset += total;\n      for (const highlight of highlights) {\n        if (highlight.end \u003c= offset) {\n          continue;\n        }\n        if (highlight.start \u003e= offset) {\n          highlight.start += extra;\n        }\n        if (highlight.end \u003e= offset) {\n          highlight.end += extra;\n        }\n      }\n      total += extra;\n      return \"\\u23CE\";\n    });\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/iconLabel/iconLabel.js\ninit_dom();\ninit_lifecycle();\ninit_objects();\nvar FastLabelNode = class {\n  constructor(_element) {\n    this._element = _element;\n  }\n  get element() {\n    return this._element;\n  }\n  set textContent(content) {\n    if (this.disposed || content === this._textContent) {\n      return;\n    }\n    this._textContent = content;\n    this._element.textContent = content;\n  }\n  set classNames(classNames2) {\n    if (this.disposed || equals2(classNames2, this._classNames)) {\n      return;\n    }\n    this._classNames = classNames2;\n    this._element.classList.value = \"\";\n    this._element.classList.add(...classNames2);\n  }\n  set empty(empty2) {\n    if (this.disposed || empty2 === this._empty) {\n      return;\n    }\n    this._empty = empty2;\n    this._element.style.marginLeft = empty2 ? \"0\" : \"\";\n  }\n  dispose() {\n    this.disposed = true;\n  }\n};\nvar IconLabel = class extends Disposable {\n  constructor(container, options2) {\n    super();\n    this.customHovers = /* @__PURE__ */ new Map();\n    this.creationOptions = options2;\n    this.domNode = this._register(new FastLabelNode(append(container, $(\".monaco-icon-label\"))));\n    this.labelContainer = append(this.domNode.element, $(\".monaco-icon-label-container\"));\n    this.nameContainer = append(this.labelContainer, $(\"span.monaco-icon-name-container\"));\n    if (options2?.supportHighlights || options2?.supportIcons) {\n      this.nameNode = this._register(new LabelWithHighlights(this.nameContainer, !!options2.supportIcons));\n    } else {\n      this.nameNode = new Label(this.nameContainer);\n    }\n    this.hoverDelegate = options2?.hoverDelegate ?? getDefaultHoverDelegate(\"mouse\");\n  }\n  get element() {\n    return this.domNode.element;\n  }\n  setLabel(label, description, options2) {\n    const labelClasses = [\"monaco-icon-label\"];\n    const containerClasses = [\"monaco-icon-label-container\"];\n    let ariaLabel = \"\";\n    if (options2) {\n      if (options2.extraClasses) {\n        labelClasses.push(...options2.extraClasses);\n      }\n      if (options2.italic) {\n        labelClasses.push(\"italic\");\n      }\n      if (options2.strikethrough) {\n        labelClasses.push(\"strikethrough\");\n      }\n      if (options2.disabledCommand) {\n        containerClasses.push(\"disabled\");\n      }\n      if (options2.title) {\n        if (typeof options2.title === \"string\") {\n          ariaLabel += options2.title;\n        } else {\n          ariaLabel += label;\n        }\n      }\n    }\n    const existingIconNode = this.domNode.element.querySelector(\".monaco-icon-label-iconpath\");\n    if (options2?.iconPath) {\n      let iconNode;\n      if (!existingIconNode || !isHTMLElement(existingIconNode)) {\n        iconNode = $(\".monaco-icon-label-iconpath\");\n        this.domNode.element.prepend(iconNode);\n      } else {\n        iconNode = existingIconNode;\n      }\n      iconNode.style.backgroundImage = asCSSUrl(options2?.iconPath);\n      iconNode.style.backgroundRepeat = \"no-repeat\";\n      iconNode.style.backgroundPosition = \"center\";\n      iconNode.style.backgroundSize = \"contain\";\n    } else if (existingIconNode) {\n      existingIconNode.remove();\n    }\n    this.domNode.classNames = labelClasses;\n    this.domNode.element.setAttribute(\"aria-label\", ariaLabel);\n    this.labelContainer.classList.value = \"\";\n    this.labelContainer.classList.add(...containerClasses);\n    this.setupHover(options2?.descriptionTitle ? this.labelContainer : this.element, options2?.title);\n    this.nameNode.setLabel(label, options2);\n    if (description || this.descriptionNode) {\n      const descriptionNode = this.getOrCreateDescriptionNode();\n      if (descriptionNode instanceof HighlightedLabel) {\n        descriptionNode.set(description || \"\", options2 ? options2.descriptionMatches : void 0, void 0, options2?.labelEscapeNewLines);\n        this.setupHover(descriptionNode.element, options2?.descriptionTitle);\n      } else {\n        descriptionNode.textContent = description \u0026\u0026 options2?.labelEscapeNewLines ? HighlightedLabel.escapeNewLines(description, []) : description || \"\";\n        this.setupHover(descriptionNode.element, options2?.descriptionTitle || \"\");\n        descriptionNode.empty = !description;\n      }\n    }\n    if (options2?.suffix || this.suffixNode) {\n      const suffixNode = this.getOrCreateSuffixNode();\n      suffixNode.textContent = options2?.suffix ?? \"\";\n    }\n  }\n  setupHover(htmlElement, tooltip) {\n    const previousCustomHover = this.customHovers.get(htmlElement);\n    if (previousCustomHover) {\n      previousCustomHover.dispose();\n      this.customHovers.delete(htmlElement);\n    }\n    if (!tooltip) {\n      htmlElement.removeAttribute(\"title\");\n      return;\n    }\n    let hoverTarget = htmlElement;\n    if (this.creationOptions?.hoverTargetOverride) {\n      if (!isAncestor(htmlElement, this.creationOptions.hoverTargetOverride)) {\n        throw new Error(\"hoverTargetOverrride must be an ancestor of the htmlElement\");\n      }\n      hoverTarget = this.creationOptions.hoverTargetOverride;\n    }\n    const hoverDisposable = getBaseLayerHoverDelegate().setupManagedHover(this.hoverDelegate, hoverTarget, tooltip);\n    if (hoverDisposable) {\n      this.customHovers.set(htmlElement, hoverDisposable);\n    }\n  }\n  dispose() {\n    super.dispose();\n    for (const disposable of this.customHovers.values()) {\n      disposable.dispose();\n    }\n    this.customHovers.clear();\n  }\n  getOrCreateSuffixNode() {\n    if (!this.suffixNode) {\n      const suffixContainer = this._register(new FastLabelNode(after(this.nameContainer, $(\"span.monaco-icon-suffix-container\"))));\n      this.suffixNode = this._register(new FastLabelNode(append(suffixContainer.element, $(\"span.label-suffix\"))));\n    }\n    return this.suffixNode;\n  }\n  getOrCreateDescriptionNode() {\n    if (!this.descriptionNode) {\n      const descriptionContainer = this._register(new FastLabelNode(append(this.labelContainer, $(\"span.monaco-icon-description-container\"))));\n      if (this.creationOptions?.supportDescriptionHighlights) {\n        this.descriptionNode = this._register(new HighlightedLabel(append(descriptionContainer.element, $(\"span.label-description\")), { supportIcons: !!this.creationOptions.supportIcons }));\n      } else {\n        this.descriptionNode = this._register(new FastLabelNode(append(descriptionContainer.element, $(\"span.label-description\"))));\n      }\n    }\n    return this.descriptionNode;\n  }\n};\nvar Label = class {\n  constructor(container) {\n    this.container = container;\n    this.label = void 0;\n    this.singleLabel = void 0;\n  }\n  setLabel(label, options2) {\n    if (this.label === label \u0026\u0026 equals2(this.options, options2)) {\n      return;\n    }\n    this.label = label;\n    this.options = options2;\n    if (typeof label === \"string\") {\n      if (!this.singleLabel) {\n        this.container.textContent = \"\";\n        this.container.classList.remove(\"multiple\");\n        this.singleLabel = append(this.container, $(\"a.label-name\", { id: options2?.domId }));\n      }\n      this.singleLabel.textContent = label;\n    } else {\n      this.container.textContent = \"\";\n      this.container.classList.add(\"multiple\");\n      this.singleLabel = void 0;\n      for (let i2 = 0; i2 \u003c label.length; i2++) {\n        const l = label[i2];\n        const id = options2?.domId \u0026\u0026 `${options2?.domId}_${i2}`;\n        append(this.container, $(\"a.label-name\", { id, \"data-icon-label-count\": label.length, \"data-icon-label-index\": i2, \"role\": \"treeitem\" }, l));\n        if (i2 \u003c label.length - 1) {\n          append(this.container, $(\"span.label-separator\", void 0, options2?.separator || \"/\"));\n        }\n      }\n    }\n  }\n};\nfunction splitMatches(labels, separator2, matches) {\n  if (!matches) {\n    return void 0;\n  }\n  let labelStart = 0;\n  return labels.map((label) =\u003e {\n    const labelRange = { start: labelStart, end: labelStart + label.length };\n    const result = matches.map((match2) =\u003e Range2.intersect(labelRange, match2)).filter((range2) =\u003e !Range2.isEmpty(range2)).map(({ start, end }) =\u003e ({ start: start - labelStart, end: end - labelStart }));\n    labelStart = labelRange.end + separator2.length;\n    return result;\n  });\n}\nvar LabelWithHighlights = class extends Disposable {\n  constructor(container, supportIcons) {\n    super();\n    this.container = container;\n    this.supportIcons = supportIcons;\n    this.label = void 0;\n    this.singleLabel = void 0;\n  }\n  setLabel(label, options2) {\n    if (this.label === label \u0026\u0026 equals2(this.options, options2)) {\n      return;\n    }\n    this.label = label;\n    this.options = options2;\n    if (typeof label === \"string\") {\n      if (!this.singleLabel) {\n        this.container.textContent = \"\";\n        this.container.classList.remove(\"multiple\");\n        this.singleLabel = this._register(new HighlightedLabel(append(this.container, $(\"a.label-name\", { id: options2?.domId })), { supportIcons: this.supportIcons }));\n      }\n      this.singleLabel.set(label, options2?.matches, void 0, options2?.labelEscapeNewLines);\n    } else {\n      this.container.textContent = \"\";\n      this.container.classList.add(\"multiple\");\n      this.singleLabel = void 0;\n      const separator2 = options2?.separator || \"/\";\n      const matches = splitMatches(label, separator2, options2?.matches);\n      for (let i2 = 0; i2 \u003c label.length; i2++) {\n        const l = label[i2];\n        const m = matches ? matches[i2] : void 0;\n        const id = options2?.domId \u0026\u0026 `${options2?.domId}_${i2}`;\n        const name = $(\"a.label-name\", { id, \"data-icon-label-count\": label.length, \"data-icon-label-index\": i2, \"role\": \"treeitem\" });\n        const highlightedLabel = this._register(new HighlightedLabel(append(this.container, name), { supportIcons: this.supportIcons }));\n        highlightedLabel.set(l, m, void 0, options2?.labelEscapeNewLines);\n        if (i2 \u003c label.length - 1) {\n          append(name, $(\"span.label-separator\", void 0, separator2));\n        }\n      }\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js\ninit_filters();\ninit_lifecycle();\ninit_resources();\ninit_resolverService();\ninit_nls();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/label/common/label.js\ninit_instantiation();\nvar ILabelService = createDecorator(\"labelService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js\nvar __decorate70 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param64 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar FileReferencesRenderer_1;\nvar DataSource = class DataSource2 {\n  constructor(_resolverService) {\n    this._resolverService = _resolverService;\n  }\n  hasChildren(element) {\n    if (element instanceof ReferencesModel) {\n      return true;\n    }\n    if (element instanceof FileReferences) {\n      return true;\n    }\n    return false;\n  }\n  getChildren(element) {\n    if (element instanceof ReferencesModel) {\n      return element.groups;\n    }\n    if (element instanceof FileReferences) {\n      return element.resolve(this._resolverService).then((val) =\u003e {\n        return val.children;\n      });\n    }\n    throw new Error(\"bad tree\");\n  }\n};\nDataSource = __decorate70([\n  __param64(0, ITextModelService)\n], DataSource);\nvar Delegate = class {\n  getHeight() {\n    return 23;\n  }\n  getTemplateId(element) {\n    if (element instanceof FileReferences) {\n      return FileReferencesRenderer.id;\n    } else {\n      return OneReferenceRenderer.id;\n    }\n  }\n};\nvar StringRepresentationProvider = class StringRepresentationProvider2 {\n  constructor(_keybindingService) {\n    this._keybindingService = _keybindingService;\n  }\n  getKeyboardNavigationLabel(element) {\n    if (element instanceof OneReference) {\n      const parts = element.parent.getPreview(element)?.preview(element.range);\n      if (parts) {\n        return parts.value;\n      }\n    }\n    return basename2(element.uri);\n  }\n};\nStringRepresentationProvider = __decorate70([\n  __param64(0, IKeybindingService)\n], StringRepresentationProvider);\nvar IdentityProvider = class {\n  getId(element) {\n    return element instanceof OneReference ? element.id : element.uri;\n  }\n};\nvar FileReferencesTemplate = class FileReferencesTemplate2 extends Disposable {\n  constructor(container, _labelService) {\n    super();\n    this._labelService = _labelService;\n    const parent = document.createElement(\"div\");\n    parent.classList.add(\"reference-file\");\n    this.file = this._register(new IconLabel(parent, { supportHighlights: true }));\n    this.badge = this._register(new CountBadge(append(parent, $(\".count\")), {}, defaultCountBadgeStyles));\n    container.appendChild(parent);\n  }\n  set(element, matches) {\n    const parent = dirname2(element.uri);\n    this.file.setLabel(this._labelService.getUriBasenameLabel(element.uri), this._labelService.getUriLabel(parent, { relative: true }), { title: this._labelService.getUriLabel(element.uri), matches });\n    const len = element.children.length;\n    this.badge.setCount(len);\n    if (len \u003e 1) {\n      this.badge.setTitleFormat(localize(1073, \"{0} references\", len));\n    } else {\n      this.badge.setTitleFormat(localize(1074, \"{0} reference\", len));\n    }\n  }\n};\nFileReferencesTemplate = __decorate70([\n  __param64(1, ILabelService)\n], FileReferencesTemplate);\nvar FileReferencesRenderer = class FileReferencesRenderer2 {\n  static {\n    FileReferencesRenderer_1 = this;\n  }\n  static {\n    this.id = \"FileReferencesRenderer\";\n  }\n  constructor(_instantiationService) {\n    this._instantiationService = _instantiationService;\n    this.templateId = FileReferencesRenderer_1.id;\n  }\n  renderTemplate(container) {\n    return this._instantiationService.createInstance(FileReferencesTemplate, container);\n  }\n  renderElement(node, index, template) {\n    template.set(node.element, createMatches(node.filterData));\n  }\n  disposeTemplate(templateData) {\n    templateData.dispose();\n  }\n};\nFileReferencesRenderer = FileReferencesRenderer_1 = __decorate70([\n  __param64(0, IInstantiationService)\n], FileReferencesRenderer);\nvar OneReferenceTemplate = class extends Disposable {\n  constructor(container) {\n    super();\n    this.label = this._register(new HighlightedLabel(container));\n  }\n  set(element, score3) {\n    const preview = element.parent.getPreview(element)?.preview(element.range);\n    if (!preview || !preview.value) {\n      this.label.set(`${basename2(element.uri)}:${element.range.startLineNumber + 1}:${element.range.startColumn + 1}`);\n    } else {\n      const { value, highlight } = preview;\n      if (score3 \u0026\u0026 !FuzzyScore.isDefault(score3)) {\n        this.label.element.classList.toggle(\"referenceMatch\", false);\n        this.label.set(value, createMatches(score3));\n      } else {\n        this.label.element.classList.toggle(\"referenceMatch\", true);\n        this.label.set(value, [highlight]);\n      }\n    }\n  }\n};\nvar OneReferenceRenderer = class _OneReferenceRenderer {\n  constructor() {\n    this.templateId = _OneReferenceRenderer.id;\n  }\n  static {\n    this.id = \"OneReferenceRenderer\";\n  }\n  renderTemplate(container) {\n    return new OneReferenceTemplate(container);\n  }\n  renderElement(node, index, templateData) {\n    templateData.set(node.element, node.filterData);\n  }\n  disposeTemplate(templateData) {\n    templateData.dispose();\n  }\n};\nvar AccessibilityProvider = class {\n  getWidgetAriaLabel() {\n    return localize(1075, \"References\");\n  }\n  getAriaLabel(element) {\n    return element.ariaMessage;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js\ninit_nls();\ninit_instantiation();\ninit_themeService();\nvar __decorate71 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param65 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DecorationsManager = class _DecorationsManager {\n  static {\n    this.DecorationOptions = ModelDecorationOptions.register({\n      description: \"reference-decoration\",\n      stickiness: 1,\n      className: \"reference-decoration\"\n    });\n  }\n  constructor(_editor, _model) {\n    this._editor = _editor;\n    this._model = _model;\n    this._decorations = /* @__PURE__ */ new Map();\n    this._decorationIgnoreSet = /* @__PURE__ */ new Set();\n    this._callOnDispose = new DisposableStore();\n    this._callOnModelChange = new DisposableStore();\n    this._callOnDispose.add(this._editor.onDidChangeModel(() =\u003e this._onModelChanged()));\n    this._onModelChanged();\n  }\n  dispose() {\n    this._callOnModelChange.dispose();\n    this._callOnDispose.dispose();\n    this.removeDecorations();\n  }\n  _onModelChanged() {\n    this._callOnModelChange.clear();\n    const model = this._editor.getModel();\n    if (!model) {\n      return;\n    }\n    for (const ref of this._model.references) {\n      if (ref.uri.toString() === model.uri.toString()) {\n        this._addDecorations(ref.parent);\n        return;\n      }\n    }\n  }\n  _addDecorations(reference) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(() =\u003e this._onDecorationChanged()));\n    const newDecorations = [];\n    const newDecorationsActualIndex = [];\n    for (let i2 = 0, len = reference.children.length; i2 \u003c len; i2++) {\n      const oneReference = reference.children[i2];\n      if (this._decorationIgnoreSet.has(oneReference.id)) {\n        continue;\n      }\n      if (oneReference.uri.toString() !== this._editor.getModel().uri.toString()) {\n        continue;\n      }\n      newDecorations.push({\n        range: oneReference.range,\n        options: _DecorationsManager.DecorationOptions\n      });\n      newDecorationsActualIndex.push(i2);\n    }\n    this._editor.changeDecorations((changeAccessor) =\u003e {\n      const decorations = changeAccessor.deltaDecorations([], newDecorations);\n      for (let i2 = 0; i2 \u003c decorations.length; i2++) {\n        this._decorations.set(decorations[i2], reference.children[newDecorationsActualIndex[i2]]);\n      }\n    });\n  }\n  _onDecorationChanged() {\n    const toRemove = [];\n    const model = this._editor.getModel();\n    if (!model) {\n      return;\n    }\n    for (const [decorationId, reference] of this._decorations) {\n      const newRange = model.getDecorationRange(decorationId);\n      if (!newRange) {\n        continue;\n      }\n      let ignore = false;\n      if (Range.equalsRange(newRange, reference.range)) {\n        continue;\n      }\n      if (Range.spansMultipleLines(newRange)) {\n        ignore = true;\n      } else {\n        const lineLength = reference.range.endColumn - reference.range.startColumn;\n        const newLineLength = newRange.endColumn - newRange.startColumn;\n        if (lineLength !== newLineLength) {\n          ignore = true;\n        }\n      }\n      if (ignore) {\n        this._decorationIgnoreSet.add(reference.id);\n        toRemove.push(decorationId);\n      } else {\n        reference.range = newRange;\n      }\n    }\n    for (let i2 = 0, len = toRemove.length; i2 \u003c len; i2++) {\n      this._decorations.delete(toRemove[i2]);\n    }\n    this._editor.removeDecorations(toRemove);\n  }\n  removeDecorations() {\n    this._editor.removeDecorations([...this._decorations.keys()]);\n    this._decorations.clear();\n  }\n};\nvar LayoutData = class {\n  constructor() {\n    this.ratio = 0.7;\n    this.heightInLines = 18;\n  }\n  static fromJSON(raw) {\n    let ratio;\n    let heightInLines;\n    try {\n      const data = JSON.parse(raw);\n      ratio = data.ratio;\n      heightInLines = data.heightInLines;\n    } catch {\n    }\n    return {\n      ratio: ratio || 0.7,\n      heightInLines: heightInLines || 18\n    };\n  }\n};\nvar ReferencesTree = class extends WorkbenchAsyncDataTree {\n};\nvar ReferencesDragAndDrop = class ReferencesDragAndDrop2 {\n  constructor(labelService) {\n    this.labelService = labelService;\n    this.disposables = new DisposableStore();\n  }\n  getDragURI(element) {\n    if (element instanceof FileReferences) {\n      return element.uri.toString();\n    } else if (element instanceof OneReference) {\n      return withSelection(element.uri, element.range).toString();\n    }\n    return null;\n  }\n  getDragLabel(elements) {\n    if (elements.length === 0) {\n      return void 0;\n    }\n    const labels = elements.map((e) =\u003e this.labelService.getUriBasenameLabel(e.uri));\n    return labels.join(\", \");\n  }\n  onDragStart(data, originalEvent) {\n    if (!originalEvent.dataTransfer) {\n      return;\n    }\n    const elements = data.elements;\n    const resources = elements.map((e) =\u003e this.getDragURI(e)).filter(Boolean);\n    if (resources.length) {\n      originalEvent.dataTransfer.setData(DataTransfers.RESOURCES, JSON.stringify(resources));\n      originalEvent.dataTransfer.setData(DataTransfers.TEXT, resources.join(\"\\n\"));\n    }\n  }\n  onDragOver() {\n    return false;\n  }\n  drop() {\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\nReferencesDragAndDrop = __decorate71([\n  __param65(0, ILabelService)\n], ReferencesDragAndDrop);\nvar ReferenceWidget = class ReferenceWidget2 extends PeekViewWidget {\n  constructor(editor2, _defaultTreeKeyboardSupport, layoutData, themeService, _textModelResolverService, _instantiationService, _peekViewService, _uriLabel, _keybindingService) {\n    super(editor2, { showFrame: false, showArrow: true, isResizeable: true, isAccessible: true, supportOnTitleClick: true }, _instantiationService);\n    this._defaultTreeKeyboardSupport = _defaultTreeKeyboardSupport;\n    this.layoutData = layoutData;\n    this._textModelResolverService = _textModelResolverService;\n    this._instantiationService = _instantiationService;\n    this._peekViewService = _peekViewService;\n    this._uriLabel = _uriLabel;\n    this._keybindingService = _keybindingService;\n    this._disposeOnNewModel = new DisposableStore();\n    this._callOnDispose = new DisposableStore();\n    this._onDidSelectReference = new Emitter();\n    this.onDidSelectReference = this._onDidSelectReference.event;\n    this._dim = new Dimension(0, 0);\n    this._isClosing = false;\n    this._applyTheme(themeService.getColorTheme());\n    this._callOnDispose.add(themeService.onDidColorThemeChange(this._applyTheme.bind(this)));\n    this._peekViewService.addExclusiveWidget(editor2, this);\n    this.create();\n  }\n  get isClosing() {\n    return this._isClosing;\n  }\n  dispose() {\n    this._isClosing = true;\n    this.setModel(void 0);\n    this._callOnDispose.dispose();\n    this._disposeOnNewModel.dispose();\n    dispose(this._preview);\n    dispose(this._previewNotAvailableMessage);\n    dispose(this._tree);\n    dispose(this._previewModelReference);\n    this._splitView.dispose();\n    super.dispose();\n  }\n  _applyTheme(theme) {\n    const borderColor = theme.getColor(peekViewBorder) || Color.transparent;\n    this.style({\n      arrowColor: borderColor,\n      frameColor: borderColor,\n      headerBackgroundColor: theme.getColor(peekViewTitleBackground) || Color.transparent,\n      primaryHeadingColor: theme.getColor(peekViewTitleForeground),\n      secondaryHeadingColor: theme.getColor(peekViewTitleInfoForeground)\n    });\n  }\n  show(where) {\n    super.show(where, this.layoutData.heightInLines || 18);\n  }\n  focusOnReferenceTree() {\n    this._tree.domFocus();\n  }\n  focusOnPreviewEditor() {\n    this._preview.focus();\n  }\n  isPreviewEditorFocused() {\n    return this._preview.hasTextFocus();\n  }\n  _onTitleClick(e) {\n    if (this._preview \u0026\u0026 this._preview.getModel()) {\n      this._onDidSelectReference.fire({\n        element: this._getFocusedReference(),\n        kind: e.ctrlKey || e.metaKey || e.altKey ? \"side\" : \"open\",\n        source: \"title\"\n      });\n    }\n  }\n  _fillBody(containerElement) {\n    this.setCssClass(\"reference-zone-widget\");\n    this._messageContainer = append(containerElement, $(\"div.messages\"));\n    hide(this._messageContainer);\n    this._splitView = new SplitView(containerElement, {\n      orientation: 1\n      /* Orientation.HORIZONTAL */\n    });\n    this._previewContainer = append(containerElement, $(\"div.preview.inline\"));\n    const options2 = {\n      scrollBeyondLastLine: false,\n      scrollbar: {\n        verticalScrollbarSize: 14,\n        horizontal: \"auto\",\n        useShadows: true,\n        verticalHasArrows: false,\n        horizontalHasArrows: false,\n        alwaysConsumeMouseWheel: true\n      },\n      overviewRulerLanes: 2,\n      fixedOverflowWidgets: true,\n      minimap: {\n        enabled: false\n      }\n    };\n    this._preview = this._instantiationService.createInstance(EmbeddedCodeEditorWidget, this._previewContainer, options2, {}, this.editor);\n    hide(this._previewContainer);\n    this._previewNotAvailableMessage = this._instantiationService.createInstance(TextModel, localize(1076, \"no preview available\"), PLAINTEXT_LANGUAGE_ID, TextModel.DEFAULT_CREATION_OPTIONS, null);\n    this._treeContainer = append(containerElement, $(\"div.ref-tree.inline\"));\n    const treeOptions = {\n      keyboardSupport: this._defaultTreeKeyboardSupport,\n      accessibilityProvider: new AccessibilityProvider(),\n      keyboardNavigationLabelProvider: this._instantiationService.createInstance(StringRepresentationProvider),\n      identityProvider: new IdentityProvider(),\n      openOnSingleClick: true,\n      selectionNavigation: true,\n      overrideStyles: {\n        listBackground: peekViewResultsBackground\n      },\n      dnd: this._instantiationService.createInstance(ReferencesDragAndDrop)\n    };\n    if (this._defaultTreeKeyboardSupport) {\n      this._callOnDispose.add(addStandardDisposableListener(this._treeContainer, \"keydown\", (e) =\u003e {\n        if (e.equals(\n          9\n          /* KeyCode.Escape */\n        )) {\n          this._keybindingService.dispatchEvent(e, e.target);\n          e.stopPropagation();\n        }\n      }, true));\n    }\n    this._tree = this._instantiationService.createInstance(ReferencesTree, \"ReferencesWidget\", this._treeContainer, new Delegate(), [\n      this._instantiationService.createInstance(FileReferencesRenderer),\n      this._instantiationService.createInstance(OneReferenceRenderer)\n    ], this._instantiationService.createInstance(DataSource), treeOptions);\n    this._splitView.addView({\n      onDidChange: Event.None,\n      element: this._previewContainer,\n      minimumSize: 200,\n      maximumSize: Number.MAX_VALUE,\n      layout: (width2) =\u003e {\n        this._preview.layout({ height: this._dim.height, width: width2 });\n      }\n    }, Sizing.Distribute);\n    this._splitView.addView({\n      onDidChange: Event.None,\n      element: this._treeContainer,\n      minimumSize: 100,\n      maximumSize: Number.MAX_VALUE,\n      layout: (width2) =\u003e {\n        this._treeContainer.style.height = `${this._dim.height}px`;\n        this._treeContainer.style.width = `${width2}px`;\n        this._tree.layout(this._dim.height, width2);\n      }\n    }, Sizing.Distribute);\n    this._disposables.add(this._splitView.onDidSashChange(() =\u003e {\n      if (this._dim.width) {\n        this.layoutData.ratio = this._splitView.getViewSize(0) / this._dim.width;\n      }\n    }, void 0));\n    const onEvent = (element, kind) =\u003e {\n      if (element instanceof OneReference) {\n        if (kind === \"show\") {\n          this._revealReference(element, false);\n        }\n        this._onDidSelectReference.fire({ element, kind, source: \"tree\" });\n      }\n    };\n    this._disposables.add(this._tree.onDidOpen((e) =\u003e {\n      if (e.sideBySide) {\n        onEvent(e.element, \"side\");\n      } else if (e.editorOptions.pinned) {\n        onEvent(e.element, \"goto\");\n      } else {\n        onEvent(e.element, \"show\");\n      }\n    }));\n    hide(this._treeContainer);\n  }\n  _onWidth(width2) {\n    if (this._dim) {\n      this._doLayoutBody(this._dim.height, width2);\n    }\n  }\n  _doLayoutBody(heightInPixel, widthInPixel) {\n    super._doLayoutBody(heightInPixel, widthInPixel);\n    this._dim = new Dimension(widthInPixel, heightInPixel);\n    this.layoutData.heightInLines = this._viewZone ? this._viewZone.heightInLines : this.layoutData.heightInLines;\n    this._splitView.layout(widthInPixel);\n    this._splitView.resizeView(0, widthInPixel * this.layoutData.ratio);\n  }\n  setSelection(selection) {\n    return this._revealReference(selection, true).then(() =\u003e {\n      if (!this._model) {\n        return;\n      }\n      this._tree.setSelection([selection]);\n      this._tree.setFocus([selection]);\n    });\n  }\n  setModel(newModel) {\n    this._disposeOnNewModel.clear();\n    this._model = newModel;\n    if (this._model) {\n      return this._onNewModel();\n    }\n    return Promise.resolve();\n  }\n  _onNewModel() {\n    if (!this._model) {\n      return Promise.resolve(void 0);\n    }\n    if (this._model.isEmpty) {\n      this.setTitle(\"\");\n      this._messageContainer.innerText = localize(1077, \"No results\");\n      show(this._messageContainer);\n      return Promise.resolve(void 0);\n    }\n    hide(this._messageContainer);\n    this._decorationsManager = new DecorationsManager(this._preview, this._model);\n    this._disposeOnNewModel.add(this._decorationsManager);\n    this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange((reference) =\u003e this._tree.rerender(reference)));\n    this._disposeOnNewModel.add(this._preview.onMouseDown((e) =\u003e {\n      const { event, target } = e;\n      if (event.detail !== 2) {\n        return;\n      }\n      const element = this._getFocusedReference();\n      if (!element) {\n        return;\n      }\n      this._onDidSelectReference.fire({\n        element: { uri: element.uri, range: target.range },\n        kind: event.ctrlKey || event.metaKey || event.altKey ? \"side\" : \"open\",\n        source: \"editor\"\n      });\n    }));\n    this.container.classList.add(\"results-loaded\");\n    show(this._treeContainer);\n    show(this._previewContainer);\n    this._splitView.layout(this._dim.width);\n    this.focusOnReferenceTree();\n    return this._tree.setInput(this._model.groups.length === 1 ? this._model.groups[0] : this._model);\n  }\n  _getFocusedReference() {\n    const [element] = this._tree.getFocus();\n    if (element instanceof OneReference) {\n      return element;\n    } else if (element instanceof FileReferences) {\n      if (element.children.length \u003e 0) {\n        return element.children[0];\n      }\n    }\n    return void 0;\n  }\n  async revealReference(reference) {\n    await this._revealReference(reference, false);\n    this._onDidSelectReference.fire({ element: reference, kind: \"goto\", source: \"tree\" });\n  }\n  async _revealReference(reference, revealParent) {\n    if (this._revealedReference === reference) {\n      return;\n    }\n    this._revealedReference = reference;\n    if (reference.uri.scheme !== Schemas.inMemory) {\n      this.setTitle(basenameOrAuthority(reference.uri), this._uriLabel.getUriLabel(dirname2(reference.uri)));\n    } else {\n      this.setTitle(localize(1078, \"References\"));\n    }\n    const promise = this._textModelResolverService.createModelReference(reference.uri);\n    if (this._tree.getInput() === reference.parent) {\n      this._tree.reveal(reference);\n    } else {\n      if (revealParent) {\n        this._tree.reveal(reference.parent);\n      }\n      await this._tree.expand(reference.parent);\n      this._tree.reveal(reference);\n    }\n    const ref = await promise;\n    if (!this._model) {\n      ref.dispose();\n      return;\n    }\n    dispose(this._previewModelReference);\n    const model = ref.object;\n    if (model) {\n      const scrollType = this._preview.getModel() === model.textEditorModel ? 0 : 1;\n      const sel = Range.lift(reference.range).collapseToStart();\n      this._previewModelReference = ref;\n      this._preview.setModel(model.textEditorModel);\n      this._preview.setSelection(sel);\n      this._preview.revealRangeInCenter(sel, scrollType);\n    } else {\n      this._preview.setModel(this._previewNotAvailableMessage);\n      ref.dispose();\n    }\n  }\n};\nReferenceWidget = __decorate71([\n  __param65(3, IThemeService),\n  __param65(4, ITextModelService),\n  __param65(5, IInstantiationService),\n  __param65(6, IPeekViewService),\n  __param65(7, ILabelService),\n  __param65(8, IKeybindingService)\n], ReferenceWidget);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js\ninit_editorContextKeys();\nvar __decorate72 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param66 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ReferencesController_1;\nvar ctxReferenceSearchVisible = new RawContextKey(\"referenceSearchVisible\", false, localize(1070, \"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'\"));\nvar ReferencesController = class ReferencesController2 {\n  static {\n    ReferencesController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.referencesController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(ReferencesController_1.ID);\n  }\n  constructor(_defaultTreeKeyboardSupport, _editor, contextKeyService, _editorService, _notificationService, _instantiationService, _storageService, _configurationService) {\n    this._defaultTreeKeyboardSupport = _defaultTreeKeyboardSupport;\n    this._editor = _editor;\n    this._editorService = _editorService;\n    this._notificationService = _notificationService;\n    this._instantiationService = _instantiationService;\n    this._storageService = _storageService;\n    this._configurationService = _configurationService;\n    this._disposables = new DisposableStore();\n    this._requestIdPool = 0;\n    this._ignoreModelChangeEvent = false;\n    this._referenceSearchVisible = ctxReferenceSearchVisible.bindTo(contextKeyService);\n  }\n  dispose() {\n    this._referenceSearchVisible.reset();\n    this._disposables.dispose();\n    this._widget?.dispose();\n    this._model?.dispose();\n    this._widget = void 0;\n    this._model = void 0;\n  }\n  toggleWidget(range2, modelPromise, peekMode) {\n    let widgetPosition;\n    if (this._widget) {\n      widgetPosition = this._widget.position;\n    }\n    this.closeWidget();\n    if (!!widgetPosition \u0026\u0026 range2.containsPosition(widgetPosition)) {\n      return;\n    }\n    this._peekMode = peekMode;\n    this._referenceSearchVisible.set(true);\n    this._disposables.add(this._editor.onDidChangeModelLanguage(() =\u003e {\n      this.closeWidget();\n    }));\n    this._disposables.add(this._editor.onDidChangeModel(() =\u003e {\n      if (!this._ignoreModelChangeEvent) {\n        this.closeWidget();\n      }\n    }));\n    const storageKey = \"peekViewLayout\";\n    const data = LayoutData.fromJSON(this._storageService.get(storageKey, 0, \"{}\"));\n    this._widget = this._instantiationService.createInstance(ReferenceWidget, this._editor, this._defaultTreeKeyboardSupport, data);\n    this._widget.setTitle(localize(1071, \"Loading...\"));\n    this._widget.show(range2);\n    this._disposables.add(this._widget.onDidClose(() =\u003e {\n      modelPromise.cancel();\n      if (this._widget) {\n        this._storageService.store(\n          storageKey,\n          JSON.stringify(this._widget.layoutData),\n          0,\n          1\n          /* StorageTarget.MACHINE */\n        );\n        if (!this._widget.isClosing) {\n          this.closeWidget();\n        }\n        this._widget = void 0;\n      } else {\n        this.closeWidget();\n      }\n    }));\n    this._disposables.add(this._widget.onDidSelectReference((event) =\u003e {\n      const { element, kind } = event;\n      if (!element) {\n        return;\n      }\n      switch (kind) {\n        case \"open\":\n          if (event.source !== \"editor\" || !this._configurationService.getValue(\"editor.stablePeek\")) {\n            this.openReference(element, false, false);\n          }\n          break;\n        case \"side\":\n          this.openReference(element, true, false);\n          break;\n        case \"goto\":\n          if (peekMode) {\n            this._gotoReference(element, true);\n          } else {\n            this.openReference(element, false, true);\n          }\n          break;\n      }\n    }));\n    const requestId = ++this._requestIdPool;\n    modelPromise.then((model) =\u003e {\n      if (requestId !== this._requestIdPool || !this._widget) {\n        model.dispose();\n        return void 0;\n      }\n      this._model?.dispose();\n      this._model = model;\n      return this._widget.setModel(this._model).then(() =\u003e {\n        if (this._widget \u0026\u0026 this._model \u0026\u0026 this._editor.hasModel()) {\n          if (!this._model.isEmpty) {\n            this._widget.setMetaTitle(localize(1072, \"{0} ({1})\", this._model.title, this._model.references.length));\n          } else {\n            this._widget.setMetaTitle(\"\");\n          }\n          const uri = this._editor.getModel().uri;\n          const pos = new Position(range2.startLineNumber, range2.startColumn);\n          const selection = this._model.nearestReference(uri, pos);\n          if (selection) {\n            return this._widget.setSelection(selection).then(() =\u003e {\n              if (this._widget \u0026\u0026 this._editor.getOption(\n                98\n                /* EditorOption.peekWidgetDefaultFocus */\n              ) === \"editor\") {\n                this._widget.focusOnPreviewEditor();\n              }\n            });\n          }\n        }\n        return void 0;\n      });\n    }, (error) =\u003e {\n      this._notificationService.error(error);\n    });\n  }\n  changeFocusBetweenPreviewAndReferences() {\n    if (!this._widget) {\n      return;\n    }\n    if (this._widget.isPreviewEditorFocused()) {\n      this._widget.focusOnReferenceTree();\n    } else {\n      this._widget.focusOnPreviewEditor();\n    }\n  }\n  async goToNextOrPreviousReference(fwd) {\n    if (!this._editor.hasModel() || !this._model || !this._widget) {\n      return;\n    }\n    const currentPosition = this._widget.position;\n    if (!currentPosition) {\n      return;\n    }\n    const source = this._model.nearestReference(this._editor.getModel().uri, currentPosition);\n    if (!source) {\n      return;\n    }\n    const target = this._model.nextOrPreviousReference(source, fwd);\n    const editorFocus = this._editor.hasTextFocus();\n    const previewEditorFocus = this._widget.isPreviewEditorFocused();\n    await this._widget.setSelection(target);\n    await this._gotoReference(target, false);\n    if (editorFocus) {\n      this._editor.focus();\n    } else if (this._widget \u0026\u0026 previewEditorFocus) {\n      this._widget.focusOnPreviewEditor();\n    }\n  }\n  async revealReference(reference) {\n    if (!this._editor.hasModel() || !this._model || !this._widget) {\n      return;\n    }\n    await this._widget.revealReference(reference);\n  }\n  closeWidget(focusEditor = true) {\n    this._widget?.dispose();\n    this._model?.dispose();\n    this._referenceSearchVisible.reset();\n    this._disposables.clear();\n    this._widget = void 0;\n    this._model = void 0;\n    if (focusEditor) {\n      this._editor.focus();\n    }\n    this._requestIdPool += 1;\n  }\n  _gotoReference(ref, pinned) {\n    this._widget?.hide();\n    this._ignoreModelChangeEvent = true;\n    const range2 = Range.lift(ref.range).collapseToStart();\n    return this._editorService.openCodeEditor({\n      resource: ref.uri,\n      options: { selection: range2, selectionSource: \"code.jump\", pinned }\n    }, this._editor).then((openedEditor) =\u003e {\n      this._ignoreModelChangeEvent = false;\n      if (!openedEditor || !this._widget) {\n        this.closeWidget();\n        return;\n      }\n      if (this._editor === openedEditor) {\n        this._widget.show(range2);\n        this._widget.focusOnReferenceTree();\n      } else {\n        const other = ReferencesController_1.get(openedEditor);\n        const model = this._model.clone();\n        this.closeWidget();\n        openedEditor.focus();\n        other?.toggleWidget(range2, createCancelablePromise((_) =\u003e Promise.resolve(model)), this._peekMode ?? false);\n      }\n    }, (err) =\u003e {\n      this._ignoreModelChangeEvent = false;\n      onUnexpectedError(err);\n    });\n  }\n  openReference(ref, sideBySide, pinned) {\n    if (!sideBySide) {\n      this.closeWidget();\n    }\n    const { uri, range: range2 } = ref;\n    this._editorService.openCodeEditor({\n      resource: uri,\n      options: { selection: range2, selectionSource: \"code.jump\", pinned }\n    }, this._editor, sideBySide);\n  }\n};\nReferencesController = ReferencesController_1 = __decorate72([\n  __param66(2, IContextKeyService),\n  __param66(3, ICodeEditorService),\n  __param66(4, INotificationService),\n  __param66(5, IInstantiationService),\n  __param66(6, IStorageService),\n  __param66(7, IConfigurationService)\n], ReferencesController);\nfunction withController(accessor, fn) {\n  const outerEditor = getOuterEditor(accessor);\n  if (!outerEditor) {\n    return;\n  }\n  const controller = ReferencesController.get(outerEditor);\n  if (controller) {\n    fn(controller);\n  }\n}\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n  id: \"togglePeekWidgetFocus\",\n  weight: 100,\n  primary: KeyChord(\n    2048 | 41,\n    60\n    /* KeyCode.F2 */\n  ),\n  when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n  handler(accessor) {\n    withController(accessor, (controller) =\u003e {\n      controller.changeFocusBetweenPreviewAndReferences();\n    });\n  }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n  id: \"goToNextReference\",\n  weight: 100 - 10,\n  primary: 62,\n  secondary: [\n    70\n    /* KeyCode.F12 */\n  ],\n  when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n  handler(accessor) {\n    withController(accessor, (controller) =\u003e {\n      controller.goToNextOrPreviousReference(true);\n    });\n  }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n  id: \"goToPreviousReference\",\n  weight: 100 - 10,\n  primary: 1024 | 62,\n  secondary: [\n    1024 | 70\n    /* KeyCode.F12 */\n  ],\n  when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n  handler(accessor) {\n    withController(accessor, (controller) =\u003e {\n      controller.goToNextOrPreviousReference(false);\n    });\n  }\n});\nCommandsRegistry.registerCommandAlias(\"goToNextReferenceFromEmbeddedEditor\", \"goToNextReference\");\nCommandsRegistry.registerCommandAlias(\"goToPreviousReferenceFromEmbeddedEditor\", \"goToPreviousReference\");\nCommandsRegistry.registerCommandAlias(\"closeReferenceSearchEditor\", \"closeReferenceSearch\");\nCommandsRegistry.registerCommand(\"closeReferenceSearch\", (accessor) =\u003e withController(accessor, (controller) =\u003e controller.closeWidget()));\nKeybindingsRegistry.registerKeybindingRule({\n  id: \"closeReferenceSearch\",\n  weight: 100 - 101,\n  primary: 9,\n  secondary: [\n    1024 | 9\n    /* KeyCode.Escape */\n  ],\n  when: ContextKeyExpr.and(PeekContext.inPeekEditor, ContextKeyExpr.not(\"config.editor.stablePeek\"))\n});\nKeybindingsRegistry.registerKeybindingRule({\n  id: \"closeReferenceSearch\",\n  weight: 200 + 50,\n  primary: 9,\n  secondary: [\n    1024 | 9\n    /* KeyCode.Escape */\n  ],\n  when: ContextKeyExpr.and(ctxReferenceSearchVisible, ContextKeyExpr.not(\"config.editor.stablePeek\"), ContextKeyExpr.or(EditorContextKeys.editorTextFocus, InputFocusedContext.negate()))\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n  id: \"revealReference\",\n  weight: 200,\n  primary: 3,\n  mac: {\n    primary: 3,\n    secondary: [\n      2048 | 18\n      /* KeyCode.DownArrow */\n    ]\n  },\n  when: ContextKeyExpr.and(ctxReferenceSearchVisible, WorkbenchListFocusContextKey, WorkbenchTreeElementCanCollapse.negate(), WorkbenchTreeElementCanExpand.negate()),\n  handler(accessor) {\n    const listService = accessor.get(IListService);\n    const focus = listService.lastFocusedList?.getFocus();\n    if (Array.isArray(focus) \u0026\u0026 focus[0] instanceof OneReference) {\n      withController(accessor, (controller) =\u003e controller.revealReference(focus[0]));\n    }\n  }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n  id: \"openReferenceToSide\",\n  weight: 100,\n  primary: 2048 | 3,\n  mac: {\n    primary: 256 | 3\n    /* KeyCode.Enter */\n  },\n  when: ContextKeyExpr.and(ctxReferenceSearchVisible, WorkbenchListFocusContextKey, WorkbenchTreeElementCanCollapse.negate(), WorkbenchTreeElementCanExpand.negate()),\n  handler(accessor) {\n    const listService = accessor.get(IListService);\n    const focus = listService.lastFocusedList?.getFocus();\n    if (Array.isArray(focus) \u0026\u0026 focus[0] instanceof OneReference) {\n      withController(accessor, (controller) =\u003e controller.openReference(focus[0], true, true));\n    }\n  }\n});\nCommandsRegistry.registerCommand(\"openReference\", (accessor) =\u003e {\n  const listService = accessor.get(IListService);\n  const focus = listService.lastFocusedList?.getFocus();\n  if (Array.isArray(focus) \u0026\u0026 focus[0] instanceof OneReference) {\n    withController(accessor, (controller) =\u003e controller.openReference(focus[0], false, true));\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js\ninit_event();\ninit_lifecycle();\ninit_resources();\ninit_editorExtensions();\ninit_codeEditorService();\ninit_range();\ninit_nls();\ninit_contextkey();\ninit_extensions();\ninit_instantiation();\ninit_keybindingsRegistry();\nvar __decorate73 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param67 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ctxHasSymbols = new RawContextKey(\"hasSymbols\", false, localize(1087, \"Whether there are symbol locations that can be navigated via keyboard-only.\"));\nvar ISymbolNavigationService = createDecorator(\"ISymbolNavigationService\");\nvar SymbolNavigationService = class SymbolNavigationService2 {\n  constructor(contextKeyService, _editorService, _notificationService, _keybindingService) {\n    this._editorService = _editorService;\n    this._notificationService = _notificationService;\n    this._keybindingService = _keybindingService;\n    this._currentModel = void 0;\n    this._currentIdx = -1;\n    this._ignoreEditorChange = false;\n    this._ctxHasSymbols = ctxHasSymbols.bindTo(contextKeyService);\n  }\n  reset() {\n    this._ctxHasSymbols.reset();\n    this._currentState?.dispose();\n    this._currentMessage?.close();\n    this._currentModel = void 0;\n    this._currentIdx = -1;\n  }\n  put(anchor) {\n    const refModel = anchor.parent.parent;\n    if (refModel.references.length \u003c= 1) {\n      this.reset();\n      return;\n    }\n    this._currentModel = refModel;\n    this._currentIdx = refModel.references.indexOf(anchor);\n    this._ctxHasSymbols.set(true);\n    this._showMessage();\n    const editorState = new EditorState2(this._editorService);\n    const listener = editorState.onDidChange((_) =\u003e {\n      if (this._ignoreEditorChange) {\n        return;\n      }\n      const editor2 = this._editorService.getActiveCodeEditor();\n      if (!editor2) {\n        return;\n      }\n      const model = editor2.getModel();\n      const position = editor2.getPosition();\n      if (!model || !position) {\n        return;\n      }\n      let seenUri = false;\n      let seenPosition = false;\n      for (const reference of refModel.references) {\n        if (isEqual(reference.uri, model.uri)) {\n          seenUri = true;\n          seenPosition = seenPosition || Range.containsPosition(reference.range, position);\n        } else if (seenUri) {\n          break;\n        }\n      }\n      if (!seenUri || !seenPosition) {\n        this.reset();\n      }\n    });\n    this._currentState = combinedDisposable(editorState, listener);\n  }\n  revealNext(source) {\n    if (!this._currentModel) {\n      return Promise.resolve();\n    }\n    this._currentIdx += 1;\n    this._currentIdx %= this._currentModel.references.length;\n    const reference = this._currentModel.references[this._currentIdx];\n    this._showMessage();\n    this._ignoreEditorChange = true;\n    return this._editorService.openCodeEditor({\n      resource: reference.uri,\n      options: {\n        selection: Range.collapseToStart(reference.range),\n        selectionRevealType: 3\n        /* TextEditorSelectionRevealType.NearTopIfOutsideViewport */\n      }\n    }, source).finally(() =\u003e {\n      this._ignoreEditorChange = false;\n    });\n  }\n  _showMessage() {\n    this._currentMessage?.close();\n    const kb = this._keybindingService.lookupKeybinding(\"editor.gotoNextSymbolFromResult\");\n    const message = kb ? localize(1088, \"Symbol {0} of {1}, {2} for next\", this._currentIdx + 1, this._currentModel.references.length, kb.getLabel()) : localize(1089, \"Symbol {0} of {1}\", this._currentIdx + 1, this._currentModel.references.length);\n    this._currentMessage = this._notificationService.status(message);\n  }\n};\nSymbolNavigationService = __decorate73([\n  __param67(0, IContextKeyService),\n  __param67(1, ICodeEditorService),\n  __param67(2, INotificationService),\n  __param67(3, IKeybindingService)\n], SymbolNavigationService);\nregisterSingleton(\n  ISymbolNavigationService,\n  SymbolNavigationService,\n  1\n  /* InstantiationType.Delayed */\n);\nregisterEditorCommand(new class extends EditorCommand {\n  constructor() {\n    super({\n      id: \"editor.gotoNextSymbolFromResult\",\n      precondition: ctxHasSymbols,\n      kbOpts: {\n        weight: 100,\n        primary: 70\n        /* KeyCode.F12 */\n      }\n    });\n  }\n  runEditorCommand(accessor, editor2) {\n    return accessor.get(ISymbolNavigationService).revealNext(editor2);\n  }\n}());\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n  id: \"editor.gotoNextSymbolFromResult.cancel\",\n  weight: 100,\n  when: ctxHasSymbols,\n  primary: 9,\n  handler(accessor) {\n    accessor.get(ISymbolNavigationService).reset();\n  }\n});\nvar EditorState2 = class EditorState3 {\n  constructor(editorService) {\n    this._listener = /* @__PURE__ */ new Map();\n    this._disposables = new DisposableStore();\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n    this._disposables.add(editorService.onCodeEditorRemove(this._onDidRemoveEditor, this));\n    this._disposables.add(editorService.onCodeEditorAdd(this._onDidAddEditor, this));\n    editorService.listCodeEditors().forEach(this._onDidAddEditor, this);\n  }\n  dispose() {\n    this._disposables.dispose();\n    this._onDidChange.dispose();\n    dispose(this._listener.values());\n  }\n  _onDidAddEditor(editor2) {\n    this._listener.set(editor2, combinedDisposable(editor2.onDidChangeCursorPosition((_) =\u003e this._onDidChange.fire({ editor: editor2 })), editor2.onDidChangeModelContent((_) =\u003e this._onDidChange.fire({ editor: editor2 }))));\n  }\n  _onDidRemoveEditor(editor2) {\n    this._listener.get(editor2)?.dispose();\n    this._listener.delete(editor2);\n  }\n};\nEditorState2 = __decorate73([\n  __param67(0, ICodeEditorService)\n], EditorState2);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js\ninit_nls();\ninit_actions2();\ninit_commands();\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/goToSymbol.js\ninit_arrays();\ninit_cancellation();\ninit_errors();\ninit_network();\ninit_editorExtensions();\ninit_languageFeatures();\nfunction shouldIncludeLocationLink(sourceModel, loc) {\n  if (loc.uri.scheme === sourceModel.uri.scheme) {\n    return true;\n  }\n  if (matchesSomeScheme(loc.uri, Schemas.walkThroughSnippet, Schemas.vscodeChatCodeBlock, Schemas.vscodeChatCodeCompareBlock)) {\n    return false;\n  }\n  return true;\n}\nasync function getLocationLinks(model, position, registry, recursive, provide) {\n  const provider = registry.ordered(model, recursive);\n  const promises = provider.map((provider2) =\u003e {\n    return Promise.resolve(provide(provider2, model, position)).then(void 0, (err) =\u003e {\n      onUnexpectedExternalError(err);\n      return void 0;\n    });\n  });\n  const values = await Promise.all(promises);\n  return coalesce(values.flat()).filter((loc) =\u003e shouldIncludeLocationLink(model, loc));\n}\nfunction getDefinitionsAtPosition(registry, model, position, recursive, token) {\n  return getLocationLinks(model, position, registry, recursive, (provider, model2, position2) =\u003e {\n    return provider.provideDefinition(model2, position2, token);\n  });\n}\nfunction getDeclarationsAtPosition(registry, model, position, recursive, token) {\n  return getLocationLinks(model, position, registry, recursive, (provider, model2, position2) =\u003e {\n    return provider.provideDeclaration(model2, position2, token);\n  });\n}\nfunction getImplementationsAtPosition(registry, model, position, recursive, token) {\n  return getLocationLinks(model, position, registry, recursive, (provider, model2, position2) =\u003e {\n    return provider.provideImplementation(model2, position2, token);\n  });\n}\nfunction getTypeDefinitionsAtPosition(registry, model, position, recursive, token) {\n  return getLocationLinks(model, position, registry, recursive, (provider, model2, position2) =\u003e {\n    return provider.provideTypeDefinition(model2, position2, token);\n  });\n}\nfunction getReferencesAtPosition(registry, model, position, compact, recursive, token) {\n  return getLocationLinks(model, position, registry, recursive, async (provider, model2, position2) =\u003e {\n    const result = (await provider.provideReferences(model2, position2, { includeDeclaration: true }, token))?.filter((ref) =\u003e shouldIncludeLocationLink(model2, ref));\n    if (!compact || !result || result.length !== 2) {\n      return result;\n    }\n    const resultWithoutDeclaration = (await provider.provideReferences(model2, position2, { includeDeclaration: false }, token))?.filter((ref) =\u003e shouldIncludeLocationLink(model2, ref));\n    if (resultWithoutDeclaration \u0026\u0026 resultWithoutDeclaration.length === 1) {\n      return resultWithoutDeclaration;\n    }\n    return result;\n  });\n}\nasync function _sortedAndDeduped(callback) {\n  const rawLinks = await callback();\n  const model = new ReferencesModel(rawLinks, \"\");\n  const modelLinks = model.references.map((ref) =\u003e ref.link);\n  model.dispose();\n  return modelLinks;\n}\nregisterModelAndPositionCommand(\"_executeDefinitionProvider\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getDefinitionsAtPosition(languageFeaturesService.definitionProvider, model, position, false, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeDefinitionProvider_recursive\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getDefinitionsAtPosition(languageFeaturesService.definitionProvider, model, position, true, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeTypeDefinitionProvider\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getTypeDefinitionsAtPosition(languageFeaturesService.typeDefinitionProvider, model, position, false, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeTypeDefinitionProvider_recursive\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getTypeDefinitionsAtPosition(languageFeaturesService.typeDefinitionProvider, model, position, true, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeDeclarationProvider\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getDeclarationsAtPosition(languageFeaturesService.declarationProvider, model, position, false, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeDeclarationProvider_recursive\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getDeclarationsAtPosition(languageFeaturesService.declarationProvider, model, position, true, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeReferenceProvider\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getReferencesAtPosition(languageFeaturesService.referenceProvider, model, position, false, false, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeReferenceProvider_recursive\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getReferencesAtPosition(languageFeaturesService.referenceProvider, model, position, false, true, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeImplementationProvider\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getImplementationsAtPosition(languageFeaturesService.implementationProvider, model, position, false, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\nregisterModelAndPositionCommand(\"_executeImplementationProvider_recursive\", (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const promise = getImplementationsAtPosition(languageFeaturesService.implementationProvider, model, position, true, CancellationToken.None);\n  return _sortedAndDeduped(() =\u003e promise);\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js\ninit_languageFeatures();\ninit_iterator();\nMenuRegistry.appendMenuItem(MenuId.EditorContext, {\n  submenu: MenuId.EditorContextPeek,\n  title: localize(1030, \"Peek\"),\n  group: \"navigation\",\n  order: 100\n});\nvar SymbolNavigationAnchor = class _SymbolNavigationAnchor {\n  static is(thing) {\n    if (!thing || typeof thing !== \"object\") {\n      return false;\n    }\n    if (thing instanceof _SymbolNavigationAnchor) {\n      return true;\n    }\n    if (Position.isIPosition(thing.position) \u0026\u0026 thing.model) {\n      return true;\n    }\n    return false;\n  }\n  constructor(model, position) {\n    this.model = model;\n    this.position = position;\n  }\n};\nvar SymbolNavigationAction = class _SymbolNavigationAction extends EditorAction2 {\n  static {\n    this._allSymbolNavigationCommands = /* @__PURE__ */ new Map();\n  }\n  static {\n    this._activeAlternativeCommands = /* @__PURE__ */ new Set();\n  }\n  static all() {\n    return _SymbolNavigationAction._allSymbolNavigationCommands.values();\n  }\n  static _patchConfig(opts) {\n    const result = { ...opts, f1: true };\n    if (result.menu) {\n      for (const item of Iterable.wrap(result.menu)) {\n        if (item.id === MenuId.EditorContext || item.id === MenuId.EditorContextPeek) {\n          item.when = ContextKeyExpr.and(opts.precondition, item.when);\n        }\n      }\n    }\n    return result;\n  }\n  constructor(configuration, opts) {\n    super(_SymbolNavigationAction._patchConfig(opts));\n    this.configuration = configuration;\n    _SymbolNavigationAction._allSymbolNavigationCommands.set(opts.id, this);\n  }\n  runEditorCommand(accessor, editor2, arg, range2) {\n    if (!editor2.hasModel()) {\n      return Promise.resolve(void 0);\n    }\n    const notificationService = accessor.get(INotificationService);\n    const editorService = accessor.get(ICodeEditorService);\n    const progressService = accessor.get(IEditorProgressService);\n    const symbolNavService = accessor.get(ISymbolNavigationService);\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const instaService = accessor.get(IInstantiationService);\n    const model = editor2.getModel();\n    const position = editor2.getPosition();\n    const anchor = SymbolNavigationAnchor.is(arg) ? arg : new SymbolNavigationAnchor(model, position);\n    const cts = new EditorStateCancellationTokenSource(\n      editor2,\n      1 | 4\n      /* CodeEditorStateFlag.Position */\n    );\n    const promise = raceCancellation(this._getLocationModel(languageFeaturesService, anchor.model, anchor.position, cts.token), cts.token).then(async (references) =\u003e {\n      if (!references || cts.token.isCancellationRequested) {\n        return;\n      }\n      alert(references.ariaMessage);\n      let altAction;\n      if (references.referenceAt(model.uri, position)) {\n        const altActionId = this._getAlternativeCommand(editor2);\n        if (altActionId !== void 0 \u0026\u0026 !_SymbolNavigationAction._activeAlternativeCommands.has(altActionId) \u0026\u0026 _SymbolNavigationAction._allSymbolNavigationCommands.has(altActionId)) {\n          altAction = _SymbolNavigationAction._allSymbolNavigationCommands.get(altActionId);\n        }\n      }\n      const referenceCount = references.references.length;\n      if (referenceCount === 0) {\n        if (!this.configuration.muteMessage) {\n          const info = model.getWordAtPosition(position);\n          MessageController.get(editor2)?.showMessage(this._getNoResultFoundMessage(info), position);\n        }\n      } else if (referenceCount === 1 \u0026\u0026 altAction) {\n        _SymbolNavigationAction._activeAlternativeCommands.add(this.desc.id);\n        instaService.invokeFunction((accessor2) =\u003e altAction.runEditorCommand(accessor2, editor2, arg, range2).finally(() =\u003e {\n          _SymbolNavigationAction._activeAlternativeCommands.delete(this.desc.id);\n        }));\n      } else {\n        return this._onResult(editorService, symbolNavService, editor2, references, range2);\n      }\n    }, (err) =\u003e {\n      notificationService.error(err);\n    }).finally(() =\u003e {\n      cts.dispose();\n    });\n    progressService.showWhile(promise, 250);\n    return promise;\n  }\n  async _onResult(editorService, symbolNavService, editor2, model, range2) {\n    const gotoLocation = this._getGoToPreference(editor2);\n    if (!(editor2 instanceof EmbeddedCodeEditorWidget) \u0026\u0026 (this.configuration.openInPeek || gotoLocation === \"peek\" \u0026\u0026 model.references.length \u003e 1)) {\n      this._openInPeek(editor2, model, range2);\n    } else {\n      const next = model.firstReference();\n      const peek = model.references.length \u003e 1 \u0026\u0026 gotoLocation === \"gotoAndPeek\";\n      const targetEditor = await this._openReference(editor2, editorService, next, this.configuration.openToSide, !peek);\n      if (peek \u0026\u0026 targetEditor) {\n        this._openInPeek(targetEditor, model, range2);\n      } else {\n        model.dispose();\n      }\n      if (gotoLocation === \"goto\") {\n        symbolNavService.put(next);\n      }\n    }\n  }\n  async _openReference(editor2, editorService, reference, sideBySide, highlight) {\n    let range2 = void 0;\n    if (isLocationLink(reference)) {\n      range2 = reference.targetSelectionRange;\n    }\n    if (!range2) {\n      range2 = reference.range;\n    }\n    if (!range2) {\n      return void 0;\n    }\n    const targetEditor = await editorService.openCodeEditor({\n      resource: reference.uri,\n      options: {\n        selection: Range.collapseToStart(range2),\n        selectionRevealType: 3,\n        selectionSource: \"code.jump\"\n        /* TextEditorSelectionSource.JUMP */\n      }\n    }, editor2, sideBySide);\n    if (!targetEditor) {\n      return void 0;\n    }\n    if (highlight) {\n      const modelNow = targetEditor.getModel();\n      const decorations = targetEditor.createDecorationsCollection([{ range: range2, options: { description: \"symbol-navigate-action-highlight\", className: \"symbolHighlight\" } }]);\n      setTimeout(() =\u003e {\n        if (targetEditor.getModel() === modelNow) {\n          decorations.clear();\n        }\n      }, 350);\n    }\n    return targetEditor;\n  }\n  _openInPeek(target, model, range2) {\n    const controller = ReferencesController.get(target);\n    if (controller \u0026\u0026 target.hasModel()) {\n      controller.toggleWidget(range2 ?? target.getSelection(), createCancelablePromise((_) =\u003e Promise.resolve(model)), this.configuration.openInPeek);\n    } else {\n      model.dispose();\n    }\n  }\n};\nvar DefinitionAction = class extends SymbolNavigationAction {\n  async _getLocationModel(languageFeaturesService, model, position, token) {\n    return new ReferencesModel(await getDefinitionsAtPosition(languageFeaturesService.definitionProvider, model, position, false, token), localize(1031, \"Definitions\"));\n  }\n  _getNoResultFoundMessage(info) {\n    return info \u0026\u0026 info.word ? localize(1032, \"No definition found for '{0}'\", info.word) : localize(1033, \"No definition found\");\n  }\n  _getAlternativeCommand(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).alternativeDefinitionCommand;\n  }\n  _getGoToPreference(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).multipleDefinitions;\n  }\n};\nregisterAction2(class GoToDefinitionAction extends DefinitionAction {\n  static {\n    this.id = \"editor.action.revealDefinition\";\n  }\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: false,\n      muteMessage: false\n    }, {\n      id: GoToDefinitionAction.id,\n      title: {\n        ...localize2(1057, \"Go to Definition\"),\n        mnemonicTitle: localize(1034, \"Go to \u0026\u0026Definition\")\n      },\n      precondition: EditorContextKeys.hasDefinitionProvider,\n      keybinding: [{\n        when: EditorContextKeys.editorTextFocus,\n        primary: 70,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }, {\n        when: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, IsWebContext),\n        primary: 2048 | 70,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }],\n      menu: [{\n        id: MenuId.EditorContext,\n        group: \"navigation\",\n        order: 1.1\n      }, {\n        id: MenuId.MenubarGoMenu,\n        precondition: null,\n        group: \"4_symbol_nav\",\n        order: 2\n      }]\n    });\n    CommandsRegistry.registerCommandAlias(\"editor.action.goToDeclaration\", GoToDefinitionAction.id);\n  }\n});\nregisterAction2(class OpenDefinitionToSideAction extends DefinitionAction {\n  static {\n    this.id = \"editor.action.revealDefinitionAside\";\n  }\n  constructor() {\n    super({\n      openToSide: true,\n      openInPeek: false,\n      muteMessage: false\n    }, {\n      id: OpenDefinitionToSideAction.id,\n      title: localize2(1058, \"Open Definition to the Side\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n      keybinding: [{\n        when: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          70\n          /* KeyCode.F12 */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }, {\n        when: ContextKeyExpr.and(EditorContextKeys.editorTextFocus, IsWebContext),\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 70\n          /* KeyCode.F12 */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }]\n    });\n    CommandsRegistry.registerCommandAlias(\"editor.action.openDeclarationToTheSide\", OpenDefinitionToSideAction.id);\n  }\n});\nregisterAction2(class PeekDefinitionAction extends DefinitionAction {\n  static {\n    this.id = \"editor.action.peekDefinition\";\n  }\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: true,\n      muteMessage: false\n    }, {\n      id: PeekDefinitionAction.id,\n      title: localize2(1059, \"Peek Definition\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n      keybinding: {\n        when: EditorContextKeys.editorTextFocus,\n        primary: 512 | 70,\n        linux: {\n          primary: 2048 | 1024 | 68\n          /* KeyCode.F10 */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menu: {\n        id: MenuId.EditorContextPeek,\n        group: \"peek\",\n        order: 2\n      }\n    });\n    CommandsRegistry.registerCommandAlias(\"editor.action.previewDeclaration\", PeekDefinitionAction.id);\n  }\n});\nvar DeclarationAction = class extends SymbolNavigationAction {\n  async _getLocationModel(languageFeaturesService, model, position, token) {\n    return new ReferencesModel(await getDeclarationsAtPosition(languageFeaturesService.declarationProvider, model, position, false, token), localize(1035, \"Declarations\"));\n  }\n  _getNoResultFoundMessage(info) {\n    return info \u0026\u0026 info.word ? localize(1036, \"No declaration found for '{0}'\", info.word) : localize(1037, \"No declaration found\");\n  }\n  _getAlternativeCommand(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).alternativeDeclarationCommand;\n  }\n  _getGoToPreference(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).multipleDeclarations;\n  }\n};\nregisterAction2(class GoToDeclarationAction extends DeclarationAction {\n  static {\n    this.id = \"editor.action.revealDeclaration\";\n  }\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: false,\n      muteMessage: false\n    }, {\n      id: GoToDeclarationAction.id,\n      title: {\n        ...localize2(1060, \"Go to Declaration\"),\n        mnemonicTitle: localize(1038, \"Go to \u0026\u0026Declaration\")\n      },\n      precondition: ContextKeyExpr.and(EditorContextKeys.hasDeclarationProvider, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n      menu: [{\n        id: MenuId.EditorContext,\n        group: \"navigation\",\n        order: 1.3\n      }, {\n        id: MenuId.MenubarGoMenu,\n        precondition: null,\n        group: \"4_symbol_nav\",\n        order: 3\n      }]\n    });\n  }\n  _getNoResultFoundMessage(info) {\n    return info \u0026\u0026 info.word ? localize(1039, \"No declaration found for '{0}'\", info.word) : localize(1040, \"No declaration found\");\n  }\n});\nregisterAction2(class PeekDeclarationAction extends DeclarationAction {\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: true,\n      muteMessage: false\n    }, {\n      id: \"editor.action.peekDeclaration\",\n      title: localize2(1061, \"Peek Declaration\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.hasDeclarationProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n      menu: {\n        id: MenuId.EditorContextPeek,\n        group: \"peek\",\n        order: 3\n      }\n    });\n  }\n});\nvar TypeDefinitionAction = class extends SymbolNavigationAction {\n  async _getLocationModel(languageFeaturesService, model, position, token) {\n    return new ReferencesModel(await getTypeDefinitionsAtPosition(languageFeaturesService.typeDefinitionProvider, model, position, false, token), localize(1041, \"Type Definitions\"));\n  }\n  _getNoResultFoundMessage(info) {\n    return info \u0026\u0026 info.word ? localize(1042, \"No type definition found for '{0}'\", info.word) : localize(1043, \"No type definition found\");\n  }\n  _getAlternativeCommand(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).alternativeTypeDefinitionCommand;\n  }\n  _getGoToPreference(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).multipleTypeDefinitions;\n  }\n};\nregisterAction2(class GoToTypeDefinitionAction extends TypeDefinitionAction {\n  static {\n    this.ID = \"editor.action.goToTypeDefinition\";\n  }\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: false,\n      muteMessage: false\n    }, {\n      id: GoToTypeDefinitionAction.ID,\n      title: {\n        ...localize2(1062, \"Go to Type Definition\"),\n        mnemonicTitle: localize(1044, \"Go to \u0026\u0026Type Definition\")\n      },\n      precondition: EditorContextKeys.hasTypeDefinitionProvider,\n      keybinding: {\n        when: EditorContextKeys.editorTextFocus,\n        primary: 0,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menu: [{\n        id: MenuId.EditorContext,\n        group: \"navigation\",\n        order: 1.4\n      }, {\n        id: MenuId.MenubarGoMenu,\n        precondition: null,\n        group: \"4_symbol_nav\",\n        order: 3\n      }]\n    });\n  }\n});\nregisterAction2(class PeekTypeDefinitionAction extends TypeDefinitionAction {\n  static {\n    this.ID = \"editor.action.peekTypeDefinition\";\n  }\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: true,\n      muteMessage: false\n    }, {\n      id: PeekTypeDefinitionAction.ID,\n      title: localize2(1063, \"Peek Type Definition\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.hasTypeDefinitionProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n      menu: {\n        id: MenuId.EditorContextPeek,\n        group: \"peek\",\n        order: 4\n      }\n    });\n  }\n});\nvar ImplementationAction = class extends SymbolNavigationAction {\n  async _getLocationModel(languageFeaturesService, model, position, token) {\n    return new ReferencesModel(await getImplementationsAtPosition(languageFeaturesService.implementationProvider, model, position, false, token), localize(1045, \"Implementations\"));\n  }\n  _getNoResultFoundMessage(info) {\n    return info \u0026\u0026 info.word ? localize(1046, \"No implementation found for '{0}'\", info.word) : localize(1047, \"No implementation found\");\n  }\n  _getAlternativeCommand(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).alternativeImplementationCommand;\n  }\n  _getGoToPreference(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).multipleImplementations;\n  }\n};\nregisterAction2(class GoToImplementationAction extends ImplementationAction {\n  static {\n    this.ID = \"editor.action.goToImplementation\";\n  }\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: false,\n      muteMessage: false\n    }, {\n      id: GoToImplementationAction.ID,\n      title: {\n        ...localize2(1064, \"Go to Implementations\"),\n        mnemonicTitle: localize(1048, \"Go to \u0026\u0026Implementations\")\n      },\n      precondition: EditorContextKeys.hasImplementationProvider,\n      keybinding: {\n        when: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 70,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menu: [{\n        id: MenuId.EditorContext,\n        group: \"navigation\",\n        order: 1.45\n      }, {\n        id: MenuId.MenubarGoMenu,\n        precondition: null,\n        group: \"4_symbol_nav\",\n        order: 4\n      }]\n    });\n  }\n});\nregisterAction2(class PeekImplementationAction extends ImplementationAction {\n  static {\n    this.ID = \"editor.action.peekImplementation\";\n  }\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: true,\n      muteMessage: false\n    }, {\n      id: PeekImplementationAction.ID,\n      title: localize2(1065, \"Peek Implementations\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.hasImplementationProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n      keybinding: {\n        when: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 1024 | 70,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menu: {\n        id: MenuId.EditorContextPeek,\n        group: \"peek\",\n        order: 5\n      }\n    });\n  }\n});\nvar ReferencesAction = class extends SymbolNavigationAction {\n  _getNoResultFoundMessage(info) {\n    return info ? localize(1049, \"No references found for '{0}'\", info.word) : localize(1050, \"No references found\");\n  }\n  _getAlternativeCommand(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).alternativeReferenceCommand;\n  }\n  _getGoToPreference(editor2) {\n    return editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).multipleReferences;\n  }\n};\nregisterAction2(class GoToReferencesAction extends ReferencesAction {\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: false,\n      muteMessage: false\n    }, {\n      id: \"editor.action.goToReferences\",\n      title: {\n        ...localize2(1066, \"Go to References\"),\n        mnemonicTitle: localize(1051, \"Go to \u0026\u0026References\")\n      },\n      precondition: ContextKeyExpr.and(EditorContextKeys.hasReferenceProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n      keybinding: {\n        when: EditorContextKeys.editorTextFocus,\n        primary: 1024 | 70,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menu: [{\n        id: MenuId.EditorContext,\n        group: \"navigation\",\n        order: 1.45\n      }, {\n        id: MenuId.MenubarGoMenu,\n        precondition: null,\n        group: \"4_symbol_nav\",\n        order: 5\n      }]\n    });\n  }\n  async _getLocationModel(languageFeaturesService, model, position, token) {\n    return new ReferencesModel(await getReferencesAtPosition(languageFeaturesService.referenceProvider, model, position, true, false, token), localize(1052, \"References\"));\n  }\n});\nregisterAction2(class PeekReferencesAction extends ReferencesAction {\n  constructor() {\n    super({\n      openToSide: false,\n      openInPeek: true,\n      muteMessage: false\n    }, {\n      id: \"editor.action.referenceSearch.trigger\",\n      title: localize2(1067, \"Peek References\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.hasReferenceProvider, PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated()),\n      menu: {\n        id: MenuId.EditorContextPeek,\n        group: \"peek\",\n        order: 6\n      }\n    });\n  }\n  async _getLocationModel(languageFeaturesService, model, position, token) {\n    return new ReferencesModel(await getReferencesAtPosition(languageFeaturesService.referenceProvider, model, position, false, false, token), localize(1053, \"References\"));\n  }\n});\nvar GenericGoToLocationAction = class extends SymbolNavigationAction {\n  constructor(config, _references, _gotoMultipleBehaviour) {\n    super(config, {\n      id: \"editor.action.goToLocation\",\n      title: localize2(1068, \"Go to Any Symbol\"),\n      precondition: ContextKeyExpr.and(PeekContext.notInPeekEditor, EditorContextKeys.isInEmbeddedEditor.toNegated())\n    });\n    this._references = _references;\n    this._gotoMultipleBehaviour = _gotoMultipleBehaviour;\n  }\n  async _getLocationModel(languageFeaturesService, _model, _position, _token) {\n    return new ReferencesModel(this._references, localize(1054, \"Locations\"));\n  }\n  _getNoResultFoundMessage(info) {\n    return info \u0026\u0026 localize(1055, \"No results for '{0}'\", info.word) || \"\";\n  }\n  _getGoToPreference(editor2) {\n    return this._gotoMultipleBehaviour ?? editor2.getOption(\n      67\n      /* EditorOption.gotoLocation */\n    ).multipleReferences;\n  }\n  _getAlternativeCommand() {\n    return void 0;\n  }\n};\nCommandsRegistry.registerCommand({\n  id: \"editor.action.goToLocations\",\n  metadata: {\n    description: \"Go to locations from a position in a file\",\n    args: [\n      { name: \"uri\", description: \"The text document in which to start\", constraint: URI },\n      { name: \"position\", description: \"The position at which to start\", constraint: Position.isIPosition },\n      { name: \"locations\", description: \"An array of locations.\", constraint: Array },\n      { name: \"multiple\", description: \"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`\" },\n      { name: \"noResultsMessage\", description: \"Human readable message that shows when locations is empty.\" }\n    ]\n  },\n  handler: async (accessor, resource, position, references, multiple, noResultsMessage, openInPeek) =\u003e {\n    assertType(URI.isUri(resource));\n    assertType(Position.isIPosition(position));\n    assertType(Array.isArray(references));\n    assertType(typeof multiple === \"undefined\" || typeof multiple === \"string\");\n    assertType(typeof openInPeek === \"undefined\" || typeof openInPeek === \"boolean\");\n    const editorService = accessor.get(ICodeEditorService);\n    const editor2 = await editorService.openCodeEditor({ resource }, editorService.getFocusedCodeEditor());\n    if (isCodeEditor(editor2)) {\n      editor2.setPosition(position);\n      editor2.revealPositionInCenterIfOutsideViewport(\n        position,\n        0\n        /* ScrollType.Smooth */\n      );\n      return editor2.invokeWithinContext((accessor2) =\u003e {\n        const command = new class extends GenericGoToLocationAction {\n          _getNoResultFoundMessage(info) {\n            return noResultsMessage || super._getNoResultFoundMessage(info);\n          }\n        }({\n          muteMessage: !Boolean(noResultsMessage),\n          openInPeek: Boolean(openInPeek),\n          openToSide: false\n        }, references, multiple);\n        accessor2.get(IInstantiationService).invokeFunction(command.run.bind(command), editor2);\n      });\n    }\n  }\n});\nCommandsRegistry.registerCommand({\n  id: \"editor.action.peekLocations\",\n  metadata: {\n    description: \"Peek locations from a position in a file\",\n    args: [\n      { name: \"uri\", description: \"The text document in which to start\", constraint: URI },\n      { name: \"position\", description: \"The position at which to start\", constraint: Position.isIPosition },\n      { name: \"locations\", description: \"An array of locations.\", constraint: Array },\n      { name: \"multiple\", description: \"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`\" }\n    ]\n  },\n  handler: async (accessor, resource, position, references, multiple) =\u003e {\n    accessor.get(ICommandService).executeCommand(\"editor.action.goToLocations\", resource, position, references, multiple, void 0, true);\n  }\n});\nCommandsRegistry.registerCommand({\n  id: \"editor.action.findReferences\",\n  handler: (accessor, resource, position) =\u003e {\n    assertType(URI.isUri(resource));\n    assertType(Position.isIPosition(position));\n    const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n    const codeEditorService = accessor.get(ICodeEditorService);\n    return codeEditorService.openCodeEditor({ resource }, codeEditorService.getFocusedCodeEditor()).then((control) =\u003e {\n      if (!isCodeEditor(control) || !control.hasModel()) {\n        return void 0;\n      }\n      const controller = ReferencesController.get(control);\n      if (!controller) {\n        return void 0;\n      }\n      const references = createCancelablePromise((token) =\u003e getReferencesAtPosition(languageFeaturesService.referenceProvider, control.getModel(), Position.lift(position), false, false, token).then((references2) =\u003e new ReferencesModel(references2, localize(1056, \"References\"))));\n      const range2 = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n      return Promise.resolve(controller.toggleWidget(range2, references, false));\n    });\n  }\n});\nCommandsRegistry.registerCommandAlias(\"editor.action.showReferences\", \"editor.action.peekLocations\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js\ninit_actions2();\ninit_commands();\ninit_contextkey();\ninit_instantiation();\nasync function showGoToContextMenu(accessor, editor2, anchor, part) {\n  const resolverService = accessor.get(ITextModelService);\n  const contextMenuService = accessor.get(IContextMenuService);\n  const commandService = accessor.get(ICommandService);\n  const instaService = accessor.get(IInstantiationService);\n  const notificationService = accessor.get(INotificationService);\n  await part.item.resolve(CancellationToken.None);\n  if (!part.part.location) {\n    return;\n  }\n  const location2 = part.part.location;\n  const menuActions = [];\n  const filter = new Set(MenuRegistry.getMenuItems(MenuId.EditorContext).map((item) =\u003e isIMenuItem(item) ? item.command.id : generateUuid()));\n  for (const delegate of SymbolNavigationAction.all()) {\n    if (filter.has(delegate.desc.id)) {\n      menuActions.push(new Action(delegate.desc.id, MenuItemAction.label(delegate.desc, { renderShortTitle: true }), void 0, true, async () =\u003e {\n        const ref = await resolverService.createModelReference(location2.uri);\n        try {\n          const symbolAnchor = new SymbolNavigationAnchor(ref.object.textEditorModel, Range.getStartPosition(location2.range));\n          const range2 = part.item.anchor.range;\n          await instaService.invokeFunction(delegate.runEditorCommand.bind(delegate), editor2, symbolAnchor, range2);\n        } finally {\n          ref.dispose();\n        }\n      }));\n    }\n  }\n  if (part.part.command) {\n    const { command } = part.part;\n    menuActions.push(new Separator());\n    menuActions.push(new Action(command.id, command.title, void 0, true, async () =\u003e {\n      try {\n        await commandService.executeCommand(command.id, ...command.arguments ?? []);\n      } catch (err) {\n        notificationService.notify({\n          severity: Severity2.Error,\n          source: part.item.provider.displayName,\n          message: err\n        });\n      }\n    }));\n  }\n  const useShadowDOM = editor2.getOption(\n    143\n    /* EditorOption.useShadowDOM */\n  );\n  contextMenuService.showContextMenu({\n    domForShadowRoot: useShadowDOM ? editor2.getDomNode() ?? void 0 : void 0,\n    getAnchor: () =\u003e {\n      const box = getDomNodePagePosition(anchor);\n      return { x: box.left, y: box.top + box.height + 8 };\n    },\n    getActions: () =\u003e menuActions,\n    onHide: () =\u003e {\n      editor2.focus();\n    },\n    autoSelectFirstItem: true\n  });\n}\nasync function goToDefinitionWithLocation(accessor, event, editor2, location2) {\n  const resolverService = accessor.get(ITextModelService);\n  const ref = await resolverService.createModelReference(location2.uri);\n  await editor2.invokeWithinContext(async (accessor2) =\u003e {\n    const openToSide = event.hasSideBySideModifier;\n    const contextKeyService = accessor2.get(IContextKeyService);\n    const isInPeek = PeekContext.inPeekEditor.getValue(contextKeyService);\n    const canPeek = !openToSide \u0026\u0026 editor2.getOption(\n      100\n      /* EditorOption.definitionLinkOpensInPeek */\n    ) \u0026\u0026 !isInPeek;\n    const action = new DefinitionAction({ openToSide, openInPeek: canPeek, muteMessage: true }, { title: { value: \"\", original: \"\" }, id: \"\", precondition: void 0 });\n    return action.run(accessor2, new SymbolNavigationAnchor(ref.object.textEditorModel, Range.getStartPosition(location2.range)), Range.lift(location2.range));\n  });\n  ref.dispose();\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js\ninit_commands();\ninit_extensions();\ninit_instantiation();\ninit_colorRegistry();\ninit_themeService();\nvar __decorate74 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param68 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlayHintsController_1;\nvar InlayHintsCache = class _InlayHintsCache {\n  constructor() {\n    this._entries = new LRUCache(50);\n  }\n  get(model) {\n    const key = _InlayHintsCache._key(model);\n    return this._entries.get(key);\n  }\n  set(model, value) {\n    const key = _InlayHintsCache._key(model);\n    this._entries.set(key, value);\n  }\n  static _key(model) {\n    return `${model.uri.toString()}/${model.getVersionId()}`;\n  }\n};\nvar IInlayHintsCache = createDecorator(\"IInlayHintsCache\");\nregisterSingleton(\n  IInlayHintsCache,\n  InlayHintsCache,\n  1\n  /* InstantiationType.Delayed */\n);\nvar RenderedInlayHintLabelPart = class {\n  constructor(item, index) {\n    this.item = item;\n    this.index = index;\n  }\n  get part() {\n    const label = this.item.hint.label;\n    if (typeof label === \"string\") {\n      return { label };\n    } else {\n      return label[this.index];\n    }\n  }\n};\nvar ActiveInlayHintInfo = class {\n  constructor(part, hasTriggerModifier2) {\n    this.part = part;\n    this.hasTriggerModifier = hasTriggerModifier2;\n  }\n};\nvar InlayHintsController = class InlayHintsController2 {\n  static {\n    InlayHintsController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.InlayHints\";\n  }\n  static {\n    this._MAX_DECORATORS = 1500;\n  }\n  static {\n    this._whitespaceData = {};\n  }\n  static get(editor2) {\n    return editor2.getContribution(InlayHintsController_1.ID) ?? void 0;\n  }\n  constructor(_editor, _languageFeaturesService, _featureDebounce, _inlayHintsCache, _commandService, _notificationService, _instaService) {\n    this._editor = _editor;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._inlayHintsCache = _inlayHintsCache;\n    this._commandService = _commandService;\n    this._notificationService = _notificationService;\n    this._instaService = _instaService;\n    this._disposables = new DisposableStore();\n    this._sessionDisposables = new DisposableStore();\n    this._decorationsMetadata = /* @__PURE__ */ new Map();\n    this._activeRenderMode = 0;\n    this._ruleFactory = this._disposables.add(new DynamicCssRules(this._editor));\n    this._debounceInfo = _featureDebounce.for(_languageFeaturesService.inlayHintsProvider, \"InlayHint\", { min: 25 });\n    this._disposables.add(_languageFeaturesService.inlayHintsProvider.onDidChange(() =\u003e this._update()));\n    this._disposables.add(_editor.onDidChangeModel(() =\u003e this._update()));\n    this._disposables.add(_editor.onDidChangeModelLanguage(() =\u003e this._update()));\n    this._disposables.add(_editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        158\n        /* EditorOption.inlayHints */\n      )) {\n        this._update();\n      }\n    }));\n    this._update();\n  }\n  dispose() {\n    this._sessionDisposables.dispose();\n    this._removeAllDecorations();\n    this._disposables.dispose();\n  }\n  _update() {\n    this._sessionDisposables.clear();\n    this._removeAllDecorations();\n    const options2 = this._editor.getOption(\n      158\n      /* EditorOption.inlayHints */\n    );\n    if (options2.enabled === \"off\") {\n      return;\n    }\n    const model = this._editor.getModel();\n    if (!model || !this._languageFeaturesService.inlayHintsProvider.has(model)) {\n      return;\n    }\n    if (options2.enabled === \"on\") {\n      this._activeRenderMode = 0;\n    } else {\n      let defaultMode;\n      let altMode;\n      if (options2.enabled === \"onUnlessPressed\") {\n        defaultMode = 0;\n        altMode = 1;\n      } else {\n        defaultMode = 1;\n        altMode = 0;\n      }\n      this._activeRenderMode = defaultMode;\n      this._sessionDisposables.add(ModifierKeyEmitter.getInstance().event((e) =\u003e {\n        if (!this._editor.hasModel()) {\n          return;\n        }\n        const newRenderMode = e.altKey \u0026\u0026 e.ctrlKey \u0026\u0026 !(e.shiftKey || e.metaKey) ? altMode : defaultMode;\n        if (newRenderMode !== this._activeRenderMode) {\n          this._activeRenderMode = newRenderMode;\n          const model2 = this._editor.getModel();\n          const copies = this._copyInlayHintsWithCurrentAnchor(model2);\n          this._updateHintsDecorators([model2.getFullModelRange()], copies);\n          scheduler.schedule(0);\n        }\n      }));\n    }\n    const cached = this._inlayHintsCache.get(model);\n    if (cached) {\n      this._updateHintsDecorators([model.getFullModelRange()], cached);\n    }\n    this._sessionDisposables.add(toDisposable(() =\u003e {\n      if (!model.isDisposed()) {\n        this._cacheHintsForFastRestore(model);\n      }\n    }));\n    let cts;\n    const watchedProviders = /* @__PURE__ */ new Set();\n    const scheduler = new RunOnceScheduler(async () =\u003e {\n      const t1 = Date.now();\n      cts?.dispose(true);\n      cts = new CancellationTokenSource();\n      const listener = model.onWillDispose(() =\u003e cts?.cancel());\n      try {\n        const myToken = cts.token;\n        const inlayHints = await InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider, model, this._getHintsRanges(), myToken);\n        scheduler.delay = this._debounceInfo.update(model, Date.now() - t1);\n        if (myToken.isCancellationRequested) {\n          inlayHints.dispose();\n          return;\n        }\n        for (const provider of inlayHints.provider) {\n          if (typeof provider.onDidChangeInlayHints === \"function\" \u0026\u0026 !watchedProviders.has(provider)) {\n            watchedProviders.add(provider);\n            this._sessionDisposables.add(provider.onDidChangeInlayHints(() =\u003e {\n              if (!scheduler.isScheduled()) {\n                scheduler.schedule();\n              }\n            }));\n          }\n        }\n        this._sessionDisposables.add(inlayHints);\n        this._updateHintsDecorators(inlayHints.ranges, inlayHints.items);\n        this._cacheHintsForFastRestore(model);\n      } catch (err) {\n        onUnexpectedError(err);\n      } finally {\n        cts.dispose();\n        listener.dispose();\n      }\n    }, this._debounceInfo.get(model));\n    this._sessionDisposables.add(scheduler);\n    this._sessionDisposables.add(toDisposable(() =\u003e cts?.dispose(true)));\n    scheduler.schedule(0);\n    this._sessionDisposables.add(this._editor.onDidScrollChange((e) =\u003e {\n      if (e.scrollTopChanged || !scheduler.isScheduled()) {\n        scheduler.schedule();\n      }\n    }));\n    const cursor = this._sessionDisposables.add(new MutableDisposable());\n    this._sessionDisposables.add(this._editor.onDidChangeModelContent((e) =\u003e {\n      cts?.cancel();\n      const delay = Math.max(scheduler.delay, 800);\n      this._cursorInfo = { position: this._editor.getPosition(), notEarlierThan: Date.now() + delay };\n      cursor.value = disposableTimeout(() =\u003e scheduler.schedule(0), delay);\n      scheduler.schedule();\n    }));\n    this._sessionDisposables.add(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        158\n        /* EditorOption.inlayHints */\n      )) {\n        scheduler.schedule();\n      }\n    }));\n    this._sessionDisposables.add(this._installDblClickGesture(() =\u003e scheduler.schedule(0)));\n    this._sessionDisposables.add(this._installLinkGesture());\n    this._sessionDisposables.add(this._installContextMenu());\n  }\n  _installLinkGesture() {\n    const store = new DisposableStore();\n    const gesture = store.add(new ClickLinkGesture(this._editor));\n    const sessionStore = new DisposableStore();\n    store.add(sessionStore);\n    store.add(gesture.onMouseMoveOrRelevantKeyDown((e) =\u003e {\n      const [mouseEvent] = e;\n      const labelPart = this._getInlayHintLabelPart(mouseEvent);\n      const model = this._editor.getModel();\n      if (!labelPart || !model) {\n        sessionStore.clear();\n        return;\n      }\n      const cts = new CancellationTokenSource();\n      sessionStore.add(toDisposable(() =\u003e cts.dispose(true)));\n      labelPart.item.resolve(cts.token);\n      this._activeInlayHintPart = labelPart.part.command || labelPart.part.location ? new ActiveInlayHintInfo(labelPart, mouseEvent.hasTriggerModifier) : void 0;\n      const lineNumber = model.validatePosition(labelPart.item.hint.position).lineNumber;\n      const range2 = new Range(lineNumber, 1, lineNumber, model.getLineMaxColumn(lineNumber));\n      const lineHints = this._getInlineHintsForRange(range2);\n      this._updateHintsDecorators([range2], lineHints);\n      sessionStore.add(toDisposable(() =\u003e {\n        this._activeInlayHintPart = void 0;\n        this._updateHintsDecorators([range2], lineHints);\n      }));\n    }));\n    store.add(gesture.onCancel(() =\u003e sessionStore.clear()));\n    store.add(gesture.onExecute(async (e) =\u003e {\n      const label = this._getInlayHintLabelPart(e);\n      if (label) {\n        const part = label.part;\n        if (part.location) {\n          this._instaService.invokeFunction(goToDefinitionWithLocation, e, this._editor, part.location);\n        } else if (Command2.is(part.command)) {\n          await this._invokeCommand(part.command, label.item);\n        }\n      }\n    }));\n    return store;\n  }\n  _getInlineHintsForRange(range2) {\n    const lineHints = /* @__PURE__ */ new Set();\n    for (const data of this._decorationsMetadata.values()) {\n      if (range2.containsRange(data.item.anchor.range)) {\n        lineHints.add(data.item);\n      }\n    }\n    return Array.from(lineHints);\n  }\n  _installDblClickGesture(updateInlayHints) {\n    return this._editor.onMouseUp(async (e) =\u003e {\n      if (e.event.detail !== 2) {\n        return;\n      }\n      const part = this._getInlayHintLabelPart(e);\n      if (!part) {\n        return;\n      }\n      e.event.preventDefault();\n      await part.item.resolve(CancellationToken.None);\n      if (isNonEmptyArray(part.item.hint.textEdits)) {\n        const edits = part.item.hint.textEdits.map((edit2) =\u003e EditOperation.replace(Range.lift(edit2.range), edit2.text));\n        this._editor.executeEdits(\"inlayHint.default\", edits);\n        updateInlayHints();\n      }\n    });\n  }\n  _installContextMenu() {\n    return this._editor.onContextMenu(async (e) =\u003e {\n      if (!isHTMLElement(e.event.target)) {\n        return;\n      }\n      const part = this._getInlayHintLabelPart(e);\n      if (part) {\n        await this._instaService.invokeFunction(showGoToContextMenu, this._editor, e.event.target, part);\n      }\n    });\n  }\n  _getInlayHintLabelPart(e) {\n    if (e.target.type !== 6) {\n      return void 0;\n    }\n    const options2 = e.target.detail.injectedText?.options;\n    if (options2 instanceof ModelDecorationInjectedTextOptions \u0026\u0026 options2?.attachedData instanceof RenderedInlayHintLabelPart) {\n      return options2.attachedData;\n    }\n    return void 0;\n  }\n  async _invokeCommand(command, item) {\n    try {\n      await this._commandService.executeCommand(command.id, ...command.arguments ?? []);\n    } catch (err) {\n      this._notificationService.notify({\n        severity: Severity2.Error,\n        source: item.provider.displayName,\n        message: err\n      });\n    }\n  }\n  _cacheHintsForFastRestore(model) {\n    const hints = this._copyInlayHintsWithCurrentAnchor(model);\n    this._inlayHintsCache.set(model, hints);\n  }\n  // return inlay hints but with an anchor that reflects \"updates\"\n  // that happened after receiving them, e.g adding new lines before a hint\n  _copyInlayHintsWithCurrentAnchor(model) {\n    const items = /* @__PURE__ */ new Map();\n    for (const [id, obj] of this._decorationsMetadata) {\n      if (items.has(obj.item)) {\n        continue;\n      }\n      const range2 = model.getDecorationRange(id);\n      if (range2) {\n        const anchor = new InlayHintAnchor(range2, obj.item.anchor.direction);\n        const copy = obj.item.with({ anchor });\n        items.set(obj.item, copy);\n      }\n    }\n    return Array.from(items.values());\n  }\n  _getHintsRanges() {\n    const extra = 30;\n    const model = this._editor.getModel();\n    const visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n    const result = [];\n    for (const range2 of visibleRanges.sort(Range.compareRangesUsingStarts)) {\n      const extendedRange = model.validateRange(new Range(range2.startLineNumber - extra, range2.startColumn, range2.endLineNumber + extra, range2.endColumn));\n      if (result.length === 0 || !Range.areIntersectingOrTouching(result[result.length - 1], extendedRange)) {\n        result.push(extendedRange);\n      } else {\n        result[result.length - 1] = Range.plusRange(result[result.length - 1], extendedRange);\n      }\n    }\n    return result;\n  }\n  _updateHintsDecorators(ranges, items) {\n    const itemFixedLengths = /* @__PURE__ */ new Map();\n    if (this._cursorInfo \u0026\u0026 this._cursorInfo.notEarlierThan \u003e Date.now() \u0026\u0026 ranges.some((range2) =\u003e range2.containsPosition(this._cursorInfo.position))) {\n      const { position } = this._cursorInfo;\n      this._cursorInfo = void 0;\n      const lengths = /* @__PURE__ */ new Map();\n      for (const deco of this._editor.getLineDecorations(position.lineNumber) ?? []) {\n        const data = this._decorationsMetadata.get(deco.id);\n        if (deco.range.startColumn \u003e position.column) {\n          continue;\n        }\n        const opts = data?.decoration.options[data.item.anchor.direction];\n        if (opts \u0026\u0026 opts.attachedData !== InlayHintsController_1._whitespaceData) {\n          const len = lengths.get(data.item) ?? 0;\n          lengths.set(data.item, len + opts.content.length);\n        }\n      }\n      const newItemsWithFixedLength = items.filter((item) =\u003e item.anchor.range.startLineNumber === position.lineNumber \u0026\u0026 item.anchor.range.endColumn \u003c= position.column);\n      const fixedLengths = Array.from(lengths.values());\n      let lastItem;\n      while (true) {\n        const targetItem = newItemsWithFixedLength.shift();\n        const fixedLength = fixedLengths.shift();\n        if (!fixedLength \u0026\u0026 !targetItem) {\n          break;\n        }\n        if (targetItem) {\n          itemFixedLengths.set(targetItem, fixedLength ?? 0);\n          lastItem = targetItem;\n        } else if (lastItem \u0026\u0026 fixedLength) {\n          let len = itemFixedLengths.get(lastItem);\n          len += fixedLength;\n          len += fixedLengths.reduce((p, c) =\u003e p + c, 0);\n          fixedLengths.length = 0;\n          break;\n        }\n      }\n    }\n    const newDecorationsData = [];\n    const addInjectedText = (item, ref, content, cursorStops, attachedData) =\u003e {\n      const opts = {\n        content,\n        inlineClassNameAffectsLetterSpacing: true,\n        inlineClassName: ref.className,\n        cursorStops,\n        attachedData\n      };\n      newDecorationsData.push({\n        item,\n        classNameRef: ref,\n        decoration: {\n          range: item.anchor.range,\n          options: {\n            // className: \"rangeHighlight\", // DEBUG highlight to see to what range a hint is attached\n            description: \"InlayHint\",\n            showIfCollapsed: item.anchor.range.isEmpty(),\n            // \"original\" range is empty\n            collapseOnReplaceEdit: !item.anchor.range.isEmpty(),\n            stickiness: 0,\n            [item.anchor.direction]: this._activeRenderMode === 0 ? opts : void 0\n          }\n        }\n      });\n    };\n    const addInjectedWhitespace = (item, isLast) =\u003e {\n      const marginRule = this._ruleFactory.createClassNameRef({\n        width: `${fontSize / 3 | 0}px`,\n        display: \"inline-block\"\n      });\n      addInjectedText(item, marginRule, \"\\u200A\", isLast ? InjectedTextCursorStops.Right : InjectedTextCursorStops.None, InlayHintsController_1._whitespaceData);\n    };\n    const { fontSize, fontFamily, padding, isUniform } = this._getLayoutInfo();\n    const maxLength = this._editor.getOption(\n      158\n      /* EditorOption.inlayHints */\n    ).maximumLength;\n    const fontFamilyVar = \"--code-editorInlayHintsFontFamily\";\n    this._editor.getContainerDomNode().style.setProperty(fontFamilyVar, fontFamily);\n    let currentLineInfo = { line: 0, totalLen: 0 };\n    for (let i2 = 0; i2 \u003c items.length; i2++) {\n      const item = items[i2];\n      if (currentLineInfo.line !== item.anchor.range.startLineNumber) {\n        currentLineInfo = { line: item.anchor.range.startLineNumber, totalLen: 0 };\n      }\n      if (maxLength \u0026\u0026 currentLineInfo.totalLen \u003e maxLength) {\n        continue;\n      }\n      if (item.hint.paddingLeft) {\n        addInjectedWhitespace(item, false);\n      }\n      const parts = typeof item.hint.label === \"string\" ? [{ label: item.hint.label }] : item.hint.label;\n      const itemFixedLength = itemFixedLengths.get(item);\n      let itemActualLength = 0;\n      for (let i3 = 0; i3 \u003c parts.length; i3++) {\n        const part = parts[i3];\n        const isFirst = i3 === 0;\n        const isLast = i3 === parts.length - 1;\n        const cssProperties = {\n          fontSize: `${fontSize}px`,\n          fontFamily: `var(${fontFamilyVar}), ${EDITOR_FONT_DEFAULTS.fontFamily}`,\n          verticalAlign: isUniform ? \"baseline\" : \"middle\",\n          unicodeBidi: \"isolate\"\n        };\n        if (isNonEmptyArray(item.hint.textEdits)) {\n          cssProperties.cursor = \"default\";\n        }\n        this._fillInColors(cssProperties, item.hint);\n        if ((part.command || part.location) \u0026\u0026 this._activeInlayHintPart?.part.item === item \u0026\u0026 this._activeInlayHintPart.part.index === i3) {\n          cssProperties.textDecoration = \"underline\";\n          if (this._activeInlayHintPart.hasTriggerModifier) {\n            cssProperties.color = themeColorFromId(editorActiveLinkForeground);\n            cssProperties.cursor = \"pointer\";\n          }\n        }\n        let textlabel = part.label;\n        currentLineInfo.totalLen += textlabel.length;\n        let tooLong = false;\n        const over = maxLength !== 0 ? currentLineInfo.totalLen - maxLength : 0;\n        if (over \u003e 0) {\n          textlabel = textlabel.slice(0, -over) + \"\\u2026\";\n          tooLong = true;\n        }\n        itemActualLength += textlabel.length;\n        if (itemFixedLength !== void 0) {\n          const overFixedLength = itemActualLength - itemFixedLength;\n          if (overFixedLength \u003e= 0) {\n            itemActualLength -= overFixedLength;\n            textlabel = textlabel.slice(0, -(1 + overFixedLength)) + \"\\u2026\";\n            tooLong = true;\n          }\n        }\n        if (padding) {\n          if (isFirst \u0026\u0026 (isLast || tooLong)) {\n            cssProperties.padding = `1px ${Math.max(1, fontSize / 4) | 0}px`;\n            cssProperties.borderRadius = `${fontSize / 4 | 0}px`;\n          } else if (isFirst) {\n            cssProperties.padding = `1px 0 1px ${Math.max(1, fontSize / 4) | 0}px`;\n            cssProperties.borderRadius = `${fontSize / 4 | 0}px 0 0 ${fontSize / 4 | 0}px`;\n          } else if (isLast || tooLong) {\n            cssProperties.padding = `1px ${Math.max(1, fontSize / 4) | 0}px 1px 0`;\n            cssProperties.borderRadius = `0 ${fontSize / 4 | 0}px ${fontSize / 4 | 0}px 0`;\n          } else {\n            cssProperties.padding = `1px 0 1px 0`;\n          }\n        }\n        addInjectedText(item, this._ruleFactory.createClassNameRef(cssProperties), fixSpace(textlabel), isLast \u0026\u0026 !item.hint.paddingRight ? InjectedTextCursorStops.Right : InjectedTextCursorStops.None, new RenderedInlayHintLabelPart(item, i3));\n        if (tooLong) {\n          break;\n        }\n      }\n      if (itemFixedLength !== void 0 \u0026\u0026 itemActualLength \u003c itemFixedLength) {\n        const pad = itemFixedLength - itemActualLength;\n        addInjectedText(item, this._ruleFactory.createClassNameRef({}), \"\\u200A\".repeat(pad), InjectedTextCursorStops.None);\n      }\n      if (item.hint.paddingRight) {\n        addInjectedWhitespace(item, true);\n      }\n      if (newDecorationsData.length \u003e InlayHintsController_1._MAX_DECORATORS) {\n        break;\n      }\n    }\n    const decorationIdsToReplace = [];\n    for (const [id, metadata] of this._decorationsMetadata) {\n      const range2 = this._editor.getModel()?.getDecorationRange(id);\n      if (range2 \u0026\u0026 ranges.some((r) =\u003e r.containsRange(range2))) {\n        decorationIdsToReplace.push(id);\n        metadata.classNameRef.dispose();\n        this._decorationsMetadata.delete(id);\n      }\n    }\n    const scrollState = StableEditorScrollState.capture(this._editor);\n    this._editor.changeDecorations((accessor) =\u003e {\n      const newDecorationIds = accessor.deltaDecorations(decorationIdsToReplace, newDecorationsData.map((d) =\u003e d.decoration));\n      for (let i2 = 0; i2 \u003c newDecorationIds.length; i2++) {\n        const data = newDecorationsData[i2];\n        this._decorationsMetadata.set(newDecorationIds[i2], data);\n      }\n    });\n    scrollState.restore(this._editor);\n  }\n  _fillInColors(props, hint) {\n    if (hint.kind === InlayHintKind.Parameter) {\n      props.backgroundColor = themeColorFromId(editorInlayHintParameterBackground);\n      props.color = themeColorFromId(editorInlayHintParameterForeground);\n    } else if (hint.kind === InlayHintKind.Type) {\n      props.backgroundColor = themeColorFromId(editorInlayHintTypeBackground);\n      props.color = themeColorFromId(editorInlayHintTypeForeground);\n    } else {\n      props.backgroundColor = themeColorFromId(editorInlayHintBackground);\n      props.color = themeColorFromId(editorInlayHintForeground);\n    }\n  }\n  _getLayoutInfo() {\n    const options2 = this._editor.getOption(\n      158\n      /* EditorOption.inlayHints */\n    );\n    const padding = options2.padding;\n    const editorFontSize = this._editor.getOption(\n      61\n      /* EditorOption.fontSize */\n    );\n    const editorFontFamily = this._editor.getOption(\n      58\n      /* EditorOption.fontFamily */\n    );\n    let fontSize = options2.fontSize;\n    if (!fontSize || fontSize \u003c 5 || fontSize \u003e editorFontSize) {\n      fontSize = editorFontSize;\n    }\n    const fontFamily = options2.fontFamily || editorFontFamily;\n    const isUniform = !padding \u0026\u0026 fontFamily === editorFontFamily \u0026\u0026 fontSize === editorFontSize;\n    return { fontSize, fontFamily, padding, isUniform };\n  }\n  _removeAllDecorations() {\n    this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));\n    for (const obj of this._decorationsMetadata.values()) {\n      obj.classNameRef.dispose();\n    }\n    this._decorationsMetadata.clear();\n  }\n};\nInlayHintsController = InlayHintsController_1 = __decorate74([\n  __param68(1, ILanguageFeaturesService),\n  __param68(2, ILanguageFeatureDebounceService),\n  __param68(3, IInlayHintsCache),\n  __param68(4, ICommandService),\n  __param68(5, INotificationService),\n  __param68(6, IInstantiationService)\n], InlayHintsController);\nfunction fixSpace(str) {\n  const noBreakWhitespace2 = \"\\xA0\";\n  return str.replace(/[ \\t]/g, noBreakWhitespace2);\n}\nCommandsRegistry.registerCommand(\"_executeInlayHintProvider\", async (accessor, ...args) =\u003e {\n  const [uri, range2] = args;\n  assertType(URI.isUri(uri));\n  assertType(Range.isIRange(range2));\n  const { inlayHintsProvider } = accessor.get(ILanguageFeaturesService);\n  const ref = await accessor.get(ITextModelService).createModelReference(uri);\n  try {\n    const model = await InlayHintsFragments.create(inlayHintsProvider, ref.object.textEditorModel, [Range.lift(range2)], CancellationToken.None);\n    const result = model.items.map((i2) =\u003e i2.hint);\n    setTimeout(() =\u003e model.dispose(), 0);\n    return result;\n  } finally {\n    ref.dispose();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js\ninit_configuration();\ninit_languageFeatures();\ninit_nls();\ninit_platform();\ninit_arrays();\ninit_commands();\nvar __decorate75 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param69 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlayHintsHoverAnchor = class extends HoverForeignElementAnchor {\n  constructor(part, owner, initialMousePosX, initialMousePosY) {\n    super(10, owner, part.item.anchor.range, initialMousePosX, initialMousePosY, true);\n    this.part = part;\n  }\n};\nvar InlayHintsHover = class InlayHintsHover2 extends MarkdownHoverParticipant {\n  constructor(editor2, languageService, openerService, keybindingService, hoverService, configurationService, _resolverService, languageFeaturesService, commandService) {\n    super(editor2, languageService, openerService, configurationService, languageFeaturesService, keybindingService, hoverService, commandService);\n    this._resolverService = _resolverService;\n    this.hoverOrdinal = 6;\n  }\n  suggestHoverAnchor(mouseEvent) {\n    const controller = InlayHintsController.get(this._editor);\n    if (!controller) {\n      return null;\n    }\n    if (mouseEvent.target.type !== 6) {\n      return null;\n    }\n    const options2 = mouseEvent.target.detail.injectedText?.options;\n    if (!(options2 instanceof ModelDecorationInjectedTextOptions \u0026\u0026 options2.attachedData instanceof RenderedInlayHintLabelPart)) {\n      return null;\n    }\n    return new InlayHintsHoverAnchor(options2.attachedData, this, mouseEvent.event.posx, mouseEvent.event.posy);\n  }\n  computeSync() {\n    return [];\n  }\n  computeAsync(anchor, _lineDecorations, source, token) {\n    if (!(anchor instanceof InlayHintsHoverAnchor)) {\n      return AsyncIterableProducer.EMPTY;\n    }\n    return new AsyncIterableProducer(async (executor) =\u003e {\n      const { part } = anchor;\n      await part.item.resolve(token);\n      if (token.isCancellationRequested) {\n        return;\n      }\n      let itemTooltip;\n      if (typeof part.item.hint.tooltip === \"string\") {\n        itemTooltip = new MarkdownString().appendText(part.item.hint.tooltip);\n      } else if (part.item.hint.tooltip) {\n        itemTooltip = part.item.hint.tooltip;\n      }\n      if (itemTooltip) {\n        executor.emitOne(new MarkdownHover(this, anchor.range, [itemTooltip], false, 0));\n      }\n      if (isNonEmptyArray(part.item.hint.textEdits)) {\n        executor.emitOne(new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(localize(1154, \"Double-click to insert\"))], false, 10001));\n      }\n      let partTooltip;\n      if (typeof part.part.tooltip === \"string\") {\n        partTooltip = new MarkdownString().appendText(part.part.tooltip);\n      } else if (part.part.tooltip) {\n        partTooltip = part.part.tooltip;\n      }\n      if (partTooltip) {\n        executor.emitOne(new MarkdownHover(this, anchor.range, [partTooltip], false, 1));\n      }\n      if (part.part.location || part.part.command) {\n        let linkHint;\n        const useMetaKey = this._editor.getOption(\n          86\n          /* EditorOption.multiCursorModifier */\n        ) === \"altKey\";\n        const kb = useMetaKey ? isMacintosh ? localize(1155, \"cmd + click\") : localize(1156, \"ctrl + click\") : isMacintosh ? localize(1157, \"option + click\") : localize(1158, \"alt + click\");\n        if (part.part.location \u0026\u0026 part.part.command) {\n          linkHint = new MarkdownString().appendText(localize(1159, \"Go to Definition ({0}), right click for more\", kb));\n        } else if (part.part.location) {\n          linkHint = new MarkdownString().appendText(localize(1160, \"Go to Definition ({0})\", kb));\n        } else if (part.part.command) {\n          linkHint = new MarkdownString(`[${localize(1161, \"Execute Command\")}](${asCommandLink(part.part.command)} \"${part.part.command.title}\") (${kb})`, { isTrusted: true });\n        }\n        if (linkHint) {\n          executor.emitOne(new MarkdownHover(this, anchor.range, [linkHint], false, 1e4));\n        }\n      }\n      const iterable = this._resolveInlayHintLabelPartHover(part, token);\n      for await (const item of iterable) {\n        executor.emitOne(item);\n      }\n    });\n  }\n  async *_resolveInlayHintLabelPartHover(part, token) {\n    if (!part.part.location) {\n      return;\n    }\n    const { uri, range: range2 } = part.part.location;\n    const ref = await this._resolverService.createModelReference(uri);\n    try {\n      const model = ref.object.textEditorModel;\n      if (!this._languageFeaturesService.hoverProvider.has(model)) {\n        return;\n      }\n      for await (const item of getHoverProviderResultsAsAsyncIterable(this._languageFeaturesService.hoverProvider, model, new Position(range2.startLineNumber, range2.startColumn), token)) {\n        if (!isEmptyMarkdownString(item.hover.contents)) {\n          yield new MarkdownHover(this, part.item.anchor.range, item.hover.contents, false, 2 + item.ordinal);\n        }\n      }\n    } finally {\n      ref.dispose();\n    }\n  }\n};\nInlayHintsHover = __decorate75([\n  __param69(1, ILanguageService),\n  __param69(2, IOpenerService),\n  __param69(3, IKeybindingService),\n  __param69(4, IHoverService),\n  __param69(5, IConfigurationService),\n  __param69(6, ITextModelService),\n  __param69(7, ILanguageFeaturesService),\n  __param69(8, ICommandService)\n], InlayHintsHover);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverRendered.js\ninit_errors();\nvar __decorate76 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param70 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar RenderedContentHover_1;\nvar RenderedContentHoverParts_1;\nvar RenderedContentHover = RenderedContentHover_1 = class RenderedContentHover2 extends Disposable {\n  constructor(editor2, hoverResult, participants, context, keybindingService, hoverService) {\n    super();\n    const parts = hoverResult.hoverParts;\n    this._renderedHoverParts = this._register(new RenderedContentHoverParts(editor2, participants, parts, context, keybindingService, hoverService));\n    const contentHoverComputerOptions = hoverResult.options;\n    const anchor = contentHoverComputerOptions.anchor;\n    const { showAtPosition, showAtSecondaryPosition } = RenderedContentHover_1.computeHoverPositions(editor2, anchor.range, parts);\n    this.shouldAppearBeforeContent = parts.some((m) =\u003e m.isBeforeContent);\n    this.showAtPosition = showAtPosition;\n    this.showAtSecondaryPosition = showAtSecondaryPosition;\n    this.initialMousePosX = anchor.initialMousePosX;\n    this.initialMousePosY = anchor.initialMousePosY;\n    this.shouldFocus = contentHoverComputerOptions.shouldFocus;\n    this.source = contentHoverComputerOptions.source;\n  }\n  get domNode() {\n    return this._renderedHoverParts.domNode;\n  }\n  get domNodeHasChildren() {\n    return this._renderedHoverParts.domNodeHasChildren;\n  }\n  get focusedHoverPartIndex() {\n    return this._renderedHoverParts.focusedHoverPartIndex;\n  }\n  get hoverPartsCount() {\n    return this._renderedHoverParts.hoverPartsCount;\n  }\n  focusHoverPartWithIndex(index) {\n    this._renderedHoverParts.focusHoverPartWithIndex(index);\n  }\n  async updateHoverVerbosityLevel(action, index, focus) {\n    this._renderedHoverParts.updateHoverVerbosityLevel(action, index, focus);\n  }\n  isColorPickerVisible() {\n    return this._renderedHoverParts.isColorPickerVisible();\n  }\n  static computeHoverPositions(editor2, anchorRange, hoverParts) {\n    let startColumnBoundary = 1;\n    if (editor2.hasModel()) {\n      const viewModel = editor2._getViewModel();\n      const coordinatesConverter = viewModel.coordinatesConverter;\n      const anchorViewRange = coordinatesConverter.convertModelRangeToViewRange(anchorRange);\n      const anchorViewMinColumn = viewModel.getLineMinColumn(anchorViewRange.startLineNumber);\n      const anchorViewRangeStart = new Position(anchorViewRange.startLineNumber, anchorViewMinColumn);\n      startColumnBoundary = coordinatesConverter.convertViewPositionToModelPosition(anchorViewRangeStart).column;\n    }\n    const anchorStartLineNumber = anchorRange.startLineNumber;\n    let secondaryPositionColumn = anchorRange.startColumn;\n    let forceShowAtRange;\n    for (const hoverPart of hoverParts) {\n      const hoverPartRange = hoverPart.range;\n      const hoverPartRangeOnAnchorStartLine = hoverPartRange.startLineNumber === anchorStartLineNumber;\n      const hoverPartRangeOnAnchorEndLine = hoverPartRange.endLineNumber === anchorStartLineNumber;\n      const hoverPartRangeIsOnAnchorLine = hoverPartRangeOnAnchorStartLine \u0026\u0026 hoverPartRangeOnAnchorEndLine;\n      if (hoverPartRangeIsOnAnchorLine) {\n        const hoverPartStartColumn = hoverPartRange.startColumn;\n        const minSecondaryPositionColumn = Math.min(secondaryPositionColumn, hoverPartStartColumn);\n        secondaryPositionColumn = Math.max(minSecondaryPositionColumn, startColumnBoundary);\n      }\n      if (hoverPart.forceShowAtRange) {\n        forceShowAtRange = hoverPartRange;\n      }\n    }\n    let showAtPosition;\n    let showAtSecondaryPosition;\n    if (forceShowAtRange) {\n      const forceShowAtPosition = forceShowAtRange.getStartPosition();\n      showAtPosition = forceShowAtPosition;\n      showAtSecondaryPosition = forceShowAtPosition;\n    } else {\n      showAtPosition = anchorRange.getStartPosition();\n      showAtSecondaryPosition = new Position(anchorStartLineNumber, secondaryPositionColumn);\n    }\n    return {\n      showAtPosition,\n      showAtSecondaryPosition\n    };\n  }\n};\nRenderedContentHover = RenderedContentHover_1 = __decorate76([\n  __param70(4, IKeybindingService),\n  __param70(5, IHoverService)\n], RenderedContentHover);\nvar RenderedStatusBar = class {\n  constructor(fragment, _statusBar) {\n    this._statusBar = _statusBar;\n    fragment.appendChild(this._statusBar.hoverElement);\n  }\n  get hoverElement() {\n    return this._statusBar.hoverElement;\n  }\n  get actions() {\n    return this._statusBar.actions;\n  }\n  dispose() {\n    this._statusBar.dispose();\n  }\n};\nvar RenderedContentHoverParts = class RenderedContentHoverParts2 extends Disposable {\n  static {\n    RenderedContentHoverParts_1 = this;\n  }\n  static {\n    this._DECORATION_OPTIONS = ModelDecorationOptions.register({\n      description: \"content-hover-highlight\",\n      className: \"hoverHighlight\"\n    });\n  }\n  constructor(editor2, participants, hoverParts, context, keybindingService, hoverService) {\n    super();\n    this._renderedParts = [];\n    this._focusedHoverPartIndex = -1;\n    this._context = context;\n    this._fragment = document.createDocumentFragment();\n    this._register(this._renderParts(participants, hoverParts, context, keybindingService, hoverService));\n    this._register(this._registerListenersOnRenderedParts());\n    this._register(this._createEditorDecorations(editor2, hoverParts));\n    this._updateMarkdownAndColorParticipantInfo(participants);\n  }\n  _createEditorDecorations(editor2, hoverParts) {\n    if (hoverParts.length === 0) {\n      return Disposable.None;\n    }\n    let highlightRange = hoverParts[0].range;\n    for (const hoverPart of hoverParts) {\n      const hoverPartRange = hoverPart.range;\n      highlightRange = Range.plusRange(highlightRange, hoverPartRange);\n    }\n    const highlightDecoration = editor2.createDecorationsCollection();\n    highlightDecoration.set([{\n      range: highlightRange,\n      options: RenderedContentHoverParts_1._DECORATION_OPTIONS\n    }]);\n    return toDisposable(() =\u003e {\n      highlightDecoration.clear();\n    });\n  }\n  _renderParts(participants, hoverParts, hoverContext, keybindingService, hoverService) {\n    const statusBar = new EditorHoverStatusBar(keybindingService, hoverService);\n    const hoverRenderingContext = {\n      fragment: this._fragment,\n      statusBar,\n      ...hoverContext\n    };\n    const disposables = new DisposableStore();\n    disposables.add(statusBar);\n    for (const participant of participants) {\n      const renderedHoverParts = this._renderHoverPartsForParticipant(hoverParts, participant, hoverRenderingContext);\n      disposables.add(renderedHoverParts);\n      for (const renderedHoverPart of renderedHoverParts.renderedHoverParts) {\n        this._renderedParts.push({\n          type: \"hoverPart\",\n          participant,\n          hoverPart: renderedHoverPart.hoverPart,\n          hoverElement: renderedHoverPart.hoverElement\n        });\n      }\n    }\n    const renderedStatusBar = this._renderStatusBar(this._fragment, statusBar);\n    if (renderedStatusBar) {\n      disposables.add(renderedStatusBar);\n      this._renderedParts.push({\n        type: \"statusBar\",\n        hoverElement: renderedStatusBar.hoverElement,\n        actions: renderedStatusBar.actions\n      });\n    }\n    return disposables;\n  }\n  _renderHoverPartsForParticipant(hoverParts, participant, hoverRenderingContext) {\n    const hoverPartsForParticipant = hoverParts.filter((hoverPart) =\u003e hoverPart.owner === participant);\n    const hasHoverPartsForParticipant = hoverPartsForParticipant.length \u003e 0;\n    if (!hasHoverPartsForParticipant) {\n      return new RenderedHoverParts([]);\n    }\n    return participant.renderHoverParts(hoverRenderingContext, hoverPartsForParticipant);\n  }\n  _renderStatusBar(fragment, statusBar) {\n    if (!statusBar.hasContent) {\n      return void 0;\n    }\n    return new RenderedStatusBar(fragment, statusBar);\n  }\n  _registerListenersOnRenderedParts() {\n    const disposables = new DisposableStore();\n    this._renderedParts.forEach((renderedPart, index) =\u003e {\n      const element = renderedPart.hoverElement;\n      element.tabIndex = 0;\n      disposables.add(addDisposableListener(element, EventType.FOCUS_IN, (event) =\u003e {\n        event.stopPropagation();\n        this._focusedHoverPartIndex = index;\n      }));\n      disposables.add(addDisposableListener(element, EventType.FOCUS_OUT, (event) =\u003e {\n        event.stopPropagation();\n        this._focusedHoverPartIndex = -1;\n      }));\n    });\n    return disposables;\n  }\n  _updateMarkdownAndColorParticipantInfo(participants) {\n    const markdownHoverParticipant = participants.find((p) =\u003e {\n      return p instanceof MarkdownHoverParticipant \u0026\u0026 !(p instanceof InlayHintsHover);\n    });\n    if (markdownHoverParticipant) {\n      this._markdownHoverParticipant = markdownHoverParticipant;\n    }\n    this._colorHoverParticipant = participants.find((p) =\u003e p instanceof HoverColorPickerParticipant);\n  }\n  focusHoverPartWithIndex(index) {\n    if (index \u003c 0 || index \u003e= this._renderedParts.length) {\n      return;\n    }\n    this._renderedParts[index].hoverElement.focus();\n  }\n  async updateHoverVerbosityLevel(action, index, focus) {\n    if (!this._markdownHoverParticipant) {\n      return;\n    }\n    let rangeOfIndicesToUpdate;\n    if (index \u003e= 0) {\n      rangeOfIndicesToUpdate = { start: index, endExclusive: index + 1 };\n    } else {\n      rangeOfIndicesToUpdate = this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);\n    }\n    for (let i2 = rangeOfIndicesToUpdate.start; i2 \u003c rangeOfIndicesToUpdate.endExclusive; i2++) {\n      const normalizedMarkdownHoverIndex = this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant, i2);\n      if (normalizedMarkdownHoverIndex === void 0) {\n        continue;\n      }\n      const renderedPart = await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(action, normalizedMarkdownHoverIndex);\n      if (!renderedPart) {\n        continue;\n      }\n      this._renderedParts[i2] = {\n        type: \"hoverPart\",\n        participant: this._markdownHoverParticipant,\n        hoverPart: renderedPart.hoverPart,\n        hoverElement: renderedPart.hoverElement\n      };\n    }\n    if (focus) {\n      if (index \u003e= 0) {\n        this.focusHoverPartWithIndex(index);\n      } else {\n        this._context.focus();\n      }\n    }\n    this._context.onContentsChanged();\n  }\n  isColorPickerVisible() {\n    return this._colorHoverParticipant?.isColorPickerVisible() ?? false;\n  }\n  _normalizedIndexToMarkdownHoverIndexRange(markdownHoverParticipant, index) {\n    const renderedPart = this._renderedParts[index];\n    if (!renderedPart || renderedPart.type !== \"hoverPart\") {\n      return void 0;\n    }\n    const isHoverPartMarkdownHover = renderedPart.participant === markdownHoverParticipant;\n    if (!isHoverPartMarkdownHover) {\n      return void 0;\n    }\n    const firstIndexOfMarkdownHovers = this._renderedParts.findIndex((renderedPart2) =\u003e renderedPart2.type === \"hoverPart\" \u0026\u0026 renderedPart2.participant === markdownHoverParticipant);\n    if (firstIndexOfMarkdownHovers === -1) {\n      throw new BugIndicatingError();\n    }\n    return index - firstIndexOfMarkdownHovers;\n  }\n  _findRangeOfMarkdownHoverParts(markdownHoverParticipant) {\n    const copiedRenderedParts = this._renderedParts.slice();\n    const firstIndexOfMarkdownHovers = copiedRenderedParts.findIndex((renderedPart) =\u003e renderedPart.type === \"hoverPart\" \u0026\u0026 renderedPart.participant === markdownHoverParticipant);\n    const inversedLastIndexOfMarkdownHovers = copiedRenderedParts.reverse().findIndex((renderedPart) =\u003e renderedPart.type === \"hoverPart\" \u0026\u0026 renderedPart.participant === markdownHoverParticipant);\n    const lastIndexOfMarkdownHovers = inversedLastIndexOfMarkdownHovers \u003e= 0 ? copiedRenderedParts.length - inversedLastIndexOfMarkdownHovers : inversedLastIndexOfMarkdownHovers;\n    return { start: firstIndexOfMarkdownHovers, endExclusive: lastIndexOfMarkdownHovers + 1 };\n  }\n  get domNode() {\n    return this._fragment;\n  }\n  get domNodeHasChildren() {\n    return this._fragment.hasChildNodes();\n  }\n  get focusedHoverPartIndex() {\n    return this._focusedHoverPartIndex;\n  }\n  get hoverPartsCount() {\n    return this._renderedParts.length;\n  }\n};\nRenderedContentHoverParts = RenderedContentHoverParts_1 = __decorate76([\n  __param70(4, IKeybindingService),\n  __param70(5, IHoverService)\n], RenderedContentHoverParts);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverWidgetWrapper.js\nvar __decorate77 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param71 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ContentHoverWidgetWrapper = class ContentHoverWidgetWrapper2 extends Disposable {\n  constructor(_editor, _instantiationService, _keybindingService, _hoverService) {\n    super();\n    this._editor = _editor;\n    this._instantiationService = _instantiationService;\n    this._keybindingService = _keybindingService;\n    this._hoverService = _hoverService;\n    this._currentResult = null;\n    this._renderedContentHover = this._register(new MutableDisposable());\n    this._onContentsChanged = this._register(new Emitter());\n    this.onContentsChanged = this._onContentsChanged.event;\n    this._contentHoverWidget = this._register(this._instantiationService.createInstance(ContentHoverWidget, this._editor));\n    this._participants = this._initializeHoverParticipants();\n    this._hoverOperation = this._register(new HoverOperation(this._editor, new ContentHoverComputer(this._editor, this._participants)));\n    this._registerListeners();\n  }\n  _initializeHoverParticipants() {\n    const participants = [];\n    for (const participant of HoverParticipantRegistry.getAll()) {\n      const participantInstance = this._instantiationService.createInstance(participant, this._editor);\n      participants.push(participantInstance);\n    }\n    participants.sort((p1, p2) =\u003e p1.hoverOrdinal - p2.hoverOrdinal);\n    this._register(this._contentHoverWidget.onDidResize(() =\u003e {\n      this._participants.forEach((participant) =\u003e participant.handleResize?.());\n    }));\n    this._register(this._contentHoverWidget.onDidScroll((e) =\u003e {\n      this._participants.forEach((participant) =\u003e participant.handleScroll?.(e));\n    }));\n    this._register(this._contentHoverWidget.onContentsChanged(() =\u003e {\n      this._participants.forEach((participant) =\u003e participant.handleContentsChanged?.());\n    }));\n    return participants;\n  }\n  _registerListeners() {\n    this._register(this._hoverOperation.onResult((result) =\u003e {\n      const messages = result.hasLoadingMessage ? this._addLoadingMessage(result) : result.value;\n      this._withResult(new ContentHoverResult(messages, result.isComplete, result.options));\n    }));\n    const contentHoverWidgetNode = this._contentHoverWidget.getDomNode();\n    this._register(addStandardDisposableListener(contentHoverWidgetNode, \"keydown\", (e) =\u003e {\n      if (e.equals(\n        9\n        /* KeyCode.Escape */\n      )) {\n        this.hide();\n      }\n    }));\n    this._register(addStandardDisposableListener(contentHoverWidgetNode, \"mouseleave\", (e) =\u003e {\n      this._onMouseLeave(e);\n    }));\n    this._register(TokenizationRegistry2.onDidChange(() =\u003e {\n      if (this._contentHoverWidget.position \u0026\u0026 this._currentResult) {\n        this._setCurrentResult(this._currentResult);\n      }\n    }));\n    this._register(this._contentHoverWidget.onContentsChanged(() =\u003e {\n      this._onContentsChanged.fire();\n    }));\n  }\n  /**\n   * Returns true if the hover shows now or will show.\n   */\n  _startShowingOrUpdateHover(anchor, mode, source, focus, mouseEvent) {\n    const contentHoverIsVisible = this._contentHoverWidget.position \u0026\u0026 this._currentResult;\n    if (!contentHoverIsVisible) {\n      if (anchor) {\n        this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n        return true;\n      }\n      return false;\n    }\n    const isHoverSticky = this._editor.getOption(\n      69\n      /* EditorOption.hover */\n    ).sticky;\n    const isMouseGettingCloser = mouseEvent \u0026\u0026 this._contentHoverWidget.isMouseGettingCloser(mouseEvent.event.posx, mouseEvent.event.posy);\n    const isHoverStickyAndIsMouseGettingCloser = isHoverSticky \u0026\u0026 isMouseGettingCloser;\n    if (isHoverStickyAndIsMouseGettingCloser) {\n      if (anchor) {\n        this._startHoverOperationIfNecessary(anchor, mode, source, focus, true);\n      }\n      return true;\n    }\n    if (!anchor) {\n      this._setCurrentResult(null);\n      return false;\n    }\n    const currentAnchorEqualsPreviousAnchor = this._currentResult \u0026\u0026 this._currentResult.options.anchor.equals(anchor);\n    if (currentAnchorEqualsPreviousAnchor) {\n      return true;\n    }\n    const currentAnchorCompatibleWithPreviousAnchor = this._currentResult \u0026\u0026 anchor.canAdoptVisibleHover(this._currentResult.options.anchor, this._contentHoverWidget.position);\n    if (!currentAnchorCompatibleWithPreviousAnchor) {\n      this._setCurrentResult(null);\n      this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n      return true;\n    }\n    if (this._currentResult) {\n      this._setCurrentResult(this._currentResult.filter(anchor));\n    }\n    this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n    return true;\n  }\n  _startHoverOperationIfNecessary(anchor, mode, source, shouldFocus, insistOnKeepingHoverVisible) {\n    const currentAnchorEqualToPreviousHover = this._hoverOperation.options \u0026\u0026 this._hoverOperation.options.anchor.equals(anchor);\n    if (currentAnchorEqualToPreviousHover) {\n      return;\n    }\n    this._hoverOperation.cancel();\n    const contentHoverComputerOptions = {\n      anchor,\n      source,\n      shouldFocus,\n      insistOnKeepingHoverVisible\n    };\n    this._hoverOperation.start(mode, contentHoverComputerOptions);\n  }\n  _setCurrentResult(hoverResult) {\n    let currentHoverResult = hoverResult;\n    const currentResultEqualToPreviousResult = this._currentResult === currentHoverResult;\n    if (currentResultEqualToPreviousResult) {\n      return;\n    }\n    const currentHoverResultIsEmpty = currentHoverResult \u0026\u0026 currentHoverResult.hoverParts.length === 0;\n    if (currentHoverResultIsEmpty) {\n      currentHoverResult = null;\n    }\n    this._currentResult = currentHoverResult;\n    if (this._currentResult) {\n      this._showHover(this._currentResult);\n    } else {\n      this._hideHover();\n    }\n  }\n  _addLoadingMessage(hoverResult) {\n    for (const participant of this._participants) {\n      if (!participant.createLoadingMessage) {\n        continue;\n      }\n      const loadingMessage = participant.createLoadingMessage(hoverResult.options.anchor);\n      if (!loadingMessage) {\n        continue;\n      }\n      return hoverResult.value.slice(0).concat([loadingMessage]);\n    }\n    return hoverResult.value;\n  }\n  _withResult(hoverResult) {\n    const previousHoverIsVisibleWithCompleteResult = this._contentHoverWidget.position \u0026\u0026 this._currentResult \u0026\u0026 this._currentResult.isComplete;\n    if (!previousHoverIsVisibleWithCompleteResult) {\n      this._setCurrentResult(hoverResult);\n    }\n    const isCurrentHoverResultComplete = hoverResult.isComplete;\n    if (!isCurrentHoverResultComplete) {\n      return;\n    }\n    const currentHoverResultIsEmpty = hoverResult.hoverParts.length === 0;\n    const insistOnKeepingPreviousHoverVisible = hoverResult.options.insistOnKeepingHoverVisible;\n    const shouldKeepPreviousHoverVisible = currentHoverResultIsEmpty \u0026\u0026 insistOnKeepingPreviousHoverVisible;\n    if (shouldKeepPreviousHoverVisible) {\n      return;\n    }\n    this._setCurrentResult(hoverResult);\n  }\n  _showHover(hoverResult) {\n    const context = this._getHoverContext();\n    this._renderedContentHover.value = new RenderedContentHover(this._editor, hoverResult, this._participants, context, this._keybindingService, this._hoverService);\n    if (this._renderedContentHover.value.domNodeHasChildren) {\n      this._contentHoverWidget.show(this._renderedContentHover.value);\n    } else {\n      this._renderedContentHover.clear();\n    }\n  }\n  _hideHover() {\n    this._contentHoverWidget.hide();\n    this._participants.forEach((participant) =\u003e participant.handleHide?.());\n  }\n  _getHoverContext() {\n    const hide2 = () =\u003e {\n      this.hide();\n    };\n    const onContentsChanged = () =\u003e {\n      this._contentHoverWidget.handleContentsChanged();\n    };\n    const setMinimumDimensions = (dimensions) =\u003e {\n      this._contentHoverWidget.setMinimumDimensions(dimensions);\n    };\n    const focus = () =\u003e this.focus();\n    return { hide: hide2, onContentsChanged, setMinimumDimensions, focus };\n  }\n  showsOrWillShow(mouseEvent) {\n    const isContentWidgetResizing = this._contentHoverWidget.isResizing;\n    if (isContentWidgetResizing) {\n      return true;\n    }\n    const anchorCandidates = this._findHoverAnchorCandidates(mouseEvent);\n    const anchorCandidatesExist = anchorCandidates.length \u003e 0;\n    if (!anchorCandidatesExist) {\n      return this._startShowingOrUpdateHover(null, 0, 0, false, mouseEvent);\n    }\n    const anchor = anchorCandidates[0];\n    return this._startShowingOrUpdateHover(anchor, 0, 0, false, mouseEvent);\n  }\n  _findHoverAnchorCandidates(mouseEvent) {\n    const anchorCandidates = [];\n    for (const participant of this._participants) {\n      if (!participant.suggestHoverAnchor) {\n        continue;\n      }\n      const anchor = participant.suggestHoverAnchor(mouseEvent);\n      if (!anchor) {\n        continue;\n      }\n      anchorCandidates.push(anchor);\n    }\n    const target = mouseEvent.target;\n    switch (target.type) {\n      case 6: {\n        anchorCandidates.push(new HoverRangeAnchor(0, target.range, mouseEvent.event.posx, mouseEvent.event.posy));\n        break;\n      }\n      case 7: {\n        const epsilon = this._editor.getOption(\n          59\n          /* EditorOption.fontInfo */\n        ).typicalHalfwidthCharacterWidth / 2;\n        const mouseIsWithinLinesAndCloseToHover = !target.detail.isAfterLines \u0026\u0026 typeof target.detail.horizontalDistanceToText === \"number\" \u0026\u0026 target.detail.horizontalDistanceToText \u003c epsilon;\n        if (!mouseIsWithinLinesAndCloseToHover) {\n          break;\n        }\n        anchorCandidates.push(new HoverRangeAnchor(0, target.range, mouseEvent.event.posx, mouseEvent.event.posy));\n        break;\n      }\n    }\n    anchorCandidates.sort((a, b) =\u003e b.priority - a.priority);\n    return anchorCandidates;\n  }\n  _onMouseLeave(e) {\n    const editorDomNode = this._editor.getDomNode();\n    const isMousePositionOutsideOfEditor = !editorDomNode || !isMousePositionWithinElement(editorDomNode, e.x, e.y);\n    if (isMousePositionOutsideOfEditor) {\n      this.hide();\n    }\n  }\n  startShowingAtRange(range2, mode, source, focus) {\n    this._startShowingOrUpdateHover(new HoverRangeAnchor(0, range2, void 0, void 0), mode, source, focus, null);\n  }\n  async updateHoverVerbosityLevel(action, index, focus) {\n    this._renderedContentHover.value?.updateHoverVerbosityLevel(action, index, focus);\n  }\n  focusedHoverPartIndex() {\n    return this._renderedContentHover.value?.focusedHoverPartIndex ?? -1;\n  }\n  containsNode(node) {\n    return node ? this._contentHoverWidget.getDomNode().contains(node) : false;\n  }\n  focus() {\n    const hoverPartsCount = this._renderedContentHover.value?.hoverPartsCount;\n    if (hoverPartsCount === 1) {\n      this.focusHoverPartWithIndex(0);\n      return;\n    }\n    this._contentHoverWidget.focus();\n  }\n  focusHoverPartWithIndex(index) {\n    this._renderedContentHover.value?.focusHoverPartWithIndex(index);\n  }\n  scrollUp() {\n    this._contentHoverWidget.scrollUp();\n  }\n  scrollDown() {\n    this._contentHoverWidget.scrollDown();\n  }\n  scrollLeft() {\n    this._contentHoverWidget.scrollLeft();\n  }\n  scrollRight() {\n    this._contentHoverWidget.scrollRight();\n  }\n  pageUp() {\n    this._contentHoverWidget.pageUp();\n  }\n  pageDown() {\n    this._contentHoverWidget.pageDown();\n  }\n  goToTop() {\n    this._contentHoverWidget.goToTop();\n  }\n  goToBottom() {\n    this._contentHoverWidget.goToBottom();\n  }\n  hide() {\n    this._hoverOperation.cancel();\n    this._setCurrentResult(null);\n  }\n  getDomNode() {\n    return this._contentHoverWidget.getDomNode();\n  }\n  get isColorPickerVisible() {\n    return this._renderedContentHover.value?.isColorPickerVisible() ?? false;\n  }\n  get isVisibleFromKeyboard() {\n    return this._contentHoverWidget.isVisibleFromKeyboard;\n  }\n  get isVisible() {\n    return this._contentHoverWidget.isVisible;\n  }\n  get isFocused() {\n    return this._contentHoverWidget.isFocused;\n  }\n  get isResizing() {\n    return this._contentHoverWidget.isResizing;\n  }\n  get widget() {\n    return this._contentHoverWidget;\n  }\n};\nContentHoverWidgetWrapper = __decorate77([\n  __param71(1, IInstantiationService),\n  __param71(2, IKeybindingService),\n  __param71(3, IHoverService)\n], ContentHoverWidgetWrapper);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverController.js\ninit_event();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPicker.js\nfunction isOnColorDecorator(mouseEvent) {\n  const target = mouseEvent.target;\n  return !!target \u0026\u0026 target.type === 6 \u0026\u0026 target.detail.injectedText?.options.attachedData === ColorDecorationInjectedTextMarker;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/contentHoverController.js\nvar __decorate78 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param72 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ContentHoverController_1;\nvar _sticky = false;\nvar ContentHoverController = class ContentHoverController2 extends Disposable {\n  static {\n    ContentHoverController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.contentHover\";\n  }\n  constructor(_editor, _contextMenuService, _instantiationService, _keybindingService) {\n    super();\n    this._editor = _editor;\n    this._instantiationService = _instantiationService;\n    this._keybindingService = _keybindingService;\n    this._onHoverContentsChanged = this._register(new Emitter());\n    this.shouldKeepOpenOnEditorMouseMoveOrLeave = false;\n    this._listenersStore = new DisposableStore();\n    this._isMouseDown = false;\n    this._ignoreMouseEvents = false;\n    this._reactToEditorMouseMoveRunner = this._register(new RunOnceScheduler(() =\u003e {\n      if (this._mouseMoveEvent) {\n        this._reactToEditorMouseMove(this._mouseMoveEvent);\n      }\n    }, 0));\n    this._register(_contextMenuService.onDidShowContextMenu(() =\u003e {\n      this.hideContentHover();\n      this._ignoreMouseEvents = true;\n    }));\n    this._register(_contextMenuService.onDidHideContextMenu(() =\u003e {\n      this._ignoreMouseEvents = false;\n    }));\n    this._hookListeners();\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        69\n        /* EditorOption.hover */\n      )) {\n        this._unhookListeners();\n        this._hookListeners();\n      }\n    }));\n  }\n  static get(editor2) {\n    return editor2.getContribution(ContentHoverController_1.ID);\n  }\n  _hookListeners() {\n    const hoverOpts = this._editor.getOption(\n      69\n      /* EditorOption.hover */\n    );\n    this._hoverSettings = {\n      enabled: hoverOpts.enabled,\n      sticky: hoverOpts.sticky,\n      hidingDelay: hoverOpts.hidingDelay\n    };\n    if (!hoverOpts.enabled) {\n      this._cancelSchedulerAndHide();\n    }\n    this._listenersStore.add(this._editor.onMouseDown((e) =\u003e this._onEditorMouseDown(e)));\n    this._listenersStore.add(this._editor.onMouseUp(() =\u003e this._onEditorMouseUp()));\n    this._listenersStore.add(this._editor.onMouseMove((e) =\u003e this._onEditorMouseMove(e)));\n    this._listenersStore.add(this._editor.onKeyDown((e) =\u003e this._onKeyDown(e)));\n    this._listenersStore.add(this._editor.onMouseLeave((e) =\u003e this._onEditorMouseLeave(e)));\n    this._listenersStore.add(this._editor.onDidChangeModel(() =\u003e this._cancelSchedulerAndHide()));\n    this._listenersStore.add(this._editor.onDidChangeModelContent(() =\u003e this._cancelScheduler()));\n    this._listenersStore.add(this._editor.onDidScrollChange((e) =\u003e this._onEditorScrollChanged(e)));\n  }\n  _unhookListeners() {\n    this._listenersStore.clear();\n  }\n  _cancelSchedulerAndHide() {\n    this._cancelScheduler();\n    this.hideContentHover();\n  }\n  _cancelScheduler() {\n    this._mouseMoveEvent = void 0;\n    this._reactToEditorMouseMoveRunner.cancel();\n  }\n  _onEditorScrollChanged(e) {\n    if (this._ignoreMouseEvents) {\n      return;\n    }\n    if (e.scrollTopChanged || e.scrollLeftChanged) {\n      this.hideContentHover();\n    }\n  }\n  _onEditorMouseDown(mouseEvent) {\n    if (this._ignoreMouseEvents) {\n      return;\n    }\n    this._isMouseDown = true;\n    const shouldKeepHoverWidgetVisible = this._shouldKeepHoverWidgetVisible(mouseEvent);\n    if (shouldKeepHoverWidgetVisible) {\n      return;\n    }\n    this.hideContentHover();\n  }\n  _shouldKeepHoverWidgetVisible(mouseEvent) {\n    return this._isMouseOnContentHoverWidget(mouseEvent) || this._isContentWidgetResizing() || isOnColorDecorator(mouseEvent);\n  }\n  _isMouseOnContentHoverWidget(mouseEvent) {\n    if (!this._contentWidget) {\n      return false;\n    }\n    return isMousePositionWithinElement(this._contentWidget.getDomNode(), mouseEvent.event.posx, mouseEvent.event.posy);\n  }\n  _onEditorMouseUp() {\n    if (this._ignoreMouseEvents) {\n      return;\n    }\n    this._isMouseDown = false;\n  }\n  _onEditorMouseLeave(mouseEvent) {\n    if (this._ignoreMouseEvents) {\n      return;\n    }\n    if (this.shouldKeepOpenOnEditorMouseMoveOrLeave) {\n      return;\n    }\n    this._cancelScheduler();\n    const shouldKeepHoverWidgetVisible = this._shouldKeepHoverWidgetVisible(mouseEvent);\n    if (shouldKeepHoverWidgetVisible) {\n      return;\n    }\n    if (_sticky) {\n      return;\n    }\n    this.hideContentHover();\n  }\n  _shouldKeepCurrentHover(mouseEvent) {\n    const contentWidget = this._contentWidget;\n    if (!contentWidget) {\n      return false;\n    }\n    const isHoverSticky = this._hoverSettings.sticky;\n    const isMouseOnStickyContentHoverWidget = (mouseEvent2, isHoverSticky2) =\u003e {\n      const isMouseOnContentHoverWidget = this._isMouseOnContentHoverWidget(mouseEvent2);\n      return isHoverSticky2 \u0026\u0026 isMouseOnContentHoverWidget;\n    };\n    const isMouseOnColorPickerOrChoosingColor = (mouseEvent2) =\u003e {\n      const isColorPickerVisible = contentWidget.isColorPickerVisible;\n      const isMouseOnContentHoverWidget = this._isMouseOnContentHoverWidget(mouseEvent2);\n      const isMouseOnHoverWithColorPicker = isColorPickerVisible \u0026\u0026 isMouseOnContentHoverWidget;\n      const isMaybeChoosingColor = isColorPickerVisible \u0026\u0026 this._isMouseDown;\n      return isMouseOnHoverWithColorPicker || isMaybeChoosingColor;\n    };\n    const isTextSelectedWithinContentHoverWidget = (mouseEvent2, sticky) =\u003e {\n      const view = mouseEvent2.event.browserEvent.view;\n      if (!view) {\n        return false;\n      }\n      return sticky \u0026\u0026 contentWidget.containsNode(view.document.activeElement) \u0026\u0026 !view.getSelection()?.isCollapsed;\n    };\n    const isFocused = contentWidget.isFocused;\n    const isResizing = contentWidget.isResizing;\n    const isStickyAndVisibleFromKeyboard = this._hoverSettings.sticky \u0026\u0026 contentWidget.isVisibleFromKeyboard;\n    return this.shouldKeepOpenOnEditorMouseMoveOrLeave || isFocused || isResizing || isStickyAndVisibleFromKeyboard || isMouseOnStickyContentHoverWidget(mouseEvent, isHoverSticky) || isMouseOnColorPickerOrChoosingColor(mouseEvent) || isTextSelectedWithinContentHoverWidget(mouseEvent, isHoverSticky);\n  }\n  _onEditorMouseMove(mouseEvent) {\n    if (this._ignoreMouseEvents) {\n      return;\n    }\n    this._mouseMoveEvent = mouseEvent;\n    const shouldKeepCurrentHover = this._shouldKeepCurrentHover(mouseEvent);\n    if (shouldKeepCurrentHover) {\n      this._reactToEditorMouseMoveRunner.cancel();\n      return;\n    }\n    const shouldRescheduleHoverComputation = this._shouldRescheduleHoverComputation();\n    if (shouldRescheduleHoverComputation) {\n      if (!this._reactToEditorMouseMoveRunner.isScheduled()) {\n        this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);\n      }\n      return;\n    }\n    this._reactToEditorMouseMove(mouseEvent);\n  }\n  _shouldRescheduleHoverComputation() {\n    const hidingDelay = this._hoverSettings.hidingDelay;\n    const isContentHoverWidgetVisible = this._contentWidget?.isVisible ?? false;\n    return isContentHoverWidgetVisible \u0026\u0026 this._hoverSettings.sticky \u0026\u0026 hidingDelay \u003e 0;\n  }\n  _reactToEditorMouseMove(mouseEvent) {\n    if (this._hoverSettings.enabled) {\n      const contentWidget = this._getOrCreateContentWidget();\n      if (contentWidget.showsOrWillShow(mouseEvent)) {\n        return;\n      }\n    }\n    if (_sticky) {\n      return;\n    }\n    this.hideContentHover();\n  }\n  _onKeyDown(e) {\n    if (this._ignoreMouseEvents) {\n      return;\n    }\n    if (!this._contentWidget) {\n      return;\n    }\n    const isPotentialKeyboardShortcut = this._isPotentialKeyboardShortcut(e);\n    const isModifierKeyPressed = this._isModifierKeyPressed(e);\n    if (isPotentialKeyboardShortcut || isModifierKeyPressed) {\n      return;\n    }\n    if (this._contentWidget.isFocused \u0026\u0026 e.keyCode === 2) {\n      return;\n    }\n    this.hideContentHover();\n  }\n  _isPotentialKeyboardShortcut(e) {\n    if (!this._editor.hasModel() || !this._contentWidget) {\n      return false;\n    }\n    const resolvedKeyboardEvent = this._keybindingService.softDispatch(e, this._editor.getDomNode());\n    const moreChordsAreNeeded = resolvedKeyboardEvent.kind === 1;\n    const isHoverAction = resolvedKeyboardEvent.kind === 2 \u0026\u0026 (resolvedKeyboardEvent.commandId === SHOW_OR_FOCUS_HOVER_ACTION_ID || resolvedKeyboardEvent.commandId === INCREASE_HOVER_VERBOSITY_ACTION_ID || resolvedKeyboardEvent.commandId === DECREASE_HOVER_VERBOSITY_ACTION_ID) \u0026\u0026 this._contentWidget.isVisible;\n    return moreChordsAreNeeded || isHoverAction;\n  }\n  _isModifierKeyPressed(e) {\n    return e.keyCode === 5 || e.keyCode === 6 || e.keyCode === 57 || e.keyCode === 4;\n  }\n  hideContentHover() {\n    if (_sticky) {\n      return;\n    }\n    if (InlineSuggestionHintsContentWidget.dropDownVisible) {\n      return;\n    }\n    this._contentWidget?.hide();\n  }\n  _getOrCreateContentWidget() {\n    if (!this._contentWidget) {\n      this._contentWidget = this._instantiationService.createInstance(ContentHoverWidgetWrapper, this._editor);\n      this._listenersStore.add(this._contentWidget.onContentsChanged(() =\u003e this._onHoverContentsChanged.fire()));\n    }\n    return this._contentWidget;\n  }\n  showContentHover(range2, mode, source, focus) {\n    this._getOrCreateContentWidget().startShowingAtRange(range2, mode, source, focus);\n  }\n  _isContentWidgetResizing() {\n    return this._contentWidget?.widget.isResizing || false;\n  }\n  focusedHoverPartIndex() {\n    return this._getOrCreateContentWidget().focusedHoverPartIndex();\n  }\n  updateHoverVerbosityLevel(action, index, focus) {\n    this._getOrCreateContentWidget().updateHoverVerbosityLevel(action, index, focus);\n  }\n  focus() {\n    this._contentWidget?.focus();\n  }\n  scrollUp() {\n    this._contentWidget?.scrollUp();\n  }\n  scrollDown() {\n    this._contentWidget?.scrollDown();\n  }\n  scrollLeft() {\n    this._contentWidget?.scrollLeft();\n  }\n  scrollRight() {\n    this._contentWidget?.scrollRight();\n  }\n  pageUp() {\n    this._contentWidget?.pageUp();\n  }\n  pageDown() {\n    this._contentWidget?.pageDown();\n  }\n  goToTop() {\n    this._contentWidget?.goToTop();\n  }\n  goToBottom() {\n    this._contentWidget?.goToBottom();\n  }\n  get isColorPickerVisible() {\n    return this._contentWidget?.isColorPickerVisible;\n  }\n  get isHoverVisible() {\n    return this._contentWidget?.isVisible;\n  }\n  dispose() {\n    super.dispose();\n    this._unhookListeners();\n    this._listenersStore.dispose();\n    this._contentWidget?.dispose();\n  }\n};\nContentHoverController = ContentHoverController_1 = __decorate78([\n  __param72(1, IContextMenuService),\n  __param72(2, IInstantiationService),\n  __param72(3, IKeybindingService)\n], ContentHoverController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/hoverColorPicker/hoverColorPickerContribution.js\nvar HoverColorPickerContribution = class extends Disposable {\n  static {\n    this.ID = \"editor.contrib.colorContribution\";\n  }\n  // ms\n  constructor(_editor) {\n    super();\n    this._editor = _editor;\n    this._register(_editor.onMouseDown((e) =\u003e this.onMouseDown(e)));\n  }\n  dispose() {\n    super.dispose();\n  }\n  onMouseDown(mouseEvent) {\n    const colorDecoratorsActivatedOn = this._editor.getOption(\n      167\n      /* EditorOption.colorDecoratorsActivatedOn */\n    );\n    if (colorDecoratorsActivatedOn !== \"click\" \u0026\u0026 colorDecoratorsActivatedOn !== \"clickAndHover\") {\n      return;\n    }\n    if (!isOnColorDecorator(mouseEvent)) {\n      return;\n    }\n    const hoverController = this._editor.getContribution(ContentHoverController.ID);\n    if (!hoverController) {\n      return;\n    }\n    if (hoverController.isColorPickerVisible) {\n      return;\n    }\n    const targetRange = mouseEvent.target.range;\n    if (!targetRange) {\n      return;\n    }\n    const range2 = new Range(targetRange.startLineNumber, targetRange.startColumn + 1, targetRange.endLineNumber, targetRange.endColumn + 1);\n    hoverController.showContentHover(range2, 1, 1, false);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js\ninit_editorExtensions();\ninit_nls();\ninit_editorContextKeys();\ninit_actions2();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerController.js\ninit_contextkey();\ninit_instantiation();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerWidget.js\ninit_lifecycle();\ninit_instantiation();\ninit_event();\ninit_languageFeatures();\ninit_editorWorker();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerParticipant.js\ninit_cancellation();\ninit_lifecycle();\ninit_themeService();\ninit_range();\ninit_dom();\nvar __decorate79 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param73 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneColorPickerHover = class _StandaloneColorPickerHover {\n  constructor(owner, range2, model, provider) {\n    this.owner = owner;\n    this.range = range2;\n    this.model = model;\n    this.provider = provider;\n  }\n  static fromBaseColor(owner, color) {\n    return new _StandaloneColorPickerHover(owner, color.range, color.model, color.provider);\n  }\n};\nvar StandaloneColorPickerRenderedParts = class extends Disposable {\n  constructor(editor2, context, colorHover, themeService) {\n    super();\n    const editorModel = editor2.getModel();\n    const colorPickerModel = colorHover.model;\n    this.color = colorHover.model.color;\n    this.colorPicker = this._register(new ColorPickerWidget(\n      context.fragment,\n      colorPickerModel,\n      editor2.getOption(\n        162\n        /* EditorOption.pixelRatio */\n      ),\n      themeService,\n      \"standalone\"\n      /* ColorPickerWidgetType.Standalone */\n    ));\n    this._register(colorPickerModel.onColorFlushed((color) =\u003e {\n      this.color = color;\n    }));\n    this._register(colorPickerModel.onDidChangeColor((color) =\u003e {\n      updateColorPresentations(editorModel, colorPickerModel, color, colorHover.range, colorHover);\n    }));\n    let editorUpdatedByColorPicker = false;\n    this._register(editor2.onDidChangeModelContent((e) =\u003e {\n      if (editorUpdatedByColorPicker) {\n        editorUpdatedByColorPicker = false;\n      } else {\n        context.hide();\n        editor2.focus();\n      }\n    }));\n    updateColorPresentations(editorModel, colorPickerModel, this.color, colorHover.range, colorHover);\n  }\n};\nvar StandaloneColorPickerParticipant = class StandaloneColorPickerParticipant2 {\n  constructor(_editor, _themeService) {\n    this._editor = _editor;\n    this._themeService = _themeService;\n  }\n  async createColorHover(defaultColorInfo, defaultColorProvider, colorProviderRegistry) {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    const colorDetector = ColorDetector.get(this._editor);\n    if (!colorDetector) {\n      return null;\n    }\n    const colors = await getColors(colorProviderRegistry, this._editor.getModel(), CancellationToken.None);\n    let foundColorInfo = null;\n    let foundColorProvider = null;\n    for (const colorData of colors) {\n      const colorInfo2 = colorData.colorInfo;\n      if (Range.containsRange(colorInfo2.range, defaultColorInfo.range)) {\n        foundColorInfo = colorInfo2;\n        foundColorProvider = colorData.provider;\n      }\n    }\n    const colorInfo = foundColorInfo ?? defaultColorInfo;\n    const colorProvider = foundColorProvider ?? defaultColorProvider;\n    const foundInEditor = !!foundColorInfo;\n    const colorHover = StandaloneColorPickerHover.fromBaseColor(this, await createColorHover(this._editor.getModel(), colorInfo, colorProvider));\n    return { colorHover, foundInEditor };\n  }\n  async updateEditorModel(colorHoverData) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const colorPickerModel = colorHoverData.model;\n    let range2 = new Range(colorHoverData.range.startLineNumber, colorHoverData.range.startColumn, colorHoverData.range.endLineNumber, colorHoverData.range.endColumn);\n    if (this._color) {\n      await updateColorPresentations(this._editor.getModel(), colorPickerModel, this._color, range2, colorHoverData);\n      range2 = updateEditorModel(this._editor, range2, colorPickerModel);\n    }\n  }\n  renderHoverParts(context, hoverParts) {\n    if (hoverParts.length === 0 || !this._editor.hasModel()) {\n      return void 0;\n    }\n    this._setMinimumDimensions(context);\n    this._renderedParts = new StandaloneColorPickerRenderedParts(this._editor, context, hoverParts[0], this._themeService);\n    return this._renderedParts;\n  }\n  _setMinimumDimensions(context) {\n    const minimumHeight = this._editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    ) + 8;\n    context.setMinimumDimensions(new Dimension(302, minimumHeight));\n  }\n  get _color() {\n    return this._renderedParts?.color;\n  }\n};\nStandaloneColorPickerParticipant = __decorate79([\n  __param73(1, IThemeService)\n], StandaloneColorPickerParticipant);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerWidget.js\ninit_dom();\nvar __decorate80 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param74 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneColorPickerWidget_1;\nvar StandaloneColorPickerResult = class {\n  // The color picker result consists of: an array of color results and a boolean indicating if the color was found in the editor\n  constructor(value, foundInEditor) {\n    this.value = value;\n    this.foundInEditor = foundInEditor;\n  }\n};\nvar PADDING = 8;\nvar CLOSE_BUTTON_WIDTH = 22;\nvar StandaloneColorPickerWidget = class StandaloneColorPickerWidget2 extends Disposable {\n  static {\n    StandaloneColorPickerWidget_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.standaloneColorPickerWidget\";\n  }\n  constructor(_editor, _standaloneColorPickerVisible, _standaloneColorPickerFocused, _instantiationService, _keybindingService, _languageFeaturesService, _editorWorkerService, _hoverService) {\n    super();\n    this._editor = _editor;\n    this._standaloneColorPickerVisible = _standaloneColorPickerVisible;\n    this._standaloneColorPickerFocused = _standaloneColorPickerFocused;\n    this._keybindingService = _keybindingService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._editorWorkerService = _editorWorkerService;\n    this._hoverService = _hoverService;\n    this.allowEditorOverflow = true;\n    this._position = void 0;\n    this._body = document.createElement(\"div\");\n    this._colorHover = null;\n    this._selectionSetInEditor = false;\n    this._onResult = this._register(new Emitter());\n    this.onResult = this._onResult.event;\n    this._renderedHoverParts = this._register(new MutableDisposable());\n    this._renderedStatusBar = this._register(new MutableDisposable());\n    this._standaloneColorPickerVisible.set(true);\n    this._standaloneColorPickerParticipant = _instantiationService.createInstance(StandaloneColorPickerParticipant, this._editor);\n    this._position = this._editor._getViewModel()?.getPrimaryCursorState().modelState.position;\n    const editorSelection = this._editor.getSelection();\n    const selection = editorSelection ? {\n      startLineNumber: editorSelection.startLineNumber,\n      startColumn: editorSelection.startColumn,\n      endLineNumber: editorSelection.endLineNumber,\n      endColumn: editorSelection.endColumn\n    } : { startLineNumber: 0, endLineNumber: 0, endColumn: 0, startColumn: 0 };\n    const focusTracker = this._register(trackFocus(this._body));\n    this._register(focusTracker.onDidBlur((_) =\u003e {\n      this.hide();\n    }));\n    this._register(focusTracker.onDidFocus((_) =\u003e {\n      this.focus();\n    }));\n    this._register(this._editor.onDidChangeCursorPosition(() =\u003e {\n      if (!this._selectionSetInEditor) {\n        this.hide();\n      } else {\n        this._selectionSetInEditor = false;\n      }\n    }));\n    this._register(this._editor.onMouseMove((e) =\u003e {\n      const classList = e.target.element?.classList;\n      if (classList \u0026\u0026 classList.contains(\"colorpicker-color-decoration\")) {\n        this.hide();\n      }\n    }));\n    this._register(this.onResult((result) =\u003e {\n      this._render(result.value, result.foundInEditor);\n    }));\n    this._start(selection);\n    this._body.style.zIndex = \"50\";\n    this._editor.addContentWidget(this);\n  }\n  updateEditor() {\n    if (this._colorHover) {\n      this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover);\n    }\n  }\n  getId() {\n    return StandaloneColorPickerWidget_1.ID;\n  }\n  getDomNode() {\n    return this._body;\n  }\n  getPosition() {\n    if (!this._position) {\n      return null;\n    }\n    const positionPreference = this._editor.getOption(\n      69\n      /* EditorOption.hover */\n    ).above;\n    return {\n      position: this._position,\n      secondaryPosition: this._position,\n      preference: positionPreference ? [\n        1,\n        2\n        /* ContentWidgetPositionPreference.BELOW */\n      ] : [\n        2,\n        1\n        /* ContentWidgetPositionPreference.ABOVE */\n      ],\n      positionAffinity: 2\n      /* PositionAffinity.None */\n    };\n  }\n  hide() {\n    this.dispose();\n    this._standaloneColorPickerVisible.set(false);\n    this._standaloneColorPickerFocused.set(false);\n    this._editor.removeContentWidget(this);\n    this._editor.focus();\n  }\n  focus() {\n    this._standaloneColorPickerFocused.set(true);\n    this._body.focus();\n  }\n  async _start(selection) {\n    const computeAsyncResult = await this._computeAsync(selection);\n    if (!computeAsyncResult) {\n      return;\n    }\n    this._onResult.fire(new StandaloneColorPickerResult(computeAsyncResult.result, computeAsyncResult.foundInEditor));\n  }\n  async _computeAsync(range2) {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    const colorInfo = {\n      range: range2,\n      color: { red: 0, green: 0, blue: 0, alpha: 1 }\n    };\n    const colorHoverResult = await this._standaloneColorPickerParticipant.createColorHover(colorInfo, new DefaultDocumentColorProvider(this._editorWorkerService), this._languageFeaturesService.colorProvider);\n    if (!colorHoverResult) {\n      return null;\n    }\n    return { result: colorHoverResult.colorHover, foundInEditor: colorHoverResult.foundInEditor };\n  }\n  _render(colorHover, foundInEditor) {\n    const fragment = document.createDocumentFragment();\n    this._renderedStatusBar.value = this._register(new EditorHoverStatusBar(this._keybindingService, this._hoverService));\n    const context = {\n      fragment,\n      statusBar: this._renderedStatusBar.value,\n      onContentsChanged: () =\u003e {\n      },\n      setMinimumDimensions: () =\u003e {\n      },\n      hide: () =\u003e this.hide(),\n      focus: () =\u003e this.focus()\n    };\n    this._colorHover = colorHover;\n    this._renderedHoverParts.value = this._standaloneColorPickerParticipant.renderHoverParts(context, [colorHover]);\n    if (!this._renderedHoverParts.value) {\n      this._renderedStatusBar.clear();\n      this._renderedHoverParts.clear();\n      return;\n    }\n    const colorPicker = this._renderedHoverParts.value.colorPicker;\n    this._body.classList.add(\"standalone-colorpicker-body\");\n    this._body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + \"px\";\n    this._body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + \"px\";\n    this._body.tabIndex = 0;\n    this._body.appendChild(fragment);\n    colorPicker.layout();\n    const colorPickerBody = colorPicker.body;\n    const saturationBoxWidth = colorPickerBody.saturationBox.domNode.clientWidth;\n    const widthOfOriginalColorBox = colorPickerBody.domNode.clientWidth - saturationBoxWidth - CLOSE_BUTTON_WIDTH - PADDING;\n    const enterButton = colorPicker.body.enterButton;\n    enterButton?.onClicked(() =\u003e {\n      this.updateEditor();\n      this.hide();\n    });\n    const colorPickerHeader = colorPicker.header;\n    const pickedColorNode = colorPickerHeader.pickedColorNode;\n    pickedColorNode.style.width = saturationBoxWidth + PADDING + \"px\";\n    const originalColorNode = colorPickerHeader.originalColorNode;\n    originalColorNode.style.width = widthOfOriginalColorBox + \"px\";\n    const closeButton = colorPicker.header.closeButton;\n    closeButton?.onClicked(() =\u003e {\n      this.hide();\n    });\n    if (foundInEditor) {\n      if (enterButton) {\n        enterButton.button.textContent = \"Replace\";\n      }\n      this._selectionSetInEditor = true;\n      this._editor.setSelection(colorHover.range);\n    }\n    this._editor.layoutContentWidget(this);\n  }\n};\nStandaloneColorPickerWidget = StandaloneColorPickerWidget_1 = __decorate80([\n  __param74(3, IInstantiationService),\n  __param74(4, IKeybindingService),\n  __param74(5, ILanguageFeaturesService),\n  __param74(6, IEditorWorkerService),\n  __param74(7, IHoverService)\n], StandaloneColorPickerWidget);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerController.js\ninit_lifecycle();\nvar __decorate81 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param75 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneColorPickerController_1;\nvar StandaloneColorPickerController = class StandaloneColorPickerController2 extends Disposable {\n  static {\n    StandaloneColorPickerController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.standaloneColorPickerController\";\n  }\n  constructor(_editor, _contextKeyService, _instantiationService) {\n    super();\n    this._editor = _editor;\n    this._instantiationService = _instantiationService;\n    this._standaloneColorPickerWidget = null;\n    this._standaloneColorPickerVisible = EditorContextKeys.standaloneColorPickerVisible.bindTo(_contextKeyService);\n    this._standaloneColorPickerFocused = EditorContextKeys.standaloneColorPickerFocused.bindTo(_contextKeyService);\n  }\n  showOrFocus() {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    if (!this._standaloneColorPickerVisible.get()) {\n      this._standaloneColorPickerWidget = this._instantiationService.createInstance(StandaloneColorPickerWidget, this._editor, this._standaloneColorPickerVisible, this._standaloneColorPickerFocused);\n    } else if (!this._standaloneColorPickerFocused.get()) {\n      this._standaloneColorPickerWidget?.focus();\n    }\n  }\n  hide() {\n    this._standaloneColorPickerFocused.set(false);\n    this._standaloneColorPickerVisible.set(false);\n    this._standaloneColorPickerWidget?.hide();\n    this._editor.focus();\n  }\n  insertColor() {\n    this._standaloneColorPickerWidget?.updateEditor();\n    this.hide();\n  }\n  static get(editor2) {\n    return editor2.getContribution(StandaloneColorPickerController_1.ID);\n  }\n};\nStandaloneColorPickerController = StandaloneColorPickerController_1 = __decorate81([\n  __param75(1, IContextKeyService),\n  __param75(2, IInstantiationService)\n], StandaloneColorPickerController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPicker/standaloneColorPickerActions.js\nvar ShowOrFocusStandaloneColorPicker = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"editor.action.showOrFocusStandaloneColorPicker\",\n      title: {\n        ...localize2(881, \"Show or Focus Standalone Color Picker\"),\n        mnemonicTitle: localize(880, \"\u0026\u0026Show or Focus Standalone Color Picker\")\n      },\n      precondition: void 0,\n      menu: [\n        { id: MenuId.CommandPalette }\n      ],\n      metadata: {\n        description: localize2(882, \"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.\")\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2) {\n    StandaloneColorPickerController.get(editor2)?.showOrFocus();\n  }\n};\nvar HideStandaloneColorPicker = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.hideColorPicker\",\n      label: localize2(883, \"Hide the Color Picker\"),\n      precondition: EditorContextKeys.standaloneColorPickerVisible.isEqualTo(true),\n      kbOpts: {\n        primary: 9,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(884, \"Hide the standalone color picker.\")\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    StandaloneColorPickerController.get(editor2)?.hide();\n  }\n};\nvar InsertColorWithStandaloneColorPicker = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.insertColorWithStandaloneColorPicker\",\n      label: localize2(885, \"Insert Color with Standalone Color Picker\"),\n      precondition: EditorContextKeys.standaloneColorPickerFocused.isEqualTo(true),\n      kbOpts: {\n        primary: 3,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(886, \"Insert hex/rgb/hsl colors with the focused standalone color picker.\")\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    StandaloneColorPickerController.get(editor2)?.insertColor();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/colorPicker/browser/colorPickerContribution.js\ninit_range();\nregisterEditorAction(HideStandaloneColorPicker);\nregisterEditorAction(InsertColorWithStandaloneColorPicker);\nregisterAction2(ShowOrFocusStandaloneColorPicker);\nregisterEditorContribution(\n  HoverColorPickerContribution.ID,\n  HoverColorPickerContribution,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorContribution(\n  StandaloneColorPickerController.ID,\n  StandaloneColorPickerController,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nregisterEditorContribution(\n  ColorDetector.ID,\n  ColorDetector,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nregisterEditorFeature(DefaultDocumentColorProviderFeature);\nHoverParticipantRegistry.register(HoverColorPickerParticipant);\nCommandsRegistry.registerCommand(\"_executeDocumentColorProvider\", function(accessor, ...args) {\n  const [resource] = args;\n  if (!(resource instanceof URI)) {\n    throw illegalArgument();\n  }\n  const { model, colorProviderRegistry, defaultColorDecoratorsEnablement } = _setupColorCommand(accessor, resource);\n  return _findColorData(new ExtColorDataCollector(), colorProviderRegistry, model, CancellationToken.None, defaultColorDecoratorsEnablement);\n});\nCommandsRegistry.registerCommand(\"_executeColorPresentationProvider\", function(accessor, ...args) {\n  const [color, context] = args;\n  const { uri, range: range2 } = context;\n  if (!(uri instanceof URI) || !Array.isArray(color) || color.length !== 4 || !Range.isIRange(range2)) {\n    throw illegalArgument();\n  }\n  const { model, colorProviderRegistry, defaultColorDecoratorsEnablement } = _setupColorCommand(accessor, uri);\n  const [red, green, blue, alpha] = color;\n  return _findColorData(new ColorPresentationsCollector({ range: range2, color: { red, green, blue, alpha } }), colorProviderRegistry, model, CancellationToken.None, defaultColorDecoratorsEnablement);\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/comment/browser/comment.js\ninit_keyCodes();\ninit_editorExtensions();\ninit_range();\ninit_editorContextKeys();\ninit_languageConfigurationRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/comment/browser/blockCommentCommand.js\ninit_position();\ninit_range();\ninit_selection();\nvar BlockCommentCommand = class _BlockCommentCommand {\n  constructor(selection, insertSpace, languageConfigurationService) {\n    this.languageConfigurationService = languageConfigurationService;\n    this._selection = selection;\n    this._insertSpace = insertSpace;\n    this._usedEndToken = null;\n  }\n  static _haystackHasNeedleAtOffset(haystack, needle, offset) {\n    if (offset \u003c 0) {\n      return false;\n    }\n    const needleLength = needle.length;\n    const haystackLength = haystack.length;\n    if (offset + needleLength \u003e haystackLength) {\n      return false;\n    }\n    for (let i2 = 0; i2 \u003c needleLength; i2++) {\n      const codeA = haystack.charCodeAt(offset + i2);\n      const codeB = needle.charCodeAt(i2);\n      if (codeA === codeB) {\n        continue;\n      }\n      if (codeA \u003e= 65 \u0026\u0026 codeA \u003c= 90 \u0026\u0026 codeA + 32 === codeB) {\n        continue;\n      }\n      if (codeB \u003e= 65 \u0026\u0026 codeB \u003c= 90 \u0026\u0026 codeB + 32 === codeA) {\n        continue;\n      }\n      return false;\n    }\n    return true;\n  }\n  _createOperationsForBlockComment(selection, startToken, endToken, insertSpace, model, builder) {\n    const startLineNumber = selection.startLineNumber;\n    const startColumn = selection.startColumn;\n    const endLineNumber = selection.endLineNumber;\n    const endColumn = selection.endColumn;\n    const startLineText = model.getLineContent(startLineNumber);\n    const endLineText = model.getLineContent(endLineNumber);\n    let startTokenIndex = startLineText.lastIndexOf(startToken, startColumn - 1 + startToken.length);\n    let endTokenIndex = endLineText.indexOf(endToken, endColumn - 1 - endToken.length);\n    if (startTokenIndex !== -1 \u0026\u0026 endTokenIndex !== -1) {\n      if (startLineNumber === endLineNumber) {\n        const lineBetweenTokens = startLineText.substring(startTokenIndex + startToken.length, endTokenIndex);\n        if (lineBetweenTokens.indexOf(endToken) \u003e= 0) {\n          startTokenIndex = -1;\n          endTokenIndex = -1;\n        }\n      } else {\n        const startLineAfterStartToken = startLineText.substring(startTokenIndex + startToken.length);\n        const endLineBeforeEndToken = endLineText.substring(0, endTokenIndex);\n        if (startLineAfterStartToken.indexOf(endToken) \u003e= 0 || endLineBeforeEndToken.indexOf(endToken) \u003e= 0) {\n          startTokenIndex = -1;\n          endTokenIndex = -1;\n        }\n      }\n    }\n    let ops;\n    if (startTokenIndex !== -1 \u0026\u0026 endTokenIndex !== -1) {\n      if (insertSpace \u0026\u0026 startTokenIndex + startToken.length \u003c startLineText.length \u0026\u0026 startLineText.charCodeAt(startTokenIndex + startToken.length) === 32) {\n        startToken = startToken + \" \";\n      }\n      if (insertSpace \u0026\u0026 endTokenIndex \u003e 0 \u0026\u0026 endLineText.charCodeAt(endTokenIndex - 1) === 32) {\n        endToken = \" \" + endToken;\n        endTokenIndex -= 1;\n      }\n      ops = _BlockCommentCommand._createRemoveBlockCommentOperations(new Range(startLineNumber, startTokenIndex + startToken.length + 1, endLineNumber, endTokenIndex + 1), startToken, endToken);\n    } else {\n      ops = _BlockCommentCommand._createAddBlockCommentOperations(selection, startToken, endToken, this._insertSpace);\n      this._usedEndToken = ops.length === 1 ? endToken : null;\n    }\n    for (const op of ops) {\n      builder.addTrackedEditOperation(op.range, op.text);\n    }\n  }\n  static _createRemoveBlockCommentOperations(r, startToken, endToken) {\n    const res = [];\n    if (!Range.isEmpty(r)) {\n      res.push(EditOperation.delete(new Range(r.startLineNumber, r.startColumn - startToken.length, r.startLineNumber, r.startColumn)));\n      res.push(EditOperation.delete(new Range(r.endLineNumber, r.endColumn, r.endLineNumber, r.endColumn + endToken.length)));\n    } else {\n      res.push(EditOperation.delete(new Range(r.startLineNumber, r.startColumn - startToken.length, r.endLineNumber, r.endColumn + endToken.length)));\n    }\n    return res;\n  }\n  static _createAddBlockCommentOperations(r, startToken, endToken, insertSpace) {\n    const res = [];\n    if (!Range.isEmpty(r)) {\n      res.push(EditOperation.insert(new Position(r.startLineNumber, r.startColumn), startToken + (insertSpace ? \" \" : \"\")));\n      res.push(EditOperation.insert(new Position(r.endLineNumber, r.endColumn), (insertSpace ? \" \" : \"\") + endToken));\n    } else {\n      res.push(EditOperation.replace(new Range(r.startLineNumber, r.startColumn, r.endLineNumber, r.endColumn), startToken + \"  \" + endToken));\n    }\n    return res;\n  }\n  getEditOperations(model, builder) {\n    const startLineNumber = this._selection.startLineNumber;\n    const startColumn = this._selection.startColumn;\n    model.tokenization.tokenizeIfCheap(startLineNumber);\n    const languageId = model.getLanguageIdAtPosition(startLineNumber, startColumn);\n    const config = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n    if (!config || !config.blockCommentStartToken || !config.blockCommentEndToken) {\n      return;\n    }\n    this._createOperationsForBlockComment(this._selection, config.blockCommentStartToken, config.blockCommentEndToken, this._insertSpace, model, builder);\n  }\n  computeCursorState(model, helper) {\n    const inverseEditOperations = helper.getInverseEditOperations();\n    if (inverseEditOperations.length === 2) {\n      const startTokenEditOperation = inverseEditOperations[0];\n      const endTokenEditOperation = inverseEditOperations[1];\n      return new Selection(startTokenEditOperation.range.endLineNumber, startTokenEditOperation.range.endColumn, endTokenEditOperation.range.startLineNumber, endTokenEditOperation.range.startColumn);\n    } else {\n      const srcRange = inverseEditOperations[0].range;\n      const deltaColumn = this._usedEndToken ? -this._usedEndToken.length - 1 : 0;\n      return new Selection(srcRange.endLineNumber, srcRange.endColumn + deltaColumn, srcRange.endLineNumber, srcRange.endColumn + deltaColumn);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/comment/browser/lineCommentCommand.js\ninit_strings();\ninit_position();\ninit_range();\ninit_selection();\nvar LineCommentCommand = class _LineCommentCommand {\n  constructor(languageConfigurationService, selection, indentSize, type, insertSpace, ignoreEmptyLines, ignoreFirstLine) {\n    this.languageConfigurationService = languageConfigurationService;\n    this._selection = selection;\n    this._indentSize = indentSize;\n    this._type = type;\n    this._insertSpace = insertSpace;\n    this._selectionId = null;\n    this._deltaColumn = 0;\n    this._moveEndPositionDown = false;\n    this._ignoreEmptyLines = ignoreEmptyLines;\n    this._ignoreFirstLine = ignoreFirstLine || false;\n  }\n  /**\n   * Do an initial pass over the lines and gather info about the line comment string.\n   * Returns null if any of the lines doesn't support a line comment string.\n   */\n  static _gatherPreflightCommentStrings(model, startLineNumber, endLineNumber, languageConfigurationService) {\n    model.tokenization.tokenizeIfCheap(startLineNumber);\n    const languageId = model.getLanguageIdAtPosition(startLineNumber, 1);\n    const config = languageConfigurationService.getLanguageConfiguration(languageId).comments;\n    const commentStr = config ? config.lineCommentToken : null;\n    if (!commentStr) {\n      return null;\n    }\n    const lines = [];\n    for (let i2 = 0, lineCount = endLineNumber - startLineNumber + 1; i2 \u003c lineCount; i2++) {\n      lines[i2] = {\n        ignore: false,\n        commentStr,\n        commentStrOffset: 0,\n        commentStrLength: commentStr.length\n      };\n    }\n    return lines;\n  }\n  /**\n   * Analyze lines and decide which lines are relevant and what the toggle should do.\n   * Also, build up several offsets and lengths useful in the generation of editor operations.\n   */\n  static _analyzeLines(type, insertSpace, model, lines, startLineNumber, ignoreEmptyLines, ignoreFirstLine, languageConfigurationService, languageId) {\n    let onlyWhitespaceLines = true;\n    const config = languageConfigurationService.getLanguageConfiguration(languageId).comments;\n    const lineCommentNoIndent = config?.lineCommentNoIndent ?? false;\n    let shouldRemoveComments;\n    if (type === 0) {\n      shouldRemoveComments = true;\n    } else if (type === 1) {\n      shouldRemoveComments = false;\n    } else {\n      shouldRemoveComments = true;\n    }\n    for (let i2 = 0, lineCount = lines.length; i2 \u003c lineCount; i2++) {\n      const lineData = lines[i2];\n      const lineNumber = startLineNumber + i2;\n      if (lineNumber === startLineNumber \u0026\u0026 ignoreFirstLine) {\n        lineData.ignore = true;\n        continue;\n      }\n      const lineContent = model.getLineContent(lineNumber);\n      const lineContentStartOffset = firstNonWhitespaceIndex(lineContent);\n      if (lineContentStartOffset === -1) {\n        lineData.ignore = ignoreEmptyLines;\n        lineData.commentStrOffset = lineCommentNoIndent ? 0 : lineContent.length;\n        continue;\n      }\n      onlyWhitespaceLines = false;\n      const offset = lineCommentNoIndent ? 0 : lineContentStartOffset;\n      lineData.ignore = false;\n      lineData.commentStrOffset = offset;\n      if (shouldRemoveComments \u0026\u0026 !BlockCommentCommand._haystackHasNeedleAtOffset(lineContent, lineData.commentStr, offset)) {\n        if (type === 0) {\n          shouldRemoveComments = false;\n        } else if (type === 1) {\n        } else {\n          lineData.ignore = true;\n        }\n      }\n      if (shouldRemoveComments \u0026\u0026 insertSpace) {\n        const commentStrEndOffset = lineContentStartOffset + lineData.commentStrLength;\n        if (commentStrEndOffset \u003c lineContent.length \u0026\u0026 lineContent.charCodeAt(commentStrEndOffset) === 32) {\n          lineData.commentStrLength += 1;\n        }\n      }\n    }\n    if (type === 0 \u0026\u0026 onlyWhitespaceLines) {\n      shouldRemoveComments = false;\n      for (let i2 = 0, lineCount = lines.length; i2 \u003c lineCount; i2++) {\n        lines[i2].ignore = false;\n      }\n    }\n    return {\n      supported: true,\n      shouldRemoveComments,\n      lines\n    };\n  }\n  /**\n   * Analyze all lines and decide exactly what to do =\u003e not supported | insert line comments | remove line comments\n   */\n  static _gatherPreflightData(type, insertSpace, model, startLineNumber, endLineNumber, ignoreEmptyLines, ignoreFirstLine, languageConfigurationService) {\n    const lines = _LineCommentCommand._gatherPreflightCommentStrings(model, startLineNumber, endLineNumber, languageConfigurationService);\n    const languageId = model.getLanguageIdAtPosition(startLineNumber, 1);\n    if (lines === null) {\n      return {\n        supported: false\n      };\n    }\n    return _LineCommentCommand._analyzeLines(type, insertSpace, model, lines, startLineNumber, ignoreEmptyLines, ignoreFirstLine, languageConfigurationService, languageId);\n  }\n  /**\n   * Given a successful analysis, execute either insert line comments, either remove line comments\n   */\n  _executeLineComments(model, builder, data, s) {\n    let ops;\n    if (data.shouldRemoveComments) {\n      ops = _LineCommentCommand._createRemoveLineCommentsOperations(data.lines, s.startLineNumber);\n    } else {\n      _LineCommentCommand._normalizeInsertionPoint(model, data.lines, s.startLineNumber, this._indentSize);\n      ops = this._createAddLineCommentsOperations(data.lines, s.startLineNumber);\n    }\n    const cursorPosition = new Position(s.positionLineNumber, s.positionColumn);\n    for (let i2 = 0, len = ops.length; i2 \u003c len; i2++) {\n      builder.addEditOperation(ops[i2].range, ops[i2].text);\n      if (Range.isEmpty(ops[i2].range) \u0026\u0026 Range.getStartPosition(ops[i2].range).equals(cursorPosition)) {\n        const lineContent = model.getLineContent(cursorPosition.lineNumber);\n        if (lineContent.length + 1 === cursorPosition.column) {\n          this._deltaColumn = (ops[i2].text || \"\").length;\n        }\n      }\n    }\n    this._selectionId = builder.trackSelection(s);\n  }\n  _attemptRemoveBlockComment(model, s, startToken, endToken) {\n    let startLineNumber = s.startLineNumber;\n    let endLineNumber = s.endLineNumber;\n    const startTokenAllowedBeforeColumn = endToken.length + Math.max(model.getLineFirstNonWhitespaceColumn(s.startLineNumber), s.startColumn);\n    let startTokenIndex = model.getLineContent(startLineNumber).lastIndexOf(startToken, startTokenAllowedBeforeColumn - 1);\n    let endTokenIndex = model.getLineContent(endLineNumber).indexOf(endToken, s.endColumn - 1 - startToken.length);\n    if (startTokenIndex !== -1 \u0026\u0026 endTokenIndex === -1) {\n      endTokenIndex = model.getLineContent(startLineNumber).indexOf(endToken, startTokenIndex + startToken.length);\n      endLineNumber = startLineNumber;\n    }\n    if (startTokenIndex === -1 \u0026\u0026 endTokenIndex !== -1) {\n      startTokenIndex = model.getLineContent(endLineNumber).lastIndexOf(startToken, endTokenIndex);\n      startLineNumber = endLineNumber;\n    }\n    if (s.isEmpty() \u0026\u0026 (startTokenIndex === -1 || endTokenIndex === -1)) {\n      startTokenIndex = model.getLineContent(startLineNumber).indexOf(startToken);\n      if (startTokenIndex !== -1) {\n        endTokenIndex = model.getLineContent(startLineNumber).indexOf(endToken, startTokenIndex + startToken.length);\n      }\n    }\n    if (startTokenIndex !== -1 \u0026\u0026 model.getLineContent(startLineNumber).charCodeAt(startTokenIndex + startToken.length) === 32) {\n      startToken += \" \";\n    }\n    if (endTokenIndex !== -1 \u0026\u0026 model.getLineContent(endLineNumber).charCodeAt(endTokenIndex - 1) === 32) {\n      endToken = \" \" + endToken;\n      endTokenIndex -= 1;\n    }\n    if (startTokenIndex !== -1 \u0026\u0026 endTokenIndex !== -1) {\n      return BlockCommentCommand._createRemoveBlockCommentOperations(new Range(startLineNumber, startTokenIndex + startToken.length + 1, endLineNumber, endTokenIndex + 1), startToken, endToken);\n    }\n    return null;\n  }\n  /**\n   * Given an unsuccessful analysis, delegate to the block comment command\n   */\n  _executeBlockComment(model, builder, s) {\n    model.tokenization.tokenizeIfCheap(s.startLineNumber);\n    const languageId = model.getLanguageIdAtPosition(s.startLineNumber, 1);\n    const config = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n    if (!config || !config.blockCommentStartToken || !config.blockCommentEndToken) {\n      return;\n    }\n    const startToken = config.blockCommentStartToken;\n    const endToken = config.blockCommentEndToken;\n    let ops = this._attemptRemoveBlockComment(model, s, startToken, endToken);\n    if (!ops) {\n      if (s.isEmpty()) {\n        const lineContent = model.getLineContent(s.startLineNumber);\n        let firstNonWhitespaceIndex2 = firstNonWhitespaceIndex(lineContent);\n        if (firstNonWhitespaceIndex2 === -1) {\n          firstNonWhitespaceIndex2 = lineContent.length;\n        }\n        ops = BlockCommentCommand._createAddBlockCommentOperations(new Range(s.startLineNumber, firstNonWhitespaceIndex2 + 1, s.startLineNumber, lineContent.length + 1), startToken, endToken, this._insertSpace);\n      } else {\n        ops = BlockCommentCommand._createAddBlockCommentOperations(new Range(s.startLineNumber, model.getLineFirstNonWhitespaceColumn(s.startLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), startToken, endToken, this._insertSpace);\n      }\n      if (ops.length === 1) {\n        this._deltaColumn = startToken.length + 1;\n      }\n    }\n    this._selectionId = builder.trackSelection(s);\n    for (const op of ops) {\n      builder.addEditOperation(op.range, op.text);\n    }\n  }\n  getEditOperations(model, builder) {\n    let s = this._selection;\n    this._moveEndPositionDown = false;\n    if (s.startLineNumber === s.endLineNumber \u0026\u0026 this._ignoreFirstLine) {\n      builder.addEditOperation(new Range(s.startLineNumber, model.getLineMaxColumn(s.startLineNumber), s.startLineNumber + 1, 1), s.startLineNumber === model.getLineCount() ? \"\" : \"\\n\");\n      this._selectionId = builder.trackSelection(s);\n      return;\n    }\n    if (s.startLineNumber \u003c s.endLineNumber \u0026\u0026 s.endColumn === 1) {\n      this._moveEndPositionDown = true;\n      s = s.setEndPosition(s.endLineNumber - 1, model.getLineMaxColumn(s.endLineNumber - 1));\n    }\n    const data = _LineCommentCommand._gatherPreflightData(this._type, this._insertSpace, model, s.startLineNumber, s.endLineNumber, this._ignoreEmptyLines, this._ignoreFirstLine, this.languageConfigurationService);\n    if (data.supported) {\n      return this._executeLineComments(model, builder, data, s);\n    }\n    return this._executeBlockComment(model, builder, s);\n  }\n  computeCursorState(model, helper) {\n    let result = helper.getTrackedSelection(this._selectionId);\n    if (this._moveEndPositionDown) {\n      result = result.setEndPosition(result.endLineNumber + 1, 1);\n    }\n    return new Selection(result.selectionStartLineNumber, result.selectionStartColumn + this._deltaColumn, result.positionLineNumber, result.positionColumn + this._deltaColumn);\n  }\n  /**\n   * Generate edit operations in the remove line comment case\n   */\n  static _createRemoveLineCommentsOperations(lines, startLineNumber) {\n    const res = [];\n    for (let i2 = 0, len = lines.length; i2 \u003c len; i2++) {\n      const lineData = lines[i2];\n      if (lineData.ignore) {\n        continue;\n      }\n      res.push(EditOperation.delete(new Range(startLineNumber + i2, lineData.commentStrOffset + 1, startLineNumber + i2, lineData.commentStrOffset + lineData.commentStrLength + 1)));\n    }\n    return res;\n  }\n  /**\n   * Generate edit operations in the add line comment case\n   */\n  _createAddLineCommentsOperations(lines, startLineNumber) {\n    const res = [];\n    const afterCommentStr = this._insertSpace ? \" \" : \"\";\n    for (let i2 = 0, len = lines.length; i2 \u003c len; i2++) {\n      const lineData = lines[i2];\n      if (lineData.ignore) {\n        continue;\n      }\n      res.push(EditOperation.insert(new Position(startLineNumber + i2, lineData.commentStrOffset + 1), lineData.commentStr + afterCommentStr));\n    }\n    return res;\n  }\n  static nextVisibleColumn(currentVisibleColumn, indentSize, isTab, columnSize) {\n    if (isTab) {\n      return currentVisibleColumn + (indentSize - currentVisibleColumn % indentSize);\n    }\n    return currentVisibleColumn + columnSize;\n  }\n  /**\n   * Adjust insertion points to have them vertically aligned in the add line comment case\n   */\n  static _normalizeInsertionPoint(model, lines, startLineNumber, indentSize) {\n    let minVisibleColumn = 1073741824;\n    let j;\n    let lenJ;\n    for (let i2 = 0, len = lines.length; i2 \u003c len; i2++) {\n      if (lines[i2].ignore) {\n        continue;\n      }\n      const lineContent = model.getLineContent(startLineNumber + i2);\n      let currentVisibleColumn = 0;\n      for (let j2 = 0, lenJ2 = lines[i2].commentStrOffset; currentVisibleColumn \u003c minVisibleColumn \u0026\u0026 j2 \u003c lenJ2; j2++) {\n        currentVisibleColumn = _LineCommentCommand.nextVisibleColumn(currentVisibleColumn, indentSize, lineContent.charCodeAt(j2) === 9, 1);\n      }\n      if (currentVisibleColumn \u003c minVisibleColumn) {\n        minVisibleColumn = currentVisibleColumn;\n      }\n    }\n    minVisibleColumn = Math.floor(minVisibleColumn / indentSize) * indentSize;\n    for (let i2 = 0, len = lines.length; i2 \u003c len; i2++) {\n      if (lines[i2].ignore) {\n        continue;\n      }\n      const lineContent = model.getLineContent(startLineNumber + i2);\n      let currentVisibleColumn = 0;\n      for (j = 0, lenJ = lines[i2].commentStrOffset; currentVisibleColumn \u003c minVisibleColumn \u0026\u0026 j \u003c lenJ; j++) {\n        currentVisibleColumn = _LineCommentCommand.nextVisibleColumn(currentVisibleColumn, indentSize, lineContent.charCodeAt(j) === 9, 1);\n      }\n      if (currentVisibleColumn \u003e minVisibleColumn) {\n        lines[i2].commentStrOffset = j - 1;\n      } else {\n        lines[i2].commentStrOffset = j;\n      }\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/comment/browser/comment.js\ninit_nls();\ninit_actions2();\nvar CommentLineAction = class extends EditorAction {\n  constructor(type, opts) {\n    super(opts);\n    this._type = type;\n  }\n  run(accessor, editor2) {\n    const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const model = editor2.getModel();\n    const commands = [];\n    const modelOptions = model.getOptions();\n    const commentsOptions = editor2.getOption(\n      29\n      /* EditorOption.comments */\n    );\n    const selections = editor2.getSelections().map((selection, index) =\u003e ({ selection, index, ignoreFirstLine: false }));\n    selections.sort((a, b) =\u003e Range.compareRangesUsingStarts(a.selection, b.selection));\n    let prev = selections[0];\n    for (let i2 = 1; i2 \u003c selections.length; i2++) {\n      const curr = selections[i2];\n      if (prev.selection.endLineNumber === curr.selection.startLineNumber) {\n        if (prev.index \u003c curr.index) {\n          curr.ignoreFirstLine = true;\n        } else {\n          prev.ignoreFirstLine = true;\n          prev = curr;\n        }\n      }\n    }\n    for (const selection of selections) {\n      commands.push(new LineCommentCommand(languageConfigurationService, selection.selection, modelOptions.indentSize, this._type, commentsOptions.insertSpace, commentsOptions.ignoreEmptyLines, selection.ignoreFirstLine));\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nvar ToggleCommentLineAction = class extends CommentLineAction {\n  constructor() {\n    super(0, {\n      id: \"editor.action.commentLine\",\n      label: localize2(889, \"Toggle Line Comment\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 90,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarEditMenu,\n        group: \"5_insert\",\n        title: localize(887, \"\u0026\u0026Toggle Line Comment\"),\n        order: 1\n      }\n    });\n  }\n};\nvar AddLineCommentAction = class extends CommentLineAction {\n  constructor() {\n    super(1, {\n      id: \"editor.action.addCommentLine\",\n      label: localize2(890, \"Add Line Comment\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 33\n          /* KeyCode.KeyC */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar RemoveLineCommentAction = class extends CommentLineAction {\n  constructor() {\n    super(2, {\n      id: \"editor.action.removeCommentLine\",\n      label: localize2(891, \"Remove Line Comment\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 51\n          /* KeyCode.KeyU */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar BlockCommentAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.blockComment\",\n      label: localize2(892, \"Toggle Block Comment\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 1024 | 512 | 31,\n        linux: {\n          primary: 2048 | 1024 | 31\n          /* KeyCode.KeyA */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarEditMenu,\n        group: \"5_insert\",\n        title: localize(888, \"Toggle \u0026\u0026Block Comment\"),\n        order: 2\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const commentsOptions = editor2.getOption(\n      29\n      /* EditorOption.comments */\n    );\n    const commands = [];\n    const selections = editor2.getSelections();\n    for (const selection of selections) {\n      commands.push(new BlockCommentCommand(selection, commentsOptions.insertSpace, languageConfigurationService));\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nregisterEditorAction(ToggleCommentLineAction);\nregisterEditorAction(AddLineCommentAction);\nregisterEditorAction(RemoveLineCommentAction);\nregisterEditorAction(BlockCommentAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js\ninit_dom();\ninit_actions();\ninit_lifecycle();\ninit_platform();\ninit_editorExtensions();\ninit_editorContextKeys();\ninit_nls();\ninit_actions2();\ninit_contextkey();\ninit_configuration();\nvar __decorate82 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param76 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ContextMenuController_1;\nvar ContextMenuController = class ContextMenuController2 {\n  static {\n    ContextMenuController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.contextmenu\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(ContextMenuController_1.ID);\n  }\n  constructor(editor2, _contextMenuService, _contextViewService, _contextKeyService, _keybindingService, _menuService, _configurationService, _workspaceContextService) {\n    this._contextMenuService = _contextMenuService;\n    this._contextViewService = _contextViewService;\n    this._contextKeyService = _contextKeyService;\n    this._keybindingService = _keybindingService;\n    this._menuService = _menuService;\n    this._configurationService = _configurationService;\n    this._workspaceContextService = _workspaceContextService;\n    this._toDispose = new DisposableStore();\n    this._contextMenuIsBeingShownCount = 0;\n    this._editor = editor2;\n    this._toDispose.add(this._editor.onContextMenu((e) =\u003e this._onContextMenu(e)));\n    this._toDispose.add(this._editor.onMouseWheel((e) =\u003e {\n      if (this._contextMenuIsBeingShownCount \u003e 0) {\n        const view = this._contextViewService.getContextViewElement();\n        const target = e.srcElement;\n        if (!(target.shadowRoot \u0026\u0026 getShadowRoot(view) === target.shadowRoot)) {\n          this._contextViewService.hideContextView();\n        }\n      }\n    }));\n    this._toDispose.add(this._editor.onKeyDown((e) =\u003e {\n      if (!this._editor.getOption(\n        30\n        /* EditorOption.contextmenu */\n      )) {\n        return;\n      }\n      if (e.keyCode === 58) {\n        e.preventDefault();\n        e.stopPropagation();\n        this.showContextMenu();\n      }\n    }));\n  }\n  _onContextMenu(e) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    if (!this._editor.getOption(\n      30\n      /* EditorOption.contextmenu */\n    )) {\n      this._editor.focus();\n      if (e.target.position \u0026\u0026 !this._editor.getSelection().containsPosition(e.target.position)) {\n        this._editor.setPosition(e.target.position);\n      }\n      return;\n    }\n    if (e.target.type === 12) {\n      return;\n    }\n    if (e.target.type === 6 \u0026\u0026 e.target.detail.injectedText) {\n      return;\n    }\n    e.event.preventDefault();\n    e.event.stopPropagation();\n    if (e.target.type === 11) {\n      return this._showScrollbarContextMenu(e.event);\n    }\n    if (e.target.type !== 6 \u0026\u0026 e.target.type !== 7 \u0026\u0026 e.target.type !== 1) {\n      return;\n    }\n    this._editor.focus();\n    if (e.target.position) {\n      let hasSelectionAtPosition = false;\n      for (const selection of this._editor.getSelections()) {\n        if (selection.containsPosition(e.target.position)) {\n          hasSelectionAtPosition = true;\n          break;\n        }\n      }\n      if (!hasSelectionAtPosition) {\n        this._editor.setPosition(e.target.position);\n      }\n    }\n    let anchor = null;\n    if (e.target.type !== 1) {\n      anchor = e.event;\n    }\n    this.showContextMenu(anchor);\n  }\n  showContextMenu(anchor) {\n    if (!this._editor.getOption(\n      30\n      /* EditorOption.contextmenu */\n    )) {\n      return;\n    }\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const menuActions = this._getMenuActions(this._editor.getModel(), this._editor.contextMenuId);\n    if (menuActions.length \u003e 0) {\n      this._doShowContextMenu(menuActions, anchor);\n    }\n  }\n  _getMenuActions(model, menuId) {\n    const result = [];\n    const groups = this._menuService.getMenuActions(menuId, this._contextKeyService, { arg: model.uri });\n    for (const group of groups) {\n      const [, actions] = group;\n      let addedItems = 0;\n      for (const action of actions) {\n        if (action instanceof SubmenuItemAction) {\n          const subActions = this._getMenuActions(model, action.item.submenu);\n          if (subActions.length \u003e 0) {\n            result.push(new SubmenuAction(action.id, action.label, subActions));\n            addedItems++;\n          }\n        } else {\n          result.push(action);\n          addedItems++;\n        }\n      }\n      if (addedItems) {\n        result.push(new Separator());\n      }\n    }\n    if (result.length) {\n      result.pop();\n    }\n    return result;\n  }\n  _doShowContextMenu(actions, event = null) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    let anchor = event;\n    if (!anchor) {\n      this._editor.revealPosition(\n        this._editor.getPosition(),\n        1\n        /* ScrollType.Immediate */\n      );\n      this._editor.render();\n      const cursorCoords = this._editor.getScrolledVisiblePosition(this._editor.getPosition());\n      const editorCoords = getDomNodePagePosition(this._editor.getDomNode());\n      const posx = editorCoords.left + cursorCoords.left;\n      const posy = editorCoords.top + cursorCoords.top + cursorCoords.height;\n      anchor = { x: posx, y: posy };\n    }\n    const useShadowDOM = this._editor.getOption(\n      143\n      /* EditorOption.useShadowDOM */\n    ) \u0026\u0026 !isIOS;\n    this._contextMenuIsBeingShownCount++;\n    this._contextMenuService.showContextMenu({\n      domForShadowRoot: useShadowDOM ? this._editor.getOverflowWidgetsDomNode() ?? this._editor.getDomNode() : void 0,\n      getAnchor: () =\u003e anchor,\n      getActions: () =\u003e actions,\n      getActionViewItem: (action) =\u003e {\n        const keybinding = this._keybindingFor(action);\n        if (keybinding) {\n          return new ActionViewItem(action, action, { label: true, keybinding: keybinding.getLabel(), isMenu: true });\n        }\n        const customActionViewItem = action;\n        if (typeof customActionViewItem.getActionViewItem === \"function\") {\n          return customActionViewItem.getActionViewItem();\n        }\n        return new ActionViewItem(action, action, { icon: true, label: true, isMenu: true });\n      },\n      getKeyBinding: (action) =\u003e {\n        return this._keybindingFor(action);\n      },\n      onHide: (wasCancelled) =\u003e {\n        this._contextMenuIsBeingShownCount--;\n      }\n    });\n  }\n  _showScrollbarContextMenu(anchor) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    if (isStandaloneEditorWorkspace(this._workspaceContextService.getWorkspace())) {\n      return;\n    }\n    const minimapOptions = this._editor.getOption(\n      81\n      /* EditorOption.minimap */\n    );\n    let lastId = 0;\n    const createAction = (opts) =\u003e {\n      return {\n        id: `menu-action-${++lastId}`,\n        label: opts.label,\n        tooltip: \"\",\n        class: void 0,\n        enabled: typeof opts.enabled === \"undefined\" ? true : opts.enabled,\n        checked: opts.checked,\n        run: opts.run\n      };\n    };\n    const createSubmenuAction = (label, actions2) =\u003e {\n      return new SubmenuAction(`menu-action-${++lastId}`, label, actions2, void 0);\n    };\n    const createEnumAction = (label, enabled, configName, configuredValue, options2) =\u003e {\n      if (!enabled) {\n        return createAction({ label, enabled, run: () =\u003e {\n        } });\n      }\n      const createRunner = (value) =\u003e {\n        return () =\u003e {\n          this._configurationService.updateValue(configName, value);\n        };\n      };\n      const actions2 = [];\n      for (const option2 of options2) {\n        actions2.push(createAction({\n          label: option2.label,\n          checked: configuredValue === option2.value,\n          run: createRunner(option2.value)\n        }));\n      }\n      return createSubmenuAction(label, actions2);\n    };\n    const actions = [];\n    actions.push(createAction({\n      label: localize(893, \"Minimap\"),\n      checked: minimapOptions.enabled,\n      run: () =\u003e {\n        this._configurationService.updateValue(`editor.minimap.enabled`, !minimapOptions.enabled);\n      }\n    }));\n    actions.push(new Separator());\n    actions.push(createAction({\n      label: localize(894, \"Render Characters\"),\n      enabled: minimapOptions.enabled,\n      checked: minimapOptions.renderCharacters,\n      run: () =\u003e {\n        this._configurationService.updateValue(`editor.minimap.renderCharacters`, !minimapOptions.renderCharacters);\n      }\n    }));\n    actions.push(createEnumAction(localize(895, \"Vertical size\"), minimapOptions.enabled, \"editor.minimap.size\", minimapOptions.size, [{\n      label: localize(896, \"Proportional\"),\n      value: \"proportional\"\n    }, {\n      label: localize(897, \"Fill\"),\n      value: \"fill\"\n    }, {\n      label: localize(898, \"Fit\"),\n      value: \"fit\"\n    }]));\n    actions.push(createEnumAction(localize(899, \"Slider\"), minimapOptions.enabled, \"editor.minimap.showSlider\", minimapOptions.showSlider, [{\n      label: localize(900, \"Mouse Over\"),\n      value: \"mouseover\"\n    }, {\n      label: localize(901, \"Always\"),\n      value: \"always\"\n    }]));\n    const useShadowDOM = this._editor.getOption(\n      143\n      /* EditorOption.useShadowDOM */\n    ) \u0026\u0026 !isIOS;\n    this._contextMenuIsBeingShownCount++;\n    this._contextMenuService.showContextMenu({\n      domForShadowRoot: useShadowDOM ? this._editor.getDomNode() : void 0,\n      getAnchor: () =\u003e anchor,\n      getActions: () =\u003e actions,\n      onHide: (wasCancelled) =\u003e {\n        this._contextMenuIsBeingShownCount--;\n        this._editor.focus();\n      }\n    });\n  }\n  _keybindingFor(action) {\n    return this._keybindingService.lookupKeybinding(action.id);\n  }\n  dispose() {\n    if (this._contextMenuIsBeingShownCount \u003e 0) {\n      this._contextViewService.hideContextView();\n    }\n    this._toDispose.dispose();\n  }\n};\nContextMenuController = ContextMenuController_1 = __decorate82([\n  __param76(1, IContextMenuService),\n  __param76(2, IContextViewService),\n  __param76(3, IContextKeyService),\n  __param76(4, IKeybindingService),\n  __param76(5, IMenuService),\n  __param76(6, IConfigurationService),\n  __param76(7, IWorkspaceContextService)\n], ContextMenuController);\nvar ShowContextMenu = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.showContextMenu\",\n      label: localize2(902, \"Show Editor Context Menu\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 1024 | 68,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2) {\n    ContextMenuController.get(editor2)?.showContextMenu();\n  }\n};\nregisterEditorContribution(\n  ContextMenuController.ID,\n  ContextMenuController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorAction(ShowContextMenu);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js\ninit_lifecycle();\ninit_editorExtensions();\ninit_editorContextKeys();\ninit_nls();\nvar CursorState2 = class {\n  constructor(selections) {\n    this.selections = selections;\n  }\n  equals(other) {\n    const thisLen = this.selections.length;\n    const otherLen = other.selections.length;\n    if (thisLen !== otherLen) {\n      return false;\n    }\n    for (let i2 = 0; i2 \u003c thisLen; i2++) {\n      if (!this.selections[i2].equalsSelection(other.selections[i2])) {\n        return false;\n      }\n    }\n    return true;\n  }\n};\nvar StackElement = class {\n  constructor(cursorState, scrollTop, scrollLeft) {\n    this.cursorState = cursorState;\n    this.scrollTop = scrollTop;\n    this.scrollLeft = scrollLeft;\n  }\n};\nvar CursorUndoRedoController = class _CursorUndoRedoController extends Disposable {\n  static {\n    this.ID = \"editor.contrib.cursorUndoRedoController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(_CursorUndoRedoController.ID);\n  }\n  constructor(editor2) {\n    super();\n    this._editor = editor2;\n    this._isCursorUndoRedo = false;\n    this._undoStack = [];\n    this._redoStack = [];\n    this._register(editor2.onDidChangeModel((e) =\u003e {\n      this._undoStack = [];\n      this._redoStack = [];\n    }));\n    this._register(editor2.onDidChangeModelContent((e) =\u003e {\n      this._undoStack = [];\n      this._redoStack = [];\n    }));\n    this._register(editor2.onDidChangeCursorSelection((e) =\u003e {\n      if (this._isCursorUndoRedo) {\n        return;\n      }\n      if (!e.oldSelections) {\n        return;\n      }\n      if (e.oldModelVersionId !== e.modelVersionId) {\n        return;\n      }\n      const prevState = new CursorState2(e.oldSelections);\n      const isEqualToLastUndoStack = this._undoStack.length \u003e 0 \u0026\u0026 this._undoStack[this._undoStack.length - 1].cursorState.equals(prevState);\n      if (!isEqualToLastUndoStack) {\n        this._undoStack.push(new StackElement(prevState, editor2.getScrollTop(), editor2.getScrollLeft()));\n        this._redoStack = [];\n        if (this._undoStack.length \u003e 50) {\n          this._undoStack.shift();\n        }\n      }\n    }));\n  }\n  cursorUndo() {\n    if (!this._editor.hasModel() || this._undoStack.length === 0) {\n      return;\n    }\n    this._redoStack.push(new StackElement(new CursorState2(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft()));\n    this._applyState(this._undoStack.pop());\n  }\n  cursorRedo() {\n    if (!this._editor.hasModel() || this._redoStack.length === 0) {\n      return;\n    }\n    this._undoStack.push(new StackElement(new CursorState2(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft()));\n    this._applyState(this._redoStack.pop());\n  }\n  _applyState(stackElement) {\n    this._isCursorUndoRedo = true;\n    this._editor.setSelections(stackElement.cursorState.selections);\n    this._editor.setScrollPosition({\n      scrollTop: stackElement.scrollTop,\n      scrollLeft: stackElement.scrollLeft\n    });\n    this._isCursorUndoRedo = false;\n  }\n};\nvar CursorUndo = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"cursorUndo\",\n      label: localize2(903, \"Cursor Undo\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 | 51,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2, args) {\n    CursorUndoRedoController.get(editor2)?.cursorUndo();\n  }\n};\nvar CursorRedo = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"cursorRedo\",\n      label: localize2(904, \"Cursor Redo\"),\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2, args) {\n    CursorUndoRedoController.get(editor2)?.cursorRedo();\n  }\n};\nregisterEditorContribution(\n  CursorUndoRedoController.ID,\n  CursorUndoRedoController,\n  0\n  /* EditorContributionInstantiation.Eager */\n);\nregisterEditorAction(CursorUndo);\nregisterEditorAction(CursorRedo);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dnd/browser/dnd.js\ninit_lifecycle();\ninit_platform();\ninit_editorExtensions();\ninit_position();\ninit_range();\ninit_selection();\ninit_textModel();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dnd/browser/dragAndDropCommand.js\ninit_range();\ninit_selection();\nvar DragAndDropCommand = class {\n  constructor(selection, targetPosition, copy) {\n    this.selection = selection;\n    this.targetPosition = targetPosition;\n    this.copy = copy;\n    this.targetSelection = null;\n  }\n  getEditOperations(model, builder) {\n    const text2 = model.getValueInRange(this.selection);\n    if (!this.copy) {\n      builder.addEditOperation(this.selection, null);\n    }\n    builder.addEditOperation(new Range(this.targetPosition.lineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.targetPosition.column), text2);\n    if (this.selection.containsPosition(this.targetPosition) \u0026\u0026 !(this.copy \u0026\u0026 (this.selection.getEndPosition().equals(this.targetPosition) || this.selection.getStartPosition().equals(this.targetPosition)))) {\n      this.targetSelection = this.selection;\n      return;\n    }\n    if (this.copy) {\n      this.targetSelection = new Selection(this.targetPosition.lineNumber, this.targetPosition.column, this.selection.endLineNumber - this.selection.startLineNumber + this.targetPosition.lineNumber, this.selection.startLineNumber === this.selection.endLineNumber ? this.targetPosition.column + this.selection.endColumn - this.selection.startColumn : this.selection.endColumn);\n      return;\n    }\n    if (this.targetPosition.lineNumber \u003e this.selection.endLineNumber) {\n      this.targetSelection = new Selection(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.selection.startLineNumber === this.selection.endLineNumber ? this.targetPosition.column + this.selection.endColumn - this.selection.startColumn : this.selection.endColumn);\n      return;\n    }\n    if (this.targetPosition.lineNumber \u003c this.selection.endLineNumber) {\n      this.targetSelection = new Selection(this.targetPosition.lineNumber, this.targetPosition.column, this.targetPosition.lineNumber + this.selection.endLineNumber - this.selection.startLineNumber, this.selection.startLineNumber === this.selection.endLineNumber ? this.targetPosition.column + this.selection.endColumn - this.selection.startColumn : this.selection.endColumn);\n      return;\n    }\n    if (this.selection.endColumn \u003c= this.targetPosition.column) {\n      this.targetSelection = new Selection(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, this.selection.startLineNumber === this.selection.endLineNumber ? this.targetPosition.column - this.selection.endColumn + this.selection.startColumn : this.targetPosition.column - this.selection.endColumn + this.selection.startColumn, this.targetPosition.lineNumber, this.selection.startLineNumber === this.selection.endLineNumber ? this.targetPosition.column : this.selection.endColumn);\n    } else {\n      this.targetSelection = new Selection(this.targetPosition.lineNumber - this.selection.endLineNumber + this.selection.startLineNumber, this.targetPosition.column, this.targetPosition.lineNumber, this.targetPosition.column + this.selection.endColumn - this.selection.startColumn);\n    }\n  }\n  computeCursorState(model, helper) {\n    return this.targetSelection;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dnd/browser/dnd.js\nfunction hasTriggerModifier(e) {\n  if (isMacintosh) {\n    return e.altKey;\n  } else {\n    return e.ctrlKey;\n  }\n}\nvar DragAndDropController = class _DragAndDropController extends Disposable {\n  static {\n    this.ID = \"editor.contrib.dragAndDrop\";\n  }\n  static {\n    this.TRIGGER_KEY_VALUE = isMacintosh ? 6 : 5;\n  }\n  constructor(editor2) {\n    super();\n    this._editor = editor2;\n    this._dndDecorationIds = this._editor.createDecorationsCollection();\n    this._register(this._editor.onMouseDown((e) =\u003e this._onEditorMouseDown(e)));\n    this._register(this._editor.onMouseUp((e) =\u003e this._onEditorMouseUp(e)));\n    this._register(this._editor.onMouseDrag((e) =\u003e this._onEditorMouseDrag(e)));\n    this._register(this._editor.onMouseDrop((e) =\u003e this._onEditorMouseDrop(e)));\n    this._register(this._editor.onMouseDropCanceled(() =\u003e this._onEditorMouseDropCanceled()));\n    this._register(this._editor.onKeyDown((e) =\u003e this.onEditorKeyDown(e)));\n    this._register(this._editor.onKeyUp((e) =\u003e this.onEditorKeyUp(e)));\n    this._register(this._editor.onDidBlurEditorWidget(() =\u003e this.onEditorBlur()));\n    this._register(this._editor.onDidBlurEditorText(() =\u003e this.onEditorBlur()));\n    this._mouseDown = false;\n    this._modifierPressed = false;\n    this._dragSelection = null;\n  }\n  onEditorBlur() {\n    this._removeDecoration();\n    this._dragSelection = null;\n    this._mouseDown = false;\n    this._modifierPressed = false;\n  }\n  onEditorKeyDown(e) {\n    if (!this._editor.getOption(\n      42\n      /* EditorOption.dragAndDrop */\n    ) || this._editor.getOption(\n      28\n      /* EditorOption.columnSelection */\n    )) {\n      return;\n    }\n    if (hasTriggerModifier(e)) {\n      this._modifierPressed = true;\n    }\n    if (this._mouseDown \u0026\u0026 hasTriggerModifier(e)) {\n      this._editor.updateOptions({\n        mouseStyle: \"copy\"\n      });\n    }\n  }\n  onEditorKeyUp(e) {\n    if (!this._editor.getOption(\n      42\n      /* EditorOption.dragAndDrop */\n    ) || this._editor.getOption(\n      28\n      /* EditorOption.columnSelection */\n    )) {\n      return;\n    }\n    if (hasTriggerModifier(e)) {\n      this._modifierPressed = false;\n    }\n    if (this._mouseDown \u0026\u0026 e.keyCode === _DragAndDropController.TRIGGER_KEY_VALUE) {\n      this._editor.updateOptions({\n        mouseStyle: \"default\"\n      });\n    }\n  }\n  _onEditorMouseDown(mouseEvent) {\n    this._mouseDown = true;\n  }\n  _onEditorMouseUp(mouseEvent) {\n    this._mouseDown = false;\n    this._editor.updateOptions({\n      mouseStyle: \"text\"\n    });\n  }\n  _onEditorMouseDrag(mouseEvent) {\n    const target = mouseEvent.target;\n    if (this._dragSelection === null) {\n      const selections = this._editor.getSelections() || [];\n      const possibleSelections = selections.filter((selection) =\u003e target.position \u0026\u0026 selection.containsPosition(target.position));\n      if (possibleSelections.length === 1) {\n        this._dragSelection = possibleSelections[0];\n      } else {\n        return;\n      }\n    }\n    if (hasTriggerModifier(mouseEvent.event)) {\n      this._editor.updateOptions({\n        mouseStyle: \"copy\"\n      });\n    } else {\n      this._editor.updateOptions({\n        mouseStyle: \"default\"\n      });\n    }\n    if (target.position) {\n      if (this._dragSelection.containsPosition(target.position)) {\n        this._removeDecoration();\n      } else {\n        this.showAt(target.position);\n      }\n    }\n  }\n  _onEditorMouseDropCanceled() {\n    this._editor.updateOptions({\n      mouseStyle: \"text\"\n    });\n    this._removeDecoration();\n    this._dragSelection = null;\n    this._mouseDown = false;\n  }\n  _onEditorMouseDrop(mouseEvent) {\n    if (mouseEvent.target \u0026\u0026 (this._hitContent(mouseEvent.target) || this._hitMargin(mouseEvent.target)) \u0026\u0026 mouseEvent.target.position) {\n      const newCursorPosition = new Position(mouseEvent.target.position.lineNumber, mouseEvent.target.position.column);\n      if (this._dragSelection === null) {\n        let newSelections = null;\n        if (mouseEvent.event.shiftKey) {\n          const primarySelection = this._editor.getSelection();\n          if (primarySelection) {\n            const { selectionStartLineNumber, selectionStartColumn } = primarySelection;\n            newSelections = [new Selection(selectionStartLineNumber, selectionStartColumn, newCursorPosition.lineNumber, newCursorPosition.column)];\n          }\n        } else {\n          newSelections = (this._editor.getSelections() || []).map((selection) =\u003e {\n            if (selection.containsPosition(newCursorPosition)) {\n              return new Selection(newCursorPosition.lineNumber, newCursorPosition.column, newCursorPosition.lineNumber, newCursorPosition.column);\n            } else {\n              return selection;\n            }\n          });\n        }\n        this._editor.setSelections(\n          newSelections || [],\n          \"mouse\",\n          3\n          /* CursorChangeReason.Explicit */\n        );\n      } else if (!this._dragSelection.containsPosition(newCursorPosition) || (hasTriggerModifier(mouseEvent.event) || this._modifierPressed) \u0026\u0026 (this._dragSelection.getEndPosition().equals(newCursorPosition) || this._dragSelection.getStartPosition().equals(newCursorPosition))) {\n        this._editor.pushUndoStop();\n        this._editor.executeCommand(_DragAndDropController.ID, new DragAndDropCommand(this._dragSelection, newCursorPosition, hasTriggerModifier(mouseEvent.event) || this._modifierPressed));\n        this._editor.pushUndoStop();\n      }\n    }\n    this._editor.updateOptions({\n      mouseStyle: \"text\"\n    });\n    this._removeDecoration();\n    this._dragSelection = null;\n    this._mouseDown = false;\n  }\n  static {\n    this._DECORATION_OPTIONS = ModelDecorationOptions.register({\n      description: \"dnd-target\",\n      className: \"dnd-target\"\n    });\n  }\n  showAt(position) {\n    this._dndDecorationIds.set([{\n      range: new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n      options: _DragAndDropController._DECORATION_OPTIONS\n    }]);\n    this._editor.revealPosition(\n      position,\n      1\n      /* ScrollType.Immediate */\n    );\n  }\n  _removeDecoration() {\n    this._dndDecorationIds.clear();\n  }\n  _hitContent(target) {\n    return target.type === 6 || target.type === 7;\n  }\n  _hitMargin(target) {\n    return target.type === 2 || target.type === 3 || target.type === 4;\n  }\n  dispose() {\n    this._removeDecoration();\n    this._dragSelection = null;\n    this._mouseDown = false;\n    this._modifierPressed = false;\n    super.dispose();\n  }\n};\nregisterEditorContribution(\n  DragAndDropController.ID,\n  DragAndDropController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js\ninit_nls();\ninit_editorExtensions();\ninit_editorContextKeys();\nvar pasteAsCommandId = \"editor.action.pasteAs\";\nregisterEditorContribution(\n  CopyPasteController.ID,\n  CopyPasteController,\n  0\n  /* EditorContributionInstantiation.Eager */\n);\nregisterEditorFeature(DefaultPasteProvidersFeature);\nregisterEditorCommand(new class extends EditorCommand {\n  constructor() {\n    super({\n      id: changePasteTypeCommandId,\n      precondition: pasteWidgetVisibleCtx,\n      kbOpts: {\n        weight: 100,\n        primary: 2048 | 89\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2) {\n    return CopyPasteController.get(editor2)?.changePasteType();\n  }\n}());\nregisterEditorCommand(new class extends EditorCommand {\n  constructor() {\n    super({\n      id: \"editor.hidePasteWidget\",\n      precondition: pasteWidgetVisibleCtx,\n      kbOpts: {\n        weight: 100,\n        primary: 9\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2) {\n    CopyPasteController.get(editor2)?.clearWidgets();\n  }\n}());\nregisterEditorAction(class PasteAsAction extends EditorAction {\n  static {\n    this.argsSchema = {\n      oneOf: [\n        {\n          type: \"object\",\n          required: [\"kind\"],\n          properties: {\n            kind: {\n              type: \"string\",\n              description: localize(905, \"The kind of the paste edit to try pasting with.\\nIf there are multiple edits for this kind, the editor will show a picker. If there are no edits of this kind, the editor will show an error message.\")\n            }\n          }\n        },\n        {\n          type: \"object\",\n          required: [\"preferences\"],\n          properties: {\n            preferences: {\n              type: \"array\",\n              description: localize(906, \"List of preferred paste edit kind to try applying.\\nThe first edit matching the preferences will be applied.\"),\n              items: { type: \"string\" }\n            }\n          }\n        }\n      ]\n    };\n  }\n  constructor() {\n    super({\n      id: pasteAsCommandId,\n      label: localize2(907, \"Paste As...\"),\n      precondition: EditorContextKeys.writable,\n      metadata: {\n        description: \"Paste as\",\n        args: [{\n          name: \"args\",\n          schema: PasteAsAction.argsSchema\n        }]\n      }\n    });\n  }\n  run(_accessor, editor2, args) {\n    let preference;\n    if (args) {\n      if (\"kind\" in args) {\n        preference = { only: new HierarchicalKind(args.kind) };\n      } else if (\"preferences\" in args) {\n        preference = { preferences: args.preferences.map((kind) =\u003e new HierarchicalKind(kind)) };\n      }\n    }\n    return CopyPasteController.get(editor2)?.pasteAs(preference);\n  }\n});\nregisterEditorAction(class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.pasteAsText\",\n      label: localize2(908, \"Paste as Text\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  run(_accessor, editor2) {\n    return CopyPasteController.get(editor2)?.pasteAs({ providerId: DefaultTextPasteOrDropEditProvider.id });\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js\ninit_arrays();\ninit_async();\ninit_errors();\ninit_lifecycle();\ninit_nls();\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\ninit_range();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/treeViewsDnd.js\nvar TreeViewsDnDService = class {\n  constructor() {\n    this._dragOperations = /* @__PURE__ */ new Map();\n  }\n  removeDragOperationTransfer(uuid) {\n    if (uuid \u0026\u0026 this._dragOperations.has(uuid)) {\n      const operation = this._dragOperations.get(uuid);\n      this._dragOperations.delete(uuid);\n      return operation;\n    }\n    return void 0;\n  }\n};\nvar DraggedTreeItemsIdentifier = class {\n  constructor(identifier) {\n    this.identifier = identifier;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/treeViewsDndService.js\ninit_extensions();\ninit_instantiation();\nvar ITreeViewsDnDService = createDecorator(\"treeViewsDndService\");\nregisterSingleton(\n  ITreeViewsDnDService,\n  TreeViewsDnDService,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js\ninit_editorState();\nvar __decorate83 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param77 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DropIntoEditorController_1;\nvar dropAsPreferenceConfig = \"editor.dropIntoEditor.preferences\";\nvar changeDropTypeCommandId = \"editor.changeDropType\";\nvar dropWidgetVisibleCtx = new RawContextKey(\"dropWidgetVisible\", false, localize(926, \"Whether the drop widget is showing\"));\nvar DropIntoEditorController = class DropIntoEditorController2 extends Disposable {\n  static {\n    DropIntoEditorController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.dropIntoEditorController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(DropIntoEditorController_1.ID);\n  }\n  constructor(editor2, instantiationService, _configService, _languageFeaturesService, _treeViewsDragAndDropService) {\n    super();\n    this._configService = _configService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._treeViewsDragAndDropService = _treeViewsDragAndDropService;\n    this.treeItemsTransfer = LocalSelectionTransfer.getInstance();\n    this._dropProgressManager = this._register(instantiationService.createInstance(InlineProgressManager, \"dropIntoEditor\", editor2));\n    this._postDropWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, \"dropIntoEditor\", editor2, dropWidgetVisibleCtx, { id: changeDropTypeCommandId, label: localize(927, \"Show drop options...\") }, () =\u003e DropIntoEditorController_1._configureDefaultAction ? [DropIntoEditorController_1._configureDefaultAction] : []));\n    this._register(editor2.onDropIntoEditor((e) =\u003e this.onDropIntoEditor(editor2, e.position, e.event)));\n  }\n  clearWidgets() {\n    this._postDropWidgetManager.clear();\n  }\n  changeDropType() {\n    this._postDropWidgetManager.tryShowSelector();\n  }\n  async onDropIntoEditor(editor2, position, dragEvent) {\n    if (!dragEvent.dataTransfer || !editor2.hasModel()) {\n      return;\n    }\n    DropIntoEditorController_1._currentDropOperation?.cancel();\n    editor2.focus();\n    editor2.setPosition(position);\n    const p = createCancelablePromise(async (token) =\u003e {\n      const disposables = new DisposableStore();\n      const tokenSource = disposables.add(new EditorStateCancellationTokenSource(editor2, 1, void 0, token));\n      try {\n        const ourDataTransfer = await this.extractDataTransferData(dragEvent);\n        if (ourDataTransfer.size === 0 || tokenSource.token.isCancellationRequested) {\n          return;\n        }\n        const model = editor2.getModel();\n        if (!model) {\n          return;\n        }\n        const providers = this._languageFeaturesService.documentDropEditProvider.ordered(model).filter((provider) =\u003e {\n          if (!provider.dropMimeTypes) {\n            return true;\n          }\n          return provider.dropMimeTypes.some((mime) =\u003e ourDataTransfer.matches(mime));\n        });\n        const editSession = disposables.add(await this.getDropEdits(providers, model, position, ourDataTransfer, tokenSource.token));\n        if (tokenSource.token.isCancellationRequested) {\n          return;\n        }\n        if (editSession.edits.length) {\n          const activeEditIndex = this.getInitialActiveEditIndex(model, editSession.edits);\n          const canShowWidget = editor2.getOption(\n            43\n            /* EditorOption.dropIntoEditor */\n          ).showDropSelector === \"afterDrop\";\n          await this._postDropWidgetManager.applyEditAndShowIfNeeded([Range.fromPositions(position)], { activeEditIndex, allEdits: editSession.edits }, canShowWidget, async (edit2) =\u003e edit2, token);\n        }\n      } finally {\n        disposables.dispose();\n        if (DropIntoEditorController_1._currentDropOperation === p) {\n          DropIntoEditorController_1._currentDropOperation = void 0;\n        }\n      }\n    });\n    this._dropProgressManager.showWhile(position, localize(928, \"Running drop handlers. Click to cancel\"), p, { cancel: () =\u003e p.cancel() });\n    DropIntoEditorController_1._currentDropOperation = p;\n  }\n  async getDropEdits(providers, model, position, dataTransfer, token) {\n    const disposables = new DisposableStore();\n    const results = await raceCancellation(Promise.all(providers.map(async (provider) =\u003e {\n      try {\n        const edits2 = await provider.provideDocumentDropEdits(model, position, dataTransfer, token);\n        if (edits2) {\n          disposables.add(edits2);\n        }\n        return edits2?.edits.map((edit2) =\u003e ({ ...edit2, providerId: provider.id }));\n      } catch (err) {\n        if (!isCancellationError(err)) {\n          console.error(err);\n        }\n        console.error(err);\n      }\n      return void 0;\n    })), token);\n    const edits = coalesce(results ?? []).flat();\n    return {\n      edits: sortEditsByYieldTo(edits),\n      dispose: () =\u003e disposables.dispose()\n    };\n  }\n  getInitialActiveEditIndex(model, edits) {\n    const preferredProviders = this._configService.getValue(dropAsPreferenceConfig, { resource: model.uri });\n    for (const config of Array.isArray(preferredProviders) ? preferredProviders : []) {\n      const desiredKind = new HierarchicalKind(config);\n      const editIndex = edits.findIndex((edit2) =\u003e edit2.kind \u0026\u0026 desiredKind.contains(edit2.kind));\n      if (editIndex \u003e= 0) {\n        return editIndex;\n      }\n    }\n    return 0;\n  }\n  async extractDataTransferData(dragEvent) {\n    if (!dragEvent.dataTransfer) {\n      return new VSDataTransfer();\n    }\n    const dataTransfer = toExternalVSDataTransfer(dragEvent.dataTransfer);\n    if (this.treeItemsTransfer.hasData(DraggedTreeItemsIdentifier.prototype)) {\n      const data = this.treeItemsTransfer.getData(DraggedTreeItemsIdentifier.prototype);\n      if (Array.isArray(data)) {\n        for (const id of data) {\n          const treeDataTransfer = await this._treeViewsDragAndDropService.removeDragOperationTransfer(id.identifier);\n          if (treeDataTransfer) {\n            for (const [type, value] of treeDataTransfer) {\n              dataTransfer.replace(type, value);\n            }\n          }\n        }\n      }\n    }\n    return dataTransfer;\n  }\n};\nDropIntoEditorController = DropIntoEditorController_1 = __decorate83([\n  __param77(1, IInstantiationService),\n  __param77(2, IConfigurationService),\n  __param77(3, ILanguageFeaturesService),\n  __param77(4, ITreeViewsDnDService)\n], DropIntoEditorController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js\nregisterEditorContribution(\n  DropIntoEditorController.ID,\n  DropIntoEditorController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorFeature(DefaultDropProvidersFeature);\nregisterEditorCommand(new class extends EditorCommand {\n  constructor() {\n    super({\n      id: changeDropTypeCommandId,\n      precondition: dropWidgetVisibleCtx,\n      kbOpts: {\n        weight: 100,\n        primary: 2048 | 89\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2, _args) {\n    DropIntoEditorController.get(editor2)?.changeDropType();\n  }\n}());\nregisterEditorCommand(new class extends EditorCommand {\n  constructor() {\n    super({\n      id: \"editor.hideDropWidget\",\n      precondition: dropWidgetVisibleCtx,\n      kbOpts: {\n        weight: 100,\n        primary: 9\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2, _args) {\n    DropIntoEditorController.get(editor2)?.clearWidgets();\n  }\n}());\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findController.js\ninit_async();\ninit_lifecycle();\ninit_strings();\ninit_editorExtensions();\ninit_editorColorRegistry();\ninit_editorContextKeys();\ninit_model2();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findModel.js\ninit_arraysFind();\ninit_async();\ninit_lifecycle();\ninit_position();\ninit_range();\ninit_selection();\ninit_textModelSearch();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findDecorations.js\ninit_range();\ninit_model2();\ninit_textModel();\ninit_colorRegistry();\ninit_themeService();\nvar FindDecorations = class _FindDecorations {\n  constructor(editor2) {\n    this._editor = editor2;\n    this._decorations = [];\n    this._overviewRulerApproximateDecorations = [];\n    this._findScopeDecorationIds = [];\n    this._rangeHighlightDecorationId = null;\n    this._highlightedDecorationId = null;\n    this._startPosition = this._editor.getPosition();\n  }\n  dispose() {\n    this._editor.removeDecorations(this._allDecorations());\n    this._decorations = [];\n    this._overviewRulerApproximateDecorations = [];\n    this._findScopeDecorationIds = [];\n    this._rangeHighlightDecorationId = null;\n    this._highlightedDecorationId = null;\n  }\n  reset() {\n    this._decorations = [];\n    this._overviewRulerApproximateDecorations = [];\n    this._findScopeDecorationIds = [];\n    this._rangeHighlightDecorationId = null;\n    this._highlightedDecorationId = null;\n  }\n  getCount() {\n    return this._decorations.length;\n  }\n  /** @deprecated use getFindScopes to support multiple selections */\n  getFindScope() {\n    if (this._findScopeDecorationIds[0]) {\n      return this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]);\n    }\n    return null;\n  }\n  getFindScopes() {\n    if (this._findScopeDecorationIds.length) {\n      const scopes = this._findScopeDecorationIds.map((findScopeDecorationId) =\u003e this._editor.getModel().getDecorationRange(findScopeDecorationId)).filter((element) =\u003e !!element);\n      if (scopes.length) {\n        return scopes;\n      }\n    }\n    return null;\n  }\n  getStartPosition() {\n    return this._startPosition;\n  }\n  setStartPosition(newStartPosition) {\n    this._startPosition = newStartPosition;\n    this.setCurrentFindMatch(null);\n  }\n  _getDecorationIndex(decorationId) {\n    const index = this._decorations.indexOf(decorationId);\n    if (index \u003e= 0) {\n      return index + 1;\n    }\n    return 1;\n  }\n  getDecorationRangeAt(index) {\n    const decorationId = index \u003c this._decorations.length ? this._decorations[index] : null;\n    if (decorationId) {\n      return this._editor.getModel().getDecorationRange(decorationId);\n    }\n    return null;\n  }\n  getCurrentMatchesPosition(desiredRange) {\n    const candidates = this._editor.getModel().getDecorationsInRange(desiredRange);\n    for (const candidate of candidates) {\n      const candidateOpts = candidate.options;\n      if (candidateOpts === _FindDecorations._FIND_MATCH_DECORATION || candidateOpts === _FindDecorations._CURRENT_FIND_MATCH_DECORATION) {\n        return this._getDecorationIndex(candidate.id);\n      }\n    }\n    return 0;\n  }\n  setCurrentFindMatch(nextMatch) {\n    let newCurrentDecorationId = null;\n    let matchPosition = 0;\n    if (nextMatch) {\n      for (let i2 = 0, len = this._decorations.length; i2 \u003c len; i2++) {\n        const range2 = this._editor.getModel().getDecorationRange(this._decorations[i2]);\n        if (nextMatch.equalsRange(range2)) {\n          newCurrentDecorationId = this._decorations[i2];\n          matchPosition = i2 + 1;\n          break;\n        }\n      }\n    }\n    if (this._highlightedDecorationId !== null || newCurrentDecorationId !== null) {\n      this._editor.changeDecorations((changeAccessor) =\u003e {\n        if (this._highlightedDecorationId !== null) {\n          changeAccessor.changeDecorationOptions(this._highlightedDecorationId, _FindDecorations._FIND_MATCH_DECORATION);\n          this._highlightedDecorationId = null;\n        }\n        if (newCurrentDecorationId !== null) {\n          this._highlightedDecorationId = newCurrentDecorationId;\n          changeAccessor.changeDecorationOptions(this._highlightedDecorationId, _FindDecorations._CURRENT_FIND_MATCH_DECORATION);\n        }\n        if (this._rangeHighlightDecorationId !== null) {\n          changeAccessor.removeDecoration(this._rangeHighlightDecorationId);\n          this._rangeHighlightDecorationId = null;\n        }\n        if (newCurrentDecorationId !== null) {\n          let rng = this._editor.getModel().getDecorationRange(newCurrentDecorationId);\n          if (rng.startLineNumber !== rng.endLineNumber \u0026\u0026 rng.endColumn === 1) {\n            const lineBeforeEnd = rng.endLineNumber - 1;\n            const lineBeforeEndMaxColumn = this._editor.getModel().getLineMaxColumn(lineBeforeEnd);\n            rng = new Range(rng.startLineNumber, rng.startColumn, lineBeforeEnd, lineBeforeEndMaxColumn);\n          }\n          this._rangeHighlightDecorationId = changeAccessor.addDecoration(rng, _FindDecorations._RANGE_HIGHLIGHT_DECORATION);\n        }\n      });\n    }\n    return matchPosition;\n  }\n  set(findMatches, findScopes) {\n    this._editor.changeDecorations((accessor) =\u003e {\n      let findMatchesOptions = _FindDecorations._FIND_MATCH_DECORATION;\n      const newOverviewRulerApproximateDecorations = [];\n      if (findMatches.length \u003e 1e3) {\n        findMatchesOptions = _FindDecorations._FIND_MATCH_NO_OVERVIEW_DECORATION;\n        const lineCount = this._editor.getModel().getLineCount();\n        const height = this._editor.getLayoutInfo().height;\n        const approxPixelsPerLine = height / lineCount;\n        const mergeLinesDelta = Math.max(2, Math.ceil(3 / approxPixelsPerLine));\n        let prevStartLineNumber = findMatches[0].range.startLineNumber;\n        let prevEndLineNumber = findMatches[0].range.endLineNumber;\n        for (let i2 = 1, len = findMatches.length; i2 \u003c len; i2++) {\n          const range2 = findMatches[i2].range;\n          if (prevEndLineNumber + mergeLinesDelta \u003e= range2.startLineNumber) {\n            if (range2.endLineNumber \u003e prevEndLineNumber) {\n              prevEndLineNumber = range2.endLineNumber;\n            }\n          } else {\n            newOverviewRulerApproximateDecorations.push({\n              range: new Range(prevStartLineNumber, 1, prevEndLineNumber, 1),\n              options: _FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n            });\n            prevStartLineNumber = range2.startLineNumber;\n            prevEndLineNumber = range2.endLineNumber;\n          }\n        }\n        newOverviewRulerApproximateDecorations.push({\n          range: new Range(prevStartLineNumber, 1, prevEndLineNumber, 1),\n          options: _FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n        });\n      }\n      const newFindMatchesDecorations = new Array(findMatches.length);\n      for (let i2 = 0, len = findMatches.length; i2 \u003c len; i2++) {\n        newFindMatchesDecorations[i2] = {\n          range: findMatches[i2].range,\n          options: findMatchesOptions\n        };\n      }\n      this._decorations = accessor.deltaDecorations(this._decorations, newFindMatchesDecorations);\n      this._overviewRulerApproximateDecorations = accessor.deltaDecorations(this._overviewRulerApproximateDecorations, newOverviewRulerApproximateDecorations);\n      if (this._rangeHighlightDecorationId) {\n        accessor.removeDecoration(this._rangeHighlightDecorationId);\n        this._rangeHighlightDecorationId = null;\n      }\n      if (this._findScopeDecorationIds.length) {\n        this._findScopeDecorationIds.forEach((findScopeDecorationId) =\u003e accessor.removeDecoration(findScopeDecorationId));\n        this._findScopeDecorationIds = [];\n      }\n      if (findScopes?.length) {\n        this._findScopeDecorationIds = findScopes.map((findScope) =\u003e accessor.addDecoration(findScope, _FindDecorations._FIND_SCOPE_DECORATION));\n      }\n    });\n  }\n  matchBeforePosition(position) {\n    if (this._decorations.length === 0) {\n      return null;\n    }\n    for (let i2 = this._decorations.length - 1; i2 \u003e= 0; i2--) {\n      const decorationId = this._decorations[i2];\n      const r = this._editor.getModel().getDecorationRange(decorationId);\n      if (!r || r.endLineNumber \u003e position.lineNumber) {\n        continue;\n      }\n      if (r.endLineNumber \u003c position.lineNumber) {\n        return r;\n      }\n      if (r.endColumn \u003e position.column) {\n        continue;\n      }\n      return r;\n    }\n    return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length - 1]);\n  }\n  matchAfterPosition(position) {\n    if (this._decorations.length === 0) {\n      return null;\n    }\n    for (let i2 = 0, len = this._decorations.length; i2 \u003c len; i2++) {\n      const decorationId = this._decorations[i2];\n      const r = this._editor.getModel().getDecorationRange(decorationId);\n      if (!r || r.startLineNumber \u003c position.lineNumber) {\n        continue;\n      }\n      if (r.startLineNumber \u003e position.lineNumber) {\n        return r;\n      }\n      if (r.startColumn \u003c position.column) {\n        continue;\n      }\n      return r;\n    }\n    return this._editor.getModel().getDecorationRange(this._decorations[0]);\n  }\n  _allDecorations() {\n    let result = [];\n    result = result.concat(this._decorations);\n    result = result.concat(this._overviewRulerApproximateDecorations);\n    if (this._findScopeDecorationIds.length) {\n      result.push(...this._findScopeDecorationIds);\n    }\n    if (this._rangeHighlightDecorationId) {\n      result.push(this._rangeHighlightDecorationId);\n    }\n    return result;\n  }\n  static {\n    this._CURRENT_FIND_MATCH_DECORATION = ModelDecorationOptions.register({\n      description: \"current-find-match\",\n      stickiness: 1,\n      zIndex: 13,\n      className: \"currentFindMatch\",\n      inlineClassName: \"currentFindMatchInline\",\n      showIfCollapsed: true,\n      overviewRuler: {\n        color: themeColorFromId(overviewRulerFindMatchForeground),\n        position: OverviewRulerLane.Center\n      },\n      minimap: {\n        color: themeColorFromId(minimapFindMatch),\n        position: 1\n        /* MinimapPosition.Inline */\n      }\n    });\n  }\n  static {\n    this._FIND_MATCH_DECORATION = ModelDecorationOptions.register({\n      description: \"find-match\",\n      stickiness: 1,\n      zIndex: 10,\n      className: \"findMatch\",\n      inlineClassName: \"findMatchInline\",\n      showIfCollapsed: true,\n      overviewRuler: {\n        color: themeColorFromId(overviewRulerFindMatchForeground),\n        position: OverviewRulerLane.Center\n      },\n      minimap: {\n        color: themeColorFromId(minimapFindMatch),\n        position: 1\n        /* MinimapPosition.Inline */\n      }\n    });\n  }\n  static {\n    this._FIND_MATCH_NO_OVERVIEW_DECORATION = ModelDecorationOptions.register({\n      description: \"find-match-no-overview\",\n      stickiness: 1,\n      className: \"findMatch\",\n      showIfCollapsed: true\n    });\n  }\n  static {\n    this._FIND_MATCH_ONLY_OVERVIEW_DECORATION = ModelDecorationOptions.register({\n      description: \"find-match-only-overview\",\n      stickiness: 1,\n      overviewRuler: {\n        color: themeColorFromId(overviewRulerFindMatchForeground),\n        position: OverviewRulerLane.Center\n      }\n    });\n  }\n  static {\n    this._RANGE_HIGHLIGHT_DECORATION = ModelDecorationOptions.register({\n      description: \"find-range-highlight\",\n      stickiness: 1,\n      className: \"rangeHighlight\",\n      isWholeLine: true\n    });\n  }\n  static {\n    this._FIND_SCOPE_DECORATION = ModelDecorationOptions.register({\n      description: \"find-scope\",\n      className: \"findScope\",\n      isWholeLine: true\n    });\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/replaceAllCommand.js\ninit_range();\nvar ReplaceAllCommand = class {\n  constructor(editorSelection, ranges, replaceStrings) {\n    this._editorSelection = editorSelection;\n    this._ranges = ranges;\n    this._replaceStrings = replaceStrings;\n    this._trackedEditorSelectionId = null;\n  }\n  getEditOperations(model, builder) {\n    if (this._ranges.length \u003e 0) {\n      const ops = [];\n      for (let i2 = 0; i2 \u003c this._ranges.length; i2++) {\n        ops.push({\n          range: this._ranges[i2],\n          text: this._replaceStrings[i2]\n        });\n      }\n      ops.sort((o1, o2) =\u003e {\n        return Range.compareRangesUsingStarts(o1.range, o2.range);\n      });\n      const resultOps = [];\n      let previousOp = ops[0];\n      for (let i2 = 1; i2 \u003c ops.length; i2++) {\n        if (previousOp.range.endLineNumber === ops[i2].range.startLineNumber \u0026\u0026 previousOp.range.endColumn === ops[i2].range.startColumn) {\n          previousOp.range = previousOp.range.plusRange(ops[i2].range);\n          previousOp.text = previousOp.text + ops[i2].text;\n        } else {\n          resultOps.push(previousOp);\n          previousOp = ops[i2];\n        }\n      }\n      resultOps.push(previousOp);\n      for (const op of resultOps) {\n        builder.addEditOperation(op.range, op.text);\n      }\n    }\n    this._trackedEditorSelectionId = builder.trackSelection(this._editorSelection);\n  }\n  computeCursorState(model, helper) {\n    return helper.getTrackedSelection(this._trackedEditorSelectionId);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/search.js\ninit_strings();\nfunction buildReplaceStringWithCasePreserved(matches, pattern) {\n  if (matches \u0026\u0026 matches[0] !== \"\") {\n    const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, \"-\");\n    const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, \"_\");\n    if (containsHyphens \u0026\u0026 !containsUnderscores) {\n      return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, \"-\");\n    } else if (!containsHyphens \u0026\u0026 containsUnderscores) {\n      return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, \"_\");\n    }\n    if (matches[0].toUpperCase() === matches[0]) {\n      return pattern.toUpperCase();\n    } else if (matches[0].toLowerCase() === matches[0]) {\n      return pattern.toLowerCase();\n    } else if (containsUppercaseCharacter(matches[0][0]) \u0026\u0026 pattern.length \u003e 0) {\n      return pattern[0].toUpperCase() + pattern.substr(1);\n    } else if (matches[0][0].toUpperCase() !== matches[0][0] \u0026\u0026 pattern.length \u003e 0) {\n      return pattern[0].toLowerCase() + pattern.substr(1);\n    } else {\n      return pattern;\n    }\n  } else {\n    return pattern;\n  }\n}\nfunction validateSpecificSpecialCharacter(matches, pattern, specialCharacter) {\n  const doesContainSpecialCharacter = matches[0].indexOf(specialCharacter) !== -1 \u0026\u0026 pattern.indexOf(specialCharacter) !== -1;\n  return doesContainSpecialCharacter \u0026\u0026 matches[0].split(specialCharacter).length === pattern.split(specialCharacter).length;\n}\nfunction buildReplaceStringForSpecificSpecialCharacter(matches, pattern, specialCharacter) {\n  const splitPatternAtSpecialCharacter = pattern.split(specialCharacter);\n  const splitMatchAtSpecialCharacter = matches[0].split(specialCharacter);\n  let replaceString = \"\";\n  splitPatternAtSpecialCharacter.forEach((splitValue, index) =\u003e {\n    replaceString += buildReplaceStringWithCasePreserved([splitMatchAtSpecialCharacter[index]], splitValue) + specialCharacter;\n  });\n  return replaceString.slice(0, -1);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/replacePattern.js\nvar StaticValueReplacePattern = class {\n  constructor(staticValue) {\n    this.staticValue = staticValue;\n    this.kind = 0;\n  }\n};\nvar DynamicPiecesReplacePattern = class {\n  constructor(pieces) {\n    this.pieces = pieces;\n    this.kind = 1;\n  }\n};\nvar ReplacePattern = class _ReplacePattern {\n  static fromStaticValue(value) {\n    return new _ReplacePattern([ReplacePiece.staticValue(value)]);\n  }\n  get hasReplacementPatterns() {\n    return this._state.kind === 1;\n  }\n  constructor(pieces) {\n    if (!pieces || pieces.length === 0) {\n      this._state = new StaticValueReplacePattern(\"\");\n    } else if (pieces.length === 1 \u0026\u0026 pieces[0].staticValue !== null) {\n      this._state = new StaticValueReplacePattern(pieces[0].staticValue);\n    } else {\n      this._state = new DynamicPiecesReplacePattern(pieces);\n    }\n  }\n  buildReplaceString(matches, preserveCase) {\n    if (this._state.kind === 0) {\n      if (preserveCase) {\n        return buildReplaceStringWithCasePreserved(matches, this._state.staticValue);\n      } else {\n        return this._state.staticValue;\n      }\n    }\n    let result = \"\";\n    for (let i2 = 0, len = this._state.pieces.length; i2 \u003c len; i2++) {\n      const piece = this._state.pieces[i2];\n      if (piece.staticValue !== null) {\n        result += piece.staticValue;\n        continue;\n      }\n      let match2 = _ReplacePattern._substitute(piece.matchIndex, matches);\n      if (piece.caseOps !== null \u0026\u0026 piece.caseOps.length \u003e 0) {\n        const repl = [];\n        const lenOps = piece.caseOps.length;\n        let opIdx = 0;\n        for (let idx = 0, len2 = match2.length; idx \u003c len2; idx++) {\n          if (opIdx \u003e= lenOps) {\n            repl.push(match2.slice(idx));\n            break;\n          }\n          switch (piece.caseOps[opIdx]) {\n            case \"U\":\n              repl.push(match2[idx].toUpperCase());\n              break;\n            case \"u\":\n              repl.push(match2[idx].toUpperCase());\n              opIdx++;\n              break;\n            case \"L\":\n              repl.push(match2[idx].toLowerCase());\n              break;\n            case \"l\":\n              repl.push(match2[idx].toLowerCase());\n              opIdx++;\n              break;\n            default:\n              repl.push(match2[idx]);\n          }\n        }\n        match2 = repl.join(\"\");\n      }\n      result += match2;\n    }\n    return result;\n  }\n  static _substitute(matchIndex, matches) {\n    if (matches === null) {\n      return \"\";\n    }\n    if (matchIndex === 0) {\n      return matches[0];\n    }\n    let remainder = \"\";\n    while (matchIndex \u003e 0) {\n      if (matchIndex \u003c matches.length) {\n        const match2 = matches[matchIndex] || \"\";\n        return match2 + remainder;\n      }\n      remainder = String(matchIndex % 10) + remainder;\n      matchIndex = Math.floor(matchIndex / 10);\n    }\n    return \"$\" + remainder;\n  }\n};\nvar ReplacePiece = class _ReplacePiece {\n  static staticValue(value) {\n    return new _ReplacePiece(value, -1, null);\n  }\n  static caseOps(index, caseOps) {\n    return new _ReplacePiece(null, index, caseOps);\n  }\n  constructor(staticValue, matchIndex, caseOps) {\n    this.staticValue = staticValue;\n    this.matchIndex = matchIndex;\n    if (!caseOps || caseOps.length === 0) {\n      this.caseOps = null;\n    } else {\n      this.caseOps = caseOps.slice(0);\n    }\n  }\n};\nvar ReplacePieceBuilder = class {\n  constructor(source) {\n    this._source = source;\n    this._lastCharIndex = 0;\n    this._result = [];\n    this._resultLen = 0;\n    this._currentStaticPiece = \"\";\n  }\n  emitUnchanged(toCharIndex) {\n    this._emitStatic(this._source.substring(this._lastCharIndex, toCharIndex));\n    this._lastCharIndex = toCharIndex;\n  }\n  emitStatic(value, toCharIndex) {\n    this._emitStatic(value);\n    this._lastCharIndex = toCharIndex;\n  }\n  _emitStatic(value) {\n    if (value.length === 0) {\n      return;\n    }\n    this._currentStaticPiece += value;\n  }\n  emitMatchIndex(index, toCharIndex, caseOps) {\n    if (this._currentStaticPiece.length !== 0) {\n      this._result[this._resultLen++] = ReplacePiece.staticValue(this._currentStaticPiece);\n      this._currentStaticPiece = \"\";\n    }\n    this._result[this._resultLen++] = ReplacePiece.caseOps(index, caseOps);\n    this._lastCharIndex = toCharIndex;\n  }\n  finalize() {\n    this.emitUnchanged(this._source.length);\n    if (this._currentStaticPiece.length !== 0) {\n      this._result[this._resultLen++] = ReplacePiece.staticValue(this._currentStaticPiece);\n      this._currentStaticPiece = \"\";\n    }\n    return new ReplacePattern(this._result);\n  }\n};\nfunction parseReplaceString(replaceString) {\n  if (!replaceString || replaceString.length === 0) {\n    return new ReplacePattern(null);\n  }\n  const caseOps = [];\n  const result = new ReplacePieceBuilder(replaceString);\n  for (let i2 = 0, len = replaceString.length; i2 \u003c len; i2++) {\n    const chCode = replaceString.charCodeAt(i2);\n    if (chCode === 92) {\n      i2++;\n      if (i2 \u003e= len) {\n        break;\n      }\n      const nextChCode = replaceString.charCodeAt(i2);\n      switch (nextChCode) {\n        case 92:\n          result.emitUnchanged(i2 - 1);\n          result.emitStatic(\"\\\\\", i2 + 1);\n          break;\n        case 110:\n          result.emitUnchanged(i2 - 1);\n          result.emitStatic(\"\\n\", i2 + 1);\n          break;\n        case 116:\n          result.emitUnchanged(i2 - 1);\n          result.emitStatic(\"\t\", i2 + 1);\n          break;\n        // Case modification of string replacements, patterned after Boost, but only applied\n        // to the replacement text, not subsequent content.\n        case 117:\n        // \\u =\u003e upper-cases one character.\n        case 85:\n        // \\U =\u003e upper-cases ALL following characters.\n        case 108:\n        // \\l =\u003e lower-cases one character.\n        case 76:\n          result.emitUnchanged(i2 - 1);\n          result.emitStatic(\"\", i2 + 1);\n          caseOps.push(String.fromCharCode(nextChCode));\n          break;\n      }\n      continue;\n    }\n    if (chCode === 36) {\n      i2++;\n      if (i2 \u003e= len) {\n        break;\n      }\n      const nextChCode = replaceString.charCodeAt(i2);\n      if (nextChCode === 36) {\n        result.emitUnchanged(i2 - 1);\n        result.emitStatic(\"$\", i2 + 1);\n        continue;\n      }\n      if (nextChCode === 48 || nextChCode === 38) {\n        result.emitUnchanged(i2 - 1);\n        result.emitMatchIndex(0, i2 + 1, caseOps);\n        caseOps.length = 0;\n        continue;\n      }\n      if (49 \u003c= nextChCode \u0026\u0026 nextChCode \u003c= 57) {\n        let matchIndex = nextChCode - 48;\n        if (i2 + 1 \u003c len) {\n          const nextNextChCode = replaceString.charCodeAt(i2 + 1);\n          if (48 \u003c= nextNextChCode \u0026\u0026 nextNextChCode \u003c= 57) {\n            i2++;\n            matchIndex = matchIndex * 10 + (nextNextChCode - 48);\n            result.emitUnchanged(i2 - 2);\n            result.emitMatchIndex(matchIndex, i2 + 1, caseOps);\n            caseOps.length = 0;\n            continue;\n          }\n        }\n        result.emitUnchanged(i2 - 1);\n        result.emitMatchIndex(matchIndex, i2 + 1, caseOps);\n        caseOps.length = 0;\n        continue;\n      }\n    }\n  }\n  return result.finalize();\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findModel.js\ninit_contextkey();\nvar CONTEXT_FIND_WIDGET_VISIBLE = new RawContextKey(\"findWidgetVisible\", false);\nvar CONTEXT_FIND_WIDGET_NOT_VISIBLE = CONTEXT_FIND_WIDGET_VISIBLE.toNegated();\nvar CONTEXT_FIND_INPUT_FOCUSED = new RawContextKey(\"findInputFocussed\", false);\nvar CONTEXT_REPLACE_INPUT_FOCUSED = new RawContextKey(\"replaceInputFocussed\", false);\nvar ToggleCaseSensitiveKeybinding = {\n  primary: 512 | 33,\n  mac: {\n    primary: 2048 | 512 | 33\n    /* KeyCode.KeyC */\n  }\n};\nvar ToggleWholeWordKeybinding = {\n  primary: 512 | 53,\n  mac: {\n    primary: 2048 | 512 | 53\n    /* KeyCode.KeyW */\n  }\n};\nvar ToggleRegexKeybinding = {\n  primary: 512 | 48,\n  mac: {\n    primary: 2048 | 512 | 48\n    /* KeyCode.KeyR */\n  }\n};\nvar ToggleSearchScopeKeybinding = {\n  primary: 512 | 42,\n  mac: {\n    primary: 2048 | 512 | 42\n    /* KeyCode.KeyL */\n  }\n};\nvar TogglePreserveCaseKeybinding = {\n  primary: 512 | 46,\n  mac: {\n    primary: 2048 | 512 | 46\n    /* KeyCode.KeyP */\n  }\n};\nvar FIND_IDS = {\n  StartFindAction: \"actions.find\",\n  StartFindWithSelection: \"actions.findWithSelection\",\n  StartFindWithArgs: \"editor.actions.findWithArgs\",\n  NextMatchFindAction: \"editor.action.nextMatchFindAction\",\n  PreviousMatchFindAction: \"editor.action.previousMatchFindAction\",\n  GoToMatchFindAction: \"editor.action.goToMatchFindAction\",\n  NextSelectionMatchFindAction: \"editor.action.nextSelectionMatchFindAction\",\n  PreviousSelectionMatchFindAction: \"editor.action.previousSelectionMatchFindAction\",\n  StartFindReplaceAction: \"editor.action.startFindReplaceAction\",\n  CloseFindWidgetCommand: \"closeFindWidget\",\n  ToggleCaseSensitiveCommand: \"toggleFindCaseSensitive\",\n  ToggleWholeWordCommand: \"toggleFindWholeWord\",\n  ToggleRegexCommand: \"toggleFindRegex\",\n  ToggleSearchScopeCommand: \"toggleFindInSelection\",\n  TogglePreserveCaseCommand: \"togglePreserveCase\",\n  ReplaceOneAction: \"editor.action.replaceOne\",\n  ReplaceAllAction: \"editor.action.replaceAll\",\n  SelectAllMatchesAction: \"editor.action.selectAllMatches\"\n};\nvar MATCHES_LIMIT = 19999;\nvar RESEARCH_DELAY = 240;\nvar FindModelBoundToEditorModel = class _FindModelBoundToEditorModel {\n  constructor(editor2, state) {\n    this._toDispose = new DisposableStore();\n    this._editor = editor2;\n    this._state = state;\n    this._isDisposed = false;\n    this._startSearchingTimer = new TimeoutTimer();\n    this._decorations = new FindDecorations(editor2);\n    this._toDispose.add(this._decorations);\n    this._updateDecorationsScheduler = new RunOnceScheduler(() =\u003e {\n      if (!this._editor.hasModel()) {\n        return;\n      }\n      return this.research(false);\n    }, 100);\n    this._toDispose.add(this._updateDecorationsScheduler);\n    this._toDispose.add(this._editor.onDidChangeCursorPosition((e) =\u003e {\n      if (e.reason === 3 || e.reason === 5 || e.reason === 6) {\n        this._decorations.setStartPosition(this._editor.getPosition());\n      }\n    }));\n    this._ignoreModelContentChanged = false;\n    this._toDispose.add(this._editor.onDidChangeModelContent((e) =\u003e {\n      if (this._ignoreModelContentChanged) {\n        return;\n      }\n      if (e.isFlush) {\n        this._decorations.reset();\n      }\n      this._decorations.setStartPosition(this._editor.getPosition());\n      this._updateDecorationsScheduler.schedule();\n    }));\n    this._toDispose.add(this._state.onFindReplaceStateChange((e) =\u003e this._onStateChanged(e)));\n    this.research(false, this._state.searchScope);\n  }\n  dispose() {\n    this._isDisposed = true;\n    dispose(this._startSearchingTimer);\n    this._toDispose.dispose();\n  }\n  _onStateChanged(e) {\n    if (this._isDisposed) {\n      return;\n    }\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    if (e.searchString || e.isReplaceRevealed || e.isRegex || e.wholeWord || e.matchCase || e.searchScope) {\n      const model = this._editor.getModel();\n      if (model.isTooLargeForSyncing()) {\n        this._startSearchingTimer.cancel();\n        this._startSearchingTimer.setIfNotSet(() =\u003e {\n          if (e.searchScope) {\n            this.research(e.moveCursor, this._state.searchScope);\n          } else {\n            this.research(e.moveCursor);\n          }\n        }, RESEARCH_DELAY);\n      } else {\n        if (e.searchScope) {\n          this.research(e.moveCursor, this._state.searchScope);\n        } else {\n          this.research(e.moveCursor);\n        }\n      }\n    }\n  }\n  static _getSearchRange(model, findScope) {\n    if (findScope) {\n      return findScope;\n    }\n    return model.getFullModelRange();\n  }\n  research(moveCursor, newFindScope) {\n    let findScopes = null;\n    if (typeof newFindScope !== \"undefined\") {\n      if (newFindScope !== null) {\n        if (!Array.isArray(newFindScope)) {\n          findScopes = [newFindScope];\n        } else {\n          findScopes = newFindScope;\n        }\n      }\n    } else {\n      findScopes = this._decorations.getFindScopes();\n    }\n    if (findScopes !== null) {\n      findScopes = findScopes.map((findScope) =\u003e {\n        if (findScope.startLineNumber !== findScope.endLineNumber) {\n          let endLineNumber = findScope.endLineNumber;\n          if (findScope.endColumn === 1) {\n            endLineNumber = endLineNumber - 1;\n          }\n          return new Range(findScope.startLineNumber, 1, endLineNumber, this._editor.getModel().getLineMaxColumn(endLineNumber));\n        }\n        return findScope;\n      });\n    }\n    const findMatches = this._findMatches(findScopes, false, MATCHES_LIMIT);\n    this._decorations.set(findMatches, findScopes);\n    const editorSelection = this._editor.getSelection();\n    let currentMatchesPosition = this._decorations.getCurrentMatchesPosition(editorSelection);\n    if (currentMatchesPosition === 0 \u0026\u0026 findMatches.length \u003e 0) {\n      const matchAfterSelection = findFirstIdxMonotonousOrArrLen(findMatches.map((match2) =\u003e match2.range), (range2) =\u003e Range.compareRangesUsingStarts(range2, editorSelection) \u003e= 0);\n      currentMatchesPosition = matchAfterSelection \u003e 0 ? matchAfterSelection - 1 + 1 : currentMatchesPosition;\n    }\n    this._state.changeMatchInfo(currentMatchesPosition, this._decorations.getCount(), void 0);\n    if (moveCursor \u0026\u0026 this._editor.getOption(\n      50\n      /* EditorOption.find */\n    ).cursorMoveOnType) {\n      this._moveToNextMatch(this._decorations.getStartPosition());\n    }\n  }\n  _hasMatches() {\n    return this._state.matchesCount \u003e 0;\n  }\n  _cannotFind() {\n    if (!this._hasMatches()) {\n      const findScope = this._decorations.getFindScope();\n      if (findScope) {\n        this._editor.revealRangeInCenterIfOutsideViewport(\n          findScope,\n          0\n          /* ScrollType.Smooth */\n        );\n      }\n      return true;\n    }\n    return false;\n  }\n  _setCurrentFindMatch(match2) {\n    const matchesPosition = this._decorations.setCurrentFindMatch(match2);\n    this._state.changeMatchInfo(matchesPosition, this._decorations.getCount(), match2);\n    this._editor.setSelection(match2);\n    this._editor.revealRangeInCenterIfOutsideViewport(\n      match2,\n      0\n      /* ScrollType.Smooth */\n    );\n  }\n  _prevSearchPosition(before) {\n    const isUsingLineStops = this._state.isRegex \u0026\u0026 (this._state.searchString.indexOf(\"^\") \u003e= 0 || this._state.searchString.indexOf(\"$\") \u003e= 0);\n    let { lineNumber, column } = before;\n    const model = this._editor.getModel();\n    if (isUsingLineStops || column === 1) {\n      if (lineNumber === 1) {\n        lineNumber = model.getLineCount();\n      } else {\n        lineNumber--;\n      }\n      column = model.getLineMaxColumn(lineNumber);\n    } else {\n      column--;\n    }\n    return new Position(lineNumber, column);\n  }\n  _moveToPrevMatch(before, isRecursed = false) {\n    if (!this._state.canNavigateBack()) {\n      const nextMatchRange = this._decorations.matchAfterPosition(before);\n      if (nextMatchRange) {\n        this._setCurrentFindMatch(nextMatchRange);\n      }\n      return;\n    }\n    if (this._decorations.getCount() \u003c MATCHES_LIMIT) {\n      let prevMatchRange = this._decorations.matchBeforePosition(before);\n      if (prevMatchRange \u0026\u0026 prevMatchRange.isEmpty() \u0026\u0026 prevMatchRange.getStartPosition().equals(before)) {\n        before = this._prevSearchPosition(before);\n        prevMatchRange = this._decorations.matchBeforePosition(before);\n      }\n      if (prevMatchRange) {\n        this._setCurrentFindMatch(prevMatchRange);\n      }\n      return;\n    }\n    if (this._cannotFind()) {\n      return;\n    }\n    const findScope = this._decorations.getFindScope();\n    const searchRange = _FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), findScope);\n    if (searchRange.getEndPosition().isBefore(before)) {\n      before = searchRange.getEndPosition();\n    }\n    if (before.isBefore(searchRange.getStartPosition())) {\n      before = searchRange.getEndPosition();\n    }\n    const { lineNumber, column } = before;\n    const model = this._editor.getModel();\n    let position = new Position(lineNumber, column);\n    let prevMatch = model.findPreviousMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ) : null, false);\n    if (prevMatch \u0026\u0026 prevMatch.range.isEmpty() \u0026\u0026 prevMatch.range.getStartPosition().equals(position)) {\n      position = this._prevSearchPosition(position);\n      prevMatch = model.findPreviousMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(\n        147\n        /* EditorOption.wordSeparators */\n      ) : null, false);\n    }\n    if (!prevMatch) {\n      return;\n    }\n    if (!isRecursed \u0026\u0026 !searchRange.containsRange(prevMatch.range)) {\n      return this._moveToPrevMatch(prevMatch.range.getStartPosition(), true);\n    }\n    this._setCurrentFindMatch(prevMatch.range);\n  }\n  moveToPrevMatch() {\n    this._moveToPrevMatch(this._editor.getSelection().getStartPosition());\n  }\n  _nextSearchPosition(after2) {\n    const isUsingLineStops = this._state.isRegex \u0026\u0026 (this._state.searchString.indexOf(\"^\") \u003e= 0 || this._state.searchString.indexOf(\"$\") \u003e= 0);\n    let { lineNumber, column } = after2;\n    const model = this._editor.getModel();\n    if (isUsingLineStops || column === model.getLineMaxColumn(lineNumber)) {\n      if (lineNumber === model.getLineCount()) {\n        lineNumber = 1;\n      } else {\n        lineNumber++;\n      }\n      column = 1;\n    } else {\n      column++;\n    }\n    return new Position(lineNumber, column);\n  }\n  _moveToNextMatch(after2) {\n    if (!this._state.canNavigateForward()) {\n      const prevMatchRange = this._decorations.matchBeforePosition(after2);\n      if (prevMatchRange) {\n        this._setCurrentFindMatch(prevMatchRange);\n      }\n      return;\n    }\n    if (this._decorations.getCount() \u003c MATCHES_LIMIT) {\n      let nextMatchRange = this._decorations.matchAfterPosition(after2);\n      if (nextMatchRange \u0026\u0026 nextMatchRange.isEmpty() \u0026\u0026 nextMatchRange.getStartPosition().equals(after2)) {\n        after2 = this._nextSearchPosition(after2);\n        nextMatchRange = this._decorations.matchAfterPosition(after2);\n      }\n      if (nextMatchRange) {\n        this._setCurrentFindMatch(nextMatchRange);\n      }\n      return;\n    }\n    const nextMatch = this._getNextMatch(after2, false, true);\n    if (nextMatch) {\n      this._setCurrentFindMatch(nextMatch.range);\n    }\n  }\n  _getNextMatch(after2, captureMatches, forceMove, isRecursed = false) {\n    if (this._cannotFind()) {\n      return null;\n    }\n    const findScope = this._decorations.getFindScope();\n    const searchRange = _FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), findScope);\n    if (searchRange.getEndPosition().isBefore(after2)) {\n      after2 = searchRange.getStartPosition();\n    }\n    if (after2.isBefore(searchRange.getStartPosition())) {\n      after2 = searchRange.getStartPosition();\n    }\n    const { lineNumber, column } = after2;\n    const model = this._editor.getModel();\n    let position = new Position(lineNumber, column);\n    let nextMatch = model.findNextMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ) : null, captureMatches);\n    if (forceMove \u0026\u0026 nextMatch \u0026\u0026 nextMatch.range.isEmpty() \u0026\u0026 nextMatch.range.getStartPosition().equals(position)) {\n      position = this._nextSearchPosition(position);\n      nextMatch = model.findNextMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(\n        147\n        /* EditorOption.wordSeparators */\n      ) : null, captureMatches);\n    }\n    if (!nextMatch) {\n      return null;\n    }\n    if (!isRecursed \u0026\u0026 !searchRange.containsRange(nextMatch.range)) {\n      return this._getNextMatch(nextMatch.range.getEndPosition(), captureMatches, forceMove, true);\n    }\n    return nextMatch;\n  }\n  moveToNextMatch() {\n    this._moveToNextMatch(this._editor.getSelection().getEndPosition());\n  }\n  _moveToMatch(index) {\n    const decorationRange = this._decorations.getDecorationRangeAt(index);\n    if (decorationRange) {\n      this._setCurrentFindMatch(decorationRange);\n    }\n  }\n  moveToMatch(index) {\n    this._moveToMatch(index);\n  }\n  _getReplacePattern() {\n    if (this._state.isRegex) {\n      return parseReplaceString(this._state.replaceString);\n    }\n    return ReplacePattern.fromStaticValue(this._state.replaceString);\n  }\n  replace() {\n    if (!this._hasMatches()) {\n      return;\n    }\n    const replacePattern = this._getReplacePattern();\n    const selection = this._editor.getSelection();\n    const nextMatch = this._getNextMatch(selection.getStartPosition(), true, false);\n    if (nextMatch) {\n      if (selection.equalsRange(nextMatch.range)) {\n        const replaceString = replacePattern.buildReplaceString(nextMatch.matches, this._state.preserveCase);\n        const command = new ReplaceCommand(selection, replaceString);\n        this._executeEditorCommand(\"replace\", command);\n        this._decorations.setStartPosition(new Position(selection.startLineNumber, selection.startColumn + replaceString.length));\n        this.research(true);\n      } else {\n        this._decorations.setStartPosition(this._editor.getPosition());\n        this._setCurrentFindMatch(nextMatch.range);\n      }\n    }\n  }\n  _findMatches(findScopes, captureMatches, limitResultCount) {\n    const searchRanges = (findScopes || [null]).map((scope) =\u003e _FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), scope));\n    return this._editor.getModel().findMatches(this._state.searchString, searchRanges, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ) : null, captureMatches, limitResultCount);\n  }\n  replaceAll() {\n    if (!this._hasMatches()) {\n      return;\n    }\n    const findScopes = this._decorations.getFindScopes();\n    if (findScopes === null \u0026\u0026 this._state.matchesCount \u003e= MATCHES_LIMIT) {\n      this._largeReplaceAll();\n    } else {\n      this._regularReplaceAll(findScopes);\n    }\n    this.research(false);\n  }\n  _largeReplaceAll() {\n    const searchParams = new SearchParams(this._state.searchString, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ) : null);\n    const searchData = searchParams.parseSearchRequest();\n    if (!searchData) {\n      return;\n    }\n    let searchRegex = searchData.regex;\n    if (!searchRegex.multiline) {\n      let mod = \"mu\";\n      if (searchRegex.ignoreCase) {\n        mod += \"i\";\n      }\n      if (searchRegex.global) {\n        mod += \"g\";\n      }\n      searchRegex = new RegExp(searchRegex.source, mod);\n    }\n    const model = this._editor.getModel();\n    const modelText = model.getValue(\n      1\n      /* EndOfLinePreference.LF */\n    );\n    const fullModelRange = model.getFullModelRange();\n    const replacePattern = this._getReplacePattern();\n    let resultText;\n    const preserveCase = this._state.preserveCase;\n    if (replacePattern.hasReplacementPatterns || preserveCase) {\n      resultText = modelText.replace(searchRegex, function() {\n        return replacePattern.buildReplaceString(arguments, preserveCase);\n      });\n    } else {\n      resultText = modelText.replace(searchRegex, replacePattern.buildReplaceString(null, preserveCase));\n    }\n    const command = new ReplaceCommandThatPreservesSelection(fullModelRange, resultText, this._editor.getSelection());\n    this._executeEditorCommand(\"replaceAll\", command);\n  }\n  _regularReplaceAll(findScopes) {\n    const replacePattern = this._getReplacePattern();\n    const matches = this._findMatches(\n      findScopes,\n      replacePattern.hasReplacementPatterns || this._state.preserveCase,\n      1073741824\n      /* Constants.MAX_SAFE_SMALL_INTEGER */\n    );\n    const replaceStrings = [];\n    for (let i2 = 0, len = matches.length; i2 \u003c len; i2++) {\n      replaceStrings[i2] = replacePattern.buildReplaceString(matches[i2].matches, this._state.preserveCase);\n    }\n    const command = new ReplaceAllCommand(this._editor.getSelection(), matches.map((m) =\u003e m.range), replaceStrings);\n    this._executeEditorCommand(\"replaceAll\", command);\n  }\n  selectAllMatches() {\n    if (!this._hasMatches()) {\n      return;\n    }\n    const findScopes = this._decorations.getFindScopes();\n    const matches = this._findMatches(\n      findScopes,\n      false,\n      1073741824\n      /* Constants.MAX_SAFE_SMALL_INTEGER */\n    );\n    let selections = matches.map((m) =\u003e new Selection(m.range.startLineNumber, m.range.startColumn, m.range.endLineNumber, m.range.endColumn));\n    const editorSelection = this._editor.getSelection();\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const sel = selections[i2];\n      if (sel.equalsRange(editorSelection)) {\n        selections = [editorSelection].concat(selections.slice(0, i2)).concat(selections.slice(i2 + 1));\n        break;\n      }\n    }\n    this._editor.setSelections(selections);\n  }\n  _executeEditorCommand(source, command) {\n    try {\n      this._ignoreModelContentChanged = true;\n      this._editor.pushUndoStop();\n      this._editor.executeCommand(source, command);\n      this._editor.pushUndoStop();\n    } finally {\n      this._ignoreModelContentChanged = false;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findOptionsWidget.js\ninit_dom();\ninit_async();\ninit_colorRegistry();\nvar FindOptionsWidget = class _FindOptionsWidget extends Widget {\n  static {\n    this.ID = \"editor.contrib.findOptionsWidget\";\n  }\n  constructor(editor2, state, keybindingService) {\n    super();\n    this._hideSoon = this._register(new RunOnceScheduler(() =\u003e this._hide(), 2e3));\n    this._isVisible = false;\n    this._editor = editor2;\n    this._state = state;\n    this._keybindingService = keybindingService;\n    this._domNode = document.createElement(\"div\");\n    this._domNode.className = \"findOptionsWidget\";\n    this._domNode.style.display = \"none\";\n    this._domNode.style.top = \"10px\";\n    this._domNode.style.zIndex = \"12\";\n    this._domNode.setAttribute(\"role\", \"presentation\");\n    this._domNode.setAttribute(\"aria-hidden\", \"true\");\n    const toggleStyles = {\n      inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n      inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n      inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)\n    };\n    const hoverDelegate = this._register(createInstantHoverDelegate());\n    this.caseSensitive = this._register(new CaseSensitiveToggle({\n      appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n      isChecked: this._state.matchCase,\n      hoverDelegate,\n      ...toggleStyles\n    }));\n    this._domNode.appendChild(this.caseSensitive.domNode);\n    this._register(this.caseSensitive.onChange(() =\u003e {\n      this._state.change({\n        matchCase: this.caseSensitive.checked\n      }, false);\n    }));\n    this.wholeWords = this._register(new WholeWordsToggle({\n      appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n      isChecked: this._state.wholeWord,\n      hoverDelegate,\n      ...toggleStyles\n    }));\n    this._domNode.appendChild(this.wholeWords.domNode);\n    this._register(this.wholeWords.onChange(() =\u003e {\n      this._state.change({\n        wholeWord: this.wholeWords.checked\n      }, false);\n    }));\n    this.regex = this._register(new RegexToggle({\n      appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n      isChecked: this._state.isRegex,\n      hoverDelegate,\n      ...toggleStyles\n    }));\n    this._domNode.appendChild(this.regex.domNode);\n    this._register(this.regex.onChange(() =\u003e {\n      this._state.change({\n        isRegex: this.regex.checked\n      }, false);\n    }));\n    this._editor.addOverlayWidget(this);\n    this._register(this._state.onFindReplaceStateChange((e) =\u003e {\n      let somethingChanged = false;\n      if (e.isRegex) {\n        this.regex.checked = this._state.isRegex;\n        somethingChanged = true;\n      }\n      if (e.wholeWord) {\n        this.wholeWords.checked = this._state.wholeWord;\n        somethingChanged = true;\n      }\n      if (e.matchCase) {\n        this.caseSensitive.checked = this._state.matchCase;\n        somethingChanged = true;\n      }\n      if (!this._state.isRevealed \u0026\u0026 somethingChanged) {\n        this._revealTemporarily();\n      }\n    }));\n    this._register(addDisposableListener(this._domNode, EventType.MOUSE_LEAVE, (e) =\u003e this._onMouseLeave()));\n    this._register(addDisposableListener(this._domNode, \"mouseover\", (e) =\u003e this._onMouseOver()));\n  }\n  _keybindingLabelFor(actionId) {\n    const kb = this._keybindingService.lookupKeybinding(actionId);\n    if (!kb) {\n      return \"\";\n    }\n    return ` (${kb.getLabel()})`;\n  }\n  dispose() {\n    this._editor.removeOverlayWidget(this);\n    super.dispose();\n  }\n  // ----- IOverlayWidget API\n  getId() {\n    return _FindOptionsWidget.ID;\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  getPosition() {\n    return {\n      preference: 0\n      /* OverlayWidgetPositionPreference.TOP_RIGHT_CORNER */\n    };\n  }\n  highlightFindOptions() {\n    this._revealTemporarily();\n  }\n  _revealTemporarily() {\n    this._show();\n    this._hideSoon.schedule();\n  }\n  _onMouseLeave() {\n    this._hideSoon.schedule();\n  }\n  _onMouseOver() {\n    this._hideSoon.cancel();\n  }\n  _show() {\n    if (this._isVisible) {\n      return;\n    }\n    this._isVisible = true;\n    this._domNode.style.display = \"block\";\n  }\n  _hide() {\n    if (!this._isVisible) {\n      return;\n    }\n    this._isVisible = false;\n    this._domNode.style.display = \"none\";\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findState.js\ninit_event();\ninit_lifecycle();\ninit_range();\nfunction effectiveOptionValue(override, value) {\n  if (override === 1) {\n    return true;\n  }\n  if (override === 2) {\n    return false;\n  }\n  return value;\n}\nvar FindReplaceState = class extends Disposable {\n  get searchString() {\n    return this._searchString;\n  }\n  get replaceString() {\n    return this._replaceString;\n  }\n  get isRevealed() {\n    return this._isRevealed;\n  }\n  get isReplaceRevealed() {\n    return this._isReplaceRevealed;\n  }\n  get isRegex() {\n    return effectiveOptionValue(this._isRegexOverride, this._isRegex);\n  }\n  get wholeWord() {\n    return effectiveOptionValue(this._wholeWordOverride, this._wholeWord);\n  }\n  get matchCase() {\n    return effectiveOptionValue(this._matchCaseOverride, this._matchCase);\n  }\n  get preserveCase() {\n    return effectiveOptionValue(this._preserveCaseOverride, this._preserveCase);\n  }\n  get actualIsRegex() {\n    return this._isRegex;\n  }\n  get actualWholeWord() {\n    return this._wholeWord;\n  }\n  get actualMatchCase() {\n    return this._matchCase;\n  }\n  get actualPreserveCase() {\n    return this._preserveCase;\n  }\n  get searchScope() {\n    return this._searchScope;\n  }\n  get matchesPosition() {\n    return this._matchesPosition;\n  }\n  get matchesCount() {\n    return this._matchesCount;\n  }\n  get currentMatch() {\n    return this._currentMatch;\n  }\n  constructor() {\n    super();\n    this._onFindReplaceStateChange = this._register(new Emitter());\n    this.onFindReplaceStateChange = this._onFindReplaceStateChange.event;\n    this._searchString = \"\";\n    this._replaceString = \"\";\n    this._isRevealed = false;\n    this._isReplaceRevealed = false;\n    this._isRegex = false;\n    this._isRegexOverride = 0;\n    this._wholeWord = false;\n    this._wholeWordOverride = 0;\n    this._matchCase = false;\n    this._matchCaseOverride = 0;\n    this._preserveCase = false;\n    this._preserveCaseOverride = 0;\n    this._searchScope = null;\n    this._matchesPosition = 0;\n    this._matchesCount = 0;\n    this._currentMatch = null;\n    this._loop = true;\n    this._isSearching = false;\n    this._filters = null;\n  }\n  changeMatchInfo(matchesPosition, matchesCount, currentMatch) {\n    const changeEvent = {\n      moveCursor: false,\n      updateHistory: false,\n      searchString: false,\n      replaceString: false,\n      isRevealed: false,\n      isReplaceRevealed: false,\n      isRegex: false,\n      wholeWord: false,\n      matchCase: false,\n      preserveCase: false,\n      searchScope: false,\n      matchesPosition: false,\n      matchesCount: false,\n      currentMatch: false,\n      loop: false,\n      isSearching: false,\n      filters: false\n    };\n    let somethingChanged = false;\n    if (matchesCount === 0) {\n      matchesPosition = 0;\n    }\n    if (matchesPosition \u003e matchesCount) {\n      matchesPosition = matchesCount;\n    }\n    if (this._matchesPosition !== matchesPosition) {\n      this._matchesPosition = matchesPosition;\n      changeEvent.matchesPosition = true;\n      somethingChanged = true;\n    }\n    if (this._matchesCount !== matchesCount) {\n      this._matchesCount = matchesCount;\n      changeEvent.matchesCount = true;\n      somethingChanged = true;\n    }\n    if (typeof currentMatch !== \"undefined\") {\n      if (!Range.equalsRange(this._currentMatch, currentMatch)) {\n        this._currentMatch = currentMatch;\n        changeEvent.currentMatch = true;\n        somethingChanged = true;\n      }\n    }\n    if (somethingChanged) {\n      this._onFindReplaceStateChange.fire(changeEvent);\n    }\n  }\n  change(newState, moveCursor, updateHistory = true) {\n    const changeEvent = {\n      moveCursor,\n      updateHistory,\n      searchString: false,\n      replaceString: false,\n      isRevealed: false,\n      isReplaceRevealed: false,\n      isRegex: false,\n      wholeWord: false,\n      matchCase: false,\n      preserveCase: false,\n      searchScope: false,\n      matchesPosition: false,\n      matchesCount: false,\n      currentMatch: false,\n      loop: false,\n      isSearching: false,\n      filters: false\n    };\n    let somethingChanged = false;\n    const oldEffectiveIsRegex = this.isRegex;\n    const oldEffectiveWholeWords = this.wholeWord;\n    const oldEffectiveMatchCase = this.matchCase;\n    const oldEffectivePreserveCase = this.preserveCase;\n    if (typeof newState.searchString !== \"undefined\") {\n      if (this._searchString !== newState.searchString) {\n        this._searchString = newState.searchString;\n        changeEvent.searchString = true;\n        somethingChanged = true;\n      }\n    }\n    if (typeof newState.replaceString !== \"undefined\") {\n      if (this._replaceString !== newState.replaceString) {\n        this._replaceString = newState.replaceString;\n        changeEvent.replaceString = true;\n        somethingChanged = true;\n      }\n    }\n    if (typeof newState.isRevealed !== \"undefined\") {\n      if (this._isRevealed !== newState.isRevealed) {\n        this._isRevealed = newState.isRevealed;\n        changeEvent.isRevealed = true;\n        somethingChanged = true;\n      }\n    }\n    if (typeof newState.isReplaceRevealed !== \"undefined\") {\n      if (this._isReplaceRevealed !== newState.isReplaceRevealed) {\n        this._isReplaceRevealed = newState.isReplaceRevealed;\n        changeEvent.isReplaceRevealed = true;\n        somethingChanged = true;\n      }\n    }\n    if (typeof newState.isRegex !== \"undefined\") {\n      this._isRegex = newState.isRegex;\n    }\n    if (typeof newState.wholeWord !== \"undefined\") {\n      this._wholeWord = newState.wholeWord;\n    }\n    if (typeof newState.matchCase !== \"undefined\") {\n      this._matchCase = newState.matchCase;\n    }\n    if (typeof newState.preserveCase !== \"undefined\") {\n      this._preserveCase = newState.preserveCase;\n    }\n    if (typeof newState.searchScope !== \"undefined\") {\n      if (!newState.searchScope?.every((newSearchScope) =\u003e {\n        return this._searchScope?.some((existingSearchScope) =\u003e {\n          return !Range.equalsRange(existingSearchScope, newSearchScope);\n        });\n      })) {\n        this._searchScope = newState.searchScope;\n        changeEvent.searchScope = true;\n        somethingChanged = true;\n      }\n    }\n    if (typeof newState.loop !== \"undefined\") {\n      if (this._loop !== newState.loop) {\n        this._loop = newState.loop;\n        changeEvent.loop = true;\n        somethingChanged = true;\n      }\n    }\n    if (typeof newState.isSearching !== \"undefined\") {\n      if (this._isSearching !== newState.isSearching) {\n        this._isSearching = newState.isSearching;\n        changeEvent.isSearching = true;\n        somethingChanged = true;\n      }\n    }\n    if (typeof newState.filters !== \"undefined\") {\n      if (this._filters) {\n        this._filters.update(newState.filters);\n      } else {\n        this._filters = newState.filters;\n      }\n      changeEvent.filters = true;\n      somethingChanged = true;\n    }\n    this._isRegexOverride = typeof newState.isRegexOverride !== \"undefined\" ? newState.isRegexOverride : 0;\n    this._wholeWordOverride = typeof newState.wholeWordOverride !== \"undefined\" ? newState.wholeWordOverride : 0;\n    this._matchCaseOverride = typeof newState.matchCaseOverride !== \"undefined\" ? newState.matchCaseOverride : 0;\n    this._preserveCaseOverride = typeof newState.preserveCaseOverride !== \"undefined\" ? newState.preserveCaseOverride : 0;\n    if (oldEffectiveIsRegex !== this.isRegex) {\n      somethingChanged = true;\n      changeEvent.isRegex = true;\n    }\n    if (oldEffectiveWholeWords !== this.wholeWord) {\n      somethingChanged = true;\n      changeEvent.wholeWord = true;\n    }\n    if (oldEffectiveMatchCase !== this.matchCase) {\n      somethingChanged = true;\n      changeEvent.matchCase = true;\n    }\n    if (oldEffectivePreserveCase !== this.preserveCase) {\n      somethingChanged = true;\n      changeEvent.preserveCase = true;\n    }\n    if (somethingChanged) {\n      this._onFindReplaceStateChange.fire(changeEvent);\n    }\n  }\n  canNavigateBack() {\n    return this.canNavigateInLoop() || this.matchesPosition !== 1;\n  }\n  canNavigateForward() {\n    return this.canNavigateInLoop() || this.matchesPosition \u003c this.matchesCount;\n  }\n  canNavigateInLoop() {\n    return this._loop || this.matchesCount \u003e= MATCHES_LIMIT;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findWidget.js\ninit_dom();\ninit_async();\ninit_codicons();\ninit_errors();\ninit_lifecycle();\ninit_platform();\ninit_strings();\ninit_range();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/findinput/replaceInput.js\ninit_dom();\ninit_codicons();\ninit_event();\ninit_nls();\nvar NLS_DEFAULT_LABEL2 = localize(5, \"input\");\nvar NLS_PRESERVE_CASE_LABEL = localize(6, \"Preserve Case\");\nvar PreserveCaseToggle = class extends Toggle {\n  constructor(opts) {\n    super({\n      // TODO: does this need its own icon?\n      icon: Codicon.preserveCase,\n      title: NLS_PRESERVE_CASE_LABEL + opts.appendTitle,\n      isChecked: opts.isChecked,\n      hoverDelegate: opts.hoverDelegate ?? getDefaultHoverDelegate(\"element\"),\n      inputActiveOptionBorder: opts.inputActiveOptionBorder,\n      inputActiveOptionForeground: opts.inputActiveOptionForeground,\n      inputActiveOptionBackground: opts.inputActiveOptionBackground\n    });\n  }\n};\nvar ReplaceInput = class extends Widget {\n  get onDidOptionChange() {\n    return this._onDidOptionChange.event;\n  }\n  get onKeyDown() {\n    return this._onKeyDown.event;\n  }\n  get onPreserveCaseKeyDown() {\n    return this._onPreserveCaseKeyDown.event;\n  }\n  constructor(parent, contextViewProvider, _showOptionButtons, options2) {\n    super();\n    this._showOptionButtons = _showOptionButtons;\n    this.fixFocusOnOptionClickEnabled = true;\n    this.cachedOptionsWidth = 0;\n    this._onDidOptionChange = this._register(new Emitter());\n    this._onKeyDown = this._register(new Emitter());\n    this._onMouseDown = this._register(new Emitter());\n    this._onInput = this._register(new Emitter());\n    this._onKeyUp = this._register(new Emitter());\n    this._onPreserveCaseKeyDown = this._register(new Emitter());\n    this.contextViewProvider = contextViewProvider;\n    this.placeholder = options2.placeholder || \"\";\n    this.validation = options2.validation;\n    this.label = options2.label || NLS_DEFAULT_LABEL2;\n    const appendPreserveCaseLabel = options2.appendPreserveCaseLabel || \"\";\n    const history = options2.history || /* @__PURE__ */ new Set([]);\n    const flexibleHeight = !!options2.flexibleHeight;\n    const flexibleWidth = !!options2.flexibleWidth;\n    const flexibleMaxHeight = options2.flexibleMaxHeight;\n    this.domNode = document.createElement(\"div\");\n    this.domNode.classList.add(\"monaco-findInput\");\n    this.inputBox = this._register(new HistoryInputBox(this.domNode, this.contextViewProvider, {\n      ariaLabel: this.label || \"\",\n      placeholder: this.placeholder || \"\",\n      validationOptions: {\n        validation: this.validation\n      },\n      history,\n      showHistoryHint: options2.showHistoryHint,\n      flexibleHeight,\n      flexibleWidth,\n      flexibleMaxHeight,\n      inputBoxStyles: options2.inputBoxStyles\n    }));\n    this.preserveCase = this._register(new PreserveCaseToggle({\n      appendTitle: appendPreserveCaseLabel,\n      isChecked: false,\n      ...options2.toggleStyles\n    }));\n    this._register(this.preserveCase.onChange((viaKeyboard) =\u003e {\n      this._onDidOptionChange.fire(viaKeyboard);\n      if (!viaKeyboard \u0026\u0026 this.fixFocusOnOptionClickEnabled) {\n        this.inputBox.focus();\n      }\n      this.validate();\n    }));\n    this._register(this.preserveCase.onKeyDown((e) =\u003e {\n      this._onPreserveCaseKeyDown.fire(e);\n    }));\n    if (this._showOptionButtons) {\n      this.cachedOptionsWidth = this.preserveCase.width();\n    } else {\n      this.cachedOptionsWidth = 0;\n    }\n    const indexes = [this.preserveCase.domNode];\n    this.onkeydown(this.domNode, (event) =\u003e {\n      if (event.equals(\n        15\n        /* KeyCode.LeftArrow */\n      ) || event.equals(\n        17\n        /* KeyCode.RightArrow */\n      ) || event.equals(\n        9\n        /* KeyCode.Escape */\n      )) {\n        const index = indexes.indexOf(this.domNode.ownerDocument.activeElement);\n        if (index \u003e= 0) {\n          let newIndex = -1;\n          if (event.equals(\n            17\n            /* KeyCode.RightArrow */\n          )) {\n            newIndex = (index + 1) % indexes.length;\n          } else if (event.equals(\n            15\n            /* KeyCode.LeftArrow */\n          )) {\n            if (index === 0) {\n              newIndex = indexes.length - 1;\n            } else {\n              newIndex = index - 1;\n            }\n          }\n          if (event.equals(\n            9\n            /* KeyCode.Escape */\n          )) {\n            indexes[index].blur();\n            this.inputBox.focus();\n          } else if (newIndex \u003e= 0) {\n            indexes[newIndex].focus();\n          }\n          EventHelper.stop(event, true);\n        }\n      }\n    });\n    const controls = document.createElement(\"div\");\n    controls.className = \"controls\";\n    controls.style.display = this._showOptionButtons ? \"block\" : \"none\";\n    controls.appendChild(this.preserveCase.domNode);\n    this.domNode.appendChild(controls);\n    parent?.appendChild(this.domNode);\n    this.onkeydown(this.inputBox.inputElement, (e) =\u003e this._onKeyDown.fire(e));\n    this.onkeyup(this.inputBox.inputElement, (e) =\u003e this._onKeyUp.fire(e));\n    this.oninput(this.inputBox.inputElement, (e) =\u003e this._onInput.fire());\n    this.onmousedown(this.inputBox.inputElement, (e) =\u003e this._onMouseDown.fire(e));\n  }\n  enable() {\n    this.domNode.classList.remove(\"disabled\");\n    this.inputBox.enable();\n    this.preserveCase.enable();\n  }\n  disable() {\n    this.domNode.classList.add(\"disabled\");\n    this.inputBox.disable();\n    this.preserveCase.disable();\n  }\n  setEnabled(enabled) {\n    if (enabled) {\n      this.enable();\n    } else {\n      this.disable();\n    }\n  }\n  select() {\n    this.inputBox.select();\n  }\n  focus() {\n    this.inputBox.focus();\n  }\n  getPreserveCase() {\n    return this.preserveCase.checked;\n  }\n  setPreserveCase(value) {\n    this.preserveCase.checked = value;\n  }\n  focusOnPreserve() {\n    this.preserveCase.focus();\n  }\n  validate() {\n    this.inputBox?.validate();\n  }\n  set width(newWidth) {\n    this.inputBox.paddingRight = this.cachedOptionsWidth;\n    this.domNode.style.width = newWidth + \"px\";\n  }\n  dispose() {\n    super.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/history/browser/contextScopedHistoryWidget.js\ninit_contextkey();\ninit_keybindingsRegistry();\ninit_nls();\ninit_lifecycle();\ninit_dom();\nvar __decorate84 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param78 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar historyNavigationVisible = new RawContextKey(\"suggestWidgetVisible\", false, localize(1681, \"Whether suggestion are visible\"));\nvar HistoryNavigationWidgetFocusContext = \"historyNavigationWidgetFocus\";\nvar HistoryNavigationForwardsEnablementContext = \"historyNavigationForwardsEnabled\";\nvar HistoryNavigationBackwardsEnablementContext = \"historyNavigationBackwardsEnabled\";\nvar lastFocusedWidget = void 0;\nvar widgets = [];\nfunction registerAndCreateHistoryNavigationContext(scopedContextKeyService, widget) {\n  if (widgets.includes(widget)) {\n    throw new Error(\"Cannot register the same widget multiple times\");\n  }\n  widgets.push(widget);\n  const disposableStore = new DisposableStore();\n  const historyNavigationWidgetFocus = new RawContextKey(HistoryNavigationWidgetFocusContext, false).bindTo(scopedContextKeyService);\n  const historyNavigationForwardsEnablement = new RawContextKey(HistoryNavigationForwardsEnablementContext, true).bindTo(scopedContextKeyService);\n  const historyNavigationBackwardsEnablement = new RawContextKey(HistoryNavigationBackwardsEnablementContext, true).bindTo(scopedContextKeyService);\n  const onDidFocus = () =\u003e {\n    historyNavigationWidgetFocus.set(true);\n    lastFocusedWidget = widget;\n  };\n  const onDidBlur = () =\u003e {\n    historyNavigationWidgetFocus.set(false);\n    if (lastFocusedWidget === widget) {\n      lastFocusedWidget = void 0;\n    }\n  };\n  if (isActiveElement(widget.element)) {\n    onDidFocus();\n  }\n  disposableStore.add(widget.onDidFocus(() =\u003e onDidFocus()));\n  disposableStore.add(widget.onDidBlur(() =\u003e onDidBlur()));\n  disposableStore.add(toDisposable(() =\u003e {\n    widgets.splice(widgets.indexOf(widget), 1);\n    onDidBlur();\n  }));\n  return {\n    historyNavigationForwardsEnablement,\n    historyNavigationBackwardsEnablement,\n    dispose() {\n      disposableStore.dispose();\n    }\n  };\n}\nvar ContextScopedFindInput = class ContextScopedFindInput2 extends FindInput {\n  constructor(container, contextViewProvider, options2, contextKeyService) {\n    super(container, contextViewProvider, options2);\n    const scopedContextKeyService = this._register(contextKeyService.createScoped(this.inputBox.element));\n    this._register(registerAndCreateHistoryNavigationContext(scopedContextKeyService, this.inputBox));\n  }\n};\nContextScopedFindInput = __decorate84([\n  __param78(3, IContextKeyService)\n], ContextScopedFindInput);\nvar ContextScopedReplaceInput = class ContextScopedReplaceInput2 extends ReplaceInput {\n  constructor(container, contextViewProvider, options2, contextKeyService, showReplaceOptions = false) {\n    super(container, contextViewProvider, showReplaceOptions, options2);\n    const scopedContextKeyService = this._register(contextKeyService.createScoped(this.inputBox.element));\n    this._register(registerAndCreateHistoryNavigationContext(scopedContextKeyService, this.inputBox));\n  }\n};\nContextScopedReplaceInput = __decorate84([\n  __param78(3, IContextKeyService)\n], ContextScopedReplaceInput);\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n  id: \"history.showPrevious\",\n  weight: 200,\n  when: ContextKeyExpr.and(ContextKeyExpr.has(HistoryNavigationWidgetFocusContext), ContextKeyExpr.equals(HistoryNavigationBackwardsEnablementContext, true), ContextKeyExpr.not(\"isComposing\"), historyNavigationVisible.isEqualTo(false)),\n  primary: 16,\n  secondary: [\n    512 | 16\n    /* KeyCode.UpArrow */\n  ],\n  handler: (accessor) =\u003e {\n    lastFocusedWidget?.showPreviousValue();\n  }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n  id: \"history.showNext\",\n  weight: 200,\n  when: ContextKeyExpr.and(ContextKeyExpr.has(HistoryNavigationWidgetFocusContext), ContextKeyExpr.equals(HistoryNavigationForwardsEnablementContext, true), ContextKeyExpr.not(\"isComposing\"), historyNavigationVisible.isEqualTo(false)),\n  primary: 18,\n  secondary: [\n    512 | 18\n    /* KeyCode.DownArrow */\n  ],\n  handler: (accessor) =\u003e {\n    lastFocusedWidget?.showNextValue();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/history/browser/historyWidgetKeybindingHint.js\nfunction showHistoryKeybindingHint(keybindingService) {\n  return keybindingService.lookupKeybinding(\"history.showPrevious\")?.getElectronAccelerator() === \"Up\" \u0026\u0026 keybindingService.lookupKeybinding(\"history.showNext\")?.getElectronAccelerator() === \"Down\";\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findWidget.js\ninit_colorRegistry();\ninit_themeService();\ninit_themables();\ninit_theme();\ninit_types();\nvar findCollapsedIcon = registerIcon(\"find-collapsed\", Codicon.chevronRight, localize(948, \"Icon to indicate that the editor find widget is collapsed.\"));\nvar findExpandedIcon = registerIcon(\"find-expanded\", Codicon.chevronDown, localize(949, \"Icon to indicate that the editor find widget is expanded.\"));\nvar findSelectionIcon = registerIcon(\"find-selection\", Codicon.selection, localize(950, \"Icon for 'Find in Selection' in the editor find widget.\"));\nvar findReplaceIcon = registerIcon(\"find-replace\", Codicon.replace, localize(951, \"Icon for 'Replace' in the editor find widget.\"));\nvar findReplaceAllIcon = registerIcon(\"find-replace-all\", Codicon.replaceAll, localize(952, \"Icon for 'Replace All' in the editor find widget.\"));\nvar findPreviousMatchIcon = registerIcon(\"find-previous-match\", Codicon.arrowUp, localize(953, \"Icon for 'Find Previous' in the editor find widget.\"));\nvar findNextMatchIcon = registerIcon(\"find-next-match\", Codicon.arrowDown, localize(954, \"Icon for 'Find Next' in the editor find widget.\"));\nvar NLS_FIND_DIALOG_LABEL = localize(955, \"Find / Replace\");\nvar NLS_FIND_INPUT_LABEL = localize(956, \"Find\");\nvar NLS_FIND_INPUT_PLACEHOLDER = localize(957, \"Find\");\nvar NLS_PREVIOUS_MATCH_BTN_LABEL = localize(958, \"Previous Match\");\nvar NLS_NEXT_MATCH_BTN_LABEL = localize(959, \"Next Match\");\nvar NLS_TOGGLE_SELECTION_FIND_TITLE = localize(960, \"Find in Selection\");\nvar NLS_CLOSE_BTN_LABEL = localize(961, \"Close\");\nvar NLS_REPLACE_INPUT_LABEL = localize(962, \"Replace\");\nvar NLS_REPLACE_INPUT_PLACEHOLDER = localize(963, \"Replace\");\nvar NLS_REPLACE_BTN_LABEL = localize(964, \"Replace\");\nvar NLS_REPLACE_ALL_BTN_LABEL = localize(965, \"Replace All\");\nvar NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = localize(966, \"Toggle Replace\");\nvar NLS_MATCHES_COUNT_LIMIT_TITLE = localize(967, \"Only the first {0} results are highlighted, but all find operations work on the entire text.\", MATCHES_LIMIT);\nvar NLS_MATCHES_LOCATION = localize(968, \"{0} of {1}\");\nvar NLS_NO_RESULTS = localize(969, \"No results\");\nvar FIND_WIDGET_INITIAL_WIDTH = 419;\nvar PART_WIDTH = 275;\nvar FIND_INPUT_AREA_WIDTH = PART_WIDTH - 54;\nvar MAX_MATCHES_COUNT_WIDTH = 69;\nvar FIND_INPUT_AREA_HEIGHT = 33;\nvar ctrlKeyMod2 = isMacintosh ? 256 : 2048;\nvar FindWidgetViewZone = class {\n  constructor(afterLineNumber) {\n    this.afterLineNumber = afterLineNumber;\n    this.heightInPx = FIND_INPUT_AREA_HEIGHT;\n    this.suppressMouseDown = false;\n    this.domNode = document.createElement(\"div\");\n    this.domNode.className = \"dock-find-viewzone\";\n  }\n};\nfunction stopPropagationForMultiLineUpwards(event, value, textarea) {\n  const isMultiline = !!value.match(/\\n/);\n  if (textarea \u0026\u0026 isMultiline \u0026\u0026 textarea.selectionStart \u003e 0) {\n    event.stopPropagation();\n    return;\n  }\n}\nfunction stopPropagationForMultiLineDownwards(event, value, textarea) {\n  const isMultiline = !!value.match(/\\n/);\n  if (textarea \u0026\u0026 isMultiline \u0026\u0026 textarea.selectionEnd \u003c textarea.value.length) {\n    event.stopPropagation();\n    return;\n  }\n}\nvar FindWidget = class _FindWidget extends Widget {\n  static {\n    this.ID = \"editor.contrib.findWidget\";\n  }\n  constructor(codeEditor, controller, state, contextViewProvider, keybindingService, contextKeyService, _hoverService, _findWidgetSearchHistory, _replaceWidgetHistory) {\n    super();\n    this._hoverService = _hoverService;\n    this._findWidgetSearchHistory = _findWidgetSearchHistory;\n    this._replaceWidgetHistory = _replaceWidgetHistory;\n    this._cachedHeight = null;\n    this._revealTimeouts = [];\n    this._codeEditor = codeEditor;\n    this._controller = controller;\n    this._state = state;\n    this._contextViewProvider = contextViewProvider;\n    this._keybindingService = keybindingService;\n    this._contextKeyService = contextKeyService;\n    this._isVisible = false;\n    this._isReplaceVisible = false;\n    this._ignoreChangeEvent = false;\n    this._updateHistoryDelayer = new Delayer(500);\n    this._register(toDisposable(() =\u003e this._updateHistoryDelayer.cancel()));\n    this._register(this._state.onFindReplaceStateChange((e) =\u003e this._onStateChanged(e)));\n    this._buildDomNode();\n    this._updateButtons();\n    this._tryUpdateWidgetWidth();\n    this._findInput.inputBox.layout();\n    this._register(this._codeEditor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        103\n        /* EditorOption.readOnly */\n      )) {\n        if (this._codeEditor.getOption(\n          103\n          /* EditorOption.readOnly */\n        )) {\n          this._state.change({ isReplaceRevealed: false }, false);\n        }\n        this._updateButtons();\n      }\n      if (e.hasChanged(\n        164\n        /* EditorOption.layoutInfo */\n      )) {\n        this._tryUpdateWidgetWidth();\n      }\n      if (e.hasChanged(\n        2\n        /* EditorOption.accessibilitySupport */\n      )) {\n        this.updateAccessibilitySupport();\n      }\n      if (e.hasChanged(\n        50\n        /* EditorOption.find */\n      )) {\n        const supportLoop = this._codeEditor.getOption(\n          50\n          /* EditorOption.find */\n        ).loop;\n        this._state.change({ loop: supportLoop }, false);\n        const addExtraSpaceOnTop = this._codeEditor.getOption(\n          50\n          /* EditorOption.find */\n        ).addExtraSpaceOnTop;\n        if (addExtraSpaceOnTop \u0026\u0026 !this._viewZone) {\n          this._viewZone = new FindWidgetViewZone(0);\n          this._showViewZone();\n        }\n        if (!addExtraSpaceOnTop \u0026\u0026 this._viewZone) {\n          this._removeViewZone();\n        }\n      }\n    }));\n    this.updateAccessibilitySupport();\n    this._register(this._codeEditor.onDidChangeCursorSelection(() =\u003e {\n      if (this._isVisible) {\n        this._updateToggleSelectionFindButton();\n      }\n    }));\n    this._register(this._codeEditor.onDidFocusEditorWidget(async () =\u003e {\n      if (this._isVisible) {\n        const globalBufferTerm = await this._controller.getGlobalBufferTerm();\n        if (globalBufferTerm \u0026\u0026 globalBufferTerm !== this._state.searchString) {\n          this._state.change({ searchString: globalBufferTerm }, false);\n          this._findInput.select();\n        }\n      }\n    }));\n    this._findInputFocused = CONTEXT_FIND_INPUT_FOCUSED.bindTo(contextKeyService);\n    this._findFocusTracker = this._register(trackFocus(this._findInput.inputBox.inputElement));\n    this._register(this._findFocusTracker.onDidFocus(() =\u003e {\n      this._findInputFocused.set(true);\n      this._updateSearchScope();\n    }));\n    this._register(this._findFocusTracker.onDidBlur(() =\u003e {\n      this._findInputFocused.set(false);\n    }));\n    this._replaceInputFocused = CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(contextKeyService);\n    this._replaceFocusTracker = this._register(trackFocus(this._replaceInput.inputBox.inputElement));\n    this._register(this._replaceFocusTracker.onDidFocus(() =\u003e {\n      this._replaceInputFocused.set(true);\n      this._updateSearchScope();\n    }));\n    this._register(this._replaceFocusTracker.onDidBlur(() =\u003e {\n      this._replaceInputFocused.set(false);\n    }));\n    this._codeEditor.addOverlayWidget(this);\n    if (this._codeEditor.getOption(\n      50\n      /* EditorOption.find */\n    ).addExtraSpaceOnTop) {\n      this._viewZone = new FindWidgetViewZone(0);\n    }\n    this._register(this._codeEditor.onDidChangeModel(() =\u003e {\n      if (!this._isVisible) {\n        return;\n      }\n      this._viewZoneId = void 0;\n    }));\n    this._register(this._codeEditor.onDidScrollChange((e) =\u003e {\n      if (e.scrollTopChanged) {\n        this._layoutViewZone();\n        return;\n      }\n      setTimeout(() =\u003e {\n        this._layoutViewZone();\n      }, 0);\n    }));\n  }\n  // ----- IOverlayWidget API\n  getId() {\n    return _FindWidget.ID;\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  getPosition() {\n    if (this._isVisible) {\n      return {\n        preference: 0\n        /* OverlayWidgetPositionPreference.TOP_RIGHT_CORNER */\n      };\n    }\n    return null;\n  }\n  // ----- React to state changes\n  _onStateChanged(e) {\n    if (e.searchString) {\n      try {\n        this._ignoreChangeEvent = true;\n        this._findInput.setValue(this._state.searchString);\n      } finally {\n        this._ignoreChangeEvent = false;\n      }\n      this._updateButtons();\n    }\n    if (e.replaceString) {\n      this._replaceInput.inputBox.value = this._state.replaceString;\n    }\n    if (e.isRevealed) {\n      if (this._state.isRevealed) {\n        this._reveal();\n      } else {\n        this._hide(true);\n      }\n    }\n    if (e.isReplaceRevealed) {\n      if (this._state.isReplaceRevealed) {\n        if (!this._codeEditor.getOption(\n          103\n          /* EditorOption.readOnly */\n        ) \u0026\u0026 !this._isReplaceVisible) {\n          this._isReplaceVisible = true;\n          this._replaceInput.width = getTotalWidth(this._findInput.domNode);\n          this._updateButtons();\n          this._replaceInput.inputBox.layout();\n        }\n      } else {\n        if (this._isReplaceVisible) {\n          this._isReplaceVisible = false;\n          this._updateButtons();\n        }\n      }\n    }\n    if ((e.isRevealed || e.isReplaceRevealed) \u0026\u0026 (this._state.isRevealed || this._state.isReplaceRevealed)) {\n      if (this._tryUpdateHeight()) {\n        this._showViewZone();\n      }\n    }\n    if (e.isRegex) {\n      this._findInput.setRegex(this._state.isRegex);\n    }\n    if (e.wholeWord) {\n      this._findInput.setWholeWords(this._state.wholeWord);\n    }\n    if (e.matchCase) {\n      this._findInput.setCaseSensitive(this._state.matchCase);\n    }\n    if (e.preserveCase) {\n      this._replaceInput.setPreserveCase(this._state.preserveCase);\n    }\n    if (e.searchScope) {\n      if (this._state.searchScope) {\n        this._toggleSelectionFind.checked = true;\n      } else {\n        this._toggleSelectionFind.checked = false;\n      }\n      this._updateToggleSelectionFindButton();\n    }\n    if (e.searchString || e.matchesCount || e.matchesPosition) {\n      const showRedOutline = this._state.searchString.length \u003e 0 \u0026\u0026 this._state.matchesCount === 0;\n      this._domNode.classList.toggle(\"no-results\", showRedOutline);\n      this._updateMatchesCount();\n      this._updateButtons();\n    }\n    if (e.searchString || e.currentMatch) {\n      this._layoutViewZone();\n    }\n    if (e.updateHistory) {\n      this._delayedUpdateHistory();\n    }\n    if (e.loop) {\n      this._updateButtons();\n    }\n  }\n  _delayedUpdateHistory() {\n    this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0, onUnexpectedError);\n  }\n  _updateHistory() {\n    if (this._state.searchString) {\n      this._findInput.inputBox.addToHistory();\n    }\n    if (this._state.replaceString) {\n      this._replaceInput.inputBox.addToHistory();\n    }\n  }\n  _updateMatchesCount() {\n    this._matchesCount.style.minWidth = MAX_MATCHES_COUNT_WIDTH + \"px\";\n    if (this._state.matchesCount \u003e= MATCHES_LIMIT) {\n      this._matchesCount.title = NLS_MATCHES_COUNT_LIMIT_TITLE;\n    } else {\n      this._matchesCount.title = \"\";\n    }\n    this._matchesCount.firstChild?.remove();\n    let label;\n    if (this._state.matchesCount \u003e 0) {\n      let matchesCount = String(this._state.matchesCount);\n      if (this._state.matchesCount \u003e= MATCHES_LIMIT) {\n        matchesCount += \"+\";\n      }\n      let matchesPosition = String(this._state.matchesPosition);\n      if (matchesPosition === \"0\") {\n        matchesPosition = \"?\";\n      }\n      label = format(NLS_MATCHES_LOCATION, matchesPosition, matchesCount);\n    } else {\n      label = NLS_NO_RESULTS;\n    }\n    this._matchesCount.appendChild(document.createTextNode(label));\n    alert(this._getAriaLabel(label, this._state.currentMatch, this._state.searchString));\n    MAX_MATCHES_COUNT_WIDTH = Math.max(MAX_MATCHES_COUNT_WIDTH, this._matchesCount.clientWidth);\n  }\n  // ----- actions\n  _getAriaLabel(label, currentMatch, searchString) {\n    if (label === NLS_NO_RESULTS) {\n      return searchString === \"\" ? localize(970, \"{0} found\", label) : localize(971, \"{0} found for '{1}'\", label, searchString);\n    }\n    if (currentMatch) {\n      const ariaLabel = localize(972, \"{0} found for '{1}', at {2}\", label, searchString, currentMatch.startLineNumber + \":\" + currentMatch.startColumn);\n      const model = this._codeEditor.getModel();\n      if (model \u0026\u0026 currentMatch.startLineNumber \u003c= model.getLineCount() \u0026\u0026 currentMatch.startLineNumber \u003e= 1) {\n        const lineContent = model.getLineContent(currentMatch.startLineNumber);\n        return `${lineContent}, ${ariaLabel}`;\n      }\n      return ariaLabel;\n    }\n    return localize(973, \"{0} found for '{1}'\", label, searchString);\n  }\n  /**\n   * If 'selection find' is ON we should not disable the button (its function is to cancel 'selection find').\n   * If 'selection find' is OFF we enable the button only if there is a selection.\n   */\n  _updateToggleSelectionFindButton() {\n    const selection = this._codeEditor.getSelection();\n    const isSelection = selection ? selection.startLineNumber !== selection.endLineNumber || selection.startColumn !== selection.endColumn : false;\n    const isChecked = this._toggleSelectionFind.checked;\n    if (this._isVisible \u0026\u0026 (isChecked || isSelection)) {\n      this._toggleSelectionFind.enable();\n    } else {\n      this._toggleSelectionFind.disable();\n    }\n  }\n  _updateButtons() {\n    this._findInput.setEnabled(this._isVisible);\n    this._replaceInput.setEnabled(this._isVisible \u0026\u0026 this._isReplaceVisible);\n    this._updateToggleSelectionFindButton();\n    this._closeBtn.setEnabled(this._isVisible);\n    const findInputIsNonEmpty = this._state.searchString.length \u003e 0;\n    const matchesCount = this._state.matchesCount ? true : false;\n    this._prevBtn.setEnabled(this._isVisible \u0026\u0026 findInputIsNonEmpty \u0026\u0026 matchesCount \u0026\u0026 this._state.canNavigateBack());\n    this._nextBtn.setEnabled(this._isVisible \u0026\u0026 findInputIsNonEmpty \u0026\u0026 matchesCount \u0026\u0026 this._state.canNavigateForward());\n    this._replaceBtn.setEnabled(this._isVisible \u0026\u0026 this._isReplaceVisible \u0026\u0026 findInputIsNonEmpty);\n    this._replaceAllBtn.setEnabled(this._isVisible \u0026\u0026 this._isReplaceVisible \u0026\u0026 findInputIsNonEmpty);\n    this._domNode.classList.toggle(\"replaceToggled\", this._isReplaceVisible);\n    this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);\n    const canReplace = !this._codeEditor.getOption(\n      103\n      /* EditorOption.readOnly */\n    );\n    this._toggleReplaceBtn.setEnabled(this._isVisible \u0026\u0026 canReplace);\n  }\n  _reveal() {\n    this._revealTimeouts.forEach((e) =\u003e {\n      clearTimeout(e);\n    });\n    this._revealTimeouts = [];\n    if (!this._isVisible) {\n      this._isVisible = true;\n      const selection = this._codeEditor.getSelection();\n      switch (this._codeEditor.getOption(\n        50\n        /* EditorOption.find */\n      ).autoFindInSelection) {\n        case \"always\":\n          this._toggleSelectionFind.checked = true;\n          break;\n        case \"never\":\n          this._toggleSelectionFind.checked = false;\n          break;\n        case \"multiline\": {\n          const isSelectionMultipleLine = !!selection \u0026\u0026 selection.startLineNumber !== selection.endLineNumber;\n          this._toggleSelectionFind.checked = isSelectionMultipleLine;\n          break;\n        }\n        default:\n          break;\n      }\n      this._tryUpdateWidgetWidth();\n      this._updateButtons();\n      this._revealTimeouts.push(setTimeout(() =\u003e {\n        this._domNode.classList.add(\"visible\");\n        this._domNode.setAttribute(\"aria-hidden\", \"false\");\n      }, 0));\n      this._revealTimeouts.push(setTimeout(() =\u003e {\n        this._findInput.validate();\n      }, 200));\n      this._codeEditor.layoutOverlayWidget(this);\n      let adjustEditorScrollTop = true;\n      if (this._codeEditor.getOption(\n        50\n        /* EditorOption.find */\n      ).seedSearchStringFromSelection \u0026\u0026 selection) {\n        const domNode = this._codeEditor.getDomNode();\n        if (domNode) {\n          const editorCoords = getDomNodePagePosition(domNode);\n          const startCoords = this._codeEditor.getScrolledVisiblePosition(selection.getStartPosition());\n          const startLeft = editorCoords.left + (startCoords ? startCoords.left : 0);\n          const startTop = startCoords ? startCoords.top : 0;\n          if (this._viewZone \u0026\u0026 startTop \u003c this._viewZone.heightInPx) {\n            if (selection.endLineNumber \u003e selection.startLineNumber) {\n              adjustEditorScrollTop = false;\n            }\n            const leftOfFindWidget = getTopLeftOffset(this._domNode).left;\n            if (startLeft \u003e leftOfFindWidget) {\n              adjustEditorScrollTop = false;\n            }\n            const endCoords = this._codeEditor.getScrolledVisiblePosition(selection.getEndPosition());\n            const endLeft = editorCoords.left + (endCoords ? endCoords.left : 0);\n            if (endLeft \u003e leftOfFindWidget) {\n              adjustEditorScrollTop = false;\n            }\n          }\n        }\n      }\n      this._showViewZone(adjustEditorScrollTop);\n    }\n  }\n  _hide(focusTheEditor) {\n    this._revealTimeouts.forEach((e) =\u003e {\n      clearTimeout(e);\n    });\n    this._revealTimeouts = [];\n    if (this._isVisible) {\n      this._isVisible = false;\n      this._updateButtons();\n      this._domNode.classList.remove(\"visible\");\n      this._domNode.setAttribute(\"aria-hidden\", \"true\");\n      this._findInput.clearMessage();\n      if (focusTheEditor) {\n        this._codeEditor.focus();\n      }\n      this._codeEditor.layoutOverlayWidget(this);\n      this._removeViewZone();\n    }\n  }\n  _layoutViewZone(targetScrollTop) {\n    const addExtraSpaceOnTop = this._codeEditor.getOption(\n      50\n      /* EditorOption.find */\n    ).addExtraSpaceOnTop;\n    if (!addExtraSpaceOnTop) {\n      this._removeViewZone();\n      return;\n    }\n    if (!this._isVisible) {\n      return;\n    }\n    const viewZone = this._viewZone;\n    if (this._viewZoneId !== void 0 || !viewZone) {\n      return;\n    }\n    this._codeEditor.changeViewZones((accessor) =\u003e {\n      viewZone.heightInPx = this._getHeight();\n      this._viewZoneId = accessor.addZone(viewZone);\n      this._codeEditor.setScrollTop(targetScrollTop || this._codeEditor.getScrollTop() + viewZone.heightInPx);\n    });\n  }\n  _showViewZone(adjustScroll = true) {\n    if (!this._isVisible) {\n      return;\n    }\n    const addExtraSpaceOnTop = this._codeEditor.getOption(\n      50\n      /* EditorOption.find */\n    ).addExtraSpaceOnTop;\n    if (!addExtraSpaceOnTop) {\n      return;\n    }\n    if (this._viewZone === void 0) {\n      this._viewZone = new FindWidgetViewZone(0);\n    }\n    const viewZone = this._viewZone;\n    this._codeEditor.changeViewZones((accessor) =\u003e {\n      if (this._viewZoneId !== void 0) {\n        const newHeight = this._getHeight();\n        if (newHeight === viewZone.heightInPx) {\n          return;\n        }\n        const scrollAdjustment = newHeight - viewZone.heightInPx;\n        viewZone.heightInPx = newHeight;\n        accessor.layoutZone(this._viewZoneId);\n        if (adjustScroll) {\n          this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + scrollAdjustment);\n        }\n        return;\n      } else {\n        let scrollAdjustment = this._getHeight();\n        scrollAdjustment -= this._codeEditor.getOption(\n          95\n          /* EditorOption.padding */\n        ).top;\n        if (scrollAdjustment \u003c= 0) {\n          return;\n        }\n        viewZone.heightInPx = scrollAdjustment;\n        this._viewZoneId = accessor.addZone(viewZone);\n        if (adjustScroll) {\n          this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + scrollAdjustment);\n        }\n      }\n    });\n  }\n  _removeViewZone() {\n    this._codeEditor.changeViewZones((accessor) =\u003e {\n      if (this._viewZoneId !== void 0) {\n        accessor.removeZone(this._viewZoneId);\n        this._viewZoneId = void 0;\n        if (this._viewZone) {\n          this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() - this._viewZone.heightInPx);\n          this._viewZone = void 0;\n        }\n      }\n    });\n  }\n  _tryUpdateWidgetWidth() {\n    if (!this._isVisible) {\n      return;\n    }\n    if (!this._domNode.isConnected) {\n      return;\n    }\n    const layoutInfo = this._codeEditor.getLayoutInfo();\n    const editorContentWidth = layoutInfo.contentWidth;\n    if (editorContentWidth \u003c= 0) {\n      this._domNode.classList.add(\"hiddenEditor\");\n      return;\n    } else if (this._domNode.classList.contains(\"hiddenEditor\")) {\n      this._domNode.classList.remove(\"hiddenEditor\");\n    }\n    const editorWidth = layoutInfo.width;\n    const minimapWidth = layoutInfo.minimap.minimapWidth;\n    let collapsedFindWidget = false;\n    let reducedFindWidget = false;\n    let narrowFindWidget = false;\n    if (this._resized) {\n      const widgetWidth = getTotalWidth(this._domNode);\n      if (widgetWidth \u003e FIND_WIDGET_INITIAL_WIDTH) {\n        this._domNode.style.maxWidth = `${editorWidth - 28 - minimapWidth - 15}px`;\n        this._replaceInput.width = getTotalWidth(this._findInput.domNode);\n        return;\n      }\n    }\n    if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth \u003e= editorWidth) {\n      reducedFindWidget = true;\n    }\n    if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth - MAX_MATCHES_COUNT_WIDTH \u003e= editorWidth) {\n      narrowFindWidget = true;\n    }\n    if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth - MAX_MATCHES_COUNT_WIDTH \u003e= editorWidth + 50) {\n      collapsedFindWidget = true;\n    }\n    this._domNode.classList.toggle(\"collapsed-find-widget\", collapsedFindWidget);\n    this._domNode.classList.toggle(\"narrow-find-widget\", narrowFindWidget);\n    this._domNode.classList.toggle(\"reduced-find-widget\", reducedFindWidget);\n    if (!narrowFindWidget \u0026\u0026 !collapsedFindWidget) {\n      this._domNode.style.maxWidth = `${editorWidth - 28 - minimapWidth - 15}px`;\n    }\n    this._findInput.layout({ collapsedFindWidget, narrowFindWidget, reducedFindWidget });\n    if (this._resized) {\n      const findInputWidth = this._findInput.inputBox.element.clientWidth;\n      if (findInputWidth \u003e 0) {\n        this._replaceInput.width = findInputWidth;\n      }\n    } else if (this._isReplaceVisible) {\n      this._replaceInput.width = getTotalWidth(this._findInput.domNode);\n    }\n  }\n  _getHeight() {\n    let totalheight = 0;\n    totalheight += 4;\n    totalheight += this._findInput.inputBox.height + 2;\n    if (this._isReplaceVisible) {\n      totalheight += 4;\n      totalheight += this._replaceInput.inputBox.height + 2;\n    }\n    totalheight += 4;\n    return totalheight;\n  }\n  _tryUpdateHeight() {\n    const totalHeight = this._getHeight();\n    if (this._cachedHeight !== null \u0026\u0026 this._cachedHeight === totalHeight) {\n      return false;\n    }\n    this._cachedHeight = totalHeight;\n    this._domNode.style.height = `${totalHeight}px`;\n    return true;\n  }\n  // ----- Public\n  focusFindInput() {\n    this._findInput.select();\n    this._findInput.focus();\n  }\n  focusReplaceInput() {\n    this._replaceInput.select();\n    this._replaceInput.focus();\n  }\n  highlightFindOptions() {\n    this._findInput.highlightFindOptions();\n  }\n  _updateSearchScope() {\n    if (!this._codeEditor.hasModel()) {\n      return;\n    }\n    if (this._toggleSelectionFind.checked) {\n      const selections = this._codeEditor.getSelections();\n      selections.map((selection) =\u003e {\n        if (selection.endColumn === 1 \u0026\u0026 selection.endLineNumber \u003e selection.startLineNumber) {\n          selection = selection.setEndPosition(selection.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n        }\n        const currentMatch = this._state.currentMatch;\n        if (selection.startLineNumber !== selection.endLineNumber) {\n          if (!Range.equalsRange(selection, currentMatch)) {\n            return selection;\n          }\n        }\n        return null;\n      }).filter((element) =\u003e !!element);\n      if (selections.length) {\n        this._state.change({ searchScope: selections }, true);\n      }\n    }\n  }\n  _onFindInputMouseDown(e) {\n    if (e.middleButton) {\n      e.stopPropagation();\n    }\n  }\n  _onFindInputKeyDown(e) {\n    if (e.equals(\n      ctrlKeyMod2 | 3\n      /* KeyCode.Enter */\n    )) {\n      if (this._keybindingService.dispatchEvent(e, e.target)) {\n        e.preventDefault();\n        return;\n      } else {\n        this._findInput.inputBox.insertAtCursor(\"\\n\");\n        e.preventDefault();\n        return;\n      }\n    }\n    if (e.equals(\n      2\n      /* KeyCode.Tab */\n    )) {\n      if (this._isReplaceVisible) {\n        this._replaceInput.focus();\n      } else {\n        this._findInput.focusOnCaseSensitive();\n      }\n      e.preventDefault();\n      return;\n    }\n    if (e.equals(\n      2048 | 18\n      /* KeyCode.DownArrow */\n    )) {\n      this._codeEditor.focus();\n      e.preventDefault();\n      return;\n    }\n    if (e.equals(\n      16\n      /* KeyCode.UpArrow */\n    )) {\n      return stopPropagationForMultiLineUpwards(e, this._findInput.getValue(), this._findInput.domNode.querySelector(\"textarea\"));\n    }\n    if (e.equals(\n      18\n      /* KeyCode.DownArrow */\n    )) {\n      return stopPropagationForMultiLineDownwards(e, this._findInput.getValue(), this._findInput.domNode.querySelector(\"textarea\"));\n    }\n  }\n  _onReplaceInputKeyDown(e) {\n    if (e.equals(\n      ctrlKeyMod2 | 3\n      /* KeyCode.Enter */\n    )) {\n      if (this._keybindingService.dispatchEvent(e, e.target)) {\n        e.preventDefault();\n        return;\n      } else {\n        this._replaceInput.inputBox.insertAtCursor(\"\\n\");\n        e.preventDefault();\n        return;\n      }\n    }\n    if (e.equals(\n      2\n      /* KeyCode.Tab */\n    )) {\n      this._findInput.focusOnCaseSensitive();\n      e.preventDefault();\n      return;\n    }\n    if (e.equals(\n      1024 | 2\n      /* KeyCode.Tab */\n    )) {\n      this._findInput.focus();\n      e.preventDefault();\n      return;\n    }\n    if (e.equals(\n      2048 | 18\n      /* KeyCode.DownArrow */\n    )) {\n      this._codeEditor.focus();\n      e.preventDefault();\n      return;\n    }\n    if (e.equals(\n      16\n      /* KeyCode.UpArrow */\n    )) {\n      return stopPropagationForMultiLineUpwards(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector(\"textarea\"));\n    }\n    if (e.equals(\n      18\n      /* KeyCode.DownArrow */\n    )) {\n      return stopPropagationForMultiLineDownwards(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector(\"textarea\"));\n    }\n  }\n  // ----- sash\n  getVerticalSashLeft(_sash) {\n    return 0;\n  }\n  // ----- initialization\n  _keybindingLabelFor(actionId) {\n    const kb = this._keybindingService.lookupKeybinding(actionId);\n    if (!kb) {\n      return \"\";\n    }\n    return ` (${kb.getLabel()})`;\n  }\n  _buildDomNode() {\n    const flexibleHeight = true;\n    const flexibleWidth = true;\n    const findSearchHistoryConfig = this._codeEditor.getOption(\n      50\n      /* EditorOption.find */\n    ).history;\n    const replaceHistoryConfig = this._codeEditor.getOption(\n      50\n      /* EditorOption.find */\n    ).replaceHistory;\n    this._findInput = this._register(new ContextScopedFindInput(null, this._contextViewProvider, {\n      width: FIND_INPUT_AREA_WIDTH,\n      label: NLS_FIND_INPUT_LABEL,\n      placeholder: NLS_FIND_INPUT_PLACEHOLDER,\n      appendCaseSensitiveLabel: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n      appendWholeWordsLabel: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n      appendRegexLabel: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n      validation: (value) =\u003e {\n        if (value.length === 0 || !this._findInput.getRegex()) {\n          return null;\n        }\n        try {\n          new RegExp(value, \"gu\");\n          return null;\n        } catch (e) {\n          return { content: e.message };\n        }\n      },\n      flexibleHeight,\n      flexibleWidth,\n      flexibleMaxHeight: 118,\n      showCommonFindToggles: true,\n      showHistoryHint: () =\u003e showHistoryKeybindingHint(this._keybindingService),\n      inputBoxStyles: defaultInputBoxStyles,\n      toggleStyles: defaultToggleStyles,\n      history: findSearchHistoryConfig === \"workspace\" ? this._findWidgetSearchHistory : /* @__PURE__ */ new Set([])\n    }, this._contextKeyService));\n    this._findInput.setRegex(!!this._state.isRegex);\n    this._findInput.setCaseSensitive(!!this._state.matchCase);\n    this._findInput.setWholeWords(!!this._state.wholeWord);\n    this._register(this._findInput.onKeyDown((e) =\u003e {\n      if (e.equals(\n        3\n        /* KeyCode.Enter */\n      ) \u0026\u0026 !this._codeEditor.getOption(\n        50\n        /* EditorOption.find */\n      ).findOnType) {\n        this._state.change({ searchString: this._findInput.getValue() }, true);\n      }\n      this._onFindInputKeyDown(e);\n    }));\n    this._register(this._findInput.inputBox.onDidChange(() =\u003e {\n      if (this._ignoreChangeEvent || !this._codeEditor.getOption(\n        50\n        /* EditorOption.find */\n      ).findOnType) {\n        return;\n      }\n      this._state.change({ searchString: this._findInput.getValue() }, true);\n    }));\n    this._register(this._findInput.onDidOptionChange(() =\u003e {\n      this._state.change({\n        isRegex: this._findInput.getRegex(),\n        wholeWord: this._findInput.getWholeWords(),\n        matchCase: this._findInput.getCaseSensitive()\n      }, true);\n    }));\n    this._register(this._findInput.onCaseSensitiveKeyDown((e) =\u003e {\n      if (e.equals(\n        1024 | 2\n        /* KeyCode.Tab */\n      )) {\n        if (this._isReplaceVisible) {\n          this._replaceInput.focus();\n          e.preventDefault();\n        }\n      }\n    }));\n    this._register(this._findInput.onRegexKeyDown((e) =\u003e {\n      if (e.equals(\n        2\n        /* KeyCode.Tab */\n      )) {\n        if (this._isReplaceVisible) {\n          this._replaceInput.focusOnPreserve();\n          e.preventDefault();\n        }\n      }\n    }));\n    this._register(this._findInput.inputBox.onDidHeightChange((e) =\u003e {\n      if (this._tryUpdateHeight()) {\n        this._showViewZone();\n      }\n    }));\n    if (isLinux) {\n      this._register(this._findInput.onMouseDown((e) =\u003e this._onFindInputMouseDown(e)));\n    }\n    this._matchesCount = document.createElement(\"div\");\n    this._matchesCount.className = \"matchesCount\";\n    this._updateMatchesCount();\n    const hoverDelegate = this._register(createInstantHoverDelegate());\n    this._prevBtn = this._register(new SimpleButton({\n      label: NLS_PREVIOUS_MATCH_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.PreviousMatchFindAction),\n      icon: findPreviousMatchIcon,\n      hoverDelegate,\n      onTrigger: () =\u003e {\n        assertReturnsDefined(this._codeEditor.getAction(FIND_IDS.PreviousMatchFindAction)).run().then(void 0, onUnexpectedError);\n      }\n    }, this._hoverService));\n    this._nextBtn = this._register(new SimpleButton({\n      label: NLS_NEXT_MATCH_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.NextMatchFindAction),\n      icon: findNextMatchIcon,\n      hoverDelegate,\n      onTrigger: () =\u003e {\n        assertReturnsDefined(this._codeEditor.getAction(FIND_IDS.NextMatchFindAction)).run().then(void 0, onUnexpectedError);\n      }\n    }, this._hoverService));\n    const findPart = document.createElement(\"div\");\n    findPart.className = \"find-part\";\n    findPart.appendChild(this._findInput.domNode);\n    const actionsContainer = document.createElement(\"div\");\n    actionsContainer.className = \"find-actions\";\n    findPart.appendChild(actionsContainer);\n    actionsContainer.appendChild(this._matchesCount);\n    actionsContainer.appendChild(this._prevBtn.domNode);\n    actionsContainer.appendChild(this._nextBtn.domNode);\n    this._toggleSelectionFind = this._register(new Toggle({\n      icon: findSelectionIcon,\n      title: NLS_TOGGLE_SELECTION_FIND_TITLE + this._keybindingLabelFor(FIND_IDS.ToggleSearchScopeCommand),\n      isChecked: false,\n      hoverDelegate,\n      inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n      inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n      inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground)\n    }));\n    this._register(this._toggleSelectionFind.onChange(() =\u003e {\n      if (this._toggleSelectionFind.checked) {\n        if (this._codeEditor.hasModel()) {\n          let selections = this._codeEditor.getSelections();\n          selections = selections.map((selection) =\u003e {\n            if (selection.endColumn === 1 \u0026\u0026 selection.endLineNumber \u003e selection.startLineNumber) {\n              selection = selection.setEndPosition(selection.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n            }\n            if (!selection.isEmpty()) {\n              return selection;\n            }\n            return null;\n          }).filter((element) =\u003e !!element);\n          if (selections.length) {\n            this._state.change({ searchScope: selections }, true);\n          }\n        }\n      } else {\n        this._state.change({ searchScope: null }, true);\n      }\n    }));\n    actionsContainer.appendChild(this._toggleSelectionFind.domNode);\n    this._closeBtn = this._register(new SimpleButton({\n      label: NLS_CLOSE_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.CloseFindWidgetCommand),\n      icon: widgetClose,\n      hoverDelegate,\n      onTrigger: () =\u003e {\n        this._state.change({ isRevealed: false, searchScope: null }, false);\n      },\n      onKeyDown: (e) =\u003e {\n        if (e.equals(\n          2\n          /* KeyCode.Tab */\n        )) {\n          if (this._isReplaceVisible) {\n            if (this._replaceBtn.isEnabled()) {\n              this._replaceBtn.focus();\n            } else {\n              this._codeEditor.focus();\n            }\n            e.preventDefault();\n          }\n        }\n      }\n    }, this._hoverService));\n    this._replaceInput = this._register(new ContextScopedReplaceInput(null, void 0, {\n      label: NLS_REPLACE_INPUT_LABEL,\n      placeholder: NLS_REPLACE_INPUT_PLACEHOLDER,\n      appendPreserveCaseLabel: this._keybindingLabelFor(FIND_IDS.TogglePreserveCaseCommand),\n      history: replaceHistoryConfig === \"workspace\" ? this._replaceWidgetHistory : /* @__PURE__ */ new Set([]),\n      flexibleHeight,\n      flexibleWidth,\n      flexibleMaxHeight: 118,\n      showHistoryHint: () =\u003e showHistoryKeybindingHint(this._keybindingService),\n      inputBoxStyles: defaultInputBoxStyles,\n      toggleStyles: defaultToggleStyles\n    }, this._contextKeyService, true));\n    this._replaceInput.setPreserveCase(!!this._state.preserveCase);\n    this._register(this._replaceInput.onKeyDown((e) =\u003e this._onReplaceInputKeyDown(e)));\n    this._register(this._replaceInput.inputBox.onDidChange(() =\u003e {\n      this._state.change({ replaceString: this._replaceInput.inputBox.value }, false);\n    }));\n    this._register(this._replaceInput.inputBox.onDidHeightChange((e) =\u003e {\n      if (this._isReplaceVisible \u0026\u0026 this._tryUpdateHeight()) {\n        this._showViewZone();\n      }\n    }));\n    this._register(this._replaceInput.onDidOptionChange(() =\u003e {\n      this._state.change({\n        preserveCase: this._replaceInput.getPreserveCase()\n      }, true);\n    }));\n    this._register(this._replaceInput.onPreserveCaseKeyDown((e) =\u003e {\n      if (e.equals(\n        2\n        /* KeyCode.Tab */\n      )) {\n        if (this._prevBtn.isEnabled()) {\n          this._prevBtn.focus();\n        } else if (this._nextBtn.isEnabled()) {\n          this._nextBtn.focus();\n        } else if (this._toggleSelectionFind.enabled) {\n          this._toggleSelectionFind.focus();\n        } else if (this._closeBtn.isEnabled()) {\n          this._closeBtn.focus();\n        }\n        e.preventDefault();\n      }\n    }));\n    const replaceHoverDelegate = this._register(createInstantHoverDelegate());\n    this._replaceBtn = this._register(new SimpleButton({\n      label: NLS_REPLACE_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.ReplaceOneAction),\n      icon: findReplaceIcon,\n      hoverDelegate: replaceHoverDelegate,\n      onTrigger: () =\u003e {\n        this._controller.replace();\n      },\n      onKeyDown: (e) =\u003e {\n        if (e.equals(\n          1024 | 2\n          /* KeyCode.Tab */\n        )) {\n          this._closeBtn.focus();\n          e.preventDefault();\n        }\n      }\n    }, this._hoverService));\n    this._replaceAllBtn = this._register(new SimpleButton({\n      label: NLS_REPLACE_ALL_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.ReplaceAllAction),\n      icon: findReplaceAllIcon,\n      hoverDelegate: replaceHoverDelegate,\n      onTrigger: () =\u003e {\n        this._controller.replaceAll();\n      }\n    }, this._hoverService));\n    const replacePart = document.createElement(\"div\");\n    replacePart.className = \"replace-part\";\n    replacePart.appendChild(this._replaceInput.domNode);\n    const replaceActionsContainer = document.createElement(\"div\");\n    replaceActionsContainer.className = \"replace-actions\";\n    replacePart.appendChild(replaceActionsContainer);\n    replaceActionsContainer.appendChild(this._replaceBtn.domNode);\n    replaceActionsContainer.appendChild(this._replaceAllBtn.domNode);\n    this._toggleReplaceBtn = this._register(new SimpleButton({\n      label: NLS_TOGGLE_REPLACE_MODE_BTN_LABEL,\n      className: \"codicon toggle left\",\n      onTrigger: () =\u003e {\n        this._state.change({ isReplaceRevealed: !this._isReplaceVisible }, false);\n        if (this._isReplaceVisible) {\n          this._replaceInput.width = getTotalWidth(this._findInput.domNode);\n          this._replaceInput.inputBox.layout();\n        }\n        this._showViewZone();\n      }\n    }, this._hoverService));\n    this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);\n    this._domNode = document.createElement(\"div\");\n    this._domNode.className = \"editor-widget find-widget\";\n    this._domNode.setAttribute(\"aria-hidden\", \"true\");\n    this._domNode.ariaLabel = NLS_FIND_DIALOG_LABEL;\n    this._domNode.role = \"dialog\";\n    this._domNode.style.width = `${FIND_WIDGET_INITIAL_WIDTH}px`;\n    this._domNode.appendChild(this._toggleReplaceBtn.domNode);\n    this._domNode.appendChild(findPart);\n    this._domNode.appendChild(this._closeBtn.domNode);\n    this._domNode.appendChild(replacePart);\n    this._resizeSash = this._register(new Sash(this._domNode, this, { orientation: 0, size: 2 }));\n    this._resized = false;\n    let originalWidth = FIND_WIDGET_INITIAL_WIDTH;\n    this._register(this._resizeSash.onDidStart(() =\u003e {\n      originalWidth = getTotalWidth(this._domNode);\n    }));\n    this._register(this._resizeSash.onDidChange((evt) =\u003e {\n      this._resized = true;\n      const width2 = originalWidth + evt.startX - evt.currentX;\n      if (width2 \u003c FIND_WIDGET_INITIAL_WIDTH) {\n        return;\n      }\n      const maxWidth = parseFloat(getComputedStyle(this._domNode).maxWidth) || 0;\n      if (width2 \u003e maxWidth) {\n        return;\n      }\n      this._domNode.style.width = `${width2}px`;\n      if (this._isReplaceVisible) {\n        this._replaceInput.width = getTotalWidth(this._findInput.domNode);\n      }\n      this._findInput.inputBox.layout();\n      this._tryUpdateHeight();\n    }));\n    this._register(this._resizeSash.onDidReset(() =\u003e {\n      const currentWidth = getTotalWidth(this._domNode);\n      if (currentWidth \u003c FIND_WIDGET_INITIAL_WIDTH) {\n        return;\n      }\n      let width2 = FIND_WIDGET_INITIAL_WIDTH;\n      if (!this._resized || currentWidth === FIND_WIDGET_INITIAL_WIDTH) {\n        const layoutInfo = this._codeEditor.getLayoutInfo();\n        width2 = layoutInfo.width - 28 - layoutInfo.minimap.minimapWidth - 15;\n        this._resized = true;\n      } else {\n      }\n      this._domNode.style.width = `${width2}px`;\n      if (this._isReplaceVisible) {\n        this._replaceInput.width = getTotalWidth(this._findInput.domNode);\n      }\n      this._findInput.inputBox.layout();\n    }));\n  }\n  updateAccessibilitySupport() {\n    const value = this._codeEditor.getOption(\n      2\n      /* EditorOption.accessibilitySupport */\n    );\n    this._findInput.setFocusInputOnOptionClick(\n      value !== 2\n      /* AccessibilitySupport.Enabled */\n    );\n  }\n  getViewState() {\n    let widgetViewZoneVisible = false;\n    if (this._viewZone \u0026\u0026 this._viewZoneId) {\n      widgetViewZoneVisible = this._viewZone.heightInPx \u003e this._codeEditor.getScrollTop();\n    }\n    return {\n      widgetViewZoneVisible,\n      scrollTop: this._codeEditor.getScrollTop()\n    };\n  }\n  setViewState(state) {\n    if (!state) {\n      return;\n    }\n    if (state.widgetViewZoneVisible) {\n      this._layoutViewZone(state.scrollTop);\n    }\n  }\n};\nvar SimpleButton = class extends Widget {\n  constructor(opts, hoverService) {\n    super();\n    this._opts = opts;\n    let className2 = \"button\";\n    if (this._opts.className) {\n      className2 = className2 + \" \" + this._opts.className;\n    }\n    if (this._opts.icon) {\n      className2 = className2 + \" \" + ThemeIcon.asClassName(this._opts.icon);\n    }\n    this._domNode = document.createElement(\"div\");\n    this._domNode.tabIndex = 0;\n    this._domNode.className = className2;\n    this._domNode.setAttribute(\"role\", \"button\");\n    this._domNode.setAttribute(\"aria-label\", this._opts.label);\n    this._register(hoverService.setupManagedHover(opts.hoverDelegate ?? getDefaultHoverDelegate(\"element\"), this._domNode, this._opts.label));\n    this.onclick(this._domNode, (e) =\u003e {\n      this._opts.onTrigger();\n      e.preventDefault();\n    });\n    this.onkeydown(this._domNode, (e) =\u003e {\n      if (e.equals(\n        10\n        /* KeyCode.Space */\n      ) || e.equals(\n        3\n        /* KeyCode.Enter */\n      )) {\n        this._opts.onTrigger();\n        e.preventDefault();\n        return;\n      }\n      this._opts.onKeyDown?.(e);\n    });\n  }\n  get domNode() {\n    return this._domNode;\n  }\n  isEnabled() {\n    return this._domNode.tabIndex \u003e= 0;\n  }\n  focus() {\n    this._domNode.focus();\n  }\n  setEnabled(enabled) {\n    this._domNode.classList.toggle(\"disabled\", !enabled);\n    this._domNode.setAttribute(\"aria-disabled\", String(!enabled));\n    this._domNode.tabIndex = enabled ? 0 : -1;\n  }\n  setExpanded(expanded2) {\n    this._domNode.setAttribute(\"aria-expanded\", String(!!expanded2));\n    if (expanded2) {\n      this._domNode.classList.remove(...ThemeIcon.asClassNameArray(findCollapsedIcon));\n      this._domNode.classList.add(...ThemeIcon.asClassNameArray(findExpandedIcon));\n    } else {\n      this._domNode.classList.remove(...ThemeIcon.asClassNameArray(findExpandedIcon));\n      this._domNode.classList.add(...ThemeIcon.asClassNameArray(findCollapsedIcon));\n    }\n  }\n};\nregisterThemingParticipant((theme, collector) =\u003e {\n  const findMatchHighlightBorder = theme.getColor(editorFindMatchHighlightBorder);\n  if (findMatchHighlightBorder) {\n    collector.addRule(`.monaco-editor .findMatch { border: 1px ${isHighContrast(theme.type) ? \"dotted\" : \"solid\"} ${findMatchHighlightBorder}; box-sizing: border-box; }`);\n  }\n  const findRangeHighlightBorder = theme.getColor(editorFindRangeHighlightBorder);\n  if (findRangeHighlightBorder) {\n    collector.addRule(`.monaco-editor .findScope { border: 1px ${isHighContrast(theme.type) ? \"dashed\" : \"solid\"} ${findRangeHighlightBorder}; }`);\n  }\n  const hcBorder = theme.getColor(contrastBorder);\n  if (hcBorder) {\n    collector.addRule(`.monaco-editor .find-widget { border: 1px solid ${hcBorder}; }`);\n  }\n  const findMatchForeground = theme.getColor(editorFindMatchForeground);\n  if (findMatchForeground) {\n    collector.addRule(`.monaco-editor .findMatchInline { color: ${findMatchForeground}; }`);\n  }\n  const findMatchHighlightForeground = theme.getColor(editorFindMatchHighlightForeground);\n  if (findMatchHighlightForeground) {\n    collector.addRule(`.monaco-editor .currentFindMatchInline { color: ${findMatchHighlightForeground}; }`);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findController.js\ninit_nls();\ninit_actions2();\ninit_contextkey();\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findWidgetSearchHistory.js\ninit_event();\nvar __decorate85 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param79 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar FindWidgetSearchHistory_1;\nvar FindWidgetSearchHistory = class FindWidgetSearchHistory2 {\n  static {\n    FindWidgetSearchHistory_1 = this;\n  }\n  static {\n    this.FIND_HISTORY_KEY = \"workbench.find.history\";\n  }\n  static {\n    this._instance = null;\n  }\n  static getOrCreate(storageService) {\n    if (!FindWidgetSearchHistory_1._instance) {\n      FindWidgetSearchHistory_1._instance = new FindWidgetSearchHistory_1(storageService);\n    }\n    return FindWidgetSearchHistory_1._instance;\n  }\n  constructor(storageService) {\n    this.storageService = storageService;\n    this.inMemoryValues = /* @__PURE__ */ new Set();\n    this._onDidChangeEmitter = new Emitter();\n    this.onDidChange = this._onDidChangeEmitter.event;\n    this.load();\n  }\n  delete(t) {\n    const result = this.inMemoryValues.delete(t);\n    this.save();\n    return result;\n  }\n  add(t) {\n    this.inMemoryValues.add(t);\n    this.save();\n    return this;\n  }\n  has(t) {\n    return this.inMemoryValues.has(t);\n  }\n  forEach(callbackfn, thisArg) {\n    this.load();\n    return this.inMemoryValues.forEach(callbackfn);\n  }\n  replace(t) {\n    this.inMemoryValues = new Set(t);\n    this.save();\n  }\n  load() {\n    let result;\n    const raw = this.storageService.get(\n      FindWidgetSearchHistory_1.FIND_HISTORY_KEY,\n      1\n      /* StorageScope.WORKSPACE */\n    );\n    if (raw) {\n      try {\n        result = JSON.parse(raw);\n      } catch (e) {\n      }\n    }\n    this.inMemoryValues = new Set(result || []);\n  }\n  // Run saves async\n  save() {\n    const elements = [];\n    this.inMemoryValues.forEach((e) =\u003e elements.push(e));\n    return new Promise((resolve3) =\u003e {\n      this.storageService.store(\n        FindWidgetSearchHistory_1.FIND_HISTORY_KEY,\n        JSON.stringify(elements),\n        1,\n        0\n        /* StorageTarget.USER */\n      );\n      this._onDidChangeEmitter.fire(elements);\n      resolve3();\n    });\n  }\n};\nFindWidgetSearchHistory = FindWidgetSearchHistory_1 = __decorate85([\n  __param79(0, IStorageService)\n], FindWidgetSearchHistory);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/replaceWidgetHistory.js\ninit_event();\nvar __decorate86 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param80 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ReplaceWidgetHistory_1;\nvar ReplaceWidgetHistory = class ReplaceWidgetHistory2 {\n  static {\n    ReplaceWidgetHistory_1 = this;\n  }\n  static {\n    this.FIND_HISTORY_KEY = \"workbench.replace.history\";\n  }\n  static {\n    this._instance = null;\n  }\n  static getOrCreate(storageService) {\n    if (!ReplaceWidgetHistory_1._instance) {\n      ReplaceWidgetHistory_1._instance = new ReplaceWidgetHistory_1(storageService);\n    }\n    return ReplaceWidgetHistory_1._instance;\n  }\n  constructor(storageService) {\n    this.storageService = storageService;\n    this.inMemoryValues = /* @__PURE__ */ new Set();\n    this._onDidChangeEmitter = new Emitter();\n    this.onDidChange = this._onDidChangeEmitter.event;\n    this.load();\n  }\n  delete(t) {\n    const result = this.inMemoryValues.delete(t);\n    this.save();\n    return result;\n  }\n  add(t) {\n    this.inMemoryValues.add(t);\n    this.save();\n    return this;\n  }\n  has(t) {\n    return this.inMemoryValues.has(t);\n  }\n  forEach(callbackfn, thisArg) {\n    this.load();\n    return this.inMemoryValues.forEach(callbackfn);\n  }\n  replace(t) {\n    this.inMemoryValues = new Set(t);\n    this.save();\n  }\n  load() {\n    let result;\n    const raw = this.storageService.get(\n      ReplaceWidgetHistory_1.FIND_HISTORY_KEY,\n      1\n      /* StorageScope.WORKSPACE */\n    );\n    if (raw) {\n      try {\n        result = JSON.parse(raw);\n      } catch (e) {\n      }\n    }\n    this.inMemoryValues = new Set(result || []);\n  }\n  // Run saves async\n  save() {\n    const elements = [];\n    this.inMemoryValues.forEach((e) =\u003e elements.push(e));\n    return new Promise((resolve3) =\u003e {\n      this.storageService.store(\n        ReplaceWidgetHistory_1.FIND_HISTORY_KEY,\n        JSON.stringify(elements),\n        1,\n        0\n        /* StorageTarget.USER */\n      );\n      this._onDidChangeEmitter.fire(elements);\n      resolve3();\n    });\n  }\n};\nReplaceWidgetHistory = ReplaceWidgetHistory_1 = __decorate86([\n  __param80(0, IStorageService)\n], ReplaceWidgetHistory);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/find/browser/findController.js\nvar __decorate87 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param81 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar CommonFindController_1;\nvar SEARCH_STRING_MAX_LENGTH = 524288;\nfunction getSelectionSearchString(editor2, seedSearchStringFromSelection = \"single\", seedSearchStringFromNonEmptySelection = false) {\n  if (!editor2.hasModel()) {\n    return null;\n  }\n  const selection = editor2.getSelection();\n  if (seedSearchStringFromSelection === \"single\" \u0026\u0026 selection.startLineNumber === selection.endLineNumber || seedSearchStringFromSelection === \"multiple\") {\n    if (selection.isEmpty()) {\n      const wordAtPosition = editor2.getConfiguredWordAtPosition(selection.getStartPosition());\n      if (wordAtPosition \u0026\u0026 false === seedSearchStringFromNonEmptySelection) {\n        return wordAtPosition.word;\n      }\n    } else {\n      if (editor2.getModel().getValueLengthInRange(selection) \u003c SEARCH_STRING_MAX_LENGTH) {\n        return editor2.getModel().getValueInRange(selection);\n      }\n    }\n  }\n  return null;\n}\nvar CommonFindController = class CommonFindController2 extends Disposable {\n  static {\n    CommonFindController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.findController\";\n  }\n  get editor() {\n    return this._editor;\n  }\n  static get(editor2) {\n    return editor2.getContribution(CommonFindController_1.ID);\n  }\n  constructor(editor2, contextKeyService, storageService, clipboardService, notificationService, hoverService) {\n    super();\n    this._editor = editor2;\n    this._findWidgetVisible = CONTEXT_FIND_WIDGET_VISIBLE.bindTo(contextKeyService);\n    this._contextKeyService = contextKeyService;\n    this._storageService = storageService;\n    this._clipboardService = clipboardService;\n    this._notificationService = notificationService;\n    this._hoverService = hoverService;\n    this._updateHistoryDelayer = new Delayer(500);\n    this._state = this._register(new FindReplaceState());\n    this.loadQueryState();\n    this._register(this._state.onFindReplaceStateChange((e) =\u003e this._onStateChanged(e)));\n    this._model = null;\n    this._register(this._editor.onDidChangeModel(() =\u003e {\n      const shouldRestartFind = this._editor.getModel() \u0026\u0026 this._state.isRevealed;\n      this.disposeModel();\n      this._state.change({\n        searchScope: null,\n        matchCase: this._storageService.getBoolean(\"editor.matchCase\", 1, false),\n        wholeWord: this._storageService.getBoolean(\"editor.wholeWord\", 1, false),\n        isRegex: this._storageService.getBoolean(\"editor.isRegex\", 1, false),\n        preserveCase: this._storageService.getBoolean(\"editor.preserveCase\", 1, false)\n      }, false);\n      if (shouldRestartFind) {\n        this._start({\n          forceRevealReplace: false,\n          seedSearchStringFromSelection: \"none\",\n          seedSearchStringFromNonEmptySelection: false,\n          seedSearchStringFromGlobalClipboard: false,\n          shouldFocus: 0,\n          shouldAnimate: false,\n          updateSearchScope: false,\n          loop: this._editor.getOption(\n            50\n            /* EditorOption.find */\n          ).loop\n        });\n      }\n    }));\n  }\n  dispose() {\n    this.disposeModel();\n    super.dispose();\n  }\n  disposeModel() {\n    if (this._model) {\n      this._model.dispose();\n      this._model = null;\n    }\n  }\n  _onStateChanged(e) {\n    this.saveQueryState(e);\n    if (e.isRevealed) {\n      if (this._state.isRevealed) {\n        this._findWidgetVisible.set(true);\n      } else {\n        this._findWidgetVisible.reset();\n        this.disposeModel();\n      }\n    }\n    if (e.searchString) {\n      this.setGlobalBufferTerm(this._state.searchString);\n    }\n  }\n  saveQueryState(e) {\n    if (e.isRegex) {\n      this._storageService.store(\n        \"editor.isRegex\",\n        this._state.actualIsRegex,\n        1,\n        1\n        /* StorageTarget.MACHINE */\n      );\n    }\n    if (e.wholeWord) {\n      this._storageService.store(\n        \"editor.wholeWord\",\n        this._state.actualWholeWord,\n        1,\n        1\n        /* StorageTarget.MACHINE */\n      );\n    }\n    if (e.matchCase) {\n      this._storageService.store(\n        \"editor.matchCase\",\n        this._state.actualMatchCase,\n        1,\n        1\n        /* StorageTarget.MACHINE */\n      );\n    }\n    if (e.preserveCase) {\n      this._storageService.store(\n        \"editor.preserveCase\",\n        this._state.actualPreserveCase,\n        1,\n        1\n        /* StorageTarget.MACHINE */\n      );\n    }\n  }\n  loadQueryState() {\n    this._state.change({\n      matchCase: this._storageService.getBoolean(\"editor.matchCase\", 1, this._state.matchCase),\n      wholeWord: this._storageService.getBoolean(\"editor.wholeWord\", 1, this._state.wholeWord),\n      isRegex: this._storageService.getBoolean(\"editor.isRegex\", 1, this._state.isRegex),\n      preserveCase: this._storageService.getBoolean(\"editor.preserveCase\", 1, this._state.preserveCase)\n    }, false);\n  }\n  isFindInputFocused() {\n    return !!CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService);\n  }\n  getState() {\n    return this._state;\n  }\n  closeFindWidget() {\n    this._state.change({\n      isRevealed: false,\n      searchScope: null\n    }, false);\n    this._editor.focus();\n  }\n  toggleCaseSensitive() {\n    this._state.change({ matchCase: !this._state.matchCase }, false);\n    if (!this._state.isRevealed) {\n      this.highlightFindOptions();\n    }\n  }\n  toggleWholeWords() {\n    this._state.change({ wholeWord: !this._state.wholeWord }, false);\n    if (!this._state.isRevealed) {\n      this.highlightFindOptions();\n    }\n  }\n  toggleRegex() {\n    this._state.change({ isRegex: !this._state.isRegex }, false);\n    if (!this._state.isRevealed) {\n      this.highlightFindOptions();\n    }\n  }\n  togglePreserveCase() {\n    this._state.change({ preserveCase: !this._state.preserveCase }, false);\n    if (!this._state.isRevealed) {\n      this.highlightFindOptions();\n    }\n  }\n  toggleSearchScope() {\n    if (this._state.searchScope) {\n      this._state.change({ searchScope: null }, true);\n    } else {\n      if (this._editor.hasModel()) {\n        let selections = this._editor.getSelections();\n        selections = selections.map((selection) =\u003e {\n          if (selection.endColumn === 1 \u0026\u0026 selection.endLineNumber \u003e selection.startLineNumber) {\n            selection = selection.setEndPosition(selection.endLineNumber - 1, this._editor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n          }\n          if (!selection.isEmpty()) {\n            return selection;\n          }\n          return null;\n        }).filter((element) =\u003e !!element);\n        if (selections.length) {\n          this._state.change({ searchScope: selections }, true);\n        }\n      }\n    }\n  }\n  setSearchString(searchString) {\n    if (this._state.isRegex) {\n      searchString = escapeRegExpCharacters(searchString);\n    }\n    this._state.change({ searchString }, false);\n  }\n  highlightFindOptions(ignoreWhenVisible = false) {\n  }\n  async _start(opts, newState) {\n    this.disposeModel();\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const stateChanges = {\n      ...newState,\n      isRevealed: true\n    };\n    if (opts.seedSearchStringFromSelection === \"single\") {\n      const selectionSearchString = getSelectionSearchString(this._editor, opts.seedSearchStringFromSelection, opts.seedSearchStringFromNonEmptySelection);\n      if (selectionSearchString) {\n        if (this._state.isRegex) {\n          stateChanges.searchString = escapeRegExpCharacters(selectionSearchString);\n        } else {\n          stateChanges.searchString = selectionSearchString;\n        }\n      }\n    } else if (opts.seedSearchStringFromSelection === \"multiple\" \u0026\u0026 !opts.updateSearchScope) {\n      const selectionSearchString = getSelectionSearchString(this._editor, opts.seedSearchStringFromSelection);\n      if (selectionSearchString) {\n        stateChanges.searchString = selectionSearchString;\n      }\n    }\n    if (!stateChanges.searchString \u0026\u0026 opts.seedSearchStringFromGlobalClipboard) {\n      const selectionSearchString = await this.getGlobalBufferTerm();\n      if (!this._editor.hasModel()) {\n        return;\n      }\n      if (selectionSearchString) {\n        stateChanges.searchString = selectionSearchString;\n      }\n    }\n    if (opts.forceRevealReplace || stateChanges.isReplaceRevealed) {\n      stateChanges.isReplaceRevealed = true;\n    } else if (!this._findWidgetVisible.get()) {\n      stateChanges.isReplaceRevealed = false;\n    }\n    if (opts.updateSearchScope) {\n      const currentSelections = this._editor.getSelections();\n      if (currentSelections.some((selection) =\u003e !selection.isEmpty())) {\n        stateChanges.searchScope = currentSelections;\n      }\n    }\n    stateChanges.loop = opts.loop;\n    this._state.change(stateChanges, false);\n    if (!this._model) {\n      this._model = new FindModelBoundToEditorModel(this._editor, this._state);\n    }\n  }\n  start(opts, newState) {\n    return this._start(opts, newState);\n  }\n  moveToNextMatch() {\n    if (this._model) {\n      this._model.moveToNextMatch();\n      return true;\n    }\n    return false;\n  }\n  moveToPrevMatch() {\n    if (this._model) {\n      this._model.moveToPrevMatch();\n      return true;\n    }\n    return false;\n  }\n  goToMatch(index) {\n    if (this._model) {\n      this._model.moveToMatch(index);\n      return true;\n    }\n    return false;\n  }\n  replace() {\n    if (this._model) {\n      this._model.replace();\n      return true;\n    }\n    return false;\n  }\n  replaceAll() {\n    if (this._model) {\n      if (this._editor.getModel()?.isTooLargeForHeapOperation()) {\n        this._notificationService.warn(localize(932, \"The file is too large to perform a replace all operation.\"));\n        return false;\n      }\n      this._model.replaceAll();\n      return true;\n    }\n    return false;\n  }\n  selectAllMatches() {\n    if (this._model) {\n      this._model.selectAllMatches();\n      this._editor.focus();\n      return true;\n    }\n    return false;\n  }\n  async getGlobalBufferTerm() {\n    if (this._editor.getOption(\n      50\n      /* EditorOption.find */\n    ).globalFindClipboard \u0026\u0026 this._editor.hasModel() \u0026\u0026 !this._editor.getModel().isTooLargeForSyncing()) {\n      return this._clipboardService.readFindText();\n    }\n    return \"\";\n  }\n  setGlobalBufferTerm(text2) {\n    if (this._editor.getOption(\n      50\n      /* EditorOption.find */\n    ).globalFindClipboard \u0026\u0026 this._editor.hasModel() \u0026\u0026 !this._editor.getModel().isTooLargeForSyncing()) {\n      this._clipboardService.writeFindText(text2);\n    }\n  }\n};\nCommonFindController = CommonFindController_1 = __decorate87([\n  __param81(1, IContextKeyService),\n  __param81(2, IStorageService),\n  __param81(3, IClipboardService),\n  __param81(4, INotificationService),\n  __param81(5, IHoverService)\n], CommonFindController);\nvar FindController2 = class FindController3 extends CommonFindController {\n  constructor(editor2, _contextViewService, _contextKeyService, _keybindingService, notificationService, _storageService, clipboardService, hoverService) {\n    super(editor2, _contextKeyService, _storageService, clipboardService, notificationService, hoverService);\n    this._contextViewService = _contextViewService;\n    this._keybindingService = _keybindingService;\n    this._widget = null;\n    this._findOptionsWidget = null;\n    this._findWidgetSearchHistory = FindWidgetSearchHistory.getOrCreate(_storageService);\n    this._replaceWidgetHistory = ReplaceWidgetHistory.getOrCreate(_storageService);\n  }\n  async _start(opts, newState) {\n    if (!this._widget) {\n      this._createFindWidget();\n    }\n    const selection = this._editor.getSelection();\n    let updateSearchScope = false;\n    switch (this._editor.getOption(\n      50\n      /* EditorOption.find */\n    ).autoFindInSelection) {\n      case \"always\":\n        updateSearchScope = true;\n        break;\n      case \"never\":\n        updateSearchScope = false;\n        break;\n      case \"multiline\": {\n        const isSelectionMultipleLine = !!selection \u0026\u0026 selection.startLineNumber !== selection.endLineNumber;\n        updateSearchScope = isSelectionMultipleLine;\n        break;\n      }\n      default:\n        break;\n    }\n    opts.updateSearchScope = opts.updateSearchScope || updateSearchScope;\n    await super._start(opts, newState);\n    if (this._widget) {\n      if (opts.shouldFocus === 2) {\n        this._widget.focusReplaceInput();\n      } else if (opts.shouldFocus === 1) {\n        this._widget.focusFindInput();\n      }\n    }\n  }\n  highlightFindOptions(ignoreWhenVisible = false) {\n    if (!this._widget) {\n      this._createFindWidget();\n    }\n    if (this._state.isRevealed \u0026\u0026 !ignoreWhenVisible) {\n      this._widget.highlightFindOptions();\n    } else {\n      this._findOptionsWidget.highlightFindOptions();\n    }\n  }\n  _createFindWidget() {\n    this._widget = this._register(new FindWidget(this._editor, this, this._state, this._contextViewService, this._keybindingService, this._contextKeyService, this._hoverService, this._findWidgetSearchHistory, this._replaceWidgetHistory));\n    this._findOptionsWidget = this._register(new FindOptionsWidget(this._editor, this._state, this._keybindingService));\n  }\n  saveViewState() {\n    return this._widget?.getViewState();\n  }\n  restoreViewState(state) {\n    this._widget?.setViewState(state);\n  }\n};\nFindController2 = __decorate87([\n  __param81(1, IContextViewService),\n  __param81(2, IContextKeyService),\n  __param81(3, IKeybindingService),\n  __param81(4, INotificationService),\n  __param81(5, IStorageService),\n  __param81(6, IClipboardService),\n  __param81(7, IHoverService)\n], FindController2);\nvar StartFindAction = registerMultiEditorAction(new MultiEditorAction({\n  id: FIND_IDS.StartFindAction,\n  label: localize2(939, \"Find\"),\n  precondition: ContextKeyExpr.or(EditorContextKeys.focus, ContextKeyExpr.has(\"editorIsOpen\")),\n  kbOpts: {\n    kbExpr: null,\n    primary: 2048 | 36,\n    weight: 100\n    /* KeybindingWeight.EditorContrib */\n  },\n  menuOpts: {\n    menuId: MenuId.MenubarEditMenu,\n    group: \"3_find\",\n    title: localize(933, \"\u0026\u0026Find\"),\n    order: 1\n  }\n}));\nStartFindAction.addImplementation(0, (accessor, editor2, args) =\u003e {\n  const controller = CommonFindController.get(editor2);\n  if (!controller) {\n    return false;\n  }\n  return controller.start({\n    forceRevealReplace: false,\n    seedSearchStringFromSelection: editor2.getOption(\n      50\n      /* EditorOption.find */\n    ).seedSearchStringFromSelection !== \"never\" ? \"single\" : \"none\",\n    seedSearchStringFromNonEmptySelection: editor2.getOption(\n      50\n      /* EditorOption.find */\n    ).seedSearchStringFromSelection === \"selection\",\n    seedSearchStringFromGlobalClipboard: editor2.getOption(\n      50\n      /* EditorOption.find */\n    ).globalFindClipboard,\n    shouldFocus: 1,\n    shouldAnimate: true,\n    updateSearchScope: false,\n    loop: editor2.getOption(\n      50\n      /* EditorOption.find */\n    ).loop\n  });\n});\nvar findArgDescription = {\n  description: \"Open a new In-Editor Find Widget.\",\n  args: [{\n    name: \"Open a new In-Editor Find Widget args\",\n    schema: {\n      properties: {\n        searchString: { type: \"string\" },\n        replaceString: { type: \"string\" },\n        isRegex: { type: \"boolean\" },\n        matchWholeWord: { type: \"boolean\" },\n        isCaseSensitive: { type: \"boolean\" },\n        preserveCase: { type: \"boolean\" },\n        findInSelection: { type: \"boolean\" }\n      }\n    }\n  }]\n};\nvar StartFindWithArgsAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: FIND_IDS.StartFindWithArgs,\n      label: localize2(940, \"Find with Arguments\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: null,\n        primary: 0,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: findArgDescription\n    });\n  }\n  async run(accessor, editor2, args) {\n    const controller = CommonFindController.get(editor2);\n    if (controller) {\n      const newState = args ? {\n        searchString: args.searchString,\n        replaceString: args.replaceString,\n        isReplaceRevealed: args.replaceString !== void 0,\n        isRegex: args.isRegex,\n        // isRegexOverride: args.regexOverride,\n        wholeWord: args.matchWholeWord,\n        // wholeWordOverride: args.wholeWordOverride,\n        matchCase: args.isCaseSensitive,\n        // matchCaseOverride: args.matchCaseOverride,\n        preserveCase: args.preserveCase\n        // preserveCaseOverride: args.preserveCaseOverride,\n      } : {};\n      await controller.start({\n        forceRevealReplace: false,\n        seedSearchStringFromSelection: controller.getState().searchString.length === 0 \u0026\u0026 editor2.getOption(\n          50\n          /* EditorOption.find */\n        ).seedSearchStringFromSelection !== \"never\" ? \"single\" : \"none\",\n        seedSearchStringFromNonEmptySelection: editor2.getOption(\n          50\n          /* EditorOption.find */\n        ).seedSearchStringFromSelection === \"selection\",\n        seedSearchStringFromGlobalClipboard: true,\n        shouldFocus: 1,\n        shouldAnimate: true,\n        updateSearchScope: args?.findInSelection || false,\n        loop: editor2.getOption(\n          50\n          /* EditorOption.find */\n        ).loop\n      }, newState);\n      controller.setGlobalBufferTerm(controller.getState().searchString);\n    }\n  }\n};\nvar StartFindWithSelectionAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: FIND_IDS.StartFindWithSelection,\n      label: localize2(941, \"Find with Selection\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: null,\n        primary: 0,\n        mac: {\n          primary: 2048 | 35\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = CommonFindController.get(editor2);\n    if (controller) {\n      await controller.start({\n        forceRevealReplace: false,\n        seedSearchStringFromSelection: \"multiple\",\n        seedSearchStringFromNonEmptySelection: false,\n        seedSearchStringFromGlobalClipboard: false,\n        shouldFocus: 0,\n        shouldAnimate: true,\n        updateSearchScope: false,\n        loop: editor2.getOption(\n          50\n          /* EditorOption.find */\n        ).loop\n      });\n      controller.setGlobalBufferTerm(controller.getState().searchString);\n    }\n  }\n};\nvar MatchFindAction = class extends EditorAction {\n  async run(accessor, editor2) {\n    const controller = CommonFindController.get(editor2);\n    if (controller \u0026\u0026 !this._run(controller)) {\n      await controller.start({\n        forceRevealReplace: false,\n        seedSearchStringFromSelection: controller.getState().searchString.length === 0 \u0026\u0026 editor2.getOption(\n          50\n          /* EditorOption.find */\n        ).seedSearchStringFromSelection !== \"never\" ? \"single\" : \"none\",\n        seedSearchStringFromNonEmptySelection: editor2.getOption(\n          50\n          /* EditorOption.find */\n        ).seedSearchStringFromSelection === \"selection\",\n        seedSearchStringFromGlobalClipboard: true,\n        shouldFocus: 0,\n        shouldAnimate: true,\n        updateSearchScope: false,\n        loop: editor2.getOption(\n          50\n          /* EditorOption.find */\n        ).loop\n      });\n      this._run(controller);\n    }\n  }\n};\nvar NextMatchFindAction = class extends MatchFindAction {\n  constructor() {\n    super({\n      id: FIND_IDS.NextMatchFindAction,\n      label: localize2(942, \"Find Next\"),\n      precondition: void 0,\n      kbOpts: [{\n        kbExpr: EditorContextKeys.focus,\n        primary: 61,\n        mac: { primary: 2048 | 37, secondary: [\n          61\n          /* KeyCode.F3 */\n        ] },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }, {\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_FIND_INPUT_FOCUSED),\n        primary: 3,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }]\n    });\n  }\n  _run(controller) {\n    const result = controller.moveToNextMatch();\n    if (result) {\n      controller.editor.pushUndoStop();\n      return true;\n    }\n    return false;\n  }\n};\nvar PreviousMatchFindAction = class extends MatchFindAction {\n  constructor() {\n    super({\n      id: FIND_IDS.PreviousMatchFindAction,\n      label: localize2(943, \"Find Previous\"),\n      precondition: void 0,\n      kbOpts: [\n        {\n          kbExpr: EditorContextKeys.focus,\n          primary: 1024 | 61,\n          mac: { primary: 2048 | 1024 | 37, secondary: [\n            1024 | 61\n            /* KeyCode.F3 */\n          ] },\n          weight: 100\n          /* KeybindingWeight.EditorContrib */\n        },\n        {\n          kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_FIND_INPUT_FOCUSED),\n          primary: 1024 | 3,\n          weight: 100\n          /* KeybindingWeight.EditorContrib */\n        }\n      ]\n    });\n  }\n  _run(controller) {\n    return controller.moveToPrevMatch();\n  }\n};\nvar MoveToMatchFindAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: FIND_IDS.GoToMatchFindAction,\n      label: localize2(944, \"Go to Match...\"),\n      precondition: CONTEXT_FIND_WIDGET_VISIBLE\n    });\n    this._highlightDecorations = [];\n  }\n  run(accessor, editor2, args) {\n    const controller = CommonFindController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    const matchesCount = controller.getState().matchesCount;\n    if (matchesCount \u003c 1) {\n      const notificationService = accessor.get(INotificationService);\n      notificationService.notify({\n        severity: Severity2.Warning,\n        message: localize(934, \"No matches. Try searching for something else.\")\n      });\n      return;\n    }\n    const quickInputService = accessor.get(IQuickInputService);\n    const disposables = new DisposableStore();\n    const inputBox = disposables.add(quickInputService.createInputBox());\n    inputBox.placeholder = localize(935, \"Type a number to go to a specific match (between 1 and {0})\", matchesCount);\n    const toFindMatchIndex = (value) =\u003e {\n      const index = parseInt(value);\n      if (isNaN(index)) {\n        return void 0;\n      }\n      const matchCount = controller.getState().matchesCount;\n      if (index \u003e 0 \u0026\u0026 index \u003c= matchCount) {\n        return index - 1;\n      } else if (index \u003c 0 \u0026\u0026 index \u003e= -matchCount) {\n        return matchCount + index;\n      }\n      return void 0;\n    };\n    const updatePickerAndEditor = (value) =\u003e {\n      const index = toFindMatchIndex(value);\n      if (typeof index === \"number\") {\n        inputBox.validationMessage = void 0;\n        controller.goToMatch(index);\n        const currentMatch = controller.getState().currentMatch;\n        if (currentMatch) {\n          this.addDecorations(editor2, currentMatch);\n        }\n      } else {\n        inputBox.validationMessage = localize(936, \"Please type a number between 1 and {0}\", controller.getState().matchesCount);\n        this.clearDecorations(editor2);\n      }\n    };\n    disposables.add(inputBox.onDidChangeValue((value) =\u003e {\n      updatePickerAndEditor(value);\n    }));\n    disposables.add(inputBox.onDidAccept(() =\u003e {\n      const index = toFindMatchIndex(inputBox.value);\n      if (typeof index === \"number\") {\n        controller.goToMatch(index);\n        inputBox.hide();\n      } else {\n        inputBox.validationMessage = localize(937, \"Please type a number between 1 and {0}\", controller.getState().matchesCount);\n      }\n    }));\n    disposables.add(inputBox.onDidHide(() =\u003e {\n      this.clearDecorations(editor2);\n      disposables.dispose();\n    }));\n    inputBox.show();\n  }\n  clearDecorations(editor2) {\n    editor2.changeDecorations((changeAccessor) =\u003e {\n      this._highlightDecorations = changeAccessor.deltaDecorations(this._highlightDecorations, []);\n    });\n  }\n  addDecorations(editor2, range2) {\n    editor2.changeDecorations((changeAccessor) =\u003e {\n      this._highlightDecorations = changeAccessor.deltaDecorations(this._highlightDecorations, [\n        {\n          range: range2,\n          options: {\n            description: \"find-match-quick-access-range-highlight\",\n            className: \"rangeHighlight\",\n            isWholeLine: true\n          }\n        },\n        {\n          range: range2,\n          options: {\n            description: \"find-match-quick-access-range-highlight-overview\",\n            overviewRuler: {\n              color: themeColorFromId(overviewRulerRangeHighlight),\n              position: OverviewRulerLane.Full\n            }\n          }\n        }\n      ]);\n    });\n  }\n};\nvar SelectionMatchFindAction = class extends EditorAction {\n  async run(accessor, editor2) {\n    const controller = CommonFindController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    const selectionSearchString = getSelectionSearchString(editor2, \"single\", false);\n    if (selectionSearchString) {\n      controller.setSearchString(selectionSearchString);\n    }\n    if (!this._run(controller)) {\n      await controller.start({\n        forceRevealReplace: false,\n        seedSearchStringFromSelection: \"none\",\n        seedSearchStringFromNonEmptySelection: false,\n        seedSearchStringFromGlobalClipboard: false,\n        shouldFocus: 0,\n        shouldAnimate: true,\n        updateSearchScope: false,\n        loop: editor2.getOption(\n          50\n          /* EditorOption.find */\n        ).loop\n      });\n      this._run(controller);\n    }\n  }\n};\nvar NextSelectionMatchFindAction = class extends SelectionMatchFindAction {\n  constructor() {\n    super({\n      id: FIND_IDS.NextSelectionMatchFindAction,\n      label: localize2(945, \"Find Next Selection\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 2048 | 61,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  _run(controller) {\n    return controller.moveToNextMatch();\n  }\n};\nvar PreviousSelectionMatchFindAction = class extends SelectionMatchFindAction {\n  constructor() {\n    super({\n      id: FIND_IDS.PreviousSelectionMatchFindAction,\n      label: localize2(946, \"Find Previous Selection\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 2048 | 1024 | 61,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  _run(controller) {\n    return controller.moveToPrevMatch();\n  }\n};\nvar StartFindReplaceAction = registerMultiEditorAction(new MultiEditorAction({\n  id: FIND_IDS.StartFindReplaceAction,\n  label: localize2(947, \"Replace\"),\n  precondition: ContextKeyExpr.or(EditorContextKeys.focus, ContextKeyExpr.has(\"editorIsOpen\")),\n  kbOpts: {\n    kbExpr: null,\n    primary: 2048 | 38,\n    mac: {\n      primary: 2048 | 512 | 36\n      /* KeyCode.KeyF */\n    },\n    weight: 100\n    /* KeybindingWeight.EditorContrib */\n  },\n  menuOpts: {\n    menuId: MenuId.MenubarEditMenu,\n    group: \"3_find\",\n    title: localize(938, \"\u0026\u0026Replace\"),\n    order: 2\n  }\n}));\nStartFindReplaceAction.addImplementation(0, (accessor, editor2, args) =\u003e {\n  if (!editor2.hasModel() || editor2.getOption(\n    103\n    /* EditorOption.readOnly */\n  )) {\n    return false;\n  }\n  const controller = CommonFindController.get(editor2);\n  if (!controller) {\n    return false;\n  }\n  const currentSelection = editor2.getSelection();\n  const findInputFocused = controller.isFindInputFocused();\n  const seedSearchStringFromSelection = !currentSelection.isEmpty() \u0026\u0026 currentSelection.startLineNumber === currentSelection.endLineNumber \u0026\u0026 editor2.getOption(\n    50\n    /* EditorOption.find */\n  ).seedSearchStringFromSelection !== \"never\" \u0026\u0026 !findInputFocused;\n  const shouldFocus = findInputFocused || seedSearchStringFromSelection ? 2 : 1;\n  return controller.start({\n    forceRevealReplace: true,\n    seedSearchStringFromSelection: seedSearchStringFromSelection ? \"single\" : \"none\",\n    seedSearchStringFromNonEmptySelection: editor2.getOption(\n      50\n      /* EditorOption.find */\n    ).seedSearchStringFromSelection === \"selection\",\n    seedSearchStringFromGlobalClipboard: editor2.getOption(\n      50\n      /* EditorOption.find */\n    ).seedSearchStringFromSelection !== \"never\",\n    shouldFocus,\n    shouldAnimate: true,\n    updateSearchScope: false,\n    loop: editor2.getOption(\n      50\n      /* EditorOption.find */\n    ).loop\n  });\n});\nregisterEditorContribution(\n  CommonFindController.ID,\n  FindController2,\n  0\n  /* EditorContributionInstantiation.Eager */\n);\nregisterEditorAction(StartFindWithArgsAction);\nregisterEditorAction(StartFindWithSelectionAction);\nregisterEditorAction(NextMatchFindAction);\nregisterEditorAction(PreviousMatchFindAction);\nregisterEditorAction(MoveToMatchFindAction);\nregisterEditorAction(NextSelectionMatchFindAction);\nregisterEditorAction(PreviousSelectionMatchFindAction);\nvar FindCommand = EditorCommand.bindToContribution(CommonFindController.get);\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.CloseFindWidgetCommand,\n  precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n  handler: (x) =\u003e x.closeFindWidget(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not(\"isComposing\")),\n    primary: 9,\n    secondary: [\n      1024 | 9\n      /* KeyCode.Escape */\n    ]\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.ToggleCaseSensitiveCommand,\n  precondition: void 0,\n  handler: (x) =\u003e x.toggleCaseSensitive(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: EditorContextKeys.focus,\n    primary: ToggleCaseSensitiveKeybinding.primary,\n    mac: ToggleCaseSensitiveKeybinding.mac,\n    win: ToggleCaseSensitiveKeybinding.win,\n    linux: ToggleCaseSensitiveKeybinding.linux\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.ToggleWholeWordCommand,\n  precondition: void 0,\n  handler: (x) =\u003e x.toggleWholeWords(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: EditorContextKeys.focus,\n    primary: ToggleWholeWordKeybinding.primary,\n    mac: ToggleWholeWordKeybinding.mac,\n    win: ToggleWholeWordKeybinding.win,\n    linux: ToggleWholeWordKeybinding.linux\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.ToggleRegexCommand,\n  precondition: void 0,\n  handler: (x) =\u003e x.toggleRegex(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: EditorContextKeys.focus,\n    primary: ToggleRegexKeybinding.primary,\n    mac: ToggleRegexKeybinding.mac,\n    win: ToggleRegexKeybinding.win,\n    linux: ToggleRegexKeybinding.linux\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.ToggleSearchScopeCommand,\n  precondition: void 0,\n  handler: (x) =\u003e x.toggleSearchScope(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: EditorContextKeys.focus,\n    primary: ToggleSearchScopeKeybinding.primary,\n    mac: ToggleSearchScopeKeybinding.mac,\n    win: ToggleSearchScopeKeybinding.win,\n    linux: ToggleSearchScopeKeybinding.linux\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.TogglePreserveCaseCommand,\n  precondition: void 0,\n  handler: (x) =\u003e x.togglePreserveCase(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: EditorContextKeys.focus,\n    primary: TogglePreserveCaseKeybinding.primary,\n    mac: TogglePreserveCaseKeybinding.mac,\n    win: TogglePreserveCaseKeybinding.win,\n    linux: TogglePreserveCaseKeybinding.linux\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.ReplaceOneAction,\n  precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n  handler: (x) =\u003e x.replace(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: EditorContextKeys.focus,\n    primary: 2048 | 1024 | 22\n    /* KeyCode.Digit1 */\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.ReplaceOneAction,\n  precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n  handler: (x) =\u003e x.replace(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_REPLACE_INPUT_FOCUSED),\n    primary: 3\n    /* KeyCode.Enter */\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.ReplaceAllAction,\n  precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n  handler: (x) =\u003e x.replaceAll(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: EditorContextKeys.focus,\n    primary: 2048 | 512 | 3\n    /* KeyCode.Enter */\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.ReplaceAllAction,\n  precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n  handler: (x) =\u003e x.replaceAll(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_REPLACE_INPUT_FOCUSED),\n    primary: void 0,\n    mac: {\n      primary: 2048 | 3\n    }\n  }\n}));\nregisterEditorCommand(new FindCommand({\n  id: FIND_IDS.SelectAllMatchesAction,\n  precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n  handler: (x) =\u003e x.selectAllMatches(),\n  kbOpts: {\n    weight: 100 + 5,\n    kbExpr: EditorContextKeys.focus,\n    primary: 512 | 3\n    /* KeyCode.Enter */\n  }\n}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/folding.js\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_keyCodes();\ninit_lifecycle();\ninit_strings();\ninit_types();\ninit_editorExtensions();\ninit_editorContextKeys();\ninit_languages();\ninit_languageConfigurationRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/foldingModel.js\ninit_event();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/foldingRanges.js\nvar foldSourceAbbr = {\n  [\n    0\n    /* FoldSource.provider */\n  ]: \" \",\n  [\n    1\n    /* FoldSource.userDefined */\n  ]: \"u\",\n  [\n    2\n    /* FoldSource.recovered */\n  ]: \"r\"\n};\nvar MAX_FOLDING_REGIONS = 65535;\nvar MAX_LINE_NUMBER = 16777215;\nvar MASK_INDENT = 4278190080;\nvar BitField = class {\n  constructor(size2) {\n    const numWords = Math.ceil(size2 / 32);\n    this._states = new Uint32Array(numWords);\n  }\n  get(index) {\n    const arrayIndex = index / 32 | 0;\n    const bit = index % 32;\n    return (this._states[arrayIndex] \u0026 1 \u003c\u003c bit) !== 0;\n  }\n  set(index, newState) {\n    const arrayIndex = index / 32 | 0;\n    const bit = index % 32;\n    const value = this._states[arrayIndex];\n    if (newState) {\n      this._states[arrayIndex] = value | 1 \u003c\u003c bit;\n    } else {\n      this._states[arrayIndex] = value \u0026 ~(1 \u003c\u003c bit);\n    }\n  }\n};\nvar FoldingRegions = class _FoldingRegions {\n  constructor(startIndexes, endIndexes, types) {\n    if (startIndexes.length !== endIndexes.length || startIndexes.length \u003e MAX_FOLDING_REGIONS) {\n      throw new Error(\"invalid startIndexes or endIndexes size\");\n    }\n    this._startIndexes = startIndexes;\n    this._endIndexes = endIndexes;\n    this._collapseStates = new BitField(startIndexes.length);\n    this._userDefinedStates = new BitField(startIndexes.length);\n    this._recoveredStates = new BitField(startIndexes.length);\n    this._types = types;\n    this._parentsComputed = false;\n  }\n  ensureParentIndices() {\n    if (!this._parentsComputed) {\n      this._parentsComputed = true;\n      const parentIndexes = [];\n      const isInsideLast = (startLineNumber, endLineNumber) =\u003e {\n        const index = parentIndexes[parentIndexes.length - 1];\n        return this.getStartLineNumber(index) \u003c= startLineNumber \u0026\u0026 this.getEndLineNumber(index) \u003e= endLineNumber;\n      };\n      for (let i2 = 0, len = this._startIndexes.length; i2 \u003c len; i2++) {\n        const startLineNumber = this._startIndexes[i2];\n        const endLineNumber = this._endIndexes[i2];\n        if (startLineNumber \u003e MAX_LINE_NUMBER || endLineNumber \u003e MAX_LINE_NUMBER) {\n          throw new Error(\"startLineNumber or endLineNumber must not exceed \" + MAX_LINE_NUMBER);\n        }\n        while (parentIndexes.length \u003e 0 \u0026\u0026 !isInsideLast(startLineNumber, endLineNumber)) {\n          parentIndexes.pop();\n        }\n        const parentIndex = parentIndexes.length \u003e 0 ? parentIndexes[parentIndexes.length - 1] : -1;\n        parentIndexes.push(i2);\n        this._startIndexes[i2] = startLineNumber + ((parentIndex \u0026 255) \u003c\u003c 24);\n        this._endIndexes[i2] = endLineNumber + ((parentIndex \u0026 65280) \u003c\u003c 16);\n      }\n    }\n  }\n  get length() {\n    return this._startIndexes.length;\n  }\n  getStartLineNumber(index) {\n    return this._startIndexes[index] \u0026 MAX_LINE_NUMBER;\n  }\n  getEndLineNumber(index) {\n    return this._endIndexes[index] \u0026 MAX_LINE_NUMBER;\n  }\n  getType(index) {\n    return this._types ? this._types[index] : void 0;\n  }\n  hasTypes() {\n    return !!this._types;\n  }\n  isCollapsed(index) {\n    return this._collapseStates.get(index);\n  }\n  setCollapsed(index, newState) {\n    this._collapseStates.set(index, newState);\n  }\n  isUserDefined(index) {\n    return this._userDefinedStates.get(index);\n  }\n  setUserDefined(index, newState) {\n    return this._userDefinedStates.set(index, newState);\n  }\n  isRecovered(index) {\n    return this._recoveredStates.get(index);\n  }\n  setRecovered(index, newState) {\n    return this._recoveredStates.set(index, newState);\n  }\n  getSource(index) {\n    if (this.isUserDefined(index)) {\n      return 1;\n    } else if (this.isRecovered(index)) {\n      return 2;\n    }\n    return 0;\n  }\n  setSource(index, source) {\n    if (source === 1) {\n      this.setUserDefined(index, true);\n      this.setRecovered(index, false);\n    } else if (source === 2) {\n      this.setUserDefined(index, false);\n      this.setRecovered(index, true);\n    } else {\n      this.setUserDefined(index, false);\n      this.setRecovered(index, false);\n    }\n  }\n  setCollapsedAllOfType(type, newState) {\n    let hasChanged = false;\n    if (this._types) {\n      for (let i2 = 0; i2 \u003c this._types.length; i2++) {\n        if (this._types[i2] === type) {\n          this.setCollapsed(i2, newState);\n          hasChanged = true;\n        }\n      }\n    }\n    return hasChanged;\n  }\n  toRegion(index) {\n    return new FoldingRegion(this, index);\n  }\n  getParentIndex(index) {\n    this.ensureParentIndices();\n    const parent = ((this._startIndexes[index] \u0026 MASK_INDENT) \u003e\u003e\u003e 24) + ((this._endIndexes[index] \u0026 MASK_INDENT) \u003e\u003e\u003e 16);\n    if (parent === MAX_FOLDING_REGIONS) {\n      return -1;\n    }\n    return parent;\n  }\n  contains(index, line) {\n    return this.getStartLineNumber(index) \u003c= line \u0026\u0026 this.getEndLineNumber(index) \u003e= line;\n  }\n  findIndex(line) {\n    let low = 0, high = this._startIndexes.length;\n    if (high === 0) {\n      return -1;\n    }\n    while (low \u003c high) {\n      const mid = Math.floor((low + high) / 2);\n      if (line \u003c this.getStartLineNumber(mid)) {\n        high = mid;\n      } else {\n        low = mid + 1;\n      }\n    }\n    return low - 1;\n  }\n  findRange(line) {\n    let index = this.findIndex(line);\n    if (index \u003e= 0) {\n      const endLineNumber = this.getEndLineNumber(index);\n      if (endLineNumber \u003e= line) {\n        return index;\n      }\n      index = this.getParentIndex(index);\n      while (index !== -1) {\n        if (this.contains(index, line)) {\n          return index;\n        }\n        index = this.getParentIndex(index);\n      }\n    }\n    return -1;\n  }\n  toString() {\n    const res = [];\n    for (let i2 = 0; i2 \u003c this.length; i2++) {\n      res[i2] = `[${foldSourceAbbr[this.getSource(i2)]}${this.isCollapsed(i2) ? \"+\" : \"-\"}] ${this.getStartLineNumber(i2)}/${this.getEndLineNumber(i2)}`;\n    }\n    return res.join(\", \");\n  }\n  toFoldRange(index) {\n    return {\n      startLineNumber: this._startIndexes[index] \u0026 MAX_LINE_NUMBER,\n      endLineNumber: this._endIndexes[index] \u0026 MAX_LINE_NUMBER,\n      type: this._types ? this._types[index] : void 0,\n      isCollapsed: this.isCollapsed(index),\n      source: this.getSource(index)\n    };\n  }\n  static fromFoldRanges(ranges) {\n    const rangesLength = ranges.length;\n    const startIndexes = new Uint32Array(rangesLength);\n    const endIndexes = new Uint32Array(rangesLength);\n    let types = [];\n    let gotTypes = false;\n    for (let i2 = 0; i2 \u003c rangesLength; i2++) {\n      const range2 = ranges[i2];\n      startIndexes[i2] = range2.startLineNumber;\n      endIndexes[i2] = range2.endLineNumber;\n      types.push(range2.type);\n      if (range2.type) {\n        gotTypes = true;\n      }\n    }\n    if (!gotTypes) {\n      types = void 0;\n    }\n    const regions = new _FoldingRegions(startIndexes, endIndexes, types);\n    for (let i2 = 0; i2 \u003c rangesLength; i2++) {\n      if (ranges[i2].isCollapsed) {\n        regions.setCollapsed(i2, true);\n      }\n      regions.setSource(i2, ranges[i2].source);\n    }\n    return regions;\n  }\n  /**\n   * Two inputs, each a FoldingRegions or a FoldRange[], are merged.\n   * Each input must be pre-sorted on startLineNumber.\n   * The first list is assumed to always include all regions currently defined by range providers.\n   * The second list only contains the previously collapsed and all manual ranges.\n   * If the line position matches, the range of the new range is taken, and the range is no longer manual\n   * When an entry in one list overlaps an entry in the other, the second list's entry \"wins\" and\n   * overlapping entries in the first list are discarded.\n   * Invalid entries are discarded. An entry is invalid if:\n   * \t\tthe start and end line numbers aren't a valid range of line numbers,\n   * \t\tit is out of sequence or has the same start line as a preceding entry,\n   * \t\tit overlaps a preceding entry and is not fully contained by that entry.\n   */\n  static sanitizeAndMerge(rangesA, rangesB, maxLineNumber, selection) {\n    maxLineNumber = maxLineNumber ?? Number.MAX_VALUE;\n    const getIndexedFunction = (r, limit) =\u003e {\n      return Array.isArray(r) ? ((i2) =\u003e {\n        return i2 \u003c limit ? r[i2] : void 0;\n      }) : ((i2) =\u003e {\n        return i2 \u003c limit ? r.toFoldRange(i2) : void 0;\n      });\n    };\n    const getA = getIndexedFunction(rangesA, rangesA.length);\n    const getB = getIndexedFunction(rangesB, rangesB.length);\n    let indexA = 0;\n    let indexB = 0;\n    let nextA = getA(0);\n    let nextB = getB(0);\n    const stackedRanges = [];\n    let topStackedRange;\n    let prevLineNumber = 0;\n    const resultRanges = [];\n    while (nextA || nextB) {\n      let useRange = void 0;\n      if (nextB \u0026\u0026 (!nextA || nextA.startLineNumber \u003e= nextB.startLineNumber)) {\n        if (nextA \u0026\u0026 nextA.startLineNumber === nextB.startLineNumber) {\n          if (nextB.source === 1) {\n            useRange = nextB;\n          } else {\n            useRange = nextA;\n            useRange.isCollapsed = nextB.isCollapsed \u0026\u0026 (nextA.endLineNumber === nextB.endLineNumber || !selection?.startsInside(nextA.startLineNumber + 1, nextA.endLineNumber + 1));\n            useRange.source = 0;\n          }\n          nextA = getA(++indexA);\n        } else {\n          useRange = nextB;\n          if (nextB.isCollapsed \u0026\u0026 nextB.source === 0) {\n            useRange.source = 2;\n          }\n        }\n        nextB = getB(++indexB);\n      } else {\n        let scanIndex = indexB;\n        let prescanB = nextB;\n        while (true) {\n          if (!prescanB || prescanB.startLineNumber \u003e nextA.endLineNumber) {\n            useRange = nextA;\n            break;\n          }\n          if (prescanB.source === 1 \u0026\u0026 prescanB.endLineNumber \u003e nextA.endLineNumber) {\n            break;\n          }\n          prescanB = getB(++scanIndex);\n        }\n        nextA = getA(++indexA);\n      }\n      if (useRange) {\n        while (topStackedRange \u0026\u0026 topStackedRange.endLineNumber \u003c useRange.startLineNumber) {\n          topStackedRange = stackedRanges.pop();\n        }\n        if (useRange.endLineNumber \u003e useRange.startLineNumber \u0026\u0026 useRange.startLineNumber \u003e prevLineNumber \u0026\u0026 useRange.endLineNumber \u003c= maxLineNumber \u0026\u0026 (!topStackedRange || topStackedRange.endLineNumber \u003e= useRange.endLineNumber)) {\n          resultRanges.push(useRange);\n          prevLineNumber = useRange.startLineNumber;\n          if (topStackedRange) {\n            stackedRanges.push(topStackedRange);\n          }\n          topStackedRange = useRange;\n        }\n      }\n    }\n    return resultRanges;\n  }\n};\nvar FoldingRegion = class {\n  constructor(ranges, index) {\n    this.ranges = ranges;\n    this.index = index;\n  }\n  get startLineNumber() {\n    return this.ranges.getStartLineNumber(this.index);\n  }\n  get endLineNumber() {\n    return this.ranges.getEndLineNumber(this.index);\n  }\n  get regionIndex() {\n    return this.index;\n  }\n  get parentIndex() {\n    return this.ranges.getParentIndex(this.index);\n  }\n  get isCollapsed() {\n    return this.ranges.isCollapsed(this.index);\n  }\n  containedBy(range2) {\n    return range2.startLineNumber \u003c= this.startLineNumber \u0026\u0026 range2.endLineNumber \u003e= this.endLineNumber;\n  }\n  containsLine(lineNumber) {\n    return this.startLineNumber \u003c= lineNumber \u0026\u0026 lineNumber \u003c= this.endLineNumber;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/foldingModel.js\ninit_hash();\nvar FoldingModel = class {\n  get regions() {\n    return this._regions;\n  }\n  get textModel() {\n    return this._textModel;\n  }\n  constructor(textModel, decorationProvider) {\n    this._updateEventEmitter = new Emitter();\n    this.onDidChange = this._updateEventEmitter.event;\n    this._textModel = textModel;\n    this._decorationProvider = decorationProvider;\n    this._regions = new FoldingRegions(new Uint32Array(0), new Uint32Array(0));\n    this._editorDecorationIds = [];\n  }\n  toggleCollapseState(toggledRegions) {\n    if (!toggledRegions.length) {\n      return;\n    }\n    toggledRegions = toggledRegions.sort((r1, r2) =\u003e r1.regionIndex - r2.regionIndex);\n    const processed = {};\n    this._decorationProvider.changeDecorations((accessor) =\u003e {\n      let k = 0;\n      let dirtyRegionEndLine = -1;\n      let lastHiddenLine = -1;\n      const updateDecorationsUntil = (index) =\u003e {\n        while (k \u003c index) {\n          const endLineNumber = this._regions.getEndLineNumber(k);\n          const isCollapsed = this._regions.isCollapsed(k);\n          if (endLineNumber \u003c= dirtyRegionEndLine) {\n            const isManual = this.regions.getSource(k) !== 0;\n            accessor.changeDecorationOptions(this._editorDecorationIds[k], this._decorationProvider.getDecorationOption(isCollapsed, endLineNumber \u003c= lastHiddenLine, isManual));\n          }\n          if (isCollapsed \u0026\u0026 endLineNumber \u003e lastHiddenLine) {\n            lastHiddenLine = endLineNumber;\n          }\n          k++;\n        }\n      };\n      for (const region of toggledRegions) {\n        const index = region.regionIndex;\n        const editorDecorationId = this._editorDecorationIds[index];\n        if (editorDecorationId \u0026\u0026 !processed[editorDecorationId]) {\n          processed[editorDecorationId] = true;\n          updateDecorationsUntil(index);\n          const newCollapseState = !this._regions.isCollapsed(index);\n          this._regions.setCollapsed(index, newCollapseState);\n          dirtyRegionEndLine = Math.max(dirtyRegionEndLine, this._regions.getEndLineNumber(index));\n        }\n      }\n      updateDecorationsUntil(this._regions.length);\n    });\n    this._updateEventEmitter.fire({ model: this, collapseStateChanged: toggledRegions });\n  }\n  removeManualRanges(ranges) {\n    const newFoldingRanges = new Array();\n    const intersects2 = (foldRange) =\u003e {\n      for (const range2 of ranges) {\n        if (!(range2.startLineNumber \u003e foldRange.endLineNumber || foldRange.startLineNumber \u003e range2.endLineNumber)) {\n          return true;\n        }\n      }\n      return false;\n    };\n    for (let i2 = 0; i2 \u003c this._regions.length; i2++) {\n      const foldRange = this._regions.toFoldRange(i2);\n      if (foldRange.source === 0 || !intersects2(foldRange)) {\n        newFoldingRanges.push(foldRange);\n      }\n    }\n    this.updatePost(FoldingRegions.fromFoldRanges(newFoldingRanges));\n  }\n  update(newRegions, selection) {\n    const foldedOrManualRanges = this._currentFoldedOrManualRanges(selection);\n    const newRanges = FoldingRegions.sanitizeAndMerge(newRegions, foldedOrManualRanges, this._textModel.getLineCount(), selection);\n    this.updatePost(FoldingRegions.fromFoldRanges(newRanges));\n  }\n  updatePost(newRegions) {\n    const newEditorDecorations = [];\n    let lastHiddenLine = -1;\n    for (let index = 0, limit = newRegions.length; index \u003c limit; index++) {\n      const startLineNumber = newRegions.getStartLineNumber(index);\n      const endLineNumber = newRegions.getEndLineNumber(index);\n      const isCollapsed = newRegions.isCollapsed(index);\n      const isManual = newRegions.getSource(index) !== 0;\n      const decorationRange = {\n        startLineNumber,\n        startColumn: this._textModel.getLineMaxColumn(startLineNumber),\n        endLineNumber,\n        endColumn: this._textModel.getLineMaxColumn(endLineNumber) + 1\n      };\n      newEditorDecorations.push({ range: decorationRange, options: this._decorationProvider.getDecorationOption(isCollapsed, endLineNumber \u003c= lastHiddenLine, isManual) });\n      if (isCollapsed \u0026\u0026 endLineNumber \u003e lastHiddenLine) {\n        lastHiddenLine = endLineNumber;\n      }\n    }\n    this._decorationProvider.changeDecorations((accessor) =\u003e this._editorDecorationIds = accessor.deltaDecorations(this._editorDecorationIds, newEditorDecorations));\n    this._regions = newRegions;\n    this._updateEventEmitter.fire({ model: this });\n  }\n  _currentFoldedOrManualRanges(selection) {\n    const foldedRanges = [];\n    for (let i2 = 0, limit = this._regions.length; i2 \u003c limit; i2++) {\n      let isCollapsed = this.regions.isCollapsed(i2);\n      const source = this.regions.getSource(i2);\n      if (isCollapsed || source !== 0) {\n        const foldRange = this._regions.toFoldRange(i2);\n        const decRange = this._textModel.getDecorationRange(this._editorDecorationIds[i2]);\n        if (decRange) {\n          if (isCollapsed \u0026\u0026 selection?.startsInside(decRange.startLineNumber + 1, decRange.endLineNumber)) {\n            isCollapsed = false;\n          }\n          foldedRanges.push({\n            startLineNumber: decRange.startLineNumber,\n            endLineNumber: decRange.endLineNumber,\n            type: foldRange.type,\n            isCollapsed,\n            source\n          });\n        }\n      }\n    }\n    return foldedRanges;\n  }\n  /**\n   * Collapse state memento, for persistence only\n   */\n  getMemento() {\n    const foldedOrManualRanges = this._currentFoldedOrManualRanges();\n    const result = [];\n    const maxLineNumber = this._textModel.getLineCount();\n    for (let i2 = 0, limit = foldedOrManualRanges.length; i2 \u003c limit; i2++) {\n      const range2 = foldedOrManualRanges[i2];\n      if (range2.startLineNumber \u003e= range2.endLineNumber || range2.startLineNumber \u003c 1 || range2.endLineNumber \u003e maxLineNumber) {\n        continue;\n      }\n      const checksum = this._getLinesChecksum(range2.startLineNumber + 1, range2.endLineNumber);\n      result.push({\n        startLineNumber: range2.startLineNumber,\n        endLineNumber: range2.endLineNumber,\n        isCollapsed: range2.isCollapsed,\n        source: range2.source,\n        checksum\n      });\n    }\n    return result.length \u003e 0 ? result : void 0;\n  }\n  /**\n   * Apply persisted state, for persistence only\n   */\n  applyMemento(state) {\n    if (!Array.isArray(state)) {\n      return;\n    }\n    const rangesToRestore = [];\n    const maxLineNumber = this._textModel.getLineCount();\n    for (const range2 of state) {\n      if (range2.startLineNumber \u003e= range2.endLineNumber || range2.startLineNumber \u003c 1 || range2.endLineNumber \u003e maxLineNumber) {\n        continue;\n      }\n      const checksum = this._getLinesChecksum(range2.startLineNumber + 1, range2.endLineNumber);\n      if (!range2.checksum || checksum === range2.checksum) {\n        rangesToRestore.push({\n          startLineNumber: range2.startLineNumber,\n          endLineNumber: range2.endLineNumber,\n          type: void 0,\n          isCollapsed: range2.isCollapsed ?? true,\n          source: range2.source ?? 0\n          /* FoldSource.provider */\n        });\n      }\n    }\n    const newRanges = FoldingRegions.sanitizeAndMerge(this._regions, rangesToRestore, maxLineNumber);\n    this.updatePost(FoldingRegions.fromFoldRanges(newRanges));\n  }\n  _getLinesChecksum(lineNumber1, lineNumber2) {\n    const h2 = hash(this._textModel.getLineContent(lineNumber1) + this._textModel.getLineContent(lineNumber2));\n    return h2 % 1e6;\n  }\n  dispose() {\n    this._decorationProvider.removeDecorations(this._editorDecorationIds);\n  }\n  getAllRegionsAtLine(lineNumber, filter) {\n    const result = [];\n    if (this._regions) {\n      let index = this._regions.findRange(lineNumber);\n      let level = 1;\n      while (index \u003e= 0) {\n        const current = this._regions.toRegion(index);\n        if (!filter || filter(current, level)) {\n          result.push(current);\n        }\n        level++;\n        index = current.parentIndex;\n      }\n    }\n    return result;\n  }\n  getRegionAtLine(lineNumber) {\n    if (this._regions) {\n      const index = this._regions.findRange(lineNumber);\n      if (index \u003e= 0) {\n        return this._regions.toRegion(index);\n      }\n    }\n    return null;\n  }\n  getRegionsInside(region, filter) {\n    const result = [];\n    const index = region ? region.regionIndex + 1 : 0;\n    const endLineNumber = region ? region.endLineNumber : Number.MAX_VALUE;\n    if (filter \u0026\u0026 filter.length === 2) {\n      const levelStack = [];\n      for (let i2 = index, len = this._regions.length; i2 \u003c len; i2++) {\n        const current = this._regions.toRegion(i2);\n        if (this._regions.getStartLineNumber(i2) \u003c endLineNumber) {\n          while (levelStack.length \u003e 0 \u0026\u0026 !current.containedBy(levelStack[levelStack.length - 1])) {\n            levelStack.pop();\n          }\n          levelStack.push(current);\n          if (filter(current, levelStack.length)) {\n            result.push(current);\n          }\n        } else {\n          break;\n        }\n      }\n    } else {\n      for (let i2 = index, len = this._regions.length; i2 \u003c len; i2++) {\n        const current = this._regions.toRegion(i2);\n        if (this._regions.getStartLineNumber(i2) \u003c endLineNumber) {\n          if (!filter || filter(current)) {\n            result.push(current);\n          }\n        } else {\n          break;\n        }\n      }\n    }\n    return result;\n  }\n};\nfunction toggleCollapseState(foldingModel, levels, lineNumbers) {\n  const toToggle = [];\n  for (const lineNumber of lineNumbers) {\n    const region = foldingModel.getRegionAtLine(lineNumber);\n    if (region) {\n      const doCollapse = !region.isCollapsed;\n      toToggle.push(region);\n      if (levels \u003e 1) {\n        const regionsInside = foldingModel.getRegionsInside(region, (r, level) =\u003e r.isCollapsed !== doCollapse \u0026\u0026 level \u003c levels);\n        toToggle.push(...regionsInside);\n      }\n    }\n  }\n  foldingModel.toggleCollapseState(toToggle);\n}\nfunction setCollapseStateLevelsDown(foldingModel, doCollapse, levels = Number.MAX_VALUE, lineNumbers) {\n  const toToggle = [];\n  if (lineNumbers \u0026\u0026 lineNumbers.length \u003e 0) {\n    for (const lineNumber of lineNumbers) {\n      const region = foldingModel.getRegionAtLine(lineNumber);\n      if (region) {\n        if (region.isCollapsed !== doCollapse) {\n          toToggle.push(region);\n        }\n        if (levels \u003e 1) {\n          const regionsInside = foldingModel.getRegionsInside(region, (r, level) =\u003e r.isCollapsed !== doCollapse \u0026\u0026 level \u003c levels);\n          toToggle.push(...regionsInside);\n        }\n      }\n    }\n  } else {\n    const regionsInside = foldingModel.getRegionsInside(null, (r, level) =\u003e r.isCollapsed !== doCollapse \u0026\u0026 level \u003c levels);\n    toToggle.push(...regionsInside);\n  }\n  foldingModel.toggleCollapseState(toToggle);\n}\nfunction setCollapseStateLevelsUp(foldingModel, doCollapse, levels, lineNumbers) {\n  const toToggle = [];\n  for (const lineNumber of lineNumbers) {\n    const regions = foldingModel.getAllRegionsAtLine(lineNumber, (region, level) =\u003e region.isCollapsed !== doCollapse \u0026\u0026 level \u003c= levels);\n    toToggle.push(...regions);\n  }\n  foldingModel.toggleCollapseState(toToggle);\n}\nfunction setCollapseStateUp(foldingModel, doCollapse, lineNumbers) {\n  const toToggle = [];\n  for (const lineNumber of lineNumbers) {\n    const regions = foldingModel.getAllRegionsAtLine(lineNumber, (region) =\u003e region.isCollapsed !== doCollapse);\n    if (regions.length \u003e 0) {\n      toToggle.push(regions[0]);\n    }\n  }\n  foldingModel.toggleCollapseState(toToggle);\n}\nfunction setCollapseStateAtLevel(foldingModel, foldLevel, doCollapse, blockedLineNumbers) {\n  const filter = (region, level) =\u003e level === foldLevel \u0026\u0026 region.isCollapsed !== doCollapse \u0026\u0026 !blockedLineNumbers.some((line) =\u003e region.containsLine(line));\n  const toToggle = foldingModel.getRegionsInside(null, filter);\n  foldingModel.toggleCollapseState(toToggle);\n}\nfunction setCollapseStateForRest(foldingModel, doCollapse, blockedLineNumbers) {\n  const filteredRegions = [];\n  for (const lineNumber of blockedLineNumbers) {\n    const regions = foldingModel.getAllRegionsAtLine(lineNumber, void 0);\n    if (regions.length \u003e 0) {\n      filteredRegions.push(regions[0]);\n    }\n  }\n  const filter = (region) =\u003e filteredRegions.every((filteredRegion) =\u003e !filteredRegion.containedBy(region) \u0026\u0026 !region.containedBy(filteredRegion)) \u0026\u0026 region.isCollapsed !== doCollapse;\n  const toToggle = foldingModel.getRegionsInside(null, filter);\n  foldingModel.toggleCollapseState(toToggle);\n}\nfunction setCollapseStateForMatchingLines(foldingModel, regExp, doCollapse) {\n  const editorModel = foldingModel.textModel;\n  const regions = foldingModel.regions;\n  const toToggle = [];\n  for (let i2 = regions.length - 1; i2 \u003e= 0; i2--) {\n    if (doCollapse !== regions.isCollapsed(i2)) {\n      const startLineNumber = regions.getStartLineNumber(i2);\n      if (regExp.test(editorModel.getLineContent(startLineNumber))) {\n        toToggle.push(regions.toRegion(i2));\n      }\n    }\n  }\n  foldingModel.toggleCollapseState(toToggle);\n}\nfunction setCollapseStateForType(foldingModel, type, doCollapse) {\n  const regions = foldingModel.regions;\n  const toToggle = [];\n  for (let i2 = regions.length - 1; i2 \u003e= 0; i2--) {\n    if (doCollapse !== regions.isCollapsed(i2) \u0026\u0026 type === regions.getType(i2)) {\n      toToggle.push(regions.toRegion(i2));\n    }\n  }\n  foldingModel.toggleCollapseState(toToggle);\n}\nfunction getParentFoldLine(lineNumber, foldingModel) {\n  let startLineNumber = null;\n  const foldingRegion = foldingModel.getRegionAtLine(lineNumber);\n  if (foldingRegion !== null) {\n    startLineNumber = foldingRegion.startLineNumber;\n    if (lineNumber === startLineNumber) {\n      const parentFoldingIdx = foldingRegion.parentIndex;\n      if (parentFoldingIdx !== -1) {\n        startLineNumber = foldingModel.regions.getStartLineNumber(parentFoldingIdx);\n      } else {\n        startLineNumber = null;\n      }\n    }\n  }\n  return startLineNumber;\n}\nfunction getPreviousFoldLine(lineNumber, foldingModel) {\n  let foldingRegion = foldingModel.getRegionAtLine(lineNumber);\n  if (foldingRegion !== null \u0026\u0026 foldingRegion.startLineNumber === lineNumber) {\n    if (lineNumber !== foldingRegion.startLineNumber) {\n      return foldingRegion.startLineNumber;\n    } else {\n      const expectedParentIndex = foldingRegion.parentIndex;\n      let minLineNumber = 0;\n      if (expectedParentIndex !== -1) {\n        minLineNumber = foldingModel.regions.getStartLineNumber(foldingRegion.parentIndex);\n      }\n      while (foldingRegion !== null) {\n        if (foldingRegion.regionIndex \u003e 0) {\n          foldingRegion = foldingModel.regions.toRegion(foldingRegion.regionIndex - 1);\n          if (foldingRegion.startLineNumber \u003c= minLineNumber) {\n            return null;\n          } else if (foldingRegion.parentIndex === expectedParentIndex) {\n            return foldingRegion.startLineNumber;\n          }\n        } else {\n          return null;\n        }\n      }\n    }\n  } else {\n    if (foldingModel.regions.length \u003e 0) {\n      foldingRegion = foldingModel.regions.toRegion(foldingModel.regions.length - 1);\n      while (foldingRegion !== null) {\n        if (foldingRegion.startLineNumber \u003c lineNumber) {\n          return foldingRegion.startLineNumber;\n        }\n        if (foldingRegion.regionIndex \u003e 0) {\n          foldingRegion = foldingModel.regions.toRegion(foldingRegion.regionIndex - 1);\n        } else {\n          foldingRegion = null;\n        }\n      }\n    }\n  }\n  return null;\n}\nfunction getNextFoldLine(lineNumber, foldingModel) {\n  let foldingRegion = foldingModel.getRegionAtLine(lineNumber);\n  if (foldingRegion !== null \u0026\u0026 foldingRegion.startLineNumber === lineNumber) {\n    const expectedParentIndex = foldingRegion.parentIndex;\n    let maxLineNumber = 0;\n    if (expectedParentIndex !== -1) {\n      maxLineNumber = foldingModel.regions.getEndLineNumber(foldingRegion.parentIndex);\n    } else if (foldingModel.regions.length === 0) {\n      return null;\n    } else {\n      maxLineNumber = foldingModel.regions.getEndLineNumber(foldingModel.regions.length - 1);\n    }\n    while (foldingRegion !== null) {\n      if (foldingRegion.regionIndex \u003c foldingModel.regions.length) {\n        foldingRegion = foldingModel.regions.toRegion(foldingRegion.regionIndex + 1);\n        if (foldingRegion.startLineNumber \u003e= maxLineNumber) {\n          return null;\n        } else if (foldingRegion.parentIndex === expectedParentIndex) {\n          return foldingRegion.startLineNumber;\n        }\n      } else {\n        return null;\n      }\n    }\n  } else {\n    if (foldingModel.regions.length \u003e 0) {\n      foldingRegion = foldingModel.regions.toRegion(0);\n      while (foldingRegion !== null) {\n        if (foldingRegion.startLineNumber \u003e lineNumber) {\n          return foldingRegion.startLineNumber;\n        }\n        if (foldingRegion.regionIndex \u003c foldingModel.regions.length) {\n          foldingRegion = foldingModel.regions.toRegion(foldingRegion.regionIndex + 1);\n        } else {\n          foldingRegion = null;\n        }\n      }\n    }\n  }\n  return null;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/hiddenRangeModel.js\ninit_arraysFind();\ninit_event();\ninit_range();\ninit_eolCounter();\nvar HiddenRangeModel = class {\n  get onDidChange() {\n    return this._updateEventEmitter.event;\n  }\n  get hiddenRanges() {\n    return this._hiddenRanges;\n  }\n  constructor(model) {\n    this._updateEventEmitter = new Emitter();\n    this._hasLineChanges = false;\n    this._foldingModel = model;\n    this._foldingModelListener = model.onDidChange((_) =\u003e this.updateHiddenRanges());\n    this._hiddenRanges = [];\n    if (model.regions.length) {\n      this.updateHiddenRanges();\n    }\n  }\n  notifyChangeModelContent(e) {\n    if (this._hiddenRanges.length \u0026\u0026 !this._hasLineChanges) {\n      this._hasLineChanges = e.changes.some((change) =\u003e {\n        return change.range.endLineNumber !== change.range.startLineNumber || countEOL(change.text)[0] !== 0;\n      });\n    }\n  }\n  updateHiddenRanges() {\n    let updateHiddenAreas = false;\n    const newHiddenAreas = [];\n    let i2 = 0;\n    let k = 0;\n    let lastCollapsedStart = Number.MAX_VALUE;\n    let lastCollapsedEnd = -1;\n    const ranges = this._foldingModel.regions;\n    for (; i2 \u003c ranges.length; i2++) {\n      if (!ranges.isCollapsed(i2)) {\n        continue;\n      }\n      const startLineNumber = ranges.getStartLineNumber(i2) + 1;\n      const endLineNumber = ranges.getEndLineNumber(i2);\n      if (lastCollapsedStart \u003c= startLineNumber \u0026\u0026 endLineNumber \u003c= lastCollapsedEnd) {\n        continue;\n      }\n      if (!updateHiddenAreas \u0026\u0026 k \u003c this._hiddenRanges.length \u0026\u0026 this._hiddenRanges[k].startLineNumber === startLineNumber \u0026\u0026 this._hiddenRanges[k].endLineNumber === endLineNumber) {\n        newHiddenAreas.push(this._hiddenRanges[k]);\n        k++;\n      } else {\n        updateHiddenAreas = true;\n        newHiddenAreas.push(new Range(startLineNumber, 1, endLineNumber, 1));\n      }\n      lastCollapsedStart = startLineNumber;\n      lastCollapsedEnd = endLineNumber;\n    }\n    if (this._hasLineChanges || updateHiddenAreas || k \u003c this._hiddenRanges.length) {\n      this.applyHiddenRanges(newHiddenAreas);\n    }\n  }\n  applyHiddenRanges(newHiddenAreas) {\n    this._hiddenRanges = newHiddenAreas;\n    this._hasLineChanges = false;\n    this._updateEventEmitter.fire(newHiddenAreas);\n  }\n  hasRanges() {\n    return this._hiddenRanges.length \u003e 0;\n  }\n  isHidden(line) {\n    return findRange(this._hiddenRanges, line) !== null;\n  }\n  adjustSelections(selections) {\n    let hasChanges = false;\n    const editorModel = this._foldingModel.textModel;\n    let lastRange = null;\n    const adjustLine = (line) =\u003e {\n      if (!lastRange || !isInside(line, lastRange)) {\n        lastRange = findRange(this._hiddenRanges, line);\n      }\n      if (lastRange) {\n        return lastRange.startLineNumber - 1;\n      }\n      return null;\n    };\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      let selection = selections[i2];\n      const adjustedStartLine = adjustLine(selection.startLineNumber);\n      if (adjustedStartLine) {\n        selection = selection.setStartPosition(adjustedStartLine, editorModel.getLineMaxColumn(adjustedStartLine));\n        hasChanges = true;\n      }\n      const adjustedEndLine = adjustLine(selection.endLineNumber);\n      if (adjustedEndLine) {\n        selection = selection.setEndPosition(adjustedEndLine, editorModel.getLineMaxColumn(adjustedEndLine));\n        hasChanges = true;\n      }\n      selections[i2] = selection;\n    }\n    return hasChanges;\n  }\n  dispose() {\n    if (this.hiddenRanges.length \u003e 0) {\n      this._hiddenRanges = [];\n      this._updateEventEmitter.fire(this._hiddenRanges);\n    }\n    if (this._foldingModelListener) {\n      this._foldingModelListener.dispose();\n      this._foldingModelListener = null;\n    }\n  }\n};\nfunction isInside(line, range2) {\n  return line \u003e= range2.startLineNumber \u0026\u0026 line \u003c= range2.endLineNumber;\n}\nfunction findRange(ranges, line) {\n  const i2 = findFirstIdxMonotonousOrArrLen(ranges, (r) =\u003e line \u003c r.startLineNumber) - 1;\n  if (i2 \u003e= 0 \u0026\u0026 ranges[i2].endLineNumber \u003e= line) {\n    return ranges[i2];\n  }\n  return null;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/indentRangeProvider.js\ninit_utils4();\nvar MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT = 5e3;\nvar ID_INDENT_PROVIDER = \"indent\";\nvar IndentRangeProvider = class {\n  constructor(editorModel, languageConfigurationService, foldingRangesLimit) {\n    this.editorModel = editorModel;\n    this.languageConfigurationService = languageConfigurationService;\n    this.foldingRangesLimit = foldingRangesLimit;\n    this.id = ID_INDENT_PROVIDER;\n  }\n  dispose() {\n  }\n  compute(cancelationToken) {\n    const foldingRules = this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules;\n    const offSide = foldingRules \u0026\u0026 !!foldingRules.offSide;\n    const markers = foldingRules \u0026\u0026 foldingRules.markers;\n    return Promise.resolve(computeRanges(this.editorModel, offSide, markers, this.foldingRangesLimit));\n  }\n};\nvar RangesCollector = class {\n  constructor(foldingRangesLimit) {\n    this._startIndexes = [];\n    this._endIndexes = [];\n    this._indentOccurrences = [];\n    this._length = 0;\n    this._foldingRangesLimit = foldingRangesLimit;\n  }\n  insertFirst(startLineNumber, endLineNumber, indent) {\n    if (startLineNumber \u003e MAX_LINE_NUMBER || endLineNumber \u003e MAX_LINE_NUMBER) {\n      return;\n    }\n    const index = this._length;\n    this._startIndexes[index] = startLineNumber;\n    this._endIndexes[index] = endLineNumber;\n    this._length++;\n    if (indent \u003c 1e3) {\n      this._indentOccurrences[indent] = (this._indentOccurrences[indent] || 0) + 1;\n    }\n  }\n  toIndentRanges(model) {\n    const limit = this._foldingRangesLimit.limit;\n    if (this._length \u003c= limit) {\n      this._foldingRangesLimit.update(this._length, false);\n      const startIndexes = new Uint32Array(this._length);\n      const endIndexes = new Uint32Array(this._length);\n      for (let i2 = this._length - 1, k = 0; i2 \u003e= 0; i2--, k++) {\n        startIndexes[k] = this._startIndexes[i2];\n        endIndexes[k] = this._endIndexes[i2];\n      }\n      return new FoldingRegions(startIndexes, endIndexes);\n    } else {\n      this._foldingRangesLimit.update(this._length, limit);\n      let entries2 = 0;\n      let maxIndent = this._indentOccurrences.length;\n      for (let i2 = 0; i2 \u003c this._indentOccurrences.length; i2++) {\n        const n2 = this._indentOccurrences[i2];\n        if (n2) {\n          if (n2 + entries2 \u003e limit) {\n            maxIndent = i2;\n            break;\n          }\n          entries2 += n2;\n        }\n      }\n      const tabSize = model.getOptions().tabSize;\n      const startIndexes = new Uint32Array(limit);\n      const endIndexes = new Uint32Array(limit);\n      for (let i2 = this._length - 1, k = 0; i2 \u003e= 0; i2--) {\n        const startIndex = this._startIndexes[i2];\n        const lineContent = model.getLineContent(startIndex);\n        const indent = computeIndentLevel(lineContent, tabSize);\n        if (indent \u003c maxIndent || indent === maxIndent \u0026\u0026 entries2++ \u003c limit) {\n          startIndexes[k] = startIndex;\n          endIndexes[k] = this._endIndexes[i2];\n          k++;\n        }\n      }\n      return new FoldingRegions(startIndexes, endIndexes);\n    }\n  }\n};\nvar foldingRangesLimitDefault = {\n  limit: MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT,\n  update: () =\u003e {\n  }\n};\nfunction computeRanges(model, offSide, markers, foldingRangesLimit = foldingRangesLimitDefault) {\n  const tabSize = model.getOptions().tabSize;\n  const result = new RangesCollector(foldingRangesLimit);\n  let pattern = void 0;\n  if (markers) {\n    pattern = new RegExp(`(${markers.start.source})|(?:${markers.end.source})`);\n  }\n  const previousRegions = [];\n  const line = model.getLineCount() + 1;\n  previousRegions.push({ indent: -1, endAbove: line, line });\n  for (let line2 = model.getLineCount(); line2 \u003e 0; line2--) {\n    const lineContent = model.getLineContent(line2);\n    const indent = computeIndentLevel(lineContent, tabSize);\n    let previous = previousRegions[previousRegions.length - 1];\n    if (indent === -1) {\n      if (offSide) {\n        previous.endAbove = line2;\n      }\n      continue;\n    }\n    let m;\n    if (pattern \u0026\u0026 (m = lineContent.match(pattern))) {\n      if (m[1]) {\n        let i2 = previousRegions.length - 1;\n        while (i2 \u003e 0 \u0026\u0026 previousRegions[i2].indent !== -2) {\n          i2--;\n        }\n        if (i2 \u003e 0) {\n          previousRegions.length = i2 + 1;\n          previous = previousRegions[i2];\n          result.insertFirst(line2, previous.line, indent);\n          previous.line = line2;\n          previous.indent = indent;\n          previous.endAbove = line2;\n          continue;\n        } else {\n        }\n      } else {\n        previousRegions.push({ indent: -2, endAbove: line2, line: line2 });\n        continue;\n      }\n    }\n    if (previous.indent \u003e indent) {\n      do {\n        previousRegions.pop();\n        previous = previousRegions[previousRegions.length - 1];\n      } while (previous.indent \u003e indent);\n      const endLineNumber = previous.endAbove - 1;\n      if (endLineNumber - line2 \u003e= 1) {\n        result.insertFirst(line2, endLineNumber, indent);\n      }\n    }\n    if (previous.indent === indent) {\n      previous.endAbove = line2;\n    } else {\n      previousRegions.push({ indent, endAbove: line2, line: line2 });\n    }\n  }\n  return result.toIndentRanges(model);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/folding.js\ninit_nls();\ninit_contextkey();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/foldingDecorations.js\ninit_codicons();\ninit_textModel();\ninit_nls();\ninit_colorRegistry();\ninit_themeService();\ninit_themables();\nvar foldBackground = registerColor(\"editor.foldBackground\", { light: transparent(editorSelectionBackground, 0.3), dark: transparent(editorSelectionBackground, 0.3), hcDark: null, hcLight: null }, localize(994, \"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.\"), true);\nregisterColor(\"editor.foldPlaceholderForeground\", { light: \"#808080\", dark: \"#808080\", hcDark: null, hcLight: null }, localize(995, \"Color of the collapsed text after the first line of a folded range.\"));\nregisterColor(\"editorGutter.foldingControlForeground\", iconForeground, localize(996, \"Color of the folding control in the editor gutter.\"));\nvar foldingExpandedIcon = registerIcon(\"folding-expanded\", Codicon.chevronDown, localize(997, \"Icon for expanded ranges in the editor glyph margin.\"));\nvar foldingCollapsedIcon = registerIcon(\"folding-collapsed\", Codicon.chevronRight, localize(998, \"Icon for collapsed ranges in the editor glyph margin.\"));\nvar foldingManualCollapsedIcon = registerIcon(\"folding-manual-collapsed\", foldingCollapsedIcon, localize(999, \"Icon for manually collapsed ranges in the editor glyph margin.\"));\nvar foldingManualExpandedIcon = registerIcon(\"folding-manual-expanded\", foldingExpandedIcon, localize(1e3, \"Icon for manually expanded ranges in the editor glyph margin.\"));\nvar foldedBackgroundMinimap = {\n  color: themeColorFromId(foldBackground),\n  position: 1\n  /* MinimapPosition.Inline */\n};\nvar collapsed = localize(1001, \"Click to expand the range.\");\nvar expanded = localize(1002, \"Click to collapse the range.\");\nvar FoldingDecorationProvider = class _FoldingDecorationProvider {\n  static {\n    this.COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-collapsed-visual-decoration\",\n      stickiness: 0,\n      afterContentClassName: \"inline-folded\",\n      isWholeLine: true,\n      linesDecorationsTooltip: collapsed,\n      firstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon)\n    });\n  }\n  static {\n    this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-collapsed-highlighted-visual-decoration\",\n      stickiness: 0,\n      afterContentClassName: \"inline-folded\",\n      className: \"folded-background\",\n      minimap: foldedBackgroundMinimap,\n      isWholeLine: true,\n      linesDecorationsTooltip: collapsed,\n      firstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon)\n    });\n  }\n  static {\n    this.MANUALLY_COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-manually-collapsed-visual-decoration\",\n      stickiness: 0,\n      afterContentClassName: \"inline-folded\",\n      isWholeLine: true,\n      linesDecorationsTooltip: collapsed,\n      firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n    });\n  }\n  static {\n    this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-manually-collapsed-highlighted-visual-decoration\",\n      stickiness: 0,\n      afterContentClassName: \"inline-folded\",\n      className: \"folded-background\",\n      minimap: foldedBackgroundMinimap,\n      isWholeLine: true,\n      linesDecorationsTooltip: collapsed,\n      firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n    });\n  }\n  static {\n    this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-no-controls-range-decoration\",\n      stickiness: 0,\n      afterContentClassName: \"inline-folded\",\n      isWholeLine: true,\n      linesDecorationsTooltip: collapsed\n    });\n  }\n  static {\n    this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-no-controls-range-decoration\",\n      stickiness: 0,\n      afterContentClassName: \"inline-folded\",\n      className: \"folded-background\",\n      minimap: foldedBackgroundMinimap,\n      isWholeLine: true,\n      linesDecorationsTooltip: collapsed\n    });\n  }\n  static {\n    this.EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-expanded-visual-decoration\",\n      stickiness: 1,\n      isWholeLine: true,\n      firstLineDecorationClassName: \"alwaysShowFoldIcons \" + ThemeIcon.asClassName(foldingExpandedIcon),\n      linesDecorationsTooltip: expanded\n    });\n  }\n  static {\n    this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-expanded-auto-hide-visual-decoration\",\n      stickiness: 1,\n      isWholeLine: true,\n      firstLineDecorationClassName: ThemeIcon.asClassName(foldingExpandedIcon),\n      linesDecorationsTooltip: expanded\n    });\n  }\n  static {\n    this.MANUALLY_EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-manually-expanded-visual-decoration\",\n      stickiness: 0,\n      isWholeLine: true,\n      firstLineDecorationClassName: \"alwaysShowFoldIcons \" + ThemeIcon.asClassName(foldingManualExpandedIcon),\n      linesDecorationsTooltip: expanded\n    });\n  }\n  static {\n    this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-manually-expanded-auto-hide-visual-decoration\",\n      stickiness: 0,\n      isWholeLine: true,\n      firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualExpandedIcon),\n      linesDecorationsTooltip: expanded\n    });\n  }\n  static {\n    this.NO_CONTROLS_EXPANDED_RANGE_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-no-controls-range-decoration\",\n      stickiness: 0,\n      isWholeLine: true\n    });\n  }\n  static {\n    this.HIDDEN_RANGE_DECORATION = ModelDecorationOptions.register({\n      description: \"folding-hidden-range-decoration\",\n      stickiness: 1\n      /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n    });\n  }\n  constructor(editor2) {\n    this.editor = editor2;\n    this.showFoldingControls = \"mouseover\";\n    this.showFoldingHighlights = true;\n  }\n  getDecorationOption(isCollapsed, isHidden, isManual) {\n    if (isHidden) {\n      return _FoldingDecorationProvider.HIDDEN_RANGE_DECORATION;\n    }\n    if (this.showFoldingControls === \"never\") {\n      if (isCollapsed) {\n        return this.showFoldingHighlights ? _FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION : _FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;\n      }\n      return _FoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION;\n    }\n    if (isCollapsed) {\n      return isManual ? this.showFoldingHighlights ? _FoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : _FoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION : this.showFoldingHighlights ? _FoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : _FoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION;\n    } else if (this.showFoldingControls === \"mouseover\") {\n      return isManual ? _FoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION : _FoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;\n    } else {\n      return isManual ? _FoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION : _FoldingDecorationProvider.EXPANDED_VISUAL_DECORATION;\n    }\n  }\n  changeDecorations(callback) {\n    return this.editor.changeDecorations(callback);\n  }\n  removeDecorations(decorationIds) {\n    this.editor.removeDecorations(decorationIds);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/syntaxRangeProvider.js\ninit_errors();\ninit_lifecycle();\nvar foldingContext = {};\nvar ID_SYNTAX_PROVIDER = \"syntax\";\nvar SyntaxRangeProvider = class {\n  constructor(editorModel, providers, handleFoldingRangesChange, foldingRangesLimit, fallbackRangeProvider) {\n    this.editorModel = editorModel;\n    this.providers = providers;\n    this.handleFoldingRangesChange = handleFoldingRangesChange;\n    this.foldingRangesLimit = foldingRangesLimit;\n    this.fallbackRangeProvider = fallbackRangeProvider;\n    this.id = ID_SYNTAX_PROVIDER;\n    this.disposables = new DisposableStore();\n    if (fallbackRangeProvider) {\n      this.disposables.add(fallbackRangeProvider);\n    }\n    for (const provider of providers) {\n      if (typeof provider.onDidChange === \"function\") {\n        this.disposables.add(provider.onDidChange(handleFoldingRangesChange));\n      }\n    }\n  }\n  compute(cancellationToken) {\n    return collectSyntaxRanges(this.providers, this.editorModel, cancellationToken).then((ranges) =\u003e {\n      if (this.editorModel.isDisposed()) {\n        return null;\n      }\n      if (ranges) {\n        const res = sanitizeRanges(ranges, this.foldingRangesLimit);\n        return res;\n      }\n      return this.fallbackRangeProvider?.compute(cancellationToken) ?? null;\n    });\n  }\n  dispose() {\n    this.disposables.dispose();\n  }\n};\nfunction collectSyntaxRanges(providers, model, cancellationToken) {\n  let rangeData = null;\n  const promises = providers.map((provider, i2) =\u003e {\n    return Promise.resolve(provider.provideFoldingRanges(model, foldingContext, cancellationToken)).then((ranges) =\u003e {\n      if (cancellationToken.isCancellationRequested) {\n        return;\n      }\n      if (Array.isArray(ranges)) {\n        if (!Array.isArray(rangeData)) {\n          rangeData = [];\n        }\n        const nLines = model.getLineCount();\n        for (const r of ranges) {\n          if (r.start \u003e 0 \u0026\u0026 r.end \u003e r.start \u0026\u0026 r.end \u003c= nLines) {\n            rangeData.push({ start: r.start, end: r.end, rank: i2, kind: r.kind });\n          }\n        }\n      }\n    }, onUnexpectedExternalError);\n  });\n  return Promise.all(promises).then((_) =\u003e {\n    return rangeData;\n  });\n}\nvar RangesCollector2 = class {\n  constructor(foldingRangesLimit) {\n    this._startIndexes = [];\n    this._endIndexes = [];\n    this._nestingLevels = [];\n    this._nestingLevelCounts = [];\n    this._types = [];\n    this._length = 0;\n    this._foldingRangesLimit = foldingRangesLimit;\n  }\n  add(startLineNumber, endLineNumber, type, nestingLevel) {\n    if (startLineNumber \u003e MAX_LINE_NUMBER || endLineNumber \u003e MAX_LINE_NUMBER) {\n      return;\n    }\n    const index = this._length;\n    this._startIndexes[index] = startLineNumber;\n    this._endIndexes[index] = endLineNumber;\n    this._nestingLevels[index] = nestingLevel;\n    this._types[index] = type;\n    this._length++;\n    if (nestingLevel \u003c 30) {\n      this._nestingLevelCounts[nestingLevel] = (this._nestingLevelCounts[nestingLevel] || 0) + 1;\n    }\n  }\n  toIndentRanges() {\n    const limit = this._foldingRangesLimit.limit;\n    if (this._length \u003c= limit) {\n      this._foldingRangesLimit.update(this._length, false);\n      const startIndexes = new Uint32Array(this._length);\n      const endIndexes = new Uint32Array(this._length);\n      for (let i2 = 0; i2 \u003c this._length; i2++) {\n        startIndexes[i2] = this._startIndexes[i2];\n        endIndexes[i2] = this._endIndexes[i2];\n      }\n      return new FoldingRegions(startIndexes, endIndexes, this._types);\n    } else {\n      this._foldingRangesLimit.update(this._length, limit);\n      let entries2 = 0;\n      let maxLevel = this._nestingLevelCounts.length;\n      for (let i2 = 0; i2 \u003c this._nestingLevelCounts.length; i2++) {\n        const n2 = this._nestingLevelCounts[i2];\n        if (n2) {\n          if (n2 + entries2 \u003e limit) {\n            maxLevel = i2;\n            break;\n          }\n          entries2 += n2;\n        }\n      }\n      const startIndexes = new Uint32Array(limit);\n      const endIndexes = new Uint32Array(limit);\n      const types = [];\n      for (let i2 = 0, k = 0; i2 \u003c this._length; i2++) {\n        const level = this._nestingLevels[i2];\n        if (level \u003c maxLevel || level === maxLevel \u0026\u0026 entries2++ \u003c limit) {\n          startIndexes[k] = this._startIndexes[i2];\n          endIndexes[k] = this._endIndexes[i2];\n          types[k] = this._types[i2];\n          k++;\n        }\n      }\n      return new FoldingRegions(startIndexes, endIndexes, types);\n    }\n  }\n};\nfunction sanitizeRanges(rangeData, foldingRangesLimit) {\n  const sorted = rangeData.sort((d1, d2) =\u003e {\n    let diff = d1.start - d2.start;\n    if (diff === 0) {\n      diff = d1.rank - d2.rank;\n    }\n    return diff;\n  });\n  const collector = new RangesCollector2(foldingRangesLimit);\n  let top = void 0;\n  const previous = [];\n  for (const entry of sorted) {\n    if (!top) {\n      top = entry;\n      collector.add(entry.start, entry.end, entry.kind \u0026\u0026 entry.kind.value, previous.length);\n    } else {\n      if (entry.start \u003e top.start) {\n        if (entry.end \u003c= top.end) {\n          previous.push(top);\n          top = entry;\n          collector.add(entry.start, entry.end, entry.kind \u0026\u0026 entry.kind.value, previous.length);\n        } else {\n          if (entry.start \u003e top.end) {\n            do {\n              top = previous.pop();\n            } while (top \u0026\u0026 entry.start \u003e top.end);\n            if (top) {\n              previous.push(top);\n            }\n            top = entry;\n          }\n          collector.add(entry.start, entry.end, entry.kind \u0026\u0026 entry.kind.value, previous.length);\n        }\n      }\n    }\n  }\n  return collector.toIndentRanges();\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/folding/browser/folding.js\ninit_languageFeatureDebounce();\ninit_stopwatch();\ninit_languageFeatures();\ninit_event();\ninit_commands();\ninit_uri();\ninit_model();\ninit_configuration();\nvar __decorate88 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param82 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar FoldingController_1;\nvar CONTEXT_FOLDING_ENABLED = new RawContextKey(\"foldingEnabled\", false);\nvar FoldingController = class FoldingController2 extends Disposable {\n  static {\n    FoldingController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.folding\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(FoldingController_1.ID);\n  }\n  static getFoldingRangeProviders(languageFeaturesService, model) {\n    const foldingRangeProviders = languageFeaturesService.foldingRangeProvider.ordered(model);\n    return FoldingController_1._foldingRangeSelector?.(foldingRangeProviders, model) ?? foldingRangeProviders;\n  }\n  constructor(editor2, contextKeyService, languageConfigurationService, notificationService, languageFeatureDebounceService, languageFeaturesService) {\n    super();\n    this.contextKeyService = contextKeyService;\n    this.languageConfigurationService = languageConfigurationService;\n    this.languageFeaturesService = languageFeaturesService;\n    this.localToDispose = this._register(new DisposableStore());\n    this.editor = editor2;\n    this._foldingLimitReporter = this._register(new RangesLimitReporter(editor2));\n    const options2 = this.editor.getOptions();\n    this._isEnabled = options2.get(\n      52\n      /* EditorOption.folding */\n    );\n    this._useFoldingProviders = options2.get(\n      53\n      /* EditorOption.foldingStrategy */\n    ) !== \"indentation\";\n    this._unfoldOnClickAfterEndOfLine = options2.get(\n      57\n      /* EditorOption.unfoldOnClickAfterEndOfLine */\n    );\n    this._restoringViewState = false;\n    this._currentModelHasFoldedImports = false;\n    this._foldingImportsByDefault = options2.get(\n      55\n      /* EditorOption.foldingImportsByDefault */\n    );\n    this.updateDebounceInfo = languageFeatureDebounceService.for(languageFeaturesService.foldingRangeProvider, \"Folding\", { min: 200 });\n    this.foldingModel = null;\n    this.hiddenRangeModel = null;\n    this.rangeProvider = null;\n    this.foldingRegionPromise = null;\n    this.foldingModelPromise = null;\n    this.updateScheduler = null;\n    this.cursorChangedScheduler = null;\n    this.mouseDownInfo = null;\n    this.foldingDecorationProvider = new FoldingDecorationProvider(editor2);\n    this.foldingDecorationProvider.showFoldingControls = options2.get(\n      125\n      /* EditorOption.showFoldingControls */\n    );\n    this.foldingDecorationProvider.showFoldingHighlights = options2.get(\n      54\n      /* EditorOption.foldingHighlight */\n    );\n    this.foldingEnabled = CONTEXT_FOLDING_ENABLED.bindTo(this.contextKeyService);\n    this.foldingEnabled.set(this._isEnabled);\n    this._register(this.editor.onDidChangeModel(() =\u003e this.onModelChanged()));\n    this._register(this.editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        52\n        /* EditorOption.folding */\n      )) {\n        this._isEnabled = this.editor.getOptions().get(\n          52\n          /* EditorOption.folding */\n        );\n        this.foldingEnabled.set(this._isEnabled);\n        this.onModelChanged();\n      }\n      if (e.hasChanged(\n        56\n        /* EditorOption.foldingMaximumRegions */\n      )) {\n        this.onModelChanged();\n      }\n      if (e.hasChanged(\n        125\n        /* EditorOption.showFoldingControls */\n      ) || e.hasChanged(\n        54\n        /* EditorOption.foldingHighlight */\n      )) {\n        const options3 = this.editor.getOptions();\n        this.foldingDecorationProvider.showFoldingControls = options3.get(\n          125\n          /* EditorOption.showFoldingControls */\n        );\n        this.foldingDecorationProvider.showFoldingHighlights = options3.get(\n          54\n          /* EditorOption.foldingHighlight */\n        );\n        this.triggerFoldingModelChanged();\n      }\n      if (e.hasChanged(\n        53\n        /* EditorOption.foldingStrategy */\n      )) {\n        this._useFoldingProviders = this.editor.getOptions().get(\n          53\n          /* EditorOption.foldingStrategy */\n        ) !== \"indentation\";\n        this.onFoldingStrategyChanged();\n      }\n      if (e.hasChanged(\n        57\n        /* EditorOption.unfoldOnClickAfterEndOfLine */\n      )) {\n        this._unfoldOnClickAfterEndOfLine = this.editor.getOptions().get(\n          57\n          /* EditorOption.unfoldOnClickAfterEndOfLine */\n        );\n      }\n      if (e.hasChanged(\n        55\n        /* EditorOption.foldingImportsByDefault */\n      )) {\n        this._foldingImportsByDefault = this.editor.getOptions().get(\n          55\n          /* EditorOption.foldingImportsByDefault */\n        );\n      }\n    }));\n    this.onModelChanged();\n  }\n  /**\n   * Store view state.\n   */\n  saveViewState() {\n    const model = this.editor.getModel();\n    if (!model || !this._isEnabled || model.isTooLargeForTokenization()) {\n      return {};\n    }\n    if (this.foldingModel) {\n      const collapsedRegions = this.foldingModel.getMemento();\n      const provider = this.rangeProvider ? this.rangeProvider.id : void 0;\n      return { collapsedRegions, lineCount: model.getLineCount(), provider, foldedImports: this._currentModelHasFoldedImports };\n    }\n    return void 0;\n  }\n  /**\n   * Restore view state.\n   */\n  restoreViewState(state) {\n    const model = this.editor.getModel();\n    if (!model || !this._isEnabled || model.isTooLargeForTokenization() || !this.hiddenRangeModel) {\n      return;\n    }\n    if (!state) {\n      return;\n    }\n    this._currentModelHasFoldedImports = !!state.foldedImports;\n    if (state.collapsedRegions \u0026\u0026 state.collapsedRegions.length \u003e 0 \u0026\u0026 this.foldingModel) {\n      this._restoringViewState = true;\n      try {\n        this.foldingModel.applyMemento(state.collapsedRegions);\n      } finally {\n        this._restoringViewState = false;\n      }\n    }\n  }\n  onModelChanged() {\n    this.localToDispose.clear();\n    const model = this.editor.getModel();\n    if (!this._isEnabled || !model || model.isTooLargeForTokenization()) {\n      return;\n    }\n    this._currentModelHasFoldedImports = false;\n    this.foldingModel = new FoldingModel(model, this.foldingDecorationProvider);\n    this.localToDispose.add(this.foldingModel);\n    this.hiddenRangeModel = new HiddenRangeModel(this.foldingModel);\n    this.localToDispose.add(this.hiddenRangeModel);\n    this.localToDispose.add(this.hiddenRangeModel.onDidChange((hr2) =\u003e this.onHiddenRangesChanges(hr2)));\n    this.updateScheduler = new Delayer(this.updateDebounceInfo.get(model));\n    this.cursorChangedScheduler = new RunOnceScheduler(() =\u003e this.revealCursor(), 200);\n    this.localToDispose.add(this.cursorChangedScheduler);\n    this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(() =\u003e this.onFoldingStrategyChanged()));\n    this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(() =\u003e this.onFoldingStrategyChanged()));\n    this.localToDispose.add(this.editor.onDidChangeModelContent((e) =\u003e this.onDidChangeModelContent(e)));\n    this.localToDispose.add(this.editor.onDidChangeCursorPosition(() =\u003e this.onCursorPositionChanged()));\n    this.localToDispose.add(this.editor.onMouseDown((e) =\u003e this.onEditorMouseDown(e)));\n    this.localToDispose.add(this.editor.onMouseUp((e) =\u003e this.onEditorMouseUp(e)));\n    this.localToDispose.add({\n      dispose: () =\u003e {\n        if (this.foldingRegionPromise) {\n          this.foldingRegionPromise.cancel();\n          this.foldingRegionPromise = null;\n        }\n        this.updateScheduler?.cancel();\n        this.updateScheduler = null;\n        this.foldingModel = null;\n        this.foldingModelPromise = null;\n        this.hiddenRangeModel = null;\n        this.cursorChangedScheduler = null;\n        this.rangeProvider?.dispose();\n        this.rangeProvider = null;\n      }\n    });\n    this.triggerFoldingModelChanged();\n  }\n  onFoldingStrategyChanged() {\n    this.rangeProvider?.dispose();\n    this.rangeProvider = null;\n    this.triggerFoldingModelChanged();\n  }\n  getRangeProvider(editorModel) {\n    if (this.rangeProvider) {\n      return this.rangeProvider;\n    }\n    const indentRangeProvider = new IndentRangeProvider(editorModel, this.languageConfigurationService, this._foldingLimitReporter);\n    this.rangeProvider = indentRangeProvider;\n    if (this._useFoldingProviders \u0026\u0026 this.foldingModel) {\n      const selectedProviders = FoldingController_1.getFoldingRangeProviders(this.languageFeaturesService, editorModel);\n      if (selectedProviders.length \u003e 0) {\n        this.rangeProvider = new SyntaxRangeProvider(editorModel, selectedProviders, () =\u003e this.triggerFoldingModelChanged(), this._foldingLimitReporter, indentRangeProvider);\n      }\n    }\n    return this.rangeProvider;\n  }\n  getFoldingModel() {\n    return this.foldingModelPromise;\n  }\n  onDidChangeModelContent(e) {\n    this.hiddenRangeModel?.notifyChangeModelContent(e);\n    this.triggerFoldingModelChanged();\n  }\n  triggerFoldingModelChanged() {\n    if (this.updateScheduler) {\n      if (this.foldingRegionPromise) {\n        this.foldingRegionPromise.cancel();\n        this.foldingRegionPromise = null;\n      }\n      this.foldingModelPromise = this.updateScheduler.trigger(() =\u003e {\n        const foldingModel = this.foldingModel;\n        if (!foldingModel) {\n          return null;\n        }\n        const sw = new StopWatch();\n        const provider = this.getRangeProvider(foldingModel.textModel);\n        const foldingRegionPromise = this.foldingRegionPromise = createCancelablePromise((token) =\u003e provider.compute(token));\n        return foldingRegionPromise.then((foldingRanges) =\u003e {\n          if (foldingRanges \u0026\u0026 foldingRegionPromise === this.foldingRegionPromise) {\n            let scrollState;\n            if (this._foldingImportsByDefault \u0026\u0026 !this._currentModelHasFoldedImports) {\n              const hasChanges = foldingRanges.setCollapsedAllOfType(FoldingRangeKind.Imports.value, true);\n              if (hasChanges) {\n                scrollState = StableEditorScrollState.capture(this.editor);\n                this._currentModelHasFoldedImports = hasChanges;\n              }\n            }\n            const selections = this.editor.getSelections();\n            foldingModel.update(foldingRanges, toSelectedLines(selections));\n            scrollState?.restore(this.editor);\n            const newValue = this.updateDebounceInfo.update(foldingModel.textModel, sw.elapsed());\n            if (this.updateScheduler) {\n              this.updateScheduler.defaultDelay = newValue;\n            }\n          }\n          return foldingModel;\n        });\n      }).then(void 0, (err) =\u003e {\n        onUnexpectedError(err);\n        return null;\n      });\n    }\n  }\n  onHiddenRangesChanges(hiddenRanges) {\n    if (this.hiddenRangeModel \u0026\u0026 hiddenRanges.length \u0026\u0026 !this._restoringViewState) {\n      const selections = this.editor.getSelections();\n      if (selections) {\n        if (this.hiddenRangeModel.adjustSelections(selections)) {\n          this.editor.setSelections(selections);\n        }\n      }\n    }\n    this.editor.setHiddenAreas(hiddenRanges, this);\n  }\n  onCursorPositionChanged() {\n    if (this.hiddenRangeModel \u0026\u0026 this.hiddenRangeModel.hasRanges()) {\n      this.cursorChangedScheduler.schedule();\n    }\n  }\n  revealCursor() {\n    const foldingModel = this.getFoldingModel();\n    if (!foldingModel) {\n      return;\n    }\n    foldingModel.then((foldingModel2) =\u003e {\n      if (foldingModel2) {\n        const selections = this.editor.getSelections();\n        if (selections \u0026\u0026 selections.length \u003e 0) {\n          const toToggle = [];\n          for (const selection of selections) {\n            const lineNumber = selection.selectionStartLineNumber;\n            if (this.hiddenRangeModel \u0026\u0026 this.hiddenRangeModel.isHidden(lineNumber)) {\n              toToggle.push(...foldingModel2.getAllRegionsAtLine(lineNumber, (r) =\u003e r.isCollapsed \u0026\u0026 lineNumber \u003e r.startLineNumber));\n            }\n          }\n          if (toToggle.length) {\n            foldingModel2.toggleCollapseState(toToggle);\n            this.reveal(selections[0].getPosition());\n          }\n        }\n      }\n    }).then(void 0, onUnexpectedError);\n  }\n  onEditorMouseDown(e) {\n    this.mouseDownInfo = null;\n    if (!this.hiddenRangeModel || !e.target || !e.target.range) {\n      return;\n    }\n    if (!e.event.leftButton \u0026\u0026 !e.event.middleButton) {\n      return;\n    }\n    const range2 = e.target.range;\n    let iconClicked = false;\n    switch (e.target.type) {\n      case 4: {\n        const data = e.target.detail;\n        const offsetLeftInGutter = e.target.element.offsetLeft;\n        const gutterOffsetX = data.offsetX - offsetLeftInGutter;\n        if (gutterOffsetX \u003c 4) {\n          return;\n        }\n        iconClicked = true;\n        break;\n      }\n      case 7: {\n        if (this._unfoldOnClickAfterEndOfLine \u0026\u0026 this.hiddenRangeModel.hasRanges()) {\n          const data = e.target.detail;\n          if (!data.isAfterLines) {\n            break;\n          }\n        }\n        return;\n      }\n      case 6: {\n        if (this.hiddenRangeModel.hasRanges()) {\n          const model = this.editor.getModel();\n          if (model \u0026\u0026 range2.startColumn === model.getLineMaxColumn(range2.startLineNumber)) {\n            break;\n          }\n        }\n        return;\n      }\n      default:\n        return;\n    }\n    this.mouseDownInfo = { lineNumber: range2.startLineNumber, iconClicked };\n  }\n  onEditorMouseUp(e) {\n    const foldingModel = this.foldingModel;\n    if (!foldingModel || !this.mouseDownInfo || !e.target) {\n      return;\n    }\n    const lineNumber = this.mouseDownInfo.lineNumber;\n    const iconClicked = this.mouseDownInfo.iconClicked;\n    const range2 = e.target.range;\n    if (!range2 || range2.startLineNumber !== lineNumber) {\n      return;\n    }\n    if (iconClicked) {\n      if (e.target.type !== 4) {\n        return;\n      }\n    } else {\n      const model = this.editor.getModel();\n      if (!model || range2.startColumn !== model.getLineMaxColumn(lineNumber)) {\n        return;\n      }\n    }\n    const region = foldingModel.getRegionAtLine(lineNumber);\n    if (region \u0026\u0026 region.startLineNumber === lineNumber) {\n      const isCollapsed = region.isCollapsed;\n      if (iconClicked || isCollapsed) {\n        const surrounding = e.event.altKey;\n        let toToggle = [];\n        if (surrounding) {\n          const filter = (otherRegion) =\u003e !otherRegion.containedBy(region) \u0026\u0026 !region.containedBy(otherRegion);\n          const toMaybeToggle = foldingModel.getRegionsInside(null, filter);\n          for (const r of toMaybeToggle) {\n            if (r.isCollapsed) {\n              toToggle.push(r);\n            }\n          }\n          if (toToggle.length === 0) {\n            toToggle = toMaybeToggle;\n          }\n        } else {\n          const recursive = e.event.middleButton || e.event.shiftKey;\n          if (recursive) {\n            for (const r of foldingModel.getRegionsInside(region)) {\n              if (r.isCollapsed === isCollapsed) {\n                toToggle.push(r);\n              }\n            }\n          }\n          if (isCollapsed || !recursive || toToggle.length === 0) {\n            toToggle.push(region);\n          }\n        }\n        foldingModel.toggleCollapseState(toToggle);\n        this.reveal({ lineNumber, column: 1 });\n      }\n    }\n  }\n  reveal(position) {\n    this.editor.revealPositionInCenterIfOutsideViewport(\n      position,\n      0\n      /* ScrollType.Smooth */\n    );\n  }\n};\nFoldingController = FoldingController_1 = __decorate88([\n  __param82(1, IContextKeyService),\n  __param82(2, ILanguageConfigurationService),\n  __param82(3, INotificationService),\n  __param82(4, ILanguageFeatureDebounceService),\n  __param82(5, ILanguageFeaturesService)\n], FoldingController);\nvar RangesLimitReporter = class extends Disposable {\n  constructor(editor2) {\n    super();\n    this.editor = editor2;\n    this._onDidChange = this._register(new Emitter());\n    this._computed = 0;\n    this._limited = false;\n  }\n  get limit() {\n    return this.editor.getOptions().get(\n      56\n      /* EditorOption.foldingMaximumRegions */\n    );\n  }\n  update(computed, limited) {\n    if (computed !== this._computed || limited !== this._limited) {\n      this._computed = computed;\n      this._limited = limited;\n      this._onDidChange.fire();\n    }\n  }\n};\nvar FoldingAction = class extends EditorAction {\n  runEditorCommand(accessor, editor2, args) {\n    const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n    const foldingController = FoldingController.get(editor2);\n    if (!foldingController) {\n      return;\n    }\n    const foldingModelPromise = foldingController.getFoldingModel();\n    if (foldingModelPromise) {\n      this.reportTelemetry(accessor, editor2);\n      return foldingModelPromise.then((foldingModel) =\u003e {\n        if (foldingModel) {\n          this.invoke(foldingController, foldingModel, editor2, args, languageConfigurationService);\n          const selection = editor2.getSelection();\n          if (selection) {\n            foldingController.reveal(selection.getStartPosition());\n          }\n        }\n      });\n    }\n  }\n  getSelectedLines(editor2) {\n    const selections = editor2.getSelections();\n    return selections ? selections.map((s) =\u003e s.startLineNumber) : [];\n  }\n  getLineNumbers(args, editor2) {\n    if (args \u0026\u0026 args.selectionLines) {\n      return args.selectionLines.map((l) =\u003e l + 1);\n    }\n    return this.getSelectedLines(editor2);\n  }\n  run(_accessor, _editor) {\n  }\n};\nfunction toSelectedLines(selections) {\n  if (!selections || selections.length === 0) {\n    return {\n      startsInside: () =\u003e false\n    };\n  }\n  return {\n    startsInside(startLine, endLine) {\n      for (const s of selections) {\n        const line = s.startLineNumber;\n        if (line \u003e= startLine \u0026\u0026 line \u003c= endLine) {\n          return true;\n        }\n      }\n      return false;\n    }\n  };\n}\nfunction foldingArgumentsConstraint(args) {\n  if (!isUndefined(args)) {\n    if (!isObject(args)) {\n      return false;\n    }\n    const foldingArgs = args;\n    if (!isUndefined(foldingArgs.levels) \u0026\u0026 !isNumber(foldingArgs.levels)) {\n      return false;\n    }\n    if (!isUndefined(foldingArgs.direction) \u0026\u0026 !isString(foldingArgs.direction)) {\n      return false;\n    }\n    if (!isUndefined(foldingArgs.selectionLines) \u0026\u0026 (!Array.isArray(foldingArgs.selectionLines) || !foldingArgs.selectionLines.every(isNumber))) {\n      return false;\n    }\n  }\n  return true;\n}\nvar UnfoldAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.unfold\",\n      label: localize2(974, \"Unfold\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 1024 | 94,\n        mac: {\n          primary: 2048 | 512 | 94\n          /* KeyCode.BracketRight */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: \"Unfold the content in the editor\",\n        args: [\n          {\n            name: \"Unfold editor argument\",\n            description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t`,\n            constraint: foldingArgumentsConstraint,\n            schema: {\n              \"type\": \"object\",\n              \"properties\": {\n                \"levels\": {\n                  \"type\": \"number\",\n                  \"default\": 1\n                },\n                \"direction\": {\n                  \"type\": \"string\",\n                  \"enum\": [\"up\", \"down\"],\n                  \"default\": \"down\"\n                },\n                \"selectionLines\": {\n                  \"type\": \"array\",\n                  \"items\": {\n                    \"type\": \"number\"\n                  }\n                }\n              }\n            }\n          }\n        ]\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2, args) {\n    const levels = args \u0026\u0026 args.levels || 1;\n    const lineNumbers = this.getLineNumbers(args, editor2);\n    if (args \u0026\u0026 args.direction === \"up\") {\n      setCollapseStateLevelsUp(foldingModel, false, levels, lineNumbers);\n    } else {\n      setCollapseStateLevelsDown(foldingModel, false, levels, lineNumbers);\n    }\n  }\n};\nvar UnFoldRecursivelyAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.unfoldRecursively\",\n      label: localize2(975, \"Unfold Recursively\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 94\n          /* KeyCode.BracketRight */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2, _args) {\n    setCollapseStateLevelsDown(foldingModel, false, Number.MAX_VALUE, this.getSelectedLines(editor2));\n  }\n};\nvar FoldAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.fold\",\n      label: localize2(976, \"Fold\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 1024 | 92,\n        mac: {\n          primary: 2048 | 512 | 92\n          /* KeyCode.BracketLeft */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: \"Fold the content in the editor\",\n        args: [\n          {\n            name: \"Fold editor argument\",\n            description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t`,\n            constraint: foldingArgumentsConstraint,\n            schema: {\n              \"type\": \"object\",\n              \"properties\": {\n                \"levels\": {\n                  \"type\": \"number\"\n                },\n                \"direction\": {\n                  \"type\": \"string\",\n                  \"enum\": [\"up\", \"down\"]\n                },\n                \"selectionLines\": {\n                  \"type\": \"array\",\n                  \"items\": {\n                    \"type\": \"number\"\n                  }\n                }\n              }\n            }\n          }\n        ]\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2, args) {\n    const lineNumbers = this.getLineNumbers(args, editor2);\n    const levels = args \u0026\u0026 args.levels;\n    const direction = args \u0026\u0026 args.direction;\n    if (typeof levels !== \"number\" \u0026\u0026 typeof direction !== \"string\") {\n      setCollapseStateUp(foldingModel, true, lineNumbers);\n    } else {\n      if (direction === \"up\") {\n        setCollapseStateLevelsUp(foldingModel, true, levels || 1, lineNumbers);\n      } else {\n        setCollapseStateLevelsDown(foldingModel, true, levels || 1, lineNumbers);\n      }\n    }\n  }\n};\nvar ToggleFoldAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.toggleFold\",\n      label: localize2(977, \"Toggle Fold\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 42\n          /* KeyCode.KeyL */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const selectedLines = this.getSelectedLines(editor2);\n    toggleCollapseState(foldingModel, 1, selectedLines);\n  }\n};\nvar FoldRecursivelyAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.foldRecursively\",\n      label: localize2(978, \"Fold Recursively\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 92\n          /* KeyCode.BracketLeft */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const selectedLines = this.getSelectedLines(editor2);\n    setCollapseStateLevelsDown(foldingModel, true, Number.MAX_VALUE, selectedLines);\n  }\n};\nvar ToggleFoldRecursivelyAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.toggleFoldRecursively\",\n      label: localize2(979, \"Toggle Fold Recursively\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 1024 | 42\n          /* KeyCode.KeyL */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const selectedLines = this.getSelectedLines(editor2);\n    toggleCollapseState(foldingModel, Number.MAX_VALUE, selectedLines);\n  }\n};\nvar FoldAllBlockCommentsAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.foldAllBlockComments\",\n      label: localize2(980, \"Fold All Block Comments\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 90\n          /* KeyCode.Slash */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2, args, languageConfigurationService) {\n    if (foldingModel.regions.hasTypes()) {\n      setCollapseStateForType(foldingModel, FoldingRangeKind.Comment.value, true);\n    } else {\n      const editorModel = editor2.getModel();\n      if (!editorModel) {\n        return;\n      }\n      const comments = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).comments;\n      if (comments \u0026\u0026 comments.blockCommentStartToken) {\n        const regExp = new RegExp(\"^\\\\s*\" + escapeRegExpCharacters(comments.blockCommentStartToken));\n        setCollapseStateForMatchingLines(foldingModel, regExp, true);\n      }\n    }\n  }\n};\nvar FoldAllRegionsAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.foldAllMarkerRegions\",\n      label: localize2(981, \"Fold All Regions\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 29\n          /* KeyCode.Digit8 */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2, args, languageConfigurationService) {\n    if (foldingModel.regions.hasTypes()) {\n      setCollapseStateForType(foldingModel, FoldingRangeKind.Region.value, true);\n    } else {\n      const editorModel = editor2.getModel();\n      if (!editorModel) {\n        return;\n      }\n      const foldingRules = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).foldingRules;\n      if (foldingRules \u0026\u0026 foldingRules.markers \u0026\u0026 foldingRules.markers.start) {\n        const regExp = new RegExp(foldingRules.markers.start);\n        setCollapseStateForMatchingLines(foldingModel, regExp, true);\n      }\n    }\n  }\n};\nvar UnfoldAllRegionsAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.unfoldAllMarkerRegions\",\n      label: localize2(982, \"Unfold All Regions\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 30\n          /* KeyCode.Digit9 */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2, args, languageConfigurationService) {\n    if (foldingModel.regions.hasTypes()) {\n      setCollapseStateForType(foldingModel, FoldingRangeKind.Region.value, false);\n    } else {\n      const editorModel = editor2.getModel();\n      if (!editorModel) {\n        return;\n      }\n      const foldingRules = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).foldingRules;\n      if (foldingRules \u0026\u0026 foldingRules.markers \u0026\u0026 foldingRules.markers.start) {\n        const regExp = new RegExp(foldingRules.markers.start);\n        setCollapseStateForMatchingLines(foldingModel, regExp, false);\n      }\n    }\n  }\n};\nvar FoldAllExceptAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.foldAllExcept\",\n      label: localize2(983, \"Fold All Except Selected\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 88\n          /* KeyCode.Minus */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const selectedLines = this.getSelectedLines(editor2);\n    setCollapseStateForRest(foldingModel, true, selectedLines);\n  }\n};\nvar UnfoldAllExceptAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.unfoldAllExcept\",\n      label: localize2(984, \"Unfold All Except Selected\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 86\n          /* KeyCode.Equal */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const selectedLines = this.getSelectedLines(editor2);\n    setCollapseStateForRest(foldingModel, false, selectedLines);\n  }\n};\nvar FoldAllAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.foldAll\",\n      label: localize2(985, \"Fold All\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 21\n          /* KeyCode.Digit0 */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, _editor) {\n    setCollapseStateLevelsDown(foldingModel, true);\n  }\n};\nvar UnfoldAllAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.unfoldAll\",\n      label: localize2(986, \"Unfold All\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 40\n          /* KeyCode.KeyJ */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, _editor) {\n    setCollapseStateLevelsDown(foldingModel, false);\n  }\n};\nvar FoldLevelAction = class _FoldLevelAction extends FoldingAction {\n  static {\n    this.ID_PREFIX = \"editor.foldLevel\";\n  }\n  static {\n    this.ID = (level) =\u003e _FoldLevelAction.ID_PREFIX + level;\n  }\n  getFoldingLevel() {\n    return parseInt(this.id.substr(_FoldLevelAction.ID_PREFIX.length));\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    setCollapseStateAtLevel(foldingModel, this.getFoldingLevel(), true, this.getSelectedLines(editor2));\n  }\n};\nvar GotoParentFoldAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.gotoParentFold\",\n      label: localize2(987, \"Go to Parent Fold\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const selectedLines = this.getSelectedLines(editor2);\n    if (selectedLines.length \u003e 0) {\n      const startLineNumber = getParentFoldLine(selectedLines[0], foldingModel);\n      if (startLineNumber !== null) {\n        editor2.setSelection({\n          startLineNumber,\n          startColumn: 1,\n          endLineNumber: startLineNumber,\n          endColumn: 1\n        });\n      }\n    }\n  }\n};\nvar GotoPreviousFoldAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.gotoPreviousFold\",\n      label: localize2(988, \"Go to Previous Folding Range\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const selectedLines = this.getSelectedLines(editor2);\n    if (selectedLines.length \u003e 0) {\n      const startLineNumber = getPreviousFoldLine(selectedLines[0], foldingModel);\n      if (startLineNumber !== null) {\n        editor2.setSelection({\n          startLineNumber,\n          startColumn: 1,\n          endLineNumber: startLineNumber,\n          endColumn: 1\n        });\n      }\n    }\n  }\n};\nvar GotoNextFoldAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.gotoNextFold\",\n      label: localize2(989, \"Go to Next Folding Range\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const selectedLines = this.getSelectedLines(editor2);\n    if (selectedLines.length \u003e 0) {\n      const startLineNumber = getNextFoldLine(selectedLines[0], foldingModel);\n      if (startLineNumber !== null) {\n        editor2.setSelection({\n          startLineNumber,\n          startColumn: 1,\n          endLineNumber: startLineNumber,\n          endColumn: 1\n        });\n      }\n    }\n  }\n};\nvar FoldRangeFromSelectionAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.createFoldingRangeFromSelection\",\n      label: localize2(990, \"Create Folding Range from Selection\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 87\n          /* KeyCode.Comma */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(_foldingController, foldingModel, editor2) {\n    const collapseRanges = [];\n    const selections = editor2.getSelections();\n    if (selections) {\n      for (const selection of selections) {\n        let endLineNumber = selection.endLineNumber;\n        if (selection.endColumn === 1) {\n          --endLineNumber;\n        }\n        if (endLineNumber \u003e selection.startLineNumber) {\n          collapseRanges.push({\n            startLineNumber: selection.startLineNumber,\n            endLineNumber,\n            type: void 0,\n            isCollapsed: true,\n            source: 1\n            /* FoldSource.userDefined */\n          });\n          editor2.setSelection({\n            startLineNumber: selection.startLineNumber,\n            startColumn: 1,\n            endLineNumber: selection.startLineNumber,\n            endColumn: 1\n          });\n        }\n      }\n      if (collapseRanges.length \u003e 0) {\n        collapseRanges.sort((a, b) =\u003e {\n          return a.startLineNumber - b.startLineNumber;\n        });\n        const newRanges = FoldingRegions.sanitizeAndMerge(foldingModel.regions, collapseRanges, editor2.getModel()?.getLineCount());\n        foldingModel.updatePost(FoldingRegions.fromFoldRanges(newRanges));\n      }\n    }\n  }\n};\nvar RemoveFoldRangeFromSelectionAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.removeManualFoldingRanges\",\n      label: localize2(991, \"Remove Manual Folding Ranges\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 89\n          /* KeyCode.Period */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  invoke(foldingController, foldingModel, editor2) {\n    const selections = editor2.getSelections();\n    if (selections) {\n      const ranges = [];\n      for (const selection of selections) {\n        const { startLineNumber, endLineNumber } = selection;\n        ranges.push(endLineNumber \u003e= startLineNumber ? { startLineNumber, endLineNumber } : { endLineNumber, startLineNumber });\n      }\n      foldingModel.removeManualRanges(ranges);\n      foldingController.triggerFoldingModelChanged();\n    }\n  }\n};\nvar ToggleImportFoldAction = class extends FoldingAction {\n  constructor() {\n    super({\n      id: \"editor.toggleImportFold\",\n      label: localize2(992, \"Toggle Import Fold\"),\n      precondition: CONTEXT_FOLDING_ENABLED,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  async invoke(foldingController, foldingModel) {\n    const regionsToToggle = [];\n    const regions = foldingModel.regions;\n    for (let i2 = regions.length - 1; i2 \u003e= 0; i2--) {\n      if (regions.getType(i2) === FoldingRangeKind.Imports.value) {\n        regionsToToggle.push(regions.toRegion(i2));\n      }\n    }\n    foldingModel.toggleCollapseState(regionsToToggle);\n    foldingController.triggerFoldingModelChanged();\n  }\n};\nregisterEditorContribution(\n  FoldingController.ID,\n  FoldingController,\n  0\n  /* EditorContributionInstantiation.Eager */\n);\nregisterEditorAction(UnfoldAction);\nregisterEditorAction(UnFoldRecursivelyAction);\nregisterEditorAction(FoldAction);\nregisterEditorAction(FoldRecursivelyAction);\nregisterEditorAction(ToggleFoldRecursivelyAction);\nregisterEditorAction(FoldAllAction);\nregisterEditorAction(UnfoldAllAction);\nregisterEditorAction(FoldAllBlockCommentsAction);\nregisterEditorAction(FoldAllRegionsAction);\nregisterEditorAction(UnfoldAllRegionsAction);\nregisterEditorAction(FoldAllExceptAction);\nregisterEditorAction(UnfoldAllExceptAction);\nregisterEditorAction(ToggleFoldAction);\nregisterEditorAction(GotoParentFoldAction);\nregisterEditorAction(GotoPreviousFoldAction);\nregisterEditorAction(GotoNextFoldAction);\nregisterEditorAction(FoldRangeFromSelectionAction);\nregisterEditorAction(RemoveFoldRangeFromSelectionAction);\nregisterEditorAction(ToggleImportFoldAction);\nfor (let i2 = 1; i2 \u003c= 7; i2++) {\n  registerInstantiatedEditorAction(new FoldLevelAction({\n    id: FoldLevelAction.ID(i2),\n    label: localize2(993, \"Fold Level {0}\", i2),\n    precondition: CONTEXT_FOLDING_ENABLED,\n    kbOpts: {\n      kbExpr: EditorContextKeys.editorTextFocus,\n      primary: KeyChord(2048 | 41, 2048 | 21 + i2),\n      weight: 100\n      /* KeybindingWeight.EditorContrib */\n    }\n  }));\n}\nCommandsRegistry.registerCommand(\"_executeFoldingRangeProvider\", async function(accessor, ...args) {\n  const [resource] = args;\n  if (!(resource instanceof URI)) {\n    throw illegalArgument();\n  }\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const model = accessor.get(IModelService).getModel(resource);\n  if (!model) {\n    throw illegalArgument();\n  }\n  const configurationService = accessor.get(IConfigurationService);\n  if (!configurationService.getValue(\"editor.folding\", { resource })) {\n    return [];\n  }\n  const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n  const strategy = configurationService.getValue(\"editor.foldingStrategy\", { resource });\n  const foldingLimitReporter = {\n    get limit() {\n      return configurationService.getValue(\"editor.foldingMaximumRegions\", { resource });\n    },\n    update: (computed, limited) =\u003e {\n    }\n  };\n  const indentRangeProvider = new IndentRangeProvider(model, languageConfigurationService, foldingLimitReporter);\n  let rangeProvider = indentRangeProvider;\n  if (strategy !== \"indentation\") {\n    const providers = FoldingController.getFoldingRangeProviders(languageFeaturesService, model);\n    if (providers.length) {\n      rangeProvider = new SyntaxRangeProvider(model, providers, () =\u003e {\n      }, foldingLimitReporter, indentRangeProvider);\n    }\n  }\n  const ranges = await rangeProvider.compute(CancellationToken.None);\n  const result = [];\n  try {\n    if (ranges) {\n      for (let i2 = 0; i2 \u003c ranges.length; i2++) {\n        const type = ranges.getType(i2);\n        result.push({ start: ranges.getStartLineNumber(i2), end: ranges.getEndLineNumber(i2), kind: type ? FoldingRangeKind.fromValue(type) : void 0 });\n      }\n    }\n    return result;\n  } finally {\n    rangeProvider.dispose();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js\ninit_editorExtensions();\ninit_nls();\nvar EditorFontZoomIn = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.fontZoomIn\",\n      label: localize2(1003, \"Increase Editor Font Size\"),\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2) {\n    EditorZoom.setZoomLevel(EditorZoom.getZoomLevel() + 1);\n  }\n};\nvar EditorFontZoomOut = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.fontZoomOut\",\n      label: localize2(1004, \"Decrease Editor Font Size\"),\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2) {\n    EditorZoom.setZoomLevel(EditorZoom.getZoomLevel() - 1);\n  }\n};\nvar EditorFontZoomReset = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.fontZoomReset\",\n      label: localize2(1005, \"Reset Editor Font Size\"),\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2) {\n    EditorZoom.setZoomLevel(0);\n  }\n};\nregisterEditorAction(EditorFontZoomIn);\nregisterEditorAction(EditorFontZoomOut);\nregisterEditorAction(EditorFontZoomReset);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/format/browser/formatActions.js\ninit_arrays();\ninit_cancellation();\ninit_errors();\ninit_keyCodes();\ninit_lifecycle();\ninit_editorExtensions();\ninit_codeEditorService();\ninit_characterClassifier();\ninit_range();\ninit_editorContextKeys();\ninit_editorWorker();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/format/browser/format.js\ninit_arrays();\ninit_cancellation();\ninit_errors();\ninit_iterator();\ninit_linkedList();\ninit_types();\ninit_uri();\ninit_editorState();\ninit_position();\ninit_range();\ninit_selection();\ninit_editorWorker();\ninit_resolverService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/format/browser/formattingEdit.js\ninit_range();\nvar FormattingEdit = class _FormattingEdit {\n  static _handleEolEdits(editor2, edits) {\n    let newEol = void 0;\n    const singleEdits = [];\n    for (const edit2 of edits) {\n      if (typeof edit2.eol === \"number\") {\n        newEol = edit2.eol;\n      }\n      if (edit2.range \u0026\u0026 typeof edit2.text === \"string\") {\n        singleEdits.push(edit2);\n      }\n    }\n    if (typeof newEol === \"number\") {\n      if (editor2.hasModel()) {\n        editor2.getModel().pushEOL(newEol);\n      }\n    }\n    return singleEdits;\n  }\n  static _isFullModelReplaceEdit(editor2, edit2) {\n    if (!editor2.hasModel()) {\n      return false;\n    }\n    const model = editor2.getModel();\n    const editRange = model.validateRange(edit2.range);\n    const fullModelRange = model.getFullModelRange();\n    return fullModelRange.equalsRange(editRange);\n  }\n  static execute(editor2, _edits, addUndoStops) {\n    if (addUndoStops) {\n      editor2.pushUndoStop();\n    }\n    const scrollState = StableEditorScrollState.capture(editor2);\n    const edits = _FormattingEdit._handleEolEdits(editor2, _edits);\n    if (edits.length === 1 \u0026\u0026 _FormattingEdit._isFullModelReplaceEdit(editor2, edits[0])) {\n      editor2.executeEdits(\"formatEditsCommand\", edits.map((edit2) =\u003e EditOperation.replace(Range.lift(edit2.range), edit2.text)));\n    } else {\n      editor2.executeEdits(\"formatEditsCommand\", edits.map((edit2) =\u003e EditOperation.replaceMove(Range.lift(edit2.range), edit2.text)));\n    }\n    if (addUndoStops) {\n      editor2.pushUndoStop();\n    }\n    scrollState.restoreRelativeVerticalPositionOfCursor(editor2);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/format/browser/format.js\ninit_commands();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/extensions/common/extensions.js\nvar ExtensionIdentifier = class {\n  constructor(value) {\n    this.value = value;\n    this._lower = value.toLowerCase();\n  }\n  /**\n   * Gives the value by which to index (for equality).\n   */\n  static toKey(id) {\n    if (typeof id === \"string\") {\n      return id.toLowerCase();\n    }\n    return id._lower;\n  }\n};\nvar ExtensionIdentifierSet = class {\n  constructor(iterable) {\n    this._set = /* @__PURE__ */ new Set();\n    if (iterable) {\n      for (const value of iterable) {\n        this.add(value);\n      }\n    }\n  }\n  add(id) {\n    this._set.add(ExtensionIdentifier.toKey(id));\n  }\n  has(id) {\n    return this._set.has(ExtensionIdentifier.toKey(id));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/format/browser/format.js\ninit_instantiation();\ninit_languageFeatures();\ninit_log();\nfunction getRealAndSyntheticDocumentFormattersOrdered(documentFormattingEditProvider, documentRangeFormattingEditProvider, model) {\n  const result = [];\n  const seen = new ExtensionIdentifierSet();\n  const docFormatter = documentFormattingEditProvider.ordered(model);\n  for (const formatter of docFormatter) {\n    result.push(formatter);\n    if (formatter.extensionId) {\n      seen.add(formatter.extensionId);\n    }\n  }\n  const rangeFormatter = documentRangeFormattingEditProvider.ordered(model);\n  for (const formatter of rangeFormatter) {\n    if (formatter.extensionId) {\n      if (seen.has(formatter.extensionId)) {\n        continue;\n      }\n      seen.add(formatter.extensionId);\n    }\n    result.push({\n      displayName: formatter.displayName,\n      extensionId: formatter.extensionId,\n      provideDocumentFormattingEdits(model2, options2, token) {\n        return formatter.provideDocumentRangeFormattingEdits(model2, model2.getFullModelRange(), options2, token);\n      }\n    });\n  }\n  return result;\n}\nvar FormattingConflicts = class _FormattingConflicts {\n  static {\n    this._selectors = new LinkedList();\n  }\n  static setFormatterSelector(selector) {\n    const remove = _FormattingConflicts._selectors.unshift(selector);\n    return { dispose: remove };\n  }\n  static async select(formatter, document2, mode, kind) {\n    if (formatter.length === 0) {\n      return void 0;\n    }\n    const selector = Iterable.first(_FormattingConflicts._selectors);\n    if (selector) {\n      return await selector(formatter, document2, mode, kind);\n    }\n    return void 0;\n  }\n};\nasync function formatDocumentRangesWithSelectedProvider(accessor, editorOrModel, rangeOrRanges, mode, progress, token, userGesture) {\n  const instaService = accessor.get(IInstantiationService);\n  const { documentRangeFormattingEditProvider: documentRangeFormattingEditProviderRegistry } = accessor.get(ILanguageFeaturesService);\n  const model = isCodeEditor(editorOrModel) ? editorOrModel.getModel() : editorOrModel;\n  const provider = documentRangeFormattingEditProviderRegistry.ordered(model);\n  const selected = await FormattingConflicts.select(\n    provider,\n    model,\n    mode,\n    2\n    /* FormattingKind.Selection */\n  );\n  if (selected) {\n    progress.report(selected);\n    await instaService.invokeFunction(formatDocumentRangesWithProvider, selected, editorOrModel, rangeOrRanges, token, userGesture);\n  }\n}\nasync function formatDocumentRangesWithProvider(accessor, provider, editorOrModel, rangeOrRanges, token, userGesture) {\n  const workerService = accessor.get(IEditorWorkerService);\n  const logService = accessor.get(ILogService);\n  const accessibilitySignalService = accessor.get(IAccessibilitySignalService);\n  let model;\n  let cts;\n  if (isCodeEditor(editorOrModel)) {\n    model = editorOrModel.getModel();\n    cts = new EditorStateCancellationTokenSource(editorOrModel, 1 | 4, void 0, token);\n  } else {\n    model = editorOrModel;\n    cts = new TextModelCancellationTokenSource(editorOrModel, token);\n  }\n  const ranges = [];\n  let len = 0;\n  for (const range2 of asArray(rangeOrRanges).sort(Range.compareRangesUsingStarts)) {\n    if (len \u003e 0 \u0026\u0026 Range.areIntersectingOrTouching(ranges[len - 1], range2)) {\n      ranges[len - 1] = Range.fromPositions(ranges[len - 1].getStartPosition(), range2.getEndPosition());\n    } else {\n      len = ranges.push(range2);\n    }\n  }\n  const computeEdits = async (range2) =\u003e {\n    logService.trace(`[format][provideDocumentRangeFormattingEdits] (request)`, provider.extensionId?.value, range2);\n    const result = await provider.provideDocumentRangeFormattingEdits(model, range2, model.getFormattingOptions(), cts.token) || [];\n    logService.trace(`[format][provideDocumentRangeFormattingEdits] (response)`, provider.extensionId?.value, result);\n    return result;\n  };\n  const hasIntersectingEdit = (a, b) =\u003e {\n    if (!a.length || !b.length) {\n      return false;\n    }\n    const mergedA = a.reduce((acc, val) =\u003e {\n      return Range.plusRange(acc, val.range);\n    }, a[0].range);\n    if (!b.some((x) =\u003e {\n      return Range.intersectRanges(mergedA, x.range);\n    })) {\n      return false;\n    }\n    for (const edit2 of a) {\n      for (const otherEdit of b) {\n        if (Range.intersectRanges(edit2.range, otherEdit.range)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  };\n  const allEdits = [];\n  const rawEditsList = [];\n  try {\n    if (typeof provider.provideDocumentRangesFormattingEdits === \"function\") {\n      logService.trace(`[format][provideDocumentRangeFormattingEdits] (request)`, provider.extensionId?.value, ranges);\n      const result = await provider.provideDocumentRangesFormattingEdits(model, ranges, model.getFormattingOptions(), cts.token) || [];\n      logService.trace(`[format][provideDocumentRangeFormattingEdits] (response)`, provider.extensionId?.value, result);\n      rawEditsList.push(result);\n    } else {\n      for (const range2 of ranges) {\n        if (cts.token.isCancellationRequested) {\n          return true;\n        }\n        rawEditsList.push(await computeEdits(range2));\n      }\n      for (let i2 = 0; i2 \u003c ranges.length; ++i2) {\n        for (let j = i2 + 1; j \u003c ranges.length; ++j) {\n          if (cts.token.isCancellationRequested) {\n            return true;\n          }\n          if (hasIntersectingEdit(rawEditsList[i2], rawEditsList[j])) {\n            const mergedRange = Range.plusRange(ranges[i2], ranges[j]);\n            const edits = await computeEdits(mergedRange);\n            ranges.splice(j, 1);\n            ranges.splice(i2, 1);\n            ranges.push(mergedRange);\n            rawEditsList.splice(j, 1);\n            rawEditsList.splice(i2, 1);\n            rawEditsList.push(edits);\n            i2 = 0;\n            j = 0;\n          }\n        }\n      }\n    }\n    for (const rawEdits of rawEditsList) {\n      if (cts.token.isCancellationRequested) {\n        return true;\n      }\n      const minimalEdits = await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n      if (minimalEdits) {\n        allEdits.push(...minimalEdits);\n      }\n    }\n  } finally {\n    cts.dispose();\n  }\n  if (allEdits.length === 0) {\n    return false;\n  }\n  if (isCodeEditor(editorOrModel)) {\n    FormattingEdit.execute(editorOrModel, allEdits, true);\n    editorOrModel.revealPositionInCenterIfOutsideViewport(\n      editorOrModel.getPosition(),\n      1\n      /* ScrollType.Immediate */\n    );\n  } else {\n    const [{ range: range2 }] = allEdits;\n    const initialSelection = new Selection(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn);\n    model.pushEditOperations([initialSelection], allEdits.map((edit2) =\u003e {\n      return {\n        text: edit2.text,\n        range: Range.lift(edit2.range),\n        forceMoveMarkers: true\n      };\n    }), (undoEdits) =\u003e {\n      for (const { range: range3 } of undoEdits) {\n        if (Range.areIntersectingOrTouching(range3, initialSelection)) {\n          return [new Selection(range3.startLineNumber, range3.startColumn, range3.endLineNumber, range3.endColumn)];\n        }\n      }\n      return null;\n    });\n  }\n  accessibilitySignalService.playSignal(AccessibilitySignal.format, { userGesture });\n  return true;\n}\nasync function formatDocumentWithSelectedProvider(accessor, editorOrModel, mode, progress, token, userGesture) {\n  const instaService = accessor.get(IInstantiationService);\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const model = isCodeEditor(editorOrModel) ? editorOrModel.getModel() : editorOrModel;\n  const provider = getRealAndSyntheticDocumentFormattersOrdered(languageFeaturesService.documentFormattingEditProvider, languageFeaturesService.documentRangeFormattingEditProvider, model);\n  const selected = await FormattingConflicts.select(\n    provider,\n    model,\n    mode,\n    1\n    /* FormattingKind.File */\n  );\n  if (selected) {\n    progress.report(selected);\n    await instaService.invokeFunction(formatDocumentWithProvider, selected, editorOrModel, mode, token, userGesture);\n  }\n}\nasync function formatDocumentWithProvider(accessor, provider, editorOrModel, mode, token, userGesture) {\n  const workerService = accessor.get(IEditorWorkerService);\n  const accessibilitySignalService = accessor.get(IAccessibilitySignalService);\n  let model;\n  let cts;\n  if (isCodeEditor(editorOrModel)) {\n    model = editorOrModel.getModel();\n    cts = new EditorStateCancellationTokenSource(editorOrModel, 1 | 4, void 0, token);\n  } else {\n    model = editorOrModel;\n    cts = new TextModelCancellationTokenSource(editorOrModel, token);\n  }\n  let edits;\n  try {\n    const rawEdits = await provider.provideDocumentFormattingEdits(model, model.getFormattingOptions(), cts.token);\n    edits = await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n    if (cts.token.isCancellationRequested) {\n      return true;\n    }\n  } finally {\n    cts.dispose();\n  }\n  if (!edits || edits.length === 0) {\n    return false;\n  }\n  if (isCodeEditor(editorOrModel)) {\n    FormattingEdit.execute(\n      editorOrModel,\n      edits,\n      mode !== 2\n      /* FormattingMode.Silent */\n    );\n    if (mode !== 2) {\n      editorOrModel.revealPositionInCenterIfOutsideViewport(\n        editorOrModel.getPosition(),\n        1\n        /* ScrollType.Immediate */\n      );\n    }\n  } else {\n    const [{ range: range2 }] = edits;\n    const initialSelection = new Selection(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn);\n    model.pushEditOperations([initialSelection], edits.map((edit2) =\u003e {\n      return {\n        text: edit2.text,\n        range: Range.lift(edit2.range),\n        forceMoveMarkers: true\n      };\n    }), (undoEdits) =\u003e {\n      for (const { range: range3 } of undoEdits) {\n        if (Range.areIntersectingOrTouching(range3, initialSelection)) {\n          return [new Selection(range3.startLineNumber, range3.startColumn, range3.endLineNumber, range3.endColumn)];\n        }\n      }\n      return null;\n    });\n  }\n  accessibilitySignalService.playSignal(AccessibilitySignal.format, { userGesture });\n  return true;\n}\nasync function getDocumentRangeFormattingEditsUntilResult(workerService, languageFeaturesService, model, range2, options2, token) {\n  const providers = languageFeaturesService.documentRangeFormattingEditProvider.ordered(model);\n  for (const provider of providers) {\n    const rawEdits = await Promise.resolve(provider.provideDocumentRangeFormattingEdits(model, range2, options2, token)).catch(onUnexpectedExternalError);\n    if (isNonEmptyArray(rawEdits)) {\n      return await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n    }\n  }\n  return void 0;\n}\nasync function getDocumentFormattingEditsUntilResult(workerService, languageFeaturesService, model, options2, token) {\n  const providers = getRealAndSyntheticDocumentFormattersOrdered(languageFeaturesService.documentFormattingEditProvider, languageFeaturesService.documentRangeFormattingEditProvider, model);\n  for (const provider of providers) {\n    const rawEdits = await Promise.resolve(provider.provideDocumentFormattingEdits(model, options2, token)).catch(onUnexpectedExternalError);\n    if (isNonEmptyArray(rawEdits)) {\n      return await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n    }\n  }\n  return void 0;\n}\nfunction getOnTypeFormattingEdits(workerService, languageFeaturesService, model, position, ch, options2, token) {\n  const providers = languageFeaturesService.onTypeFormattingEditProvider.ordered(model);\n  if (providers.length === 0) {\n    return Promise.resolve(void 0);\n  }\n  if (providers[0].autoFormatTriggerCharacters.indexOf(ch) \u003c 0) {\n    return Promise.resolve(void 0);\n  }\n  return Promise.resolve(providers[0].provideOnTypeFormattingEdits(model, position, ch, options2, token)).catch(onUnexpectedExternalError).then((edits) =\u003e {\n    return workerService.computeMoreMinimalEdits(model.uri, edits);\n  });\n}\nCommandsRegistry.registerCommand(\"_executeFormatRangeProvider\", async function(accessor, ...args) {\n  const [resource, range2, options2] = args;\n  assertType(URI.isUri(resource));\n  assertType(Range.isIRange(range2));\n  const resolverService = accessor.get(ITextModelService);\n  const workerService = accessor.get(IEditorWorkerService);\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const reference = await resolverService.createModelReference(resource);\n  try {\n    return getDocumentRangeFormattingEditsUntilResult(workerService, languageFeaturesService, reference.object.textEditorModel, Range.lift(range2), options2, CancellationToken.None);\n  } finally {\n    reference.dispose();\n  }\n});\nCommandsRegistry.registerCommand(\"_executeFormatDocumentProvider\", async function(accessor, ...args) {\n  const [resource, options2] = args;\n  assertType(URI.isUri(resource));\n  const resolverService = accessor.get(ITextModelService);\n  const workerService = accessor.get(IEditorWorkerService);\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const reference = await resolverService.createModelReference(resource);\n  try {\n    return getDocumentFormattingEditsUntilResult(workerService, languageFeaturesService, reference.object.textEditorModel, options2, CancellationToken.None);\n  } finally {\n    reference.dispose();\n  }\n});\nCommandsRegistry.registerCommand(\"_executeFormatOnTypeProvider\", async function(accessor, ...args) {\n  const [resource, position, ch, options2] = args;\n  assertType(URI.isUri(resource));\n  assertType(Position.isIPosition(position));\n  assertType(typeof ch === \"string\");\n  const resolverService = accessor.get(ITextModelService);\n  const workerService = accessor.get(IEditorWorkerService);\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const reference = await resolverService.createModelReference(resource);\n  try {\n    return getOnTypeFormattingEdits(workerService, languageFeaturesService, reference.object.textEditorModel, Position.lift(position), ch, options2, CancellationToken.None);\n  } finally {\n    reference.dispose();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/format/browser/formatActions.js\ninit_nls();\ninit_commands();\ninit_contextkey();\ninit_instantiation();\nvar __decorate89 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param83 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar FormatOnType = class FormatOnType2 {\n  static {\n    this.ID = \"editor.contrib.autoFormat\";\n  }\n  constructor(_editor, _languageFeaturesService, _workerService, _accessibilitySignalService) {\n    this._editor = _editor;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._workerService = _workerService;\n    this._accessibilitySignalService = _accessibilitySignalService;\n    this._disposables = new DisposableStore();\n    this._sessionDisposables = new DisposableStore();\n    this._disposables.add(_languageFeaturesService.onTypeFormattingEditProvider.onDidChange(this._update, this));\n    this._disposables.add(_editor.onDidChangeModel(() =\u003e this._update()));\n    this._disposables.add(_editor.onDidChangeModelLanguage(() =\u003e this._update()));\n    this._disposables.add(_editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        65\n        /* EditorOption.formatOnType */\n      )) {\n        this._update();\n      }\n    }));\n    this._update();\n  }\n  dispose() {\n    this._disposables.dispose();\n    this._sessionDisposables.dispose();\n  }\n  _update() {\n    this._sessionDisposables.clear();\n    if (!this._editor.getOption(\n      65\n      /* EditorOption.formatOnType */\n    )) {\n      return;\n    }\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    const [support] = this._languageFeaturesService.onTypeFormattingEditProvider.ordered(model);\n    if (!support || !support.autoFormatTriggerCharacters) {\n      return;\n    }\n    const triggerChars = new CharacterSet();\n    for (const ch of support.autoFormatTriggerCharacters) {\n      triggerChars.add(ch.charCodeAt(0));\n    }\n    this._sessionDisposables.add(this._editor.onDidType((text2) =\u003e {\n      const lastCharCode = text2.charCodeAt(text2.length - 1);\n      if (triggerChars.has(lastCharCode)) {\n        this._trigger(String.fromCharCode(lastCharCode));\n      }\n    }));\n  }\n  _trigger(ch) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    if (this._editor.getSelections().length \u003e 1 || !this._editor.getSelection().isEmpty()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    const position = this._editor.getPosition();\n    const cts = new CancellationTokenSource();\n    const unbind = this._editor.onDidChangeModelContent((e) =\u003e {\n      if (e.isFlush) {\n        cts.cancel();\n        unbind.dispose();\n        return;\n      }\n      for (let i2 = 0, len = e.changes.length; i2 \u003c len; i2++) {\n        const change = e.changes[i2];\n        if (change.range.endLineNumber \u003c= position.lineNumber) {\n          cts.cancel();\n          unbind.dispose();\n          return;\n        }\n      }\n    });\n    getOnTypeFormattingEdits(this._workerService, this._languageFeaturesService, model, position, ch, model.getFormattingOptions(), cts.token).then((edits) =\u003e {\n      if (cts.token.isCancellationRequested) {\n        return;\n      }\n      if (isNonEmptyArray(edits)) {\n        this._accessibilitySignalService.playSignal(AccessibilitySignal.format, { userGesture: false });\n        FormattingEdit.execute(this._editor, edits, true);\n      }\n    }).finally(() =\u003e {\n      unbind.dispose();\n    });\n  }\n};\nFormatOnType = __decorate89([\n  __param83(1, ILanguageFeaturesService),\n  __param83(2, IEditorWorkerService),\n  __param83(3, IAccessibilitySignalService)\n], FormatOnType);\nvar FormatOnPaste = class FormatOnPaste2 {\n  static {\n    this.ID = \"editor.contrib.formatOnPaste\";\n  }\n  constructor(editor2, _languageFeaturesService, _instantiationService) {\n    this.editor = editor2;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._instantiationService = _instantiationService;\n    this._callOnDispose = new DisposableStore();\n    this._callOnModel = new DisposableStore();\n    this._callOnDispose.add(editor2.onDidChangeConfiguration(() =\u003e this._update()));\n    this._callOnDispose.add(editor2.onDidChangeModel(() =\u003e this._update()));\n    this._callOnDispose.add(editor2.onDidChangeModelLanguage(() =\u003e this._update()));\n    this._callOnDispose.add(_languageFeaturesService.documentRangeFormattingEditProvider.onDidChange(this._update, this));\n  }\n  dispose() {\n    this._callOnDispose.dispose();\n    this._callOnModel.dispose();\n  }\n  _update() {\n    this._callOnModel.clear();\n    if (!this.editor.getOption(\n      64\n      /* EditorOption.formatOnPaste */\n    )) {\n      return;\n    }\n    if (!this.editor.hasModel()) {\n      return;\n    }\n    if (!this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())) {\n      return;\n    }\n    this._callOnModel.add(this.editor.onDidPaste(({ range: range2 }) =\u003e this._trigger(range2)));\n  }\n  _trigger(range2) {\n    if (!this.editor.hasModel()) {\n      return;\n    }\n    if (this.editor.getSelections().length \u003e 1) {\n      return;\n    }\n    this._instantiationService.invokeFunction(formatDocumentRangesWithSelectedProvider, this.editor, range2, 2, Progress.None, CancellationToken.None, false).catch(onUnexpectedError);\n  }\n};\nFormatOnPaste = __decorate89([\n  __param83(1, ILanguageFeaturesService),\n  __param83(2, IInstantiationService)\n], FormatOnPaste);\nvar FormatDocumentAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.formatDocument\",\n      label: localize2(1006, \"Format Document\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.notInCompositeEditor, EditorContextKeys.writable, EditorContextKeys.hasDocumentFormattingProvider),\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 1024 | 512 | 36,\n        linux: {\n          primary: 2048 | 1024 | 39\n          /* KeyCode.KeyI */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      contextMenuOpts: {\n        group: \"1_modification\",\n        order: 1.3\n      }\n    });\n  }\n  async run(accessor, editor2) {\n    if (editor2.hasModel()) {\n      const instaService = accessor.get(IInstantiationService);\n      const progressService = accessor.get(IEditorProgressService);\n      await progressService.showWhile(instaService.invokeFunction(formatDocumentWithSelectedProvider, editor2, 1, Progress.None, CancellationToken.None, true), 250);\n    }\n  }\n};\nvar FormatSelectionAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.formatSelection\",\n      label: localize2(1007, \"Format Selection\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasDocumentSelectionFormattingProvider),\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 36\n          /* KeyCode.KeyF */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      contextMenuOpts: {\n        when: EditorContextKeys.hasNonEmptySelection,\n        group: \"1_modification\",\n        order: 1.31\n      }\n    });\n  }\n  async run(accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const instaService = accessor.get(IInstantiationService);\n    const model = editor2.getModel();\n    const ranges = editor2.getSelections().map((range2) =\u003e {\n      return range2.isEmpty() ? new Range(range2.startLineNumber, 1, range2.startLineNumber, model.getLineMaxColumn(range2.startLineNumber)) : range2;\n    });\n    const progressService = accessor.get(IEditorProgressService);\n    await progressService.showWhile(instaService.invokeFunction(formatDocumentRangesWithSelectedProvider, editor2, ranges, 1, Progress.None, CancellationToken.None, true), 250);\n  }\n};\nregisterEditorContribution(\n  FormatOnType.ID,\n  FormatOnType,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorContribution(\n  FormatOnPaste.ID,\n  FormatOnPaste,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorAction(FormatDocumentAction);\nregisterEditorAction(FormatSelectionAction);\nCommandsRegistry.registerCommand(\"editor.action.format\", async (accessor) =\u003e {\n  const editor2 = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n  if (!editor2 || !editor2.hasModel()) {\n    return;\n  }\n  const commandService = accessor.get(ICommandService);\n  if (editor2.getSelection().isEmpty()) {\n    await commandService.executeCommand(\"editor.action.formatDocument\");\n  } else {\n    await commandService.executeCommand(\"editor.action.formatSelection\");\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/documentSymbols/browser/documentSymbols.js\ninit_cancellation();\ninit_types();\ninit_uri();\ninit_resolverService();\ninit_outlineModel();\ninit_commands();\nCommandsRegistry.registerCommand(\"_executeDocumentSymbolProvider\", async function(accessor, ...args) {\n  const [resource] = args;\n  assertType(URI.isUri(resource));\n  const outlineService = accessor.get(IOutlineModelService);\n  const modelService = accessor.get(ITextModelService);\n  const reference = await modelService.createModelReference(resource);\n  try {\n    return (await outlineService.getOrCreate(reference.object.textEditorModel, CancellationToken.None)).getTopLevelSymbols();\n  } finally {\n    reference.dispose();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/accessibility/browser/accessibleViewRegistry.js\nvar AccessibleViewRegistry = new class AccessibleViewRegistry2 {\n  constructor() {\n    this._implementations = [];\n  }\n  register(implementation) {\n    this._implementations.push(implementation);\n    return {\n      dispose: () =\u003e {\n        const idx = this._implementations.indexOf(implementation);\n        if (idx !== -1) {\n          this._implementations.splice(idx, 1);\n        }\n      }\n    };\n  }\n  getImplementations() {\n    return this._implementations;\n  }\n}();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js\ninit_actions2();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/observable/common/wrapInHotClass.js\ninit_observable();\ninit_instantiation();\nvar __decorate91 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param85 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nfunction hotClassGetOriginalInstance(value) {\n  if (value instanceof BaseClass) {\n    return value._instance;\n  }\n  return value;\n}\nvar BaseClass = class {\n  constructor(instantiationService) {\n    this.instantiationService = instantiationService;\n  }\n  init(...params) {\n  }\n};\nfunction createWrapper(clazz, B) {\n  return class ReloadableWrapper extends B {\n    constructor() {\n      super(...arguments);\n      this._autorun = void 0;\n    }\n    init(...params) {\n      this._autorun = autorunWithStore((reader, store) =\u003e {\n        const clazz_ = clazz.read(reader);\n        this._instance = store.add(this.instantiationService.createInstance(clazz_, ...params));\n      });\n    }\n    dispose() {\n      this._autorun?.dispose();\n    }\n  };\n}\nfunction wrapInHotClass1(clazz) {\n  return !isHotReloadEnabled() ? clazz.get() : createWrapper(clazz, BaseClass1);\n}\nvar BaseClass1 = class BaseClass12 extends BaseClass {\n  constructor(param1, i2) {\n    super(i2);\n    this.init(param1);\n  }\n};\nBaseClass1 = __decorate91([\n  __param85(1, IInstantiationService)\n], BaseClass1);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js\ninit_observable();\ninit_strings();\ninit_nls();\ninit_actions2();\ninit_configuration();\ninit_contextkey();\ninit_keybindingsRegistry();\ninit_editorExtensions();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggest.js\ninit_cancellation();\ninit_errors();\ninit_filters();\ninit_lifecycle();\ninit_stopwatch();\ninit_types();\ninit_uri();\ninit_position();\ninit_range();\ninit_resolverService();\ninit_nls();\ninit_actions2();\ninit_commands();\ninit_contextkey();\ninit_languageFeatures();\nvar Context = {\n  Visible: historyNavigationVisible,\n  HasFocusedSuggestion: new RawContextKey(\"suggestWidgetHasFocusedSuggestion\", false, localize(1437, \"Whether any suggestion is focused\")),\n  DetailsVisible: new RawContextKey(\"suggestWidgetDetailsVisible\", false, localize(1438, \"Whether suggestion details are visible\")),\n  MultipleSuggestions: new RawContextKey(\"suggestWidgetMultipleSuggestions\", false, localize(1439, \"Whether there are multiple suggestions to pick from\")),\n  MakesTextEdit: new RawContextKey(\"suggestionMakesTextEdit\", true, localize(1440, \"Whether inserting the current suggestion yields in a change or has everything already been typed\")),\n  AcceptSuggestionsOnEnter: new RawContextKey(\"acceptSuggestionOnEnter\", true, localize(1441, \"Whether suggestions are inserted when pressing Enter\")),\n  HasInsertAndReplaceRange: new RawContextKey(\"suggestionHasInsertAndReplaceRange\", false, localize(1442, \"Whether the current suggestion has insert and replace behaviour\")),\n  InsertMode: new RawContextKey(\"suggestionInsertMode\", void 0, { type: \"string\", description: localize(1443, \"Whether the default behaviour is to insert or replace\") }),\n  CanResolve: new RawContextKey(\"suggestionCanResolve\", false, localize(1444, \"Whether the current suggestion supports to resolve further details\"))\n};\nvar suggestWidgetStatusbarMenu = new MenuId(\"suggestWidgetStatusBar\");\nvar CompletionItem = class {\n  constructor(position, completion, container, provider) {\n    this.position = position;\n    this.completion = completion;\n    this.container = container;\n    this.provider = provider;\n    this.isInvalid = false;\n    this.score = FuzzyScore.Default;\n    this.distance = 0;\n    this.textLabel = typeof completion.label === \"string\" ? completion.label : completion.label?.label;\n    this.labelLow = this.textLabel.toLowerCase();\n    this.isInvalid = !this.textLabel;\n    this.sortTextLow = completion.sortText \u0026\u0026 completion.sortText.toLowerCase();\n    this.filterTextLow = completion.filterText \u0026\u0026 completion.filterText.toLowerCase();\n    this.extensionId = completion.extensionId;\n    if (Range.isIRange(completion.range)) {\n      this.editStart = new Position(completion.range.startLineNumber, completion.range.startColumn);\n      this.editInsertEnd = new Position(completion.range.endLineNumber, completion.range.endColumn);\n      this.editReplaceEnd = new Position(completion.range.endLineNumber, completion.range.endColumn);\n      this.isInvalid = this.isInvalid || Range.spansMultipleLines(completion.range) || completion.range.startLineNumber !== position.lineNumber;\n    } else {\n      this.editStart = new Position(completion.range.insert.startLineNumber, completion.range.insert.startColumn);\n      this.editInsertEnd = new Position(completion.range.insert.endLineNumber, completion.range.insert.endColumn);\n      this.editReplaceEnd = new Position(completion.range.replace.endLineNumber, completion.range.replace.endColumn);\n      this.isInvalid = this.isInvalid || Range.spansMultipleLines(completion.range.insert) || Range.spansMultipleLines(completion.range.replace) || completion.range.insert.startLineNumber !== position.lineNumber || completion.range.replace.startLineNumber !== position.lineNumber || completion.range.insert.startColumn !== completion.range.replace.startColumn;\n    }\n    if (typeof provider.resolveCompletionItem !== \"function\") {\n      this._resolveCache = Promise.resolve();\n      this._resolveDuration = 0;\n    }\n  }\n  // ---- resolving\n  get isResolved() {\n    return this._resolveDuration !== void 0;\n  }\n  get resolveDuration() {\n    return this._resolveDuration !== void 0 ? this._resolveDuration : -1;\n  }\n  async resolve(token) {\n    if (!this._resolveCache) {\n      const sub = token.onCancellationRequested(() =\u003e {\n        this._resolveCache = void 0;\n        this._resolveDuration = void 0;\n      });\n      const sw = new StopWatch(true);\n      this._resolveCache = Promise.resolve(this.provider.resolveCompletionItem(this.completion, token)).then((value) =\u003e {\n        Object.assign(this.completion, value);\n        this._resolveDuration = sw.elapsed();\n      }, (err) =\u003e {\n        if (isCancellationError(err)) {\n          this._resolveCache = void 0;\n          this._resolveDuration = void 0;\n        }\n      }).finally(() =\u003e {\n        sub.dispose();\n      });\n    }\n    return this._resolveCache;\n  }\n};\nvar CompletionOptions = class _CompletionOptions {\n  static {\n    this.default = new _CompletionOptions();\n  }\n  constructor(snippetSortOrder = 2, kindFilter = /* @__PURE__ */ new Set(), providerFilter = /* @__PURE__ */ new Set(), providerItemsToReuse = /* @__PURE__ */ new Map(), showDeprecated = true) {\n    this.snippetSortOrder = snippetSortOrder;\n    this.kindFilter = kindFilter;\n    this.providerFilter = providerFilter;\n    this.providerItemsToReuse = providerItemsToReuse;\n    this.showDeprecated = showDeprecated;\n  }\n};\nvar _snippetSuggestSupport;\nfunction getSnippetSuggestSupport() {\n  return _snippetSuggestSupport;\n}\nvar CompletionItemModel = class {\n  constructor(items, needsClipboard, durations, disposable) {\n    this.items = items;\n    this.needsClipboard = needsClipboard;\n    this.durations = durations;\n    this.disposable = disposable;\n  }\n};\nasync function provideSuggestionItems(registry, model, position, options2 = CompletionOptions.default, context = {\n  triggerKind: 0\n  /* languages.CompletionTriggerKind.Invoke */\n}, token = CancellationToken.None) {\n  const sw = new StopWatch();\n  position = position.clone();\n  const word = model.getWordAtPosition(position);\n  const defaultReplaceRange = word ? new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn) : Range.fromPositions(position);\n  const defaultRange = { replace: defaultReplaceRange, insert: defaultReplaceRange.setEndPosition(position.lineNumber, position.column) };\n  const result = [];\n  const disposables = new DisposableStore();\n  const durations = [];\n  let needsClipboard = false;\n  const onCompletionList = (provider, container, sw2) =\u003e {\n    let didAddResult = false;\n    if (!container) {\n      return didAddResult;\n    }\n    for (const suggestion of container.suggestions) {\n      if (!options2.kindFilter.has(suggestion.kind)) {\n        if (!options2.showDeprecated \u0026\u0026 suggestion?.tags?.includes(\n          1\n          /* languages.CompletionItemTag.Deprecated */\n        )) {\n          continue;\n        }\n        if (!suggestion.range) {\n          suggestion.range = defaultRange;\n        }\n        if (!suggestion.sortText) {\n          suggestion.sortText = typeof suggestion.label === \"string\" ? suggestion.label : suggestion.label.label;\n        }\n        if (!needsClipboard \u0026\u0026 suggestion.insertTextRules \u0026\u0026 suggestion.insertTextRules \u0026 4) {\n          needsClipboard = SnippetParser.guessNeedsClipboard(suggestion.insertText);\n        }\n        result.push(new CompletionItem(position, suggestion, container, provider));\n        didAddResult = true;\n      }\n    }\n    if (isDisposable(container)) {\n      disposables.add(container);\n    }\n    durations.push({\n      providerName: provider._debugDisplayName ?? \"unknown_provider\",\n      elapsedProvider: container.duration ?? -1,\n      elapsedOverall: sw2.elapsed()\n    });\n    return didAddResult;\n  };\n  const snippetCompletions = (async () =\u003e {\n    if (!_snippetSuggestSupport || options2.kindFilter.has(\n      28\n      /* languages.CompletionItemKind.Snippet */\n    )) {\n      return;\n    }\n    const reuseItems = options2.providerItemsToReuse.get(_snippetSuggestSupport);\n    if (reuseItems) {\n      reuseItems.forEach((item) =\u003e result.push(item));\n      return;\n    }\n    if (options2.providerFilter.size \u003e 0 \u0026\u0026 !options2.providerFilter.has(_snippetSuggestSupport)) {\n      return;\n    }\n    const sw2 = new StopWatch();\n    const list2 = await _snippetSuggestSupport.provideCompletionItems(model, position, context, token);\n    onCompletionList(_snippetSuggestSupport, list2, sw2);\n  })();\n  for (const providerGroup of registry.orderedGroups(model)) {\n    let didAddResult = false;\n    await Promise.all(providerGroup.map(async (provider) =\u003e {\n      if (options2.providerItemsToReuse.has(provider)) {\n        const items = options2.providerItemsToReuse.get(provider);\n        items.forEach((item) =\u003e result.push(item));\n        didAddResult = didAddResult || items.length \u003e 0;\n        return;\n      }\n      if (options2.providerFilter.size \u003e 0 \u0026\u0026 !options2.providerFilter.has(provider)) {\n        return;\n      }\n      try {\n        const sw2 = new StopWatch();\n        const list2 = await provider.provideCompletionItems(model, position, context, token);\n        didAddResult = onCompletionList(provider, list2, sw2) || didAddResult;\n      } catch (err) {\n        onUnexpectedExternalError(err);\n      }\n    }));\n    if (didAddResult || token.isCancellationRequested) {\n      break;\n    }\n  }\n  await snippetCompletions;\n  if (token.isCancellationRequested) {\n    disposables.dispose();\n    return Promise.reject(new CancellationError());\n  }\n  return new CompletionItemModel(result.sort(getSuggestionComparator(options2.snippetSortOrder)), needsClipboard, { entries: durations, elapsed: sw.elapsed() }, disposables);\n}\nfunction defaultComparator(a, b) {\n  if (a.sortTextLow \u0026\u0026 b.sortTextLow) {\n    if (a.sortTextLow \u003c b.sortTextLow) {\n      return -1;\n    } else if (a.sortTextLow \u003e b.sortTextLow) {\n      return 1;\n    }\n  }\n  if (a.textLabel \u003c b.textLabel) {\n    return -1;\n  } else if (a.textLabel \u003e b.textLabel) {\n    return 1;\n  }\n  return a.completion.kind - b.completion.kind;\n}\nfunction snippetUpComparator(a, b) {\n  if (a.completion.kind !== b.completion.kind) {\n    if (a.completion.kind === 28) {\n      return -1;\n    } else if (b.completion.kind === 28) {\n      return 1;\n    }\n  }\n  return defaultComparator(a, b);\n}\nfunction snippetDownComparator(a, b) {\n  if (a.completion.kind !== b.completion.kind) {\n    if (a.completion.kind === 28) {\n      return 1;\n    } else if (b.completion.kind === 28) {\n      return -1;\n    }\n  }\n  return defaultComparator(a, b);\n}\nvar _snippetComparators = /* @__PURE__ */ new Map();\n_snippetComparators.set(0, snippetUpComparator);\n_snippetComparators.set(2, snippetDownComparator);\n_snippetComparators.set(1, defaultComparator);\nfunction getSuggestionComparator(snippetConfig) {\n  return _snippetComparators.get(snippetConfig);\n}\nCommandsRegistry.registerCommand(\"_executeCompletionItemProvider\", async (accessor, ...args) =\u003e {\n  const [uri, position, triggerCharacter, maxItemsToResolve] = args;\n  assertType(URI.isUri(uri));\n  assertType(Position.isIPosition(position));\n  assertType(typeof triggerCharacter === \"string\" || !triggerCharacter);\n  assertType(typeof maxItemsToResolve === \"number\" || !maxItemsToResolve);\n  const { completionProvider } = accessor.get(ILanguageFeaturesService);\n  const ref = await accessor.get(ITextModelService).createModelReference(uri);\n  try {\n    const result = {\n      incomplete: false,\n      suggestions: []\n    };\n    const resolving = [];\n    const actualPosition = ref.object.textEditorModel.validatePosition(position);\n    const completions = await provideSuggestionItems(completionProvider, ref.object.textEditorModel, actualPosition, void 0, {\n      triggerCharacter: triggerCharacter ?? void 0,\n      triggerKind: triggerCharacter ? 1 : 0\n      /* languages.CompletionTriggerKind.Invoke */\n    });\n    for (const item of completions.items) {\n      if (resolving.length \u003c (maxItemsToResolve ?? 0)) {\n        resolving.push(item.resolve(CancellationToken.None));\n      }\n      result.incomplete = result.incomplete || item.container.incomplete;\n      result.suggestions.push(item.completion);\n    }\n    try {\n      await Promise.all(resolving);\n      return result;\n    } finally {\n      setTimeout(() =\u003e completions.disposable.dispose(), 100);\n    }\n  } finally {\n    ref.dispose();\n  }\n});\nfunction showSimpleSuggestions(editor2, provider) {\n  editor2.getContribution(\"editor.contrib.suggestController\")?.triggerSuggest((/* @__PURE__ */ new Set()).add(provider), void 0, true);\n}\nvar QuickSuggestionsOptions = class {\n  static isAllOff(config) {\n    return config.other === \"off\" \u0026\u0026 config.comments === \"off\" \u0026\u0026 config.strings === \"off\";\n  }\n  static isAllOn(config) {\n    return config.other === \"on\" \u0026\u0026 config.comments === \"on\" \u0026\u0026 config.strings === \"on\";\n  }\n  static valueFor(config, tokenType) {\n    switch (tokenType) {\n      case 1:\n        return config.comments;\n      case 2:\n        return config.strings;\n      default:\n        return config.other;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js\ninit_contextkey();\ninit_nls();\ninit_nls();\nvar InlineCompletionContextKeys = class {\n  static {\n    this.inlineSuggestionVisible = new RawContextKey(\"inlineSuggestionVisible\", false, localize(1181, \"Whether an inline suggestion is visible\"));\n  }\n  static {\n    this.inlineSuggestionHasIndentation = new RawContextKey(\"inlineSuggestionHasIndentation\", false, localize(1182, \"Whether the inline suggestion starts with whitespace\"));\n  }\n  static {\n    this.inlineSuggestionHasIndentationLessThanTabSize = new RawContextKey(\"inlineSuggestionHasIndentationLessThanTabSize\", true, localize(1183, \"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab\"));\n  }\n  static {\n    this.suppressSuggestions = new RawContextKey(\"inlineSuggestionSuppressSuggestions\", void 0, localize(1184, \"Whether suggestions should be suppressed for the current suggestion\"));\n  }\n  static {\n    this.cursorBeforeGhostText = new RawContextKey(\"cursorBeforeGhostText\", false, localize(1185, \"Whether the cursor is at ghost text\"));\n  }\n  static {\n    this.cursorInIndentation = new RawContextKey(\"cursorInIndentation\", false, localize(1186, \"Whether the cursor is in indentation\"));\n  }\n  static {\n    this.hasSelection = new RawContextKey(\"editor.hasSelection\", false, localize(1187, \"Whether the editor has a selection\"));\n  }\n  static {\n    this.cursorAtInlineEdit = new RawContextKey(\"cursorAtInlineEdit\", false, localize(1188, \"Whether the cursor is at an inline edit\"));\n  }\n  static {\n    this.inlineEditVisible = new RawContextKey(\"inlineEditIsVisible\", false, localize(1189, \"Whether an inline edit is visible\"));\n  }\n  static {\n    this.tabShouldJumpToInlineEdit = new RawContextKey(\"tabShouldJumpToInlineEdit\", false, localize(1190, \"Whether tab should jump to an inline edit.\"));\n  }\n  static {\n    this.tabShouldAcceptInlineEdit = new RawContextKey(\"tabShouldAcceptInlineEdit\", false, localize(1191, \"Whether tab should accept the inline edit.\"));\n  }\n  static {\n    this.inInlineEditsPreviewEditor = new RawContextKey(\"inInlineEditsPreviewEditor\", true, localize(1192, \"Whether the current code editor is showing an inline edits preview\"));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js\ninit_async();\ninit_cancellation();\ninit_lifecycle();\ninit_observable();\ninit_resources();\ninit_types();\ninit_nls();\ninit_commands();\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\ninit_observableCodeEditor();\ninit_position();\ninit_languageFeatureDebounce();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/changeRecorder.js\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js\ninit_lifecycle();\ninit_observable();\ninit_contextkey();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/dataChannel/common/dataChannel.js\ninit_instantiation();\nvar IDataChannelService = createDecorator(\"dataChannelService\");\nvar NullDataChannelService = class {\n  getDataChannel(_channelId) {\n    return {\n      sendData: () =\u003e {\n      }\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/structuredLogger.js\nvar __decorate92 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param86 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StructuredLogger_1;\nfunction formatRecordableLogEntry(entry) {\n  return entry.sourceId + \" @@ \" + JSON.stringify({ ...entry, modelUri: entry.modelUri?.toString(), sourceId: void 0 });\n}\nvar StructuredLogger = StructuredLogger_1 = class StructuredLogger2 extends Disposable {\n  static cast() {\n    return this;\n  }\n  constructor(_key, _contextKeyService, _dataChannelService) {\n    super();\n    this._key = _key;\n    this._contextKeyService = _contextKeyService;\n    this._dataChannelService = _dataChannelService;\n    this._isEnabledContextKeyValue = observableContextKey(\"structuredLogger.enabled:\" + this._key, this._contextKeyService).recomputeInitiallyAndOnChange(this._store);\n    this.isEnabled = this._isEnabledContextKeyValue.map((v) =\u003e v !== void 0);\n  }\n  log(data) {\n    const enabled = this._isEnabledContextKeyValue.get();\n    if (!enabled) {\n      return false;\n    }\n    this._dataChannelService.getDataChannel(\"structuredLogger:\" + this._key).sendData(data);\n    return true;\n  }\n};\nStructuredLogger = StructuredLogger_1 = __decorate92([\n  __param86(1, IContextKeyService),\n  __param86(2, IDataChannelService)\n], StructuredLogger);\nfunction observableContextKey(key, contextKeyService) {\n  return observableFromEvent(contextKeyService.onDidChangeContext, () =\u003e contextKeyService.getContextKeyValue(key));\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/changeRecorder.js\nvar __decorate93 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param87 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar TextModelChangeRecorder = class TextModelChangeRecorder2 extends Disposable {\n  constructor(_editor, _instantiationService, _loggerService) {\n    super();\n    this._editor = _editor;\n    this._instantiationService = _instantiationService;\n    this._loggerService = _loggerService;\n    this._structuredLogger = this._register(this._instantiationService.createInstance(StructuredLogger.cast(), \"editor.inlineSuggest.logChangeReason.commandId\"));\n    const logger = this._loggerService?.createLogger(\"textModelChanges\", { hidden: false, name: \"Text Model Changes Reason\" });\n    const loggingLevel = observableFromEvent(this, logger.onDidChangeLogLevel, () =\u003e logger.getLevel());\n    this._register(autorun((reader) =\u003e {\n      if (!canLog(loggingLevel.read(reader), LogLevel.Trace)) {\n        return;\n      }\n      reader.store.add(this._editor.onDidChangeModelContent((e) =\u003e {\n        if (this._editor.getModel()?.uri.scheme === \"output\") {\n          return;\n        }\n        logger.trace(\"onDidChangeModelContent: \" + e.detailedReasons.map((r) =\u003e r.toKey(Number.MAX_VALUE)).join(\", \"));\n      }));\n    }));\n    this._register(autorun((reader) =\u003e {\n      if (!(this._editor instanceof CodeEditorWidget)) {\n        return;\n      }\n      if (!this._structuredLogger.isEnabled.read(reader)) {\n        return;\n      }\n      reader.store.add(this._editor.onDidChangeModelContent((e) =\u003e {\n        const tm = this._editor.getModel();\n        if (!tm) {\n          return;\n        }\n        const reason = e.detailedReasons[0];\n        const data = {\n          ...reason.metadata,\n          sourceId: \"TextModel.setChangeReason\",\n          source: reason.metadata.source,\n          time: Date.now(),\n          modelUri: tm.uri,\n          modelVersion: tm.getVersionId()\n        };\n        setTimeout(() =\u003e {\n          this._structuredLogger.log(data);\n        }, 0);\n      }));\n    }));\n  }\n};\nTextModelChangeRecorder = __decorate93([\n  __param87(1, IInstantiationService),\n  __param87(2, ILoggerService)\n], TextModelChangeRecorder);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js\ninit_arraysFind();\ninit_equals();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_strings();\ninit_types();\ninit_commands();\ninit_instantiation();\ninit_observableCodeEditor();\ninit_cursorColumns();\ninit_lineRange();\ninit_position();\ninit_range();\ninit_selection();\ninit_textLength();\ninit_languages();\ninit_languageConfigurationRegistry();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/snippet/browser/snippetController2.js\ninit_lifecycle();\ninit_types();\ninit_editorExtensions();\ninit_position();\ninit_editorContextKeys();\ninit_languageConfigurationRegistry();\ninit_languageFeatures();\ninit_nls();\ninit_contextkey();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/snippet/browser/snippetSession.js\ninit_arrays();\ninit_lifecycle();\ninit_strings();\ninit_range();\ninit_selection();\ninit_languageConfigurationRegistry();\ninit_textModel();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/labels.js\ninit_extpath();\ninit_platform();\nfunction normalizeDriveLetter(path, isWindowsOS = isWindows) {\n  if (hasDriveLetter(path, isWindowsOS)) {\n    return path.charAt(0).toUpperCase() + path.slice(1);\n  }\n  return path;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/snippet/browser/snippetVariables.js\ninit_path();\ninit_resources();\ninit_strings();\ninit_uuid();\ninit_languageConfigurationRegistry();\ninit_nls();\nvar __decorate94 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param88 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar KnownSnippetVariableNames = Object.freeze({\n  \"CURRENT_YEAR\": true,\n  \"CURRENT_YEAR_SHORT\": true,\n  \"CURRENT_MONTH\": true,\n  \"CURRENT_DATE\": true,\n  \"CURRENT_HOUR\": true,\n  \"CURRENT_MINUTE\": true,\n  \"CURRENT_SECOND\": true,\n  \"CURRENT_DAY_NAME\": true,\n  \"CURRENT_DAY_NAME_SHORT\": true,\n  \"CURRENT_MONTH_NAME\": true,\n  \"CURRENT_MONTH_NAME_SHORT\": true,\n  \"CURRENT_SECONDS_UNIX\": true,\n  \"CURRENT_TIMEZONE_OFFSET\": true,\n  \"SELECTION\": true,\n  \"CLIPBOARD\": true,\n  \"TM_SELECTED_TEXT\": true,\n  \"TM_CURRENT_LINE\": true,\n  \"TM_CURRENT_WORD\": true,\n  \"TM_LINE_INDEX\": true,\n  \"TM_LINE_NUMBER\": true,\n  \"TM_FILENAME\": true,\n  \"TM_FILENAME_BASE\": true,\n  \"TM_DIRECTORY\": true,\n  \"TM_FILEPATH\": true,\n  \"CURSOR_INDEX\": true,\n  // 0-offset\n  \"CURSOR_NUMBER\": true,\n  // 1-offset\n  \"RELATIVE_FILEPATH\": true,\n  \"BLOCK_COMMENT_START\": true,\n  \"BLOCK_COMMENT_END\": true,\n  \"LINE_COMMENT\": true,\n  \"WORKSPACE_NAME\": true,\n  \"WORKSPACE_FOLDER\": true,\n  \"RANDOM\": true,\n  \"RANDOM_HEX\": true,\n  \"UUID\": true\n});\nvar CompositeSnippetVariableResolver = class {\n  constructor(_delegates) {\n    this._delegates = _delegates;\n  }\n  resolve(variable) {\n    for (const delegate of this._delegates) {\n      const value = delegate.resolve(variable);\n      if (value !== void 0) {\n        return value;\n      }\n    }\n    return void 0;\n  }\n};\nvar SelectionBasedVariableResolver = class {\n  constructor(_model, _selection, _selectionIdx, _overtypingCapturer) {\n    this._model = _model;\n    this._selection = _selection;\n    this._selectionIdx = _selectionIdx;\n    this._overtypingCapturer = _overtypingCapturer;\n  }\n  resolve(variable) {\n    const { name } = variable;\n    if (name === \"SELECTION\" || name === \"TM_SELECTED_TEXT\") {\n      let value = this._model.getValueInRange(this._selection) || void 0;\n      let isMultiline = this._selection.startLineNumber !== this._selection.endLineNumber;\n      if (!value \u0026\u0026 this._overtypingCapturer) {\n        const info = this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);\n        if (info) {\n          value = info.value;\n          isMultiline = info.multiline;\n        }\n      }\n      if (value \u0026\u0026 isMultiline \u0026\u0026 variable.snippet) {\n        const line = this._model.getLineContent(this._selection.startLineNumber);\n        const lineLeadingWhitespace = getLeadingWhitespace(line, 0, this._selection.startColumn - 1);\n        let varLeadingWhitespace = lineLeadingWhitespace;\n        variable.snippet.walk((marker) =\u003e {\n          if (marker === variable) {\n            return false;\n          }\n          if (marker instanceof Text) {\n            varLeadingWhitespace = getLeadingWhitespace(splitLines(marker.value).pop());\n          }\n          return true;\n        });\n        const whitespaceCommonLength = commonPrefixLength(varLeadingWhitespace, lineLeadingWhitespace);\n        value = value.replace(/(\\r\\n|\\r|\\n)(.*)/g, (m, newline2, rest) =\u003e `${newline2}${varLeadingWhitespace.substr(whitespaceCommonLength)}${rest}`);\n      }\n      return value;\n    } else if (name === \"TM_CURRENT_LINE\") {\n      return this._model.getLineContent(this._selection.positionLineNumber);\n    } else if (name === \"TM_CURRENT_WORD\") {\n      const info = this._model.getWordAtPosition({\n        lineNumber: this._selection.positionLineNumber,\n        column: this._selection.positionColumn\n      });\n      return info \u0026\u0026 info.word || void 0;\n    } else if (name === \"TM_LINE_INDEX\") {\n      return String(this._selection.positionLineNumber - 1);\n    } else if (name === \"TM_LINE_NUMBER\") {\n      return String(this._selection.positionLineNumber);\n    } else if (name === \"CURSOR_INDEX\") {\n      return String(this._selectionIdx);\n    } else if (name === \"CURSOR_NUMBER\") {\n      return String(this._selectionIdx + 1);\n    }\n    return void 0;\n  }\n};\nvar ModelBasedVariableResolver = class {\n  constructor(_labelService, _model) {\n    this._labelService = _labelService;\n    this._model = _model;\n  }\n  resolve(variable) {\n    const { name } = variable;\n    if (name === \"TM_FILENAME\") {\n      return basename(this._model.uri.fsPath);\n    } else if (name === \"TM_FILENAME_BASE\") {\n      const name2 = basename(this._model.uri.fsPath);\n      const idx = name2.lastIndexOf(\".\");\n      if (idx \u003c= 0) {\n        return name2;\n      } else {\n        return name2.slice(0, idx);\n      }\n    } else if (name === \"TM_DIRECTORY\") {\n      if (dirname(this._model.uri.fsPath) === \".\") {\n        return \"\";\n      }\n      return this._labelService.getUriLabel(dirname2(this._model.uri));\n    } else if (name === \"TM_FILEPATH\") {\n      return this._labelService.getUriLabel(this._model.uri);\n    } else if (name === \"RELATIVE_FILEPATH\") {\n      return this._labelService.getUriLabel(this._model.uri, { relative: true, noPrefix: true });\n    }\n    return void 0;\n  }\n};\nvar ClipboardBasedVariableResolver = class {\n  constructor(_readClipboardText, _selectionIdx, _selectionCount, _spread) {\n    this._readClipboardText = _readClipboardText;\n    this._selectionIdx = _selectionIdx;\n    this._selectionCount = _selectionCount;\n    this._spread = _spread;\n  }\n  resolve(variable) {\n    if (variable.name !== \"CLIPBOARD\") {\n      return void 0;\n    }\n    const clipboardText = this._readClipboardText();\n    if (!clipboardText) {\n      return void 0;\n    }\n    if (this._spread) {\n      const lines = clipboardText.split(/\\r\\n|\\n|\\r/).filter((s) =\u003e !isFalsyOrWhitespace(s));\n      if (lines.length === this._selectionCount) {\n        return lines[this._selectionIdx];\n      }\n    }\n    return clipboardText;\n  }\n};\nvar CommentBasedVariableResolver = class CommentBasedVariableResolver2 {\n  constructor(_model, _selection, _languageConfigurationService) {\n    this._model = _model;\n    this._selection = _selection;\n    this._languageConfigurationService = _languageConfigurationService;\n  }\n  resolve(variable) {\n    const { name } = variable;\n    const langId = this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber, this._selection.selectionStartColumn);\n    const config = this._languageConfigurationService.getLanguageConfiguration(langId).comments;\n    if (!config) {\n      return void 0;\n    }\n    if (name === \"LINE_COMMENT\") {\n      return config.lineCommentToken || void 0;\n    } else if (name === \"BLOCK_COMMENT_START\") {\n      return config.blockCommentStartToken || void 0;\n    } else if (name === \"BLOCK_COMMENT_END\") {\n      return config.blockCommentEndToken || void 0;\n    }\n    return void 0;\n  }\n};\nCommentBasedVariableResolver = __decorate94([\n  __param88(2, ILanguageConfigurationService)\n], CommentBasedVariableResolver);\nvar TimeBasedVariableResolver = class _TimeBasedVariableResolver {\n  constructor() {\n    this._date = /* @__PURE__ */ new Date();\n  }\n  static {\n    this.dayNames = [localize(1388, \"Sunday\"), localize(1389, \"Monday\"), localize(1390, \"Tuesday\"), localize(1391, \"Wednesday\"), localize(1392, \"Thursday\"), localize(1393, \"Friday\"), localize(1394, \"Saturday\")];\n  }\n  static {\n    this.dayNamesShort = [localize(1395, \"Sun\"), localize(1396, \"Mon\"), localize(1397, \"Tue\"), localize(1398, \"Wed\"), localize(1399, \"Thu\"), localize(1400, \"Fri\"), localize(1401, \"Sat\")];\n  }\n  static {\n    this.monthNames = [localize(1402, \"January\"), localize(1403, \"February\"), localize(1404, \"March\"), localize(1405, \"April\"), localize(1406, \"May\"), localize(1407, \"June\"), localize(1408, \"July\"), localize(1409, \"August\"), localize(1410, \"September\"), localize(1411, \"October\"), localize(1412, \"November\"), localize(1413, \"December\")];\n  }\n  static {\n    this.monthNamesShort = [localize(1414, \"Jan\"), localize(1415, \"Feb\"), localize(1416, \"Mar\"), localize(1417, \"Apr\"), localize(1418, \"May\"), localize(1419, \"Jun\"), localize(1420, \"Jul\"), localize(1421, \"Aug\"), localize(1422, \"Sep\"), localize(1423, \"Oct\"), localize(1424, \"Nov\"), localize(1425, \"Dec\")];\n  }\n  resolve(variable) {\n    const { name } = variable;\n    if (name === \"CURRENT_YEAR\") {\n      return String(this._date.getFullYear());\n    } else if (name === \"CURRENT_YEAR_SHORT\") {\n      return String(this._date.getFullYear()).slice(-2);\n    } else if (name === \"CURRENT_MONTH\") {\n      return String(this._date.getMonth().valueOf() + 1).padStart(2, \"0\");\n    } else if (name === \"CURRENT_DATE\") {\n      return String(this._date.getDate().valueOf()).padStart(2, \"0\");\n    } else if (name === \"CURRENT_HOUR\") {\n      return String(this._date.getHours().valueOf()).padStart(2, \"0\");\n    } else if (name === \"CURRENT_MINUTE\") {\n      return String(this._date.getMinutes().valueOf()).padStart(2, \"0\");\n    } else if (name === \"CURRENT_SECOND\") {\n      return String(this._date.getSeconds().valueOf()).padStart(2, \"0\");\n    } else if (name === \"CURRENT_DAY_NAME\") {\n      return _TimeBasedVariableResolver.dayNames[this._date.getDay()];\n    } else if (name === \"CURRENT_DAY_NAME_SHORT\") {\n      return _TimeBasedVariableResolver.dayNamesShort[this._date.getDay()];\n    } else if (name === \"CURRENT_MONTH_NAME\") {\n      return _TimeBasedVariableResolver.monthNames[this._date.getMonth()];\n    } else if (name === \"CURRENT_MONTH_NAME_SHORT\") {\n      return _TimeBasedVariableResolver.monthNamesShort[this._date.getMonth()];\n    } else if (name === \"CURRENT_SECONDS_UNIX\") {\n      return String(Math.floor(this._date.getTime() / 1e3));\n    } else if (name === \"CURRENT_TIMEZONE_OFFSET\") {\n      const rawTimeOffset = this._date.getTimezoneOffset();\n      const sign = rawTimeOffset \u003e 0 ? \"-\" : \"+\";\n      const hours = Math.trunc(Math.abs(rawTimeOffset / 60));\n      const hoursString = hours \u003c 10 ? \"0\" + hours : hours;\n      const minutes = Math.abs(rawTimeOffset) - hours * 60;\n      const minutesString = minutes \u003c 10 ? \"0\" + minutes : minutes;\n      return sign + hoursString + \":\" + minutesString;\n    }\n    return void 0;\n  }\n};\nvar WorkspaceBasedVariableResolver = class {\n  constructor(_workspaceService) {\n    this._workspaceService = _workspaceService;\n  }\n  resolve(variable) {\n    if (!this._workspaceService) {\n      return void 0;\n    }\n    const workspaceIdentifier = toWorkspaceIdentifier(this._workspaceService.getWorkspace());\n    if (isEmptyWorkspaceIdentifier(workspaceIdentifier)) {\n      return void 0;\n    }\n    if (variable.name === \"WORKSPACE_NAME\") {\n      return this._resolveWorkspaceName(workspaceIdentifier);\n    } else if (variable.name === \"WORKSPACE_FOLDER\") {\n      return this._resoveWorkspacePath(workspaceIdentifier);\n    }\n    return void 0;\n  }\n  _resolveWorkspaceName(workspaceIdentifier) {\n    if (isSingleFolderWorkspaceIdentifier(workspaceIdentifier)) {\n      return basename(workspaceIdentifier.uri.path);\n    }\n    let filename = basename(workspaceIdentifier.configPath.path);\n    if (filename.endsWith(WORKSPACE_EXTENSION)) {\n      filename = filename.substr(0, filename.length - WORKSPACE_EXTENSION.length - 1);\n    }\n    return filename;\n  }\n  _resoveWorkspacePath(workspaceIdentifier) {\n    if (isSingleFolderWorkspaceIdentifier(workspaceIdentifier)) {\n      return normalizeDriveLetter(workspaceIdentifier.uri.fsPath);\n    }\n    const filename = basename(workspaceIdentifier.configPath.path);\n    let folderpath = workspaceIdentifier.configPath.fsPath;\n    if (folderpath.endsWith(filename)) {\n      folderpath = folderpath.substr(0, folderpath.length - filename.length - 1);\n    }\n    return folderpath ? normalizeDriveLetter(folderpath) : \"/\";\n  }\n};\nvar RandomBasedVariableResolver = class {\n  resolve(variable) {\n    const { name } = variable;\n    if (name === \"RANDOM\") {\n      return Math.random().toString().slice(-6);\n    } else if (name === \"RANDOM_HEX\") {\n      return Math.random().toString(16).slice(-6);\n    } else if (name === \"UUID\") {\n      return generateUuid();\n    }\n    return void 0;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/snippet/browser/snippetSession.js\ninit_textModelEditSource();\nvar __decorate95 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param89 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SnippetSession_1;\nvar OneSnippet = class _OneSnippet {\n  static {\n    this._decor = {\n      active: ModelDecorationOptions.register({ description: \"snippet-placeholder-1\", stickiness: 0, className: \"snippet-placeholder\" }),\n      inactive: ModelDecorationOptions.register({ description: \"snippet-placeholder-2\", stickiness: 1, className: \"snippet-placeholder\" }),\n      activeFinal: ModelDecorationOptions.register({ description: \"snippet-placeholder-3\", stickiness: 1, className: \"finish-snippet-placeholder\" }),\n      inactiveFinal: ModelDecorationOptions.register({ description: \"snippet-placeholder-4\", stickiness: 1, className: \"finish-snippet-placeholder\" })\n    };\n  }\n  constructor(_editor, _snippet, _snippetLineLeadingWhitespace) {\n    this._editor = _editor;\n    this._snippet = _snippet;\n    this._snippetLineLeadingWhitespace = _snippetLineLeadingWhitespace;\n    this._offset = -1;\n    this._nestingLevel = 1;\n    this._placeholderGroups = groupBy(_snippet.placeholders, Placeholder.compareByIndex);\n    this._placeholderGroupsIdx = -1;\n  }\n  initialize(textChange) {\n    this._offset = textChange.newPosition;\n  }\n  dispose() {\n    if (this._placeholderDecorations) {\n      this._editor.removeDecorations([...this._placeholderDecorations.values()]);\n    }\n    this._placeholderGroups.length = 0;\n  }\n  _initDecorations() {\n    if (this._offset === -1) {\n      throw new Error(`Snippet not initialized!`);\n    }\n    if (this._placeholderDecorations) {\n      return;\n    }\n    this._placeholderDecorations = /* @__PURE__ */ new Map();\n    const model = this._editor.getModel();\n    this._editor.changeDecorations((accessor) =\u003e {\n      for (const placeholder of this._snippet.placeholders) {\n        const placeholderOffset = this._snippet.offset(placeholder);\n        const placeholderLen = this._snippet.fullLen(placeholder);\n        const range2 = Range.fromPositions(model.getPositionAt(this._offset + placeholderOffset), model.getPositionAt(this._offset + placeholderOffset + placeholderLen));\n        const options2 = placeholder.isFinalTabstop ? _OneSnippet._decor.inactiveFinal : _OneSnippet._decor.inactive;\n        const handle = accessor.addDecoration(range2, options2);\n        this._placeholderDecorations.set(placeholder, handle);\n      }\n    });\n  }\n  move(fwd) {\n    if (!this._editor.hasModel()) {\n      return [];\n    }\n    this._initDecorations();\n    if (this._placeholderGroupsIdx \u003e= 0) {\n      const operations = [];\n      for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n        if (placeholder.transform) {\n          const id = this._placeholderDecorations.get(placeholder);\n          const range2 = this._editor.getModel().getDecorationRange(id);\n          const currentValue = this._editor.getModel().getValueInRange(range2);\n          const transformedValueLines = placeholder.transform.resolve(currentValue).split(/\\r\\n|\\r|\\n/);\n          for (let i2 = 1; i2 \u003c transformedValueLines.length; i2++) {\n            transformedValueLines[i2] = this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace + transformedValueLines[i2]);\n          }\n          operations.push(EditOperation.replace(range2, transformedValueLines.join(this._editor.getModel().getEOL())));\n        }\n      }\n      if (operations.length \u003e 0) {\n        this._editor.executeEdits(\"snippet.placeholderTransform\", operations);\n      }\n    }\n    let couldSkipThisPlaceholder = false;\n    if (fwd === true \u0026\u0026 this._placeholderGroupsIdx \u003c this._placeholderGroups.length - 1) {\n      this._placeholderGroupsIdx += 1;\n      couldSkipThisPlaceholder = true;\n    } else if (fwd === false \u0026\u0026 this._placeholderGroupsIdx \u003e 0) {\n      this._placeholderGroupsIdx -= 1;\n      couldSkipThisPlaceholder = true;\n    } else {\n    }\n    const newSelections = this._editor.getModel().changeDecorations((accessor) =\u003e {\n      const activePlaceholders = /* @__PURE__ */ new Set();\n      const selections = [];\n      for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n        const id = this._placeholderDecorations.get(placeholder);\n        const range2 = this._editor.getModel().getDecorationRange(id);\n        selections.push(new Selection(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn));\n        couldSkipThisPlaceholder = couldSkipThisPlaceholder \u0026\u0026 this._hasPlaceholderBeenCollapsed(placeholder);\n        accessor.changeDecorationOptions(id, placeholder.isFinalTabstop ? _OneSnippet._decor.activeFinal : _OneSnippet._decor.active);\n        activePlaceholders.add(placeholder);\n        for (const enclosingPlaceholder of this._snippet.enclosingPlaceholders(placeholder)) {\n          const id2 = this._placeholderDecorations.get(enclosingPlaceholder);\n          accessor.changeDecorationOptions(id2, enclosingPlaceholder.isFinalTabstop ? _OneSnippet._decor.activeFinal : _OneSnippet._decor.active);\n          activePlaceholders.add(enclosingPlaceholder);\n        }\n      }\n      for (const [placeholder, id] of this._placeholderDecorations) {\n        if (!activePlaceholders.has(placeholder)) {\n          accessor.changeDecorationOptions(id, placeholder.isFinalTabstop ? _OneSnippet._decor.inactiveFinal : _OneSnippet._decor.inactive);\n        }\n      }\n      return selections;\n    });\n    return !couldSkipThisPlaceholder ? newSelections ?? [] : this.move(fwd);\n  }\n  _hasPlaceholderBeenCollapsed(placeholder) {\n    let marker = placeholder;\n    while (marker) {\n      if (marker instanceof Placeholder) {\n        const id = this._placeholderDecorations.get(marker);\n        const range2 = this._editor.getModel().getDecorationRange(id);\n        if (range2.isEmpty() \u0026\u0026 marker.toString().length \u003e 0) {\n          return true;\n        }\n      }\n      marker = marker.parent;\n    }\n    return false;\n  }\n  get isAtFirstPlaceholder() {\n    return this._placeholderGroupsIdx \u003c= 0 || this._placeholderGroups.length === 0;\n  }\n  get isAtLastPlaceholder() {\n    return this._placeholderGroupsIdx === this._placeholderGroups.length - 1;\n  }\n  get hasPlaceholder() {\n    return this._snippet.placeholders.length \u003e 0;\n  }\n  /**\n   * A snippet is trivial when it has no placeholder or only a final placeholder at\n   * its very end\n   */\n  get isTrivialSnippet() {\n    if (this._snippet.placeholders.length === 0) {\n      return true;\n    }\n    if (this._snippet.placeholders.length === 1) {\n      const [placeholder] = this._snippet.placeholders;\n      if (placeholder.isFinalTabstop) {\n        if (this._snippet.rightMostDescendant === placeholder) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  computePossibleSelections() {\n    const result = /* @__PURE__ */ new Map();\n    for (const placeholdersWithEqualIndex of this._placeholderGroups) {\n      let ranges;\n      for (const placeholder of placeholdersWithEqualIndex) {\n        if (placeholder.isFinalTabstop) {\n          break;\n        }\n        if (!ranges) {\n          ranges = [];\n          result.set(placeholder.index, ranges);\n        }\n        const id = this._placeholderDecorations.get(placeholder);\n        const range2 = this._editor.getModel().getDecorationRange(id);\n        if (!range2) {\n          result.delete(placeholder.index);\n          break;\n        }\n        ranges.push(range2);\n      }\n    }\n    return result;\n  }\n  get activeChoice() {\n    if (!this._placeholderDecorations) {\n      return void 0;\n    }\n    const placeholder = this._placeholderGroups[this._placeholderGroupsIdx][0];\n    if (!placeholder?.choice) {\n      return void 0;\n    }\n    const id = this._placeholderDecorations.get(placeholder);\n    if (!id) {\n      return void 0;\n    }\n    const range2 = this._editor.getModel().getDecorationRange(id);\n    if (!range2) {\n      return void 0;\n    }\n    return { range: range2, choice: placeholder.choice };\n  }\n  get hasChoice() {\n    let result = false;\n    this._snippet.walk((marker) =\u003e {\n      result = marker instanceof Choice;\n      return !result;\n    });\n    return result;\n  }\n  merge(others) {\n    const model = this._editor.getModel();\n    this._nestingLevel *= 10;\n    this._editor.changeDecorations((accessor) =\u003e {\n      for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n        const nested = others.shift();\n        console.assert(nested._offset !== -1);\n        console.assert(!nested._placeholderDecorations);\n        const indexLastPlaceholder = nested._snippet.placeholderInfo.last.index;\n        for (const nestedPlaceholder of nested._snippet.placeholderInfo.all) {\n          if (nestedPlaceholder.isFinalTabstop) {\n            nestedPlaceholder.index = placeholder.index + (indexLastPlaceholder + 1) / this._nestingLevel;\n          } else {\n            nestedPlaceholder.index = placeholder.index + nestedPlaceholder.index / this._nestingLevel;\n          }\n        }\n        this._snippet.replace(placeholder, nested._snippet.children);\n        const id = this._placeholderDecorations.get(placeholder);\n        accessor.removeDecoration(id);\n        this._placeholderDecorations.delete(placeholder);\n        for (const placeholder2 of nested._snippet.placeholders) {\n          const placeholderOffset = nested._snippet.offset(placeholder2);\n          const placeholderLen = nested._snippet.fullLen(placeholder2);\n          const range2 = Range.fromPositions(model.getPositionAt(nested._offset + placeholderOffset), model.getPositionAt(nested._offset + placeholderOffset + placeholderLen));\n          const handle = accessor.addDecoration(range2, _OneSnippet._decor.inactive);\n          this._placeholderDecorations.set(placeholder2, handle);\n        }\n      }\n      this._placeholderGroups = groupBy(this._snippet.placeholders, Placeholder.compareByIndex);\n    });\n  }\n};\nvar _defaultOptions = {\n  overwriteBefore: 0,\n  overwriteAfter: 0,\n  adjustWhitespace: true,\n  clipboardText: void 0,\n  overtypingCapturer: void 0\n};\nvar SnippetSession = SnippetSession_1 = class SnippetSession2 {\n  static adjustWhitespace(model, position, adjustIndentation, snippet, filter) {\n    const line = model.getLineContent(position.lineNumber);\n    const lineLeadingWhitespace = getLeadingWhitespace(line, 0, position.column - 1);\n    let snippetTextString;\n    snippet.walk((marker) =\u003e {\n      if (!(marker instanceof Text) || marker.parent instanceof Choice) {\n        return true;\n      }\n      if (filter \u0026\u0026 !filter.has(marker)) {\n        return true;\n      }\n      const lines = marker.value.split(/\\r\\n|\\r|\\n/);\n      if (adjustIndentation) {\n        const offset = snippet.offset(marker);\n        if (offset === 0) {\n          lines[0] = model.normalizeIndentation(lines[0]);\n        } else {\n          snippetTextString = snippetTextString ?? snippet.toString();\n          const prevChar = snippetTextString.charCodeAt(offset - 1);\n          if (prevChar === 10 || prevChar === 13) {\n            lines[0] = model.normalizeIndentation(lineLeadingWhitespace + lines[0]);\n          }\n        }\n        for (let i2 = 1; i2 \u003c lines.length; i2++) {\n          lines[i2] = model.normalizeIndentation(lineLeadingWhitespace + lines[i2]);\n        }\n      }\n      const newValue = lines.join(model.getEOL());\n      if (newValue !== marker.value) {\n        marker.parent.replace(marker, [new Text(newValue)]);\n        snippetTextString = void 0;\n      }\n      return true;\n    });\n    return lineLeadingWhitespace;\n  }\n  static adjustSelection(model, selection, overwriteBefore, overwriteAfter) {\n    if (overwriteBefore !== 0 || overwriteAfter !== 0) {\n      const { positionLineNumber, positionColumn } = selection;\n      const positionColumnBefore = positionColumn - overwriteBefore;\n      const positionColumnAfter = positionColumn + overwriteAfter;\n      const range2 = model.validateRange({\n        startLineNumber: positionLineNumber,\n        startColumn: positionColumnBefore,\n        endLineNumber: positionLineNumber,\n        endColumn: positionColumnAfter\n      });\n      selection = Selection.createWithDirection(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn, selection.getDirection());\n    }\n    return selection;\n  }\n  static createEditsAndSnippetsFromSelections(editor2, template, overwriteBefore, overwriteAfter, enforceFinalTabstop, adjustWhitespace, clipboardText, overtypingCapturer, languageConfigurationService) {\n    const edits = [];\n    const snippets = [];\n    if (!editor2.hasModel()) {\n      return { edits, snippets };\n    }\n    const model = editor2.getModel();\n    const workspaceService = editor2.invokeWithinContext((accessor) =\u003e accessor.get(IWorkspaceContextService));\n    const modelBasedVariableResolver = editor2.invokeWithinContext((accessor) =\u003e new ModelBasedVariableResolver(accessor.get(ILabelService), model));\n    const readClipboardText = () =\u003e clipboardText;\n    const firstBeforeText = model.getValueInRange(SnippetSession_1.adjustSelection(model, editor2.getSelection(), overwriteBefore, 0));\n    const firstAfterText = model.getValueInRange(SnippetSession_1.adjustSelection(model, editor2.getSelection(), 0, overwriteAfter));\n    const firstLineFirstNonWhitespace = model.getLineFirstNonWhitespaceColumn(editor2.getSelection().positionLineNumber);\n    const indexedSelections = editor2.getSelections().map((selection, idx) =\u003e ({ selection, idx })).sort((a, b) =\u003e Range.compareRangesUsingStarts(a.selection, b.selection));\n    for (const { selection, idx } of indexedSelections) {\n      let extensionBefore = SnippetSession_1.adjustSelection(model, selection, overwriteBefore, 0);\n      let extensionAfter = SnippetSession_1.adjustSelection(model, selection, 0, overwriteAfter);\n      if (firstBeforeText !== model.getValueInRange(extensionBefore)) {\n        extensionBefore = selection;\n      }\n      if (firstAfterText !== model.getValueInRange(extensionAfter)) {\n        extensionAfter = selection;\n      }\n      const snippetSelection = selection.setStartPosition(extensionBefore.startLineNumber, extensionBefore.startColumn).setEndPosition(extensionAfter.endLineNumber, extensionAfter.endColumn);\n      const snippet = new SnippetParser().parse(template, true, enforceFinalTabstop);\n      const start = snippetSelection.getStartPosition();\n      const snippetLineLeadingWhitespace = SnippetSession_1.adjustWhitespace(model, start, adjustWhitespace || idx \u003e 0 \u0026\u0026 firstLineFirstNonWhitespace !== model.getLineFirstNonWhitespaceColumn(selection.positionLineNumber), snippet);\n      snippet.resolveVariables(new CompositeSnippetVariableResolver([\n        modelBasedVariableResolver,\n        new ClipboardBasedVariableResolver(readClipboardText, idx, indexedSelections.length, editor2.getOption(\n          87\n          /* EditorOption.multiCursorPaste */\n        ) === \"spread\"),\n        new SelectionBasedVariableResolver(model, selection, idx, overtypingCapturer),\n        new CommentBasedVariableResolver(model, selection, languageConfigurationService),\n        new TimeBasedVariableResolver(),\n        new WorkspaceBasedVariableResolver(workspaceService),\n        new RandomBasedVariableResolver()\n      ]));\n      edits[idx] = EditOperation.replace(snippetSelection, snippet.toString());\n      edits[idx].identifier = { major: idx, minor: 0 };\n      edits[idx]._isTracked = true;\n      snippets[idx] = new OneSnippet(editor2, snippet, snippetLineLeadingWhitespace);\n    }\n    return { edits, snippets };\n  }\n  static createEditsAndSnippetsFromEdits(editor2, snippetEdits, enforceFinalTabstop, adjustWhitespace, clipboardText, overtypingCapturer, languageConfigurationService) {\n    if (!editor2.hasModel() || snippetEdits.length === 0) {\n      return { edits: [], snippets: [] };\n    }\n    const edits = [];\n    const model = editor2.getModel();\n    const parser2 = new SnippetParser();\n    const snippet = new TextmateSnippet();\n    const resolver = new CompositeSnippetVariableResolver([\n      editor2.invokeWithinContext((accessor) =\u003e new ModelBasedVariableResolver(accessor.get(ILabelService), model)),\n      new ClipboardBasedVariableResolver(() =\u003e clipboardText, 0, editor2.getSelections().length, editor2.getOption(\n        87\n        /* EditorOption.multiCursorPaste */\n      ) === \"spread\"),\n      new SelectionBasedVariableResolver(model, editor2.getSelection(), 0, overtypingCapturer),\n      new CommentBasedVariableResolver(model, editor2.getSelection(), languageConfigurationService),\n      new TimeBasedVariableResolver(),\n      new WorkspaceBasedVariableResolver(editor2.invokeWithinContext((accessor) =\u003e accessor.get(IWorkspaceContextService))),\n      new RandomBasedVariableResolver()\n    ]);\n    snippetEdits = snippetEdits.sort((a, b) =\u003e Range.compareRangesUsingStarts(a.range, b.range));\n    let offset = 0;\n    for (let i2 = 0; i2 \u003c snippetEdits.length; i2++) {\n      const { range: range2, template, keepWhitespace } = snippetEdits[i2];\n      if (i2 \u003e 0) {\n        const lastRange = snippetEdits[i2 - 1].range;\n        const textRange = Range.fromPositions(lastRange.getEndPosition(), range2.getStartPosition());\n        const textNode = new Text(model.getValueInRange(textRange));\n        snippet.appendChild(textNode);\n        offset += textNode.value.length;\n      }\n      const newNodes = parser2.parseFragment(template, snippet);\n      SnippetSession_1.adjustWhitespace(model, range2.getStartPosition(), keepWhitespace !== void 0 ? !keepWhitespace : adjustWhitespace, snippet, new Set(newNodes));\n      snippet.resolveVariables(resolver);\n      const snippetText = snippet.toString();\n      const snippetFragmentText = snippetText.slice(offset);\n      offset = snippetText.length;\n      const edit2 = EditOperation.replace(range2, snippetFragmentText);\n      edit2.identifier = { major: i2, minor: 0 };\n      edit2._isTracked = true;\n      edits.push(edit2);\n    }\n    parser2.ensureFinalTabstop(snippet, enforceFinalTabstop, true);\n    return {\n      edits,\n      snippets: [new OneSnippet(editor2, snippet, \"\")]\n    };\n  }\n  constructor(_editor, _template, _options = _defaultOptions, _languageConfigurationService) {\n    this._editor = _editor;\n    this._template = _template;\n    this._options = _options;\n    this._languageConfigurationService = _languageConfigurationService;\n    this._templateMerges = [];\n    this._snippets = [];\n  }\n  dispose() {\n    dispose(this._snippets);\n  }\n  _logInfo() {\n    return `template=\"${this._template}\", merged_templates=\"${this._templateMerges.join(\" -\u003e \")}\"`;\n  }\n  insert(editReason) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const { edits, snippets } = typeof this._template === \"string\" ? SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor, this._template, this._options.overwriteBefore, this._options.overwriteAfter, false, this._options.adjustWhitespace, this._options.clipboardText, this._options.overtypingCapturer, this._languageConfigurationService) : SnippetSession_1.createEditsAndSnippetsFromEdits(this._editor, this._template, false, this._options.adjustWhitespace, this._options.clipboardText, this._options.overtypingCapturer, this._languageConfigurationService);\n    this._snippets = snippets;\n    this._editor.executeEdits(editReason ?? EditSources.snippet(), edits, (_undoEdits) =\u003e {\n      const undoEdits = _undoEdits.filter((edit2) =\u003e !!edit2.identifier);\n      for (let idx = 0; idx \u003c snippets.length; idx++) {\n        snippets[idx].initialize(undoEdits[idx].textChange);\n      }\n      if (this._snippets[0].hasPlaceholder) {\n        return this._move(true);\n      } else {\n        return undoEdits.map((edit2) =\u003e Selection.fromPositions(edit2.range.getEndPosition()));\n      }\n    });\n    this._editor.revealRange(this._editor.getSelections()[0]);\n  }\n  merge(template, options2 = _defaultOptions) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    this._templateMerges.push([this._snippets[0]._nestingLevel, this._snippets[0]._placeholderGroupsIdx, template]);\n    const { edits, snippets } = SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor, template, options2.overwriteBefore, options2.overwriteAfter, true, options2.adjustWhitespace, options2.clipboardText, options2.overtypingCapturer, this._languageConfigurationService);\n    this._editor.executeEdits(\"snippet\", edits, (_undoEdits) =\u003e {\n      const undoEdits = _undoEdits.filter((edit2) =\u003e !!edit2.identifier);\n      for (let idx = 0; idx \u003c snippets.length; idx++) {\n        snippets[idx].initialize(undoEdits[idx].textChange);\n      }\n      const isTrivialSnippet = snippets[0].isTrivialSnippet;\n      if (!isTrivialSnippet) {\n        for (const snippet of this._snippets) {\n          snippet.merge(snippets);\n        }\n        console.assert(snippets.length === 0);\n      }\n      if (this._snippets[0].hasPlaceholder \u0026\u0026 !isTrivialSnippet) {\n        return this._move(void 0);\n      } else {\n        return undoEdits.map((edit2) =\u003e Selection.fromPositions(edit2.range.getEndPosition()));\n      }\n    });\n  }\n  next() {\n    const newSelections = this._move(true);\n    this._editor.setSelections(newSelections);\n    this._editor.revealPositionInCenterIfOutsideViewport(newSelections[0].getPosition());\n  }\n  prev() {\n    const newSelections = this._move(false);\n    this._editor.setSelections(newSelections);\n    this._editor.revealPositionInCenterIfOutsideViewport(newSelections[0].getPosition());\n  }\n  _move(fwd) {\n    const selections = [];\n    for (const snippet of this._snippets) {\n      const oneSelection = snippet.move(fwd);\n      selections.push(...oneSelection);\n    }\n    return selections;\n  }\n  get isAtFirstPlaceholder() {\n    return this._snippets[0].isAtFirstPlaceholder;\n  }\n  get isAtLastPlaceholder() {\n    return this._snippets[0].isAtLastPlaceholder;\n  }\n  get hasPlaceholder() {\n    return this._snippets[0].hasPlaceholder;\n  }\n  get hasChoice() {\n    return this._snippets[0].hasChoice;\n  }\n  get activeChoice() {\n    return this._snippets[0].activeChoice;\n  }\n  isSelectionWithinPlaceholders() {\n    if (!this.hasPlaceholder) {\n      return false;\n    }\n    const selections = this._editor.getSelections();\n    if (selections.length \u003c this._snippets.length) {\n      return false;\n    }\n    const allPossibleSelections = /* @__PURE__ */ new Map();\n    for (const snippet of this._snippets) {\n      const possibleSelections = snippet.computePossibleSelections();\n      if (allPossibleSelections.size === 0) {\n        for (const [index, ranges] of possibleSelections) {\n          ranges.sort(Range.compareRangesUsingStarts);\n          for (const selection of selections) {\n            if (ranges[0].containsRange(selection)) {\n              allPossibleSelections.set(index, []);\n              break;\n            }\n          }\n        }\n      }\n      if (allPossibleSelections.size === 0) {\n        return false;\n      }\n      allPossibleSelections.forEach((array2, index) =\u003e {\n        array2.push(...possibleSelections.get(index));\n      });\n    }\n    selections.sort(Range.compareRangesUsingStarts);\n    for (const [index, ranges] of allPossibleSelections) {\n      if (ranges.length !== selections.length) {\n        allPossibleSelections.delete(index);\n        continue;\n      }\n      ranges.sort(Range.compareRangesUsingStarts);\n      for (let i2 = 0; i2 \u003c ranges.length; i2++) {\n        if (!ranges[i2].containsRange(selections[i2])) {\n          allPossibleSelections.delete(index);\n          continue;\n        }\n      }\n    }\n    return allPossibleSelections.size \u003e 0;\n  }\n};\nSnippetSession = SnippetSession_1 = __decorate95([\n  __param89(3, ILanguageConfigurationService)\n], SnippetSession);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/snippet/browser/snippetController2.js\nvar __decorate96 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param90 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SnippetController2_1;\nvar _defaultOptions2 = {\n  overwriteBefore: 0,\n  overwriteAfter: 0,\n  undoStopBefore: true,\n  undoStopAfter: true,\n  adjustWhitespace: true,\n  clipboardText: void 0,\n  overtypingCapturer: void 0\n};\nvar SnippetController2 = class SnippetController22 {\n  static {\n    SnippetController2_1 = this;\n  }\n  static {\n    this.ID = \"snippetController2\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(SnippetController2_1.ID);\n  }\n  static {\n    this.InSnippetMode = new RawContextKey(\"inSnippetMode\", false, localize(1384, \"Whether the editor in current in snippet mode\"));\n  }\n  static {\n    this.HasNextTabstop = new RawContextKey(\"hasNextTabstop\", false, localize(1385, \"Whether there is a next tab stop when in snippet mode\"));\n  }\n  static {\n    this.HasPrevTabstop = new RawContextKey(\"hasPrevTabstop\", false, localize(1386, \"Whether there is a previous tab stop when in snippet mode\"));\n  }\n  constructor(_editor, _logService, _languageFeaturesService, contextKeyService, _languageConfigurationService) {\n    this._editor = _editor;\n    this._logService = _logService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._languageConfigurationService = _languageConfigurationService;\n    this._snippetListener = new DisposableStore();\n    this._modelVersionId = -1;\n    this._inSnippet = SnippetController2_1.InSnippetMode.bindTo(contextKeyService);\n    this._hasNextTabstop = SnippetController2_1.HasNextTabstop.bindTo(contextKeyService);\n    this._hasPrevTabstop = SnippetController2_1.HasPrevTabstop.bindTo(contextKeyService);\n  }\n  dispose() {\n    this._inSnippet.reset();\n    this._hasPrevTabstop.reset();\n    this._hasNextTabstop.reset();\n    this._session?.dispose();\n    this._snippetListener.dispose();\n  }\n  insert(template, opts) {\n    try {\n      this._doInsert(template, typeof opts === \"undefined\" ? _defaultOptions2 : { ..._defaultOptions2, ...opts });\n    } catch (e) {\n      this.cancel();\n      this._logService.error(e);\n      this._logService.error(\"snippet_error\");\n      this._logService.error(\"insert_template=\", template);\n      this._logService.error(\"existing_template=\", this._session ? this._session._logInfo() : \"\u003cno_session\u003e\");\n    }\n  }\n  _doInsert(template, opts) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    this._snippetListener.clear();\n    if (opts.undoStopBefore) {\n      this._editor.getModel().pushStackElement();\n    }\n    if (this._session \u0026\u0026 typeof template !== \"string\") {\n      this.cancel();\n    }\n    if (!this._session) {\n      this._modelVersionId = this._editor.getModel().getAlternativeVersionId();\n      this._session = new SnippetSession(this._editor, template, opts, this._languageConfigurationService);\n      this._session.insert(opts.reason);\n    } else {\n      assertType(typeof template === \"string\");\n      this._session.merge(template, opts);\n    }\n    if (opts.undoStopAfter) {\n      this._editor.getModel().pushStackElement();\n    }\n    if (this._session?.hasChoice) {\n      const provider = {\n        _debugDisplayName: \"snippetChoiceCompletions\",\n        provideCompletionItems: (model2, position) =\u003e {\n          if (!this._session || model2 !== this._editor.getModel() || !Position.equals(this._editor.getPosition(), position)) {\n            return void 0;\n          }\n          const { activeChoice } = this._session;\n          if (!activeChoice || activeChoice.choice.options.length === 0) {\n            return void 0;\n          }\n          const word = model2.getValueInRange(activeChoice.range);\n          const isAnyOfOptions = Boolean(activeChoice.choice.options.find((o) =\u003e o.value === word));\n          const suggestions = [];\n          for (let i2 = 0; i2 \u003c activeChoice.choice.options.length; i2++) {\n            const option2 = activeChoice.choice.options[i2];\n            suggestions.push({\n              kind: 13,\n              label: option2.value,\n              insertText: option2.value,\n              sortText: \"a\".repeat(i2 + 1),\n              range: activeChoice.range,\n              filterText: isAnyOfOptions ? `${word}_${option2.value}` : void 0,\n              command: { id: \"jumpToNextSnippetPlaceholder\", title: localize(1387, \"Go to next placeholder...\") }\n            });\n          }\n          return { suggestions };\n        }\n      };\n      const model = this._editor.getModel();\n      let registration;\n      let isRegistered = false;\n      const disable = () =\u003e {\n        registration?.dispose();\n        isRegistered = false;\n      };\n      const enable = () =\u003e {\n        if (!isRegistered) {\n          registration = this._languageFeaturesService.completionProvider.register({\n            language: model.getLanguageId(),\n            pattern: model.uri.fsPath,\n            scheme: model.uri.scheme,\n            exclusive: true\n          }, provider);\n          this._snippetListener.add(registration);\n          isRegistered = true;\n        }\n      };\n      this._choiceCompletions = { provider, enable, disable };\n    }\n    this._updateState();\n    this._snippetListener.add(this._editor.onDidChangeModelContent((e) =\u003e e.isFlush \u0026\u0026 this.cancel()));\n    this._snippetListener.add(this._editor.onDidChangeModel(() =\u003e this.cancel()));\n    this._snippetListener.add(this._editor.onDidChangeCursorSelection(() =\u003e this._updateState()));\n  }\n  _updateState() {\n    if (!this._session || !this._editor.hasModel()) {\n      return;\n    }\n    if (this._modelVersionId === this._editor.getModel().getAlternativeVersionId()) {\n      return this.cancel();\n    }\n    if (!this._session.hasPlaceholder) {\n      return this.cancel();\n    }\n    if (this._session.isAtLastPlaceholder || !this._session.isSelectionWithinPlaceholders()) {\n      this._editor.getModel().pushStackElement();\n      return this.cancel();\n    }\n    this._inSnippet.set(true);\n    this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder);\n    this._hasNextTabstop.set(!this._session.isAtLastPlaceholder);\n    this._handleChoice();\n  }\n  _handleChoice() {\n    if (!this._session || !this._editor.hasModel()) {\n      this._currentChoice = void 0;\n      return;\n    }\n    const { activeChoice } = this._session;\n    if (!activeChoice || !this._choiceCompletions) {\n      this._choiceCompletions?.disable();\n      this._currentChoice = void 0;\n      return;\n    }\n    if (this._currentChoice !== activeChoice.choice) {\n      this._currentChoice = activeChoice.choice;\n      this._choiceCompletions.enable();\n      queueMicrotask(() =\u003e {\n        showSimpleSuggestions(this._editor, this._choiceCompletions.provider);\n      });\n    }\n  }\n  finish() {\n    while (this._inSnippet.get()) {\n      this.next();\n    }\n  }\n  cancel(resetSelection = false) {\n    this._inSnippet.reset();\n    this._hasPrevTabstop.reset();\n    this._hasNextTabstop.reset();\n    this._snippetListener.clear();\n    this._currentChoice = void 0;\n    this._session?.dispose();\n    this._session = void 0;\n    this._modelVersionId = -1;\n    if (resetSelection) {\n      this._editor.setSelections([this._editor.getSelection()]);\n    }\n  }\n  prev() {\n    this._session?.prev();\n    this._updateState();\n  }\n  next() {\n    this._session?.next();\n    this._updateState();\n  }\n  isInSnippet() {\n    return Boolean(this._inSnippet.get());\n  }\n};\nSnippetController2 = SnippetController2_1 = __decorate96([\n  __param90(1, ILogService),\n  __param90(2, ILanguageFeaturesService),\n  __param90(3, IContextKeyService),\n  __param90(4, ILanguageConfigurationService)\n], SnippetController2);\nregisterEditorContribution(\n  SnippetController2.ID,\n  SnippetController2,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\nvar CommandCtor = EditorCommand.bindToContribution(SnippetController2.get);\nregisterEditorCommand(new CommandCtor({\n  id: \"jumpToNextSnippetPlaceholder\",\n  precondition: ContextKeyExpr.and(SnippetController2.InSnippetMode, SnippetController2.HasNextTabstop),\n  handler: (ctrl) =\u003e ctrl.next(),\n  kbOpts: {\n    weight: 100 + 30,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 2\n    /* KeyCode.Tab */\n  }\n}));\nregisterEditorCommand(new CommandCtor({\n  id: \"jumpToPrevSnippetPlaceholder\",\n  precondition: ContextKeyExpr.and(SnippetController2.InSnippetMode, SnippetController2.HasPrevTabstop),\n  handler: (ctrl) =\u003e ctrl.prev(),\n  kbOpts: {\n    weight: 100 + 30,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 1024 | 2\n    /* KeyCode.Tab */\n  }\n}));\nregisterEditorCommand(new CommandCtor({\n  id: \"leaveSnippet\",\n  precondition: SnippetController2.InSnippetMode,\n  handler: (ctrl) =\u003e ctrl.cancel(true),\n  kbOpts: {\n    weight: 100 + 30,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 9,\n    secondary: [\n      1024 | 9\n      /* KeyCode.Escape */\n    ]\n  }\n}));\nregisterEditorCommand(new CommandCtor({\n  id: \"acceptSnippet\",\n  precondition: SnippetController2.InSnippetMode,\n  handler: (ctrl) =\u003e ctrl.finish()\n  // kbOpts: {\n  // \tweight: KeybindingWeight.EditorContrib + 30,\n  // \tkbExpr: EditorContextKeys.textFocus,\n  // \tprimary: KeyCode.Enter,\n  // }\n}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/utils.js\ninit_arrays();\ninit_observable();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/text/getPositionOffsetTransformerFromTextModel.js\nfunction getPositionOffsetTransformerFromTextModel(textModel) {\n  return new PositionOffsetTransformerWithTextModel(textModel);\n}\nvar PositionOffsetTransformerWithTextModel = class extends PositionOffsetTransformerBase {\n  constructor(_textModel) {\n    super();\n    this._textModel = _textModel;\n  }\n  getOffset(position) {\n    return this._textModel.getOffsetAt(position);\n  }\n  getPosition(offset) {\n    return this._textModel.getPositionAt(offset);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/utils.js\nvar array = [];\nfunction getReadonlyEmptyArray() {\n  return array;\n}\nfunction getEndPositionsAfterApplying(edits) {\n  const newRanges = getModifiedRangesAfterApplying(edits);\n  return newRanges.map((range2) =\u003e range2.getEndPosition());\n}\nfunction getModifiedRangesAfterApplying(edits) {\n  const sortPerm = Permutation.createSortPermutation(edits, compareBy((e) =\u003e e.range, Range.compareRangesUsingStarts));\n  const edit2 = new TextEdit(sortPerm.apply(edits));\n  const sortedNewRanges = edit2.getNewRanges();\n  return sortPerm.inverse().apply(sortedNewRanges);\n}\nfunction removeTextReplacementCommonSuffixPrefix(edits, textModel) {\n  const transformer = getPositionOffsetTransformerFromTextModel(textModel);\n  const text2 = textModel.getValue();\n  const stringReplacements = edits.map((edit2) =\u003e transformer.getStringReplacement(edit2));\n  const minimalStringReplacements = stringReplacements.map((replacement) =\u003e replacement.removeCommonSuffixPrefix(text2));\n  return minimalStringReplacements.map((replacement) =\u003e transformer.getTextReplacement(replacement));\n}\nfunction convertItemsToStableObservables(items, store) {\n  const result = observableValue(\"result\", []);\n  const innerObservables = [];\n  store.add(autorun((reader) =\u003e {\n    const itemsValue = items.read(reader);\n    transaction((tx) =\u003e {\n      if (itemsValue.length !== innerObservables.length) {\n        innerObservables.length = itemsValue.length;\n        for (let i2 = 0; i2 \u003c innerObservables.length; i2++) {\n          if (!innerObservables[i2]) {\n            innerObservables[i2] = observableValue(\"item\", itemsValue[i2]);\n          }\n        }\n        result.set([...innerObservables], tx);\n      }\n      innerObservables.forEach((o, i2) =\u003e o.set(itemsValue[i2], tx));\n    });\n  }));\n  return result;\n}\nvar ObservableContextKeyService = class {\n  constructor(_contextKeyService) {\n    this._contextKeyService = _contextKeyService;\n  }\n  bind(key, obs) {\n    return bindContextKey(key, this._contextKeyService, obs instanceof Function ? obs : (reader) =\u003e obs.read(reader));\n  }\n};\nfunction wait(ms, cancellationToken) {\n  return new Promise((resolve3) =\u003e {\n    let d = void 0;\n    const handle = setTimeout(() =\u003e {\n      if (d) {\n        d.dispose();\n      }\n      resolve3();\n    }, ms);\n    if (cancellationToken) {\n      d = cancellationToken.onCancellationRequested(() =\u003e {\n        clearTimeout(handle);\n        if (d) {\n          d.dispose();\n        }\n        resolve3();\n      });\n    }\n  });\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/animation.js\ninit_dom();\ninit_observable();\nvar AnimatedValue = class {\n  constructor(startValue, endValue, durationMs, _interpolationFunction = easeOutExpo2) {\n    this.startValue = startValue;\n    this.endValue = endValue;\n    this.durationMs = durationMs;\n    this._interpolationFunction = _interpolationFunction;\n    this.startTimeMs = Date.now();\n    if (startValue === endValue) {\n      this.durationMs = 0;\n    }\n  }\n  isFinished() {\n    return Date.now() \u003e= this.startTimeMs + this.durationMs;\n  }\n  getValue() {\n    const timePassed = Date.now() - this.startTimeMs;\n    if (timePassed \u003e= this.durationMs) {\n      return this.endValue;\n    }\n    const value = this._interpolationFunction(timePassed, this.startValue, this.endValue - this.startValue, this.durationMs);\n    return value;\n  }\n};\nfunction easeOutExpo2(passedTime, start, length, totalDuration) {\n  return passedTime === totalDuration ? start + length : length * (-Math.pow(2, -10 * passedTime / totalDuration) + 1) + start;\n}\nfunction easeOutCubic2(passedTime, start, length, totalDuration) {\n  return length * ((passedTime = passedTime / totalDuration - 1) * passedTime * passedTime + 1) + start;\n}\nvar ObservableAnimatedValue = class {\n  constructor(initialValue) {\n    this._value = observableValue(this, initialValue);\n  }\n  getValue(reader) {\n    const value = this._value.read(reader);\n    if (!value.isFinished()) {\n      AnimationFrameScheduler.instance.invalidateOnNextAnimationFrame(reader);\n    }\n    return value.getValue();\n  }\n};\nvar AnimationFrameScheduler = class _AnimationFrameScheduler {\n  constructor() {\n    this._counter = observableSignal(this);\n    this._isScheduled = false;\n  }\n  static {\n    this.instance = new _AnimationFrameScheduler();\n  }\n  invalidateOnNextAnimationFrame(reader) {\n    this._counter.read(reader);\n    if (!this._isScheduled) {\n      this._isScheduled = true;\n      getActiveWindow().requestAnimationFrame(() =\u003e {\n        this._isScheduled = false;\n        this._update();\n      });\n    }\n  }\n  _update() {\n    this._counter.trigger(void 0);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/computeGhostText.js\ninit_strings();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/ghostText.js\ninit_arrays();\ninit_strings();\ninit_position();\ninit_range();\ninit_assert();\nvar GhostText = class {\n  constructor(lineNumber, parts) {\n    this.lineNumber = lineNumber;\n    this.parts = parts;\n    assertFn(() =\u003e checkAdjacentItems(parts, (p1, p2) =\u003e p1.column \u003c= p2.column));\n  }\n  equals(other) {\n    return this.lineNumber === other.lineNumber \u0026\u0026 this.parts.length === other.parts.length \u0026\u0026 this.parts.every((part, index) =\u003e part.equals(other.parts[index]));\n  }\n  renderForScreenReader(lineText) {\n    if (this.parts.length === 0) {\n      return \"\";\n    }\n    const lastPart = this.parts[this.parts.length - 1];\n    const cappedLineText = lineText.substr(0, lastPart.column - 1);\n    const text2 = new TextEdit([\n      ...this.parts.map((p) =\u003e new TextReplacement(Range.fromPositions(new Position(1, p.column)), p.lines.map((line) =\u003e line.line).join(\"\\n\")))\n    ]).applyToString(cappedLineText);\n    return text2.substring(this.parts[0].column - 1);\n  }\n  isEmpty() {\n    return this.parts.every((p) =\u003e p.lines.length === 0);\n  }\n  get lineCount() {\n    return 1 + this.parts.reduce((r, p) =\u003e r + p.lines.length - 1, 0);\n  }\n};\nvar GhostTextPart = class {\n  constructor(column, text2, preview, _inlineDecorations = []) {\n    this.column = column;\n    this.text = text2;\n    this.preview = preview;\n    this._inlineDecorations = _inlineDecorations;\n    this.lines = splitLines(this.text).map((line, i2) =\u003e ({\n      line,\n      lineDecorations: LineDecoration.filter(this._inlineDecorations, i2 + 1, 1, line.length + 1)\n    }));\n  }\n  equals(other) {\n    return this.column === other.column \u0026\u0026 this.lines.length === other.lines.length \u0026\u0026 this.lines.every((line, index) =\u003e line.line === other.lines[index].line \u0026\u0026 LineDecoration.equalsArr(line.lineDecorations, other.lines[index].lineDecorations));\n  }\n};\nvar GhostTextReplacement = class {\n  constructor(lineNumber, columnRange, text2, additionalReservedLineCount = 0) {\n    this.lineNumber = lineNumber;\n    this.columnRange = columnRange;\n    this.text = text2;\n    this.additionalReservedLineCount = additionalReservedLineCount;\n    this.parts = [\n      new GhostTextPart(this.columnRange.endColumnExclusive, this.text, false)\n    ];\n    this.newLines = splitLines(this.text);\n  }\n  renderForScreenReader(_lineText) {\n    return this.newLines.join(\"\\n\");\n  }\n  get lineCount() {\n    return this.newLines.length;\n  }\n  isEmpty() {\n    return this.parts.every((p) =\u003e p.lines.length === 0);\n  }\n  equals(other) {\n    return this.lineNumber === other.lineNumber \u0026\u0026 this.columnRange.equals(other.columnRange) \u0026\u0026 this.newLines.length === other.newLines.length \u0026\u0026 this.newLines.every((line, index) =\u003e line === other.newLines[index]) \u0026\u0026 this.additionalReservedLineCount === other.additionalReservedLineCount;\n  }\n};\nfunction ghostTextsOrReplacementsEqual(a, b) {\n  return equals(a, b, ghostTextOrReplacementEquals);\n}\nfunction ghostTextOrReplacementEquals(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (!a || !b) {\n    return false;\n  }\n  if (a instanceof GhostText \u0026\u0026 b instanceof GhostText) {\n    return a.equals(b);\n  }\n  if (a instanceof GhostTextReplacement \u0026\u0026 b instanceof GhostTextReplacement) {\n    return a.equals(b);\n  }\n  return false;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/singleTextEditHelpers.js\ninit_strings();\ninit_range();\ninit_textLength();\nfunction singleTextRemoveCommonPrefix(edit2, model, validModelRange) {\n  const modelRange = validModelRange ? edit2.range.intersectRanges(validModelRange) : edit2.range;\n  if (!modelRange) {\n    return edit2;\n  }\n  const normalizedText = edit2.text.replaceAll(\"\\r\\n\", \"\\n\");\n  const valueToReplace = model.getValueInRange(\n    modelRange,\n    1\n    /* EndOfLinePreference.LF */\n  );\n  const commonPrefixLen = commonPrefixLength(valueToReplace, normalizedText);\n  const start = TextLength.ofText(valueToReplace.substring(0, commonPrefixLen)).addToPosition(edit2.range.getStartPosition());\n  const text2 = normalizedText.substring(commonPrefixLen);\n  const range2 = Range.fromPositions(start, edit2.range.getEndPosition());\n  return new TextReplacement(range2, text2);\n}\nfunction singleTextEditAugments(edit2, base) {\n  return edit2.text.startsWith(base.text) \u0026\u0026 rangeExtends(edit2.range, base.range);\n}\nfunction rangeExtends(extendingRange, rangeToExtend) {\n  return rangeToExtend.getStartPosition().equals(extendingRange.getStartPosition()) \u0026\u0026 rangeToExtend.getEndPosition().isBeforeOrEqual(extendingRange.getEndPosition());\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/computeGhostText.js\nfunction computeGhostText(edit2, model, mode, cursorPosition, previewSuffixLength = 0) {\n  let e = singleTextRemoveCommonPrefix(edit2, model);\n  if (e.range.endLineNumber !== e.range.startLineNumber) {\n    return void 0;\n  }\n  const sourceLine = model.getLineContent(e.range.startLineNumber);\n  const sourceIndentationLength = getLeadingWhitespace(sourceLine).length;\n  const suggestionTouchesIndentation = e.range.startColumn - 1 \u003c= sourceIndentationLength;\n  if (suggestionTouchesIndentation) {\n    const suggestionAddedIndentationLength = getLeadingWhitespace(e.text).length;\n    const replacedIndentation = sourceLine.substring(e.range.startColumn - 1, sourceIndentationLength);\n    const [startPosition, endPosition] = [e.range.getStartPosition(), e.range.getEndPosition()];\n    const newStartPosition = startPosition.column + replacedIndentation.length \u003c= endPosition.column ? startPosition.delta(0, replacedIndentation.length) : endPosition;\n    const rangeThatDoesNotReplaceIndentation = Range.fromPositions(newStartPosition, endPosition);\n    const suggestionWithoutIndentationChange = e.text.startsWith(replacedIndentation) ? e.text.substring(replacedIndentation.length) : e.text.substring(suggestionAddedIndentationLength);\n    e = new TextReplacement(rangeThatDoesNotReplaceIndentation, suggestionWithoutIndentationChange);\n  }\n  const valueToBeReplaced = model.getValueInRange(e.range);\n  const changes = cachingDiff(valueToBeReplaced, e.text);\n  if (!changes) {\n    return void 0;\n  }\n  const lineNumber = e.range.startLineNumber;\n  const parts = new Array();\n  if (mode === \"prefix\") {\n    const filteredChanges = changes.filter((c) =\u003e c.originalLength === 0);\n    if (filteredChanges.length \u003e 1 || filteredChanges.length === 1 \u0026\u0026 filteredChanges[0].originalStart !== valueToBeReplaced.length) {\n      return void 0;\n    }\n  }\n  const previewStartInCompletionText = e.text.length - previewSuffixLength;\n  for (const c of changes) {\n    const insertColumn = e.range.startColumn + c.originalStart + c.originalLength;\n    if (mode === \"subwordSmart\" \u0026\u0026 cursorPosition \u0026\u0026 cursorPosition.lineNumber === e.range.startLineNumber \u0026\u0026 insertColumn \u003c cursorPosition.column) {\n      return void 0;\n    }\n    if (c.originalLength \u003e 0) {\n      return void 0;\n    }\n    if (c.modifiedLength === 0) {\n      continue;\n    }\n    const modifiedEnd = c.modifiedStart + c.modifiedLength;\n    const nonPreviewTextEnd = Math.max(c.modifiedStart, Math.min(modifiedEnd, previewStartInCompletionText));\n    const nonPreviewText = e.text.substring(c.modifiedStart, nonPreviewTextEnd);\n    const italicText = e.text.substring(nonPreviewTextEnd, Math.max(c.modifiedStart, modifiedEnd));\n    if (nonPreviewText.length \u003e 0) {\n      parts.push(new GhostTextPart(insertColumn, nonPreviewText, false));\n    }\n    if (italicText.length \u003e 0) {\n      parts.push(new GhostTextPart(insertColumn, italicText, true));\n    }\n  }\n  return new GhostText(lineNumber, parts);\n}\nvar lastRequest = void 0;\nfunction cachingDiff(originalValue, newValue) {\n  if (lastRequest?.originalValue === originalValue \u0026\u0026 lastRequest?.newValue === newValue) {\n    return lastRequest?.changes;\n  } else {\n    let changes = smartDiff(originalValue, newValue, true);\n    if (changes) {\n      const deletedChars = deletedCharacters(changes);\n      if (deletedChars \u003e 0) {\n        const newChanges = smartDiff(originalValue, newValue, false);\n        if (newChanges \u0026\u0026 deletedCharacters(newChanges) \u003c deletedChars) {\n          changes = newChanges;\n        }\n      }\n    }\n    lastRequest = {\n      originalValue,\n      newValue,\n      changes\n    };\n    return changes;\n  }\n}\nfunction deletedCharacters(changes) {\n  let sum2 = 0;\n  for (const c of changes) {\n    sum2 += c.originalLength;\n  }\n  return sum2;\n}\nfunction smartDiff(originalValue, newValue, smartBracketMatching) {\n  if (originalValue.length \u003e 5e3 || newValue.length \u003e 5e3) {\n    return void 0;\n  }\n  function getMaxCharCode(val) {\n    let maxCharCode2 = 0;\n    for (let i2 = 0, len = val.length; i2 \u003c len; i2++) {\n      const charCode = val.charCodeAt(i2);\n      if (charCode \u003e maxCharCode2) {\n        maxCharCode2 = charCode;\n      }\n    }\n    return maxCharCode2;\n  }\n  const maxCharCode = Math.max(getMaxCharCode(originalValue), getMaxCharCode(newValue));\n  function getUniqueCharCode(id) {\n    if (id \u003c 0) {\n      throw new Error(\"unexpected\");\n    }\n    return maxCharCode + id + 1;\n  }\n  function getElements(source) {\n    let level = 0;\n    let group = 0;\n    const characters = new Int32Array(source.length);\n    for (let i2 = 0, len = source.length; i2 \u003c len; i2++) {\n      if (smartBracketMatching \u0026\u0026 source[i2] === \"(\") {\n        const id = group * 100 + level;\n        characters[i2] = getUniqueCharCode(2 * id);\n        level++;\n      } else if (smartBracketMatching \u0026\u0026 source[i2] === \")\") {\n        level = Math.max(level - 1, 0);\n        const id = group * 100 + level;\n        characters[i2] = getUniqueCharCode(2 * id + 1);\n        if (level === 0) {\n          group++;\n        }\n      } else {\n        characters[i2] = source.charCodeAt(i2);\n      }\n    }\n    return characters;\n  }\n  const elements1 = getElements(originalValue);\n  const elements2 = getElements(newValue);\n  return new LcsDiff({ getElements: () =\u003e elements1 }, { getElements: () =\u003e elements2 }).ComputeDiff(false).changes;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js\ninit_arrays();\ninit_arraysFind();\ninit_cancellation();\ninit_equals();\ninit_lifecycle();\ninit_observable();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/observableInternal/experimental/reducer.js\ninit_deps();\ninit_transaction();\ninit_debugName();\ninit_derivedImpl();\ninit_debugLocation();\nfunction observableReducerSettable(owner, options2) {\n  let prevValue = void 0;\n  let hasValue = false;\n  const d = new DerivedWithSetter(new DebugNameData(owner, void 0, options2.update), (reader, changeSummary) =\u003e {\n    if (!hasValue) {\n      prevValue = options2.initial instanceof Function ? options2.initial() : options2.initial;\n      hasValue = true;\n    }\n    const newValue = options2.update(reader, prevValue, changeSummary);\n    prevValue = newValue;\n    return newValue;\n  }, options2.changeTracker, () =\u003e {\n    if (hasValue) {\n      options2.disposeFinal?.(prevValue);\n      hasValue = false;\n    }\n  }, options2.equalityComparer ?? strictEquals, (value, tx, change) =\u003e {\n    if (!hasValue) {\n      throw new BugIndicatingError(\"Can only set when there is a listener! This is to prevent leaks.\");\n    }\n    subtransaction(tx, (tx2) =\u003e {\n      prevValue = value;\n      d.setValue(value, tx2, change);\n    });\n  }, DebugLocation.ofCaller());\n  return d;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js\ninit_types();\ninit_configuration();\ninit_instantiation();\ninit_log();\ninit_languages();\ninit_languageConfigurationRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/textModelStringEdit.js\ninit_offsetRange();\nfunction offsetEditFromContentChanges(contentChanges) {\n  const editsArr = contentChanges.map((c) =\u003e new StringReplacement(OffsetRange.ofStartAndLength(c.rangeOffset, c.rangeLength), c.text));\n  editsArr.reverse();\n  const edits = new StringEdit(editsArr);\n  return edits;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js\ninit_errors();\ninit_filters();\ninit_observable();\ninit_strings();\ninit_offsetRange();\ninit_range();\ninit_textLength();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/legacyLinesDiffComputer.js\ninit_strings();\ninit_range();\ninit_assert();\ninit_lineRange();\nvar MINIMUM_MATCHING_CHARACTER_LENGTH = 3;\nvar LegacyLinesDiffComputer = class {\n  computeDiff(originalLines, modifiedLines, options2) {\n    const diffComputer = new DiffComputer(originalLines, modifiedLines, {\n      maxComputationTime: options2.maxComputationTimeMs,\n      shouldIgnoreTrimWhitespace: options2.ignoreTrimWhitespace,\n      shouldComputeCharChanges: true,\n      shouldMakePrettyDiff: true,\n      shouldPostProcessCharChanges: true\n    });\n    const result = diffComputer.computeDiff();\n    const changes = [];\n    let lastChange = null;\n    for (const c of result.changes) {\n      let originalRange;\n      if (c.originalEndLineNumber === 0) {\n        originalRange = new LineRange(c.originalStartLineNumber + 1, c.originalStartLineNumber + 1);\n      } else {\n        originalRange = new LineRange(c.originalStartLineNumber, c.originalEndLineNumber + 1);\n      }\n      let modifiedRange;\n      if (c.modifiedEndLineNumber === 0) {\n        modifiedRange = new LineRange(c.modifiedStartLineNumber + 1, c.modifiedStartLineNumber + 1);\n      } else {\n        modifiedRange = new LineRange(c.modifiedStartLineNumber, c.modifiedEndLineNumber + 1);\n      }\n      let change = new DetailedLineRangeMapping(originalRange, modifiedRange, c.charChanges?.map((c2) =\u003e new RangeMapping(new Range(c2.originalStartLineNumber, c2.originalStartColumn, c2.originalEndLineNumber, c2.originalEndColumn), new Range(c2.modifiedStartLineNumber, c2.modifiedStartColumn, c2.modifiedEndLineNumber, c2.modifiedEndColumn))));\n      if (lastChange) {\n        if (lastChange.modified.endLineNumberExclusive === change.modified.startLineNumber || lastChange.original.endLineNumberExclusive === change.original.startLineNumber) {\n          change = new DetailedLineRangeMapping(lastChange.original.join(change.original), lastChange.modified.join(change.modified), lastChange.innerChanges \u0026\u0026 change.innerChanges ? lastChange.innerChanges.concat(change.innerChanges) : void 0);\n          changes.pop();\n        }\n      }\n      changes.push(change);\n      lastChange = change;\n    }\n    assertFn(() =\u003e {\n      return checkAdjacentItems(changes, (m1, m2) =\u003e m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive \u0026\u0026 // There has to be an unchanged line in between (otherwise both diffs should have been joined)\n      m1.original.endLineNumberExclusive \u003c m2.original.startLineNumber \u0026\u0026 m1.modified.endLineNumberExclusive \u003c m2.modified.startLineNumber);\n    });\n    return new LinesDiff(changes, [], result.quitEarly);\n  }\n};\nfunction computeDiff(originalSequence, modifiedSequence, continueProcessingPredicate, pretty) {\n  const diffAlgo = new LcsDiff(originalSequence, modifiedSequence, continueProcessingPredicate);\n  return diffAlgo.ComputeDiff(pretty);\n}\nvar LineSequence2 = class {\n  constructor(lines) {\n    const startColumns = [];\n    const endColumns = [];\n    for (let i2 = 0, length = lines.length; i2 \u003c length; i2++) {\n      startColumns[i2] = getFirstNonBlankColumn(lines[i2], 1);\n      endColumns[i2] = getLastNonBlankColumn(lines[i2], 1);\n    }\n    this.lines = lines;\n    this._startColumns = startColumns;\n    this._endColumns = endColumns;\n  }\n  getElements() {\n    const elements = [];\n    for (let i2 = 0, len = this.lines.length; i2 \u003c len; i2++) {\n      elements[i2] = this.lines[i2].substring(this._startColumns[i2] - 1, this._endColumns[i2] - 1);\n    }\n    return elements;\n  }\n  getStrictElement(index) {\n    return this.lines[index];\n  }\n  getStartLineNumber(i2) {\n    return i2 + 1;\n  }\n  getEndLineNumber(i2) {\n    return i2 + 1;\n  }\n  createCharSequence(shouldIgnoreTrimWhitespace, startIndex, endIndex) {\n    const charCodes = [];\n    const lineNumbers = [];\n    const columns = [];\n    let len = 0;\n    for (let index = startIndex; index \u003c= endIndex; index++) {\n      const lineContent = this.lines[index];\n      const startColumn = shouldIgnoreTrimWhitespace ? this._startColumns[index] : 1;\n      const endColumn = shouldIgnoreTrimWhitespace ? this._endColumns[index] : lineContent.length + 1;\n      for (let col = startColumn; col \u003c endColumn; col++) {\n        charCodes[len] = lineContent.charCodeAt(col - 1);\n        lineNumbers[len] = index + 1;\n        columns[len] = col;\n        len++;\n      }\n      if (!shouldIgnoreTrimWhitespace \u0026\u0026 index \u003c endIndex) {\n        charCodes[len] = 10;\n        lineNumbers[len] = index + 1;\n        columns[len] = lineContent.length + 1;\n        len++;\n      }\n    }\n    return new CharSequence(charCodes, lineNumbers, columns);\n  }\n};\nvar CharSequence = class {\n  constructor(charCodes, lineNumbers, columns) {\n    this._charCodes = charCodes;\n    this._lineNumbers = lineNumbers;\n    this._columns = columns;\n  }\n  toString() {\n    return \"[\" + this._charCodes.map((s, idx) =\u003e (s === 10 ? \"\\\\n\" : String.fromCharCode(s)) + `-(${this._lineNumbers[idx]},${this._columns[idx]})`).join(\", \") + \"]\";\n  }\n  _assertIndex(index, arr) {\n    if (index \u003c 0 || index \u003e= arr.length) {\n      throw new Error(`Illegal index`);\n    }\n  }\n  getElements() {\n    return this._charCodes;\n  }\n  getStartLineNumber(i2) {\n    if (i2 \u003e 0 \u0026\u0026 i2 === this._lineNumbers.length) {\n      return this.getEndLineNumber(i2 - 1);\n    }\n    this._assertIndex(i2, this._lineNumbers);\n    return this._lineNumbers[i2];\n  }\n  getEndLineNumber(i2) {\n    if (i2 === -1) {\n      return this.getStartLineNumber(i2 + 1);\n    }\n    this._assertIndex(i2, this._lineNumbers);\n    if (this._charCodes[i2] === 10) {\n      return this._lineNumbers[i2] + 1;\n    }\n    return this._lineNumbers[i2];\n  }\n  getStartColumn(i2) {\n    if (i2 \u003e 0 \u0026\u0026 i2 === this._columns.length) {\n      return this.getEndColumn(i2 - 1);\n    }\n    this._assertIndex(i2, this._columns);\n    return this._columns[i2];\n  }\n  getEndColumn(i2) {\n    if (i2 === -1) {\n      return this.getStartColumn(i2 + 1);\n    }\n    this._assertIndex(i2, this._columns);\n    if (this._charCodes[i2] === 10) {\n      return 1;\n    }\n    return this._columns[i2] + 1;\n  }\n};\nvar CharChange = class _CharChange {\n  constructor(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn) {\n    this.originalStartLineNumber = originalStartLineNumber;\n    this.originalStartColumn = originalStartColumn;\n    this.originalEndLineNumber = originalEndLineNumber;\n    this.originalEndColumn = originalEndColumn;\n    this.modifiedStartLineNumber = modifiedStartLineNumber;\n    this.modifiedStartColumn = modifiedStartColumn;\n    this.modifiedEndLineNumber = modifiedEndLineNumber;\n    this.modifiedEndColumn = modifiedEndColumn;\n  }\n  static createFromDiffChange(diffChange, originalCharSequence, modifiedCharSequence) {\n    const originalStartLineNumber = originalCharSequence.getStartLineNumber(diffChange.originalStart);\n    const originalStartColumn = originalCharSequence.getStartColumn(diffChange.originalStart);\n    const originalEndLineNumber = originalCharSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1);\n    const originalEndColumn = originalCharSequence.getEndColumn(diffChange.originalStart + diffChange.originalLength - 1);\n    const modifiedStartLineNumber = modifiedCharSequence.getStartLineNumber(diffChange.modifiedStart);\n    const modifiedStartColumn = modifiedCharSequence.getStartColumn(diffChange.modifiedStart);\n    const modifiedEndLineNumber = modifiedCharSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n    const modifiedEndColumn = modifiedCharSequence.getEndColumn(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n    return new _CharChange(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn);\n  }\n};\nfunction postProcessCharChanges(rawChanges) {\n  if (rawChanges.length \u003c= 1) {\n    return rawChanges;\n  }\n  const result = [rawChanges[0]];\n  let prevChange = result[0];\n  for (let i2 = 1, len = rawChanges.length; i2 \u003c len; i2++) {\n    const currChange = rawChanges[i2];\n    const originalMatchingLength = currChange.originalStart - (prevChange.originalStart + prevChange.originalLength);\n    const modifiedMatchingLength = currChange.modifiedStart - (prevChange.modifiedStart + prevChange.modifiedLength);\n    const matchingLength = Math.min(originalMatchingLength, modifiedMatchingLength);\n    if (matchingLength \u003c MINIMUM_MATCHING_CHARACTER_LENGTH) {\n      prevChange.originalLength = currChange.originalStart + currChange.originalLength - prevChange.originalStart;\n      prevChange.modifiedLength = currChange.modifiedStart + currChange.modifiedLength - prevChange.modifiedStart;\n    } else {\n      result.push(currChange);\n      prevChange = currChange;\n    }\n  }\n  return result;\n}\nvar LineChange = class _LineChange {\n  constructor(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges) {\n    this.originalStartLineNumber = originalStartLineNumber;\n    this.originalEndLineNumber = originalEndLineNumber;\n    this.modifiedStartLineNumber = modifiedStartLineNumber;\n    this.modifiedEndLineNumber = modifiedEndLineNumber;\n    this.charChanges = charChanges;\n  }\n  static createFromDiffResult(shouldIgnoreTrimWhitespace, diffChange, originalLineSequence, modifiedLineSequence, continueCharDiff, shouldComputeCharChanges, shouldPostProcessCharChanges) {\n    let originalStartLineNumber;\n    let originalEndLineNumber;\n    let modifiedStartLineNumber;\n    let modifiedEndLineNumber;\n    let charChanges = void 0;\n    if (diffChange.originalLength === 0) {\n      originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart) - 1;\n      originalEndLineNumber = 0;\n    } else {\n      originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart);\n      originalEndLineNumber = originalLineSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1);\n    }\n    if (diffChange.modifiedLength === 0) {\n      modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart) - 1;\n      modifiedEndLineNumber = 0;\n    } else {\n      modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart);\n      modifiedEndLineNumber = modifiedLineSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n    }\n    if (shouldComputeCharChanges \u0026\u0026 diffChange.originalLength \u003e 0 \u0026\u0026 diffChange.originalLength \u003c 20 \u0026\u0026 diffChange.modifiedLength \u003e 0 \u0026\u0026 diffChange.modifiedLength \u003c 20 \u0026\u0026 continueCharDiff()) {\n      const originalCharSequence = originalLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.originalStart, diffChange.originalStart + diffChange.originalLength - 1);\n      const modifiedCharSequence = modifiedLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.modifiedStart, diffChange.modifiedStart + diffChange.modifiedLength - 1);\n      if (originalCharSequence.getElements().length \u003e 0 \u0026\u0026 modifiedCharSequence.getElements().length \u003e 0) {\n        let rawChanges = computeDiff(originalCharSequence, modifiedCharSequence, continueCharDiff, true).changes;\n        if (shouldPostProcessCharChanges) {\n          rawChanges = postProcessCharChanges(rawChanges);\n        }\n        charChanges = [];\n        for (let i2 = 0, length = rawChanges.length; i2 \u003c length; i2++) {\n          charChanges.push(CharChange.createFromDiffChange(rawChanges[i2], originalCharSequence, modifiedCharSequence));\n        }\n      }\n    }\n    return new _LineChange(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges);\n  }\n};\nvar DiffComputer = class {\n  constructor(originalLines, modifiedLines, opts) {\n    this.shouldComputeCharChanges = opts.shouldComputeCharChanges;\n    this.shouldPostProcessCharChanges = opts.shouldPostProcessCharChanges;\n    this.shouldIgnoreTrimWhitespace = opts.shouldIgnoreTrimWhitespace;\n    this.shouldMakePrettyDiff = opts.shouldMakePrettyDiff;\n    this.originalLines = originalLines;\n    this.modifiedLines = modifiedLines;\n    this.original = new LineSequence2(originalLines);\n    this.modified = new LineSequence2(modifiedLines);\n    this.continueLineDiff = createContinueProcessingPredicate(opts.maxComputationTime);\n    this.continueCharDiff = createContinueProcessingPredicate(opts.maxComputationTime === 0 ? 0 : Math.min(opts.maxComputationTime, 5e3));\n  }\n  computeDiff() {\n    if (this.original.lines.length === 1 \u0026\u0026 this.original.lines[0].length === 0) {\n      if (this.modified.lines.length === 1 \u0026\u0026 this.modified.lines[0].length === 0) {\n        return {\n          quitEarly: false,\n          changes: []\n        };\n      }\n      return {\n        quitEarly: false,\n        changes: [{\n          originalStartLineNumber: 1,\n          originalEndLineNumber: 1,\n          modifiedStartLineNumber: 1,\n          modifiedEndLineNumber: this.modified.lines.length,\n          charChanges: void 0\n        }]\n      };\n    }\n    if (this.modified.lines.length === 1 \u0026\u0026 this.modified.lines[0].length === 0) {\n      return {\n        quitEarly: false,\n        changes: [{\n          originalStartLineNumber: 1,\n          originalEndLineNumber: this.original.lines.length,\n          modifiedStartLineNumber: 1,\n          modifiedEndLineNumber: 1,\n          charChanges: void 0\n        }]\n      };\n    }\n    const diffResult = computeDiff(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff);\n    const rawChanges = diffResult.changes;\n    const quitEarly = diffResult.quitEarly;\n    if (this.shouldIgnoreTrimWhitespace) {\n      const lineChanges = [];\n      for (let i2 = 0, length = rawChanges.length; i2 \u003c length; i2++) {\n        lineChanges.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, rawChanges[i2], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n      }\n      return {\n        quitEarly,\n        changes: lineChanges\n      };\n    }\n    const result = [];\n    let originalLineIndex = 0;\n    let modifiedLineIndex = 0;\n    for (let i2 = -1, len = rawChanges.length; i2 \u003c len; i2++) {\n      const nextChange = i2 + 1 \u003c len ? rawChanges[i2 + 1] : null;\n      const originalStop = nextChange ? nextChange.originalStart : this.originalLines.length;\n      const modifiedStop = nextChange ? nextChange.modifiedStart : this.modifiedLines.length;\n      while (originalLineIndex \u003c originalStop \u0026\u0026 modifiedLineIndex \u003c modifiedStop) {\n        const originalLine = this.originalLines[originalLineIndex];\n        const modifiedLine = this.modifiedLines[modifiedLineIndex];\n        if (originalLine !== modifiedLine) {\n          {\n            let originalStartColumn = getFirstNonBlankColumn(originalLine, 1);\n            let modifiedStartColumn = getFirstNonBlankColumn(modifiedLine, 1);\n            while (originalStartColumn \u003e 1 \u0026\u0026 modifiedStartColumn \u003e 1) {\n              const originalChar = originalLine.charCodeAt(originalStartColumn - 2);\n              const modifiedChar = modifiedLine.charCodeAt(modifiedStartColumn - 2);\n              if (originalChar !== modifiedChar) {\n                break;\n              }\n              originalStartColumn--;\n              modifiedStartColumn--;\n            }\n            if (originalStartColumn \u003e 1 || modifiedStartColumn \u003e 1) {\n              this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, 1, originalStartColumn, modifiedLineIndex + 1, 1, modifiedStartColumn);\n            }\n          }\n          {\n            let originalEndColumn = getLastNonBlankColumn(originalLine, 1);\n            let modifiedEndColumn = getLastNonBlankColumn(modifiedLine, 1);\n            const originalMaxColumn = originalLine.length + 1;\n            const modifiedMaxColumn = modifiedLine.length + 1;\n            while (originalEndColumn \u003c originalMaxColumn \u0026\u0026 modifiedEndColumn \u003c modifiedMaxColumn) {\n              const originalChar = originalLine.charCodeAt(originalEndColumn - 1);\n              const modifiedChar = originalLine.charCodeAt(modifiedEndColumn - 1);\n              if (originalChar !== modifiedChar) {\n                break;\n              }\n              originalEndColumn++;\n              modifiedEndColumn++;\n            }\n            if (originalEndColumn \u003c originalMaxColumn || modifiedEndColumn \u003c modifiedMaxColumn) {\n              this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, originalEndColumn, originalMaxColumn, modifiedLineIndex + 1, modifiedEndColumn, modifiedMaxColumn);\n            }\n          }\n        }\n        originalLineIndex++;\n        modifiedLineIndex++;\n      }\n      if (nextChange) {\n        result.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, nextChange, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n        originalLineIndex += nextChange.originalLength;\n        modifiedLineIndex += nextChange.modifiedLength;\n      }\n    }\n    return {\n      quitEarly,\n      changes: result\n    };\n  }\n  _pushTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) {\n    if (this._mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn)) {\n      return;\n    }\n    let charChanges = void 0;\n    if (this.shouldComputeCharChanges) {\n      charChanges = [new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)];\n    }\n    result.push(new LineChange(originalLineNumber, originalLineNumber, modifiedLineNumber, modifiedLineNumber, charChanges));\n  }\n  _mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) {\n    const len = result.length;\n    if (len === 0) {\n      return false;\n    }\n    const prevChange = result[len - 1];\n    if (prevChange.originalEndLineNumber === 0 || prevChange.modifiedEndLineNumber === 0) {\n      return false;\n    }\n    if (prevChange.originalEndLineNumber === originalLineNumber \u0026\u0026 prevChange.modifiedEndLineNumber === modifiedLineNumber) {\n      if (this.shouldComputeCharChanges \u0026\u0026 prevChange.charChanges) {\n        prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn));\n      }\n      return true;\n    }\n    if (prevChange.originalEndLineNumber + 1 === originalLineNumber \u0026\u0026 prevChange.modifiedEndLineNumber + 1 === modifiedLineNumber) {\n      prevChange.originalEndLineNumber = originalLineNumber;\n      prevChange.modifiedEndLineNumber = modifiedLineNumber;\n      if (this.shouldComputeCharChanges \u0026\u0026 prevChange.charChanges) {\n        prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn));\n      }\n      return true;\n    }\n    return false;\n  }\n};\nfunction getFirstNonBlankColumn(txt, defaultValue) {\n  const r = firstNonWhitespaceIndex(txt);\n  if (r === -1) {\n    return defaultValue;\n  }\n  return r + 1;\n}\nfunction getLastNonBlankColumn(txt, defaultValue) {\n  const r = lastNonWhitespaceIndex(txt);\n  if (r === -1) {\n    return defaultValue;\n  }\n  return r + 2;\n}\nfunction createContinueProcessingPredicate(maximumRuntime) {\n  if (maximumRuntime === 0) {\n    return () =\u003e true;\n  }\n  const startTime = Date.now();\n  return () =\u003e {\n    return Date.now() - startTime \u003c maximumRuntime;\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/diff/linesDiffComputers.js\nvar linesDiffComputers = {\n  getLegacy: () =\u003e new LegacyLinesDiffComputer(),\n  getDefault: () =\u003e new DefaultLinesDiffComputer()\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js\ninit_languages();\nvar InlineSuggestionItem;\n(function(InlineSuggestionItem2) {\n  function create4(data, textModel) {\n    if (!data.isInlineEdit) {\n      return InlineCompletionItem.create(data, textModel);\n    } else {\n      return InlineEditItem.create(data, textModel);\n    }\n  }\n  InlineSuggestionItem2.create = create4;\n})(InlineSuggestionItem || (InlineSuggestionItem = {}));\nvar InlineSuggestionItemBase = class {\n  constructor(_data, identity2, displayLocation) {\n    this._data = _data;\n    this.identity = identity2;\n    this.displayLocation = displayLocation;\n  }\n  /**\n   * A reference to the original inline completion list this inline completion has been constructed from.\n   * Used for event data to ensure referential equality.\n  */\n  get source() {\n    return this._data.source;\n  }\n  get isFromExplicitRequest() {\n    return this._data.context.triggerKind === InlineCompletionTriggerKind.Explicit;\n  }\n  get forwardStable() {\n    return this.source.inlineSuggestions.enableForwardStability ?? false;\n  }\n  get editRange() {\n    return this.getSingleTextEdit().range;\n  }\n  get targetRange() {\n    return this.displayLocation?.range ?? this.editRange;\n  }\n  get insertText() {\n    return this.getSingleTextEdit().text;\n  }\n  get semanticId() {\n    return this.hash;\n  }\n  get action() {\n    return this._sourceInlineCompletion.action;\n  }\n  get command() {\n    return this._sourceInlineCompletion.command;\n  }\n  get warning() {\n    return this._sourceInlineCompletion.warning;\n  }\n  get showInlineEditMenu() {\n    return !!this._sourceInlineCompletion.showInlineEditMenu;\n  }\n  get hash() {\n    return JSON.stringify([\n      this.getSingleTextEdit().text,\n      this.getSingleTextEdit().range.getStartPosition().toString()\n    ]);\n  }\n  get requestUuid() {\n    return this._data.context.requestUuid;\n  }\n  get partialAccepts() {\n    return this._data.partialAccepts;\n  }\n  /**\n   * A reference to the original inline completion this inline completion has been constructed from.\n   * Used for event data to ensure referential equality.\n  */\n  get _sourceInlineCompletion() {\n    return this._data.sourceInlineCompletion;\n  }\n  addRef() {\n    this.identity.addRef();\n    this.source.addRef();\n  }\n  removeRef() {\n    this.identity.removeRef();\n    this.source.removeRef();\n  }\n  reportInlineEditShown(commandService, viewKind, viewData) {\n    this._data.reportInlineEditShown(commandService, this.insertText, viewKind, viewData);\n  }\n  reportPartialAccept(acceptedCharacters, info, partialAcceptance) {\n    this._data.reportPartialAccept(acceptedCharacters, info, partialAcceptance);\n  }\n  reportEndOfLife(reason) {\n    this._data.reportEndOfLife(reason);\n  }\n  setEndOfLifeReason(reason) {\n    this._data.setEndOfLifeReason(reason);\n  }\n  reportInlineEditError(reason) {\n    this._data.reportInlineEditError(reason);\n  }\n  setIsPreceeded(item) {\n    this._data.setIsPreceeded(item.partialAccepts);\n  }\n  /**\n   * Avoid using this method. Instead introduce getters for the needed properties.\n  */\n  getSourceCompletion() {\n    return this._sourceInlineCompletion;\n  }\n};\nvar InlineSuggestionIdentity = class _InlineSuggestionIdentity {\n  constructor() {\n    this._onDispose = observableSignal(this);\n    this._refCount = 1;\n    this.id = \"InlineCompletionIdentity\" + _InlineSuggestionIdentity.idCounter++;\n  }\n  static {\n    this.idCounter = 0;\n  }\n  addRef() {\n    this._refCount++;\n  }\n  removeRef() {\n    this._refCount--;\n    if (this._refCount === 0) {\n      this._onDispose.trigger(void 0);\n    }\n  }\n};\nvar InlineSuggestDisplayLocation = class _InlineSuggestDisplayLocation {\n  static create(displayLocation) {\n    return new _InlineSuggestDisplayLocation(displayLocation.range, displayLocation.label, displayLocation.kind);\n  }\n  constructor(range2, label, kind) {\n    this.range = range2;\n    this.label = label;\n    this.kind = kind;\n  }\n  withEdit(edit2, positionOffsetTransformer) {\n    const offsetRange = new OffsetRange(positionOffsetTransformer.getOffset(this.range.getStartPosition()), positionOffsetTransformer.getOffset(this.range.getEndPosition()));\n    const newOffsetRange = applyEditsToRanges([offsetRange], edit2)[0];\n    if (!newOffsetRange) {\n      return void 0;\n    }\n    const newRange = positionOffsetTransformer.getRange(newOffsetRange);\n    return new _InlineSuggestDisplayLocation(newRange, this.label, this.kind);\n  }\n};\nvar InlineCompletionItem = class _InlineCompletionItem extends InlineSuggestionItemBase {\n  static create(data, textModel) {\n    const identity2 = new InlineSuggestionIdentity();\n    const transformer = getPositionOffsetTransformerFromTextModel(textModel);\n    const insertText = data.insertText.replace(/\\r\\n|\\r|\\n/g, textModel.getEOL());\n    const edit2 = reshapeInlineCompletion(new StringReplacement(transformer.getOffsetRange(data.range), insertText), textModel);\n    const trimmedEdit = edit2.removeCommonSuffixAndPrefix(textModel.getValue());\n    const textEdit = transformer.getTextReplacement(edit2);\n    const displayLocation = data.displayLocation ? InlineSuggestDisplayLocation.create(data.displayLocation) : void 0;\n    return new _InlineCompletionItem(edit2, trimmedEdit, textEdit, textEdit.range, data.snippetInfo, data.additionalTextEdits, data, identity2, displayLocation);\n  }\n  constructor(_edit, _trimmedEdit, _textEdit, _originalRange, snippetInfo, additionalTextEdits, data, identity2, displayLocation) {\n    super(data, identity2, displayLocation);\n    this._edit = _edit;\n    this._trimmedEdit = _trimmedEdit;\n    this._textEdit = _textEdit;\n    this._originalRange = _originalRange;\n    this.snippetInfo = snippetInfo;\n    this.additionalTextEdits = additionalTextEdits;\n    this.isInlineEdit = false;\n  }\n  get hash() {\n    return JSON.stringify(this._trimmedEdit.toJson());\n  }\n  getSingleTextEdit() {\n    return this._textEdit;\n  }\n  withIdentity(identity2) {\n    return new _InlineCompletionItem(this._edit, this._trimmedEdit, this._textEdit, this._originalRange, this.snippetInfo, this.additionalTextEdits, this._data, identity2, this.displayLocation);\n  }\n  withEdit(textModelEdit, textModel) {\n    const newEditRange = applyEditsToRanges([this._edit.replaceRange], textModelEdit);\n    if (newEditRange.length === 0) {\n      return void 0;\n    }\n    const newEdit = new StringReplacement(newEditRange[0], this._textEdit.text);\n    const positionOffsetTransformer = getPositionOffsetTransformerFromTextModel(textModel);\n    const newTextEdit = positionOffsetTransformer.getTextReplacement(newEdit);\n    let newDisplayLocation = this.displayLocation;\n    if (newDisplayLocation) {\n      newDisplayLocation = newDisplayLocation.withEdit(textModelEdit, positionOffsetTransformer);\n      if (!newDisplayLocation) {\n        return void 0;\n      }\n    }\n    const trimmedEdit = newEdit.removeCommonSuffixAndPrefix(textModel.getValue());\n    return new _InlineCompletionItem(newEdit, trimmedEdit, newTextEdit, this._originalRange, this.snippetInfo, this.additionalTextEdits, this._data, this.identity, newDisplayLocation);\n  }\n  canBeReused(model, position) {\n    const updatedRange = this._textEdit.range;\n    const result = !!updatedRange \u0026\u0026 updatedRange.containsPosition(position) \u0026\u0026 this.isVisible(model, position) \u0026\u0026 TextLength.ofRange(updatedRange).isGreaterThanOrEqualTo(TextLength.ofRange(this._originalRange));\n    return result;\n  }\n  isVisible(model, cursorPosition) {\n    const singleTextEdit = this.getSingleTextEdit();\n    return inlineCompletionIsVisible(singleTextEdit, this._originalRange, model, cursorPosition);\n  }\n};\nfunction inlineCompletionIsVisible(singleTextEdit, originalRange, model, cursorPosition) {\n  const minimizedReplacement = singleTextRemoveCommonPrefix(singleTextEdit, model);\n  const editRange = singleTextEdit.range;\n  if (!editRange || originalRange \u0026\u0026 !originalRange.getStartPosition().equals(editRange.getStartPosition()) || cursorPosition.lineNumber !== minimizedReplacement.range.startLineNumber || minimizedReplacement.isEmpty) {\n    return false;\n  }\n  const originalValue = model.getValueInRange(\n    minimizedReplacement.range,\n    1\n    /* EndOfLinePreference.LF */\n  );\n  const filterText = minimizedReplacement.text;\n  const cursorPosIndex = Math.max(0, cursorPosition.column - minimizedReplacement.range.startColumn);\n  let filterTextBefore = filterText.substring(0, cursorPosIndex);\n  let filterTextAfter = filterText.substring(cursorPosIndex);\n  let originalValueBefore = originalValue.substring(0, cursorPosIndex);\n  let originalValueAfter = originalValue.substring(cursorPosIndex);\n  const originalValueIndent = model.getLineIndentColumn(minimizedReplacement.range.startLineNumber);\n  if (minimizedReplacement.range.startColumn \u003c= originalValueIndent) {\n    originalValueBefore = originalValueBefore.trimStart();\n    if (originalValueBefore.length === 0) {\n      originalValueAfter = originalValueAfter.trimStart();\n    }\n    filterTextBefore = filterTextBefore.trimStart();\n    if (filterTextBefore.length === 0) {\n      filterTextAfter = filterTextAfter.trimStart();\n    }\n  }\n  return filterTextBefore.startsWith(originalValueBefore) \u0026\u0026 !!matchesSubString(originalValueAfter, filterTextAfter);\n}\nvar InlineEditItem = class _InlineEditItem extends InlineSuggestionItemBase {\n  static create(data, textModel) {\n    const offsetEdit = getStringEdit(textModel, data.range, data.insertText);\n    const text2 = new TextModelText(textModel);\n    const textEdit = TextEdit.fromStringEdit(offsetEdit, text2);\n    const singleTextEdit = textEdit.toReplacement(text2);\n    const identity2 = new InlineSuggestionIdentity();\n    const edits = offsetEdit.replacements.map((edit2) =\u003e {\n      const replacedRange = Range.fromPositions(textModel.getPositionAt(edit2.replaceRange.start), textModel.getPositionAt(edit2.replaceRange.endExclusive));\n      const replacedText = textModel.getValueInRange(replacedRange);\n      return SingleUpdatedNextEdit.create(edit2, replacedText);\n    });\n    const displayLocation = data.displayLocation ? InlineSuggestDisplayLocation.create(data.displayLocation) : void 0;\n    return new _InlineEditItem(offsetEdit, singleTextEdit, data, identity2, edits, displayLocation, false, textModel.getVersionId());\n  }\n  constructor(_edit, _textEdit, data, identity2, _edits, displayLocation, _lastChangePartOfInlineEdit = false, _inlineEditModelVersion) {\n    super(data, identity2, displayLocation);\n    this._edit = _edit;\n    this._textEdit = _textEdit;\n    this._edits = _edits;\n    this._lastChangePartOfInlineEdit = _lastChangePartOfInlineEdit;\n    this._inlineEditModelVersion = _inlineEditModelVersion;\n    this.snippetInfo = void 0;\n    this.additionalTextEdits = [];\n    this.isInlineEdit = true;\n  }\n  get updatedEditModelVersion() {\n    return this._inlineEditModelVersion;\n  }\n  get updatedEdit() {\n    return this._edit;\n  }\n  getSingleTextEdit() {\n    return this._textEdit;\n  }\n  withIdentity(identity2) {\n    return new _InlineEditItem(this._edit, this._textEdit, this._data, identity2, this._edits, this.displayLocation, this._lastChangePartOfInlineEdit, this._inlineEditModelVersion);\n  }\n  canBeReused(model, position) {\n    return this._lastChangePartOfInlineEdit \u0026\u0026 this.updatedEditModelVersion === model.getVersionId();\n  }\n  withEdit(textModelChanges, textModel) {\n    const edit2 = this._applyTextModelChanges(textModelChanges, this._edits, textModel);\n    return edit2;\n  }\n  _applyTextModelChanges(textModelChanges, edits, textModel) {\n    edits = edits.map((innerEdit) =\u003e innerEdit.applyTextModelChanges(textModelChanges));\n    if (edits.some((edit2) =\u003e edit2.edit === void 0)) {\n      return void 0;\n    }\n    const newTextModelVersion = textModel.getVersionId();\n    let inlineEditModelVersion = this._inlineEditModelVersion;\n    const lastChangePartOfInlineEdit = edits.some((edit2) =\u003e edit2.lastChangeUpdatedEdit);\n    if (lastChangePartOfInlineEdit) {\n      inlineEditModelVersion = newTextModelVersion ?? -1;\n    }\n    if (newTextModelVersion === null || inlineEditModelVersion + 20 \u003c newTextModelVersion) {\n      return void 0;\n    }\n    edits = edits.filter((innerEdit) =\u003e !innerEdit.edit.isEmpty);\n    if (edits.length === 0) {\n      return void 0;\n    }\n    const newEdit = new StringEdit(edits.map((edit2) =\u003e edit2.edit));\n    const positionOffsetTransformer = getPositionOffsetTransformerFromTextModel(textModel);\n    const newTextEdit = positionOffsetTransformer.getTextEdit(newEdit).toReplacement(new TextModelText(textModel));\n    let newDisplayLocation = this.displayLocation;\n    if (newDisplayLocation) {\n      newDisplayLocation = newDisplayLocation.withEdit(textModelChanges, positionOffsetTransformer);\n      if (!newDisplayLocation) {\n        return void 0;\n      }\n    }\n    return new _InlineEditItem(newEdit, newTextEdit, this._data, this.identity, edits, newDisplayLocation, lastChangePartOfInlineEdit, inlineEditModelVersion);\n  }\n};\nfunction getStringEdit(textModel, editRange, replaceText) {\n  const eol = textModel.getEOL();\n  const editOriginalText = textModel.getValueInRange(editRange);\n  const editReplaceText = replaceText.replace(/\\r\\n|\\r|\\n/g, eol);\n  const diffAlgorithm = linesDiffComputers.getDefault();\n  const lineDiffs = diffAlgorithm.computeDiff(splitLines(editOriginalText), splitLines(editReplaceText), {\n    ignoreTrimWhitespace: false,\n    computeMoves: false,\n    extendToSubwords: true,\n    maxComputationTimeMs: 500\n  });\n  const innerChanges = lineDiffs.changes.flatMap((c) =\u003e c.innerChanges ?? []);\n  function addRangeToPos(pos, range2) {\n    const start = TextLength.fromPosition(range2.getStartPosition());\n    return TextLength.ofRange(range2).createRange(start.addToPosition(pos));\n  }\n  const modifiedText = new StringText(editReplaceText);\n  const offsetEdit = new StringEdit(innerChanges.map((c) =\u003e {\n    const rangeInModel = addRangeToPos(editRange.getStartPosition(), c.originalRange);\n    const originalRange = getPositionOffsetTransformerFromTextModel(textModel).getOffsetRange(rangeInModel);\n    const replaceText2 = modifiedText.getValueOfRange(c.modifiedRange);\n    const edit2 = new StringReplacement(originalRange, replaceText2);\n    const originalText = textModel.getValueInRange(rangeInModel);\n    return reshapeInlineEdit(edit2, originalText, innerChanges.length, textModel);\n  }));\n  return offsetEdit;\n}\nvar SingleUpdatedNextEdit = class _SingleUpdatedNextEdit {\n  static create(edit2, replacedText) {\n    const prefixLength = commonPrefixLength(edit2.newText, replacedText);\n    const suffixLength = commonSuffixLength(edit2.newText, replacedText);\n    const trimmedNewText = edit2.newText.substring(prefixLength, edit2.newText.length - suffixLength);\n    return new _SingleUpdatedNextEdit(edit2, trimmedNewText, prefixLength, suffixLength);\n  }\n  get edit() {\n    return this._edit;\n  }\n  get lastChangeUpdatedEdit() {\n    return this._lastChangeUpdatedEdit;\n  }\n  constructor(_edit, _trimmedNewText, _prefixLength, _suffixLength, _lastChangeUpdatedEdit = false) {\n    this._edit = _edit;\n    this._trimmedNewText = _trimmedNewText;\n    this._prefixLength = _prefixLength;\n    this._suffixLength = _suffixLength;\n    this._lastChangeUpdatedEdit = _lastChangeUpdatedEdit;\n  }\n  applyTextModelChanges(textModelChanges) {\n    const c = this._clone();\n    c._applyTextModelChanges(textModelChanges);\n    return c;\n  }\n  _clone() {\n    return new _SingleUpdatedNextEdit(this._edit, this._trimmedNewText, this._prefixLength, this._suffixLength, this._lastChangeUpdatedEdit);\n  }\n  _applyTextModelChanges(textModelChanges) {\n    this._lastChangeUpdatedEdit = false;\n    if (!this._edit) {\n      throw new BugIndicatingError(\"UpdatedInnerEdits: No edit to apply changes to\");\n    }\n    const result = this._applyChanges(this._edit, textModelChanges);\n    if (!result) {\n      this._edit = void 0;\n      return;\n    }\n    this._edit = result.edit;\n    this._lastChangeUpdatedEdit = result.editHasChanged;\n  }\n  _applyChanges(edit2, textModelChanges) {\n    let editStart = edit2.replaceRange.start;\n    let editEnd = edit2.replaceRange.endExclusive;\n    let editReplaceText = edit2.newText;\n    let editHasChanged = false;\n    const shouldPreserveEditShape = this._prefixLength \u003e 0 || this._suffixLength \u003e 0;\n    for (let i2 = textModelChanges.replacements.length - 1; i2 \u003e= 0; i2--) {\n      const change = textModelChanges.replacements[i2];\n      const isInsertion2 = change.newText.length \u003e 0 \u0026\u0026 change.replaceRange.isEmpty;\n      if (isInsertion2 \u0026\u0026 !shouldPreserveEditShape \u0026\u0026 change.replaceRange.start === editStart \u0026\u0026 editReplaceText.startsWith(change.newText)) {\n        editStart += change.newText.length;\n        editReplaceText = editReplaceText.substring(change.newText.length);\n        editEnd = Math.max(editStart, editEnd);\n        editHasChanged = true;\n        continue;\n      }\n      if (isInsertion2 \u0026\u0026 shouldPreserveEditShape \u0026\u0026 change.replaceRange.start === editStart + this._prefixLength \u0026\u0026 this._trimmedNewText.startsWith(change.newText)) {\n        editEnd += change.newText.length;\n        editHasChanged = true;\n        this._prefixLength += change.newText.length;\n        this._trimmedNewText = this._trimmedNewText.substring(change.newText.length);\n        continue;\n      }\n      const isDeletion3 = change.newText.length === 0 \u0026\u0026 change.replaceRange.length \u003e 0;\n      if (isDeletion3 \u0026\u0026 change.replaceRange.start \u003e= editStart + this._prefixLength \u0026\u0026 change.replaceRange.endExclusive \u003c= editEnd - this._suffixLength) {\n        editEnd -= change.replaceRange.length;\n        editHasChanged = true;\n        continue;\n      }\n      if (change.equals(edit2)) {\n        editHasChanged = true;\n        editStart = change.replaceRange.endExclusive;\n        editReplaceText = \"\";\n        continue;\n      }\n      if (change.replaceRange.start \u003e editEnd) {\n        continue;\n      }\n      if (change.replaceRange.endExclusive \u003c editStart) {\n        editStart += change.newText.length - change.replaceRange.length;\n        editEnd += change.newText.length - change.replaceRange.length;\n        continue;\n      }\n      return void 0;\n    }\n    if (this._trimmedNewText.length === 0 \u0026\u0026 editStart + this._prefixLength === editEnd - this._suffixLength) {\n      return { edit: new StringReplacement(new OffsetRange(editStart + this._prefixLength, editStart + this._prefixLength), \"\"), editHasChanged: true };\n    }\n    return { edit: new StringReplacement(new OffsetRange(editStart, editEnd), editReplaceText), editHasChanged };\n  }\n};\nfunction reshapeInlineCompletion(edit2, textModel) {\n  const eol = textModel.getEOL();\n  if (edit2.replaceRange.isEmpty \u0026\u0026 edit2.newText.includes(eol)) {\n    edit2 = reshapeMultiLineInsertion(edit2, textModel);\n  }\n  return edit2;\n}\nfunction reshapeInlineEdit(edit2, originalText, totalInnerEdits, textModel) {\n  const eol = textModel.getEOL();\n  if (edit2.newText.endsWith(eol) \u0026\u0026 originalText.endsWith(eol)) {\n    edit2 = new StringReplacement(edit2.replaceRange.deltaEnd(-eol.length), edit2.newText.slice(0, -eol.length));\n  }\n  if (totalInnerEdits === 1 \u0026\u0026 edit2.replaceRange.isEmpty \u0026\u0026 edit2.newText.includes(eol)) {\n    const startPosition = textModel.getPositionAt(edit2.replaceRange.start);\n    const hasTextOnInsertionLine = textModel.getLineLength(startPosition.lineNumber) !== 0;\n    if (hasTextOnInsertionLine) {\n      edit2 = reshapeMultiLineInsertion(edit2, textModel);\n    }\n  }\n  if (totalInnerEdits === 1) {\n    const prefixLength = commonPrefixLength(originalText, edit2.newText);\n    const suffixLength = commonSuffixLength(originalText.slice(prefixLength), edit2.newText.slice(prefixLength));\n    if (prefixLength + suffixLength === originalText.length) {\n      return new StringReplacement(edit2.replaceRange.deltaStart(prefixLength).deltaEnd(-suffixLength), edit2.newText.substring(prefixLength, edit2.newText.length - suffixLength));\n    }\n    if (prefixLength + suffixLength === edit2.newText.length) {\n      return new StringReplacement(edit2.replaceRange.deltaStart(prefixLength).deltaEnd(-suffixLength), \"\");\n    }\n  }\n  return edit2;\n}\nfunction reshapeMultiLineInsertion(edit2, textModel) {\n  if (!edit2.replaceRange.isEmpty) {\n    throw new BugIndicatingError(\"Unexpected original range\");\n  }\n  if (edit2.replaceRange.start === 0) {\n    return edit2;\n  }\n  const eol = textModel.getEOL();\n  const startPosition = textModel.getPositionAt(edit2.replaceRange.start);\n  const startColumn = startPosition.column;\n  const startLineNumber = startPosition.lineNumber;\n  if (startColumn === 1 \u0026\u0026 startLineNumber \u003e 1 \u0026\u0026 edit2.newText.endsWith(eol) \u0026\u0026 !edit2.newText.startsWith(eol)) {\n    return new StringReplacement(edit2.replaceRange.delta(-1), eol + edit2.newText.slice(0, -eol.length));\n  }\n  return edit2;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js\ninit_assert();\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_lifecycle();\ninit_uuid();\ninit_offsetRange();\ninit_range();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/bracketPairsTextModelPart/fixBrackets.js\ninit_brackets();\ninit_length();\ninit_parser();\ninit_smallImmutableSet();\ninit_tokenizer();\nfunction fixBracketsInLine(tokens, languageConfigurationService) {\n  const denseKeyProvider = new DenseKeyProvider();\n  const bracketTokens = new LanguageAgnosticBracketTokens(denseKeyProvider, (languageId) =\u003e languageConfigurationService.getLanguageConfiguration(languageId));\n  const tokenizer = new TextBufferTokenizer(new StaticTokenizerSource([tokens]), bracketTokens);\n  const node = parseDocument(tokenizer, [], void 0, true);\n  let str = \"\";\n  const line = tokens.getLineContent();\n  function processNode(node2, offset) {\n    if (node2.kind === 2) {\n      processNode(node2.openingBracket, offset);\n      offset = lengthAdd(offset, node2.openingBracket.length);\n      if (node2.child) {\n        processNode(node2.child, offset);\n        offset = lengthAdd(offset, node2.child.length);\n      }\n      if (node2.closingBracket) {\n        processNode(node2.closingBracket, offset);\n        offset = lengthAdd(offset, node2.closingBracket.length);\n      } else {\n        const singleLangBracketTokens = bracketTokens.getSingleLanguageBracketTokens(node2.openingBracket.languageId);\n        const closingTokenText = singleLangBracketTokens.findClosingTokenText(node2.openingBracket.bracketIds);\n        str += closingTokenText;\n      }\n    } else if (node2.kind === 3) {\n    } else if (node2.kind === 0 || node2.kind === 1) {\n      str += line.substring(lengthGetColumnCountIfZeroLineCount(offset), lengthGetColumnCountIfZeroLineCount(lengthAdd(offset, node2.length)));\n    } else if (node2.kind === 4) {\n      for (const child of node2.children) {\n        processNode(child, offset);\n        offset = lengthAdd(offset, child.length);\n      }\n    }\n  }\n  processNode(node, lengthZero);\n  return str;\n}\nvar StaticTokenizerSource = class {\n  constructor(lines) {\n    this.lines = lines;\n    this.tokenization = {\n      getLineTokens: (lineNumber) =\u003e {\n        return this.lines[lineNumber - 1];\n      }\n    };\n  }\n  getLineCount() {\n    return this.lines.length;\n  }\n  getLineLength(lineNumber) {\n    return this.lines[lineNumber - 1].getLineContent().length;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js\ninit_collections();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/graph.js\nvar DirectedGraph = class _DirectedGraph {\n  constructor() {\n    this._nodes = /* @__PURE__ */ new Set();\n    this._outgoingEdges = /* @__PURE__ */ new Map();\n  }\n  static from(nodes, getOutgoing) {\n    const graph = new _DirectedGraph();\n    for (const node of nodes) {\n      graph._nodes.add(node);\n    }\n    for (const node of nodes) {\n      const outgoing = getOutgoing(node);\n      if (outgoing.length \u003e 0) {\n        const outgoingSet = /* @__PURE__ */ new Set();\n        for (const target of outgoing) {\n          outgoingSet.add(target);\n        }\n        graph._outgoingEdges.set(node, outgoingSet);\n      }\n    }\n    return graph;\n  }\n  /**\n   * After this, the graph is guaranteed to have no cycles.\n   */\n  removeCycles() {\n    const foundCycles = [];\n    const visited = /* @__PURE__ */ new Set();\n    const recursionStack = /* @__PURE__ */ new Set();\n    const toRemove = [];\n    const dfs3 = (node) =\u003e {\n      visited.add(node);\n      recursionStack.add(node);\n      const outgoing = this._outgoingEdges.get(node);\n      if (outgoing) {\n        for (const neighbor of outgoing) {\n          if (!visited.has(neighbor)) {\n            dfs3(neighbor);\n          } else if (recursionStack.has(neighbor)) {\n            foundCycles.push(neighbor);\n            toRemove.push({ from: node, to: neighbor });\n          }\n        }\n      }\n      recursionStack.delete(node);\n    };\n    for (const node of this._nodes) {\n      if (!visited.has(node)) {\n        dfs3(node);\n      }\n    }\n    for (const { from, to } of toRemove) {\n      const outgoingSet = this._outgoingEdges.get(from);\n      if (outgoingSet) {\n        outgoingSet.delete(to);\n      }\n    }\n    return { foundCycles };\n  }\n  getOutgoing(node) {\n    const outgoing = this._outgoingEdges.get(node);\n    return outgoing ? Array.from(outgoing) : [];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js\ninit_cache();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewInterface.js\nvar InlineEditTabAction;\n(function(InlineEditTabAction2) {\n  InlineEditTabAction2[\"Jump\"] = \"jump\";\n  InlineEditTabAction2[\"Accept\"] = \"accept\";\n  InlineEditTabAction2[\"Inactive\"] = \"inactive\";\n})(InlineEditTabAction || (InlineEditTabAction = {}));\nvar InlineCompletionViewKind;\n(function(InlineCompletionViewKind2) {\n  InlineCompletionViewKind2[\"GhostText\"] = \"ghostText\";\n  InlineCompletionViewKind2[\"Custom\"] = \"custom\";\n  InlineCompletionViewKind2[\"SideBySide\"] = \"sideBySide\";\n  InlineCompletionViewKind2[\"Deletion\"] = \"deletion\";\n  InlineCompletionViewKind2[\"InsertionInline\"] = \"insertionInline\";\n  InlineCompletionViewKind2[\"InsertionMultiLine\"] = \"insertionMultiLine\";\n  InlineCompletionViewKind2[\"WordReplacements\"] = \"wordReplacements\";\n  InlineCompletionViewKind2[\"LineReplacement\"] = \"lineReplacement\";\n  InlineCompletionViewKind2[\"Collapsed\"] = \"collapsed\";\n})(InlineCompletionViewKind || (InlineCompletionViewKind = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions.js\ninit_types();\nfunction provideInlineCompletions(providers, position, model, context, requestInfo, languageConfigurationService) {\n  const requestUuid = prefixedUuid(\"icr\");\n  const cancellationTokenSource = new CancellationTokenSource();\n  let cancelReason = void 0;\n  const contextWithUuid = { ...context, requestUuid };\n  const defaultReplaceRange = getDefaultRange(position, model);\n  const providersByGroupId = groupByMap(providers, (p) =\u003e p.groupId);\n  const yieldsToGraph = DirectedGraph.from(providers, (p) =\u003e {\n    return p.yieldsToGroupIds?.flatMap((groupId) =\u003e providersByGroupId.get(groupId) ?? []) ?? [];\n  });\n  const { foundCycles } = yieldsToGraph.removeCycles();\n  if (foundCycles.length \u003e 0) {\n    onUnexpectedExternalError(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${foundCycles.map((s) =\u003e s.toString ? s.toString() : \"\" + s).join(\" -\u003e \")}`));\n  }\n  let runningCount = 0;\n  const queryProvider = new CachedFunction(async (provider) =\u003e {\n    try {\n      runningCount++;\n      if (cancellationTokenSource.token.isCancellationRequested) {\n        return void 0;\n      }\n      const yieldsTo = yieldsToGraph.getOutgoing(provider);\n      for (const p of yieldsTo) {\n        const result2 = await queryProvider.get(p);\n        if (result2) {\n          for (const item of result2.inlineSuggestions.items) {\n            if (item.isInlineEdit || typeof item.insertText !== \"string\") {\n              return void 0;\n            }\n            const t = new TextReplacement(Range.lift(item.range) ?? defaultReplaceRange, item.insertText);\n            if (inlineCompletionIsVisible(t, void 0, model, position)) {\n              return void 0;\n            }\n          }\n        }\n      }\n      let result;\n      const providerStartTime = Date.now();\n      try {\n        result = await provider.provideInlineCompletions(model, position, contextWithUuid, cancellationTokenSource.token);\n      } catch (e) {\n        onUnexpectedExternalError(e);\n        return void 0;\n      }\n      const providerEndTime = Date.now();\n      if (!result) {\n        return void 0;\n      }\n      const data = [];\n      const list2 = new InlineSuggestionList(result, data, provider);\n      list2.addRef();\n      runWhenCancelled(cancellationTokenSource.token, () =\u003e {\n        return list2.removeRef(cancelReason);\n      });\n      if (cancellationTokenSource.token.isCancellationRequested) {\n        return void 0;\n      }\n      for (const item of result.items) {\n        data.push(toInlineSuggestData(item, list2, defaultReplaceRange, model, languageConfigurationService, contextWithUuid, requestInfo, { startTime: providerStartTime, endTime: providerEndTime }));\n      }\n      return list2;\n    } finally {\n      runningCount--;\n    }\n  });\n  const inlineCompletionLists = AsyncIterableObject.fromPromisesResolveOrder(providers.map((p) =\u003e queryProvider.get(p))).filter(isDefined);\n  return {\n    get didAllProvidersReturn() {\n      return runningCount === 0;\n    },\n    lists: inlineCompletionLists,\n    cancelAndDispose: (reason) =\u003e {\n      if (cancelReason !== void 0) {\n        return;\n      }\n      cancelReason = reason;\n      cancellationTokenSource.dispose(true);\n    }\n  };\n}\nfunction runWhenCancelled(token, callback) {\n  if (token.isCancellationRequested) {\n    callback();\n    return Disposable.None;\n  } else {\n    const listener = token.onCancellationRequested(() =\u003e {\n      listener.dispose();\n      callback();\n    });\n    return { dispose: () =\u003e listener.dispose() };\n  }\n}\nfunction toInlineSuggestData(inlineCompletion, source, defaultReplaceRange, textModel, languageConfigurationService, context, requestInfo, providerRequestInfo) {\n  let insertText;\n  let snippetInfo;\n  let range2 = inlineCompletion.range ? Range.lift(inlineCompletion.range) : defaultReplaceRange;\n  if (typeof inlineCompletion.insertText === \"string\") {\n    insertText = inlineCompletion.insertText;\n    if (languageConfigurationService \u0026\u0026 inlineCompletion.completeBracketPairs) {\n      insertText = closeBrackets(insertText, range2.getStartPosition(), textModel, languageConfigurationService);\n      const diff = insertText.length - inlineCompletion.insertText.length;\n      if (diff !== 0) {\n        range2 = new Range(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn + diff);\n      }\n    }\n    snippetInfo = void 0;\n  } else if (\"snippet\" in inlineCompletion.insertText) {\n    const preBracketCompletionLength = inlineCompletion.insertText.snippet.length;\n    if (languageConfigurationService \u0026\u0026 inlineCompletion.completeBracketPairs) {\n      inlineCompletion.insertText.snippet = closeBrackets(inlineCompletion.insertText.snippet, range2.getStartPosition(), textModel, languageConfigurationService);\n      const diff = inlineCompletion.insertText.snippet.length - preBracketCompletionLength;\n      if (diff !== 0) {\n        range2 = new Range(range2.startLineNumber, range2.startColumn, range2.endLineNumber, range2.endColumn + diff);\n      }\n    }\n    const snippet = new SnippetParser().parse(inlineCompletion.insertText.snippet);\n    if (snippet.children.length === 1 \u0026\u0026 snippet.children[0] instanceof Text) {\n      insertText = snippet.children[0].value;\n      snippetInfo = void 0;\n    } else {\n      insertText = snippet.toString();\n      snippetInfo = {\n        snippet: inlineCompletion.insertText.snippet,\n        range: range2\n      };\n    }\n  } else {\n    assertNever(inlineCompletion.insertText);\n  }\n  const displayLocation = inlineCompletion.displayLocation ? {\n    range: Range.lift(inlineCompletion.displayLocation.range),\n    label: inlineCompletion.displayLocation.label,\n    kind: inlineCompletion.displayLocation.kind\n  } : void 0;\n  return new InlineSuggestData(range2, insertText, snippetInfo, displayLocation, inlineCompletion.additionalTextEdits || getReadonlyEmptyArray(), inlineCompletion, source, context, inlineCompletion.isInlineEdit ?? false, requestInfo, providerRequestInfo, inlineCompletion.correlationId);\n}\nvar InlineSuggestData = class {\n  constructor(range2, insertText, snippetInfo, displayLocation, additionalTextEdits, sourceInlineCompletion, source, context, isInlineEdit, _requestInfo, _providerRequestInfo, _correlationId) {\n    this.range = range2;\n    this.insertText = insertText;\n    this.snippetInfo = snippetInfo;\n    this.displayLocation = displayLocation;\n    this.additionalTextEdits = additionalTextEdits;\n    this.sourceInlineCompletion = sourceInlineCompletion;\n    this.source = source;\n    this.context = context;\n    this.isInlineEdit = isInlineEdit;\n    this._requestInfo = _requestInfo;\n    this._providerRequestInfo = _providerRequestInfo;\n    this._correlationId = _correlationId;\n    this._didShow = false;\n    this._timeUntilShown = void 0;\n    this._showStartTime = void 0;\n    this._shownDuration = 0;\n    this._showUncollapsedStartTime = void 0;\n    this._showUncollapsedDuration = 0;\n    this._didReportEndOfLife = false;\n    this._lastSetEndOfLifeReason = void 0;\n    this._isPreceeded = false;\n    this._partiallyAcceptedCount = 0;\n    this._partiallyAcceptedSinceOriginal = { characters: 0, ratio: 0, count: 0 };\n    this._viewData = { editorType: _requestInfo.editorType };\n  }\n  get showInlineEditMenu() {\n    return this.sourceInlineCompletion.showInlineEditMenu ?? false;\n  }\n  get partialAccepts() {\n    return this._partiallyAcceptedSinceOriginal;\n  }\n  async reportInlineEditShown(commandService, updatedInsertText, viewKind, viewData) {\n    this.updateShownDuration(viewKind);\n    if (this._didShow) {\n      return;\n    }\n    this._didShow = true;\n    this._viewData.viewKind = viewKind;\n    this._viewData.renderData = viewData;\n    this._timeUntilShown = Date.now() - this._requestInfo.startTime;\n    this.source.provider.handleItemDidShow?.(this.source.inlineSuggestions, this.sourceInlineCompletion, updatedInsertText);\n    if (this.sourceInlineCompletion.shownCommand) {\n      await commandService.executeCommand(this.sourceInlineCompletion.shownCommand.id, ...this.sourceInlineCompletion.shownCommand.arguments || []);\n    }\n  }\n  reportPartialAccept(acceptedCharacters, info, partialAcceptance) {\n    this._partiallyAcceptedCount++;\n    this._partiallyAcceptedSinceOriginal.characters += partialAcceptance.characters;\n    this._partiallyAcceptedSinceOriginal.ratio = Math.min(this._partiallyAcceptedSinceOriginal.ratio + (1 - this._partiallyAcceptedSinceOriginal.ratio) * partialAcceptance.ratio, 1);\n    this._partiallyAcceptedSinceOriginal.count += partialAcceptance.count;\n    this.source.provider.handlePartialAccept?.(this.source.inlineSuggestions, this.sourceInlineCompletion, acceptedCharacters, info);\n  }\n  /**\n   * Sends the end of life event to the provider.\n   * If no reason is provided, the last set reason is used.\n   * If no reason was set, the default reason is used.\n  */\n  reportEndOfLife(reason) {\n    if (this._didReportEndOfLife) {\n      return;\n    }\n    this._didReportEndOfLife = true;\n    this.reportInlineEditHidden();\n    if (!reason) {\n      reason = this._lastSetEndOfLifeReason ?? { kind: InlineCompletionEndOfLifeReasonKind.Ignored, userTypingDisagreed: false, supersededBy: void 0 };\n    }\n    if (reason.kind === InlineCompletionEndOfLifeReasonKind.Rejected \u0026\u0026 this.source.provider.handleRejection) {\n      this.source.provider.handleRejection(this.source.inlineSuggestions, this.sourceInlineCompletion);\n    }\n    if (this.source.provider.handleEndOfLifetime) {\n      const summary = {\n        requestUuid: this.context.requestUuid,\n        correlationId: this._correlationId,\n        partiallyAccepted: this._partiallyAcceptedCount,\n        partiallyAcceptedCountSinceOriginal: this._partiallyAcceptedSinceOriginal.count,\n        partiallyAcceptedRatioSinceOriginal: this._partiallyAcceptedSinceOriginal.ratio,\n        partiallyAcceptedCharactersSinceOriginal: this._partiallyAcceptedSinceOriginal.characters,\n        shown: this._didShow,\n        shownDuration: this._shownDuration,\n        shownDurationUncollapsed: this._showUncollapsedDuration,\n        preceeded: this._isPreceeded,\n        timeUntilShown: this._timeUntilShown,\n        timeUntilProviderRequest: this._providerRequestInfo.startTime - this._requestInfo.startTime,\n        timeUntilProviderResponse: this._providerRequestInfo.endTime - this._requestInfo.startTime,\n        editorType: this._viewData.editorType,\n        languageId: this._requestInfo.languageId,\n        requestReason: this._requestInfo.reason,\n        viewKind: this._viewData.viewKind,\n        error: this._viewData.error,\n        typingInterval: this._requestInfo.typingInterval,\n        typingIntervalCharacterCount: this._requestInfo.typingIntervalCharacterCount,\n        ...this._viewData.renderData\n      };\n      this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions, this.sourceInlineCompletion, reason, summary);\n    }\n  }\n  reportInlineEditError(message) {\n    if (this._viewData.error) {\n      this._viewData.error += `; ${message}`;\n    } else {\n      this._viewData.error = message;\n    }\n  }\n  setIsPreceeded(partialAccepts) {\n    this._isPreceeded = true;\n    if (this._partiallyAcceptedSinceOriginal.characters !== 0 || this._partiallyAcceptedSinceOriginal.ratio !== 0 || this._partiallyAcceptedSinceOriginal.count !== 0) {\n      console.warn(\"Expected partiallyAcceptedCountSinceOriginal to be { characters: 0, rate: 0, partialAcceptances: 0 } before setIsPreceeded.\");\n    }\n    this._partiallyAcceptedSinceOriginal = partialAccepts;\n  }\n  /**\n   * Sets the end of life reason, but does not send the event to the provider yet.\n  */\n  setEndOfLifeReason(reason) {\n    this.reportInlineEditHidden();\n    this._lastSetEndOfLifeReason = reason;\n  }\n  updateShownDuration(viewKind) {\n    const timeNow = Date.now();\n    if (!this._showStartTime) {\n      this._showStartTime = timeNow;\n    }\n    const isCollapsed = viewKind === InlineCompletionViewKind.Collapsed;\n    if (!isCollapsed \u0026\u0026 this._showUncollapsedStartTime === void 0) {\n      this._showUncollapsedStartTime = timeNow;\n    }\n    if (isCollapsed \u0026\u0026 this._showUncollapsedStartTime !== void 0) {\n      this._showUncollapsedDuration += timeNow - this._showUncollapsedStartTime;\n    }\n  }\n  reportInlineEditHidden() {\n    if (this._showStartTime === void 0) {\n      return;\n    }\n    const timeNow = Date.now();\n    this._shownDuration += timeNow - this._showStartTime;\n    this._showStartTime = void 0;\n    if (this._showUncollapsedStartTime === void 0) {\n      return;\n    }\n    this._showUncollapsedDuration += timeNow - this._showUncollapsedStartTime;\n    this._showUncollapsedStartTime = void 0;\n  }\n};\nvar InlineCompletionEditorType;\n(function(InlineCompletionEditorType2) {\n  InlineCompletionEditorType2[\"TextEditor\"] = \"textEditor\";\n  InlineCompletionEditorType2[\"DiffEditor\"] = \"diffEditor\";\n  InlineCompletionEditorType2[\"Notebook\"] = \"notebook\";\n})(InlineCompletionEditorType || (InlineCompletionEditorType = {}));\nvar InlineSuggestionList = class {\n  constructor(inlineSuggestions, inlineSuggestionsData, provider) {\n    this.inlineSuggestions = inlineSuggestions;\n    this.inlineSuggestionsData = inlineSuggestionsData;\n    this.provider = provider;\n    this.refCount = 0;\n  }\n  addRef() {\n    this.refCount++;\n  }\n  removeRef(reason = { kind: \"other\" }) {\n    this.refCount--;\n    if (this.refCount === 0) {\n      for (const item of this.inlineSuggestionsData) {\n        item.reportEndOfLife();\n      }\n      this.provider.disposeInlineCompletions(this.inlineSuggestions, reason);\n    }\n  }\n};\nfunction getDefaultRange(position, model) {\n  const word = model.getWordAtPosition(position);\n  const maxColumn = model.getLineMaxColumn(position.lineNumber);\n  return word ? new Range(position.lineNumber, word.startColumn, position.lineNumber, maxColumn) : Range.fromPositions(position, position.with(void 0, maxColumn));\n}\nfunction closeBrackets(text2, position, model, languageConfigurationService) {\n  const currentLine = model.getLineContent(position.lineNumber);\n  const edit2 = StringReplacement.replace(new OffsetRange(position.column - 1, currentLine.length), text2);\n  const proposedLineTokens = model.tokenization.tokenizeLinesAt(position.lineNumber, [edit2.replace(currentLine)]);\n  const textTokens = proposedLineTokens?.[0].sliceZeroCopy(edit2.getRangeAfterReplace());\n  if (!textTokens) {\n    return text2;\n  }\n  const fixedText = fixBracketsInLine(textTokens, languageConfigurationService);\n  return fixedText;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource.js\nvar __decorate97 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param91 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineCompletionsSource_1;\nvar InlineCompletionsSource = class InlineCompletionsSource2 extends Disposable {\n  static {\n    InlineCompletionsSource_1 = this;\n  }\n  static {\n    this._requestId = 0;\n  }\n  constructor(_textModel, _versionId, _debounceValue, _cursorPosition, _languageConfigurationService, _logService, _configurationService, _instantiationService) {\n    super();\n    this._textModel = _textModel;\n    this._versionId = _versionId;\n    this._debounceValue = _debounceValue;\n    this._cursorPosition = _cursorPosition;\n    this._languageConfigurationService = _languageConfigurationService;\n    this._logService = _logService;\n    this._configurationService = _configurationService;\n    this._instantiationService = _instantiationService;\n    this._updateOperation = this._register(new MutableDisposable());\n    this._state = observableReducerSettable(this, {\n      initial: () =\u003e ({\n        inlineCompletions: InlineCompletionsState.createEmpty(),\n        suggestWidgetInlineCompletions: InlineCompletionsState.createEmpty()\n      }),\n      disposeFinal: (values) =\u003e {\n        values.inlineCompletions.dispose();\n        values.suggestWidgetInlineCompletions.dispose();\n      },\n      changeTracker: recordChangesLazy(() =\u003e ({ versionId: this._versionId })),\n      update: (reader, previousValue, changes) =\u003e {\n        const edit2 = StringEdit.compose(changes.changes.map((c) =\u003e c.change ? offsetEditFromContentChanges(c.change.changes) : StringEdit.empty).filter(isDefined));\n        if (edit2.isEmpty()) {\n          return previousValue;\n        }\n        try {\n          return {\n            inlineCompletions: previousValue.inlineCompletions.createStateWithAppliedEdit(edit2, this._textModel),\n            suggestWidgetInlineCompletions: previousValue.suggestWidgetInlineCompletions.createStateWithAppliedEdit(edit2, this._textModel)\n          };\n        } finally {\n          previousValue.inlineCompletions.dispose();\n          previousValue.suggestWidgetInlineCompletions.dispose();\n        }\n      }\n    });\n    this.inlineCompletions = this._state.map(this, (v) =\u003e v.inlineCompletions);\n    this.suggestWidgetInlineCompletions = this._state.map(this, (v) =\u003e v.suggestWidgetInlineCompletions);\n    this.clearOperationOnTextModelChange = derived(this, (reader) =\u003e {\n      this._versionId.read(reader);\n      this._updateOperation.clear();\n      return void 0;\n    });\n    this._loadingCount = observableValue(this, 0);\n    this._loggingEnabled = observableConfigValue(\"editor.inlineSuggest.logFetch\", false, this._configurationService).recomputeInitiallyAndOnChange(this._store);\n    this._structuredFetchLogger = this._register(this._instantiationService.createInstance(StructuredLogger.cast(), \"editor.inlineSuggest.logFetch.commandId\"));\n    this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store);\n  }\n  _log(entry) {\n    if (this._loggingEnabled.get()) {\n      this._logService.info(formatRecordableLogEntry(entry));\n    }\n    this._structuredFetchLogger.log(entry);\n  }\n  fetch(providers, providersLabel, context, activeInlineCompletion, withDebounce, userJumpedToActiveCompletion, requestInfo) {\n    const position = this._cursorPosition.get();\n    const request = new UpdateRequest(position, context, this._textModel.getVersionId(), new Set(providers));\n    const target = context.selectedSuggestionInfo ? this.suggestWidgetInlineCompletions.get() : this.inlineCompletions.get();\n    if (this._updateOperation.value?.request.satisfies(request)) {\n      return this._updateOperation.value.promise;\n    } else if (target?.request?.satisfies(request)) {\n      return Promise.resolve(true);\n    }\n    const updateOngoing = !!this._updateOperation.value;\n    this._updateOperation.clear();\n    const source = new CancellationTokenSource();\n    const promise = (async () =\u003e {\n      this._loadingCount.set(this._loadingCount.get() + 1, void 0);\n      const store = new DisposableStore();\n      try {\n        const recommendedDebounceValue = this._debounceValue.get(this._textModel);\n        const debounceValue = findLastMax(providers.map((p) =\u003e p.debounceDelayMs), compareUndefinedSmallest(numberComparator)) ?? recommendedDebounceValue;\n        const shouldDebounce = updateOngoing || withDebounce \u0026\u0026 context.triggerKind === InlineCompletionTriggerKind.Automatic;\n        if (shouldDebounce) {\n          await wait(debounceValue, source.token);\n        }\n        if (source.token.isCancellationRequested || this._store.isDisposed || this._textModel.getVersionId() !== request.versionId) {\n          return false;\n        }\n        const requestId = InlineCompletionsSource_1._requestId++;\n        if (this._loggingEnabled.get() || this._structuredFetchLogger.isEnabled.get()) {\n          this._log({\n            sourceId: \"InlineCompletions.fetch\",\n            kind: \"start\",\n            requestId,\n            modelUri: this._textModel.uri,\n            modelVersion: this._textModel.getVersionId(),\n            context: { triggerKind: context.triggerKind, suggestInfo: context.selectedSuggestionInfo ? true : void 0 },\n            time: Date.now(),\n            provider: providersLabel\n          });\n        }\n        const startTime = /* @__PURE__ */ new Date();\n        const providerResult = provideInlineCompletions(providers, this._cursorPosition.get(), this._textModel, context, requestInfo, this._languageConfigurationService);\n        runWhenCancelled(source.token, () =\u003e providerResult.cancelAndDispose({ kind: \"tokenCancellation\" }));\n        let shouldStopEarly = false;\n        const suggestions = [];\n        for await (const list2 of providerResult.lists) {\n          if (!list2) {\n            continue;\n          }\n          list2.addRef();\n          store.add(toDisposable(() =\u003e list2.removeRef(list2.inlineSuggestionsData.length === 0 ? { kind: \"empty\" } : { kind: \"notTaken\" })));\n          for (const item of list2.inlineSuggestionsData) {\n            if (!context.includeInlineEdits \u0026\u0026 (item.isInlineEdit || item.showInlineEditMenu)) {\n              continue;\n            }\n            if (!context.includeInlineCompletions \u0026\u0026 !(item.isInlineEdit || item.showInlineEditMenu)) {\n              continue;\n            }\n            const i2 = InlineSuggestionItem.create(item, this._textModel);\n            suggestions.push(i2);\n            if (!i2.isInlineEdit \u0026\u0026 !i2.showInlineEditMenu \u0026\u0026 context.triggerKind === InlineCompletionTriggerKind.Automatic) {\n              if (i2.isVisible(this._textModel, this._cursorPosition.get())) {\n                shouldStopEarly = true;\n              }\n            }\n          }\n          if (shouldStopEarly) {\n            break;\n          }\n        }\n        providerResult.cancelAndDispose({ kind: \"lostRace\" });\n        if (this._loggingEnabled.get() || this._structuredFetchLogger.isEnabled.get()) {\n          const didAllProvidersReturn = providerResult.didAllProvidersReturn;\n          let error = void 0;\n          if (source.token.isCancellationRequested || this._store.isDisposed || this._textModel.getVersionId() !== request.versionId) {\n            error = \"canceled\";\n          }\n          const result = suggestions.map((c) =\u003e ({\n            range: c.editRange.toString(),\n            text: c.insertText,\n            isInlineEdit: !!c.isInlineEdit,\n            source: c.source.provider.groupId\n          }));\n          this._log({ sourceId: \"InlineCompletions.fetch\", kind: \"end\", requestId, durationMs: Date.now() - startTime.getTime(), error, result, time: Date.now(), didAllProvidersReturn });\n        }\n        const remainingTimeToWait = context.earliestShownDateTime - Date.now();\n        if (remainingTimeToWait \u003e 0) {\n          await wait(remainingTimeToWait, source.token);\n        }\n        if (source.token.isCancellationRequested || this._store.isDisposed || this._textModel.getVersionId() !== request.versionId || userJumpedToActiveCompletion.get()) {\n          return false;\n        }\n        const endTime = /* @__PURE__ */ new Date();\n        this._debounceValue.update(this._textModel, endTime.getTime() - startTime.getTime());\n        const cursorPosition = this._cursorPosition.get();\n        this._updateOperation.clear();\n        transaction((tx) =\u003e {\n          const v = this._state.get();\n          if (context.selectedSuggestionInfo) {\n            this._state.set({\n              inlineCompletions: InlineCompletionsState.createEmpty(),\n              suggestWidgetInlineCompletions: v.suggestWidgetInlineCompletions.createStateWithAppliedResults(suggestions, request, this._textModel, cursorPosition, activeInlineCompletion)\n            }, tx);\n          } else {\n            this._state.set({\n              inlineCompletions: v.inlineCompletions.createStateWithAppliedResults(suggestions, request, this._textModel, cursorPosition, activeInlineCompletion),\n              suggestWidgetInlineCompletions: InlineCompletionsState.createEmpty()\n            }, tx);\n          }\n          v.inlineCompletions.dispose();\n          v.suggestWidgetInlineCompletions.dispose();\n        });\n      } finally {\n        this._loadingCount.set(this._loadingCount.get() - 1, void 0);\n        store.dispose();\n      }\n      return true;\n    })();\n    const updateOperation = new UpdateOperation(request, source, promise);\n    this._updateOperation.value = updateOperation;\n    return promise;\n  }\n  clear(tx) {\n    this._updateOperation.clear();\n    const v = this._state.get();\n    this._state.set({\n      inlineCompletions: InlineCompletionsState.createEmpty(),\n      suggestWidgetInlineCompletions: InlineCompletionsState.createEmpty()\n    }, tx);\n    v.inlineCompletions.dispose();\n    v.suggestWidgetInlineCompletions.dispose();\n  }\n  seedInlineCompletionsWithSuggestWidget() {\n    const inlineCompletions = this.inlineCompletions.get();\n    const suggestWidgetInlineCompletions = this.suggestWidgetInlineCompletions.get();\n    if (!suggestWidgetInlineCompletions) {\n      return;\n    }\n    transaction((tx) =\u003e {\n      if (!inlineCompletions || (suggestWidgetInlineCompletions.request?.versionId ?? -1) \u003e (inlineCompletions.request?.versionId ?? -1)) {\n        inlineCompletions?.dispose();\n        const s = this._state.get();\n        this._state.set({\n          inlineCompletions: suggestWidgetInlineCompletions.clone(),\n          suggestWidgetInlineCompletions: InlineCompletionsState.createEmpty()\n        }, tx);\n        s.inlineCompletions.dispose();\n        s.suggestWidgetInlineCompletions.dispose();\n      }\n      this.clearSuggestWidgetInlineCompletions(tx);\n    });\n  }\n  clearSuggestWidgetInlineCompletions(tx) {\n    if (this._updateOperation.value?.request.context.selectedSuggestionInfo) {\n      this._updateOperation.clear();\n    }\n  }\n  cancelUpdate() {\n    this._updateOperation.clear();\n  }\n};\nInlineCompletionsSource = InlineCompletionsSource_1 = __decorate97([\n  __param91(4, ILanguageConfigurationService),\n  __param91(5, ILogService),\n  __param91(6, IConfigurationService),\n  __param91(7, IInstantiationService)\n], InlineCompletionsSource);\nvar UpdateRequest = class {\n  constructor(position, context, versionId, providers) {\n    this.position = position;\n    this.context = context;\n    this.versionId = versionId;\n    this.providers = providers;\n  }\n  satisfies(other) {\n    return this.position.equals(other.position) \u0026\u0026 equalsIfDefined(this.context.selectedSuggestionInfo, other.context.selectedSuggestionInfo, itemEquals()) \u0026\u0026 (other.context.triggerKind === InlineCompletionTriggerKind.Automatic || this.context.triggerKind === InlineCompletionTriggerKind.Explicit) \u0026\u0026 this.versionId === other.versionId \u0026\u0026 isSubset(other.providers, this.providers);\n  }\n};\nfunction isSubset(set1, set2) {\n  return [...set1].every((item) =\u003e set2.has(item));\n}\nvar UpdateOperation = class {\n  constructor(request, cancellationTokenSource, promise) {\n    this.request = request;\n    this.cancellationTokenSource = cancellationTokenSource;\n    this.promise = promise;\n  }\n  dispose() {\n    this.cancellationTokenSource.cancel();\n  }\n};\nvar InlineCompletionsState = class _InlineCompletionsState extends Disposable {\n  static createEmpty() {\n    return new _InlineCompletionsState([], void 0);\n  }\n  constructor(inlineCompletions, request) {\n    for (const inlineCompletion of inlineCompletions) {\n      inlineCompletion.addRef();\n    }\n    super();\n    this.inlineCompletions = inlineCompletions;\n    this.request = request;\n    this._register({\n      dispose: () =\u003e {\n        for (const inlineCompletion of this.inlineCompletions) {\n          inlineCompletion.removeRef();\n        }\n      }\n    });\n  }\n  _findById(id) {\n    return this.inlineCompletions.find((i2) =\u003e i2.identity === id);\n  }\n  _findByHash(hash2) {\n    return this.inlineCompletions.find((i2) =\u003e i2.hash === hash2);\n  }\n  /**\n   * Applies the edit on the state.\n  */\n  createStateWithAppliedEdit(edit2, textModel) {\n    const newInlineCompletions = this.inlineCompletions.map((i2) =\u003e i2.withEdit(edit2, textModel)).filter(isDefined);\n    return new _InlineCompletionsState(newInlineCompletions, this.request);\n  }\n  createStateWithAppliedResults(updatedSuggestions, request, textModel, cursorPosition, itemIdToPreserveAtTop) {\n    let itemToPreserve = void 0;\n    if (itemIdToPreserveAtTop) {\n      const itemToPreserveCandidate = this._findById(itemIdToPreserveAtTop);\n      if (itemToPreserveCandidate \u0026\u0026 itemToPreserveCandidate.canBeReused(textModel, request.position)) {\n        itemToPreserve = itemToPreserveCandidate;\n        const updatedItemToPreserve = updatedSuggestions.find((i2) =\u003e i2.hash === itemToPreserveCandidate.hash);\n        if (updatedItemToPreserve) {\n          updatedSuggestions = moveToFront(updatedItemToPreserve, updatedSuggestions);\n        } else {\n          updatedSuggestions = [itemToPreserveCandidate, ...updatedSuggestions];\n        }\n      }\n    }\n    const preferInlineCompletions = itemToPreserve ? !itemToPreserve.isInlineEdit : updatedSuggestions.some((i2) =\u003e !i2.isInlineEdit \u0026\u0026 i2.isVisible(textModel, cursorPosition));\n    let updatedItems = [];\n    for (const i2 of updatedSuggestions) {\n      const oldItem = this._findByHash(i2.hash);\n      let item;\n      if (oldItem \u0026\u0026 oldItem !== i2) {\n        item = i2.withIdentity(oldItem.identity);\n        i2.setIsPreceeded(oldItem);\n        oldItem.setEndOfLifeReason({ kind: InlineCompletionEndOfLifeReasonKind.Ignored, userTypingDisagreed: false, supersededBy: i2.getSourceCompletion() });\n      } else {\n        item = i2;\n      }\n      if (preferInlineCompletions !== item.isInlineEdit) {\n        updatedItems.push(item);\n      }\n    }\n    updatedItems.sort(compareBy((i2) =\u003e i2.showInlineEditMenu, booleanComparator));\n    updatedItems = distinctByKey(updatedItems, (i2) =\u003e i2.semanticId);\n    return new _InlineCompletionsState(updatedItems, request);\n  }\n  clone() {\n    return new _InlineCompletionsState(this.inlineCompletions, this.request);\n  }\n};\nfunction distinctByKey(items, key) {\n  const seen = /* @__PURE__ */ new Set();\n  return items.filter((item) =\u003e {\n    const k = key(item);\n    if (seen.has(k)) {\n      return false;\n    }\n    seen.add(k);\n    return true;\n  });\n}\nfunction moveToFront(item, items) {\n  const index = items.indexOf(item);\n  if (index \u003e -1) {\n    return [item, ...items.slice(0, index), ...items.slice(index + 1)];\n  }\n  return items;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineEdit.js\nvar InlineEdit = class {\n  constructor(edit2, commands, inlineCompletion) {\n    this.edit = edit2;\n    this.commands = commands;\n    this.inlineCompletion = inlineCompletion;\n  }\n  equals(other) {\n    return this.edit.equals(other.edit) \u0026\u0026 this.inlineCompletion === other.inlineCompletion;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js\ninit_textModelEditSource();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/inlineCompletionsService.js\ninit_dom();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_nls();\ninit_actions2();\ninit_contextkey();\ninit_extensions();\ninit_instantiation();\ninit_telemetry();\nvar __decorate98 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param92 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar IInlineCompletionsService = createDecorator(\"IInlineCompletionsService\");\nvar InlineCompletionsSnoozing = new RawContextKey(\"inlineCompletions.snoozed\", false, localize(76, \"Whether inline completions are currently snoozed\"));\nvar InlineCompletionsService = class InlineCompletionsService2 extends Disposable {\n  get snoozeTimeLeft() {\n    if (this._snoozeTimeEnd === void 0) {\n      return 0;\n    }\n    return Math.max(0, this._snoozeTimeEnd - Date.now());\n  }\n  constructor(_contextKeyService, _telemetryService) {\n    super();\n    this._contextKeyService = _contextKeyService;\n    this._telemetryService = _telemetryService;\n    this._onDidChangeIsSnoozing = this._register(new Emitter());\n    this.onDidChangeIsSnoozing = this._onDidChangeIsSnoozing.event;\n    this._snoozeTimeEnd = void 0;\n    this._recentCompletionIds = [];\n    this._timer = this._register(new WindowIntervalTimer());\n    const inlineCompletionsSnoozing = InlineCompletionsSnoozing.bindTo(this._contextKeyService);\n    this._register(this.onDidChangeIsSnoozing(() =\u003e inlineCompletionsSnoozing.set(this.isSnoozing())));\n  }\n  setSnoozeDuration(durationMs) {\n    if (durationMs \u003c 0) {\n      throw new BugIndicatingError(`Invalid snooze duration: ${durationMs}. Duration must be non-negative.`);\n    }\n    if (durationMs === 0) {\n      this.cancelSnooze();\n      return;\n    }\n    const wasSnoozing = this.isSnoozing();\n    const timeLeft = this.snoozeTimeLeft;\n    this._snoozeTimeEnd = Date.now() + durationMs;\n    if (!wasSnoozing) {\n      this._onDidChangeIsSnoozing.fire(true);\n    }\n    this._timer.cancelAndSet(() =\u003e {\n      if (!this.isSnoozing()) {\n        this._onDidChangeIsSnoozing.fire(false);\n      } else {\n        throw new BugIndicatingError(\"Snooze timer did not fire as expected\");\n      }\n    }, this.snoozeTimeLeft + 1);\n    this._reportSnooze(durationMs - timeLeft, durationMs);\n  }\n  isSnoozing() {\n    return this.snoozeTimeLeft \u003e 0;\n  }\n  cancelSnooze() {\n    if (this.isSnoozing()) {\n      this._reportSnooze(-this.snoozeTimeLeft, 0);\n      this._snoozeTimeEnd = void 0;\n      this._timer.cancel();\n      this._onDidChangeIsSnoozing.fire(false);\n    }\n  }\n  reportNewCompletion(requestUuid) {\n    this._lastCompletionId = requestUuid;\n    this._recentCompletionIds.unshift(requestUuid);\n    if (this._recentCompletionIds.length \u003e 5) {\n      this._recentCompletionIds.pop();\n    }\n  }\n  _reportSnooze(deltaMs, totalMs) {\n    const deltaSeconds = Math.round(deltaMs / 1e3);\n    const totalSeconds = Math.round(totalMs / 1e3);\n    this._telemetryService.publicLog2(\"inlineCompletions.snooze\", {\n      deltaSeconds,\n      totalSeconds,\n      lastCompletionId: this._lastCompletionId,\n      recentCompletionIds: this._recentCompletionIds\n    });\n  }\n};\nInlineCompletionsService = __decorate98([\n  __param92(0, IContextKeyService),\n  __param92(1, ITelemetryService)\n], InlineCompletionsService);\nregisterSingleton(\n  IInlineCompletionsService,\n  InlineCompletionsService,\n  1\n  /* InstantiationType.Delayed */\n);\nvar snoozeInlineSuggestId = \"editor.action.inlineSuggest.snooze\";\nvar cancelSnoozeInlineSuggestId = \"editor.action.inlineSuggest.cancelSnooze\";\nvar LAST_SNOOZE_DURATION_KEY = \"inlineCompletions.lastSnoozeDuration\";\nvar SnoozeInlineCompletion = class _SnoozeInlineCompletion extends Action2 {\n  static {\n    this.ID = snoozeInlineSuggestId;\n  }\n  constructor() {\n    super({\n      id: _SnoozeInlineCompletion.ID,\n      title: localize2(78, \"Snooze Inline Suggestions\"),\n      precondition: ContextKeyExpr.true(),\n      f1: true\n    });\n  }\n  async run(accessor, ...args) {\n    const quickInputService = accessor.get(IQuickInputService);\n    const inlineCompletionsService = accessor.get(IInlineCompletionsService);\n    const storageService = accessor.get(IStorageService);\n    let durationMinutes;\n    if (args.length \u003e 0 \u0026\u0026 typeof args[0] === \"number\") {\n      durationMinutes = args[0];\n    }\n    if (!durationMinutes) {\n      durationMinutes = await this.getDurationFromUser(quickInputService, storageService);\n    }\n    if (durationMinutes) {\n      inlineCompletionsService.setSnoozeDuration(durationMinutes);\n    }\n  }\n  async getDurationFromUser(quickInputService, storageService) {\n    const lastSelectedDuration = storageService.getNumber(LAST_SNOOZE_DURATION_KEY, 0, 3e5);\n    const items = [\n      { label: \"1 minute\", id: \"1\", value: 6e4 },\n      { label: \"5 minutes\", id: \"5\", value: 3e5 },\n      { label: \"10 minutes\", id: \"10\", value: 6e5 },\n      { label: \"15 minutes\", id: \"15\", value: 9e5 },\n      { label: \"30 minutes\", id: \"30\", value: 18e5 },\n      { label: \"60 minutes\", id: \"60\", value: 36e5 }\n    ];\n    const picked = await quickInputService.pick(items, {\n      placeHolder: localize(77, \"Select snooze duration for Code completions and NES\"),\n      activeItem: items.find((item) =\u003e item.value === lastSelectedDuration)\n    });\n    if (picked) {\n      storageService.store(\n        LAST_SNOOZE_DURATION_KEY,\n        picked.value,\n        0,\n        0\n        /* StorageTarget.USER */\n      );\n      return picked.value;\n    }\n    return void 0;\n  }\n};\nvar CancelSnoozeInlineCompletion = class _CancelSnoozeInlineCompletion extends Action2 {\n  static {\n    this.ID = cancelSnoozeInlineSuggestId;\n  }\n  constructor() {\n    super({\n      id: _CancelSnoozeInlineCompletion.ID,\n      title: localize2(79, \"Cancel Snooze Inline Suggestions\"),\n      precondition: InlineCompletionsSnoozing,\n      f1: true\n    });\n  }\n  async run(accessor) {\n    accessor.get(IInlineCompletionsService).cancelSnooze();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/typingSpeed.js\ninit_arrays();\ninit_lifecycle();\nvar TypingInterval = class _TypingInterval extends Disposable {\n  static {\n    this.MAX_SESSION_GAP_MS = 3e3;\n  }\n  static {\n    this.MIN_SESSION_DURATION_MS = 1e3;\n  }\n  static {\n    this.SESSION_HISTORY_LIMIT = 50;\n  }\n  static {\n    this.TYPING_SPEED_WINDOW_MS = 3e5;\n  }\n  static {\n    this.MIN_CHARS_FOR_RELIABLE_SPEED = 20;\n  }\n  // Minimum characters needed for reliable speed calculation\n  /**\n   * Gets the current typing interval as average milliseconds between keystrokes\n   * and the number of characters involved in the computation.\n   * Higher interval values indicate slower typing.\n   * Returns { interval: 0, characterCount: 0 } if no typing data is available.\n   */\n  getTypingInterval() {\n    if (this._cacheInvalidated || this._cachedTypingIntervalResult === null) {\n      this._cachedTypingIntervalResult = this._calculateTypingInterval();\n      this._cacheInvalidated = false;\n    }\n    return this._cachedTypingIntervalResult;\n  }\n  constructor(_textModel) {\n    super();\n    this._textModel = _textModel;\n    this._typingSessions = [];\n    this._currentSession = null;\n    this._lastChangeTime = 0;\n    this._cachedTypingIntervalResult = null;\n    this._cacheInvalidated = true;\n    this._register(this._textModel.onDidChangeContent((e) =\u003e this._updateTypingSpeed(e)));\n  }\n  _updateTypingSpeed(change) {\n    const now = Date.now();\n    if (!this._isUserTyping(change)) {\n      this._finalizeCurrentSession();\n      return;\n    }\n    if (this._currentSession \u0026\u0026 now - this._lastChangeTime \u003e _TypingInterval.MAX_SESSION_GAP_MS) {\n      this._finalizeCurrentSession();\n    }\n    if (!this._currentSession) {\n      this._currentSession = {\n        startTime: now,\n        endTime: now,\n        characterCount: 0\n      };\n    }\n    this._currentSession.endTime = now;\n    this._currentSession.characterCount += this._getActualCharacterCount(change);\n    this._lastChangeTime = now;\n    this._cacheInvalidated = true;\n  }\n  _getActualCharacterCount(change) {\n    let totalChars = 0;\n    for (const c of change.changes) {\n      totalChars += Math.max(c.text.length, c.rangeLength);\n    }\n    return totalChars;\n  }\n  _isUserTyping(change) {\n    if (!change.detailedReasons || change.detailedReasons.length === 0) {\n      return false;\n    }\n    for (const reason of change.detailedReasons) {\n      if (this._isUserTypingReason(reason)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  _isUserTypingReason(reason) {\n    if (reason.metadata.isUndoing || reason.metadata.isRedoing) {\n      return false;\n    }\n    switch (reason.metadata.source) {\n      case \"cursor\": {\n        const kind = reason.metadata.kind;\n        return kind === \"type\" || kind === \"compositionType\" || kind === \"compositionEnd\";\n      }\n      default:\n        return false;\n    }\n  }\n  _finalizeCurrentSession() {\n    if (!this._currentSession) {\n      return;\n    }\n    const sessionDuration = this._currentSession.endTime - this._currentSession.startTime;\n    if (sessionDuration \u003e= _TypingInterval.MIN_SESSION_DURATION_MS \u0026\u0026 this._currentSession.characterCount \u003e 0) {\n      this._typingSessions.push(this._currentSession);\n      if (this._typingSessions.length \u003e _TypingInterval.SESSION_HISTORY_LIMIT) {\n        this._typingSessions.shift();\n      }\n    }\n    this._currentSession = null;\n  }\n  _calculateTypingInterval() {\n    if (this._currentSession) {\n      const tempSession = { ...this._currentSession };\n      const sessionDuration = tempSession.endTime - tempSession.startTime;\n      if (sessionDuration \u003e= _TypingInterval.MIN_SESSION_DURATION_MS \u0026\u0026 tempSession.characterCount \u003e 0) {\n        const allSessions = [...this._typingSessions, tempSession];\n        return this._calculateSpeedFromSessions(allSessions);\n      }\n    }\n    return this._calculateSpeedFromSessions(this._typingSessions);\n  }\n  _calculateSpeedFromSessions(sessions) {\n    if (sessions.length === 0) {\n      return { averageInterval: 0, characterCount: 0 };\n    }\n    const sortedSessions = [...sessions].sort((a, b) =\u003e b.endTime - a.endTime);\n    const cutoffTime = Date.now() - _TypingInterval.TYPING_SPEED_WINDOW_MS;\n    const recentSessions = sortedSessions.filter((session) =\u003e session.endTime \u003e cutoffTime);\n    const olderSessions = sortedSessions.splice(recentSessions.length);\n    let totalChars = sum(recentSessions.map((session) =\u003e session.characterCount));\n    for (let i2 = 0; i2 \u003c olderSessions.length \u0026\u0026 totalChars \u003c _TypingInterval.MIN_CHARS_FOR_RELIABLE_SPEED; i2++) {\n      recentSessions.push(olderSessions[i2]);\n      totalChars += olderSessions[i2].characterCount;\n    }\n    const totalTime = sum(recentSessions.map((session) =\u003e session.endTime - session.startTime));\n    if (totalTime === 0 || totalChars \u003c= 1) {\n      return { averageInterval: 0, characterCount: totalChars };\n    }\n    const keystrokeIntervals = Math.max(1, totalChars - 1);\n    const avgMsBetweenKeystrokes = totalTime / keystrokeIntervals;\n    return {\n      averageInterval: Math.round(avgMsBetweenKeystrokes),\n      characterCount: totalChars\n    };\n  }\n  dispose() {\n    this._finalizeCurrentSession();\n    super.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js\ninit_offsetRange();\ninit_uri();\nvar __decorate99 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param93 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineCompletionsModel = class InlineCompletionsModel2 extends Disposable {\n  get isAcceptingPartially() {\n    return this._isAcceptingPartially;\n  }\n  constructor(textModel, _selectedSuggestItem, _textModelVersionId, _positions, _debounceValue, _enabled, _editor, _instantiationService, _commandService, _languageConfigurationService, _accessibilityService, _languageFeaturesService, _codeEditorService, _inlineCompletionsService) {\n    super();\n    this.textModel = textModel;\n    this._selectedSuggestItem = _selectedSuggestItem;\n    this._textModelVersionId = _textModelVersionId;\n    this._positions = _positions;\n    this._debounceValue = _debounceValue;\n    this._enabled = _enabled;\n    this._editor = _editor;\n    this._instantiationService = _instantiationService;\n    this._commandService = _commandService;\n    this._languageConfigurationService = _languageConfigurationService;\n    this._accessibilityService = _accessibilityService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._codeEditorService = _codeEditorService;\n    this._inlineCompletionsService = _inlineCompletionsService;\n    this._isActive = observableValue(this, false);\n    this._onlyRequestInlineEditsSignal = observableSignal(this);\n    this._forceUpdateExplicitlySignal = observableSignal(this);\n    this._noDelaySignal = observableSignal(this);\n    this._fetchSpecificProviderSignal = observableSignal(this);\n    this._selectedInlineCompletionId = observableValue(this, void 0);\n    this.primaryPosition = derived(this, (reader) =\u003e this._positions.read(reader)[0] ?? new Position(1, 1));\n    this._isAcceptingPartially = false;\n    this._appearedInsideViewport = derived(this, (reader) =\u003e {\n      const state = this.state.read(reader);\n      if (!state || !state.inlineCompletion) {\n        return false;\n      }\n      const targetRange = state.inlineCompletion.targetRange;\n      const visibleRanges = this._editorObs.editor.getVisibleRanges();\n      if (visibleRanges.length \u003c 1) {\n        return false;\n      }\n      const viewportRange = new Range(visibleRanges[0].startLineNumber, visibleRanges[0].startColumn, visibleRanges[visibleRanges.length - 1].endLineNumber, visibleRanges[visibleRanges.length - 1].endColumn);\n      return viewportRange.containsRange(targetRange);\n    });\n    this._onDidAccept = new Emitter();\n    this.onDidAccept = this._onDidAccept.event;\n    this._lastShownInlineCompletionInfo = void 0;\n    this._lastAcceptedInlineCompletionInfo = void 0;\n    this._didUndoInlineEdits = derivedHandleChanges({\n      owner: this,\n      changeTracker: {\n        createChangeSummary: () =\u003e ({ didUndo: false }),\n        handleChange: (ctx, changeSummary) =\u003e {\n          changeSummary.didUndo = ctx.didChange(this._textModelVersionId) \u0026\u0026 !!ctx.change?.isUndoing;\n          return true;\n        }\n      }\n    }, (reader, changeSummary) =\u003e {\n      const versionId = this._textModelVersionId.read(reader);\n      if (versionId !== null \u0026\u0026 this._lastAcceptedInlineCompletionInfo \u0026\u0026 this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter === versionId - 1 \u0026\u0026 this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit \u0026\u0026 changeSummary.didUndo) {\n        this._lastAcceptedInlineCompletionInfo = void 0;\n        return true;\n      }\n      return false;\n    });\n    this._preserveCurrentCompletionReasons = /* @__PURE__ */ new Set([\n      VersionIdChangeReason.Redo,\n      VersionIdChangeReason.Undo,\n      VersionIdChangeReason.AcceptWord\n    ]);\n    this.dontRefetchSignal = observableSignal(this);\n    this._fetchInlineCompletionsPromise = derivedHandleChanges({\n      owner: this,\n      changeTracker: {\n        createChangeSummary: () =\u003e ({\n          dontRefetch: false,\n          preserveCurrentCompletion: false,\n          inlineCompletionTriggerKind: InlineCompletionTriggerKind.Automatic,\n          onlyRequestInlineEdits: false,\n          shouldDebounce: true,\n          provider: void 0,\n          textChange: false,\n          changeReason: \"\"\n        }),\n        handleChange: (ctx, changeSummary) =\u003e {\n          if (ctx.didChange(this._textModelVersionId)) {\n            if (this._preserveCurrentCompletionReasons.has(this._getReason(ctx.change))) {\n              changeSummary.preserveCurrentCompletion = true;\n            }\n            const detailedReasons = ctx.change?.detailedReasons ?? [];\n            changeSummary.changeReason = detailedReasons.length \u003e 0 ? detailedReasons[0].getType() : \"\";\n            changeSummary.textChange = true;\n          } else if (ctx.didChange(this._forceUpdateExplicitlySignal)) {\n            changeSummary.preserveCurrentCompletion = true;\n            changeSummary.inlineCompletionTriggerKind = InlineCompletionTriggerKind.Explicit;\n          } else if (ctx.didChange(this.dontRefetchSignal)) {\n            changeSummary.dontRefetch = true;\n          } else if (ctx.didChange(this._onlyRequestInlineEditsSignal)) {\n            changeSummary.onlyRequestInlineEdits = true;\n          } else if (ctx.didChange(this._fetchSpecificProviderSignal)) {\n            changeSummary.provider = ctx.change;\n          }\n          return true;\n        }\n      }\n    }, (reader, changeSummary) =\u003e {\n      this._source.clearOperationOnTextModelChange.read(reader);\n      this._noDelaySignal.read(reader);\n      this.dontRefetchSignal.read(reader);\n      this._onlyRequestInlineEditsSignal.read(reader);\n      this._forceUpdateExplicitlySignal.read(reader);\n      this._fetchSpecificProviderSignal.read(reader);\n      const shouldUpdate = (this._enabled.read(reader) \u0026\u0026 this._selectedSuggestItem.read(reader) || this._isActive.read(reader)) \u0026\u0026 (!this._inlineCompletionsService.isSnoozing() || changeSummary.inlineCompletionTriggerKind === InlineCompletionTriggerKind.Explicit);\n      if (!shouldUpdate) {\n        this._source.cancelUpdate();\n        return void 0;\n      }\n      this._textModelVersionId.read(reader);\n      const suggestWidgetInlineCompletions = this._source.suggestWidgetInlineCompletions.get();\n      let suggestItem = this._selectedSuggestItem.read(reader);\n      if (this._shouldShowOnSuggestConflict.get()) {\n        suggestItem = void 0;\n      }\n      if (suggestWidgetInlineCompletions \u0026\u0026 !suggestItem) {\n        this._source.seedInlineCompletionsWithSuggestWidget();\n      }\n      if (changeSummary.dontRefetch) {\n        return Promise.resolve(true);\n      }\n      if (this._didUndoInlineEdits.read(reader) \u0026\u0026 changeSummary.inlineCompletionTriggerKind !== InlineCompletionTriggerKind.Explicit) {\n        transaction((tx) =\u003e {\n          this._source.clear(tx);\n        });\n        return void 0;\n      }\n      let reason = \"\";\n      if (changeSummary.provider) {\n        reason += \"providerOnDidChange\";\n      } else if (changeSummary.inlineCompletionTriggerKind === InlineCompletionTriggerKind.Explicit) {\n        reason += \"explicit\";\n      }\n      if (changeSummary.changeReason) {\n        reason += reason.length \u003e 0 ? `:${changeSummary.changeReason}` : changeSummary.changeReason;\n      }\n      const typingInterval = this._typing.getTypingInterval();\n      const requestInfo = {\n        editorType: this.editorType,\n        startTime: Date.now(),\n        languageId: this.textModel.getLanguageId(),\n        reason,\n        typingInterval: typingInterval.averageInterval,\n        typingIntervalCharacterCount: typingInterval.characterCount\n      };\n      let context = {\n        triggerKind: changeSummary.inlineCompletionTriggerKind,\n        selectedSuggestionInfo: suggestItem?.toSelectedSuggestionInfo(),\n        includeInlineCompletions: !changeSummary.onlyRequestInlineEdits,\n        includeInlineEdits: this._inlineEditsEnabled.read(reader),\n        requestIssuedDateTime: requestInfo.startTime,\n        earliestShownDateTime: requestInfo.startTime + (changeSummary.inlineCompletionTriggerKind === InlineCompletionTriggerKind.Explicit || this.inAcceptFlow.get() ? 0 : this._minShowDelay.get())\n      };\n      if (context.triggerKind === InlineCompletionTriggerKind.Automatic \u0026\u0026 changeSummary.textChange) {\n        if (this.textModel.getAlternativeVersionId() === this._lastShownInlineCompletionInfo?.alternateTextModelVersionId) {\n          context = {\n            ...context,\n            includeInlineCompletions: !this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,\n            includeInlineEdits: this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit\n          };\n        }\n      }\n      const itemToPreserveCandidate = this.selectedInlineCompletion.get() ?? this._inlineCompletionItems.get()?.inlineEdit;\n      const itemToPreserve = changeSummary.preserveCurrentCompletion || itemToPreserveCandidate?.forwardStable ? itemToPreserveCandidate : void 0;\n      const userJumpedToActiveCompletion = this._jumpedToId.map((jumpedTo) =\u003e !!jumpedTo \u0026\u0026 jumpedTo === this._inlineCompletionItems.get()?.inlineEdit?.semanticId);\n      const providers = changeSummary.provider ? { providers: [changeSummary.provider], label: \"single:\" + changeSummary.provider.providerId?.toString() } : { providers: this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel), label: void 0 };\n      const availableProviders = this.getAvailableProviders(providers.providers);\n      return this._source.fetch(availableProviders, providers.label, context, itemToPreserve?.identity, changeSummary.shouldDebounce, userJumpedToActiveCompletion, requestInfo);\n    });\n    this._inlineCompletionItems = derivedOpts({ owner: this }, (reader) =\u003e {\n      const c = this._source.inlineCompletions.read(reader);\n      if (!c) {\n        return void 0;\n      }\n      const cursorPosition = this.primaryPosition.read(reader);\n      let inlineEdit = void 0;\n      const visibleCompletions = [];\n      for (const completion of c.inlineCompletions) {\n        if (!completion.isInlineEdit) {\n          if (completion.isVisible(this.textModel, cursorPosition)) {\n            visibleCompletions.push(completion);\n          }\n        } else {\n          inlineEdit = completion;\n        }\n      }\n      if (visibleCompletions.length !== 0) {\n        inlineEdit = void 0;\n      }\n      return {\n        inlineCompletions: visibleCompletions,\n        inlineEdit\n      };\n    });\n    this._filteredInlineCompletionItems = derivedOpts({ owner: this, equalsFn: itemsEquals() }, (reader) =\u003e {\n      const c = this._inlineCompletionItems.read(reader);\n      return c?.inlineCompletions ?? [];\n    });\n    this.selectedInlineCompletionIndex = derived(this, (reader) =\u003e {\n      const selectedInlineCompletionId = this._selectedInlineCompletionId.read(reader);\n      const filteredCompletions = this._filteredInlineCompletionItems.read(reader);\n      const idx = this._selectedInlineCompletionId === void 0 ? -1 : filteredCompletions.findIndex((v) =\u003e v.semanticId === selectedInlineCompletionId);\n      if (idx === -1) {\n        this._selectedInlineCompletionId.set(void 0, void 0);\n        return 0;\n      }\n      return idx;\n    });\n    this.selectedInlineCompletion = derived(this, (reader) =\u003e {\n      const filteredCompletions = this._filteredInlineCompletionItems.read(reader);\n      const idx = this.selectedInlineCompletionIndex.read(reader);\n      return filteredCompletions[idx];\n    });\n    this.activeCommands = derivedOpts({ owner: this, equalsFn: itemsEquals() }, (r) =\u003e this.selectedInlineCompletion.read(r)?.source.inlineSuggestions.commands ?? []);\n    this.inlineCompletionsCount = derived(this, (reader) =\u003e {\n      if (this.lastTriggerKind.read(reader) === InlineCompletionTriggerKind.Explicit) {\n        return this._filteredInlineCompletionItems.read(reader).length;\n      } else {\n        return void 0;\n      }\n    });\n    this._hasVisiblePeekWidgets = derived(this, (reader) =\u003e this._editorObs.openedPeekWidgets.read(reader) \u003e 0);\n    this._shouldShowOnSuggestConflict = derived(this, (reader) =\u003e {\n      const showOnSuggestConflict = this._showOnSuggestConflict.read(reader);\n      if (showOnSuggestConflict !== \"never\") {\n        const hasInlineCompletion = !!this.selectedInlineCompletion.read(reader);\n        if (hasInlineCompletion) {\n          const item = this._selectedSuggestItem.read(reader);\n          if (!item) {\n            return false;\n          }\n          if (showOnSuggestConflict === \"whenSuggestListIsIncomplete\") {\n            return item.listIncomplete;\n          }\n          return true;\n        }\n      }\n      return false;\n    });\n    this.state = derivedOpts({\n      owner: this,\n      equalsFn: (a, b) =\u003e {\n        if (!a || !b) {\n          return a === b;\n        }\n        if (a.kind === \"ghostText\" \u0026\u0026 b.kind === \"ghostText\") {\n          return ghostTextsOrReplacementsEqual(a.ghostTexts, b.ghostTexts) \u0026\u0026 a.inlineCompletion === b.inlineCompletion \u0026\u0026 a.suggestItem === b.suggestItem;\n        } else if (a.kind === \"inlineEdit\" \u0026\u0026 b.kind === \"inlineEdit\") {\n          return a.inlineEdit.equals(b.inlineEdit);\n        }\n        return false;\n      }\n    }, (reader) =\u003e {\n      const model = this.textModel;\n      const item = this._inlineCompletionItems.read(reader);\n      const inlineEditResult = item?.inlineEdit;\n      if (inlineEditResult) {\n        if (this._hasVisiblePeekWidgets.read(reader)) {\n          return void 0;\n        }\n        let edit2 = inlineEditResult.getSingleTextEdit();\n        edit2 = singleTextRemoveCommonPrefix(edit2, model);\n        const cursorAtInlineEdit = this.primaryPosition.map((cursorPos) =\u003e LineRange.fromRangeInclusive(inlineEditResult.targetRange).addMargin(1, 1).contains(cursorPos.lineNumber));\n        const commands = inlineEditResult.source.inlineSuggestions.commands;\n        const inlineEdit = new InlineEdit(edit2, commands ?? [], inlineEditResult);\n        const edits = inlineEditResult.updatedEdit;\n        const e = edits ? TextEdit.fromStringEdit(edits, new TextModelText(this.textModel)).replacements : [edit2];\n        const nextEditUri = (item.inlineEdit?.command?.id === \"vscode.open\" || item.inlineEdit?.command?.id === \"_workbench.open\") \u0026\u0026 item.inlineEdit?.command.arguments?.length ? URI.from(item.inlineEdit?.command.arguments[0]) : void 0;\n        return { kind: \"inlineEdit\", inlineEdit, inlineCompletion: inlineEditResult, edits: e, cursorAtInlineEdit, nextEditUri };\n      }\n      const suggestItem = this._selectedSuggestItem.read(reader);\n      if (!this._shouldShowOnSuggestConflict.read(reader) \u0026\u0026 suggestItem) {\n        const suggestCompletionEdit = singleTextRemoveCommonPrefix(suggestItem.getSingleTextEdit(), model);\n        const augmentation = this._computeAugmentation(suggestCompletionEdit, reader);\n        const isSuggestionPreviewEnabled = this._suggestPreviewEnabled.read(reader);\n        if (!isSuggestionPreviewEnabled \u0026\u0026 !augmentation) {\n          return void 0;\n        }\n        const fullEdit = augmentation?.edit ?? suggestCompletionEdit;\n        const fullEditPreviewLength = augmentation ? augmentation.edit.text.length - suggestCompletionEdit.text.length : 0;\n        const mode = this._suggestPreviewMode.read(reader);\n        const positions = this._positions.read(reader);\n        const allPotentialEdits = [fullEdit, ...getSecondaryEdits(this.textModel, positions, fullEdit)];\n        const validEditsAndGhostTexts = allPotentialEdits.map((edit2, idx) =\u003e ({ edit: edit2, ghostText: edit2 ? computeGhostText(edit2, model, mode, positions[idx], fullEditPreviewLength) : void 0 })).filter(({ edit: edit2, ghostText }) =\u003e edit2 !== void 0 \u0026\u0026 ghostText !== void 0);\n        const edits = validEditsAndGhostTexts.map(({ edit: edit2 }) =\u003e edit2);\n        const ghostTexts = validEditsAndGhostTexts.map(({ ghostText }) =\u003e ghostText);\n        const primaryGhostText = ghostTexts[0] ?? new GhostText(fullEdit.range.endLineNumber, []);\n        return { kind: \"ghostText\", edits, primaryGhostText, ghostTexts, inlineCompletion: augmentation?.completion, suggestItem };\n      } else {\n        if (!this._isActive.read(reader)) {\n          return void 0;\n        }\n        const inlineCompletion = this.selectedInlineCompletion.read(reader);\n        if (!inlineCompletion) {\n          return void 0;\n        }\n        const replacement = inlineCompletion.getSingleTextEdit();\n        const mode = this._inlineSuggestMode.read(reader);\n        const positions = this._positions.read(reader);\n        const allPotentialEdits = [replacement, ...getSecondaryEdits(this.textModel, positions, replacement)];\n        const validEditsAndGhostTexts = allPotentialEdits.map((edit2, idx) =\u003e ({ edit: edit2, ghostText: edit2 ? computeGhostText(edit2, model, mode, positions[idx], 0) : void 0 })).filter(({ edit: edit2, ghostText }) =\u003e edit2 !== void 0 \u0026\u0026 ghostText !== void 0);\n        const edits = validEditsAndGhostTexts.map(({ edit: edit2 }) =\u003e edit2);\n        const ghostTexts = validEditsAndGhostTexts.map(({ ghostText }) =\u003e ghostText);\n        if (!ghostTexts[0]) {\n          return void 0;\n        }\n        return { kind: \"ghostText\", edits, primaryGhostText: ghostTexts[0], ghostTexts, inlineCompletion, suggestItem: void 0 };\n      }\n    });\n    this.inlineCompletionState = derived(this, (reader) =\u003e {\n      const s = this.state.read(reader);\n      if (!s || s.kind !== \"ghostText\") {\n        return void 0;\n      }\n      if (this._editorObs.inComposition.read(reader)) {\n        return void 0;\n      }\n      return s;\n    });\n    this.inlineEditState = derived(this, (reader) =\u003e {\n      const s = this.state.read(reader);\n      if (!s || s.kind !== \"inlineEdit\") {\n        return void 0;\n      }\n      return s;\n    });\n    this.inlineEditAvailable = derived(this, (reader) =\u003e {\n      const s = this.inlineEditState.read(reader);\n      return !!s;\n    });\n    this.warning = derived(this, (reader) =\u003e {\n      return this.inlineCompletionState.read(reader)?.inlineCompletion?.warning;\n    });\n    this.ghostTexts = derivedOpts({ owner: this, equalsFn: ghostTextsOrReplacementsEqual }, (reader) =\u003e {\n      const v = this.inlineCompletionState.read(reader);\n      if (!v) {\n        return void 0;\n      }\n      return v.ghostTexts;\n    });\n    this.primaryGhostText = derivedOpts({ owner: this, equalsFn: ghostTextOrReplacementEquals }, (reader) =\u003e {\n      const v = this.inlineCompletionState.read(reader);\n      if (!v) {\n        return void 0;\n      }\n      return v?.primaryGhostText;\n    });\n    this.showCollapsed = derived(this, (reader) =\u003e {\n      const state = this.state.read(reader);\n      if (!state || state.kind !== \"inlineEdit\") {\n        return false;\n      }\n      if (state.inlineCompletion.displayLocation) {\n        return false;\n      }\n      const isCurrentModelVersion = state.inlineCompletion.updatedEditModelVersion === this._textModelVersionId.read(reader);\n      return (this._inlineEditsShowCollapsedEnabled.read(reader) || !isCurrentModelVersion) \u0026\u0026 this._jumpedToId.read(reader) !== state.inlineCompletion.semanticId \u0026\u0026 !this._inAcceptFlow.read(reader);\n    });\n    this._tabShouldIndent = derived(this, (reader) =\u003e {\n      if (this._inAcceptFlow.read(reader)) {\n        return false;\n      }\n      function isMultiLine(range2) {\n        return range2.startLineNumber !== range2.endLineNumber;\n      }\n      function getNonIndentationRange(model, lineNumber) {\n        const columnStart = model.getLineIndentColumn(lineNumber);\n        const lastNonWsColumn = model.getLineLastNonWhitespaceColumn(lineNumber);\n        const columnEnd = Math.max(lastNonWsColumn, columnStart);\n        return new Range(lineNumber, columnStart, lineNumber, columnEnd);\n      }\n      const selections = this._editorObs.selections.read(reader);\n      return selections?.some((s) =\u003e {\n        if (s.isEmpty()) {\n          return this.textModel.getLineLength(s.startLineNumber) === 0;\n        } else {\n          return isMultiLine(s) || s.containsRange(getNonIndentationRange(this.textModel, s.startLineNumber));\n        }\n      });\n    });\n    this.tabShouldJumpToInlineEdit = derived(this, (reader) =\u003e {\n      if (this._tabShouldIndent.read(reader)) {\n        return false;\n      }\n      const s = this.inlineEditState.read(reader);\n      if (!s) {\n        return false;\n      }\n      if (this.showCollapsed.read(reader)) {\n        return true;\n      }\n      if (this._inAcceptFlow.read(reader) \u0026\u0026 this._appearedInsideViewport.read(reader)) {\n        return false;\n      }\n      return !s.cursorAtInlineEdit.read(reader);\n    });\n    this.tabShouldAcceptInlineEdit = derived(this, (reader) =\u003e {\n      const s = this.inlineEditState.read(reader);\n      if (!s) {\n        return false;\n      }\n      if (this.showCollapsed.read(reader)) {\n        return false;\n      }\n      if (this._inAcceptFlow.read(reader) \u0026\u0026 this._appearedInsideViewport.read(reader)) {\n        return true;\n      }\n      if (s.inlineCompletion.targetRange.startLineNumber === this._editorObs.cursorLineNumber.read(reader)) {\n        return true;\n      }\n      if (this._jumpedToId.read(reader) === s.inlineCompletion.semanticId) {\n        return true;\n      }\n      if (this._tabShouldIndent.read(reader)) {\n        return false;\n      }\n      return s.cursorAtInlineEdit.read(reader);\n    });\n    this._jumpedToId = observableValue(this, void 0);\n    this._inAcceptFlow = observableValue(this, false);\n    this.inAcceptFlow = this._inAcceptFlow;\n    this._source = this._register(this._instantiationService.createInstance(InlineCompletionsSource, this.textModel, this._textModelVersionId, this._debounceValue, this.primaryPosition));\n    this.lastTriggerKind = this._source.inlineCompletions.map(this, (v) =\u003e v?.request?.context.triggerKind);\n    this._editorObs = observableCodeEditor(this._editor);\n    const suggest = this._editorObs.getOption(\n      133\n      /* EditorOption.suggest */\n    );\n    this._suggestPreviewEnabled = suggest.map((v) =\u003e v.preview);\n    this._suggestPreviewMode = suggest.map((v) =\u003e v.previewMode);\n    const inlineSuggest = this._editorObs.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    );\n    this._inlineSuggestMode = inlineSuggest.map((v) =\u003e v.mode);\n    this._suppressedInlineCompletionGroupIds = inlineSuggest.map((v) =\u003e new Set(v.experimental.suppressInlineSuggestions.split(\",\")));\n    this._inlineEditsEnabled = inlineSuggest.map((v) =\u003e !!v.edits.enabled);\n    this._inlineEditsShowCollapsedEnabled = inlineSuggest.map((s) =\u003e s.edits.showCollapsed);\n    this._triggerCommandOnProviderChange = inlineSuggest.map((s) =\u003e s.triggerCommandOnProviderChange);\n    this._minShowDelay = inlineSuggest.map((s) =\u003e s.minShowDelay);\n    this._showOnSuggestConflict = inlineSuggest.map((s) =\u003e s.experimental.showOnSuggestConflict);\n    this._typing = this._register(new TypingInterval(this.textModel));\n    this._register(this._inlineCompletionsService.onDidChangeIsSnoozing((isSnoozing) =\u003e {\n      if (isSnoozing) {\n        this.stop();\n      }\n    }));\n    {\n      const isNotebook = this.textModel.uri.scheme === \"vscode-notebook-cell\";\n      const [diffEditor] = this._codeEditorService.listDiffEditors().filter((d) =\u003e d.getOriginalEditor().getId() === this._editor.getId() || d.getModifiedEditor().getId() === this._editor.getId());\n      this.isInDiffEditor = !!diffEditor;\n      this.editorType = isNotebook ? InlineCompletionEditorType.Notebook : this.isInDiffEditor ? InlineCompletionEditorType.DiffEditor : InlineCompletionEditorType.TextEditor;\n    }\n    this._register(recomputeInitiallyAndOnChange(this.state, (s) =\u003e {\n      if (s \u0026\u0026 s.inlineCompletion) {\n        this._inlineCompletionsService.reportNewCompletion(s.inlineCompletion.requestUuid);\n      }\n    }));\n    this._register(recomputeInitiallyAndOnChange(this._fetchInlineCompletionsPromise));\n    this._register(autorun((reader) =\u003e {\n      this._editorObs.versionId.read(reader);\n      this._inAcceptFlow.set(false, void 0);\n    }));\n    this._register(autorun((reader) =\u003e {\n      const jumpToReset = this.state.map((s, reader2) =\u003e !s || s.kind === \"inlineEdit\" \u0026\u0026 !s.cursorAtInlineEdit.read(reader2)).read(reader);\n      if (jumpToReset) {\n        this._jumpedToId.set(void 0, void 0);\n      }\n    }));\n    const inlineEditSemanticId = this.inlineEditState.map((s) =\u003e s?.inlineCompletion.semanticId);\n    this._register(autorun((reader) =\u003e {\n      const id = inlineEditSemanticId.read(reader);\n      if (id) {\n        this._editor.pushUndoStop();\n        this._lastShownInlineCompletionInfo = {\n          alternateTextModelVersionId: this.textModel.getAlternativeVersionId(),\n          inlineCompletion: this.state.get().inlineCompletion\n        };\n      }\n    }));\n    const inlineCompletionProviders = observableFromEvent(this._languageFeaturesService.inlineCompletionsProvider.onDidChange, () =\u003e this._languageFeaturesService.inlineCompletionsProvider.all(textModel));\n    mapObservableArrayCached(this, inlineCompletionProviders, (provider, store) =\u003e {\n      if (!provider.onDidChangeInlineCompletions) {\n        return;\n      }\n      store.add(provider.onDidChangeInlineCompletions(() =\u003e {\n        if (!this._enabled.get()) {\n          return;\n        }\n        const activeEditor = this._codeEditorService.getFocusedCodeEditor() || this._codeEditorService.getActiveCodeEditor();\n        if (activeEditor !== this._editor) {\n          return;\n        }\n        if (this._triggerCommandOnProviderChange.get()) {\n          this.trigger(void 0, { onlyFetchInlineEdits: true });\n          return;\n        }\n        const activeState = this.state.get();\n        if (activeState \u0026\u0026 (activeState.inlineCompletion || activeState.edits) \u0026\u0026 activeState.inlineCompletion?.source.provider !== provider) {\n          return;\n        }\n        transaction((tx) =\u003e {\n          this._fetchSpecificProviderSignal.trigger(tx, provider);\n          this.trigger(tx);\n        });\n      }));\n    }).recomputeInitiallyAndOnChange(this._store);\n    this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store);\n  }\n  getIndentationInfo(reader) {\n    let startsWithIndentation = false;\n    let startsWithIndentationLessThanTabSize = true;\n    const ghostText = this?.primaryGhostText.read(reader);\n    if (!!this?._selectedSuggestItem \u0026\u0026 ghostText \u0026\u0026 ghostText.parts.length \u003e 0) {\n      const { column, lines } = ghostText.parts[0];\n      const firstLine = lines[0].line;\n      const indentationEndColumn = this.textModel.getLineIndentColumn(ghostText.lineNumber);\n      const inIndentation = column \u003c= indentationEndColumn;\n      if (inIndentation) {\n        let firstNonWsIdx = firstNonWhitespaceIndex(firstLine);\n        if (firstNonWsIdx === -1) {\n          firstNonWsIdx = firstLine.length - 1;\n        }\n        startsWithIndentation = firstNonWsIdx \u003e 0;\n        const tabSize = this.textModel.getOptions().tabSize;\n        const visibleColumnIndentation = CursorColumns.visibleColumnFromColumn(firstLine, firstNonWsIdx + 1, tabSize);\n        startsWithIndentationLessThanTabSize = visibleColumnIndentation \u003c tabSize;\n      }\n    }\n    return {\n      startsWithIndentation,\n      startsWithIndentationLessThanTabSize\n    };\n  }\n  _getReason(e) {\n    if (e?.isUndoing) {\n      return VersionIdChangeReason.Undo;\n    }\n    if (e?.isRedoing) {\n      return VersionIdChangeReason.Redo;\n    }\n    if (this.isAcceptingPartially) {\n      return VersionIdChangeReason.AcceptWord;\n    }\n    return VersionIdChangeReason.Other;\n  }\n  // TODO: This is not an ideal implementation of excludesGroupIds, however as this is currently still behind proposed API\n  // and due to the time constraints, we are using a simplified approach\n  getAvailableProviders(providers) {\n    const suppressedProviderGroupIds = this._suppressedInlineCompletionGroupIds.get();\n    const unsuppressedProviders = providers.filter((provider) =\u003e !(provider.groupId \u0026\u0026 suppressedProviderGroupIds.has(provider.groupId)));\n    const excludedGroupIds = /* @__PURE__ */ new Set();\n    for (const provider of unsuppressedProviders) {\n      provider.excludesGroupIds?.forEach((p) =\u003e excludedGroupIds.add(p));\n    }\n    const availableProviders = [];\n    for (const provider of unsuppressedProviders) {\n      if (provider.groupId \u0026\u0026 excludedGroupIds.has(provider.groupId)) {\n        continue;\n      }\n      availableProviders.push(provider);\n    }\n    return availableProviders;\n  }\n  async trigger(tx, options2) {\n    subtransaction(tx, (tx2) =\u003e {\n      if (options2?.onlyFetchInlineEdits) {\n        this._onlyRequestInlineEditsSignal.trigger(tx2);\n      }\n      if (options2?.noDelay) {\n        this._noDelaySignal.trigger(tx2);\n      }\n      this._isActive.set(true, tx2);\n    });\n    await this._fetchInlineCompletionsPromise.get();\n  }\n  async triggerExplicitly(tx, onlyFetchInlineEdits = false) {\n    subtransaction(tx, (tx2) =\u003e {\n      if (onlyFetchInlineEdits) {\n        this._onlyRequestInlineEditsSignal.trigger(tx2);\n      }\n      this._isActive.set(true, tx2);\n      this._inAcceptFlow.set(true, tx2);\n      this._forceUpdateExplicitlySignal.trigger(tx2);\n    });\n    await this._fetchInlineCompletionsPromise.get();\n  }\n  stop(stopReason = \"automatic\", tx) {\n    subtransaction(tx, (tx2) =\u003e {\n      if (stopReason === \"explicitCancel\") {\n        const inlineCompletion = this.state.get()?.inlineCompletion;\n        if (inlineCompletion) {\n          inlineCompletion.reportEndOfLife({ kind: InlineCompletionEndOfLifeReasonKind.Rejected });\n        }\n      }\n      this._isActive.set(false, tx2);\n      this._source.clear(tx2);\n    });\n  }\n  _computeAugmentation(suggestCompletion, reader) {\n    const model = this.textModel;\n    const suggestWidgetInlineCompletions = this._source.suggestWidgetInlineCompletions.read(reader);\n    const candidateInlineCompletions = suggestWidgetInlineCompletions ? suggestWidgetInlineCompletions.inlineCompletions.filter((c) =\u003e !c.isInlineEdit) : [this.selectedInlineCompletion.read(reader)].filter(isDefined);\n    const augmentedCompletion = mapFindFirst(candidateInlineCompletions, (completion) =\u003e {\n      let r = completion.getSingleTextEdit();\n      r = singleTextRemoveCommonPrefix(r, model, Range.fromPositions(r.range.getStartPosition(), suggestCompletion.range.getEndPosition()));\n      return singleTextEditAugments(r, suggestCompletion) ? { completion, edit: r } : void 0;\n    });\n    return augmentedCompletion;\n  }\n  async _deltaSelectedInlineCompletionIndex(delta) {\n    await this.triggerExplicitly();\n    const completions = this._filteredInlineCompletionItems.get() || [];\n    if (completions.length \u003e 0) {\n      const newIdx = (this.selectedInlineCompletionIndex.get() + delta + completions.length) % completions.length;\n      this._selectedInlineCompletionId.set(completions[newIdx].semanticId, void 0);\n    } else {\n      this._selectedInlineCompletionId.set(void 0, void 0);\n    }\n  }\n  async next() {\n    await this._deltaSelectedInlineCompletionIndex(1);\n  }\n  async previous() {\n    await this._deltaSelectedInlineCompletionIndex(-1);\n  }\n  _getMetadata(completion, languageId, type = void 0) {\n    if (type) {\n      return EditSources.inlineCompletionPartialAccept({\n        nes: completion.isInlineEdit,\n        requestUuid: completion.requestUuid,\n        providerId: completion.source.provider.providerId,\n        languageId,\n        type\n      });\n    } else {\n      return EditSources.inlineCompletionAccept({\n        nes: completion.isInlineEdit,\n        requestUuid: completion.requestUuid,\n        providerId: completion.source.provider.providerId,\n        languageId\n      });\n    }\n  }\n  async accept(editor2 = this._editor) {\n    if (editor2.getModel() !== this.textModel) {\n      throw new BugIndicatingError();\n    }\n    let completion;\n    let isNextEditUri = false;\n    const state = this.state.get();\n    if (state?.kind === \"ghostText\") {\n      if (!state || state.primaryGhostText.isEmpty() || !state.inlineCompletion) {\n        return;\n      }\n      completion = state.inlineCompletion;\n    } else if (state?.kind === \"inlineEdit\") {\n      completion = state.inlineCompletion;\n      isNextEditUri = !!state.nextEditUri;\n    } else {\n      return;\n    }\n    completion.addRef();\n    try {\n      editor2.pushUndoStop();\n      if (isNextEditUri) {\n      } else if (completion.snippetInfo) {\n        const mainEdit = TextReplacement.delete(completion.editRange);\n        const additionalEdits = completion.additionalTextEdits.map((e) =\u003e new TextReplacement(Range.lift(e.range), e.text ?? \"\"));\n        const edit2 = TextEdit.fromParallelReplacementsUnsorted([mainEdit, ...additionalEdits]);\n        editor2.edit(edit2, this._getMetadata(completion, this.textModel.getLanguageId()));\n        editor2.setPosition(completion.snippetInfo.range.getStartPosition(), \"inlineCompletionAccept\");\n        SnippetController2.get(editor2)?.insert(completion.snippetInfo.snippet, { undoStopBefore: false });\n      } else {\n        const edits = state.edits;\n        let minimalEdits = edits;\n        if (state.kind === \"ghostText\") {\n          minimalEdits = removeTextReplacementCommonSuffixPrefix(edits, this.textModel);\n        }\n        const selections = getEndPositionsAfterApplying(minimalEdits).map((p) =\u003e Selection.fromPositions(p));\n        const additionalEdits = completion.additionalTextEdits.map((e) =\u003e new TextReplacement(Range.lift(e.range), e.text ?? \"\"));\n        const edit2 = TextEdit.fromParallelReplacementsUnsorted([...edits, ...additionalEdits]);\n        editor2.edit(edit2, this._getMetadata(completion, this.textModel.getLanguageId()));\n        if (completion.displayLocation === void 0) {\n          editor2.setSelections(state.kind === \"inlineEdit\" ? selections.slice(-1) : selections, \"inlineCompletionAccept\");\n        }\n        if (state.kind === \"inlineEdit\" \u0026\u0026 !this._accessibilityService.isMotionReduced()) {\n          const editRanges = edit2.getNewRanges();\n          const dec = this._store.add(new FadeoutDecoration(editor2, editRanges, () =\u003e {\n            this._store.delete(dec);\n          }));\n        }\n      }\n      this._onDidAccept.fire();\n      this.stop();\n      if (completion.command) {\n        await this._commandService.executeCommand(completion.command.id, ...completion.command.arguments || []).then(void 0, onUnexpectedExternalError);\n      }\n      completion.reportEndOfLife({ kind: InlineCompletionEndOfLifeReasonKind.Accepted });\n    } finally {\n      completion.removeRef();\n      this._inAcceptFlow.set(true, void 0);\n      this._lastAcceptedInlineCompletionInfo = { textModelVersionIdAfter: this.textModel.getVersionId(), inlineCompletion: completion };\n    }\n  }\n  async acceptNextWord() {\n    await this._acceptNext(\n      this._editor,\n      \"word\",\n      (pos, text2) =\u003e {\n        const langId = this.textModel.getLanguageIdAtPosition(pos.lineNumber, pos.column);\n        const config = this._languageConfigurationService.getLanguageConfiguration(langId);\n        const wordRegExp = new RegExp(config.wordDefinition.source, config.wordDefinition.flags.replace(\"g\", \"\"));\n        const m1 = text2.match(wordRegExp);\n        let acceptUntilIndexExclusive = 0;\n        if (m1 \u0026\u0026 m1.index !== void 0) {\n          if (m1.index === 0) {\n            acceptUntilIndexExclusive = m1[0].length;\n          } else {\n            acceptUntilIndexExclusive = m1.index;\n          }\n        } else {\n          acceptUntilIndexExclusive = text2.length;\n        }\n        const wsRegExp = /\\s+/g;\n        const m2 = wsRegExp.exec(text2);\n        if (m2 \u0026\u0026 m2.index !== void 0) {\n          if (m2.index + m2[0].length \u003c acceptUntilIndexExclusive) {\n            acceptUntilIndexExclusive = m2.index + m2[0].length;\n          }\n        }\n        return acceptUntilIndexExclusive;\n      },\n      0\n      /* PartialAcceptTriggerKind.Word */\n    );\n  }\n  async acceptNextLine() {\n    await this._acceptNext(\n      this._editor,\n      \"line\",\n      (pos, text2) =\u003e {\n        const m = text2.match(/\\n/);\n        if (m \u0026\u0026 m.index !== void 0) {\n          return m.index + 1;\n        }\n        return text2.length;\n      },\n      1\n      /* PartialAcceptTriggerKind.Line */\n    );\n  }\n  async _acceptNext(editor2, type, getAcceptUntilIndex, kind) {\n    if (editor2.getModel() !== this.textModel) {\n      throw new BugIndicatingError();\n    }\n    const state = this.inlineCompletionState.get();\n    if (!state || state.primaryGhostText.isEmpty() || !state.inlineCompletion) {\n      return;\n    }\n    const ghostText = state.primaryGhostText;\n    const completion = state.inlineCompletion;\n    if (completion.snippetInfo) {\n      await this.accept(editor2);\n      return;\n    }\n    const firstPart = ghostText.parts[0];\n    const ghostTextPos = new Position(ghostText.lineNumber, firstPart.column);\n    const ghostTextVal = firstPart.text;\n    const acceptUntilIndexExclusive = getAcceptUntilIndex(ghostTextPos, ghostTextVal);\n    if (acceptUntilIndexExclusive === ghostTextVal.length \u0026\u0026 ghostText.parts.length === 1) {\n      this.accept(editor2);\n      return;\n    }\n    const partialGhostTextVal = ghostTextVal.substring(0, acceptUntilIndexExclusive);\n    const positions = this._positions.get();\n    const cursorPosition = positions[0];\n    completion.addRef();\n    try {\n      this._isAcceptingPartially = true;\n      try {\n        editor2.pushUndoStop();\n        const replaceRange = Range.fromPositions(cursorPosition, ghostTextPos);\n        const newText = editor2.getModel().getValueInRange(replaceRange) + partialGhostTextVal;\n        const primaryEdit = new TextReplacement(replaceRange, newText);\n        const edits = [primaryEdit, ...getSecondaryEdits(this.textModel, positions, primaryEdit)].filter(isDefined);\n        const selections = getEndPositionsAfterApplying(edits).map((p) =\u003e Selection.fromPositions(p));\n        editor2.edit(TextEdit.fromParallelReplacementsUnsorted(edits), this._getMetadata(completion, type));\n        editor2.setSelections(selections, \"inlineCompletionPartialAccept\");\n        editor2.revealPositionInCenterIfOutsideViewport(\n          editor2.getPosition(),\n          1\n          /* ScrollType.Immediate */\n        );\n      } finally {\n        this._isAcceptingPartially = false;\n      }\n      const acceptedRange = Range.fromPositions(completion.editRange.getStartPosition(), TextLength.ofText(partialGhostTextVal).addToPosition(ghostTextPos));\n      const text2 = editor2.getModel().getValueInRange(\n        acceptedRange,\n        1\n        /* EndOfLinePreference.LF */\n      );\n      const acceptedLength = text2.length;\n      completion.reportPartialAccept(acceptedLength, { kind, acceptedLength }, { characters: acceptUntilIndexExclusive, ratio: acceptUntilIndexExclusive / ghostTextVal.length, count: 1 });\n    } finally {\n      completion.removeRef();\n    }\n  }\n  handleSuggestAccepted(item) {\n    const itemEdit = singleTextRemoveCommonPrefix(item.getSingleTextEdit(), this.textModel);\n    const augmentedCompletion = this._computeAugmentation(itemEdit, void 0);\n    if (!augmentedCompletion) {\n      return;\n    }\n    const alreadyAcceptedLength = this.textModel.getValueInRange(\n      augmentedCompletion.completion.editRange,\n      1\n      /* EndOfLinePreference.LF */\n    ).length;\n    const acceptedLength = alreadyAcceptedLength + itemEdit.text.length;\n    augmentedCompletion.completion.reportPartialAccept(itemEdit.text.length, {\n      kind: 2,\n      acceptedLength\n    }, {\n      characters: itemEdit.text.length,\n      count: 1,\n      ratio: 1\n    });\n  }\n  extractReproSample() {\n    const value = this.textModel.getValue();\n    const item = this.state.get()?.inlineCompletion;\n    return {\n      documentValue: value,\n      inlineCompletion: item?.getSourceCompletion()\n    };\n  }\n  jump() {\n    const s = this.inlineEditState.get();\n    if (!s) {\n      return;\n    }\n    transaction((tx) =\u003e {\n      this._jumpedToId.set(s.inlineCompletion.semanticId, tx);\n      this.dontRefetchSignal.trigger(tx);\n      const targetRange = s.inlineCompletion.targetRange;\n      const targetPosition = targetRange.getStartPosition();\n      this._editor.setPosition(targetPosition, \"inlineCompletions.jump\");\n      const isSingleLineChange = targetRange.isSingleLine() \u0026\u0026 (s.inlineCompletion.displayLocation || !s.inlineCompletion.insertText.includes(\"\\n\"));\n      if (isSingleLineChange) {\n        this._editor.revealPosition(targetPosition);\n      } else {\n        const revealRange = new Range(targetRange.startLineNumber - 1, 1, targetRange.endLineNumber + 1, 1);\n        this._editor.revealRange(\n          revealRange,\n          1\n          /* ScrollType.Immediate */\n        );\n      }\n      this._editor.focus();\n    });\n  }\n  async handleInlineSuggestionShown(inlineCompletion, viewKind, viewData) {\n    await inlineCompletion.reportInlineEditShown(this._commandService, viewKind, viewData);\n  }\n};\nInlineCompletionsModel = __decorate99([\n  __param93(7, IInstantiationService),\n  __param93(8, ICommandService),\n  __param93(9, ILanguageConfigurationService),\n  __param93(10, IAccessibilityService),\n  __param93(11, ILanguageFeaturesService),\n  __param93(12, ICodeEditorService),\n  __param93(13, IInlineCompletionsService)\n], InlineCompletionsModel);\nvar VersionIdChangeReason;\n(function(VersionIdChangeReason2) {\n  VersionIdChangeReason2[VersionIdChangeReason2[\"Undo\"] = 0] = \"Undo\";\n  VersionIdChangeReason2[VersionIdChangeReason2[\"Redo\"] = 1] = \"Redo\";\n  VersionIdChangeReason2[VersionIdChangeReason2[\"AcceptWord\"] = 2] = \"AcceptWord\";\n  VersionIdChangeReason2[VersionIdChangeReason2[\"Other\"] = 3] = \"Other\";\n})(VersionIdChangeReason || (VersionIdChangeReason = {}));\nfunction getSecondaryEdits(textModel, positions, primaryTextRepl) {\n  if (positions.length === 1) {\n    return [];\n  }\n  const text2 = new TextModelText(textModel);\n  const textTransformer = text2.getTransformer();\n  const primaryOffset = textTransformer.getOffset(positions[0]);\n  const secondaryOffsets = positions.slice(1).map((pos) =\u003e textTransformer.getOffset(pos));\n  primaryTextRepl = primaryTextRepl.removeCommonPrefixAndSuffix(text2);\n  const primaryStringRepl = textTransformer.getStringReplacement(primaryTextRepl);\n  const deltaFromOffsetToRangeStart = primaryStringRepl.replaceRange.start - primaryOffset;\n  const primaryContextRange = primaryStringRepl.replaceRange.join(OffsetRange.emptyAt(primaryOffset));\n  const primaryContextValue = text2.getValueOfOffsetRange(primaryContextRange);\n  const replacements = secondaryOffsets.map((secondaryOffset) =\u003e {\n    const newRangeStart = secondaryOffset + deltaFromOffsetToRangeStart;\n    const newRangeEnd = newRangeStart + primaryStringRepl.replaceRange.length;\n    const range2 = new OffsetRange(newRangeStart, newRangeEnd);\n    const contextRange = range2.join(OffsetRange.emptyAt(secondaryOffset));\n    const contextValue = text2.getValueOfOffsetRange(contextRange);\n    if (contextValue !== primaryContextValue) {\n      return void 0;\n    }\n    const stringRepl = new StringReplacement(range2, primaryStringRepl.newText);\n    const repl = textTransformer.getTextReplacement(stringRepl);\n    return repl;\n  }).filter(isDefined);\n  return replacements;\n}\nvar FadeoutDecoration = class extends Disposable {\n  constructor(editor2, ranges, onDispose) {\n    super();\n    if (onDispose) {\n      this._register({ dispose: () =\u003e onDispose() });\n    }\n    this._register(observableCodeEditor(editor2).setDecorations(constObservable(ranges.map((range2) =\u003e ({\n      range: range2,\n      options: {\n        description: \"animation\",\n        className: \"edits-fadeout-decoration\",\n        zIndex: 1\n      }\n    })))));\n    const animation = new AnimatedValue(1, 0, 1e3, easeOutCubic2);\n    const val = new ObservableAnimatedValue(animation);\n    this._register(autorun((reader) =\u003e {\n      const opacity = val.getValue(reader);\n      editor2.getContainerDomNode().style.setProperty(\"--animation-opacity\", opacity.toString());\n      if (animation.isFinished()) {\n        this.dispose();\n      }\n    }));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/suggestWidgetAdapter.js\ninit_arrays();\ninit_arraysFind();\ninit_event();\ninit_lifecycle();\ninit_position();\ninit_range();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestController.js\ninit_arrays();\ninit_cancellation();\ninit_errors();\ninit_event();\ninit_keybindings();\ninit_lifecycle();\ninit_platform();\ninit_stopwatch();\ninit_types();\ninit_editorExtensions();\ninit_position();\ninit_range();\ninit_editorContextKeys();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestMemory.js\ninit_async();\ninit_lifecycle();\ninit_map();\ninit_languages();\ninit_configuration();\ninit_extensions();\ninit_instantiation();\nvar __decorate100 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param94 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SuggestMemoryService_1;\nvar Memory = class {\n  constructor(name) {\n    this.name = name;\n  }\n  select(model, pos, items) {\n    if (items.length === 0) {\n      return 0;\n    }\n    const topScore = items[0].score[0];\n    for (let i2 = 0; i2 \u003c items.length; i2++) {\n      const { score: score3, completion: suggestion } = items[i2];\n      if (score3[0] !== topScore) {\n        break;\n      }\n      if (suggestion.preselect) {\n        return i2;\n      }\n    }\n    return 0;\n  }\n};\nvar NoMemory = class extends Memory {\n  constructor() {\n    super(\"first\");\n  }\n  memorize(model, pos, item) {\n  }\n  toJSON() {\n    return void 0;\n  }\n  fromJSON() {\n  }\n};\nvar LRUMemory = class extends Memory {\n  constructor() {\n    super(\"recentlyUsed\");\n    this._cache = new LRUCache(300, 0.66);\n    this._seq = 0;\n  }\n  memorize(model, pos, item) {\n    const key = `${model.getLanguageId()}/${item.textLabel}`;\n    this._cache.set(key, {\n      touch: this._seq++,\n      type: item.completion.kind,\n      insertText: item.completion.insertText\n    });\n  }\n  select(model, pos, items) {\n    if (items.length === 0) {\n      return 0;\n    }\n    const lineSuffix = model.getLineContent(pos.lineNumber).substr(pos.column - 10, pos.column - 1);\n    if (/\\s$/.test(lineSuffix)) {\n      return super.select(model, pos, items);\n    }\n    const topScore = items[0].score[0];\n    let indexPreselect = -1;\n    let indexRecency = -1;\n    let seq = -1;\n    for (let i2 = 0; i2 \u003c items.length; i2++) {\n      if (items[i2].score[0] !== topScore) {\n        break;\n      }\n      const key = `${model.getLanguageId()}/${items[i2].textLabel}`;\n      const item = this._cache.peek(key);\n      if (item \u0026\u0026 item.touch \u003e seq \u0026\u0026 item.type === items[i2].completion.kind \u0026\u0026 item.insertText === items[i2].completion.insertText) {\n        seq = item.touch;\n        indexRecency = i2;\n      }\n      if (items[i2].completion.preselect \u0026\u0026 indexPreselect === -1) {\n        return indexPreselect = i2;\n      }\n    }\n    if (indexRecency !== -1) {\n      return indexRecency;\n    } else if (indexPreselect !== -1) {\n      return indexPreselect;\n    } else {\n      return 0;\n    }\n  }\n  toJSON() {\n    return this._cache.toJSON();\n  }\n  fromJSON(data) {\n    this._cache.clear();\n    const seq = 0;\n    for (const [key, value] of data) {\n      value.touch = seq;\n      value.type = typeof value.type === \"number\" ? value.type : CompletionItemKinds.fromString(value.type);\n      this._cache.set(key, value);\n    }\n    this._seq = this._cache.size;\n  }\n};\nvar PrefixMemory = class extends Memory {\n  constructor() {\n    super(\"recentlyUsedByPrefix\");\n    this._trie = TernarySearchTree.forStrings();\n    this._seq = 0;\n  }\n  memorize(model, pos, item) {\n    const { word } = model.getWordUntilPosition(pos);\n    const key = `${model.getLanguageId()}/${word}`;\n    this._trie.set(key, {\n      type: item.completion.kind,\n      insertText: item.completion.insertText,\n      touch: this._seq++\n    });\n  }\n  select(model, pos, items) {\n    const { word } = model.getWordUntilPosition(pos);\n    if (!word) {\n      return super.select(model, pos, items);\n    }\n    const key = `${model.getLanguageId()}/${word}`;\n    let item = this._trie.get(key);\n    if (!item) {\n      item = this._trie.findSubstr(key);\n    }\n    if (item) {\n      for (let i2 = 0; i2 \u003c items.length; i2++) {\n        const { kind, insertText } = items[i2].completion;\n        if (kind === item.type \u0026\u0026 insertText === item.insertText) {\n          return i2;\n        }\n      }\n    }\n    return super.select(model, pos, items);\n  }\n  toJSON() {\n    const entries2 = [];\n    this._trie.forEach((value, key) =\u003e entries2.push([key, value]));\n    entries2.sort((a, b) =\u003e -(a[1].touch - b[1].touch)).forEach((value, i2) =\u003e value[1].touch = i2);\n    return entries2.slice(0, 200);\n  }\n  fromJSON(data) {\n    this._trie.clear();\n    if (data.length \u003e 0) {\n      this._seq = data[0][1].touch + 1;\n      for (const [key, value] of data) {\n        value.type = typeof value.type === \"number\" ? value.type : CompletionItemKinds.fromString(value.type);\n        this._trie.set(key, value);\n      }\n    }\n  }\n};\nvar SuggestMemoryService = class SuggestMemoryService2 {\n  static {\n    SuggestMemoryService_1 = this;\n  }\n  static {\n    this._strategyCtors = /* @__PURE__ */ new Map([\n      [\"recentlyUsedByPrefix\", PrefixMemory],\n      [\"recentlyUsed\", LRUMemory],\n      [\"first\", NoMemory]\n    ]);\n  }\n  static {\n    this._storagePrefix = \"suggest/memories\";\n  }\n  constructor(_storageService, _configService) {\n    this._storageService = _storageService;\n    this._configService = _configService;\n    this._disposables = new DisposableStore();\n    this._persistSoon = new RunOnceScheduler(() =\u003e this._saveState(), 500);\n    this._disposables.add(_storageService.onWillSaveState((e) =\u003e {\n      if (e.reason === WillSaveStateReason.SHUTDOWN) {\n        this._saveState();\n      }\n    }));\n  }\n  dispose() {\n    this._disposables.dispose();\n    this._persistSoon.dispose();\n  }\n  memorize(model, pos, item) {\n    this._withStrategy(model, pos).memorize(model, pos, item);\n    this._persistSoon.schedule();\n  }\n  select(model, pos, items) {\n    return this._withStrategy(model, pos).select(model, pos, items);\n  }\n  _withStrategy(model, pos) {\n    const mode = this._configService.getValue(\"editor.suggestSelection\", {\n      overrideIdentifier: model.getLanguageIdAtPosition(pos.lineNumber, pos.column),\n      resource: model.uri\n    });\n    if (this._strategy?.name !== mode) {\n      this._saveState();\n      const ctor = SuggestMemoryService_1._strategyCtors.get(mode) || NoMemory;\n      this._strategy = new ctor();\n      try {\n        const share = this._configService.getValue(\"editor.suggest.shareSuggestSelections\");\n        const scope = share ? 0 : 1;\n        const raw = this._storageService.get(`${SuggestMemoryService_1._storagePrefix}/${mode}`, scope);\n        if (raw) {\n          this._strategy.fromJSON(JSON.parse(raw));\n        }\n      } catch (e) {\n      }\n    }\n    return this._strategy;\n  }\n  _saveState() {\n    if (this._strategy) {\n      const share = this._configService.getValue(\"editor.suggest.shareSuggestSelections\");\n      const scope = share ? 0 : 1;\n      const raw = JSON.stringify(this._strategy);\n      this._storageService.store(\n        `${SuggestMemoryService_1._storagePrefix}/${this._strategy.name}`,\n        raw,\n        scope,\n        1\n        /* StorageTarget.MACHINE */\n      );\n    }\n  }\n};\nSuggestMemoryService = SuggestMemoryService_1 = __decorate100([\n  __param94(0, IStorageService),\n  __param94(1, IConfigurationService)\n], SuggestMemoryService);\nvar ISuggestMemoryService = createDecorator(\"ISuggestMemories\");\nregisterSingleton(\n  ISuggestMemoryService,\n  SuggestMemoryService,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/wordContextKey.js\ninit_contextkey();\ninit_nls();\nvar __decorate101 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param95 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar WordContextKey_1;\nvar WordContextKey = class WordContextKey2 {\n  static {\n    WordContextKey_1 = this;\n  }\n  static {\n    this.AtEnd = new RawContextKey(\"atEndOfWord\", false, { type: \"boolean\", description: localize(1476, \"A context key that is true when at the end of a word. Note that this is only defined when tab-completions are enabled\") });\n  }\n  constructor(_editor, contextKeyService) {\n    this._editor = _editor;\n    this._enabled = false;\n    this._ckAtEnd = WordContextKey_1.AtEnd.bindTo(contextKeyService);\n    this._configListener = this._editor.onDidChangeConfiguration((e) =\u003e e.hasChanged(\n      138\n      /* EditorOption.tabCompletion */\n    ) \u0026\u0026 this._update());\n    this._update();\n  }\n  dispose() {\n    this._configListener.dispose();\n    this._selectionListener?.dispose();\n    this._ckAtEnd.reset();\n  }\n  _update() {\n    const enabled = this._editor.getOption(\n      138\n      /* EditorOption.tabCompletion */\n    ) === \"on\";\n    if (this._enabled === enabled) {\n      return;\n    }\n    this._enabled = enabled;\n    if (this._enabled) {\n      const checkForWordEnd = () =\u003e {\n        if (!this._editor.hasModel()) {\n          this._ckAtEnd.set(false);\n          return;\n        }\n        const model = this._editor.getModel();\n        const selection = this._editor.getSelection();\n        const word = model.getWordAtPosition(selection.getStartPosition());\n        if (!word) {\n          this._ckAtEnd.set(false);\n          return;\n        }\n        this._ckAtEnd.set(word.endColumn === selection.getStartPosition().column \u0026\u0026 selection.getStartPosition().lineNumber === selection.getEndPosition().lineNumber);\n      };\n      this._selectionListener = this._editor.onDidChangeCursorSelection(checkForWordEnd);\n      checkForWordEnd();\n    } else if (this._selectionListener) {\n      this._ckAtEnd.reset();\n      this._selectionListener.dispose();\n      this._selectionListener = void 0;\n    }\n  }\n};\nWordContextKey = WordContextKey_1 = __decorate101([\n  __param95(1, IContextKeyService)\n], WordContextKey);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestController.js\ninit_nls();\ninit_commands();\ninit_contextkey();\ninit_instantiation();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestAlternatives.js\ninit_contextkey();\nvar __decorate102 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param96 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SuggestAlternatives_1;\nvar SuggestAlternatives = class SuggestAlternatives2 {\n  static {\n    SuggestAlternatives_1 = this;\n  }\n  static {\n    this.OtherSuggestions = new RawContextKey(\"hasOtherSuggestions\", false);\n  }\n  constructor(_editor, contextKeyService) {\n    this._editor = _editor;\n    this._index = 0;\n    this._ckOtherSuggestions = SuggestAlternatives_1.OtherSuggestions.bindTo(contextKeyService);\n  }\n  dispose() {\n    this.reset();\n  }\n  reset() {\n    this._ckOtherSuggestions.reset();\n    this._listener?.dispose();\n    this._model = void 0;\n    this._acceptNext = void 0;\n    this._ignore = false;\n  }\n  set({ model, index }, acceptNext) {\n    if (model.items.length === 0) {\n      this.reset();\n      return;\n    }\n    const nextIndex = SuggestAlternatives_1._moveIndex(true, model, index);\n    if (nextIndex === index) {\n      this.reset();\n      return;\n    }\n    this._acceptNext = acceptNext;\n    this._model = model;\n    this._index = index;\n    this._listener = this._editor.onDidChangeCursorPosition(() =\u003e {\n      if (!this._ignore) {\n        this.reset();\n      }\n    });\n    this._ckOtherSuggestions.set(true);\n  }\n  static _moveIndex(fwd, model, index) {\n    let newIndex = index;\n    for (let rounds = model.items.length; rounds \u003e 0; rounds--) {\n      newIndex = (newIndex + model.items.length + (fwd ? 1 : -1)) % model.items.length;\n      if (newIndex === index) {\n        break;\n      }\n      if (!model.items[newIndex].completion.additionalTextEdits) {\n        break;\n      }\n    }\n    return newIndex;\n  }\n  next() {\n    this._move(true);\n  }\n  prev() {\n    this._move(false);\n  }\n  _move(fwd) {\n    if (!this._model) {\n      return;\n    }\n    try {\n      this._ignore = true;\n      this._index = SuggestAlternatives_1._moveIndex(fwd, this._model, this._index);\n      this._acceptNext({ index: this._index, item: this._model.items[this._index], model: this._model });\n    } finally {\n      this._ignore = false;\n    }\n  }\n};\nSuggestAlternatives = SuggestAlternatives_1 = __decorate102([\n  __param96(1, IContextKeyService)\n], SuggestAlternatives);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestCommitCharacters.js\ninit_arrays();\ninit_lifecycle();\ninit_characterClassifier();\nvar CommitCharacterController = class {\n  constructor(editor2, widget, model, accept) {\n    this._disposables = new DisposableStore();\n    this._disposables.add(model.onDidSuggest((e) =\u003e {\n      if (e.completionModel.items.length === 0) {\n        this.reset();\n      }\n    }));\n    this._disposables.add(model.onDidCancel((e) =\u003e {\n      this.reset();\n    }));\n    this._disposables.add(widget.onDidShow(() =\u003e this._onItem(widget.getFocusedItem())));\n    this._disposables.add(widget.onDidFocus(this._onItem, this));\n    this._disposables.add(widget.onDidHide(this.reset, this));\n    this._disposables.add(editor2.onWillType((text2) =\u003e {\n      if (this._active \u0026\u0026 !widget.isFrozen() \u0026\u0026 model.state !== 0) {\n        const ch = text2.charCodeAt(text2.length - 1);\n        if (this._active.acceptCharacters.has(ch) \u0026\u0026 editor2.getOption(\n          0\n          /* EditorOption.acceptSuggestionOnCommitCharacter */\n        )) {\n          accept(this._active.item);\n        }\n      }\n    }));\n  }\n  _onItem(selected) {\n    if (!selected || !isNonEmptyArray(selected.item.completion.commitCharacters)) {\n      this.reset();\n      return;\n    }\n    if (this._active \u0026\u0026 this._active.item.item === selected.item) {\n      return;\n    }\n    const acceptCharacters = new CharacterSet();\n    for (const ch of selected.item.completion.commitCharacters) {\n      if (ch.length \u003e 0) {\n        acceptCharacters.add(ch.charCodeAt(0));\n      }\n    }\n    this._active = { acceptCharacters, item: selected };\n  }\n  reset() {\n    this._active = void 0;\n  }\n  dispose() {\n    this._disposables.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestModel.js\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_strings();\ninit_selection();\ninit_editorWorker();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/wordDistance.js\ninit_arrays();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/smartSelect/browser/bracketSelections.js\ninit_linkedList();\ninit_position();\ninit_range();\nvar BracketSelectionRangeProvider = class _BracketSelectionRangeProvider {\n  async provideSelectionRanges(model, positions) {\n    const result = [];\n    for (const position of positions) {\n      const bucket = [];\n      result.push(bucket);\n      const ranges = /* @__PURE__ */ new Map();\n      await new Promise((resolve3) =\u003e _BracketSelectionRangeProvider._bracketsRightYield(resolve3, 0, model, position, ranges));\n      await new Promise((resolve3) =\u003e _BracketSelectionRangeProvider._bracketsLeftYield(resolve3, 0, model, position, ranges, bucket));\n    }\n    return result;\n  }\n  static {\n    this._maxDuration = 30;\n  }\n  static {\n    this._maxRounds = 2;\n  }\n  static _bracketsRightYield(resolve3, round, model, pos, ranges) {\n    const counts = /* @__PURE__ */ new Map();\n    const t1 = Date.now();\n    while (true) {\n      if (round \u003e= _BracketSelectionRangeProvider._maxRounds) {\n        resolve3();\n        break;\n      }\n      if (!pos) {\n        resolve3();\n        break;\n      }\n      const bracket = model.bracketPairs.findNextBracket(pos);\n      if (!bracket) {\n        resolve3();\n        break;\n      }\n      const d = Date.now() - t1;\n      if (d \u003e _BracketSelectionRangeProvider._maxDuration) {\n        setTimeout(() =\u003e _BracketSelectionRangeProvider._bracketsRightYield(resolve3, round + 1, model, pos, ranges));\n        break;\n      }\n      if (bracket.bracketInfo.isOpeningBracket) {\n        const key = bracket.bracketInfo.bracketText;\n        const val = counts.has(key) ? counts.get(key) : 0;\n        counts.set(key, val + 1);\n      } else {\n        const key = bracket.bracketInfo.getOpeningBrackets()[0].bracketText;\n        let val = counts.has(key) ? counts.get(key) : 0;\n        val -= 1;\n        counts.set(key, Math.max(0, val));\n        if (val \u003c 0) {\n          let list2 = ranges.get(key);\n          if (!list2) {\n            list2 = new LinkedList();\n            ranges.set(key, list2);\n          }\n          list2.push(bracket.range);\n        }\n      }\n      pos = bracket.range.getEndPosition();\n    }\n  }\n  static _bracketsLeftYield(resolve3, round, model, pos, ranges, bucket) {\n    const counts = /* @__PURE__ */ new Map();\n    const t1 = Date.now();\n    while (true) {\n      if (round \u003e= _BracketSelectionRangeProvider._maxRounds \u0026\u0026 ranges.size === 0) {\n        resolve3();\n        break;\n      }\n      if (!pos) {\n        resolve3();\n        break;\n      }\n      const bracket = model.bracketPairs.findPrevBracket(pos);\n      if (!bracket) {\n        resolve3();\n        break;\n      }\n      const d = Date.now() - t1;\n      if (d \u003e _BracketSelectionRangeProvider._maxDuration) {\n        setTimeout(() =\u003e _BracketSelectionRangeProvider._bracketsLeftYield(resolve3, round + 1, model, pos, ranges, bucket));\n        break;\n      }\n      if (!bracket.bracketInfo.isOpeningBracket) {\n        const key = bracket.bracketInfo.getOpeningBrackets()[0].bracketText;\n        const val = counts.has(key) ? counts.get(key) : 0;\n        counts.set(key, val + 1);\n      } else {\n        const key = bracket.bracketInfo.bracketText;\n        let val = counts.has(key) ? counts.get(key) : 0;\n        val -= 1;\n        counts.set(key, Math.max(0, val));\n        if (val \u003c 0) {\n          const list2 = ranges.get(key);\n          if (list2) {\n            const closing = list2.shift();\n            if (list2.size === 0) {\n              ranges.delete(key);\n            }\n            const innerBracket = Range.fromPositions(bracket.range.getEndPosition(), closing.getStartPosition());\n            const outerBracket = Range.fromPositions(bracket.range.getStartPosition(), closing.getEndPosition());\n            bucket.push({ range: innerBracket });\n            bucket.push({ range: outerBracket });\n            _BracketSelectionRangeProvider._addBracketLeading(model, outerBracket, bucket);\n          }\n        }\n      }\n      pos = bracket.range.getStartPosition();\n    }\n  }\n  static _addBracketLeading(model, bracket, bucket) {\n    if (bracket.startLineNumber === bracket.endLineNumber) {\n      return;\n    }\n    const startLine = bracket.startLineNumber;\n    const column = model.getLineFirstNonWhitespaceColumn(startLine);\n    if (column !== 0 \u0026\u0026 column !== bracket.startColumn) {\n      bucket.push({ range: Range.fromPositions(new Position(startLine, column), bracket.getEndPosition()) });\n      bucket.push({ range: Range.fromPositions(new Position(startLine, 1), bracket.getEndPosition()) });\n    }\n    const aboveLine = startLine - 1;\n    if (aboveLine \u003e 0) {\n      const column2 = model.getLineFirstNonWhitespaceColumn(aboveLine);\n      if (column2 === bracket.startColumn \u0026\u0026 column2 !== model.getLineLastNonWhitespaceColumn(aboveLine)) {\n        bucket.push({ range: Range.fromPositions(new Position(aboveLine, column2), bracket.getEndPosition()) });\n        bucket.push({ range: Range.fromPositions(new Position(aboveLine, 1), bracket.getEndPosition()) });\n      }\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/wordDistance.js\nvar WordDistance = class _WordDistance {\n  static {\n    this.None = new class extends _WordDistance {\n      distance() {\n        return 0;\n      }\n    }();\n  }\n  static async create(service, editor2) {\n    if (!editor2.getOption(\n      133\n      /* EditorOption.suggest */\n    ).localityBonus) {\n      return _WordDistance.None;\n    }\n    if (!editor2.hasModel()) {\n      return _WordDistance.None;\n    }\n    const model = editor2.getModel();\n    const position = editor2.getPosition();\n    if (!service.canComputeWordRanges(model.uri)) {\n      return _WordDistance.None;\n    }\n    const [ranges] = await new BracketSelectionRangeProvider().provideSelectionRanges(model, [position]);\n    if (ranges.length === 0) {\n      return _WordDistance.None;\n    }\n    const wordRanges = await service.computeWordRanges(model.uri, ranges[0].range);\n    if (!wordRanges) {\n      return _WordDistance.None;\n    }\n    const wordUntilPos = model.getWordUntilPosition(position);\n    delete wordRanges[wordUntilPos.word];\n    return new class extends _WordDistance {\n      distance(anchor, item) {\n        if (!position.equals(editor2.getPosition())) {\n          return 0;\n        }\n        if (item.kind === 17) {\n          return 2 \u003c\u003c 20;\n        }\n        const word = typeof item.label === \"string\" ? item.label : item.label.label;\n        const wordLines = wordRanges[word];\n        if (isFalsyOrEmpty(wordLines)) {\n          return 2 \u003c\u003c 20;\n        }\n        const idx = binarySearch(wordLines, Range.fromPositions(anchor), Range.compareRangesUsingStarts);\n        const bestWordRange = idx \u003e= 0 ? wordLines[idx] : wordLines[Math.max(0, ~idx - 1)];\n        let blockDistance = ranges.length;\n        for (const range2 of ranges) {\n          if (!Range.containsRange(range2.range, bestWordRange)) {\n            break;\n          }\n          blockDistance -= 1;\n        }\n        return blockDistance;\n      }\n    }();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestModel.js\ninit_configuration();\ninit_contextkey();\ninit_log();\ninit_telemetry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/completionModel.js\ninit_arrays();\ninit_filters();\ninit_strings();\nvar LineContext = class {\n  constructor(leadingLineContent, characterCountDelta) {\n    this.leadingLineContent = leadingLineContent;\n    this.characterCountDelta = characterCountDelta;\n  }\n};\nvar CompletionModel = class _CompletionModel {\n  constructor(items, column, lineContext, wordDistance, options2, snippetSuggestions, fuzzyScoreOptions = FuzzyScoreOptions.default, clipboardText = void 0) {\n    this.clipboardText = clipboardText;\n    this._snippetCompareFn = _CompletionModel._compareCompletionItems;\n    this._items = items;\n    this._column = column;\n    this._wordDistance = wordDistance;\n    this._options = options2;\n    this._refilterKind = 1;\n    this._lineContext = lineContext;\n    this._fuzzyScoreOptions = fuzzyScoreOptions;\n    if (snippetSuggestions === \"top\") {\n      this._snippetCompareFn = _CompletionModel._compareCompletionItemsSnippetsUp;\n    } else if (snippetSuggestions === \"bottom\") {\n      this._snippetCompareFn = _CompletionModel._compareCompletionItemsSnippetsDown;\n    }\n  }\n  get lineContext() {\n    return this._lineContext;\n  }\n  set lineContext(value) {\n    if (this._lineContext.leadingLineContent !== value.leadingLineContent || this._lineContext.characterCountDelta !== value.characterCountDelta) {\n      this._refilterKind = this._lineContext.characterCountDelta \u003c value.characterCountDelta \u0026\u0026 this._filteredItems ? 2 : 1;\n      this._lineContext = value;\n    }\n  }\n  get items() {\n    this._ensureCachedState();\n    return this._filteredItems;\n  }\n  getItemsByProvider() {\n    this._ensureCachedState();\n    return this._itemsByProvider;\n  }\n  getIncompleteProvider() {\n    this._ensureCachedState();\n    const result = /* @__PURE__ */ new Set();\n    for (const [provider, items] of this.getItemsByProvider()) {\n      if (items.length \u003e 0 \u0026\u0026 items[0].container.incomplete) {\n        result.add(provider);\n      }\n    }\n    return result;\n  }\n  get stats() {\n    this._ensureCachedState();\n    return this._stats;\n  }\n  _ensureCachedState() {\n    if (this._refilterKind !== 0) {\n      this._createCachedState();\n    }\n  }\n  _createCachedState() {\n    this._itemsByProvider = /* @__PURE__ */ new Map();\n    const labelLengths = [];\n    const { leadingLineContent, characterCountDelta } = this._lineContext;\n    let word = \"\";\n    let wordLow = \"\";\n    const source = this._refilterKind === 1 ? this._items : this._filteredItems;\n    const target = [];\n    const scoreFn = !this._options.filterGraceful || source.length \u003e 2e3 ? fuzzyScore : fuzzyScoreGracefulAggressive;\n    for (let i2 = 0; i2 \u003c source.length; i2++) {\n      const item = source[i2];\n      if (item.isInvalid) {\n        continue;\n      }\n      const arr = this._itemsByProvider.get(item.provider);\n      if (arr) {\n        arr.push(item);\n      } else {\n        this._itemsByProvider.set(item.provider, [item]);\n      }\n      const overwriteBefore = item.position.column - item.editStart.column;\n      const wordLen = overwriteBefore + characterCountDelta - (item.position.column - this._column);\n      if (word.length !== wordLen) {\n        word = wordLen === 0 ? \"\" : leadingLineContent.slice(-wordLen);\n        wordLow = word.toLowerCase();\n      }\n      item.word = word;\n      if (wordLen === 0) {\n        item.score = FuzzyScore.Default;\n      } else {\n        let wordPos = 0;\n        while (wordPos \u003c overwriteBefore) {\n          const ch = word.charCodeAt(wordPos);\n          if (ch === 32 || ch === 9) {\n            wordPos += 1;\n          } else {\n            break;\n          }\n        }\n        if (wordPos \u003e= wordLen) {\n          item.score = FuzzyScore.Default;\n        } else if (typeof item.completion.filterText === \"string\") {\n          const match2 = scoreFn(word, wordLow, wordPos, item.completion.filterText, item.filterTextLow, 0, this._fuzzyScoreOptions);\n          if (!match2) {\n            continue;\n          }\n          if (compareIgnoreCase(item.completion.filterText, item.textLabel) === 0) {\n            item.score = match2;\n          } else {\n            item.score = anyScore(word, wordLow, wordPos, item.textLabel, item.labelLow, 0);\n            item.score[0] = match2[0];\n          }\n        } else {\n          const match2 = scoreFn(word, wordLow, wordPos, item.textLabel, item.labelLow, 0, this._fuzzyScoreOptions);\n          if (!match2) {\n            continue;\n          }\n          item.score = match2;\n        }\n      }\n      item.idx = i2;\n      item.distance = this._wordDistance.distance(item.position, item.completion);\n      target.push(item);\n      labelLengths.push(item.textLabel.length);\n    }\n    this._filteredItems = target.sort(this._snippetCompareFn);\n    this._refilterKind = 0;\n    this._stats = {\n      pLabelLen: labelLengths.length ? quickSelect(labelLengths.length - 0.85, labelLengths, (a, b) =\u003e a - b) : 0\n    };\n  }\n  static _compareCompletionItems(a, b) {\n    if (a.score[0] \u003e b.score[0]) {\n      return -1;\n    } else if (a.score[0] \u003c b.score[0]) {\n      return 1;\n    } else if (a.distance \u003c b.distance) {\n      return -1;\n    } else if (a.distance \u003e b.distance) {\n      return 1;\n    } else if (a.idx \u003c b.idx) {\n      return -1;\n    } else if (a.idx \u003e b.idx) {\n      return 1;\n    } else {\n      return 0;\n    }\n  }\n  static _compareCompletionItemsSnippetsDown(a, b) {\n    if (a.completion.kind !== b.completion.kind) {\n      if (a.completion.kind === 28) {\n        return 1;\n      } else if (b.completion.kind === 28) {\n        return -1;\n      }\n    }\n    return _CompletionModel._compareCompletionItems(a, b);\n  }\n  static _compareCompletionItemsSnippetsUp(a, b) {\n    if (a.completion.kind !== b.completion.kind) {\n      if (a.completion.kind === 28) {\n        return -1;\n      } else if (b.completion.kind === 28) {\n        return 1;\n      }\n    }\n    return _CompletionModel._compareCompletionItems(a, b);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestModel.js\ninit_languageFeatures();\ninit_filters();\ninit_types();\ninit_environment();\nvar __decorate103 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param97 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SuggestModel_1;\nvar LineContext2 = class {\n  static shouldAutoTrigger(editor2) {\n    if (!editor2.hasModel()) {\n      return false;\n    }\n    const model = editor2.getModel();\n    const pos = editor2.getPosition();\n    model.tokenization.tokenizeIfCheap(pos.lineNumber);\n    const word = model.getWordAtPosition(pos);\n    if (!word) {\n      return false;\n    }\n    if (word.endColumn !== pos.column \u0026\u0026 word.startColumn + 1 !== pos.column) {\n      return false;\n    }\n    if (!isNaN(Number(word.word))) {\n      return false;\n    }\n    return true;\n  }\n  constructor(model, position, triggerOptions) {\n    this.leadingLineContent = model.getLineContent(position.lineNumber).substr(0, position.column - 1);\n    this.leadingWord = model.getWordUntilPosition(position);\n    this.lineNumber = position.lineNumber;\n    this.column = position.column;\n    this.triggerOptions = triggerOptions;\n  }\n};\nfunction canShowQuickSuggest(editor2, contextKeyService, configurationService) {\n  if (!Boolean(contextKeyService.getContextKeyValue(InlineCompletionContextKeys.inlineSuggestionVisible.key))) {\n    return true;\n  }\n  const suppressSuggestions = contextKeyService.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);\n  if (suppressSuggestions !== void 0) {\n    return !suppressSuggestions;\n  }\n  return !editor2.getOption(\n    71\n    /* EditorOption.inlineSuggest */\n  ).suppressSuggestions;\n}\nfunction canShowSuggestOnTriggerCharacters(editor2, contextKeyService, configurationService) {\n  if (!Boolean(contextKeyService.getContextKeyValue(\"inlineSuggestionVisible\"))) {\n    return true;\n  }\n  const suppressSuggestions = contextKeyService.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);\n  if (suppressSuggestions !== void 0) {\n    return !suppressSuggestions;\n  }\n  return !editor2.getOption(\n    71\n    /* EditorOption.inlineSuggest */\n  ).suppressSuggestions;\n}\nvar SuggestModel = SuggestModel_1 = class SuggestModel2 {\n  constructor(_editor, _editorWorkerService, _clipboardService, _telemetryService, _logService, _contextKeyService, _configurationService, _languageFeaturesService, _envService) {\n    this._editor = _editor;\n    this._editorWorkerService = _editorWorkerService;\n    this._clipboardService = _clipboardService;\n    this._telemetryService = _telemetryService;\n    this._logService = _logService;\n    this._contextKeyService = _contextKeyService;\n    this._configurationService = _configurationService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._envService = _envService;\n    this._toDispose = new DisposableStore();\n    this._triggerCharacterListener = new DisposableStore();\n    this._triggerQuickSuggest = new TimeoutTimer();\n    this._triggerState = void 0;\n    this._completionDisposables = new DisposableStore();\n    this._onDidCancel = new Emitter();\n    this._onDidTrigger = new Emitter();\n    this._onDidSuggest = new Emitter();\n    this.onDidCancel = this._onDidCancel.event;\n    this.onDidTrigger = this._onDidTrigger.event;\n    this.onDidSuggest = this._onDidSuggest.event;\n    this._currentSelection = this._editor.getSelection() || new Selection(1, 1, 1, 1);\n    this._toDispose.add(this._editor.onDidChangeModel(() =\u003e {\n      this._updateTriggerCharacters();\n      this.cancel();\n    }));\n    this._toDispose.add(this._editor.onDidChangeModelLanguage(() =\u003e {\n      this._updateTriggerCharacters();\n      this.cancel();\n    }));\n    this._toDispose.add(this._editor.onDidChangeConfiguration(() =\u003e {\n      this._updateTriggerCharacters();\n    }));\n    this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(() =\u003e {\n      this._updateTriggerCharacters();\n      this._updateActiveSuggestSession();\n    }));\n    let editorIsComposing = false;\n    this._toDispose.add(this._editor.onDidCompositionStart(() =\u003e {\n      editorIsComposing = true;\n    }));\n    this._toDispose.add(this._editor.onDidCompositionEnd(() =\u003e {\n      editorIsComposing = false;\n      this._onCompositionEnd();\n    }));\n    this._toDispose.add(this._editor.onDidChangeCursorSelection((e) =\u003e {\n      if (!editorIsComposing) {\n        this._onCursorChange(e);\n      }\n    }));\n    this._toDispose.add(this._editor.onDidChangeModelContent(() =\u003e {\n      if (!editorIsComposing \u0026\u0026 this._triggerState !== void 0) {\n        this._refilterCompletionItems();\n      }\n    }));\n    this._updateTriggerCharacters();\n  }\n  dispose() {\n    dispose(this._triggerCharacterListener);\n    dispose([this._onDidCancel, this._onDidSuggest, this._onDidTrigger, this._triggerQuickSuggest]);\n    this._toDispose.dispose();\n    this._completionDisposables.dispose();\n    this.cancel();\n  }\n  _updateTriggerCharacters() {\n    this._triggerCharacterListener.clear();\n    if (this._editor.getOption(\n      103\n      /* EditorOption.readOnly */\n    ) || !this._editor.hasModel() || !this._editor.getOption(\n      136\n      /* EditorOption.suggestOnTriggerCharacters */\n    )) {\n      return;\n    }\n    const supportsByTriggerCharacter = /* @__PURE__ */ new Map();\n    for (const support of this._languageFeaturesService.completionProvider.all(this._editor.getModel())) {\n      for (const ch of support.triggerCharacters || []) {\n        let set = supportsByTriggerCharacter.get(ch);\n        if (!set) {\n          set = /* @__PURE__ */ new Set();\n          const suggestSupport = getSnippetSuggestSupport();\n          if (suggestSupport) {\n            set.add(suggestSupport);\n          }\n          supportsByTriggerCharacter.set(ch, set);\n        }\n        set.add(support);\n      }\n    }\n    const checkTriggerCharacter = (text2) =\u003e {\n      if (!canShowSuggestOnTriggerCharacters(this._editor, this._contextKeyService, this._configurationService)) {\n        return;\n      }\n      if (LineContext2.shouldAutoTrigger(this._editor)) {\n        return;\n      }\n      if (!text2) {\n        const position = this._editor.getPosition();\n        const model = this._editor.getModel();\n        text2 = model.getLineContent(position.lineNumber).substr(0, position.column - 1);\n      }\n      let lastChar = \"\";\n      if (isLowSurrogate(text2.charCodeAt(text2.length - 1))) {\n        if (isHighSurrogate(text2.charCodeAt(text2.length - 2))) {\n          lastChar = text2.substr(text2.length - 2);\n        }\n      } else {\n        lastChar = text2.charAt(text2.length - 1);\n      }\n      const supports = supportsByTriggerCharacter.get(lastChar);\n      if (supports) {\n        const providerItemsToReuse = /* @__PURE__ */ new Map();\n        if (this._completionModel) {\n          for (const [provider, items] of this._completionModel.getItemsByProvider()) {\n            if (!supports.has(provider)) {\n              providerItemsToReuse.set(provider, items);\n            }\n          }\n        }\n        this.trigger({\n          auto: true,\n          triggerKind: 1,\n          triggerCharacter: lastChar,\n          retrigger: Boolean(this._completionModel),\n          clipboardText: this._completionModel?.clipboardText,\n          completionOptions: { providerFilter: supports, providerItemsToReuse }\n        });\n      }\n    };\n    this._triggerCharacterListener.add(this._editor.onDidType(checkTriggerCharacter));\n    this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(() =\u003e checkTriggerCharacter()));\n  }\n  // --- trigger/retrigger/cancel suggest\n  get state() {\n    if (!this._triggerState) {\n      return 0;\n    } else if (!this._triggerState.auto) {\n      return 1;\n    } else {\n      return 2;\n    }\n  }\n  cancel(retrigger = false) {\n    if (this._triggerState !== void 0) {\n      this._triggerQuickSuggest.cancel();\n      this._requestToken?.cancel();\n      this._requestToken = void 0;\n      this._triggerState = void 0;\n      this._completionModel = void 0;\n      this._context = void 0;\n      this._onDidCancel.fire({ retrigger });\n    }\n  }\n  clear() {\n    this._completionDisposables.clear();\n  }\n  _updateActiveSuggestSession() {\n    if (this._triggerState !== void 0) {\n      if (!this._editor.hasModel() || !this._languageFeaturesService.completionProvider.has(this._editor.getModel())) {\n        this.cancel();\n      } else {\n        this.trigger({ auto: this._triggerState.auto, retrigger: true });\n      }\n    }\n  }\n  _onCursorChange(e) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const prevSelection = this._currentSelection;\n    this._currentSelection = this._editor.getSelection();\n    if (!e.selection.isEmpty() || e.reason !== 0 \u0026\u0026 e.reason !== 3 || e.source !== \"keyboard\" \u0026\u0026 e.source !== \"deleteLeft\") {\n      this.cancel();\n      return;\n    }\n    if (this._triggerState === void 0 \u0026\u0026 e.reason === 0) {\n      if (prevSelection.containsRange(this._currentSelection) || prevSelection.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition())) {\n        this._doTriggerQuickSuggest();\n      }\n    } else if (this._triggerState !== void 0 \u0026\u0026 e.reason === 3) {\n      this._refilterCompletionItems();\n    }\n  }\n  _onCompositionEnd() {\n    if (this._triggerState === void 0) {\n      this._doTriggerQuickSuggest();\n    } else {\n      this._refilterCompletionItems();\n    }\n  }\n  _doTriggerQuickSuggest() {\n    if (QuickSuggestionsOptions.isAllOff(this._editor.getOption(\n      101\n      /* EditorOption.quickSuggestions */\n    ))) {\n      return;\n    }\n    if (this._editor.getOption(\n      133\n      /* EditorOption.suggest */\n    ).snippetsPreventQuickSuggestions \u0026\u0026 SnippetController2.get(this._editor)?.isInSnippet()) {\n      return;\n    }\n    this.cancel();\n    this._triggerQuickSuggest.cancelAndSet(() =\u003e {\n      if (this._triggerState !== void 0) {\n        return;\n      }\n      if (!LineContext2.shouldAutoTrigger(this._editor)) {\n        return;\n      }\n      if (!this._editor.hasModel() || !this._editor.hasWidgetFocus()) {\n        return;\n      }\n      const model = this._editor.getModel();\n      const pos = this._editor.getPosition();\n      const config = this._editor.getOption(\n        101\n        /* EditorOption.quickSuggestions */\n      );\n      if (QuickSuggestionsOptions.isAllOff(config)) {\n        return;\n      }\n      if (!QuickSuggestionsOptions.isAllOn(config)) {\n        model.tokenization.tokenizeIfCheap(pos.lineNumber);\n        const lineTokens = model.tokenization.getLineTokens(pos.lineNumber);\n        const tokenType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(Math.max(pos.column - 1 - 1, 0)));\n        if (QuickSuggestionsOptions.valueFor(config, tokenType) !== \"on\") {\n          return;\n        }\n      }\n      if (!canShowQuickSuggest(this._editor, this._contextKeyService, this._configurationService)) {\n        return;\n      }\n      if (!this._languageFeaturesService.completionProvider.has(model)) {\n        return;\n      }\n      this.trigger({ auto: true });\n    }, this._editor.getOption(\n      102\n      /* EditorOption.quickSuggestionsDelay */\n    ));\n  }\n  _refilterCompletionItems() {\n    assertType(this._editor.hasModel());\n    assertType(this._triggerState !== void 0);\n    const model = this._editor.getModel();\n    const position = this._editor.getPosition();\n    const ctx = new LineContext2(model, position, { ...this._triggerState, refilter: true });\n    this._onNewContext(ctx);\n  }\n  trigger(options2) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    const ctx = new LineContext2(model, this._editor.getPosition(), options2);\n    this.cancel(options2.retrigger);\n    this._triggerState = options2;\n    this._onDidTrigger.fire({ auto: options2.auto, shy: options2.shy ?? false, position: this._editor.getPosition() });\n    this._context = ctx;\n    let suggestCtx = {\n      triggerKind: options2.triggerKind ?? 0\n      /* CompletionTriggerKind.Invoke */\n    };\n    if (options2.triggerCharacter) {\n      suggestCtx = {\n        triggerKind: 1,\n        triggerCharacter: options2.triggerCharacter\n      };\n    }\n    this._requestToken = new CancellationTokenSource();\n    const snippetSuggestions = this._editor.getOption(\n      127\n      /* EditorOption.snippetSuggestions */\n    );\n    let snippetSortOrder = 1;\n    switch (snippetSuggestions) {\n      case \"top\":\n        snippetSortOrder = 0;\n        break;\n      // \t↓ that's the default anyways...\n      // case 'inline':\n      // \tsnippetSortOrder = SnippetSortOrder.Inline;\n      // \tbreak;\n      case \"bottom\":\n        snippetSortOrder = 2;\n        break;\n    }\n    const { itemKind: itemKindFilter, showDeprecated } = SuggestModel_1.createSuggestFilter(this._editor);\n    const completionOptions = new CompletionOptions(snippetSortOrder, options2.completionOptions?.kindFilter ?? itemKindFilter, options2.completionOptions?.providerFilter, options2.completionOptions?.providerItemsToReuse, showDeprecated);\n    const wordDistance = WordDistance.create(this._editorWorkerService, this._editor);\n    const completions = provideSuggestionItems(this._languageFeaturesService.completionProvider, model, this._editor.getPosition(), completionOptions, suggestCtx, this._requestToken.token);\n    Promise.all([completions, wordDistance]).then(async ([completions2, wordDistance2]) =\u003e {\n      this._requestToken?.dispose();\n      if (!this._editor.hasModel()) {\n        completions2.disposable.dispose();\n        return;\n      }\n      let clipboardText = options2?.clipboardText;\n      if (!clipboardText \u0026\u0026 completions2.needsClipboard) {\n        clipboardText = await this._clipboardService.readText();\n      }\n      if (this._triggerState === void 0) {\n        completions2.disposable.dispose();\n        return;\n      }\n      const model2 = this._editor.getModel();\n      const ctx2 = new LineContext2(model2, this._editor.getPosition(), options2);\n      const fuzzySearchOptions = {\n        ...FuzzyScoreOptions.default,\n        firstMatchCanBeWeak: !this._editor.getOption(\n          133\n          /* EditorOption.suggest */\n        ).matchOnWordStartOnly\n      };\n      this._completionModel = new CompletionModel(completions2.items, this._context.column, {\n        leadingLineContent: ctx2.leadingLineContent,\n        characterCountDelta: ctx2.column - this._context.column\n      }, wordDistance2, this._editor.getOption(\n        133\n        /* EditorOption.suggest */\n      ), this._editor.getOption(\n        127\n        /* EditorOption.snippetSuggestions */\n      ), fuzzySearchOptions, clipboardText);\n      this._completionDisposables.add(completions2.disposable);\n      this._onNewContext(ctx2);\n      this._reportDurationsTelemetry(completions2.durations);\n      if (!this._envService.isBuilt || this._envService.isExtensionDevelopment) {\n        for (const item of completions2.items) {\n          if (item.isInvalid) {\n            this._logService.warn(`[suggest] did IGNORE invalid completion item from ${item.provider._debugDisplayName}`, item.completion);\n          }\n        }\n      }\n    }).catch(onUnexpectedError);\n  }\n  /**\n   * Report durations telemetry with a 1% sampling rate.\n   * The telemetry is reported only if a random number between 0 and 100 is less than or equal to 1.\n   */\n  _reportDurationsTelemetry(durations) {\n    if (Math.random() \u003e 1e-4) {\n      return;\n    }\n    setTimeout(() =\u003e {\n      this._telemetryService.publicLog2(\"suggest.durations.json\", { data: JSON.stringify(durations) });\n      this._logService.debug(\"suggest.durations.json\", durations);\n    });\n  }\n  static createSuggestFilter(editor2) {\n    const result = /* @__PURE__ */ new Set();\n    const snippetSuggestions = editor2.getOption(\n      127\n      /* EditorOption.snippetSuggestions */\n    );\n    if (snippetSuggestions === \"none\") {\n      result.add(\n        28\n        /* CompletionItemKind.Snippet */\n      );\n    }\n    const suggestOptions = editor2.getOption(\n      133\n      /* EditorOption.suggest */\n    );\n    if (!suggestOptions.showMethods) {\n      result.add(\n        0\n        /* CompletionItemKind.Method */\n      );\n    }\n    if (!suggestOptions.showFunctions) {\n      result.add(\n        1\n        /* CompletionItemKind.Function */\n      );\n    }\n    if (!suggestOptions.showConstructors) {\n      result.add(\n        2\n        /* CompletionItemKind.Constructor */\n      );\n    }\n    if (!suggestOptions.showFields) {\n      result.add(\n        3\n        /* CompletionItemKind.Field */\n      );\n    }\n    if (!suggestOptions.showVariables) {\n      result.add(\n        4\n        /* CompletionItemKind.Variable */\n      );\n    }\n    if (!suggestOptions.showClasses) {\n      result.add(\n        5\n        /* CompletionItemKind.Class */\n      );\n    }\n    if (!suggestOptions.showStructs) {\n      result.add(\n        6\n        /* CompletionItemKind.Struct */\n      );\n    }\n    if (!suggestOptions.showInterfaces) {\n      result.add(\n        7\n        /* CompletionItemKind.Interface */\n      );\n    }\n    if (!suggestOptions.showModules) {\n      result.add(\n        8\n        /* CompletionItemKind.Module */\n      );\n    }\n    if (!suggestOptions.showProperties) {\n      result.add(\n        9\n        /* CompletionItemKind.Property */\n      );\n    }\n    if (!suggestOptions.showEvents) {\n      result.add(\n        10\n        /* CompletionItemKind.Event */\n      );\n    }\n    if (!suggestOptions.showOperators) {\n      result.add(\n        11\n        /* CompletionItemKind.Operator */\n      );\n    }\n    if (!suggestOptions.showUnits) {\n      result.add(\n        12\n        /* CompletionItemKind.Unit */\n      );\n    }\n    if (!suggestOptions.showValues) {\n      result.add(\n        13\n        /* CompletionItemKind.Value */\n      );\n    }\n    if (!suggestOptions.showConstants) {\n      result.add(\n        14\n        /* CompletionItemKind.Constant */\n      );\n    }\n    if (!suggestOptions.showEnums) {\n      result.add(\n        15\n        /* CompletionItemKind.Enum */\n      );\n    }\n    if (!suggestOptions.showEnumMembers) {\n      result.add(\n        16\n        /* CompletionItemKind.EnumMember */\n      );\n    }\n    if (!suggestOptions.showKeywords) {\n      result.add(\n        17\n        /* CompletionItemKind.Keyword */\n      );\n    }\n    if (!suggestOptions.showWords) {\n      result.add(\n        18\n        /* CompletionItemKind.Text */\n      );\n    }\n    if (!suggestOptions.showColors) {\n      result.add(\n        19\n        /* CompletionItemKind.Color */\n      );\n    }\n    if (!suggestOptions.showFiles) {\n      result.add(\n        20\n        /* CompletionItemKind.File */\n      );\n    }\n    if (!suggestOptions.showReferences) {\n      result.add(\n        21\n        /* CompletionItemKind.Reference */\n      );\n    }\n    if (!suggestOptions.showColors) {\n      result.add(\n        22\n        /* CompletionItemKind.Customcolor */\n      );\n    }\n    if (!suggestOptions.showFolders) {\n      result.add(\n        23\n        /* CompletionItemKind.Folder */\n      );\n    }\n    if (!suggestOptions.showTypeParameters) {\n      result.add(\n        24\n        /* CompletionItemKind.TypeParameter */\n      );\n    }\n    if (!suggestOptions.showSnippets) {\n      result.add(\n        28\n        /* CompletionItemKind.Snippet */\n      );\n    }\n    if (!suggestOptions.showUsers) {\n      result.add(\n        25\n        /* CompletionItemKind.User */\n      );\n    }\n    if (!suggestOptions.showIssues) {\n      result.add(\n        26\n        /* CompletionItemKind.Issue */\n      );\n    }\n    return { itemKind: result, showDeprecated: suggestOptions.showDeprecated };\n  }\n  _onNewContext(ctx) {\n    if (!this._context) {\n      return;\n    }\n    if (ctx.lineNumber !== this._context.lineNumber) {\n      this.cancel();\n      return;\n    }\n    if (getLeadingWhitespace(ctx.leadingLineContent) !== getLeadingWhitespace(this._context.leadingLineContent)) {\n      this.cancel();\n      return;\n    }\n    if (ctx.column \u003c this._context.column) {\n      if (ctx.leadingWord.word) {\n        this.trigger({ auto: this._context.triggerOptions.auto, retrigger: true });\n      } else {\n        this.cancel();\n      }\n      return;\n    }\n    if (!this._completionModel) {\n      return;\n    }\n    if (ctx.leadingWord.word.length !== 0 \u0026\u0026 ctx.leadingWord.startColumn \u003e this._context.leadingWord.startColumn) {\n      const shouldAutoTrigger = LineContext2.shouldAutoTrigger(this._editor);\n      if (shouldAutoTrigger \u0026\u0026 this._context) {\n        const map = this._completionModel.getItemsByProvider();\n        this.trigger({\n          auto: this._context.triggerOptions.auto,\n          retrigger: true,\n          clipboardText: this._completionModel.clipboardText,\n          completionOptions: { providerItemsToReuse: map }\n        });\n      }\n      return;\n    }\n    if (ctx.column \u003e this._context.column \u0026\u0026 this._completionModel.getIncompleteProvider().size \u003e 0 \u0026\u0026 ctx.leadingWord.word.length !== 0) {\n      const providerItemsToReuse = /* @__PURE__ */ new Map();\n      const providerFilter = /* @__PURE__ */ new Set();\n      for (const [provider, items] of this._completionModel.getItemsByProvider()) {\n        if (items.length \u003e 0 \u0026\u0026 items[0].container.incomplete) {\n          providerFilter.add(provider);\n        } else {\n          providerItemsToReuse.set(provider, items);\n        }\n      }\n      this.trigger({\n        auto: this._context.triggerOptions.auto,\n        triggerKind: 2,\n        retrigger: true,\n        clipboardText: this._completionModel.clipboardText,\n        completionOptions: { providerFilter, providerItemsToReuse }\n      });\n    } else {\n      const oldLineContext = this._completionModel.lineContext;\n      let isFrozen2 = false;\n      this._completionModel.lineContext = {\n        leadingLineContent: ctx.leadingLineContent,\n        characterCountDelta: ctx.column - this._context.column\n      };\n      if (this._completionModel.items.length === 0) {\n        const shouldAutoTrigger = LineContext2.shouldAutoTrigger(this._editor);\n        if (!this._context) {\n          this.cancel();\n          return;\n        }\n        if (shouldAutoTrigger \u0026\u0026 this._context.leadingWord.endColumn \u003c ctx.leadingWord.startColumn) {\n          this.trigger({ auto: this._context.triggerOptions.auto, retrigger: true });\n          return;\n        }\n        if (!this._context.triggerOptions.auto) {\n          this._completionModel.lineContext = oldLineContext;\n          isFrozen2 = this._completionModel.items.length \u003e 0;\n          if (isFrozen2 \u0026\u0026 ctx.leadingWord.word.length === 0) {\n            this.cancel();\n            return;\n          }\n        } else {\n          this.cancel();\n          return;\n        }\n      }\n      this._onDidSuggest.fire({\n        completionModel: this._completionModel,\n        triggerOptions: ctx.triggerOptions,\n        isFrozen: isFrozen2\n      });\n    }\n  }\n};\nSuggestModel = SuggestModel_1 = __decorate103([\n  __param97(1, IEditorWorkerService),\n  __param97(2, IClipboardService),\n  __param97(3, ITelemetryService),\n  __param97(4, ILogService),\n  __param97(5, IContextKeyService),\n  __param97(6, IConfigurationService),\n  __param97(7, ILanguageFeaturesService),\n  __param97(8, IEnvironmentService)\n], SuggestModel);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestOvertypingCapturer.js\ninit_lifecycle();\nvar OvertypingCapturer = class _OvertypingCapturer {\n  static {\n    this._maxSelectionLength = 51200;\n  }\n  constructor(editor2, suggestModel) {\n    this._disposables = new DisposableStore();\n    this._lastOvertyped = [];\n    this._locked = false;\n    this._disposables.add(editor2.onWillType(() =\u003e {\n      if (this._locked || !editor2.hasModel()) {\n        return;\n      }\n      const selections = editor2.getSelections();\n      const selectionsLength = selections.length;\n      let willOvertype = false;\n      for (let i2 = 0; i2 \u003c selectionsLength; i2++) {\n        if (!selections[i2].isEmpty()) {\n          willOvertype = true;\n          break;\n        }\n      }\n      if (!willOvertype) {\n        if (this._lastOvertyped.length !== 0) {\n          this._lastOvertyped.length = 0;\n        }\n        return;\n      }\n      this._lastOvertyped = [];\n      const model = editor2.getModel();\n      for (let i2 = 0; i2 \u003c selectionsLength; i2++) {\n        const selection = selections[i2];\n        if (model.getValueLengthInRange(selection) \u003e _OvertypingCapturer._maxSelectionLength) {\n          return;\n        }\n        this._lastOvertyped[i2] = { value: model.getValueInRange(selection), multiline: selection.startLineNumber !== selection.endLineNumber };\n      }\n    }));\n    this._disposables.add(suggestModel.onDidTrigger((e) =\u003e {\n      this._locked = true;\n    }));\n    this._disposables.add(suggestModel.onDidCancel((e) =\u003e {\n      this._locked = false;\n    }));\n  }\n  getLastOvertypedInfo(idx) {\n    if (idx \u003e= 0 \u0026\u0026 idx \u003c this._lastOvertyped.length) {\n      return this._lastOvertyped[idx];\n    }\n    return void 0;\n  }\n  dispose() {\n    this._disposables.dispose();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestWidget.js\ninit_dom();\ninit_async();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_numbers();\ninit_strings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js\ninit_dom();\ninit_lifecycle();\ninit_actions2();\ninit_contextkey();\ninit_instantiation();\nvar __decorate104 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param98 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SuggestWidgetStatus = class SuggestWidgetStatus2 {\n  constructor(container, _menuId, instantiationService, _menuService, _contextKeyService) {\n    this._menuId = _menuId;\n    this._menuService = _menuService;\n    this._contextKeyService = _contextKeyService;\n    this._menuDisposables = new DisposableStore();\n    this.element = append(container, $(\".suggest-status-bar\"));\n    const actionViewItemProvider = ((action) =\u003e {\n      return action instanceof MenuItemAction ? instantiationService.createInstance(TextOnlyMenuEntryActionViewItem, action, { useComma: false }) : void 0;\n    });\n    this._leftActions = new ActionBar(this.element, { actionViewItemProvider });\n    this._rightActions = new ActionBar(this.element, { actionViewItemProvider });\n    this._leftActions.domNode.classList.add(\"left\");\n    this._rightActions.domNode.classList.add(\"right\");\n  }\n  dispose() {\n    this._menuDisposables.dispose();\n    this._leftActions.dispose();\n    this._rightActions.dispose();\n    this.element.remove();\n  }\n  show() {\n    const menu = this._menuService.createMenu(this._menuId, this._contextKeyService);\n    const renderMenu = () =\u003e {\n      const left = [];\n      const right = [];\n      for (const [group, actions] of menu.getActions()) {\n        if (group === \"left\") {\n          left.push(...actions);\n        } else {\n          right.push(...actions);\n        }\n      }\n      this._leftActions.clear();\n      this._leftActions.push(left);\n      this._rightActions.clear();\n      this._rightActions.push(right);\n    };\n    this._menuDisposables.add(menu.onDidChange(() =\u003e renderMenu()));\n    this._menuDisposables.add(menu);\n  }\n  hide() {\n    this._menuDisposables.clear();\n  }\n};\nSuggestWidgetStatus = __decorate104([\n  __param98(2, IInstantiationService),\n  __param98(3, IMenuService),\n  __param98(4, IContextKeyService)\n], SuggestWidgetStatus);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestWidget.js\ninit_nls();\ninit_contextkey();\ninit_instantiation();\ninit_colorRegistry();\ninit_theme();\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js\ninit_dom();\ninit_codicons();\ninit_themables();\ninit_event();\ninit_htmlContent();\ninit_lifecycle();\ninit_nls();\ninit_instantiation();\nvar __decorate105 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param99 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nfunction canExpandCompletionItem(item) {\n  return !!item \u0026\u0026 Boolean(item.completion.documentation || item.completion.detail \u0026\u0026 item.completion.detail !== item.completion.label);\n}\nvar SuggestDetailsWidget = class SuggestDetailsWidget2 {\n  constructor(_editor, instaService) {\n    this._editor = _editor;\n    this._onDidClose = new Emitter();\n    this.onDidClose = this._onDidClose.event;\n    this._onDidChangeContents = new Emitter();\n    this.onDidChangeContents = this._onDidChangeContents.event;\n    this._disposables = new DisposableStore();\n    this._renderDisposeable = new DisposableStore();\n    this._borderWidth = 1;\n    this._size = new Dimension(330, 0);\n    this.domNode = $(\".suggest-details\");\n    this.domNode.classList.add(\"no-docs\");\n    this._markdownRenderer = instaService.createInstance(MarkdownRenderer, { editor: _editor });\n    this._body = $(\".body\");\n    this._scrollbar = new DomScrollableElement(this._body, {\n      alwaysConsumeMouseWheel: true\n    });\n    append(this.domNode, this._scrollbar.getDomNode());\n    this._disposables.add(this._scrollbar);\n    this._header = append(this._body, $(\".header\"));\n    this._close = append(this._header, $(\"span\" + ThemeIcon.asCSSSelector(Codicon.close)));\n    this._close.title = localize(1472, \"Close\");\n    this._close.role = \"button\";\n    this._close.tabIndex = -1;\n    this._type = append(this._header, $(\"p.type\"));\n    this._docs = append(this._body, $(\"p.docs\"));\n    this._configureFont();\n    this._disposables.add(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        59\n        /* EditorOption.fontInfo */\n      )) {\n        this._configureFont();\n      }\n    }));\n  }\n  dispose() {\n    this._disposables.dispose();\n    this._renderDisposeable.dispose();\n  }\n  _configureFont() {\n    const options2 = this._editor.getOptions();\n    const fontInfo = options2.get(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const fontFamily = fontInfo.getMassagedFontFamily();\n    const fontSize = options2.get(\n      134\n      /* EditorOption.suggestFontSize */\n    ) || fontInfo.fontSize;\n    const lineHeight = options2.get(\n      135\n      /* EditorOption.suggestLineHeight */\n    ) || fontInfo.lineHeight;\n    const fontWeight = fontInfo.fontWeight;\n    const fontSizePx = `${fontSize}px`;\n    const lineHeightPx = `${lineHeight}px`;\n    this.domNode.style.fontSize = fontSizePx;\n    this.domNode.style.lineHeight = `${lineHeight / fontSize}`;\n    this.domNode.style.fontWeight = fontWeight;\n    this.domNode.style.fontFeatureSettings = fontInfo.fontFeatureSettings;\n    this._type.style.fontFamily = fontFamily;\n    this._close.style.height = lineHeightPx;\n    this._close.style.width = lineHeightPx;\n  }\n  getLayoutInfo() {\n    const lineHeight = this._editor.getOption(\n      135\n      /* EditorOption.suggestLineHeight */\n    ) || this._editor.getOption(\n      59\n      /* EditorOption.fontInfo */\n    ).lineHeight;\n    const borderWidth = this._borderWidth;\n    const borderHeight = borderWidth * 2;\n    return {\n      lineHeight,\n      borderWidth,\n      borderHeight,\n      verticalPadding: 22,\n      horizontalPadding: 14\n    };\n  }\n  renderLoading() {\n    this._type.textContent = localize(1473, \"Loading...\");\n    this._docs.textContent = \"\";\n    this.domNode.classList.remove(\"no-docs\", \"no-type\");\n    this.layout(this.size.width, this.getLayoutInfo().lineHeight * 2);\n    this._onDidChangeContents.fire(this);\n  }\n  renderItem(item, explainMode) {\n    this._renderDisposeable.clear();\n    let { detail, documentation } = item.completion;\n    if (explainMode) {\n      let md = \"\";\n      md += `score: ${item.score[0]}\n`;\n      md += `prefix: ${item.word ?? \"(no prefix)\"}\n`;\n      md += `word: ${item.completion.filterText ? item.completion.filterText + \" (filterText)\" : item.textLabel}\n`;\n      md += `distance: ${item.distance} (localityBonus-setting)\n`;\n      md += `index: ${item.idx}, based on ${item.completion.sortText \u0026\u0026 `sortText: \"${item.completion.sortText}\"` || \"label\"}\n`;\n      md += `commit_chars: ${item.completion.commitCharacters?.join(\"\")}\n`;\n      documentation = new MarkdownString().appendCodeblock(\"empty\", md);\n      detail = `Provider: ${item.provider._debugDisplayName}`;\n    }\n    if (!explainMode \u0026\u0026 !canExpandCompletionItem(item)) {\n      this.clearContents();\n      return;\n    }\n    this.domNode.classList.remove(\"no-docs\", \"no-type\");\n    if (detail) {\n      const cappedDetail = detail.length \u003e 1e5 ? `${detail.substr(0, 1e5)}\\u2026` : detail;\n      this._type.textContent = cappedDetail;\n      this._type.title = cappedDetail;\n      show(this._type);\n      this._type.classList.toggle(\"auto-wrap\", !/\\r?\\n^\\s+/gmi.test(cappedDetail));\n    } else {\n      clearNode(this._type);\n      this._type.title = \"\";\n      hide(this._type);\n      this.domNode.classList.add(\"no-type\");\n    }\n    clearNode(this._docs);\n    if (typeof documentation === \"string\") {\n      this._docs.classList.remove(\"markdown-docs\");\n      this._docs.textContent = documentation;\n    } else if (documentation) {\n      this._docs.classList.add(\"markdown-docs\");\n      clearNode(this._docs);\n      const renderedContents = this._markdownRenderer.render(documentation, {\n        asyncRenderCallback: () =\u003e {\n          this.layout(this._size.width, this._type.clientHeight + this._docs.clientHeight);\n          this._onDidChangeContents.fire(this);\n        }\n      });\n      this._docs.appendChild(renderedContents.element);\n      this._renderDisposeable.add(renderedContents);\n    }\n    this.domNode.classList.toggle(\"detail-and-doc\", !!detail \u0026\u0026 !!documentation);\n    this.domNode.style.userSelect = \"text\";\n    this.domNode.tabIndex = -1;\n    this._close.onmousedown = (e) =\u003e {\n      e.preventDefault();\n      e.stopPropagation();\n    };\n    this._close.onclick = (e) =\u003e {\n      e.preventDefault();\n      e.stopPropagation();\n      this._onDidClose.fire();\n    };\n    this._body.scrollTop = 0;\n    this.layout(this._size.width, this._type.clientHeight + this._docs.clientHeight);\n    this._onDidChangeContents.fire(this);\n  }\n  clearContents() {\n    this.domNode.classList.add(\"no-docs\");\n    this._type.textContent = \"\";\n    this._docs.textContent = \"\";\n  }\n  get isEmpty() {\n    return this.domNode.classList.contains(\"no-docs\");\n  }\n  get size() {\n    return this._size;\n  }\n  layout(width2, height) {\n    const newSize = new Dimension(width2, height);\n    if (!Dimension.equals(newSize, this._size)) {\n      this._size = newSize;\n      size(this.domNode, width2, height);\n    }\n    this._scrollbar.scanDomNode();\n  }\n  scrollDown(much = 8) {\n    this._body.scrollTop += much;\n  }\n  scrollUp(much = 8) {\n    this._body.scrollTop -= much;\n  }\n  scrollTop() {\n    this._body.scrollTop = 0;\n  }\n  scrollBottom() {\n    this._body.scrollTop = this._body.scrollHeight;\n  }\n  pageDown() {\n    this.scrollDown(80);\n  }\n  pageUp() {\n    this.scrollUp(80);\n  }\n  set borderWidth(width2) {\n    this._borderWidth = width2;\n  }\n  get borderWidth() {\n    return this._borderWidth;\n  }\n  focus() {\n    this.domNode.focus();\n  }\n};\nSuggestDetailsWidget = __decorate105([\n  __param99(1, IInstantiationService)\n], SuggestDetailsWidget);\nvar SuggestDetailsOverlay = class {\n  constructor(widget, _editor) {\n    this.widget = widget;\n    this._editor = _editor;\n    this.allowEditorOverflow = true;\n    this._disposables = new DisposableStore();\n    this._added = false;\n    this._preferAlignAtTop = true;\n    this._resizable = new ResizableHTMLElement();\n    this._resizable.domNode.classList.add(\"suggest-details-container\");\n    this._resizable.domNode.appendChild(widget.domNode);\n    this._resizable.enableSashes(false, true, true, false);\n    let topLeftNow;\n    let sizeNow;\n    let deltaTop = 0;\n    let deltaLeft = 0;\n    this._disposables.add(this._resizable.onDidWillResize(() =\u003e {\n      topLeftNow = this._topLeft;\n      sizeNow = this._resizable.size;\n    }));\n    this._disposables.add(this._resizable.onDidResize((e) =\u003e {\n      if (topLeftNow \u0026\u0026 sizeNow) {\n        this.widget.layout(e.dimension.width, e.dimension.height);\n        let updateTopLeft = false;\n        if (e.west) {\n          deltaLeft = sizeNow.width - e.dimension.width;\n          updateTopLeft = true;\n        }\n        if (e.north) {\n          deltaTop = sizeNow.height - e.dimension.height;\n          updateTopLeft = true;\n        }\n        if (updateTopLeft) {\n          this._applyTopLeft({\n            top: topLeftNow.top + deltaTop,\n            left: topLeftNow.left + deltaLeft\n          });\n        }\n      }\n      if (e.done) {\n        topLeftNow = void 0;\n        sizeNow = void 0;\n        deltaTop = 0;\n        deltaLeft = 0;\n        this._userSize = e.dimension;\n      }\n    }));\n    this._disposables.add(this.widget.onDidChangeContents(() =\u003e {\n      if (this._anchorBox) {\n        this._placeAtAnchor(this._anchorBox, this._userSize ?? this.widget.size, this._preferAlignAtTop);\n      }\n    }));\n  }\n  dispose() {\n    this._resizable.dispose();\n    this._disposables.dispose();\n    this.hide();\n  }\n  getId() {\n    return \"suggest.details\";\n  }\n  getDomNode() {\n    return this._resizable.domNode;\n  }\n  getPosition() {\n    return this._topLeft ? { preference: this._topLeft } : null;\n  }\n  show() {\n    if (!this._added) {\n      this._editor.addOverlayWidget(this);\n      this._added = true;\n    }\n  }\n  hide(sessionEnded = false) {\n    this._resizable.clearSashHoverState();\n    if (this._added) {\n      this._editor.removeOverlayWidget(this);\n      this._added = false;\n      this._anchorBox = void 0;\n      this._topLeft = void 0;\n    }\n    if (sessionEnded) {\n      this._userSize = void 0;\n      this.widget.clearContents();\n    }\n  }\n  placeAtAnchor(anchor, preferAlignAtTop) {\n    const anchorBox = anchor.getBoundingClientRect();\n    this._anchorBox = anchorBox;\n    this._preferAlignAtTop = preferAlignAtTop;\n    this._placeAtAnchor(this._anchorBox, this._userSize ?? this.widget.size, preferAlignAtTop);\n  }\n  _placeAtAnchor(anchorBox, size2, preferAlignAtTop) {\n    const bodyBox = getClientArea(this.getDomNode().ownerDocument.body);\n    const info = this.widget.getLayoutInfo();\n    const defaultMinSize = new Dimension(220, 2 * info.lineHeight);\n    const defaultTop = anchorBox.top;\n    const eastPlacement = (function() {\n      const width2 = bodyBox.width - (anchorBox.left + anchorBox.width + info.borderWidth + info.horizontalPadding);\n      const left2 = -info.borderWidth + anchorBox.left + anchorBox.width;\n      const maxSizeTop = new Dimension(width2, bodyBox.height - anchorBox.top - info.borderHeight - info.verticalPadding);\n      const maxSizeBottom = maxSizeTop.with(void 0, anchorBox.top + anchorBox.height - info.borderHeight - info.verticalPadding);\n      return { top: defaultTop, left: left2, fit: width2 - size2.width, maxSizeTop, maxSizeBottom, minSize: defaultMinSize.with(Math.min(width2, defaultMinSize.width)) };\n    })();\n    const westPlacement = (function() {\n      const width2 = anchorBox.left - info.borderWidth - info.horizontalPadding;\n      const left2 = Math.max(info.horizontalPadding, anchorBox.left - size2.width - info.borderWidth);\n      const maxSizeTop = new Dimension(width2, bodyBox.height - anchorBox.top - info.borderHeight - info.verticalPadding);\n      const maxSizeBottom = maxSizeTop.with(void 0, anchorBox.top + anchorBox.height - info.borderHeight - info.verticalPadding);\n      return { top: defaultTop, left: left2, fit: width2 - size2.width, maxSizeTop, maxSizeBottom, minSize: defaultMinSize.with(Math.min(width2, defaultMinSize.width)) };\n    })();\n    const southPacement = (function() {\n      const left2 = anchorBox.left;\n      const top2 = -info.borderWidth + anchorBox.top + anchorBox.height;\n      const maxSizeBottom = new Dimension(anchorBox.width - info.borderHeight, bodyBox.height - anchorBox.top - anchorBox.height - info.verticalPadding);\n      return { top: top2, left: left2, fit: maxSizeBottom.height - size2.height, maxSizeBottom, maxSizeTop: maxSizeBottom, minSize: defaultMinSize.with(maxSizeBottom.width) };\n    })();\n    const placements = [eastPlacement, westPlacement, southPacement];\n    const placement = placements.find((p) =\u003e p.fit \u003e= 0) ?? placements.sort((a, b) =\u003e b.fit - a.fit)[0];\n    const bottom = anchorBox.top + anchorBox.height - info.borderHeight;\n    let alignAtTop;\n    let height = size2.height;\n    const maxHeight = Math.max(placement.maxSizeTop.height, placement.maxSizeBottom.height);\n    if (height \u003e maxHeight) {\n      height = maxHeight;\n    }\n    let maxSize;\n    if (preferAlignAtTop) {\n      if (height \u003c= placement.maxSizeTop.height) {\n        alignAtTop = true;\n        maxSize = placement.maxSizeTop;\n      } else {\n        alignAtTop = false;\n        maxSize = placement.maxSizeBottom;\n      }\n    } else {\n      if (height \u003c= placement.maxSizeBottom.height) {\n        alignAtTop = false;\n        maxSize = placement.maxSizeBottom;\n      } else {\n        alignAtTop = true;\n        maxSize = placement.maxSizeTop;\n      }\n    }\n    let { top, left } = placement;\n    if (!alignAtTop \u0026\u0026 height \u003e anchorBox.height) {\n      top = bottom - height;\n    }\n    const editorDomNode = this._editor.getDomNode();\n    if (editorDomNode) {\n      const editorBoundingBox = editorDomNode.getBoundingClientRect();\n      top -= editorBoundingBox.top;\n      left -= editorBoundingBox.left;\n    }\n    this._applyTopLeft({ left, top });\n    this._resizable.enableSashes(!alignAtTop, placement === eastPlacement, alignAtTop, placement !== eastPlacement);\n    this._resizable.minSize = placement.minSize;\n    this._resizable.maxSize = maxSize;\n    this._resizable.layout(height, Math.min(maxSize.width, size2.width));\n    this.widget.layout(this._resizable.size.width, this._resizable.size.height);\n  }\n  _applyTopLeft(topLeft) {\n    this._topLeft = topLeft;\n    this._editor.layoutOverlayWidget(this);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js\ninit_dom();\ninit_codicons();\ninit_themables();\ninit_event();\ninit_filters();\ninit_lifecycle();\ninit_uri();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/getIconClasses.js\ninit_network();\ninit_resources();\ninit_uri();\ninit_modesRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/files/common/files.js\ninit_instantiation();\nvar IFileService = createDecorator(\"fileService\");\nvar FileKind;\n(function(FileKind2) {\n  FileKind2[FileKind2[\"FILE\"] = 0] = \"FILE\";\n  FileKind2[FileKind2[\"FOLDER\"] = 1] = \"FOLDER\";\n  FileKind2[FileKind2[\"ROOT_FOLDER\"] = 2] = \"ROOT_FOLDER\";\n})(FileKind || (FileKind = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/getIconClasses.js\ninit_themables();\nvar fileIconDirectoryRegex = /(?:\\/|^)(?:([^\\/]+)\\/)?([^\\/]+)$/;\nfunction getIconClasses(modelService, languageService, resource, fileKind, icon) {\n  if (ThemeIcon.isThemeIcon(icon)) {\n    return [`codicon-${icon.id}`, \"predefined-file-icon\"];\n  }\n  if (URI.isUri(icon)) {\n    return [];\n  }\n  const classes2 = fileKind === FileKind.ROOT_FOLDER ? [\"rootfolder-icon\"] : fileKind === FileKind.FOLDER ? [\"folder-icon\"] : [\"file-icon\"];\n  if (resource) {\n    let name;\n    if (resource.scheme === Schemas.data) {\n      const metadata = DataUri.parseMetaData(resource);\n      name = metadata.get(DataUri.META_DATA_LABEL);\n    } else {\n      const match2 = resource.path.match(fileIconDirectoryRegex);\n      if (match2) {\n        name = fileIconSelectorEscape(match2[2].toLowerCase());\n        if (match2[1]) {\n          classes2.push(`${fileIconSelectorEscape(match2[1].toLowerCase())}-name-dir-icon`);\n        }\n      } else {\n        name = fileIconSelectorEscape(resource.authority.toLowerCase());\n      }\n    }\n    if (fileKind === FileKind.ROOT_FOLDER) {\n      classes2.push(`${name}-root-name-folder-icon`);\n    } else if (fileKind === FileKind.FOLDER) {\n      classes2.push(`${name}-name-folder-icon`);\n    } else {\n      if (name) {\n        classes2.push(`${name}-name-file-icon`);\n        classes2.push(`name-file-icon`);\n        if (name.length \u003c= 255) {\n          const dotSegments = name.split(\".\");\n          for (let i2 = 1; i2 \u003c dotSegments.length; i2++) {\n            classes2.push(`${dotSegments.slice(i2).join(\".\")}-ext-file-icon`);\n          }\n        }\n        classes2.push(`ext-file-icon`);\n      }\n      const detectedLanguageId = detectLanguageId(modelService, languageService, resource);\n      if (detectedLanguageId) {\n        classes2.push(`${fileIconSelectorEscape(detectedLanguageId)}-lang-file-icon`);\n      }\n    }\n  }\n  return classes2;\n}\nfunction detectLanguageId(modelService, languageService, resource) {\n  if (!resource) {\n    return null;\n  }\n  let languageId = null;\n  if (resource.scheme === Schemas.data) {\n    const metadata = DataUri.parseMetaData(resource);\n    const mime = metadata.get(DataUri.META_DATA_MIME);\n    if (mime) {\n      languageId = languageService.getLanguageIdByMimeType(mime);\n    }\n  } else {\n    const model = modelService.getModel(resource);\n    if (model) {\n      languageId = model.getLanguageId();\n    }\n  }\n  if (languageId \u0026\u0026 languageId !== PLAINTEXT_LANGUAGE_ID) {\n    return languageId;\n  }\n  return languageService.guessLanguageIdByFilepathOrFirstLine(resource);\n}\nfunction fileIconSelectorEscape(str) {\n  return str.replace(/[\\s]/g, \"/\");\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js\ninit_model();\ninit_language();\ninit_nls();\ninit_themeService();\nvar __decorate106 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param100 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar suggestMoreInfoIcon = registerIcon(\"suggest-more-info\", Codicon.chevronRight, localize(1474, \"Icon for more information in the suggest widget.\"));\nvar _completionItemColor = new class ColorExtractor {\n  static {\n    this._regexRelaxed = /(#([\\da-fA-F]{3}){1,2}|(rgb|hsl)a\\(\\s*(\\d{1,3}%?\\s*,\\s*){3}(1|0?\\.\\d+)\\)|(rgb|hsl)\\(\\s*\\d{1,3}%?(\\s*,\\s*\\d{1,3}%?){2}\\s*\\))/;\n  }\n  static {\n    this._regexStrict = new RegExp(`^${ColorExtractor._regexRelaxed.source}$`, \"i\");\n  }\n  extract(item, out) {\n    if (item.textLabel.match(ColorExtractor._regexStrict)) {\n      out[0] = item.textLabel;\n      return true;\n    }\n    if (item.completion.detail \u0026\u0026 item.completion.detail.match(ColorExtractor._regexStrict)) {\n      out[0] = item.completion.detail;\n      return true;\n    }\n    if (item.completion.documentation) {\n      const value = typeof item.completion.documentation === \"string\" ? item.completion.documentation : item.completion.documentation.value;\n      const match2 = ColorExtractor._regexRelaxed.exec(value);\n      if (match2 \u0026\u0026 (match2.index === 0 || match2.index + match2[0].length === value.length)) {\n        out[0] = match2[0];\n        return true;\n      }\n    }\n    return false;\n  }\n}();\nvar ItemRenderer = class ItemRenderer2 {\n  constructor(_editor, _modelService, _languageService, _themeService) {\n    this._editor = _editor;\n    this._modelService = _modelService;\n    this._languageService = _languageService;\n    this._themeService = _themeService;\n    this._onDidToggleDetails = new Emitter();\n    this.onDidToggleDetails = this._onDidToggleDetails.event;\n    this.templateId = \"suggestion\";\n  }\n  dispose() {\n    this._onDidToggleDetails.dispose();\n  }\n  renderTemplate(container) {\n    const disposables = new DisposableStore();\n    const root = container;\n    root.classList.add(\"show-file-icons\");\n    const icon = append(container, $(\".icon\"));\n    const colorspan = append(icon, $(\"span.colorspan\"));\n    const text2 = append(container, $(\".contents\"));\n    const main = append(text2, $(\".main\"));\n    const iconContainer = append(main, $(\".icon-label.codicon\"));\n    const left = append(main, $(\"span.left\"));\n    const right = append(main, $(\"span.right\"));\n    const iconLabel = new IconLabel(left, { supportHighlights: true, supportIcons: true });\n    disposables.add(iconLabel);\n    const parametersLabel = append(left, $(\"span.signature-label\"));\n    const qualifierLabel = append(left, $(\"span.qualifier-label\"));\n    const detailsLabel = append(right, $(\"span.details-label\"));\n    const readMore = append(right, $(\"span.readMore\" + ThemeIcon.asCSSSelector(suggestMoreInfoIcon)));\n    readMore.title = localize(1475, \"Read More\");\n    const configureFont = () =\u003e {\n      const options2 = this._editor.getOptions();\n      const fontInfo = options2.get(\n        59\n        /* EditorOption.fontInfo */\n      );\n      const fontFamily = fontInfo.getMassagedFontFamily();\n      const fontFeatureSettings = fontInfo.fontFeatureSettings;\n      const fontVariationSettings = fontInfo.fontVariationSettings;\n      const fontSize = options2.get(\n        134\n        /* EditorOption.suggestFontSize */\n      ) || fontInfo.fontSize;\n      const lineHeight = options2.get(\n        135\n        /* EditorOption.suggestLineHeight */\n      ) || fontInfo.lineHeight;\n      const fontWeight = fontInfo.fontWeight;\n      const letterSpacing = fontInfo.letterSpacing;\n      const fontSizePx = `${fontSize}px`;\n      const lineHeightPx = `${lineHeight}px`;\n      const letterSpacingPx = `${letterSpacing}px`;\n      root.style.fontSize = fontSizePx;\n      root.style.fontWeight = fontWeight;\n      root.style.letterSpacing = letterSpacingPx;\n      main.style.fontFamily = fontFamily;\n      main.style.fontFeatureSettings = fontFeatureSettings;\n      main.style.fontVariationSettings = fontVariationSettings;\n      main.style.lineHeight = lineHeightPx;\n      icon.style.height = lineHeightPx;\n      icon.style.width = lineHeightPx;\n      readMore.style.height = lineHeightPx;\n      readMore.style.width = lineHeightPx;\n    };\n    return { root, left, right, icon, colorspan, iconLabel, iconContainer, parametersLabel, qualifierLabel, detailsLabel, readMore, disposables, configureFont };\n  }\n  renderElement(element, index, data) {\n    data.configureFont();\n    const { completion } = element;\n    data.colorspan.style.backgroundColor = \"\";\n    const labelOptions = {\n      labelEscapeNewLines: true,\n      matches: createMatches(element.score)\n    };\n    const color = [];\n    if (completion.kind === 19 \u0026\u0026 _completionItemColor.extract(element, color)) {\n      data.icon.className = \"icon customcolor\";\n      data.iconContainer.className = \"icon hide\";\n      data.colorspan.style.backgroundColor = color[0];\n    } else if (completion.kind === 20 \u0026\u0026 this._themeService.getFileIconTheme().hasFileIcons) {\n      data.icon.className = \"icon hide\";\n      data.iconContainer.className = \"icon hide\";\n      const labelClasses = getIconClasses(this._modelService, this._languageService, URI.from({ scheme: \"fake\", path: element.textLabel }), FileKind.FILE);\n      const detailClasses = getIconClasses(this._modelService, this._languageService, URI.from({ scheme: \"fake\", path: completion.detail }), FileKind.FILE);\n      labelOptions.extraClasses = labelClasses.length \u003e detailClasses.length ? labelClasses : detailClasses;\n    } else if (completion.kind === 23 \u0026\u0026 this._themeService.getFileIconTheme().hasFolderIcons) {\n      data.icon.className = \"icon hide\";\n      data.iconContainer.className = \"icon hide\";\n      labelOptions.extraClasses = [\n        getIconClasses(this._modelService, this._languageService, URI.from({ scheme: \"fake\", path: element.textLabel }), FileKind.FOLDER),\n        getIconClasses(this._modelService, this._languageService, URI.from({ scheme: \"fake\", path: completion.detail }), FileKind.FOLDER)\n      ].flat();\n    } else {\n      data.icon.className = \"icon hide\";\n      data.iconContainer.className = \"\";\n      data.iconContainer.classList.add(\"suggest-icon\", ...ThemeIcon.asClassNameArray(CompletionItemKinds.toIcon(completion.kind)));\n    }\n    if (completion.tags \u0026\u0026 completion.tags.indexOf(\n      1\n      /* CompletionItemTag.Deprecated */\n    ) \u003e= 0) {\n      labelOptions.extraClasses = (labelOptions.extraClasses || []).concat([\"deprecated\"]);\n      labelOptions.matches = [];\n    }\n    data.iconLabel.setLabel(element.textLabel, void 0, labelOptions);\n    if (typeof completion.label === \"string\") {\n      data.parametersLabel.textContent = \"\";\n      data.detailsLabel.textContent = stripNewLines(completion.detail || \"\");\n      data.root.classList.add(\"string-label\");\n    } else {\n      data.parametersLabel.textContent = stripNewLines(completion.label.detail || \"\");\n      data.detailsLabel.textContent = stripNewLines(completion.label.description || \"\");\n      data.root.classList.remove(\"string-label\");\n    }\n    if (this._editor.getOption(\n      133\n      /* EditorOption.suggest */\n    ).showInlineDetails) {\n      show(data.detailsLabel);\n    } else {\n      hide(data.detailsLabel);\n    }\n    if (canExpandCompletionItem(element)) {\n      data.right.classList.add(\"can-expand-details\");\n      show(data.readMore);\n      data.readMore.onmousedown = (e) =\u003e {\n        e.stopPropagation();\n        e.preventDefault();\n      };\n      data.readMore.onclick = (e) =\u003e {\n        e.stopPropagation();\n        e.preventDefault();\n        this._onDidToggleDetails.fire();\n      };\n    } else {\n      data.right.classList.remove(\"can-expand-details\");\n      hide(data.readMore);\n      data.readMore.onmousedown = null;\n      data.readMore.onclick = null;\n    }\n  }\n  disposeTemplate(templateData) {\n    templateData.disposables.dispose();\n  }\n};\nItemRenderer = __decorate106([\n  __param100(1, IModelService),\n  __param100(2, ILanguageService),\n  __param100(3, IThemeService)\n], ItemRenderer);\nfunction stripNewLines(str) {\n  return str.replace(/\\r\\n|\\r|\\n/g, \"\");\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestWidget.js\ninit_languages();\ninit_platform();\nvar __decorate107 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param101 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SuggestWidget_1;\nregisterColor(\"editorSuggestWidget.background\", editorWidgetBackground, localize(1455, \"Background color of the suggest widget.\"));\nregisterColor(\"editorSuggestWidget.border\", editorWidgetBorder, localize(1456, \"Border color of the suggest widget.\"));\nvar editorSuggestWidgetForeground = registerColor(\"editorSuggestWidget.foreground\", editorForeground, localize(1457, \"Foreground color of the suggest widget.\"));\nregisterColor(\"editorSuggestWidget.selectedForeground\", quickInputListFocusForeground, localize(1458, \"Foreground color of the selected entry in the suggest widget.\"));\nregisterColor(\"editorSuggestWidget.selectedIconForeground\", quickInputListFocusIconForeground, localize(1459, \"Icon foreground color of the selected entry in the suggest widget.\"));\nvar editorSuggestWidgetSelectedBackground = registerColor(\"editorSuggestWidget.selectedBackground\", quickInputListFocusBackground, localize(1460, \"Background color of the selected entry in the suggest widget.\"));\nregisterColor(\"editorSuggestWidget.highlightForeground\", listHighlightForeground, localize(1461, \"Color of the match highlights in the suggest widget.\"));\nregisterColor(\"editorSuggestWidget.focusHighlightForeground\", listFocusHighlightForeground, localize(1462, \"Color of the match highlights in the suggest widget when an item is focused.\"));\nregisterColor(\"editorSuggestWidgetStatus.foreground\", transparent(editorSuggestWidgetForeground, 0.5), localize(1463, \"Foreground color of the suggest widget status.\"));\nvar PersistedWidgetSize = class {\n  constructor(_service, editor2) {\n    this._service = _service;\n    this._key = `suggestWidget.size/${editor2.getEditorType()}/${editor2 instanceof EmbeddedCodeEditorWidget}`;\n  }\n  restore() {\n    const raw = this._service.get(\n      this._key,\n      0\n      /* StorageScope.PROFILE */\n    ) ?? \"\";\n    try {\n      const obj = JSON.parse(raw);\n      if (Dimension.is(obj)) {\n        return Dimension.lift(obj);\n      }\n    } catch {\n    }\n    return void 0;\n  }\n  store(size2) {\n    this._service.store(\n      this._key,\n      JSON.stringify(size2),\n      0,\n      1\n      /* StorageTarget.MACHINE */\n    );\n  }\n  reset() {\n    this._service.remove(\n      this._key,\n      0\n      /* StorageScope.PROFILE */\n    );\n  }\n};\nvar SuggestWidget = class SuggestWidget2 {\n  static {\n    SuggestWidget_1 = this;\n  }\n  static {\n    this.LOADING_MESSAGE = localize(1464, \"Loading...\");\n  }\n  static {\n    this.NO_SUGGESTIONS_MESSAGE = localize(1465, \"No suggestions.\");\n  }\n  constructor(editor2, _storageService, _contextKeyService, _themeService, instantiationService) {\n    this.editor = editor2;\n    this._storageService = _storageService;\n    this._state = 0;\n    this._isAuto = false;\n    this._pendingLayout = new MutableDisposable();\n    this._pendingShowDetails = new MutableDisposable();\n    this._ignoreFocusEvents = false;\n    this._forceRenderingAbove = false;\n    this._explainMode = false;\n    this._showTimeout = new TimeoutTimer();\n    this._disposables = new DisposableStore();\n    this._onDidSelect = new PauseableEmitter();\n    this._onDidFocus = new PauseableEmitter();\n    this._onDidHide = new Emitter();\n    this._onDidShow = new Emitter();\n    this.onDidSelect = this._onDidSelect.event;\n    this.onDidFocus = this._onDidFocus.event;\n    this.onDidHide = this._onDidHide.event;\n    this.onDidShow = this._onDidShow.event;\n    this._onDetailsKeydown = new Emitter();\n    this.onDetailsKeyDown = this._onDetailsKeydown.event;\n    this.element = new ResizableHTMLElement();\n    this.element.domNode.classList.add(\"editor-widget\", \"suggest-widget\");\n    this._contentWidget = new SuggestContentWidget(this, editor2);\n    this._persistedSize = new PersistedWidgetSize(_storageService, editor2);\n    class ResizeState {\n      constructor(persistedSize, currentSize, persistHeight = false, persistWidth = false) {\n        this.persistedSize = persistedSize;\n        this.currentSize = currentSize;\n        this.persistHeight = persistHeight;\n        this.persistWidth = persistWidth;\n      }\n    }\n    let state;\n    this._disposables.add(this.element.onDidWillResize(() =\u003e {\n      this._contentWidget.lockPreference();\n      state = new ResizeState(this._persistedSize.restore(), this.element.size);\n    }));\n    this._disposables.add(this.element.onDidResize((e) =\u003e {\n      this._resize(e.dimension.width, e.dimension.height);\n      if (state) {\n        state.persistHeight = state.persistHeight || !!e.north || !!e.south;\n        state.persistWidth = state.persistWidth || !!e.east || !!e.west;\n      }\n      if (!e.done) {\n        return;\n      }\n      if (state) {\n        const { itemHeight, defaultSize } = this.getLayoutInfo();\n        const threshold = Math.round(itemHeight / 2);\n        let { width: width2, height } = this.element.size;\n        if (!state.persistHeight || Math.abs(state.currentSize.height - height) \u003c= threshold) {\n          height = state.persistedSize?.height ?? defaultSize.height;\n        }\n        if (!state.persistWidth || Math.abs(state.currentSize.width - width2) \u003c= threshold) {\n          width2 = state.persistedSize?.width ?? defaultSize.width;\n        }\n        this._persistedSize.store(new Dimension(width2, height));\n      }\n      this._contentWidget.unlockPreference();\n      state = void 0;\n    }));\n    this._messageElement = append(this.element.domNode, $(\".message\"));\n    this._listElement = append(this.element.domNode, $(\".tree\"));\n    const details = this._disposables.add(instantiationService.createInstance(SuggestDetailsWidget, this.editor));\n    details.onDidClose(() =\u003e this.toggleDetails(), this, this._disposables);\n    this._details = new SuggestDetailsOverlay(details, this.editor);\n    const applyIconStyle = () =\u003e this.element.domNode.classList.toggle(\"no-icons\", !this.editor.getOption(\n      133\n      /* EditorOption.suggest */\n    ).showIcons);\n    applyIconStyle();\n    const renderer = instantiationService.createInstance(ItemRenderer, this.editor);\n    this._disposables.add(renderer);\n    this._disposables.add(renderer.onDidToggleDetails(() =\u003e this.toggleDetails()));\n    this._list = new List(\"SuggestWidget\", this._listElement, {\n      getHeight: (_element) =\u003e this.getLayoutInfo().itemHeight,\n      getTemplateId: (_element) =\u003e \"suggestion\"\n    }, [renderer], {\n      alwaysConsumeMouseWheel: true,\n      useShadows: false,\n      mouseSupport: false,\n      multipleSelectionSupport: false,\n      accessibilityProvider: {\n        getRole: () =\u003e isWindows ? \"listitem\" : \"option\",\n        getWidgetAriaLabel: () =\u003e localize(1466, \"Suggest\"),\n        getWidgetRole: () =\u003e \"listbox\",\n        getAriaLabel: (item) =\u003e {\n          let label = item.textLabel;\n          const kindLabel = CompletionItemKinds.toLabel(item.completion.kind);\n          if (typeof item.completion.label !== \"string\") {\n            const { detail: detail2, description } = item.completion.label;\n            if (detail2 \u0026\u0026 description) {\n              label = localize(1467, \"{0} {1}, {2}, {3}\", label, detail2, description, kindLabel);\n            } else if (detail2) {\n              label = localize(1468, \"{0} {1}, {2}\", label, detail2, kindLabel);\n            } else if (description) {\n              label = localize(1469, \"{0}, {1}, {2}\", label, description, kindLabel);\n            }\n          } else {\n            label = localize(1470, \"{0}, {1}\", label, kindLabel);\n          }\n          if (!item.isResolved || !this._isDetailsVisible()) {\n            return label;\n          }\n          const { documentation, detail } = item.completion;\n          const docs = format(\"{0}{1}\", detail || \"\", documentation ? typeof documentation === \"string\" ? documentation : documentation.value : \"\");\n          return localize(1471, \"{0}, docs: {1}\", label, docs);\n        }\n      }\n    });\n    this._list.style(getListStyles({\n      listInactiveFocusBackground: editorSuggestWidgetSelectedBackground,\n      listInactiveFocusOutline: activeContrastBorder\n    }));\n    this._status = instantiationService.createInstance(SuggestWidgetStatus, this.element.domNode, suggestWidgetStatusbarMenu);\n    const applyStatusBarStyle = () =\u003e this.element.domNode.classList.toggle(\"with-status-bar\", this.editor.getOption(\n      133\n      /* EditorOption.suggest */\n    ).showStatusBar);\n    applyStatusBarStyle();\n    this._disposables.add(_themeService.onDidColorThemeChange((t) =\u003e this._onThemeChange(t)));\n    this._onThemeChange(_themeService.getColorTheme());\n    this._disposables.add(this._list.onMouseDown((e) =\u003e this._onListMouseDownOrTap(e)));\n    this._disposables.add(this._list.onTap((e) =\u003e this._onListMouseDownOrTap(e)));\n    this._disposables.add(this._list.onDidChangeSelection((e) =\u003e this._onListSelection(e)));\n    this._disposables.add(this._list.onDidChangeFocus((e) =\u003e this._onListFocus(e)));\n    this._disposables.add(this.editor.onDidChangeCursorSelection(() =\u003e this._onCursorSelectionChanged()));\n    this._disposables.add(this.editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        133\n        /* EditorOption.suggest */\n      )) {\n        applyStatusBarStyle();\n        applyIconStyle();\n      }\n      if (this._completionModel \u0026\u0026 (e.hasChanged(\n        59\n        /* EditorOption.fontInfo */\n      ) || e.hasChanged(\n        134\n        /* EditorOption.suggestFontSize */\n      ) || e.hasChanged(\n        135\n        /* EditorOption.suggestLineHeight */\n      ))) {\n        this._list.splice(0, this._list.length, this._completionModel.items);\n      }\n    }));\n    this._ctxSuggestWidgetVisible = Context.Visible.bindTo(_contextKeyService);\n    this._ctxSuggestWidgetDetailsVisible = Context.DetailsVisible.bindTo(_contextKeyService);\n    this._ctxSuggestWidgetMultipleSuggestions = Context.MultipleSuggestions.bindTo(_contextKeyService);\n    this._ctxSuggestWidgetHasFocusedSuggestion = Context.HasFocusedSuggestion.bindTo(_contextKeyService);\n    this._disposables.add(addStandardDisposableListener(this._details.widget.domNode, \"keydown\", (e) =\u003e {\n      this._onDetailsKeydown.fire(e);\n    }));\n    this._disposables.add(this.editor.onMouseDown((e) =\u003e this._onEditorMouseDown(e)));\n  }\n  dispose() {\n    this._details.widget.dispose();\n    this._details.dispose();\n    this._list.dispose();\n    this._status.dispose();\n    this._disposables.dispose();\n    this._loadingTimeout?.dispose();\n    this._pendingLayout.dispose();\n    this._pendingShowDetails.dispose();\n    this._showTimeout.dispose();\n    this._contentWidget.dispose();\n    this.element.dispose();\n  }\n  _onEditorMouseDown(mouseEvent) {\n    if (this._details.widget.domNode.contains(mouseEvent.target.element)) {\n      this._details.widget.domNode.focus();\n    } else {\n      if (this.element.domNode.contains(mouseEvent.target.element)) {\n        this.editor.focus();\n      }\n    }\n  }\n  _onCursorSelectionChanged() {\n    if (this._state !== 0) {\n      this._contentWidget.layout();\n    }\n  }\n  _onListMouseDownOrTap(e) {\n    if (typeof e.element === \"undefined\" || typeof e.index === \"undefined\") {\n      return;\n    }\n    e.browserEvent.preventDefault();\n    e.browserEvent.stopPropagation();\n    this._select(e.element, e.index);\n  }\n  _onListSelection(e) {\n    if (e.elements.length) {\n      this._select(e.elements[0], e.indexes[0]);\n    }\n  }\n  _select(item, index) {\n    const completionModel = this._completionModel;\n    if (completionModel) {\n      this._onDidSelect.fire({ item, index, model: completionModel });\n      this.editor.focus();\n    }\n  }\n  _onThemeChange(theme) {\n    this._details.widget.borderWidth = isHighContrast(theme.type) ? 2 : 1;\n  }\n  _onListFocus(e) {\n    if (this._ignoreFocusEvents) {\n      return;\n    }\n    if (this._state === 5) {\n      this._setState(\n        3\n        /* State.Open */\n      );\n    }\n    if (!e.elements.length) {\n      if (this._currentSuggestionDetails) {\n        this._currentSuggestionDetails.cancel();\n        this._currentSuggestionDetails = void 0;\n        this._focusedItem = void 0;\n      }\n      this.editor.setAriaOptions({ activeDescendant: void 0 });\n      this._ctxSuggestWidgetHasFocusedSuggestion.set(false);\n      return;\n    }\n    if (!this._completionModel) {\n      return;\n    }\n    this._ctxSuggestWidgetHasFocusedSuggestion.set(true);\n    const item = e.elements[0];\n    const index = e.indexes[0];\n    if (item !== this._focusedItem) {\n      this._currentSuggestionDetails?.cancel();\n      this._currentSuggestionDetails = void 0;\n      this._focusedItem = item;\n      this._list.reveal(index);\n      this._currentSuggestionDetails = createCancelablePromise(async (token) =\u003e {\n        const loading = disposableTimeout(() =\u003e {\n          if (this._isDetailsVisible()) {\n            this._showDetails(true, false);\n          }\n        }, 250);\n        const sub = token.onCancellationRequested(() =\u003e loading.dispose());\n        try {\n          return await item.resolve(token);\n        } finally {\n          loading.dispose();\n          sub.dispose();\n        }\n      });\n      this._currentSuggestionDetails.then(() =\u003e {\n        if (index \u003e= this._list.length || item !== this._list.element(index)) {\n          return;\n        }\n        this._ignoreFocusEvents = true;\n        this._list.splice(index, 1, [item]);\n        this._list.setFocus([index]);\n        this._ignoreFocusEvents = false;\n        if (this._isDetailsVisible()) {\n          this._showDetails(false, false);\n        } else {\n          this.element.domNode.classList.remove(\"docs-side\");\n        }\n        this.editor.setAriaOptions({ activeDescendant: this._list.getElementID(index) });\n      }).catch(onUnexpectedError);\n    }\n    this._onDidFocus.fire({ item, index, model: this._completionModel });\n  }\n  _setState(state) {\n    if (this._state === state) {\n      return;\n    }\n    this._state = state;\n    this.element.domNode.classList.toggle(\n      \"frozen\",\n      state === 4\n      /* State.Frozen */\n    );\n    this.element.domNode.classList.remove(\"message\");\n    switch (state) {\n      case 0:\n        hide(this._messageElement, this._listElement, this._status.element);\n        this._details.hide(true);\n        this._status.hide();\n        this._contentWidget.hide();\n        this._ctxSuggestWidgetVisible.reset();\n        this._ctxSuggestWidgetMultipleSuggestions.reset();\n        this._ctxSuggestWidgetHasFocusedSuggestion.reset();\n        this._showTimeout.cancel();\n        this.element.domNode.classList.remove(\"visible\");\n        this._list.splice(0, this._list.length);\n        this._focusedItem = void 0;\n        this._cappedHeight = void 0;\n        this._explainMode = false;\n        break;\n      case 1:\n        this.element.domNode.classList.add(\"message\");\n        this._messageElement.textContent = SuggestWidget_1.LOADING_MESSAGE;\n        hide(this._listElement, this._status.element);\n        show(this._messageElement);\n        this._details.hide();\n        this._show();\n        this._focusedItem = void 0;\n        status(SuggestWidget_1.LOADING_MESSAGE);\n        break;\n      case 2:\n        this.element.domNode.classList.add(\"message\");\n        this._messageElement.textContent = SuggestWidget_1.NO_SUGGESTIONS_MESSAGE;\n        hide(this._listElement, this._status.element);\n        show(this._messageElement);\n        this._details.hide();\n        this._show();\n        this._focusedItem = void 0;\n        status(SuggestWidget_1.NO_SUGGESTIONS_MESSAGE);\n        break;\n      case 3:\n        hide(this._messageElement);\n        show(this._listElement, this._status.element);\n        this._show();\n        break;\n      case 4:\n        hide(this._messageElement);\n        show(this._listElement, this._status.element);\n        this._show();\n        break;\n      case 5:\n        hide(this._messageElement);\n        show(this._listElement, this._status.element);\n        this._details.show();\n        this._show();\n        this._details.widget.focus();\n        break;\n    }\n  }\n  _show() {\n    this._status.show();\n    this._contentWidget.show();\n    this._layout(this._persistedSize.restore());\n    this._ctxSuggestWidgetVisible.set(true);\n    this._showTimeout.cancelAndSet(() =\u003e {\n      this.element.domNode.classList.add(\"visible\");\n      this._onDidShow.fire(this);\n    }, 100);\n  }\n  showTriggered(auto, delay) {\n    if (this._state !== 0) {\n      return;\n    }\n    this._contentWidget.setPosition(this.editor.getPosition());\n    this._isAuto = !!auto;\n    if (!this._isAuto) {\n      this._loadingTimeout = disposableTimeout(() =\u003e this._setState(\n        1\n        /* State.Loading */\n      ), delay);\n    }\n  }\n  showSuggestions(completionModel, selectionIndex, isFrozen2, isAuto, noFocus) {\n    this._contentWidget.setPosition(this.editor.getPosition());\n    this._loadingTimeout?.dispose();\n    this._currentSuggestionDetails?.cancel();\n    this._currentSuggestionDetails = void 0;\n    if (this._completionModel !== completionModel) {\n      this._completionModel = completionModel;\n    }\n    if (isFrozen2 \u0026\u0026 this._state !== 2 \u0026\u0026 this._state !== 0) {\n      this._setState(\n        4\n        /* State.Frozen */\n      );\n      return;\n    }\n    const visibleCount = this._completionModel.items.length;\n    const isEmpty = visibleCount === 0;\n    this._ctxSuggestWidgetMultipleSuggestions.set(visibleCount \u003e 1);\n    if (isEmpty) {\n      this._setState(\n        isAuto ? 0 : 2\n        /* State.Empty */\n      );\n      this._completionModel = void 0;\n      return;\n    }\n    this._focusedItem = void 0;\n    this._onDidFocus.pause();\n    this._onDidSelect.pause();\n    try {\n      this._list.splice(0, this._list.length, this._completionModel.items);\n      this._setState(\n        isFrozen2 ? 4 : 3\n        /* State.Open */\n      );\n      this._list.reveal(selectionIndex, 0, selectionIndex === 0 ? 0 : this.getLayoutInfo().itemHeight * 0.33);\n      this._list.setFocus(noFocus ? [] : [selectionIndex]);\n    } finally {\n      this._onDidFocus.resume();\n      this._onDidSelect.resume();\n    }\n    this._pendingLayout.value = runAtThisOrScheduleAtNextAnimationFrame(getWindow(this.element.domNode), () =\u003e {\n      this._pendingLayout.clear();\n      this._layout(this.element.size);\n      this._details.widget.domNode.classList.remove(\"focused\");\n    });\n  }\n  focusSelected() {\n    if (this._list.length \u003e 0) {\n      this._list.setFocus([0]);\n    }\n  }\n  selectNextPage() {\n    switch (this._state) {\n      case 0:\n        return false;\n      case 5:\n        this._details.widget.pageDown();\n        return true;\n      case 1:\n        return !this._isAuto;\n      default:\n        this._list.focusNextPage();\n        return true;\n    }\n  }\n  selectNext() {\n    switch (this._state) {\n      case 0:\n        return false;\n      case 1:\n        return !this._isAuto;\n      default:\n        this._list.focusNext(1, true);\n        return true;\n    }\n  }\n  selectLast() {\n    switch (this._state) {\n      case 0:\n        return false;\n      case 5:\n        this._details.widget.scrollBottom();\n        return true;\n      case 1:\n        return !this._isAuto;\n      default:\n        this._list.focusLast();\n        return true;\n    }\n  }\n  selectPreviousPage() {\n    switch (this._state) {\n      case 0:\n        return false;\n      case 5:\n        this._details.widget.pageUp();\n        return true;\n      case 1:\n        return !this._isAuto;\n      default:\n        this._list.focusPreviousPage();\n        return true;\n    }\n  }\n  selectPrevious() {\n    switch (this._state) {\n      case 0:\n        return false;\n      case 1:\n        return !this._isAuto;\n      default:\n        this._list.focusPrevious(1, true);\n        return false;\n    }\n  }\n  selectFirst() {\n    switch (this._state) {\n      case 0:\n        return false;\n      case 5:\n        this._details.widget.scrollTop();\n        return true;\n      case 1:\n        return !this._isAuto;\n      default:\n        this._list.focusFirst();\n        return true;\n    }\n  }\n  getFocusedItem() {\n    if (this._state !== 0 \u0026\u0026 this._state !== 2 \u0026\u0026 this._state !== 1 \u0026\u0026 this._completionModel \u0026\u0026 this._list.getFocus().length \u003e 0) {\n      return {\n        item: this._list.getFocusedElements()[0],\n        index: this._list.getFocus()[0],\n        model: this._completionModel\n      };\n    }\n    return void 0;\n  }\n  toggleDetailsFocus() {\n    if (this._state === 5) {\n      this._list.setFocus(this._list.getFocus());\n      this._setState(\n        3\n        /* State.Open */\n      );\n    } else if (this._state === 3) {\n      this._setState(\n        5\n        /* State.Details */\n      );\n      if (!this._isDetailsVisible()) {\n        this.toggleDetails(true);\n      } else {\n        this._details.widget.focus();\n      }\n    }\n  }\n  toggleDetails(focused = false) {\n    if (this._isDetailsVisible()) {\n      this._pendingShowDetails.clear();\n      this._ctxSuggestWidgetDetailsVisible.set(false);\n      this._setDetailsVisible(false);\n      this._details.hide();\n      this.element.domNode.classList.remove(\"shows-details\");\n    } else if ((canExpandCompletionItem(this._list.getFocusedElements()[0]) || this._explainMode) \u0026\u0026 (this._state === 3 || this._state === 5 || this._state === 4)) {\n      this._ctxSuggestWidgetDetailsVisible.set(true);\n      this._setDetailsVisible(true);\n      this._showDetails(false, focused);\n    }\n  }\n  _showDetails(loading, focused) {\n    this._pendingShowDetails.value = runAtThisOrScheduleAtNextAnimationFrame(getWindow(this.element.domNode), () =\u003e {\n      this._pendingShowDetails.clear();\n      this._details.show();\n      let didFocusDetails = false;\n      if (loading) {\n        this._details.widget.renderLoading();\n      } else {\n        this._details.widget.renderItem(this._list.getFocusedElements()[0], this._explainMode);\n      }\n      if (!this._details.widget.isEmpty) {\n        this._positionDetails();\n        this.element.domNode.classList.add(\"shows-details\");\n        if (focused) {\n          this._details.widget.focus();\n          didFocusDetails = true;\n        }\n      } else {\n        this._details.hide();\n      }\n      if (!didFocusDetails) {\n        this.editor.focus();\n      }\n    });\n  }\n  toggleExplainMode() {\n    if (this._list.getFocusedElements()[0]) {\n      this._explainMode = !this._explainMode;\n      if (!this._isDetailsVisible()) {\n        this.toggleDetails();\n      } else {\n        this._showDetails(false, false);\n      }\n    }\n  }\n  resetPersistedSize() {\n    this._persistedSize.reset();\n  }\n  hideWidget() {\n    this._pendingLayout.clear();\n    this._pendingShowDetails.clear();\n    this._loadingTimeout?.dispose();\n    this._setState(\n      0\n      /* State.Hidden */\n    );\n    this._onDidHide.fire(this);\n    this.element.clearSashHoverState();\n    const dim = this._persistedSize.restore();\n    const minPersistedHeight = Math.ceil(this.getLayoutInfo().itemHeight * 4.3);\n    if (dim \u0026\u0026 dim.height \u003c minPersistedHeight) {\n      this._persistedSize.store(dim.with(void 0, minPersistedHeight));\n    }\n  }\n  isFrozen() {\n    return this._state === 4;\n  }\n  _afterRender(position) {\n    if (position === null) {\n      if (this._isDetailsVisible()) {\n        this._details.hide();\n      }\n      return;\n    }\n    if (this._state === 2 || this._state === 1) {\n      return;\n    }\n    if (this._isDetailsVisible() \u0026\u0026 !this._details.widget.isEmpty) {\n      this._details.show();\n    }\n    this._positionDetails();\n  }\n  _layout(size2) {\n    if (!this.editor.hasModel()) {\n      return;\n    }\n    if (!this.editor.getDomNode()) {\n      return;\n    }\n    const bodyBox = getClientArea(this.element.domNode.ownerDocument.body);\n    const info = this.getLayoutInfo();\n    if (!size2) {\n      size2 = info.defaultSize;\n    }\n    let height = size2.height;\n    let width2 = size2.width;\n    this._status.element.style.height = `${info.itemHeight}px`;\n    if (this._state === 2 || this._state === 1) {\n      height = info.itemHeight + info.borderHeight;\n      width2 = info.defaultSize.width / 2;\n      this.element.enableSashes(false, false, false, false);\n      this.element.minSize = this.element.maxSize = new Dimension(width2, height);\n      this._contentWidget.setPreference(\n        2\n        /* ContentWidgetPositionPreference.BELOW */\n      );\n    } else {\n      const maxWidth = bodyBox.width - info.borderHeight - 2 * info.horizontalPadding;\n      if (width2 \u003e maxWidth) {\n        width2 = maxWidth;\n      }\n      const preferredWidth = this._completionModel ? this._completionModel.stats.pLabelLen * info.typicalHalfwidthCharacterWidth : width2;\n      const fullHeight = info.statusBarHeight + this._list.contentHeight + info.borderHeight;\n      const minHeight = info.itemHeight + info.statusBarHeight;\n      const editorBox = getDomNodePagePosition(this.editor.getDomNode());\n      const cursorBox = this.editor.getScrolledVisiblePosition(this.editor.getPosition());\n      const cursorBottom = editorBox.top + cursorBox.top + cursorBox.height;\n      const maxHeightBelow = Math.min(bodyBox.height - cursorBottom - info.verticalPadding, fullHeight);\n      const availableSpaceAbove = editorBox.top + cursorBox.top - info.verticalPadding;\n      const maxHeightAbove = Math.min(availableSpaceAbove, fullHeight);\n      let maxHeight = Math.min(Math.max(maxHeightAbove, maxHeightBelow) + info.borderHeight, fullHeight);\n      if (height === this._cappedHeight?.capped) {\n        height = this._cappedHeight.wanted;\n      }\n      if (height \u003c minHeight) {\n        height = minHeight;\n      }\n      if (height \u003e maxHeight) {\n        height = maxHeight;\n      }\n      const forceRenderingAboveRequiredSpace = 150;\n      if (height \u003e maxHeightBelow || this._forceRenderingAbove \u0026\u0026 availableSpaceAbove \u003e forceRenderingAboveRequiredSpace) {\n        this._contentWidget.setPreference(\n          1\n          /* ContentWidgetPositionPreference.ABOVE */\n        );\n        this.element.enableSashes(true, true, false, false);\n        maxHeight = maxHeightAbove;\n      } else {\n        this._contentWidget.setPreference(\n          2\n          /* ContentWidgetPositionPreference.BELOW */\n        );\n        this.element.enableSashes(false, true, true, false);\n        maxHeight = maxHeightBelow;\n      }\n      this.element.preferredSize = new Dimension(preferredWidth, info.defaultSize.height);\n      this.element.maxSize = new Dimension(maxWidth, maxHeight);\n      this.element.minSize = new Dimension(220, minHeight);\n      this._cappedHeight = height === fullHeight ? { wanted: this._cappedHeight?.wanted ?? size2.height, capped: height } : void 0;\n    }\n    this._resize(width2, height);\n  }\n  _resize(width2, height) {\n    const { width: maxWidth, height: maxHeight } = this.element.maxSize;\n    width2 = Math.min(maxWidth, width2);\n    height = Math.min(maxHeight, height);\n    const { statusBarHeight } = this.getLayoutInfo();\n    this._list.layout(height - statusBarHeight, width2);\n    this._listElement.style.height = `${height - statusBarHeight}px`;\n    this.element.layout(height, width2);\n    this._contentWidget.layout();\n    this._positionDetails();\n  }\n  _positionDetails() {\n    if (this._isDetailsVisible()) {\n      this._details.placeAtAnchor(\n        this.element.domNode,\n        this._contentWidget.getPosition()?.preference[0] === 2\n        /* ContentWidgetPositionPreference.BELOW */\n      );\n    }\n  }\n  getLayoutInfo() {\n    const fontInfo = this.editor.getOption(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const itemHeight = clamp(this.editor.getOption(\n      135\n      /* EditorOption.suggestLineHeight */\n    ) || fontInfo.lineHeight, 8, 1e3);\n    const statusBarHeight = !this.editor.getOption(\n      133\n      /* EditorOption.suggest */\n    ).showStatusBar || this._state === 2 || this._state === 1 ? 0 : itemHeight;\n    const borderWidth = this._details.widget.borderWidth;\n    const borderHeight = 2 * borderWidth;\n    return {\n      itemHeight,\n      statusBarHeight,\n      borderWidth,\n      borderHeight,\n      typicalHalfwidthCharacterWidth: fontInfo.typicalHalfwidthCharacterWidth,\n      verticalPadding: 22,\n      horizontalPadding: 14,\n      defaultSize: new Dimension(430, statusBarHeight + 12 * itemHeight)\n    };\n  }\n  _isDetailsVisible() {\n    return this._storageService.getBoolean(\"expandSuggestionDocs\", 0, false);\n  }\n  _setDetailsVisible(value) {\n    this._storageService.store(\n      \"expandSuggestionDocs\",\n      value,\n      0,\n      0\n      /* StorageTarget.USER */\n    );\n  }\n  forceRenderingAbove() {\n    if (!this._forceRenderingAbove) {\n      this._forceRenderingAbove = true;\n      this._layout(this._persistedSize.restore());\n    }\n  }\n  stopForceRenderingAbove() {\n    this._forceRenderingAbove = false;\n  }\n};\nSuggestWidget = SuggestWidget_1 = __decorate107([\n  __param101(1, IStorageService),\n  __param101(2, IContextKeyService),\n  __param101(3, IThemeService),\n  __param101(4, IInstantiationService)\n], SuggestWidget);\nvar SuggestContentWidget = class {\n  constructor(_widget, _editor) {\n    this._widget = _widget;\n    this._editor = _editor;\n    this.allowEditorOverflow = true;\n    this.suppressMouseDown = false;\n    this._preferenceLocked = false;\n    this._added = false;\n    this._hidden = false;\n  }\n  dispose() {\n    if (this._added) {\n      this._added = false;\n      this._editor.removeContentWidget(this);\n    }\n  }\n  getId() {\n    return \"editor.widget.suggestWidget\";\n  }\n  getDomNode() {\n    return this._widget.element.domNode;\n  }\n  show() {\n    this._hidden = false;\n    if (!this._added) {\n      this._added = true;\n      this._editor.addContentWidget(this);\n    }\n  }\n  hide() {\n    if (!this._hidden) {\n      this._hidden = true;\n      this.layout();\n    }\n  }\n  layout() {\n    this._editor.layoutContentWidget(this);\n  }\n  getPosition() {\n    if (this._hidden || !this._position || !this._preference) {\n      return null;\n    }\n    return {\n      position: this._position,\n      preference: [this._preference]\n    };\n  }\n  beforeRender() {\n    const { height, width: width2 } = this._widget.element.size;\n    const { borderWidth, horizontalPadding } = this._widget.getLayoutInfo();\n    return new Dimension(width2 + 2 * borderWidth + horizontalPadding, height + 2 * borderWidth);\n  }\n  afterRender(position) {\n    this._widget._afterRender(position);\n  }\n  setPreference(preference) {\n    if (!this._preferenceLocked) {\n      this._preference = preference;\n    }\n  }\n  lockPreference() {\n    this._preferenceLocked = true;\n  }\n  unlockPreference() {\n    this._preferenceLocked = false;\n  }\n  setPosition(position) {\n    this._position = position;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestController.js\ninit_telemetry();\ninit_resources();\ninit_hash();\ninit_dom();\ninit_textModel();\ninit_textModelEditSource();\nvar __decorate108 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param102 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SuggestController_1;\nvar _sticky2 = false;\nvar LineSuffix = class {\n  constructor(_model, _position) {\n    this._model = _model;\n    this._position = _position;\n    this._decorationOptions = ModelDecorationOptions.register({\n      description: \"suggest-line-suffix\",\n      stickiness: 1\n      /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n    });\n    const maxColumn = _model.getLineMaxColumn(_position.lineNumber);\n    if (maxColumn !== _position.column) {\n      const offset = _model.getOffsetAt(_position);\n      const end = _model.getPositionAt(offset + 1);\n      _model.changeDecorations((accessor) =\u003e {\n        if (this._marker) {\n          accessor.removeDecoration(this._marker);\n        }\n        this._marker = accessor.addDecoration(Range.fromPositions(_position, end), this._decorationOptions);\n      });\n    }\n  }\n  dispose() {\n    if (this._marker \u0026\u0026 !this._model.isDisposed()) {\n      this._model.changeDecorations((accessor) =\u003e {\n        accessor.removeDecoration(this._marker);\n        this._marker = void 0;\n      });\n    }\n  }\n  delta(position) {\n    if (this._model.isDisposed() || this._position.lineNumber !== position.lineNumber) {\n      return 0;\n    }\n    if (this._marker) {\n      const range2 = this._model.getDecorationRange(this._marker);\n      const end = this._model.getOffsetAt(range2.getStartPosition());\n      return end - this._model.getOffsetAt(position);\n    } else {\n      return this._model.getLineMaxColumn(position.lineNumber) - position.column;\n    }\n  }\n};\nvar SuggestController = class SuggestController2 {\n  static {\n    SuggestController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.suggestController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(SuggestController_1.ID);\n  }\n  get onWillInsertSuggestItem() {\n    return this._onWillInsertSuggestItem.event;\n  }\n  constructor(editor2, _memoryService, _commandService, _contextKeyService, _instantiationService, _logService, _telemetryService) {\n    this._memoryService = _memoryService;\n    this._commandService = _commandService;\n    this._contextKeyService = _contextKeyService;\n    this._instantiationService = _instantiationService;\n    this._logService = _logService;\n    this._telemetryService = _telemetryService;\n    this._lineSuffix = new MutableDisposable();\n    this._toDispose = new DisposableStore();\n    this._selectors = new PriorityRegistry((s) =\u003e s.priority);\n    this._onWillInsertSuggestItem = new Emitter();\n    this._wantsForceRenderingAbove = false;\n    this.editor = editor2;\n    this.model = _instantiationService.createInstance(SuggestModel, this.editor);\n    this._selectors.register({\n      priority: 0,\n      select: (model, pos, items) =\u003e this._memoryService.select(model, pos, items)\n    });\n    const ctxInsertMode = Context.InsertMode.bindTo(_contextKeyService);\n    ctxInsertMode.set(editor2.getOption(\n      133\n      /* EditorOption.suggest */\n    ).insertMode);\n    this._toDispose.add(this.model.onDidTrigger(() =\u003e ctxInsertMode.set(editor2.getOption(\n      133\n      /* EditorOption.suggest */\n    ).insertMode)));\n    this.widget = this._toDispose.add(new WindowIdleValue(getWindow(editor2.getDomNode()), () =\u003e {\n      const widget = this._instantiationService.createInstance(SuggestWidget, this.editor);\n      this._toDispose.add(widget);\n      this._toDispose.add(widget.onDidSelect((item) =\u003e this._insertSuggestion(\n        item,\n        0\n        /* InsertFlags.None */\n      ), this));\n      const commitCharacterController = new CommitCharacterController(this.editor, widget, this.model, (item) =\u003e this._insertSuggestion(\n        item,\n        2\n        /* InsertFlags.NoAfterUndoStop */\n      ));\n      this._toDispose.add(commitCharacterController);\n      const ctxMakesTextEdit = Context.MakesTextEdit.bindTo(this._contextKeyService);\n      const ctxHasInsertAndReplace = Context.HasInsertAndReplaceRange.bindTo(this._contextKeyService);\n      const ctxCanResolve = Context.CanResolve.bindTo(this._contextKeyService);\n      this._toDispose.add(toDisposable(() =\u003e {\n        ctxMakesTextEdit.reset();\n        ctxHasInsertAndReplace.reset();\n        ctxCanResolve.reset();\n      }));\n      this._toDispose.add(widget.onDidFocus(({ item }) =\u003e {\n        const position = this.editor.getPosition();\n        const startColumn = item.editStart.column;\n        const endColumn = position.column;\n        let value = true;\n        if (this.editor.getOption(\n          1\n          /* EditorOption.acceptSuggestionOnEnter */\n        ) === \"smart\" \u0026\u0026 this.model.state === 2 \u0026\u0026 !item.completion.additionalTextEdits \u0026\u0026 !(item.completion.insertTextRules \u0026 4) \u0026\u0026 endColumn - startColumn === item.completion.insertText.length) {\n          const oldText = this.editor.getModel().getValueInRange({\n            startLineNumber: position.lineNumber,\n            startColumn,\n            endLineNumber: position.lineNumber,\n            endColumn\n          });\n          value = oldText !== item.completion.insertText;\n        }\n        ctxMakesTextEdit.set(value);\n        ctxHasInsertAndReplace.set(!Position.equals(item.editInsertEnd, item.editReplaceEnd));\n        ctxCanResolve.set(Boolean(item.provider.resolveCompletionItem) || Boolean(item.completion.documentation) || item.completion.detail !== item.completion.label);\n      }));\n      this._toDispose.add(widget.onDetailsKeyDown((e) =\u003e {\n        if (e.toKeyCodeChord().equals(new KeyCodeChord(\n          true,\n          false,\n          false,\n          false,\n          33\n          /* KeyCode.KeyC */\n        )) || isMacintosh \u0026\u0026 e.toKeyCodeChord().equals(new KeyCodeChord(\n          false,\n          false,\n          false,\n          true,\n          33\n          /* KeyCode.KeyC */\n        ))) {\n          e.stopPropagation();\n          return;\n        }\n        if (!e.toKeyCodeChord().isModifierKey()) {\n          this.editor.focus();\n        }\n      }));\n      if (this._wantsForceRenderingAbove) {\n        widget.forceRenderingAbove();\n      }\n      return widget;\n    }));\n    this._overtypingCapturer = this._toDispose.add(new WindowIdleValue(getWindow(editor2.getDomNode()), () =\u003e {\n      return this._toDispose.add(new OvertypingCapturer(this.editor, this.model));\n    }));\n    this._alternatives = this._toDispose.add(new WindowIdleValue(getWindow(editor2.getDomNode()), () =\u003e {\n      return this._toDispose.add(new SuggestAlternatives(this.editor, this._contextKeyService));\n    }));\n    this._toDispose.add(_instantiationService.createInstance(WordContextKey, editor2));\n    this._toDispose.add(this.model.onDidTrigger((e) =\u003e {\n      this.widget.value.showTriggered(e.auto, e.shy ? 250 : 50);\n      this._lineSuffix.value = new LineSuffix(this.editor.getModel(), e.position);\n    }));\n    this._toDispose.add(this.model.onDidSuggest((e) =\u003e {\n      if (e.triggerOptions.shy) {\n        return;\n      }\n      let index = -1;\n      for (const selector of this._selectors.itemsOrderedByPriorityDesc) {\n        index = selector.select(this.editor.getModel(), this.editor.getPosition(), e.completionModel.items);\n        if (index !== -1) {\n          break;\n        }\n      }\n      if (index === -1) {\n        index = 0;\n      }\n      if (this.model.state === 0) {\n        return;\n      }\n      let noFocus = false;\n      if (e.triggerOptions.auto) {\n        const options2 = this.editor.getOption(\n          133\n          /* EditorOption.suggest */\n        );\n        if (options2.selectionMode === \"never\" || options2.selectionMode === \"always\") {\n          noFocus = options2.selectionMode === \"never\";\n        } else if (options2.selectionMode === \"whenTriggerCharacter\") {\n          noFocus = e.triggerOptions.triggerKind !== 1;\n        } else if (options2.selectionMode === \"whenQuickSuggestion\") {\n          noFocus = e.triggerOptions.triggerKind === 1 \u0026\u0026 !e.triggerOptions.refilter;\n        }\n      }\n      this.widget.value.showSuggestions(e.completionModel, index, e.isFrozen, e.triggerOptions.auto, noFocus);\n    }));\n    this._toDispose.add(this.model.onDidCancel((e) =\u003e {\n      if (!e.retrigger) {\n        this.widget.value.hideWidget();\n      }\n    }));\n    this._toDispose.add(this.editor.onDidBlurEditorWidget(() =\u003e {\n      if (!_sticky2) {\n        this.model.cancel();\n        this.model.clear();\n      }\n    }));\n    const acceptSuggestionsOnEnter = Context.AcceptSuggestionsOnEnter.bindTo(_contextKeyService);\n    const updateFromConfig = () =\u003e {\n      const acceptSuggestionOnEnter = this.editor.getOption(\n        1\n        /* EditorOption.acceptSuggestionOnEnter */\n      );\n      acceptSuggestionsOnEnter.set(acceptSuggestionOnEnter === \"on\" || acceptSuggestionOnEnter === \"smart\");\n    };\n    this._toDispose.add(this.editor.onDidChangeConfiguration(() =\u003e updateFromConfig()));\n    updateFromConfig();\n  }\n  dispose() {\n    this._alternatives.dispose();\n    this._toDispose.dispose();\n    this.widget.dispose();\n    this.model.dispose();\n    this._lineSuffix.dispose();\n    this._onWillInsertSuggestItem.dispose();\n  }\n  _insertSuggestion(event, flags) {\n    if (!event || !event.item) {\n      this._alternatives.value.reset();\n      this.model.cancel();\n      this.model.clear();\n      return;\n    }\n    if (!this.editor.hasModel()) {\n      return;\n    }\n    const snippetController = SnippetController2.get(this.editor);\n    if (!snippetController) {\n      return;\n    }\n    this._onWillInsertSuggestItem.fire({ item: event.item });\n    const model = this.editor.getModel();\n    const modelVersionNow = model.getAlternativeVersionId();\n    const { item } = event;\n    const tasks = [];\n    const cts = new CancellationTokenSource();\n    if (!(flags \u0026 1)) {\n      this.editor.pushUndoStop();\n    }\n    const info = this.getOverwriteInfo(item, Boolean(\n      flags \u0026 8\n      /* InsertFlags.AlternativeOverwriteConfig */\n    ));\n    this._memoryService.memorize(model, this.editor.getPosition(), item);\n    const isResolved = item.isResolved;\n    let _commandExectionDuration = -1;\n    let _additionalEditsAppliedAsync = -1;\n    if (Array.isArray(item.completion.additionalTextEdits)) {\n      this.model.cancel();\n      const scrollState = StableEditorScrollState.capture(this.editor);\n      this.editor.executeEdits(\"suggestController.additionalTextEdits.sync\", item.completion.additionalTextEdits.map((edit2) =\u003e {\n        let range2 = Range.lift(edit2.range);\n        if (range2.startLineNumber === item.position.lineNumber \u0026\u0026 range2.startColumn \u003e item.position.column) {\n          const columnDelta = this.editor.getPosition().column - item.position.column;\n          const startColumnDelta = columnDelta;\n          const endColumnDelta = Range.spansMultipleLines(range2) ? 0 : columnDelta;\n          range2 = new Range(range2.startLineNumber, range2.startColumn + startColumnDelta, range2.endLineNumber, range2.endColumn + endColumnDelta);\n        }\n        return EditOperation.replaceMove(range2, edit2.text);\n      }));\n      scrollState.restoreRelativeVerticalPositionOfCursor(this.editor);\n    } else if (!isResolved) {\n      const sw = new StopWatch();\n      let position;\n      const docListener = model.onDidChangeContent((e) =\u003e {\n        if (e.isFlush) {\n          cts.cancel();\n          docListener.dispose();\n          return;\n        }\n        for (const change of e.changes) {\n          const thisPosition = Range.getEndPosition(change.range);\n          if (!position || Position.isBefore(thisPosition, position)) {\n            position = thisPosition;\n          }\n        }\n      });\n      const oldFlags = flags;\n      flags |= 2;\n      let didType = false;\n      const typeListener = this.editor.onWillType(() =\u003e {\n        typeListener.dispose();\n        didType = true;\n        if (!(oldFlags \u0026 2)) {\n          this.editor.pushUndoStop();\n        }\n      });\n      tasks.push(item.resolve(cts.token).then(() =\u003e {\n        if (!item.completion.additionalTextEdits || cts.token.isCancellationRequested) {\n          return void 0;\n        }\n        if (position \u0026\u0026 item.completion.additionalTextEdits.some((edit2) =\u003e Position.isBefore(position, Range.getStartPosition(edit2.range)))) {\n          return false;\n        }\n        if (didType) {\n          this.editor.pushUndoStop();\n        }\n        const scrollState = StableEditorScrollState.capture(this.editor);\n        this.editor.executeEdits(\"suggestController.additionalTextEdits.async\", item.completion.additionalTextEdits.map((edit2) =\u003e EditOperation.replaceMove(Range.lift(edit2.range), edit2.text)));\n        scrollState.restoreRelativeVerticalPositionOfCursor(this.editor);\n        if (didType || !(oldFlags \u0026 2)) {\n          this.editor.pushUndoStop();\n        }\n        return true;\n      }).then((applied) =\u003e {\n        this._logService.trace(\"[suggest] async resolving of edits DONE (ms, applied?)\", sw.elapsed(), applied);\n        _additionalEditsAppliedAsync = applied === true ? 1 : applied === false ? 0 : -2;\n      }).finally(() =\u003e {\n        docListener.dispose();\n        typeListener.dispose();\n      }));\n    }\n    let { insertText } = item.completion;\n    if (!(item.completion.insertTextRules \u0026 4)) {\n      insertText = SnippetParser.escape(insertText);\n    }\n    this.model.cancel();\n    snippetController.insert(insertText, {\n      overwriteBefore: info.overwriteBefore,\n      overwriteAfter: info.overwriteAfter,\n      undoStopBefore: false,\n      undoStopAfter: false,\n      adjustWhitespace: !(item.completion.insertTextRules \u0026 1),\n      clipboardText: event.model.clipboardText,\n      overtypingCapturer: this._overtypingCapturer.value,\n      reason: EditSources.suggest({ providerId: ProviderId.fromExtensionId(item.extensionId?.value) })\n    });\n    if (!(flags \u0026 2)) {\n      this.editor.pushUndoStop();\n    }\n    if (item.completion.command) {\n      if (item.completion.command.id === TriggerSuggestAction.id) {\n        this.model.trigger({ auto: true, retrigger: true });\n      } else {\n        const sw = new StopWatch();\n        tasks.push(this._commandService.executeCommand(item.completion.command.id, ...item.completion.command.arguments ? [...item.completion.command.arguments] : []).catch((e) =\u003e {\n          if (item.completion.extensionId) {\n            onUnexpectedExternalError(e);\n          } else {\n            onUnexpectedError(e);\n          }\n        }).finally(() =\u003e {\n          _commandExectionDuration = sw.elapsed();\n        }));\n      }\n    }\n    if (flags \u0026 4) {\n      this._alternatives.value.set(event, (next) =\u003e {\n        cts.cancel();\n        while (model.canUndo()) {\n          if (modelVersionNow !== model.getAlternativeVersionId()) {\n            model.undo();\n          }\n          this._insertSuggestion(next, 1 | 2 | (flags \u0026 8 ? 8 : 0));\n          break;\n        }\n      });\n    }\n    this._alertCompletionItem(item);\n    Promise.all(tasks).finally(() =\u003e {\n      this._reportSuggestionAcceptedTelemetry(item, model, isResolved, _commandExectionDuration, _additionalEditsAppliedAsync, event.index, event.model.items);\n      this.model.clear();\n      cts.dispose();\n    });\n  }\n  _reportSuggestionAcceptedTelemetry(item, model, itemResolved, commandExectionDuration, additionalEditsAppliedAsync, index, completionItems) {\n    if (Math.random() \u003e 1e-4) {\n      return;\n    }\n    const labelMap = /* @__PURE__ */ new Map();\n    for (let i2 = 0; i2 \u003c Math.min(30, completionItems.length); i2++) {\n      const label = completionItems[i2].textLabel;\n      if (labelMap.has(label)) {\n        labelMap.get(label).push(i2);\n      } else {\n        labelMap.set(label, [i2]);\n      }\n    }\n    const firstIndexArray = labelMap.get(item.textLabel);\n    const hasDuplicates = firstIndexArray \u0026\u0026 firstIndexArray.length \u003e 1;\n    const firstIndex = hasDuplicates ? firstIndexArray[0] : -1;\n    this._telemetryService.publicLog2(\"suggest.acceptedSuggestion\", {\n      extensionId: item.extensionId?.value ?? \"unknown\",\n      providerId: item.provider._debugDisplayName ?? \"unknown\",\n      kind: item.completion.kind,\n      basenameHash: hash(basename2(model.uri)).toString(16),\n      languageId: model.getLanguageId(),\n      fileExtension: extname2(model.uri),\n      resolveInfo: !item.provider.resolveCompletionItem ? -1 : itemResolved ? 1 : 0,\n      resolveDuration: item.resolveDuration,\n      commandDuration: commandExectionDuration,\n      additionalEditsAsync: additionalEditsAppliedAsync,\n      index,\n      firstIndex\n    });\n  }\n  getOverwriteInfo(item, toggleMode) {\n    assertType(this.editor.hasModel());\n    let replace = this.editor.getOption(\n      133\n      /* EditorOption.suggest */\n    ).insertMode === \"replace\";\n    if (toggleMode) {\n      replace = !replace;\n    }\n    const overwriteBefore = item.position.column - item.editStart.column;\n    const overwriteAfter = (replace ? item.editReplaceEnd.column : item.editInsertEnd.column) - item.position.column;\n    const columnDelta = this.editor.getPosition().column - item.position.column;\n    const suffixDelta = this._lineSuffix.value ? this._lineSuffix.value.delta(this.editor.getPosition()) : 0;\n    return {\n      overwriteBefore: overwriteBefore + columnDelta,\n      overwriteAfter: overwriteAfter + suffixDelta\n    };\n  }\n  _alertCompletionItem(item) {\n    if (isNonEmptyArray(item.completion.additionalTextEdits)) {\n      const msg = localize(1445, \"Accepting '{0}' made {1} additional edits\", item.textLabel, item.completion.additionalTextEdits.length);\n      alert(msg);\n    }\n  }\n  triggerSuggest(onlyFrom, auto, noFilter) {\n    if (this.editor.hasModel()) {\n      this.model.trigger({\n        auto: auto ?? false,\n        completionOptions: { providerFilter: onlyFrom, kindFilter: noFilter ? /* @__PURE__ */ new Set() : void 0 }\n      });\n      this.editor.revealPosition(\n        this.editor.getPosition(),\n        0\n        /* ScrollType.Smooth */\n      );\n      this.editor.focus();\n    }\n  }\n  triggerSuggestAndAcceptBest(arg) {\n    if (!this.editor.hasModel()) {\n      return;\n    }\n    const positionNow = this.editor.getPosition();\n    const fallback2 = () =\u003e {\n      if (positionNow.equals(this.editor.getPosition())) {\n        this._commandService.executeCommand(arg.fallback);\n      }\n    };\n    const makesTextEdit = (item) =\u003e {\n      if (item.completion.insertTextRules \u0026 4 || item.completion.additionalTextEdits) {\n        return true;\n      }\n      const position = this.editor.getPosition();\n      const startColumn = item.editStart.column;\n      const endColumn = position.column;\n      if (endColumn - startColumn !== item.completion.insertText.length) {\n        return true;\n      }\n      const textNow = this.editor.getModel().getValueInRange({\n        startLineNumber: position.lineNumber,\n        startColumn,\n        endLineNumber: position.lineNumber,\n        endColumn\n      });\n      return textNow !== item.completion.insertText;\n    };\n    Event.once(this.model.onDidTrigger)((_) =\u003e {\n      const listener = [];\n      Event.any(this.model.onDidTrigger, this.model.onDidCancel)(() =\u003e {\n        dispose(listener);\n        fallback2();\n      }, void 0, listener);\n      this.model.onDidSuggest(({ completionModel }) =\u003e {\n        dispose(listener);\n        if (completionModel.items.length === 0) {\n          fallback2();\n          return;\n        }\n        const index = this._memoryService.select(this.editor.getModel(), this.editor.getPosition(), completionModel.items);\n        const item = completionModel.items[index];\n        if (!makesTextEdit(item)) {\n          fallback2();\n          return;\n        }\n        this.editor.pushUndoStop();\n        this._insertSuggestion(\n          { index, item, model: completionModel },\n          4 | 1 | 2\n          /* InsertFlags.NoAfterUndoStop */\n        );\n      }, void 0, listener);\n    });\n    this.model.trigger({ auto: false, shy: true });\n    this.editor.revealPosition(\n      positionNow,\n      0\n      /* ScrollType.Smooth */\n    );\n    this.editor.focus();\n  }\n  acceptSelectedSuggestion(keepAlternativeSuggestions, alternativeOverwriteConfig) {\n    const item = this.widget.value.getFocusedItem();\n    let flags = 0;\n    if (keepAlternativeSuggestions) {\n      flags |= 4;\n    }\n    if (alternativeOverwriteConfig) {\n      flags |= 8;\n    }\n    this._insertSuggestion(item, flags);\n  }\n  acceptNextSuggestion() {\n    this._alternatives.value.next();\n  }\n  acceptPrevSuggestion() {\n    this._alternatives.value.prev();\n  }\n  cancelSuggestWidget() {\n    this.model.cancel();\n    this.model.clear();\n    this.widget.value.hideWidget();\n  }\n  focusSuggestion() {\n    this.widget.value.focusSelected();\n  }\n  selectNextSuggestion() {\n    this.widget.value.selectNext();\n  }\n  selectNextPageSuggestion() {\n    this.widget.value.selectNextPage();\n  }\n  selectLastSuggestion() {\n    this.widget.value.selectLast();\n  }\n  selectPrevSuggestion() {\n    this.widget.value.selectPrevious();\n  }\n  selectPrevPageSuggestion() {\n    this.widget.value.selectPreviousPage();\n  }\n  selectFirstSuggestion() {\n    this.widget.value.selectFirst();\n  }\n  toggleSuggestionDetails() {\n    this.widget.value.toggleDetails();\n  }\n  toggleExplainMode() {\n    this.widget.value.toggleExplainMode();\n  }\n  toggleSuggestionFocus() {\n    this.widget.value.toggleDetailsFocus();\n  }\n  resetWidgetSize() {\n    this.widget.value.resetPersistedSize();\n  }\n  forceRenderingAbove() {\n    if (this.widget.isInitialized) {\n      this.widget.value.forceRenderingAbove();\n    } else {\n      this._wantsForceRenderingAbove = true;\n    }\n  }\n  stopForceRenderingAbove() {\n    if (this.widget.isInitialized) {\n      this.widget.value.stopForceRenderingAbove();\n    } else {\n      this._wantsForceRenderingAbove = false;\n    }\n  }\n  registerSelector(selector) {\n    return this._selectors.register(selector);\n  }\n};\nSuggestController = SuggestController_1 = __decorate108([\n  __param102(1, ISuggestMemoryService),\n  __param102(2, ICommandService),\n  __param102(3, IContextKeyService),\n  __param102(4, IInstantiationService),\n  __param102(5, ILogService),\n  __param102(6, ITelemetryService)\n], SuggestController);\nvar PriorityRegistry = class {\n  constructor(prioritySelector) {\n    this.prioritySelector = prioritySelector;\n    this._items = new Array();\n  }\n  register(value) {\n    if (this._items.indexOf(value) !== -1) {\n      throw new Error(\"Value is already registered\");\n    }\n    this._items.push(value);\n    this._items.sort((s1, s2) =\u003e this.prioritySelector(s2) - this.prioritySelector(s1));\n    return {\n      dispose: () =\u003e {\n        const idx = this._items.indexOf(value);\n        if (idx \u003e= 0) {\n          this._items.splice(idx, 1);\n        }\n      }\n    };\n  }\n  get itemsOrderedByPriorityDesc() {\n    return this._items;\n  }\n};\nvar TriggerSuggestAction = class _TriggerSuggestAction extends EditorAction {\n  static {\n    this.id = \"editor.action.triggerSuggest\";\n  }\n  constructor() {\n    super({\n      id: _TriggerSuggestAction.id,\n      label: localize2(1453, \"Trigger Suggest\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCompletionItemProvider, Context.Visible.toNegated()),\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 | 10,\n        secondary: [\n          2048 | 39\n          /* KeyCode.KeyI */\n        ],\n        mac: { primary: 256 | 10, secondary: [\n          512 | 9,\n          2048 | 39\n          /* KeyCode.KeyI */\n        ] },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2, args) {\n    const controller = SuggestController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    let auto;\n    if (args \u0026\u0026 typeof args === \"object\") {\n      if (args.auto === true) {\n        auto = true;\n      }\n    }\n    controller.triggerSuggest(void 0, auto, void 0);\n  }\n};\nregisterEditorContribution(\n  SuggestController.ID,\n  SuggestController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorAction(TriggerSuggestAction);\nvar weight2 = 100 + 90;\nvar SuggestCommand = EditorCommand.bindToContribution(SuggestController.get);\nregisterEditorCommand(new SuggestCommand({\n  id: \"acceptSelectedSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, Context.HasFocusedSuggestion),\n  handler(x) {\n    x.acceptSelectedSuggestion(true, false);\n  },\n  kbOpts: [{\n    // normal tab\n    primary: 2,\n    kbExpr: ContextKeyExpr.and(Context.Visible, EditorContextKeys.textInputFocus),\n    weight: weight2\n  }, {\n    // accept on enter has special rules\n    primary: 3,\n    kbExpr: ContextKeyExpr.and(Context.Visible, EditorContextKeys.textInputFocus, Context.AcceptSuggestionsOnEnter, Context.MakesTextEdit),\n    weight: weight2\n  }],\n  menuOpts: [{\n    menuId: suggestWidgetStatusbarMenu,\n    title: localize(1446, \"Insert\"),\n    group: \"left\",\n    order: 1,\n    when: Context.HasInsertAndReplaceRange.toNegated()\n  }, {\n    menuId: suggestWidgetStatusbarMenu,\n    title: localize(1447, \"Insert\"),\n    group: \"left\",\n    order: 1,\n    when: ContextKeyExpr.and(Context.HasInsertAndReplaceRange, Context.InsertMode.isEqualTo(\"insert\"))\n  }, {\n    menuId: suggestWidgetStatusbarMenu,\n    title: localize(1448, \"Replace\"),\n    group: \"left\",\n    order: 1,\n    when: ContextKeyExpr.and(Context.HasInsertAndReplaceRange, Context.InsertMode.isEqualTo(\"replace\"))\n  }]\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"acceptAlternativeSelectedSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, EditorContextKeys.textInputFocus, Context.HasFocusedSuggestion),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 1024 | 3,\n    secondary: [\n      1024 | 2\n      /* KeyCode.Tab */\n    ]\n  },\n  handler(x) {\n    x.acceptSelectedSuggestion(false, true);\n  },\n  menuOpts: [{\n    menuId: suggestWidgetStatusbarMenu,\n    group: \"left\",\n    order: 2,\n    when: ContextKeyExpr.and(Context.HasInsertAndReplaceRange, Context.InsertMode.isEqualTo(\"insert\")),\n    title: localize(1449, \"Replace\")\n  }, {\n    menuId: suggestWidgetStatusbarMenu,\n    group: \"left\",\n    order: 2,\n    when: ContextKeyExpr.and(Context.HasInsertAndReplaceRange, Context.InsertMode.isEqualTo(\"replace\")),\n    title: localize(1450, \"Insert\")\n  }]\n}));\nCommandsRegistry.registerCommandAlias(\"acceptSelectedSuggestionOnEnter\", \"acceptSelectedSuggestion\");\nregisterEditorCommand(new SuggestCommand({\n  id: \"hideSuggestWidget\",\n  precondition: Context.Visible,\n  handler: (x) =\u003e x.cancelSuggestWidget(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 9,\n    secondary: [\n      1024 | 9\n      /* KeyCode.Escape */\n    ]\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"selectNextSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, ContextKeyExpr.or(Context.MultipleSuggestions, Context.HasFocusedSuggestion.negate())),\n  handler: (c) =\u003e c.selectNextSuggestion(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 18,\n    secondary: [\n      2048 | 18\n      /* KeyCode.DownArrow */\n    ],\n    mac: { primary: 18, secondary: [\n      2048 | 18,\n      256 | 44\n      /* KeyCode.KeyN */\n    ] }\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"selectNextPageSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, ContextKeyExpr.or(Context.MultipleSuggestions, Context.HasFocusedSuggestion.negate())),\n  handler: (c) =\u003e c.selectNextPageSuggestion(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 12,\n    secondary: [\n      2048 | 12\n      /* KeyCode.PageDown */\n    ]\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"selectLastSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, ContextKeyExpr.or(Context.MultipleSuggestions, Context.HasFocusedSuggestion.negate())),\n  handler: (c) =\u003e c.selectLastSuggestion()\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"selectPrevSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, ContextKeyExpr.or(Context.MultipleSuggestions, Context.HasFocusedSuggestion.negate())),\n  handler: (c) =\u003e c.selectPrevSuggestion(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 16,\n    secondary: [\n      2048 | 16\n      /* KeyCode.UpArrow */\n    ],\n    mac: { primary: 16, secondary: [\n      2048 | 16,\n      256 | 46\n      /* KeyCode.KeyP */\n    ] }\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"selectPrevPageSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, ContextKeyExpr.or(Context.MultipleSuggestions, Context.HasFocusedSuggestion.negate())),\n  handler: (c) =\u003e c.selectPrevPageSuggestion(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 11,\n    secondary: [\n      2048 | 11\n      /* KeyCode.PageUp */\n    ]\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"selectFirstSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, ContextKeyExpr.or(Context.MultipleSuggestions, Context.HasFocusedSuggestion.negate())),\n  handler: (c) =\u003e c.selectFirstSuggestion()\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"focusSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, Context.HasFocusedSuggestion.negate()),\n  handler: (x) =\u003e x.focusSuggestion(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 2048 | 10,\n    secondary: [\n      2048 | 39\n      /* KeyCode.KeyI */\n    ],\n    mac: { primary: 256 | 10, secondary: [\n      2048 | 39\n      /* KeyCode.KeyI */\n    ] }\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"focusAndAcceptSuggestion\",\n  precondition: ContextKeyExpr.and(Context.Visible, Context.HasFocusedSuggestion.negate()),\n  handler: (c) =\u003e {\n    c.focusSuggestion();\n    c.acceptSelectedSuggestion(true, false);\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"toggleSuggestionDetails\",\n  precondition: ContextKeyExpr.and(Context.Visible, Context.HasFocusedSuggestion),\n  handler: (x) =\u003e x.toggleSuggestionDetails(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 2048 | 10,\n    secondary: [\n      2048 | 39\n      /* KeyCode.KeyI */\n    ],\n    mac: { primary: 256 | 10, secondary: [\n      2048 | 39\n      /* KeyCode.KeyI */\n    ] }\n  },\n  menuOpts: [{\n    menuId: suggestWidgetStatusbarMenu,\n    group: \"right\",\n    order: 1,\n    when: ContextKeyExpr.and(Context.DetailsVisible, Context.CanResolve),\n    title: localize(1451, \"Show Less\")\n  }, {\n    menuId: suggestWidgetStatusbarMenu,\n    group: \"right\",\n    order: 1,\n    when: ContextKeyExpr.and(Context.DetailsVisible.toNegated(), Context.CanResolve),\n    title: localize(1452, \"Show More\")\n  }]\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"toggleExplainMode\",\n  precondition: Context.Visible,\n  handler: (x) =\u003e x.toggleExplainMode(),\n  kbOpts: {\n    weight: 100,\n    primary: 2048 | 90\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"toggleSuggestionFocus\",\n  precondition: Context.Visible,\n  handler: (x) =\u003e x.toggleSuggestionFocus(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 2048 | 512 | 10,\n    mac: {\n      primary: 256 | 512 | 10\n      /* KeyCode.Space */\n    }\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"insertBestCompletion\",\n  precondition: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.equals(\"config.editor.tabCompletion\", \"on\"), WordContextKey.AtEnd, Context.Visible.toNegated(), SuggestAlternatives.OtherSuggestions.toNegated(), SnippetController2.InSnippetMode.toNegated()),\n  handler: (x, arg) =\u003e {\n    x.triggerSuggestAndAcceptBest(isObject(arg) ? { fallback: \"tab\", ...arg } : { fallback: \"tab\" });\n  },\n  kbOpts: {\n    weight: weight2,\n    primary: 2\n    /* KeyCode.Tab */\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"insertNextSuggestion\",\n  precondition: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.equals(\"config.editor.tabCompletion\", \"on\"), SuggestAlternatives.OtherSuggestions, Context.Visible.toNegated(), SnippetController2.InSnippetMode.toNegated()),\n  handler: (x) =\u003e x.acceptNextSuggestion(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 2\n    /* KeyCode.Tab */\n  }\n}));\nregisterEditorCommand(new SuggestCommand({\n  id: \"insertPrevSuggestion\",\n  precondition: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.equals(\"config.editor.tabCompletion\", \"on\"), SuggestAlternatives.OtherSuggestions, Context.Visible.toNegated(), SnippetController2.InSnippetMode.toNegated()),\n  handler: (x) =\u003e x.acceptPrevSuggestion(),\n  kbOpts: {\n    weight: weight2,\n    kbExpr: EditorContextKeys.textInputFocus,\n    primary: 1024 | 2\n    /* KeyCode.Tab */\n  }\n}));\nregisterEditorAction(class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.resetSuggestSize\",\n      label: localize2(1454, \"Reset Suggest Widget Size\"),\n      precondition: void 0\n    });\n  }\n  run(_accessor, editor2) {\n    SuggestController.get(editor2)?.resetWidgetSize();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/model/suggestWidgetAdapter.js\ninit_observable();\nvar SuggestWidgetAdaptor = class extends Disposable {\n  get selectedItem() {\n    return this._currentSuggestItemInfo;\n  }\n  constructor(editor2, suggestControllerPreselector, onWillAccept) {\n    super();\n    this.editor = editor2;\n    this.suggestControllerPreselector = suggestControllerPreselector;\n    this.onWillAccept = onWillAccept;\n    this.isSuggestWidgetVisible = false;\n    this.isShiftKeyPressed = false;\n    this._isActive = false;\n    this._currentSuggestItemInfo = void 0;\n    this._onDidSelectedItemChange = this._register(new Emitter());\n    this.onDidSelectedItemChange = this._onDidSelectedItemChange.event;\n    this._register(editor2.onKeyDown((e) =\u003e {\n      if (e.shiftKey \u0026\u0026 !this.isShiftKeyPressed) {\n        this.isShiftKeyPressed = true;\n        this.update(this._isActive);\n      }\n    }));\n    this._register(editor2.onKeyUp((e) =\u003e {\n      if (e.shiftKey \u0026\u0026 this.isShiftKeyPressed) {\n        this.isShiftKeyPressed = false;\n        this.update(this._isActive);\n      }\n    }));\n    const suggestController = SuggestController.get(this.editor);\n    if (suggestController) {\n      this._register(suggestController.registerSelector({\n        priority: 100,\n        select: (model, pos, suggestItems) =\u003e {\n          const textModel = this.editor.getModel();\n          if (!textModel) {\n            return -1;\n          }\n          const i2 = this.suggestControllerPreselector();\n          const itemToPreselect = i2 ? singleTextRemoveCommonPrefix(i2, textModel) : void 0;\n          if (!itemToPreselect) {\n            return -1;\n          }\n          const position = Position.lift(pos);\n          const candidates = suggestItems.map((suggestItem, index) =\u003e {\n            const suggestItemInfo = SuggestItemInfo.fromSuggestion(suggestController, textModel, position, suggestItem, this.isShiftKeyPressed);\n            const suggestItemTextEdit = singleTextRemoveCommonPrefix(suggestItemInfo.getSingleTextEdit(), textModel);\n            const valid = singleTextEditAugments(itemToPreselect, suggestItemTextEdit);\n            return { index, valid, prefixLength: suggestItemTextEdit.text.length, suggestItem };\n          }).filter((item) =\u003e item \u0026\u0026 item.valid \u0026\u0026 item.prefixLength \u003e 0);\n          const result = findFirstMax(candidates, compareBy((s) =\u003e s.prefixLength, numberComparator));\n          return result ? result.index : -1;\n        }\n      }));\n      let isBoundToSuggestWidget = false;\n      const bindToSuggestWidget = () =\u003e {\n        if (isBoundToSuggestWidget) {\n          return;\n        }\n        isBoundToSuggestWidget = true;\n        this._register(suggestController.widget.value.onDidShow(() =\u003e {\n          this.isSuggestWidgetVisible = true;\n          this.update(true);\n        }));\n        this._register(suggestController.widget.value.onDidHide(() =\u003e {\n          this.isSuggestWidgetVisible = false;\n          this.update(false);\n        }));\n        this._register(suggestController.widget.value.onDidFocus(() =\u003e {\n          this.isSuggestWidgetVisible = true;\n          this.update(true);\n        }));\n      };\n      this._register(Event.once(suggestController.model.onDidTrigger)((e) =\u003e {\n        bindToSuggestWidget();\n      }));\n      this._register(suggestController.onWillInsertSuggestItem((e) =\u003e {\n        const position = this.editor.getPosition();\n        const model = this.editor.getModel();\n        if (!position || !model) {\n          return void 0;\n        }\n        const suggestItemInfo = SuggestItemInfo.fromSuggestion(suggestController, model, position, e.item, this.isShiftKeyPressed);\n        this.onWillAccept(suggestItemInfo);\n      }));\n    }\n    this.update(this._isActive);\n  }\n  update(newActive) {\n    const newInlineCompletion = this.getSuggestItemInfo();\n    if (this._isActive !== newActive || !suggestItemInfoEquals(this._currentSuggestItemInfo, newInlineCompletion)) {\n      this._isActive = newActive;\n      this._currentSuggestItemInfo = newInlineCompletion;\n      this._onDidSelectedItemChange.fire();\n    }\n  }\n  getSuggestItemInfo() {\n    const suggestController = SuggestController.get(this.editor);\n    if (!suggestController || !this.isSuggestWidgetVisible) {\n      return void 0;\n    }\n    const focusedItem = suggestController.widget.value.getFocusedItem();\n    const position = this.editor.getPosition();\n    const model = this.editor.getModel();\n    if (!focusedItem || !position || !model) {\n      return void 0;\n    }\n    return SuggestItemInfo.fromSuggestion(suggestController, model, position, focusedItem.item, this.isShiftKeyPressed);\n  }\n  stopForceRenderingAbove() {\n    const suggestController = SuggestController.get(this.editor);\n    suggestController?.stopForceRenderingAbove();\n  }\n  forceRenderingAbove() {\n    const suggestController = SuggestController.get(this.editor);\n    suggestController?.forceRenderingAbove();\n  }\n};\nvar SuggestItemInfo = class _SuggestItemInfo {\n  static fromSuggestion(suggestController, model, position, item, toggleMode) {\n    let { insertText } = item.completion;\n    let isSnippetText = false;\n    if (item.completion.insertTextRules \u0026 4) {\n      const snippet = new SnippetParser().parse(insertText);\n      if (snippet.children.length \u003c 100) {\n        SnippetSession.adjustWhitespace(model, position, true, snippet);\n      }\n      insertText = snippet.toString();\n      isSnippetText = true;\n    }\n    const info = suggestController.getOverwriteInfo(item, toggleMode);\n    return new _SuggestItemInfo(Range.fromPositions(position.delta(0, -info.overwriteBefore), position.delta(0, Math.max(info.overwriteAfter, 0))), insertText, item.completion.kind, isSnippetText, item.container.incomplete ?? false);\n  }\n  constructor(range2, insertText, completionItemKind, isSnippetText, listIncomplete) {\n    this.range = range2;\n    this.insertText = insertText;\n    this.completionItemKind = completionItemKind;\n    this.isSnippetText = isSnippetText;\n    this.listIncomplete = listIncomplete;\n  }\n  equals(other) {\n    return this.range.equalsRange(other.range) \u0026\u0026 this.insertText === other.insertText \u0026\u0026 this.completionItemKind === other.completionItemKind \u0026\u0026 this.isSnippetText === other.isSnippetText;\n  }\n  toSelectedSuggestionInfo() {\n    return new SelectedSuggestionInfo(this.range, this.insertText, this.completionItemKind, this.isSnippetText);\n  }\n  getSingleTextEdit() {\n    return new TextReplacement(this.range, this.insertText);\n  }\n};\nfunction suggestItemInfoEquals(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (!a || !b) {\n    return false;\n  }\n  return a.equals(b);\n}\nvar ObservableSuggestWidgetAdapter = class extends Disposable {\n  constructor(_editorObs, _handleSuggestAccepted, _suggestControllerPreselector) {\n    super();\n    this._editorObs = _editorObs;\n    this._handleSuggestAccepted = _handleSuggestAccepted;\n    this._suggestControllerPreselector = _suggestControllerPreselector;\n    this._suggestWidgetAdaptor = this._register(new SuggestWidgetAdaptor(this._editorObs.editor, () =\u003e {\n      this._editorObs.forceUpdate();\n      return this._suggestControllerPreselector();\n    }, (item) =\u003e this._editorObs.forceUpdate((_tx) =\u003e {\n      this._handleSuggestAccepted(item);\n    })));\n    this.selectedItem = observableFromEvent(this, (cb) =\u003e this._suggestWidgetAdaptor.onDidSelectedItemChange(() =\u003e {\n      this._editorObs.forceUpdate((_tx) =\u003e cb(void 0));\n    }), () =\u003e this._suggestWidgetAdaptor.selectedItem);\n  }\n  stopForceRenderingAbove() {\n    this._suggestWidgetAdaptor.stopForceRenderingAbove();\n  }\n  forceRenderingAbove() {\n    this._suggestWidgetAdaptor.forceRenderingAbove();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineCompletionsView.js\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\ninit_observableCodeEditor();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js\ninit_iconLabels2();\ninit_codicons();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_strings();\ninit_observableCodeEditor();\ninit_position();\ninit_range();\ninit_stringBuilder();\ninit_language();\ninit_model2();\ninit_lineTokens();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/ranges/rangeSingleLine.js\nvar RangeSingleLine = class {\n  constructor(lineNumber, columnRange) {\n    this.lineNumber = lineNumber;\n    this.columnRange = columnRange;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/ranges/columnRange.js\ninit_errors();\ninit_offsetRange();\ninit_range();\nvar ColumnRange = class {\n  constructor(startColumn, endColumnExclusive) {\n    this.startColumn = startColumn;\n    this.endColumnExclusive = endColumnExclusive;\n    if (startColumn \u003e endColumnExclusive) {\n      throw new BugIndicatingError(`startColumn ${startColumn} cannot be after endColumnExclusive ${endColumnExclusive}`);\n    }\n  }\n  toRange(lineNumber) {\n    return new Range(lineNumber, this.startColumn, lineNumber, this.endColumnExclusive);\n  }\n  equals(other) {\n    return this.startColumn === other.startColumn \u0026\u0026 this.endColumnExclusive === other.endColumnExclusive;\n  }\n  toZeroBasedOffsetRange() {\n    return new OffsetRange(this.startColumn - 1, this.endColumnExclusive - 1);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js\ninit_dom();\ninit_mouseEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/tokenWithTextArray.js\ninit_offsetRange();\ninit_lineTokens();\nvar TokenWithTextArray = class _TokenWithTextArray {\n  static fromLineTokens(lineTokens) {\n    const tokenInfo = [];\n    for (let i2 = 0; i2 \u003c lineTokens.getCount(); i2++) {\n      tokenInfo.push(new TokenWithTextInfo(lineTokens.getTokenText(i2), lineTokens.getMetadata(i2)));\n    }\n    return _TokenWithTextArray.create(tokenInfo);\n  }\n  static create(tokenInfo) {\n    return new _TokenWithTextArray(tokenInfo);\n  }\n  constructor(_tokenInfo) {\n    this._tokenInfo = _tokenInfo;\n  }\n  toLineTokens(decoder) {\n    return LineTokens.createFromTextAndMetadata(this.map((_r, t) =\u003e ({ text: t.text, metadata: t.metadata })), decoder);\n  }\n  map(cb) {\n    const result = [];\n    let lengthSum = 0;\n    for (const tokenInfo of this._tokenInfo) {\n      const range2 = new OffsetRange(lengthSum, lengthSum + tokenInfo.text.length);\n      result.push(cb(range2, tokenInfo));\n      lengthSum += tokenInfo.text.length;\n    }\n    return result;\n  }\n  slice(range2) {\n    const result = [];\n    let lengthSum = 0;\n    for (const tokenInfo of this._tokenInfo) {\n      const tokenStart = lengthSum;\n      const tokenEndEx = tokenStart + tokenInfo.text.length;\n      if (tokenEndEx \u003e range2.start) {\n        if (tokenStart \u003e= range2.endExclusive) {\n          break;\n        }\n        const deltaBefore = Math.max(0, range2.start - tokenStart);\n        const deltaAfter = Math.max(0, tokenEndEx - range2.endExclusive);\n        result.push(new TokenWithTextInfo(tokenInfo.text.slice(deltaBefore, tokenInfo.text.length - deltaAfter), tokenInfo.metadata));\n      }\n      lengthSum += tokenInfo.text.length;\n    }\n    return _TokenWithTextArray.create(result);\n  }\n  append(other) {\n    const result = this._tokenInfo.concat(other._tokenInfo);\n    return _TokenWithTextArray.create(result);\n  }\n};\nvar TokenWithTextInfo = class {\n  constructor(text2, metadata) {\n    this.text = text2;\n    this.metadata = metadata;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/ghostText/ghostTextView.js\ninit_arrays();\nvar __decorate109 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param103 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar GhostTextView_1;\nvar USE_SQUIGGLES_FOR_WARNING = true;\nvar GHOST_TEXT_CLASS_NAME = \"ghost-text\";\nvar GhostTextView = class GhostTextView2 extends Disposable {\n  static {\n    GhostTextView_1 = this;\n  }\n  static {\n    this.hot = createHotClass(GhostTextView_1);\n  }\n  constructor(_editor, _model, _options, _shouldKeepCursorStable, _isClickable, _languageService) {\n    super();\n    this._editor = _editor;\n    this._model = _model;\n    this._options = _options;\n    this._shouldKeepCursorStable = _shouldKeepCursorStable;\n    this._isClickable = _isClickable;\n    this._languageService = _languageService;\n    this._isDisposed = observableValue(this, false);\n    this._editorObs = observableCodeEditor(this._editor);\n    this._warningState = derived((reader) =\u003e {\n      const gt = this._model.ghostText.read(reader);\n      if (!gt) {\n        return void 0;\n      }\n      const warning = this._model.warning.read(reader);\n      if (!warning) {\n        return void 0;\n      }\n      return { lineNumber: gt.lineNumber, position: new Position(gt.lineNumber, gt.parts[0].column), icon: warning.icon };\n    });\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._useSyntaxHighlighting = this._options.map((o) =\u003e o.syntaxHighlightingEnabled);\n    this._extraClassNames = derived(this, (reader) =\u003e {\n      const extraClasses = [...this._options.read(reader).extraClasses ?? []];\n      if (this._useSyntaxHighlighting.read(reader)) {\n        extraClasses.push(\"syntax-highlighted\");\n      }\n      if (USE_SQUIGGLES_FOR_WARNING \u0026\u0026 this._warningState.read(reader)) {\n        extraClasses.push(\"warning\");\n      }\n      const extraClassNames = extraClasses.map((c) =\u003e ` ${c}`).join(\"\");\n      return extraClassNames;\n    });\n    this.uiState = derived(this, (reader) =\u003e {\n      if (this._isDisposed.read(reader)) {\n        return void 0;\n      }\n      const textModel = this._editorObs.model.read(reader);\n      if (textModel !== this._model.targetTextModel.read(reader)) {\n        return void 0;\n      }\n      const ghostText = this._model.ghostText.read(reader);\n      if (!ghostText) {\n        return void 0;\n      }\n      const replacedRange = ghostText instanceof GhostTextReplacement ? ghostText.columnRange : void 0;\n      const syntaxHighlightingEnabled = this._useSyntaxHighlighting.read(reader);\n      const extraClassNames = this._extraClassNames.read(reader);\n      const { inlineTexts, additionalLines, hiddenRange, additionalLinesOriginalSuffix } = computeGhostTextViewData(ghostText, textModel, GHOST_TEXT_CLASS_NAME + extraClassNames);\n      const currentLine = textModel.getLineContent(ghostText.lineNumber);\n      const edit2 = new StringEdit(inlineTexts.map((t) =\u003e StringReplacement.insert(t.column - 1, t.text)));\n      const tokens = syntaxHighlightingEnabled ? textModel.tokenization.tokenizeLinesAt(ghostText.lineNumber, [edit2.apply(currentLine), ...additionalLines.map((l) =\u003e l.content)]) : void 0;\n      const newRanges = edit2.getNewRanges();\n      const inlineTextsWithTokens = inlineTexts.map((t, idx) =\u003e ({ ...t, tokens: tokens?.[0]?.getTokensInRange(newRanges[idx]) }));\n      const tokenizedAdditionalLines = additionalLines.map((l, idx) =\u003e {\n        let content = tokens?.[idx + 1] ?? LineTokens.createEmpty(l.content, this._languageService.languageIdCodec);\n        if (idx === additionalLines.length - 1 \u0026\u0026 additionalLinesOriginalSuffix) {\n          const t = TokenWithTextArray.fromLineTokens(textModel.tokenization.getLineTokens(additionalLinesOriginalSuffix.lineNumber));\n          const existingContent = t.slice(additionalLinesOriginalSuffix.columnRange.toZeroBasedOffsetRange());\n          content = TokenWithTextArray.fromLineTokens(content).append(existingContent).toLineTokens(content.languageIdCodec);\n        }\n        return {\n          content,\n          decorations: l.decorations\n        };\n      });\n      const cursorColumn = this._editor.getSelection()?.getStartPosition().column;\n      const disjointInlineTexts = inlineTextsWithTokens.filter((inline3) =\u003e inline3.text !== \"\");\n      const hasInsertionOnCurrentLine = disjointInlineTexts.length !== 0;\n      const renderData = {\n        cursorColumnDistance: (hasInsertionOnCurrentLine ? disjointInlineTexts[0].column : 1) - cursorColumn,\n        cursorLineDistance: hasInsertionOnCurrentLine ? 0 : additionalLines.findIndex((line) =\u003e line.content !== \"\") + 1,\n        lineCountOriginal: hasInsertionOnCurrentLine ? 1 : 0,\n        lineCountModified: additionalLines.length + (hasInsertionOnCurrentLine ? 1 : 0),\n        characterCountOriginal: 0,\n        characterCountModified: sum(disjointInlineTexts.map((inline3) =\u003e inline3.text.length)) + sum(tokenizedAdditionalLines.map((line) =\u003e line.content.getTextLength())),\n        disjointReplacements: disjointInlineTexts.length + (additionalLines.length \u003e 0 ? 1 : 0),\n        sameShapeReplacements: disjointInlineTexts.length \u003e 1 \u0026\u0026 tokenizedAdditionalLines.length === 0 ? disjointInlineTexts.every((inline3) =\u003e inline3.text === disjointInlineTexts[0].text) : void 0\n      };\n      this._model.handleInlineCompletionShown.read(reader)?.(renderData);\n      return {\n        replacedRange,\n        inlineTexts: inlineTextsWithTokens,\n        additionalLines: tokenizedAdditionalLines,\n        hiddenRange,\n        lineNumber: ghostText.lineNumber,\n        additionalReservedLineCount: this._model.minReservedLineCount.read(reader),\n        targetTextModel: textModel,\n        syntaxHighlightingEnabled\n      };\n    });\n    this.decorations = derived(this, (reader) =\u003e {\n      const uiState = this.uiState.read(reader);\n      if (!uiState) {\n        return [];\n      }\n      const decorations = [];\n      const extraClassNames = this._extraClassNames.read(reader);\n      if (uiState.replacedRange) {\n        decorations.push({\n          range: uiState.replacedRange.toRange(uiState.lineNumber),\n          options: { inlineClassName: \"inline-completion-text-to-replace\" + extraClassNames, description: \"GhostTextReplacement\" }\n        });\n      }\n      if (uiState.hiddenRange) {\n        decorations.push({\n          range: uiState.hiddenRange.toRange(uiState.lineNumber),\n          options: { inlineClassName: \"ghost-text-hidden\", description: \"ghost-text-hidden\" }\n        });\n      }\n      for (const p of uiState.inlineTexts) {\n        decorations.push({\n          range: Range.fromPositions(new Position(uiState.lineNumber, p.column)),\n          options: {\n            description: \"ghost-text-decoration\",\n            after: {\n              content: p.text,\n              tokens: p.tokens,\n              inlineClassName: (p.preview ? \"ghost-text-decoration-preview\" : \"ghost-text-decoration\") + (this._isClickable ? \" clickable\" : \"\") + extraClassNames + p.lineDecorations.map((d) =\u003e \" \" + d.className).join(\" \"),\n              // TODO: take the ranges into account for line decorations\n              cursorStops: InjectedTextCursorStops.Left,\n              attachedData: new GhostTextAttachedData(this)\n            },\n            showIfCollapsed: true\n          }\n        });\n      }\n      return decorations;\n    });\n    this._additionalLinesWidget = this._register(new AdditionalLinesWidget(this._editor, derived((reader) =\u003e {\n      const uiState = this.uiState.read(reader);\n      return uiState ? {\n        lineNumber: uiState.lineNumber,\n        additionalLines: uiState.additionalLines,\n        minReservedLineCount: uiState.additionalReservedLineCount,\n        targetTextModel: uiState.targetTextModel\n      } : void 0;\n    }), this._shouldKeepCursorStable, this._isClickable));\n    this._isInlineTextHovered = this._editorObs.isTargetHovered((p) =\u003e p.target.type === 6 \u0026\u0026 p.target.detail.injectedText?.options.attachedData instanceof GhostTextAttachedData \u0026\u0026 p.target.detail.injectedText.options.attachedData.owner === this, this._store);\n    this.isHovered = derived(this, (reader) =\u003e {\n      if (this._isDisposed.read(reader)) {\n        return false;\n      }\n      return this._isInlineTextHovered.read(reader) || this._additionalLinesWidget.isHovered.read(reader);\n    });\n    this.height = derived(this, (reader) =\u003e {\n      const lineHeight = this._editorObs.getOption(\n        75\n        /* EditorOption.lineHeight */\n      ).read(reader);\n      return lineHeight + (this._additionalLinesWidget.viewZoneHeight.read(reader) ?? 0);\n    });\n    this._register(toDisposable(() =\u003e {\n      this._isDisposed.set(true, void 0);\n    }));\n    this._register(this._editorObs.setDecorations(this.decorations));\n    if (this._isClickable) {\n      this._register(this._additionalLinesWidget.onDidClick((e) =\u003e this._onDidClick.fire(e)));\n      this._register(this._editor.onMouseUp((e) =\u003e {\n        if (e.target.type !== 6) {\n          return;\n        }\n        const a = e.target.detail.injectedText?.options.attachedData;\n        if (a instanceof GhostTextAttachedData \u0026\u0026 a.owner === this) {\n          this._onDidClick.fire(e.event);\n        }\n      }));\n    }\n    this._register(autorunWithStore((reader, store) =\u003e {\n      if (USE_SQUIGGLES_FOR_WARNING) {\n        return;\n      }\n      const state = this._warningState.read(reader);\n      if (!state) {\n        return;\n      }\n      const lineHeight = this._editorObs.getOption(\n        75\n        /* EditorOption.lineHeight */\n      );\n      store.add(this._editorObs.createContentWidget({\n        position: constObservable({\n          position: new Position(state.lineNumber, Number.MAX_SAFE_INTEGER),\n          preference: [\n            0\n            /* ContentWidgetPositionPreference.EXACT */\n          ],\n          positionAffinity: 1\n        }),\n        allowEditorOverflow: false,\n        domNode: n.div({\n          class: \"ghost-text-view-warning-widget\",\n          style: {\n            width: lineHeight,\n            height: lineHeight,\n            marginLeft: 4,\n            color: \"orange\"\n          },\n          ref: (dom) =\u003e {\n            dom.ghostTextViewWarningWidgetData = { range: Range.fromPositions(state.position) };\n          }\n        }, [\n          n.div({\n            class: \"ghost-text-view-warning-widget-icon\",\n            style: {\n              width: \"100%\",\n              height: \"100%\",\n              display: \"flex\",\n              alignContent: \"center\",\n              alignItems: \"center\"\n            }\n          }, [\n            renderIcon(state.icon \u0026\u0026 \"id\" in state.icon ? state.icon : Codicon.warning)\n          ])\n        ]).keepUpdated(store).element\n      }));\n    }));\n  }\n  static getWarningWidgetContext(domNode) {\n    const data = domNode.ghostTextViewWarningWidgetData;\n    if (data) {\n      return data;\n    } else if (domNode.parentElement) {\n      return this.getWarningWidgetContext(domNode.parentElement);\n    }\n    return void 0;\n  }\n  ownsViewZone(viewZoneId) {\n    return this._additionalLinesWidget.viewZoneId === viewZoneId;\n  }\n};\nGhostTextView = GhostTextView_1 = __decorate109([\n  __param103(5, ILanguageService)\n], GhostTextView);\nvar GhostTextAttachedData = class {\n  constructor(owner) {\n    this.owner = owner;\n  }\n};\nfunction computeGhostTextViewData(ghostText, textModel, ghostTextClassName) {\n  const inlineTexts = [];\n  const additionalLines = [];\n  function addToAdditionalLines(ghLines, className2) {\n    if (additionalLines.length \u003e 0) {\n      const lastLine = additionalLines[additionalLines.length - 1];\n      if (className2) {\n        lastLine.decorations.push(new LineDecoration(\n          lastLine.content.length + 1,\n          lastLine.content.length + 1 + ghLines[0].line.length,\n          className2,\n          0\n          /* InlineDecorationType.Regular */\n        ));\n      }\n      lastLine.content += ghLines[0].line;\n      ghLines = ghLines.slice(1);\n    }\n    for (const ghLine of ghLines) {\n      additionalLines.push({\n        content: ghLine.line,\n        decorations: className2 ? [new LineDecoration(\n          1,\n          ghLine.line.length + 1,\n          className2,\n          0\n          /* InlineDecorationType.Regular */\n        ), ...ghLine.lineDecorations] : [...ghLine.lineDecorations]\n      });\n    }\n  }\n  const textBufferLine = textModel.getLineContent(ghostText.lineNumber);\n  let hiddenTextStartColumn = void 0;\n  let lastIdx = 0;\n  for (const part of ghostText.parts) {\n    let ghLines = part.lines;\n    if (hiddenTextStartColumn === void 0) {\n      inlineTexts.push({ column: part.column, text: ghLines[0].line, preview: part.preview, lineDecorations: ghLines[0].lineDecorations });\n      ghLines = ghLines.slice(1);\n    } else {\n      addToAdditionalLines([{ line: textBufferLine.substring(lastIdx, part.column - 1), lineDecorations: [] }], void 0);\n    }\n    if (ghLines.length \u003e 0) {\n      addToAdditionalLines(ghLines, ghostTextClassName);\n      if (hiddenTextStartColumn === void 0 \u0026\u0026 part.column \u003c= textBufferLine.length) {\n        hiddenTextStartColumn = part.column;\n      }\n    }\n    lastIdx = part.column - 1;\n  }\n  let additionalLinesOriginalSuffix = void 0;\n  if (hiddenTextStartColumn !== void 0) {\n    additionalLinesOriginalSuffix = new RangeSingleLine(ghostText.lineNumber, new ColumnRange(lastIdx + 1, textBufferLine.length + 1));\n  }\n  const hiddenRange = hiddenTextStartColumn !== void 0 ? new ColumnRange(hiddenTextStartColumn, textBufferLine.length + 1) : void 0;\n  return {\n    inlineTexts,\n    additionalLines,\n    hiddenRange,\n    additionalLinesOriginalSuffix\n  };\n}\nvar AdditionalLinesWidget = class extends Disposable {\n  get viewZoneId() {\n    return this._viewZoneInfo?.viewZoneId;\n  }\n  get viewZoneHeight() {\n    return this._viewZoneHeight;\n  }\n  constructor(_editor, _lines, _shouldKeepCursorStable, _isClickable) {\n    super();\n    this._editor = _editor;\n    this._lines = _lines;\n    this._shouldKeepCursorStable = _shouldKeepCursorStable;\n    this._isClickable = _isClickable;\n    this._viewZoneHeight = observableValue(\"viewZoneHeight\", void 0);\n    this.editorOptionsChanged = observableSignalFromEvent(\"editorOptionChanged\", Event.filter(this._editor.onDidChangeConfiguration, (e) =\u003e e.hasChanged(\n      40\n      /* EditorOption.disableMonospaceOptimizations */\n    ) || e.hasChanged(\n      132\n      /* EditorOption.stopRenderingLineAfter */\n    ) || e.hasChanged(\n      112\n      /* EditorOption.renderWhitespace */\n    ) || e.hasChanged(\n      107\n      /* EditorOption.renderControlCharacters */\n    ) || e.hasChanged(\n      60\n      /* EditorOption.fontLigatures */\n    ) || e.hasChanged(\n      59\n      /* EditorOption.fontInfo */\n    ) || e.hasChanged(\n      75\n      /* EditorOption.lineHeight */\n    )));\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._viewZoneListener = this._register(new MutableDisposable());\n    this.isHovered = observableCodeEditor(this._editor).isTargetHovered((p) =\u003e isTargetGhostText(p.target.element), this._store);\n    this.hasBeenAccepted = false;\n    if (this._editor instanceof CodeEditorWidget \u0026\u0026 this._shouldKeepCursorStable) {\n      this._register(this._editor.onBeforeExecuteEdit((e) =\u003e this.hasBeenAccepted = e.source === \"inlineSuggestion.accept\"));\n    }\n    this._register(autorun((reader) =\u003e {\n      const lines = this._lines.read(reader);\n      this.editorOptionsChanged.read(reader);\n      if (lines) {\n        this.hasBeenAccepted = false;\n        this.updateLines(lines.lineNumber, lines.additionalLines, lines.minReservedLineCount);\n      } else {\n        this.clear();\n      }\n    }));\n  }\n  dispose() {\n    super.dispose();\n    this.clear();\n  }\n  clear() {\n    this._viewZoneListener.clear();\n    this._editor.changeViewZones((changeAccessor) =\u003e {\n      this.removeActiveViewZone(changeAccessor);\n    });\n  }\n  updateLines(lineNumber, additionalLines, minReservedLineCount) {\n    const textModel = this._editor.getModel();\n    if (!textModel) {\n      return;\n    }\n    const { tabSize } = textModel.getOptions();\n    this._editor.changeViewZones((changeAccessor) =\u003e {\n      const store = new DisposableStore();\n      this.removeActiveViewZone(changeAccessor);\n      const heightInLines = Math.max(additionalLines.length, minReservedLineCount);\n      if (heightInLines \u003e 0) {\n        const domNode = document.createElement(\"div\");\n        renderLines2(domNode, tabSize, additionalLines, this._editor.getOptions(), this._isClickable);\n        if (this._isClickable) {\n          store.add(addDisposableListener(domNode, \"mousedown\", (e) =\u003e {\n            e.preventDefault();\n          }));\n          store.add(addDisposableListener(domNode, \"click\", (e) =\u003e {\n            if (isTargetGhostText(e.target)) {\n              this._onDidClick.fire(new StandardMouseEvent(getWindow(e), e));\n            }\n          }));\n        }\n        this.addViewZone(changeAccessor, lineNumber, heightInLines, domNode);\n      }\n      this._viewZoneListener.value = store;\n    });\n  }\n  addViewZone(changeAccessor, afterLineNumber, heightInLines, domNode) {\n    const id = changeAccessor.addZone({\n      afterLineNumber,\n      heightInLines,\n      domNode,\n      afterColumnAffinity: 1,\n      onComputedHeight: (height) =\u003e {\n        this._viewZoneHeight.set(height, void 0);\n      }\n    });\n    this.keepCursorStable(afterLineNumber, heightInLines);\n    this._viewZoneInfo = { viewZoneId: id, heightInLines, lineNumber: afterLineNumber };\n  }\n  removeActiveViewZone(changeAccessor) {\n    if (this._viewZoneInfo) {\n      changeAccessor.removeZone(this._viewZoneInfo.viewZoneId);\n      if (!this.hasBeenAccepted) {\n        this.keepCursorStable(this._viewZoneInfo.lineNumber, -this._viewZoneInfo.heightInLines);\n      }\n      this._viewZoneInfo = void 0;\n      this._viewZoneHeight.set(void 0, void 0);\n    }\n  }\n  keepCursorStable(lineNumber, heightInLines) {\n    if (!this._shouldKeepCursorStable) {\n      return;\n    }\n    const cursorLineNumber = this._editor.getSelection()?.getStartPosition()?.lineNumber;\n    if (cursorLineNumber !== void 0 \u0026\u0026 lineNumber \u003c cursorLineNumber) {\n      this._editor.setScrollTop(this._editor.getScrollTop() + heightInLines * this._editor.getOption(\n        75\n        /* EditorOption.lineHeight */\n      ));\n    }\n  }\n};\nfunction isTargetGhostText(target) {\n  return isHTMLElement(target) \u0026\u0026 target.classList.contains(GHOST_TEXT_CLASS_NAME);\n}\nfunction renderLines2(domNode, tabSize, lines, opts, isClickable) {\n  const disableMonospaceOptimizations = opts.get(\n    40\n    /* EditorOption.disableMonospaceOptimizations */\n  );\n  const stopRenderingLineAfter = opts.get(\n    132\n    /* EditorOption.stopRenderingLineAfter */\n  );\n  const renderWhitespace = \"none\";\n  const renderControlCharacters = opts.get(\n    107\n    /* EditorOption.renderControlCharacters */\n  );\n  const fontLigatures = opts.get(\n    60\n    /* EditorOption.fontLigatures */\n  );\n  const fontInfo = opts.get(\n    59\n    /* EditorOption.fontInfo */\n  );\n  const lineHeight = opts.get(\n    75\n    /* EditorOption.lineHeight */\n  );\n  let classNames2 = \"suggest-preview-text\";\n  if (isClickable) {\n    classNames2 += \" clickable\";\n  }\n  const sb = new StringBuilder(1e4);\n  sb.appendString(`\u003cdiv class=\"${classNames2}\"\u003e`);\n  for (let i2 = 0, len = lines.length; i2 \u003c len; i2++) {\n    const lineData = lines[i2];\n    const lineTokens = lineData.content;\n    sb.appendString('\u003cdiv class=\"view-line');\n    sb.appendString('\" style=\"top:');\n    sb.appendString(String(i2 * lineHeight));\n    sb.appendString('px;width:1000000px;\"\u003e');\n    const line = lineTokens.getLineContent();\n    const isBasicASCII2 = isBasicASCII(line);\n    const containsRTL2 = containsRTL(line);\n    renderViewLine(new RenderLineInput(fontInfo.isMonospace \u0026\u0026 !disableMonospaceOptimizations, fontInfo.canUseHalfwidthRightwardsArrow, line, false, isBasicASCII2, containsRTL2, 0, lineTokens, lineData.decorations, tabSize, 0, fontInfo.spaceWidth, fontInfo.middotWidth, fontInfo.wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures !== EditorFontLigatures.OFF, null, null, 0), sb);\n    sb.appendString(\"\u003c/div\u003e\");\n  }\n  sb.appendString(\"\u003c/div\u003e\");\n  applyFontInfo(domNode, fontInfo);\n  const html3 = sb.build();\n  const trustedhtml = ttPolicy4 ? ttPolicy4.createHTML(html3) : html3;\n  domNode.innerHTML = trustedhtml;\n}\nvar ttPolicy4 = createTrustedTypesPolicy(\"editorGhostText\", { createHTML: (value) =\u003e value });\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\ninit_observableCodeEditor();\ninit_lineRange();\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/edits/lineEdit.js\ninit_assert();\ninit_strings();\ninit_lineRange();\ninit_position();\ninit_range();\nvar LineEdit = class _LineEdit {\n  static {\n    this.empty = new _LineEdit([]);\n  }\n  constructor(replacements) {\n    this.replacements = replacements;\n    assert(checkAdjacentItems(replacements, (i1, i2) =\u003e i1.lineRange.endLineNumberExclusive \u003c= i2.lineRange.startLineNumber));\n  }\n  toString() {\n    return this.replacements.map((e) =\u003e e.toString()).join(\",\");\n  }\n  getNewLineRanges() {\n    const ranges = [];\n    let offset = 0;\n    for (const e of this.replacements) {\n      ranges.push(LineRange.ofLength(e.lineRange.startLineNumber + offset, e.newLines.length));\n      offset += e.newLines.length - e.lineRange.length;\n    }\n    return ranges;\n  }\n};\nvar LineReplacement = class _LineReplacement {\n  static fromSingleTextEdit(edit2, initialValue) {\n    const newLines = splitLines(edit2.text);\n    let startLineNumber = edit2.range.startLineNumber;\n    const survivingFirstLineText = initialValue.getValueOfRange(Range.fromPositions(new Position(edit2.range.startLineNumber, 1), edit2.range.getStartPosition()));\n    newLines[0] = survivingFirstLineText + newLines[0];\n    let endLineNumberEx = edit2.range.endLineNumber + 1;\n    const editEndLineNumberMaxColumn = initialValue.getTransformer().getLineLength(edit2.range.endLineNumber) + 1;\n    const survivingEndLineText = initialValue.getValueOfRange(Range.fromPositions(edit2.range.getEndPosition(), new Position(edit2.range.endLineNumber, editEndLineNumberMaxColumn)));\n    newLines[newLines.length - 1] = newLines[newLines.length - 1] + survivingEndLineText;\n    const startBeforeNewLine = edit2.range.startColumn === initialValue.getTransformer().getLineLength(edit2.range.startLineNumber) + 1;\n    const endAfterNewLine = edit2.range.endColumn === 1;\n    if (startBeforeNewLine \u0026\u0026 newLines[0].length === survivingFirstLineText.length) {\n      startLineNumber++;\n      newLines.shift();\n    }\n    if (newLines.length \u003e 0 \u0026\u0026 startLineNumber \u003c endLineNumberEx \u0026\u0026 endAfterNewLine \u0026\u0026 newLines[newLines.length - 1].length === survivingEndLineText.length) {\n      endLineNumberEx--;\n      newLines.pop();\n    }\n    return new _LineReplacement(new LineRange(startLineNumber, endLineNumberEx), newLines);\n  }\n  constructor(lineRange, newLines) {\n    this.lineRange = lineRange;\n    this.newLines = newLines;\n  }\n  toString() {\n    return `${this.lineRange}-\u003e${JSON.stringify(this.newLines)}`;\n  }\n  toLineEdit() {\n    return new LineEdit([this]);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js\ninit_lineRange();\nvar InlineEditWithChanges = class {\n  get lineEdit() {\n    return LineReplacement.fromSingleTextEdit(this.edit.toReplacement(this.originalText), this.originalText);\n  }\n  get originalLineRange() {\n    return this.lineEdit.lineRange;\n  }\n  get modifiedLineRange() {\n    return this.lineEdit.toLineEdit().getNewLineRanges()[0];\n  }\n  get displayRange() {\n    return this.originalText.lineRange.intersect(this.originalLineRange.join(LineRange.ofLength(this.originalLineRange.startLineNumber, this.lineEdit.newLines.length)));\n  }\n  constructor(originalText, edit2, cursorPosition, commands, inlineCompletion) {\n    this.originalText = originalText;\n    this.edit = edit2;\n    this.cursorPosition = cursorPosition;\n    this.commands = commands;\n    this.inlineCompletion = inlineCompletion;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js\ninit_observable();\ninit_nls();\ninit_observableCodeEditor();\nvar InlineEditModel = class {\n  constructor(_model, inlineEdit, tabAction) {\n    this._model = _model;\n    this.inlineEdit = inlineEdit;\n    this.tabAction = tabAction;\n    this.action = this.inlineEdit.inlineCompletion.action;\n    this.displayName = this.inlineEdit.inlineCompletion.source.provider.displayName ?? localize(1206, \"Inline Edit\");\n    this.extensionCommands = this.inlineEdit.inlineCompletion.source.inlineSuggestions.commands ?? [];\n    this.isInDiffEditor = this._model.isInDiffEditor;\n    this.displayLocation = this.inlineEdit.inlineCompletion.displayLocation;\n    this.showCollapsed = this._model.showCollapsed;\n  }\n  accept() {\n    this._model.accept();\n  }\n  jump() {\n    this._model.jump();\n  }\n  abort(reason) {\n    console.error(reason);\n    this.inlineEdit.inlineCompletion.reportInlineEditError(reason);\n    this._model.stop();\n  }\n  handleInlineEditShown(viewKind, viewData) {\n    this._model.handleInlineSuggestionShown(this.inlineEdit.inlineCompletion, viewKind, viewData);\n  }\n};\nvar InlineEditHost = class {\n  constructor(_model) {\n    this._model = _model;\n    this.onDidAccept = this._model.onDidAccept;\n    this.inAcceptFlow = this._model.inAcceptFlow;\n  }\n};\nvar GhostTextIndicator = class {\n  constructor(editor2, model, lineRange, inlineCompletion) {\n    this.lineRange = lineRange;\n    const editorObs = observableCodeEditor(editor2);\n    const tabAction = derived(this, (reader) =\u003e {\n      if (editorObs.isFocused.read(reader)) {\n        if (inlineCompletion.showInlineEditMenu) {\n          return InlineEditTabAction.Accept;\n        }\n      }\n      return InlineEditTabAction.Inactive;\n    });\n    this.model = new InlineEditModel(model, new InlineEditWithChanges(new StringText(\"\"), new TextEdit([inlineCompletion.getSingleTextEdit()]), model.primaryPosition.get(), inlineCompletion.source.inlineSuggestions.commands ?? [], inlineCompletion), tabAction);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js\ninit_equals();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\ninit_observableCodeEditor();\ninit_lineRange();\ninit_range();\ninit_textLength();\ninit_textModel();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js\ninit_dom();\ninit_iconLabels2();\ninit_codicons();\ninit_errors();\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\ninit_colorUtils();\ninit_themeService();\ninit_point();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/core/2d/rect.js\ninit_errors();\ninit_point();\nvar Rect = class _Rect {\n  static fromPoints(topLeft, bottomRight) {\n    return new _Rect(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y);\n  }\n  static fromPointSize(point, size2) {\n    return new _Rect(point.x, point.y, point.x + size2.x, point.y + size2.y);\n  }\n  static fromLeftTopRightBottom(left, top, right, bottom) {\n    return new _Rect(left, top, right, bottom);\n  }\n  static fromLeftTopWidthHeight(left, top, width2, height) {\n    return new _Rect(left, top, left + width2, top + height);\n  }\n  static fromRanges(leftRight, topBottom) {\n    return new _Rect(leftRight.start, topBottom.start, leftRight.endExclusive, topBottom.endExclusive);\n  }\n  static hull(rects) {\n    let left = Number.MAX_SAFE_INTEGER;\n    let top = Number.MAX_SAFE_INTEGER;\n    let right = Number.MIN_SAFE_INTEGER;\n    let bottom = Number.MIN_SAFE_INTEGER;\n    for (const rect of rects) {\n      left = Math.min(left, rect.left);\n      top = Math.min(top, rect.top);\n      right = Math.max(right, rect.right);\n      bottom = Math.max(bottom, rect.bottom);\n    }\n    return new _Rect(left, top, right, bottom);\n  }\n  get width() {\n    return this.right - this.left;\n  }\n  get height() {\n    return this.bottom - this.top;\n  }\n  constructor(left, top, right, bottom) {\n    this.left = left;\n    this.top = top;\n    this.right = right;\n    this.bottom = bottom;\n    if (left \u003e right) {\n      throw new BugIndicatingError(\"Invalid arguments: Horizontally offset by \" + (left - right));\n    }\n    if (top \u003e bottom) {\n      throw new BugIndicatingError(\"Invalid arguments: Vertically offset by \" + (top - bottom));\n    }\n  }\n  withMargin(marginOrVerticalOrTop, rightOrHorizontal, bottom, left) {\n    let marginLeft, marginRight, marginTop, marginBottom;\n    if (rightOrHorizontal === void 0 \u0026\u0026 bottom === void 0 \u0026\u0026 left === void 0) {\n      marginLeft = marginRight = marginTop = marginBottom = marginOrVerticalOrTop;\n    } else if (bottom === void 0 \u0026\u0026 left === void 0) {\n      marginLeft = marginRight = rightOrHorizontal;\n      marginTop = marginBottom = marginOrVerticalOrTop;\n    } else {\n      marginLeft = left;\n      marginRight = rightOrHorizontal;\n      marginTop = marginOrVerticalOrTop;\n      marginBottom = bottom;\n    }\n    return new _Rect(this.left - marginLeft, this.top - marginTop, this.right + marginRight, this.bottom + marginBottom);\n  }\n  intersectVertical(range2) {\n    const newTop = Math.max(this.top, range2.start);\n    const newBottom = Math.min(this.bottom, range2.endExclusive);\n    return new _Rect(this.left, newTop, this.right, Math.max(newTop, newBottom));\n  }\n  intersectHorizontal(range2) {\n    const newLeft = Math.max(this.left, range2.start);\n    const newRight = Math.min(this.right, range2.endExclusive);\n    return new _Rect(newLeft, this.top, Math.max(newLeft, newRight), this.bottom);\n  }\n  toString() {\n    return `Rect{(${this.left},${this.top}), (${this.right},${this.bottom})}`;\n  }\n  intersect(parent) {\n    const left = Math.max(this.left, parent.left);\n    const right = Math.min(this.right, parent.right);\n    const top = Math.max(this.top, parent.top);\n    const bottom = Math.min(this.bottom, parent.bottom);\n    if (left \u003e right || top \u003e bottom) {\n      return void 0;\n    }\n    return new _Rect(left, top, right, bottom);\n  }\n  containsRect(other) {\n    return this.left \u003c= other.left \u0026\u0026 this.top \u003c= other.top \u0026\u0026 this.right \u003e= other.right \u0026\u0026 this.bottom \u003e= other.bottom;\n  }\n  containsPoint(point) {\n    return this.left \u003c= point.x \u0026\u0026 this.top \u003c= point.y \u0026\u0026 this.right \u003e= point.x \u0026\u0026 this.bottom \u003e= point.y;\n  }\n  moveToBeContainedIn(parent) {\n    const width2 = this.width;\n    const height = this.height;\n    let left = this.left;\n    let top = this.top;\n    if (left \u003c parent.left) {\n      left = parent.left;\n    } else if (left + width2 \u003e parent.right) {\n      left = parent.right - width2;\n    }\n    if (top \u003c parent.top) {\n      top = parent.top;\n    } else if (top + height \u003e parent.bottom) {\n      top = parent.bottom - height;\n    }\n    return new _Rect(left, top, left + width2, top + height);\n  }\n  withWidth(width2) {\n    return new _Rect(this.left, this.top, this.left + width2, this.bottom);\n  }\n  withHeight(height) {\n    return new _Rect(this.left, this.top, this.right, this.top + height);\n  }\n  withTop(top) {\n    return new _Rect(this.left, top, this.right, this.bottom);\n  }\n  withLeft(left) {\n    return new _Rect(left, this.top, this.right, this.bottom);\n  }\n  translateX(delta) {\n    return new _Rect(this.left + delta, this.top, this.right + delta, this.bottom);\n  }\n  translateY(delta) {\n    return new _Rect(this.left, this.top + delta, this.right, this.bottom + delta);\n  }\n  getLeftBottom() {\n    return new Point(this.left, this.bottom);\n  }\n  getRightBottom() {\n    return new Point(this.right, this.bottom);\n  }\n  getRightTop() {\n    return new Point(this.right, this.top);\n  }\n  toStyles() {\n    return {\n      position: \"absolute\",\n      left: `${this.left}px`,\n      top: `${this.top}px`,\n      width: `${this.width}px`,\n      height: `${this.height}px`\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js\ninit_offsetRange();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js\ninit_lifecycle();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js\ninit_dom();\ninit_arrays();\ninit_lifecycle();\ninit_themables();\ninit_position();\ninit_stringBuilder();\ninit_event();\nvar StickyScrollWidgetState = class _StickyScrollWidgetState {\n  constructor(startLineNumbers, endLineNumbers, lastLineRelativePosition, showEndForLine = null) {\n    this.startLineNumbers = startLineNumbers;\n    this.endLineNumbers = endLineNumbers;\n    this.lastLineRelativePosition = lastLineRelativePosition;\n    this.showEndForLine = showEndForLine;\n  }\n  equals(other) {\n    return !!other \u0026\u0026 this.lastLineRelativePosition === other.lastLineRelativePosition \u0026\u0026 this.showEndForLine === other.showEndForLine \u0026\u0026 equals(this.startLineNumbers, other.startLineNumbers) \u0026\u0026 equals(this.endLineNumbers, other.endLineNumbers);\n  }\n  static get Empty() {\n    return new _StickyScrollWidgetState([], [], 0);\n  }\n};\nvar _ttPolicy = createTrustedTypesPolicy(\"stickyScrollViewLayer\", { createHTML: (value) =\u003e value });\nvar STICKY_INDEX_ATTR = \"data-sticky-line-index\";\nvar STICKY_IS_LINE_ATTR = \"data-sticky-is-line\";\nvar STICKY_IS_LINE_NUMBER_ATTR = \"data-sticky-is-line-number\";\nvar STICKY_IS_FOLDING_ICON_ATTR = \"data-sticky-is-folding-icon\";\nvar StickyScrollWidget2 = class extends Disposable {\n  get height() {\n    return this._height;\n  }\n  constructor(editor2) {\n    super();\n    this._foldingIconStore = new DisposableStore();\n    this._rootDomNode = document.createElement(\"div\");\n    this._lineNumbersDomNode = document.createElement(\"div\");\n    this._linesDomNodeScrollable = document.createElement(\"div\");\n    this._linesDomNode = document.createElement(\"div\");\n    this._renderedStickyLines = [];\n    this._lineNumbers = [];\n    this._lastLineRelativePosition = 0;\n    this._minContentWidthInPx = 0;\n    this._isOnGlyphMargin = false;\n    this._height = -1;\n    this._onDidChangeStickyScrollHeight = this._register(new Emitter());\n    this.onDidChangeStickyScrollHeight = this._onDidChangeStickyScrollHeight.event;\n    this._editor = editor2;\n    this._lineHeight = editor2.getOption(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._lineNumbersDomNode.className = \"sticky-widget-line-numbers\";\n    this._lineNumbersDomNode.setAttribute(\"role\", \"none\");\n    this._linesDomNode.className = \"sticky-widget-lines\";\n    this._linesDomNode.setAttribute(\"role\", \"list\");\n    this._linesDomNodeScrollable.className = \"sticky-widget-lines-scrollable\";\n    this._linesDomNodeScrollable.appendChild(this._linesDomNode);\n    this._rootDomNode.className = \"sticky-widget\";\n    this._rootDomNode.classList.toggle(\"peek\", editor2 instanceof EmbeddedCodeEditorWidget);\n    this._rootDomNode.appendChild(this._lineNumbersDomNode);\n    this._rootDomNode.appendChild(this._linesDomNodeScrollable);\n    this._setHeight(0);\n    const updateScrollLeftPosition = () =\u003e {\n      this._linesDomNode.style.left = this._editor.getOption(\n        130\n        /* EditorOption.stickyScroll */\n      ).scrollWithEditor ? `-${this._editor.getScrollLeft()}px` : \"0px\";\n    };\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        130\n        /* EditorOption.stickyScroll */\n      )) {\n        updateScrollLeftPosition();\n      }\n      if (e.hasChanged(\n        75\n        /* EditorOption.lineHeight */\n      )) {\n        this._lineHeight = this._editor.getOption(\n          75\n          /* EditorOption.lineHeight */\n        );\n      }\n    }));\n    this._register(this._editor.onDidScrollChange((e) =\u003e {\n      if (e.scrollLeftChanged) {\n        updateScrollLeftPosition();\n      }\n      if (e.scrollWidthChanged) {\n        this._updateWidgetWidth();\n      }\n    }));\n    this._register(this._editor.onDidChangeModel(() =\u003e {\n      updateScrollLeftPosition();\n      this._updateWidgetWidth();\n    }));\n    this._register(this._foldingIconStore);\n    updateScrollLeftPosition();\n    this._register(this._editor.onDidLayoutChange((e) =\u003e {\n      this._updateWidgetWidth();\n    }));\n    this._updateWidgetWidth();\n  }\n  get lineNumbers() {\n    return this._lineNumbers;\n  }\n  get lineNumberCount() {\n    return this._lineNumbers.length;\n  }\n  getRenderedStickyLine(lineNumber) {\n    return this._renderedStickyLines.find((stickyLine) =\u003e stickyLine.lineNumber === lineNumber);\n  }\n  getCurrentLines() {\n    return this._lineNumbers;\n  }\n  setState(state, foldingModel, rebuildFromIndexCandidate) {\n    const currentStateAndPreviousStateUndefined = !this._state \u0026\u0026 !state;\n    const currentStateDefinedAndEqualsPreviousState = this._state \u0026\u0026 this._state.equals(state);\n    if (rebuildFromIndexCandidate === void 0 \u0026\u0026 (currentStateAndPreviousStateUndefined || currentStateDefinedAndEqualsPreviousState)) {\n      return;\n    }\n    const data = this._findRenderingData(state);\n    const previousLineNumbers = this._lineNumbers;\n    this._lineNumbers = data.lineNumbers;\n    this._lastLineRelativePosition = data.lastLineRelativePosition;\n    const rebuildFromIndex = this._findIndexToRebuildFrom(previousLineNumbers, this._lineNumbers, rebuildFromIndexCandidate);\n    this._renderRootNode(this._lineNumbers, this._lastLineRelativePosition, foldingModel, rebuildFromIndex);\n    this._state = state;\n  }\n  _findRenderingData(state) {\n    if (!state) {\n      return { lineNumbers: [], lastLineRelativePosition: 0 };\n    }\n    const candidateLineNumbers = [...state.startLineNumbers];\n    if (state.showEndForLine !== null) {\n      candidateLineNumbers[state.showEndForLine] = state.endLineNumbers[state.showEndForLine];\n    }\n    let totalHeight = 0;\n    for (let i2 = 0; i2 \u003c candidateLineNumbers.length; i2++) {\n      totalHeight += this._editor.getLineHeightForPosition(new Position(candidateLineNumbers[i2], 1));\n    }\n    if (totalHeight === 0) {\n      return { lineNumbers: [], lastLineRelativePosition: 0 };\n    }\n    return { lineNumbers: candidateLineNumbers, lastLineRelativePosition: state.lastLineRelativePosition };\n  }\n  _findIndexToRebuildFrom(previousLineNumbers, newLineNumbers, rebuildFromIndexCandidate) {\n    if (newLineNumbers.length === 0) {\n      return 0;\n    }\n    if (rebuildFromIndexCandidate !== void 0) {\n      return rebuildFromIndexCandidate;\n    }\n    const validIndex = newLineNumbers.findIndex((startLineNumber) =\u003e !previousLineNumbers.includes(startLineNumber));\n    return validIndex === -1 ? 0 : validIndex;\n  }\n  _updateWidgetWidth() {\n    const layoutInfo = this._editor.getLayoutInfo();\n    const lineNumbersWidth = layoutInfo.contentLeft;\n    this._lineNumbersDomNode.style.width = `${lineNumbersWidth}px`;\n    this._linesDomNodeScrollable.style.setProperty(\"--vscode-editorStickyScroll-scrollableWidth\", `${this._editor.getScrollWidth() - layoutInfo.verticalScrollbarWidth}px`);\n    this._rootDomNode.style.width = `${layoutInfo.width - layoutInfo.verticalScrollbarWidth}px`;\n  }\n  _useFoldingOpacityTransition(requireTransitions) {\n    this._lineNumbersDomNode.style.setProperty(\"--vscode-editorStickyScroll-foldingOpacityTransition\", `opacity ${requireTransitions ? 0.5 : 0}s`);\n  }\n  _setFoldingIconsVisibility(allVisible) {\n    for (const line of this._renderedStickyLines) {\n      const foldingIcon = line.foldingIcon;\n      if (!foldingIcon) {\n        continue;\n      }\n      foldingIcon.setVisible(allVisible ? true : foldingIcon.isCollapsed);\n    }\n  }\n  async _renderRootNode(lineNumbers, lastLineRelativePosition, foldingModel, rebuildFromIndex) {\n    const viewModel = this._editor._getViewModel();\n    if (!viewModel) {\n      this._clearWidget();\n      return;\n    }\n    if (lineNumbers.length === 0) {\n      this._clearWidget();\n      return;\n    }\n    const renderedStickyLines = [];\n    const lastLineNumber = lineNumbers[lineNumbers.length - 1];\n    let top = 0;\n    for (let i2 = 0; i2 \u003c this._renderedStickyLines.length; i2++) {\n      if (i2 \u003c rebuildFromIndex) {\n        const renderedLine = this._renderedStickyLines[i2];\n        renderedStickyLines.push(this._updatePosition(renderedLine, top, renderedLine.lineNumber === lastLineNumber));\n        top += renderedLine.height;\n      } else {\n        const renderedLine = this._renderedStickyLines[i2];\n        renderedLine.lineNumberDomNode.remove();\n        renderedLine.lineDomNode.remove();\n      }\n    }\n    const layoutInfo = this._editor.getLayoutInfo();\n    for (let i2 = rebuildFromIndex; i2 \u003c lineNumbers.length; i2++) {\n      const stickyLine = this._renderChildNode(viewModel, i2, lineNumbers[i2], top, lastLineNumber === lineNumbers[i2], foldingModel, layoutInfo);\n      top += stickyLine.height;\n      this._linesDomNode.appendChild(stickyLine.lineDomNode);\n      this._lineNumbersDomNode.appendChild(stickyLine.lineNumberDomNode);\n      renderedStickyLines.push(stickyLine);\n    }\n    if (foldingModel) {\n      this._setFoldingHoverListeners();\n      this._useFoldingOpacityTransition(!this._isOnGlyphMargin);\n    }\n    this._minContentWidthInPx = Math.max(...this._renderedStickyLines.map((l) =\u003e l.scrollWidth)) + layoutInfo.verticalScrollbarWidth;\n    this._renderedStickyLines = renderedStickyLines;\n    this._setHeight(top + lastLineRelativePosition);\n    this._editor.layoutOverlayWidget(this);\n  }\n  _clearWidget() {\n    for (let i2 = 0; i2 \u003c this._renderedStickyLines.length; i2++) {\n      const stickyLine = this._renderedStickyLines[i2];\n      stickyLine.lineNumberDomNode.remove();\n      stickyLine.lineDomNode.remove();\n    }\n    this._setHeight(0);\n  }\n  _setHeight(height) {\n    if (this._height === height) {\n      return;\n    }\n    this._height = height;\n    if (this._height === 0) {\n      this._rootDomNode.style.display = \"none\";\n    } else {\n      this._rootDomNode.style.display = \"block\";\n      this._lineNumbersDomNode.style.height = `${this._height}px`;\n      this._linesDomNodeScrollable.style.height = `${this._height}px`;\n      this._rootDomNode.style.height = `${this._height}px`;\n    }\n    this._onDidChangeStickyScrollHeight.fire({ height: this._height });\n  }\n  _setFoldingHoverListeners() {\n    const showFoldingControls = this._editor.getOption(\n      125\n      /* EditorOption.showFoldingControls */\n    );\n    if (showFoldingControls !== \"mouseover\") {\n      return;\n    }\n    this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode, EventType.MOUSE_ENTER, () =\u003e {\n      this._isOnGlyphMargin = true;\n      this._setFoldingIconsVisibility(true);\n    }));\n    this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode, EventType.MOUSE_LEAVE, () =\u003e {\n      this._isOnGlyphMargin = false;\n      this._useFoldingOpacityTransition(true);\n      this._setFoldingIconsVisibility(false);\n    }));\n  }\n  _renderChildNode(viewModel, index, line, top, isLastLine, foldingModel, layoutInfo) {\n    const viewLineNumber = viewModel.coordinatesConverter.convertModelPositionToViewPosition(new Position(line, 1)).lineNumber;\n    const lineRenderingData = viewModel.getViewLineRenderingData(viewLineNumber);\n    const lineNumberOption = this._editor.getOption(\n      76\n      /* EditorOption.lineNumbers */\n    );\n    const verticalScrollbarSize = this._editor.getOption(\n      116\n      /* EditorOption.scrollbar */\n    ).verticalScrollbarSize;\n    let actualInlineDecorations;\n    try {\n      actualInlineDecorations = LineDecoration.filter(lineRenderingData.inlineDecorations, viewLineNumber, lineRenderingData.minColumn, lineRenderingData.maxColumn);\n    } catch (err) {\n      actualInlineDecorations = [];\n    }\n    const lineHeight = this._editor.getLineHeightForPosition(new Position(line, 1));\n    const textDirection = viewModel.getTextDirection(line);\n    const renderLineInput = new RenderLineInput(true, true, lineRenderingData.content, lineRenderingData.continuesWithWrappedLine, lineRenderingData.isBasicASCII, lineRenderingData.containsRTL, 0, lineRenderingData.tokens, actualInlineDecorations, lineRenderingData.tabSize, lineRenderingData.startVisibleColumn, 1, 1, 1, 500, \"none\", true, true, null, textDirection, verticalScrollbarSize);\n    const sb = new StringBuilder(2e3);\n    const renderOutput = renderViewLine(renderLineInput, sb);\n    let newLine;\n    if (_ttPolicy) {\n      newLine = _ttPolicy.createHTML(sb.build());\n    } else {\n      newLine = sb.build();\n    }\n    const lineHTMLNode = document.createElement(\"span\");\n    lineHTMLNode.setAttribute(STICKY_INDEX_ATTR, String(index));\n    lineHTMLNode.setAttribute(STICKY_IS_LINE_ATTR, \"\");\n    lineHTMLNode.setAttribute(\"role\", \"listitem\");\n    lineHTMLNode.tabIndex = 0;\n    lineHTMLNode.className = \"sticky-line-content\";\n    lineHTMLNode.classList.add(`stickyLine${line}`);\n    lineHTMLNode.style.lineHeight = `${lineHeight}px`;\n    lineHTMLNode.innerHTML = newLine;\n    const lineNumberHTMLNode = document.createElement(\"span\");\n    lineNumberHTMLNode.setAttribute(STICKY_INDEX_ATTR, String(index));\n    lineNumberHTMLNode.setAttribute(STICKY_IS_LINE_NUMBER_ATTR, \"\");\n    lineNumberHTMLNode.className = \"sticky-line-number\";\n    lineNumberHTMLNode.style.lineHeight = `${lineHeight}px`;\n    const lineNumbersWidth = layoutInfo.contentLeft;\n    lineNumberHTMLNode.style.width = `${lineNumbersWidth}px`;\n    const innerLineNumberHTML = document.createElement(\"span\");\n    if (lineNumberOption.renderType === 1 || lineNumberOption.renderType === 3 \u0026\u0026 line % 10 === 0) {\n      innerLineNumberHTML.innerText = line.toString();\n    } else if (lineNumberOption.renderType === 2) {\n      innerLineNumberHTML.innerText = Math.abs(line - this._editor.getPosition().lineNumber).toString();\n    }\n    innerLineNumberHTML.className = \"sticky-line-number-inner\";\n    innerLineNumberHTML.style.width = `${layoutInfo.lineNumbersWidth}px`;\n    innerLineNumberHTML.style.paddingLeft = `${layoutInfo.lineNumbersLeft}px`;\n    lineNumberHTMLNode.appendChild(innerLineNumberHTML);\n    const foldingIcon = this._renderFoldingIconForLine(foldingModel, line);\n    if (foldingIcon) {\n      lineNumberHTMLNode.appendChild(foldingIcon.domNode);\n      foldingIcon.domNode.style.left = `${layoutInfo.lineNumbersWidth + layoutInfo.lineNumbersLeft}px`;\n      foldingIcon.domNode.style.lineHeight = `${lineHeight}px`;\n    }\n    this._editor.applyFontInfo(lineHTMLNode);\n    this._editor.applyFontInfo(lineNumberHTMLNode);\n    lineNumberHTMLNode.style.lineHeight = `${lineHeight}px`;\n    lineHTMLNode.style.lineHeight = `${lineHeight}px`;\n    lineNumberHTMLNode.style.height = `${lineHeight}px`;\n    lineHTMLNode.style.height = `${lineHeight}px`;\n    const renderedLine = new RenderedStickyLine(index, line, lineHTMLNode, lineNumberHTMLNode, foldingIcon, renderOutput.characterMapping, lineHTMLNode.scrollWidth, lineHeight);\n    return this._updatePosition(renderedLine, top, isLastLine);\n  }\n  _updatePosition(stickyLine, top, isLastLine) {\n    const lineHTMLNode = stickyLine.lineDomNode;\n    const lineNumberHTMLNode = stickyLine.lineNumberDomNode;\n    if (isLastLine) {\n      const zIndex = \"0\";\n      lineHTMLNode.style.zIndex = zIndex;\n      lineNumberHTMLNode.style.zIndex = zIndex;\n      const updatedTop = `${top + this._lastLineRelativePosition + (stickyLine.foldingIcon?.isCollapsed ? 1 : 0)}px`;\n      lineHTMLNode.style.top = updatedTop;\n      lineNumberHTMLNode.style.top = updatedTop;\n    } else {\n      const zIndex = \"1\";\n      lineHTMLNode.style.zIndex = zIndex;\n      lineNumberHTMLNode.style.zIndex = zIndex;\n      lineHTMLNode.style.top = `${top}px`;\n      lineNumberHTMLNode.style.top = `${top}px`;\n    }\n    return stickyLine;\n  }\n  _renderFoldingIconForLine(foldingModel, line) {\n    const showFoldingControls = this._editor.getOption(\n      125\n      /* EditorOption.showFoldingControls */\n    );\n    if (!foldingModel || showFoldingControls === \"never\") {\n      return;\n    }\n    const foldingRegions = foldingModel.regions;\n    const indexOfFoldingRegion = foldingRegions.findRange(line);\n    const startLineNumber = foldingRegions.getStartLineNumber(indexOfFoldingRegion);\n    const isFoldingScope = line === startLineNumber;\n    if (!isFoldingScope) {\n      return;\n    }\n    const isCollapsed = foldingRegions.isCollapsed(indexOfFoldingRegion);\n    const foldingIcon = new StickyFoldingIcon(isCollapsed, startLineNumber, foldingRegions.getEndLineNumber(indexOfFoldingRegion), this._lineHeight);\n    foldingIcon.setVisible(this._isOnGlyphMargin ? true : isCollapsed || showFoldingControls === \"always\");\n    foldingIcon.domNode.setAttribute(STICKY_IS_FOLDING_ICON_ATTR, \"\");\n    return foldingIcon;\n  }\n  getId() {\n    return \"editor.contrib.stickyScrollWidget\";\n  }\n  getDomNode() {\n    return this._rootDomNode;\n  }\n  getPosition() {\n    return {\n      preference: 2,\n      stackOridinal: 10\n    };\n  }\n  getMinContentWidthInPx() {\n    return this._minContentWidthInPx;\n  }\n  focusLineWithIndex(index) {\n    if (0 \u003c= index \u0026\u0026 index \u003c this._renderedStickyLines.length) {\n      this._renderedStickyLines[index].lineDomNode.focus();\n    }\n  }\n  /**\n   * Given a leaf dom node, tries to find the editor position.\n   */\n  getEditorPositionFromNode(spanDomNode) {\n    if (!spanDomNode || spanDomNode.children.length \u003e 0) {\n      return null;\n    }\n    const renderedStickyLine = this._getRenderedStickyLineFromChildDomNode(spanDomNode);\n    if (!renderedStickyLine) {\n      return null;\n    }\n    const column = getColumnOfNodeOffset(renderedStickyLine.characterMapping, spanDomNode, 0);\n    return new Position(renderedStickyLine.lineNumber, column);\n  }\n  getLineNumberFromChildDomNode(domNode) {\n    return this._getRenderedStickyLineFromChildDomNode(domNode)?.lineNumber ?? null;\n  }\n  _getRenderedStickyLineFromChildDomNode(domNode) {\n    const index = this.getLineIndexFromChildDomNode(domNode);\n    if (index === null || index \u003c 0 || index \u003e= this._renderedStickyLines.length) {\n      return null;\n    }\n    return this._renderedStickyLines[index];\n  }\n  /**\n   * Given a child dom node, tries to find the line number attribute that was stored in the node.\n   * @returns the attribute value or null if none is found.\n   */\n  getLineIndexFromChildDomNode(domNode) {\n    const lineIndex = this._getAttributeValue(domNode, STICKY_INDEX_ATTR);\n    return lineIndex ? parseInt(lineIndex, 10) : null;\n  }\n  /**\n   * Given a child dom node, tries to find if it is (contained in) a sticky line.\n   * @returns a boolean.\n   */\n  isInStickyLine(domNode) {\n    const isInLine = this._getAttributeValue(domNode, STICKY_IS_LINE_ATTR);\n    return isInLine !== void 0;\n  }\n  /**\n   * Given a child dom node, tries to find if this dom node is (contained in) a sticky folding icon.\n   * @returns a boolean.\n   */\n  isInFoldingIconDomNode(domNode) {\n    const isInFoldingIcon = this._getAttributeValue(domNode, STICKY_IS_FOLDING_ICON_ATTR);\n    return isInFoldingIcon !== void 0;\n  }\n  /**\n   * Given the dom node, finds if it or its parent sequence contains the given attribute.\n   * @returns the attribute value or undefined.\n   */\n  _getAttributeValue(domNode, attribute) {\n    while (domNode \u0026\u0026 domNode !== this._rootDomNode) {\n      const line = domNode.getAttribute(attribute);\n      if (line !== null) {\n        return line;\n      }\n      domNode = domNode.parentElement;\n    }\n    return;\n  }\n};\nvar RenderedStickyLine = class {\n  constructor(index, lineNumber, lineDomNode, lineNumberDomNode, foldingIcon, characterMapping, scrollWidth, height) {\n    this.index = index;\n    this.lineNumber = lineNumber;\n    this.lineDomNode = lineDomNode;\n    this.lineNumberDomNode = lineNumberDomNode;\n    this.foldingIcon = foldingIcon;\n    this.characterMapping = characterMapping;\n    this.scrollWidth = scrollWidth;\n    this.height = height;\n  }\n};\nvar StickyFoldingIcon = class {\n  constructor(isCollapsed, foldingStartLine, foldingEndLine, dimension) {\n    this.isCollapsed = isCollapsed;\n    this.foldingStartLine = foldingStartLine;\n    this.foldingEndLine = foldingEndLine;\n    this.dimension = dimension;\n    this.domNode = document.createElement(\"div\");\n    this.domNode.style.width = `26px`;\n    this.domNode.style.height = `${dimension}px`;\n    this.domNode.style.lineHeight = `${dimension}px`;\n    this.domNode.className = ThemeIcon.asClassName(isCollapsed ? foldingCollapsedIcon : foldingExpandedIcon);\n  }\n  setVisible(visible) {\n    this.domNode.style.cursor = visible ? \"pointer\" : \"default\";\n    this.domNode.style.opacity = visible ? \"1\" : \"0\";\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js\ninit_lifecycle();\ninit_languageFeatures();\ninit_cancellation();\ninit_async();\ninit_arrays();\ninit_event();\ninit_languageConfigurationRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider.js\ninit_lifecycle();\ninit_languageFeatures();\ninit_outlineModel();\ninit_async();\ninit_languageConfigurationRegistry();\ninit_errors();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollElement.js\nvar StickyRange = class {\n  constructor(startLineNumber, endLineNumber) {\n    this.startLineNumber = startLineNumber;\n    this.endLineNumber = endLineNumber;\n  }\n};\nvar StickyElement = class {\n  constructor(range2, children, parent) {\n    this.range = range2;\n    this.children = children;\n    this.parent = parent;\n  }\n};\nvar StickyModel = class {\n  constructor(uri, version, element, outlineProviderId) {\n    this.uri = uri;\n    this.version = version;\n    this.element = element;\n    this.outlineProviderId = outlineProviderId;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider.js\ninit_iterator();\ninit_instantiation();\nvar __decorate110 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param104 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ModelProvider;\n(function(ModelProvider2) {\n  ModelProvider2[\"OUTLINE_MODEL\"] = \"outlineModel\";\n  ModelProvider2[\"FOLDING_PROVIDER_MODEL\"] = \"foldingProviderModel\";\n  ModelProvider2[\"INDENTATION_MODEL\"] = \"indentationModel\";\n})(ModelProvider || (ModelProvider = {}));\nvar Status;\n(function(Status2) {\n  Status2[Status2[\"VALID\"] = 0] = \"VALID\";\n  Status2[Status2[\"INVALID\"] = 1] = \"INVALID\";\n  Status2[Status2[\"CANCELED\"] = 2] = \"CANCELED\";\n})(Status || (Status = {}));\nvar StickyModelProvider = class StickyModelProvider2 extends Disposable {\n  constructor(_editor, onProviderUpdate, _languageConfigurationService, _languageFeaturesService) {\n    super();\n    this._editor = _editor;\n    this._modelProviders = [];\n    this._modelPromise = null;\n    this._updateScheduler = this._register(new Delayer(300));\n    this._updateOperation = this._register(new DisposableStore());\n    switch (this._editor.getOption(\n      130\n      /* EditorOption.stickyScroll */\n    ).defaultModel) {\n      case ModelProvider.OUTLINE_MODEL:\n        this._modelProviders.push(new StickyModelFromCandidateOutlineProvider(this._editor, _languageFeaturesService));\n      // fall through\n      case ModelProvider.FOLDING_PROVIDER_MODEL:\n        this._modelProviders.push(new StickyModelFromCandidateSyntaxFoldingProvider(this._editor, onProviderUpdate, _languageFeaturesService));\n      // fall through\n      case ModelProvider.INDENTATION_MODEL:\n        this._modelProviders.push(new StickyModelFromCandidateIndentationFoldingProvider(this._editor, _languageConfigurationService));\n        break;\n    }\n  }\n  dispose() {\n    this._modelProviders.forEach((provider) =\u003e provider.dispose());\n    this._updateOperation.clear();\n    this._cancelModelPromise();\n    super.dispose();\n  }\n  _cancelModelPromise() {\n    if (this._modelPromise) {\n      this._modelPromise.cancel();\n      this._modelPromise = null;\n    }\n  }\n  async update(token) {\n    this._updateOperation.clear();\n    this._updateOperation.add({\n      dispose: () =\u003e {\n        this._cancelModelPromise();\n        this._updateScheduler.cancel();\n      }\n    });\n    this._cancelModelPromise();\n    return await this._updateScheduler.trigger(async () =\u003e {\n      for (const modelProvider of this._modelProviders) {\n        const { statusPromise, modelPromise } = modelProvider.computeStickyModel(token);\n        this._modelPromise = modelPromise;\n        const status2 = await statusPromise;\n        if (this._modelPromise !== modelPromise) {\n          return null;\n        }\n        switch (status2) {\n          case Status.CANCELED:\n            this._updateOperation.clear();\n            return null;\n          case Status.VALID:\n            return modelProvider.stickyModel;\n        }\n      }\n      return null;\n    }).catch((error) =\u003e {\n      onUnexpectedError(error);\n      return null;\n    });\n  }\n};\nStickyModelProvider = __decorate110([\n  __param104(2, IInstantiationService),\n  __param104(3, ILanguageFeaturesService)\n], StickyModelProvider);\nvar StickyModelCandidateProvider = class extends Disposable {\n  constructor(_editor) {\n    super();\n    this._editor = _editor;\n    this._stickyModel = null;\n  }\n  get stickyModel() {\n    return this._stickyModel;\n  }\n  _invalid() {\n    this._stickyModel = null;\n    return Status.INVALID;\n  }\n  computeStickyModel(token) {\n    if (token.isCancellationRequested || !this.isProviderValid()) {\n      return { statusPromise: this._invalid(), modelPromise: null };\n    }\n    const providerModelPromise = createCancelablePromise((token2) =\u003e this.createModelFromProvider(token2));\n    return {\n      statusPromise: providerModelPromise.then((providerModel) =\u003e {\n        if (!this.isModelValid(providerModel)) {\n          return this._invalid();\n        }\n        if (token.isCancellationRequested) {\n          return Status.CANCELED;\n        }\n        this._stickyModel = this.createStickyModel(token, providerModel);\n        return Status.VALID;\n      }).then(void 0, (err) =\u003e {\n        onUnexpectedError(err);\n        return Status.CANCELED;\n      }),\n      modelPromise: providerModelPromise\n    };\n  }\n  /**\n   * Method which checks whether the model returned by the provider is valid and can be used to compute a sticky model.\n   * This method by default returns true.\n   * @param model model returned by the provider\n   * @returns boolean indicating whether the model is valid\n   */\n  isModelValid(model) {\n    return true;\n  }\n  /**\n   * Method which checks whether the provider is valid before applying it to find the provider model.\n   * This method by default returns true.\n   * @returns boolean indicating whether the provider is valid\n   */\n  isProviderValid() {\n    return true;\n  }\n};\nvar StickyModelFromCandidateOutlineProvider = class StickyModelFromCandidateOutlineProvider2 extends StickyModelCandidateProvider {\n  constructor(_editor, _languageFeaturesService) {\n    super(_editor);\n    this._languageFeaturesService = _languageFeaturesService;\n  }\n  createModelFromProvider(token) {\n    return OutlineModel.create(this._languageFeaturesService.documentSymbolProvider, this._editor.getModel(), token);\n  }\n  createStickyModel(token, model) {\n    const { stickyOutlineElement, providerID } = this._stickyModelFromOutlineModel(model, this._stickyModel?.outlineProviderId);\n    const textModel = this._editor.getModel();\n    return new StickyModel(textModel.uri, textModel.getVersionId(), stickyOutlineElement, providerID);\n  }\n  isModelValid(model) {\n    return model \u0026\u0026 model.children.size \u003e 0;\n  }\n  _stickyModelFromOutlineModel(outlineModel, preferredProvider) {\n    let outlineElements;\n    if (Iterable.first(outlineModel.children.values()) instanceof OutlineGroup) {\n      const provider = Iterable.find(outlineModel.children.values(), (outlineGroupOfModel) =\u003e outlineGroupOfModel.id === preferredProvider);\n      if (provider) {\n        outlineElements = provider.children;\n      } else {\n        let tempID = \"\";\n        let maxTotalSumOfRanges = -1;\n        let optimalOutlineGroup = void 0;\n        for (const [_key, outlineGroup] of outlineModel.children.entries()) {\n          const totalSumRanges = this._findSumOfRangesOfGroup(outlineGroup);\n          if (totalSumRanges \u003e maxTotalSumOfRanges) {\n            optimalOutlineGroup = outlineGroup;\n            maxTotalSumOfRanges = totalSumRanges;\n            tempID = outlineGroup.id;\n          }\n        }\n        preferredProvider = tempID;\n        outlineElements = optimalOutlineGroup.children;\n      }\n    } else {\n      outlineElements = outlineModel.children;\n    }\n    const stickyChildren = [];\n    const outlineElementsArray = Array.from(outlineElements.values()).sort((element1, element2) =\u003e {\n      const range1 = new StickyRange(element1.symbol.range.startLineNumber, element1.symbol.range.endLineNumber);\n      const range2 = new StickyRange(element2.symbol.range.startLineNumber, element2.symbol.range.endLineNumber);\n      return this._comparator(range1, range2);\n    });\n    for (const outlineElement of outlineElementsArray) {\n      stickyChildren.push(this._stickyModelFromOutlineElement(outlineElement, outlineElement.symbol.selectionRange.startLineNumber));\n    }\n    const stickyOutlineElement = new StickyElement(void 0, stickyChildren, void 0);\n    return {\n      stickyOutlineElement,\n      providerID: preferredProvider\n    };\n  }\n  _stickyModelFromOutlineElement(outlineElement, previousStartLine) {\n    const children = [];\n    for (const child of outlineElement.children.values()) {\n      if (child.symbol.selectionRange.startLineNumber !== child.symbol.range.endLineNumber) {\n        if (child.symbol.selectionRange.startLineNumber !== previousStartLine) {\n          children.push(this._stickyModelFromOutlineElement(child, child.symbol.selectionRange.startLineNumber));\n        } else {\n          for (const subchild of child.children.values()) {\n            children.push(this._stickyModelFromOutlineElement(subchild, child.symbol.selectionRange.startLineNumber));\n          }\n        }\n      }\n    }\n    children.sort((child1, child2) =\u003e this._comparator(child1.range, child2.range));\n    const range2 = new StickyRange(outlineElement.symbol.selectionRange.startLineNumber, outlineElement.symbol.range.endLineNumber);\n    return new StickyElement(range2, children, void 0);\n  }\n  _comparator(range1, range2) {\n    if (range1.startLineNumber !== range2.startLineNumber) {\n      return range1.startLineNumber - range2.startLineNumber;\n    } else {\n      return range2.endLineNumber - range1.endLineNumber;\n    }\n  }\n  _findSumOfRangesOfGroup(outline) {\n    let res = 0;\n    for (const child of outline.children.values()) {\n      res += this._findSumOfRangesOfGroup(child);\n    }\n    if (outline instanceof OutlineElement) {\n      return res + outline.symbol.range.endLineNumber - outline.symbol.selectionRange.startLineNumber;\n    } else {\n      return res;\n    }\n  }\n};\nStickyModelFromCandidateOutlineProvider = __decorate110([\n  __param104(1, ILanguageFeaturesService)\n], StickyModelFromCandidateOutlineProvider);\nvar StickyModelFromCandidateFoldingProvider = class extends StickyModelCandidateProvider {\n  constructor(editor2) {\n    super(editor2);\n    this._foldingLimitReporter = this._register(new RangesLimitReporter(editor2));\n  }\n  createStickyModel(token, model) {\n    const foldingElement = this._fromFoldingRegions(model);\n    const textModel = this._editor.getModel();\n    return new StickyModel(textModel.uri, textModel.getVersionId(), foldingElement, void 0);\n  }\n  isModelValid(model) {\n    return model !== null;\n  }\n  _fromFoldingRegions(foldingRegions) {\n    const length = foldingRegions.length;\n    const orderedStickyElements = [];\n    const stickyOutlineElement = new StickyElement(void 0, [], void 0);\n    for (let i2 = 0; i2 \u003c length; i2++) {\n      const parentIndex = foldingRegions.getParentIndex(i2);\n      let parentNode;\n      if (parentIndex !== -1) {\n        parentNode = orderedStickyElements[parentIndex];\n      } else {\n        parentNode = stickyOutlineElement;\n      }\n      const child = new StickyElement(new StickyRange(foldingRegions.getStartLineNumber(i2), foldingRegions.getEndLineNumber(i2) + 1), [], parentNode);\n      parentNode.children.push(child);\n      orderedStickyElements.push(child);\n    }\n    return stickyOutlineElement;\n  }\n};\nvar StickyModelFromCandidateIndentationFoldingProvider = class StickyModelFromCandidateIndentationFoldingProvider2 extends StickyModelFromCandidateFoldingProvider {\n  constructor(editor2, _languageConfigurationService) {\n    super(editor2);\n    this._languageConfigurationService = _languageConfigurationService;\n    this.provider = this._register(new IndentRangeProvider(editor2.getModel(), this._languageConfigurationService, this._foldingLimitReporter));\n  }\n  async createModelFromProvider(token) {\n    return this.provider.compute(token);\n  }\n};\nStickyModelFromCandidateIndentationFoldingProvider = __decorate110([\n  __param104(1, ILanguageConfigurationService)\n], StickyModelFromCandidateIndentationFoldingProvider);\nvar StickyModelFromCandidateSyntaxFoldingProvider = class StickyModelFromCandidateSyntaxFoldingProvider2 extends StickyModelFromCandidateFoldingProvider {\n  constructor(editor2, onProviderUpdate, _languageFeaturesService) {\n    super(editor2);\n    this._languageFeaturesService = _languageFeaturesService;\n    this.provider = this._register(new MutableDisposable());\n    this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(() =\u003e {\n      this._updateProvider(editor2, onProviderUpdate);\n    }));\n    this._updateProvider(editor2, onProviderUpdate);\n  }\n  _updateProvider(editor2, onProviderUpdate) {\n    const selectedProviders = FoldingController.getFoldingRangeProviders(this._languageFeaturesService, editor2.getModel());\n    if (selectedProviders.length === 0) {\n      return;\n    }\n    this.provider.value = new SyntaxRangeProvider(editor2.getModel(), selectedProviders, onProviderUpdate, this._foldingLimitReporter, void 0);\n  }\n  isProviderValid() {\n    return this.provider !== void 0;\n  }\n  async createModelFromProvider(token) {\n    return this.provider.value?.compute(token) ?? null;\n  }\n};\nStickyModelFromCandidateSyntaxFoldingProvider = __decorate110([\n  __param104(2, ILanguageFeaturesService)\n], StickyModelFromCandidateSyntaxFoldingProvider);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js\ninit_position();\nvar __decorate111 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param105 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StickyLineCandidate = class {\n  constructor(startLineNumber, endLineNumber, top, height) {\n    this.startLineNumber = startLineNumber;\n    this.endLineNumber = endLineNumber;\n    this.top = top;\n    this.height = height;\n  }\n};\nvar StickyLineCandidateProvider = class StickyLineCandidateProvider2 extends Disposable {\n  constructor(editor2, _languageFeaturesService, _languageConfigurationService) {\n    super();\n    this._languageFeaturesService = _languageFeaturesService;\n    this._languageConfigurationService = _languageConfigurationService;\n    this._onDidChangeStickyScroll = this._register(new Emitter());\n    this.onDidChangeStickyScroll = this._onDidChangeStickyScroll.event;\n    this._model = null;\n    this._cts = null;\n    this._stickyModelProvider = null;\n    this._editor = editor2;\n    this._sessionStore = this._register(new DisposableStore());\n    this._updateSoon = this._register(new RunOnceScheduler(() =\u003e this.update(), 50));\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        130\n        /* EditorOption.stickyScroll */\n      )) {\n        this.readConfiguration();\n      }\n    }));\n    this.readConfiguration();\n  }\n  /**\n   * Read and apply the sticky scroll configuration.\n   */\n  readConfiguration() {\n    this._sessionStore.clear();\n    const options2 = this._editor.getOption(\n      130\n      /* EditorOption.stickyScroll */\n    );\n    if (!options2.enabled) {\n      return;\n    }\n    this._sessionStore.add(this._editor.onDidChangeModel(() =\u003e {\n      this._model = null;\n      this.updateStickyModelProvider();\n      this._onDidChangeStickyScroll.fire();\n      this.update();\n    }));\n    this._sessionStore.add(this._editor.onDidChangeHiddenAreas(() =\u003e this.update()));\n    this._sessionStore.add(this._editor.onDidChangeModelContent(() =\u003e this._updateSoon.schedule()));\n    this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(() =\u003e this.update()));\n    this._sessionStore.add(toDisposable(() =\u003e {\n      this._stickyModelProvider?.dispose();\n      this._stickyModelProvider = null;\n    }));\n    this.updateStickyModelProvider();\n    this.update();\n  }\n  /**\n   * Get the version ID of the sticky model.\n   */\n  getVersionId() {\n    return this._model?.version;\n  }\n  /**\n   * Update the sticky model provider.\n   */\n  updateStickyModelProvider() {\n    this._stickyModelProvider?.dispose();\n    this._stickyModelProvider = null;\n    if (this._editor.hasModel()) {\n      this._stickyModelProvider = new StickyModelProvider(this._editor, () =\u003e this._updateSoon.schedule(), this._languageConfigurationService, this._languageFeaturesService);\n    }\n  }\n  /**\n   * Update the sticky line candidates.\n   */\n  async update() {\n    this._cts?.dispose(true);\n    this._cts = new CancellationTokenSource();\n    await this.updateStickyModel(this._cts.token);\n    this._onDidChangeStickyScroll.fire();\n  }\n  /**\n   * Update the sticky model based on the current editor state.\n   */\n  async updateStickyModel(token) {\n    if (!this._editor.hasModel() || !this._stickyModelProvider || this._editor.getModel().isTooLargeForTokenization()) {\n      this._model = null;\n      return;\n    }\n    const model = await this._stickyModelProvider.update(token);\n    if (!token.isCancellationRequested) {\n      this._model = model;\n    }\n  }\n  /**\n   * Get sticky line candidates intersecting a given range.\n   */\n  getCandidateStickyLinesIntersecting(range2) {\n    if (!this._model?.element) {\n      return [];\n    }\n    const stickyLineCandidates = [];\n    this.getCandidateStickyLinesIntersectingFromStickyModel(range2, this._model.element, stickyLineCandidates, 0, 0, -1);\n    return this.filterHiddenRanges(stickyLineCandidates);\n  }\n  /**\n   * Get sticky line candidates intersecting a given range from the sticky model.\n   */\n  getCandidateStickyLinesIntersectingFromStickyModel(range2, outlineModel, result, depth, top, lastStartLineNumber) {\n    if (outlineModel.children.length === 0) {\n      return;\n    }\n    let lastLine = lastStartLineNumber;\n    const childrenStartLines = [];\n    for (let i2 = 0; i2 \u003c outlineModel.children.length; i2++) {\n      const child = outlineModel.children[i2];\n      if (child.range) {\n        childrenStartLines.push(child.range.startLineNumber);\n      }\n    }\n    const lowerBound = this.updateIndex(binarySearch(childrenStartLines, range2.startLineNumber, (a, b) =\u003e {\n      return a - b;\n    }));\n    const upperBound = this.updateIndex(binarySearch(childrenStartLines, range2.endLineNumber, (a, b) =\u003e {\n      return a - b;\n    }));\n    for (let i2 = lowerBound; i2 \u003c= upperBound; i2++) {\n      const child = outlineModel.children[i2];\n      if (!child || !child.range) {\n        continue;\n      }\n      const { startLineNumber, endLineNumber } = child.range;\n      if (range2.startLineNumber \u003c= endLineNumber + 1 \u0026\u0026 startLineNumber - 1 \u003c= range2.endLineNumber \u0026\u0026 startLineNumber !== lastLine) {\n        lastLine = startLineNumber;\n        const lineHeight = this._editor.getLineHeightForPosition(new Position(startLineNumber, 1));\n        result.push(new StickyLineCandidate(startLineNumber, endLineNumber - 1, top, lineHeight));\n        this.getCandidateStickyLinesIntersectingFromStickyModel(range2, child, result, depth + 1, top + lineHeight, startLineNumber);\n      }\n    }\n  }\n  /**\n   * Filter out sticky line candidates that are within hidden ranges.\n   */\n  filterHiddenRanges(stickyLineCandidates) {\n    const hiddenRanges = this._editor._getViewModel()?.getHiddenAreas();\n    if (!hiddenRanges) {\n      return stickyLineCandidates;\n    }\n    return stickyLineCandidates.filter((candidate) =\u003e {\n      return !hiddenRanges.some((hiddenRange) =\u003e candidate.startLineNumber \u003e= hiddenRange.startLineNumber \u0026\u0026 candidate.endLineNumber \u003c= hiddenRange.endLineNumber + 1);\n    });\n  }\n  /**\n   * Update the binary search index.\n   */\n  updateIndex(index) {\n    if (index === -1) {\n      return 0;\n    } else if (index \u003c 0) {\n      return -index - 2;\n    }\n    return index;\n  }\n};\nStickyLineCandidateProvider = __decorate111([\n  __param105(1, ILanguageFeaturesService),\n  __param105(2, ILanguageConfigurationService)\n], StickyLineCandidateProvider);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js\ninit_instantiation();\ninit_actions2();\ninit_contextkey();\ninit_editorContextKeys();\ninit_range();\ninit_position();\ninit_cancellation();\ninit_languageConfigurationRegistry();\ninit_languageFeatureDebounce();\ninit_dom();\ninit_mouseEvent();\ninit_event();\ninit_window();\nvar __decorate112 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param106 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StickyScrollController_1;\nvar StickyScrollController2 = class StickyScrollController3 extends Disposable {\n  static {\n    StickyScrollController_1 = this;\n  }\n  static {\n    this.ID = \"store.contrib.stickyScrollController\";\n  }\n  constructor(_editor, _contextMenuService, _languageFeaturesService, _instaService, _languageConfigurationService, _languageFeatureDebounceService, _contextKeyService) {\n    super();\n    this._editor = _editor;\n    this._contextMenuService = _contextMenuService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._instaService = _instaService;\n    this._contextKeyService = _contextKeyService;\n    this._sessionStore = new DisposableStore();\n    this._maxStickyLines = Number.MAX_SAFE_INTEGER;\n    this._candidateDefinitionsLength = -1;\n    this._focusedStickyElementIndex = -1;\n    this._enabled = false;\n    this._focused = false;\n    this._positionRevealed = false;\n    this._onMouseDown = false;\n    this._endLineNumbers = [];\n    this._mouseTarget = null;\n    this._onDidChangeStickyScrollHeight = this._register(new Emitter());\n    this.onDidChangeStickyScrollHeight = this._onDidChangeStickyScrollHeight.event;\n    this._stickyScrollWidget = new StickyScrollWidget2(this._editor);\n    this._stickyLineCandidateProvider = new StickyLineCandidateProvider(this._editor, _languageFeaturesService, _languageConfigurationService);\n    this._register(this._stickyScrollWidget);\n    this._register(this._stickyLineCandidateProvider);\n    this._widgetState = StickyScrollWidgetState.Empty;\n    const stickyScrollDomNode = this._stickyScrollWidget.getDomNode();\n    this._register(this._editor.onDidChangeLineHeight((e) =\u003e {\n      e.changes.forEach((change) =\u003e {\n        const lineNumber = change.lineNumber;\n        if (this._widgetState.startLineNumbers.includes(lineNumber)) {\n          this._renderStickyScroll(lineNumber);\n        }\n      });\n    }));\n    this._register(this._editor.onDidChangeFont((e) =\u003e {\n      e.changes.forEach((change) =\u003e {\n        const lineNumber = change.lineNumber;\n        if (this._widgetState.startLineNumbers.includes(lineNumber)) {\n          this._renderStickyScroll(lineNumber);\n        }\n      });\n    }));\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      this._readConfigurationChange(e);\n    }));\n    this._register(addDisposableListener(stickyScrollDomNode, EventType.CONTEXT_MENU, async (event) =\u003e {\n      this._onContextMenu(getWindow(stickyScrollDomNode), event);\n    }));\n    this._stickyScrollFocusedContextKey = EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService);\n    this._stickyScrollVisibleContextKey = EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);\n    const focusTracker = this._register(trackFocus(stickyScrollDomNode));\n    this._register(focusTracker.onDidBlur((_) =\u003e {\n      if (this._positionRevealed === false \u0026\u0026 stickyScrollDomNode.clientHeight === 0) {\n        this._focusedStickyElementIndex = -1;\n        this.focus();\n      } else {\n        this._disposeFocusStickyScrollStore();\n      }\n    }));\n    this._register(focusTracker.onDidFocus((_) =\u003e {\n      this.focus();\n    }));\n    this._registerMouseListeners();\n    this._register(addDisposableListener(stickyScrollDomNode, EventType.MOUSE_DOWN, (e) =\u003e {\n      this._onMouseDown = true;\n    }));\n    this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight((e) =\u003e {\n      this._onDidChangeStickyScrollHeight.fire(e);\n    }));\n    this._onDidResize();\n    this._readConfiguration();\n  }\n  get stickyScrollWidgetHeight() {\n    return this._stickyScrollWidget.height;\n  }\n  static get(editor2) {\n    return editor2.getContribution(StickyScrollController_1.ID);\n  }\n  _disposeFocusStickyScrollStore() {\n    this._stickyScrollFocusedContextKey.set(false);\n    this._focusDisposableStore?.dispose();\n    this._focused = false;\n    this._positionRevealed = false;\n    this._onMouseDown = false;\n  }\n  isFocused() {\n    return this._focused;\n  }\n  focus() {\n    if (this._onMouseDown) {\n      this._onMouseDown = false;\n      this._editor.focus();\n      return;\n    }\n    const focusState = this._stickyScrollFocusedContextKey.get();\n    if (focusState === true) {\n      return;\n    }\n    this._focused = true;\n    this._focusDisposableStore = new DisposableStore();\n    this._stickyScrollFocusedContextKey.set(true);\n    this._focusedStickyElementIndex = this._stickyScrollWidget.lineNumbers.length - 1;\n    this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);\n  }\n  focusNext() {\n    if (this._focusedStickyElementIndex \u003c this._stickyScrollWidget.lineNumberCount - 1) {\n      this._focusNav(true);\n    }\n  }\n  focusPrevious() {\n    if (this._focusedStickyElementIndex \u003e 0) {\n      this._focusNav(false);\n    }\n  }\n  selectEditor() {\n    this._editor.focus();\n  }\n  // True is next, false is previous\n  _focusNav(direction) {\n    this._focusedStickyElementIndex = direction ? this._focusedStickyElementIndex + 1 : this._focusedStickyElementIndex - 1;\n    this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);\n  }\n  goToFocused() {\n    const lineNumbers = this._stickyScrollWidget.lineNumbers;\n    this._disposeFocusStickyScrollStore();\n    this._revealPosition({ lineNumber: lineNumbers[this._focusedStickyElementIndex], column: 1 });\n  }\n  _revealPosition(position) {\n    this._reveaInEditor(position, () =\u003e this._editor.revealPosition(position));\n  }\n  _revealLineInCenterIfOutsideViewport(position) {\n    this._reveaInEditor(position, () =\u003e this._editor.revealLineInCenterIfOutsideViewport(\n      position.lineNumber,\n      0\n      /* ScrollType.Smooth */\n    ));\n  }\n  _reveaInEditor(position, revealFunction) {\n    if (this._focused) {\n      this._disposeFocusStickyScrollStore();\n    }\n    this._positionRevealed = true;\n    revealFunction();\n    this._editor.setSelection(Range.fromPositions(position));\n    this._editor.focus();\n  }\n  _registerMouseListeners() {\n    const sessionStore = this._register(new DisposableStore());\n    const gesture = this._register(new ClickLinkGesture(this._editor, {\n      extractLineNumberFromMouseEvent: (e) =\u003e {\n        const position = this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);\n        return position ? position.lineNumber : 0;\n      }\n    }));\n    const getMouseEventTarget = (mouseEvent) =\u003e {\n      if (!this._editor.hasModel()) {\n        return null;\n      }\n      if (mouseEvent.target.type !== 12 || mouseEvent.target.detail !== this._stickyScrollWidget.getId()) {\n        return null;\n      }\n      const mouseTargetElement = mouseEvent.target.element;\n      if (!mouseTargetElement || mouseTargetElement.innerText !== mouseTargetElement.innerHTML) {\n        return null;\n      }\n      const position = this._stickyScrollWidget.getEditorPositionFromNode(mouseTargetElement);\n      if (!position) {\n        return null;\n      }\n      return {\n        range: new Range(position.lineNumber, position.column, position.lineNumber, position.column + mouseTargetElement.innerText.length),\n        textElement: mouseTargetElement\n      };\n    };\n    const stickyScrollWidgetDomNode = this._stickyScrollWidget.getDomNode();\n    this._register(addStandardDisposableListener(stickyScrollWidgetDomNode, EventType.CLICK, (mouseEvent) =\u003e {\n      if (mouseEvent.ctrlKey || mouseEvent.altKey || mouseEvent.metaKey) {\n        return;\n      }\n      if (!mouseEvent.leftButton) {\n        return;\n      }\n      if (mouseEvent.shiftKey) {\n        const lineIndex = this._stickyScrollWidget.getLineIndexFromChildDomNode(mouseEvent.target);\n        if (lineIndex === null) {\n          return;\n        }\n        const position2 = new Position(this._endLineNumbers[lineIndex], 1);\n        this._revealLineInCenterIfOutsideViewport(position2);\n        return;\n      }\n      const isInFoldingIconDomNode = this._stickyScrollWidget.isInFoldingIconDomNode(mouseEvent.target);\n      if (isInFoldingIconDomNode) {\n        const lineNumber = this._stickyScrollWidget.getLineNumberFromChildDomNode(mouseEvent.target);\n        this._toggleFoldingRegionForLine(lineNumber);\n        return;\n      }\n      const isInStickyLine = this._stickyScrollWidget.isInStickyLine(mouseEvent.target);\n      if (!isInStickyLine) {\n        return;\n      }\n      let position = this._stickyScrollWidget.getEditorPositionFromNode(mouseEvent.target);\n      if (!position) {\n        const lineNumber = this._stickyScrollWidget.getLineNumberFromChildDomNode(mouseEvent.target);\n        if (lineNumber === null) {\n          return;\n        }\n        position = new Position(lineNumber, 1);\n      }\n      this._revealPosition(position);\n    }));\n    this._register(addDisposableListener(mainWindow, EventType.MOUSE_MOVE, (mouseEvent) =\u003e {\n      this._mouseTarget = mouseEvent.target;\n      this._onMouseMoveOrKeyDown(mouseEvent);\n    }));\n    this._register(addDisposableListener(mainWindow, EventType.KEY_DOWN, (mouseEvent) =\u003e {\n      this._onMouseMoveOrKeyDown(mouseEvent);\n    }));\n    this._register(addDisposableListener(mainWindow, EventType.KEY_UP, () =\u003e {\n      if (this._showEndForLine !== void 0) {\n        this._showEndForLine = void 0;\n        this._renderStickyScroll();\n      }\n    }));\n    this._register(gesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, _keyboardEvent]) =\u003e {\n      const mouseTarget = getMouseEventTarget(mouseEvent);\n      if (!mouseTarget || !mouseEvent.hasTriggerModifier || !this._editor.hasModel()) {\n        sessionStore.clear();\n        return;\n      }\n      const { range: range2, textElement } = mouseTarget;\n      if (!range2.equalsRange(this._stickyRangeProjectedOnEditor)) {\n        this._stickyRangeProjectedOnEditor = range2;\n        sessionStore.clear();\n      } else if (textElement.style.textDecoration === \"underline\") {\n        return;\n      }\n      const cancellationToken = new CancellationTokenSource();\n      sessionStore.add(toDisposable(() =\u003e cancellationToken.dispose(true)));\n      let currentHTMLChild;\n      getDefinitionsAtPosition(this._languageFeaturesService.definitionProvider, this._editor.getModel(), new Position(range2.startLineNumber, range2.startColumn + 1), false, cancellationToken.token).then(((candidateDefinitions) =\u003e {\n        if (cancellationToken.token.isCancellationRequested) {\n          return;\n        }\n        if (candidateDefinitions.length !== 0) {\n          this._candidateDefinitionsLength = candidateDefinitions.length;\n          const childHTML = textElement;\n          if (currentHTMLChild !== childHTML) {\n            sessionStore.clear();\n            currentHTMLChild = childHTML;\n            currentHTMLChild.style.textDecoration = \"underline\";\n            sessionStore.add(toDisposable(() =\u003e {\n              currentHTMLChild.style.textDecoration = \"none\";\n            }));\n          } else if (!currentHTMLChild) {\n            currentHTMLChild = childHTML;\n            currentHTMLChild.style.textDecoration = \"underline\";\n            sessionStore.add(toDisposable(() =\u003e {\n              currentHTMLChild.style.textDecoration = \"none\";\n            }));\n          }\n        } else {\n          sessionStore.clear();\n        }\n      }));\n    }));\n    this._register(gesture.onCancel(() =\u003e {\n      sessionStore.clear();\n    }));\n    this._register(gesture.onExecute(async (e) =\u003e {\n      if (e.target.type !== 12 || e.target.detail !== this._stickyScrollWidget.getId()) {\n        return;\n      }\n      const position = this._stickyScrollWidget.getEditorPositionFromNode(e.target.element);\n      if (!position) {\n        return;\n      }\n      if (!this._editor.hasModel() || !this._stickyRangeProjectedOnEditor) {\n        return;\n      }\n      if (this._candidateDefinitionsLength \u003e 1) {\n        if (this._focused) {\n          this._disposeFocusStickyScrollStore();\n        }\n        this._revealPosition({ lineNumber: position.lineNumber, column: 1 });\n      }\n      this._instaService.invokeFunction(goToDefinitionWithLocation, e, this._editor, { uri: this._editor.getModel().uri, range: this._stickyRangeProjectedOnEditor });\n    }));\n  }\n  _onContextMenu(targetWindow, e) {\n    const event = new StandardMouseEvent(targetWindow, e);\n    this._contextMenuService.showContextMenu({\n      menuId: MenuId.StickyScrollContext,\n      getAnchor: () =\u003e event\n    });\n  }\n  _onMouseMoveOrKeyDown(mouseEvent) {\n    if (!mouseEvent.shiftKey) {\n      return;\n    }\n    if (!this._mouseTarget || !isHTMLElement(this._mouseTarget)) {\n      return;\n    }\n    const currentEndForLineIndex = this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);\n    if (currentEndForLineIndex === null || this._showEndForLine === currentEndForLineIndex) {\n      return;\n    }\n    this._showEndForLine = currentEndForLineIndex;\n    this._renderStickyScroll();\n  }\n  _toggleFoldingRegionForLine(line) {\n    if (!this._foldingModel || line === null) {\n      return;\n    }\n    const stickyLine = this._stickyScrollWidget.getRenderedStickyLine(line);\n    const foldingIcon = stickyLine?.foldingIcon;\n    if (!foldingIcon) {\n      return;\n    }\n    toggleCollapseState(this._foldingModel, 1, [line]);\n    foldingIcon.isCollapsed = !foldingIcon.isCollapsed;\n    const scrollTop = (foldingIcon.isCollapsed ? this._editor.getTopForLineNumber(foldingIcon.foldingEndLine) : this._editor.getTopForLineNumber(foldingIcon.foldingStartLine)) - this._editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    ) * stickyLine.index + 1;\n    this._editor.setScrollTop(scrollTop);\n    this._renderStickyScroll(line);\n  }\n  _readConfiguration() {\n    const options2 = this._editor.getOption(\n      130\n      /* EditorOption.stickyScroll */\n    );\n    if (options2.enabled === false) {\n      this._editor.removeOverlayWidget(this._stickyScrollWidget);\n      this._resetState();\n      this._sessionStore.clear();\n      this._enabled = false;\n      return;\n    } else if (options2.enabled \u0026\u0026 !this._enabled) {\n      this._editor.addOverlayWidget(this._stickyScrollWidget);\n      this._sessionStore.add(this._editor.onDidScrollChange((e) =\u003e {\n        if (e.scrollTopChanged) {\n          this._showEndForLine = void 0;\n          this._renderStickyScroll();\n        }\n      }));\n      this._sessionStore.add(this._editor.onDidLayoutChange(() =\u003e this._onDidResize()));\n      this._sessionStore.add(this._editor.onDidChangeModelTokens((e) =\u003e this._onTokensChange(e)));\n      this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(() =\u003e {\n        this._showEndForLine = void 0;\n        this._renderStickyScroll();\n      }));\n      this._enabled = true;\n    }\n    const lineNumberOption = this._editor.getOption(\n      76\n      /* EditorOption.lineNumbers */\n    );\n    if (lineNumberOption.renderType === 2) {\n      this._sessionStore.add(this._editor.onDidChangeCursorPosition(() =\u003e {\n        this._showEndForLine = void 0;\n        this._renderStickyScroll(0);\n      }));\n    }\n  }\n  _readConfigurationChange(event) {\n    if (event.hasChanged(\n      130\n      /* EditorOption.stickyScroll */\n    ) || event.hasChanged(\n      81\n      /* EditorOption.minimap */\n    ) || event.hasChanged(\n      75\n      /* EditorOption.lineHeight */\n    ) || event.hasChanged(\n      125\n      /* EditorOption.showFoldingControls */\n    ) || event.hasChanged(\n      76\n      /* EditorOption.lineNumbers */\n    )) {\n      this._readConfiguration();\n    }\n    if (event.hasChanged(\n      76\n      /* EditorOption.lineNumbers */\n    ) || event.hasChanged(\n      52\n      /* EditorOption.folding */\n    ) || event.hasChanged(\n      125\n      /* EditorOption.showFoldingControls */\n    )) {\n      this._renderStickyScroll(0);\n    }\n  }\n  _needsUpdate(event) {\n    const stickyLineNumbers = this._stickyScrollWidget.getCurrentLines();\n    for (const stickyLineNumber of stickyLineNumbers) {\n      for (const range2 of event.ranges) {\n        if (stickyLineNumber \u003e= range2.fromLineNumber \u0026\u0026 stickyLineNumber \u003c= range2.toLineNumber) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  _onTokensChange(event) {\n    if (this._needsUpdate(event)) {\n      this._renderStickyScroll(0);\n    }\n  }\n  _onDidResize() {\n    const layoutInfo = this._editor.getLayoutInfo();\n    const theoreticalLines = layoutInfo.height / this._editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    );\n    this._maxStickyLines = Math.round(theoreticalLines * 0.25);\n    this._renderStickyScroll(0);\n  }\n  async _renderStickyScroll(rebuildFromLine) {\n    const model = this._editor.getModel();\n    if (!model || model.isTooLargeForTokenization()) {\n      this._resetState();\n      return;\n    }\n    const nextRebuildFromLine = this._updateAndGetMinRebuildFromLine(rebuildFromLine);\n    const stickyWidgetVersion = this._stickyLineCandidateProvider.getVersionId();\n    const shouldUpdateState = stickyWidgetVersion === void 0 || stickyWidgetVersion === model.getVersionId();\n    if (shouldUpdateState) {\n      if (!this._focused) {\n        await this._updateState(nextRebuildFromLine);\n      } else {\n        if (this._focusedStickyElementIndex === -1) {\n          await this._updateState(nextRebuildFromLine);\n          this._focusedStickyElementIndex = this._stickyScrollWidget.lineNumberCount - 1;\n          if (this._focusedStickyElementIndex !== -1) {\n            this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);\n          }\n        } else {\n          const focusedStickyElementLineNumber = this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];\n          await this._updateState(nextRebuildFromLine);\n          if (this._stickyScrollWidget.lineNumberCount === 0) {\n            this._focusedStickyElementIndex = -1;\n          } else {\n            const previousFocusedLineNumberExists = this._stickyScrollWidget.lineNumbers.includes(focusedStickyElementLineNumber);\n            if (!previousFocusedLineNumberExists) {\n              this._focusedStickyElementIndex = this._stickyScrollWidget.lineNumberCount - 1;\n            }\n            this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);\n          }\n        }\n      }\n    }\n  }\n  _updateAndGetMinRebuildFromLine(rebuildFromLine) {\n    if (rebuildFromLine !== void 0) {\n      const minRebuildFromLineOrInfinity = this._minRebuildFromLine !== void 0 ? this._minRebuildFromLine : Infinity;\n      this._minRebuildFromLine = Math.min(rebuildFromLine, minRebuildFromLineOrInfinity);\n    }\n    return this._minRebuildFromLine;\n  }\n  async _updateState(rebuildFromLine) {\n    this._minRebuildFromLine = void 0;\n    this._foldingModel = await FoldingController.get(this._editor)?.getFoldingModel() ?? void 0;\n    this._widgetState = this.findScrollWidgetState();\n    const stickyWidgetHasLines = this._widgetState.startLineNumbers.length \u003e 0;\n    this._stickyScrollVisibleContextKey.set(stickyWidgetHasLines);\n    this._stickyScrollWidget.setState(this._widgetState, this._foldingModel, rebuildFromLine);\n  }\n  async _resetState() {\n    this._minRebuildFromLine = void 0;\n    this._foldingModel = void 0;\n    this._widgetState = StickyScrollWidgetState.Empty;\n    this._stickyScrollVisibleContextKey.set(false);\n    this._stickyScrollWidget.setState(void 0, void 0);\n  }\n  findScrollWidgetState() {\n    if (!this._editor.hasModel()) {\n      return StickyScrollWidgetState.Empty;\n    }\n    const textModel = this._editor.getModel();\n    const maxNumberStickyLines = Math.min(this._maxStickyLines, this._editor.getOption(\n      130\n      /* EditorOption.stickyScroll */\n    ).maxLineCount);\n    const scrollTop = this._editor.getScrollTop();\n    let lastLineRelativePosition = 0;\n    const startLineNumbers = [];\n    const endLineNumbers = [];\n    const arrayVisibleRanges = this._editor.getVisibleRanges();\n    if (arrayVisibleRanges.length !== 0) {\n      const fullVisibleRange = new StickyRange(arrayVisibleRanges[0].startLineNumber, arrayVisibleRanges[arrayVisibleRanges.length - 1].endLineNumber);\n      const candidateRanges = this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(fullVisibleRange);\n      for (const range2 of candidateRanges) {\n        const start = range2.startLineNumber;\n        const end = range2.endLineNumber;\n        const isValidRange = textModel.isValidRange({ startLineNumber: start, endLineNumber: end, startColumn: 1, endColumn: 1 });\n        if (isValidRange \u0026\u0026 end - start \u003e 0) {\n          const topOfElement = range2.top;\n          const bottomOfElement = topOfElement + range2.height;\n          const topOfBeginningLine = this._editor.getTopForLineNumber(start) - scrollTop;\n          const bottomOfEndLine = this._editor.getBottomForLineNumber(end) - scrollTop;\n          if (topOfElement \u003e topOfBeginningLine \u0026\u0026 topOfElement \u003c= bottomOfEndLine) {\n            startLineNumbers.push(start);\n            endLineNumbers.push(end + 1);\n            if (bottomOfElement \u003e bottomOfEndLine) {\n              lastLineRelativePosition = bottomOfEndLine - bottomOfElement;\n            }\n          }\n          if (startLineNumbers.length === maxNumberStickyLines) {\n            break;\n          }\n        }\n      }\n    }\n    this._endLineNumbers = endLineNumbers;\n    return new StickyScrollWidgetState(startLineNumbers, endLineNumbers, lastLineRelativePosition, this._showEndForLine);\n  }\n  dispose() {\n    super.dispose();\n    this._sessionStore.dispose();\n  }\n};\nStickyScrollController2 = StickyScrollController_1 = __decorate112([\n  __param106(1, IContextMenuService),\n  __param106(2, ILanguageFeaturesService),\n  __param106(3, IInstantiationService),\n  __param106(4, ILanguageConfigurationService),\n  __param106(5, ILanguageFeatureDebounceService),\n  __param106(6, IContextKeyService)\n], StickyScrollController2);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js\ninit_errors();\ninit_observable();\ninit_nls();\ninit_colorRegistry();\ninit_colorUtils();\nvar originalBackgroundColor = registerColor(\"inlineEdit.originalBackground\", transparent(diffRemoved, 0.2), localize(1207, \"Background color for the original text in inline edits.\"), true);\nvar modifiedBackgroundColor = registerColor(\"inlineEdit.modifiedBackground\", transparent(diffInserted, 0.3), localize(1208, \"Background color for the modified text in inline edits.\"), true);\nvar originalChangedLineBackgroundColor = registerColor(\"inlineEdit.originalChangedLineBackground\", transparent(diffRemoved, 0.8), localize(1209, \"Background color for the changed lines in the original text of inline edits.\"), true);\nvar originalChangedTextOverlayColor = registerColor(\"inlineEdit.originalChangedTextBackground\", transparent(diffRemoved, 0.8), localize(1210, \"Overlay color for the changed text in the original text of inline edits.\"), true);\nvar modifiedChangedLineBackgroundColor = registerColor(\"inlineEdit.modifiedChangedLineBackground\", {\n  light: transparent(diffInsertedLine, 0.7),\n  dark: transparent(diffInsertedLine, 0.7),\n  hcDark: diffInsertedLine,\n  hcLight: diffInsertedLine\n}, localize(1211, \"Background color for the changed lines in the modified text of inline edits.\"), true);\nvar modifiedChangedTextOverlayColor = registerColor(\"inlineEdit.modifiedChangedTextBackground\", transparent(diffInserted, 0.7), localize(1212, \"Overlay color for the changed text in the modified text of inline edits.\"), true);\nvar inlineEditIndicatorPrimaryForeground = registerColor(\"inlineEdit.gutterIndicator.primaryForeground\", buttonForeground, localize(1213, \"Foreground color for the primary inline edit gutter indicator.\"));\nvar inlineEditIndicatorPrimaryBorder = registerColor(\"inlineEdit.gutterIndicator.primaryBorder\", buttonBackground, localize(1214, \"Border color for the primary inline edit gutter indicator.\"));\nvar inlineEditIndicatorPrimaryBackground = registerColor(\"inlineEdit.gutterIndicator.primaryBackground\", {\n  light: transparent(inlineEditIndicatorPrimaryBorder, 0.5),\n  dark: transparent(inlineEditIndicatorPrimaryBorder, 0.4),\n  hcDark: transparent(inlineEditIndicatorPrimaryBorder, 0.4),\n  hcLight: transparent(inlineEditIndicatorPrimaryBorder, 0.5)\n}, localize(1215, \"Background color for the primary inline edit gutter indicator.\"));\nvar inlineEditIndicatorSecondaryForeground = registerColor(\"inlineEdit.gutterIndicator.secondaryForeground\", buttonSecondaryForeground, localize(1216, \"Foreground color for the secondary inline edit gutter indicator.\"));\nvar inlineEditIndicatorSecondaryBorder = registerColor(\"inlineEdit.gutterIndicator.secondaryBorder\", buttonSecondaryBackground, localize(1217, \"Border color for the secondary inline edit gutter indicator.\"));\nvar inlineEditIndicatorSecondaryBackground = registerColor(\"inlineEdit.gutterIndicator.secondaryBackground\", inlineEditIndicatorSecondaryBorder, localize(1218, \"Background color for the secondary inline edit gutter indicator.\"));\nvar inlineEditIndicatorsuccessfulForeground = registerColor(\"inlineEdit.gutterIndicator.successfulForeground\", buttonForeground, localize(1219, \"Foreground color for the successful inline edit gutter indicator.\"));\nvar inlineEditIndicatorsuccessfulBorder = registerColor(\"inlineEdit.gutterIndicator.successfulBorder\", buttonBackground, localize(1220, \"Border color for the successful inline edit gutter indicator.\"));\nvar inlineEditIndicatorsuccessfulBackground = registerColor(\"inlineEdit.gutterIndicator.successfulBackground\", inlineEditIndicatorsuccessfulBorder, localize(1221, \"Background color for the successful inline edit gutter indicator.\"));\nvar inlineEditIndicatorBackground = registerColor(\"inlineEdit.gutterIndicator.background\", {\n  hcDark: transparent(\"tab.inactiveBackground\", 0.5),\n  hcLight: transparent(\"tab.inactiveBackground\", 0.5),\n  dark: transparent(\"tab.inactiveBackground\", 0.5),\n  light: \"#5f5f5f18\"\n}, localize(1222, \"Background color for the inline edit gutter indicator.\"));\nvar originalBorder = registerColor(\"inlineEdit.originalBorder\", {\n  light: diffRemoved,\n  dark: diffRemoved,\n  hcDark: diffRemoved,\n  hcLight: diffRemoved\n}, localize(1223, \"Border color for the original text in inline edits.\"));\nvar modifiedBorder = registerColor(\"inlineEdit.modifiedBorder\", {\n  light: darken(diffInserted, 0.6),\n  dark: diffInserted,\n  hcDark: diffInserted,\n  hcLight: diffInserted\n}, localize(1224, \"Border color for the modified text in inline edits.\"));\nvar tabWillAcceptModifiedBorder = registerColor(\"inlineEdit.tabWillAcceptModifiedBorder\", {\n  light: darken(modifiedBorder, 0),\n  dark: darken(modifiedBorder, 0),\n  hcDark: darken(modifiedBorder, 0),\n  hcLight: darken(modifiedBorder, 0)\n}, localize(1225, \"Modified border color for the inline edits widget when tab will accept it.\"));\nvar tabWillAcceptOriginalBorder = registerColor(\"inlineEdit.tabWillAcceptOriginalBorder\", {\n  light: darken(originalBorder, 0),\n  dark: darken(originalBorder, 0),\n  hcDark: darken(originalBorder, 0),\n  hcLight: darken(originalBorder, 0)\n}, localize(1226, \"Original border color for the inline edits widget over the original text when tab will accept it.\"));\nfunction getModifiedBorderColor(tabAction) {\n  return tabAction.map((a) =\u003e a === InlineEditTabAction.Accept ? tabWillAcceptModifiedBorder : modifiedBorder);\n}\nfunction getOriginalBorderColor(tabAction) {\n  return tabAction.map((a) =\u003e a === InlineEditTabAction.Accept ? tabWillAcceptOriginalBorder : originalBorder);\n}\nfunction getEditorBlendedColor(colorIdentifier, themeService) {\n  let color;\n  if (typeof colorIdentifier === \"string\") {\n    color = observeColor(colorIdentifier, themeService);\n  } else {\n    color = colorIdentifier.map((identifier, reader) =\u003e observeColor(identifier, themeService).read(reader));\n  }\n  const backgroundColor = observeColor(editorBackground, themeService);\n  return color.map((c, reader) =\u003e c.makeOpaque(backgroundColor.read(reader)));\n}\nfunction observeColor(colorIdentifier, themeService) {\n  return observableFromEventOpts({\n    owner: { observeColor: colorIdentifier },\n    equalsFn: (a, b) =\u003e a.equals(b)\n  }, themeService.onDidColorThemeChange, () =\u003e {\n    const color = themeService.getColorTheme().getColor(colorIdentifier);\n    if (!color) {\n      throw new BugIndicatingError(`Missing color: ${colorIdentifier}`);\n    }\n    return color;\n  });\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/utils/utils.js\ninit_arrays();\ninit_arraysFind();\ninit_observable();\ninit_strings();\ninit_offsetRange();\ninit_position();\ninit_range();\ninit_textModel();\ninit_errors();\nfunction maxContentWidthInRange(editor2, range2, reader) {\n  editor2.layoutInfo.read(reader);\n  editor2.value.read(reader);\n  const model = editor2.model.read(reader);\n  if (!model) {\n    return 0;\n  }\n  let maxContentWidth = 0;\n  editor2.scrollTop.read(reader);\n  for (let i2 = range2.startLineNumber; i2 \u003c range2.endLineNumberExclusive; i2++) {\n    const column = model.getLineMaxColumn(i2);\n    let lineContentWidth = editor2.editor.getOffsetForColumn(i2, column);\n    if (lineContentWidth === -1) {\n      const typicalHalfwidthCharacterWidth = editor2.editor.getOption(\n        59\n        /* EditorOption.fontInfo */\n      ).typicalHalfwidthCharacterWidth;\n      const approximation = column * typicalHalfwidthCharacterWidth;\n      lineContentWidth = approximation;\n    }\n    maxContentWidth = Math.max(maxContentWidth, lineContentWidth);\n  }\n  const lines = range2.mapToLineArray((l) =\u003e model.getLineContent(l));\n  if (maxContentWidth \u003c 5 \u0026\u0026 lines.some((l) =\u003e l.length \u003e 0) \u0026\u0026 model.uri.scheme !== \"file\") {\n    console.error(\"unexpected width\");\n  }\n  return maxContentWidth;\n}\nfunction getOffsetForPos(editor2, pos, reader) {\n  editor2.layoutInfo.read(reader);\n  editor2.value.read(reader);\n  const model = editor2.model.read(reader);\n  if (!model) {\n    return 0;\n  }\n  editor2.scrollTop.read(reader);\n  const lineContentWidth = editor2.editor.getOffsetForColumn(pos.lineNumber, pos.column);\n  return lineContentWidth;\n}\nfunction getPrefixTrim(diffRanges, originalLinesRange, modifiedLines, editor2) {\n  const textModel = editor2.getModel();\n  if (!textModel) {\n    return { prefixTrim: 0, prefixLeftOffset: 0 };\n  }\n  const replacementStart = diffRanges.map((r) =\u003e r.isSingleLine() ? r.startColumn - 1 : 0);\n  const originalIndents = originalLinesRange.mapToLineArray((line) =\u003e indentOfLine(textModel.getLineContent(line)));\n  const modifiedIndents = modifiedLines.filter((line) =\u003e line !== \"\").map((line) =\u003e indentOfLine(line));\n  const prefixTrim = Math.min(...replacementStart, ...originalIndents, ...modifiedIndents);\n  let prefixLeftOffset;\n  const startLineIndent = textModel.getLineIndentColumn(originalLinesRange.startLineNumber);\n  if (startLineIndent \u003e= prefixTrim + 1) {\n    prefixLeftOffset = editor2.getOffsetForColumn(originalLinesRange.startLineNumber, prefixTrim + 1);\n  } else if (modifiedLines.length \u003e 0) {\n    prefixLeftOffset = getContentRenderWidth(modifiedLines[0].slice(0, prefixTrim), editor2, textModel);\n  } else {\n    return { prefixTrim: 0, prefixLeftOffset: 0 };\n  }\n  return { prefixTrim, prefixLeftOffset };\n}\nfunction getContentRenderWidth(content, editor2, textModel) {\n  const w = editor2.getOption(\n    59\n    /* EditorOption.fontInfo */\n  ).typicalHalfwidthCharacterWidth;\n  const tabSize = textModel.getOptions().tabSize * w;\n  const numTabs = content.split(\"\t\").length - 1;\n  const numNoneTabs = content.length - numTabs;\n  return numNoneTabs * w + numTabs * tabSize;\n}\nfunction getEditorValidOverlayRect(editor2) {\n  const contentLeft = editor2.layoutInfoContentLeft;\n  const width2 = derived({ name: \"editor.validOverlay.width\" }, (r) =\u003e {\n    const hasMinimapOnTheRight = editor2.layoutInfoMinimap.read(r).minimapLeft !== 0;\n    const editorWidth = editor2.layoutInfoWidth.read(r) - contentLeft.read(r);\n    if (hasMinimapOnTheRight) {\n      const minimapAndScrollbarWidth = editor2.layoutInfoMinimap.read(r).minimapWidth + editor2.layoutInfoVerticalScrollbarWidth.read(r);\n      return editorWidth - minimapAndScrollbarWidth;\n    }\n    return editorWidth;\n  });\n  const height = derived({ name: \"editor.validOverlay.height\" }, (r) =\u003e editor2.layoutInfoHeight.read(r) + editor2.contentHeight.read(r));\n  return derived({ name: \"editor.validOverlay\" }, (r) =\u003e Rect.fromLeftTopWidthHeight(contentLeft.read(r), 0, width2.read(r), height.read(r)));\n}\nfunction applyEditToModifiedRangeMappings(rangeMapping, edit2) {\n  const updatedMappings = [];\n  for (const m of rangeMapping) {\n    const updatedRange = edit2.mapRange(m.modifiedRange);\n    updatedMappings.push(new RangeMapping(m.originalRange, updatedRange));\n  }\n  return updatedMappings;\n}\nfunction classNames(...classes2) {\n  return classes2.filter((c) =\u003e typeof c === \"string\").join(\" \");\n}\nfunction offsetRangeToRange(columnOffsetRange, startPos) {\n  return new Range(startPos.lineNumber, startPos.column + columnOffsetRange.start, startPos.lineNumber, startPos.column + columnOffsetRange.endExclusive);\n}\nfunction getIndentationSize(line, tabSize) {\n  let currentSize = 0;\n  loop: for (let i2 = 0, len = line.length; i2 \u003c len; i2++) {\n    switch (line.charCodeAt(i2)) {\n      case 9:\n        currentSize += tabSize;\n        break;\n      case 32:\n        currentSize++;\n        break;\n      default:\n        break loop;\n    }\n  }\n  return currentSize - currentSize % tabSize;\n}\nfunction indentSizeToIndentLength(line, indentSize, tabSize) {\n  let remainingSize = indentSize - indentSize % tabSize;\n  let i2 = 0;\n  for (; i2 \u003c line.length; i2++) {\n    if (remainingSize === 0) {\n      break;\n    }\n    switch (line.charCodeAt(i2)) {\n      case 9:\n        remainingSize -= tabSize;\n        break;\n      case 32:\n        remainingSize--;\n        break;\n      default:\n        throw new BugIndicatingError(\"Unexpected character found while calculating indent length\");\n    }\n  }\n  return i2;\n}\nfunction createReindentEdit(text2, range2, tabSize) {\n  const newLines = splitLines(text2);\n  const edits = [];\n  const minIndentSize = findFirstMin(range2.mapToLineArray((l) =\u003e getIndentationSize(newLines[l - 1], tabSize)), numberComparator);\n  range2.forEach((lineNumber) =\u003e {\n    const indentLength = indentSizeToIndentLength(newLines[lineNumber - 1], minIndentSize, tabSize);\n    edits.push(new TextReplacement(offsetRangeToRange(new OffsetRange(0, indentLength), new Position(lineNumber, 1)), \"\"));\n  });\n  return new TextEdit(edits);\n}\nvar PathBuilder = class {\n  constructor() {\n    this._data = \"\";\n  }\n  moveTo(point) {\n    this._data += `M ${point.x} ${point.y} `;\n    return this;\n  }\n  lineTo(point) {\n    this._data += `L ${point.x} ${point.y} `;\n    return this;\n  }\n  build() {\n    return this._data;\n  }\n};\nfunction mapOutFalsy(obs) {\n  const nonUndefinedObs = derivedObservableWithCache(void 0, (reader, lastValue) =\u003e obs.read(reader) || lastValue);\n  return derivedOpts({\n    debugName: () =\u003e `${obs.debugName}.mapOutFalsy`\n  }, (reader) =\u003e {\n    nonUndefinedObs.read(reader);\n    const val = obs.read(reader);\n    if (!val) {\n      return void 0;\n    }\n    return nonUndefinedObs;\n  });\n}\nfunction rectToProps(fn) {\n  return {\n    left: derived({ name: \"editor.validOverlay.left\" }, (reader) =\u003e (\n      /** @description left */\n      fn(reader).left\n    )),\n    top: derived({ name: \"editor.validOverlay.top\" }, (reader) =\u003e (\n      /** @description top */\n      fn(reader).top\n    )),\n    width: derived({ name: \"editor.validOverlay.width\" }, (reader) =\u003e (\n      /** @description width */\n      fn(reader).right - fn(reader).left\n    )),\n    height: derived({ name: \"editor.validOverlay.height\" }, (reader) =\u003e (\n      /** @description height */\n      fn(reader).bottom - fn(reader).top\n    ))\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js\ninit_dom();\ninit_iconLabels2();\ninit_codicons();\ninit_observable();\ninit_platform();\ninit_themables();\ninit_nls();\ninit_commands();\ninit_contextkey();\ninit_colorRegistry();\nvar __decorate113 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param107 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar GutterIndicatorMenuContent = class GutterIndicatorMenuContent2 {\n  constructor(_model, _close, _editorObs, _contextKeyService, _keybindingService, _commandService) {\n    this._model = _model;\n    this._close = _close;\n    this._editorObs = _editorObs;\n    this._contextKeyService = _contextKeyService;\n    this._keybindingService = _keybindingService;\n    this._commandService = _commandService;\n    this._inlineEditsShowCollapsed = this._editorObs.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).map((s) =\u003e s.edits.showCollapsed);\n  }\n  toDisposableLiveElement() {\n    return this._createHoverContent().toDisposableLiveElement();\n  }\n  _createHoverContent() {\n    const activeElement = observableValue(\"active\", void 0);\n    const createOptionArgs = (options2) =\u003e {\n      return {\n        title: options2.title,\n        icon: options2.icon,\n        keybinding: typeof options2.commandId === \"string\" ? this._getKeybinding(options2.commandArgs ? void 0 : options2.commandId) : derived(this, (reader) =\u003e typeof options2.commandId === \"string\" ? void 0 : this._getKeybinding(options2.commandArgs ? void 0 : options2.commandId.read(reader)).read(reader)),\n        isActive: activeElement.map((v) =\u003e v === options2.id),\n        onHoverChange: (v) =\u003e activeElement.set(v ? options2.id : void 0, void 0),\n        onAction: () =\u003e {\n          this._close(true);\n          return this._commandService.executeCommand(typeof options2.commandId === \"string\" ? options2.commandId : options2.commandId.get(), ...options2.commandArgs ?? []);\n        }\n      };\n    };\n    const title = header(this._model.displayName);\n    const gotoAndAccept = option(createOptionArgs({\n      id: \"gotoAndAccept\",\n      title: `${localize(1200, \"Go To\")} / ${localize(1201, \"Accept\")}`,\n      icon: Codicon.check,\n      commandId: inlineSuggestCommitId\n    }));\n    const reject = option(createOptionArgs({\n      id: \"reject\",\n      title: localize(1202, \"Reject\"),\n      icon: Codicon.close,\n      commandId: hideInlineCompletionId\n    }));\n    const extensionCommands = this._model.extensionCommands.map((c, idx) =\u003e option(createOptionArgs({\n      id: c.command.id + \"_\" + idx,\n      title: c.command.title,\n      icon: c.icon ?? Codicon.symbolEvent,\n      commandId: c.command.id,\n      commandArgs: c.command.arguments\n    })));\n    const toggleCollapsedMode = this._inlineEditsShowCollapsed.map((showCollapsed) =\u003e showCollapsed ? option(createOptionArgs({\n      id: \"showExpanded\",\n      title: localize(1203, \"Show Expanded\"),\n      icon: Codicon.expandAll,\n      commandId: toggleShowCollapsedId\n    })) : option(createOptionArgs({\n      id: \"showCollapsed\",\n      title: localize(1204, \"Show Collapsed\"),\n      icon: Codicon.collapseAll,\n      commandId: toggleShowCollapsedId\n    })));\n    const settings = option(createOptionArgs({\n      id: \"settings\",\n      title: localize(1205, \"Settings\"),\n      icon: Codicon.gear,\n      commandId: \"workbench.action.openSettings\",\n      commandArgs: [\"@tag:nextEditSuggestions\"]\n    }));\n    const actions = this._model.action ? [this._model.action] : [];\n    const actionBarFooter = actions.length \u003e 0 ? actionBar(actions.map((action) =\u003e ({\n      id: action.id,\n      label: action.title,\n      enabled: true,\n      run: () =\u003e this._commandService.executeCommand(action.id, ...action.arguments ?? []),\n      class: void 0,\n      tooltip: action.tooltip ?? action.title\n    })), {\n      hoverDelegate: nativeHoverDelegate\n      /* unable to show hover inside another hover */\n    }) : void 0;\n    return hoverContent([\n      title,\n      gotoAndAccept,\n      reject,\n      toggleCollapsedMode,\n      settings,\n      extensionCommands.length ? separator() : void 0,\n      ...extensionCommands,\n      actionBarFooter ? separator() : void 0,\n      actionBarFooter\n    ]);\n  }\n  _getKeybinding(commandId) {\n    if (!commandId) {\n      return constObservable(void 0);\n    }\n    return observableFromEvent(this._contextKeyService.onDidChangeContext, () =\u003e this._keybindingService.lookupKeybinding(commandId));\n  }\n};\nGutterIndicatorMenuContent = __decorate113([\n  __param107(3, IContextKeyService),\n  __param107(4, IKeybindingService),\n  __param107(5, ICommandService)\n], GutterIndicatorMenuContent);\nfunction hoverContent(content) {\n  return n.div({\n    class: \"content\",\n    style: {\n      margin: 4,\n      minWidth: 150\n    }\n  }, content);\n}\nfunction header(title) {\n  return n.div({\n    class: \"header\",\n    style: {\n      color: asCssVariable(descriptionForeground),\n      fontSize: \"12px\",\n      fontWeight: \"600\",\n      padding: \"0 10px\",\n      lineHeight: 26\n    }\n  }, [title]);\n}\nfunction option(props) {\n  return derived({ name: \"inlineEdits.option\" }, (_reader) =\u003e n.div({\n    class: [\"monaco-menu-option\", props.isActive?.map((v) =\u003e v \u0026\u0026 \"active\")],\n    onmouseenter: () =\u003e props.onHoverChange?.(true),\n    onmouseleave: () =\u003e props.onHoverChange?.(false),\n    onclick: props.onAction,\n    onkeydown: (e) =\u003e {\n      if (e.key === \"Enter\") {\n        props.onAction?.();\n      }\n    },\n    tabIndex: 0,\n    style: {\n      borderRadius: 3\n      // same as hover widget border radius\n    }\n  }, [\n    n.elem(\"span\", {\n      style: {\n        fontSize: 16,\n        display: \"flex\"\n      }\n    }, [ThemeIcon.isThemeIcon(props.icon) ? renderIcon(props.icon) : props.icon.map((icon) =\u003e renderIcon(icon))]),\n    n.elem(\"span\", {}, [props.title]),\n    n.div({\n      style: { marginLeft: \"auto\" },\n      ref: (elem) =\u003e {\n        const keybindingLabel = _reader.store.add(new KeybindingLabel(elem, OS, {\n          disableTitle: true,\n          ...defaultKeybindingLabelStyles,\n          keybindingLabelShadow: void 0,\n          keybindingLabelBackground: asCssVariable(keybindingLabelBackground),\n          keybindingLabelBorder: \"transparent\",\n          keybindingLabelBottomBorder: void 0\n        }));\n        _reader.store.add(autorun((reader) =\u003e {\n          keybindingLabel.set(props.keybinding.read(reader));\n        }));\n      }\n    })\n  ]));\n}\nfunction actionBar(actions, options2) {\n  return derived({ name: \"inlineEdits.actionBar\" }, (_reader) =\u003e n.div({\n    class: [\"action-widget-action-bar\"],\n    style: {\n      padding: \"0 10px\"\n    }\n  }, [\n    n.div({\n      ref: (elem) =\u003e {\n        const actionBar2 = _reader.store.add(new ActionBar(elem, options2));\n        actionBar2.push(actions, { icon: false, label: true });\n      }\n    })\n  ]));\n}\nfunction separator() {\n  return n.div({\n    id: \"inline-edit-gutter-indicator-menu-separator\",\n    class: \"menu-separator\",\n    style: {\n      color: asCssVariable(editorActionListForeground),\n      padding: \"4px 0\"\n    }\n  }, n.div({\n    style: {\n      borderBottom: `1px solid ${asCssVariable(editorHoverBorder)}`\n    }\n  }));\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorView.js\nvar __decorate114 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param108 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineEditsGutterIndicator = class InlineEditsGutterIndicator2 extends Disposable {\n  get model() {\n    const model = this._model.get();\n    if (!model) {\n      throw new BugIndicatingError(\"Inline Edit Model not available\");\n    }\n    return model;\n  }\n  constructor(_editorObs, _originalRange, _verticalOffset, _model, _isHoveringOverInlineEdit, _focusIsInMenu, _hoverService, _instantiationService, _accessibilityService, themeService) {\n    super();\n    this._editorObs = _editorObs;\n    this._originalRange = _originalRange;\n    this._verticalOffset = _verticalOffset;\n    this._model = _model;\n    this._isHoveringOverInlineEdit = _isHoveringOverInlineEdit;\n    this._focusIsInMenu = _focusIsInMenu;\n    this._hoverService = _hoverService;\n    this._instantiationService = _instantiationService;\n    this._accessibilityService = _accessibilityService;\n    this._tabAction = derived(this, (reader) =\u003e {\n      const model = this._model.read(reader);\n      if (!model) {\n        return InlineEditTabAction.Inactive;\n      }\n      return model.tabAction.read(reader);\n    });\n    this._hoverVisible = observableValue(this, false);\n    this.isHoverVisible = this._hoverVisible;\n    this._isHoveredOverIcon = observableValue(this, false);\n    this._isHoveredOverIconDebounced = debouncedObservable(this._isHoveredOverIcon, 100);\n    this.isHoveredOverIcon = this._isHoveredOverIconDebounced;\n    this._isHoveredOverInlineEditDebounced = debouncedObservable(this._isHoveringOverInlineEdit, 100);\n    this._gutterIndicatorStyles = this._tabAction.map((v, reader) =\u003e {\n      switch (v) {\n        case InlineEditTabAction.Inactive:\n          return {\n            background: getEditorBlendedColor(inlineEditIndicatorSecondaryBackground, themeService).read(reader).toString(),\n            foreground: getEditorBlendedColor(inlineEditIndicatorSecondaryForeground, themeService).read(reader).toString(),\n            border: getEditorBlendedColor(inlineEditIndicatorSecondaryBorder, themeService).read(reader).toString()\n          };\n        case InlineEditTabAction.Jump:\n          return {\n            background: getEditorBlendedColor(inlineEditIndicatorPrimaryBackground, themeService).read(reader).toString(),\n            foreground: getEditorBlendedColor(inlineEditIndicatorPrimaryForeground, themeService).read(reader).toString(),\n            border: getEditorBlendedColor(inlineEditIndicatorPrimaryBorder, themeService).read(reader).toString()\n          };\n        case InlineEditTabAction.Accept:\n          return {\n            background: getEditorBlendedColor(inlineEditIndicatorsuccessfulBackground, themeService).read(reader).toString(),\n            foreground: getEditorBlendedColor(inlineEditIndicatorsuccessfulForeground, themeService).read(reader).toString(),\n            border: getEditorBlendedColor(inlineEditIndicatorsuccessfulBorder, themeService).read(reader).toString()\n          };\n      }\n    });\n    this._originalRangeObs = mapOutFalsy(this._originalRange);\n    this._state = derived(this, (reader) =\u003e {\n      const range2 = this._originalRangeObs.read(reader);\n      if (!range2) {\n        return void 0;\n      }\n      return {\n        range: range2,\n        lineOffsetRange: this._editorObs.observeLineOffsetRange(range2, this._store)\n      };\n    });\n    this._stickyScrollController = StickyScrollController2.get(this._editorObs.editor);\n    this._stickyScrollHeight = this._stickyScrollController ? observableFromEvent(this._stickyScrollController.onDidChangeStickyScrollHeight, () =\u003e this._stickyScrollController.stickyScrollWidgetHeight) : constObservable(0);\n    this._lineNumberToRender = derived(this, (reader) =\u003e {\n      if (this._verticalOffset.read(reader) !== 0) {\n        return \"\";\n      }\n      const lineNumber = this._originalRange.read(reader)?.startLineNumber;\n      const lineNumberOptions = this._editorObs.getOption(\n        76\n        /* EditorOption.lineNumbers */\n      ).read(reader);\n      if (lineNumber === void 0 || lineNumberOptions.renderType === 0) {\n        return \"\";\n      }\n      if (lineNumberOptions.renderType === 3) {\n        const cursorPosition = this._editorObs.cursorPosition.read(reader);\n        if (lineNumber % 10 === 0 || cursorPosition \u0026\u0026 cursorPosition.lineNumber === lineNumber) {\n          return lineNumber.toString();\n        }\n        return \"\";\n      }\n      if (lineNumberOptions.renderType === 2) {\n        const cursorPosition = this._editorObs.cursorPosition.read(reader);\n        if (!cursorPosition) {\n          return \"\";\n        }\n        const relativeLineNumber = Math.abs(lineNumber - cursorPosition.lineNumber);\n        if (relativeLineNumber === 0) {\n          return lineNumber.toString();\n        }\n        return relativeLineNumber.toString();\n      }\n      if (lineNumberOptions.renderType === 4) {\n        if (lineNumberOptions.renderFn) {\n          return lineNumberOptions.renderFn(lineNumber);\n        }\n        return \"\";\n      }\n      return lineNumber.toString();\n    });\n    this._availableWidthForIcon = derived(this, (reader) =\u003e {\n      const textModel = this._editorObs.editor.getModel();\n      const editor2 = this._editorObs.editor;\n      const layout2 = this._editorObs.layoutInfo.read(reader);\n      const gutterWidth = layout2.decorationsLeft + layout2.decorationsWidth - layout2.glyphMarginLeft;\n      if (!textModel || gutterWidth \u003c= 0) {\n        return () =\u003e 0;\n      }\n      if (layout2.lineNumbersLeft === 0) {\n        return () =\u003e gutterWidth;\n      }\n      const lineNumberOptions = this._editorObs.getOption(\n        76\n        /* EditorOption.lineNumbers */\n      ).read(reader);\n      if (lineNumberOptions.renderType === 2 || /* likely to flicker */\n      lineNumberOptions.renderType === 0) {\n        return () =\u003e gutterWidth;\n      }\n      const w = editor2.getOption(\n        59\n        /* EditorOption.fontInfo */\n      ).typicalHalfwidthCharacterWidth;\n      const rightOfLineNumber = layout2.lineNumbersLeft + layout2.lineNumbersWidth;\n      const totalLines = textModel.getLineCount();\n      const totalLinesDigits = (totalLines + 1).toString().length;\n      const offsetDigits = [];\n      for (let digits = 1; digits \u003c= totalLinesDigits; digits++) {\n        const firstLineNumberWithDigitCount = 10 ** (digits - 1);\n        const topOfLineNumber = editor2.getTopForLineNumber(firstLineNumberWithDigitCount);\n        const digitsWidth = digits * w;\n        const usableWidthLeftOfLineNumber = Math.min(gutterWidth, Math.max(0, rightOfLineNumber - digitsWidth - layout2.glyphMarginLeft));\n        offsetDigits.push({ firstLineNumberWithDigitCount, topOfLineNumber, usableWidthLeftOfLineNumber });\n      }\n      return (topOffset) =\u003e {\n        for (let i2 = offsetDigits.length - 1; i2 \u003e= 0; i2--) {\n          if (topOffset \u003e= offsetDigits[i2].topOfLineNumber) {\n            return offsetDigits[i2].usableWidthLeftOfLineNumber;\n          }\n        }\n        throw new BugIndicatingError(\"Could not find avilable width for icon\");\n      };\n    });\n    this._layout = derived(this, (reader) =\u003e {\n      const s = this._state.read(reader);\n      if (!s) {\n        return void 0;\n      }\n      const layout2 = this._editorObs.layoutInfo.read(reader);\n      const lineHeight = this._editorObs.observeLineHeightForLine(s.range.map((r) =\u003e r.startLineNumber)).read(reader);\n      const gutterViewPortPadding = 2;\n      const gutterWidthWithoutPadding = layout2.decorationsLeft + layout2.decorationsWidth - layout2.glyphMarginLeft - 2 * gutterViewPortPadding;\n      const gutterHeightWithoutPadding = layout2.height - 2 * gutterViewPortPadding;\n      const gutterViewPortWithStickyScroll = Rect.fromLeftTopWidthHeight(gutterViewPortPadding, gutterViewPortPadding, gutterWidthWithoutPadding, gutterHeightWithoutPadding);\n      const gutterViewPortWithoutStickyScrollWithoutPaddingTop = gutterViewPortWithStickyScroll.withTop(this._stickyScrollHeight.read(reader));\n      const gutterViewPortWithoutStickyScroll = gutterViewPortWithStickyScroll.withTop(gutterViewPortWithoutStickyScrollWithoutPaddingTop.top + gutterViewPortPadding);\n      const verticalEditRange = s.lineOffsetRange.read(reader);\n      const gutterEditArea = Rect.fromRanges(OffsetRange.fromTo(gutterViewPortWithoutStickyScroll.left, gutterViewPortWithoutStickyScroll.right), verticalEditRange);\n      const pillHeight = lineHeight;\n      const pillOffset = this._verticalOffset.read(reader);\n      const pillFullyDockedRect = gutterEditArea.withHeight(pillHeight).translateY(pillOffset);\n      const pillIsFullyDocked = gutterViewPortWithoutStickyScrollWithoutPaddingTop.containsRect(pillFullyDockedRect);\n      const iconNoneDocked = this._tabAction.map((action) =\u003e action === InlineEditTabAction.Accept ? Codicon.keyboardTab : Codicon.arrowRight);\n      const iconDocked = derived(this, (reader2) =\u003e {\n        if (this._isHoveredOverIconDebounced.read(reader2) || this._isHoveredOverInlineEditDebounced.read(reader2)) {\n          return Codicon.check;\n        }\n        if (this._tabAction.read(reader2) === InlineEditTabAction.Accept) {\n          return Codicon.keyboardTab;\n        }\n        const cursorLineNumber = this._editorObs.cursorLineNumber.read(reader2) ?? 0;\n        const editStartLineNumber = s.range.read(reader2).startLineNumber;\n        return cursorLineNumber \u003c= editStartLineNumber ? Codicon.keyboardTabAbove : Codicon.keyboardTabBelow;\n      });\n      const idealIconWidth = 22;\n      const minimalIconWidth = 16;\n      const iconWidth = (pillRect2) =\u003e {\n        const availableWidth = this._availableWidthForIcon.get()(pillRect2.bottom + this._editorObs.editor.getScrollTop()) - gutterViewPortPadding;\n        return Math.max(Math.min(availableWidth, idealIconWidth), minimalIconWidth);\n      };\n      if (pillIsFullyDocked) {\n        const pillRect2 = pillFullyDockedRect;\n        let lineNumberWidth;\n        if (layout2.lineNumbersWidth === 0) {\n          lineNumberWidth = Math.min(Math.max(layout2.lineNumbersLeft - gutterViewPortWithStickyScroll.left, 0), pillRect2.width - idealIconWidth);\n        } else {\n          lineNumberWidth = Math.max(layout2.lineNumbersLeft + layout2.lineNumbersWidth - gutterViewPortWithStickyScroll.left, 0);\n        }\n        const lineNumberRect = pillRect2.withWidth(lineNumberWidth);\n        const iconWidth2 = Math.max(Math.min(layout2.decorationsWidth, idealIconWidth), minimalIconWidth);\n        const iconRect2 = pillRect2.withWidth(iconWidth2).translateX(lineNumberWidth);\n        return {\n          gutterEditArea,\n          icon: iconDocked,\n          iconDirection: \"right\",\n          iconRect: iconRect2,\n          pillRect: pillRect2,\n          lineNumberRect\n        };\n      }\n      const pillPartiallyDockedPossibleArea = gutterViewPortWithStickyScroll.intersect(gutterEditArea);\n      const pillIsPartiallyDocked = pillPartiallyDockedPossibleArea \u0026\u0026 pillPartiallyDockedPossibleArea.height \u003e= pillHeight;\n      if (pillIsPartiallyDocked) {\n        const pillRectMoved2 = pillFullyDockedRect.moveToBeContainedIn(gutterViewPortWithoutStickyScroll).moveToBeContainedIn(pillPartiallyDockedPossibleArea);\n        const pillRect2 = pillRectMoved2.withWidth(iconWidth(pillRectMoved2));\n        const iconRect2 = pillRect2;\n        return {\n          gutterEditArea,\n          icon: iconDocked,\n          iconDirection: \"right\",\n          iconRect: iconRect2,\n          pillRect: pillRect2\n        };\n      }\n      const pillRectMoved = pillFullyDockedRect.moveToBeContainedIn(gutterViewPortWithStickyScroll);\n      const pillRect = pillRectMoved.withWidth(iconWidth(pillRectMoved));\n      const iconRect = pillRect;\n      const iconDirection = pillRect.top \u003c pillFullyDockedRect.top ? \"top\" : \"bottom\";\n      return {\n        gutterEditArea,\n        icon: iconNoneDocked,\n        iconDirection,\n        iconRect,\n        pillRect\n      };\n    });\n    this._iconRef = n.ref();\n    this.isVisible = this._layout.map((l) =\u003e !!l);\n    this._indicator = n.div({\n      class: \"inline-edits-view-gutter-indicator\",\n      onclick: () =\u003e {\n        const layout2 = this._layout.get();\n        const acceptOnClick = layout2?.icon.get() === Codicon.check;\n        this._editorObs.editor.focus();\n        if (acceptOnClick) {\n          this.model.accept();\n        } else {\n          this.model.jump();\n        }\n      },\n      tabIndex: 0,\n      style: {\n        position: \"absolute\",\n        overflow: \"visible\"\n      }\n    }, mapOutFalsy(this._layout).map((layout2) =\u003e !layout2 ? [] : [\n      n.div({\n        style: {\n          position: \"absolute\",\n          background: asCssVariable(inlineEditIndicatorBackground),\n          borderRadius: \"4px\",\n          ...rectToProps((reader) =\u003e layout2.read(reader).gutterEditArea)\n        }\n      }),\n      n.div({\n        class: \"icon\",\n        ref: this._iconRef,\n        onmouseenter: () =\u003e {\n          this._showHover();\n        },\n        style: {\n          cursor: \"pointer\",\n          zIndex: \"20\",\n          position: \"absolute\",\n          backgroundColor: this._gutterIndicatorStyles.map((v) =\u003e v.background),\n          [\"--vscodeIconForeground\"]: this._gutterIndicatorStyles.map((v) =\u003e v.foreground),\n          border: this._gutterIndicatorStyles.map((v) =\u003e `1px solid ${v.border}`),\n          boxSizing: \"border-box\",\n          borderRadius: \"4px\",\n          display: \"flex\",\n          justifyContent: \"flex-end\",\n          transition: \"background-color 0.2s ease-in-out, width 0.2s ease-in-out\",\n          ...rectToProps((reader) =\u003e layout2.read(reader).pillRect)\n        }\n      }, [\n        n.div({\n          className: \"line-number\",\n          style: {\n            lineHeight: layout2.map((l) =\u003e l.lineNumberRect ? l.lineNumberRect.height : 0),\n            display: layout2.map((l) =\u003e l.lineNumberRect ? \"flex\" : \"none\"),\n            alignItems: \"center\",\n            justifyContent: \"flex-end\",\n            width: layout2.map((l) =\u003e l.lineNumberRect ? l.lineNumberRect.width : 0),\n            height: \"100%\",\n            color: this._gutterIndicatorStyles.map((v) =\u003e v.foreground)\n          }\n        }, this._lineNumberToRender),\n        n.div({\n          style: {\n            rotate: layout2.map((l) =\u003e `${getRotationFromDirection(l.iconDirection)}deg`),\n            transition: \"rotate 0.2s ease-in-out\",\n            display: \"flex\",\n            alignItems: \"center\",\n            justifyContent: \"center\",\n            height: \"100%\",\n            marginRight: layout2.map((l) =\u003e l.pillRect.width - l.iconRect.width - (l.lineNumberRect?.width ?? 0)),\n            width: layout2.map((l) =\u003e l.iconRect.width)\n          }\n        }, [\n          layout2.map((l, reader) =\u003e renderIcon(l.icon.read(reader)))\n        ])\n      ])\n    ])).keepUpdated(this._store);\n    this._register(this._editorObs.createOverlayWidget({\n      domNode: this._indicator.element,\n      position: constObservable(null),\n      allowEditorOverflow: false,\n      minContentWidthInPx: constObservable(0)\n    }));\n    this._register(this._editorObs.editor.onMouseMove((e) =\u003e {\n      const state = this._state.get();\n      if (state === void 0) {\n        return;\n      }\n      const el = this._iconRef.element;\n      const rect = el.getBoundingClientRect();\n      const rectangularArea = Rect.fromLeftTopWidthHeight(rect.left, rect.top, rect.width, rect.height);\n      const point = new Point(e.event.posx, e.event.posy);\n      this._isHoveredOverIcon.set(rectangularArea.containsPoint(point), void 0);\n    }));\n    this._register(this._editorObs.editor.onDidScrollChange(() =\u003e {\n      this._isHoveredOverIcon.set(false, void 0);\n    }));\n    this._register(runOnChange(this._isHoveredOverInlineEditDebounced, (isHovering) =\u003e {\n      if (isHovering) {\n        this.triggerAnimation();\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      this._indicator.readEffect(reader);\n      if (this._indicator.element) {\n        this._editorObs.editor.applyFontInfo(this._indicator.element);\n      }\n    }));\n  }\n  triggerAnimation() {\n    if (this._accessibilityService.isMotionReduced()) {\n      return new Animation(null, null).finished;\n    }\n    const animation = this._iconRef.element.animate([\n      {\n        outline: `2px solid ${this._gutterIndicatorStyles.map((v) =\u003e v.border).get()}`,\n        outlineOffset: \"-1px\",\n        offset: 0\n      },\n      {\n        outline: `2px solid transparent`,\n        outlineOffset: \"10px\",\n        offset: 1\n      }\n    ], { duration: 500 });\n    return animation.finished;\n  }\n  _showHover() {\n    if (this._hoverVisible.get()) {\n      return;\n    }\n    const disposableStore = new DisposableStore();\n    const content = disposableStore.add(this._instantiationService.createInstance(GutterIndicatorMenuContent, this.model, (focusEditor) =\u003e {\n      if (focusEditor) {\n        this._editorObs.editor.focus();\n      }\n      h2?.dispose();\n    }, this._editorObs).toDisposableLiveElement());\n    const focusTracker = disposableStore.add(trackFocus(content.element));\n    disposableStore.add(focusTracker.onDidBlur(() =\u003e this._focusIsInMenu.set(false, void 0)));\n    disposableStore.add(focusTracker.onDidFocus(() =\u003e this._focusIsInMenu.set(true, void 0)));\n    disposableStore.add(toDisposable(() =\u003e this._focusIsInMenu.set(false, void 0)));\n    const h2 = this._hoverService.showInstantHover({\n      target: this._iconRef.element,\n      content: content.element\n    });\n    if (h2) {\n      this._hoverVisible.set(true, void 0);\n      disposableStore.add(this._editorObs.editor.onDidScrollChange(() =\u003e h2.dispose()));\n      disposableStore.add(h2.onDispose(() =\u003e {\n        this._hoverVisible.set(false, void 0);\n        disposableStore.dispose();\n      }));\n    } else {\n      disposableStore.dispose();\n    }\n  }\n};\nInlineEditsGutterIndicator = __decorate114([\n  __param108(6, IHoverService),\n  __param108(7, IInstantiationService),\n  __param108(8, IAccessibilityService),\n  __param108(9, IThemeService)\n], InlineEditsGutterIndicator);\nfunction getRotationFromDirection(direction) {\n  switch (direction) {\n    case \"top\":\n      return 90;\n    case \"bottom\":\n      return -90;\n    case \"right\":\n      return 0;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsNewUsers.js\ninit_async();\ninit_errors();\ninit_lifecycle();\ninit_observable();\ninit_configuration();\nvar __decorate115 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param109 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar UserKind;\n(function(UserKind2) {\n  UserKind2[\"FirstTime\"] = \"firstTime\";\n  UserKind2[\"SecondTime\"] = \"secondTime\";\n  UserKind2[\"Active\"] = \"active\";\n})(UserKind || (UserKind = {}));\nvar InlineEditsOnboardingExperience = class InlineEditsOnboardingExperience2 extends Disposable {\n  constructor(_host, _model, _indicator, _collapsedView, _storageService, _configurationService) {\n    super();\n    this._host = _host;\n    this._model = _model;\n    this._indicator = _indicator;\n    this._collapsedView = _collapsedView;\n    this._storageService = _storageService;\n    this._configurationService = _configurationService;\n    this._disposables = this._register(new MutableDisposable());\n    this._setupDone = observableValue({ name: \"setupDone\" }, false);\n    this._activeCompletionId = derived((reader) =\u003e {\n      const model = this._model.read(reader);\n      if (!model) {\n        return void 0;\n      }\n      if (!this._setupDone.read(reader)) {\n        return void 0;\n      }\n      const indicator = this._indicator.read(reader);\n      if (!indicator || !indicator.isVisible.read(reader)) {\n        return void 0;\n      }\n      return model.inlineEdit.inlineCompletion.identity.id;\n    });\n    this._register(this._initializeDebugSetting());\n    this._disposables.value = this.setupNewUserExperience();\n    this._setupDone.set(true, void 0);\n  }\n  setupNewUserExperience() {\n    if (this.getNewUserType() === UserKind.Active) {\n      return void 0;\n    }\n    const disposableStore = new DisposableStore();\n    let userHasHoveredOverIcon = false;\n    let inlineEditHasBeenAccepted = false;\n    let firstTimeUserAnimationCount = 0;\n    let secondTimeUserAnimationCount = 0;\n    disposableStore.add(runOnChangeWithCancellationToken(this._activeCompletionId, async (id, _, __, token) =\u003e {\n      if (id === void 0) {\n        return;\n      }\n      let userType = this.getNewUserType();\n      switch (userType) {\n        case UserKind.FirstTime: {\n          if (firstTimeUserAnimationCount++ \u003e= 5 || userHasHoveredOverIcon) {\n            userType = UserKind.SecondTime;\n            this.setNewUserType(userType);\n          }\n          break;\n        }\n        case UserKind.SecondTime: {\n          if (secondTimeUserAnimationCount++ \u003e= 3 \u0026\u0026 inlineEditHasBeenAccepted) {\n            userType = UserKind.Active;\n            this.setNewUserType(userType);\n          }\n          break;\n        }\n      }\n      switch (userType) {\n        case UserKind.FirstTime: {\n          for (let i2 = 0; i2 \u003c 3 \u0026\u0026 !token.isCancellationRequested; i2++) {\n            await this._indicator.get()?.triggerAnimation();\n            await timeout(500);\n          }\n          break;\n        }\n        case UserKind.SecondTime: {\n          this._indicator.get()?.triggerAnimation();\n          break;\n        }\n      }\n    }));\n    disposableStore.add(autorun((reader) =\u003e {\n      if (this._collapsedView.isVisible.read(reader)) {\n        if (this.getNewUserType() !== UserKind.Active) {\n          this._collapsedView.triggerAnimation();\n        }\n      }\n    }));\n    disposableStore.add(autorunWithStore((reader, store) =\u003e {\n      const indicator = this._indicator.read(reader);\n      if (!indicator) {\n        return;\n      }\n      store.add(runOnChange(indicator.isHoveredOverIcon, async (isHovered) =\u003e {\n        if (isHovered) {\n          userHasHoveredOverIcon = true;\n        }\n      }));\n    }));\n    disposableStore.add(autorunWithStore((reader, store) =\u003e {\n      const host = this._host.read(reader);\n      if (!host) {\n        return;\n      }\n      store.add(host.onDidAccept(() =\u003e {\n        inlineEditHasBeenAccepted = true;\n      }));\n    }));\n    return disposableStore;\n  }\n  getNewUserType() {\n    return this._storageService.get(\"inlineEditsGutterIndicatorUserKind\", -1, UserKind.FirstTime);\n  }\n  setNewUserType(value) {\n    switch (value) {\n      case UserKind.FirstTime:\n        throw new BugIndicatingError(\"UserKind should not be set to first time\");\n      case UserKind.SecondTime:\n        break;\n      case UserKind.Active:\n        this._disposables.clear();\n        break;\n    }\n    this._storageService.store(\n      \"inlineEditsGutterIndicatorUserKind\",\n      value,\n      -1,\n      0\n      /* StorageTarget.USER */\n    );\n  }\n  _initializeDebugSetting() {\n    const hiddenDebugSetting = \"editor.inlineSuggest.edits.resetNewUserExperience\";\n    if (this._configurationService.getValue(hiddenDebugSetting)) {\n      this._storageService.remove(\n        \"inlineEditsGutterIndicatorUserKind\",\n        -1\n        /* StorageScope.APPLICATION */\n      );\n    }\n    const disposable = this._configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(hiddenDebugSetting) \u0026\u0026 this._configurationService.getValue(hiddenDebugSetting)) {\n        this._storageService.remove(\n          \"inlineEditsGutterIndicatorUserKind\",\n          -1\n          /* StorageScope.APPLICATION */\n        );\n        this._disposables.value = this.setupNewUserExperience();\n      }\n    });\n    return disposable;\n  }\n};\nInlineEditsOnboardingExperience = __decorate115([\n  __param109(4, IStorageService),\n  __param109(5, IConfigurationService)\n], InlineEditsOnboardingExperience);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCollapsedView.js\ninit_dom();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_colorUtils();\ninit_observableCodeEditor();\ninit_point();\nvar __decorate116 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param110 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineEditsCollapsedView = class InlineEditsCollapsedView2 extends Disposable {\n  constructor(_editor, _edit, _accessibilityService) {\n    super();\n    this._editor = _editor;\n    this._edit = _edit;\n    this._accessibilityService = _accessibilityService;\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._iconRef = n.ref();\n    this.isHovered = constObservable(false);\n    this._editorObs = observableCodeEditor(this._editor);\n    const firstEdit = this._edit.map((inlineEdit) =\u003e inlineEdit?.edit.replacements[0] ?? null);\n    const startPosition = firstEdit.map((edit2) =\u003e edit2 ? singleTextRemoveCommonPrefix(edit2, this._editor.getModel()).range.getStartPosition() : null);\n    const observedStartPoint = this._editorObs.observePosition(startPosition, this._store);\n    const startPoint = derived((reader) =\u003e {\n      const point = observedStartPoint.read(reader);\n      if (!point) {\n        return null;\n      }\n      const contentLeft = this._editorObs.layoutInfoContentLeft.read(reader);\n      const scrollLeft = this._editorObs.scrollLeft.read(reader);\n      return new Point(contentLeft + point.x - scrollLeft, point.y);\n    });\n    const overlayElement = n.div({\n      class: \"inline-edits-collapsed-view\",\n      style: {\n        position: \"absolute\",\n        overflow: \"visible\",\n        top: \"0px\",\n        left: \"0px\",\n        display: \"block\"\n      }\n    }, [\n      [this.getCollapsedIndicator(startPoint)]\n    ]).keepUpdated(this._store).element;\n    this._register(this._editorObs.createOverlayWidget({\n      domNode: overlayElement,\n      position: constObservable(null),\n      allowEditorOverflow: false,\n      minContentWidthInPx: constObservable(0)\n    }));\n    this.isVisible = this._edit.map((inlineEdit, reader) =\u003e !!inlineEdit \u0026\u0026 startPoint.read(reader) !== null);\n  }\n  triggerAnimation() {\n    if (this._accessibilityService.isMotionReduced()) {\n      return new Animation(null, null).finished;\n    }\n    const animation = this._iconRef.element.animate([\n      { offset: 0, transform: \"translateY(-3px)\" },\n      { offset: 0.2, transform: \"translateY(1px)\" },\n      { offset: 0.36, transform: \"translateY(-1px)\" },\n      { offset: 0.52, transform: \"translateY(1px)\" },\n      { offset: 0.68, transform: \"translateY(-1px)\" },\n      { offset: 0.84, transform: \"translateY(1px)\" },\n      { offset: 1, transform: \"translateY(0px)\" }\n    ], { duration: 2e3 });\n    return animation.finished;\n  }\n  getCollapsedIndicator(startPoint) {\n    const contentLeft = this._editorObs.layoutInfoContentLeft;\n    const startPointTranslated = startPoint.map((p, reader) =\u003e p ? p.deltaX(-contentLeft.read(reader)) : null);\n    const iconPath = this.createIconPath(startPointTranslated);\n    return n.svg({\n      class: \"collapsedView\",\n      ref: this._iconRef,\n      style: {\n        position: \"absolute\",\n        ...rectToProps((r) =\u003e getEditorValidOverlayRect(this._editorObs).read(r)),\n        overflow: \"hidden\",\n        pointerEvents: \"none\"\n      }\n    }, [\n      n.svgElem(\"path\", {\n        class: \"collapsedViewPath\",\n        d: iconPath,\n        fill: asCssVariable(inlineEditIndicatorPrimaryBorder)\n      })\n    ]);\n  }\n  createIconPath(indicatorPoint) {\n    const width2 = 6;\n    const triangleHeight = 3;\n    const baseHeight = 1;\n    return indicatorPoint.map((point) =\u003e {\n      if (!point) {\n        return new PathBuilder().build();\n      }\n      const baseTopLeft = point.deltaX(-width2 / 2).deltaY(-baseHeight);\n      const baseTopRight = baseTopLeft.deltaX(width2);\n      const baseBottomLeft = baseTopLeft.deltaY(baseHeight);\n      const baseBottomRight = baseTopRight.deltaY(baseHeight);\n      const triangleBottomCenter = baseBottomLeft.deltaX(width2 / 2).deltaY(triangleHeight);\n      return new PathBuilder().moveTo(baseTopLeft).lineTo(baseTopRight).lineTo(baseBottomRight).lineTo(triangleBottomCenter).lineTo(baseBottomLeft).lineTo(baseTopLeft).build();\n    });\n  }\n};\nInlineEditsCollapsedView = __decorate116([\n  __param110(2, IAccessibilityService)\n], InlineEditsCollapsedView);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsCustomView.js\ninit_dom();\ninit_mouseEvent();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_colorRegistry();\ninit_colorUtils();\ninit_themeService();\ninit_observableCodeEditor();\ninit_lineRange();\ninit_languages();\ninit_language();\ninit_lineTokens();\nvar __decorate117 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param111 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MIN_END_OF_LINE_PADDING = 14;\nvar PADDING_VERTICALLY = 0;\nvar PADDING_HORIZONTALLY = 4;\nvar HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW = 4;\nvar VERTICAL_OFFSET_WHEN_ABOVE_BELOW = 2;\nvar InlineEditsCustomView = class InlineEditsCustomView2 extends Disposable {\n  constructor(_editor, displayLocation, tabAction, themeService, _languageService) {\n    super();\n    this._editor = _editor;\n    this._languageService = _languageService;\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._isHovered = observableValue(this, false);\n    this.isHovered = this._isHovered;\n    this._viewRef = n.ref();\n    this._editorObs = observableCodeEditor(this._editor);\n    const styles = tabAction.map((v, reader) =\u003e {\n      let border;\n      switch (v) {\n        case InlineEditTabAction.Inactive:\n          border = inlineEditIndicatorSecondaryBackground;\n          break;\n        case InlineEditTabAction.Jump:\n          border = inlineEditIndicatorPrimaryBackground;\n          break;\n        case InlineEditTabAction.Accept:\n          border = inlineEditIndicatorsuccessfulBackground;\n          break;\n      }\n      return {\n        border: getEditorBlendedColor(border, themeService).read(reader).toString(),\n        background: asCssVariable(editorBackground)\n      };\n    });\n    const state = displayLocation.map((dl) =\u003e dl ? this.getState(dl) : void 0);\n    const view = state.map((s) =\u003e s ? this.getRendering(s, styles) : void 0);\n    this.minEditorScrollHeight = derived(this, (reader) =\u003e {\n      const s = state.read(reader);\n      if (!s) {\n        return 0;\n      }\n      return s.rect.read(reader).bottom + this._editor.getScrollTop();\n    });\n    const overlay = n.div({\n      class: \"inline-edits-custom-view\",\n      style: {\n        position: \"absolute\",\n        overflow: \"visible\",\n        top: \"0px\",\n        left: \"0px\",\n        display: \"block\"\n      }\n    }, [view]).keepUpdated(this._store);\n    this._register(this._editorObs.createOverlayWidget({\n      domNode: overlay.element,\n      position: constObservable(null),\n      allowEditorOverflow: false,\n      minContentWidthInPx: derivedObservableWithCache(this, (reader, prev) =\u003e {\n        const s = state.read(reader);\n        if (!s) {\n          return prev ?? 0;\n        }\n        const current = s.rect.map((rect) =\u003e rect.right).read(reader) + this._editorObs.layoutInfoVerticalScrollbarWidth.read(reader) + PADDING_HORIZONTALLY - this._editorObs.layoutInfoContentLeft.read(reader);\n        return Math.max(prev ?? 0, current);\n      }).recomputeInitiallyAndOnChange(this._store)\n    }));\n    this._register(autorun((reader) =\u003e {\n      const v = view.read(reader);\n      if (!v) {\n        this._isHovered.set(false, void 0);\n        return;\n      }\n      this._isHovered.set(overlay.isHovered.read(reader), void 0);\n    }));\n  }\n  // TODO: this is very similar to side by side `fitsInsideViewport`, try to use the same function\n  fitsInsideViewport(range2, displayLabel, reader) {\n    const editorWidth = this._editorObs.layoutInfoWidth.read(reader);\n    const editorContentLeft = this._editorObs.layoutInfoContentLeft.read(reader);\n    const editorVerticalScrollbar = this._editor.getLayoutInfo().verticalScrollbarWidth;\n    const minimapWidth = this._editorObs.layoutInfoMinimap.read(reader).minimapLeft !== 0 ? this._editorObs.layoutInfoMinimap.read(reader).minimapWidth : 0;\n    const maxOriginalContent = maxContentWidthInRange(this._editorObs, range2, void 0);\n    const maxModifiedContent = getContentRenderWidth(displayLabel, this._editor, this._editor.getModel());\n    const padding = PADDING_HORIZONTALLY + MIN_END_OF_LINE_PADDING;\n    return maxOriginalContent + maxModifiedContent + padding \u003c editorWidth - editorContentLeft - editorVerticalScrollbar - minimapWidth;\n  }\n  getState(displayLocation) {\n    const contentState = derived(this, (reader) =\u003e {\n      const startLineNumber2 = displayLocation.range.startLineNumber;\n      const endLineNumber2 = displayLocation.range.endLineNumber;\n      const startColumn = displayLocation.range.startColumn;\n      const endColumn = displayLocation.range.endColumn;\n      const lineCount = this._editor.getModel()?.getLineCount() ?? 0;\n      const lineWidth = maxContentWidthInRange(this._editorObs, new LineRange(startLineNumber2, startLineNumber2 + 1), reader);\n      const lineWidthBelow = startLineNumber2 + 1 \u003c= lineCount ? maxContentWidthInRange(this._editorObs, new LineRange(startLineNumber2 + 1, startLineNumber2 + 2), reader) : void 0;\n      const lineWidthAbove = startLineNumber2 - 1 \u003e= 1 ? maxContentWidthInRange(this._editorObs, new LineRange(startLineNumber2 - 1, startLineNumber2), reader) : void 0;\n      const startContentLeftOffset = this._editor.getOffsetForColumn(startLineNumber2, startColumn);\n      const endContentLeftOffset = this._editor.getOffsetForColumn(endLineNumber2, endColumn);\n      return {\n        lineWidth,\n        lineWidthBelow,\n        lineWidthAbove,\n        startContentLeftOffset,\n        endContentLeftOffset\n      };\n    });\n    const startLineNumber = displayLocation.range.startLineNumber;\n    const endLineNumber = displayLocation.range.endLineNumber;\n    const fitsInsideViewport = this.fitsInsideViewport(new LineRange(startLineNumber, endLineNumber + 1), displayLocation.label, void 0);\n    const rect = derived(this, (reader) =\u003e {\n      const w = this._editorObs.getOption(\n        59\n        /* EditorOption.fontInfo */\n      ).read(reader).typicalHalfwidthCharacterWidth;\n      const { lineWidth, lineWidthBelow, lineWidthAbove, startContentLeftOffset, endContentLeftOffset } = contentState.read(reader);\n      const contentLeft = this._editorObs.layoutInfoContentLeft.read(reader);\n      const lineHeight = this._editorObs.observeLineHeightForLine(startLineNumber).recomputeInitiallyAndOnChange(reader.store).read(reader);\n      const scrollTop = this._editorObs.scrollTop.read(reader);\n      const scrollLeft = this._editorObs.scrollLeft.read(reader);\n      let position;\n      if (startLineNumber === endLineNumber \u0026\u0026 endContentLeftOffset + 5 * w \u003e= lineWidth \u0026\u0026 fitsInsideViewport) {\n        position = \"end\";\n      } else if (lineWidthBelow !== void 0 \u0026\u0026 lineWidthBelow + MIN_END_OF_LINE_PADDING - HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW - PADDING_HORIZONTALLY \u003c startContentLeftOffset) {\n        position = \"below\";\n      } else if (lineWidthAbove !== void 0 \u0026\u0026 lineWidthAbove + MIN_END_OF_LINE_PADDING - HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW - PADDING_HORIZONTALLY \u003c startContentLeftOffset) {\n        position = \"above\";\n      } else {\n        position = \"end\";\n      }\n      let topOfLine;\n      let contentStartOffset;\n      let deltaX = 0;\n      let deltaY = 0;\n      switch (position) {\n        case \"end\": {\n          topOfLine = this._editorObs.editor.getTopForLineNumber(startLineNumber);\n          contentStartOffset = lineWidth;\n          deltaX = PADDING_HORIZONTALLY + MIN_END_OF_LINE_PADDING;\n          break;\n        }\n        case \"below\": {\n          topOfLine = this._editorObs.editor.getTopForLineNumber(startLineNumber + 1);\n          contentStartOffset = startContentLeftOffset;\n          deltaX = PADDING_HORIZONTALLY + HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW;\n          deltaY = PADDING_VERTICALLY + VERTICAL_OFFSET_WHEN_ABOVE_BELOW;\n          break;\n        }\n        case \"above\": {\n          topOfLine = this._editorObs.editor.getTopForLineNumber(startLineNumber - 1);\n          contentStartOffset = startContentLeftOffset;\n          deltaX = PADDING_HORIZONTALLY + HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW;\n          deltaY = -PADDING_VERTICALLY + VERTICAL_OFFSET_WHEN_ABOVE_BELOW;\n          break;\n        }\n      }\n      const textRect = Rect.fromLeftTopWidthHeight(contentLeft + contentStartOffset - scrollLeft, topOfLine - scrollTop, w * displayLocation.label.length, lineHeight);\n      return textRect.withMargin(PADDING_VERTICALLY, PADDING_HORIZONTALLY).translateX(deltaX).translateY(deltaY);\n    });\n    return {\n      rect,\n      label: displayLocation.label,\n      kind: displayLocation.kind\n    };\n  }\n  getRendering(state, styles) {\n    const line = document.createElement(\"div\");\n    const t = this._editor.getModel().tokenization.tokenizeLinesAt(1, [state.label])?.[0];\n    let tokens;\n    if (t \u0026\u0026 state.kind === InlineCompletionDisplayLocationKind.Code) {\n      tokens = TokenArray.fromLineTokens(t).toLineTokens(state.label, this._languageService.languageIdCodec);\n    } else {\n      tokens = LineTokens.createEmpty(state.label, this._languageService.languageIdCodec);\n    }\n    const result = renderLines(new LineSource([tokens]), RenderOptions.fromEditor(this._editor).withSetWidth(false).withScrollBeyondLastColumn(0), [], line, true);\n    line.style.width = `${result.minWidthInPx}px`;\n    const rect = state.rect.map((r) =\u003e r.withMargin(0, PADDING_HORIZONTALLY));\n    return n.div({\n      class: \"collapsedView\",\n      ref: this._viewRef,\n      style: {\n        position: \"absolute\",\n        ...rectToProps((reader) =\u003e rect.read(reader)),\n        overflow: \"hidden\",\n        boxSizing: \"border-box\",\n        cursor: \"pointer\",\n        border: styles.map((s) =\u003e `1px solid ${s.border}`),\n        borderRadius: \"4px\",\n        backgroundColor: styles.map((s) =\u003e s.background),\n        display: \"flex\",\n        alignItems: \"center\",\n        justifyContent: \"center\",\n        whiteSpace: \"nowrap\"\n      },\n      onmousedown: (e) =\u003e {\n        e.preventDefault();\n      },\n      onclick: (e) =\u003e {\n        this._onDidClick.fire(new StandardMouseEvent(getWindow(e), e));\n      }\n    }, [\n      line\n    ]);\n  }\n};\nInlineEditsCustomView = __decorate117([\n  __param111(3, IThemeService),\n  __param111(4, ILanguageService)\n], InlineEditsCustomView);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsDeletionView.js\ninit_dom();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_colorRegistry();\ninit_colorUtils();\ninit_observableCodeEditor();\ninit_offsetRange();\ninit_position();\nvar HORIZONTAL_PADDING = 0;\nvar VERTICAL_PADDING = 0;\nvar BORDER_WIDTH = 1;\nvar WIDGET_SEPARATOR_WIDTH = 1;\nvar WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH = 3;\nvar BORDER_RADIUS = 4;\nvar InlineEditsDeletionView = class extends Disposable {\n  constructor(_editor, _edit, _uiState, _tabAction) {\n    super();\n    this._editor = _editor;\n    this._edit = _edit;\n    this._uiState = _uiState;\n    this._tabAction = _tabAction;\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._display = derived(this, (reader) =\u003e !!this._uiState.read(reader) ? \"block\" : \"none\");\n    this._editorMaxContentWidthInRange = derived(this, (reader) =\u003e {\n      const originalDisplayRange = this._originalDisplayRange.read(reader);\n      if (!originalDisplayRange) {\n        return constObservable(0);\n      }\n      this._editorObs.versionId.read(reader);\n      return derivedObservableWithCache(this, (reader2, lastValue) =\u003e {\n        const maxWidth = maxContentWidthInRange(this._editorObs, originalDisplayRange, reader2);\n        return Math.max(maxWidth, lastValue ?? 0);\n      });\n    }).map((v, r) =\u003e v.read(r));\n    this._maxPrefixTrim = derived(this, (reader) =\u003e {\n      const state = this._uiState.read(reader);\n      if (!state) {\n        return { prefixTrim: 0, prefixLeftOffset: 0 };\n      }\n      return getPrefixTrim(state.deletions, state.originalRange, [], this._editor);\n    });\n    this._editorLayoutInfo = derived(this, (reader) =\u003e {\n      const inlineEdit = this._edit.read(reader);\n      if (!inlineEdit) {\n        return null;\n      }\n      const state = this._uiState.read(reader);\n      if (!state) {\n        return null;\n      }\n      const editorLayout = this._editorObs.layoutInfo.read(reader);\n      const horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n      const w = this._editorObs.getOption(\n        59\n        /* EditorOption.fontInfo */\n      ).map((f) =\u003e f.typicalHalfwidthCharacterWidth).read(reader);\n      const right = editorLayout.contentLeft + Math.max(this._editorMaxContentWidthInRange.read(reader), w) - horizontalScrollOffset;\n      const range2 = inlineEdit.originalLineRange;\n      const selectionTop = this._originalVerticalStartPosition.read(reader) ?? this._editor.getTopForLineNumber(range2.startLineNumber) - this._editorObs.scrollTop.read(reader);\n      const selectionBottom = this._originalVerticalEndPosition.read(reader) ?? this._editor.getTopForLineNumber(range2.endLineNumberExclusive) - this._editorObs.scrollTop.read(reader);\n      const left = editorLayout.contentLeft + this._maxPrefixTrim.read(reader).prefixLeftOffset - horizontalScrollOffset;\n      if (right \u003c= left) {\n        return null;\n      }\n      const codeRect = Rect.fromLeftTopRightBottom(left, selectionTop, right, selectionBottom).withMargin(VERTICAL_PADDING, HORIZONTAL_PADDING);\n      return {\n        codeRect,\n        contentLeft: editorLayout.contentLeft\n      };\n    }).recomputeInitiallyAndOnChange(this._store);\n    this._originalOverlay = n.div({\n      style: { pointerEvents: \"none\" }\n    }, derived(this, (reader) =\u003e {\n      const layoutInfoObs = mapOutFalsy(this._editorLayoutInfo).read(reader);\n      if (!layoutInfoObs) {\n        return void 0;\n      }\n      const overlayhider = layoutInfoObs.map((layoutInfo) =\u003e Rect.fromLeftTopRightBottom(layoutInfo.contentLeft - BORDER_RADIUS - BORDER_WIDTH, layoutInfo.codeRect.top, layoutInfo.contentLeft, layoutInfo.codeRect.bottom));\n      const overlayRect = derived(this, (reader2) =\u003e {\n        const rect = layoutInfoObs.read(reader2).codeRect;\n        const overlayHider = overlayhider.read(reader2);\n        return rect.intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER));\n      });\n      const separatorWidth = this._uiState.map((s) =\u003e s?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH : WIDGET_SEPARATOR_WIDTH).read(reader);\n      const separatorRect = overlayRect.map((rect) =\u003e rect.withMargin(separatorWidth, separatorWidth));\n      return [\n        n.div({\n          class: \"originalSeparatorDeletion\",\n          style: {\n            ...separatorRect.read(reader).toStyles(),\n            borderRadius: `${BORDER_RADIUS}px`,\n            border: `${BORDER_WIDTH + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n            boxSizing: \"border-box\"\n          }\n        }),\n        n.div({\n          class: \"originalOverlayDeletion\",\n          style: {\n            ...overlayRect.read(reader).toStyles(),\n            borderRadius: `${BORDER_RADIUS}px`,\n            border: getOriginalBorderColor(this._tabAction).map((bc) =\u003e `${BORDER_WIDTH}px solid ${asCssVariable(bc)}`),\n            boxSizing: \"border-box\",\n            backgroundColor: asCssVariable(originalBackgroundColor)\n          }\n        }),\n        n.div({\n          class: \"originalOverlayHiderDeletion\",\n          style: {\n            ...overlayhider.read(reader).toStyles(),\n            backgroundColor: asCssVariable(editorBackground)\n          }\n        })\n      ];\n    })).keepUpdated(this._store);\n    this._nonOverflowView = n.div({\n      class: \"inline-edits-view\",\n      style: {\n        position: \"absolute\",\n        overflow: \"visible\",\n        top: \"0px\",\n        left: \"0px\",\n        display: this._display\n      }\n    }, [\n      [this._originalOverlay]\n    ]).keepUpdated(this._store);\n    this.isHovered = constObservable(false);\n    this._editorObs = observableCodeEditor(this._editor);\n    const originalStartPosition = derived(this, (reader) =\u003e {\n      const inlineEdit = this._edit.read(reader);\n      return inlineEdit ? new Position(inlineEdit.originalLineRange.startLineNumber, 1) : null;\n    });\n    const originalEndPosition = derived(this, (reader) =\u003e {\n      const inlineEdit = this._edit.read(reader);\n      return inlineEdit ? new Position(inlineEdit.originalLineRange.endLineNumberExclusive, 1) : null;\n    });\n    this._originalDisplayRange = this._uiState.map((s) =\u003e s?.originalRange);\n    this._originalVerticalStartPosition = this._editorObs.observePosition(originalStartPosition, this._store).map((p) =\u003e p?.y);\n    this._originalVerticalEndPosition = this._editorObs.observePosition(originalEndPosition, this._store).map((p) =\u003e p?.y);\n    this._register(this._editorObs.createOverlayWidget({\n      domNode: this._nonOverflowView.element,\n      position: constObservable(null),\n      allowEditorOverflow: false,\n      minContentWidthInPx: derived(this, (reader) =\u003e {\n        const info = this._editorLayoutInfo.read(reader);\n        if (info === null) {\n          return 0;\n        }\n        return info.codeRect.width;\n      })\n    }));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsInsertionView.js\ninit_dom();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\ninit_colorRegistry();\ninit_colorUtils();\ninit_observableCodeEditor();\ninit_position();\ninit_range();\ninit_lineRange();\ninit_offsetRange();\ninit_language();\ninit_lineTokens();\nvar __decorate118 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param112 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar BORDER_WIDTH2 = 1;\nvar WIDGET_SEPARATOR_WIDTH2 = 1;\nvar WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH2 = 3;\nvar BORDER_RADIUS2 = 4;\nvar InlineEditsInsertionView = class InlineEditsInsertionView2 extends Disposable {\n  constructor(_editor, _input, _tabAction, instantiationService, _languageService) {\n    super();\n    this._editor = _editor;\n    this._input = _input;\n    this._tabAction = _tabAction;\n    this._languageService = _languageService;\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._state = derived(this, (reader) =\u003e {\n      const state = this._input.read(reader);\n      if (!state) {\n        return void 0;\n      }\n      const textModel = this._editor.getModel();\n      const eol = textModel.getEOL();\n      if (state.startColumn === 1 \u0026\u0026 state.lineNumber \u003e 1 \u0026\u0026 textModel.getLineLength(state.lineNumber) !== 0 \u0026\u0026 state.text.endsWith(eol) \u0026\u0026 !state.text.startsWith(eol)) {\n        const endOfLineColumn = textModel.getLineLength(state.lineNumber - 1) + 1;\n        return { lineNumber: state.lineNumber - 1, column: endOfLineColumn, text: eol + state.text.slice(0, -eol.length) };\n      }\n      return { lineNumber: state.lineNumber, column: state.startColumn, text: state.text };\n    });\n    this._trimVertically = derived(this, (reader) =\u003e {\n      const state = this._state.read(reader);\n      const text2 = state?.text;\n      if (!text2 || text2.trim() === \"\") {\n        return { topOffset: 0, bottomOffset: 0, linesTop: 0, linesBottom: 0 };\n      }\n      const lineHeight = this._editor.getLineHeightForPosition(new Position(state.lineNumber, 1));\n      const eol = this._editor.getModel().getEOL();\n      let linesTop = 0;\n      let linesBottom = 0;\n      let i2 = 0;\n      for (; i2 \u003c text2.length \u0026\u0026 text2.startsWith(eol, i2); i2 += eol.length) {\n        linesTop += 1;\n      }\n      for (let j = text2.length; j \u003e i2 \u0026\u0026 text2.endsWith(eol, j); j -= eol.length) {\n        linesBottom += 1;\n      }\n      return { topOffset: linesTop * lineHeight, bottomOffset: linesBottom * lineHeight, linesTop, linesBottom };\n    });\n    this._maxPrefixTrim = derived(this, (reader) =\u003e {\n      const state = this._state.read(reader);\n      if (!state) {\n        return { prefixLeftOffset: 0, prefixTrim: 0 };\n      }\n      const textModel = this._editor.getModel();\n      const eol = textModel.getEOL();\n      const trimVertically = this._trimVertically.read(reader);\n      const lines = state.text.split(eol);\n      const modifiedLines = lines.slice(trimVertically.linesTop, lines.length - trimVertically.linesBottom);\n      if (trimVertically.linesTop === 0) {\n        modifiedLines[0] = textModel.getLineContent(state.lineNumber) + modifiedLines[0];\n      }\n      const originalRange = new LineRange(state.lineNumber, state.lineNumber + (trimVertically.linesTop \u003e 0 ? 0 : 1));\n      return getPrefixTrim([], originalRange, modifiedLines, this._editor);\n    });\n    this._ghostText = derived((reader) =\u003e {\n      const state = this._state.read(reader);\n      const prefixTrim = this._maxPrefixTrim.read(reader);\n      if (!state) {\n        return void 0;\n      }\n      const textModel = this._editor.getModel();\n      const eol = textModel.getEOL();\n      const modifiedLines = state.text.split(eol);\n      const inlineDecorations = modifiedLines.map((line, i2) =\u003e new InlineDecoration(\n        new Range(i2 + 1, i2 === 0 ? 1 : prefixTrim.prefixTrim + 1, i2 + 1, line.length + 1),\n        \"modified-background\",\n        0\n        /* InlineDecorationType.Regular */\n      ));\n      return new GhostText(state.lineNumber, [new GhostTextPart(state.column, state.text, false, inlineDecorations)]);\n    });\n    this._display = derived(this, (reader) =\u003e !!this._state.read(reader) ? \"block\" : \"none\");\n    this._editorMaxContentWidthInRange = derived(this, (reader) =\u003e {\n      const state = this._state.read(reader);\n      if (!state) {\n        return 0;\n      }\n      this._editorObs.versionId.read(reader);\n      const textModel = this._editor.getModel();\n      const eol = textModel.getEOL();\n      const textBeforeInsertion = state.text.startsWith(eol) ? \"\" : textModel.getValueInRange(new Range(state.lineNumber, 1, state.lineNumber, state.column));\n      const textAfterInsertion = textModel.getValueInRange(new Range(state.lineNumber, state.column, state.lineNumber, textModel.getLineLength(state.lineNumber) + 1));\n      const text2 = textBeforeInsertion + state.text + textAfterInsertion;\n      const lines = text2.split(eol);\n      const renderOptions = RenderOptions.fromEditor(this._editor).withSetWidth(false).withScrollBeyondLastColumn(0);\n      const lineWidths = lines.map((line) =\u003e {\n        const t = textModel.tokenization.tokenizeLinesAt(state.lineNumber, [line])?.[0];\n        let tokens;\n        if (t) {\n          tokens = TokenArray.fromLineTokens(t).toLineTokens(line, this._languageService.languageIdCodec);\n        } else {\n          tokens = LineTokens.createEmpty(line, this._languageService.languageIdCodec);\n        }\n        return renderLines(new LineSource([tokens]), renderOptions, [], $(\"div\"), true).minWidthInPx;\n      });\n      return Math.max(...lineWidths);\n    });\n    this.startLineOffset = this._trimVertically.map((v) =\u003e v.topOffset);\n    this.originalLines = this._state.map((s) =\u003e s ? new LineRange(s.lineNumber, Math.min(s.lineNumber + 2, this._editor.getModel().getLineCount() + 1)) : void 0);\n    this._overlayLayout = derived(this, (reader) =\u003e {\n      this._ghostText.read(reader);\n      const state = this._state.read(reader);\n      if (!state) {\n        return null;\n      }\n      this._editorObs.observePosition(observableValue(this, new Position(state.lineNumber, state.column)), reader.store).read(reader);\n      const editorLayout = this._editorObs.layoutInfo.read(reader);\n      const horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n      const verticalScrollbarWidth = this._editorObs.layoutInfoVerticalScrollbarWidth.read(reader);\n      const right = editorLayout.contentLeft + this._editorMaxContentWidthInRange.read(reader) - horizontalScrollOffset;\n      const prefixLeftOffset = this._maxPrefixTrim.read(reader).prefixLeftOffset ?? 0;\n      const left = editorLayout.contentLeft + prefixLeftOffset - horizontalScrollOffset;\n      if (right \u003c= left) {\n        return null;\n      }\n      const { topOffset: topTrim, bottomOffset: bottomTrim } = this._trimVertically.read(reader);\n      const scrollTop = this._editorObs.scrollTop.read(reader);\n      const height = this._ghostTextView.height.read(reader) - topTrim - bottomTrim;\n      const top = this._editor.getTopForLineNumber(state.lineNumber) - scrollTop + topTrim;\n      const bottom = top + height;\n      const overlay = new Rect(left, top, right, bottom);\n      return {\n        overlay,\n        startsAtContentLeft: prefixLeftOffset === 0,\n        contentLeft: editorLayout.contentLeft,\n        minContentWidthRequired: prefixLeftOffset + overlay.width + verticalScrollbarWidth\n      };\n    }).recomputeInitiallyAndOnChange(this._store);\n    this._modifiedOverlay = n.div({\n      style: { pointerEvents: \"none\" }\n    }, derived(this, (reader) =\u003e {\n      const overlayLayoutObs = mapOutFalsy(this._overlayLayout).read(reader);\n      if (!overlayLayoutObs) {\n        return void 0;\n      }\n      const overlayHider = overlayLayoutObs.map((layoutInfo) =\u003e Rect.fromLeftTopRightBottom(layoutInfo.contentLeft - BORDER_RADIUS2 - BORDER_WIDTH2, layoutInfo.overlay.top, layoutInfo.contentLeft, layoutInfo.overlay.bottom)).read(reader);\n      const separatorWidth = this._input.map((i2) =\u003e i2?.inDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH2 : WIDGET_SEPARATOR_WIDTH2).read(reader);\n      const overlayRect = overlayLayoutObs.map((l) =\u003e l.overlay.withMargin(0, BORDER_WIDTH2, 0, l.startsAtContentLeft ? 0 : BORDER_WIDTH2).intersectHorizontal(new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER)));\n      const underlayRect = overlayRect.map((rect) =\u003e rect.withMargin(separatorWidth, separatorWidth));\n      return [\n        n.div({\n          class: \"originalUnderlayInsertion\",\n          style: {\n            ...underlayRect.read(reader).toStyles(),\n            borderRadius: BORDER_RADIUS2,\n            border: `${BORDER_WIDTH2 + separatorWidth}px solid ${asCssVariable(editorBackground)}`,\n            boxSizing: \"border-box\"\n          }\n        }),\n        n.div({\n          class: \"originalOverlayInsertion\",\n          style: {\n            ...overlayRect.read(reader).toStyles(),\n            borderRadius: BORDER_RADIUS2,\n            border: getModifiedBorderColor(this._tabAction).map((bc) =\u003e `${BORDER_WIDTH2}px solid ${asCssVariable(bc)}`),\n            boxSizing: \"border-box\",\n            backgroundColor: asCssVariable(modifiedBackgroundColor)\n          }\n        }),\n        n.div({\n          class: \"originalOverlayHiderInsertion\",\n          style: {\n            ...overlayHider.toStyles(),\n            backgroundColor: asCssVariable(editorBackground)\n          }\n        })\n      ];\n    })).keepUpdated(this._store);\n    this._view = n.div({\n      class: \"inline-edits-view\",\n      style: {\n        position: \"absolute\",\n        overflow: \"visible\",\n        top: \"0px\",\n        left: \"0px\",\n        display: this._display\n      }\n    }, [\n      [this._modifiedOverlay]\n    ]).keepUpdated(this._store);\n    this._editorObs = observableCodeEditor(this._editor);\n    this._ghostTextView = this._register(instantiationService.createInstance(GhostTextView, this._editor, {\n      ghostText: this._ghostText,\n      minReservedLineCount: constObservable(0),\n      targetTextModel: this._editorObs.model.map((model) =\u003e model ?? void 0),\n      warning: constObservable(void 0),\n      handleInlineCompletionShown: constObservable(() =\u003e {\n      })\n    }, observableValue(this, { syntaxHighlightingEnabled: true, extraClasses: [\"inline-edit\"] }), true, true));\n    this.isHovered = this._ghostTextView.isHovered;\n    this._register(this._ghostTextView.onDidClick((e) =\u003e {\n      this._onDidClick.fire(e);\n    }));\n    this._register(this._editorObs.createOverlayWidget({\n      domNode: this._view.element,\n      position: constObservable(null),\n      allowEditorOverflow: false,\n      minContentWidthInPx: derived(this, (reader) =\u003e {\n        const info = this._overlayLayout.read(reader);\n        if (info === null) {\n          return 0;\n        }\n        return info.minContentWidthRequired;\n      })\n    }));\n  }\n};\nInlineEditsInsertionView = __decorate118([\n  __param112(3, IInstantiationService),\n  __param112(4, ILanguageService)\n], InlineEditsInsertionView);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsLineReplacementView.js\ninit_dom();\ninit_mouseEvent();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_colorRegistry();\ninit_colorUtils();\ninit_themeService();\ninit_point();\ninit_range();\ninit_offsetRange();\ninit_language();\ninit_lineTokens();\nvar __decorate119 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param113 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineEditsLineReplacementView = class InlineEditsLineReplacementView2 extends Disposable {\n  constructor(_editor, _edit, _isInDiffEditor, _tabAction, _languageService, _themeService) {\n    super();\n    this._editor = _editor;\n    this._edit = _edit;\n    this._isInDiffEditor = _isInDiffEditor;\n    this._tabAction = _tabAction;\n    this._languageService = _languageService;\n    this._themeService = _themeService;\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._maxPrefixTrim = this._edit.map((e) =\u003e e ? getPrefixTrim(e.replacements.flatMap((r) =\u003e [r.originalRange, r.modifiedRange]), e.originalRange, e.modifiedLines, this._editor.editor) : void 0);\n    this._modifiedLineElements = derived(this, (reader) =\u003e {\n      const lines = [];\n      let requiredWidth = 0;\n      const prefixTrim = this._maxPrefixTrim.read(reader);\n      const edit2 = this._edit.read(reader);\n      if (!edit2 || !prefixTrim) {\n        return void 0;\n      }\n      const maxPrefixTrim = prefixTrim.prefixTrim;\n      const modifiedBubbles = rangesToBubbleRanges(edit2.replacements.map((r) =\u003e r.modifiedRange)).map((r) =\u003e new Range(r.startLineNumber, r.startColumn - maxPrefixTrim, r.endLineNumber, r.endColumn - maxPrefixTrim));\n      const textModel = this._editor.model.get();\n      const startLineNumber = edit2.modifiedRange.startLineNumber;\n      for (let i2 = 0; i2 \u003c edit2.modifiedRange.length; i2++) {\n        const line = document.createElement(\"div\");\n        const lineNumber = startLineNumber + i2;\n        const modLine = edit2.modifiedLines[i2].slice(maxPrefixTrim);\n        const t = textModel.tokenization.tokenizeLinesAt(lineNumber, [modLine])?.[0];\n        let tokens;\n        if (t) {\n          tokens = TokenArray.fromLineTokens(t).toLineTokens(modLine, this._languageService.languageIdCodec);\n        } else {\n          tokens = LineTokens.createEmpty(modLine, this._languageService.languageIdCodec);\n        }\n        const decorations = [];\n        for (const modified of modifiedBubbles.filter((b) =\u003e b.startLineNumber === lineNumber)) {\n          const validatedEndColumn = Math.min(modified.endColumn, modLine.length + 1);\n          decorations.push(new InlineDecoration(\n            new Range(1, modified.startColumn, 1, validatedEndColumn),\n            \"inlineCompletions-modified-bubble\",\n            0\n            /* InlineDecorationType.Regular */\n          ));\n        }\n        const result = renderLines(new LineSource([tokens]), RenderOptions.fromEditor(this._editor.editor).withSetWidth(false).withScrollBeyondLastColumn(0), decorations, line, true);\n        this._editor.getOption(\n          59\n          /* EditorOption.fontInfo */\n        ).read(reader);\n        requiredWidth = Math.max(requiredWidth, result.minWidthInPx);\n        lines.push(line);\n      }\n      return { lines, requiredWidth };\n    });\n    this._layout = derived(this, (reader) =\u003e {\n      const modifiedLines = this._modifiedLineElements.read(reader);\n      const maxPrefixTrim = this._maxPrefixTrim.read(reader);\n      const edit2 = this._edit.read(reader);\n      if (!modifiedLines || !maxPrefixTrim || !edit2) {\n        return void 0;\n      }\n      const { prefixLeftOffset } = maxPrefixTrim;\n      const { requiredWidth } = modifiedLines;\n      const originalLineHeights = this._editor.observeLineHeightsForLineRange(edit2.originalRange).read(reader);\n      const modifiedLineHeights = (() =\u003e {\n        const lineHeights = originalLineHeights.slice(0, edit2.modifiedRange.length);\n        while (lineHeights.length \u003c edit2.modifiedRange.length) {\n          lineHeights.push(originalLineHeights[originalLineHeights.length - 1]);\n        }\n        return lineHeights;\n      })();\n      const contentLeft = this._editor.layoutInfoContentLeft.read(reader);\n      const verticalScrollbarWidth = this._editor.layoutInfoVerticalScrollbarWidth.read(reader);\n      const scrollLeft = this._editor.scrollLeft.read(reader);\n      const scrollTop = this._editor.scrollTop.read(reader);\n      const editorLeftOffset = contentLeft - scrollLeft;\n      const textModel = this._editor.editor.getModel();\n      const originalLineWidths = edit2.originalRange.mapToLineArray((line) =\u003e this._editor.editor.getOffsetForColumn(line, textModel.getLineMaxColumn(line)) - prefixLeftOffset);\n      const maxLineWidth = Math.max(...originalLineWidths, requiredWidth);\n      const startLineNumber = edit2.originalRange.startLineNumber;\n      const endLineNumber = edit2.originalRange.endLineNumberExclusive - 1;\n      const topOfOriginalLines = this._editor.editor.getTopForLineNumber(startLineNumber) - scrollTop;\n      const bottomOfOriginalLines = this._editor.editor.getBottomForLineNumber(endLineNumber) - scrollTop;\n      const originalLinesOverlay = Rect.fromLeftTopWidthHeight(editorLeftOffset + prefixLeftOffset, topOfOriginalLines, maxLineWidth, bottomOfOriginalLines - topOfOriginalLines);\n      const modifiedLinesOverlay = Rect.fromLeftTopWidthHeight(originalLinesOverlay.left, originalLinesOverlay.bottom, originalLinesOverlay.width, modifiedLineHeights.reduce((sum2, h2) =\u003e sum2 + h2, 0));\n      const background = Rect.hull([originalLinesOverlay, modifiedLinesOverlay]);\n      const lowerBackground = background.intersectVertical(new OffsetRange(originalLinesOverlay.bottom, Number.MAX_SAFE_INTEGER));\n      const lowerText = new Rect(lowerBackground.left, lowerBackground.top, lowerBackground.right, lowerBackground.bottom);\n      return {\n        originalLinesOverlay,\n        modifiedLinesOverlay,\n        background,\n        lowerBackground,\n        lowerText,\n        modifiedLineHeights,\n        minContentWidthRequired: prefixLeftOffset + maxLineWidth + verticalScrollbarWidth\n      };\n    });\n    this._viewZoneInfo = derived((reader) =\u003e {\n      const shouldShowViewZone = this._editor.getOption(\n        71\n        /* EditorOption.inlineSuggest */\n      ).map((o) =\u003e o.edits.allowCodeShifting === \"always\").read(reader);\n      if (!shouldShowViewZone) {\n        return void 0;\n      }\n      const layout2 = this._layout.read(reader);\n      const edit2 = this._edit.read(reader);\n      if (!layout2 || !edit2) {\n        return void 0;\n      }\n      const viewZoneHeight = layout2.lowerBackground.height;\n      const viewZoneLineNumber = edit2.originalRange.endLineNumberExclusive;\n      return { height: viewZoneHeight, lineNumber: viewZoneLineNumber };\n    });\n    this.minEditorScrollHeight = derived(this, (reader) =\u003e {\n      const layout2 = mapOutFalsy(this._layout).read(reader);\n      if (!layout2 || this._viewZoneInfo.read(reader) !== void 0) {\n        return 0;\n      }\n      return layout2.read(reader).lowerText.bottom + this._editor.editor.getScrollTop();\n    });\n    this._div = n.div({\n      class: \"line-replacement\"\n    }, [\n      derived(this, (reader) =\u003e {\n        const layout2 = mapOutFalsy(this._layout).read(reader);\n        const modifiedLineElements = this._modifiedLineElements.read(reader);\n        if (!layout2 || !modifiedLineElements) {\n          return [];\n        }\n        const layoutProps = layout2.read(reader);\n        const contentLeft = this._editor.layoutInfoContentLeft.read(reader);\n        const separatorWidth = this._isInDiffEditor.read(reader) ? 3 : 1;\n        modifiedLineElements.lines.forEach((l, i2) =\u003e {\n          l.style.width = `${layoutProps.lowerText.width}px`;\n          l.style.height = `${layoutProps.modifiedLineHeights[i2]}px`;\n          l.style.position = \"relative\";\n        });\n        const modifiedBorderColor = getModifiedBorderColor(this._tabAction).read(reader);\n        const originalBorderColor = getOriginalBorderColor(this._tabAction).read(reader);\n        return [\n          n.div({\n            style: {\n              position: \"absolute\",\n              ...rectToProps((r) =\u003e getEditorValidOverlayRect(this._editor).read(r)),\n              overflow: \"hidden\",\n              pointerEvents: \"none\"\n            }\n          }, [\n            n.div({\n              class: \"borderAroundLineReplacement\",\n              style: {\n                position: \"absolute\",\n                ...rectToProps((reader2) =\u003e layout2.read(reader2).background.translateX(-contentLeft).withMargin(separatorWidth)),\n                borderRadius: \"4px\",\n                border: `${separatorWidth + 1}px solid ${asCssVariable(editorBackground)}`,\n                boxSizing: \"border-box\",\n                pointerEvents: \"none\"\n              }\n            }),\n            n.div({\n              class: \"originalOverlayLineReplacement\",\n              style: {\n                position: \"absolute\",\n                ...rectToProps((reader2) =\u003e layout2.read(reader2).background.translateX(-contentLeft)),\n                borderRadius: \"4px\",\n                border: getEditorBlendedColor(originalBorderColor, this._themeService).map((c) =\u003e `1px solid ${c.toString()}`),\n                pointerEvents: \"none\",\n                boxSizing: \"border-box\",\n                background: asCssVariable(originalBackgroundColor)\n              }\n            }),\n            n.div({\n              class: \"modifiedOverlayLineReplacement\",\n              style: {\n                position: \"absolute\",\n                ...rectToProps((reader2) =\u003e layout2.read(reader2).lowerBackground.translateX(-contentLeft)),\n                borderRadius: \"0 0 4px 4px\",\n                background: asCssVariable(editorBackground),\n                boxShadow: `${asCssVariable(scrollbarShadow)} 0 6px 6px -6px`,\n                border: `1px solid ${asCssVariable(modifiedBorderColor)}`,\n                boxSizing: \"border-box\",\n                overflow: \"hidden\",\n                cursor: \"pointer\",\n                pointerEvents: \"auto\"\n              },\n              onmousedown: (e) =\u003e {\n                e.preventDefault();\n              },\n              onclick: (e) =\u003e this._onDidClick.fire(new StandardMouseEvent(getWindow(e), e))\n            }, [\n              n.div({\n                style: {\n                  position: \"absolute\",\n                  top: 0,\n                  left: 0,\n                  width: \"100%\",\n                  height: \"100%\",\n                  background: asCssVariable(modifiedChangedLineBackgroundColor)\n                }\n              })\n            ]),\n            n.div({\n              class: \"modifiedLinesLineReplacement\",\n              style: {\n                position: \"absolute\",\n                boxSizing: \"border-box\",\n                ...rectToProps((reader2) =\u003e layout2.read(reader2).lowerText.translateX(-contentLeft)),\n                fontFamily: this._editor.getOption(\n                  58\n                  /* EditorOption.fontFamily */\n                ),\n                fontSize: this._editor.getOption(\n                  61\n                  /* EditorOption.fontSize */\n                ),\n                fontWeight: this._editor.getOption(\n                  62\n                  /* EditorOption.fontWeight */\n                ),\n                pointerEvents: \"none\",\n                whiteSpace: \"nowrap\",\n                borderRadius: \"0 0 4px 4px\",\n                overflow: \"hidden\"\n              }\n            }, [...modifiedLineElements.lines])\n          ])\n        ];\n      })\n    ]).keepUpdated(this._store);\n    this.isHovered = this._editor.isTargetHovered((e) =\u003e this._isMouseOverWidget(e), this._store);\n    this._previousViewZoneInfo = void 0;\n    this._register(toDisposable(() =\u003e this._editor.editor.changeViewZones((accessor) =\u003e this.removePreviousViewZone(accessor))));\n    this._register(autorunDelta(this._viewZoneInfo, ({ lastValue, newValue }) =\u003e {\n      if (lastValue === newValue || lastValue?.height === newValue?.height \u0026\u0026 lastValue?.lineNumber === newValue?.lineNumber) {\n        return;\n      }\n      this._editor.editor.changeViewZones((changeAccessor) =\u003e {\n        this.removePreviousViewZone(changeAccessor);\n        if (!newValue) {\n          return;\n        }\n        this.addViewZone(newValue, changeAccessor);\n      });\n    }));\n    this._register(this._editor.createOverlayWidget({\n      domNode: this._div.element,\n      minContentWidthInPx: derived(this, (reader) =\u003e {\n        return this._layout.read(reader)?.minContentWidthRequired ?? 0;\n      }),\n      position: constObservable({ preference: { top: 0, left: 0 } }),\n      allowEditorOverflow: false\n    }));\n  }\n  _isMouseOverWidget(e) {\n    const layout2 = this._layout.get();\n    if (!layout2 || !(e.event instanceof EditorMouseEvent)) {\n      return false;\n    }\n    return layout2.lowerBackground.containsPoint(new Point(e.event.relativePos.x, e.event.relativePos.y));\n  }\n  removePreviousViewZone(changeAccessor) {\n    if (!this._previousViewZoneInfo) {\n      return;\n    }\n    changeAccessor.removeZone(this._previousViewZoneInfo.id);\n    const cursorLineNumber = this._editor.cursorLineNumber.get();\n    if (cursorLineNumber !== null \u0026\u0026 cursorLineNumber \u003e= this._previousViewZoneInfo.lineNumber) {\n      this._editor.editor.setScrollTop(this._editor.scrollTop.get() - this._previousViewZoneInfo.height);\n    }\n    this._previousViewZoneInfo = void 0;\n  }\n  addViewZone(viewZoneInfo, changeAccessor) {\n    const activeViewZone = changeAccessor.addZone({\n      afterLineNumber: viewZoneInfo.lineNumber - 1,\n      heightInPx: viewZoneInfo.height,\n      // move computation to layout?\n      domNode: $(\"div\")\n    });\n    this._previousViewZoneInfo = { height: viewZoneInfo.height, lineNumber: viewZoneInfo.lineNumber, id: activeViewZone };\n    const cursorLineNumber = this._editor.cursorLineNumber.get();\n    if (cursorLineNumber !== null \u0026\u0026 cursorLineNumber \u003e= viewZoneInfo.lineNumber) {\n      this._editor.editor.setScrollTop(this._editor.scrollTop.get() + viewZoneInfo.height);\n    }\n  }\n};\nInlineEditsLineReplacementView = __decorate119([\n  __param113(4, ILanguageService),\n  __param113(5, IThemeService)\n], InlineEditsLineReplacementView);\nfunction rangesToBubbleRanges(ranges) {\n  const result = [];\n  while (ranges.length) {\n    let range2 = ranges.shift();\n    if (range2.startLineNumber !== range2.endLineNumber) {\n      ranges.push(new Range(range2.startLineNumber + 1, 1, range2.endLineNumber, range2.endColumn));\n      range2 = new Range(range2.startLineNumber, range2.startColumn, range2.startLineNumber, Number.MAX_SAFE_INTEGER);\n    }\n    result.push(range2);\n  }\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsSideBySideView.js\ninit_dom();\ninit_mouseEvent();\ninit_color();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\ninit_colorRegistry();\ninit_colorUtils();\ninit_themeService();\ninit_observableCodeEditor();\ninit_offsetRange();\ninit_position();\ninit_range();\nvar __decorate120 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param114 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar HORIZONTAL_PADDING2 = 0;\nvar VERTICAL_PADDING2 = 0;\nvar ENABLE_OVERFLOW = false;\nvar BORDER_WIDTH3 = 1;\nvar WIDGET_SEPARATOR_WIDTH3 = 1;\nvar WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH3 = 3;\nvar BORDER_RADIUS3 = 4;\nvar ORIGINAL_END_PADDING = 20;\nvar MODIFIED_END_PADDING = 12;\nvar InlineEditsSideBySideView = class InlineEditsSideBySideView2 extends Disposable {\n  // This is an approximation and should be improved by using the real parameters used bellow\n  static fitsInsideViewport(editor2, textModel, edit2, reader) {\n    const editorObs = observableCodeEditor(editor2);\n    const editorWidth = editorObs.layoutInfoWidth.read(reader);\n    const editorContentLeft = editorObs.layoutInfoContentLeft.read(reader);\n    const editorVerticalScrollbar = editor2.getLayoutInfo().verticalScrollbarWidth;\n    const minimapWidth = editorObs.layoutInfoMinimap.read(reader).minimapLeft !== 0 ? editorObs.layoutInfoMinimap.read(reader).minimapWidth : 0;\n    const maxOriginalContent = maxContentWidthInRange(\n      editorObs,\n      edit2.displayRange,\n      void 0\n      /* do not reconsider on each layout info change */\n    );\n    const maxModifiedContent = edit2.lineEdit.newLines.reduce((max, line) =\u003e Math.max(max, getContentRenderWidth(line, editor2, textModel)), 0);\n    const originalPadding = ORIGINAL_END_PADDING;\n    const modifiedPadding = MODIFIED_END_PADDING + 2 * BORDER_WIDTH3;\n    return maxOriginalContent + maxModifiedContent + originalPadding + modifiedPadding \u003c editorWidth - editorContentLeft - editorVerticalScrollbar - minimapWidth;\n  }\n  constructor(_editor, _edit, _previewTextModel, _uiState, _tabAction, _instantiationService, _themeService) {\n    super();\n    this._editor = _editor;\n    this._edit = _edit;\n    this._previewTextModel = _previewTextModel;\n    this._uiState = _uiState;\n    this._tabAction = _tabAction;\n    this._instantiationService = _instantiationService;\n    this._themeService = _themeService;\n    this._editorObs = observableCodeEditor(this._editor);\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._display = derived(this, (reader) =\u003e !!this._uiState.read(reader) ? \"block\" : \"none\");\n    this.previewRef = n.ref();\n    const separatorWidthObs = this._uiState.map((s) =\u003e s?.isInDiffEditor ? WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH3 : WIDGET_SEPARATOR_WIDTH3);\n    this._editorContainer = n.div({\n      class: [\"editorContainer\"],\n      style: { position: \"absolute\", overflow: \"hidden\", cursor: \"pointer\" },\n      onmousedown: (e) =\u003e {\n        e.preventDefault();\n      },\n      onclick: (e) =\u003e {\n        this._onDidClick.fire(new StandardMouseEvent(getWindow(e), e));\n      }\n    }, [\n      n.div({ class: \"preview\", style: { pointerEvents: \"none\" }, ref: this.previewRef })\n    ]).keepUpdated(this._store);\n    this.isHovered = this._editorContainer.didMouseMoveDuringHover;\n    this.previewEditor = this._register(this._instantiationService.createInstance(EmbeddedCodeEditorWidget, this.previewRef.element, {\n      glyphMargin: false,\n      lineNumbers: \"off\",\n      minimap: { enabled: false },\n      guides: {\n        indentation: false,\n        bracketPairs: false,\n        bracketPairsHorizontal: false,\n        highlightActiveIndentation: false\n      },\n      rulers: [],\n      padding: { top: 0, bottom: 0 },\n      folding: false,\n      selectOnLineNumbers: false,\n      selectionHighlight: false,\n      columnSelection: false,\n      overviewRulerBorder: false,\n      overviewRulerLanes: 0,\n      lineDecorationsWidth: 0,\n      lineNumbersMinChars: 0,\n      revealHorizontalRightPadding: 0,\n      bracketPairColorization: { enabled: true, independentColorPoolPerBracketType: false },\n      scrollBeyondLastLine: false,\n      scrollbar: {\n        vertical: \"hidden\",\n        horizontal: \"hidden\",\n        handleMouseWheel: false\n      },\n      readOnly: true,\n      wordWrap: \"off\",\n      wordWrapOverride1: \"off\",\n      wordWrapOverride2: \"off\"\n    }, {\n      contextKeyValues: {\n        [InlineCompletionContextKeys.inInlineEditsPreviewEditor.key]: true\n      },\n      contributions: []\n    }, this._editor));\n    this._previewEditorObs = observableCodeEditor(this.previewEditor);\n    this._activeViewZones = [];\n    this._updatePreviewEditor = derived(this, (reader) =\u003e {\n      this._editorContainer.readEffect(reader);\n      this._previewEditorObs.model.read(reader);\n      this._display.read(reader);\n      if (this._nonOverflowView) {\n        this._nonOverflowView.element.style.display = this._display.read(reader);\n      }\n      const uiState = this._uiState.read(reader);\n      const edit2 = this._edit.read(reader);\n      if (!uiState || !edit2) {\n        return;\n      }\n      const range2 = edit2.originalLineRange;\n      const hiddenAreas = [];\n      if (range2.startLineNumber \u003e 1) {\n        hiddenAreas.push(new Range(1, 1, range2.startLineNumber - 1, 1));\n      }\n      if (range2.startLineNumber + uiState.newTextLineCount \u003c this._previewTextModel.getLineCount() + 1) {\n        hiddenAreas.push(new Range(range2.startLineNumber + uiState.newTextLineCount, 1, this._previewTextModel.getLineCount() + 1, 1));\n      }\n      this.previewEditor.setHiddenAreas(hiddenAreas, void 0, true);\n      const previousViewZones = [...this._activeViewZones];\n      this._activeViewZones = [];\n      const reducedLinesCount = range2.endLineNumberExclusive - range2.startLineNumber - uiState.newTextLineCount;\n      this.previewEditor.changeViewZones((changeAccessor) =\u003e {\n        previousViewZones.forEach((id) =\u003e changeAccessor.removeZone(id));\n        if (reducedLinesCount \u003e 0) {\n          this._activeViewZones.push(changeAccessor.addZone({\n            afterLineNumber: range2.startLineNumber + uiState.newTextLineCount - 1,\n            heightInLines: reducedLinesCount,\n            showInHiddenAreas: true,\n            domNode: $(\"div.diagonal-fill.inline-edits-view-zone\")\n          }));\n        }\n      });\n    });\n    this._previewEditorWidth = derived(this, (reader) =\u003e {\n      const edit2 = this._edit.read(reader);\n      if (!edit2) {\n        return 0;\n      }\n      this._updatePreviewEditor.read(reader);\n      return maxContentWidthInRange(this._previewEditorObs, edit2.modifiedLineRange, reader);\n    });\n    this._cursorPosIfTouchesEdit = derived(this, (reader) =\u003e {\n      const cursorPos = this._editorObs.cursorPosition.read(reader);\n      const edit2 = this._edit.read(reader);\n      if (!edit2 || !cursorPos) {\n        return void 0;\n      }\n      return edit2.modifiedLineRange.contains(cursorPos.lineNumber) ? cursorPos : void 0;\n    });\n    this._originalStartPosition = derived(this, (reader) =\u003e {\n      const inlineEdit = this._edit.read(reader);\n      return inlineEdit ? new Position(inlineEdit.originalLineRange.startLineNumber, 1) : null;\n    });\n    this._originalEndPosition = derived(this, (reader) =\u003e {\n      const inlineEdit = this._edit.read(reader);\n      return inlineEdit ? new Position(inlineEdit.originalLineRange.endLineNumberExclusive, 1) : null;\n    });\n    this._originalVerticalStartPosition = this._editorObs.observePosition(this._originalStartPosition, this._store).map((p) =\u003e p?.y);\n    this._originalVerticalEndPosition = this._editorObs.observePosition(this._originalEndPosition, this._store).map((p) =\u003e p?.y);\n    this._originalDisplayRange = this._edit.map((e) =\u003e e?.displayRange);\n    this._editorMaxContentWidthInRange = derived(this, (reader) =\u003e {\n      const originalDisplayRange = this._originalDisplayRange.read(reader);\n      if (!originalDisplayRange) {\n        return constObservable(0);\n      }\n      this._editorObs.versionId.read(reader);\n      return derivedObservableWithCache(this, (reader2, lastValue) =\u003e {\n        const maxWidth = maxContentWidthInRange(this._editorObs, originalDisplayRange, reader2);\n        return Math.max(maxWidth, lastValue ?? 0);\n      });\n    }).map((v, r) =\u003e v.read(r));\n    this._previewEditorLayoutInfo = derived(this, (reader) =\u003e {\n      const inlineEdit = this._edit.read(reader);\n      if (!inlineEdit) {\n        return null;\n      }\n      const state = this._uiState.read(reader);\n      if (!state) {\n        return null;\n      }\n      const range2 = inlineEdit.originalLineRange;\n      const horizontalScrollOffset = this._editorObs.scrollLeft.read(reader);\n      const editorContentMaxWidthInRange = this._editorMaxContentWidthInRange.read(reader);\n      const editorLayout = this._editorObs.layoutInfo.read(reader);\n      const previewContentWidth = this._previewEditorWidth.read(reader);\n      const editorContentAreaWidth = editorLayout.contentWidth - editorLayout.verticalScrollbarWidth;\n      const editorBoundingClientRect = this._editor.getContainerDomNode().getBoundingClientRect();\n      const clientContentAreaRight = editorLayout.contentLeft + editorLayout.contentWidth + editorBoundingClientRect.left;\n      const remainingWidthRightOfContent = getWindow(this._editor.getContainerDomNode()).innerWidth - clientContentAreaRight;\n      const remainingWidthRightOfEditor = getWindow(this._editor.getContainerDomNode()).innerWidth - editorBoundingClientRect.right;\n      const desiredMinimumWidth = Math.min(editorLayout.contentWidth * 0.3, previewContentWidth, 100);\n      const IN_EDITOR_DISPLACEMENT = 0;\n      const maximumAvailableWidth = IN_EDITOR_DISPLACEMENT + remainingWidthRightOfContent;\n      const cursorPos = this._cursorPosIfTouchesEdit.read(reader);\n      const maxPreviewEditorLeft = Math.max(\n        // We're starting from the content area right and moving it left by IN_EDITOR_DISPLACEMENT and also by an amount to ensure some minimum desired width\n        editorContentAreaWidth + horizontalScrollOffset - IN_EDITOR_DISPLACEMENT - Math.max(0, desiredMinimumWidth - maximumAvailableWidth),\n        // But we don't want that the moving left ends up covering the cursor, so this will push it to the right again\n        Math.min(cursorPos ? getOffsetForPos(this._editorObs, cursorPos, reader) + 50 : 0, editorContentAreaWidth + horizontalScrollOffset)\n      );\n      const previewEditorLeftInTextArea = Math.min(editorContentMaxWidthInRange + ORIGINAL_END_PADDING, maxPreviewEditorLeft);\n      const maxContentWidth = editorContentMaxWidthInRange + ORIGINAL_END_PADDING + previewContentWidth + 70;\n      const dist = maxPreviewEditorLeft - previewEditorLeftInTextArea;\n      let desiredPreviewEditorScrollLeft;\n      let codeRight;\n      if (previewEditorLeftInTextArea \u003e horizontalScrollOffset) {\n        desiredPreviewEditorScrollLeft = 0;\n        codeRight = editorLayout.contentLeft + previewEditorLeftInTextArea - horizontalScrollOffset;\n      } else {\n        desiredPreviewEditorScrollLeft = horizontalScrollOffset - previewEditorLeftInTextArea;\n        codeRight = editorLayout.contentLeft;\n      }\n      const selectionTop = this._originalVerticalStartPosition.read(reader) ?? this._editor.getTopForLineNumber(range2.startLineNumber) - this._editorObs.scrollTop.read(reader);\n      const selectionBottom = this._originalVerticalEndPosition.read(reader) ?? this._editor.getBottomForLineNumber(range2.endLineNumberExclusive - 1) - this._editorObs.scrollTop.read(reader);\n      const codeLeft = editorLayout.contentLeft - horizontalScrollOffset;\n      let codeRect = Rect.fromLeftTopRightBottom(codeLeft, selectionTop, codeRight, selectionBottom);\n      const isInsertion2 = codeRect.height === 0;\n      if (!isInsertion2) {\n        codeRect = codeRect.withMargin(VERTICAL_PADDING2, HORIZONTAL_PADDING2);\n      }\n      const previewLineHeights = this._previewEditorObs.observeLineHeightsForLineRange(inlineEdit.modifiedLineRange).read(reader);\n      const editHeight = previewLineHeights.reduce((acc, h2) =\u003e acc + h2, 0);\n      const codeHeight = selectionBottom - selectionTop;\n      const previewEditorHeight = Math.max(codeHeight, editHeight);\n      const clipped = dist === 0;\n      const codeEditDist = 0;\n      const previewEditorWidth = Math.min(previewContentWidth + MODIFIED_END_PADDING, remainingWidthRightOfEditor + editorLayout.width - editorLayout.contentLeft - codeEditDist);\n      let editRect = Rect.fromLeftTopWidthHeight(codeRect.right + codeEditDist, selectionTop, previewEditorWidth, previewEditorHeight);\n      if (!isInsertion2) {\n        editRect = editRect.withMargin(VERTICAL_PADDING2, HORIZONTAL_PADDING2).translateX(HORIZONTAL_PADDING2 + BORDER_WIDTH3);\n      } else {\n        editRect = editRect.withMargin(VERTICAL_PADDING2, HORIZONTAL_PADDING2).translateY(VERTICAL_PADDING2);\n      }\n      return {\n        codeRect,\n        editRect,\n        codeScrollLeft: horizontalScrollOffset,\n        contentLeft: editorLayout.contentLeft,\n        isInsertion: isInsertion2,\n        maxContentWidth,\n        shouldShowShadow: clipped,\n        desiredPreviewEditorScrollLeft,\n        previewEditorWidth\n      };\n    });\n    this._stickyScrollController = StickyScrollController2.get(this._editorObs.editor);\n    this._stickyScrollHeight = this._stickyScrollController ? observableFromEvent(this._stickyScrollController.onDidChangeStickyScrollHeight, () =\u003e this._stickyScrollController.stickyScrollWidgetHeight) : constObservable(0);\n    this._shouldOverflow = derived(this, (reader) =\u003e {\n      if (!ENABLE_OVERFLOW) {\n        return false;\n      }\n      const range2 = this._edit.read(reader)?.originalLineRange;\n      if (!range2) {\n        return false;\n      }\n      const stickyScrollHeight = this._stickyScrollHeight.read(reader);\n      const top = this._editor.getTopForLineNumber(range2.startLineNumber) - this._editorObs.scrollTop.read(reader);\n      if (top \u003c= stickyScrollHeight) {\n        return false;\n      }\n      const bottom = this._editor.getTopForLineNumber(range2.endLineNumberExclusive) - this._editorObs.scrollTop.read(reader);\n      if (bottom \u003e= this._editorObs.layoutInfo.read(reader).height) {\n        return false;\n      }\n      return true;\n    });\n    this._originalBackgroundColor = observableFromEvent(this, this._themeService.onDidColorThemeChange, () =\u003e {\n      return this._themeService.getColorTheme().getColor(originalBackgroundColor) ?? Color.transparent;\n    });\n    this._backgroundSvg = n.svg({\n      transform: \"translate(-0.5 -0.5)\",\n      style: { overflow: \"visible\", pointerEvents: \"none\", position: \"absolute\" }\n    }, [\n      n.svgElem(\"path\", {\n        class: \"rightOfModifiedBackgroundCoverUp\",\n        d: derived(this, (reader) =\u003e {\n          const layoutInfo = this._previewEditorLayoutInfo.read(reader);\n          if (!layoutInfo) {\n            return void 0;\n          }\n          const originalBackgroundColor2 = this._originalBackgroundColor.read(reader);\n          if (originalBackgroundColor2.isTransparent()) {\n            return void 0;\n          }\n          return new PathBuilder().moveTo(layoutInfo.codeRect.getRightTop()).lineTo(layoutInfo.codeRect.getRightTop().deltaX(1e3)).lineTo(layoutInfo.codeRect.getRightBottom().deltaX(1e3)).lineTo(layoutInfo.codeRect.getRightBottom()).build();\n        }),\n        style: {\n          fill: asCssVariableWithDefault(editorBackground, \"transparent\")\n        }\n      })\n    ]).keepUpdated(this._store);\n    this._originalOverlay = n.div({\n      style: { pointerEvents: \"none\", display: this._previewEditorLayoutInfo.map((layoutInfo) =\u003e layoutInfo?.isInsertion ? \"none\" : \"block\") }\n    }, derived(this, (reader) =\u003e {\n      const layoutInfoObs = mapOutFalsy(this._previewEditorLayoutInfo).read(reader);\n      if (!layoutInfoObs) {\n        return void 0;\n      }\n      const separatorWidth = separatorWidthObs.read(reader);\n      const borderStyling = getOriginalBorderColor(this._tabAction).map((bc) =\u003e `${BORDER_WIDTH3}px solid ${asCssVariable(bc)}`);\n      const borderStylingSeparator = `${BORDER_WIDTH3 + separatorWidth}px solid ${asCssVariable(editorBackground)}`;\n      const hasBorderLeft = layoutInfoObs.read(reader).codeScrollLeft !== 0;\n      const isModifiedLower = layoutInfoObs.map((layoutInfo) =\u003e layoutInfo.codeRect.bottom \u003c layoutInfo.editRect.bottom);\n      const transitionRectSize = BORDER_RADIUS3 * 2 + BORDER_WIDTH3 * 2;\n      const overlayHider = layoutInfoObs.map((layoutInfo) =\u003e Rect.fromLeftTopRightBottom(layoutInfo.contentLeft - BORDER_RADIUS3 - BORDER_WIDTH3, layoutInfo.codeRect.top, layoutInfo.contentLeft, layoutInfo.codeRect.bottom + transitionRectSize)).read(reader);\n      const intersectionLine = new OffsetRange(overlayHider.left, Number.MAX_SAFE_INTEGER);\n      const overlayRect = layoutInfoObs.map((layoutInfo) =\u003e layoutInfo.codeRect.intersectHorizontal(intersectionLine));\n      const separatorRect = overlayRect.map((overlayRect2) =\u003e overlayRect2.withMargin(separatorWidth, 0, separatorWidth, separatorWidth).intersectHorizontal(intersectionLine));\n      const transitionRect = overlayRect.map((overlayRect2) =\u003e Rect.fromLeftTopWidthHeight(overlayRect2.right - transitionRectSize + BORDER_WIDTH3, overlayRect2.bottom - BORDER_WIDTH3, transitionRectSize, transitionRectSize).intersectHorizontal(intersectionLine));\n      return [\n        n.div({\n          class: \"originalSeparatorSideBySide\",\n          style: {\n            ...separatorRect.read(reader).toStyles(),\n            boxSizing: \"border-box\",\n            borderRadius: `${BORDER_RADIUS3}px 0 0 ${BORDER_RADIUS3}px`,\n            borderTop: borderStylingSeparator,\n            borderBottom: borderStylingSeparator,\n            borderLeft: hasBorderLeft ? \"none\" : borderStylingSeparator\n          }\n        }),\n        n.div({\n          class: \"originalOverlaySideBySide\",\n          style: {\n            ...overlayRect.read(reader).toStyles(),\n            boxSizing: \"border-box\",\n            borderRadius: `${BORDER_RADIUS3}px 0 0 ${BORDER_RADIUS3}px`,\n            borderTop: borderStyling,\n            borderBottom: borderStyling,\n            borderLeft: hasBorderLeft ? \"none\" : borderStyling,\n            backgroundColor: asCssVariable(originalBackgroundColor)\n          }\n        }),\n        n.div({\n          class: \"originalCornerCutoutSideBySide\",\n          style: {\n            pointerEvents: \"none\",\n            display: isModifiedLower.map((isLower2) =\u003e isLower2 ? \"block\" : \"none\"),\n            ...transitionRect.read(reader).toStyles()\n          }\n        }, [\n          n.div({\n            class: \"originalCornerCutoutBackground\",\n            style: {\n              position: \"absolute\",\n              top: \"0px\",\n              left: \"0px\",\n              width: \"100%\",\n              height: \"100%\",\n              backgroundColor: getEditorBlendedColor(originalBackgroundColor, this._themeService).map((c) =\u003e c.toString())\n            }\n          }),\n          n.div({\n            class: \"originalCornerCutoutBorder\",\n            style: {\n              position: \"absolute\",\n              top: \"0px\",\n              left: \"0px\",\n              width: \"100%\",\n              height: \"100%\",\n              boxSizing: \"border-box\",\n              borderTop: borderStyling,\n              borderRight: borderStyling,\n              borderRadius: `0 100% 0 0`,\n              backgroundColor: asCssVariable(editorBackground)\n            }\n          })\n        ]),\n        n.div({\n          class: \"originalOverlaySideBySideHider\",\n          style: {\n            ...overlayHider.toStyles(),\n            backgroundColor: asCssVariable(editorBackground)\n          }\n        })\n      ];\n    })).keepUpdated(this._store);\n    this._modifiedOverlay = n.div({\n      style: { pointerEvents: \"none\" }\n    }, derived(this, (reader) =\u003e {\n      const layoutInfoObs = mapOutFalsy(this._previewEditorLayoutInfo).read(reader);\n      if (!layoutInfoObs) {\n        return void 0;\n      }\n      const isModifiedLower = layoutInfoObs.map((layoutInfo) =\u003e layoutInfo.codeRect.bottom \u003c layoutInfo.editRect.bottom);\n      const separatorWidth = separatorWidthObs.read(reader);\n      const borderRadius = isModifiedLower.map((isLower2) =\u003e `0 ${BORDER_RADIUS3}px ${BORDER_RADIUS3}px ${isLower2 ? BORDER_RADIUS3 : 0}px`);\n      const borderStyling = getEditorBlendedColor(getModifiedBorderColor(this._tabAction), this._themeService).map((c) =\u003e `1px solid ${c.toString()}`);\n      const borderStylingSeparator = `${BORDER_WIDTH3 + separatorWidth}px solid ${asCssVariable(editorBackground)}`;\n      const overlayRect = layoutInfoObs.map((layoutInfo) =\u003e layoutInfo.editRect.withMargin(0, BORDER_WIDTH3));\n      const separatorRect = overlayRect.map((overlayRect2) =\u003e overlayRect2.withMargin(separatorWidth, separatorWidth, separatorWidth, 0));\n      const insertionRect = derived(this, (reader2) =\u003e {\n        const overlay = overlayRect.read(reader2);\n        const layoutinfo = layoutInfoObs.read(reader2);\n        if (!layoutinfo.isInsertion || layoutinfo.contentLeft \u003e= overlay.left) {\n          return Rect.fromLeftTopWidthHeight(overlay.left, overlay.top, 0, 0);\n        }\n        return new Rect(layoutinfo.contentLeft, overlay.top, overlay.left, overlay.top + BORDER_WIDTH3 * 2);\n      });\n      return [\n        n.div({\n          class: \"modifiedInsertionSideBySide\",\n          style: {\n            ...insertionRect.read(reader).toStyles(),\n            backgroundColor: getModifiedBorderColor(this._tabAction).map((c) =\u003e asCssVariable(c))\n          }\n        }),\n        n.div({\n          class: \"modifiedSeparatorSideBySide\",\n          style: {\n            ...separatorRect.read(reader).toStyles(),\n            borderRadius,\n            borderTop: borderStylingSeparator,\n            borderBottom: borderStylingSeparator,\n            borderRight: borderStylingSeparator,\n            boxSizing: \"border-box\"\n          }\n        }),\n        n.div({\n          class: \"modifiedOverlaySideBySide\",\n          style: {\n            ...overlayRect.read(reader).toStyles(),\n            borderRadius,\n            border: borderStyling,\n            boxSizing: \"border-box\",\n            backgroundColor: asCssVariable(modifiedBackgroundColor)\n          }\n        })\n      ];\n    })).keepUpdated(this._store);\n    this._nonOverflowView = n.div({\n      class: \"inline-edits-view\",\n      style: {\n        position: \"absolute\",\n        overflow: \"visible\",\n        top: \"0px\",\n        left: \"0px\",\n        display: this._display\n      }\n    }, [\n      this._backgroundSvg,\n      derived(this, (reader) =\u003e this._shouldOverflow.read(reader) ? [] : [this._editorContainer, this._originalOverlay, this._modifiedOverlay])\n    ]).keepUpdated(this._store);\n    this._register(this._editorObs.createOverlayWidget({\n      domNode: this._nonOverflowView.element,\n      position: constObservable(null),\n      allowEditorOverflow: false,\n      minContentWidthInPx: derived(this, (reader) =\u003e {\n        const x = this._previewEditorLayoutInfo.read(reader)?.maxContentWidth;\n        if (x === void 0) {\n          return 0;\n        }\n        return x;\n      })\n    }));\n    this.previewEditor.setModel(this._previewTextModel);\n    this._register(autorun((reader) =\u003e {\n      const layoutInfo = this._previewEditorLayoutInfo.read(reader);\n      if (!layoutInfo) {\n        return;\n      }\n      const editorRect = layoutInfo.editRect.withMargin(-VERTICAL_PADDING2, -HORIZONTAL_PADDING2);\n      this.previewEditor.layout({\n        height: editorRect.height,\n        width: layoutInfo.previewEditorWidth + 15\n        /* Make sure editor does not scroll horizontally */\n      });\n      this._editorContainer.element.style.top = `${editorRect.top}px`;\n      this._editorContainer.element.style.left = `${editorRect.left}px`;\n      this._editorContainer.element.style.width = `${layoutInfo.previewEditorWidth + HORIZONTAL_PADDING2}px`;\n    }));\n    this._register(autorun((reader) =\u003e {\n      const layoutInfo = this._previewEditorLayoutInfo.read(reader);\n      if (!layoutInfo) {\n        return;\n      }\n      this._previewEditorObs.editor.setScrollLeft(layoutInfo.desiredPreviewEditorScrollLeft);\n    }));\n    this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store);\n  }\n};\nInlineEditsSideBySideView = __decorate120([\n  __param114(5, IInstantiationService),\n  __param114(6, IThemeService)\n], InlineEditsSideBySideView);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/inlineEditsWordReplacementView.js\ninit_dom();\ninit_mouseEvent();\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_colorRegistry();\ninit_colorUtils();\ninit_point();\ninit_offsetRange();\ninit_language();\ninit_lineTokens();\nvar __decorate121 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param115 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar BORDER_WIDTH4 = 1;\nvar InlineEditsWordReplacementView = class InlineEditsWordReplacementView2 extends Disposable {\n  static {\n    this.MAX_LENGTH = 100;\n  }\n  constructor(_editor, _edit, _tabAction, _languageService) {\n    super();\n    this._editor = _editor;\n    this._edit = _edit;\n    this._tabAction = _tabAction;\n    this._languageService = _languageService;\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this._start = this._editor.observePosition(constObservable(this._edit.range.getStartPosition()), this._store);\n    this._end = this._editor.observePosition(constObservable(this._edit.range.getEndPosition()), this._store);\n    this._line = document.createElement(\"div\");\n    this._hoverableElement = observableValue(this, null);\n    this.isHovered = this._hoverableElement.map((e, reader) =\u003e e?.didMouseMoveDuringHover.read(reader) ?? false);\n    this._renderTextEffect = derived(this, (_reader) =\u003e {\n      const tm = this._editor.model.get();\n      const origLine = tm.getLineContent(this._edit.range.startLineNumber);\n      const edit2 = StringReplacement.replace(new OffsetRange(this._edit.range.startColumn - 1, this._edit.range.endColumn - 1), this._edit.text);\n      const lineToTokenize = edit2.replace(origLine);\n      const t = tm.tokenization.tokenizeLinesAt(this._edit.range.startLineNumber, [lineToTokenize])?.[0];\n      let tokens;\n      if (t) {\n        tokens = TokenArray.fromLineTokens(t).slice(edit2.getRangeAfterReplace()).toLineTokens(this._edit.text, this._languageService.languageIdCodec);\n      } else {\n        tokens = LineTokens.createEmpty(this._edit.text, this._languageService.languageIdCodec);\n      }\n      const res = renderLines(new LineSource([tokens]), RenderOptions.fromEditor(this._editor.editor).withSetWidth(false).withScrollBeyondLastColumn(0), [], this._line, true);\n      this._line.style.width = `${res.minWidthInPx}px`;\n    });\n    const modifiedLineHeight = this._editor.observeLineHeightForPosition(this._edit.range.getStartPosition());\n    this._layout = derived(this, (reader) =\u003e {\n      this._renderTextEffect.read(reader);\n      const widgetStart = this._start.read(reader);\n      const widgetEnd = this._end.read(reader);\n      if (!widgetStart || !widgetEnd || widgetStart.x \u003e widgetEnd.x || widgetStart.y \u003e widgetEnd.y) {\n        return void 0;\n      }\n      const lineHeight = modifiedLineHeight.read(reader);\n      const scrollLeft = this._editor.scrollLeft.read(reader);\n      const w = this._editor.getOption(\n        59\n        /* EditorOption.fontInfo */\n      ).read(reader).typicalHalfwidthCharacterWidth;\n      const modifiedLeftOffset = 3 * w;\n      const modifiedTopOffset = 4;\n      const modifiedOffset = new Point(modifiedLeftOffset, modifiedTopOffset);\n      const originalLine = Rect.fromPoints(widgetStart, widgetEnd).withHeight(lineHeight).translateX(-scrollLeft);\n      const modifiedLine = Rect.fromPointSize(originalLine.getLeftBottom().add(modifiedOffset), new Point(this._edit.text.length * w, originalLine.height));\n      const lowerBackground = modifiedLine.withLeft(originalLine.left);\n      return {\n        originalLine,\n        modifiedLine,\n        lowerBackground,\n        lineHeight\n      };\n    });\n    this.minEditorScrollHeight = derived(this, (reader) =\u003e {\n      const layout2 = mapOutFalsy(this._layout).read(reader);\n      if (!layout2) {\n        return 0;\n      }\n      return layout2.read(reader).modifiedLine.bottom + BORDER_WIDTH4 + this._editor.editor.getScrollTop();\n    });\n    this._root = n.div({\n      class: \"word-replacement\"\n    }, [\n      derived(this, (reader) =\u003e {\n        const layout2 = mapOutFalsy(this._layout).read(reader);\n        if (!layout2) {\n          return [];\n        }\n        const originalBorderColor = getOriginalBorderColor(this._tabAction).map((c) =\u003e asCssVariable(c)).read(reader);\n        const modifiedBorderColor = getModifiedBorderColor(this._tabAction).map((c) =\u003e asCssVariable(c)).read(reader);\n        return [\n          n.div({\n            style: {\n              position: \"absolute\",\n              ...rectToProps((r) =\u003e getEditorValidOverlayRect(this._editor).read(r)),\n              overflow: \"hidden\",\n              pointerEvents: \"none\"\n            }\n          }, [\n            n.div({\n              style: {\n                position: \"absolute\",\n                ...rectToProps((reader2) =\u003e layout2.read(reader2).lowerBackground.withMargin(BORDER_WIDTH4, 2 * BORDER_WIDTH4, BORDER_WIDTH4, 0)),\n                background: asCssVariable(editorBackground),\n                //boxShadow: `${asCssVariable(scrollbarShadow)} 0 6px 6px -6px`,\n                cursor: \"pointer\",\n                pointerEvents: \"auto\"\n              },\n              onmousedown: (e) =\u003e {\n                e.preventDefault();\n              },\n              onmouseup: (e) =\u003e this._onDidClick.fire(new StandardMouseEvent(getWindow(e), e)),\n              obsRef: (elem) =\u003e {\n                this._hoverableElement.set(elem, void 0);\n              }\n            }),\n            n.div({\n              style: {\n                position: \"absolute\",\n                ...rectToProps((reader2) =\u003e layout2.read(reader2).modifiedLine.withMargin(BORDER_WIDTH4, 2 * BORDER_WIDTH4)),\n                fontFamily: this._editor.getOption(\n                  58\n                  /* EditorOption.fontFamily */\n                ),\n                fontSize: this._editor.getOption(\n                  61\n                  /* EditorOption.fontSize */\n                ),\n                fontWeight: this._editor.getOption(\n                  62\n                  /* EditorOption.fontWeight */\n                ),\n                pointerEvents: \"none\",\n                boxSizing: \"border-box\",\n                borderRadius: \"4px\",\n                border: `${BORDER_WIDTH4}px solid ${modifiedBorderColor}`,\n                background: asCssVariable(modifiedChangedTextOverlayColor),\n                display: \"flex\",\n                justifyContent: \"center\",\n                alignItems: \"center\",\n                outline: `2px solid ${asCssVariable(editorBackground)}`\n              }\n            }, [this._line]),\n            n.div({\n              style: {\n                position: \"absolute\",\n                ...rectToProps((reader2) =\u003e layout2.read(reader2).originalLine.withMargin(BORDER_WIDTH4)),\n                boxSizing: \"border-box\",\n                borderRadius: \"4px\",\n                border: `${BORDER_WIDTH4}px solid ${originalBorderColor}`,\n                background: asCssVariable(originalChangedTextOverlayColor),\n                pointerEvents: \"none\"\n              }\n            }, []),\n            n.svg({\n              width: 11,\n              height: 14,\n              viewBox: \"0 0 11 14\",\n              fill: \"none\",\n              style: {\n                position: \"absolute\",\n                left: layout2.map((l) =\u003e l.modifiedLine.left - 16),\n                top: layout2.map((l) =\u003e l.modifiedLine.top + Math.round((l.lineHeight - 14 - 5) / 2))\n              }\n            }, [\n              n.svgElem(\"path\", {\n                d: \"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5\",\n                stroke: asCssVariable(editorHoverForeground)\n              }),\n              n.svgElem(\"path\", {\n                d: \"M6 7.5L9.99999 10.49998L6 13.5\",\n                stroke: asCssVariable(editorHoverForeground)\n              })\n            ])\n          ])\n        ];\n      })\n    ]).keepUpdated(this._store);\n    this._register(this._editor.createOverlayWidget({\n      domNode: this._root.element,\n      minContentWidthInPx: constObservable(0),\n      position: constObservable({ preference: { top: 0, left: 0 } }),\n      allowEditorOverflow: false\n    }));\n  }\n};\nInlineEditsWordReplacementView = __decorate121([\n  __param115(3, ILanguageService)\n], InlineEditsWordReplacementView);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViews/originalEditorInlineDiffView.js\ninit_event();\ninit_lifecycle();\ninit_observable();\ninit_observableCodeEditor();\ninit_offsetRange();\ninit_range();\ninit_model2();\ninit_textModel();\nvar OriginalEditorInlineDiffView = class extends Disposable {\n  constructor(_originalEditor, _state, _modifiedTextModel) {\n    super();\n    this._originalEditor = _originalEditor;\n    this._state = _state;\n    this._modifiedTextModel = _modifiedTextModel;\n    this._onDidClick = this._register(new Emitter());\n    this.onDidClick = this._onDidClick.event;\n    this.isHovered = observableCodeEditor(this._originalEditor).isTargetHovered((p) =\u003e p.target.type === 6 \u0026\u0026 p.target.detail.injectedText?.options.attachedData instanceof InlineEditAttachedData \u0026\u0026 p.target.detail.injectedText.options.attachedData.owner === this, this._store);\n    this._tokenizationFinished = modelTokenizationFinished(this._modifiedTextModel);\n    this._decorations = derived(this, (reader) =\u003e {\n      const diff = this._state.read(reader);\n      if (!diff) {\n        return void 0;\n      }\n      const modified = diff.modifiedText;\n      const showInline = diff.mode === \"insertionInline\";\n      const hasOneInnerChange = diff.diff.length === 1 \u0026\u0026 diff.diff[0].innerChanges?.length === 1;\n      const showEmptyDecorations = true;\n      const originalDecorations = [];\n      const modifiedDecorations = [];\n      const diffLineAddDecorationBackground2 = ModelDecorationOptions.register({\n        className: \"inlineCompletions-line-insert\",\n        description: \"line-insert\",\n        isWholeLine: true,\n        marginClassName: \"gutter-insert\"\n      });\n      const diffLineDeleteDecorationBackground2 = ModelDecorationOptions.register({\n        className: \"inlineCompletions-line-delete\",\n        description: \"line-delete\",\n        isWholeLine: true,\n        marginClassName: \"gutter-delete\"\n      });\n      const diffWholeLineDeleteDecoration2 = ModelDecorationOptions.register({\n        className: \"inlineCompletions-char-delete\",\n        description: \"char-delete\",\n        isWholeLine: false,\n        zIndex: 1\n        // be on top of diff background decoration\n      });\n      const diffWholeLineAddDecoration2 = ModelDecorationOptions.register({\n        className: \"inlineCompletions-char-insert\",\n        description: \"char-insert\",\n        isWholeLine: true\n      });\n      const diffAddDecoration2 = ModelDecorationOptions.register({\n        className: \"inlineCompletions-char-insert\",\n        description: \"char-insert\",\n        shouldFillLineOnLineBreak: true\n      });\n      const diffAddDecorationEmpty2 = ModelDecorationOptions.register({\n        className: \"inlineCompletions-char-insert diff-range-empty\",\n        description: \"char-insert diff-range-empty\"\n      });\n      const NESOriginalBackground = ModelDecorationOptions.register({\n        className: \"inlineCompletions-original-lines\",\n        description: \"inlineCompletions-original-lines\",\n        isWholeLine: false,\n        shouldFillLineOnLineBreak: true\n      });\n      const showFullLineDecorations = diff.mode !== \"sideBySide\" \u0026\u0026 diff.mode !== \"deletion\" \u0026\u0026 diff.mode !== \"insertionInline\" \u0026\u0026 diff.mode !== \"lineReplacement\";\n      const hideEmptyInnerDecorations = diff.mode === \"lineReplacement\";\n      for (const m of diff.diff) {\n        if (showFullLineDecorations) {\n          if (!m.original.isEmpty) {\n            originalDecorations.push({\n              range: m.original.toInclusiveRange(),\n              options: diffLineDeleteDecorationBackground2\n            });\n          }\n          if (!m.modified.isEmpty) {\n            modifiedDecorations.push({\n              range: m.modified.toInclusiveRange(),\n              options: diffLineAddDecorationBackground2\n            });\n          }\n        }\n        if (m.modified.isEmpty || m.original.isEmpty) {\n          if (!m.original.isEmpty) {\n            originalDecorations.push({ range: m.original.toInclusiveRange(), options: diffWholeLineDeleteDecoration2 });\n          }\n          if (!m.modified.isEmpty) {\n            modifiedDecorations.push({ range: m.modified.toInclusiveRange(), options: diffWholeLineAddDecoration2 });\n          }\n        } else {\n          const useInlineDiff = showInline \u0026\u0026 allowsTrueInlineDiffRendering2(m);\n          for (const i2 of m.innerChanges || []) {\n            if (m.original.contains(i2.originalRange.startLineNumber) \u0026\u0026 !(hideEmptyInnerDecorations \u0026\u0026 i2.originalRange.isEmpty())) {\n              const replacedText = this._originalEditor.getModel()?.getValueInRange(\n                i2.originalRange,\n                1\n                /* EndOfLinePreference.LF */\n              );\n              originalDecorations.push({\n                range: i2.originalRange,\n                options: {\n                  description: \"char-delete\",\n                  shouldFillLineOnLineBreak: false,\n                  className: classNames(\"inlineCompletions-char-delete\", i2.originalRange.isSingleLine() \u0026\u0026 diff.mode === \"insertionInline\" \u0026\u0026 \"single-line-inline\", i2.originalRange.isEmpty() \u0026\u0026 \"empty\", (i2.originalRange.isEmpty() \u0026\u0026 hasOneInnerChange || diff.mode === \"deletion\" \u0026\u0026 replacedText === \"\\n\") \u0026\u0026 showEmptyDecorations \u0026\u0026 !useInlineDiff \u0026\u0026 \"diff-range-empty\"),\n                  inlineClassName: useInlineDiff ? classNames(\"strike-through\", \"inlineCompletions\") : null,\n                  zIndex: 1\n                }\n              });\n            }\n            if (m.modified.contains(i2.modifiedRange.startLineNumber)) {\n              modifiedDecorations.push({\n                range: i2.modifiedRange,\n                options: i2.modifiedRange.isEmpty() \u0026\u0026 showEmptyDecorations \u0026\u0026 !useInlineDiff \u0026\u0026 hasOneInnerChange ? diffAddDecorationEmpty2 : diffAddDecoration2\n              });\n            }\n            if (useInlineDiff) {\n              const insertedText = modified.getValueOfRange(i2.modifiedRange);\n              const textSegments = insertedText.length \u003e 3 ? [\n                { text: insertedText.slice(0, 1), extraClasses: [\"start\"], offsetRange: new OffsetRange(i2.modifiedRange.startColumn - 1, i2.modifiedRange.startColumn) },\n                { text: insertedText.slice(1, -1), extraClasses: [], offsetRange: new OffsetRange(i2.modifiedRange.startColumn, i2.modifiedRange.endColumn - 2) },\n                { text: insertedText.slice(-1), extraClasses: [\"end\"], offsetRange: new OffsetRange(i2.modifiedRange.endColumn - 2, i2.modifiedRange.endColumn - 1) }\n              ] : [\n                { text: insertedText, extraClasses: [\"start\", \"end\"], offsetRange: new OffsetRange(i2.modifiedRange.startColumn - 1, i2.modifiedRange.endColumn) }\n              ];\n              this._tokenizationFinished.read(reader);\n              const lineTokens = this._modifiedTextModel.tokenization.getLineTokens(i2.modifiedRange.startLineNumber);\n              for (const { text: text2, extraClasses, offsetRange } of textSegments) {\n                originalDecorations.push({\n                  range: Range.fromPositions(i2.originalRange.getEndPosition()),\n                  options: {\n                    description: \"inserted-text\",\n                    before: {\n                      tokens: lineTokens.getTokensInRange(offsetRange),\n                      content: text2,\n                      inlineClassName: classNames(\n                        \"inlineCompletions-char-insert\",\n                        i2.modifiedRange.isSingleLine() \u0026\u0026 diff.mode === \"insertionInline\" \u0026\u0026 \"single-line-inline\",\n                        ...extraClasses\n                        // include extraClasses for additional styling if provided\n                      ),\n                      cursorStops: InjectedTextCursorStops.None,\n                      attachedData: new InlineEditAttachedData(this)\n                    },\n                    zIndex: 2,\n                    showIfCollapsed: true\n                  }\n                });\n              }\n            }\n          }\n        }\n      }\n      if (diff.isInDiffEditor) {\n        for (const m of diff.diff) {\n          if (!m.original.isEmpty) {\n            originalDecorations.push({\n              range: m.original.toExclusiveRange(),\n              options: NESOriginalBackground\n            });\n          }\n        }\n      }\n      return { originalDecorations, modifiedDecorations };\n    });\n    this._register(observableCodeEditor(this._originalEditor).setDecorations(this._decorations.map((d) =\u003e d?.originalDecorations ?? [])));\n    const modifiedCodeEditor = this._state.map((s) =\u003e s?.modifiedCodeEditor);\n    this._register(autorunWithStore((reader, store) =\u003e {\n      const e = modifiedCodeEditor.read(reader);\n      if (e) {\n        store.add(observableCodeEditor(e).setDecorations(this._decorations.map((d) =\u003e d?.modifiedDecorations ?? [])));\n      }\n    }));\n    this._register(this._originalEditor.onMouseUp((e) =\u003e {\n      if (e.target.type !== 6) {\n        return;\n      }\n      const a = e.target.detail.injectedText?.options.attachedData;\n      if (a instanceof InlineEditAttachedData \u0026\u0026 a.owner === this) {\n        this._onDidClick.fire(e.event);\n      }\n    }));\n  }\n};\nvar InlineEditAttachedData = class {\n  constructor(owner) {\n    this.owner = owner;\n  }\n};\nfunction allowsTrueInlineDiffRendering2(mapping) {\n  if (!mapping.innerChanges) {\n    return false;\n  }\n  return mapping.innerChanges.every((c) =\u003e rangeIsSingleLine(c.modifiedRange) \u0026\u0026 rangeIsSingleLine(c.originalRange));\n}\nvar i = 0;\nfunction modelTokenizationFinished(model) {\n  return observableFromEvent(model.onDidChangeTokens, () =\u003e i++);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js\ninit_dom();\nvar __decorate122 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param116 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineEditsView_1;\nvar InlineEditsView = InlineEditsView_1 = class InlineEditsView2 extends Disposable {\n  constructor(_editor, _host, _model, _ghostTextIndicator, _focusIsInMenu, _instantiationService) {\n    super();\n    this._editor = _editor;\n    this._host = _host;\n    this._model = _model;\n    this._ghostTextIndicator = _ghostTextIndicator;\n    this._focusIsInMenu = _focusIsInMenu;\n    this._instantiationService = _instantiationService;\n    this._editorObs = observableCodeEditor(this._editor);\n    this._tabAction = derived((reader) =\u003e this._model.read(reader)?.tabAction.read(reader) ?? InlineEditTabAction.Inactive);\n    this._constructorDone = observableValue(this, false);\n    this._uiState = derived(this, (reader) =\u003e {\n      const model = this._model.read(reader);\n      if (!model || !this._constructorDone.read(reader)) {\n        return void 0;\n      }\n      const inlineEdit = model.inlineEdit;\n      let mappings = RangeMapping.fromEdit(inlineEdit.edit);\n      let newText = inlineEdit.edit.apply(inlineEdit.originalText);\n      let diff = lineRangeMappingFromRangeMappings(mappings, inlineEdit.originalText, new StringText(newText));\n      let state = this.determineRenderState(model, reader, diff, new StringText(newText));\n      if (!state) {\n        model.abort(`unable to determine view: tried to render ${this._previousView?.view}`);\n        return void 0;\n      }\n      if (state.kind === InlineCompletionViewKind.SideBySide) {\n        const indentationAdjustmentEdit = createReindentEdit(newText, inlineEdit.modifiedLineRange, textModel.getOptions().tabSize);\n        newText = indentationAdjustmentEdit.applyToString(newText);\n        mappings = applyEditToModifiedRangeMappings(mappings, indentationAdjustmentEdit);\n        diff = lineRangeMappingFromRangeMappings(mappings, inlineEdit.originalText, new StringText(newText));\n      }\n      this._previewTextModel.setLanguage(this._editor.getModel().getLanguageId());\n      const previousNewText = this._previewTextModel.getValue();\n      if (previousNewText !== newText) {\n        this._previewTextModel.setValue(newText);\n      }\n      if (model.showCollapsed.read(reader) \u0026\u0026 !this._indicator.read(reader)?.isHoverVisible.read(reader)) {\n        state = { kind: InlineCompletionViewKind.Collapsed, viewData: state.viewData };\n      }\n      model.handleInlineEditShown(state.kind, state.viewData);\n      return {\n        state,\n        diff,\n        edit: inlineEdit,\n        newText,\n        newTextLineCount: inlineEdit.modifiedLineRange.length,\n        isInDiffEditor: model.isInDiffEditor\n      };\n    });\n    this._previewTextModel = this._register(this._instantiationService.createInstance(TextModel, \"\", this._editor.getModel().getLanguageId(), { ...TextModel.DEFAULT_CREATION_OPTIONS, bracketPairColorizationOptions: { enabled: true, independentColorPoolPerBracketType: false } }, null));\n    this._indicatorCyclicDependencyCircuitBreaker = observableValue(this, false);\n    this._indicator = derived(this, (reader) =\u003e {\n      if (!this._indicatorCyclicDependencyCircuitBreaker.read(reader)) {\n        return void 0;\n      }\n      const indicatorDisplayRange = derivedOpts({ owner: this, equalsFn: equalsIfDefined(itemEquals()) }, (reader2) =\u003e {\n        const ghostTextIndicator = this._ghostTextIndicator.read(reader2);\n        if (ghostTextIndicator) {\n          return ghostTextIndicator.lineRange;\n        }\n        const state = this._uiState.read(reader2);\n        if (!state) {\n          return void 0;\n        }\n        if (state.state?.kind === \"custom\") {\n          const range2 = state.state.displayLocation?.range;\n          if (!range2) {\n            throw new BugIndicatingError(\"custom view should have a range\");\n          }\n          return new LineRange(range2.startLineNumber, range2.endLineNumber);\n        }\n        if (state.state?.kind === \"insertionMultiLine\") {\n          return this._insertion.originalLines.read(reader2);\n        }\n        return state.edit.displayRange;\n      });\n      const modelWithGhostTextSupport = derived(this, (reader2) =\u003e {\n        const model = this._model.read(reader2);\n        if (model) {\n          return model;\n        }\n        const ghostTextIndicator = this._ghostTextIndicator.read(reader2);\n        if (ghostTextIndicator) {\n          return ghostTextIndicator.model;\n        }\n        return model;\n      });\n      return reader.store.add(this._instantiationService.createInstance(InlineEditsGutterIndicator, this._editorObs, indicatorDisplayRange, this._gutterIndicatorOffset, modelWithGhostTextSupport, this._inlineEditsIsHovered, this._focusIsInMenu));\n    });\n    this._inlineEditsIsHovered = derived(this, (reader) =\u003e {\n      return this._sideBySide.isHovered.read(reader) || this._wordReplacementViews.read(reader).some((v) =\u003e v.isHovered.read(reader)) || this._deletion.isHovered.read(reader) || this._inlineDiffView.isHovered.read(reader) || this._lineReplacementView.isHovered.read(reader) || this._insertion.isHovered.read(reader) || this._customView.isHovered.read(reader);\n    });\n    this._gutterIndicatorOffset = derived(this, (reader) =\u003e {\n      if (this._uiState.read(reader)?.state?.kind === \"insertionMultiLine\") {\n        return this._insertion.startLineOffset.read(reader);\n      }\n      const ghostTextIndicator = this._ghostTextIndicator.read(reader);\n      if (ghostTextIndicator) {\n        return getGhostTextTopOffset(ghostTextIndicator, this._editor);\n      }\n      return 0;\n    });\n    this._sideBySide = this._register(this._instantiationService.createInstance(InlineEditsSideBySideView, this._editor, this._model.map((m) =\u003e m?.inlineEdit), this._previewTextModel, this._uiState.map((s) =\u003e s \u0026\u0026 s.state?.kind === InlineCompletionViewKind.SideBySide ? {\n      newTextLineCount: s.newTextLineCount,\n      isInDiffEditor: s.isInDiffEditor\n    } : void 0), this._tabAction));\n    this._deletion = this._register(this._instantiationService.createInstance(InlineEditsDeletionView, this._editor, this._model.map((m) =\u003e m?.inlineEdit), this._uiState.map((s) =\u003e s \u0026\u0026 s.state?.kind === InlineCompletionViewKind.Deletion ? {\n      originalRange: s.state.originalRange,\n      deletions: s.state.deletions,\n      inDiffEditor: s.isInDiffEditor\n    } : void 0), this._tabAction));\n    this._insertion = this._register(this._instantiationService.createInstance(InlineEditsInsertionView, this._editor, this._uiState.map((s) =\u003e s \u0026\u0026 s.state?.kind === InlineCompletionViewKind.InsertionMultiLine ? {\n      lineNumber: s.state.lineNumber,\n      startColumn: s.state.column,\n      text: s.state.text,\n      inDiffEditor: s.isInDiffEditor\n    } : void 0), this._tabAction));\n    this._inlineDiffViewState = derived(this, (reader) =\u003e {\n      const e = this._uiState.read(reader);\n      if (!e || !e.state) {\n        return void 0;\n      }\n      if (e.state.kind === \"wordReplacements\" || e.state.kind === \"insertionMultiLine\" || e.state.kind === \"collapsed\" || e.state.kind === \"custom\") {\n        return void 0;\n      }\n      return {\n        modifiedText: new StringText(e.newText),\n        diff: e.diff,\n        mode: e.state.kind,\n        modifiedCodeEditor: this._sideBySide.previewEditor,\n        isInDiffEditor: e.isInDiffEditor\n      };\n    });\n    this._inlineCollapsedView = this._register(this._instantiationService.createInstance(InlineEditsCollapsedView, this._editor, this._model.map((m, reader) =\u003e this._uiState.read(reader)?.state?.kind === \"collapsed\" ? m?.inlineEdit : void 0)));\n    this._customView = this._register(this._instantiationService.createInstance(InlineEditsCustomView, this._editor, this._model.map((m, reader) =\u003e this._uiState.read(reader)?.state?.kind === \"custom\" ? m?.displayLocation : void 0), this._tabAction));\n    this._inlineDiffView = this._register(new OriginalEditorInlineDiffView(this._editor, this._inlineDiffViewState, this._previewTextModel));\n    this._wordReplacementViews = mapObservableArrayCached(this, this._uiState.map((s) =\u003e s?.state?.kind === \"wordReplacements\" ? s.state.replacements : []), (e, store) =\u003e {\n      return store.add(this._instantiationService.createInstance(InlineEditsWordReplacementView, this._editorObs, e, this._tabAction));\n    });\n    this._lineReplacementView = this._register(this._instantiationService.createInstance(InlineEditsLineReplacementView, this._editorObs, this._uiState.map((s) =\u003e s?.state?.kind === InlineCompletionViewKind.LineReplacement ? {\n      originalRange: s.state.originalRange,\n      modifiedRange: s.state.modifiedRange,\n      modifiedLines: s.state.modifiedLines,\n      replacements: s.state.replacements\n    } : void 0), this._uiState.map((s) =\u003e s?.isInDiffEditor ?? false), this._tabAction));\n    this._useCodeShifting = this._editorObs.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).map((s) =\u003e s.edits.allowCodeShifting);\n    this._renderSideBySide = this._editorObs.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).map((s) =\u003e s.edits.renderSideBySide);\n    this._register(autorunWithStore((reader, store) =\u003e {\n      const model = this._model.read(reader);\n      if (!model) {\n        return;\n      }\n      store.add(Event.any(this._sideBySide.onDidClick, this._deletion.onDidClick, this._lineReplacementView.onDidClick, this._insertion.onDidClick, ...this._wordReplacementViews.read(reader).map((w) =\u003e w.onDidClick), this._inlineDiffView.onDidClick, this._customView.onDidClick)((e) =\u003e {\n        if (this._viewHasBeenShownLongerThan(350)) {\n          e.preventDefault();\n          model.accept();\n        }\n      }));\n    }));\n    this._indicator.recomputeInitiallyAndOnChange(this._store);\n    this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store);\n    this._indicatorCyclicDependencyCircuitBreaker.set(true, void 0);\n    this._register(this._instantiationService.createInstance(InlineEditsOnboardingExperience, this._host, this._model, this._indicator, this._inlineCollapsedView));\n    const minEditorScrollHeight = derived(this, (reader) =\u003e {\n      return Math.max(...this._wordReplacementViews.read(reader).map((v) =\u003e v.minEditorScrollHeight.read(reader)), this._lineReplacementView.minEditorScrollHeight.read(reader), this._customView.minEditorScrollHeight.read(reader));\n    }).recomputeInitiallyAndOnChange(this._store);\n    const textModel = this._editor.getModel();\n    let viewZoneId;\n    this._register(autorun((reader) =\u003e {\n      const minScrollHeight = minEditorScrollHeight.read(reader);\n      this._editor.changeViewZones((accessor) =\u003e {\n        const scrollHeight = this._editor.getScrollHeight();\n        const viewZoneHeight = minScrollHeight - scrollHeight + 1;\n        if (viewZoneHeight !== 0 \u0026\u0026 viewZoneId) {\n          accessor.removeZone(viewZoneId);\n          viewZoneId = void 0;\n        }\n        if (viewZoneHeight \u003c= 0) {\n          return;\n        }\n        viewZoneId = accessor.addZone({\n          afterLineNumber: textModel.getLineCount(),\n          heightInPx: viewZoneHeight,\n          domNode: $(\"div.minScrollHeightViewZone\")\n        });\n      });\n    }));\n    this._constructorDone.set(true, void 0);\n  }\n  getCacheId(model) {\n    return model.inlineEdit.inlineCompletion.identity.id;\n  }\n  determineView(model, reader, diff, newText) {\n    const inlineEdit = model.inlineEdit;\n    const canUseCache = this._previousView?.id === this.getCacheId(model);\n    const reconsiderViewEditorWidthChange = this._previousView?.editorWidth !== this._editorObs.layoutInfoWidth.read(reader) \u0026\u0026 (this._previousView?.view === InlineCompletionViewKind.SideBySide || this._previousView?.view === InlineCompletionViewKind.LineReplacement);\n    if (canUseCache \u0026\u0026 !reconsiderViewEditorWidthChange) {\n      return this._previousView.view;\n    }\n    if (model.displayLocation) {\n      return InlineCompletionViewKind.Custom;\n    }\n    const numOriginalLines = inlineEdit.originalLineRange.length;\n    const numModifiedLines = inlineEdit.modifiedLineRange.length;\n    const inner = diff.flatMap((d) =\u003e d.innerChanges ?? []);\n    const isSingleInnerEdit = inner.length === 1;\n    if (!model.isInDiffEditor) {\n      if (isSingleInnerEdit \u0026\u0026 this._useCodeShifting.read(reader) !== \"never\" \u0026\u0026 isSingleLineInsertion(diff)) {\n        if (isSingleLineInsertionAfterPosition(diff, inlineEdit.cursorPosition)) {\n          return InlineCompletionViewKind.InsertionInline;\n        }\n        return InlineCompletionViewKind.LineReplacement;\n      }\n      if (isDeletion2(inner, inlineEdit, newText)) {\n        return InlineCompletionViewKind.Deletion;\n      }\n      if (isSingleMultiLineInsertion(diff) \u0026\u0026 this._useCodeShifting.read(reader) === \"always\") {\n        return InlineCompletionViewKind.InsertionMultiLine;\n      }\n      const allInnerChangesNotTooLong = inner.every((m) =\u003e TextLength.ofRange(m.originalRange).columnCount \u003c InlineEditsWordReplacementView.MAX_LENGTH \u0026\u0026 TextLength.ofRange(m.modifiedRange).columnCount \u003c InlineEditsWordReplacementView.MAX_LENGTH);\n      if (allInnerChangesNotTooLong \u0026\u0026 isSingleInnerEdit \u0026\u0026 numOriginalLines === 1 \u0026\u0026 numModifiedLines === 1) {\n        const modifiedText = inner.map((m) =\u003e newText.getValueOfRange(m.modifiedRange));\n        const originalText = inner.map((m) =\u003e model.inlineEdit.originalText.getValueOfRange(m.originalRange));\n        if (!modifiedText.some((v) =\u003e v.includes(\"\t\")) \u0026\u0026 !originalText.some((v) =\u003e v.includes(\"\t\"))) {\n          if (!inner.some((m) =\u003e m.originalRange.isEmpty()) || !growEditsUntilWhitespace(inner.map((m) =\u003e new TextReplacement(m.originalRange, \"\")), inlineEdit.originalText).some((e) =\u003e e.range.isEmpty() \u0026\u0026 TextLength.ofRange(e.range).columnCount \u003c InlineEditsWordReplacementView.MAX_LENGTH)) {\n            return InlineCompletionViewKind.WordReplacements;\n          }\n        }\n      }\n    }\n    if (numOriginalLines \u003e 0 \u0026\u0026 numModifiedLines \u003e 0) {\n      if (numOriginalLines === 1 \u0026\u0026 numModifiedLines === 1 \u0026\u0026 !model.isInDiffEditor) {\n        return InlineCompletionViewKind.LineReplacement;\n      }\n      if (this._renderSideBySide.read(reader) !== \"never\" \u0026\u0026 InlineEditsSideBySideView.fitsInsideViewport(this._editor, this._previewTextModel, inlineEdit, reader)) {\n        return InlineCompletionViewKind.SideBySide;\n      }\n      return InlineCompletionViewKind.LineReplacement;\n    }\n    if (model.isInDiffEditor) {\n      if (isDeletion2(inner, inlineEdit, newText)) {\n        return InlineCompletionViewKind.Deletion;\n      }\n      if (isSingleMultiLineInsertion(diff) \u0026\u0026 this._useCodeShifting.read(reader) === \"always\") {\n        return InlineCompletionViewKind.InsertionMultiLine;\n      }\n    }\n    return InlineCompletionViewKind.SideBySide;\n  }\n  determineRenderState(model, reader, diff, newText) {\n    const inlineEdit = model.inlineEdit;\n    const view = this.determineView(model, reader, diff, newText);\n    this._previousView = { id: this.getCacheId(model), view, editorWidth: this._editor.getLayoutInfo().width, timestamp: Date.now() };\n    const inner = diff.flatMap((d) =\u003e d.innerChanges ?? []);\n    const textModel = this._editor.getModel();\n    const stringChanges = inner.map((m) =\u003e ({\n      originalRange: m.originalRange,\n      modifiedRange: m.modifiedRange,\n      original: textModel.getValueInRange(m.originalRange),\n      modified: newText.getValueOfRange(m.modifiedRange)\n    }));\n    const cursorPosition = inlineEdit.cursorPosition;\n    const startsWithEOL = stringChanges[0].modified.startsWith(textModel.getEOL());\n    const viewData = {\n      cursorColumnDistance: inlineEdit.edit.replacements[0].range.getStartPosition().column - cursorPosition.column,\n      cursorLineDistance: inlineEdit.lineEdit.lineRange.startLineNumber - cursorPosition.lineNumber + (startsWithEOL \u0026\u0026 inlineEdit.lineEdit.lineRange.startLineNumber \u003e= cursorPosition.lineNumber ? 1 : 0),\n      lineCountOriginal: inlineEdit.lineEdit.lineRange.length,\n      lineCountModified: inlineEdit.lineEdit.newLines.length,\n      characterCountOriginal: stringChanges.reduce((acc, r) =\u003e acc + r.original.length, 0),\n      characterCountModified: stringChanges.reduce((acc, r) =\u003e acc + r.modified.length, 0),\n      disjointReplacements: stringChanges.length,\n      sameShapeReplacements: stringChanges.every((r) =\u003e r.original === stringChanges[0].original \u0026\u0026 r.modified === stringChanges[0].modified)\n    };\n    switch (view) {\n      case InlineCompletionViewKind.InsertionInline:\n        return { kind: InlineCompletionViewKind.InsertionInline, viewData };\n      case InlineCompletionViewKind.SideBySide:\n        return { kind: InlineCompletionViewKind.SideBySide, viewData };\n      case InlineCompletionViewKind.Collapsed:\n        return { kind: InlineCompletionViewKind.Collapsed, viewData };\n      case InlineCompletionViewKind.Custom:\n        return { kind: InlineCompletionViewKind.Custom, displayLocation: model.displayLocation, viewData };\n    }\n    if (view === InlineCompletionViewKind.Deletion) {\n      return {\n        kind: InlineCompletionViewKind.Deletion,\n        originalRange: inlineEdit.originalLineRange,\n        deletions: inner.map((m) =\u003e m.originalRange),\n        viewData\n      };\n    }\n    if (view === InlineCompletionViewKind.InsertionMultiLine) {\n      const change = inner[0];\n      return {\n        kind: InlineCompletionViewKind.InsertionMultiLine,\n        lineNumber: change.originalRange.startLineNumber,\n        column: change.originalRange.startColumn,\n        text: newText.getValueOfRange(change.modifiedRange),\n        viewData\n      };\n    }\n    const replacements = stringChanges.map((m) =\u003e new TextReplacement(m.originalRange, m.modified));\n    if (replacements.length === 0) {\n      return void 0;\n    }\n    if (view === InlineCompletionViewKind.WordReplacements) {\n      let grownEdits = growEditsToEntireWord(replacements, inlineEdit.originalText);\n      if (grownEdits.some((e) =\u003e e.range.isEmpty())) {\n        grownEdits = growEditsUntilWhitespace(replacements, inlineEdit.originalText);\n      }\n      return {\n        kind: InlineCompletionViewKind.WordReplacements,\n        replacements: grownEdits,\n        viewData\n      };\n    }\n    if (view === InlineCompletionViewKind.LineReplacement) {\n      return {\n        kind: InlineCompletionViewKind.LineReplacement,\n        originalRange: inlineEdit.originalLineRange,\n        modifiedRange: inlineEdit.modifiedLineRange,\n        modifiedLines: inlineEdit.modifiedLineRange.mapToLineArray((line) =\u003e newText.getLineAt(line)),\n        replacements: inner.map((m) =\u003e ({ originalRange: m.originalRange, modifiedRange: m.modifiedRange })),\n        viewData\n      };\n    }\n    return void 0;\n  }\n  _viewHasBeenShownLongerThan(durationMs) {\n    const viewCreationTime = this._previousView?.timestamp;\n    if (!viewCreationTime) {\n      throw new BugIndicatingError(\"viewHasBeenShownLongThan called before a view has been shown\");\n    }\n    const currentTime = Date.now();\n    return currentTime - viewCreationTime \u003e= durationMs;\n  }\n};\nInlineEditsView = InlineEditsView_1 = __decorate122([\n  __param116(5, IInstantiationService)\n], InlineEditsView);\nfunction isSingleLineInsertion(diff) {\n  return diff.every((m) =\u003e m.innerChanges.every((r) =\u003e isWordInsertion(r)));\n  function isWordInsertion(r) {\n    if (!r.originalRange.isEmpty()) {\n      return false;\n    }\n    const isInsertionWithinLine = r.modifiedRange.startLineNumber === r.modifiedRange.endLineNumber;\n    if (!isInsertionWithinLine) {\n      return false;\n    }\n    return true;\n  }\n}\nfunction isSingleLineInsertionAfterPosition(diff, position) {\n  if (!position) {\n    return false;\n  }\n  if (!isSingleLineInsertion(diff)) {\n    return false;\n  }\n  const pos = position;\n  return diff.every((m) =\u003e m.innerChanges.every((r) =\u003e isStableWordInsertion(r)));\n  function isStableWordInsertion(r) {\n    const insertPosition = r.originalRange.getStartPosition();\n    if (pos.isBeforeOrEqual(insertPosition)) {\n      return true;\n    }\n    if (insertPosition.lineNumber \u003c pos.lineNumber) {\n      return true;\n    }\n    return false;\n  }\n}\nfunction isSingleMultiLineInsertion(diff) {\n  const inner = diff.flatMap((d) =\u003e d.innerChanges ?? []);\n  if (inner.length !== 1) {\n    return false;\n  }\n  const change = inner[0];\n  if (!change.originalRange.isEmpty()) {\n    return false;\n  }\n  if (change.modifiedRange.startLineNumber === change.modifiedRange.endLineNumber) {\n    return false;\n  }\n  return true;\n}\nfunction isDeletion2(inner, inlineEdit, newText) {\n  const innerValues = inner.map((m) =\u003e ({ original: inlineEdit.originalText.getValueOfRange(m.originalRange), modified: newText.getValueOfRange(m.modifiedRange) }));\n  return innerValues.every(({ original, modified }) =\u003e modified.trim() === \"\" \u0026\u0026 original.length \u003e 0 \u0026\u0026 (original.length \u003e modified.length || original.trim() !== \"\"));\n}\nfunction growEditsToEntireWord(replacements, originalText) {\n  return _growEdits(replacements, originalText, (char) =\u003e /^[a-zA-Z]$/.test(char));\n}\nfunction growEditsUntilWhitespace(replacements, originalText) {\n  return _growEdits(replacements, originalText, (char) =\u003e !/^\\s$/.test(char));\n}\nfunction _growEdits(replacements, originalText, fn) {\n  const result = [];\n  replacements.sort((a, b) =\u003e Range.compareRangesUsingStarts(a.range, b.range));\n  for (const edit2 of replacements) {\n    let startIndex = edit2.range.startColumn - 1;\n    let endIndex = edit2.range.endColumn - 2;\n    let prefix = \"\";\n    let suffix = \"\";\n    const startLineContent = originalText.getLineAt(edit2.range.startLineNumber);\n    const endLineContent = originalText.getLineAt(edit2.range.endLineNumber);\n    if (isIncluded(startLineContent[startIndex])) {\n      while (isIncluded(startLineContent[startIndex - 1])) {\n        prefix = startLineContent[startIndex - 1] + prefix;\n        startIndex--;\n      }\n    }\n    if (isIncluded(endLineContent[endIndex]) || endIndex \u003c startIndex) {\n      while (isIncluded(endLineContent[endIndex + 1])) {\n        suffix += endLineContent[endIndex + 1];\n        endIndex++;\n      }\n    }\n    let newEdit = new TextReplacement(new Range(edit2.range.startLineNumber, startIndex + 1, edit2.range.endLineNumber, endIndex + 2), prefix + edit2.text + suffix);\n    if (result.length \u003e 0 \u0026\u0026 Range.areIntersectingOrTouching(result[result.length - 1].range, newEdit.range)) {\n      newEdit = TextReplacement.joinReplacements([result.pop(), newEdit], originalText);\n    }\n    result.push(newEdit);\n  }\n  function isIncluded(c) {\n    if (c === void 0) {\n      return false;\n    }\n    return fn(c);\n  }\n  return result;\n}\nfunction getGhostTextTopOffset(ghostTextIndicator, editor2) {\n  const replacements = ghostTextIndicator.model.inlineEdit.edit.replacements;\n  if (replacements.length !== 1) {\n    return 0;\n  }\n  const textModel = editor2.getModel();\n  if (!textModel) {\n    return 0;\n  }\n  const EOL = textModel.getEOL();\n  const replacement = replacements[0];\n  if (replacement.range.isEmpty() \u0026\u0026 replacement.text.startsWith(EOL)) {\n    const lineHeight = editor2.getLineHeightForPosition(replacement.range.getStartPosition());\n    return countPrefixRepeats(replacement.text, EOL) * lineHeight;\n  }\n  return 0;\n}\nfunction countPrefixRepeats(str, prefix) {\n  if (!prefix.length) {\n    return 0;\n  }\n  let count = 0;\n  let i2 = 0;\n  while (str.startsWith(prefix, i2)) {\n    count++;\n    i2 += prefix.length;\n  }\n  return count;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsViewProducer.js\nvar __decorate123 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param117 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineEditsViewAndDiffProducer_1;\nvar InlineEditsViewAndDiffProducer = class InlineEditsViewAndDiffProducer2 extends Disposable {\n  static {\n    InlineEditsViewAndDiffProducer_1 = this;\n  }\n  static {\n    this.hot = createHotClass(InlineEditsViewAndDiffProducer_1);\n  }\n  constructor(_editor, _edit, _model, _focusIsInMenu, instantiationService) {\n    super();\n    this._editor = _editor;\n    this._edit = _edit;\n    this._model = _model;\n    this._focusIsInMenu = _focusIsInMenu;\n    this._inlineEdit = derived(this, (reader) =\u003e {\n      const model = this._model.read(reader);\n      if (!model) {\n        return void 0;\n      }\n      const inlineEdit = this._edit.read(reader);\n      if (!inlineEdit) {\n        return void 0;\n      }\n      const textModel = this._editor.getModel();\n      if (!textModel) {\n        return void 0;\n      }\n      const editOffset = model.inlineEditState.get()?.inlineCompletion.updatedEdit;\n      if (!editOffset) {\n        return void 0;\n      }\n      const edits = editOffset.replacements.map((e) =\u003e {\n        const innerEditRange = Range.fromPositions(textModel.getPositionAt(e.replaceRange.start), textModel.getPositionAt(e.replaceRange.endExclusive));\n        return new TextReplacement(innerEditRange, e.newText);\n      });\n      const diffEdits = new TextEdit(edits);\n      const text2 = new TextModelText(textModel);\n      return new InlineEditWithChanges(text2, diffEdits, model.primaryPosition.get(), inlineEdit.commands, inlineEdit.inlineCompletion);\n    });\n    this._inlineEditModel = derived(this, (reader) =\u003e {\n      const model = this._model.read(reader);\n      if (!model) {\n        return void 0;\n      }\n      const edit2 = this._inlineEdit.read(reader);\n      if (!edit2) {\n        return void 0;\n      }\n      const tabAction = derived(this, (reader2) =\u003e {\n        if (this._editorObs.isFocused.read(reader2)) {\n          if (model.tabShouldJumpToInlineEdit.read(reader2)) {\n            return InlineEditTabAction.Jump;\n          }\n          if (model.tabShouldAcceptInlineEdit.read(reader2)) {\n            return InlineEditTabAction.Accept;\n          }\n        }\n        return InlineEditTabAction.Inactive;\n      });\n      return new InlineEditModel(model, edit2, tabAction);\n    });\n    this._inlineEditHost = derived(this, (reader) =\u003e {\n      const model = this._model.read(reader);\n      if (!model) {\n        return void 0;\n      }\n      return new InlineEditHost(model);\n    });\n    this._ghostTextIndicator = derived(this, (reader) =\u003e {\n      const model = this._model.read(reader);\n      if (!model) {\n        return void 0;\n      }\n      const state = model.inlineCompletionState.read(reader);\n      if (!state) {\n        return void 0;\n      }\n      const inlineCompletion = state.inlineCompletion;\n      if (!inlineCompletion) {\n        return void 0;\n      }\n      if (!inlineCompletion.showInlineEditMenu) {\n        return void 0;\n      }\n      const lineRange = LineRange.ofLength(state.primaryGhostText.lineNumber, 1);\n      return new GhostTextIndicator(this._editor, model, lineRange, inlineCompletion);\n    });\n    this._editorObs = observableCodeEditor(this._editor);\n    this._register(instantiationService.createInstance(InlineEditsView, this._editor, this._inlineEditHost, this._inlineEditModel, this._ghostTextIndicator, this._focusIsInMenu));\n  }\n};\nInlineEditsViewAndDiffProducer = InlineEditsViewAndDiffProducer_1 = __decorate123([\n  __param117(4, IInstantiationService)\n], InlineEditsViewAndDiffProducer);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineCompletionsView.js\nvar __decorate124 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param118 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineCompletionsView = class InlineCompletionsView2 extends Disposable {\n  constructor(_editor, _model, _focusIsInMenu, _instantiationService) {\n    super();\n    this._editor = _editor;\n    this._model = _model;\n    this._focusIsInMenu = _focusIsInMenu;\n    this._instantiationService = _instantiationService;\n    this._ghostTexts = derived(this, (reader) =\u003e {\n      const model = this._model.read(reader);\n      return model?.ghostTexts.read(reader) ?? [];\n    });\n    this._stablizedGhostTexts = convertItemsToStableObservables(this._ghostTexts, this._store);\n    this._editorObs = observableCodeEditor(this._editor);\n    this._ghostTextWidgets = mapObservableArrayCached(this, this._stablizedGhostTexts, (ghostText, store) =\u003e derivedDisposable((reader) =\u003e this._instantiationService.createInstance(GhostTextView.hot.read(reader), this._editor, {\n      ghostText,\n      warning: this._model.map((m, reader2) =\u003e {\n        const warning = m?.warning?.read(reader2);\n        return warning ? { icon: warning.icon } : void 0;\n      }),\n      minReservedLineCount: constObservable(0),\n      targetTextModel: this._model.map((v) =\u003e v?.textModel),\n      handleInlineCompletionShown: this._model.map((model, reader2) =\u003e {\n        const inlineCompletion = model?.inlineCompletionState.read(reader2)?.inlineCompletion;\n        if (inlineCompletion) {\n          return (viewData) =\u003e model.handleInlineSuggestionShown(inlineCompletion, InlineCompletionViewKind.GhostText, viewData);\n        }\n        return () =\u003e {\n        };\n      })\n    }, this._editorObs.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).map((v) =\u003e ({ syntaxHighlightingEnabled: v.syntaxHighlightingEnabled })), false, false)).recomputeInitiallyAndOnChange(store)).recomputeInitiallyAndOnChange(this._store);\n    this._inlineEdit = derived(this, (reader) =\u003e this._model.read(reader)?.inlineEditState.read(reader)?.inlineEdit);\n    this._everHadInlineEdit = derivedObservableWithCache(this, (reader, last) =\u003e last || !!this._inlineEdit.read(reader) || !!this._model.read(reader)?.inlineCompletionState.read(reader)?.inlineCompletion?.showInlineEditMenu);\n    this._inlineEditWidget = derivedDisposable((reader) =\u003e {\n      if (!this._everHadInlineEdit.read(reader)) {\n        return void 0;\n      }\n      return this._instantiationService.createInstance(InlineEditsViewAndDiffProducer.hot.read(reader), this._editor, this._inlineEdit, this._model, this._focusIsInMenu);\n    }).recomputeInitiallyAndOnChange(this._store);\n    this._fontFamily = this._editorObs.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).map((val) =\u003e val.fontFamily);\n    this._register(createStyleSheetFromObservable(derived((reader) =\u003e {\n      const fontFamily = this._fontFamily.read(reader);\n      return `\n.monaco-editor .ghost-text-decoration,\n.monaco-editor .ghost-text-decoration-preview,\n.monaco-editor .ghost-text {\n\tfont-family: ${fontFamily};\n}`;\n    })));\n    this._register(new InlineCompletionsHintsWidget(this._editor, this._model, this._instantiationService));\n  }\n  shouldShowHoverAtViewZone(viewZoneId) {\n    return this._ghostTextWidgets.get()[0]?.get().ownsViewZone(viewZoneId) ?? false;\n  }\n};\nInlineCompletionsView = __decorate124([\n  __param118(3, IInstantiationService)\n], InlineCompletionsView);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js\nvar __decorate125 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param119 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineCompletionsController_1;\nvar InlineCompletionsController = class InlineCompletionsController2 extends Disposable {\n  static {\n    InlineCompletionsController_1 = this;\n  }\n  static {\n    this._instances = /* @__PURE__ */ new Set();\n  }\n  static {\n    this.hot = createHotClass(InlineCompletionsController_1);\n  }\n  static {\n    this.ID = \"editor.contrib.inlineCompletionsController\";\n  }\n  /**\n   * Find the controller in the focused editor or in the outer editor (if applicable)\n   */\n  static getInFocusedEditorOrParent(accessor) {\n    const outerEditor = getOuterEditor(accessor);\n    if (!outerEditor) {\n      return null;\n    }\n    return InlineCompletionsController_1.get(outerEditor);\n  }\n  static get(editor2) {\n    return hotClassGetOriginalInstance(editor2.getContribution(InlineCompletionsController_1.ID));\n  }\n  constructor(editor2, _instantiationService, _contextKeyService, _configurationService, _commandService, _debounceService, _languageFeaturesService, _accessibilitySignalService, _keybindingService, _accessibilityService) {\n    super();\n    this.editor = editor2;\n    this._instantiationService = _instantiationService;\n    this._contextKeyService = _contextKeyService;\n    this._configurationService = _configurationService;\n    this._commandService = _commandService;\n    this._debounceService = _debounceService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._accessibilitySignalService = _accessibilitySignalService;\n    this._keybindingService = _keybindingService;\n    this._accessibilityService = _accessibilityService;\n    this._editorObs = observableCodeEditor(this.editor);\n    this._positions = derived(this, (reader) =\u003e this._editorObs.selections.read(reader)?.map((s) =\u003e s.getEndPosition()) ?? [new Position(1, 1)]);\n    this._suggestWidgetAdapter = this._register(new ObservableSuggestWidgetAdapter(this._editorObs, (item) =\u003e this.model.get()?.handleSuggestAccepted(item), () =\u003e this.model.get()?.selectedInlineCompletion.get()?.getSingleTextEdit()));\n    this._enabledInConfig = observableFromEvent(this, this.editor.onDidChangeConfiguration, () =\u003e this.editor.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).enabled);\n    this._isScreenReaderEnabled = observableFromEvent(this, this._accessibilityService.onDidChangeScreenReaderOptimized, () =\u003e this._accessibilityService.isScreenReaderOptimized());\n    this._editorDictationInProgress = observableFromEvent(this, this._contextKeyService.onDidChangeContext, () =\u003e this._contextKeyService.getContext(this.editor.getDomNode()).getValue(\"editorDictation.inProgress\") === true);\n    this._enabled = derived(this, (reader) =\u003e this._enabledInConfig.read(reader) \u0026\u0026 (!this._isScreenReaderEnabled.read(reader) || !this._editorDictationInProgress.read(reader)));\n    this._debounceValue = this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider, \"InlineCompletionsDebounce\", { min: 50, max: 50 });\n    this._focusIsInMenu = observableValue(this, false);\n    this._focusIsInEditorOrMenu = derived(this, (reader) =\u003e {\n      const editorHasFocus = this._editorObs.isFocused.read(reader);\n      const menuHasFocus = this._focusIsInMenu.read(reader);\n      return editorHasFocus || menuHasFocus;\n    });\n    this._cursorIsInIndentation = derived(this, (reader) =\u003e {\n      const cursorPos = this._editorObs.cursorPosition.read(reader);\n      if (cursorPos === null) {\n        return false;\n      }\n      const model = this._editorObs.model.read(reader);\n      if (!model) {\n        return false;\n      }\n      this._editorObs.versionId.read(reader);\n      const indentMaxColumn = model.getLineIndentColumn(cursorPos.lineNumber);\n      return cursorPos.column \u003c= indentMaxColumn;\n    });\n    this.model = derivedDisposable(this, (reader) =\u003e {\n      if (this._editorObs.isReadonly.read(reader)) {\n        return void 0;\n      }\n      const textModel = this._editorObs.model.read(reader);\n      if (!textModel) {\n        return void 0;\n      }\n      const model = this._instantiationService.createInstance(InlineCompletionsModel, textModel, this._suggestWidgetAdapter.selectedItem, this._editorObs.versionId, this._positions, this._debounceValue, this._enabled, this.editor);\n      return model;\n    }).recomputeInitiallyAndOnChange(this._store);\n    this._playAccessibilitySignal = observableSignal(this);\n    this._hideInlineEditOnSelectionChange = this._editorObs.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).map((val) =\u003e true);\n    this._view = this._register(this._instantiationService.createInstance(InlineCompletionsView, this.editor, this.model, this._focusIsInMenu));\n    InlineCompletionsController_1._instances.add(this);\n    this._register(toDisposable(() =\u003e InlineCompletionsController_1._instances.delete(this)));\n    this._register(autorun((reader) =\u003e {\n      const model = this.model.read(reader);\n      if (!model) {\n        return;\n      }\n      const state = model.state.read(reader);\n      if (!state) {\n        return;\n      }\n      if (!this._focusIsInEditorOrMenu.get()) {\n        return;\n      }\n      const nextEditUri = state.kind === \"inlineEdit\" ? state.nextEditUri : void 0;\n      for (const ctrl of InlineCompletionsController_1._instances) {\n        if (ctrl === this) {\n          continue;\n        } else if (nextEditUri \u0026\u0026 isEqual(nextEditUri, ctrl.editor.getModel()?.uri)) {\n          ctrl.model.get()?.trigger();\n        } else {\n          ctrl.reject();\n        }\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      const model = this.model.read(reader);\n      const uri = this.editor.getModel()?.uri;\n      if (!model || !uri) {\n        return;\n      }\n      reader.store.add(model.onDidAccept(() =\u003e {\n        for (const ctrl of InlineCompletionsController_1._instances) {\n          if (ctrl === this) {\n            continue;\n          }\n          const state = ctrl.model.get()?.state.get();\n          if (state?.kind === \"inlineEdit\" \u0026\u0026 isEqual(state.nextEditUri, uri)) {\n            ctrl.model.get()?.stop(\"automatic\");\n          }\n        }\n      }));\n    }));\n    this._register(runOnChange(this._editorObs.onDidType, (_value, _changes) =\u003e {\n      if (this._enabled.get()) {\n        this.model.get()?.trigger();\n      }\n    }));\n    this._register(runOnChange(this._editorObs.onDidPaste, (_value, _changes) =\u003e {\n      if (this._enabled.get()) {\n        this.model.get()?.trigger();\n      }\n    }));\n    this._register(this._commandService.onDidExecuteCommand((e) =\u003e {\n      const commands = /* @__PURE__ */ new Set([\n        CoreEditingCommands.Tab.id,\n        CoreEditingCommands.DeleteLeft.id,\n        CoreEditingCommands.DeleteRight.id,\n        inlineSuggestCommitId,\n        \"acceptSelectedSuggestion\"\n      ]);\n      if (commands.has(e.commandId) \u0026\u0026 editor2.hasTextFocus() \u0026\u0026 this._enabled.get()) {\n        let noDelay = false;\n        if (e.commandId === inlineSuggestCommitId) {\n          noDelay = true;\n        }\n        this._editorObs.forceUpdate((tx) =\u003e {\n          this.model.get()?.trigger(tx, { noDelay });\n        });\n      }\n    }));\n    this._register(runOnChange(this._editorObs.selections, (_value, _, changes) =\u003e {\n      if (changes.some((e) =\u003e e.reason === 3 || e.source === \"api\")) {\n        if (!this._hideInlineEditOnSelectionChange.get() \u0026\u0026 this.model.get()?.state.get()?.kind === \"inlineEdit\") {\n          return;\n        }\n        const m = this.model.get();\n        if (!m) {\n          return;\n        }\n        if (m.state.get()?.kind === \"ghostText\") {\n          this.model.get()?.stop();\n        }\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      const isFocused = this._focusIsInEditorOrMenu.read(reader);\n      const model = this.model.get();\n      if (isFocused) {\n        const state = model?.state?.get();\n        if (!state || state.kind !== \"inlineEdit\" || !state.nextEditUri) {\n          transaction((tx) =\u003e {\n            for (const ctrl of InlineCompletionsController_1._instances) {\n              if (ctrl !== this) {\n                ctrl.model.get()?.stop(\"automatic\", tx);\n              }\n            }\n          });\n        }\n        return;\n      }\n      if (this._contextKeyService.getContextKeyValue(\"accessibleViewIsShown\") || this._configurationService.getValue(\"editor.inlineSuggest.keepOnBlur\") || editor2.getOption(\n        71\n        /* EditorOption.inlineSuggest */\n      ).keepOnBlur || InlineSuggestionHintsContentWidget.dropDownVisible) {\n        return;\n      }\n      if (!model) {\n        return;\n      }\n      if (model.state.get()?.inlineCompletion?.isFromExplicitRequest \u0026\u0026 model.inlineEditAvailable.get()) {\n        return;\n      }\n      transaction((tx) =\u003e {\n        model.stop(\"automatic\", tx);\n      });\n    }));\n    this._register(autorun((reader) =\u003e {\n      const state = this.model.read(reader)?.inlineCompletionState.read(reader);\n      if (state?.suggestItem) {\n        if (state.primaryGhostText.lineCount \u003e= 2) {\n          this._suggestWidgetAdapter.forceRenderingAbove();\n        }\n      } else {\n        this._suggestWidgetAdapter.stopForceRenderingAbove();\n      }\n    }));\n    this._register(toDisposable(() =\u003e {\n      this._suggestWidgetAdapter.stopForceRenderingAbove();\n    }));\n    const currentInlineCompletionBySemanticId = derivedObservableWithCache(this, (reader, last) =\u003e {\n      const model = this.model.read(reader);\n      const state = model?.state.read(reader);\n      if (this._suggestWidgetAdapter.selectedItem.get()) {\n        return last;\n      }\n      return state?.inlineCompletion?.semanticId;\n    });\n    this._register(runOnChangeWithStore(derived((reader) =\u003e {\n      this._playAccessibilitySignal.read(reader);\n      currentInlineCompletionBySemanticId.read(reader);\n      return {};\n    }), async (_value, _, _deltas, store) =\u003e {\n      const model = this.model.get();\n      const state = model?.state.get();\n      if (!state || !model) {\n        return;\n      }\n      const lineText = state.kind === \"ghostText\" ? model.textModel.getLineContent(state.primaryGhostText.lineNumber) : \"\";\n      await timeout(50, cancelOnDispose(store));\n      await waitForState(this._suggestWidgetAdapter.selectedItem, isUndefined, () =\u003e false, cancelOnDispose(store));\n      await this._accessibilitySignalService.playSignal(state.kind === \"ghostText\" ? AccessibilitySignal.inlineSuggestion : AccessibilitySignal.nextEditSuggestion);\n      if (this.editor.getOption(\n        12\n        /* EditorOption.screenReaderAnnounceInlineSuggestion */\n      )) {\n        if (state.kind === \"ghostText\") {\n          this._provideScreenReaderUpdate(state.primaryGhostText.renderForScreenReader(lineText));\n        } else {\n          this._provideScreenReaderUpdate(\"\");\n        }\n      }\n    }));\n    this._register(this._configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(\"accessibility.verbosity.inlineCompletions\")) {\n        this.editor.updateOptions({ inlineCompletionsAccessibilityVerbose: this._configurationService.getValue(\"accessibility.verbosity.inlineCompletions\") });\n      }\n    }));\n    this.editor.updateOptions({ inlineCompletionsAccessibilityVerbose: this._configurationService.getValue(\"accessibility.verbosity.inlineCompletions\") });\n    const contextKeySvcObs = new ObservableContextKeyService(this._contextKeyService);\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.cursorInIndentation, this._cursorIsInIndentation));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.hasSelection, (reader) =\u003e !this._editorObs.cursorSelection.read(reader)?.isEmpty()));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.cursorAtInlineEdit, this.model.map((m, reader) =\u003e m?.inlineEditState?.read(reader)?.cursorAtInlineEdit.read(reader))));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.tabShouldAcceptInlineEdit, this.model.map((m, r) =\u003e !!m?.tabShouldAcceptInlineEdit.read(r))));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.tabShouldJumpToInlineEdit, this.model.map((m, r) =\u003e !!m?.tabShouldJumpToInlineEdit.read(r))));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.inlineEditVisible, (reader) =\u003e this.model.read(reader)?.inlineEditState.read(reader) !== void 0));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.inlineSuggestionHasIndentation, (reader) =\u003e this.model.read(reader)?.getIndentationInfo(reader)?.startsWithIndentation));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize, (reader) =\u003e this.model.read(reader)?.getIndentationInfo(reader)?.startsWithIndentationLessThanTabSize));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.suppressSuggestions, (reader) =\u003e {\n      const model = this.model.read(reader);\n      const state = model?.inlineCompletionState.read(reader);\n      return state?.primaryGhostText \u0026\u0026 state?.inlineCompletion ? state.inlineCompletion.source.inlineSuggestions.suppressSuggestions : void 0;\n    }));\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.inlineSuggestionVisible, (reader) =\u003e {\n      const model = this.model.read(reader);\n      const state = model?.inlineCompletionState.read(reader);\n      return !!state?.inlineCompletion \u0026\u0026 state?.primaryGhostText !== void 0 \u0026\u0026 !state?.primaryGhostText.isEmpty();\n    }));\n    const firstGhostTextPos = derived(this, (reader) =\u003e {\n      const model = this.model.read(reader);\n      const state = model?.inlineCompletionState.read(reader);\n      const primaryGhostText = state?.primaryGhostText;\n      if (!primaryGhostText || primaryGhostText.isEmpty()) {\n        return void 0;\n      }\n      const firstPartPos = new Position(primaryGhostText.lineNumber, primaryGhostText.parts[0].column);\n      return firstPartPos;\n    });\n    this._register(contextKeySvcObs.bind(InlineCompletionContextKeys.cursorBeforeGhostText, (reader) =\u003e {\n      const firstPartPos = firstGhostTextPos.read(reader);\n      if (!firstPartPos) {\n        return false;\n      }\n      const cursorPos = this._editorObs.cursorPosition.read(reader);\n      if (!cursorPos) {\n        return false;\n      }\n      return firstPartPos.equals(cursorPos);\n    }));\n    this._register(this._instantiationService.createInstance(TextModelChangeRecorder, this.editor));\n  }\n  playAccessibilitySignal(tx) {\n    this._playAccessibilitySignal.trigger(tx);\n  }\n  _provideScreenReaderUpdate(content) {\n    const accessibleViewShowing = this._contextKeyService.getContextKeyValue(\"accessibleViewIsShown\");\n    const accessibleViewKeybinding = this._keybindingService.lookupKeybinding(\"editor.action.accessibleView\");\n    let hint;\n    if (!accessibleViewShowing \u0026\u0026 accessibleViewKeybinding \u0026\u0026 this.editor.getOption(\n      168\n      /* EditorOption.inlineCompletionsAccessibilityVerbose */\n    )) {\n      hint = localize(1193, \"Inspect this in the accessible view ({0})\", accessibleViewKeybinding.getAriaLabel());\n    }\n    alert(hint ? content + \", \" + hint : content);\n  }\n  shouldShowHoverAt(range2) {\n    const ghostText = this.model.get()?.primaryGhostText.get();\n    if (!ghostText) {\n      return false;\n    }\n    return ghostText.parts.some((p) =\u003e range2.containsPosition(new Position(ghostText.lineNumber, p.column)));\n  }\n  shouldShowHoverAtViewZone(viewZoneId) {\n    return this._view.shouldShowHoverAtViewZone(viewZoneId);\n  }\n  reject() {\n    transaction((tx) =\u003e {\n      const m = this.model.get();\n      if (m) {\n        m.stop(\"explicitCancel\", tx);\n        if (this._focusIsInEditorOrMenu.get()) {\n          for (const ctrl of InlineCompletionsController_1._instances) {\n            if (ctrl !== this) {\n              ctrl.model.get()?.stop(\"automatic\", tx);\n            }\n          }\n        }\n      }\n    });\n  }\n  jump() {\n    const m = this.model.get();\n    if (m) {\n      m.jump();\n    }\n  }\n};\nInlineCompletionsController = InlineCompletionsController_1 = __decorate125([\n  __param119(1, IInstantiationService),\n  __param119(2, IContextKeyService),\n  __param119(3, IConfigurationService),\n  __param119(4, ICommandService),\n  __param119(5, ILanguageFeatureDebounceService),\n  __param119(6, ILanguageFeaturesService),\n  __param119(7, IAccessibilitySignalService),\n  __param119(8, IKeybindingService),\n  __param119(9, IAccessibilityService)\n], InlineCompletionsController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js\nvar ShowNextInlineSuggestionAction = class _ShowNextInlineSuggestionAction extends EditorAction {\n  static {\n    this.ID = showNextInlineSuggestionActionId;\n  }\n  constructor() {\n    super({\n      id: _ShowNextInlineSuggestionAction.ID,\n      label: localize2(1171, \"Show Next Inline Suggestion\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n      kbOpts: {\n        weight: 100,\n        primary: 512 | 94\n      }\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = InlineCompletionsController.get(editor2);\n    controller?.model.get()?.next();\n  }\n};\nvar ShowPreviousInlineSuggestionAction = class _ShowPreviousInlineSuggestionAction extends EditorAction {\n  static {\n    this.ID = showPreviousInlineSuggestionActionId;\n  }\n  constructor() {\n    super({\n      id: _ShowPreviousInlineSuggestionAction.ID,\n      label: localize2(1172, \"Show Previous Inline Suggestion\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n      kbOpts: {\n        weight: 100,\n        primary: 512 | 92\n      }\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = InlineCompletionsController.get(editor2);\n    controller?.model.get()?.previous();\n  }\n};\nvar TriggerInlineSuggestionAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.inlineSuggest.trigger\",\n      label: localize2(1173, \"Trigger Inline Suggestion\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = InlineCompletionsController.get(editor2);\n    await asyncTransaction(async (tx) =\u003e {\n      await controller?.model.get()?.triggerExplicitly(tx);\n      controller?.playAccessibilitySignal(tx);\n    });\n  }\n};\nvar ExplicitTriggerInlineEditAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.inlineSuggest.triggerInlineEditExplicit\",\n      label: localize2(1174, \"Trigger Next Edit Suggestion\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  async run(accessor, editor2) {\n    const notificationService = accessor.get(INotificationService);\n    const controller = InlineCompletionsController.get(editor2);\n    await controller?.model.get()?.triggerExplicitly(void 0, true);\n    if (!controller?.model.get()?.inlineEditAvailable.get()) {\n      notificationService.notify({\n        severity: Severity2.Info,\n        message: localize(1162, \"No inline edit is available.\")\n      });\n    }\n  }\n};\nvar TriggerInlineEditAction = class extends EditorCommand {\n  constructor() {\n    super({\n      id: \"editor.action.inlineSuggest.triggerInlineEdit\",\n      precondition: EditorContextKeys.writable\n    });\n  }\n  async runEditorCommand(accessor, editor2, args) {\n    const controller = InlineCompletionsController.get(editor2);\n    await controller?.model.get()?.trigger(void 0, { onlyFetchInlineEdits: true });\n  }\n};\nvar AcceptNextWordOfInlineCompletion = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.inlineSuggest.acceptNextWord\",\n      label: localize2(1175, \"Accept Next Word Of Inline Suggestion\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n      kbOpts: {\n        weight: 100 + 1,\n        primary: 2048 | 17,\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible, InlineCompletionContextKeys.cursorBeforeGhostText, CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate())\n      },\n      menuOpts: [{\n        menuId: MenuId.InlineSuggestionToolbar,\n        title: localize(1163, \"Accept Word\"),\n        group: \"primary\",\n        order: 2\n      }]\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = InlineCompletionsController.get(editor2);\n    await controller?.model.get()?.acceptNextWord();\n  }\n};\nvar AcceptNextLineOfInlineCompletion = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.inlineSuggest.acceptNextLine\",\n      label: localize2(1176, \"Accept Next Line Of Inline Suggestion\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n      kbOpts: {\n        weight: 100 + 1\n      },\n      menuOpts: [{\n        menuId: MenuId.InlineSuggestionToolbar,\n        title: localize(1164, \"Accept Line\"),\n        group: \"secondary\",\n        order: 2\n      }]\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = InlineCompletionsController.get(editor2);\n    await controller?.model.get()?.acceptNextLine();\n  }\n};\nvar AcceptInlineCompletion = class extends EditorAction {\n  constructor() {\n    super({\n      id: inlineSuggestCommitId,\n      label: localize2(1177, \"Accept Inline Suggestion\"),\n      precondition: ContextKeyExpr.or(InlineCompletionContextKeys.inlineSuggestionVisible, InlineCompletionContextKeys.inlineEditVisible),\n      menuOpts: [{\n        menuId: MenuId.InlineSuggestionToolbar,\n        title: localize(1165, \"Accept\"),\n        group: \"primary\",\n        order: 2\n      }, {\n        menuId: MenuId.InlineEditsActions,\n        title: localize(1166, \"Accept\"),\n        group: \"primary\",\n        order: 2\n      }],\n      kbOpts: [\n        {\n          primary: 2,\n          weight: 200,\n          kbExpr: ContextKeyExpr.or(ContextKeyExpr.and(InlineCompletionContextKeys.inlineSuggestionVisible, EditorContextKeys.tabMovesFocus.toNegated(), Context.Visible.toNegated(), EditorContextKeys.hoverFocused.toNegated(), InlineCompletionContextKeys.hasSelection.toNegated(), InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize), ContextKeyExpr.and(InlineCompletionContextKeys.inlineEditVisible, EditorContextKeys.tabMovesFocus.toNegated(), Context.Visible.toNegated(), EditorContextKeys.hoverFocused.toNegated(), InlineCompletionContextKeys.tabShouldAcceptInlineEdit))\n        }\n      ]\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = InlineCompletionsController.getInFocusedEditorOrParent(accessor);\n    if (controller) {\n      controller.model.get()?.accept(controller.editor);\n      controller.editor.focus();\n    }\n  }\n};\nKeybindingsRegistry.registerKeybindingRule({\n  id: inlineSuggestCommitId,\n  weight: 202,\n  // greater than jump\n  primary: 2,\n  when: ContextKeyExpr.and(InlineCompletionContextKeys.inInlineEditsPreviewEditor)\n});\nvar JumpToNextInlineEdit = class extends EditorAction {\n  constructor() {\n    super({\n      id: jumpToNextInlineEditId,\n      label: localize2(1178, \"Jump to next inline edit\"),\n      precondition: InlineCompletionContextKeys.inlineEditVisible,\n      menuOpts: [{\n        menuId: MenuId.InlineEditsActions,\n        title: localize(1167, \"Jump\"),\n        group: \"primary\",\n        order: 1,\n        when: InlineCompletionContextKeys.cursorAtInlineEdit.toNegated()\n      }],\n      kbOpts: {\n        primary: 2,\n        weight: 201,\n        kbExpr: ContextKeyExpr.and(InlineCompletionContextKeys.inlineEditVisible, EditorContextKeys.tabMovesFocus.toNegated(), Context.Visible.toNegated(), EditorContextKeys.hoverFocused.toNegated(), InlineCompletionContextKeys.tabShouldJumpToInlineEdit)\n      }\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = InlineCompletionsController.get(editor2);\n    if (controller) {\n      controller.jump();\n    }\n  }\n};\nvar HideInlineCompletion = class _HideInlineCompletion extends EditorAction {\n  static {\n    this.ID = hideInlineCompletionId;\n  }\n  constructor() {\n    super({\n      id: _HideInlineCompletion.ID,\n      label: localize2(1179, \"Hide Inline Suggestion\"),\n      precondition: ContextKeyExpr.or(InlineCompletionContextKeys.inlineSuggestionVisible, InlineCompletionContextKeys.inlineEditVisible),\n      kbOpts: {\n        weight: 100 + 90,\n        // same as hiding the suggest widget\n        primary: 9\n      },\n      menuOpts: [{\n        menuId: MenuId.InlineEditsActions,\n        title: localize(1168, \"Reject\"),\n        group: \"primary\",\n        order: 3\n      }]\n    });\n  }\n  async run(accessor, editor2) {\n    const controller = InlineCompletionsController.getInFocusedEditorOrParent(accessor);\n    transaction((tx) =\u003e {\n      controller?.model.get()?.stop(\"explicitCancel\", tx);\n    });\n    controller?.editor.focus();\n  }\n};\nvar ToggleInlineCompletionShowCollapsed = class _ToggleInlineCompletionShowCollapsed extends EditorAction {\n  static {\n    this.ID = toggleShowCollapsedId;\n  }\n  constructor() {\n    super({\n      id: _ToggleInlineCompletionShowCollapsed.ID,\n      label: localize2(1180, \"Toggle Inline Suggestions Show Collapsed\"),\n      precondition: ContextKeyExpr.true()\n    });\n  }\n  async run(accessor, editor2) {\n    const configurationService = accessor.get(IConfigurationService);\n    const showCollapsed = configurationService.getValue(\"editor.inlineSuggest.edits.showCollapsed\");\n    configurationService.updateValue(\"editor.inlineSuggest.edits.showCollapsed\", !showCollapsed);\n  }\n};\nKeybindingsRegistry.registerKeybindingRule({\n  id: HideInlineCompletion.ID,\n  weight: -1,\n  // very weak\n  primary: 9,\n  secondary: [\n    1024 | 9\n    /* KeyCode.Escape */\n  ],\n  when: ContextKeyExpr.and(InlineCompletionContextKeys.inInlineEditsPreviewEditor)\n});\nvar ToggleAlwaysShowInlineSuggestionToolbar = class _ToggleAlwaysShowInlineSuggestionToolbar extends Action2 {\n  static {\n    this.ID = \"editor.action.inlineSuggest.toggleAlwaysShowToolbar\";\n  }\n  constructor() {\n    super({\n      id: _ToggleAlwaysShowInlineSuggestionToolbar.ID,\n      title: localize(1169, \"Always Show Toolbar\"),\n      f1: false,\n      precondition: void 0,\n      menu: [{\n        id: MenuId.InlineSuggestionToolbar,\n        group: \"secondary\",\n        order: 10\n      }],\n      toggled: ContextKeyExpr.equals(\"config.editor.inlineSuggest.showToolbar\", \"always\")\n    });\n  }\n  async run(accessor) {\n    const configService = accessor.get(IConfigurationService);\n    const currentValue = configService.getValue(\"editor.inlineSuggest.showToolbar\");\n    const newValue = currentValue === \"always\" ? \"onHover\" : \"always\";\n    configService.updateValue(\"editor.inlineSuggest.showToolbar\", newValue);\n  }\n};\nvar DevExtractReproSample = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.inlineSuggest.dev.extractRepro\",\n      label: localize(1170, \"Developer: Extract Inline Suggest State\"),\n      alias: \"Developer: Inline Suggest Extract Repro\",\n      precondition: ContextKeyExpr.or(InlineCompletionContextKeys.inlineEditVisible, InlineCompletionContextKeys.inlineSuggestionVisible)\n    });\n  }\n  async run(accessor, editor2) {\n    const clipboardService = accessor.get(IClipboardService);\n    const controller = InlineCompletionsController.get(editor2);\n    const m = controller?.model.get();\n    if (!m) {\n      return;\n    }\n    const repro = m.extractReproSample();\n    const inlineCompletionLines = splitLines(JSON.stringify({ inlineCompletion: repro.inlineCompletion }, null, 4));\n    const json = inlineCompletionLines.map((l) =\u003e \"// \" + l).join(\"\\n\");\n    const reproStr = `${repro.documentValue}\n\n// \u003cjson\u003e\n${json}\n// \u003c/json\u003e\n`;\n    await clipboardService.writeText(reproStr);\n    return { reproCase: reproStr };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js\ninit_dom();\ninit_htmlContent();\ninit_lifecycle();\ninit_observable();\ninit_range();\ninit_language();\ninit_nls();\ninit_instantiation();\ninit_telemetry();\nvar __decorate126 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param120 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar InlineCompletionsHover = class {\n  constructor(owner, range2, controller) {\n    this.owner = owner;\n    this.range = range2;\n    this.controller = controller;\n  }\n  isValidForHoverAnchor(anchor) {\n    return anchor.type === 1 \u0026\u0026 this.range.startColumn \u003c= anchor.range.startColumn \u0026\u0026 this.range.endColumn \u003e= anchor.range.endColumn;\n  }\n};\nvar InlineCompletionsHoverParticipant = class InlineCompletionsHoverParticipant2 {\n  constructor(_editor, _languageService, _openerService, accessibilityService, _instantiationService, _telemetryService) {\n    this._editor = _editor;\n    this._languageService = _languageService;\n    this._openerService = _openerService;\n    this.accessibilityService = accessibilityService;\n    this._instantiationService = _instantiationService;\n    this._telemetryService = _telemetryService;\n    this.hoverOrdinal = 4;\n  }\n  suggestHoverAnchor(mouseEvent) {\n    const controller = InlineCompletionsController.get(this._editor);\n    if (!controller) {\n      return null;\n    }\n    const target = mouseEvent.target;\n    if (target.type === 8) {\n      const viewZoneData = target.detail;\n      if (controller.shouldShowHoverAtViewZone(viewZoneData.viewZoneId)) {\n        return new HoverForeignElementAnchor(1e3, this, Range.fromPositions(this._editor.getModel().validatePosition(viewZoneData.positionBefore || viewZoneData.position)), mouseEvent.event.posx, mouseEvent.event.posy, false);\n      }\n    }\n    if (target.type === 7) {\n      if (controller.shouldShowHoverAt(target.range)) {\n        return new HoverForeignElementAnchor(1e3, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n      }\n    }\n    if (target.type === 6) {\n      const mightBeForeignElement = target.detail.mightBeForeignElement;\n      if (mightBeForeignElement \u0026\u0026 controller.shouldShowHoverAt(target.range)) {\n        return new HoverForeignElementAnchor(1e3, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n      }\n    }\n    if (target.type === 9 \u0026\u0026 target.element) {\n      const ctx = GhostTextView.getWarningWidgetContext(target.element);\n      if (ctx \u0026\u0026 controller.shouldShowHoverAt(ctx.range)) {\n        return new HoverForeignElementAnchor(1e3, this, ctx.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n      }\n    }\n    return null;\n  }\n  computeSync(anchor, lineDecorations) {\n    if (this._editor.getOption(\n      71\n      /* EditorOption.inlineSuggest */\n    ).showToolbar !== \"onHover\") {\n      return [];\n    }\n    const controller = InlineCompletionsController.get(this._editor);\n    if (controller \u0026\u0026 controller.shouldShowHoverAt(anchor.range)) {\n      return [new InlineCompletionsHover(this, anchor.range, controller)];\n    }\n    return [];\n  }\n  renderHoverParts(context, hoverParts) {\n    const disposables = new DisposableStore();\n    const part = hoverParts[0];\n    this._telemetryService.publicLog2(\"inlineCompletionHover.shown\");\n    if (this.accessibilityService.isScreenReaderOptimized() \u0026\u0026 !this._editor.getOption(\n      12\n      /* EditorOption.screenReaderAnnounceInlineSuggestion */\n    )) {\n      disposables.add(this.renderScreenReaderText(context, part));\n    }\n    const model = part.controller.model.get();\n    const widgetNode = document.createElement(\"div\");\n    context.fragment.appendChild(widgetNode);\n    disposables.add(autorunWithStore((reader, store) =\u003e {\n      const w = store.add(this._instantiationService.createInstance(InlineSuggestionHintsContentWidget.hot.read(reader), this._editor, false, constObservable(null), model.selectedInlineCompletionIndex, model.inlineCompletionsCount, model.activeCommands, model.warning, () =\u003e {\n        context.onContentsChanged();\n      }));\n      widgetNode.replaceChildren(w.getDomNode());\n    }));\n    model.triggerExplicitly();\n    const renderedHoverPart = {\n      hoverPart: part,\n      hoverElement: widgetNode,\n      dispose() {\n        disposables.dispose();\n      }\n    };\n    return new RenderedHoverParts([renderedHoverPart]);\n  }\n  renderScreenReaderText(context, part) {\n    const disposables = new DisposableStore();\n    const $23 = $;\n    const markdownHoverElement = $23(\"div.hover-row.markdown-hover\");\n    const hoverContentsElement = append(markdownHoverElement, $23(\"div.hover-contents\", { [\"aria-live\"]: \"assertive\" }));\n    const renderer = new MarkdownRenderer({ editor: this._editor }, this._languageService, this._openerService);\n    const render = (code) =\u003e {\n      const inlineSuggestionAvailable = localize(1194, \"Suggestion:\");\n      const renderedContents = disposables.add(renderer.render(new MarkdownString().appendText(inlineSuggestionAvailable).appendCodeblock(\"text\", code), {\n        asyncRenderCallback: () =\u003e {\n          hoverContentsElement.className = \"hover-contents code-hover-contents\";\n          context.onContentsChanged();\n        }\n      }));\n      hoverContentsElement.replaceChildren(renderedContents.element);\n    };\n    disposables.add(autorun((reader) =\u003e {\n      const ghostText = part.controller.model.read(reader)?.primaryGhostText.read(reader);\n      if (ghostText) {\n        const lineText = this._editor.getModel().getLineContent(ghostText.lineNumber);\n        render(ghostText.renderForScreenReader(lineText));\n      } else {\n        reset(hoverContentsElement);\n      }\n    }));\n    context.fragment.appendChild(markdownHoverElement);\n    return disposables;\n  }\n};\nInlineCompletionsHoverParticipant = __decorate126([\n  __param120(1, ILanguageService),\n  __param120(2, IOpenerService),\n  __param120(3, IAccessibilityService),\n  __param120(4, IInstantiationService),\n  __param120(5, ITelemetryService)\n], InlineCompletionsHoverParticipant);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsAccessibleView.js\nvar InlineCompletionsAccessibleView = class {\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js\nregisterEditorContribution(\n  InlineCompletionsController.ID,\n  wrapInHotClass1(InlineCompletionsController.hot),\n  3\n  /* EditorContributionInstantiation.Eventually */\n);\nregisterEditorAction(TriggerInlineSuggestionAction);\nregisterEditorAction(ExplicitTriggerInlineEditAction);\nregisterEditorCommand(new TriggerInlineEditAction());\nregisterEditorAction(ShowNextInlineSuggestionAction);\nregisterEditorAction(ShowPreviousInlineSuggestionAction);\nregisterEditorAction(AcceptNextWordOfInlineCompletion);\nregisterEditorAction(AcceptNextLineOfInlineCompletion);\nregisterEditorAction(AcceptInlineCompletion);\nregisterEditorAction(ToggleInlineCompletionShowCollapsed);\nregisterEditorAction(HideInlineCompletion);\nregisterEditorAction(JumpToNextInlineEdit);\nregisterAction2(ToggleAlwaysShowInlineSuggestionToolbar);\nregisterEditorAction(DevExtractReproSample);\nregisterAction2(SnoozeInlineCompletion);\nregisterAction2(CancelSnoozeInlineCompletion);\nHoverParticipantRegistry.register(InlineCompletionsHoverParticipant);\nAccessibleViewRegistry.register(new InlineCompletionsAccessibleView());\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js\ninit_async();\ninit_errors();\ninit_htmlContent();\ninit_lifecycle();\ninit_editorState();\ninit_editorExtensions();\ninit_range();\ninit_language();\ninit_resolverService();\ninit_nls();\ninit_contextkey();\ninit_languageFeatures();\ninit_textModel();\nvar __decorate127 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param121 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar GotoDefinitionAtPositionEditorContribution_1;\nvar GotoDefinitionAtPositionEditorContribution = class GotoDefinitionAtPositionEditorContribution2 {\n  static {\n    GotoDefinitionAtPositionEditorContribution_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.gotodefinitionatposition\";\n  }\n  static {\n    this.MAX_SOURCE_PREVIEW_LINES = 8;\n  }\n  constructor(editor2, textModelResolverService, languageService, languageFeaturesService) {\n    this.textModelResolverService = textModelResolverService;\n    this.languageService = languageService;\n    this.languageFeaturesService = languageFeaturesService;\n    this.toUnhook = new DisposableStore();\n    this.toUnhookForKeyboard = new DisposableStore();\n    this.currentWordAtPosition = null;\n    this.previousPromise = null;\n    this.editor = editor2;\n    this.linkDecorations = this.editor.createDecorationsCollection();\n    const linkGesture = new ClickLinkGesture(editor2);\n    this.toUnhook.add(linkGesture);\n    this.toUnhook.add(linkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) =\u003e {\n      this.startFindDefinitionFromMouse(mouseEvent, keyboardEvent ?? void 0);\n    }));\n    this.toUnhook.add(linkGesture.onExecute((mouseEvent) =\u003e {\n      if (this.isEnabled(mouseEvent)) {\n        this.gotoDefinition(mouseEvent.target.position, mouseEvent.hasSideBySideModifier).catch((error) =\u003e {\n          onUnexpectedError(error);\n        }).finally(() =\u003e {\n          this.removeLinkDecorations();\n        });\n      }\n    }));\n    this.toUnhook.add(linkGesture.onCancel(() =\u003e {\n      this.removeLinkDecorations();\n      this.currentWordAtPosition = null;\n    }));\n  }\n  static get(editor2) {\n    return editor2.getContribution(GotoDefinitionAtPositionEditorContribution_1.ID);\n  }\n  async startFindDefinitionFromCursor(position) {\n    await this.startFindDefinition(position);\n    this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(() =\u003e {\n      this.currentWordAtPosition = null;\n      this.removeLinkDecorations();\n      this.toUnhookForKeyboard.clear();\n    }));\n    this.toUnhookForKeyboard.add(this.editor.onKeyDown((e) =\u003e {\n      if (e) {\n        this.currentWordAtPosition = null;\n        this.removeLinkDecorations();\n        this.toUnhookForKeyboard.clear();\n      }\n    }));\n  }\n  startFindDefinitionFromMouse(mouseEvent, withKey) {\n    if (mouseEvent.target.type === 9 \u0026\u0026 this.linkDecorations.length \u003e 0) {\n      return;\n    }\n    if (!this.editor.hasModel() || !this.isEnabled(mouseEvent, withKey)) {\n      this.currentWordAtPosition = null;\n      this.removeLinkDecorations();\n      return;\n    }\n    const position = mouseEvent.target.position;\n    this.startFindDefinition(position);\n  }\n  async startFindDefinition(position) {\n    this.toUnhookForKeyboard.clear();\n    const word = position ? this.editor.getModel()?.getWordAtPosition(position) : null;\n    if (!word) {\n      this.currentWordAtPosition = null;\n      this.removeLinkDecorations();\n      return;\n    }\n    if (this.currentWordAtPosition \u0026\u0026 this.currentWordAtPosition.startColumn === word.startColumn \u0026\u0026 this.currentWordAtPosition.endColumn === word.endColumn \u0026\u0026 this.currentWordAtPosition.word === word.word) {\n      return;\n    }\n    this.currentWordAtPosition = word;\n    const state = new EditorState(\n      this.editor,\n      4 | 1 | 2 | 8\n      /* CodeEditorStateFlag.Scroll */\n    );\n    if (this.previousPromise) {\n      this.previousPromise.cancel();\n      this.previousPromise = null;\n    }\n    this.previousPromise = createCancelablePromise((token) =\u003e this.findDefinition(position, token));\n    let results;\n    try {\n      results = await this.previousPromise;\n    } catch (error) {\n      onUnexpectedError(error);\n      return;\n    }\n    if (!results || !results.length || !state.validate(this.editor)) {\n      this.removeLinkDecorations();\n      return;\n    }\n    const linkRange = results[0].originSelectionRange ? Range.lift(results[0].originSelectionRange) : new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n    if (results.length \u003e 1) {\n      let combinedRange = linkRange;\n      for (const { originSelectionRange } of results) {\n        if (originSelectionRange) {\n          combinedRange = Range.plusRange(combinedRange, originSelectionRange);\n        }\n      }\n      this.addDecoration(combinedRange, new MarkdownString().appendText(localize(1069, \"Click to show {0} definitions.\", results.length)));\n    } else {\n      const result = results[0];\n      if (!result.uri) {\n        return;\n      }\n      return this.textModelResolverService.createModelReference(result.uri).then((ref) =\u003e {\n        if (!ref.object || !ref.object.textEditorModel) {\n          ref.dispose();\n          return;\n        }\n        const { object: { textEditorModel } } = ref;\n        const { startLineNumber } = result.range;\n        if (startLineNumber \u003c 1 || startLineNumber \u003e textEditorModel.getLineCount()) {\n          ref.dispose();\n          return;\n        }\n        const previewValue = this.getPreviewValue(textEditorModel, startLineNumber, result);\n        const languageId = this.languageService.guessLanguageIdByFilepathOrFirstLine(textEditorModel.uri);\n        this.addDecoration(linkRange, previewValue ? new MarkdownString().appendCodeblock(languageId ? languageId : \"\", previewValue) : void 0);\n        ref.dispose();\n      });\n    }\n  }\n  getPreviewValue(textEditorModel, startLineNumber, result) {\n    let rangeToUse = result.range;\n    const numberOfLinesInRange = rangeToUse.endLineNumber - rangeToUse.startLineNumber;\n    if (numberOfLinesInRange \u003e= GotoDefinitionAtPositionEditorContribution_1.MAX_SOURCE_PREVIEW_LINES) {\n      rangeToUse = this.getPreviewRangeBasedOnIndentation(textEditorModel, startLineNumber);\n    }\n    rangeToUse = textEditorModel.validateRange(rangeToUse);\n    const previewValue = this.stripIndentationFromPreviewRange(textEditorModel, startLineNumber, rangeToUse);\n    return previewValue;\n  }\n  stripIndentationFromPreviewRange(textEditorModel, startLineNumber, previewRange) {\n    const startIndent = textEditorModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n    let minIndent = startIndent;\n    for (let endLineNumber = startLineNumber + 1; endLineNumber \u003c previewRange.endLineNumber; endLineNumber++) {\n      const endIndent = textEditorModel.getLineFirstNonWhitespaceColumn(endLineNumber);\n      minIndent = Math.min(minIndent, endIndent);\n    }\n    const previewValue = textEditorModel.getValueInRange(previewRange).replace(new RegExp(`^\\\\s{${minIndent - 1}}`, \"gm\"), \"\").trim();\n    return previewValue;\n  }\n  getPreviewRangeBasedOnIndentation(textEditorModel, startLineNumber) {\n    const startIndent = textEditorModel.getLineFirstNonWhitespaceColumn(startLineNumber);\n    const maxLineNumber = Math.min(textEditorModel.getLineCount(), startLineNumber + GotoDefinitionAtPositionEditorContribution_1.MAX_SOURCE_PREVIEW_LINES);\n    let endLineNumber = startLineNumber + 1;\n    for (; endLineNumber \u003c maxLineNumber; endLineNumber++) {\n      const endIndent = textEditorModel.getLineFirstNonWhitespaceColumn(endLineNumber);\n      if (startIndent === endIndent) {\n        break;\n      }\n    }\n    return new Range(startLineNumber, 1, endLineNumber + 1, 1);\n  }\n  addDecoration(range2, hoverMessage) {\n    const newDecorations = {\n      range: range2,\n      options: {\n        description: \"goto-definition-link\",\n        inlineClassName: \"goto-definition-link\",\n        hoverMessage\n      }\n    };\n    this.linkDecorations.set([newDecorations]);\n  }\n  removeLinkDecorations() {\n    this.linkDecorations.clear();\n  }\n  isEnabled(mouseEvent, withKey) {\n    return this.editor.hasModel() \u0026\u0026 mouseEvent.isLeftClick \u0026\u0026 mouseEvent.isNoneOrSingleMouseDown \u0026\u0026 mouseEvent.target.type === 6 \u0026\u0026 !(mouseEvent.target.detail.injectedText?.options instanceof ModelDecorationInjectedTextOptions) \u0026\u0026 (mouseEvent.hasTriggerModifier || (withKey ? withKey.keyCodeIsTriggerKey : false)) \u0026\u0026 this.languageFeaturesService.definitionProvider.has(this.editor.getModel());\n  }\n  findDefinition(position, token) {\n    const model = this.editor.getModel();\n    if (!model) {\n      return Promise.resolve(null);\n    }\n    return getDefinitionsAtPosition(this.languageFeaturesService.definitionProvider, model, position, false, token);\n  }\n  gotoDefinition(position, openToSide) {\n    this.editor.setPosition(position);\n    return this.editor.invokeWithinContext((accessor) =\u003e {\n      const canPeek = !openToSide \u0026\u0026 this.editor.getOption(\n        100\n        /* EditorOption.definitionLinkOpensInPeek */\n      ) \u0026\u0026 !this.isInPeekEditor(accessor);\n      const action = new DefinitionAction({ openToSide, openInPeek: canPeek, muteMessage: true }, { title: { value: \"\", original: \"\" }, id: \"\", precondition: void 0 });\n      return action.run(accessor);\n    });\n  }\n  isInPeekEditor(accessor) {\n    const contextKeyService = accessor.get(IContextKeyService);\n    return PeekContext.inPeekEditor.getValue(contextKeyService);\n  }\n  dispose() {\n    this.toUnhook.dispose();\n    this.toUnhookForKeyboard.dispose();\n  }\n};\nGotoDefinitionAtPositionEditorContribution = GotoDefinitionAtPositionEditorContribution_1 = __decorate127([\n  __param121(1, ITextModelService),\n  __param121(2, ILanguageService),\n  __param121(3, ILanguageFeaturesService)\n], GotoDefinitionAtPositionEditorContribution);\nregisterEditorContribution(\n  GotoDefinitionAtPositionEditorContribution.ID,\n  GotoDefinitionAtPositionEditorContribution,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoError/browser/gotoError.js\ninit_codicons();\ninit_lifecycle();\ninit_editorExtensions();\ninit_codeEditorService();\ninit_position();\ninit_range();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoError/browser/markerNavigationService.js\ninit_arrays();\ninit_event();\ninit_lifecycle();\ninit_linkedList();\ninit_strings();\ninit_uri();\ninit_range();\ninit_extensions();\ninit_instantiation();\ninit_configuration();\ninit_resources();\nvar __decorate128 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param122 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MarkerCoordinate = class {\n  constructor(marker, index, total) {\n    this.marker = marker;\n    this.index = index;\n    this.total = total;\n  }\n};\nvar MarkerList = class MarkerList2 {\n  constructor(resourceFilter, _markerService, _configService) {\n    this._markerService = _markerService;\n    this._configService = _configService;\n    this._onDidChange = new Emitter();\n    this.onDidChange = this._onDidChange.event;\n    this._dispoables = new DisposableStore();\n    this._markers = [];\n    this._nextIdx = -1;\n    if (URI.isUri(resourceFilter)) {\n      this._resourceFilter = (uri) =\u003e uri.toString() === resourceFilter.toString();\n    } else if (resourceFilter) {\n      this._resourceFilter = resourceFilter;\n    }\n    const compareOrder = this._configService.getValue(\"problems.sortOrder\");\n    const compareMarker = (a, b) =\u003e {\n      let res = compare(a.resource.toString(), b.resource.toString());\n      if (res === 0) {\n        if (compareOrder === \"position\") {\n          res = Range.compareRangesUsingStarts(a, b) || MarkerSeverity.compare(a.severity, b.severity);\n        } else {\n          res = MarkerSeverity.compare(a.severity, b.severity) || Range.compareRangesUsingStarts(a, b);\n        }\n      }\n      return res;\n    };\n    const updateMarker = () =\u003e {\n      let newMarkers = this._markerService.read({\n        resource: URI.isUri(resourceFilter) ? resourceFilter : void 0,\n        severities: MarkerSeverity.Error | MarkerSeverity.Warning | MarkerSeverity.Info\n      });\n      if (typeof resourceFilter === \"function\") {\n        newMarkers = newMarkers.filter((m) =\u003e this._resourceFilter(m.resource));\n      }\n      newMarkers.sort(compareMarker);\n      if (equals(newMarkers, this._markers, (a, b) =\u003e a.resource.toString() === b.resource.toString() \u0026\u0026 a.startLineNumber === b.startLineNumber \u0026\u0026 a.startColumn === b.startColumn \u0026\u0026 a.endLineNumber === b.endLineNumber \u0026\u0026 a.endColumn === b.endColumn \u0026\u0026 a.severity === b.severity \u0026\u0026 a.message === b.message)) {\n        return false;\n      }\n      this._markers = newMarkers;\n      return true;\n    };\n    updateMarker();\n    this._dispoables.add(_markerService.onMarkerChanged((uris) =\u003e {\n      if (!this._resourceFilter || uris.some((uri) =\u003e this._resourceFilter(uri))) {\n        if (updateMarker()) {\n          this._nextIdx = -1;\n          this._onDidChange.fire();\n        }\n      }\n    }));\n  }\n  dispose() {\n    this._dispoables.dispose();\n    this._onDidChange.dispose();\n  }\n  matches(uri) {\n    if (!this._resourceFilter \u0026\u0026 !uri) {\n      return true;\n    }\n    if (!this._resourceFilter || !uri) {\n      return false;\n    }\n    return this._resourceFilter(uri);\n  }\n  get selected() {\n    const marker = this._markers[this._nextIdx];\n    return marker \u0026\u0026 new MarkerCoordinate(marker, this._nextIdx + 1, this._markers.length);\n  }\n  _initIdx(model, position, fwd) {\n    let idx = this._markers.findIndex((marker) =\u003e isEqual(marker.resource, model.uri));\n    if (idx \u003c 0) {\n      idx = binarySearch2(this._markers.length, (idx2) =\u003e compare(this._markers[idx2].resource.toString(), model.uri.toString()));\n      if (idx \u003c 0) {\n        idx = ~idx;\n      }\n      if (fwd) {\n        this._nextIdx = idx;\n      } else {\n        this._nextIdx = (this._markers.length + idx - 1) % this._markers.length;\n      }\n    } else {\n      let found = false;\n      let wentPast = false;\n      for (let i2 = idx; i2 \u003c this._markers.length; i2++) {\n        let range2 = Range.lift(this._markers[i2]);\n        if (range2.isEmpty()) {\n          const word = model.getWordAtPosition(range2.getStartPosition());\n          if (word) {\n            range2 = new Range(range2.startLineNumber, word.startColumn, range2.startLineNumber, word.endColumn);\n          }\n        }\n        if (position \u0026\u0026 (range2.containsPosition(position) || position.isBeforeOrEqual(range2.getStartPosition()))) {\n          this._nextIdx = i2;\n          found = true;\n          wentPast = !range2.containsPosition(position);\n          break;\n        }\n        if (this._markers[i2].resource.toString() !== model.uri.toString()) {\n          break;\n        }\n      }\n      if (!found) {\n        this._nextIdx = fwd ? 0 : this._markers.length - 1;\n      } else if (wentPast \u0026\u0026 !fwd) {\n        this._nextIdx -= 1;\n      }\n    }\n    if (this._nextIdx \u003c 0) {\n      this._nextIdx = this._markers.length - 1;\n    }\n  }\n  resetIndex() {\n    this._nextIdx = -1;\n  }\n  move(fwd, model, position) {\n    if (this._markers.length === 0) {\n      return false;\n    }\n    const oldIdx = this._nextIdx;\n    if (this._nextIdx === -1) {\n      this._initIdx(model, position, fwd);\n    } else if (fwd) {\n      this._nextIdx = (this._nextIdx + 1) % this._markers.length;\n    } else if (!fwd) {\n      this._nextIdx = (this._nextIdx - 1 + this._markers.length) % this._markers.length;\n    }\n    if (oldIdx !== this._nextIdx) {\n      return true;\n    }\n    return false;\n  }\n  find(uri, position) {\n    let idx = this._markers.findIndex((marker) =\u003e marker.resource.toString() === uri.toString());\n    if (idx \u003c 0) {\n      return void 0;\n    }\n    for (; idx \u003c this._markers.length; idx++) {\n      if (Range.containsPosition(this._markers[idx], position)) {\n        return new MarkerCoordinate(this._markers[idx], idx + 1, this._markers.length);\n      }\n    }\n    return void 0;\n  }\n};\nMarkerList = __decorate128([\n  __param122(1, IMarkerService),\n  __param122(2, IConfigurationService)\n], MarkerList);\nvar IMarkerNavigationService = createDecorator(\"IMarkerNavigationService\");\nvar MarkerNavigationService = class MarkerNavigationService2 {\n  constructor(_markerService, _configService) {\n    this._markerService = _markerService;\n    this._configService = _configService;\n    this._provider = new LinkedList();\n  }\n  getMarkerList(resource) {\n    for (const provider of this._provider) {\n      const result = provider.getMarkerList(resource);\n      if (result) {\n        return result;\n      }\n    }\n    return new MarkerList(resource, this._markerService, this._configService);\n  }\n};\nMarkerNavigationService = __decorate128([\n  __param122(0, IMarkerService),\n  __param122(1, IConfigurationService)\n], MarkerNavigationService);\nregisterSingleton(\n  IMarkerNavigationService,\n  MarkerNavigationService,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoError/browser/gotoError.js\ninit_nls();\ninit_actions2();\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js\ninit_dom();\ninit_arrays();\ninit_color();\ninit_event();\ninit_lifecycle();\ninit_resources();\ninit_strings();\ninit_range();\ninit_nls();\ninit_actions2();\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/severityIcon/severityIcon.js\ninit_codicons();\ninit_themables();\nvar SeverityIcon;\n(function(SeverityIcon2) {\n  function className2(severity) {\n    switch (severity) {\n      case severity_default.Ignore:\n        return \"severity-ignore \" + ThemeIcon.asClassName(Codicon.info);\n      case severity_default.Info:\n        return ThemeIcon.asClassName(Codicon.info);\n      case severity_default.Warning:\n        return ThemeIcon.asClassName(Codicon.warning);\n      case severity_default.Error:\n        return ThemeIcon.asClassName(Codicon.error);\n      default:\n        return \"\";\n    }\n  }\n  SeverityIcon2.className = className2;\n})(SeverityIcon || (SeverityIcon = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js\ninit_colorRegistry();\ninit_themeService();\nvar __decorate129 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param123 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MarkerNavigationWidget_1;\nvar MessageWidget2 = class {\n  constructor(parent, editor2, onRelatedInformation, _openerService, _labelService) {\n    this._openerService = _openerService;\n    this._labelService = _labelService;\n    this._lines = 0;\n    this._longestLineLength = 0;\n    this._relatedDiagnostics = /* @__PURE__ */ new WeakMap();\n    this._disposables = new DisposableStore();\n    this._editor = editor2;\n    const domNode = document.createElement(\"div\");\n    domNode.className = \"descriptioncontainer\";\n    this._messageBlock = document.createElement(\"div\");\n    this._messageBlock.classList.add(\"message\");\n    this._messageBlock.setAttribute(\"aria-live\", \"assertive\");\n    this._messageBlock.setAttribute(\"role\", \"alert\");\n    domNode.appendChild(this._messageBlock);\n    this._relatedBlock = document.createElement(\"div\");\n    domNode.appendChild(this._relatedBlock);\n    this._disposables.add(addStandardDisposableListener(this._relatedBlock, \"click\", (event) =\u003e {\n      event.preventDefault();\n      const related = this._relatedDiagnostics.get(event.target);\n      if (related) {\n        onRelatedInformation(related);\n      }\n    }));\n    this._scrollable = new ScrollableElement(domNode, {\n      horizontal: 1,\n      vertical: 1,\n      useShadows: false,\n      horizontalScrollbarSize: 6,\n      verticalScrollbarSize: 6\n    });\n    parent.appendChild(this._scrollable.getDomNode());\n    this._disposables.add(this._scrollable.onScroll((e) =\u003e {\n      domNode.style.left = `-${e.scrollLeft}px`;\n      domNode.style.top = `-${e.scrollTop}px`;\n    }));\n    this._disposables.add(this._scrollable);\n  }\n  dispose() {\n    dispose(this._disposables);\n  }\n  update(marker) {\n    const { source, message, relatedInformation, code } = marker;\n    let sourceAndCodeLength = (source?.length || 0) + \"()\".length;\n    if (code) {\n      if (typeof code === \"string\") {\n        sourceAndCodeLength += code.length;\n      } else {\n        sourceAndCodeLength += code.value.length;\n      }\n    }\n    const lines = splitLines(message);\n    this._lines = lines.length;\n    this._longestLineLength = 0;\n    for (const line of lines) {\n      this._longestLineLength = Math.max(line.length + sourceAndCodeLength, this._longestLineLength);\n    }\n    clearNode(this._messageBlock);\n    this._messageBlock.setAttribute(\"aria-label\", this.getAriaLabel(marker));\n    this._editor.applyFontInfo(this._messageBlock);\n    let lastLineElement = this._messageBlock;\n    for (const line of lines) {\n      lastLineElement = document.createElement(\"div\");\n      lastLineElement.innerText = line;\n      if (line === \"\") {\n        lastLineElement.style.height = this._messageBlock.style.lineHeight;\n      }\n      this._messageBlock.appendChild(lastLineElement);\n    }\n    if (source || code) {\n      const detailsElement = document.createElement(\"span\");\n      detailsElement.classList.add(\"details\");\n      lastLineElement.appendChild(detailsElement);\n      if (source) {\n        const sourceElement = document.createElement(\"span\");\n        sourceElement.innerText = source;\n        sourceElement.classList.add(\"source\");\n        detailsElement.appendChild(sourceElement);\n      }\n      if (code) {\n        if (typeof code === \"string\") {\n          const codeElement = document.createElement(\"span\");\n          codeElement.innerText = `(${code})`;\n          codeElement.classList.add(\"code\");\n          detailsElement.appendChild(codeElement);\n        } else {\n          this._codeLink = $(\"a.code-link\");\n          this._codeLink.setAttribute(\"href\", `${code.target.toString()}`);\n          this._codeLink.onclick = (e) =\u003e {\n            this._openerService.open(code.target, { allowCommands: true });\n            e.preventDefault();\n            e.stopPropagation();\n          };\n          const codeElement = append(this._codeLink, $(\"span\"));\n          codeElement.innerText = code.value;\n          detailsElement.appendChild(this._codeLink);\n        }\n      }\n    }\n    clearNode(this._relatedBlock);\n    this._editor.applyFontInfo(this._relatedBlock);\n    if (isNonEmptyArray(relatedInformation)) {\n      const relatedInformationNode = this._relatedBlock.appendChild(document.createElement(\"div\"));\n      relatedInformationNode.style.paddingTop = `${Math.floor(this._editor.getOption(\n        75\n        /* EditorOption.lineHeight */\n      ) * 0.66)}px`;\n      this._lines += 1;\n      for (const related of relatedInformation) {\n        const container = document.createElement(\"div\");\n        const relatedResource = document.createElement(\"a\");\n        relatedResource.classList.add(\"filename\");\n        relatedResource.innerText = `${this._labelService.getUriBasenameLabel(related.resource)}(${related.startLineNumber}, ${related.startColumn}): `;\n        relatedResource.title = this._labelService.getUriLabel(related.resource);\n        this._relatedDiagnostics.set(relatedResource, related);\n        const relatedMessage = document.createElement(\"span\");\n        relatedMessage.innerText = related.message;\n        container.appendChild(relatedResource);\n        container.appendChild(relatedMessage);\n        this._lines += 1;\n        relatedInformationNode.appendChild(container);\n      }\n    }\n    const fontInfo = this._editor.getOption(\n      59\n      /* EditorOption.fontInfo */\n    );\n    const scrollWidth = Math.ceil(fontInfo.typicalFullwidthCharacterWidth * this._longestLineLength * 0.75);\n    const scrollHeight = fontInfo.lineHeight * this._lines;\n    this._scrollable.setScrollDimensions({ scrollWidth, scrollHeight });\n  }\n  layout(height, width2) {\n    this._scrollable.getDomNode().style.height = `${height}px`;\n    this._scrollable.getDomNode().style.width = `${width2}px`;\n    this._scrollable.setScrollDimensions({ width: width2, height });\n  }\n  getHeightInLines() {\n    return Math.min(17, this._lines);\n  }\n  getAriaLabel(marker) {\n    let severityLabel = \"\";\n    switch (marker.severity) {\n      case MarkerSeverity.Error:\n        severityLabel = localize(1016, \"Error\");\n        break;\n      case MarkerSeverity.Warning:\n        severityLabel = localize(1017, \"Warning\");\n        break;\n      case MarkerSeverity.Info:\n        severityLabel = localize(1018, \"Info\");\n        break;\n      case MarkerSeverity.Hint:\n        severityLabel = localize(1019, \"Hint\");\n        break;\n    }\n    let ariaLabel = localize(1020, \"{0} at {1}. \", severityLabel, marker.startLineNumber + \":\" + marker.startColumn);\n    const model = this._editor.getModel();\n    if (model \u0026\u0026 marker.startLineNumber \u003c= model.getLineCount() \u0026\u0026 marker.startLineNumber \u003e= 1) {\n      const lineContent = model.getLineContent(marker.startLineNumber);\n      ariaLabel = `${lineContent}, ${ariaLabel}`;\n    }\n    return ariaLabel;\n  }\n};\nvar MarkerNavigationWidget = class MarkerNavigationWidget2 extends PeekViewWidget {\n  static {\n    MarkerNavigationWidget_1 = this;\n  }\n  static {\n    this.TitleMenu = new MenuId(\"gotoErrorTitleMenu\");\n  }\n  constructor(editor2, _themeService, _openerService, _menuService, instantiationService, _contextKeyService, _labelService) {\n    super(editor2, { showArrow: true, showFrame: true, isAccessible: true, frameWidth: 1 }, instantiationService);\n    this._themeService = _themeService;\n    this._openerService = _openerService;\n    this._menuService = _menuService;\n    this._contextKeyService = _contextKeyService;\n    this._labelService = _labelService;\n    this._callOnDispose = new DisposableStore();\n    this._onDidSelectRelatedInformation = new Emitter();\n    this.onDidSelectRelatedInformation = this._onDidSelectRelatedInformation.event;\n    this._severity = MarkerSeverity.Warning;\n    this._backgroundColor = Color.white;\n    this._applyTheme(_themeService.getColorTheme());\n    this._callOnDispose.add(_themeService.onDidColorThemeChange(this._applyTheme.bind(this)));\n    this.create();\n  }\n  _applyTheme(theme) {\n    this._backgroundColor = theme.getColor(editorMarkerNavigationBackground);\n    let colorId = editorMarkerNavigationError;\n    let headerBackground = editorMarkerNavigationErrorHeader;\n    if (this._severity === MarkerSeverity.Warning) {\n      colorId = editorMarkerNavigationWarning;\n      headerBackground = editorMarkerNavigationWarningHeader;\n    } else if (this._severity === MarkerSeverity.Info) {\n      colorId = editorMarkerNavigationInfo;\n      headerBackground = editorMarkerNavigationInfoHeader;\n    }\n    const frameColor = theme.getColor(colorId);\n    const headerBg = theme.getColor(headerBackground);\n    this.style({\n      arrowColor: frameColor,\n      frameColor,\n      headerBackgroundColor: headerBg,\n      primaryHeadingColor: theme.getColor(peekViewTitleForeground),\n      secondaryHeadingColor: theme.getColor(peekViewTitleInfoForeground)\n    });\n  }\n  _applyStyles() {\n    if (this._parentContainer) {\n      this._parentContainer.style.backgroundColor = this._backgroundColor ? this._backgroundColor.toString() : \"\";\n    }\n    super._applyStyles();\n  }\n  dispose() {\n    this._callOnDispose.dispose();\n    super.dispose();\n  }\n  _fillHead(container) {\n    super._fillHead(container);\n    this._disposables.add(this._actionbarWidget.actionRunner.onWillRun((e) =\u003e this.editor.focus()));\n    const menu = this._menuService.getMenuActions(MarkerNavigationWidget_1.TitleMenu, this._contextKeyService);\n    const actions = getFlatActionBarActions(menu);\n    this._actionbarWidget.push(actions, { label: false, icon: true, index: 0 });\n  }\n  _fillTitleIcon(container) {\n    this._icon = append(container, $(\"\"));\n  }\n  _fillBody(container) {\n    this._parentContainer = container;\n    container.classList.add(\"marker-widget\");\n    this._parentContainer.tabIndex = 0;\n    this._parentContainer.setAttribute(\"role\", \"tooltip\");\n    this._container = document.createElement(\"div\");\n    container.appendChild(this._container);\n    this._message = new MessageWidget2(this._container, this.editor, (related) =\u003e this._onDidSelectRelatedInformation.fire(related), this._openerService, this._labelService);\n    this._disposables.add(this._message);\n  }\n  show() {\n    throw new Error(\"call showAtMarker\");\n  }\n  showAtMarker(marker, markerIdx, markerCount) {\n    this._container.classList.remove(\"stale\");\n    this._message.update(marker);\n    this._severity = marker.severity;\n    this._applyTheme(this._themeService.getColorTheme());\n    const range2 = Range.lift(marker);\n    const editorPosition = this.editor.getPosition();\n    const position = editorPosition \u0026\u0026 range2.containsPosition(editorPosition) ? editorPosition : range2.getStartPosition();\n    super.show(position, this.computeRequiredHeight());\n    const model = this.editor.getModel();\n    if (model) {\n      const detail = markerCount \u003e 1 ? localize(1021, \"{0} of {1} problems\", markerIdx, markerCount) : localize(1022, \"{0} of {1} problem\", markerIdx, markerCount);\n      this.setTitle(basename2(model.uri), detail);\n    }\n    this._icon.className = `codicon ${SeverityIcon.className(MarkerSeverity.toSeverity(this._severity))}`;\n    this.editor.revealPositionNearTop(\n      position,\n      0\n      /* ScrollType.Smooth */\n    );\n    this.editor.focus();\n  }\n  updateMarker(marker) {\n    this._container.classList.remove(\"stale\");\n    this._message.update(marker);\n  }\n  showStale() {\n    this._container.classList.add(\"stale\");\n    this._relayout();\n  }\n  _doLayoutBody(heightInPixel, widthInPixel) {\n    super._doLayoutBody(heightInPixel, widthInPixel);\n    this._heightInPixel = heightInPixel;\n    this._message.layout(heightInPixel, widthInPixel);\n    this._container.style.height = `${heightInPixel}px`;\n  }\n  _onWidth(widthInPixel) {\n    this._message.layout(this._heightInPixel, widthInPixel);\n  }\n  _relayout() {\n    super._relayout(this.computeRequiredHeight());\n  }\n  computeRequiredHeight() {\n    return 3 + this._message.getHeightInLines();\n  }\n};\nMarkerNavigationWidget = MarkerNavigationWidget_1 = __decorate129([\n  __param123(1, IThemeService),\n  __param123(2, IOpenerService),\n  __param123(3, IMenuService),\n  __param123(4, IInstantiationService),\n  __param123(5, IContextKeyService),\n  __param123(6, ILabelService)\n], MarkerNavigationWidget);\nvar errorDefault = oneOf(editorErrorForeground, editorErrorBorder);\nvar warningDefault = oneOf(editorWarningForeground, editorWarningBorder);\nvar infoDefault = oneOf(editorInfoForeground, editorInfoBorder);\nvar editorMarkerNavigationError = registerColor(\"editorMarkerNavigationError.background\", { dark: errorDefault, light: errorDefault, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1023, \"Editor marker navigation widget error color.\"));\nvar editorMarkerNavigationErrorHeader = registerColor(\"editorMarkerNavigationError.headerBackground\", { dark: transparent(editorMarkerNavigationError, 0.1), light: transparent(editorMarkerNavigationError, 0.1), hcDark: null, hcLight: null }, localize(1024, \"Editor marker navigation widget error heading background.\"));\nvar editorMarkerNavigationWarning = registerColor(\"editorMarkerNavigationWarning.background\", { dark: warningDefault, light: warningDefault, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1025, \"Editor marker navigation widget warning color.\"));\nvar editorMarkerNavigationWarningHeader = registerColor(\"editorMarkerNavigationWarning.headerBackground\", { dark: transparent(editorMarkerNavigationWarning, 0.1), light: transparent(editorMarkerNavigationWarning, 0.1), hcDark: \"#0C141F\", hcLight: transparent(editorMarkerNavigationWarning, 0.2) }, localize(1026, \"Editor marker navigation widget warning heading background.\"));\nvar editorMarkerNavigationInfo = registerColor(\"editorMarkerNavigationInfo.background\", { dark: infoDefault, light: infoDefault, hcDark: contrastBorder, hcLight: contrastBorder }, localize(1027, \"Editor marker navigation widget info color.\"));\nvar editorMarkerNavigationInfoHeader = registerColor(\"editorMarkerNavigationInfo.headerBackground\", { dark: transparent(editorMarkerNavigationInfo, 0.1), light: transparent(editorMarkerNavigationInfo, 0.1), hcDark: null, hcLight: null }, localize(1028, \"Editor marker navigation widget info heading background.\"));\nvar editorMarkerNavigationBackground = registerColor(\"editorMarkerNavigation.background\", editorBackground, localize(1029, \"Editor marker navigation widget background.\"));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gotoError/browser/gotoError.js\nvar __decorate130 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param124 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MarkerController_1;\nvar MarkerController = class MarkerController2 {\n  static {\n    MarkerController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.markerController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(MarkerController_1.ID);\n  }\n  constructor(editor2, _markerNavigationService, _contextKeyService, _editorService, _instantiationService) {\n    this._markerNavigationService = _markerNavigationService;\n    this._contextKeyService = _contextKeyService;\n    this._editorService = _editorService;\n    this._instantiationService = _instantiationService;\n    this._sessionDispoables = new DisposableStore();\n    this._editor = editor2;\n    this._widgetVisible = CONTEXT_MARKERS_NAVIGATION_VISIBLE.bindTo(this._contextKeyService);\n  }\n  dispose() {\n    this._cleanUp();\n    this._sessionDispoables.dispose();\n  }\n  _cleanUp() {\n    this._widgetVisible.reset();\n    this._sessionDispoables.clear();\n    this._widget = void 0;\n    this._model = void 0;\n  }\n  _getOrCreateModel(uri) {\n    if (this._model \u0026\u0026 this._model.matches(uri)) {\n      return this._model;\n    }\n    let reusePosition = false;\n    if (this._model) {\n      reusePosition = true;\n      this._cleanUp();\n    }\n    this._model = this._markerNavigationService.getMarkerList(uri);\n    if (reusePosition) {\n      this._model.move(true, this._editor.getModel(), this._editor.getPosition());\n    }\n    this._widget = this._instantiationService.createInstance(MarkerNavigationWidget, this._editor);\n    this._widget.onDidClose(() =\u003e this.close(), this, this._sessionDispoables);\n    this._widgetVisible.set(true);\n    this._sessionDispoables.add(this._model);\n    this._sessionDispoables.add(this._widget);\n    this._sessionDispoables.add(this._editor.onDidChangeCursorPosition((e) =\u003e {\n      if (!this._model?.selected || !Range.containsPosition(this._model?.selected.marker, e.position)) {\n        this._model?.resetIndex();\n      }\n    }));\n    this._sessionDispoables.add(this._model.onDidChange(() =\u003e {\n      if (!this._widget || !this._widget.position || !this._model) {\n        return;\n      }\n      const info = this._model.find(this._editor.getModel().uri, this._widget.position);\n      if (info) {\n        this._widget.updateMarker(info.marker);\n      } else {\n        this._widget.showStale();\n      }\n    }));\n    this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation((related) =\u003e {\n      this._editorService.openCodeEditor({\n        resource: related.resource,\n        options: { pinned: true, revealIfOpened: true, selection: Range.lift(related).collapseToStart() }\n      }, this._editor);\n      this.close(false);\n    }));\n    this._sessionDispoables.add(this._editor.onDidChangeModel(() =\u003e this._cleanUp()));\n    return this._model;\n  }\n  close(focusEditor = true) {\n    this._cleanUp();\n    if (focusEditor) {\n      this._editor.focus();\n    }\n  }\n  showAtMarker(marker) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const textModel = this._editor.getModel();\n    const model = this._getOrCreateModel(textModel.uri);\n    model.resetIndex();\n    model.move(true, textModel, new Position(marker.startLineNumber, marker.startColumn));\n    if (model.selected) {\n      this._widget.showAtMarker(model.selected.marker, model.selected.index, model.selected.total);\n    }\n  }\n  async navigate(next, multiFile) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const textModel = this._editor.getModel();\n    const model = this._getOrCreateModel(multiFile ? void 0 : textModel.uri);\n    model.move(next, textModel, this._editor.getPosition());\n    if (!model.selected) {\n      return;\n    }\n    if (model.selected.marker.resource.toString() !== textModel.uri.toString()) {\n      this._cleanUp();\n      const otherEditor = await this._editorService.openCodeEditor({\n        resource: model.selected.marker.resource,\n        options: { pinned: false, revealIfOpened: true, selectionRevealType: 2, selection: model.selected.marker }\n      }, this._editor);\n      if (otherEditor) {\n        MarkerController_1.get(otherEditor)?.close();\n        MarkerController_1.get(otherEditor)?.navigate(next, multiFile);\n      }\n    } else {\n      this._widget.showAtMarker(model.selected.marker, model.selected.index, model.selected.total);\n    }\n  }\n};\nMarkerController = MarkerController_1 = __decorate130([\n  __param124(1, IMarkerNavigationService),\n  __param124(2, IContextKeyService),\n  __param124(3, ICodeEditorService),\n  __param124(4, IInstantiationService)\n], MarkerController);\nvar MarkerNavigationAction = class extends EditorAction {\n  constructor(_next, _multiFile, opts) {\n    super(opts);\n    this._next = _next;\n    this._multiFile = _multiFile;\n  }\n  async run(_accessor, editor2) {\n    if (editor2.hasModel()) {\n      await MarkerController.get(editor2)?.navigate(this._next, this._multiFile);\n    }\n  }\n};\nvar NextMarkerAction = class _NextMarkerAction extends MarkerNavigationAction {\n  static {\n    this.ID = \"editor.action.marker.next\";\n  }\n  static {\n    this.LABEL = localize2(1012, \"Go to Next Problem (Error, Warning, Info)\");\n  }\n  constructor() {\n    super(true, false, {\n      id: _NextMarkerAction.ID,\n      label: _NextMarkerAction.LABEL,\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 512 | 66,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MarkerNavigationWidget.TitleMenu,\n        title: _NextMarkerAction.LABEL.value,\n        icon: registerIcon(\"marker-navigation-next\", Codicon.arrowDown, localize(1008, \"Icon for goto next marker.\")),\n        group: \"navigation\",\n        order: 1\n      }\n    });\n  }\n};\nvar PrevMarkerAction = class _PrevMarkerAction extends MarkerNavigationAction {\n  static {\n    this.ID = \"editor.action.marker.prev\";\n  }\n  static {\n    this.LABEL = localize2(1013, \"Go to Previous Problem (Error, Warning, Info)\");\n  }\n  constructor() {\n    super(false, false, {\n      id: _PrevMarkerAction.ID,\n      label: _PrevMarkerAction.LABEL,\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 1024 | 512 | 66,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MarkerNavigationWidget.TitleMenu,\n        title: _PrevMarkerAction.LABEL.value,\n        icon: registerIcon(\"marker-navigation-previous\", Codicon.arrowUp, localize(1009, \"Icon for goto previous marker.\")),\n        group: \"navigation\",\n        order: 2\n      }\n    });\n  }\n};\nvar NextMarkerInFilesAction = class extends MarkerNavigationAction {\n  constructor() {\n    super(true, true, {\n      id: \"editor.action.marker.nextInFiles\",\n      label: localize2(1014, \"Go to Next Problem in Files (Error, Warning, Info)\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 66,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarGoMenu,\n        title: localize(1010, \"Next \u0026\u0026Problem\"),\n        group: \"6_problem_nav\",\n        order: 1\n      }\n    });\n  }\n};\nvar PrevMarkerInFilesAction = class extends MarkerNavigationAction {\n  constructor() {\n    super(false, true, {\n      id: \"editor.action.marker.prevInFiles\",\n      label: localize2(1015, \"Go to Previous Problem in Files (Error, Warning, Info)\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 1024 | 66,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarGoMenu,\n        title: localize(1011, \"Previous \u0026\u0026Problem\"),\n        group: \"6_problem_nav\",\n        order: 2\n      }\n    });\n  }\n};\nregisterEditorContribution(\n  MarkerController.ID,\n  MarkerController,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\nregisterEditorAction(NextMarkerAction);\nregisterEditorAction(PrevMarkerAction);\nregisterEditorAction(NextMarkerInFilesAction);\nregisterEditorAction(PrevMarkerInFilesAction);\nvar CONTEXT_MARKERS_NAVIGATION_VISIBLE = new RawContextKey(\"markersNavigationVisible\", false);\nvar MarkerCommand = EditorCommand.bindToContribution(MarkerController.get);\nregisterEditorCommand(new MarkerCommand({\n  id: \"closeMarkersNavigation\",\n  precondition: CONTEXT_MARKERS_NAVIGATION_VISIBLE,\n  handler: (x) =\u003e x.close(),\n  kbOpts: {\n    weight: 100 + 50,\n    kbExpr: EditorContextKeys.focus,\n    primary: 9,\n    secondary: [\n      1024 | 9\n      /* KeyCode.Escape */\n    ]\n  }\n}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/gpu/browser/gpuActions.js\ninit_dom();\ninit_buffer();\ninit_uri();\ninit_nls();\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\ninit_log();\ninit_editorExtensions();\nvar DebugEditorGpuRendererAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.debugEditorGpuRenderer\",\n      label: localize2(1093, \"Developer: Debug Editor GPU Renderer\"),\n      // TODO: Why doesn't `ContextKeyExpr.equals('config:editor.experimentalGpuAcceleration', 'on')` work?\n      precondition: ContextKeyExpr.true()\n    });\n  }\n  async run(accessor, editor2) {\n    const instantiationService = accessor.get(IInstantiationService);\n    const quickInputService = accessor.get(IQuickInputService);\n    const choice = await quickInputService.pick([\n      {\n        label: localize(1090, \"Log Texture Atlas Stats\"),\n        id: \"logTextureAtlasStats\"\n      },\n      {\n        label: localize(1091, \"Save Texture Atlas\"),\n        id: \"saveTextureAtlas\"\n      },\n      {\n        label: localize(1092, \"Draw Glyph\"),\n        id: \"drawGlyph\"\n      }\n    ], { canPickMany: false });\n    if (!choice) {\n      return;\n    }\n    switch (choice.id) {\n      case \"logTextureAtlasStats\":\n        instantiationService.invokeFunction((accessor2) =\u003e {\n          const logService = accessor2.get(ILogService);\n          const atlas = ViewGpuContext.atlas;\n          if (!ViewGpuContext.atlas) {\n            logService.error(\"No texture atlas found\");\n            return;\n          }\n          const stats = atlas.getStats();\n          logService.info([\"Texture atlas stats\", ...stats].join(\"\\n\\n\"));\n        });\n        break;\n      case \"saveTextureAtlas\":\n        instantiationService.invokeFunction(async (accessor2) =\u003e {\n          const workspaceContextService = accessor2.get(IWorkspaceContextService);\n          const fileService = accessor2.get(IFileService);\n          const folders = workspaceContextService.getWorkspace().folders;\n          if (folders.length \u003e 0) {\n            const atlas = ViewGpuContext.atlas;\n            const promises = [];\n            for (const [layerIndex, page] of atlas.pages.entries()) {\n              promises.push(...[\n                fileService.writeFile(URI.joinPath(folders[0].uri, `textureAtlasPage${layerIndex}_actual.png`), VSBuffer.wrap(new Uint8Array(await (await page.source.convertToBlob()).arrayBuffer()))),\n                fileService.writeFile(URI.joinPath(folders[0].uri, `textureAtlasPage${layerIndex}_usage.png`), VSBuffer.wrap(new Uint8Array(await (await page.getUsagePreview()).arrayBuffer())))\n              ]);\n            }\n            await Promise.all(promises);\n          }\n        });\n        break;\n      case \"drawGlyph\":\n        instantiationService.invokeFunction(async (accessor2) =\u003e {\n          const configurationService = accessor2.get(IConfigurationService);\n          const fileService = accessor2.get(IFileService);\n          const quickInputService2 = accessor2.get(IQuickInputService);\n          const workspaceContextService = accessor2.get(IWorkspaceContextService);\n          const folders = workspaceContextService.getWorkspace().folders;\n          if (folders.length === 0) {\n            return;\n          }\n          const atlas = ViewGpuContext.atlas;\n          const fontFamily = configurationService.getValue(\"editor.fontFamily\");\n          const fontSize = configurationService.getValue(\"editor.fontSize\");\n          const rasterizer = new GlyphRasterizer(fontSize, fontFamily, getActiveWindow().devicePixelRatio, ViewGpuContext.decorationStyleCache);\n          let chars = await quickInputService2.input({\n            prompt: \"Enter a character to draw (prefix with 0x for code point))\"\n          });\n          if (!chars) {\n            return;\n          }\n          const codePoint = chars.match(/0x(?\u003ccodePoint\u003e[0-9a-f]+)/i)?.groups?.codePoint;\n          if (codePoint !== void 0) {\n            chars = String.fromCodePoint(parseInt(codePoint, 16));\n          }\n          const tokenMetadata = 0;\n          const charMetadata = 0;\n          const rasterizedGlyph = atlas.getGlyph(rasterizer, chars, tokenMetadata, charMetadata, 0);\n          if (!rasterizedGlyph) {\n            return;\n          }\n          const imageData = atlas.pages[rasterizedGlyph.pageIndex].source.getContext(\"2d\")?.getImageData(rasterizedGlyph.x, rasterizedGlyph.y, rasterizedGlyph.w, rasterizedGlyph.h);\n          if (!imageData) {\n            return;\n          }\n          const canvas = new OffscreenCanvas(imageData.width, imageData.height);\n          const ctx = ensureNonNullable(canvas.getContext(\"2d\"));\n          ctx.putImageData(imageData, 0, 0);\n          const blob = await canvas.convertToBlob({ type: \"image/png\" });\n          const resource = URI.joinPath(folders[0].uri, `glyph_${chars}_${tokenMetadata}_${fontSize}px_${fontFamily.replaceAll(/[,\\\\\\/\\.'\\s]/g, \"_\")}.png`);\n          await fileService.writeFile(resource, VSBuffer.wrap(new Uint8Array(await blob.arrayBuffer())));\n        });\n        break;\n    }\n  }\n};\nregisterEditorAction(DebugEditorGpuRendererAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/hoverActions.js\ninit_keyCodes();\ninit_editorExtensions();\ninit_range();\ninit_editorContextKeys();\ninit_languages();\ninit_nls();\nvar HoverFocusBehavior;\n(function(HoverFocusBehavior2) {\n  HoverFocusBehavior2[\"NoAutoFocus\"] = \"noAutoFocus\";\n  HoverFocusBehavior2[\"FocusIfVisible\"] = \"focusIfVisible\";\n  HoverFocusBehavior2[\"AutoFocusImmediately\"] = \"autoFocusImmediately\";\n})(HoverFocusBehavior || (HoverFocusBehavior = {}));\nvar ShowOrFocusHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: SHOW_OR_FOCUS_HOVER_ACTION_ID,\n      label: localize2(1099, \"Show or Focus Hover\"),\n      metadata: {\n        description: localize2(1100, \"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position.\"),\n        args: [{\n          name: \"args\",\n          schema: {\n            type: \"object\",\n            properties: {\n              \"focus\": {\n                description: \"Controls if and when the hover should take focus upon being triggered by this action.\",\n                enum: [HoverFocusBehavior.NoAutoFocus, HoverFocusBehavior.FocusIfVisible, HoverFocusBehavior.AutoFocusImmediately],\n                enumDescriptions: [\n                  localize(1096, \"The hover will not automatically take focus.\"),\n                  localize(1097, \"The hover will take focus only if it is already visible.\"),\n                  localize(1098, \"The hover will automatically take focus when it appears.\")\n                ],\n                default: HoverFocusBehavior.FocusIfVisible\n              }\n            }\n          }\n        }]\n      },\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 39\n          /* KeyCode.KeyI */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2, args) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    const focusArgument = args?.focus;\n    let focusOption = HoverFocusBehavior.FocusIfVisible;\n    if (Object.values(HoverFocusBehavior).includes(focusArgument)) {\n      focusOption = focusArgument;\n    } else if (typeof focusArgument === \"boolean\" \u0026\u0026 focusArgument) {\n      focusOption = HoverFocusBehavior.AutoFocusImmediately;\n    }\n    const showContentHover = (focus) =\u003e {\n      const position = editor2.getPosition();\n      const range2 = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n      controller.showContentHover(range2, 1, 2, focus);\n    };\n    const accessibilitySupportEnabled = editor2.getOption(\n      2\n      /* EditorOption.accessibilitySupport */\n    ) === 2;\n    if (controller.isHoverVisible) {\n      if (focusOption !== HoverFocusBehavior.NoAutoFocus) {\n        controller.focus();\n      } else {\n        showContentHover(accessibilitySupportEnabled);\n      }\n    } else {\n      showContentHover(accessibilitySupportEnabled || focusOption === HoverFocusBehavior.AutoFocusImmediately);\n    }\n  }\n};\nvar ShowDefinitionPreviewHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID,\n      label: localize2(1101, \"Show Definition Preview Hover\"),\n      precondition: void 0,\n      metadata: {\n        description: localize2(1102, \"Show the definition preview hover in the editor.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    const position = editor2.getPosition();\n    if (!position) {\n      return;\n    }\n    const range2 = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n    const goto = GotoDefinitionAtPositionEditorContribution.get(editor2);\n    if (!goto) {\n      return;\n    }\n    const promise = goto.startFindDefinitionFromCursor(position);\n    promise.then(() =\u003e {\n      controller.showContentHover(range2, 1, 2, true);\n    });\n  }\n};\nvar HideContentHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: HIDE_HOVER_ACTION_ID,\n      label: localize2(1103, \"Hide Hover\"),\n      alias: \"Hide Content Hover\",\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2) {\n    ContentHoverController.get(editor2)?.hideContentHover();\n  }\n};\nvar ScrollUpHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: SCROLL_UP_HOVER_ACTION_ID,\n      label: localize2(1104, \"Scroll Up Hover\"),\n      precondition: EditorContextKeys.hoverFocused,\n      kbOpts: {\n        kbExpr: EditorContextKeys.hoverFocused,\n        primary: 16,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1105, \"Scroll up the editor hover.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.scrollUp();\n  }\n};\nvar ScrollDownHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: SCROLL_DOWN_HOVER_ACTION_ID,\n      label: localize2(1106, \"Scroll Down Hover\"),\n      precondition: EditorContextKeys.hoverFocused,\n      kbOpts: {\n        kbExpr: EditorContextKeys.hoverFocused,\n        primary: 18,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1107, \"Scroll down the editor hover.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.scrollDown();\n  }\n};\nvar ScrollLeftHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: SCROLL_LEFT_HOVER_ACTION_ID,\n      label: localize2(1108, \"Scroll Left Hover\"),\n      precondition: EditorContextKeys.hoverFocused,\n      kbOpts: {\n        kbExpr: EditorContextKeys.hoverFocused,\n        primary: 15,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1109, \"Scroll left the editor hover.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.scrollLeft();\n  }\n};\nvar ScrollRightHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: SCROLL_RIGHT_HOVER_ACTION_ID,\n      label: localize2(1110, \"Scroll Right Hover\"),\n      precondition: EditorContextKeys.hoverFocused,\n      kbOpts: {\n        kbExpr: EditorContextKeys.hoverFocused,\n        primary: 17,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1111, \"Scroll right the editor hover.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.scrollRight();\n  }\n};\nvar PageUpHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: PAGE_UP_HOVER_ACTION_ID,\n      label: localize2(1112, \"Page Up Hover\"),\n      precondition: EditorContextKeys.hoverFocused,\n      kbOpts: {\n        kbExpr: EditorContextKeys.hoverFocused,\n        primary: 11,\n        secondary: [\n          512 | 16\n          /* KeyCode.UpArrow */\n        ],\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1113, \"Page up the editor hover.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.pageUp();\n  }\n};\nvar PageDownHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: PAGE_DOWN_HOVER_ACTION_ID,\n      label: localize2(1114, \"Page Down Hover\"),\n      precondition: EditorContextKeys.hoverFocused,\n      kbOpts: {\n        kbExpr: EditorContextKeys.hoverFocused,\n        primary: 12,\n        secondary: [\n          512 | 18\n          /* KeyCode.DownArrow */\n        ],\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1115, \"Page down the editor hover.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.pageDown();\n  }\n};\nvar GoToTopHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: GO_TO_TOP_HOVER_ACTION_ID,\n      label: localize2(1116, \"Go To Top Hover\"),\n      precondition: EditorContextKeys.hoverFocused,\n      kbOpts: {\n        kbExpr: EditorContextKeys.hoverFocused,\n        primary: 14,\n        secondary: [\n          2048 | 16\n          /* KeyCode.UpArrow */\n        ],\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1117, \"Go to the top of the editor hover.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.goToTop();\n  }\n};\nvar GoToBottomHoverAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: GO_TO_BOTTOM_HOVER_ACTION_ID,\n      label: localize2(1118, \"Go To Bottom Hover\"),\n      precondition: EditorContextKeys.hoverFocused,\n      kbOpts: {\n        kbExpr: EditorContextKeys.hoverFocused,\n        primary: 13,\n        secondary: [\n          2048 | 18\n          /* KeyCode.DownArrow */\n        ],\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1119, \"Go to the bottom of the editor hover.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ContentHoverController.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.goToBottom();\n  }\n};\nvar IncreaseHoverVerbosityLevel = class extends EditorAction {\n  constructor() {\n    super({\n      id: INCREASE_HOVER_VERBOSITY_ACTION_ID,\n      label: INCREASE_HOVER_VERBOSITY_ACTION_LABEL,\n      alias: \"Increase Hover Verbosity Level\",\n      precondition: EditorContextKeys.hoverVisible\n    });\n  }\n  run(accessor, editor2, args) {\n    const hoverController = ContentHoverController.get(editor2);\n    if (!hoverController) {\n      return;\n    }\n    const index = args?.index !== void 0 ? args.index : hoverController.focusedHoverPartIndex();\n    hoverController.updateHoverVerbosityLevel(HoverVerbosityAction.Increase, index, args?.focus);\n  }\n};\nvar DecreaseHoverVerbosityLevel = class extends EditorAction {\n  constructor() {\n    super({\n      id: DECREASE_HOVER_VERBOSITY_ACTION_ID,\n      label: DECREASE_HOVER_VERBOSITY_ACTION_LABEL,\n      alias: \"Decrease Hover Verbosity Level\",\n      precondition: EditorContextKeys.hoverVisible\n    });\n  }\n  run(accessor, editor2, args) {\n    const hoverController = ContentHoverController.get(editor2);\n    if (!hoverController) {\n      return;\n    }\n    const index = args?.index !== void 0 ? args.index : hoverController.focusedHoverPartIndex();\n    ContentHoverController.get(editor2)?.updateHoverVerbosityLevel(HoverVerbosityAction.Decrease, index, args?.focus);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/hoverContribution.js\ninit_editorExtensions();\ninit_colorRegistry();\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js\ninit_dom();\ninit_arrays();\ninit_async();\ninit_errors();\ninit_lifecycle();\ninit_resources();\ninit_range();\ninit_languageFeatures();\ninit_nls();\ninit_themables();\ninit_codicons();\nvar __decorate131 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param125 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar $14 = $;\nvar MarkerHover = class {\n  constructor(owner, range2, marker) {\n    this.owner = owner;\n    this.range = range2;\n    this.marker = marker;\n  }\n  isValidForHoverAnchor(anchor) {\n    return anchor.type === 1 \u0026\u0026 this.range.startColumn \u003c= anchor.range.startColumn \u0026\u0026 this.range.endColumn \u003e= anchor.range.endColumn;\n  }\n};\nvar markerCodeActionTrigger = {\n  type: 1,\n  filter: { include: CodeActionKind.QuickFix },\n  triggerAction: CodeActionTriggerSource.QuickFixHover\n};\nvar MarkerHoverParticipant = class MarkerHoverParticipant2 {\n  constructor(_editor, _markerDecorationsService, _openerService, _languageFeaturesService) {\n    this._editor = _editor;\n    this._markerDecorationsService = _markerDecorationsService;\n    this._openerService = _openerService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this.hoverOrdinal = 1;\n    this.recentMarkerCodeActionsInfo = void 0;\n  }\n  computeSync(anchor, lineDecorations) {\n    if (!this._editor.hasModel() || anchor.type !== 1 \u0026\u0026 !anchor.supportsMarkerHover) {\n      return [];\n    }\n    const model = this._editor.getModel();\n    const anchorRange = anchor.range;\n    if (!model.isValidRange(anchor.range)) {\n      return [];\n    }\n    const lineNumber = anchorRange.startLineNumber;\n    const maxColumn = model.getLineMaxColumn(lineNumber);\n    const result = [];\n    for (const d of lineDecorations) {\n      const startColumn = d.range.startLineNumber === lineNumber ? d.range.startColumn : 1;\n      const endColumn = d.range.endLineNumber === lineNumber ? d.range.endColumn : maxColumn;\n      const marker = this._markerDecorationsService.getMarker(model.uri, d);\n      if (!marker) {\n        continue;\n      }\n      const range2 = new Range(anchor.range.startLineNumber, startColumn, anchor.range.startLineNumber, endColumn);\n      result.push(new MarkerHover(this, range2, marker));\n    }\n    return result;\n  }\n  renderHoverParts(context, hoverParts) {\n    if (!hoverParts.length) {\n      return new RenderedHoverParts([]);\n    }\n    const renderedHoverParts = [];\n    hoverParts.forEach((hoverPart) =\u003e {\n      const renderedMarkerHover = this._renderMarkerHover(hoverPart);\n      context.fragment.appendChild(renderedMarkerHover.hoverElement);\n      renderedHoverParts.push(renderedMarkerHover);\n    });\n    const markerHoverForStatusbar = hoverParts.length === 1 ? hoverParts[0] : hoverParts.sort((a, b) =\u003e MarkerSeverity.compare(a.marker.severity, b.marker.severity))[0];\n    const disposables = this._renderMarkerStatusbar(context, markerHoverForStatusbar);\n    return new RenderedHoverParts(renderedHoverParts, disposables);\n  }\n  _renderMarkerHover(markerHover) {\n    const disposables = new DisposableStore();\n    const hoverElement = $14(\"div.hover-row\");\n    const markerElement = append(hoverElement, $14(\"div.marker.hover-contents\"));\n    const { source, message, code, relatedInformation } = markerHover.marker;\n    this._editor.applyFontInfo(markerElement);\n    const messageElement = append(markerElement, $14(\"span\"));\n    messageElement.style.whiteSpace = \"pre-wrap\";\n    messageElement.innerText = message;\n    if (source || code) {\n      if (code \u0026\u0026 typeof code !== \"string\") {\n        const sourceAndCodeElement = $14(\"span\");\n        if (source) {\n          const sourceElement = append(sourceAndCodeElement, $14(\"span\"));\n          sourceElement.innerText = source;\n        }\n        const codeLink = append(sourceAndCodeElement, $14(\"a.code-link\"));\n        codeLink.setAttribute(\"href\", code.target.toString(true));\n        disposables.add(addDisposableListener(codeLink, \"click\", (e) =\u003e {\n          this._openerService.open(code.target, { allowCommands: true });\n          e.preventDefault();\n          e.stopPropagation();\n        }));\n        const codeElement = append(codeLink, $14(\"span\"));\n        codeElement.innerText = code.value;\n        const detailsElement = append(markerElement, sourceAndCodeElement);\n        detailsElement.style.opacity = \"0.6\";\n        detailsElement.style.paddingLeft = \"6px\";\n      } else {\n        const detailsElement = append(markerElement, $14(\"span\"));\n        detailsElement.style.opacity = \"0.6\";\n        detailsElement.style.paddingLeft = \"6px\";\n        detailsElement.innerText = source \u0026\u0026 code ? `${source}(${code})` : source ? source : `(${code})`;\n      }\n    }\n    if (isNonEmptyArray(relatedInformation)) {\n      for (const { message: message2, resource, startLineNumber, startColumn } of relatedInformation) {\n        const relatedInfoContainer = append(markerElement, $14(\"div\"));\n        relatedInfoContainer.style.marginTop = \"8px\";\n        const a = append(relatedInfoContainer, $14(\"a\"));\n        a.innerText = `${basename2(resource)}(${startLineNumber}, ${startColumn}): `;\n        a.style.cursor = \"pointer\";\n        disposables.add(addDisposableListener(a, \"click\", (e) =\u003e {\n          e.stopPropagation();\n          e.preventDefault();\n          if (this._openerService) {\n            const editorOptions = { selection: { startLineNumber, startColumn } };\n            this._openerService.open(resource, {\n              fromUserGesture: true,\n              editorOptions\n            }).catch(onUnexpectedError);\n          }\n        }));\n        const messageElement2 = append(relatedInfoContainer, $14(\"span\"));\n        messageElement2.innerText = message2;\n        this._editor.applyFontInfo(messageElement2);\n      }\n    }\n    const renderedHoverPart = {\n      hoverPart: markerHover,\n      hoverElement,\n      dispose: () =\u003e disposables.dispose()\n    };\n    return renderedHoverPart;\n  }\n  _renderMarkerStatusbar(context, markerHover) {\n    const disposables = new DisposableStore();\n    if (markerHover.marker.severity === MarkerSeverity.Error || markerHover.marker.severity === MarkerSeverity.Warning || markerHover.marker.severity === MarkerSeverity.Info) {\n      const markerController = MarkerController.get(this._editor);\n      if (markerController) {\n        context.statusBar.addAction({\n          label: localize(1129, \"View Problem\"),\n          commandId: NextMarkerAction.ID,\n          run: () =\u003e {\n            context.hide();\n            markerController.showAtMarker(markerHover.marker);\n            this._editor.focus();\n          }\n        });\n      }\n    }\n    if (!this._editor.getOption(\n      103\n      /* EditorOption.readOnly */\n    )) {\n      const quickfixPlaceholderElement = context.statusBar.append($14(\"div\"));\n      if (this.recentMarkerCodeActionsInfo) {\n        if (IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker) === IMarkerData.makeKey(markerHover.marker)) {\n          if (!this.recentMarkerCodeActionsInfo.hasCodeActions) {\n            quickfixPlaceholderElement.textContent = localize(1130, \"No quick fixes available\");\n          }\n        } else {\n          this.recentMarkerCodeActionsInfo = void 0;\n        }\n      }\n      const updatePlaceholderDisposable = this.recentMarkerCodeActionsInfo \u0026\u0026 !this.recentMarkerCodeActionsInfo.hasCodeActions ? Disposable.None : disposableTimeout(() =\u003e quickfixPlaceholderElement.textContent = localize(1131, \"Checking for quick fixes...\"), 200, disposables);\n      if (!quickfixPlaceholderElement.textContent) {\n        quickfixPlaceholderElement.textContent = String.fromCharCode(160);\n      }\n      const codeActionsPromise = this.getCodeActions(markerHover.marker);\n      disposables.add(toDisposable(() =\u003e codeActionsPromise.cancel()));\n      codeActionsPromise.then((actions) =\u003e {\n        updatePlaceholderDisposable.dispose();\n        this.recentMarkerCodeActionsInfo = { marker: markerHover.marker, hasCodeActions: actions.validActions.length \u003e 0 };\n        if (!this.recentMarkerCodeActionsInfo.hasCodeActions) {\n          actions.dispose();\n          quickfixPlaceholderElement.textContent = localize(1132, \"No quick fixes available\");\n          return;\n        }\n        quickfixPlaceholderElement.style.display = \"none\";\n        let showing = false;\n        disposables.add(toDisposable(() =\u003e {\n          if (!showing) {\n            actions.dispose();\n          }\n        }));\n        context.statusBar.addAction({\n          label: localize(1133, \"Quick Fix...\"),\n          commandId: quickFixCommandId,\n          run: (target) =\u003e {\n            showing = true;\n            const controller = CodeActionController.get(this._editor);\n            const elementPosition = getDomNodePagePosition(target);\n            context.hide();\n            controller?.showCodeActions(markerCodeActionTrigger, actions, {\n              x: elementPosition.left,\n              y: elementPosition.top,\n              width: elementPosition.width,\n              height: elementPosition.height\n            });\n          }\n        });\n        const aiCodeAction = actions.validActions.find((action) =\u003e action.action.isAI);\n        if (aiCodeAction) {\n          context.statusBar.addAction({\n            label: aiCodeAction.action.title,\n            commandId: aiCodeAction.action.command?.id ?? \"\",\n            iconClass: ThemeIcon.asClassName(Codicon.sparkle),\n            run: () =\u003e {\n              const controller = CodeActionController.get(this._editor);\n              controller?.applyCodeAction(aiCodeAction, false, false, ApplyCodeActionReason.FromProblemsHover);\n            }\n          });\n        }\n        context.onContentsChanged();\n      }, onUnexpectedError);\n    }\n    return disposables;\n  }\n  getCodeActions(marker) {\n    return createCancelablePromise((cancellationToken) =\u003e {\n      return getCodeActions(this._languageFeaturesService.codeActionProvider, this._editor.getModel(), new Range(marker.startLineNumber, marker.startColumn, marker.endLineNumber, marker.endColumn), markerCodeActionTrigger, Progress.None, cancellationToken);\n    });\n  }\n};\nMarkerHoverParticipant = __decorate131([\n  __param125(1, IMarkerDecorationsService),\n  __param125(2, IOpenerService),\n  __param125(3, ILanguageFeaturesService)\n], MarkerHoverParticipant);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/glyphHoverController.js\ninit_lifecycle();\ninit_instantiation();\ninit_async();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js\ninit_dom();\ninit_lifecycle();\ninit_language();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/glyphHoverComputer.js\ninit_arrays();\ninit_htmlContent();\ninit_model2();\nvar GlyphHoverComputer = class {\n  constructor(_editor) {\n    this._editor = _editor;\n  }\n  computeSync(opts) {\n    const toHoverMessage = (contents) =\u003e {\n      return {\n        value: contents\n      };\n    };\n    const lineDecorations = this._editor.getLineDecorations(opts.lineNumber);\n    const result = [];\n    const isLineHover = opts.laneOrLine === \"lineNo\";\n    if (!lineDecorations) {\n      return result;\n    }\n    for (const d of lineDecorations) {\n      const lane = d.options.glyphMargin?.position ?? GlyphMarginLane.Center;\n      if (!isLineHover \u0026\u0026 lane !== opts.laneOrLine) {\n        continue;\n      }\n      const hoverMessage = isLineHover ? d.options.lineNumberHoverMessage : d.options.glyphMarginHoverMessage;\n      if (!hoverMessage || isEmptyMarkdownString(hoverMessage)) {\n        continue;\n      }\n      result.push(...asArray(hoverMessage).map(toHoverMessage));\n    }\n    return result;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/glyphHoverWidget.js\nvar __decorate132 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param126 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar GlyphHoverWidget_1;\nvar $15 = $;\nvar GlyphHoverWidget = class GlyphHoverWidget2 extends Disposable {\n  static {\n    GlyphHoverWidget_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.modesGlyphHoverWidget\";\n  }\n  constructor(editor2, languageService, openerService) {\n    super();\n    this._renderDisposeables = this._register(new DisposableStore());\n    this._editor = editor2;\n    this._isVisible = false;\n    this._messages = [];\n    this._hover = this._register(new HoverWidget(true));\n    this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible);\n    this._markdownRenderer = new MarkdownRenderer({ editor: this._editor }, languageService, openerService);\n    this._hoverOperation = this._register(new HoverOperation(this._editor, new GlyphHoverComputer(this._editor)));\n    this._register(this._hoverOperation.onResult((result) =\u003e this._withResult(result)));\n    this._register(this._editor.onDidChangeModelDecorations(() =\u003e this._onModelDecorationsChanged()));\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        59\n        /* EditorOption.fontInfo */\n      )) {\n        this._updateFont();\n      }\n    }));\n    this._register(addStandardDisposableListener(this._hover.containerDomNode, \"mouseleave\", (e) =\u003e {\n      this._onMouseLeave(e);\n    }));\n    this._editor.addOverlayWidget(this);\n  }\n  dispose() {\n    this._hoverComputerOptions = void 0;\n    this._editor.removeOverlayWidget(this);\n    super.dispose();\n  }\n  getId() {\n    return GlyphHoverWidget_1.ID;\n  }\n  getDomNode() {\n    return this._hover.containerDomNode;\n  }\n  getPosition() {\n    return null;\n  }\n  _updateFont() {\n    const codeClasses = Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName(\"code\"));\n    codeClasses.forEach((node) =\u003e this._editor.applyFontInfo(node));\n  }\n  _onModelDecorationsChanged() {\n    if (this._isVisible \u0026\u0026 this._hoverComputerOptions) {\n      this._hoverOperation.cancel();\n      this._hoverOperation.start(0, this._hoverComputerOptions);\n    }\n  }\n  showsOrWillShow(mouseEvent) {\n    const target = mouseEvent.target;\n    if (target.type === 2 \u0026\u0026 target.detail.glyphMarginLane) {\n      this._startShowingAt(target.position.lineNumber, target.detail.glyphMarginLane);\n      return true;\n    }\n    if (target.type === 3) {\n      this._startShowingAt(target.position.lineNumber, \"lineNo\");\n      return true;\n    }\n    return false;\n  }\n  _startShowingAt(lineNumber, laneOrLine) {\n    if (this._hoverComputerOptions \u0026\u0026 this._hoverComputerOptions.lineNumber === lineNumber \u0026\u0026 this._hoverComputerOptions.laneOrLine === laneOrLine) {\n      return;\n    }\n    this._hoverOperation.cancel();\n    this.hide();\n    this._hoverComputerOptions = { lineNumber, laneOrLine };\n    this._hoverOperation.start(0, this._hoverComputerOptions);\n  }\n  hide() {\n    this._hoverComputerOptions = void 0;\n    this._hoverOperation.cancel();\n    if (!this._isVisible) {\n      return;\n    }\n    this._isVisible = false;\n    this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible);\n  }\n  _withResult(result) {\n    this._messages = result.value;\n    if (this._messages.length \u003e 0) {\n      this._renderMessages(result.options.lineNumber, result.options.laneOrLine, this._messages);\n    } else {\n      this.hide();\n    }\n  }\n  _renderMessages(lineNumber, laneOrLine, messages) {\n    this._renderDisposeables.clear();\n    const fragment = document.createDocumentFragment();\n    for (const msg of messages) {\n      const markdownHoverElement = $15(\"div.hover-row.markdown-hover\");\n      const hoverContentsElement = append(markdownHoverElement, $15(\"div.hover-contents\"));\n      const renderedContents = this._renderDisposeables.add(this._markdownRenderer.render(msg.value));\n      hoverContentsElement.appendChild(renderedContents.element);\n      fragment.appendChild(markdownHoverElement);\n    }\n    this._updateContents(fragment);\n    this._showAt(lineNumber, laneOrLine);\n  }\n  _updateContents(node) {\n    this._hover.contentsDomNode.textContent = \"\";\n    this._hover.contentsDomNode.appendChild(node);\n    this._updateFont();\n  }\n  _showAt(lineNumber, laneOrLine) {\n    if (!this._isVisible) {\n      this._isVisible = true;\n      this._hover.containerDomNode.classList.toggle(\"hidden\", !this._isVisible);\n    }\n    const editorLayout = this._editor.getLayoutInfo();\n    const topForLineNumber = this._editor.getTopForLineNumber(lineNumber);\n    const editorScrollTop = this._editor.getScrollTop();\n    const lineHeight = this._editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const nodeHeight = this._hover.containerDomNode.clientHeight;\n    const top = topForLineNumber - editorScrollTop - (nodeHeight - lineHeight) / 2;\n    const left = editorLayout.glyphMarginLeft + editorLayout.glyphMarginWidth + (laneOrLine === \"lineNo\" ? editorLayout.lineNumbersWidth : 0);\n    this._hover.containerDomNode.style.left = `${left}px`;\n    this._hover.containerDomNode.style.top = `${Math.max(Math.round(top), 0)}px`;\n    this._hover.containerDomNode.style.zIndex = \"11\";\n  }\n  _onMouseLeave(e) {\n    const editorDomNode = this._editor.getDomNode();\n    const isMousePositionOutsideOfEditor = !editorDomNode || !isMousePositionWithinElement(editorDomNode, e.x, e.y);\n    if (isMousePositionOutsideOfEditor) {\n      this.hide();\n    }\n  }\n};\nGlyphHoverWidget = GlyphHoverWidget_1 = __decorate132([\n  __param126(1, ILanguageService),\n  __param126(2, IOpenerService)\n], GlyphHoverWidget);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/glyphHoverController.js\nvar __decorate133 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param127 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar _sticky3 = false;\nvar GlyphHoverController = class GlyphHoverController2 extends Disposable {\n  static {\n    this.ID = \"editor.contrib.marginHover\";\n  }\n  constructor(_editor, _instantiationService) {\n    super();\n    this._editor = _editor;\n    this._instantiationService = _instantiationService;\n    this.shouldKeepOpenOnEditorMouseMoveOrLeave = false;\n    this._listenersStore = new DisposableStore();\n    this._hoverState = {\n      mouseDown: false\n    };\n    this._reactToEditorMouseMoveRunner = this._register(new RunOnceScheduler(() =\u003e this._reactToEditorMouseMove(this._mouseMoveEvent), 0));\n    this._hookListeners();\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        69\n        /* EditorOption.hover */\n      )) {\n        this._unhookListeners();\n        this._hookListeners();\n      }\n    }));\n  }\n  _hookListeners() {\n    const hoverOpts = this._editor.getOption(\n      69\n      /* EditorOption.hover */\n    );\n    this._hoverSettings = {\n      enabled: hoverOpts.enabled,\n      sticky: hoverOpts.sticky,\n      hidingDelay: hoverOpts.hidingDelay\n    };\n    if (hoverOpts.enabled) {\n      this._listenersStore.add(this._editor.onMouseDown((e) =\u003e this._onEditorMouseDown(e)));\n      this._listenersStore.add(this._editor.onMouseUp(() =\u003e this._onEditorMouseUp()));\n      this._listenersStore.add(this._editor.onMouseMove((e) =\u003e this._onEditorMouseMove(e)));\n      this._listenersStore.add(this._editor.onKeyDown((e) =\u003e this._onKeyDown(e)));\n    } else {\n      this._listenersStore.add(this._editor.onMouseMove((e) =\u003e this._onEditorMouseMove(e)));\n      this._listenersStore.add(this._editor.onKeyDown((e) =\u003e this._onKeyDown(e)));\n    }\n    this._listenersStore.add(this._editor.onMouseLeave((e) =\u003e this._onEditorMouseLeave(e)));\n    this._listenersStore.add(this._editor.onDidChangeModel(() =\u003e {\n      this._cancelScheduler();\n      this.hideGlyphHover();\n    }));\n    this._listenersStore.add(this._editor.onDidChangeModelContent(() =\u003e this._cancelScheduler()));\n    this._listenersStore.add(this._editor.onDidScrollChange((e) =\u003e this._onEditorScrollChanged(e)));\n  }\n  _unhookListeners() {\n    this._listenersStore.clear();\n  }\n  _cancelScheduler() {\n    this._mouseMoveEvent = void 0;\n    this._reactToEditorMouseMoveRunner.cancel();\n  }\n  _onEditorScrollChanged(e) {\n    if (e.scrollTopChanged || e.scrollLeftChanged) {\n      this.hideGlyphHover();\n    }\n  }\n  _onEditorMouseDown(mouseEvent) {\n    this._hoverState.mouseDown = true;\n    const shouldNotHideCurrentHoverWidget = this._isMouseOnGlyphHoverWidget(mouseEvent);\n    if (shouldNotHideCurrentHoverWidget) {\n      return;\n    }\n    this.hideGlyphHover();\n  }\n  _isMouseOnGlyphHoverWidget(mouseEvent) {\n    const glyphHoverWidgetNode = this._glyphWidget?.getDomNode();\n    if (glyphHoverWidgetNode) {\n      return isMousePositionWithinElement(glyphHoverWidgetNode, mouseEvent.event.posx, mouseEvent.event.posy);\n    }\n    return false;\n  }\n  _onEditorMouseUp() {\n    this._hoverState.mouseDown = false;\n  }\n  _onEditorMouseLeave(mouseEvent) {\n    if (this.shouldKeepOpenOnEditorMouseMoveOrLeave) {\n      return;\n    }\n    this._cancelScheduler();\n    const shouldNotHideCurrentHoverWidget = this._isMouseOnGlyphHoverWidget(mouseEvent);\n    if (shouldNotHideCurrentHoverWidget) {\n      return;\n    }\n    if (_sticky3) {\n      return;\n    }\n    this.hideGlyphHover();\n  }\n  _shouldNotRecomputeCurrentHoverWidget(mouseEvent) {\n    const isHoverSticky = this._hoverSettings.sticky;\n    const isMouseOnGlyphHoverWidget = this._isMouseOnGlyphHoverWidget(mouseEvent);\n    return isHoverSticky \u0026\u0026 isMouseOnGlyphHoverWidget;\n  }\n  _onEditorMouseMove(mouseEvent) {\n    if (this.shouldKeepOpenOnEditorMouseMoveOrLeave) {\n      return;\n    }\n    this._mouseMoveEvent = mouseEvent;\n    const shouldNotRecomputeCurrentHoverWidget = this._shouldNotRecomputeCurrentHoverWidget(mouseEvent);\n    if (shouldNotRecomputeCurrentHoverWidget) {\n      this._reactToEditorMouseMoveRunner.cancel();\n      return;\n    }\n    this._reactToEditorMouseMove(mouseEvent);\n  }\n  _reactToEditorMouseMove(mouseEvent) {\n    if (!mouseEvent) {\n      return;\n    }\n    const glyphWidgetShowsOrWillShow = this._tryShowHoverWidget(mouseEvent);\n    if (glyphWidgetShowsOrWillShow) {\n      return;\n    }\n    if (_sticky3) {\n      return;\n    }\n    this.hideGlyphHover();\n  }\n  _tryShowHoverWidget(mouseEvent) {\n    const glyphWidget = this._getOrCreateGlyphWidget();\n    return glyphWidget.showsOrWillShow(mouseEvent);\n  }\n  _onKeyDown(e) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    if (e.keyCode === 5 || e.keyCode === 6 || e.keyCode === 57 || e.keyCode === 4) {\n      return;\n    }\n    this.hideGlyphHover();\n  }\n  hideGlyphHover() {\n    if (_sticky3) {\n      return;\n    }\n    this._glyphWidget?.hide();\n  }\n  _getOrCreateGlyphWidget() {\n    if (!this._glyphWidget) {\n      this._glyphWidget = this._instantiationService.createInstance(GlyphHoverWidget, this._editor);\n    }\n    return this._glyphWidget;\n  }\n  dispose() {\n    super.dispose();\n    this._unhookListeners();\n    this._listenersStore.dispose();\n    this._glyphWidget?.dispose();\n  }\n};\nGlyphHoverController = __decorate133([\n  __param127(1, IInstantiationService)\n], GlyphHoverController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/hoverAccessibleViews.js\nvar HoverAccessibleView = class {\n};\nvar HoverAccessibilityHelp = class {\n};\nvar ExtHoverAccessibleView = class {\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/hover/browser/hoverContribution.js\nregisterEditorContribution(\n  ContentHoverController.ID,\n  ContentHoverController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorContribution(\n  GlyphHoverController.ID,\n  GlyphHoverController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorAction(ShowOrFocusHoverAction);\nregisterEditorAction(ShowDefinitionPreviewHoverAction);\nregisterEditorAction(HideContentHoverAction);\nregisterEditorAction(ScrollUpHoverAction);\nregisterEditorAction(ScrollDownHoverAction);\nregisterEditorAction(ScrollLeftHoverAction);\nregisterEditorAction(ScrollRightHoverAction);\nregisterEditorAction(PageUpHoverAction);\nregisterEditorAction(PageDownHoverAction);\nregisterEditorAction(GoToTopHoverAction);\nregisterEditorAction(GoToBottomHoverAction);\nregisterEditorAction(IncreaseHoverVerbosityLevel);\nregisterEditorAction(DecreaseHoverVerbosityLevel);\nHoverParticipantRegistry.register(MarkdownHoverParticipant);\nHoverParticipantRegistry.register(MarkerHoverParticipant);\nregisterThemingParticipant((theme, collector) =\u003e {\n  const hoverBorder = theme.getColor(editorHoverBorder);\n  if (hoverBorder) {\n    collector.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${hoverBorder.transparent(0.5)}; }`);\n    collector.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${hoverBorder.transparent(0.5)}; }`);\n    collector.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${hoverBorder.transparent(0.5)}; }`);\n  }\n});\nAccessibleViewRegistry.register(new HoverAccessibleView());\nAccessibleViewRegistry.register(new HoverAccessibilityHelp());\nAccessibleViewRegistry.register(new ExtHoverAccessibleView());\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/indentation/browser/indentation.js\ninit_lifecycle();\ninit_strings();\ninit_editorExtensions();\ninit_range();\ninit_editorContextKeys();\ninit_languageConfigurationRegistry();\ninit_model();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/indentation/common/indentUtils.js\nfunction getSpaceCnt(str, tabSize) {\n  let spacesCnt = 0;\n  for (let i2 = 0; i2 \u003c str.length; i2++) {\n    if (str.charAt(i2) === \"\t\") {\n      spacesCnt += tabSize;\n    } else {\n      spacesCnt++;\n    }\n  }\n  return spacesCnt;\n}\nfunction generateIndent(spacesCnt, tabSize, insertSpaces) {\n  spacesCnt = spacesCnt \u003c 0 ? 0 : spacesCnt;\n  let result = \"\";\n  if (!insertSpaces) {\n    const tabsCnt = Math.floor(spacesCnt / tabSize);\n    spacesCnt = spacesCnt % tabSize;\n    for (let i2 = 0; i2 \u003c tabsCnt; i2++) {\n      result += \"\t\";\n    }\n  }\n  for (let i2 = 0; i2 \u003c spacesCnt; i2++) {\n    result += \" \";\n  }\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/indentation/browser/indentation.js\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/indentation/common/indentation.js\ninit_strings();\ninit_indentation();\ninit_selection();\nfunction getReindentEditOperations(model, languageConfigurationService, startLineNumber, endLineNumber) {\n  if (model.getLineCount() === 1 \u0026\u0026 model.getLineMaxColumn(1) === 1) {\n    return [];\n  }\n  const indentationRulesSupport = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).indentRulesSupport;\n  if (!indentationRulesSupport) {\n    return [];\n  }\n  const processedIndentRulesSupport = new ProcessedIndentRulesSupport(model, indentationRulesSupport, languageConfigurationService);\n  endLineNumber = Math.min(endLineNumber, model.getLineCount());\n  while (startLineNumber \u003c= endLineNumber) {\n    if (!processedIndentRulesSupport.shouldIgnore(startLineNumber)) {\n      break;\n    }\n    startLineNumber++;\n  }\n  if (startLineNumber \u003e endLineNumber - 1) {\n    return [];\n  }\n  const { tabSize, indentSize, insertSpaces } = model.getOptions();\n  const shiftIndent2 = (indentation, count) =\u003e {\n    count = count || 1;\n    return ShiftCommand.shiftIndent(indentation, indentation.length + count, tabSize, indentSize, insertSpaces);\n  };\n  const unshiftIndent2 = (indentation, count) =\u003e {\n    count = count || 1;\n    return ShiftCommand.unshiftIndent(indentation, indentation.length + count, tabSize, indentSize, insertSpaces);\n  };\n  const indentEdits = [];\n  const currentLineText = model.getLineContent(startLineNumber);\n  let globalIndent = getLeadingWhitespace(currentLineText);\n  let idealIndentForNextLine = globalIndent;\n  if (processedIndentRulesSupport.shouldIncrease(startLineNumber)) {\n    idealIndentForNextLine = shiftIndent2(idealIndentForNextLine);\n    globalIndent = shiftIndent2(globalIndent);\n  } else if (processedIndentRulesSupport.shouldIndentNextLine(startLineNumber)) {\n    idealIndentForNextLine = shiftIndent2(idealIndentForNextLine);\n  }\n  startLineNumber++;\n  for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n    if (doesLineStartWithString(model, lineNumber)) {\n      continue;\n    }\n    const text2 = model.getLineContent(lineNumber);\n    const oldIndentation = getLeadingWhitespace(text2);\n    const currentIdealIndent = idealIndentForNextLine;\n    if (processedIndentRulesSupport.shouldDecrease(lineNumber, currentIdealIndent)) {\n      idealIndentForNextLine = unshiftIndent2(idealIndentForNextLine);\n      globalIndent = unshiftIndent2(globalIndent);\n    }\n    if (oldIndentation !== idealIndentForNextLine) {\n      indentEdits.push(EditOperation.replaceMove(new Selection(lineNumber, 1, lineNumber, oldIndentation.length + 1), normalizeIndentation(idealIndentForNextLine, indentSize, insertSpaces)));\n    }\n    if (processedIndentRulesSupport.shouldIgnore(lineNumber)) {\n      continue;\n    } else if (processedIndentRulesSupport.shouldIncrease(lineNumber, currentIdealIndent)) {\n      globalIndent = shiftIndent2(globalIndent);\n      idealIndentForNextLine = globalIndent;\n    } else if (processedIndentRulesSupport.shouldIndentNextLine(lineNumber, currentIdealIndent)) {\n      idealIndentForNextLine = shiftIndent2(idealIndentForNextLine);\n    } else {\n      idealIndentForNextLine = globalIndent;\n    }\n  }\n  return indentEdits;\n}\nfunction doesLineStartWithString(model, lineNumber) {\n  if (!model.tokenization.isCheapToTokenize(lineNumber)) {\n    return false;\n  }\n  const lineTokens = model.tokenization.getLineTokens(lineNumber);\n  return lineTokens.getStandardTokenType(0) === 2;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/indentation/browser/indentation.js\ninit_lineTokens();\nvar __decorate134 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param128 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar IndentationToSpacesAction = class _IndentationToSpacesAction extends EditorAction {\n  static {\n    this.ID = \"editor.action.indentationToSpaces\";\n  }\n  constructor() {\n    super({\n      id: _IndentationToSpacesAction.ID,\n      label: localize2(1138, \"Convert Indentation to Spaces\"),\n      precondition: EditorContextKeys.writable,\n      metadata: {\n        description: localize2(1139, \"Convert the tab indentation to spaces.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const model = editor2.getModel();\n    if (!model) {\n      return;\n    }\n    const modelOpts = model.getOptions();\n    const selection = editor2.getSelection();\n    if (!selection) {\n      return;\n    }\n    const command = new IndentationToSpacesCommand(selection, modelOpts.tabSize);\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, [command]);\n    editor2.pushUndoStop();\n    model.updateOptions({\n      insertSpaces: true\n    });\n  }\n};\nvar IndentationToTabsAction = class _IndentationToTabsAction extends EditorAction {\n  static {\n    this.ID = \"editor.action.indentationToTabs\";\n  }\n  constructor() {\n    super({\n      id: _IndentationToTabsAction.ID,\n      label: localize2(1140, \"Convert Indentation to Tabs\"),\n      precondition: EditorContextKeys.writable,\n      metadata: {\n        description: localize2(1141, \"Convert the spaces indentation to tabs.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const model = editor2.getModel();\n    if (!model) {\n      return;\n    }\n    const modelOpts = model.getOptions();\n    const selection = editor2.getSelection();\n    if (!selection) {\n      return;\n    }\n    const command = new IndentationToTabsCommand(selection, modelOpts.tabSize);\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, [command]);\n    editor2.pushUndoStop();\n    model.updateOptions({\n      insertSpaces: false\n    });\n  }\n};\nvar ChangeIndentationSizeAction = class extends EditorAction {\n  constructor(insertSpaces, displaySizeOnly, opts) {\n    super(opts);\n    this.insertSpaces = insertSpaces;\n    this.displaySizeOnly = displaySizeOnly;\n  }\n  run(accessor, editor2) {\n    const quickInputService = accessor.get(IQuickInputService);\n    const modelService = accessor.get(IModelService);\n    const model = editor2.getModel();\n    if (!model) {\n      return;\n    }\n    const creationOpts = modelService.getCreationOptions(model.getLanguageId(), model.uri, model.isForSimpleWidget);\n    const modelOpts = model.getOptions();\n    const picks = [1, 2, 3, 4, 5, 6, 7, 8].map((n2) =\u003e ({\n      id: n2.toString(),\n      label: n2.toString(),\n      // add description for tabSize value set in the configuration\n      description: n2 === creationOpts.tabSize \u0026\u0026 n2 === modelOpts.tabSize ? localize(1134, \"Configured Tab Size\") : n2 === creationOpts.tabSize ? localize(1135, \"Default Tab Size\") : n2 === modelOpts.tabSize ? localize(1136, \"Current Tab Size\") : void 0\n    }));\n    const autoFocusIndex = Math.min(model.getOptions().tabSize - 1, 7);\n    setTimeout(\n      () =\u003e {\n        quickInputService.pick(picks, { placeHolder: localize(1137, \"Select Tab Size for Current File\"), activeItem: picks[autoFocusIndex] }).then((pick) =\u003e {\n          if (pick) {\n            if (model \u0026\u0026 !model.isDisposed()) {\n              const pickedVal = parseInt(pick.label, 10);\n              if (this.displaySizeOnly) {\n                model.updateOptions({\n                  tabSize: pickedVal\n                });\n              } else {\n                model.updateOptions({\n                  tabSize: pickedVal,\n                  indentSize: pickedVal,\n                  insertSpaces: this.insertSpaces\n                });\n              }\n            }\n          }\n        });\n      },\n      50\n      /* quick input is sensitive to being opened so soon after another */\n    );\n  }\n};\nvar IndentUsingTabs = class _IndentUsingTabs extends ChangeIndentationSizeAction {\n  static {\n    this.ID = \"editor.action.indentUsingTabs\";\n  }\n  constructor() {\n    super(false, false, {\n      id: _IndentUsingTabs.ID,\n      label: localize2(1142, \"Indent Using Tabs\"),\n      precondition: void 0,\n      metadata: {\n        description: localize2(1143, \"Use indentation with tabs.\")\n      }\n    });\n  }\n};\nvar IndentUsingSpaces = class _IndentUsingSpaces extends ChangeIndentationSizeAction {\n  static {\n    this.ID = \"editor.action.indentUsingSpaces\";\n  }\n  constructor() {\n    super(true, false, {\n      id: _IndentUsingSpaces.ID,\n      label: localize2(1144, \"Indent Using Spaces\"),\n      precondition: void 0,\n      metadata: {\n        description: localize2(1145, \"Use indentation with spaces.\")\n      }\n    });\n  }\n};\nvar ChangeTabDisplaySize = class _ChangeTabDisplaySize extends ChangeIndentationSizeAction {\n  static {\n    this.ID = \"editor.action.changeTabDisplaySize\";\n  }\n  constructor() {\n    super(true, true, {\n      id: _ChangeTabDisplaySize.ID,\n      label: localize2(1146, \"Change Tab Display Size\"),\n      precondition: void 0,\n      metadata: {\n        description: localize2(1147, \"Change the space size equivalent of the tab.\")\n      }\n    });\n  }\n};\nvar DetectIndentation = class _DetectIndentation extends EditorAction {\n  static {\n    this.ID = \"editor.action.detectIndentation\";\n  }\n  constructor() {\n    super({\n      id: _DetectIndentation.ID,\n      label: localize2(1148, \"Detect Indentation from Content\"),\n      precondition: void 0,\n      metadata: {\n        description: localize2(1149, \"Detect the indentation from content.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const modelService = accessor.get(IModelService);\n    const model = editor2.getModel();\n    if (!model) {\n      return;\n    }\n    const creationOpts = modelService.getCreationOptions(model.getLanguageId(), model.uri, model.isForSimpleWidget);\n    model.detectIndentation(creationOpts.insertSpaces, creationOpts.tabSize);\n  }\n};\nvar ReindentLinesAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.reindentlines\",\n      label: localize2(1150, \"Reindent Lines\"),\n      precondition: EditorContextKeys.writable,\n      metadata: {\n        description: localize2(1151, \"Reindent the lines of the editor.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n    const model = editor2.getModel();\n    if (!model) {\n      return;\n    }\n    const edits = getReindentEditOperations(model, languageConfigurationService, 1, model.getLineCount());\n    if (edits.length \u003e 0) {\n      editor2.pushUndoStop();\n      editor2.executeEdits(this.id, edits);\n      editor2.pushUndoStop();\n    }\n  }\n};\nvar ReindentSelectedLinesAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.reindentselectedlines\",\n      label: localize2(1152, \"Reindent Selected Lines\"),\n      precondition: EditorContextKeys.writable,\n      metadata: {\n        description: localize2(1153, \"Reindent the selected lines of the editor.\")\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n    const model = editor2.getModel();\n    if (!model) {\n      return;\n    }\n    const selections = editor2.getSelections();\n    if (selections === null) {\n      return;\n    }\n    const edits = [];\n    for (const selection of selections) {\n      let startLineNumber = selection.startLineNumber;\n      let endLineNumber = selection.endLineNumber;\n      if (startLineNumber !== endLineNumber \u0026\u0026 selection.endColumn === 1) {\n        endLineNumber--;\n      }\n      if (startLineNumber === 1) {\n        if (startLineNumber === endLineNumber) {\n          continue;\n        }\n      } else {\n        startLineNumber--;\n      }\n      const editOperations = getReindentEditOperations(model, languageConfigurationService, startLineNumber, endLineNumber);\n      edits.push(...editOperations);\n    }\n    if (edits.length \u003e 0) {\n      editor2.pushUndoStop();\n      editor2.executeEdits(this.id, edits);\n      editor2.pushUndoStop();\n    }\n  }\n};\nvar AutoIndentOnPasteCommand = class {\n  constructor(edits, initialSelection) {\n    this._initialSelection = initialSelection;\n    this._edits = [];\n    this._selectionId = null;\n    for (const edit2 of edits) {\n      if (edit2.range \u0026\u0026 typeof edit2.text === \"string\") {\n        this._edits.push(edit2);\n      }\n    }\n  }\n  getEditOperations(model, builder) {\n    for (const edit2 of this._edits) {\n      builder.addEditOperation(Range.lift(edit2.range), edit2.text);\n    }\n    let selectionIsSet = false;\n    if (Array.isArray(this._edits) \u0026\u0026 this._edits.length === 1 \u0026\u0026 this._initialSelection.isEmpty()) {\n      if (this._edits[0].range.startColumn === this._initialSelection.endColumn \u0026\u0026 this._edits[0].range.startLineNumber === this._initialSelection.endLineNumber) {\n        selectionIsSet = true;\n        this._selectionId = builder.trackSelection(this._initialSelection, true);\n      } else if (this._edits[0].range.endColumn === this._initialSelection.startColumn \u0026\u0026 this._edits[0].range.endLineNumber === this._initialSelection.startLineNumber) {\n        selectionIsSet = true;\n        this._selectionId = builder.trackSelection(this._initialSelection, false);\n      }\n    }\n    if (!selectionIsSet) {\n      this._selectionId = builder.trackSelection(this._initialSelection);\n    }\n  }\n  computeCursorState(model, helper) {\n    return helper.getTrackedSelection(this._selectionId);\n  }\n};\nvar AutoIndentOnPaste = class AutoIndentOnPaste2 {\n  static {\n    this.ID = \"editor.contrib.autoIndentOnPaste\";\n  }\n  constructor(editor2, _languageConfigurationService) {\n    this.editor = editor2;\n    this._languageConfigurationService = _languageConfigurationService;\n    this.callOnDispose = new DisposableStore();\n    this.callOnModel = new DisposableStore();\n    this.callOnDispose.add(editor2.onDidChangeConfiguration(() =\u003e this.update()));\n    this.callOnDispose.add(editor2.onDidChangeModel(() =\u003e this.update()));\n    this.callOnDispose.add(editor2.onDidChangeModelLanguage(() =\u003e this.update()));\n  }\n  update() {\n    this.callOnModel.clear();\n    if (!this.editor.getOption(\n      17\n      /* EditorOption.autoIndentOnPaste */\n    ) || this.editor.getOption(\n      16\n      /* EditorOption.autoIndent */\n    ) \u003c 4) {\n      return;\n    }\n    if (!this.editor.hasModel()) {\n      return;\n    }\n    this.callOnModel.add(this.editor.onDidPaste(({ range: range2 }) =\u003e {\n      this.trigger(range2);\n    }));\n  }\n  trigger(range2) {\n    const selections = this.editor.getSelections();\n    if (selections === null || selections.length \u003e 1) {\n      return;\n    }\n    const model = this.editor.getModel();\n    if (!model) {\n      return;\n    }\n    const containsOnlyWhitespace = this.rangeContainsOnlyWhitespaceCharacters(model, range2);\n    if (containsOnlyWhitespace) {\n      return;\n    }\n    if (!this.editor.getOption(\n      18\n      /* EditorOption.autoIndentOnPasteWithinString */\n    ) \u0026\u0026 isStartOrEndInString(model, range2)) {\n      return;\n    }\n    if (!model.tokenization.isCheapToTokenize(range2.getStartPosition().lineNumber)) {\n      return;\n    }\n    const autoIndent = this.editor.getOption(\n      16\n      /* EditorOption.autoIndent */\n    );\n    const { tabSize, indentSize, insertSpaces } = model.getOptions();\n    const textEdits = [];\n    const indentConverter = {\n      shiftIndent: (indentation) =\u003e {\n        return ShiftCommand.shiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n      },\n      unshiftIndent: (indentation) =\u003e {\n        return ShiftCommand.unshiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n      }\n    };\n    let startLineNumber = range2.startLineNumber;\n    let firstLineText = model.getLineContent(startLineNumber);\n    if (!/\\S/.test(firstLineText.substring(0, range2.startColumn - 1))) {\n      const indentOfFirstLine = getGoodIndentForLine(autoIndent, model, model.getLanguageId(), startLineNumber, indentConverter, this._languageConfigurationService);\n      if (indentOfFirstLine !== null) {\n        const oldIndentation = getLeadingWhitespace(firstLineText);\n        const newSpaceCnt = getSpaceCnt(indentOfFirstLine, tabSize);\n        const oldSpaceCnt = getSpaceCnt(oldIndentation, tabSize);\n        if (newSpaceCnt !== oldSpaceCnt) {\n          const newIndent = generateIndent(newSpaceCnt, tabSize, insertSpaces);\n          textEdits.push({\n            range: new Range(startLineNumber, 1, startLineNumber, oldIndentation.length + 1),\n            text: newIndent\n          });\n          firstLineText = newIndent + firstLineText.substring(oldIndentation.length);\n        } else {\n          const indentMetadata = getIndentMetadata(model, startLineNumber, this._languageConfigurationService);\n          if (indentMetadata === 0 || indentMetadata === 8) {\n            return;\n          }\n        }\n      }\n    }\n    const firstLineNumber = startLineNumber;\n    while (startLineNumber \u003c range2.endLineNumber) {\n      if (!/\\S/.test(model.getLineContent(startLineNumber + 1))) {\n        startLineNumber++;\n        continue;\n      }\n      break;\n    }\n    if (startLineNumber !== range2.endLineNumber) {\n      const virtualModel = {\n        tokenization: {\n          getLineTokens: (lineNumber) =\u003e {\n            return model.tokenization.getLineTokens(lineNumber);\n          },\n          getLanguageId: () =\u003e {\n            return model.getLanguageId();\n          },\n          getLanguageIdAtPosition: (lineNumber, column) =\u003e {\n            return model.getLanguageIdAtPosition(lineNumber, column);\n          }\n        },\n        getLineContent: (lineNumber) =\u003e {\n          if (lineNumber === firstLineNumber) {\n            return firstLineText;\n          } else {\n            return model.getLineContent(lineNumber);\n          }\n        }\n      };\n      const indentOfSecondLine = getGoodIndentForLine(autoIndent, virtualModel, model.getLanguageId(), startLineNumber + 1, indentConverter, this._languageConfigurationService);\n      if (indentOfSecondLine !== null) {\n        const newSpaceCntOfSecondLine = getSpaceCnt(indentOfSecondLine, tabSize);\n        const oldSpaceCntOfSecondLine = getSpaceCnt(getLeadingWhitespace(model.getLineContent(startLineNumber + 1)), tabSize);\n        if (newSpaceCntOfSecondLine !== oldSpaceCntOfSecondLine) {\n          const spaceCntOffset = newSpaceCntOfSecondLine - oldSpaceCntOfSecondLine;\n          for (let i2 = startLineNumber + 1; i2 \u003c= range2.endLineNumber; i2++) {\n            const lineContent = model.getLineContent(i2);\n            const originalIndent = getLeadingWhitespace(lineContent);\n            const originalSpacesCnt = getSpaceCnt(originalIndent, tabSize);\n            const newSpacesCnt = originalSpacesCnt + spaceCntOffset;\n            const newIndent = generateIndent(newSpacesCnt, tabSize, insertSpaces);\n            if (newIndent !== originalIndent) {\n              textEdits.push({\n                range: new Range(i2, 1, i2, originalIndent.length + 1),\n                text: newIndent\n              });\n            }\n          }\n        }\n      }\n    }\n    if (textEdits.length \u003e 0) {\n      this.editor.pushUndoStop();\n      const cmd = new AutoIndentOnPasteCommand(textEdits, this.editor.getSelection());\n      this.editor.executeCommand(\"autoIndentOnPaste\", cmd);\n      this.editor.pushUndoStop();\n    }\n  }\n  rangeContainsOnlyWhitespaceCharacters(model, range2) {\n    const lineContainsOnlyWhitespace = (content) =\u003e {\n      return content.trim().length === 0;\n    };\n    let containsOnlyWhitespace = true;\n    if (range2.startLineNumber === range2.endLineNumber) {\n      const lineContent = model.getLineContent(range2.startLineNumber);\n      const linePart = lineContent.substring(range2.startColumn - 1, range2.endColumn - 1);\n      containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n    } else {\n      for (let i2 = range2.startLineNumber; i2 \u003c= range2.endLineNumber; i2++) {\n        const lineContent = model.getLineContent(i2);\n        if (i2 === range2.startLineNumber) {\n          const linePart = lineContent.substring(range2.startColumn - 1);\n          containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n        } else if (i2 === range2.endLineNumber) {\n          const linePart = lineContent.substring(0, range2.endColumn - 1);\n          containsOnlyWhitespace = lineContainsOnlyWhitespace(linePart);\n        } else {\n          containsOnlyWhitespace = model.getLineFirstNonWhitespaceColumn(i2) === 0;\n        }\n        if (!containsOnlyWhitespace) {\n          break;\n        }\n      }\n    }\n    return containsOnlyWhitespace;\n  }\n  dispose() {\n    this.callOnDispose.dispose();\n    this.callOnModel.dispose();\n  }\n};\nAutoIndentOnPaste = __decorate134([\n  __param128(1, ILanguageConfigurationService)\n], AutoIndentOnPaste);\nfunction isStartOrEndInString(model, range2) {\n  const isPositionInString = (position) =\u003e {\n    const tokenType = getStandardTokenTypeAtPosition(model, position);\n    return tokenType === 2;\n  };\n  return isPositionInString(range2.getStartPosition()) || isPositionInString(range2.getEndPosition());\n}\nfunction getIndentationEditOperations(model, builder, tabSize, tabsToSpaces) {\n  if (model.getLineCount() === 1 \u0026\u0026 model.getLineMaxColumn(1) === 1) {\n    return;\n  }\n  let spaces2 = \"\";\n  for (let i2 = 0; i2 \u003c tabSize; i2++) {\n    spaces2 += \" \";\n  }\n  const spacesRegExp = new RegExp(spaces2, \"gi\");\n  for (let lineNumber = 1, lineCount = model.getLineCount(); lineNumber \u003c= lineCount; lineNumber++) {\n    let lastIndentationColumn = model.getLineFirstNonWhitespaceColumn(lineNumber);\n    if (lastIndentationColumn === 0) {\n      lastIndentationColumn = model.getLineMaxColumn(lineNumber);\n    }\n    if (lastIndentationColumn === 1) {\n      continue;\n    }\n    const originalIndentationRange = new Range(lineNumber, 1, lineNumber, lastIndentationColumn);\n    const originalIndentation = model.getValueInRange(originalIndentationRange);\n    const newIndentation = tabsToSpaces ? originalIndentation.replace(/\\t/ig, spaces2) : originalIndentation.replace(spacesRegExp, \"\t\");\n    builder.addEditOperation(originalIndentationRange, newIndentation);\n  }\n}\nvar IndentationToSpacesCommand = class {\n  constructor(selection, tabSize) {\n    this.selection = selection;\n    this.tabSize = tabSize;\n    this.selectionId = null;\n  }\n  getEditOperations(model, builder) {\n    this.selectionId = builder.trackSelection(this.selection);\n    getIndentationEditOperations(model, builder, this.tabSize, true);\n  }\n  computeCursorState(model, helper) {\n    return helper.getTrackedSelection(this.selectionId);\n  }\n};\nvar IndentationToTabsCommand = class {\n  constructor(selection, tabSize) {\n    this.selection = selection;\n    this.tabSize = tabSize;\n    this.selectionId = null;\n  }\n  getEditOperations(model, builder) {\n    this.selectionId = builder.trackSelection(this.selection);\n    getIndentationEditOperations(model, builder, this.tabSize, false);\n  }\n  computeCursorState(model, helper) {\n    return helper.getTrackedSelection(this.selectionId);\n  }\n};\nregisterEditorContribution(\n  AutoIndentOnPaste.ID,\n  AutoIndentOnPaste,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorAction(IndentationToSpacesAction);\nregisterEditorAction(IndentationToTabsAction);\nregisterEditorAction(IndentUsingTabs);\nregisterEditorAction(IndentUsingSpaces);\nregisterEditorAction(ChangeTabDisplaySize);\nregisterEditorAction(DetectIndentation);\nregisterEditorAction(ReindentLinesAction);\nregisterEditorAction(ReindentSelectedLinesAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.js\ninit_editorExtensions();\nregisterEditorContribution(\n  InlayHintsController.ID,\n  InlayHintsController,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nHoverParticipantRegistry.register(InlayHintsHover);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/editor.all.js\nvar import_inPlaceReplace = __toESM(require_inPlaceReplace());\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLineCommand.js\ninit_strings();\ninit_position();\nvar InsertFinalNewLineCommand = class {\n  constructor(selection) {\n    this._selection = selection;\n    this._selectionId = null;\n  }\n  getEditOperations(model, builder) {\n    const op = insertFinalNewLine(model);\n    if (op) {\n      builder.addEditOperation(op.range, op.text);\n    }\n    this._selectionId = builder.trackSelection(this._selection);\n  }\n  computeCursorState(model, helper) {\n    return helper.getTrackedSelection(this._selectionId);\n  }\n};\nfunction insertFinalNewLine(model) {\n  const lineCount = model.getLineCount();\n  const lastLine = model.getLineContent(lineCount);\n  const lastLineIsEmptyOrWhitespace = lastNonWhitespaceIndex(lastLine) === -1;\n  if (!lineCount || lastLineIsEmptyOrWhitespace) {\n    return;\n  }\n  return EditOperation.insert(new Position(lineCount, model.getLineMaxColumn(lineCount)), model.getEOL());\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js\ninit_editorContextKeys();\ninit_nls();\nvar InsertFinalNewLineAction = class _InsertFinalNewLineAction extends EditorAction {\n  static {\n    this.ID = \"editor.action.insertFinalNewLine\";\n  }\n  constructor() {\n    super({\n      id: _InsertFinalNewLineAction.ID,\n      label: localize2(1229, \"Insert Final New Line\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  run(_accessor, editor2, args) {\n    const selection = editor2.getSelection();\n    if (selection === null) {\n      return;\n    }\n    const command = new InsertFinalNewLineCommand(selection);\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, [command]);\n    editor2.pushUndoStop();\n  }\n};\nregisterEditorAction(InsertFinalNewLineAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js\ninit_editorExtensions();\ninit_editorContextKeys();\ninit_nls();\nvar ExpandLineSelectionAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"expandLineSelection\",\n      label: localize2(1230, \"Expand Line Selection\"),\n      precondition: void 0,\n      kbOpts: {\n        weight: 0,\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 | 42\n        /* KeyCode.KeyL */\n      }\n    });\n  }\n  run(_accessor, editor2, args) {\n    args = args || {};\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const viewModel = editor2._getViewModel();\n    viewModel.model.pushStackElement();\n    viewModel.setCursorStates(args.source, 3, CursorMoveCommands.expandLineSelection(viewModel, viewModel.getCursorStates()));\n    viewModel.revealAllCursors(args.source, true);\n  }\n};\nregisterEditorAction(ExpandLineSelectionAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js\ninit_keyCodes();\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/commands/trimTrailingWhitespaceCommand.js\ninit_strings();\ninit_range();\nvar TrimTrailingWhitespaceCommand = class {\n  constructor(selection, cursors, trimInRegexesAndStrings) {\n    this._selection = selection;\n    this._cursors = cursors;\n    this._selectionId = null;\n    this._trimInRegexesAndStrings = trimInRegexesAndStrings;\n  }\n  getEditOperations(model, builder) {\n    const ops = trimTrailingWhitespace(model, this._cursors, this._trimInRegexesAndStrings);\n    for (let i2 = 0, len = ops.length; i2 \u003c len; i2++) {\n      const op = ops[i2];\n      builder.addEditOperation(op.range, op.text);\n    }\n    this._selectionId = builder.trackSelection(this._selection);\n  }\n  computeCursorState(model, helper) {\n    return helper.getTrackedSelection(this._selectionId);\n  }\n};\nfunction trimTrailingWhitespace(model, cursors, trimInRegexesAndStrings) {\n  cursors.sort((a, b) =\u003e {\n    if (a.lineNumber === b.lineNumber) {\n      return a.column - b.column;\n    }\n    return a.lineNumber - b.lineNumber;\n  });\n  for (let i2 = cursors.length - 2; i2 \u003e= 0; i2--) {\n    if (cursors[i2].lineNumber === cursors[i2 + 1].lineNumber) {\n      cursors.splice(i2, 1);\n    }\n  }\n  const r = [];\n  let rLen = 0;\n  let cursorIndex = 0;\n  const cursorLen = cursors.length;\n  for (let lineNumber = 1, lineCount = model.getLineCount(); lineNumber \u003c= lineCount; lineNumber++) {\n    const lineContent = model.getLineContent(lineNumber);\n    const maxLineColumn = lineContent.length + 1;\n    let minEditColumn = 0;\n    if (cursorIndex \u003c cursorLen \u0026\u0026 cursors[cursorIndex].lineNumber === lineNumber) {\n      minEditColumn = cursors[cursorIndex].column;\n      cursorIndex++;\n      if (minEditColumn === maxLineColumn) {\n        continue;\n      }\n    }\n    if (lineContent.length === 0) {\n      continue;\n    }\n    const lastNonWhitespaceIndex2 = lastNonWhitespaceIndex(lineContent);\n    let fromColumn = 0;\n    if (lastNonWhitespaceIndex2 === -1) {\n      fromColumn = 1;\n    } else if (lastNonWhitespaceIndex2 !== lineContent.length - 1) {\n      fromColumn = lastNonWhitespaceIndex2 + 2;\n    } else {\n      continue;\n    }\n    if (!trimInRegexesAndStrings) {\n      if (!model.tokenization.hasAccurateTokensForLine(lineNumber)) {\n        continue;\n      }\n      const lineTokens = model.tokenization.getLineTokens(lineNumber);\n      const fromColumnType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(fromColumn));\n      if (fromColumnType === 2 || fromColumnType === 3) {\n        continue;\n      }\n    }\n    fromColumn = Math.max(minEditColumn, fromColumn);\n    r[rLen++] = EditOperation.delete(new Range(lineNumber, fromColumn, lineNumber, maxLineColumn));\n  }\n  return r;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js\ninit_position();\ninit_range();\ninit_selection();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/linesOperations/browser/copyLinesCommand.js\ninit_range();\ninit_selection();\nvar CopyLinesCommand = class {\n  constructor(selection, isCopyingDown, noop) {\n    this._selection = selection;\n    this._isCopyingDown = isCopyingDown;\n    this._noop = noop || false;\n    this._selectionDirection = 0;\n    this._selectionId = null;\n    this._startLineNumberDelta = 0;\n    this._endLineNumberDelta = 0;\n  }\n  getEditOperations(model, builder) {\n    let s = this._selection;\n    this._startLineNumberDelta = 0;\n    this._endLineNumberDelta = 0;\n    if (s.startLineNumber \u003c s.endLineNumber \u0026\u0026 s.endColumn === 1) {\n      this._endLineNumberDelta = 1;\n      s = s.setEndPosition(s.endLineNumber - 1, model.getLineMaxColumn(s.endLineNumber - 1));\n    }\n    const sourceLines = [];\n    for (let i2 = s.startLineNumber; i2 \u003c= s.endLineNumber; i2++) {\n      sourceLines.push(model.getLineContent(i2));\n    }\n    const sourceText = sourceLines.join(\"\\n\");\n    if (sourceText === \"\") {\n      if (this._isCopyingDown) {\n        this._startLineNumberDelta++;\n        this._endLineNumberDelta++;\n      }\n    }\n    if (this._noop) {\n      builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber + 1, 1), s.endLineNumber === model.getLineCount() ? \"\" : \"\\n\");\n    } else {\n      if (!this._isCopyingDown) {\n        builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), \"\\n\" + sourceText);\n      } else {\n        builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), sourceText + \"\\n\");\n      }\n    }\n    this._selectionId = builder.trackSelection(s);\n    this._selectionDirection = this._selection.getDirection();\n  }\n  computeCursorState(model, helper) {\n    let result = helper.getTrackedSelection(this._selectionId);\n    if (this._startLineNumberDelta !== 0 || this._endLineNumberDelta !== 0) {\n      let startLineNumber = result.startLineNumber;\n      let startColumn = result.startColumn;\n      let endLineNumber = result.endLineNumber;\n      let endColumn = result.endColumn;\n      if (this._startLineNumberDelta !== 0) {\n        startLineNumber = startLineNumber + this._startLineNumberDelta;\n        startColumn = 1;\n      }\n      if (this._endLineNumberDelta !== 0) {\n        endLineNumber = endLineNumber + this._endLineNumberDelta;\n        endColumn = 1;\n      }\n      result = Selection.createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, this._selectionDirection);\n    }\n    return result;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/linesOperations/browser/moveLinesCommand.js\ninit_strings();\ninit_range();\ninit_selection();\ninit_languageConfiguration();\ninit_languageConfigurationRegistry();\nvar __decorate135 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param129 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MoveLinesCommand = class MoveLinesCommand2 {\n  constructor(selection, isMovingDown, autoIndent, _languageConfigurationService) {\n    this._languageConfigurationService = _languageConfigurationService;\n    this._selection = selection;\n    this._isMovingDown = isMovingDown;\n    this._autoIndent = autoIndent;\n    this._selectionId = null;\n    this._moveEndLineSelectionShrink = false;\n  }\n  getEditOperations(model, builder) {\n    const getLanguageId = () =\u003e {\n      return model.getLanguageId();\n    };\n    const getLanguageIdAtPosition = (lineNumber, column) =\u003e {\n      return model.getLanguageIdAtPosition(lineNumber, column);\n    };\n    const modelLineCount = model.getLineCount();\n    if (this._isMovingDown \u0026\u0026 this._selection.endLineNumber === modelLineCount) {\n      this._selectionId = builder.trackSelection(this._selection);\n      return;\n    }\n    if (!this._isMovingDown \u0026\u0026 this._selection.startLineNumber === 1) {\n      this._selectionId = builder.trackSelection(this._selection);\n      return;\n    }\n    this._moveEndPositionDown = false;\n    let s = this._selection;\n    if (s.startLineNumber \u003c s.endLineNumber \u0026\u0026 s.endColumn === 1) {\n      this._moveEndPositionDown = true;\n      s = s.setEndPosition(s.endLineNumber - 1, model.getLineMaxColumn(s.endLineNumber - 1));\n    }\n    const { tabSize, indentSize, insertSpaces } = model.getOptions();\n    const indentConverter = this.buildIndentConverter(tabSize, indentSize, insertSpaces);\n    if (s.startLineNumber === s.endLineNumber \u0026\u0026 model.getLineMaxColumn(s.startLineNumber) === 1) {\n      const lineNumber = s.startLineNumber;\n      const otherLineNumber = this._isMovingDown ? lineNumber + 1 : lineNumber - 1;\n      if (model.getLineMaxColumn(otherLineNumber) === 1) {\n        builder.addEditOperation(new Range(1, 1, 1, 1), null);\n      } else {\n        builder.addEditOperation(new Range(lineNumber, 1, lineNumber, 1), model.getLineContent(otherLineNumber));\n        builder.addEditOperation(new Range(otherLineNumber, 1, otherLineNumber, model.getLineMaxColumn(otherLineNumber)), null);\n      }\n      s = new Selection(otherLineNumber, 1, otherLineNumber, 1);\n    } else {\n      let movingLineNumber;\n      let movingLineText;\n      if (this._isMovingDown) {\n        movingLineNumber = s.endLineNumber + 1;\n        movingLineText = model.getLineContent(movingLineNumber);\n        builder.addEditOperation(new Range(movingLineNumber - 1, model.getLineMaxColumn(movingLineNumber - 1), movingLineNumber, model.getLineMaxColumn(movingLineNumber)), null);\n        let insertingText = movingLineText;\n        if (this.shouldAutoIndent(model, s)) {\n          const movingLineMatchResult = this.matchEnterRule(model, indentConverter, tabSize, movingLineNumber, s.startLineNumber - 1);\n          if (movingLineMatchResult !== null) {\n            const oldIndentation = getLeadingWhitespace(model.getLineContent(movingLineNumber));\n            const newSpaceCnt = movingLineMatchResult + getSpaceCnt(oldIndentation, tabSize);\n            const newIndentation = generateIndent(newSpaceCnt, tabSize, insertSpaces);\n            insertingText = newIndentation + this.trimStart(movingLineText);\n          } else {\n            const virtualModel = {\n              tokenization: {\n                getLineTokens: (lineNumber) =\u003e {\n                  if (lineNumber === s.startLineNumber) {\n                    return model.tokenization.getLineTokens(movingLineNumber);\n                  } else {\n                    return model.tokenization.getLineTokens(lineNumber);\n                  }\n                },\n                getLanguageId,\n                getLanguageIdAtPosition\n              },\n              getLineContent: (lineNumber) =\u003e {\n                if (lineNumber === s.startLineNumber) {\n                  return model.getLineContent(movingLineNumber);\n                } else {\n                  return model.getLineContent(lineNumber);\n                }\n              }\n            };\n            const indentOfMovingLine = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(movingLineNumber, 1), s.startLineNumber, indentConverter, this._languageConfigurationService);\n            if (indentOfMovingLine !== null) {\n              const oldIndentation = getLeadingWhitespace(model.getLineContent(movingLineNumber));\n              const newSpaceCnt = getSpaceCnt(indentOfMovingLine, tabSize);\n              const oldSpaceCnt = getSpaceCnt(oldIndentation, tabSize);\n              if (newSpaceCnt !== oldSpaceCnt) {\n                const newIndentation = generateIndent(newSpaceCnt, tabSize, insertSpaces);\n                insertingText = newIndentation + this.trimStart(movingLineText);\n              }\n            }\n          }\n          builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), insertingText + \"\\n\");\n          const ret = this.matchEnterRuleMovingDown(model, indentConverter, tabSize, s.startLineNumber, movingLineNumber, insertingText);\n          if (ret !== null) {\n            if (ret !== 0) {\n              this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, ret);\n            }\n          } else {\n            const virtualModel = {\n              tokenization: {\n                getLineTokens: (lineNumber) =\u003e {\n                  if (lineNumber === s.startLineNumber) {\n                    return model.tokenization.getLineTokens(movingLineNumber);\n                  } else if (lineNumber \u003e= s.startLineNumber + 1 \u0026\u0026 lineNumber \u003c= s.endLineNumber + 1) {\n                    return model.tokenization.getLineTokens(lineNumber - 1);\n                  } else {\n                    return model.tokenization.getLineTokens(lineNumber);\n                  }\n                },\n                getLanguageId,\n                getLanguageIdAtPosition\n              },\n              getLineContent: (lineNumber) =\u003e {\n                if (lineNumber === s.startLineNumber) {\n                  return insertingText;\n                } else if (lineNumber \u003e= s.startLineNumber + 1 \u0026\u0026 lineNumber \u003c= s.endLineNumber + 1) {\n                  return model.getLineContent(lineNumber - 1);\n                } else {\n                  return model.getLineContent(lineNumber);\n                }\n              }\n            };\n            const newIndentatOfMovingBlock = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(movingLineNumber, 1), s.startLineNumber + 1, indentConverter, this._languageConfigurationService);\n            if (newIndentatOfMovingBlock !== null) {\n              const oldIndentation = getLeadingWhitespace(model.getLineContent(s.startLineNumber));\n              const newSpaceCnt = getSpaceCnt(newIndentatOfMovingBlock, tabSize);\n              const oldSpaceCnt = getSpaceCnt(oldIndentation, tabSize);\n              if (newSpaceCnt !== oldSpaceCnt) {\n                const spaceCntOffset = newSpaceCnt - oldSpaceCnt;\n                this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, spaceCntOffset);\n              }\n            }\n          }\n        } else {\n          builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), insertingText + \"\\n\");\n        }\n      } else {\n        movingLineNumber = s.startLineNumber - 1;\n        movingLineText = model.getLineContent(movingLineNumber);\n        builder.addEditOperation(new Range(movingLineNumber, 1, movingLineNumber + 1, 1), null);\n        builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), \"\\n\" + movingLineText);\n        if (this.shouldAutoIndent(model, s)) {\n          const virtualModel = {\n            tokenization: {\n              getLineTokens: (lineNumber) =\u003e {\n                if (lineNumber === movingLineNumber) {\n                  return model.tokenization.getLineTokens(s.startLineNumber);\n                } else {\n                  return model.tokenization.getLineTokens(lineNumber);\n                }\n              },\n              getLanguageId,\n              getLanguageIdAtPosition\n            },\n            getLineContent: (lineNumber) =\u003e {\n              if (lineNumber === movingLineNumber) {\n                return model.getLineContent(s.startLineNumber);\n              } else {\n                return model.getLineContent(lineNumber);\n              }\n            }\n          };\n          const ret = this.matchEnterRule(model, indentConverter, tabSize, s.startLineNumber, s.startLineNumber - 2);\n          if (ret !== null) {\n            if (ret !== 0) {\n              this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, ret);\n            }\n          } else {\n            const indentOfFirstLine = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(s.startLineNumber, 1), movingLineNumber, indentConverter, this._languageConfigurationService);\n            if (indentOfFirstLine !== null) {\n              const oldIndent = getLeadingWhitespace(model.getLineContent(s.startLineNumber));\n              const newSpaceCnt = getSpaceCnt(indentOfFirstLine, tabSize);\n              const oldSpaceCnt = getSpaceCnt(oldIndent, tabSize);\n              if (newSpaceCnt !== oldSpaceCnt) {\n                const spaceCntOffset = newSpaceCnt - oldSpaceCnt;\n                this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, spaceCntOffset);\n              }\n            }\n          }\n        }\n      }\n    }\n    this._selectionId = builder.trackSelection(s);\n  }\n  buildIndentConverter(tabSize, indentSize, insertSpaces) {\n    return {\n      shiftIndent: (indentation) =\u003e {\n        return ShiftCommand.shiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n      },\n      unshiftIndent: (indentation) =\u003e {\n        return ShiftCommand.unshiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n      }\n    };\n  }\n  parseEnterResult(model, indentConverter, tabSize, line, enter) {\n    if (enter) {\n      let enterPrefix = enter.indentation;\n      if (enter.indentAction === IndentAction.None) {\n        enterPrefix = enter.indentation + enter.appendText;\n      } else if (enter.indentAction === IndentAction.Indent) {\n        enterPrefix = enter.indentation + enter.appendText;\n      } else if (enter.indentAction === IndentAction.IndentOutdent) {\n        enterPrefix = enter.indentation;\n      } else if (enter.indentAction === IndentAction.Outdent) {\n        enterPrefix = indentConverter.unshiftIndent(enter.indentation) + enter.appendText;\n      }\n      const movingLineText = model.getLineContent(line);\n      if (this.trimStart(movingLineText).indexOf(this.trimStart(enterPrefix)) \u003e= 0) {\n        const oldIndentation = getLeadingWhitespace(model.getLineContent(line));\n        let newIndentation = getLeadingWhitespace(enterPrefix);\n        const indentMetadataOfMovelingLine = getIndentMetadata(model, line, this._languageConfigurationService);\n        if (indentMetadataOfMovelingLine !== null \u0026\u0026 indentMetadataOfMovelingLine \u0026 2) {\n          newIndentation = indentConverter.unshiftIndent(newIndentation);\n        }\n        const newSpaceCnt = getSpaceCnt(newIndentation, tabSize);\n        const oldSpaceCnt = getSpaceCnt(oldIndentation, tabSize);\n        return newSpaceCnt - oldSpaceCnt;\n      }\n    }\n    return null;\n  }\n  /**\n   *\n   * @param model\n   * @param indentConverter\n   * @param tabSize\n   * @param line the line moving down\n   * @param futureAboveLineNumber the line which will be at the `line` position\n   * @param futureAboveLineText\n   */\n  matchEnterRuleMovingDown(model, indentConverter, tabSize, line, futureAboveLineNumber, futureAboveLineText) {\n    if (lastNonWhitespaceIndex(futureAboveLineText) \u003e= 0) {\n      const maxColumn = model.getLineMaxColumn(futureAboveLineNumber);\n      const enter = getEnterAction(this._autoIndent, model, new Range(futureAboveLineNumber, maxColumn, futureAboveLineNumber, maxColumn), this._languageConfigurationService);\n      return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n    } else {\n      let validPrecedingLine = line - 1;\n      while (validPrecedingLine \u003e= 1) {\n        const lineContent = model.getLineContent(validPrecedingLine);\n        const nonWhitespaceIdx = lastNonWhitespaceIndex(lineContent);\n        if (nonWhitespaceIdx \u003e= 0) {\n          break;\n        }\n        validPrecedingLine--;\n      }\n      if (validPrecedingLine \u003c 1 || line \u003e model.getLineCount()) {\n        return null;\n      }\n      const maxColumn = model.getLineMaxColumn(validPrecedingLine);\n      const enter = getEnterAction(this._autoIndent, model, new Range(validPrecedingLine, maxColumn, validPrecedingLine, maxColumn), this._languageConfigurationService);\n      return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n    }\n  }\n  matchEnterRule(model, indentConverter, tabSize, line, oneLineAbove, previousLineText) {\n    let validPrecedingLine = oneLineAbove;\n    while (validPrecedingLine \u003e= 1) {\n      let lineContent;\n      if (validPrecedingLine === oneLineAbove \u0026\u0026 previousLineText !== void 0) {\n        lineContent = previousLineText;\n      } else {\n        lineContent = model.getLineContent(validPrecedingLine);\n      }\n      const nonWhitespaceIdx = lastNonWhitespaceIndex(lineContent);\n      if (nonWhitespaceIdx \u003e= 0) {\n        break;\n      }\n      validPrecedingLine--;\n    }\n    if (validPrecedingLine \u003c 1 || line \u003e model.getLineCount()) {\n      return null;\n    }\n    const maxColumn = model.getLineMaxColumn(validPrecedingLine);\n    const enter = getEnterAction(this._autoIndent, model, new Range(validPrecedingLine, maxColumn, validPrecedingLine, maxColumn), this._languageConfigurationService);\n    return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n  }\n  trimStart(str) {\n    return str.replace(/^\\s+/, \"\");\n  }\n  shouldAutoIndent(model, selection) {\n    if (this._autoIndent \u003c 4) {\n      return false;\n    }\n    if (!model.tokenization.isCheapToTokenize(selection.startLineNumber)) {\n      return false;\n    }\n    const languageAtSelectionStart = model.getLanguageIdAtPosition(selection.startLineNumber, 1);\n    const languageAtSelectionEnd = model.getLanguageIdAtPosition(selection.endLineNumber, 1);\n    if (languageAtSelectionStart !== languageAtSelectionEnd) {\n      return false;\n    }\n    if (this._languageConfigurationService.getLanguageConfiguration(languageAtSelectionStart).indentRulesSupport === null) {\n      return false;\n    }\n    return true;\n  }\n  getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, offset) {\n    for (let i2 = s.startLineNumber; i2 \u003c= s.endLineNumber; i2++) {\n      const lineContent = model.getLineContent(i2);\n      const originalIndent = getLeadingWhitespace(lineContent);\n      const originalSpacesCnt = getSpaceCnt(originalIndent, tabSize);\n      const newSpacesCnt = originalSpacesCnt + offset;\n      const newIndent = generateIndent(newSpacesCnt, tabSize, insertSpaces);\n      if (newIndent !== originalIndent) {\n        builder.addEditOperation(new Range(i2, 1, i2, originalIndent.length + 1), newIndent);\n        if (i2 === s.endLineNumber \u0026\u0026 s.endColumn \u003c= originalIndent.length + 1 \u0026\u0026 newIndent === \"\") {\n          this._moveEndLineSelectionShrink = true;\n        }\n      }\n    }\n  }\n  computeCursorState(model, helper) {\n    let result = helper.getTrackedSelection(this._selectionId);\n    if (this._moveEndPositionDown) {\n      result = result.setEndPosition(result.endLineNumber + 1, 1);\n    }\n    if (this._moveEndLineSelectionShrink \u0026\u0026 result.startLineNumber \u003c result.endLineNumber) {\n      result = result.setEndPosition(result.endLineNumber, 2);\n    }\n    return result;\n  }\n};\nMoveLinesCommand = __decorate135([\n  __param129(3, ILanguageConfigurationService)\n], MoveLinesCommand);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/linesOperations/browser/sortLinesCommand.js\ninit_date();\ninit_range();\nvar SortLinesCommand = class {\n  static {\n    this._COLLATOR = safeIntl.Collator();\n  }\n  constructor(selection, descending) {\n    this.selection = selection;\n    this.descending = descending;\n    this.selectionId = null;\n  }\n  getEditOperations(model, builder) {\n    const op = sortLines(model, this.selection, this.descending);\n    if (op) {\n      builder.addEditOperation(op.range, op.text);\n    }\n    this.selectionId = builder.trackSelection(this.selection);\n  }\n  computeCursorState(model, helper) {\n    return helper.getTrackedSelection(this.selectionId);\n  }\n  static canRun(model, selection, descending) {\n    if (model === null) {\n      return false;\n    }\n    const data = getSortData(model, selection, descending);\n    if (!data) {\n      return false;\n    }\n    for (let i2 = 0, len = data.before.length; i2 \u003c len; i2++) {\n      if (data.before[i2] !== data.after[i2]) {\n        return true;\n      }\n    }\n    return false;\n  }\n};\nfunction getSortData(model, selection, descending) {\n  const startLineNumber = selection.startLineNumber;\n  let endLineNumber = selection.endLineNumber;\n  if (selection.endColumn === 1) {\n    endLineNumber--;\n  }\n  if (startLineNumber \u003e= endLineNumber) {\n    return null;\n  }\n  const linesToSort = [];\n  for (let lineNumber = startLineNumber; lineNumber \u003c= endLineNumber; lineNumber++) {\n    linesToSort.push(model.getLineContent(lineNumber));\n  }\n  let sorted = linesToSort.slice(0);\n  sorted.sort(SortLinesCommand._COLLATOR.value.compare);\n  if (descending === true) {\n    sorted = sorted.reverse();\n  }\n  return {\n    startLineNumber,\n    endLineNumber,\n    before: linesToSort,\n    after: sorted\n  };\n}\nfunction sortLines(model, selection, descending) {\n  const data = getSortData(model, selection, descending);\n  if (!data) {\n    return null;\n  }\n  return EditOperation.replace(new Range(data.startLineNumber, 1, data.endLineNumber, model.getLineMaxColumn(data.endLineNumber)), data.after.join(\"\\n\"));\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js\ninit_nls();\ninit_actions2();\ninit_languageConfigurationRegistry();\ninit_configuration();\nvar AbstractCopyLinesAction = class extends EditorAction {\n  constructor(down, opts) {\n    super(opts);\n    this.down = down;\n  }\n  run(_accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const selections = editor2.getSelections().map((selection, index) =\u003e ({ selection, index, ignore: false }));\n    selections.sort((a, b) =\u003e Range.compareRangesUsingStarts(a.selection, b.selection));\n    let prev = selections[0];\n    for (let i2 = 1; i2 \u003c selections.length; i2++) {\n      const curr = selections[i2];\n      if (prev.selection.endLineNumber === curr.selection.startLineNumber) {\n        if (prev.index \u003c curr.index) {\n          curr.ignore = true;\n        } else {\n          prev.ignore = true;\n          prev = curr;\n        }\n      }\n    }\n    const commands = [];\n    for (const selection of selections) {\n      commands.push(new CopyLinesCommand(selection.selection, this.down, selection.ignore));\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nvar CopyLinesUpAction = class extends AbstractCopyLinesAction {\n  constructor() {\n    super(false, {\n      id: \"editor.action.copyLinesUpAction\",\n      label: localize2(1236, \"Copy Line Up\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 512 | 1024 | 16,\n        linux: {\n          primary: 2048 | 512 | 1024 | 16\n          /* KeyCode.UpArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"2_line\",\n        title: localize(1231, \"\u0026\u0026Copy Line Up\"),\n        order: 1\n      }\n    });\n  }\n};\nvar CopyLinesDownAction = class extends AbstractCopyLinesAction {\n  constructor() {\n    super(true, {\n      id: \"editor.action.copyLinesDownAction\",\n      label: localize2(1237, \"Copy Line Down\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 512 | 1024 | 18,\n        linux: {\n          primary: 2048 | 512 | 1024 | 18\n          /* KeyCode.DownArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"2_line\",\n        title: localize(1232, \"Co\u0026\u0026py Line Down\"),\n        order: 2\n      }\n    });\n  }\n};\nvar DuplicateSelectionAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.duplicateSelection\",\n      label: localize2(1238, \"Duplicate Selection\"),\n      precondition: EditorContextKeys.writable,\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"2_line\",\n        title: localize(1233, \"\u0026\u0026Duplicate Selection\"),\n        order: 5\n      }\n    });\n  }\n  run(accessor, editor2, args) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const commands = [];\n    const selections = editor2.getSelections();\n    const model = editor2.getModel();\n    for (const selection of selections) {\n      if (selection.isEmpty()) {\n        commands.push(new CopyLinesCommand(selection, true));\n      } else {\n        const insertSelection = new Selection(selection.endLineNumber, selection.endColumn, selection.endLineNumber, selection.endColumn);\n        commands.push(new ReplaceCommandThatSelectsText(insertSelection, model.getValueInRange(selection)));\n      }\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nvar AbstractMoveLinesAction = class extends EditorAction {\n  constructor(down, opts) {\n    super(opts);\n    this.down = down;\n  }\n  run(accessor, editor2) {\n    const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n    const commands = [];\n    const selections = editor2.getSelections() || [];\n    const autoIndent = editor2.getOption(\n      16\n      /* EditorOption.autoIndent */\n    );\n    for (const selection of selections) {\n      commands.push(new MoveLinesCommand(selection, this.down, autoIndent, languageConfigurationService));\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nvar MoveLinesUpAction = class extends AbstractMoveLinesAction {\n  constructor() {\n    super(false, {\n      id: \"editor.action.moveLinesUpAction\",\n      label: localize2(1239, \"Move Line Up\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 512 | 16,\n        linux: {\n          primary: 512 | 16\n          /* KeyCode.UpArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"2_line\",\n        title: localize(1234, \"Mo\u0026\u0026ve Line Up\"),\n        order: 3\n      }\n    });\n  }\n};\nvar MoveLinesDownAction = class extends AbstractMoveLinesAction {\n  constructor() {\n    super(true, {\n      id: \"editor.action.moveLinesDownAction\",\n      label: localize2(1240, \"Move Line Down\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 512 | 18,\n        linux: {\n          primary: 512 | 18\n          /* KeyCode.DownArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"2_line\",\n        title: localize(1235, \"Move \u0026\u0026Line Down\"),\n        order: 4\n      }\n    });\n  }\n};\nvar AbstractSortLinesAction = class extends EditorAction {\n  constructor(descending, opts) {\n    super(opts);\n    this.descending = descending;\n  }\n  run(_accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const model = editor2.getModel();\n    let selections = editor2.getSelections();\n    if (selections.length === 1 \u0026\u0026 selections[0].isEmpty()) {\n      selections = [new Selection(1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount()))];\n    }\n    for (const selection of selections) {\n      if (!SortLinesCommand.canRun(editor2.getModel(), selection, this.descending)) {\n        return;\n      }\n    }\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      commands[i2] = new SortLinesCommand(selections[i2], this.descending);\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nvar SortLinesAscendingAction = class extends AbstractSortLinesAction {\n  constructor() {\n    super(false, {\n      id: \"editor.action.sortLinesAscending\",\n      label: localize2(1241, \"Sort Lines Ascending\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n};\nvar SortLinesDescendingAction = class extends AbstractSortLinesAction {\n  constructor() {\n    super(true, {\n      id: \"editor.action.sortLinesDescending\",\n      label: localize2(1242, \"Sort Lines Descending\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n};\nvar DeleteDuplicateLinesAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.removeDuplicateLines\",\n      label: localize2(1243, \"Delete Duplicate Lines\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  run(_accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const model = editor2.getModel();\n    if (model.getLineCount() === 1 \u0026\u0026 model.getLineMaxColumn(1) === 1) {\n      return;\n    }\n    const edits = [];\n    const endCursorState = [];\n    let linesDeleted = 0;\n    let updateSelection = true;\n    let selections = editor2.getSelections();\n    if (selections.length === 1 \u0026\u0026 selections[0].isEmpty()) {\n      selections = [new Selection(1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount()))];\n      updateSelection = false;\n    }\n    for (const selection of selections) {\n      const uniqueLines = /* @__PURE__ */ new Set();\n      const lines = [];\n      for (let i2 = selection.startLineNumber; i2 \u003c= selection.endLineNumber; i2++) {\n        const line = model.getLineContent(i2);\n        if (uniqueLines.has(line)) {\n          continue;\n        }\n        lines.push(line);\n        uniqueLines.add(line);\n      }\n      const selectionToReplace = new Selection(selection.startLineNumber, 1, selection.endLineNumber, model.getLineMaxColumn(selection.endLineNumber));\n      const adjustedSelectionStart = selection.startLineNumber - linesDeleted;\n      const finalSelection = new Selection(adjustedSelectionStart, 1, adjustedSelectionStart + lines.length - 1, lines[lines.length - 1].length);\n      edits.push(EditOperation.replace(selectionToReplace, lines.join(\"\\n\")));\n      endCursorState.push(finalSelection);\n      linesDeleted += selection.endLineNumber - selection.startLineNumber + 1 - lines.length;\n    }\n    editor2.pushUndoStop();\n    editor2.executeEdits(this.id, edits, updateSelection ? endCursorState : void 0);\n    editor2.pushUndoStop();\n  }\n};\nvar ReverseLinesAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.reverseLines\",\n      label: localize2(1244, \"Reverse lines\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  run(_accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const model = editor2.getModel();\n    const originalSelections = editor2.getSelections();\n    let selections = originalSelections;\n    if (selections.length === 1 \u0026\u0026 selections[0].isEmpty()) {\n      selections = [new Selection(1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount()))];\n    }\n    const edits = [];\n    const resultingSelections = [];\n    for (let i2 = 0; i2 \u003c selections.length; i2++) {\n      const selection = selections[i2];\n      const originalSelection = originalSelections[i2];\n      let endLineNumber = selection.endLineNumber;\n      if (selection.startLineNumber \u003c selection.endLineNumber \u0026\u0026 selection.endColumn === 1) {\n        endLineNumber--;\n      }\n      let range2 = new Range(selection.startLineNumber, 1, endLineNumber, model.getLineMaxColumn(endLineNumber));\n      if (endLineNumber === model.getLineCount() \u0026\u0026 model.getLineContent(range2.endLineNumber) === \"\") {\n        range2 = range2.setEndPosition(range2.endLineNumber - 1, model.getLineMaxColumn(range2.endLineNumber - 1));\n      }\n      const lines = [];\n      for (let i3 = range2.endLineNumber; i3 \u003e= range2.startLineNumber; i3--) {\n        lines.push(model.getLineContent(i3));\n      }\n      const edit2 = EditOperation.replace(range2, lines.join(\"\\n\"));\n      edits.push(edit2);\n      const updateLineNumber = function(lineNumber) {\n        return lineNumber \u003c= range2.endLineNumber ? range2.endLineNumber - lineNumber + range2.startLineNumber : lineNumber;\n      };\n      const updateSelection = function(sel) {\n        if (sel.isEmpty()) {\n          return new Selection(updateLineNumber(sel.positionLineNumber), sel.positionColumn, updateLineNumber(sel.positionLineNumber), sel.positionColumn);\n        } else {\n          const newSelectionStart = updateLineNumber(sel.selectionStartLineNumber);\n          const newPosition = updateLineNumber(sel.positionLineNumber);\n          const newSelectionStartColumn = sel.selectionStartColumn;\n          const newPositionColumn = sel.positionColumn;\n          return new Selection(newSelectionStart, newSelectionStartColumn, newPosition, newPositionColumn);\n        }\n      };\n      resultingSelections.push(updateSelection(originalSelection));\n    }\n    editor2.pushUndoStop();\n    editor2.executeEdits(this.id, edits, resultingSelections);\n    editor2.pushUndoStop();\n  }\n};\nvar TrimTrailingWhitespaceAction = class _TrimTrailingWhitespaceAction extends EditorAction {\n  static {\n    this.ID = \"editor.action.trimTrailingWhitespace\";\n  }\n  constructor() {\n    super({\n      id: _TrimTrailingWhitespaceAction.ID,\n      label: localize2(1245, \"Trim Trailing Whitespace\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 54\n          /* KeyCode.KeyX */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2, args) {\n    let cursors = [];\n    if (args.reason === \"auto-save\") {\n      cursors = (editor2.getSelections() || []).map((s) =\u003e new Position(s.positionLineNumber, s.positionColumn));\n    }\n    const selection = editor2.getSelection();\n    if (selection === null) {\n      return;\n    }\n    const config = _accessor.get(IConfigurationService);\n    const model = editor2.getModel();\n    const trimInRegexAndStrings = config.getValue(\"files.trimTrailingWhitespaceInRegexAndStrings\", { overrideIdentifier: model?.getLanguageId(), resource: model?.uri });\n    const command = new TrimTrailingWhitespaceCommand(selection, cursors, trimInRegexAndStrings);\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, [command]);\n    editor2.pushUndoStop();\n  }\n};\nvar DeleteLinesAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.deleteLines\",\n      label: localize2(1246, \"Delete Line\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 | 1024 | 41,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const ops = this._getLinesToRemove(editor2);\n    const model = editor2.getModel();\n    if (model.getLineCount() === 1 \u0026\u0026 model.getLineMaxColumn(1) === 1) {\n      return;\n    }\n    let linesDeleted = 0;\n    const edits = [];\n    const cursorState = [];\n    for (let i2 = 0, len = ops.length; i2 \u003c len; i2++) {\n      const op = ops[i2];\n      let startLineNumber = op.startLineNumber;\n      let endLineNumber = op.endLineNumber;\n      let startColumn = 1;\n      let endColumn = model.getLineMaxColumn(endLineNumber);\n      if (endLineNumber \u003c model.getLineCount()) {\n        endLineNumber += 1;\n        endColumn = 1;\n      } else if (startLineNumber \u003e 1) {\n        startLineNumber -= 1;\n        startColumn = model.getLineMaxColumn(startLineNumber);\n      }\n      edits.push(EditOperation.replace(new Selection(startLineNumber, startColumn, endLineNumber, endColumn), \"\"));\n      cursorState.push(new Selection(startLineNumber - linesDeleted, op.positionColumn, startLineNumber - linesDeleted, op.positionColumn));\n      linesDeleted += op.endLineNumber - op.startLineNumber + 1;\n    }\n    editor2.pushUndoStop();\n    editor2.executeEdits(this.id, edits, cursorState);\n    editor2.pushUndoStop();\n  }\n  _getLinesToRemove(editor2) {\n    const operations = editor2.getSelections().map((s) =\u003e {\n      let endLineNumber = s.endLineNumber;\n      if (s.startLineNumber \u003c s.endLineNumber \u0026\u0026 s.endColumn === 1) {\n        endLineNumber -= 1;\n      }\n      return {\n        startLineNumber: s.startLineNumber,\n        selectionStartColumn: s.selectionStartColumn,\n        endLineNumber,\n        positionColumn: s.positionColumn\n      };\n    });\n    operations.sort((a, b) =\u003e {\n      if (a.startLineNumber === b.startLineNumber) {\n        return a.endLineNumber - b.endLineNumber;\n      }\n      return a.startLineNumber - b.startLineNumber;\n    });\n    const mergedOperations = [];\n    let previousOperation = operations[0];\n    for (let i2 = 1; i2 \u003c operations.length; i2++) {\n      if (previousOperation.endLineNumber + 1 \u003e= operations[i2].startLineNumber) {\n        previousOperation.endLineNumber = operations[i2].endLineNumber;\n      } else {\n        mergedOperations.push(previousOperation);\n        previousOperation = operations[i2];\n      }\n    }\n    mergedOperations.push(previousOperation);\n    return mergedOperations;\n  }\n};\nvar IndentLinesAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.indentLines\",\n      label: localize2(1247, \"Indent Line\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 94,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    const viewModel = editor2._getViewModel();\n    if (!viewModel) {\n      return;\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, TypeOperations.indent(viewModel.cursorConfig, editor2.getModel(), editor2.getSelections()));\n    editor2.pushUndoStop();\n  }\n};\nvar OutdentLinesAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.outdentLines\",\n      label: localize2(1248, \"Outdent Line\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 92,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    CoreEditingCommands.Outdent.runEditorCommand(_accessor, editor2, null);\n  }\n};\nvar InsertLineBeforeAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.insertLineBefore\",\n      label: localize2(1249, \"Insert Line Above\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 1024 | 3,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    const viewModel = editor2._getViewModel();\n    if (!viewModel) {\n      return;\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, EnterOperation.lineInsertBefore(viewModel.cursorConfig, editor2.getModel(), editor2.getSelections()));\n  }\n};\nvar InsertLineAfterAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.insertLineAfter\",\n      label: localize2(1250, \"Insert Line Below\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 3,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    const viewModel = editor2._getViewModel();\n    if (!viewModel) {\n      return;\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, EnterOperation.lineInsertAfter(viewModel.cursorConfig, editor2.getModel(), editor2.getSelections()));\n  }\n};\nvar AbstractDeleteAllToBoundaryAction = class extends EditorAction {\n  run(_accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const primaryCursor = editor2.getSelection();\n    const rangesToDelete = this._getRangesToDelete(editor2);\n    const effectiveRanges = [];\n    for (let i2 = 0, count = rangesToDelete.length - 1; i2 \u003c count; i2++) {\n      const range2 = rangesToDelete[i2];\n      const nextRange = rangesToDelete[i2 + 1];\n      if (Range.intersectRanges(range2, nextRange) === null) {\n        effectiveRanges.push(range2);\n      } else {\n        rangesToDelete[i2 + 1] = Range.plusRange(range2, nextRange);\n      }\n    }\n    effectiveRanges.push(rangesToDelete[rangesToDelete.length - 1]);\n    const endCursorState = this._getEndCursorState(primaryCursor, effectiveRanges);\n    const edits = effectiveRanges.map((range2) =\u003e {\n      return EditOperation.replace(range2, \"\");\n    });\n    editor2.pushUndoStop();\n    editor2.executeEdits(this.id, edits, endCursorState);\n    editor2.pushUndoStop();\n  }\n};\nvar DeleteAllLeftAction = class extends AbstractDeleteAllToBoundaryAction {\n  constructor() {\n    super({\n      id: \"deleteAllLeft\",\n      label: localize2(1251, \"Delete All Left\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: {\n          primary: 2048 | 1\n          /* KeyCode.Backspace */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  _getEndCursorState(primaryCursor, rangesToDelete) {\n    let endPrimaryCursor = null;\n    const endCursorState = [];\n    let deletedLines = 0;\n    rangesToDelete.forEach((range2) =\u003e {\n      let endCursor;\n      if (range2.endColumn === 1 \u0026\u0026 deletedLines \u003e 0) {\n        const newStartLine = range2.startLineNumber - deletedLines;\n        endCursor = new Selection(newStartLine, range2.startColumn, newStartLine, range2.startColumn);\n      } else {\n        endCursor = new Selection(range2.startLineNumber, range2.startColumn, range2.startLineNumber, range2.startColumn);\n      }\n      deletedLines += range2.endLineNumber - range2.startLineNumber;\n      if (range2.intersectRanges(primaryCursor)) {\n        endPrimaryCursor = endCursor;\n      } else {\n        endCursorState.push(endCursor);\n      }\n    });\n    if (endPrimaryCursor) {\n      endCursorState.unshift(endPrimaryCursor);\n    }\n    return endCursorState;\n  }\n  _getRangesToDelete(editor2) {\n    const selections = editor2.getSelections();\n    if (selections === null) {\n      return [];\n    }\n    let rangesToDelete = selections;\n    const model = editor2.getModel();\n    if (model === null) {\n      return [];\n    }\n    rangesToDelete.sort(Range.compareRangesUsingStarts);\n    rangesToDelete = rangesToDelete.map((selection) =\u003e {\n      if (selection.isEmpty()) {\n        if (selection.startColumn === 1) {\n          const deleteFromLine = Math.max(1, selection.startLineNumber - 1);\n          const deleteFromColumn = selection.startLineNumber === 1 ? 1 : model.getLineLength(deleteFromLine) + 1;\n          return new Range(deleteFromLine, deleteFromColumn, selection.startLineNumber, 1);\n        } else {\n          return new Range(selection.startLineNumber, 1, selection.startLineNumber, selection.startColumn);\n        }\n      } else {\n        return new Range(selection.startLineNumber, 1, selection.endLineNumber, selection.endColumn);\n      }\n    });\n    return rangesToDelete;\n  }\n};\nvar DeleteAllRightAction = class extends AbstractDeleteAllToBoundaryAction {\n  constructor() {\n    super({\n      id: \"deleteAllRight\",\n      label: localize2(1252, \"Delete All Right\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: { primary: 256 | 41, secondary: [\n          2048 | 20\n          /* KeyCode.Delete */\n        ] },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  _getEndCursorState(primaryCursor, rangesToDelete) {\n    let endPrimaryCursor = null;\n    const endCursorState = [];\n    for (let i2 = 0, len = rangesToDelete.length, offset = 0; i2 \u003c len; i2++) {\n      const range2 = rangesToDelete[i2];\n      const endCursor = new Selection(range2.startLineNumber - offset, range2.startColumn, range2.startLineNumber - offset, range2.startColumn);\n      if (range2.intersectRanges(primaryCursor)) {\n        endPrimaryCursor = endCursor;\n      } else {\n        endCursorState.push(endCursor);\n      }\n    }\n    if (endPrimaryCursor) {\n      endCursorState.unshift(endPrimaryCursor);\n    }\n    return endCursorState;\n  }\n  _getRangesToDelete(editor2) {\n    const model = editor2.getModel();\n    if (model === null) {\n      return [];\n    }\n    const selections = editor2.getSelections();\n    if (selections === null) {\n      return [];\n    }\n    const rangesToDelete = selections.map((sel) =\u003e {\n      if (sel.isEmpty()) {\n        const maxColumn = model.getLineMaxColumn(sel.startLineNumber);\n        if (sel.startColumn === maxColumn) {\n          return new Range(sel.startLineNumber, sel.startColumn, sel.startLineNumber + 1, 1);\n        } else {\n          return new Range(sel.startLineNumber, sel.startColumn, sel.startLineNumber, maxColumn);\n        }\n      }\n      return sel;\n    });\n    rangesToDelete.sort(Range.compareRangesUsingStarts);\n    return rangesToDelete;\n  }\n};\nvar JoinLinesAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.joinLines\",\n      label: localize2(1253, \"Join Lines\"),\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 0,\n        mac: {\n          primary: 256 | 40\n          /* KeyCode.KeyJ */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(_accessor, editor2) {\n    const selections = editor2.getSelections();\n    if (selections === null) {\n      return;\n    }\n    let primaryCursor = editor2.getSelection();\n    if (primaryCursor === null) {\n      return;\n    }\n    selections.sort(Range.compareRangesUsingStarts);\n    const reducedSelections = [];\n    const lastSelection = selections.reduce((previousValue, currentValue) =\u003e {\n      if (previousValue.isEmpty()) {\n        if (previousValue.endLineNumber === currentValue.startLineNumber) {\n          if (primaryCursor.equalsSelection(previousValue)) {\n            primaryCursor = currentValue;\n          }\n          return currentValue;\n        }\n        if (currentValue.startLineNumber \u003e previousValue.endLineNumber + 1) {\n          reducedSelections.push(previousValue);\n          return currentValue;\n        } else {\n          return new Selection(previousValue.startLineNumber, previousValue.startColumn, currentValue.endLineNumber, currentValue.endColumn);\n        }\n      } else {\n        if (currentValue.startLineNumber \u003e previousValue.endLineNumber) {\n          reducedSelections.push(previousValue);\n          return currentValue;\n        } else {\n          return new Selection(previousValue.startLineNumber, previousValue.startColumn, currentValue.endLineNumber, currentValue.endColumn);\n        }\n      }\n    });\n    reducedSelections.push(lastSelection);\n    const model = editor2.getModel();\n    if (model === null) {\n      return;\n    }\n    const edits = [];\n    const endCursorState = [];\n    let endPrimaryCursor = primaryCursor;\n    let lineOffset = 0;\n    for (let i2 = 0, len = reducedSelections.length; i2 \u003c len; i2++) {\n      const selection = reducedSelections[i2];\n      const startLineNumber = selection.startLineNumber;\n      const startColumn = 1;\n      let columnDeltaOffset = 0;\n      let endLineNumber, endColumn;\n      const selectionEndPositionOffset = model.getLineLength(selection.endLineNumber) - selection.endColumn;\n      if (selection.isEmpty() || selection.startLineNumber === selection.endLineNumber) {\n        const position = selection.getStartPosition();\n        if (position.lineNumber \u003c model.getLineCount()) {\n          endLineNumber = startLineNumber + 1;\n          endColumn = model.getLineMaxColumn(endLineNumber);\n        } else {\n          endLineNumber = position.lineNumber;\n          endColumn = model.getLineMaxColumn(position.lineNumber);\n        }\n      } else {\n        endLineNumber = selection.endLineNumber;\n        endColumn = model.getLineMaxColumn(endLineNumber);\n      }\n      let trimmedLinesContent = model.getLineContent(startLineNumber);\n      for (let i3 = startLineNumber + 1; i3 \u003c= endLineNumber; i3++) {\n        const lineText = model.getLineContent(i3);\n        const firstNonWhitespaceIdx = model.getLineFirstNonWhitespaceColumn(i3);\n        if (firstNonWhitespaceIdx \u003e= 1) {\n          let insertSpace = true;\n          if (trimmedLinesContent === \"\") {\n            insertSpace = false;\n          }\n          if (insertSpace \u0026\u0026 (trimmedLinesContent.charAt(trimmedLinesContent.length - 1) === \" \" || trimmedLinesContent.charAt(trimmedLinesContent.length - 1) === \"\t\")) {\n            insertSpace = false;\n            trimmedLinesContent = trimmedLinesContent.replace(/[\\s\\uFEFF\\xA0]+$/g, \" \");\n          }\n          const lineTextWithoutIndent = lineText.substr(firstNonWhitespaceIdx - 1);\n          trimmedLinesContent += (insertSpace ? \" \" : \"\") + lineTextWithoutIndent;\n          if (insertSpace) {\n            columnDeltaOffset = lineTextWithoutIndent.length + 1;\n          } else {\n            columnDeltaOffset = lineTextWithoutIndent.length;\n          }\n        } else {\n          columnDeltaOffset = 0;\n        }\n      }\n      const deleteSelection = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n      if (!deleteSelection.isEmpty()) {\n        let resultSelection;\n        if (selection.isEmpty()) {\n          edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n          resultSelection = new Selection(deleteSelection.startLineNumber - lineOffset, trimmedLinesContent.length - columnDeltaOffset + 1, startLineNumber - lineOffset, trimmedLinesContent.length - columnDeltaOffset + 1);\n        } else {\n          if (selection.startLineNumber === selection.endLineNumber) {\n            edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n            resultSelection = new Selection(selection.startLineNumber - lineOffset, selection.startColumn, selection.endLineNumber - lineOffset, selection.endColumn);\n          } else {\n            edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n            resultSelection = new Selection(selection.startLineNumber - lineOffset, selection.startColumn, selection.startLineNumber - lineOffset, trimmedLinesContent.length - selectionEndPositionOffset);\n          }\n        }\n        if (Range.intersectRanges(deleteSelection, primaryCursor) !== null) {\n          endPrimaryCursor = resultSelection;\n        } else {\n          endCursorState.push(resultSelection);\n        }\n      }\n      lineOffset += deleteSelection.endLineNumber - deleteSelection.startLineNumber;\n    }\n    endCursorState.unshift(endPrimaryCursor);\n    editor2.pushUndoStop();\n    editor2.executeEdits(this.id, edits, endCursorState);\n    editor2.pushUndoStop();\n  }\n};\nvar TransposeAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.transpose\",\n      label: localize2(1254, \"Transpose Characters around the Cursor\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  run(_accessor, editor2) {\n    const selections = editor2.getSelections();\n    if (selections === null) {\n      return;\n    }\n    const model = editor2.getModel();\n    if (model === null) {\n      return;\n    }\n    const commands = [];\n    for (let i2 = 0, len = selections.length; i2 \u003c len; i2++) {\n      const selection = selections[i2];\n      if (!selection.isEmpty()) {\n        continue;\n      }\n      const cursor = selection.getStartPosition();\n      const maxColumn = model.getLineMaxColumn(cursor.lineNumber);\n      if (cursor.column \u003e= maxColumn) {\n        if (cursor.lineNumber === model.getLineCount()) {\n          continue;\n        }\n        const deleteSelection = new Range(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber + 1, 1);\n        const chars = model.getValueInRange(deleteSelection).split(\"\").reverse().join(\"\");\n        commands.push(new ReplaceCommand(new Selection(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber + 1, 1), chars));\n      } else {\n        const deleteSelection = new Range(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber, cursor.column + 1);\n        const chars = model.getValueInRange(deleteSelection).split(\"\").reverse().join(\"\");\n        commands.push(new ReplaceCommandThatPreservesSelection(deleteSelection, chars, new Selection(cursor.lineNumber, cursor.column + 1, cursor.lineNumber, cursor.column + 1)));\n      }\n    }\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nvar AbstractCaseAction = class extends EditorAction {\n  run(_accessor, editor2) {\n    const selections = editor2.getSelections();\n    if (selections === null) {\n      return;\n    }\n    const model = editor2.getModel();\n    if (model === null) {\n      return;\n    }\n    const wordSeparators2 = editor2.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    );\n    const textEdits = [];\n    for (const selection of selections) {\n      if (selection.isEmpty()) {\n        const cursor = selection.getStartPosition();\n        const word = editor2.getConfiguredWordAtPosition(cursor);\n        if (!word) {\n          continue;\n        }\n        const wordRange = new Range(cursor.lineNumber, word.startColumn, cursor.lineNumber, word.endColumn);\n        const text2 = model.getValueInRange(wordRange);\n        textEdits.push(EditOperation.replace(wordRange, this._modifyText(text2, wordSeparators2)));\n      } else {\n        const text2 = model.getValueInRange(selection);\n        textEdits.push(EditOperation.replace(selection, this._modifyText(text2, wordSeparators2)));\n      }\n    }\n    editor2.pushUndoStop();\n    editor2.executeEdits(this.id, textEdits);\n    editor2.pushUndoStop();\n  }\n};\nvar UpperCaseAction = class extends AbstractCaseAction {\n  constructor() {\n    super({\n      id: \"editor.action.transformToUppercase\",\n      label: localize2(1255, \"Transform to Uppercase\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  _modifyText(text2, wordSeparators2) {\n    return text2.toLocaleUpperCase();\n  }\n};\nvar LowerCaseAction = class extends AbstractCaseAction {\n  constructor() {\n    super({\n      id: \"editor.action.transformToLowercase\",\n      label: localize2(1256, \"Transform to Lowercase\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  _modifyText(text2, wordSeparators2) {\n    return text2.toLocaleLowerCase();\n  }\n};\nvar BackwardsCompatibleRegExp = class {\n  constructor(_pattern, _flags) {\n    this._pattern = _pattern;\n    this._flags = _flags;\n    this._actual = null;\n    this._evaluated = false;\n  }\n  get() {\n    if (!this._evaluated) {\n      this._evaluated = true;\n      try {\n        this._actual = new RegExp(this._pattern, this._flags);\n      } catch (err) {\n      }\n    }\n    return this._actual;\n  }\n  isSupported() {\n    return this.get() !== null;\n  }\n};\nvar TitleCaseAction = class _TitleCaseAction extends AbstractCaseAction {\n  static {\n    this.titleBoundary = new BackwardsCompatibleRegExp(\"(^|[^\\\\p{L}\\\\p{N}']|((^|\\\\P{L})'))\\\\p{L}\", \"gmu\");\n  }\n  constructor() {\n    super({\n      id: \"editor.action.transformToTitlecase\",\n      label: localize2(1257, \"Transform to Title Case\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  _modifyText(text2, wordSeparators2) {\n    const titleBoundary = _TitleCaseAction.titleBoundary.get();\n    if (!titleBoundary) {\n      return text2;\n    }\n    return text2.toLocaleLowerCase().replace(titleBoundary, (b) =\u003e b.toLocaleUpperCase());\n  }\n};\nvar SnakeCaseAction = class _SnakeCaseAction extends AbstractCaseAction {\n  static {\n    this.caseBoundary = new BackwardsCompatibleRegExp(\"(\\\\p{Ll})(\\\\p{Lu})\", \"gmu\");\n  }\n  static {\n    this.singleLetters = new BackwardsCompatibleRegExp(\"(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu})(\\\\p{Ll})\", \"gmu\");\n  }\n  constructor() {\n    super({\n      id: \"editor.action.transformToSnakecase\",\n      label: localize2(1258, \"Transform to Snake Case\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  _modifyText(text2, wordSeparators2) {\n    const caseBoundary = _SnakeCaseAction.caseBoundary.get();\n    const singleLetters = _SnakeCaseAction.singleLetters.get();\n    if (!caseBoundary || !singleLetters) {\n      return text2;\n    }\n    return text2.replace(caseBoundary, \"$1_$2\").replace(singleLetters, \"$1_$2$3\").toLocaleLowerCase();\n  }\n};\nvar CamelCaseAction = class _CamelCaseAction extends AbstractCaseAction {\n  static {\n    this.wordBoundary = new BackwardsCompatibleRegExp(\"[_\\\\s-]\", \"gm\");\n  }\n  static {\n    this.validWordStart = new BackwardsCompatibleRegExp(\"^(\\\\p{Lu}[^\\\\p{Lu}])\", \"gmu\");\n  }\n  constructor() {\n    super({\n      id: \"editor.action.transformToCamelcase\",\n      label: localize2(1259, \"Transform to Camel Case\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  _modifyText(text2, wordSeparators2) {\n    const wordBoundary = _CamelCaseAction.wordBoundary.get();\n    const validWordStart = _CamelCaseAction.validWordStart.get();\n    if (!wordBoundary || !validWordStart) {\n      return text2;\n    }\n    const words = text2.split(wordBoundary);\n    const firstWord = words.shift()?.replace(validWordStart, (start) =\u003e start.toLocaleLowerCase());\n    return firstWord + words.map((word) =\u003e word.substring(0, 1).toLocaleUpperCase() + word.substring(1)).join(\"\");\n  }\n};\nvar PascalCaseAction = class _PascalCaseAction extends AbstractCaseAction {\n  static {\n    this.wordBoundary = new BackwardsCompatibleRegExp(\"[_\\\\s-]\", \"gm\");\n  }\n  static {\n    this.wordBoundaryToMaintain = new BackwardsCompatibleRegExp(\"(?\u003c=\\\\.)\", \"gm\");\n  }\n  constructor() {\n    super({\n      id: \"editor.action.transformToPascalcase\",\n      label: localize2(1260, \"Transform to Pascal Case\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  _modifyText(text2, wordSeparators2) {\n    const wordBoundary = _PascalCaseAction.wordBoundary.get();\n    const wordBoundaryToMaintain = _PascalCaseAction.wordBoundaryToMaintain.get();\n    if (!wordBoundary || !wordBoundaryToMaintain) {\n      return text2;\n    }\n    const wordsWithMaintainBoundaries = text2.split(wordBoundaryToMaintain);\n    const words = wordsWithMaintainBoundaries.map((word) =\u003e word.split(wordBoundary)).flat();\n    return words.map((word) =\u003e word.substring(0, 1).toLocaleUpperCase() + word.substring(1)).join(\"\");\n  }\n};\nvar KebabCaseAction = class _KebabCaseAction extends AbstractCaseAction {\n  static isSupported() {\n    const areAllRegexpsSupported = [\n      this.caseBoundary,\n      this.singleLetters,\n      this.underscoreBoundary\n    ].every((regexp) =\u003e regexp.isSupported());\n    return areAllRegexpsSupported;\n  }\n  static {\n    this.caseBoundary = new BackwardsCompatibleRegExp(\"(\\\\p{Ll})(\\\\p{Lu})\", \"gmu\");\n  }\n  static {\n    this.singleLetters = new BackwardsCompatibleRegExp(\"(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu}\\\\p{Ll})\", \"gmu\");\n  }\n  static {\n    this.underscoreBoundary = new BackwardsCompatibleRegExp(\"(\\\\S)(_)(\\\\S)\", \"gm\");\n  }\n  constructor() {\n    super({\n      id: \"editor.action.transformToKebabcase\",\n      label: localize2(1261, \"Transform to Kebab Case\"),\n      precondition: EditorContextKeys.writable\n    });\n  }\n  _modifyText(text2, _) {\n    const caseBoundary = _KebabCaseAction.caseBoundary.get();\n    const singleLetters = _KebabCaseAction.singleLetters.get();\n    const underscoreBoundary = _KebabCaseAction.underscoreBoundary.get();\n    if (!caseBoundary || !singleLetters || !underscoreBoundary) {\n      return text2;\n    }\n    return text2.replace(underscoreBoundary, \"$1-$3\").replace(caseBoundary, \"$1-$2\").replace(singleLetters, \"$1-$2\").toLocaleLowerCase();\n  }\n};\nregisterEditorAction(CopyLinesUpAction);\nregisterEditorAction(CopyLinesDownAction);\nregisterEditorAction(DuplicateSelectionAction);\nregisterEditorAction(MoveLinesUpAction);\nregisterEditorAction(MoveLinesDownAction);\nregisterEditorAction(SortLinesAscendingAction);\nregisterEditorAction(SortLinesDescendingAction);\nregisterEditorAction(DeleteDuplicateLinesAction);\nregisterEditorAction(TrimTrailingWhitespaceAction);\nregisterEditorAction(DeleteLinesAction);\nregisterEditorAction(IndentLinesAction);\nregisterEditorAction(OutdentLinesAction);\nregisterEditorAction(InsertLineBeforeAction);\nregisterEditorAction(InsertLineAfterAction);\nregisterEditorAction(DeleteAllLeftAction);\nregisterEditorAction(DeleteAllRightAction);\nregisterEditorAction(JoinLinesAction);\nregisterEditorAction(TransposeAction);\nregisterEditorAction(UpperCaseAction);\nregisterEditorAction(LowerCaseAction);\nregisterEditorAction(ReverseLinesAction);\nif (SnakeCaseAction.caseBoundary.isSupported() \u0026\u0026 SnakeCaseAction.singleLetters.isSupported()) {\n  registerEditorAction(SnakeCaseAction);\n}\nif (CamelCaseAction.wordBoundary.isSupported()) {\n  registerEditorAction(CamelCaseAction);\n}\nif (PascalCaseAction.wordBoundary.isSupported()) {\n  registerEditorAction(PascalCaseAction);\n}\nif (TitleCaseAction.titleBoundary.isSupported()) {\n  registerEditorAction(TitleCaseAction);\n}\nif (KebabCaseAction.isSupported()) {\n  registerEditorAction(KebabCaseAction);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js\ninit_arrays();\ninit_async();\ninit_cancellation();\ninit_color();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_strings();\ninit_uri();\ninit_editorExtensions();\ninit_codeEditorService();\ninit_position();\ninit_range();\ninit_editorContextKeys();\ninit_textModel();\ninit_languageConfigurationRegistry();\ninit_nls();\ninit_contextkey();\ninit_languageFeatures();\ninit_colorRegistry();\ninit_languageFeatureDebounce();\ninit_stopwatch();\nvar __decorate136 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param130 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar LinkedEditingContribution_1;\nvar CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE = new RawContextKey(\"LinkedEditingInputVisible\", false);\nvar DECORATION_CLASS_NAME2 = \"linked-editing-decoration\";\nvar LinkedEditingContribution = class LinkedEditingContribution2 extends Disposable {\n  static {\n    LinkedEditingContribution_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.linkedEditing\";\n  }\n  static {\n    this.DECORATION = ModelDecorationOptions.register({\n      description: \"linked-editing\",\n      stickiness: 0,\n      className: DECORATION_CLASS_NAME2\n    });\n  }\n  static get(editor2) {\n    return editor2.getContribution(LinkedEditingContribution_1.ID);\n  }\n  constructor(editor2, contextKeyService, languageFeaturesService, languageConfigurationService, languageFeatureDebounceService) {\n    super();\n    this.languageConfigurationService = languageConfigurationService;\n    this._syncRangesToken = 0;\n    this._localToDispose = this._register(new DisposableStore());\n    this._editor = editor2;\n    this._providers = languageFeaturesService.linkedEditingRangeProvider;\n    this._enabled = false;\n    this._visibleContextKey = CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(contextKeyService);\n    this._debounceInformation = languageFeatureDebounceService.for(this._providers, \"Linked Editing\", { max: 200 });\n    this._currentDecorations = this._editor.createDecorationsCollection();\n    this._languageWordPattern = null;\n    this._currentWordPattern = null;\n    this._ignoreChangeEvent = false;\n    this._localToDispose = this._register(new DisposableStore());\n    this._rangeUpdateTriggerPromise = null;\n    this._rangeSyncTriggerPromise = null;\n    this._currentRequestCts = null;\n    this._currentRequestPosition = null;\n    this._currentRequestModelVersion = null;\n    this._register(this._editor.onDidChangeModel(() =\u003e this.reinitialize(true)));\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        78\n        /* EditorOption.linkedEditing */\n      ) || e.hasChanged(\n        105\n        /* EditorOption.renameOnType */\n      )) {\n        this.reinitialize(false);\n      }\n    }));\n    this._register(this._providers.onDidChange(() =\u003e this.reinitialize(false)));\n    this._register(this._editor.onDidChangeModelLanguage(() =\u003e this.reinitialize(true)));\n    this.reinitialize(true);\n  }\n  reinitialize(forceRefresh) {\n    const model = this._editor.getModel();\n    const isEnabled = model !== null \u0026\u0026 (this._editor.getOption(\n      78\n      /* EditorOption.linkedEditing */\n    ) || this._editor.getOption(\n      105\n      /* EditorOption.renameOnType */\n    )) \u0026\u0026 this._providers.has(model);\n    if (isEnabled === this._enabled \u0026\u0026 !forceRefresh) {\n      return;\n    }\n    this._enabled = isEnabled;\n    this.clearRanges();\n    this._localToDispose.clear();\n    if (!isEnabled || model === null) {\n      return;\n    }\n    this._localToDispose.add(Event.runAndSubscribe(model.onDidChangeLanguageConfiguration, () =\u003e {\n      this._languageWordPattern = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n    }));\n    const rangeUpdateScheduler = new Delayer(this._debounceInformation.get(model));\n    const triggerRangeUpdate = () =\u003e {\n      this._rangeUpdateTriggerPromise = rangeUpdateScheduler.trigger(() =\u003e this.updateRanges(), this._debounceDuration ?? this._debounceInformation.get(model));\n    };\n    const rangeSyncScheduler = new Delayer(0);\n    const triggerRangeSync = (token) =\u003e {\n      this._rangeSyncTriggerPromise = rangeSyncScheduler.trigger(() =\u003e this._syncRanges(token));\n    };\n    this._localToDispose.add(this._editor.onDidChangeCursorPosition(() =\u003e {\n      triggerRangeUpdate();\n    }));\n    this._localToDispose.add(this._editor.onDidChangeModelContent((e) =\u003e {\n      if (!this._ignoreChangeEvent) {\n        if (this._currentDecorations.length \u003e 0) {\n          const referenceRange = this._currentDecorations.getRange(0);\n          if (referenceRange \u0026\u0026 e.changes.every((c) =\u003e referenceRange.intersectRanges(c.range))) {\n            triggerRangeSync(this._syncRangesToken);\n            return;\n          }\n        }\n      }\n      triggerRangeUpdate();\n    }));\n    this._localToDispose.add({\n      dispose: () =\u003e {\n        rangeUpdateScheduler.dispose();\n        rangeSyncScheduler.dispose();\n      }\n    });\n    this.updateRanges();\n  }\n  _syncRanges(token) {\n    if (!this._editor.hasModel() || token !== this._syncRangesToken || this._currentDecorations.length === 0) {\n      return;\n    }\n    const model = this._editor.getModel();\n    const referenceRange = this._currentDecorations.getRange(0);\n    if (!referenceRange || referenceRange.startLineNumber !== referenceRange.endLineNumber) {\n      return this.clearRanges();\n    }\n    const referenceValue = model.getValueInRange(referenceRange);\n    if (this._currentWordPattern) {\n      const match2 = referenceValue.match(this._currentWordPattern);\n      const matchLength = match2 ? match2[0].length : 0;\n      if (matchLength !== referenceValue.length) {\n        return this.clearRanges();\n      }\n    }\n    const edits = [];\n    for (let i2 = 1, len = this._currentDecorations.length; i2 \u003c len; i2++) {\n      const mirrorRange = this._currentDecorations.getRange(i2);\n      if (!mirrorRange) {\n        continue;\n      }\n      if (mirrorRange.startLineNumber !== mirrorRange.endLineNumber) {\n        edits.push({\n          range: mirrorRange,\n          text: referenceValue\n        });\n      } else {\n        let oldValue = model.getValueInRange(mirrorRange);\n        let newValue = referenceValue;\n        let rangeStartColumn = mirrorRange.startColumn;\n        let rangeEndColumn = mirrorRange.endColumn;\n        const commonPrefixLength2 = commonPrefixLength(oldValue, newValue);\n        rangeStartColumn += commonPrefixLength2;\n        oldValue = oldValue.substr(commonPrefixLength2);\n        newValue = newValue.substr(commonPrefixLength2);\n        const commonSuffixLength2 = commonSuffixLength(oldValue, newValue);\n        rangeEndColumn -= commonSuffixLength2;\n        oldValue = oldValue.substr(0, oldValue.length - commonSuffixLength2);\n        newValue = newValue.substr(0, newValue.length - commonSuffixLength2);\n        if (rangeStartColumn !== rangeEndColumn || newValue.length !== 0) {\n          edits.push({\n            range: new Range(mirrorRange.startLineNumber, rangeStartColumn, mirrorRange.endLineNumber, rangeEndColumn),\n            text: newValue\n          });\n        }\n      }\n    }\n    if (edits.length === 0) {\n      return;\n    }\n    try {\n      this._editor.popUndoStop();\n      this._ignoreChangeEvent = true;\n      const prevEditOperationType = this._editor._getViewModel().getPrevEditOperationType();\n      this._editor.executeEdits(\"linkedEditing\", edits);\n      this._editor._getViewModel().setPrevEditOperationType(prevEditOperationType);\n    } finally {\n      this._ignoreChangeEvent = false;\n    }\n  }\n  dispose() {\n    this.clearRanges();\n    super.dispose();\n  }\n  clearRanges() {\n    this._visibleContextKey.set(false);\n    this._currentDecorations.clear();\n    if (this._currentRequestCts) {\n      this._currentRequestCts.cancel();\n      this._currentRequestCts = null;\n      this._currentRequestPosition = null;\n    }\n  }\n  async updateRanges(force = false) {\n    if (!this._editor.hasModel()) {\n      this.clearRanges();\n      return;\n    }\n    const position = this._editor.getPosition();\n    if (!this._enabled \u0026\u0026 !force || this._editor.getSelections().length \u003e 1) {\n      this.clearRanges();\n      return;\n    }\n    const model = this._editor.getModel();\n    const modelVersionId = model.getVersionId();\n    if (this._currentRequestPosition \u0026\u0026 this._currentRequestModelVersion === modelVersionId) {\n      if (position.equals(this._currentRequestPosition)) {\n        return;\n      }\n      if (this._currentDecorations.length \u003e 0) {\n        const range2 = this._currentDecorations.getRange(0);\n        if (range2 \u0026\u0026 range2.containsPosition(position)) {\n          return;\n        }\n      }\n    }\n    if (!this._currentRequestPosition?.equals(position)) {\n      const currentRange = this._currentDecorations.getRange(0);\n      if (!currentRange?.containsPosition(position)) {\n        this.clearRanges();\n      }\n    }\n    this._currentRequestPosition = position;\n    this._currentRequestModelVersion = modelVersionId;\n    const currentRequestCts = this._currentRequestCts = new CancellationTokenSource();\n    try {\n      const sw = new StopWatch(false);\n      const response = await getLinkedEditingRanges(this._providers, model, position, currentRequestCts.token);\n      this._debounceInformation.update(model, sw.elapsed());\n      if (currentRequestCts !== this._currentRequestCts) {\n        return;\n      }\n      this._currentRequestCts = null;\n      if (modelVersionId !== model.getVersionId()) {\n        return;\n      }\n      let ranges = [];\n      if (response?.ranges) {\n        ranges = response.ranges;\n      }\n      this._currentWordPattern = response?.wordPattern || this._languageWordPattern;\n      let foundReferenceRange = false;\n      for (let i2 = 0, len = ranges.length; i2 \u003c len; i2++) {\n        if (Range.containsPosition(ranges[i2], position)) {\n          foundReferenceRange = true;\n          if (i2 !== 0) {\n            const referenceRange = ranges[i2];\n            ranges.splice(i2, 1);\n            ranges.unshift(referenceRange);\n          }\n          break;\n        }\n      }\n      if (!foundReferenceRange) {\n        this.clearRanges();\n        return;\n      }\n      const decorations = ranges.map((range2) =\u003e ({ range: range2, options: LinkedEditingContribution_1.DECORATION }));\n      this._visibleContextKey.set(true);\n      this._currentDecorations.set(decorations);\n      this._syncRangesToken++;\n    } catch (err) {\n      if (!isCancellationError(err)) {\n        onUnexpectedError(err);\n      }\n      if (this._currentRequestCts === currentRequestCts || !this._currentRequestCts) {\n        this.clearRanges();\n      }\n    }\n  }\n};\nLinkedEditingContribution = LinkedEditingContribution_1 = __decorate136([\n  __param130(1, IContextKeyService),\n  __param130(2, ILanguageFeaturesService),\n  __param130(3, ILanguageConfigurationService),\n  __param130(4, ILanguageFeatureDebounceService)\n], LinkedEditingContribution);\nvar LinkedEditingAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.linkedEditing\",\n      label: localize2(1263, \"Start Linked Editing\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 1024 | 60,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  runCommand(accessor, args) {\n    const editorService = accessor.get(ICodeEditorService);\n    const [uri, pos] = Array.isArray(args) \u0026\u0026 args || [void 0, void 0];\n    if (URI.isUri(uri) \u0026\u0026 Position.isIPosition(pos)) {\n      return editorService.openCodeEditor({ resource: uri }, editorService.getActiveCodeEditor()).then((editor2) =\u003e {\n        if (!editor2) {\n          return;\n        }\n        editor2.setPosition(pos);\n        editor2.invokeWithinContext((accessor2) =\u003e {\n          this.reportTelemetry(accessor2, editor2);\n          return this.run(accessor2, editor2);\n        });\n      }, onUnexpectedError);\n    }\n    return super.runCommand(accessor, args);\n  }\n  run(_accessor, editor2) {\n    const controller = LinkedEditingContribution.get(editor2);\n    if (controller) {\n      return Promise.resolve(controller.updateRanges(true));\n    }\n    return Promise.resolve();\n  }\n};\nvar LinkedEditingCommand = EditorCommand.bindToContribution(LinkedEditingContribution.get);\nregisterEditorCommand(new LinkedEditingCommand({\n  id: \"cancelLinkedEditingInput\",\n  precondition: CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE,\n  handler: (x) =\u003e x.clearRanges(),\n  kbOpts: {\n    kbExpr: EditorContextKeys.editorTextFocus,\n    weight: 100 + 99,\n    primary: 9,\n    secondary: [\n      1024 | 9\n      /* KeyCode.Escape */\n    ]\n  }\n}));\nfunction getLinkedEditingRanges(providers, model, position, token) {\n  const orderedByScore = providers.ordered(model);\n  return first(orderedByScore.map((provider) =\u003e async () =\u003e {\n    try {\n      return await provider.provideLinkedEditingRanges(model, position, token);\n    } catch (e) {\n      onUnexpectedExternalError(e);\n      return void 0;\n    }\n  }), (result) =\u003e !!result \u0026\u0026 isNonEmptyArray(result?.ranges));\n}\nvar editorLinkedEditingBackground = registerColor(\"editor.linkedEditingBackground\", { dark: Color.fromHex(\"#f00\").transparent(0.3), light: Color.fromHex(\"#f00\").transparent(0.3), hcDark: Color.fromHex(\"#f00\").transparent(0.3), hcLight: Color.white }, localize(1262, \"Background color when the editor auto renames on type.\"));\nregisterModelAndPositionCommand(\"_executeLinkedEditingProvider\", (_accessor, model, position) =\u003e {\n  const { linkedEditingRangeProvider } = _accessor.get(ILanguageFeaturesService);\n  return getLinkedEditingRanges(linkedEditingRangeProvider, model, position, CancellationToken.None);\n});\nregisterEditorContribution(\n  LinkedEditingContribution.ID,\n  LinkedEditingContribution,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nregisterEditorAction(LinkedEditingAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/links/browser/links.js\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_htmlContent();\ninit_lifecycle();\ninit_network();\ninit_platform();\ninit_resources();\ninit_stopwatch();\ninit_uri();\ninit_editorExtensions();\ninit_textModel();\ninit_languageFeatureDebounce();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/links/browser/getLinks.js\ninit_arrays();\ninit_cancellation();\ninit_errors();\ninit_lifecycle();\ninit_types();\ninit_uri();\ninit_range();\ninit_model();\ninit_commands();\ninit_languageFeatures();\nvar Link = class {\n  constructor(link2, provider) {\n    this._link = link2;\n    this._provider = provider;\n  }\n  toJSON() {\n    return {\n      range: this.range,\n      url: this.url,\n      tooltip: this.tooltip\n    };\n  }\n  get range() {\n    return this._link.range;\n  }\n  get url() {\n    return this._link.url;\n  }\n  get tooltip() {\n    return this._link.tooltip;\n  }\n  async resolve(token) {\n    if (this._link.url) {\n      return this._link.url;\n    }\n    if (typeof this._provider.resolveLink === \"function\") {\n      return Promise.resolve(this._provider.resolveLink(this._link, token)).then((value) =\u003e {\n        this._link = value || this._link;\n        if (this._link.url) {\n          return this.resolve(token);\n        }\n        return Promise.reject(new Error(\"missing\"));\n      });\n    }\n    return Promise.reject(new Error(\"missing\"));\n  }\n};\nvar LinksList = class _LinksList {\n  static {\n    this.Empty = new _LinksList([]);\n  }\n  constructor(tuples) {\n    this._disposables = new DisposableStore();\n    let links = [];\n    for (const [list2, provider] of tuples) {\n      const newLinks = list2.links.map((link2) =\u003e new Link(link2, provider));\n      links = _LinksList._union(links, newLinks);\n      if (isDisposable(list2)) {\n        this._disposables ??= new DisposableStore();\n        this._disposables.add(list2);\n      }\n    }\n    this.links = links;\n  }\n  dispose() {\n    this._disposables?.dispose();\n    this.links.length = 0;\n  }\n  static _union(oldLinks, newLinks) {\n    const result = [];\n    let oldIndex;\n    let oldLen;\n    let newIndex;\n    let newLen;\n    for (oldIndex = 0, newIndex = 0, oldLen = oldLinks.length, newLen = newLinks.length; oldIndex \u003c oldLen \u0026\u0026 newIndex \u003c newLen; ) {\n      const oldLink = oldLinks[oldIndex];\n      const newLink = newLinks[newIndex];\n      if (Range.areIntersectingOrTouching(oldLink.range, newLink.range)) {\n        oldIndex++;\n        continue;\n      }\n      const comparisonResult = Range.compareRangesUsingStarts(oldLink.range, newLink.range);\n      if (comparisonResult \u003c 0) {\n        result.push(oldLink);\n        oldIndex++;\n      } else {\n        result.push(newLink);\n        newIndex++;\n      }\n    }\n    for (; oldIndex \u003c oldLen; oldIndex++) {\n      result.push(oldLinks[oldIndex]);\n    }\n    for (; newIndex \u003c newLen; newIndex++) {\n      result.push(newLinks[newIndex]);\n    }\n    return result;\n  }\n};\nasync function getLinks(providers, model, token) {\n  const lists = [];\n  const promises = providers.ordered(model).reverse().map(async (provider, i2) =\u003e {\n    try {\n      const result = await provider.provideLinks(model, token);\n      if (result) {\n        lists[i2] = [result, provider];\n      }\n    } catch (err) {\n      onUnexpectedExternalError(err);\n    }\n  });\n  await Promise.all(promises);\n  let res = new LinksList(coalesce(lists));\n  if (token.isCancellationRequested) {\n    res.dispose();\n    res = LinksList.Empty;\n  }\n  return res;\n}\nCommandsRegistry.registerCommand(\"_executeLinkProvider\", async (accessor, ...args) =\u003e {\n  let [uri, resolveCount] = args;\n  assertType(uri instanceof URI);\n  if (typeof resolveCount !== \"number\") {\n    resolveCount = 0;\n  }\n  const { linkProvider } = accessor.get(ILanguageFeaturesService);\n  const model = accessor.get(IModelService).getModel(uri);\n  if (!model) {\n    return [];\n  }\n  const list2 = await getLinks(linkProvider, model, CancellationToken.None);\n  if (!list2) {\n    return [];\n  }\n  for (let i2 = 0; i2 \u003c Math.min(resolveCount, list2.links.length); i2++) {\n    await list2.links[i2].resolve(CancellationToken.None);\n  }\n  const result = list2.links.slice(0);\n  list2.dispose();\n  return result;\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/links/browser/links.js\ninit_nls();\nvar __decorate137 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param131 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar LinkDetector_1;\nvar LinkDetector = class LinkDetector2 extends Disposable {\n  static {\n    LinkDetector_1 = this;\n  }\n  static {\n    this.ID = \"editor.linkDetector\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(LinkDetector_1.ID);\n  }\n  constructor(editor2, openerService, notificationService, languageFeaturesService, languageFeatureDebounceService) {\n    super();\n    this.editor = editor2;\n    this.openerService = openerService;\n    this.notificationService = notificationService;\n    this.languageFeaturesService = languageFeaturesService;\n    this.providers = this.languageFeaturesService.linkProvider;\n    this.debounceInformation = languageFeatureDebounceService.for(this.providers, \"Links\", { min: 1e3, max: 4e3 });\n    this.computeLinks = this._register(new RunOnceScheduler(() =\u003e this.computeLinksNow(), 1e3));\n    this.computePromise = null;\n    this.activeLinksList = null;\n    this.currentOccurrences = {};\n    this.activeLinkDecorationId = null;\n    const clickLinkGesture = this._register(new ClickLinkGesture(editor2));\n    this._register(clickLinkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) =\u003e {\n      this._onEditorMouseMove(mouseEvent, keyboardEvent);\n    }));\n    this._register(clickLinkGesture.onExecute((e) =\u003e {\n      this.onEditorMouseUp(e);\n    }));\n    this._register(clickLinkGesture.onCancel((e) =\u003e {\n      this.cleanUpActiveLinkDecoration();\n    }));\n    this._register(editor2.onDidChangeConfiguration((e) =\u003e {\n      if (!e.hasChanged(\n        79\n        /* EditorOption.links */\n      )) {\n        return;\n      }\n      this.updateDecorations([]);\n      this.stop();\n      this.computeLinks.schedule(0);\n    }));\n    this._register(editor2.onDidChangeModelContent((e) =\u003e {\n      if (!this.editor.hasModel()) {\n        return;\n      }\n      this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()));\n    }));\n    this._register(editor2.onDidChangeModel((e) =\u003e {\n      this.currentOccurrences = {};\n      this.activeLinkDecorationId = null;\n      this.stop();\n      this.computeLinks.schedule(0);\n    }));\n    this._register(editor2.onDidChangeModelLanguage((e) =\u003e {\n      this.stop();\n      this.computeLinks.schedule(0);\n    }));\n    this._register(this.providers.onDidChange((e) =\u003e {\n      this.stop();\n      this.computeLinks.schedule(0);\n    }));\n    this.computeLinks.schedule(0);\n  }\n  async computeLinksNow() {\n    if (!this.editor.hasModel() || !this.editor.getOption(\n      79\n      /* EditorOption.links */\n    )) {\n      return;\n    }\n    const model = this.editor.getModel();\n    if (model.isTooLargeForSyncing()) {\n      return;\n    }\n    if (!this.providers.has(model)) {\n      return;\n    }\n    if (this.activeLinksList) {\n      this.activeLinksList.dispose();\n      this.activeLinksList = null;\n    }\n    this.computePromise = createCancelablePromise((token) =\u003e getLinks(this.providers, model, token));\n    try {\n      const sw = new StopWatch(false);\n      this.activeLinksList = await this.computePromise;\n      this.debounceInformation.update(model, sw.elapsed());\n      if (model.isDisposed()) {\n        return;\n      }\n      this.updateDecorations(this.activeLinksList.links);\n    } catch (err) {\n      onUnexpectedError(err);\n    } finally {\n      this.computePromise = null;\n    }\n  }\n  updateDecorations(links) {\n    const useMetaKey = this.editor.getOption(\n      86\n      /* EditorOption.multiCursorModifier */\n    ) === \"altKey\";\n    const oldDecorations = [];\n    const keys = Object.keys(this.currentOccurrences);\n    for (const decorationId of keys) {\n      const occurence = this.currentOccurrences[decorationId];\n      oldDecorations.push(occurence.decorationId);\n    }\n    const newDecorations = [];\n    if (links) {\n      for (const link2 of links) {\n        newDecorations.push(LinkOccurrence.decoration(link2, useMetaKey));\n      }\n    }\n    this.editor.changeDecorations((changeAccessor) =\u003e {\n      const decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n      this.currentOccurrences = {};\n      this.activeLinkDecorationId = null;\n      for (let i2 = 0, len = decorations.length; i2 \u003c len; i2++) {\n        const occurence = new LinkOccurrence(links[i2], decorations[i2]);\n        this.currentOccurrences[occurence.decorationId] = occurence;\n      }\n    });\n  }\n  _onEditorMouseMove(mouseEvent, withKey) {\n    const useMetaKey = this.editor.getOption(\n      86\n      /* EditorOption.multiCursorModifier */\n    ) === \"altKey\";\n    if (this.isEnabled(mouseEvent, withKey)) {\n      this.cleanUpActiveLinkDecoration();\n      const occurrence = this.getLinkOccurrence(mouseEvent.target.position);\n      if (occurrence) {\n        this.editor.changeDecorations((changeAccessor) =\u003e {\n          occurrence.activate(changeAccessor, useMetaKey);\n          this.activeLinkDecorationId = occurrence.decorationId;\n        });\n      }\n    } else {\n      this.cleanUpActiveLinkDecoration();\n    }\n  }\n  cleanUpActiveLinkDecoration() {\n    const useMetaKey = this.editor.getOption(\n      86\n      /* EditorOption.multiCursorModifier */\n    ) === \"altKey\";\n    if (this.activeLinkDecorationId) {\n      const occurrence = this.currentOccurrences[this.activeLinkDecorationId];\n      if (occurrence) {\n        this.editor.changeDecorations((changeAccessor) =\u003e {\n          occurrence.deactivate(changeAccessor, useMetaKey);\n        });\n      }\n      this.activeLinkDecorationId = null;\n    }\n  }\n  onEditorMouseUp(mouseEvent) {\n    if (!this.isEnabled(mouseEvent)) {\n      return;\n    }\n    const occurrence = this.getLinkOccurrence(mouseEvent.target.position);\n    if (!occurrence) {\n      return;\n    }\n    this.openLinkOccurrence(\n      occurrence,\n      mouseEvent.hasSideBySideModifier,\n      true\n      /* from user gesture */\n    );\n  }\n  openLinkOccurrence(occurrence, openToSide, fromUserGesture = false) {\n    if (!this.openerService) {\n      return;\n    }\n    const { link: link2 } = occurrence;\n    link2.resolve(CancellationToken.None).then((uri) =\u003e {\n      if (typeof uri === \"string\" \u0026\u0026 this.editor.hasModel()) {\n        const modelUri = this.editor.getModel().uri;\n        if (modelUri.scheme === Schemas.file \u0026\u0026 uri.startsWith(`${Schemas.file}:`)) {\n          const parsedUri = URI.parse(uri);\n          if (parsedUri.scheme === Schemas.file) {\n            const fsPath = originalFSPath(parsedUri);\n            let relativePath2 = null;\n            if (fsPath.startsWith(\"/./\") || fsPath.startsWith(\"\\\\.\\\\\")) {\n              relativePath2 = `.${fsPath.substr(1)}`;\n            } else if (fsPath.startsWith(\"//./\") || fsPath.startsWith(\"\\\\\\\\.\\\\\")) {\n              relativePath2 = `.${fsPath.substr(2)}`;\n            }\n            if (relativePath2) {\n              uri = joinPath(modelUri, relativePath2);\n            }\n          }\n        }\n      }\n      return this.openerService.open(uri, { openToSide, fromUserGesture, allowContributedOpeners: true, allowCommands: true, fromWorkspace: true });\n    }, (err) =\u003e {\n      const messageOrError = err instanceof Error ? err.message : err;\n      if (messageOrError === \"invalid\") {\n        this.notificationService.warn(localize(1264, \"Failed to open this link because it is not well-formed: {0}\", link2.url.toString()));\n      } else if (messageOrError === \"missing\") {\n        this.notificationService.warn(localize(1265, \"Failed to open this link because its target is missing.\"));\n      } else {\n        onUnexpectedError(err);\n      }\n    });\n  }\n  getLinkOccurrence(position) {\n    if (!this.editor.hasModel() || !position) {\n      return null;\n    }\n    const decorations = this.editor.getModel().getDecorationsInRange({\n      startLineNumber: position.lineNumber,\n      startColumn: position.column,\n      endLineNumber: position.lineNumber,\n      endColumn: position.column\n    }, 0, true);\n    for (const decoration3 of decorations) {\n      const currentOccurrence = this.currentOccurrences[decoration3.id];\n      if (currentOccurrence) {\n        return currentOccurrence;\n      }\n    }\n    return null;\n  }\n  isEnabled(mouseEvent, withKey) {\n    return Boolean(mouseEvent.target.type === 6 \u0026\u0026 (mouseEvent.hasTriggerModifier || withKey \u0026\u0026 withKey.keyCodeIsTriggerKey));\n  }\n  stop() {\n    this.computeLinks.cancel();\n    if (this.activeLinksList) {\n      this.activeLinksList?.dispose();\n      this.activeLinksList = null;\n    }\n    if (this.computePromise) {\n      this.computePromise.cancel();\n      this.computePromise = null;\n    }\n  }\n  dispose() {\n    super.dispose();\n    this.stop();\n  }\n};\nLinkDetector = LinkDetector_1 = __decorate137([\n  __param131(1, IOpenerService),\n  __param131(2, INotificationService),\n  __param131(3, ILanguageFeaturesService),\n  __param131(4, ILanguageFeatureDebounceService)\n], LinkDetector);\nvar decoration = {\n  general: ModelDecorationOptions.register({\n    description: \"detected-link\",\n    stickiness: 1,\n    collapseOnReplaceEdit: true,\n    inlineClassName: \"detected-link\"\n  }),\n  active: ModelDecorationOptions.register({\n    description: \"detected-link-active\",\n    stickiness: 1,\n    collapseOnReplaceEdit: true,\n    inlineClassName: \"detected-link-active\"\n  })\n};\nvar LinkOccurrence = class _LinkOccurrence {\n  static decoration(link2, useMetaKey) {\n    return {\n      range: link2.range,\n      options: _LinkOccurrence._getOptions(link2, useMetaKey, false)\n    };\n  }\n  static _getOptions(link2, useMetaKey, isActive) {\n    const options2 = { ...isActive ? decoration.active : decoration.general };\n    options2.hoverMessage = getHoverMessage(link2, useMetaKey);\n    return options2;\n  }\n  constructor(link2, decorationId) {\n    this.link = link2;\n    this.decorationId = decorationId;\n  }\n  activate(changeAccessor, useMetaKey) {\n    changeAccessor.changeDecorationOptions(this.decorationId, _LinkOccurrence._getOptions(this.link, useMetaKey, true));\n  }\n  deactivate(changeAccessor, useMetaKey) {\n    changeAccessor.changeDecorationOptions(this.decorationId, _LinkOccurrence._getOptions(this.link, useMetaKey, false));\n  }\n};\nfunction getHoverMessage(link2, useMetaKey) {\n  const executeCmd = link2.url \u0026\u0026 /^command:/i.test(link2.url.toString());\n  const label = link2.tooltip ? link2.tooltip : executeCmd ? localize(1266, \"Execute command\") : localize(1267, \"Follow link\");\n  const kb = useMetaKey ? isMacintosh ? localize(1268, \"cmd + click\") : localize(1269, \"ctrl + click\") : isMacintosh ? localize(1270, \"option + click\") : localize(1271, \"alt + click\");\n  if (link2.url) {\n    let nativeLabel = \"\";\n    if (/^command:/i.test(link2.url.toString())) {\n      const match2 = link2.url.toString().match(/^command:([^?#]+)/);\n      if (match2) {\n        const commandId = match2[1];\n        nativeLabel = localize(1272, \"Execute command {0}\", commandId);\n      }\n    }\n    const hoverMessage = new MarkdownString(\"\", true).appendLink(link2.url.toString(true).replace(/ /g, \"%20\"), label, nativeLabel).appendMarkdown(` (${kb})`);\n    return hoverMessage;\n  } else {\n    return new MarkdownString().appendText(`${label} (${kb})`);\n  }\n}\nvar OpenLinkAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.openLink\",\n      label: localize2(1273, \"Open Link\"),\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2) {\n    const linkDetector = LinkDetector.get(editor2);\n    if (!linkDetector) {\n      return;\n    }\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const selections = editor2.getSelections();\n    for (const sel of selections) {\n      const link2 = linkDetector.getLinkOccurrence(sel.getEndPosition());\n      if (link2) {\n        linkDetector.openLinkOccurrence(link2, false);\n      }\n    }\n  }\n};\nregisterEditorContribution(\n  LinkDetector.ID,\n  LinkDetector,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nregisterEditorAction(OpenLinkAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js\ninit_lifecycle();\ninit_editorExtensions();\nvar LongLinesHelper = class extends Disposable {\n  static {\n    this.ID = \"editor.contrib.longLinesHelper\";\n  }\n  constructor(_editor) {\n    super();\n    this._editor = _editor;\n    this._register(this._editor.onMouseDown((e) =\u003e {\n      const stopRenderingLineAfter = this._editor.getOption(\n        132\n        /* EditorOption.stopRenderingLineAfter */\n      );\n      if (stopRenderingLineAfter \u003e= 0 \u0026\u0026 e.target.type === 6 \u0026\u0026 e.target.position.column \u003e= stopRenderingLineAfter) {\n        this._editor.updateOptions({\n          stopRenderingLineAfter: -1\n        });\n      }\n    }));\n  }\n};\nregisterEditorContribution(\n  LongLinesHelper.ID,\n  LongLinesHelper,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/middleScroll/browser/middleScroll.contribution.js\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/middleScroll/browser/middleScrollController.js\ninit_dom();\ninit_lifecycle();\ninit_observable();\ninit_observableCodeEditor();\ninit_point();\ninit_utils5();\nvar MiddleScrollController = class extends Disposable {\n  static {\n    this.ID = \"editor.contrib.middleScroll\";\n  }\n  constructor(_editor) {\n    super();\n    this._editor = _editor;\n    const obsEditor = observableCodeEditor(this._editor);\n    const scrollOnMiddleClick = obsEditor.getOption(\n      170\n      /* EditorOption.scrollOnMiddleClick */\n    );\n    this._register(autorun((reader) =\u003e {\n      if (!scrollOnMiddleClick.read(reader)) {\n        return;\n      }\n      const editorDomNode = obsEditor.domNode.read(reader);\n      if (!editorDomNode) {\n        return;\n      }\n      const scrollingSession = reader.store.add(disposableObservableValue(\"scrollingSession\", void 0));\n      reader.store.add(this._editor.onMouseDown((e) =\u003e {\n        const session = scrollingSession.get();\n        if (session) {\n          scrollingSession.set(void 0, void 0);\n          return;\n        }\n        if (!e.event.middleButton) {\n          return;\n        }\n        e.event.stopPropagation();\n        e.event.preventDefault();\n        const store = new DisposableStore();\n        const initialPos = new Point(e.event.posx, e.event.posy);\n        const mousePos = observeWindowMousePos(getWindow(editorDomNode), initialPos, store);\n        const mouseDeltaAfterThreshold = mousePos.map((v) =\u003e v.subtract(initialPos).withThreshold(5));\n        const editorDomNodeRect = editorDomNode.getBoundingClientRect();\n        const initialMousePosInEditor = new Point(initialPos.x - editorDomNodeRect.left, initialPos.y - editorDomNodeRect.top);\n        scrollingSession.set({\n          mouseDeltaAfterThreshold,\n          initialMousePosInEditor,\n          didScroll: false,\n          dispose: () =\u003e store.dispose()\n        }, void 0);\n        store.add(this._editor.onMouseUp((e2) =\u003e {\n          const session2 = scrollingSession.get();\n          if (session2 \u0026\u0026 session2.didScroll) {\n            scrollingSession.set(void 0, void 0);\n          }\n        }));\n        store.add(this._editor.onKeyDown((e2) =\u003e {\n          scrollingSession.set(void 0, void 0);\n        }));\n      }));\n      reader.store.add(autorun((reader2) =\u003e {\n        const session = scrollingSession.read(reader2);\n        if (!session) {\n          return;\n        }\n        let lastTime = Date.now();\n        reader2.store.add(autorun((reader3) =\u003e {\n          AnimationFrameScheduler.instance.invalidateOnNextAnimationFrame(reader3);\n          const curTime = Date.now();\n          const frameDurationMs = curTime - lastTime;\n          lastTime = curTime;\n          const mouseDelta = session.mouseDeltaAfterThreshold.get();\n          const factor2 = frameDurationMs / 32;\n          const scrollDelta = mouseDelta.scale(factor2);\n          const scrollPos = new Point(this._editor.getScrollLeft(), this._editor.getScrollTop());\n          this._editor.setScrollPosition(toScrollPosition(scrollPos.add(scrollDelta)));\n          if (!scrollDelta.isZero()) {\n            session.didScroll = true;\n          }\n        }));\n        const directionAttr = derived((reader3) =\u003e {\n          const delta = session.mouseDeltaAfterThreshold.read(reader3);\n          let direction = \"\";\n          direction += delta.y \u003c 0 ? \"n\" : delta.y \u003e 0 ? \"s\" : \"\";\n          direction += delta.x \u003c 0 ? \"w\" : delta.x \u003e 0 ? \"e\" : \"\";\n          return direction;\n        });\n        reader2.store.add(autorun((reader3) =\u003e {\n          editorDomNode.setAttribute(\"data-scroll-direction\", directionAttr.read(reader3));\n        }));\n      }));\n      const dotDomElem = reader.store.add(n.div({\n        class: [\"scroll-editor-on-middle-click-dot\", scrollingSession.map((session) =\u003e session ? \"\" : \"hidden\")],\n        style: {\n          left: scrollingSession.map((session) =\u003e session ? session.initialMousePosInEditor.x : 0),\n          top: scrollingSession.map((session) =\u003e session ? session.initialMousePosInEditor.y : 0)\n        }\n      }).toDisposableLiveElement());\n      reader.store.add(appendRemoveOnDispose(editorDomNode, dotDomElem.element));\n      reader.store.add(autorun((reader2) =\u003e {\n        const session = scrollingSession.read(reader2);\n        editorDomNode.classList.toggle(\"scroll-editor-on-middle-click-editor\", !!session);\n      }));\n    }));\n  }\n};\nfunction observeWindowMousePos(window2, initialPos, store) {\n  const val = observableValue(\"pos\", initialPos);\n  store.add(addDisposableListener(window2, \"mousemove\", (e) =\u003e {\n    val.set(new Point(e.pageX, e.pageY), void 0);\n  }));\n  return val;\n}\nfunction toScrollPosition(p) {\n  return {\n    scrollLeft: p.x,\n    scrollTop: p.y\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/middleScroll/browser/middleScroll.contribution.js\nregisterEditorContribution(\n  MiddleScrollController.ID,\n  MiddleScrollController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/multicursor/browser/multicursor.js\ninit_async();\ninit_keyCodes();\ninit_lifecycle();\ninit_editorExtensions();\ninit_range();\ninit_selection();\ninit_editorContextKeys();\ninit_nls();\ninit_actions2();\ninit_contextkey();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js\ninit_model2();\ninit_textModel();\ninit_languages();\ninit_nls();\ninit_colorRegistry();\ninit_themeService();\nvar wordHighlightBackground = registerColor(\"editor.wordHighlightBackground\", { dark: \"#575757B8\", light: \"#57575740\", hcDark: null, hcLight: null }, localize(1545, \"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.\"), true);\nregisterColor(\"editor.wordHighlightStrongBackground\", { dark: \"#004972B8\", light: \"#0e639c40\", hcDark: null, hcLight: null }, localize(1546, \"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.\"), true);\nregisterColor(\"editor.wordHighlightTextBackground\", wordHighlightBackground, localize(1547, \"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.\"), true);\nvar wordHighlightBorder = registerColor(\"editor.wordHighlightBorder\", { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1548, \"Border color of a symbol during read-access, like reading a variable.\"));\nregisterColor(\"editor.wordHighlightStrongBorder\", { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, localize(1549, \"Border color of a symbol during write-access, like writing to a variable.\"));\nregisterColor(\"editor.wordHighlightTextBorder\", wordHighlightBorder, localize(1550, \"Border color of a textual occurrence for a symbol.\"));\nvar overviewRulerWordHighlightForeground = registerColor(\"editorOverviewRuler.wordHighlightForeground\", \"#A0A0A0CC\", localize(1551, \"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.\"), true);\nvar overviewRulerWordHighlightStrongForeground = registerColor(\"editorOverviewRuler.wordHighlightStrongForeground\", \"#C0A0C0CC\", localize(1552, \"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.\"), true);\nvar overviewRulerWordHighlightTextForeground = registerColor(\"editorOverviewRuler.wordHighlightTextForeground\", overviewRulerSelectionHighlightForeground, localize(1553, \"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.\"), true);\nvar _WRITE_OPTIONS = ModelDecorationOptions.register({\n  description: \"word-highlight-strong\",\n  stickiness: 1,\n  className: \"wordHighlightStrong\",\n  overviewRuler: {\n    color: themeColorFromId(overviewRulerWordHighlightStrongForeground),\n    position: OverviewRulerLane.Center\n  },\n  minimap: {\n    color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n    position: 1\n    /* MinimapPosition.Inline */\n  }\n});\nvar _TEXT_OPTIONS = ModelDecorationOptions.register({\n  description: \"word-highlight-text\",\n  stickiness: 1,\n  className: \"wordHighlightText\",\n  overviewRuler: {\n    color: themeColorFromId(overviewRulerWordHighlightTextForeground),\n    position: OverviewRulerLane.Center\n  },\n  minimap: {\n    color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n    position: 1\n    /* MinimapPosition.Inline */\n  }\n});\nvar _SELECTION_HIGHLIGHT_OPTIONS = ModelDecorationOptions.register({\n  description: \"selection-highlight-overview\",\n  stickiness: 1,\n  className: \"selectionHighlight\",\n  overviewRuler: {\n    color: themeColorFromId(overviewRulerSelectionHighlightForeground),\n    position: OverviewRulerLane.Center\n  },\n  minimap: {\n    color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n    position: 1\n    /* MinimapPosition.Inline */\n  }\n});\nvar _SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW = ModelDecorationOptions.register({\n  description: \"selection-highlight\",\n  stickiness: 1,\n  className: \"selectionHighlight\"\n});\nvar _REGULAR_OPTIONS = ModelDecorationOptions.register({\n  description: \"word-highlight\",\n  stickiness: 1,\n  className: \"wordHighlight\",\n  overviewRuler: {\n    color: themeColorFromId(overviewRulerWordHighlightForeground),\n    position: OverviewRulerLane.Center\n  },\n  minimap: {\n    color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n    position: 1\n    /* MinimapPosition.Inline */\n  }\n});\nfunction getHighlightDecorationOptions(kind) {\n  if (kind === DocumentHighlightKind.Write) {\n    return _WRITE_OPTIONS;\n  } else if (kind === DocumentHighlightKind.Text) {\n    return _TEXT_OPTIONS;\n  } else {\n    return _REGULAR_OPTIONS;\n  }\n}\nfunction getSelectionHighlightDecorationOptions(hasSemanticHighlights) {\n  return hasSemanticHighlights ? _SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW : _SELECTION_HIGHLIGHT_OPTIONS;\n}\nregisterThemingParticipant((theme, collector) =\u003e {\n  const selectionHighlight = theme.getColor(editorSelectionHighlight);\n  if (selectionHighlight) {\n    collector.addRule(`.monaco-editor .selectionHighlight { background-color: ${selectionHighlight.transparent(0.5)}; }`);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/multicursor/browser/multicursor.js\ninit_instantiation();\nvar __decorate138 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param132 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SelectionHighlighter_1;\nfunction announceCursorChange(previousCursorState, cursorState) {\n  const cursorDiff = cursorState.filter((cs) =\u003e !previousCursorState.find((pcs) =\u003e pcs.equals(cs)));\n  if (cursorDiff.length \u003e= 1) {\n    const cursorPositions = cursorDiff.map((cs) =\u003e `line ${cs.viewState.position.lineNumber} column ${cs.viewState.position.column}`).join(\", \");\n    const msg = cursorDiff.length === 1 ? localize(1275, \"Cursor added: {0}\", cursorPositions) : localize(1276, \"Cursors added: {0}\", cursorPositions);\n    status(msg);\n  }\n}\nvar InsertCursorAbove = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.insertCursorAbove\",\n      label: localize2(1285, \"Add Cursor Above\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 512 | 16,\n        linux: {\n          primary: 1024 | 512 | 16,\n          secondary: [\n            2048 | 1024 | 16\n            /* KeyCode.UpArrow */\n          ]\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"3_multi\",\n        title: localize(1277, \"\u0026\u0026Add Cursor Above\"),\n        order: 2\n      }\n    });\n  }\n  run(accessor, editor2, args) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    let useLogicalLine = true;\n    if (args \u0026\u0026 args.logicalLine === false) {\n      useLogicalLine = false;\n    }\n    const viewModel = editor2._getViewModel();\n    if (viewModel.cursorConfig.readOnly) {\n      return;\n    }\n    viewModel.model.pushStackElement();\n    const previousCursorState = viewModel.getCursorStates();\n    viewModel.setCursorStates(args.source, 3, CursorMoveCommands.addCursorUp(viewModel, previousCursorState, useLogicalLine));\n    viewModel.revealTopMostCursor(args.source);\n    announceCursorChange(previousCursorState, viewModel.getCursorStates());\n  }\n};\nvar InsertCursorBelow = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.insertCursorBelow\",\n      label: localize2(1286, \"Add Cursor Below\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 512 | 18,\n        linux: {\n          primary: 1024 | 512 | 18,\n          secondary: [\n            2048 | 1024 | 18\n            /* KeyCode.DownArrow */\n          ]\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"3_multi\",\n        title: localize(1278, \"A\u0026\u0026dd Cursor Below\"),\n        order: 3\n      }\n    });\n  }\n  run(accessor, editor2, args) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    let useLogicalLine = true;\n    if (args \u0026\u0026 args.logicalLine === false) {\n      useLogicalLine = false;\n    }\n    const viewModel = editor2._getViewModel();\n    if (viewModel.cursorConfig.readOnly) {\n      return;\n    }\n    viewModel.model.pushStackElement();\n    const previousCursorState = viewModel.getCursorStates();\n    viewModel.setCursorStates(args.source, 3, CursorMoveCommands.addCursorDown(viewModel, previousCursorState, useLogicalLine));\n    viewModel.revealBottomMostCursor(args.source);\n    announceCursorChange(previousCursorState, viewModel.getCursorStates());\n  }\n};\nvar InsertCursorAtEndOfEachLineSelected = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.insertCursorAtEndOfEachLineSelected\",\n      label: localize2(1287, \"Add Cursors to Line Ends\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 1024 | 512 | 39,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"3_multi\",\n        title: localize(1279, \"Add C\u0026\u0026ursors to Line Ends\"),\n        order: 4\n      }\n    });\n  }\n  getCursorsForSelection(selection, model, result) {\n    if (selection.isEmpty()) {\n      return;\n    }\n    for (let i2 = selection.startLineNumber; i2 \u003c selection.endLineNumber; i2++) {\n      const currentLineMaxColumn = model.getLineMaxColumn(i2);\n      result.push(new Selection(i2, currentLineMaxColumn, i2, currentLineMaxColumn));\n    }\n    if (selection.endColumn \u003e 1) {\n      result.push(new Selection(selection.endLineNumber, selection.endColumn, selection.endLineNumber, selection.endColumn));\n    }\n  }\n  run(accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const model = editor2.getModel();\n    const selections = editor2.getSelections();\n    const viewModel = editor2._getViewModel();\n    const previousCursorState = viewModel.getCursorStates();\n    const newSelections = [];\n    selections.forEach((sel) =\u003e this.getCursorsForSelection(sel, model, newSelections));\n    if (newSelections.length \u003e 0) {\n      editor2.setSelections(newSelections);\n    }\n    announceCursorChange(previousCursorState, viewModel.getCursorStates());\n  }\n};\nvar InsertCursorAtEndOfLineSelected = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.addCursorsToBottom\",\n      label: localize2(1288, \"Add Cursors to Bottom\"),\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const selections = editor2.getSelections();\n    const lineCount = editor2.getModel().getLineCount();\n    const newSelections = [];\n    for (let i2 = selections[0].startLineNumber; i2 \u003c= lineCount; i2++) {\n      newSelections.push(new Selection(i2, selections[0].startColumn, i2, selections[0].endColumn));\n    }\n    const viewModel = editor2._getViewModel();\n    const previousCursorState = viewModel.getCursorStates();\n    if (newSelections.length \u003e 0) {\n      editor2.setSelections(newSelections);\n    }\n    announceCursorChange(previousCursorState, viewModel.getCursorStates());\n  }\n};\nvar InsertCursorAtTopOfLineSelected = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.addCursorsToTop\",\n      label: localize2(1289, \"Add Cursors to Top\"),\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const selections = editor2.getSelections();\n    const newSelections = [];\n    for (let i2 = selections[0].startLineNumber; i2 \u003e= 1; i2--) {\n      newSelections.push(new Selection(i2, selections[0].startColumn, i2, selections[0].endColumn));\n    }\n    const viewModel = editor2._getViewModel();\n    const previousCursorState = viewModel.getCursorStates();\n    if (newSelections.length \u003e 0) {\n      editor2.setSelections(newSelections);\n    }\n    announceCursorChange(previousCursorState, viewModel.getCursorStates());\n  }\n};\nvar MultiCursorSessionResult = class {\n  constructor(selections, revealRange, revealScrollType) {\n    this.selections = selections;\n    this.revealRange = revealRange;\n    this.revealScrollType = revealScrollType;\n  }\n};\nvar MultiCursorSession = class _MultiCursorSession {\n  static create(editor2, findController) {\n    if (!editor2.hasModel()) {\n      return null;\n    }\n    const findState = findController.getState();\n    if (!editor2.hasTextFocus() \u0026\u0026 findState.isRevealed \u0026\u0026 findState.searchString.length \u003e 0) {\n      return new _MultiCursorSession(editor2, findController, false, findState.searchString, findState.wholeWord, findState.matchCase, null);\n    }\n    let isDisconnectedFromFindController = false;\n    let wholeWord;\n    let matchCase;\n    const selections = editor2.getSelections();\n    if (selections.length === 1 \u0026\u0026 selections[0].isEmpty()) {\n      isDisconnectedFromFindController = true;\n      wholeWord = true;\n      matchCase = true;\n    } else {\n      wholeWord = findState.wholeWord;\n      matchCase = findState.matchCase;\n    }\n    const s = editor2.getSelection();\n    let searchText;\n    let currentMatch = null;\n    if (s.isEmpty()) {\n      const word = editor2.getConfiguredWordAtPosition(s.getStartPosition());\n      if (!word) {\n        return null;\n      }\n      searchText = word.word;\n      currentMatch = new Selection(s.startLineNumber, word.startColumn, s.startLineNumber, word.endColumn);\n    } else {\n      searchText = editor2.getModel().getValueInRange(s).replace(/\\r\\n/g, \"\\n\");\n    }\n    return new _MultiCursorSession(editor2, findController, isDisconnectedFromFindController, searchText, wholeWord, matchCase, currentMatch);\n  }\n  constructor(_editor, findController, isDisconnectedFromFindController, searchText, wholeWord, matchCase, currentMatch) {\n    this._editor = _editor;\n    this.findController = findController;\n    this.isDisconnectedFromFindController = isDisconnectedFromFindController;\n    this.searchText = searchText;\n    this.wholeWord = wholeWord;\n    this.matchCase = matchCase;\n    this.currentMatch = currentMatch;\n  }\n  addSelectionToNextFindMatch() {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    const nextMatch = this._getNextMatch();\n    if (!nextMatch) {\n      return null;\n    }\n    const allSelections = this._editor.getSelections();\n    return new MultiCursorSessionResult(\n      allSelections.concat(nextMatch),\n      nextMatch,\n      0\n      /* ScrollType.Smooth */\n    );\n  }\n  moveSelectionToNextFindMatch() {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    const nextMatch = this._getNextMatch();\n    if (!nextMatch) {\n      return null;\n    }\n    const allSelections = this._editor.getSelections();\n    return new MultiCursorSessionResult(\n      allSelections.slice(0, allSelections.length - 1).concat(nextMatch),\n      nextMatch,\n      0\n      /* ScrollType.Smooth */\n    );\n  }\n  _getNextMatch() {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    if (this.currentMatch) {\n      const result = this.currentMatch;\n      this.currentMatch = null;\n      return result;\n    }\n    this.findController.highlightFindOptions();\n    const allSelections = this._editor.getSelections();\n    const lastAddedSelection = allSelections[allSelections.length - 1];\n    const nextMatch = this._editor.getModel().findNextMatch(this.searchText, lastAddedSelection.getEndPosition(), false, this.matchCase, this.wholeWord ? this._editor.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ) : null, false);\n    if (!nextMatch) {\n      return null;\n    }\n    return new Selection(nextMatch.range.startLineNumber, nextMatch.range.startColumn, nextMatch.range.endLineNumber, nextMatch.range.endColumn);\n  }\n  addSelectionToPreviousFindMatch() {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    const previousMatch = this._getPreviousMatch();\n    if (!previousMatch) {\n      return null;\n    }\n    const allSelections = this._editor.getSelections();\n    return new MultiCursorSessionResult(\n      allSelections.concat(previousMatch),\n      previousMatch,\n      0\n      /* ScrollType.Smooth */\n    );\n  }\n  moveSelectionToPreviousFindMatch() {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    const previousMatch = this._getPreviousMatch();\n    if (!previousMatch) {\n      return null;\n    }\n    const allSelections = this._editor.getSelections();\n    return new MultiCursorSessionResult(\n      allSelections.slice(0, allSelections.length - 1).concat(previousMatch),\n      previousMatch,\n      0\n      /* ScrollType.Smooth */\n    );\n  }\n  _getPreviousMatch() {\n    if (!this._editor.hasModel()) {\n      return null;\n    }\n    if (this.currentMatch) {\n      const result = this.currentMatch;\n      this.currentMatch = null;\n      return result;\n    }\n    this.findController.highlightFindOptions();\n    const allSelections = this._editor.getSelections();\n    const lastAddedSelection = allSelections[allSelections.length - 1];\n    const previousMatch = this._editor.getModel().findPreviousMatch(this.searchText, lastAddedSelection.getStartPosition(), false, this.matchCase, this.wholeWord ? this._editor.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ) : null, false);\n    if (!previousMatch) {\n      return null;\n    }\n    return new Selection(previousMatch.range.startLineNumber, previousMatch.range.startColumn, previousMatch.range.endLineNumber, previousMatch.range.endColumn);\n  }\n  selectAll(searchScope) {\n    if (!this._editor.hasModel()) {\n      return [];\n    }\n    this.findController.highlightFindOptions();\n    const editorModel = this._editor.getModel();\n    if (searchScope) {\n      return editorModel.findMatches(\n        this.searchText,\n        searchScope,\n        false,\n        this.matchCase,\n        this.wholeWord ? this._editor.getOption(\n          147\n          /* EditorOption.wordSeparators */\n        ) : null,\n        false,\n        1073741824\n        /* Constants.MAX_SAFE_SMALL_INTEGER */\n      );\n    }\n    return editorModel.findMatches(\n      this.searchText,\n      true,\n      false,\n      this.matchCase,\n      this.wholeWord ? this._editor.getOption(\n        147\n        /* EditorOption.wordSeparators */\n      ) : null,\n      false,\n      1073741824\n      /* Constants.MAX_SAFE_SMALL_INTEGER */\n    );\n  }\n};\nvar MultiCursorSelectionController = class _MultiCursorSelectionController extends Disposable {\n  static {\n    this.ID = \"editor.contrib.multiCursorController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(_MultiCursorSelectionController.ID);\n  }\n  constructor(editor2) {\n    super();\n    this._sessionDispose = this._register(new DisposableStore());\n    this._editor = editor2;\n    this._ignoreSelectionChange = false;\n    this._session = null;\n  }\n  dispose() {\n    this._endSession();\n    super.dispose();\n  }\n  _beginSessionIfNeeded(findController) {\n    if (!this._session) {\n      const session = MultiCursorSession.create(this._editor, findController);\n      if (!session) {\n        return;\n      }\n      this._session = session;\n      const newState = { searchString: this._session.searchText };\n      if (this._session.isDisconnectedFromFindController) {\n        newState.wholeWordOverride = 1;\n        newState.matchCaseOverride = 1;\n        newState.isRegexOverride = 2;\n      }\n      findController.getState().change(newState, false);\n      this._sessionDispose.add(this._editor.onDidChangeCursorSelection((e) =\u003e {\n        if (this._ignoreSelectionChange) {\n          return;\n        }\n        this._endSession();\n      }));\n      this._sessionDispose.add(this._editor.onDidBlurEditorText(() =\u003e {\n        this._endSession();\n      }));\n      this._sessionDispose.add(findController.getState().onFindReplaceStateChange((e) =\u003e {\n        if (e.matchCase || e.wholeWord) {\n          this._endSession();\n        }\n      }));\n    }\n  }\n  _endSession() {\n    this._sessionDispose.clear();\n    if (this._session \u0026\u0026 this._session.isDisconnectedFromFindController) {\n      const newState = {\n        wholeWordOverride: 0,\n        matchCaseOverride: 0,\n        isRegexOverride: 0\n      };\n      this._session.findController.getState().change(newState, false);\n    }\n    this._session = null;\n  }\n  _setSelections(selections) {\n    this._ignoreSelectionChange = true;\n    this._editor.setSelections(selections);\n    this._ignoreSelectionChange = false;\n  }\n  _expandEmptyToWord(model, selection) {\n    if (!selection.isEmpty()) {\n      return selection;\n    }\n    const word = this._editor.getConfiguredWordAtPosition(selection.getStartPosition());\n    if (!word) {\n      return selection;\n    }\n    return new Selection(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n  }\n  _applySessionResult(result) {\n    if (!result) {\n      return;\n    }\n    this._setSelections(result.selections);\n    if (result.revealRange) {\n      this._editor.revealRangeInCenterIfOutsideViewport(result.revealRange, result.revealScrollType);\n    }\n  }\n  getSession(findController) {\n    return this._session;\n  }\n  addSelectionToNextFindMatch(findController) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    if (!this._session) {\n      const allSelections = this._editor.getSelections();\n      if (allSelections.length \u003e 1) {\n        const findState = findController.getState();\n        const matchCase = findState.matchCase;\n        const selectionsContainSameText = modelRangesContainSameText(this._editor.getModel(), allSelections, matchCase);\n        if (!selectionsContainSameText) {\n          const model = this._editor.getModel();\n          const resultingSelections = [];\n          for (let i2 = 0, len = allSelections.length; i2 \u003c len; i2++) {\n            resultingSelections[i2] = this._expandEmptyToWord(model, allSelections[i2]);\n          }\n          this._editor.setSelections(resultingSelections);\n          return;\n        }\n      }\n    }\n    this._beginSessionIfNeeded(findController);\n    if (this._session) {\n      this._applySessionResult(this._session.addSelectionToNextFindMatch());\n    }\n  }\n  addSelectionToPreviousFindMatch(findController) {\n    this._beginSessionIfNeeded(findController);\n    if (this._session) {\n      this._applySessionResult(this._session.addSelectionToPreviousFindMatch());\n    }\n  }\n  moveSelectionToNextFindMatch(findController) {\n    this._beginSessionIfNeeded(findController);\n    if (this._session) {\n      this._applySessionResult(this._session.moveSelectionToNextFindMatch());\n    }\n  }\n  moveSelectionToPreviousFindMatch(findController) {\n    this._beginSessionIfNeeded(findController);\n    if (this._session) {\n      this._applySessionResult(this._session.moveSelectionToPreviousFindMatch());\n    }\n  }\n  selectAll(findController) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    let matches = null;\n    const findState = findController.getState();\n    if (findState.isRevealed \u0026\u0026 findState.searchString.length \u003e 0 \u0026\u0026 findState.isRegex) {\n      const editorModel = this._editor.getModel();\n      if (findState.searchScope) {\n        matches = editorModel.findMatches(\n          findState.searchString,\n          findState.searchScope,\n          findState.isRegex,\n          findState.matchCase,\n          findState.wholeWord ? this._editor.getOption(\n            147\n            /* EditorOption.wordSeparators */\n          ) : null,\n          false,\n          1073741824\n          /* Constants.MAX_SAFE_SMALL_INTEGER */\n        );\n      } else {\n        matches = editorModel.findMatches(\n          findState.searchString,\n          true,\n          findState.isRegex,\n          findState.matchCase,\n          findState.wholeWord ? this._editor.getOption(\n            147\n            /* EditorOption.wordSeparators */\n          ) : null,\n          false,\n          1073741824\n          /* Constants.MAX_SAFE_SMALL_INTEGER */\n        );\n      }\n    } else {\n      this._beginSessionIfNeeded(findController);\n      if (!this._session) {\n        return;\n      }\n      matches = this._session.selectAll(findState.searchScope);\n    }\n    if (matches.length \u003e 0) {\n      const editorSelection = this._editor.getSelection();\n      for (let i2 = 0, len = matches.length; i2 \u003c len; i2++) {\n        const match2 = matches[i2];\n        const intersection2 = match2.range.intersectRanges(editorSelection);\n        if (intersection2) {\n          matches[i2] = matches[0];\n          matches[0] = match2;\n          break;\n        }\n      }\n      this._setSelections(matches.map((m) =\u003e new Selection(m.range.startLineNumber, m.range.startColumn, m.range.endLineNumber, m.range.endColumn)));\n    }\n  }\n};\nvar MultiCursorSelectionControllerAction = class extends EditorAction {\n  run(accessor, editor2) {\n    const multiCursorController = MultiCursorSelectionController.get(editor2);\n    if (!multiCursorController) {\n      return;\n    }\n    const viewModel = editor2._getViewModel();\n    if (viewModel) {\n      const previousCursorState = viewModel.getCursorStates();\n      const findController = CommonFindController.get(editor2);\n      if (findController) {\n        this._run(multiCursorController, findController);\n      } else {\n        const newFindController = accessor.get(IInstantiationService).createInstance(CommonFindController, editor2);\n        this._run(multiCursorController, newFindController);\n        newFindController.dispose();\n      }\n      announceCursorChange(previousCursorState, viewModel.getCursorStates());\n    }\n  }\n};\nvar AddSelectionToNextFindMatchAction = class extends MultiCursorSelectionControllerAction {\n  constructor() {\n    super({\n      id: \"editor.action.addSelectionToNextFindMatch\",\n      label: localize2(1290, \"Add Selection to Next Find Match\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 2048 | 34,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"3_multi\",\n        title: localize(1280, \"Add \u0026\u0026Next Occurrence\"),\n        order: 5\n      }\n    });\n  }\n  _run(multiCursorController, findController) {\n    multiCursorController.addSelectionToNextFindMatch(findController);\n  }\n};\nvar AddSelectionToPreviousFindMatchAction = class extends MultiCursorSelectionControllerAction {\n  constructor() {\n    super({\n      id: \"editor.action.addSelectionToPreviousFindMatch\",\n      label: localize2(1291, \"Add Selection to Previous Find Match\"),\n      precondition: void 0,\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"3_multi\",\n        title: localize(1281, \"Add P\u0026\u0026revious Occurrence\"),\n        order: 6\n      }\n    });\n  }\n  _run(multiCursorController, findController) {\n    multiCursorController.addSelectionToPreviousFindMatch(findController);\n  }\n};\nvar MoveSelectionToNextFindMatchAction = class extends MultiCursorSelectionControllerAction {\n  constructor() {\n    super({\n      id: \"editor.action.moveSelectionToNextFindMatch\",\n      label: localize2(1292, \"Move Last Selection to Next Find Match\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: KeyChord(\n          2048 | 41,\n          2048 | 34\n          /* KeyCode.KeyD */\n        ),\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  _run(multiCursorController, findController) {\n    multiCursorController.moveSelectionToNextFindMatch(findController);\n  }\n};\nvar MoveSelectionToPreviousFindMatchAction = class extends MultiCursorSelectionControllerAction {\n  constructor() {\n    super({\n      id: \"editor.action.moveSelectionToPreviousFindMatch\",\n      label: localize2(1293, \"Move Last Selection to Previous Find Match\"),\n      precondition: void 0\n    });\n  }\n  _run(multiCursorController, findController) {\n    multiCursorController.moveSelectionToPreviousFindMatch(findController);\n  }\n};\nvar SelectHighlightsAction = class extends MultiCursorSelectionControllerAction {\n  constructor() {\n    super({\n      id: \"editor.action.selectHighlights\",\n      label: localize2(1294, \"Select All Occurrences of Find Match\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 2048 | 1024 | 42,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"3_multi\",\n        title: localize(1282, \"Select All \u0026\u0026Occurrences\"),\n        order: 7\n      }\n    });\n  }\n  _run(multiCursorController, findController) {\n    multiCursorController.selectAll(findController);\n  }\n};\nvar CompatChangeAll = class extends MultiCursorSelectionControllerAction {\n  constructor() {\n    super({\n      id: \"editor.action.changeAll\",\n      label: localize2(1295, \"Change All Occurrences\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.editorTextFocus),\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 60,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      contextMenuOpts: {\n        group: \"1_modification\",\n        order: 1.2\n      }\n    });\n  }\n  _run(multiCursorController, findController) {\n    multiCursorController.selectAll(findController);\n  }\n};\nvar SelectionHighlighterState = class {\n  constructor(_model, _searchText, _matchCase, _wordSeparators, prevState) {\n    this._model = _model;\n    this._searchText = _searchText;\n    this._matchCase = _matchCase;\n    this._wordSeparators = _wordSeparators;\n    this._cachedFindMatches = null;\n    this._modelVersionId = this._model.getVersionId();\n    if (prevState \u0026\u0026 this._model === prevState._model \u0026\u0026 this._searchText === prevState._searchText \u0026\u0026 this._matchCase === prevState._matchCase \u0026\u0026 this._wordSeparators === prevState._wordSeparators \u0026\u0026 this._modelVersionId === prevState._modelVersionId) {\n      this._cachedFindMatches = prevState._cachedFindMatches;\n    }\n  }\n  findMatches() {\n    if (this._cachedFindMatches === null) {\n      this._cachedFindMatches = this._model.findMatches(this._searchText, true, false, this._matchCase, this._wordSeparators, false).map((m) =\u003e m.range);\n      this._cachedFindMatches.sort(Range.compareRangesUsingStarts);\n    }\n    return this._cachedFindMatches;\n  }\n};\nvar SelectionHighlighter = class SelectionHighlighter2 extends Disposable {\n  static {\n    SelectionHighlighter_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.selectionHighlighter\";\n  }\n  constructor(editor2, _languageFeaturesService) {\n    super();\n    this._languageFeaturesService = _languageFeaturesService;\n    this.editor = editor2;\n    this._isEnabled = editor2.getOption(\n      121\n      /* EditorOption.selectionHighlight */\n    );\n    this._isEnabledMultiline = editor2.getOption(\n      123\n      /* EditorOption.selectionHighlightMultiline */\n    );\n    this._maxLength = editor2.getOption(\n      122\n      /* EditorOption.selectionHighlightMaxLength */\n    );\n    this._decorations = editor2.createDecorationsCollection();\n    this.updateSoon = this._register(new RunOnceScheduler(() =\u003e this._update(), 300));\n    this.state = null;\n    this._register(editor2.onDidChangeConfiguration((e) =\u003e {\n      this._isEnabled = editor2.getOption(\n        121\n        /* EditorOption.selectionHighlight */\n      );\n      this._isEnabledMultiline = editor2.getOption(\n        123\n        /* EditorOption.selectionHighlightMultiline */\n      );\n      this._maxLength = editor2.getOption(\n        122\n        /* EditorOption.selectionHighlightMaxLength */\n      );\n    }));\n    this._register(editor2.onDidChangeCursorSelection((e) =\u003e {\n      if (!this._isEnabled) {\n        return;\n      }\n      if (e.selection.isEmpty()) {\n        if (e.reason === 3) {\n          if (this.state) {\n            this._setState(null);\n          }\n          this.updateSoon.schedule();\n        } else {\n          this._setState(null);\n        }\n      } else {\n        this._update();\n      }\n    }));\n    this._register(editor2.onDidChangeModel((e) =\u003e {\n      this._setState(null);\n    }));\n    this._register(editor2.onDidChangeModelContent((e) =\u003e {\n      if (this._isEnabled) {\n        this.updateSoon.schedule();\n      }\n    }));\n    const findController = CommonFindController.get(editor2);\n    if (findController) {\n      this._register(findController.getState().onFindReplaceStateChange((e) =\u003e {\n        this._update();\n      }));\n    }\n    this.updateSoon.schedule();\n  }\n  _update() {\n    this._setState(SelectionHighlighter_1._createState(this.state, this._isEnabled, this._isEnabledMultiline, this._maxLength, this.editor));\n  }\n  static _createState(oldState, isEnabled, isEnabledMultiline, maxLength, editor2) {\n    if (!isEnabled) {\n      return null;\n    }\n    if (!editor2.hasModel()) {\n      return null;\n    }\n    if (!isEnabledMultiline) {\n      const s = editor2.getSelection();\n      if (s.startLineNumber !== s.endLineNumber) {\n        return null;\n      }\n    }\n    const multiCursorController = MultiCursorSelectionController.get(editor2);\n    if (!multiCursorController) {\n      return null;\n    }\n    const findController = CommonFindController.get(editor2);\n    if (!findController) {\n      return null;\n    }\n    let r = multiCursorController.getSession(findController);\n    if (!r) {\n      const allSelections = editor2.getSelections();\n      if (allSelections.length \u003e 1) {\n        const findState2 = findController.getState();\n        const matchCase = findState2.matchCase;\n        const selectionsContainSameText = modelRangesContainSameText(editor2.getModel(), allSelections, matchCase);\n        if (!selectionsContainSameText) {\n          return null;\n        }\n      }\n      r = MultiCursorSession.create(editor2, findController);\n    }\n    if (!r) {\n      return null;\n    }\n    if (r.currentMatch) {\n      return null;\n    }\n    if (/^[ \\t]+$/.test(r.searchText)) {\n      return null;\n    }\n    if (maxLength \u003e 0 \u0026\u0026 r.searchText.length \u003e maxLength) {\n      return null;\n    }\n    const findState = findController.getState();\n    const caseSensitive = findState.matchCase;\n    if (findState.isRevealed) {\n      let findStateSearchString = findState.searchString;\n      if (!caseSensitive) {\n        findStateSearchString = findStateSearchString.toLowerCase();\n      }\n      let mySearchString = r.searchText;\n      if (!caseSensitive) {\n        mySearchString = mySearchString.toLowerCase();\n      }\n      if (findStateSearchString === mySearchString \u0026\u0026 r.matchCase === findState.matchCase \u0026\u0026 r.wholeWord === findState.wholeWord \u0026\u0026 !findState.isRegex) {\n        return null;\n      }\n    }\n    return new SelectionHighlighterState(editor2.getModel(), r.searchText, r.matchCase, r.wholeWord ? editor2.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ) : null, oldState);\n  }\n  _setState(newState) {\n    this.state = newState;\n    if (!this.state) {\n      this._decorations.clear();\n      return;\n    }\n    if (!this.editor.hasModel()) {\n      return;\n    }\n    const model = this.editor.getModel();\n    if (model.isTooLargeForTokenization()) {\n      return;\n    }\n    const allMatches = this.state.findMatches();\n    const selections = this.editor.getSelections();\n    selections.sort(Range.compareRangesUsingStarts);\n    const matches = [];\n    for (let i2 = 0, j = 0, len = allMatches.length, lenJ = selections.length; i2 \u003c len; ) {\n      const match2 = allMatches[i2];\n      if (j \u003e= lenJ) {\n        matches.push(match2);\n        i2++;\n      } else {\n        const cmp3 = Range.compareRangesUsingStarts(match2, selections[j]);\n        if (cmp3 \u003c 0) {\n          if (selections[j].isEmpty() || !Range.areIntersecting(match2, selections[j])) {\n            matches.push(match2);\n          }\n          i2++;\n        } else if (cmp3 \u003e 0) {\n          j++;\n        } else {\n          i2++;\n          j++;\n        }\n      }\n    }\n    const occurrenceHighlighting = this.editor.getOption(\n      89\n      /* EditorOption.occurrencesHighlight */\n    ) !== \"off\";\n    const hasSemanticHighlights = this._languageFeaturesService.documentHighlightProvider.has(model) \u0026\u0026 occurrenceHighlighting;\n    const decorations = matches.map((r) =\u003e {\n      return {\n        range: r,\n        options: getSelectionHighlightDecorationOptions(hasSemanticHighlights)\n      };\n    });\n    this._decorations.set(decorations);\n  }\n  dispose() {\n    this._setState(null);\n    super.dispose();\n  }\n};\nSelectionHighlighter = SelectionHighlighter_1 = __decorate138([\n  __param132(1, ILanguageFeaturesService)\n], SelectionHighlighter);\nfunction modelRangesContainSameText(model, ranges, matchCase) {\n  const selectedText = getValueInRange(model, ranges[0], !matchCase);\n  for (let i2 = 1, len = ranges.length; i2 \u003c len; i2++) {\n    const range2 = ranges[i2];\n    if (range2.isEmpty()) {\n      return false;\n    }\n    const thisSelectedText = getValueInRange(model, range2, !matchCase);\n    if (selectedText !== thisSelectedText) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction getValueInRange(model, range2, toLowerCase) {\n  const text2 = model.getValueInRange(range2);\n  return toLowerCase ? text2.toLowerCase() : text2;\n}\nvar FocusNextCursor = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.focusNextCursor\",\n      label: localize2(1296, \"Focus Next Cursor\"),\n      metadata: {\n        description: localize(1283, \"Focuses the next cursor\"),\n        args: []\n      },\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2, args) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const viewModel = editor2._getViewModel();\n    if (viewModel.cursorConfig.readOnly) {\n      return;\n    }\n    viewModel.model.pushStackElement();\n    const previousCursorState = Array.from(viewModel.getCursorStates());\n    const firstCursor = previousCursorState.shift();\n    if (!firstCursor) {\n      return;\n    }\n    previousCursorState.push(firstCursor);\n    viewModel.setCursorStates(args.source, 3, previousCursorState);\n    viewModel.revealPrimaryCursor(args.source, true);\n    announceCursorChange(previousCursorState, viewModel.getCursorStates());\n  }\n};\nvar FocusPreviousCursor = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.focusPreviousCursor\",\n      label: localize2(1297, \"Focus Previous Cursor\"),\n      metadata: {\n        description: localize(1284, \"Focuses the previous cursor\"),\n        args: []\n      },\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2, args) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const viewModel = editor2._getViewModel();\n    if (viewModel.cursorConfig.readOnly) {\n      return;\n    }\n    viewModel.model.pushStackElement();\n    const previousCursorState = Array.from(viewModel.getCursorStates());\n    const firstCursor = previousCursorState.pop();\n    if (!firstCursor) {\n      return;\n    }\n    previousCursorState.unshift(firstCursor);\n    viewModel.setCursorStates(args.source, 3, previousCursorState);\n    viewModel.revealPrimaryCursor(args.source, true);\n    announceCursorChange(previousCursorState, viewModel.getCursorStates());\n  }\n};\nregisterEditorContribution(\n  MultiCursorSelectionController.ID,\n  MultiCursorSelectionController,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\nregisterEditorContribution(\n  SelectionHighlighter.ID,\n  SelectionHighlighter,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nregisterEditorAction(InsertCursorAbove);\nregisterEditorAction(InsertCursorBelow);\nregisterEditorAction(InsertCursorAtEndOfEachLineSelected);\nregisterEditorAction(AddSelectionToNextFindMatchAction);\nregisterEditorAction(AddSelectionToPreviousFindMatchAction);\nregisterEditorAction(MoveSelectionToNextFindMatchAction);\nregisterEditorAction(MoveSelectionToPreviousFindMatchAction);\nregisterEditorAction(SelectHighlightsAction);\nregisterEditorAction(CompatChangeAll);\nregisterEditorAction(InsertCursorAtEndOfLineSelected);\nregisterEditorAction(InsertCursorAtTopOfLineSelected);\nregisterEditorAction(FocusNextCursor);\nregisterEditorAction(FocusPreviousCursor);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js\ninit_lazy();\ninit_lifecycle();\ninit_editorExtensions();\ninit_editorContextKeys();\ninit_languages();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js\ninit_async();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_characterClassifier();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/parameterHints/browser/provideSignatureHelp.js\ninit_cancellation();\ninit_errors();\ninit_types();\ninit_uri();\ninit_position();\ninit_languages();\ninit_languageFeatures();\ninit_resolverService();\ninit_commands();\ninit_contextkey();\nvar Context2 = {\n  Visible: new RawContextKey(\"parameterHintsVisible\", false),\n  MultipleSignatures: new RawContextKey(\"parameterHintsMultipleSignatures\", false)\n};\nasync function provideSignatureHelp(registry, model, position, context, token) {\n  const supports = registry.ordered(model);\n  for (const support of supports) {\n    try {\n      const result = await support.provideSignatureHelp(model, position, token, context);\n      if (result) {\n        return result;\n      }\n    } catch (err) {\n      onUnexpectedExternalError(err);\n    }\n  }\n  return void 0;\n}\nCommandsRegistry.registerCommand(\"_executeSignatureHelpProvider\", async (accessor, ...args) =\u003e {\n  const [uri, position, triggerCharacter] = args;\n  assertType(URI.isUri(uri));\n  assertType(Position.isIPosition(position));\n  assertType(typeof triggerCharacter === \"string\" || !triggerCharacter);\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const ref = await accessor.get(ITextModelService).createModelReference(uri);\n  try {\n    const result = await provideSignatureHelp(languageFeaturesService.signatureHelpProvider, ref.object.textEditorModel, Position.lift(position), {\n      triggerKind: SignatureHelpTriggerKind.Invoke,\n      isRetrigger: false,\n      triggerCharacter\n    }, CancellationToken.None);\n    if (!result) {\n      return void 0;\n    }\n    setTimeout(() =\u003e result.dispose(), 0);\n    return result.value;\n  } finally {\n    ref.dispose();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js\nvar ParameterHintState;\n(function(ParameterHintState2) {\n  ParameterHintState2.Default = {\n    type: 0\n    /* Type.Default */\n  };\n  class Pending {\n    constructor(request, previouslyActiveHints) {\n      this.request = request;\n      this.previouslyActiveHints = previouslyActiveHints;\n      this.type = 2;\n    }\n  }\n  ParameterHintState2.Pending = Pending;\n  class Active {\n    constructor(hints) {\n      this.hints = hints;\n      this.type = 1;\n    }\n  }\n  ParameterHintState2.Active = Active;\n})(ParameterHintState || (ParameterHintState = {}));\nvar ParameterHintsModel = class _ParameterHintsModel extends Disposable {\n  static {\n    this.DEFAULT_DELAY = 120;\n  }\n  // ms\n  constructor(editor2, providers, delay = _ParameterHintsModel.DEFAULT_DELAY) {\n    super();\n    this._onChangedHints = this._register(new Emitter());\n    this.onChangedHints = this._onChangedHints.event;\n    this.triggerOnType = false;\n    this._state = ParameterHintState.Default;\n    this._pendingTriggers = [];\n    this._lastSignatureHelpResult = this._register(new MutableDisposable());\n    this.triggerChars = new CharacterSet();\n    this.retriggerChars = new CharacterSet();\n    this.triggerId = 0;\n    this.editor = editor2;\n    this.providers = providers;\n    this.throttledDelayer = new Delayer(delay);\n    this._register(this.editor.onDidBlurEditorWidget(() =\u003e this.cancel()));\n    this._register(this.editor.onDidChangeConfiguration(() =\u003e this.onEditorConfigurationChange()));\n    this._register(this.editor.onDidChangeModel((e) =\u003e this.onModelChanged()));\n    this._register(this.editor.onDidChangeModelLanguage((_) =\u003e this.onModelChanged()));\n    this._register(this.editor.onDidChangeCursorSelection((e) =\u003e this.onCursorChange(e)));\n    this._register(this.editor.onDidChangeModelContent((e) =\u003e this.onModelContentChange()));\n    this._register(this.providers.onDidChange(this.onModelChanged, this));\n    this._register(this.editor.onDidType((text2) =\u003e this.onDidType(text2)));\n    this.onEditorConfigurationChange();\n    this.onModelChanged();\n  }\n  get state() {\n    return this._state;\n  }\n  set state(value) {\n    if (this._state.type === 2) {\n      this._state.request.cancel();\n    }\n    this._state = value;\n  }\n  cancel(silent = false) {\n    this.state = ParameterHintState.Default;\n    this.throttledDelayer.cancel();\n    if (!silent) {\n      this._onChangedHints.fire(void 0);\n    }\n  }\n  trigger(context, delay) {\n    const model = this.editor.getModel();\n    if (!model || !this.providers.has(model)) {\n      return;\n    }\n    const triggerId = ++this.triggerId;\n    this._pendingTriggers.push(context);\n    this.throttledDelayer.trigger(() =\u003e {\n      return this.doTrigger(triggerId);\n    }, delay).catch(onUnexpectedError);\n  }\n  next() {\n    if (this.state.type !== 1) {\n      return;\n    }\n    const length = this.state.hints.signatures.length;\n    const activeSignature = this.state.hints.activeSignature;\n    const last = activeSignature % length === length - 1;\n    const cycle = this.editor.getOption(\n      97\n      /* EditorOption.parameterHints */\n    ).cycle;\n    if ((length \u003c 2 || last) \u0026\u0026 !cycle) {\n      this.cancel();\n      return;\n    }\n    this.updateActiveSignature(last \u0026\u0026 cycle ? 0 : activeSignature + 1);\n  }\n  previous() {\n    if (this.state.type !== 1) {\n      return;\n    }\n    const length = this.state.hints.signatures.length;\n    const activeSignature = this.state.hints.activeSignature;\n    const first2 = activeSignature === 0;\n    const cycle = this.editor.getOption(\n      97\n      /* EditorOption.parameterHints */\n    ).cycle;\n    if ((length \u003c 2 || first2) \u0026\u0026 !cycle) {\n      this.cancel();\n      return;\n    }\n    this.updateActiveSignature(first2 \u0026\u0026 cycle ? length - 1 : activeSignature - 1);\n  }\n  updateActiveSignature(activeSignature) {\n    if (this.state.type !== 1) {\n      return;\n    }\n    this.state = new ParameterHintState.Active({ ...this.state.hints, activeSignature });\n    this._onChangedHints.fire(this.state.hints);\n  }\n  async doTrigger(triggerId) {\n    const isRetrigger = this.state.type === 1 || this.state.type === 2;\n    const activeSignatureHelp = this.getLastActiveHints();\n    this.cancel(true);\n    if (this._pendingTriggers.length === 0) {\n      return false;\n    }\n    const context = this._pendingTriggers.reduce(mergeTriggerContexts);\n    this._pendingTriggers = [];\n    const triggerContext = {\n      triggerKind: context.triggerKind,\n      triggerCharacter: context.triggerCharacter,\n      isRetrigger,\n      activeSignatureHelp\n    };\n    if (!this.editor.hasModel()) {\n      return false;\n    }\n    const model = this.editor.getModel();\n    const position = this.editor.getPosition();\n    this.state = new ParameterHintState.Pending(createCancelablePromise((token) =\u003e provideSignatureHelp(this.providers, model, position, triggerContext, token)), activeSignatureHelp);\n    try {\n      const result = await this.state.request;\n      if (triggerId !== this.triggerId) {\n        result?.dispose();\n        return false;\n      }\n      if (!result || !result.value.signatures || result.value.signatures.length === 0) {\n        result?.dispose();\n        this._lastSignatureHelpResult.clear();\n        this.cancel();\n        return false;\n      } else {\n        this.state = new ParameterHintState.Active(result.value);\n        this._lastSignatureHelpResult.value = result;\n        this._onChangedHints.fire(this.state.hints);\n        return true;\n      }\n    } catch (error) {\n      if (triggerId === this.triggerId) {\n        this.state = ParameterHintState.Default;\n      }\n      onUnexpectedError(error);\n      return false;\n    }\n  }\n  getLastActiveHints() {\n    switch (this.state.type) {\n      case 1:\n        return this.state.hints;\n      case 2:\n        return this.state.previouslyActiveHints;\n      default:\n        return void 0;\n    }\n  }\n  get isTriggered() {\n    return this.state.type === 1 || this.state.type === 2 || this.throttledDelayer.isTriggered();\n  }\n  onModelChanged() {\n    this.cancel();\n    this.triggerChars.clear();\n    this.retriggerChars.clear();\n    const model = this.editor.getModel();\n    if (!model) {\n      return;\n    }\n    for (const support of this.providers.ordered(model)) {\n      for (const ch of support.signatureHelpTriggerCharacters || []) {\n        if (ch.length) {\n          const charCode = ch.charCodeAt(0);\n          this.triggerChars.add(charCode);\n          this.retriggerChars.add(charCode);\n        }\n      }\n      for (const ch of support.signatureHelpRetriggerCharacters || []) {\n        if (ch.length) {\n          this.retriggerChars.add(ch.charCodeAt(0));\n        }\n      }\n    }\n  }\n  onDidType(text2) {\n    if (!this.triggerOnType) {\n      return;\n    }\n    const lastCharIndex = text2.length - 1;\n    const triggerCharCode = text2.charCodeAt(lastCharIndex);\n    if (this.triggerChars.has(triggerCharCode) || this.isTriggered \u0026\u0026 this.retriggerChars.has(triggerCharCode)) {\n      this.trigger({\n        triggerKind: SignatureHelpTriggerKind.TriggerCharacter,\n        triggerCharacter: text2.charAt(lastCharIndex)\n      });\n    }\n  }\n  onCursorChange(e) {\n    if (e.source === \"mouse\") {\n      this.cancel();\n    } else if (this.isTriggered) {\n      this.trigger({ triggerKind: SignatureHelpTriggerKind.ContentChange });\n    }\n  }\n  onModelContentChange() {\n    if (this.isTriggered) {\n      this.trigger({ triggerKind: SignatureHelpTriggerKind.ContentChange });\n    }\n  }\n  onEditorConfigurationChange() {\n    this.triggerOnType = this.editor.getOption(\n      97\n      /* EditorOption.parameterHints */\n    ).enabled;\n    if (!this.triggerOnType) {\n      this.cancel();\n    }\n  }\n  dispose() {\n    this.cancel(true);\n    super.dispose();\n  }\n};\nfunction mergeTriggerContexts(previous, current) {\n  switch (current.triggerKind) {\n    case SignatureHelpTriggerKind.Invoke:\n      return current;\n    case SignatureHelpTriggerKind.ContentChange:\n      return previous;\n    case SignatureHelpTriggerKind.TriggerCharacter:\n    default:\n      return current;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js\ninit_nls();\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js\ninit_dom();\ninit_codicons();\ninit_event();\ninit_lifecycle();\ninit_strings();\ninit_types();\ninit_language();\ninit_nls();\ninit_contextkey();\ninit_colorRegistry();\ninit_themables();\nvar __decorate139 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param133 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ParameterHintsWidget_1;\nvar $16 = $;\nvar parameterHintsNextIcon = registerIcon(\"parameter-hints-next\", Codicon.chevronDown, localize(1299, \"Icon for show next parameter hint.\"));\nvar parameterHintsPreviousIcon = registerIcon(\"parameter-hints-previous\", Codicon.chevronUp, localize(1300, \"Icon for show previous parameter hint.\"));\nvar ParameterHintsWidget = class ParameterHintsWidget2 extends Disposable {\n  static {\n    ParameterHintsWidget_1 = this;\n  }\n  static {\n    this.ID = \"editor.widget.parameterHintsWidget\";\n  }\n  constructor(editor2, model, contextKeyService, openerService, languageService) {\n    super();\n    this.editor = editor2;\n    this.model = model;\n    this.renderDisposeables = this._register(new DisposableStore());\n    this.visible = false;\n    this.announcedLabel = null;\n    this.allowEditorOverflow = true;\n    this.markdownRenderer = new MarkdownRenderer({ editor: editor2 }, languageService, openerService);\n    this.keyVisible = Context2.Visible.bindTo(contextKeyService);\n    this.keyMultipleSignatures = Context2.MultipleSignatures.bindTo(contextKeyService);\n  }\n  createParameterHintDOMNodes() {\n    const element = $16(\".editor-widget.parameter-hints-widget\");\n    const wrapper = append(element, $16(\".phwrapper\"));\n    wrapper.tabIndex = -1;\n    const controls = append(wrapper, $16(\".controls\"));\n    const previous = append(controls, $16(\".button\" + ThemeIcon.asCSSSelector(parameterHintsPreviousIcon)));\n    const overloads = append(controls, $16(\".overloads\"));\n    const next = append(controls, $16(\".button\" + ThemeIcon.asCSSSelector(parameterHintsNextIcon)));\n    this._register(addDisposableListener(previous, \"click\", (e) =\u003e {\n      EventHelper.stop(e);\n      this.previous();\n    }));\n    this._register(addDisposableListener(next, \"click\", (e) =\u003e {\n      EventHelper.stop(e);\n      this.next();\n    }));\n    const body = $16(\".body\");\n    const scrollbar = new DomScrollableElement(body, {\n      alwaysConsumeMouseWheel: true\n    });\n    this._register(scrollbar);\n    wrapper.appendChild(scrollbar.getDomNode());\n    const signature = append(body, $16(\".signature\"));\n    const docs = append(body, $16(\".docs\"));\n    element.style.userSelect = \"text\";\n    this.domNodes = {\n      element,\n      signature,\n      overloads,\n      docs,\n      scrollbar\n    };\n    this.editor.addContentWidget(this);\n    this.hide();\n    this._register(this.editor.onDidChangeCursorSelection((e) =\u003e {\n      if (this.visible) {\n        this.editor.layoutContentWidget(this);\n      }\n    }));\n    const updateFont = () =\u003e {\n      if (!this.domNodes) {\n        return;\n      }\n      const fontInfo = this.editor.getOption(\n        59\n        /* EditorOption.fontInfo */\n      );\n      const element2 = this.domNodes.element;\n      element2.style.fontSize = `${fontInfo.fontSize}px`;\n      element2.style.lineHeight = `${fontInfo.lineHeight / fontInfo.fontSize}`;\n      element2.style.setProperty(\"--vscode-parameterHintsWidget-editorFontFamily\", fontInfo.fontFamily);\n      element2.style.setProperty(\"--vscode-parameterHintsWidget-editorFontFamilyDefault\", EDITOR_FONT_DEFAULTS.fontFamily);\n    };\n    updateFont();\n    this._register(Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor), ($23) =\u003e $23.filter((e) =\u003e e.hasChanged(\n      59\n      /* EditorOption.fontInfo */\n    )))(updateFont));\n    this._register(this.editor.onDidLayoutChange((e) =\u003e this.updateMaxHeight()));\n    this.updateMaxHeight();\n  }\n  show() {\n    if (this.visible) {\n      return;\n    }\n    if (!this.domNodes) {\n      this.createParameterHintDOMNodes();\n    }\n    this.keyVisible.set(true);\n    this.visible = true;\n    setTimeout(() =\u003e {\n      this.domNodes?.element.classList.add(\"visible\");\n    }, 100);\n    this.editor.layoutContentWidget(this);\n  }\n  hide() {\n    this.renderDisposeables.clear();\n    if (!this.visible) {\n      return;\n    }\n    this.keyVisible.reset();\n    this.visible = false;\n    this.announcedLabel = null;\n    this.domNodes?.element.classList.remove(\"visible\");\n    this.editor.layoutContentWidget(this);\n  }\n  getPosition() {\n    if (this.visible) {\n      return {\n        position: this.editor.getPosition(),\n        preference: [\n          1,\n          2\n          /* ContentWidgetPositionPreference.BELOW */\n        ]\n      };\n    }\n    return null;\n  }\n  render(hints) {\n    this.renderDisposeables.clear();\n    if (!this.domNodes) {\n      return;\n    }\n    const multiple = hints.signatures.length \u003e 1;\n    this.domNodes.element.classList.toggle(\"multiple\", multiple);\n    this.keyMultipleSignatures.set(multiple);\n    this.domNodes.signature.innerText = \"\";\n    this.domNodes.docs.innerText = \"\";\n    const signature = hints.signatures[hints.activeSignature];\n    if (!signature) {\n      return;\n    }\n    const code = append(this.domNodes.signature, $16(\".code\"));\n    const hasParameters = signature.parameters.length \u003e 0;\n    const activeParameterIndex = signature.activeParameter ?? hints.activeParameter;\n    if (!hasParameters) {\n      const label = append(code, $16(\"span\"));\n      label.textContent = signature.label;\n    } else {\n      this.renderParameters(code, signature, activeParameterIndex);\n    }\n    const activeParameter = signature.parameters[activeParameterIndex];\n    if (activeParameter?.documentation) {\n      const documentation = $16(\"span.documentation\");\n      if (typeof activeParameter.documentation === \"string\") {\n        documentation.textContent = activeParameter.documentation;\n      } else {\n        const renderedContents = this.renderMarkdownDocs(activeParameter.documentation);\n        documentation.appendChild(renderedContents.element);\n      }\n      append(this.domNodes.docs, $16(\"p\", {}, documentation));\n    }\n    if (signature.documentation === void 0) {\n    } else if (typeof signature.documentation === \"string\") {\n      append(this.domNodes.docs, $16(\"p\", {}, signature.documentation));\n    } else {\n      const renderedContents = this.renderMarkdownDocs(signature.documentation);\n      append(this.domNodes.docs, renderedContents.element);\n    }\n    const hasDocs = this.hasDocs(signature, activeParameter);\n    this.domNodes.signature.classList.toggle(\"has-docs\", hasDocs);\n    this.domNodes.docs.classList.toggle(\"empty\", !hasDocs);\n    this.domNodes.overloads.textContent = String(hints.activeSignature + 1).padStart(hints.signatures.length.toString().length, \"0\") + \"/\" + hints.signatures.length;\n    if (activeParameter) {\n      let labelToAnnounce = \"\";\n      const param = signature.parameters[activeParameterIndex];\n      if (Array.isArray(param.label)) {\n        labelToAnnounce = signature.label.substring(param.label[0], param.label[1]);\n      } else {\n        labelToAnnounce = param.label;\n      }\n      if (param.documentation) {\n        labelToAnnounce += typeof param.documentation === \"string\" ? `, ${param.documentation}` : `, ${param.documentation.value}`;\n      }\n      if (signature.documentation) {\n        labelToAnnounce += typeof signature.documentation === \"string\" ? `, ${signature.documentation}` : `, ${signature.documentation.value}`;\n      }\n      if (this.announcedLabel !== labelToAnnounce) {\n        alert(localize(1301, \"{0}, hint\", labelToAnnounce));\n        this.announcedLabel = labelToAnnounce;\n      }\n    }\n    this.editor.layoutContentWidget(this);\n    this.domNodes.scrollbar.scanDomNode();\n  }\n  renderMarkdownDocs(markdown) {\n    const renderedContents = this.renderDisposeables.add(this.markdownRenderer.render(markdown, {\n      asyncRenderCallback: () =\u003e {\n        this.domNodes?.scrollbar.scanDomNode();\n      }\n    }));\n    renderedContents.element.classList.add(\"markdown-docs\");\n    return renderedContents;\n  }\n  hasDocs(signature, activeParameter) {\n    if (activeParameter \u0026\u0026 typeof activeParameter.documentation === \"string\" \u0026\u0026 assertReturnsDefined(activeParameter.documentation).length \u003e 0) {\n      return true;\n    }\n    if (activeParameter \u0026\u0026 typeof activeParameter.documentation === \"object\" \u0026\u0026 assertReturnsDefined(activeParameter.documentation).value.length \u003e 0) {\n      return true;\n    }\n    if (signature.documentation \u0026\u0026 typeof signature.documentation === \"string\" \u0026\u0026 assertReturnsDefined(signature.documentation).length \u003e 0) {\n      return true;\n    }\n    if (signature.documentation \u0026\u0026 typeof signature.documentation === \"object\" \u0026\u0026 assertReturnsDefined(signature.documentation.value).length \u003e 0) {\n      return true;\n    }\n    return false;\n  }\n  renderParameters(parent, signature, activeParameterIndex) {\n    const [start, end] = this.getParameterLabelOffsets(signature, activeParameterIndex);\n    const beforeSpan = document.createElement(\"span\");\n    beforeSpan.textContent = signature.label.substring(0, start);\n    const paramSpan = document.createElement(\"span\");\n    paramSpan.textContent = signature.label.substring(start, end);\n    paramSpan.className = \"parameter active\";\n    const afterSpan = document.createElement(\"span\");\n    afterSpan.textContent = signature.label.substring(end);\n    append(parent, beforeSpan, paramSpan, afterSpan);\n  }\n  getParameterLabelOffsets(signature, paramIdx) {\n    const param = signature.parameters[paramIdx];\n    if (!param) {\n      return [0, 0];\n    } else if (Array.isArray(param.label)) {\n      return param.label;\n    } else if (!param.label.length) {\n      return [0, 0];\n    } else {\n      const regex = new RegExp(`(\\\\W|^)${escapeRegExpCharacters(param.label)}(?=\\\\W|$)`, \"g\");\n      regex.test(signature.label);\n      const idx = regex.lastIndex - param.label.length;\n      return idx \u003e= 0 ? [idx, regex.lastIndex] : [0, 0];\n    }\n  }\n  next() {\n    this.editor.focus();\n    this.model.next();\n  }\n  previous() {\n    this.editor.focus();\n    this.model.previous();\n  }\n  getDomNode() {\n    if (!this.domNodes) {\n      this.createParameterHintDOMNodes();\n    }\n    return this.domNodes.element;\n  }\n  getId() {\n    return ParameterHintsWidget_1.ID;\n  }\n  updateMaxHeight() {\n    if (!this.domNodes) {\n      return;\n    }\n    const height = Math.max(this.editor.getLayoutInfo().height / 4, 250);\n    const maxHeight = `${height}px`;\n    this.domNodes.element.style.maxHeight = maxHeight;\n    const wrapper = this.domNodes.element.getElementsByClassName(\"phwrapper\");\n    if (wrapper.length) {\n      wrapper[0].style.maxHeight = maxHeight;\n    }\n  }\n};\nParameterHintsWidget = ParameterHintsWidget_1 = __decorate139([\n  __param133(2, IContextKeyService),\n  __param133(3, IOpenerService),\n  __param133(4, ILanguageService)\n], ParameterHintsWidget);\nregisterColor(\"editorHoverWidget.highlightForeground\", listHighlightForeground, localize(1302, \"Foreground color of the active item in the parameter hint.\"));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js\nvar __decorate140 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param134 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ParameterHintsController_1;\nvar ParameterHintsController = class ParameterHintsController2 extends Disposable {\n  static {\n    ParameterHintsController_1 = this;\n  }\n  static {\n    this.ID = \"editor.controller.parameterHints\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(ParameterHintsController_1.ID);\n  }\n  constructor(editor2, instantiationService, languageFeaturesService) {\n    super();\n    this.editor = editor2;\n    this.model = this._register(new ParameterHintsModel(editor2, languageFeaturesService.signatureHelpProvider));\n    this._register(this.model.onChangedHints((newParameterHints) =\u003e {\n      if (newParameterHints) {\n        this.widget.value.show();\n        this.widget.value.render(newParameterHints);\n      } else {\n        this.widget.rawValue?.hide();\n      }\n    }));\n    this.widget = new Lazy(() =\u003e this._register(instantiationService.createInstance(ParameterHintsWidget, this.editor, this.model)));\n  }\n  cancel() {\n    this.model.cancel();\n  }\n  previous() {\n    this.widget.rawValue?.previous();\n  }\n  next() {\n    this.widget.rawValue?.next();\n  }\n  trigger(context) {\n    this.model.trigger(context, 0);\n  }\n};\nParameterHintsController = ParameterHintsController_1 = __decorate140([\n  __param134(1, IInstantiationService),\n  __param134(2, ILanguageFeaturesService)\n], ParameterHintsController);\nvar TriggerParameterHintsAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.triggerParameterHints\",\n      label: localize2(1298, \"Trigger Parameter Hints\"),\n      precondition: EditorContextKeys.hasSignatureHelpProvider,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 2048 | 1024 | 10,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2) {\n    const controller = ParameterHintsController.get(editor2);\n    controller?.trigger({\n      triggerKind: SignatureHelpTriggerKind.Invoke\n    });\n  }\n};\nregisterEditorContribution(\n  ParameterHintsController.ID,\n  ParameterHintsController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\nregisterEditorAction(TriggerParameterHintsAction);\nvar weight3 = 100 + 75;\nvar ParameterHintsCommand = EditorCommand.bindToContribution(ParameterHintsController.get);\nregisterEditorCommand(new ParameterHintsCommand({\n  id: \"closeParameterHints\",\n  precondition: Context2.Visible,\n  handler: (x) =\u003e x.cancel(),\n  kbOpts: {\n    weight: weight3,\n    kbExpr: EditorContextKeys.focus,\n    primary: 9,\n    secondary: [\n      1024 | 9\n      /* KeyCode.Escape */\n    ]\n  }\n}));\nregisterEditorCommand(new ParameterHintsCommand({\n  id: \"showPrevParameterHint\",\n  precondition: ContextKeyExpr.and(Context2.Visible, Context2.MultipleSignatures),\n  handler: (x) =\u003e x.previous(),\n  kbOpts: {\n    weight: weight3,\n    kbExpr: EditorContextKeys.focus,\n    primary: 16,\n    secondary: [\n      512 | 16\n      /* KeyCode.UpArrow */\n    ],\n    mac: { primary: 16, secondary: [\n      512 | 16,\n      256 | 46\n      /* KeyCode.KeyP */\n    ] }\n  }\n}));\nregisterEditorCommand(new ParameterHintsCommand({\n  id: \"showNextParameterHint\",\n  precondition: ContextKeyExpr.and(Context2.Visible, Context2.MultipleSignatures),\n  handler: (x) =\u003e x.next(),\n  kbOpts: {\n    weight: weight3,\n    kbExpr: EditorContextKeys.focus,\n    primary: 18,\n    secondary: [\n      512 | 18\n      /* KeyCode.DownArrow */\n    ],\n    mac: { primary: 18, secondary: [\n      512 | 18,\n      256 | 44\n      /* KeyCode.KeyN */\n    ] }\n  }\n}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js\ninit_editorExtensions();\ninit_editorColorRegistry();\ninit_nls();\ninit_colorUtils();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/placeholderText/browser/placeholderTextContribution.js\ninit_dom();\ninit_equals();\ninit_lifecycle();\ninit_observable();\ninit_observableCodeEditor();\nvar PlaceholderTextContribution = class extends Disposable {\n  static {\n    this.ID = \"editor.contrib.placeholderText\";\n  }\n  constructor(_editor) {\n    super();\n    this._editor = _editor;\n    this._editorObs = observableCodeEditor(this._editor);\n    this._placeholderText = this._editorObs.getOption(\n      99\n      /* EditorOption.placeholder */\n    );\n    this._state = derivedOpts({ owner: this, equalsFn: structuralEquals }, (reader) =\u003e {\n      const p = this._placeholderText.read(reader);\n      if (!p) {\n        return void 0;\n      }\n      if (!this._editorObs.valueIsEmpty.read(reader)) {\n        return void 0;\n      }\n      return { placeholder: p };\n    });\n    this._shouldViewBeAlive = isOrWasTrue(this, (reader) =\u003e this._state.read(reader)?.placeholder !== void 0);\n    this._view = derived((reader) =\u003e {\n      if (!this._shouldViewBeAlive.read(reader)) {\n        return;\n      }\n      const element = h(\"div.editorPlaceholder\");\n      reader.store.add(autorun((reader2) =\u003e {\n        const data = this._state.read(reader2);\n        const shouldBeVisibile = data?.placeholder !== void 0;\n        element.root.style.display = shouldBeVisibile ? \"block\" : \"none\";\n        element.root.innerText = data?.placeholder ?? \"\";\n      }));\n      reader.store.add(autorun((reader2) =\u003e {\n        const info = this._editorObs.layoutInfo.read(reader2);\n        element.root.style.left = `${info.contentLeft}px`;\n        element.root.style.width = info.contentWidth - info.verticalScrollbarWidth + \"px\";\n        element.root.style.top = `${this._editor.getTopForLineNumber(0)}px`;\n      }));\n      reader.store.add(autorun((reader2) =\u003e {\n        element.root.style.fontFamily = this._editorObs.getOption(\n          58\n          /* EditorOption.fontFamily */\n        ).read(reader2);\n        element.root.style.fontSize = this._editorObs.getOption(\n          61\n          /* EditorOption.fontSize */\n        ).read(reader2) + \"px\";\n        element.root.style.lineHeight = this._editorObs.getOption(\n          75\n          /* EditorOption.lineHeight */\n        ).read(reader2) + \"px\";\n      }));\n      reader.store.add(this._editorObs.createOverlayWidget({\n        allowEditorOverflow: false,\n        minContentWidthInPx: constObservable(0),\n        position: constObservable(null),\n        domNode: element.root\n      }));\n    });\n    this._view.recomputeInitiallyAndOnChange(this._store);\n  }\n};\nfunction isOrWasTrue(owner, fn) {\n  return derivedObservableWithCache(owner, (reader, lastValue) =\u003e {\n    if (lastValue === true) {\n      return true;\n    }\n    return fn(reader);\n  });\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/observable/common/wrapInReloadableClass.js\ninit_observable();\ninit_instantiation();\nvar __decorate141 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param135 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar BaseClass2 = class {\n  constructor(instantiationService) {\n    this.instantiationService = instantiationService;\n  }\n  init(...params) {\n  }\n};\nfunction createWrapper2(getClass, B) {\n  return class ReloadableWrapper extends B {\n    constructor() {\n      super(...arguments);\n      this._autorun = void 0;\n    }\n    init(...params) {\n      this._autorun = autorunWithStore((reader, store) =\u003e {\n        const clazz = readHotReloadableExport(getClass(), reader);\n        store.add(this.instantiationService.createInstance(clazz, ...params));\n      });\n    }\n    dispose() {\n      this._autorun?.dispose();\n    }\n  };\n}\nfunction wrapInReloadableClass1(getClass) {\n  return !isHotReloadEnabled() ? getClass() : createWrapper2(getClass, BaseClass13);\n}\nvar BaseClass13 = class BaseClass14 extends BaseClass2 {\n  constructor(param1, i2) {\n    super(i2);\n    this.init(param1);\n  }\n};\nBaseClass13 = __decorate141([\n  __param135(1, IInstantiationService)\n], BaseClass13);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js\nregisterEditorContribution(\n  PlaceholderTextContribution.ID,\n  wrapInReloadableClass1(() =\u003e PlaceholderTextContribution),\n  0\n  /* EditorContributionInstantiation.Eager */\n);\nregisterColor(\"editor.placeholder.foreground\", ghostTextForeground, localize(1321, \"Foreground color of the placeholder text in the editor.\"));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/rename/browser/rename.js\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_htmlContent();\ninit_lifecycle();\ninit_types();\ninit_uri();\ninit_nls();\ninit_actions2();\ninit_configurationRegistry();\ninit_contextkey();\ninit_instantiation();\ninit_log();\ninit_platform2();\ninit_editorExtensions();\ninit_codeEditorService();\ninit_position();\ninit_range();\ninit_editorContextKeys();\ninit_languages();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/textResourceConfiguration.js\ninit_instantiation();\nvar ITextResourceConfigurationService = createDecorator(\"textResourceConfigurationService\");\nvar ITextResourcePropertiesService = createDecorator(\"textResourcePropertiesService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/rename/browser/rename.js\ninit_textModelEditSource();\ninit_editorState();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/rename/browser/renameWidget.js\ninit_dom();\ninit_keyboardEvent();\ninit_iconLabels2();\ninit_arrays();\ninit_async();\ninit_cancellation();\ninit_codicons();\ninit_event();\ninit_lifecycle();\ninit_stopwatch();\ninit_types();\ninit_position();\ninit_range();\ninit_languages();\ninit_nls();\ninit_contextkey();\ninit_log();\ninit_colorRegistry();\ninit_themeService();\nvar __decorate142 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param136 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar _sticky4 = false;\nvar CONTEXT_RENAME_INPUT_VISIBLE = new RawContextKey(\"renameInputVisible\", false, localize(1373, \"Whether the rename input widget is visible\"));\nvar CONTEXT_RENAME_INPUT_FOCUSED = new RawContextKey(\"renameInputFocused\", false, localize(1374, \"Whether the rename input widget is focused\"));\nvar RenameWidget = class RenameWidget2 {\n  constructor(_editor, _acceptKeybindings, _themeService, _keybindingService, contextKeyService, _logService) {\n    this._editor = _editor;\n    this._acceptKeybindings = _acceptKeybindings;\n    this._themeService = _themeService;\n    this._keybindingService = _keybindingService;\n    this._logService = _logService;\n    this.allowEditorOverflow = true;\n    this._disposables = new DisposableStore();\n    this._visibleContextKey = CONTEXT_RENAME_INPUT_VISIBLE.bindTo(contextKeyService);\n    this._isEditingRenameCandidate = false;\n    this._nRenameSuggestionsInvocations = 0;\n    this._hadAutomaticRenameSuggestionsInvocation = false;\n    this._candidates = /* @__PURE__ */ new Set();\n    this._beforeFirstInputFieldEditSW = new StopWatch();\n    this._inputWithButton = new InputWithButton();\n    this._disposables.add(this._inputWithButton);\n    this._editor.addContentWidget(this);\n    this._disposables.add(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        59\n        /* EditorOption.fontInfo */\n      )) {\n        this._updateFont();\n      }\n    }));\n    this._disposables.add(_themeService.onDidColorThemeChange(this._updateStyles, this));\n  }\n  dispose() {\n    this._disposables.dispose();\n    this._editor.removeContentWidget(this);\n  }\n  getId() {\n    return \"__renameInputWidget\";\n  }\n  getDomNode() {\n    if (!this._domNode) {\n      this._domNode = document.createElement(\"div\");\n      this._domNode.className = \"monaco-editor rename-box\";\n      this._domNode.appendChild(this._inputWithButton.domNode);\n      this._renameCandidateListView = this._disposables.add(new RenameCandidateListView(this._domNode, {\n        fontInfo: this._editor.getOption(\n          59\n          /* EditorOption.fontInfo */\n        ),\n        onFocusChange: (newSymbolName) =\u003e {\n          this._inputWithButton.input.value = newSymbolName;\n          this._isEditingRenameCandidate = false;\n        },\n        onSelectionChange: () =\u003e {\n          this._isEditingRenameCandidate = false;\n          this.acceptInput(false);\n        }\n      }));\n      this._disposables.add(this._inputWithButton.onDidInputChange(() =\u003e {\n        if (this._renameCandidateListView?.focusedCandidate !== void 0) {\n          this._isEditingRenameCandidate = true;\n        }\n        this._timeBeforeFirstInputFieldEdit ??= this._beforeFirstInputFieldEditSW.elapsed();\n        if (this._renameCandidateProvidersCts?.token.isCancellationRequested === false) {\n          this._renameCandidateProvidersCts.cancel();\n        }\n        this._renameCandidateListView?.clearFocus();\n      }));\n      this._label = document.createElement(\"div\");\n      this._label.className = \"rename-label\";\n      this._domNode.appendChild(this._label);\n      this._updateFont();\n      this._updateStyles(this._themeService.getColorTheme());\n    }\n    return this._domNode;\n  }\n  _updateStyles(theme) {\n    if (!this._domNode) {\n      return;\n    }\n    const widgetShadowColor = theme.getColor(widgetShadow);\n    const widgetBorderColor = theme.getColor(widgetBorder);\n    this._domNode.style.backgroundColor = String(theme.getColor(editorWidgetBackground) ?? \"\");\n    this._domNode.style.boxShadow = widgetShadowColor ? ` 0 0 8px 2px ${widgetShadowColor}` : \"\";\n    this._domNode.style.border = widgetBorderColor ? `1px solid ${widgetBorderColor}` : \"\";\n    this._domNode.style.color = String(theme.getColor(inputForeground) ?? \"\");\n    const border = theme.getColor(inputBorder);\n    this._inputWithButton.domNode.style.backgroundColor = String(theme.getColor(inputBackground) ?? \"\");\n    this._inputWithButton.input.style.backgroundColor = String(theme.getColor(inputBackground) ?? \"\");\n    this._inputWithButton.domNode.style.borderWidth = border ? \"1px\" : \"0px\";\n    this._inputWithButton.domNode.style.borderStyle = border ? \"solid\" : \"none\";\n    this._inputWithButton.domNode.style.borderColor = border?.toString() ?? \"none\";\n  }\n  _updateFont() {\n    if (this._domNode === void 0) {\n      return;\n    }\n    assertType(this._label !== void 0, \"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined\");\n    this._editor.applyFontInfo(this._inputWithButton.input);\n    const fontInfo = this._editor.getOption(\n      59\n      /* EditorOption.fontInfo */\n    );\n    this._label.style.fontSize = `${this._computeLabelFontSize(fontInfo.fontSize)}px`;\n  }\n  _computeLabelFontSize(editorFontSize) {\n    return editorFontSize * 0.8;\n  }\n  getPosition() {\n    if (!this._visible) {\n      return null;\n    }\n    if (!this._editor.hasModel() || // @ulugbekna: shouldn't happen\n    !this._editor.getDomNode()) {\n      return null;\n    }\n    const bodyBox = getClientArea(this.getDomNode().ownerDocument.body);\n    const editorBox = getDomNodePagePosition(this._editor.getDomNode());\n    const cursorBoxTop = this._getTopForPosition();\n    this._nPxAvailableAbove = cursorBoxTop + editorBox.top;\n    this._nPxAvailableBelow = bodyBox.height - this._nPxAvailableAbove;\n    const lineHeight = this._editor.getOption(\n      75\n      /* EditorOption.lineHeight */\n    );\n    const { totalHeight: candidateViewHeight } = RenameCandidateView.getLayoutInfo({ lineHeight });\n    const positionPreference = this._nPxAvailableBelow \u003e candidateViewHeight * 6 ? [\n      2,\n      1\n      /* ContentWidgetPositionPreference.ABOVE */\n    ] : [\n      1,\n      2\n      /* ContentWidgetPositionPreference.BELOW */\n    ];\n    return {\n      position: this._position,\n      preference: positionPreference\n    };\n  }\n  beforeRender() {\n    const [accept, preview] = this._acceptKeybindings;\n    this._label.innerText = localize(1375, \"{0} to Rename, {1} to Preview\", this._keybindingService.lookupKeybinding(accept)?.getLabel(), this._keybindingService.lookupKeybinding(preview)?.getLabel());\n    this._domNode.style.minWidth = `200px`;\n    return null;\n  }\n  afterRender(position) {\n    if (position === null) {\n      this.cancelInput(true, \"afterRender (because position is null)\");\n      return;\n    }\n    if (!this._editor.hasModel() || // shouldn't happen\n    !this._editor.getDomNode()) {\n      return;\n    }\n    assertType(this._renameCandidateListView);\n    assertType(this._nPxAvailableAbove !== void 0);\n    assertType(this._nPxAvailableBelow !== void 0);\n    const inputBoxHeight = getTotalHeight(this._inputWithButton.domNode);\n    const labelHeight = getTotalHeight(this._label);\n    let totalHeightAvailable;\n    if (position === 2) {\n      totalHeightAvailable = this._nPxAvailableBelow;\n    } else {\n      totalHeightAvailable = this._nPxAvailableAbove;\n    }\n    this._renameCandidateListView.layout({\n      height: totalHeightAvailable - labelHeight - inputBoxHeight,\n      width: getTotalWidth(this._inputWithButton.domNode)\n    });\n  }\n  acceptInput(wantsPreview) {\n    this._trace(`invoking acceptInput`);\n    this._currentAcceptInput?.(wantsPreview);\n  }\n  cancelInput(focusEditor, caller) {\n    this._currentCancelInput?.(focusEditor);\n  }\n  focusNextRenameSuggestion() {\n    if (!this._renameCandidateListView?.focusNext()) {\n      this._inputWithButton.input.value = this._currentName;\n    }\n  }\n  focusPreviousRenameSuggestion() {\n    if (!this._renameCandidateListView?.focusPrevious()) {\n      this._inputWithButton.input.value = this._currentName;\n    }\n  }\n  /**\n   * @param requestRenameCandidates is `undefined` when there are no rename suggestion providers\n   */\n  getInput(where, currentName, supportPreview, requestRenameCandidates, cts) {\n    const { start: selectionStart, end: selectionEnd } = this._getSelection(where, currentName);\n    this._renameCts = cts;\n    const disposeOnDone = new DisposableStore();\n    this._nRenameSuggestionsInvocations = 0;\n    this._hadAutomaticRenameSuggestionsInvocation = false;\n    if (requestRenameCandidates === void 0) {\n      this._inputWithButton.button.style.display = \"none\";\n    } else {\n      this._inputWithButton.button.style.display = \"flex\";\n      this._requestRenameCandidatesOnce = requestRenameCandidates;\n      this._requestRenameCandidates(currentName, false);\n      disposeOnDone.add(addDisposableListener(this._inputWithButton.button, \"click\", () =\u003e this._requestRenameCandidates(currentName, true)));\n      disposeOnDone.add(addDisposableListener(this._inputWithButton.button, EventType.KEY_DOWN, (e) =\u003e {\n        const keyEvent = new StandardKeyboardEvent(e);\n        if (keyEvent.equals(\n          3\n          /* KeyCode.Enter */\n        ) || keyEvent.equals(\n          10\n          /* KeyCode.Space */\n        )) {\n          keyEvent.stopPropagation();\n          keyEvent.preventDefault();\n          this._requestRenameCandidates(currentName, true);\n        }\n      }));\n    }\n    this._isEditingRenameCandidate = false;\n    this._domNode.classList.toggle(\"preview\", supportPreview);\n    this._position = new Position(where.startLineNumber, where.startColumn);\n    this._currentName = currentName;\n    this._inputWithButton.input.value = currentName;\n    this._inputWithButton.input.setAttribute(\"selectionStart\", selectionStart.toString());\n    this._inputWithButton.input.setAttribute(\"selectionEnd\", selectionEnd.toString());\n    this._inputWithButton.input.size = Math.max((where.endColumn - where.startColumn) * 1.1, 20);\n    this._beforeFirstInputFieldEditSW.reset();\n    disposeOnDone.add(toDisposable(() =\u003e {\n      this._renameCts = void 0;\n      cts.dispose(true);\n    }));\n    disposeOnDone.add(toDisposable(() =\u003e {\n      if (this._renameCandidateProvidersCts !== void 0) {\n        this._renameCandidateProvidersCts.dispose(true);\n        this._renameCandidateProvidersCts = void 0;\n      }\n    }));\n    disposeOnDone.add(toDisposable(() =\u003e this._candidates.clear()));\n    const inputResult = new DeferredPromise();\n    inputResult.p.finally(() =\u003e {\n      disposeOnDone.dispose();\n      this._hide();\n    });\n    this._currentCancelInput = (focusEditor) =\u003e {\n      this._trace(\"invoking _currentCancelInput\");\n      this._currentAcceptInput = void 0;\n      this._currentCancelInput = void 0;\n      this._renameCandidateListView?.clearCandidates();\n      inputResult.complete(focusEditor);\n      return true;\n    };\n    this._currentAcceptInput = (wantsPreview) =\u003e {\n      this._trace(\"invoking _currentAcceptInput\");\n      assertType(this._renameCandidateListView !== void 0);\n      const nRenameSuggestions = this._renameCandidateListView.nCandidates;\n      let newName;\n      let source;\n      const focusedCandidate = this._renameCandidateListView.focusedCandidate;\n      if (focusedCandidate !== void 0) {\n        this._trace(\"using new name from renameSuggestion\");\n        newName = focusedCandidate;\n        source = { k: \"renameSuggestion\" };\n      } else {\n        this._trace(\"using new name from inputField\");\n        newName = this._inputWithButton.input.value;\n        source = this._isEditingRenameCandidate ? { k: \"userEditedRenameSuggestion\" } : { k: \"inputField\" };\n      }\n      if (newName === currentName || newName.trim().length === 0) {\n        this.cancelInput(true, \"_currentAcceptInput (because newName === value || newName.trim().length === 0)\");\n        return;\n      }\n      this._currentAcceptInput = void 0;\n      this._currentCancelInput = void 0;\n      this._renameCandidateListView.clearCandidates();\n      inputResult.complete({\n        newName,\n        wantsPreview: supportPreview \u0026\u0026 wantsPreview,\n        stats: {\n          source,\n          nRenameSuggestions,\n          timeBeforeFirstInputFieldEdit: this._timeBeforeFirstInputFieldEdit,\n          nRenameSuggestionsInvocations: this._nRenameSuggestionsInvocations,\n          hadAutomaticRenameSuggestionsInvocation: this._hadAutomaticRenameSuggestionsInvocation\n        }\n      });\n    };\n    disposeOnDone.add(cts.token.onCancellationRequested(() =\u003e this.cancelInput(true, \"cts.token.onCancellationRequested\")));\n    if (!_sticky4) {\n      disposeOnDone.add(this._editor.onDidBlurEditorWidget(() =\u003e this.cancelInput(!this._domNode?.ownerDocument.hasFocus(), \"editor.onDidBlurEditorWidget\")));\n    }\n    this._show();\n    return inputResult.p;\n  }\n  _requestRenameCandidates(currentName, isManuallyTriggered) {\n    if (this._requestRenameCandidatesOnce === void 0) {\n      return;\n    }\n    if (this._renameCandidateProvidersCts !== void 0) {\n      this._renameCandidateProvidersCts.dispose(true);\n    }\n    assertType(this._renameCts);\n    if (this._inputWithButton.buttonState !== \"stop\") {\n      this._renameCandidateProvidersCts = new CancellationTokenSource();\n      const triggerKind = isManuallyTriggered ? NewSymbolNameTriggerKind.Invoke : NewSymbolNameTriggerKind.Automatic;\n      const candidates = this._requestRenameCandidatesOnce(triggerKind, this._renameCandidateProvidersCts.token);\n      if (candidates.length === 0) {\n        this._inputWithButton.setSparkleButton();\n        return;\n      }\n      if (!isManuallyTriggered) {\n        this._hadAutomaticRenameSuggestionsInvocation = true;\n      }\n      this._nRenameSuggestionsInvocations += 1;\n      this._inputWithButton.setStopButton();\n      this._updateRenameCandidates(candidates, currentName, this._renameCts.token);\n    }\n  }\n  /**\n   * This allows selecting only part of the symbol name in the input field based on the selection in the editor\n   */\n  _getSelection(where, currentName) {\n    assertType(this._editor.hasModel());\n    const selection = this._editor.getSelection();\n    let start = 0;\n    let end = currentName.length;\n    if (!Range.isEmpty(selection) \u0026\u0026 !Range.spansMultipleLines(selection) \u0026\u0026 Range.containsRange(where, selection)) {\n      start = Math.max(0, selection.startColumn - where.startColumn);\n      end = Math.min(where.endColumn, selection.endColumn) - where.startColumn;\n    }\n    return { start, end };\n  }\n  _show() {\n    this._trace(\"invoking _show\");\n    this._editor.revealLineInCenterIfOutsideViewport(\n      this._position.lineNumber,\n      0\n      /* ScrollType.Smooth */\n    );\n    this._visible = true;\n    this._visibleContextKey.set(true);\n    this._editor.layoutContentWidget(this);\n    setTimeout(() =\u003e {\n      this._inputWithButton.input.focus();\n      this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute(\"selectionStart\")), parseInt(this._inputWithButton.input.getAttribute(\"selectionEnd\")));\n    }, 100);\n  }\n  async _updateRenameCandidates(candidates, currentName, token) {\n    const trace = (...args) =\u003e this._trace(\"_updateRenameCandidates\", ...args);\n    trace(\"start\");\n    const namesListResults = await raceCancellation(Promise.allSettled(candidates), token);\n    this._inputWithButton.setSparkleButton();\n    if (namesListResults === void 0) {\n      trace(\"returning early - received updateRenameCandidates results - undefined\");\n      return;\n    }\n    const newNames = namesListResults.flatMap((namesListResult) =\u003e namesListResult.status === \"fulfilled\" \u0026\u0026 isDefined(namesListResult.value) ? namesListResult.value : []);\n    trace(`received updateRenameCandidates results - total (unfiltered) ${newNames.length} candidates.`);\n    const distinctNames = distinct(newNames, (v) =\u003e v.newSymbolName);\n    trace(`distinct candidates - ${distinctNames.length} candidates.`);\n    const validDistinctNames = distinctNames.filter(({ newSymbolName }) =\u003e newSymbolName.trim().length \u003e 0 \u0026\u0026 newSymbolName !== this._inputWithButton.input.value \u0026\u0026 newSymbolName !== currentName \u0026\u0026 !this._candidates.has(newSymbolName));\n    trace(`valid distinct candidates - ${newNames.length} candidates.`);\n    validDistinctNames.forEach((n2) =\u003e this._candidates.add(n2.newSymbolName));\n    if (validDistinctNames.length \u003c 1) {\n      trace(\"returning early - no valid distinct candidates\");\n      return;\n    }\n    trace(\"setting candidates\");\n    this._renameCandidateListView.setCandidates(validDistinctNames);\n    trace(\"asking editor to re-layout\");\n    this._editor.layoutContentWidget(this);\n  }\n  _hide() {\n    this._trace(\"invoked _hide\");\n    this._visible = false;\n    this._visibleContextKey.reset();\n    this._editor.layoutContentWidget(this);\n  }\n  _getTopForPosition() {\n    const visibleRanges = this._editor.getVisibleRanges();\n    let firstLineInViewport;\n    if (visibleRanges.length \u003e 0) {\n      firstLineInViewport = visibleRanges[0].startLineNumber;\n    } else {\n      this._logService.warn(\"RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty\");\n      firstLineInViewport = Math.max(1, this._position.lineNumber - 5);\n    }\n    return this._editor.getTopForLineNumber(this._position.lineNumber) - this._editor.getTopForLineNumber(firstLineInViewport);\n  }\n  _trace(...args) {\n    this._logService.trace(\"RenameWidget\", ...args);\n  }\n};\nRenameWidget = __decorate142([\n  __param136(2, IThemeService),\n  __param136(3, IKeybindingService),\n  __param136(4, IContextKeyService),\n  __param136(5, ILogService)\n], RenameWidget);\nvar RenameCandidateListView = class _RenameCandidateListView {\n  // FIXME@ulugbekna: rewrite using event emitters\n  constructor(parent, opts) {\n    this._disposables = new DisposableStore();\n    this._availableHeight = 0;\n    this._minimumWidth = 0;\n    this._lineHeight = opts.fontInfo.lineHeight;\n    this._typicalHalfwidthCharacterWidth = opts.fontInfo.typicalHalfwidthCharacterWidth;\n    this._listContainer = document.createElement(\"div\");\n    this._listContainer.className = \"rename-box rename-candidate-list-container\";\n    parent.appendChild(this._listContainer);\n    this._listWidget = _RenameCandidateListView._createListWidget(this._listContainer, this._candidateViewHeight, opts.fontInfo);\n    this._disposables.add(this._listWidget.onDidChangeFocus((e) =\u003e {\n      if (e.elements.length === 1) {\n        opts.onFocusChange(e.elements[0].newSymbolName);\n      }\n    }, this._disposables));\n    this._disposables.add(this._listWidget.onDidChangeSelection((e) =\u003e {\n      if (e.elements.length === 1) {\n        opts.onSelectionChange();\n      }\n    }, this._disposables));\n    this._disposables.add(this._listWidget.onDidBlur((e) =\u003e {\n      this._listWidget.setFocus([]);\n    }));\n    this._listWidget.style(getListStyles({\n      listInactiveFocusForeground: quickInputListFocusForeground,\n      listInactiveFocusBackground: quickInputListFocusBackground\n    }));\n  }\n  dispose() {\n    this._listWidget.dispose();\n    this._disposables.dispose();\n  }\n  // height - max height allowed by parent element\n  layout({ height, width: width2 }) {\n    this._availableHeight = height;\n    this._minimumWidth = width2;\n  }\n  setCandidates(candidates) {\n    this._listWidget.splice(0, 0, candidates);\n    const height = this._pickListHeight(this._listWidget.length);\n    const width2 = this._pickListWidth(candidates);\n    this._listWidget.layout(height, width2);\n    this._listContainer.style.height = `${height}px`;\n    this._listContainer.style.width = `${width2}px`;\n    status(localize(1376, \"Received {0} rename suggestions\", candidates.length));\n  }\n  clearCandidates() {\n    this._listContainer.style.height = \"0px\";\n    this._listContainer.style.width = \"0px\";\n    this._listWidget.splice(0, this._listWidget.length, []);\n  }\n  get nCandidates() {\n    return this._listWidget.length;\n  }\n  get focusedCandidate() {\n    if (this._listWidget.length === 0) {\n      return;\n    }\n    const selectedElement = this._listWidget.getSelectedElements()[0];\n    if (selectedElement !== void 0) {\n      return selectedElement.newSymbolName;\n    }\n    const focusedElement = this._listWidget.getFocusedElements()[0];\n    if (focusedElement !== void 0) {\n      return focusedElement.newSymbolName;\n    }\n    return;\n  }\n  focusNext() {\n    if (this._listWidget.length === 0) {\n      return false;\n    }\n    const focusedIxs = this._listWidget.getFocus();\n    if (focusedIxs.length === 0) {\n      this._listWidget.focusFirst();\n      this._listWidget.reveal(0);\n      return true;\n    } else {\n      if (focusedIxs[0] === this._listWidget.length - 1) {\n        this._listWidget.setFocus([]);\n        this._listWidget.reveal(0);\n        return false;\n      } else {\n        this._listWidget.focusNext();\n        const focused = this._listWidget.getFocus()[0];\n        this._listWidget.reveal(focused);\n        return true;\n      }\n    }\n  }\n  /**\n   * @returns true if focus is moved to previous element\n   */\n  focusPrevious() {\n    if (this._listWidget.length === 0) {\n      return false;\n    }\n    const focusedIxs = this._listWidget.getFocus();\n    if (focusedIxs.length === 0) {\n      this._listWidget.focusLast();\n      const focused = this._listWidget.getFocus()[0];\n      this._listWidget.reveal(focused);\n      return true;\n    } else {\n      if (focusedIxs[0] === 0) {\n        this._listWidget.setFocus([]);\n        return false;\n      } else {\n        this._listWidget.focusPrevious();\n        const focused = this._listWidget.getFocus()[0];\n        this._listWidget.reveal(focused);\n        return true;\n      }\n    }\n  }\n  clearFocus() {\n    this._listWidget.setFocus([]);\n  }\n  get _candidateViewHeight() {\n    const { totalHeight } = RenameCandidateView.getLayoutInfo({ lineHeight: this._lineHeight });\n    return totalHeight;\n  }\n  _pickListHeight(nCandidates) {\n    const heightToFitAllCandidates = this._candidateViewHeight * nCandidates;\n    const MAX_N_CANDIDATES = 7;\n    const height = Math.min(heightToFitAllCandidates, this._availableHeight, this._candidateViewHeight * MAX_N_CANDIDATES);\n    return height;\n  }\n  _pickListWidth(candidates) {\n    const longestCandidateWidth = Math.ceil(Math.max(...candidates.map((c) =\u003e c.newSymbolName.length)) * this._typicalHalfwidthCharacterWidth);\n    const width2 = Math.max(\n      this._minimumWidth,\n      4 + 16 + 5 + longestCandidateWidth + 10\n      /* (possibly visible) scrollbar width */\n      // TODO@ulugbekna: approximate calc - clean this up\n    );\n    return width2;\n  }\n  static _createListWidget(container, candidateViewHeight, fontInfo) {\n    const virtualDelegate = new class {\n      getTemplateId(element) {\n        return \"candidate\";\n      }\n      getHeight(element) {\n        return candidateViewHeight;\n      }\n    }();\n    const renderer = new class {\n      constructor() {\n        this.templateId = \"candidate\";\n      }\n      renderTemplate(container2) {\n        return new RenameCandidateView(container2, fontInfo);\n      }\n      renderElement(candidate, index, templateData) {\n        templateData.populate(candidate);\n      }\n      disposeTemplate(templateData) {\n        templateData.dispose();\n      }\n    }();\n    return new List(\"NewSymbolNameCandidates\", container, virtualDelegate, [renderer], {\n      keyboardSupport: false,\n      // @ulugbekna: because we handle keyboard events through proper commands \u0026 keybinding service, see `rename.ts`\n      mouseSupport: true,\n      multipleSelectionSupport: false\n    });\n  }\n};\nvar InputWithButton = class {\n  constructor() {\n    this._buttonHoverContent = \"\";\n    this._onDidInputChange = new Emitter();\n    this.onDidInputChange = this._onDidInputChange.event;\n    this._disposables = new DisposableStore();\n  }\n  get domNode() {\n    if (!this._domNode) {\n      this._domNode = document.createElement(\"div\");\n      this._domNode.className = \"rename-input-with-button\";\n      this._domNode.style.display = \"flex\";\n      this._domNode.style.flexDirection = \"row\";\n      this._domNode.style.alignItems = \"center\";\n      this._inputNode = document.createElement(\"input\");\n      this._inputNode.className = \"rename-input\";\n      this._inputNode.type = \"text\";\n      this._inputNode.style.border = \"none\";\n      this._inputNode.setAttribute(\"aria-label\", localize(1377, \"Rename input. Type new name and press Enter to commit.\"));\n      this._domNode.appendChild(this._inputNode);\n      this._buttonNode = document.createElement(\"div\");\n      this._buttonNode.className = \"rename-suggestions-button\";\n      this._buttonNode.setAttribute(\"tabindex\", \"0\");\n      this._buttonGenHoverText = localize(1378, \"Generate new name suggestions\");\n      this._buttonCancelHoverText = localize(1379, \"Cancel\");\n      this._buttonHoverContent = this._buttonGenHoverText;\n      this._disposables.add(getBaseLayerHoverDelegate().setupDelayedHover(this._buttonNode, () =\u003e ({\n        content: this._buttonHoverContent,\n        appearance: {\n          showPointer: true,\n          compact: true\n        }\n      })));\n      this._domNode.appendChild(this._buttonNode);\n      this._disposables.add(addDisposableListener(this.input, EventType.INPUT, () =\u003e this._onDidInputChange.fire()));\n      this._disposables.add(addDisposableListener(this.input, EventType.KEY_DOWN, (e) =\u003e {\n        const keyEvent = new StandardKeyboardEvent(e);\n        if (keyEvent.keyCode === 15 || keyEvent.keyCode === 17) {\n          this._onDidInputChange.fire();\n        }\n      }));\n      this._disposables.add(addDisposableListener(this.input, EventType.CLICK, () =\u003e this._onDidInputChange.fire()));\n      this._disposables.add(addDisposableListener(this.input, EventType.FOCUS, () =\u003e {\n        this.domNode.style.outlineWidth = \"1px\";\n        this.domNode.style.outlineStyle = \"solid\";\n        this.domNode.style.outlineOffset = \"-1px\";\n        this.domNode.style.outlineColor = \"var(--vscode-focusBorder)\";\n      }));\n      this._disposables.add(addDisposableListener(this.input, EventType.BLUR, () =\u003e {\n        this.domNode.style.outline = \"none\";\n      }));\n    }\n    return this._domNode;\n  }\n  get input() {\n    assertType(this._inputNode);\n    return this._inputNode;\n  }\n  get button() {\n    assertType(this._buttonNode);\n    return this._buttonNode;\n  }\n  get buttonState() {\n    return this._buttonState;\n  }\n  setSparkleButton() {\n    this._buttonState = \"sparkle\";\n    this._sparkleIcon ??= renderIcon(Codicon.sparkle);\n    clearNode(this.button);\n    this.button.appendChild(this._sparkleIcon);\n    this.button.setAttribute(\"aria-label\", \"Generating new name suggestions\");\n    this._buttonHoverContent = this._buttonGenHoverText;\n    this.input.focus();\n  }\n  setStopButton() {\n    this._buttonState = \"stop\";\n    this._stopIcon ??= renderIcon(Codicon.stopCircle);\n    clearNode(this.button);\n    this.button.appendChild(this._stopIcon);\n    this.button.setAttribute(\"aria-label\", \"Cancel generating new name suggestions\");\n    this._buttonHoverContent = this._buttonCancelHoverText;\n    this.input.focus();\n  }\n  dispose() {\n    this._disposables.dispose();\n  }\n};\nvar RenameCandidateView = class _RenameCandidateView {\n  static {\n    this._PADDING = 2;\n  }\n  constructor(parent, fontInfo) {\n    this._domNode = document.createElement(\"div\");\n    this._domNode.className = \"rename-box rename-candidate\";\n    this._domNode.style.display = `flex`;\n    this._domNode.style.columnGap = `5px`;\n    this._domNode.style.alignItems = `center`;\n    this._domNode.style.height = `${fontInfo.lineHeight}px`;\n    this._domNode.style.padding = `${_RenameCandidateView._PADDING}px`;\n    const iconContainer = document.createElement(\"div\");\n    iconContainer.style.display = `flex`;\n    iconContainer.style.alignItems = `center`;\n    iconContainer.style.width = iconContainer.style.height = `${fontInfo.lineHeight * 0.8}px`;\n    this._domNode.appendChild(iconContainer);\n    this._icon = renderIcon(Codicon.sparkle);\n    this._icon.style.display = `none`;\n    iconContainer.appendChild(this._icon);\n    this._label = document.createElement(\"div\");\n    applyFontInfo(this._label, fontInfo);\n    this._domNode.appendChild(this._label);\n    parent.appendChild(this._domNode);\n  }\n  populate(value) {\n    this._updateIcon(value);\n    this._updateLabel(value);\n  }\n  _updateIcon(value) {\n    const isAIGenerated = !!value.tags?.includes(NewSymbolNameTag.AIGenerated);\n    this._icon.style.display = isAIGenerated ? \"inherit\" : \"none\";\n  }\n  _updateLabel(value) {\n    this._label.innerText = value.newSymbolName;\n  }\n  static getLayoutInfo({ lineHeight }) {\n    const totalHeight = lineHeight + _RenameCandidateView._PADDING * 2;\n    return { totalHeight };\n  }\n  dispose() {\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/rename/browser/rename.js\nvar __decorate143 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param137 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar RenameController_1;\nvar RenameSkeleton = class {\n  constructor(model, position, registry) {\n    this.model = model;\n    this.position = position;\n    this._providerRenameIdx = 0;\n    this._providers = registry.ordered(model);\n  }\n  hasProvider() {\n    return this._providers.length \u003e 0;\n  }\n  async resolveRenameLocation(token) {\n    const rejects = [];\n    for (this._providerRenameIdx = 0; this._providerRenameIdx \u003c this._providers.length; this._providerRenameIdx++) {\n      const provider = this._providers[this._providerRenameIdx];\n      if (!provider.resolveRenameLocation) {\n        break;\n      }\n      const res = await provider.resolveRenameLocation(this.model, this.position, token);\n      if (!res) {\n        continue;\n      }\n      if (res.rejectReason) {\n        rejects.push(res.rejectReason);\n        continue;\n      }\n      return res;\n    }\n    this._providerRenameIdx = 0;\n    const word = this.model.getWordAtPosition(this.position);\n    if (!word) {\n      return {\n        range: Range.fromPositions(this.position),\n        text: \"\",\n        rejectReason: rejects.length \u003e 0 ? rejects.join(\"\\n\") : void 0\n      };\n    }\n    return {\n      range: new Range(this.position.lineNumber, word.startColumn, this.position.lineNumber, word.endColumn),\n      text: word.word,\n      rejectReason: rejects.length \u003e 0 ? rejects.join(\"\\n\") : void 0\n    };\n  }\n  async provideRenameEdits(newName, token) {\n    return this._provideRenameEdits(newName, this._providerRenameIdx, [], token);\n  }\n  async _provideRenameEdits(newName, i2, rejects, token) {\n    const provider = this._providers[i2];\n    if (!provider) {\n      return {\n        edits: [],\n        rejectReason: rejects.join(\"\\n\")\n      };\n    }\n    const result = await provider.provideRenameEdits(this.model, this.position, newName, token);\n    if (!result) {\n      return this._provideRenameEdits(newName, i2 + 1, rejects.concat(localize(1362, \"No result.\")), token);\n    } else if (result.rejectReason) {\n      return this._provideRenameEdits(newName, i2 + 1, rejects.concat(result.rejectReason), token);\n    }\n    return result;\n  }\n};\nasync function rename(registry, model, position, newName) {\n  const skeleton = new RenameSkeleton(model, position, registry);\n  const loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n  if (loc?.rejectReason) {\n    return { edits: [], rejectReason: loc.rejectReason };\n  }\n  return skeleton.provideRenameEdits(newName, CancellationToken.None);\n}\nvar RenameController = class RenameController2 {\n  static {\n    RenameController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.renameController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(RenameController_1.ID);\n  }\n  constructor(editor2, _instaService, _notificationService, _bulkEditService, _progressService, _logService, _configService, _languageFeaturesService) {\n    this.editor = editor2;\n    this._instaService = _instaService;\n    this._notificationService = _notificationService;\n    this._bulkEditService = _bulkEditService;\n    this._progressService = _progressService;\n    this._logService = _logService;\n    this._configService = _configService;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._disposableStore = new DisposableStore();\n    this._cts = new CancellationTokenSource();\n    this._renameWidget = this._disposableStore.add(this._instaService.createInstance(RenameWidget, this.editor, [\"acceptRenameInput\", \"acceptRenameInputWithPreview\"]));\n  }\n  dispose() {\n    this._disposableStore.dispose();\n    this._cts.dispose(true);\n  }\n  async run() {\n    const trace = this._logService.trace.bind(this._logService, \"[rename]\");\n    this._cts.dispose(true);\n    this._cts = new CancellationTokenSource();\n    if (!this.editor.hasModel()) {\n      trace(\"editor has no model\");\n      return void 0;\n    }\n    const position = this.editor.getPosition();\n    const skeleton = new RenameSkeleton(this.editor.getModel(), position, this._languageFeaturesService.renameProvider);\n    if (!skeleton.hasProvider()) {\n      trace(\"skeleton has no provider\");\n      return void 0;\n    }\n    const cts1 = new EditorStateCancellationTokenSource(this.editor, 4 | 1, void 0, this._cts.token);\n    let loc;\n    try {\n      trace(\"resolving rename location\");\n      const resolveLocationOperation = skeleton.resolveRenameLocation(cts1.token);\n      this._progressService.showWhile(resolveLocationOperation, 250);\n      loc = await resolveLocationOperation;\n      trace(\"resolved rename location\");\n    } catch (e) {\n      if (e instanceof CancellationError) {\n        trace(\"resolve rename location cancelled\", JSON.stringify(e, null, \"\t\"));\n      } else {\n        trace(\"resolve rename location failed\", e instanceof Error ? e : JSON.stringify(e, null, \"\t\"));\n        if (typeof e === \"string\" || isMarkdownString(e)) {\n          MessageController.get(this.editor)?.showMessage(e || localize(1363, \"An unknown error occurred while resolving rename location\"), position);\n        }\n      }\n      return void 0;\n    } finally {\n      cts1.dispose();\n    }\n    if (!loc) {\n      trace(\"returning early - no loc\");\n      return void 0;\n    }\n    if (loc.rejectReason) {\n      trace(`returning early - rejected with reason: ${loc.rejectReason}`, loc.rejectReason);\n      MessageController.get(this.editor)?.showMessage(loc.rejectReason, position);\n      return void 0;\n    }\n    if (cts1.token.isCancellationRequested) {\n      trace(\"returning early - cts1 cancelled\");\n      return void 0;\n    }\n    const cts2 = new EditorStateCancellationTokenSource(this.editor, 4 | 1, loc.range, this._cts.token);\n    const model = this.editor.getModel();\n    const newSymbolNamesProviders = this._languageFeaturesService.newSymbolNamesProvider.all(model);\n    const resolvedNewSymbolnamesProviders = await Promise.all(newSymbolNamesProviders.map(async (p) =\u003e [p, await p.supportsAutomaticNewSymbolNamesTriggerKind ?? false]));\n    const requestRenameSuggestions = (triggerKind, cts) =\u003e {\n      let providers = resolvedNewSymbolnamesProviders.slice();\n      if (triggerKind === NewSymbolNameTriggerKind.Automatic) {\n        providers = providers.filter(([_, supportsAutomatic]) =\u003e supportsAutomatic);\n      }\n      return providers.map(([p]) =\u003e p.provideNewSymbolNames(model, loc.range, triggerKind, cts));\n    };\n    trace(\"creating rename input field and awaiting its result\");\n    const supportPreview = this._bulkEditService.hasPreviewHandler() \u0026\u0026 this._configService.getValue(this.editor.getModel().uri, \"editor.rename.enablePreview\");\n    const inputFieldResult = await this._renameWidget.getInput(loc.range, loc.text, supportPreview, newSymbolNamesProviders.length \u003e 0 ? requestRenameSuggestions : void 0, cts2);\n    trace(\"received response from rename input field\");\n    if (typeof inputFieldResult === \"boolean\") {\n      trace(`returning early - rename input field response - ${inputFieldResult}`);\n      if (inputFieldResult) {\n        this.editor.focus();\n      }\n      cts2.dispose();\n      return void 0;\n    }\n    this.editor.focus();\n    trace(\"requesting rename edits\");\n    const renameOperation = raceCancellation(skeleton.provideRenameEdits(inputFieldResult.newName, cts2.token), cts2.token).then(async (renameResult) =\u003e {\n      if (!renameResult) {\n        trace(\"returning early - no rename edits result\");\n        return;\n      }\n      if (!this.editor.hasModel()) {\n        trace(\"returning early - no model after rename edits are provided\");\n        return;\n      }\n      if (renameResult.rejectReason) {\n        trace(`returning early - rejected with reason: ${renameResult.rejectReason}`);\n        this._notificationService.info(renameResult.rejectReason);\n        return;\n      }\n      this.editor.setSelection(Range.fromPositions(this.editor.getSelection().getPosition()));\n      trace(\"applying edits\");\n      this._bulkEditService.apply(renameResult, {\n        editor: this.editor,\n        showPreview: inputFieldResult.wantsPreview,\n        label: localize(1364, \"Renaming '{0}' to '{1}'\", loc?.text, inputFieldResult.newName),\n        code: \"undoredo.rename\",\n        quotableLabel: localize(1365, \"Renaming {0} to {1}\", loc?.text, inputFieldResult.newName),\n        respectAutoSaveConfig: true,\n        reason: EditSources.rename()\n      }).then((result) =\u003e {\n        trace(\"edits applied\");\n        if (result.ariaSummary) {\n          alert(localize(1366, \"Successfully renamed '{0}' to '{1}'. Summary: {2}\", loc.text, inputFieldResult.newName, result.ariaSummary));\n        }\n      }).catch((err) =\u003e {\n        trace(`error when applying edits ${JSON.stringify(err, null, \"\t\")}`);\n        this._notificationService.error(localize(1367, \"Rename failed to apply edits\"));\n        this._logService.error(err);\n      });\n    }, (err) =\u003e {\n      trace(\"error when providing rename edits\", JSON.stringify(err, null, \"\t\"));\n      this._notificationService.error(localize(1368, \"Rename failed to compute edits\"));\n      this._logService.error(err);\n    }).finally(() =\u003e {\n      cts2.dispose();\n    });\n    trace(\"returning rename operation\");\n    this._progressService.showWhile(renameOperation, 250);\n    return renameOperation;\n  }\n  acceptRenameInput(wantsPreview) {\n    this._renameWidget.acceptInput(wantsPreview);\n  }\n  cancelRenameInput() {\n    this._renameWidget.cancelInput(true, \"cancelRenameInput command\");\n  }\n  focusNextRenameSuggestion() {\n    this._renameWidget.focusNextRenameSuggestion();\n  }\n  focusPreviousRenameSuggestion() {\n    this._renameWidget.focusPreviousRenameSuggestion();\n  }\n};\nRenameController = RenameController_1 = __decorate143([\n  __param137(1, IInstantiationService),\n  __param137(2, INotificationService),\n  __param137(3, IBulkEditService),\n  __param137(4, IEditorProgressService),\n  __param137(5, ILogService),\n  __param137(6, ITextResourceConfigurationService),\n  __param137(7, ILanguageFeaturesService)\n], RenameController);\nvar RenameAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.rename\",\n      label: localize2(1370, \"Rename Symbol\"),\n      precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 60,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      contextMenuOpts: {\n        group: \"1_modification\",\n        order: 1.1\n      }\n    });\n  }\n  runCommand(accessor, args) {\n    const editorService = accessor.get(ICodeEditorService);\n    const [uri, pos] = Array.isArray(args) \u0026\u0026 args || [void 0, void 0];\n    if (URI.isUri(uri) \u0026\u0026 Position.isIPosition(pos)) {\n      return editorService.openCodeEditor({ resource: uri }, editorService.getActiveCodeEditor()).then((editor2) =\u003e {\n        if (!editor2) {\n          return;\n        }\n        editor2.setPosition(pos);\n        editor2.invokeWithinContext((accessor2) =\u003e {\n          this.reportTelemetry(accessor2, editor2);\n          return this.run(accessor2, editor2);\n        });\n      }, onUnexpectedError);\n    }\n    return super.runCommand(accessor, args);\n  }\n  run(accessor, editor2) {\n    const logService = accessor.get(ILogService);\n    const controller = RenameController.get(editor2);\n    if (controller) {\n      logService.trace(\"[RenameAction] got controller, running...\");\n      return controller.run();\n    }\n    logService.trace(\"[RenameAction] returning early - controller missing\");\n    return Promise.resolve();\n  }\n};\nregisterEditorContribution(\n  RenameController.ID,\n  RenameController,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\nregisterEditorAction(RenameAction);\nvar RenameCommand = EditorCommand.bindToContribution(RenameController.get);\nregisterEditorCommand(new RenameCommand({\n  id: \"acceptRenameInput\",\n  precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n  handler: (x) =\u003e x.acceptRenameInput(false),\n  kbOpts: {\n    weight: 100 + 99,\n    kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not(\"isComposing\")),\n    primary: 3\n    /* KeyCode.Enter */\n  }\n}));\nregisterEditorCommand(new RenameCommand({\n  id: \"acceptRenameInputWithPreview\",\n  precondition: ContextKeyExpr.and(CONTEXT_RENAME_INPUT_VISIBLE, ContextKeyExpr.has(\"config.editor.rename.enablePreview\")),\n  handler: (x) =\u003e x.acceptRenameInput(true),\n  kbOpts: {\n    weight: 100 + 99,\n    kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not(\"isComposing\")),\n    primary: 2048 + 3\n    /* KeyCode.Enter */\n  }\n}));\nregisterEditorCommand(new RenameCommand({\n  id: \"cancelRenameInput\",\n  precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n  handler: (x) =\u003e x.cancelRenameInput(),\n  kbOpts: {\n    weight: 100 + 99,\n    kbExpr: EditorContextKeys.focus,\n    primary: 9,\n    secondary: [\n      1024 | 9\n      /* KeyCode.Escape */\n    ]\n  }\n}));\nregisterAction2(class FocusNextRenameSuggestion extends Action2 {\n  constructor() {\n    super({\n      id: \"focusNextRenameSuggestion\",\n      title: {\n        ...localize2(1371, \"Focus Next Rename Suggestion\")\n      },\n      precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n      keybinding: [\n        {\n          primary: 18,\n          weight: 100 + 99\n        }\n      ]\n    });\n  }\n  run(accessor) {\n    const currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n    if (!currentEditor) {\n      return;\n    }\n    const controller = RenameController.get(currentEditor);\n    if (!controller) {\n      return;\n    }\n    controller.focusNextRenameSuggestion();\n  }\n});\nregisterAction2(class FocusPreviousRenameSuggestion extends Action2 {\n  constructor() {\n    super({\n      id: \"focusPreviousRenameSuggestion\",\n      title: {\n        ...localize2(1372, \"Focus Previous Rename Suggestion\")\n      },\n      precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n      keybinding: [\n        {\n          primary: 16,\n          weight: 100 + 99\n        }\n      ]\n    });\n  }\n  run(accessor) {\n    const currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n    if (!currentEditor) {\n      return;\n    }\n    const controller = RenameController.get(currentEditor);\n    if (!controller) {\n      return;\n    }\n    controller.focusPreviousRenameSuggestion();\n  }\n});\nregisterModelAndPositionCommand(\"_executeDocumentRenameProvider\", function(accessor, model, position, ...args) {\n  const [newName] = args;\n  assertType(typeof newName === \"string\");\n  const { renameProvider } = accessor.get(ILanguageFeaturesService);\n  return rename(renameProvider, model, position, newName);\n});\nregisterModelAndPositionCommand(\"_executePrepareRename\", async function(accessor, model, position) {\n  const { renameProvider } = accessor.get(ILanguageFeaturesService);\n  const skeleton = new RenameSkeleton(model, position, renameProvider);\n  const loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n  if (loc?.rejectReason) {\n    throw new Error(loc.rejectReason);\n  }\n  return loc;\n});\nRegistry.as(Extensions4.Configuration).registerConfiguration({\n  id: \"editor\",\n  properties: {\n    \"editor.rename.enablePreview\": {\n      scope: 6,\n      description: localize(1369, \"Enable/disable the ability to preview changes before renaming\"),\n      default: true,\n      type: \"boolean\"\n    }\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js\ninit_async();\ninit_lifecycle();\ninit_editorExtensions();\ninit_languageConfigurationRegistry();\ninit_textModel();\ninit_editorWorker();\nvar __decorate144 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param138 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SectionHeaderDetector = class SectionHeaderDetector2 extends Disposable {\n  static {\n    this.ID = \"editor.sectionHeaderDetector\";\n  }\n  constructor(editor2, languageConfigurationService, editorWorkerService) {\n    super();\n    this.editor = editor2;\n    this.languageConfigurationService = languageConfigurationService;\n    this.editorWorkerService = editorWorkerService;\n    this.decorations = this.editor.createDecorationsCollection();\n    this.options = this.createOptions(editor2.getOption(\n      81\n      /* EditorOption.minimap */\n    ));\n    this.computePromise = null;\n    this.currentOccurrences = {};\n    this._register(editor2.onDidChangeModel((e) =\u003e {\n      this.currentOccurrences = {};\n      this.options = this.createOptions(editor2.getOption(\n        81\n        /* EditorOption.minimap */\n      ));\n      this.stop();\n      this.computeSectionHeaders.schedule(0);\n    }));\n    this._register(editor2.onDidChangeModelLanguage((e) =\u003e {\n      this.currentOccurrences = {};\n      this.options = this.createOptions(editor2.getOption(\n        81\n        /* EditorOption.minimap */\n      ));\n      this.stop();\n      this.computeSectionHeaders.schedule(0);\n    }));\n    this._register(languageConfigurationService.onDidChange((e) =\u003e {\n      const editorLanguageId = this.editor.getModel()?.getLanguageId();\n      if (editorLanguageId \u0026\u0026 e.affects(editorLanguageId)) {\n        this.currentOccurrences = {};\n        this.options = this.createOptions(editor2.getOption(\n          81\n          /* EditorOption.minimap */\n        ));\n        this.stop();\n        this.computeSectionHeaders.schedule(0);\n      }\n    }));\n    this._register(editor2.onDidChangeConfiguration((e) =\u003e {\n      if (this.options \u0026\u0026 !e.hasChanged(\n        81\n        /* EditorOption.minimap */\n      )) {\n        return;\n      }\n      this.options = this.createOptions(editor2.getOption(\n        81\n        /* EditorOption.minimap */\n      ));\n      this.updateDecorations([]);\n      this.stop();\n      this.computeSectionHeaders.schedule(0);\n    }));\n    this._register(this.editor.onDidChangeModelContent((e) =\u003e {\n      this.computeSectionHeaders.schedule();\n    }));\n    this._register(editor2.onDidChangeModelTokens((e) =\u003e {\n      if (!this.computeSectionHeaders.isScheduled()) {\n        this.computeSectionHeaders.schedule(1e3);\n      }\n    }));\n    this.computeSectionHeaders = this._register(new RunOnceScheduler(() =\u003e {\n      this.findSectionHeaders();\n    }, 250));\n    this.computeSectionHeaders.schedule(0);\n  }\n  createOptions(minimap) {\n    if (!minimap || !this.editor.hasModel()) {\n      return void 0;\n    }\n    const languageId = this.editor.getModel().getLanguageId();\n    if (!languageId) {\n      return void 0;\n    }\n    const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n    const foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n    if (!commentsConfiguration \u0026\u0026 !foldingRules?.markers) {\n      return void 0;\n    }\n    return {\n      foldingRules,\n      markSectionHeaderRegex: minimap.markSectionHeaderRegex,\n      findMarkSectionHeaders: minimap.showMarkSectionHeaders,\n      findRegionSectionHeaders: minimap.showRegionSectionHeaders\n    };\n  }\n  findSectionHeaders() {\n    if (!this.editor.hasModel() || !this.options?.findMarkSectionHeaders \u0026\u0026 !this.options?.findRegionSectionHeaders) {\n      return;\n    }\n    const model = this.editor.getModel();\n    if (model.isDisposed() || model.isTooLargeForSyncing()) {\n      return;\n    }\n    const modelVersionId = model.getVersionId();\n    this.editorWorkerService.findSectionHeaders(model.uri, this.options).then((sectionHeaders) =\u003e {\n      if (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n        return;\n      }\n      this.updateDecorations(sectionHeaders);\n    });\n  }\n  updateDecorations(sectionHeaders) {\n    const model = this.editor.getModel();\n    if (model) {\n      sectionHeaders = sectionHeaders.filter((sectionHeader) =\u003e {\n        if (!sectionHeader.shouldBeInComments) {\n          return true;\n        }\n        const validRange = model.validateRange(sectionHeader.range);\n        const tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n        const idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n        const tokenType = tokens.getStandardTokenType(idx);\n        const languageId = tokens.getLanguageId(idx);\n        return languageId === model.getLanguageId() \u0026\u0026 tokenType === 1;\n      });\n    }\n    const oldDecorations = Object.values(this.currentOccurrences).map((occurrence) =\u003e occurrence.decorationId);\n    const newDecorations = sectionHeaders.map((sectionHeader) =\u003e decoration2(sectionHeader));\n    this.editor.changeDecorations((changeAccessor) =\u003e {\n      const decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n      this.currentOccurrences = {};\n      for (let i2 = 0, len = decorations.length; i2 \u003c len; i2++) {\n        const occurrence = { sectionHeader: sectionHeaders[i2], decorationId: decorations[i2] };\n        this.currentOccurrences[occurrence.decorationId] = occurrence;\n      }\n    });\n  }\n  stop() {\n    this.computeSectionHeaders.cancel();\n    if (this.computePromise) {\n      this.computePromise.cancel();\n      this.computePromise = null;\n    }\n  }\n  dispose() {\n    super.dispose();\n    this.stop();\n    this.decorations.clear();\n  }\n};\nSectionHeaderDetector = __decorate144([\n  __param138(1, ILanguageConfigurationService),\n  __param138(2, IEditorWorkerService)\n], SectionHeaderDetector);\nfunction decoration2(sectionHeader) {\n  return {\n    range: sectionHeader.range,\n    options: ModelDecorationOptions.createDynamic({\n      description: \"section-header\",\n      stickiness: 3,\n      collapseOnReplaceEdit: true,\n      minimap: {\n        color: void 0,\n        position: 1,\n        sectionHeaderStyle: sectionHeader.hasSeparatorLine ? 2 : 1,\n        sectionHeaderText: sectionHeader.text\n      }\n    })\n  };\n}\nregisterEditorContribution(\n  SectionHeaderDetector.ID,\n  SectionHeaderDetector,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_lifecycle();\ninit_map();\ninit_stopwatch();\ninit_configuration();\ninit_themeService();\ninit_languageFeatureDebounce();\ninit_languageFeatures();\ninit_model();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensProviderStyling.js\ninit_encodedTokenAttributes();\ninit_themeService();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/sparseMultilineTokens.js\ninit_position();\ninit_range();\ninit_eolCounter();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/common.js\nvar RateLimiter = class {\n  constructor(timesPerSecond = 5) {\n    this.timesPerSecond = timesPerSecond;\n    this._lastRun = 0;\n    this._minimumTimeBetweenRuns = 1e3 / timesPerSecond;\n  }\n  runIfNotLimited(callback) {\n    const now = Date.now();\n    if (now - this._lastRun \u003e= this._minimumTimeBetweenRuns) {\n      this._lastRun = now;\n      callback();\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/tokens/sparseMultilineTokens.js\nvar SparseMultilineTokens = class _SparseMultilineTokens {\n  static create(startLineNumber, tokens) {\n    return new _SparseMultilineTokens(startLineNumber, new SparseMultilineTokensStorage(tokens));\n  }\n  /**\n   * (Inclusive) start line number for these tokens.\n   */\n  get startLineNumber() {\n    return this._startLineNumber;\n  }\n  /**\n   * (Inclusive) end line number for these tokens.\n   */\n  get endLineNumber() {\n    return this._endLineNumber;\n  }\n  constructor(startLineNumber, tokens) {\n    this._startLineNumber = startLineNumber;\n    this._tokens = tokens;\n    this._endLineNumber = this._startLineNumber + this._tokens.getMaxDeltaLine();\n  }\n  toString() {\n    return this._tokens.toString(this._startLineNumber);\n  }\n  _updateEndLineNumber() {\n    this._endLineNumber = this._startLineNumber + this._tokens.getMaxDeltaLine();\n  }\n  isEmpty() {\n    return this._tokens.isEmpty();\n  }\n  getLineTokens(lineNumber) {\n    if (this._startLineNumber \u003c= lineNumber \u0026\u0026 lineNumber \u003c= this._endLineNumber) {\n      return this._tokens.getLineTokens(lineNumber - this._startLineNumber);\n    }\n    return null;\n  }\n  getRange() {\n    const deltaRange = this._tokens.getRange();\n    if (!deltaRange) {\n      return deltaRange;\n    }\n    return new Range(this._startLineNumber + deltaRange.startLineNumber, deltaRange.startColumn, this._startLineNumber + deltaRange.endLineNumber, deltaRange.endColumn);\n  }\n  removeTokens(range2) {\n    const startLineIndex = range2.startLineNumber - this._startLineNumber;\n    const endLineIndex = range2.endLineNumber - this._startLineNumber;\n    this._startLineNumber += this._tokens.removeTokens(startLineIndex, range2.startColumn - 1, endLineIndex, range2.endColumn - 1);\n    this._updateEndLineNumber();\n  }\n  split(range2) {\n    const startLineIndex = range2.startLineNumber - this._startLineNumber;\n    const endLineIndex = range2.endLineNumber - this._startLineNumber;\n    const [a, b, bDeltaLine] = this._tokens.split(startLineIndex, range2.startColumn - 1, endLineIndex, range2.endColumn - 1);\n    return [new _SparseMultilineTokens(this._startLineNumber, a), new _SparseMultilineTokens(this._startLineNumber + bDeltaLine, b)];\n  }\n  applyEdit(range2, text2) {\n    const [eolCount, firstLineLength, lastLineLength] = countEOL(text2);\n    this.acceptEdit(\n      range2,\n      eolCount,\n      firstLineLength,\n      lastLineLength,\n      text2.length \u003e 0 ? text2.charCodeAt(0) : 0\n      /* CharCode.Null */\n    );\n  }\n  acceptEdit(range2, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n    this._acceptDeleteRange(range2);\n    this._acceptInsertText(new Position(range2.startLineNumber, range2.startColumn), eolCount, firstLineLength, lastLineLength, firstCharCode);\n    this._updateEndLineNumber();\n  }\n  _acceptDeleteRange(range2) {\n    if (range2.startLineNumber === range2.endLineNumber \u0026\u0026 range2.startColumn === range2.endColumn) {\n      return;\n    }\n    const firstLineIndex = range2.startLineNumber - this._startLineNumber;\n    const lastLineIndex = range2.endLineNumber - this._startLineNumber;\n    if (lastLineIndex \u003c 0) {\n      const deletedLinesCount = lastLineIndex - firstLineIndex;\n      this._startLineNumber -= deletedLinesCount;\n      return;\n    }\n    const tokenMaxDeltaLine = this._tokens.getMaxDeltaLine();\n    if (firstLineIndex \u003e= tokenMaxDeltaLine + 1) {\n      return;\n    }\n    if (firstLineIndex \u003c 0 \u0026\u0026 lastLineIndex \u003e= tokenMaxDeltaLine + 1) {\n      this._startLineNumber = 0;\n      this._tokens.clear();\n      return;\n    }\n    if (firstLineIndex \u003c 0) {\n      const deletedBefore = -firstLineIndex;\n      this._startLineNumber -= deletedBefore;\n      this._tokens.acceptDeleteRange(range2.startColumn - 1, 0, 0, lastLineIndex, range2.endColumn - 1);\n    } else {\n      this._tokens.acceptDeleteRange(0, firstLineIndex, range2.startColumn - 1, lastLineIndex, range2.endColumn - 1);\n    }\n  }\n  _acceptInsertText(position, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n    if (eolCount === 0 \u0026\u0026 firstLineLength === 0) {\n      return;\n    }\n    const lineIndex = position.lineNumber - this._startLineNumber;\n    if (lineIndex \u003c 0) {\n      this._startLineNumber += eolCount;\n      return;\n    }\n    const tokenMaxDeltaLine = this._tokens.getMaxDeltaLine();\n    if (lineIndex \u003e= tokenMaxDeltaLine + 1) {\n      return;\n    }\n    this._tokens.acceptInsertText(lineIndex, position.column - 1, eolCount, firstLineLength, lastLineLength, firstCharCode);\n  }\n  reportIfInvalid(model) {\n    this._tokens.reportIfInvalid(model, this._startLineNumber);\n  }\n};\nvar SparseMultilineTokensStorage = class _SparseMultilineTokensStorage {\n  constructor(tokens) {\n    this._tokens = tokens;\n    this._tokenCount = tokens.length / 4;\n  }\n  toString(startLineNumber) {\n    const pieces = [];\n    for (let i2 = 0; i2 \u003c this._tokenCount; i2++) {\n      pieces.push(`(${this._getDeltaLine(i2) + startLineNumber},${this._getStartCharacter(i2)}-${this._getEndCharacter(i2)})`);\n    }\n    return `[${pieces.join(\",\")}]`;\n  }\n  getMaxDeltaLine() {\n    const tokenCount = this._getTokenCount();\n    if (tokenCount === 0) {\n      return -1;\n    }\n    return this._getDeltaLine(tokenCount - 1);\n  }\n  getRange() {\n    const tokenCount = this._getTokenCount();\n    if (tokenCount === 0) {\n      return null;\n    }\n    const startChar = this._getStartCharacter(0);\n    const maxDeltaLine = this._getDeltaLine(tokenCount - 1);\n    const endChar = this._getEndCharacter(tokenCount - 1);\n    return new Range(0, startChar + 1, maxDeltaLine, endChar + 1);\n  }\n  _getTokenCount() {\n    return this._tokenCount;\n  }\n  _getDeltaLine(tokenIndex) {\n    return this._tokens[4 * tokenIndex];\n  }\n  _getStartCharacter(tokenIndex) {\n    return this._tokens[4 * tokenIndex + 1];\n  }\n  _getEndCharacter(tokenIndex) {\n    return this._tokens[4 * tokenIndex + 2];\n  }\n  isEmpty() {\n    return this._getTokenCount() === 0;\n  }\n  getLineTokens(deltaLine) {\n    let low = 0;\n    let high = this._getTokenCount() - 1;\n    while (low \u003c high) {\n      const mid = low + Math.floor((high - low) / 2);\n      const midDeltaLine = this._getDeltaLine(mid);\n      if (midDeltaLine \u003c deltaLine) {\n        low = mid + 1;\n      } else if (midDeltaLine \u003e deltaLine) {\n        high = mid - 1;\n      } else {\n        let min = mid;\n        while (min \u003e low \u0026\u0026 this._getDeltaLine(min - 1) === deltaLine) {\n          min--;\n        }\n        let max = mid;\n        while (max \u003c high \u0026\u0026 this._getDeltaLine(max + 1) === deltaLine) {\n          max++;\n        }\n        return new SparseLineTokens(this._tokens.subarray(4 * min, 4 * max + 4));\n      }\n    }\n    if (this._getDeltaLine(low) === deltaLine) {\n      return new SparseLineTokens(this._tokens.subarray(4 * low, 4 * low + 4));\n    }\n    return null;\n  }\n  clear() {\n    this._tokenCount = 0;\n  }\n  removeTokens(startDeltaLine, startChar, endDeltaLine, endChar) {\n    const tokens = this._tokens;\n    const tokenCount = this._tokenCount;\n    let newTokenCount = 0;\n    let hasDeletedTokens = false;\n    let firstDeltaLine = 0;\n    for (let i2 = 0; i2 \u003c tokenCount; i2++) {\n      const srcOffset = 4 * i2;\n      const tokenDeltaLine = tokens[srcOffset];\n      const tokenStartCharacter = tokens[srcOffset + 1];\n      const tokenEndCharacter = tokens[srcOffset + 2];\n      const tokenMetadata = tokens[srcOffset + 3];\n      if ((tokenDeltaLine \u003e startDeltaLine || tokenDeltaLine === startDeltaLine \u0026\u0026 tokenEndCharacter \u003e= startChar) \u0026\u0026 (tokenDeltaLine \u003c endDeltaLine || tokenDeltaLine === endDeltaLine \u0026\u0026 tokenStartCharacter \u003c= endChar)) {\n        hasDeletedTokens = true;\n      } else {\n        if (newTokenCount === 0) {\n          firstDeltaLine = tokenDeltaLine;\n        }\n        if (hasDeletedTokens) {\n          const destOffset = 4 * newTokenCount;\n          tokens[destOffset] = tokenDeltaLine - firstDeltaLine;\n          tokens[destOffset + 1] = tokenStartCharacter;\n          tokens[destOffset + 2] = tokenEndCharacter;\n          tokens[destOffset + 3] = tokenMetadata;\n        }\n        newTokenCount++;\n      }\n    }\n    this._tokenCount = newTokenCount;\n    return firstDeltaLine;\n  }\n  split(startDeltaLine, startChar, endDeltaLine, endChar) {\n    const tokens = this._tokens;\n    const tokenCount = this._tokenCount;\n    const aTokens = [];\n    const bTokens = [];\n    let destTokens = aTokens;\n    let destOffset = 0;\n    let destFirstDeltaLine = 0;\n    for (let i2 = 0; i2 \u003c tokenCount; i2++) {\n      const srcOffset = 4 * i2;\n      const tokenDeltaLine = tokens[srcOffset];\n      const tokenStartCharacter = tokens[srcOffset + 1];\n      const tokenEndCharacter = tokens[srcOffset + 2];\n      const tokenMetadata = tokens[srcOffset + 3];\n      if (tokenDeltaLine \u003e startDeltaLine || tokenDeltaLine === startDeltaLine \u0026\u0026 tokenEndCharacter \u003e= startChar) {\n        if (tokenDeltaLine \u003c endDeltaLine || tokenDeltaLine === endDeltaLine \u0026\u0026 tokenStartCharacter \u003c= endChar) {\n          continue;\n        } else {\n          if (destTokens !== bTokens) {\n            destTokens = bTokens;\n            destOffset = 0;\n            destFirstDeltaLine = tokenDeltaLine;\n          }\n        }\n      }\n      destTokens[destOffset++] = tokenDeltaLine - destFirstDeltaLine;\n      destTokens[destOffset++] = tokenStartCharacter;\n      destTokens[destOffset++] = tokenEndCharacter;\n      destTokens[destOffset++] = tokenMetadata;\n    }\n    return [new _SparseMultilineTokensStorage(new Uint32Array(aTokens)), new _SparseMultilineTokensStorage(new Uint32Array(bTokens)), destFirstDeltaLine];\n  }\n  acceptDeleteRange(horizontalShiftForFirstLineTokens, startDeltaLine, startCharacter, endDeltaLine, endCharacter) {\n    const tokens = this._tokens;\n    const tokenCount = this._tokenCount;\n    const deletedLineCount = endDeltaLine - startDeltaLine;\n    let newTokenCount = 0;\n    let hasDeletedTokens = false;\n    for (let i2 = 0; i2 \u003c tokenCount; i2++) {\n      const srcOffset = 4 * i2;\n      let tokenDeltaLine = tokens[srcOffset];\n      let tokenStartCharacter = tokens[srcOffset + 1];\n      let tokenEndCharacter = tokens[srcOffset + 2];\n      const tokenMetadata = tokens[srcOffset + 3];\n      if (tokenDeltaLine \u003c startDeltaLine || tokenDeltaLine === startDeltaLine \u0026\u0026 tokenEndCharacter \u003c= startCharacter) {\n        newTokenCount++;\n        continue;\n      } else if (tokenDeltaLine === startDeltaLine \u0026\u0026 tokenStartCharacter \u003c startCharacter) {\n        if (tokenDeltaLine === endDeltaLine \u0026\u0026 tokenEndCharacter \u003e endCharacter) {\n          tokenEndCharacter -= endCharacter - startCharacter;\n        } else {\n          tokenEndCharacter = startCharacter;\n        }\n      } else if (tokenDeltaLine === startDeltaLine \u0026\u0026 tokenStartCharacter === startCharacter) {\n        if (tokenDeltaLine === endDeltaLine \u0026\u0026 tokenEndCharacter \u003e endCharacter) {\n          tokenEndCharacter -= endCharacter - startCharacter;\n        } else {\n          hasDeletedTokens = true;\n          continue;\n        }\n      } else if (tokenDeltaLine \u003c endDeltaLine || tokenDeltaLine === endDeltaLine \u0026\u0026 tokenStartCharacter \u003c endCharacter) {\n        if (tokenDeltaLine === endDeltaLine \u0026\u0026 tokenEndCharacter \u003e endCharacter) {\n          tokenDeltaLine = startDeltaLine;\n          tokenStartCharacter = startCharacter;\n          tokenEndCharacter = tokenStartCharacter + (tokenEndCharacter - endCharacter);\n        } else {\n          hasDeletedTokens = true;\n          continue;\n        }\n      } else if (tokenDeltaLine \u003e endDeltaLine) {\n        if (deletedLineCount === 0 \u0026\u0026 !hasDeletedTokens) {\n          newTokenCount = tokenCount;\n          break;\n        }\n        tokenDeltaLine -= deletedLineCount;\n      } else if (tokenDeltaLine === endDeltaLine \u0026\u0026 tokenStartCharacter \u003e= endCharacter) {\n        if (horizontalShiftForFirstLineTokens \u0026\u0026 tokenDeltaLine === 0) {\n          tokenStartCharacter += horizontalShiftForFirstLineTokens;\n          tokenEndCharacter += horizontalShiftForFirstLineTokens;\n        }\n        tokenDeltaLine -= deletedLineCount;\n        tokenStartCharacter -= endCharacter - startCharacter;\n        tokenEndCharacter -= endCharacter - startCharacter;\n      } else {\n        throw new Error(`Not possible!`);\n      }\n      const destOffset = 4 * newTokenCount;\n      tokens[destOffset] = tokenDeltaLine;\n      tokens[destOffset + 1] = tokenStartCharacter;\n      tokens[destOffset + 2] = tokenEndCharacter;\n      tokens[destOffset + 3] = tokenMetadata;\n      newTokenCount++;\n    }\n    this._tokenCount = newTokenCount;\n  }\n  acceptInsertText(deltaLine, character, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n    const isInsertingPreciselyOneWordCharacter = eolCount === 0 \u0026\u0026 firstLineLength === 1 \u0026\u0026 (firstCharCode \u003e= 48 \u0026\u0026 firstCharCode \u003c= 57 || firstCharCode \u003e= 65 \u0026\u0026 firstCharCode \u003c= 90 || firstCharCode \u003e= 97 \u0026\u0026 firstCharCode \u003c= 122);\n    const tokens = this._tokens;\n    const tokenCount = this._tokenCount;\n    for (let i2 = 0; i2 \u003c tokenCount; i2++) {\n      const offset = 4 * i2;\n      let tokenDeltaLine = tokens[offset];\n      let tokenStartCharacter = tokens[offset + 1];\n      let tokenEndCharacter = tokens[offset + 2];\n      if (tokenDeltaLine \u003c deltaLine || tokenDeltaLine === deltaLine \u0026\u0026 tokenEndCharacter \u003c character) {\n        continue;\n      } else if (tokenDeltaLine === deltaLine \u0026\u0026 tokenEndCharacter === character) {\n        if (isInsertingPreciselyOneWordCharacter) {\n          tokenEndCharacter += 1;\n        } else {\n          continue;\n        }\n      } else if (tokenDeltaLine === deltaLine \u0026\u0026 tokenStartCharacter \u003c character \u0026\u0026 character \u003c tokenEndCharacter) {\n        if (eolCount === 0) {\n          tokenEndCharacter += firstLineLength;\n        } else {\n          tokenEndCharacter = character;\n        }\n      } else {\n        if (tokenDeltaLine === deltaLine \u0026\u0026 tokenStartCharacter === character) {\n          if (isInsertingPreciselyOneWordCharacter) {\n            continue;\n          }\n        }\n        if (tokenDeltaLine === deltaLine) {\n          tokenDeltaLine += eolCount;\n          if (eolCount === 0) {\n            tokenStartCharacter += firstLineLength;\n            tokenEndCharacter += firstLineLength;\n          } else {\n            const tokenLength = tokenEndCharacter - tokenStartCharacter;\n            tokenStartCharacter = lastLineLength + (tokenStartCharacter - character);\n            tokenEndCharacter = tokenStartCharacter + tokenLength;\n          }\n        } else {\n          tokenDeltaLine += eolCount;\n        }\n      }\n      tokens[offset] = tokenDeltaLine;\n      tokens[offset + 1] = tokenStartCharacter;\n      tokens[offset + 2] = tokenEndCharacter;\n    }\n  }\n  static {\n    this._rateLimiter = new RateLimiter(10 / 60);\n  }\n  // limit to 10 times per minute\n  reportIfInvalid(model, startLineNumber) {\n    for (let i2 = 0; i2 \u003c this._tokenCount; i2++) {\n      const lineNumber = this._getDeltaLine(i2) + startLineNumber;\n      if (lineNumber \u003c 1) {\n        _SparseMultilineTokensStorage._rateLimiter.runIfNotLimited(() =\u003e {\n          console.error(\"Invalid Semantic Tokens Data From Extension: lineNumber \u003c 1\");\n        });\n      } else if (lineNumber \u003e model.getLineCount()) {\n        _SparseMultilineTokensStorage._rateLimiter.runIfNotLimited(() =\u003e {\n          console.error(\"Invalid Semantic Tokens Data From Extension: lineNumber \u003e model.getLineCount()\");\n        });\n      } else if (this._getEndCharacter(i2) \u003e model.getLineLength(lineNumber)) {\n        _SparseMultilineTokensStorage._rateLimiter.runIfNotLimited(() =\u003e {\n          console.error(\"Invalid Semantic Tokens Data From Extension: end character \u003e model.getLineLength(lineNumber)\");\n        });\n      }\n    }\n  }\n};\nvar SparseLineTokens = class {\n  constructor(tokens) {\n    this._tokens = tokens;\n  }\n  getCount() {\n    return this._tokens.length / 4;\n  }\n  getStartCharacter(tokenIndex) {\n    return this._tokens[4 * tokenIndex + 1];\n  }\n  getEndCharacter(tokenIndex) {\n    return this._tokens[4 * tokenIndex + 2];\n  }\n  getMetadata(tokenIndex) {\n    return this._tokens[4 * tokenIndex + 3];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensProviderStyling.js\ninit_language();\nvar __decorate145 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param139 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ENABLE_TRACE = false;\nvar SemanticTokensProviderStyling = class SemanticTokensProviderStyling2 {\n  constructor(_legend, _themeService, _languageService, _logService) {\n    this._legend = _legend;\n    this._themeService = _themeService;\n    this._languageService = _languageService;\n    this._logService = _logService;\n    this._hasWarnedOverlappingTokens = false;\n    this._hasWarnedInvalidLengthTokens = false;\n    this._hasWarnedInvalidEditStart = false;\n    this._hashTable = new HashTable();\n  }\n  getMetadata(tokenTypeIndex, tokenModifierSet, languageId) {\n    const encodedLanguageId = this._languageService.languageIdCodec.encodeLanguageId(languageId);\n    const entry = this._hashTable.get(tokenTypeIndex, tokenModifierSet, encodedLanguageId);\n    let metadata;\n    if (entry) {\n      metadata = entry.metadata;\n      if (ENABLE_TRACE \u0026\u0026 this._logService.getLevel() === LogLevel.Trace) {\n        this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${tokenTypeIndex} / ${tokenModifierSet}: foreground ${TokenMetadata.getForeground(metadata)}, fontStyle ${TokenMetadata.getFontStyle(metadata).toString(2)}`);\n      }\n    } else {\n      let tokenType = this._legend.tokenTypes[tokenTypeIndex];\n      const tokenModifiers = [];\n      if (tokenType) {\n        let modifierSet = tokenModifierSet;\n        for (let modifierIndex = 0; modifierSet \u003e 0 \u0026\u0026 modifierIndex \u003c this._legend.tokenModifiers.length; modifierIndex++) {\n          if (modifierSet \u0026 1) {\n            tokenModifiers.push(this._legend.tokenModifiers[modifierIndex]);\n          }\n          modifierSet = modifierSet \u003e\u003e 1;\n        }\n        if (ENABLE_TRACE \u0026\u0026 modifierSet \u003e 0 \u0026\u0026 this._logService.getLevel() === LogLevel.Trace) {\n          this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${tokenModifierSet.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`);\n          tokenModifiers.push(\"not-in-legend\");\n        }\n        const tokenStyle = this._themeService.getColorTheme().getTokenStyleMetadata(tokenType, tokenModifiers, languageId);\n        if (typeof tokenStyle === \"undefined\") {\n          metadata = 2147483647;\n        } else {\n          metadata = 0;\n          if (typeof tokenStyle.italic !== \"undefined\") {\n            const italicBit = (tokenStyle.italic ? 1 : 0) \u003c\u003c 11;\n            metadata |= italicBit | 1;\n          }\n          if (typeof tokenStyle.bold !== \"undefined\") {\n            const boldBit = (tokenStyle.bold ? 2 : 0) \u003c\u003c 11;\n            metadata |= boldBit | 2;\n          }\n          if (typeof tokenStyle.underline !== \"undefined\") {\n            const underlineBit = (tokenStyle.underline ? 4 : 0) \u003c\u003c 11;\n            metadata |= underlineBit | 4;\n          }\n          if (typeof tokenStyle.strikethrough !== \"undefined\") {\n            const strikethroughBit = (tokenStyle.strikethrough ? 8 : 0) \u003c\u003c 11;\n            metadata |= strikethroughBit | 8;\n          }\n          if (tokenStyle.foreground) {\n            const foregroundBits = tokenStyle.foreground \u003c\u003c 15;\n            metadata |= foregroundBits | 16;\n          }\n          if (metadata === 0) {\n            metadata = 2147483647;\n          }\n        }\n      } else {\n        if (ENABLE_TRACE \u0026\u0026 this._logService.getLevel() === LogLevel.Trace) {\n          this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${tokenTypeIndex} for legend: ${JSON.stringify(this._legend.tokenTypes)}`);\n        }\n        metadata = 2147483647;\n        tokenType = \"not-in-legend\";\n      }\n      this._hashTable.add(tokenTypeIndex, tokenModifierSet, encodedLanguageId, metadata);\n      if (ENABLE_TRACE \u0026\u0026 this._logService.getLevel() === LogLevel.Trace) {\n        this._logService.trace(`SemanticTokensProviderStyling ${tokenTypeIndex} (${tokenType}) / ${tokenModifierSet} (${tokenModifiers.join(\" \")}): foreground ${TokenMetadata.getForeground(metadata)}, fontStyle ${TokenMetadata.getFontStyle(metadata).toString(2)}`);\n      }\n    }\n    return metadata;\n  }\n  warnOverlappingSemanticTokens(lineNumber, startColumn) {\n    if (!this._hasWarnedOverlappingTokens) {\n      this._hasWarnedOverlappingTokens = true;\n      this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${lineNumber}, column ${startColumn}`);\n    }\n  }\n  warnInvalidLengthSemanticTokens(lineNumber, startColumn) {\n    if (!this._hasWarnedInvalidLengthTokens) {\n      this._hasWarnedInvalidLengthTokens = true;\n      this._logService.warn(`Semantic token with invalid length detected at lineNumber ${lineNumber}, column ${startColumn}`);\n    }\n  }\n  warnInvalidEditStart(previousResultId, resultId, editIndex, editStart, maxExpectedStart) {\n    if (!this._hasWarnedInvalidEditStart) {\n      this._hasWarnedInvalidEditStart = true;\n      this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${previousResultId}, resultId: ${resultId}) at edit #${editIndex}: The provided start offset ${editStart} is outside the previous data (length ${maxExpectedStart}).`);\n    }\n  }\n};\nSemanticTokensProviderStyling = __decorate145([\n  __param139(1, IThemeService),\n  __param139(2, ILanguageService),\n  __param139(3, ILogService)\n], SemanticTokensProviderStyling);\nfunction toMultilineTokens2(tokens, styling, languageId) {\n  const srcData = tokens.data;\n  const tokenCount = tokens.data.length / 5 | 0;\n  const tokensPerArea = Math.max(\n    Math.ceil(\n      tokenCount / 1024\n      /* SemanticColoringConstants.DesiredMaxAreas */\n    ),\n    400\n    /* SemanticColoringConstants.DesiredTokensPerArea */\n  );\n  const result = [];\n  let tokenIndex = 0;\n  let lastLineNumber = 1;\n  let lastStartCharacter = 0;\n  while (tokenIndex \u003c tokenCount) {\n    const tokenStartIndex = tokenIndex;\n    let tokenEndIndex = Math.min(tokenStartIndex + tokensPerArea, tokenCount);\n    if (tokenEndIndex \u003c tokenCount) {\n      let smallTokenEndIndex = tokenEndIndex;\n      while (smallTokenEndIndex - 1 \u003e tokenStartIndex \u0026\u0026 srcData[5 * smallTokenEndIndex] === 0) {\n        smallTokenEndIndex--;\n      }\n      if (smallTokenEndIndex - 1 === tokenStartIndex) {\n        let bigTokenEndIndex = tokenEndIndex;\n        while (bigTokenEndIndex + 1 \u003c tokenCount \u0026\u0026 srcData[5 * bigTokenEndIndex] === 0) {\n          bigTokenEndIndex++;\n        }\n        tokenEndIndex = bigTokenEndIndex;\n      } else {\n        tokenEndIndex = smallTokenEndIndex;\n      }\n    }\n    let destData = new Uint32Array((tokenEndIndex - tokenStartIndex) * 4);\n    let destOffset = 0;\n    let areaLine = 0;\n    let prevLineNumber = 0;\n    let prevEndCharacter = 0;\n    while (tokenIndex \u003c tokenEndIndex) {\n      const srcOffset = 5 * tokenIndex;\n      const deltaLine = srcData[srcOffset];\n      const deltaCharacter = srcData[srcOffset + 1];\n      const lineNumber = lastLineNumber + deltaLine | 0;\n      const startCharacter = deltaLine === 0 ? lastStartCharacter + deltaCharacter | 0 : deltaCharacter;\n      const length = srcData[srcOffset + 2];\n      const endCharacter = startCharacter + length | 0;\n      const tokenTypeIndex = srcData[srcOffset + 3];\n      const tokenModifierSet = srcData[srcOffset + 4];\n      if (endCharacter \u003c= startCharacter) {\n        styling.warnInvalidLengthSemanticTokens(lineNumber, startCharacter + 1);\n      } else if (prevLineNumber === lineNumber \u0026\u0026 prevEndCharacter \u003e startCharacter) {\n        styling.warnOverlappingSemanticTokens(lineNumber, startCharacter + 1);\n      } else {\n        const metadata = styling.getMetadata(tokenTypeIndex, tokenModifierSet, languageId);\n        if (metadata !== 2147483647) {\n          if (areaLine === 0) {\n            areaLine = lineNumber;\n          }\n          destData[destOffset] = lineNumber - areaLine;\n          destData[destOffset + 1] = startCharacter;\n          destData[destOffset + 2] = endCharacter;\n          destData[destOffset + 3] = metadata;\n          destOffset += 4;\n          prevLineNumber = lineNumber;\n          prevEndCharacter = endCharacter;\n        }\n      }\n      lastLineNumber = lineNumber;\n      lastStartCharacter = startCharacter;\n      tokenIndex++;\n    }\n    if (destOffset !== destData.length) {\n      destData = destData.subarray(0, destOffset);\n    }\n    const tokens2 = SparseMultilineTokens.create(areaLine, destData);\n    result.push(tokens2);\n  }\n  return result;\n}\nvar HashTableEntry = class {\n  constructor(tokenTypeIndex, tokenModifierSet, languageId, metadata) {\n    this.tokenTypeIndex = tokenTypeIndex;\n    this.tokenModifierSet = tokenModifierSet;\n    this.languageId = languageId;\n    this.metadata = metadata;\n    this.next = null;\n  }\n};\nvar HashTable = class _HashTable {\n  static {\n    this._SIZES = [3, 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381, 32749, 65521, 131071, 262139, 524287, 1048573, 2097143];\n  }\n  constructor() {\n    this._elementsCount = 0;\n    this._currentLengthIndex = 0;\n    this._currentLength = _HashTable._SIZES[this._currentLengthIndex];\n    this._growCount = Math.round(this._currentLengthIndex + 1 \u003c _HashTable._SIZES.length ? 2 / 3 * this._currentLength : 0);\n    this._elements = [];\n    _HashTable._nullOutEntries(this._elements, this._currentLength);\n  }\n  static _nullOutEntries(entries2, length) {\n    for (let i2 = 0; i2 \u003c length; i2++) {\n      entries2[i2] = null;\n    }\n  }\n  _hash2(n1, n2) {\n    return (n1 \u003c\u003c 5) - n1 + n2 | 0;\n  }\n  _hashFunc(tokenTypeIndex, tokenModifierSet, languageId) {\n    return this._hash2(this._hash2(tokenTypeIndex, tokenModifierSet), languageId) % this._currentLength;\n  }\n  get(tokenTypeIndex, tokenModifierSet, languageId) {\n    const hash2 = this._hashFunc(tokenTypeIndex, tokenModifierSet, languageId);\n    let p = this._elements[hash2];\n    while (p) {\n      if (p.tokenTypeIndex === tokenTypeIndex \u0026\u0026 p.tokenModifierSet === tokenModifierSet \u0026\u0026 p.languageId === languageId) {\n        return p;\n      }\n      p = p.next;\n    }\n    return null;\n  }\n  add(tokenTypeIndex, tokenModifierSet, languageId, metadata) {\n    this._elementsCount++;\n    if (this._growCount !== 0 \u0026\u0026 this._elementsCount \u003e= this._growCount) {\n      const oldElements = this._elements;\n      this._currentLengthIndex++;\n      this._currentLength = _HashTable._SIZES[this._currentLengthIndex];\n      this._growCount = Math.round(this._currentLengthIndex + 1 \u003c _HashTable._SIZES.length ? 2 / 3 * this._currentLength : 0);\n      this._elements = [];\n      _HashTable._nullOutEntries(this._elements, this._currentLength);\n      for (const first2 of oldElements) {\n        let p = first2;\n        while (p) {\n          const oldNext = p.next;\n          p.next = null;\n          this._add(p);\n          p = oldNext;\n        }\n      }\n    }\n    this._add(new HashTableEntry(tokenTypeIndex, tokenModifierSet, languageId, metadata));\n  }\n  _add(element) {\n    const hash2 = this._hashFunc(element.tokenTypeIndex, element.tokenModifierSet, element.languageId);\n    element.next = this._elements[hash2];\n    this._elements[hash2] = element;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensStyling.js\ninit_instantiation();\nvar ISemanticTokensStylingService = createDecorator(\"semanticTokensStylingService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/common/getSemanticTokens.js\ninit_cancellation();\ninit_errors();\ninit_uri();\ninit_model();\ninit_commands();\ninit_types();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensDto.js\ninit_buffer();\ninit_platform();\nfunction reverseEndianness(arr) {\n  for (let i2 = 0, len = arr.length; i2 \u003c len; i2 += 4) {\n    const b0 = arr[i2 + 0];\n    const b1 = arr[i2 + 1];\n    const b2 = arr[i2 + 2];\n    const b3 = arr[i2 + 3];\n    arr[i2 + 0] = b3;\n    arr[i2 + 1] = b2;\n    arr[i2 + 2] = b1;\n    arr[i2 + 3] = b0;\n  }\n}\nfunction toLittleEndianBuffer(arr) {\n  const uint8Arr = new Uint8Array(arr.buffer, arr.byteOffset, arr.length * 4);\n  if (!isLittleEndian()) {\n    reverseEndianness(uint8Arr);\n  }\n  return VSBuffer.wrap(uint8Arr);\n}\nfunction encodeSemanticTokensDto(semanticTokens) {\n  const dest = new Uint32Array(encodeSemanticTokensDtoSize(semanticTokens));\n  let offset = 0;\n  dest[offset++] = semanticTokens.id;\n  if (semanticTokens.type === \"full\") {\n    dest[offset++] = 1;\n    dest[offset++] = semanticTokens.data.length;\n    dest.set(semanticTokens.data, offset);\n    offset += semanticTokens.data.length;\n  } else {\n    dest[offset++] = 2;\n    dest[offset++] = semanticTokens.deltas.length;\n    for (const delta of semanticTokens.deltas) {\n      dest[offset++] = delta.start;\n      dest[offset++] = delta.deleteCount;\n      if (delta.data) {\n        dest[offset++] = delta.data.length;\n        dest.set(delta.data, offset);\n        offset += delta.data.length;\n      } else {\n        dest[offset++] = 0;\n      }\n    }\n  }\n  return toLittleEndianBuffer(dest);\n}\nfunction encodeSemanticTokensDtoSize(semanticTokens) {\n  let result = 0;\n  result += 1 + 1;\n  if (semanticTokens.type === \"full\") {\n    result += 1 + semanticTokens.data.length;\n  } else {\n    result += 1;\n    result += (1 + 1 + 1) * semanticTokens.deltas.length;\n    for (const delta of semanticTokens.deltas) {\n      if (delta.data) {\n        result += delta.data.length;\n      }\n    }\n  }\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/common/getSemanticTokens.js\ninit_range();\ninit_languageFeatures();\nfunction isSemanticTokens(v) {\n  return v \u0026\u0026 !!v.data;\n}\nfunction isSemanticTokensEdits(v) {\n  return v \u0026\u0026 Array.isArray(v.edits);\n}\nvar DocumentSemanticTokensResult = class {\n  constructor(provider, tokens, error) {\n    this.provider = provider;\n    this.tokens = tokens;\n    this.error = error;\n  }\n};\nfunction hasDocumentSemanticTokensProvider(registry, model) {\n  return registry.has(model);\n}\nfunction getDocumentSemanticTokensProviders(registry, model) {\n  const groups = registry.orderedGroups(model);\n  return groups.length \u003e 0 ? groups[0] : [];\n}\nasync function getDocumentSemanticTokens(registry, model, lastProvider, lastResultId, token) {\n  const providers = getDocumentSemanticTokensProviders(registry, model);\n  const results = await Promise.all(providers.map(async (provider) =\u003e {\n    let result;\n    let error = null;\n    try {\n      result = await provider.provideDocumentSemanticTokens(model, provider === lastProvider ? lastResultId : null, token);\n    } catch (err) {\n      error = err;\n      result = null;\n    }\n    if (!result || !isSemanticTokens(result) \u0026\u0026 !isSemanticTokensEdits(result)) {\n      result = null;\n    }\n    return new DocumentSemanticTokensResult(provider, result, error);\n  }));\n  for (const result of results) {\n    if (result.error) {\n      throw result.error;\n    }\n    if (result.tokens) {\n      return result;\n    }\n  }\n  if (results.length \u003e 0) {\n    return results[0];\n  }\n  return null;\n}\nfunction _getDocumentSemanticTokensProviderHighestGroup(registry, model) {\n  const result = registry.orderedGroups(model);\n  return result.length \u003e 0 ? result[0] : null;\n}\nvar DocumentRangeSemanticTokensResult = class {\n  constructor(provider, tokens) {\n    this.provider = provider;\n    this.tokens = tokens;\n  }\n};\nfunction hasDocumentRangeSemanticTokensProvider(providers, model) {\n  return providers.has(model);\n}\nfunction getDocumentRangeSemanticTokensProviders(providers, model) {\n  const groups = providers.orderedGroups(model);\n  return groups.length \u003e 0 ? groups[0] : [];\n}\nasync function getDocumentRangeSemanticTokens(registry, model, range2, token) {\n  const providers = getDocumentRangeSemanticTokensProviders(registry, model);\n  const results = await Promise.all(providers.map(async (provider) =\u003e {\n    let result;\n    try {\n      result = await provider.provideDocumentRangeSemanticTokens(model, range2, token);\n    } catch (err) {\n      onUnexpectedExternalError(err);\n      result = null;\n    }\n    if (!result || !isSemanticTokens(result)) {\n      result = null;\n    }\n    return new DocumentRangeSemanticTokensResult(provider, result);\n  }));\n  for (const result of results) {\n    if (result.tokens) {\n      return result;\n    }\n  }\n  if (results.length \u003e 0) {\n    return results[0];\n  }\n  return null;\n}\nCommandsRegistry.registerCommand(\"_provideDocumentSemanticTokensLegend\", async (accessor, ...args) =\u003e {\n  const [uri] = args;\n  assertType(uri instanceof URI);\n  const model = accessor.get(IModelService).getModel(uri);\n  if (!model) {\n    return void 0;\n  }\n  const { documentSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n  const providers = _getDocumentSemanticTokensProviderHighestGroup(documentSemanticTokensProvider, model);\n  if (!providers) {\n    return accessor.get(ICommandService).executeCommand(\"_provideDocumentRangeSemanticTokensLegend\", uri);\n  }\n  return providers[0].getLegend();\n});\nCommandsRegistry.registerCommand(\"_provideDocumentSemanticTokens\", async (accessor, ...args) =\u003e {\n  const [uri] = args;\n  assertType(uri instanceof URI);\n  const model = accessor.get(IModelService).getModel(uri);\n  if (!model) {\n    return void 0;\n  }\n  const { documentSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n  if (!hasDocumentSemanticTokensProvider(documentSemanticTokensProvider, model)) {\n    return accessor.get(ICommandService).executeCommand(\"_provideDocumentRangeSemanticTokens\", uri, model.getFullModelRange());\n  }\n  const r = await getDocumentSemanticTokens(documentSemanticTokensProvider, model, null, null, CancellationToken.None);\n  if (!r) {\n    return void 0;\n  }\n  const { provider, tokens } = r;\n  if (!tokens || !isSemanticTokens(tokens)) {\n    return void 0;\n  }\n  const buff = encodeSemanticTokensDto({\n    id: 0,\n    type: \"full\",\n    data: tokens.data\n  });\n  if (tokens.resultId) {\n    provider.releaseDocumentSemanticTokens(tokens.resultId);\n  }\n  return buff;\n});\nCommandsRegistry.registerCommand(\"_provideDocumentRangeSemanticTokensLegend\", async (accessor, ...args) =\u003e {\n  const [uri, range2] = args;\n  assertType(uri instanceof URI);\n  const model = accessor.get(IModelService).getModel(uri);\n  if (!model) {\n    return void 0;\n  }\n  const { documentRangeSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n  const providers = getDocumentRangeSemanticTokensProviders(documentRangeSemanticTokensProvider, model);\n  if (providers.length === 0) {\n    return void 0;\n  }\n  if (providers.length === 1) {\n    return providers[0].getLegend();\n  }\n  if (!range2 || !Range.isIRange(range2)) {\n    console.warn(`provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in`);\n    return providers[0].getLegend();\n  }\n  const result = await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider, model, Range.lift(range2), CancellationToken.None);\n  if (!result) {\n    return void 0;\n  }\n  return result.provider.getLegend();\n});\nCommandsRegistry.registerCommand(\"_provideDocumentRangeSemanticTokens\", async (accessor, ...args) =\u003e {\n  const [uri, range2] = args;\n  assertType(uri instanceof URI);\n  assertType(Range.isIRange(range2));\n  const model = accessor.get(IModelService).getModel(uri);\n  if (!model) {\n    return void 0;\n  }\n  const { documentRangeSemanticTokensProvider } = accessor.get(ILanguageFeaturesService);\n  const result = await getDocumentRangeSemanticTokens(documentRangeSemanticTokensProvider, model, Range.lift(range2), CancellationToken.None);\n  if (!result || !result.tokens) {\n    return void 0;\n  }\n  return encodeSemanticTokensDto({\n    id: 0,\n    type: \"full\",\n    data: result.tokens.data\n  });\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/common/semanticTokensConfig.js\nvar SEMANTIC_HIGHLIGHTING_SETTING_ID = \"editor.semanticHighlighting\";\nfunction isSemanticColoringEnabled(model, themeService, configurationService) {\n  const setting = configurationService.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID, { overrideIdentifier: model.getLanguageId(), resource: model.uri })?.enabled;\n  if (typeof setting === \"boolean\") {\n    return setting;\n  }\n  return themeService.getColorTheme().semanticHighlighting;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js\nvar __decorate146 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param140 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ModelSemanticColoring_1;\nvar DocumentSemanticTokensFeature = class DocumentSemanticTokensFeature2 extends Disposable {\n  constructor(semanticTokensStylingService, modelService, themeService, configurationService, languageFeatureDebounceService, languageFeaturesService) {\n    super();\n    this._watchers = new ResourceMap();\n    const register4 = (model) =\u003e {\n      this._watchers.get(model.uri)?.dispose();\n      this._watchers.set(model.uri, new ModelSemanticColoring(model, semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService));\n    };\n    const deregister = (model, modelSemanticColoring) =\u003e {\n      modelSemanticColoring.dispose();\n      this._watchers.delete(model.uri);\n    };\n    const handleSettingOrThemeChange = () =\u003e {\n      for (const model of modelService.getModels()) {\n        const curr = this._watchers.get(model.uri);\n        if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n          if (!curr) {\n            register4(model);\n          }\n        } else {\n          if (curr) {\n            deregister(model, curr);\n          }\n        }\n      }\n    };\n    modelService.getModels().forEach((model) =\u003e {\n      if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n        register4(model);\n      }\n    });\n    this._register(modelService.onModelAdded((model) =\u003e {\n      if (isSemanticColoringEnabled(model, themeService, configurationService)) {\n        register4(model);\n      }\n    }));\n    this._register(modelService.onModelRemoved((model) =\u003e {\n      const curr = this._watchers.get(model.uri);\n      if (curr) {\n        deregister(model, curr);\n      }\n    }));\n    this._register(configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n        handleSettingOrThemeChange();\n      }\n    }));\n    this._register(themeService.onDidColorThemeChange(handleSettingOrThemeChange));\n  }\n  dispose() {\n    dispose(this._watchers.values());\n    this._watchers.clear();\n    super.dispose();\n  }\n};\nDocumentSemanticTokensFeature = __decorate146([\n  __param140(0, ISemanticTokensStylingService),\n  __param140(1, IModelService),\n  __param140(2, IThemeService),\n  __param140(3, IConfigurationService),\n  __param140(4, ILanguageFeatureDebounceService),\n  __param140(5, ILanguageFeaturesService)\n], DocumentSemanticTokensFeature);\nvar ModelSemanticColoring = class ModelSemanticColoring2 extends Disposable {\n  static {\n    ModelSemanticColoring_1 = this;\n  }\n  static {\n    this.REQUEST_MIN_DELAY = 300;\n  }\n  static {\n    this.REQUEST_MAX_DELAY = 2e3;\n  }\n  constructor(model, _semanticTokensStylingService, themeService, languageFeatureDebounceService, languageFeaturesService) {\n    super();\n    this._semanticTokensStylingService = _semanticTokensStylingService;\n    this._isDisposed = false;\n    this._model = model;\n    this._provider = languageFeaturesService.documentSemanticTokensProvider;\n    this._debounceInformation = languageFeatureDebounceService.for(this._provider, \"DocumentSemanticTokens\", { min: ModelSemanticColoring_1.REQUEST_MIN_DELAY, max: ModelSemanticColoring_1.REQUEST_MAX_DELAY });\n    this._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() =\u003e this._fetchDocumentSemanticTokensNow(), ModelSemanticColoring_1.REQUEST_MIN_DELAY));\n    this._currentDocumentResponse = null;\n    this._currentDocumentRequestCancellationTokenSource = null;\n    this._documentProvidersChangeListeners = [];\n    this._providersChangedDuringRequest = false;\n    this._register(this._model.onDidChangeContent(() =\u003e {\n      if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n        this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n      }\n    }));\n    this._register(this._model.onDidChangeAttached(() =\u003e {\n      if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n        this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n      }\n    }));\n    this._register(this._model.onDidChangeLanguage(() =\u003e {\n      if (this._currentDocumentResponse) {\n        this._currentDocumentResponse.dispose();\n        this._currentDocumentResponse = null;\n      }\n      if (this._currentDocumentRequestCancellationTokenSource) {\n        this._currentDocumentRequestCancellationTokenSource.cancel();\n        this._currentDocumentRequestCancellationTokenSource = null;\n      }\n      this._setDocumentSemanticTokens(null, null, null, []);\n      this._fetchDocumentSemanticTokens.schedule(0);\n    }));\n    const bindDocumentChangeListeners = () =\u003e {\n      dispose(this._documentProvidersChangeListeners);\n      this._documentProvidersChangeListeners = [];\n      for (const provider of this._provider.all(model)) {\n        if (typeof provider.onDidChange === \"function\") {\n          this._documentProvidersChangeListeners.push(provider.onDidChange(() =\u003e {\n            if (this._currentDocumentRequestCancellationTokenSource) {\n              this._providersChangedDuringRequest = true;\n              return;\n            }\n            this._fetchDocumentSemanticTokens.schedule(0);\n          }));\n        }\n      }\n    };\n    bindDocumentChangeListeners();\n    this._register(this._provider.onDidChange(() =\u003e {\n      bindDocumentChangeListeners();\n      this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n    }));\n    this._register(themeService.onDidColorThemeChange((_) =\u003e {\n      this._setDocumentSemanticTokens(null, null, null, []);\n      this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n    }));\n    this._fetchDocumentSemanticTokens.schedule(0);\n  }\n  dispose() {\n    if (this._currentDocumentResponse) {\n      this._currentDocumentResponse.dispose();\n      this._currentDocumentResponse = null;\n    }\n    if (this._currentDocumentRequestCancellationTokenSource) {\n      this._currentDocumentRequestCancellationTokenSource.cancel();\n      this._currentDocumentRequestCancellationTokenSource = null;\n    }\n    dispose(this._documentProvidersChangeListeners);\n    this._documentProvidersChangeListeners = [];\n    this._setDocumentSemanticTokens(null, null, null, []);\n    this._isDisposed = true;\n    super.dispose();\n  }\n  _fetchDocumentSemanticTokensNow() {\n    if (this._currentDocumentRequestCancellationTokenSource) {\n      return;\n    }\n    if (!hasDocumentSemanticTokensProvider(this._provider, this._model)) {\n      if (this._currentDocumentResponse) {\n        this._model.tokenization.setSemanticTokens(null, false);\n      }\n      return;\n    }\n    if (!this._model.isAttachedToEditor()) {\n      return;\n    }\n    const cancellationTokenSource = new CancellationTokenSource();\n    const lastProvider = this._currentDocumentResponse ? this._currentDocumentResponse.provider : null;\n    const lastResultId = this._currentDocumentResponse ? this._currentDocumentResponse.resultId || null : null;\n    const request = getDocumentSemanticTokens(this._provider, this._model, lastProvider, lastResultId, cancellationTokenSource.token);\n    this._currentDocumentRequestCancellationTokenSource = cancellationTokenSource;\n    this._providersChangedDuringRequest = false;\n    const pendingChanges = [];\n    const contentChangeListener = this._model.onDidChangeContent((e) =\u003e {\n      pendingChanges.push(e);\n    });\n    const sw = new StopWatch(false);\n    request.then((res) =\u003e {\n      this._debounceInformation.update(this._model, sw.elapsed());\n      this._currentDocumentRequestCancellationTokenSource = null;\n      contentChangeListener.dispose();\n      if (!res) {\n        this._setDocumentSemanticTokens(null, null, null, pendingChanges);\n      } else {\n        const { provider, tokens } = res;\n        const styling = this._semanticTokensStylingService.getStyling(provider);\n        this._setDocumentSemanticTokens(provider, tokens || null, styling, pendingChanges);\n      }\n    }, (err) =\u003e {\n      const isExpectedError = err \u0026\u0026 (isCancellationError(err) || typeof err.message === \"string\" \u0026\u0026 err.message.indexOf(\"busy\") !== -1);\n      if (!isExpectedError) {\n        onUnexpectedError(err);\n      }\n      this._currentDocumentRequestCancellationTokenSource = null;\n      contentChangeListener.dispose();\n      if (pendingChanges.length \u003e 0 || this._providersChangedDuringRequest) {\n        if (!this._fetchDocumentSemanticTokens.isScheduled()) {\n          this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n        }\n      }\n    });\n  }\n  static _copy(src, srcOffset, dest, destOffset, length) {\n    length = Math.min(length, dest.length - destOffset, src.length - srcOffset);\n    for (let i2 = 0; i2 \u003c length; i2++) {\n      dest[destOffset + i2] = src[srcOffset + i2];\n    }\n  }\n  _setDocumentSemanticTokens(provider, tokens, styling, pendingChanges) {\n    const currentResponse = this._currentDocumentResponse;\n    const rescheduleIfNeeded = () =\u003e {\n      if ((pendingChanges.length \u003e 0 || this._providersChangedDuringRequest) \u0026\u0026 !this._fetchDocumentSemanticTokens.isScheduled()) {\n        this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model));\n      }\n    };\n    if (this._currentDocumentResponse) {\n      this._currentDocumentResponse.dispose();\n      this._currentDocumentResponse = null;\n    }\n    if (this._isDisposed) {\n      if (provider \u0026\u0026 tokens) {\n        provider.releaseDocumentSemanticTokens(tokens.resultId);\n      }\n      return;\n    }\n    if (!provider || !styling) {\n      this._model.tokenization.setSemanticTokens(null, false);\n      return;\n    }\n    if (!tokens) {\n      this._model.tokenization.setSemanticTokens(null, true);\n      rescheduleIfNeeded();\n      return;\n    }\n    if (isSemanticTokensEdits(tokens)) {\n      if (!currentResponse) {\n        this._model.tokenization.setSemanticTokens(null, true);\n        return;\n      }\n      if (tokens.edits.length === 0) {\n        tokens = {\n          resultId: tokens.resultId,\n          data: currentResponse.data\n        };\n      } else {\n        let deltaLength = 0;\n        for (const edit2 of tokens.edits) {\n          deltaLength += (edit2.data ? edit2.data.length : 0) - edit2.deleteCount;\n        }\n        const srcData = currentResponse.data;\n        const destData = new Uint32Array(srcData.length + deltaLength);\n        let srcLastStart = srcData.length;\n        let destLastStart = destData.length;\n        for (let i2 = tokens.edits.length - 1; i2 \u003e= 0; i2--) {\n          const edit2 = tokens.edits[i2];\n          if (edit2.start \u003e srcData.length) {\n            styling.warnInvalidEditStart(currentResponse.resultId, tokens.resultId, i2, edit2.start, srcData.length);\n            this._model.tokenization.setSemanticTokens(null, true);\n            return;\n          }\n          const copyCount = srcLastStart - (edit2.start + edit2.deleteCount);\n          if (copyCount \u003e 0) {\n            ModelSemanticColoring_1._copy(srcData, srcLastStart - copyCount, destData, destLastStart - copyCount, copyCount);\n            destLastStart -= copyCount;\n          }\n          if (edit2.data) {\n            ModelSemanticColoring_1._copy(edit2.data, 0, destData, destLastStart - edit2.data.length, edit2.data.length);\n            destLastStart -= edit2.data.length;\n          }\n          srcLastStart = edit2.start;\n        }\n        if (srcLastStart \u003e 0) {\n          ModelSemanticColoring_1._copy(srcData, 0, destData, 0, srcLastStart);\n        }\n        tokens = {\n          resultId: tokens.resultId,\n          data: destData\n        };\n      }\n    }\n    if (isSemanticTokens(tokens)) {\n      this._currentDocumentResponse = new SemanticTokensResponse(provider, tokens.resultId, tokens.data);\n      const result = toMultilineTokens2(tokens, styling, this._model.getLanguageId());\n      if (pendingChanges.length \u003e 0) {\n        for (const change of pendingChanges) {\n          for (const area of result) {\n            for (const singleChange of change.changes) {\n              area.applyEdit(singleChange.range, singleChange.text);\n            }\n          }\n        }\n      }\n      this._model.tokenization.setSemanticTokens(result, true);\n    } else {\n      this._model.tokenization.setSemanticTokens(null, true);\n    }\n    rescheduleIfNeeded();\n  }\n};\nModelSemanticColoring = ModelSemanticColoring_1 = __decorate146([\n  __param140(1, ISemanticTokensStylingService),\n  __param140(2, IThemeService),\n  __param140(3, ILanguageFeatureDebounceService),\n  __param140(4, ILanguageFeaturesService)\n], ModelSemanticColoring);\nvar SemanticTokensResponse = class {\n  constructor(provider, resultId, data) {\n    this.provider = provider;\n    this.resultId = resultId;\n    this.data = data;\n  }\n  dispose() {\n    this.provider.releaseDocumentSemanticTokens(this.resultId);\n  }\n};\nregisterEditorFeature(DocumentSemanticTokensFeature);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js\ninit_async();\ninit_lifecycle();\ninit_editorExtensions();\ninit_configuration();\ninit_themeService();\ninit_languageFeatureDebounce();\ninit_stopwatch();\ninit_languageFeatures();\nvar __decorate147 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param141 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ViewportSemanticTokensContribution = class ViewportSemanticTokensContribution2 extends Disposable {\n  static {\n    this.ID = \"editor.contrib.viewportSemanticTokens\";\n  }\n  constructor(editor2, _semanticTokensStylingService, _themeService, _configurationService, languageFeatureDebounceService, languageFeaturesService) {\n    super();\n    this._semanticTokensStylingService = _semanticTokensStylingService;\n    this._themeService = _themeService;\n    this._configurationService = _configurationService;\n    this._editor = editor2;\n    this._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n    this._debounceInformation = languageFeatureDebounceService.for(this._provider, \"DocumentRangeSemanticTokens\", { min: 100, max: 500 });\n    this._tokenizeViewport = this._register(new RunOnceScheduler(() =\u003e this._tokenizeViewportNow(), 100));\n    this._outstandingRequests = [];\n    const scheduleTokenizeViewport = () =\u003e {\n      if (this._editor.hasModel()) {\n        this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n      }\n    };\n    this._register(this._editor.onDidScrollChange(() =\u003e {\n      scheduleTokenizeViewport();\n    }));\n    this._register(this._editor.onDidChangeModel(() =\u003e {\n      this._cancelAll();\n      scheduleTokenizeViewport();\n    }));\n    this._register(this._editor.onDidChangeModelContent((e) =\u003e {\n      this._cancelAll();\n      scheduleTokenizeViewport();\n    }));\n    this._register(this._provider.onDidChange(() =\u003e {\n      this._cancelAll();\n      scheduleTokenizeViewport();\n    }));\n    this._register(this._configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n        this._cancelAll();\n        scheduleTokenizeViewport();\n      }\n    }));\n    this._register(this._themeService.onDidColorThemeChange(() =\u003e {\n      this._cancelAll();\n      scheduleTokenizeViewport();\n    }));\n    scheduleTokenizeViewport();\n  }\n  _cancelAll() {\n    for (const request of this._outstandingRequests) {\n      request.cancel();\n    }\n    this._outstandingRequests = [];\n  }\n  _removeOutstandingRequest(req) {\n    for (let i2 = 0, len = this._outstandingRequests.length; i2 \u003c len; i2++) {\n      if (this._outstandingRequests[i2] === req) {\n        this._outstandingRequests.splice(i2, 1);\n        return;\n      }\n    }\n  }\n  _tokenizeViewportNow() {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    if (model.tokenization.hasCompleteSemanticTokens()) {\n      return;\n    }\n    if (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n      if (model.tokenization.hasSomeSemanticTokens()) {\n        model.tokenization.setSemanticTokens(null, false);\n      }\n      return;\n    }\n    if (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n      if (model.tokenization.hasSomeSemanticTokens()) {\n        model.tokenization.setSemanticTokens(null, false);\n      }\n      return;\n    }\n    const visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n    this._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map((range2) =\u003e this._requestRange(model, range2)));\n  }\n  _requestRange(model, range2) {\n    const requestVersionId = model.getVersionId();\n    const request = createCancelablePromise((token) =\u003e Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range2, token)));\n    const sw = new StopWatch(false);\n    request.then((r) =\u003e {\n      this._debounceInformation.update(model, sw.elapsed());\n      if (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n        return;\n      }\n      const { provider, tokens: result } = r;\n      const styling = this._semanticTokensStylingService.getStyling(provider);\n      model.tokenization.setPartialSemanticTokens(range2, toMultilineTokens2(result, styling, model.getLanguageId()));\n    }).then(() =\u003e this._removeOutstandingRequest(request), () =\u003e this._removeOutstandingRequest(request));\n    return request;\n  }\n};\nViewportSemanticTokensContribution = __decorate147([\n  __param141(1, ISemanticTokensStylingService),\n  __param141(2, IThemeService),\n  __param141(3, IConfigurationService),\n  __param141(4, ILanguageFeatureDebounceService),\n  __param141(5, ILanguageFeaturesService)\n], ViewportSemanticTokensContribution);\nregisterEditorContribution(\n  ViewportSemanticTokensContribution.ID,\n  ViewportSemanticTokensContribution,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js\ninit_arrays();\ninit_cancellation();\ninit_errors();\ninit_editorExtensions();\ninit_position();\ninit_range();\ninit_selection();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/smartSelect/browser/wordSelections.js\ninit_strings();\ninit_range();\nvar WordSelectionRangeProvider = class {\n  constructor(selectSubwords = true) {\n    this.selectSubwords = selectSubwords;\n  }\n  provideSelectionRanges(model, positions) {\n    const result = [];\n    for (const position of positions) {\n      const bucket = [];\n      result.push(bucket);\n      if (this.selectSubwords) {\n        this._addInWordRanges(bucket, model, position);\n      }\n      this._addWordRanges(bucket, model, position);\n      this._addWhitespaceLine(bucket, model, position);\n      bucket.push({ range: model.getFullModelRange() });\n    }\n    return result;\n  }\n  _addInWordRanges(bucket, model, pos) {\n    const obj = model.getWordAtPosition(pos);\n    if (!obj) {\n      return;\n    }\n    const { word, startColumn } = obj;\n    const offset = pos.column - startColumn;\n    let start = offset;\n    let end = offset;\n    let lastCh = 0;\n    for (; start \u003e= 0; start--) {\n      const ch = word.charCodeAt(start);\n      if (start !== offset \u0026\u0026 (ch === 95 || ch === 45)) {\n        break;\n      } else if (isLowerAsciiLetter(ch) \u0026\u0026 isUpperAsciiLetter(lastCh)) {\n        break;\n      }\n      lastCh = ch;\n    }\n    start += 1;\n    for (; end \u003c word.length; end++) {\n      const ch = word.charCodeAt(end);\n      if (isUpperAsciiLetter(ch) \u0026\u0026 isLowerAsciiLetter(lastCh)) {\n        break;\n      } else if (ch === 95 || ch === 45) {\n        break;\n      }\n      lastCh = ch;\n    }\n    if (start \u003c end) {\n      bucket.push({ range: new Range(pos.lineNumber, startColumn + start, pos.lineNumber, startColumn + end) });\n    }\n  }\n  _addWordRanges(bucket, model, pos) {\n    const word = model.getWordAtPosition(pos);\n    if (word) {\n      bucket.push({ range: new Range(pos.lineNumber, word.startColumn, pos.lineNumber, word.endColumn) });\n    }\n  }\n  _addWhitespaceLine(bucket, model, pos) {\n    if (model.getLineLength(pos.lineNumber) \u003e 0 \u0026\u0026 model.getLineFirstNonWhitespaceColumn(pos.lineNumber) === 0 \u0026\u0026 model.getLineLastNonWhitespaceColumn(pos.lineNumber) === 0) {\n      bucket.push({ range: new Range(pos.lineNumber, 1, pos.lineNumber, model.getLineMaxColumn(pos.lineNumber)) });\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js\ninit_nls();\ninit_actions2();\ninit_commands();\ninit_languageFeatures();\ninit_resolverService();\ninit_types();\ninit_uri();\nvar __decorate148 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param142 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SmartSelectController_1;\nvar SelectionRanges = class _SelectionRanges {\n  constructor(index, ranges) {\n    this.index = index;\n    this.ranges = ranges;\n  }\n  mov(fwd) {\n    const index = this.index + (fwd ? 1 : -1);\n    if (index \u003c 0 || index \u003e= this.ranges.length) {\n      return this;\n    }\n    const res = new _SelectionRanges(index, this.ranges);\n    if (res.ranges[index].equalsRange(this.ranges[this.index])) {\n      return res.mov(fwd);\n    }\n    return res;\n  }\n};\nvar SmartSelectController = class SmartSelectController2 {\n  static {\n    SmartSelectController_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.smartSelectController\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(SmartSelectController_1.ID);\n  }\n  constructor(_editor, _languageFeaturesService) {\n    this._editor = _editor;\n    this._languageFeaturesService = _languageFeaturesService;\n    this._ignoreSelection = false;\n  }\n  dispose() {\n    this._selectionListener?.dispose();\n  }\n  async run(forward) {\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const selections = this._editor.getSelections();\n    const model = this._editor.getModel();\n    if (!this._state) {\n      await provideSelectionRanges(this._languageFeaturesService.selectionRangeProvider, model, selections.map((s) =\u003e s.getPosition()), this._editor.getOption(\n        128\n        /* EditorOption.smartSelect */\n      ), CancellationToken.None).then((ranges) =\u003e {\n        if (!isNonEmptyArray(ranges) || ranges.length !== selections.length) {\n          return;\n        }\n        if (!this._editor.hasModel() || !equals(this._editor.getSelections(), selections, (a, b) =\u003e a.equalsSelection(b))) {\n          return;\n        }\n        for (let i2 = 0; i2 \u003c ranges.length; i2++) {\n          ranges[i2] = ranges[i2].filter((range2) =\u003e {\n            return range2.containsPosition(selections[i2].getStartPosition()) \u0026\u0026 range2.containsPosition(selections[i2].getEndPosition());\n          });\n          ranges[i2].unshift(selections[i2]);\n        }\n        this._state = ranges.map((ranges2) =\u003e new SelectionRanges(0, ranges2));\n        this._selectionListener?.dispose();\n        this._selectionListener = this._editor.onDidChangeCursorPosition(() =\u003e {\n          if (!this._ignoreSelection) {\n            this._selectionListener?.dispose();\n            this._state = void 0;\n          }\n        });\n      });\n    }\n    if (!this._state) {\n      return;\n    }\n    this._state = this._state.map((state) =\u003e state.mov(forward));\n    const newSelections = this._state.map((state) =\u003e Selection.fromPositions(state.ranges[state.index].getStartPosition(), state.ranges[state.index].getEndPosition()));\n    this._ignoreSelection = true;\n    try {\n      this._editor.setSelections(newSelections);\n    } finally {\n      this._ignoreSelection = false;\n    }\n  }\n};\nSmartSelectController = SmartSelectController_1 = __decorate148([\n  __param142(1, ILanguageFeaturesService)\n], SmartSelectController);\nvar AbstractSmartSelect = class extends EditorAction {\n  constructor(forward, opts) {\n    super(opts);\n    this._forward = forward;\n  }\n  async run(_accessor, editor2) {\n    const controller = SmartSelectController.get(editor2);\n    if (controller) {\n      await controller.run(this._forward);\n    }\n  }\n};\nvar GrowSelectionAction = class extends AbstractSmartSelect {\n  constructor() {\n    super(true, {\n      id: \"editor.action.smartSelect.expand\",\n      label: localize2(1382, \"Expand Selection\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 1024 | 512 | 17,\n        mac: {\n          primary: 2048 | 256 | 1024 | 17,\n          secondary: [\n            256 | 1024 | 17\n            /* KeyCode.RightArrow */\n          ]\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"1_basic\",\n        title: localize(1380, \"\u0026\u0026Expand Selection\"),\n        order: 2\n      }\n    });\n  }\n};\nCommandsRegistry.registerCommandAlias(\"editor.action.smartSelect.grow\", \"editor.action.smartSelect.expand\");\nvar ShrinkSelectionAction = class extends AbstractSmartSelect {\n  constructor() {\n    super(false, {\n      id: \"editor.action.smartSelect.shrink\",\n      label: localize2(1383, \"Shrink Selection\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 1024 | 512 | 15,\n        mac: {\n          primary: 2048 | 256 | 1024 | 15,\n          secondary: [\n            256 | 1024 | 15\n            /* KeyCode.LeftArrow */\n          ]\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      menuOpts: {\n        menuId: MenuId.MenubarSelectionMenu,\n        group: \"1_basic\",\n        title: localize(1381, \"\u0026\u0026Shrink Selection\"),\n        order: 3\n      }\n    });\n  }\n};\nregisterEditorContribution(\n  SmartSelectController.ID,\n  SmartSelectController,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\nregisterEditorAction(GrowSelectionAction);\nregisterEditorAction(ShrinkSelectionAction);\nasync function provideSelectionRanges(registry, model, positions, options2, token) {\n  const providers = registry.all(model).concat(new WordSelectionRangeProvider(options2.selectSubwords));\n  if (providers.length === 1) {\n    providers.unshift(new BracketSelectionRangeProvider());\n  }\n  const work = [];\n  const allRawRanges = [];\n  for (const provider of providers) {\n    work.push(Promise.resolve(provider.provideSelectionRanges(model, positions, token)).then((allProviderRanges) =\u003e {\n      if (isNonEmptyArray(allProviderRanges) \u0026\u0026 allProviderRanges.length === positions.length) {\n        for (let i2 = 0; i2 \u003c positions.length; i2++) {\n          if (!allRawRanges[i2]) {\n            allRawRanges[i2] = [];\n          }\n          for (const oneProviderRanges of allProviderRanges[i2]) {\n            if (Range.isIRange(oneProviderRanges.range) \u0026\u0026 Range.containsPosition(oneProviderRanges.range, positions[i2])) {\n              allRawRanges[i2].push(Range.lift(oneProviderRanges.range));\n            }\n          }\n        }\n      }\n    }, onUnexpectedExternalError));\n  }\n  await Promise.all(work);\n  return allRawRanges.map((oneRawRanges) =\u003e {\n    if (oneRawRanges.length === 0) {\n      return [];\n    }\n    oneRawRanges.sort((a, b) =\u003e {\n      if (Position.isBefore(a.getStartPosition(), b.getStartPosition())) {\n        return 1;\n      } else if (Position.isBefore(b.getStartPosition(), a.getStartPosition())) {\n        return -1;\n      } else if (Position.isBefore(a.getEndPosition(), b.getEndPosition())) {\n        return -1;\n      } else if (Position.isBefore(b.getEndPosition(), a.getEndPosition())) {\n        return 1;\n      } else {\n        return 0;\n      }\n    });\n    const oneRanges = [];\n    let last;\n    for (const range2 of oneRawRanges) {\n      if (!last || Range.containsRange(range2, last) \u0026\u0026 !Range.equalsRange(range2, last)) {\n        oneRanges.push(range2);\n        last = range2;\n      }\n    }\n    if (!options2.selectLeadingAndTrailingWhitespace) {\n      return oneRanges;\n    }\n    const oneRangesWithTrivia = [oneRanges[0]];\n    for (let i2 = 1; i2 \u003c oneRanges.length; i2++) {\n      const prev = oneRanges[i2 - 1];\n      const cur = oneRanges[i2];\n      if (cur.startLineNumber !== prev.startLineNumber || cur.endLineNumber !== prev.endLineNumber) {\n        const rangeNoWhitespace = new Range(prev.startLineNumber, model.getLineFirstNonWhitespaceColumn(prev.startLineNumber), prev.endLineNumber, model.getLineLastNonWhitespaceColumn(prev.endLineNumber));\n        if (rangeNoWhitespace.containsRange(prev) \u0026\u0026 !rangeNoWhitespace.equalsRange(prev) \u0026\u0026 cur.containsRange(rangeNoWhitespace) \u0026\u0026 !cur.equalsRange(rangeNoWhitespace)) {\n          oneRangesWithTrivia.push(rangeNoWhitespace);\n        }\n        const rangeFull = new Range(prev.startLineNumber, 1, prev.endLineNumber, model.getLineMaxColumn(prev.endLineNumber));\n        if (rangeFull.containsRange(prev) \u0026\u0026 !rangeFull.equalsRange(rangeNoWhitespace) \u0026\u0026 cur.containsRange(rangeFull) \u0026\u0026 !cur.equalsRange(rangeFull)) {\n          oneRangesWithTrivia.push(rangeFull);\n        }\n      }\n      oneRangesWithTrivia.push(cur);\n    }\n    return oneRangesWithTrivia;\n  });\n}\nCommandsRegistry.registerCommand(\"_executeSelectionRangeProvider\", async function(accessor, ...args) {\n  const [resource, positions] = args;\n  assertType(URI.isUri(resource));\n  const registry = accessor.get(ILanguageFeaturesService).selectionRangeProvider;\n  const reference = await accessor.get(ITextModelService).createModelReference(resource);\n  try {\n    return provideSelectionRanges(registry, reference.object.textEditorModel, positions, { selectLeadingAndTrailingWhitespace: true, selectSubwords: true }, CancellationToken.None);\n  } finally {\n    reference.dispose();\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollContribution.js\ninit_editorExtensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js\ninit_editorExtensions();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/action/common/actionCommonCategories.js\ninit_nls();\nvar Categories = Object.freeze({\n  View: localize2(1620, \"View\"),\n  Help: localize2(1621, \"Help\"),\n  Test: localize2(1622, \"Test\"),\n  File: localize2(1623, \"File\"),\n  Preferences: localize2(1624, \"Preferences\"),\n  Developer: localize2(1625, \"Developer\")\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js\ninit_actions2();\ninit_configuration();\ninit_contextkey();\ninit_editorContextKeys();\nvar ToggleStickyScroll = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"editor.action.toggleStickyScroll\",\n      title: {\n        ...localize2(1430, \"Toggle Editor Sticky Scroll\"),\n        mnemonicTitle: localize(1426, \"\u0026\u0026Toggle Editor Sticky Scroll\")\n      },\n      metadata: {\n        description: localize2(1431, \"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport\")\n      },\n      category: Categories.View,\n      toggled: {\n        condition: ContextKeyExpr.equals(\"config.editor.stickyScroll.enabled\", true),\n        title: localize(1427, \"Sticky Scroll\"),\n        mnemonicTitle: localize(1428, \"\u0026\u0026Sticky Scroll\")\n      },\n      menu: [\n        { id: MenuId.CommandPalette },\n        { id: MenuId.MenubarAppearanceMenu, group: \"4_editor\", order: 3 },\n        { id: MenuId.StickyScrollContext }\n      ]\n    });\n  }\n  async runEditorCommand(accessor, editor2) {\n    const configurationService = accessor.get(IConfigurationService);\n    const newValue = !configurationService.getValue(\"editor.stickyScroll.enabled\");\n    const isFocused = StickyScrollController2.get(editor2)?.isFocused();\n    configurationService.updateValue(\"editor.stickyScroll.enabled\", newValue);\n    if (isFocused) {\n      editor2.focus();\n    }\n  }\n};\nvar weight4 = 100;\nvar FocusStickyScroll = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"editor.action.focusStickyScroll\",\n      title: {\n        ...localize2(1432, \"Focus Editor Sticky Scroll\"),\n        mnemonicTitle: localize(1429, \"\u0026\u0026Focus Editor Sticky Scroll\")\n      },\n      precondition: ContextKeyExpr.and(ContextKeyExpr.has(\"config.editor.stickyScroll.enabled\"), EditorContextKeys.stickyScrollVisible),\n      menu: [\n        { id: MenuId.CommandPalette }\n      ]\n    });\n  }\n  runEditorCommand(_accessor, editor2) {\n    StickyScrollController2.get(editor2)?.focus();\n  }\n};\nvar SelectNextStickyScrollLine = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"editor.action.selectNextStickyScrollLine\",\n      title: localize2(1433, \"Select the next editor sticky scroll line\"),\n      precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n      keybinding: {\n        weight: weight4,\n        primary: 18\n        /* KeyCode.DownArrow */\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2) {\n    StickyScrollController2.get(editor2)?.focusNext();\n  }\n};\nvar SelectPreviousStickyScrollLine = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"editor.action.selectPreviousStickyScrollLine\",\n      title: localize2(1434, \"Select the previous sticky scroll line\"),\n      precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n      keybinding: {\n        weight: weight4,\n        primary: 16\n        /* KeyCode.UpArrow */\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2) {\n    StickyScrollController2.get(editor2)?.focusPrevious();\n  }\n};\nvar GoToStickyScrollLine = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"editor.action.goToFocusedStickyScrollLine\",\n      title: localize2(1435, \"Go to the focused sticky scroll line\"),\n      precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n      keybinding: {\n        weight: weight4,\n        primary: 3\n        /* KeyCode.Enter */\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2) {\n    StickyScrollController2.get(editor2)?.goToFocused();\n  }\n};\nvar SelectEditor = class extends EditorAction2 {\n  constructor() {\n    super({\n      id: \"editor.action.selectEditor\",\n      title: localize2(1436, \"Select Editor\"),\n      precondition: EditorContextKeys.stickyScrollFocused.isEqualTo(true),\n      keybinding: {\n        weight: weight4,\n        primary: 9\n        /* KeyCode.Escape */\n      }\n    });\n  }\n  runEditorCommand(_accessor, editor2) {\n    StickyScrollController2.get(editor2)?.selectEditor();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollContribution.js\ninit_actions2();\nregisterEditorContribution(\n  StickyScrollController2.ID,\n  StickyScrollController2,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nregisterAction2(ToggleStickyScroll);\nregisterAction2(FocusStickyScroll);\nregisterAction2(SelectPreviousStickyScrollLine);\nregisterAction2(SelectNextStickyScrollLine);\nregisterAction2(GoToStickyScrollLine);\nregisterAction2(SelectEditor);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js\ninit_cancellation();\ninit_filters();\ninit_iterator();\ninit_lifecycle();\ninit_codeEditorService();\ninit_range();\ninit_languageFeatures();\nvar __decorate149 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param143 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SuggestInlineCompletion = class {\n  constructor(range2, insertText, filterText, additionalTextEdits, command, action, completion) {\n    this.range = range2;\n    this.insertText = insertText;\n    this.filterText = filterText;\n    this.additionalTextEdits = additionalTextEdits;\n    this.command = command;\n    this.action = action;\n    this.completion = completion;\n  }\n};\nvar InlineCompletionResults = class InlineCompletionResults2 extends RefCountedDisposable {\n  constructor(model, line, word, completionModel, completions, _suggestMemoryService) {\n    super(completions.disposable);\n    this.model = model;\n    this.line = line;\n    this.word = word;\n    this.completionModel = completionModel;\n    this._suggestMemoryService = _suggestMemoryService;\n  }\n  canBeReused(model, line, word) {\n    return this.model === model \u0026\u0026 this.line === line \u0026\u0026 this.word.word.length \u003e 0 \u0026\u0026 this.word.startColumn === word.startColumn \u0026\u0026 this.word.endColumn \u003c word.endColumn \u0026\u0026 this.completionModel.getIncompleteProvider().size === 0;\n  }\n  get items() {\n    const result = [];\n    const { items } = this.completionModel;\n    const selectedIndex = this._suggestMemoryService.select(this.model, { lineNumber: this.line, column: this.word.endColumn + this.completionModel.lineContext.characterCountDelta }, items);\n    const first2 = Iterable.slice(items, selectedIndex);\n    const second = Iterable.slice(items, 0, selectedIndex);\n    let resolveCount = 5;\n    for (const item of Iterable.concat(first2, second)) {\n      if (item.score === FuzzyScore.Default) {\n        continue;\n      }\n      const range2 = new Range(\n        item.editStart.lineNumber,\n        item.editStart.column,\n        item.editInsertEnd.lineNumber,\n        item.editInsertEnd.column + this.completionModel.lineContext.characterCountDelta\n        // end PLUS character delta\n      );\n      const insertText = item.completion.insertTextRules \u0026\u0026 item.completion.insertTextRules \u0026 4 ? { snippet: item.completion.insertText } : item.completion.insertText;\n      result.push(new SuggestInlineCompletion(range2, insertText, item.filterTextLow ?? item.labelLow, item.completion.additionalTextEdits, item.completion.command, item.completion.action, item));\n      if (resolveCount-- \u003e= 0) {\n        item.resolve(CancellationToken.None);\n      }\n    }\n    return result;\n  }\n};\nInlineCompletionResults = __decorate149([\n  __param143(5, ISuggestMemoryService)\n], InlineCompletionResults);\nvar SuggestInlineCompletions = class SuggestInlineCompletions2 extends Disposable {\n  constructor(_languageFeatureService, _clipboardService, _suggestMemoryService, _editorService) {\n    super();\n    this._languageFeatureService = _languageFeatureService;\n    this._clipboardService = _clipboardService;\n    this._suggestMemoryService = _suggestMemoryService;\n    this._editorService = _editorService;\n    this._store.add(_languageFeatureService.inlineCompletionsProvider.register(\"*\", this));\n  }\n  async provideInlineCompletions(model, position, context, token) {\n    if (context.selectedSuggestionInfo) {\n      return;\n    }\n    let editor2;\n    for (const candidate of this._editorService.listCodeEditors()) {\n      if (candidate.getModel() === model) {\n        editor2 = candidate;\n        break;\n      }\n    }\n    if (!editor2) {\n      return;\n    }\n    const config = editor2.getOption(\n      101\n      /* EditorOption.quickSuggestions */\n    );\n    if (QuickSuggestionsOptions.isAllOff(config)) {\n      return;\n    }\n    model.tokenization.tokenizeIfCheap(position.lineNumber);\n    const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n    const tokenType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(Math.max(position.column - 1 - 1, 0)));\n    if (QuickSuggestionsOptions.valueFor(config, tokenType) !== \"inline\") {\n      return void 0;\n    }\n    let wordInfo = model.getWordAtPosition(position);\n    let triggerCharacterInfo;\n    if (!wordInfo?.word) {\n      triggerCharacterInfo = this._getTriggerCharacterInfo(model, position);\n    }\n    if (!wordInfo?.word \u0026\u0026 !triggerCharacterInfo) {\n      return;\n    }\n    if (!wordInfo) {\n      wordInfo = model.getWordUntilPosition(position);\n    }\n    if (wordInfo.endColumn !== position.column) {\n      return;\n    }\n    let result;\n    const leadingLineContents = model.getValueInRange(new Range(position.lineNumber, 1, position.lineNumber, position.column));\n    if (!triggerCharacterInfo \u0026\u0026 this._lastResult?.canBeReused(model, position.lineNumber, wordInfo)) {\n      const newLineContext = new LineContext(leadingLineContents, position.column - this._lastResult.word.endColumn);\n      this._lastResult.completionModel.lineContext = newLineContext;\n      this._lastResult.acquire();\n      result = this._lastResult;\n    } else {\n      const completions = await provideSuggestionItems(this._languageFeatureService.completionProvider, model, position, new CompletionOptions(void 0, SuggestModel.createSuggestFilter(editor2).itemKind, triggerCharacterInfo?.providers), triggerCharacterInfo \u0026\u0026 { triggerKind: 1, triggerCharacter: triggerCharacterInfo.ch }, token);\n      let clipboardText;\n      if (completions.needsClipboard) {\n        clipboardText = await this._clipboardService.readText();\n      }\n      const completionModel = new CompletionModel(completions.items, position.column, new LineContext(leadingLineContents, 0), WordDistance.None, editor2.getOption(\n        133\n        /* EditorOption.suggest */\n      ), editor2.getOption(\n        127\n        /* EditorOption.snippetSuggestions */\n      ), { boostFullMatch: false, firstMatchCanBeWeak: false }, clipboardText);\n      result = new InlineCompletionResults(model, position.lineNumber, wordInfo, completionModel, completions, this._suggestMemoryService);\n    }\n    this._lastResult = result;\n    return result;\n  }\n  handleItemDidShow(_completions, item) {\n    item.completion.resolve(CancellationToken.None);\n  }\n  disposeInlineCompletions(result) {\n    result.release();\n  }\n  _getTriggerCharacterInfo(model, position) {\n    const ch = model.getValueInRange(Range.fromPositions({ lineNumber: position.lineNumber, column: position.column - 1 }, position));\n    const providers = /* @__PURE__ */ new Set();\n    for (const provider of this._languageFeatureService.completionProvider.all(model)) {\n      if (provider.triggerCharacters?.includes(ch)) {\n        providers.add(provider);\n      }\n    }\n    if (providers.size === 0) {\n      return void 0;\n    }\n    return { providers, ch };\n  }\n};\nSuggestInlineCompletions = __decorate149([\n  __param143(0, ILanguageFeaturesService),\n  __param143(1, IClipboardService),\n  __param143(2, ISuggestMemoryService),\n  __param143(3, ICodeEditorService)\n], SuggestInlineCompletions);\nregisterEditorFeature(SuggestInlineCompletions);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/tokenization/browser/tokenization.js\ninit_stopwatch();\ninit_editorExtensions();\ninit_nls();\nvar ForceRetokenizeAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.forceRetokenize\",\n      label: localize2(1514, \"Developer: Force Retokenize\"),\n      precondition: void 0\n    });\n  }\n  run(accessor, editor2) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const model = editor2.getModel();\n    model.tokenization.resetTokenization();\n    const sw = new StopWatch();\n    model.tokenization.forceTokenization(model.getLineCount());\n    sw.stop();\n    console.log(`tokenization took ${sw.elapsed()}`);\n  }\n};\nregisterEditorAction(ForceRetokenizeAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js\ninit_nls();\ninit_actions2();\nvar ToggleTabFocusModeAction = class _ToggleTabFocusModeAction extends Action2 {\n  static {\n    this.ID = \"editor.action.toggleTabFocusMode\";\n  }\n  constructor() {\n    super({\n      id: _ToggleTabFocusModeAction.ID,\n      title: localize2(1512, \"Toggle Tab Key Moves Focus\"),\n      precondition: void 0,\n      keybinding: {\n        primary: 2048 | 43,\n        mac: {\n          primary: 256 | 1024 | 43\n          /* KeyCode.KeyM */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      metadata: {\n        description: localize2(1513, \"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.\")\n      },\n      f1: true\n    });\n  }\n  run() {\n    const oldValue = TabFocus.getTabFocusMode();\n    const newValue = !oldValue;\n    TabFocus.setTabFocusMode(newValue);\n    if (newValue) {\n      alert(localize(1510, \"Pressing Tab will now move focus to the next focusable element\"));\n    } else {\n      alert(localize(1511, \"Pressing Tab will now insert the tab character\"));\n    }\n  }\n};\nregisterAction2(ToggleTabFocusModeAction);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js\ninit_async();\ninit_codicons();\ninit_htmlContent();\ninit_lifecycle();\ninit_platform();\ninit_strings();\ninit_editorExtensions();\ninit_textModel();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/unicodeTextModelHighlighter.js\ninit_range();\ninit_textModelSearch();\ninit_strings();\ninit_assert();\ninit_wordHelper();\nvar UnicodeTextModelHighlighter = class {\n  static computeUnicodeHighlights(model, options2, range2) {\n    const startLine = range2 ? range2.startLineNumber : 1;\n    const endLine = range2 ? range2.endLineNumber : model.getLineCount();\n    const codePointHighlighter = new CodePointHighlighter(options2);\n    const candidates = codePointHighlighter.getCandidateCodePoints();\n    let regex;\n    if (candidates === \"allNonBasicAscii\") {\n      regex = new RegExp(\"[^\\\\t\\\\n\\\\r\\\\x20-\\\\x7E]\", \"g\");\n    } else {\n      regex = new RegExp(`${buildRegExpCharClassExpr(Array.from(candidates))}`, \"g\");\n    }\n    const searcher = new Searcher(null, regex);\n    const ranges = [];\n    let hasMore = false;\n    let m;\n    let ambiguousCharacterCount = 0;\n    let invisibleCharacterCount = 0;\n    let nonBasicAsciiCharacterCount = 0;\n    forLoop: for (let lineNumber = startLine, lineCount = endLine; lineNumber \u003c= lineCount; lineNumber++) {\n      const lineContent = model.getLineContent(lineNumber);\n      const lineLength = lineContent.length;\n      searcher.reset(0);\n      do {\n        m = searcher.next(lineContent);\n        if (m) {\n          let startIndex = m.index;\n          let endIndex = m.index + m[0].length;\n          if (startIndex \u003e 0) {\n            const charCodeBefore = lineContent.charCodeAt(startIndex - 1);\n            if (isHighSurrogate(charCodeBefore)) {\n              startIndex--;\n            }\n          }\n          if (endIndex + 1 \u003c lineLength) {\n            const charCodeBefore = lineContent.charCodeAt(endIndex - 1);\n            if (isHighSurrogate(charCodeBefore)) {\n              endIndex++;\n            }\n          }\n          const str = lineContent.substring(startIndex, endIndex);\n          let word = getWordAtText(startIndex + 1, DEFAULT_WORD_REGEXP, lineContent, 0);\n          if (word \u0026\u0026 word.endColumn \u003c= startIndex + 1) {\n            word = null;\n          }\n          const highlightReason = codePointHighlighter.shouldHighlightNonBasicASCII(str, word ? word.word : null);\n          if (highlightReason !== 0) {\n            if (highlightReason === 3) {\n              ambiguousCharacterCount++;\n            } else if (highlightReason === 2) {\n              invisibleCharacterCount++;\n            } else if (highlightReason === 1) {\n              nonBasicAsciiCharacterCount++;\n            } else {\n              assertNever(highlightReason);\n            }\n            const MAX_RESULT_LENGTH = 1e3;\n            if (ranges.length \u003e= MAX_RESULT_LENGTH) {\n              hasMore = true;\n              break forLoop;\n            }\n            ranges.push(new Range(lineNumber, startIndex + 1, lineNumber, endIndex + 1));\n          }\n        }\n      } while (m);\n    }\n    return {\n      ranges,\n      hasMore,\n      ambiguousCharacterCount,\n      invisibleCharacterCount,\n      nonBasicAsciiCharacterCount\n    };\n  }\n  static computeUnicodeHighlightReason(char, options2) {\n    const codePointHighlighter = new CodePointHighlighter(options2);\n    const reason = codePointHighlighter.shouldHighlightNonBasicASCII(char, null);\n    switch (reason) {\n      case 0:\n        return null;\n      case 2:\n        return {\n          kind: 1\n          /* UnicodeHighlighterReasonKind.Invisible */\n        };\n      case 3: {\n        const codePoint = char.codePointAt(0);\n        const primaryConfusable = codePointHighlighter.ambiguousCharacters.getPrimaryConfusable(codePoint);\n        const notAmbiguousInLocales = AmbiguousCharacters.getLocales().filter((l) =\u003e !AmbiguousCharacters.getInstance(/* @__PURE__ */ new Set([...options2.allowedLocales, l])).isAmbiguous(codePoint));\n        return { kind: 0, confusableWith: String.fromCodePoint(primaryConfusable), notAmbiguousInLocales };\n      }\n      case 1:\n        return {\n          kind: 2\n          /* UnicodeHighlighterReasonKind.NonBasicAscii */\n        };\n    }\n  }\n};\nfunction buildRegExpCharClassExpr(codePoints, flags) {\n  const src = `[${escapeRegExpCharacters(codePoints.map((i2) =\u003e String.fromCodePoint(i2)).join(\"\"))}]`;\n  return src;\n}\nvar CodePointHighlighter = class {\n  constructor(options2) {\n    this.options = options2;\n    this.allowedCodePoints = new Set(options2.allowedCodePoints);\n    this.ambiguousCharacters = AmbiguousCharacters.getInstance(new Set(options2.allowedLocales));\n  }\n  getCandidateCodePoints() {\n    if (this.options.nonBasicASCII) {\n      return \"allNonBasicAscii\";\n    }\n    const set = /* @__PURE__ */ new Set();\n    if (this.options.invisibleCharacters) {\n      for (const cp of InvisibleCharacters.codePoints) {\n        if (!isAllowedInvisibleCharacter(String.fromCodePoint(cp))) {\n          set.add(cp);\n        }\n      }\n    }\n    if (this.options.ambiguousCharacters) {\n      for (const cp of this.ambiguousCharacters.getConfusableCodePoints()) {\n        set.add(cp);\n      }\n    }\n    for (const cp of this.allowedCodePoints) {\n      set.delete(cp);\n    }\n    return set;\n  }\n  shouldHighlightNonBasicASCII(character, wordContext) {\n    const codePoint = character.codePointAt(0);\n    if (this.allowedCodePoints.has(codePoint)) {\n      return 0;\n    }\n    if (this.options.nonBasicASCII) {\n      return 1;\n    }\n    let hasBasicASCIICharacters = false;\n    let hasNonConfusableNonBasicAsciiCharacter = false;\n    if (wordContext) {\n      for (const char of wordContext) {\n        const codePoint2 = char.codePointAt(0);\n        const isBasicASCII2 = isBasicASCII(char);\n        hasBasicASCIICharacters = hasBasicASCIICharacters || isBasicASCII2;\n        if (!isBasicASCII2 \u0026\u0026 !this.ambiguousCharacters.isAmbiguous(codePoint2) \u0026\u0026 !InvisibleCharacters.isInvisibleCharacter(codePoint2)) {\n          hasNonConfusableNonBasicAsciiCharacter = true;\n        }\n      }\n    }\n    if (\n      /* Don't allow mixing weird looking characters with ASCII */\n      !hasBasicASCIICharacters \u0026\u0026 /* Is there an obviously weird looking character? */\n      hasNonConfusableNonBasicAsciiCharacter\n    ) {\n      return 0;\n    }\n    if (this.options.invisibleCharacters) {\n      if (!isAllowedInvisibleCharacter(character) \u0026\u0026 InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n        return 2;\n      }\n    }\n    if (this.options.ambiguousCharacters) {\n      if (this.ambiguousCharacters.isAmbiguous(codePoint)) {\n        return 3;\n      }\n    }\n    return 0;\n  }\n};\nfunction isAllowedInvisibleCharacter(character) {\n  return character === \" \" || character === \"\\n\" || character === \"\t\";\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js\ninit_editorWorker();\ninit_language();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js\ninit_nls();\ninit_dom();\ninit_actions();\ninit_lifecycle();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/opener/browser/link.js\ninit_dom();\ninit_keyboardEvent();\ninit_event();\ninit_lifecycle();\nvar __decorate150 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param144 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar Link2 = class Link3 extends Disposable {\n  get enabled() {\n    return this._enabled;\n  }\n  set enabled(enabled) {\n    if (enabled) {\n      this.el.setAttribute(\"aria-disabled\", \"false\");\n      this.el.tabIndex = 0;\n      this.el.style.pointerEvents = \"auto\";\n      this.el.style.opacity = \"1\";\n      this.el.style.cursor = \"pointer\";\n      this._enabled = false;\n    } else {\n      this.el.setAttribute(\"aria-disabled\", \"true\");\n      this.el.tabIndex = -1;\n      this.el.style.pointerEvents = \"none\";\n      this.el.style.opacity = \"0.4\";\n      this.el.style.cursor = \"default\";\n      this._enabled = true;\n    }\n    this._enabled = enabled;\n  }\n  constructor(container, _link, options2 = {}, _hoverService, openerService) {\n    super();\n    this._link = _link;\n    this._hoverService = _hoverService;\n    this._enabled = true;\n    this.el = append(container, $(\"a.monaco-link\", {\n      tabIndex: _link.tabIndex ?? 0,\n      href: _link.href\n    }, _link.label));\n    this.hoverDelegate = options2.hoverDelegate ?? getDefaultHoverDelegate(\"mouse\");\n    this.setTooltip(_link.title);\n    this.el.setAttribute(\"role\", \"button\");\n    const onClickEmitter = this._register(new DomEmitter(this.el, \"click\"));\n    const onKeyPress = this._register(new DomEmitter(this.el, \"keypress\"));\n    const onEnterPress = Event.chain(onKeyPress.event, ($23) =\u003e $23.map((e) =\u003e new StandardKeyboardEvent(e)).filter(\n      (e) =\u003e e.keyCode === 3\n      /* KeyCode.Enter */\n    ));\n    const onTap = this._register(new DomEmitter(this.el, EventType2.Tap)).event;\n    this._register(Gesture.addTarget(this.el));\n    const onOpen = Event.any(onClickEmitter.event, onEnterPress, onTap);\n    this._register(onOpen((e) =\u003e {\n      if (!this.enabled) {\n        return;\n      }\n      EventHelper.stop(e, true);\n      if (options2?.opener) {\n        options2.opener(this._link.href);\n      } else {\n        openerService.open(this._link.href, { allowCommands: true });\n      }\n    }));\n    this.enabled = true;\n  }\n  setTooltip(title) {\n    if (!this.hover \u0026\u0026 title) {\n      this.hover = this._register(this._hoverService.setupManagedHover(this.hoverDelegate, this.el, title));\n    } else if (this.hover) {\n      this.hover.update(title);\n    }\n  }\n};\nLink2 = __decorate150([\n  __param144(3, IHoverService),\n  __param144(4, IOpenerService)\n], Link2);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js\ninit_themables();\nvar __decorate151 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param145 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar BANNER_ELEMENT_HEIGHT = 26;\nvar BannerController = class BannerController2 extends Disposable {\n  constructor(_editor, instantiationService) {\n    super();\n    this._editor = _editor;\n    this.instantiationService = instantiationService;\n    this.banner = this._register(this.instantiationService.createInstance(Banner));\n  }\n  hide() {\n    this._editor.setBanner(null, 0);\n    this.banner.clear();\n  }\n  show(item) {\n    this.banner.show({\n      ...item,\n      onClose: () =\u003e {\n        this.hide();\n        item.onClose?.();\n      }\n    });\n    this._editor.setBanner(this.banner.element, BANNER_ELEMENT_HEIGHT);\n  }\n};\nBannerController = __decorate151([\n  __param145(1, IInstantiationService)\n], BannerController);\nvar Banner = class Banner2 extends Disposable {\n  constructor(instantiationService) {\n    super();\n    this.instantiationService = instantiationService;\n    this.markdownRenderer = this.instantiationService.createInstance(MarkdownRenderer, {});\n    this.element = $(\"div.editor-banner\");\n    this.element.tabIndex = 0;\n  }\n  getAriaLabel(item) {\n    if (item.ariaLabel) {\n      return item.ariaLabel;\n    }\n    if (typeof item.message === \"string\") {\n      return item.message;\n    }\n    return void 0;\n  }\n  getBannerMessage(message) {\n    if (typeof message === \"string\") {\n      const element = $(\"span\");\n      element.innerText = message;\n      return element;\n    }\n    return this.markdownRenderer.render(message).element;\n  }\n  clear() {\n    clearNode(this.element);\n  }\n  show(item) {\n    clearNode(this.element);\n    const ariaLabel = this.getAriaLabel(item);\n    if (ariaLabel) {\n      this.element.setAttribute(\"aria-label\", ariaLabel);\n    }\n    const iconContainer = append(this.element, $(\"div.icon-container\"));\n    iconContainer.setAttribute(\"aria-hidden\", \"true\");\n    if (item.icon) {\n      iconContainer.appendChild($(`div${ThemeIcon.asCSSSelector(item.icon)}`));\n    }\n    const messageContainer = append(this.element, $(\"div.message-container\"));\n    messageContainer.setAttribute(\"aria-hidden\", \"true\");\n    messageContainer.appendChild(this.getBannerMessage(item.message));\n    this.messageActionsContainer = append(this.element, $(\"div.message-actions-container\"));\n    if (item.actions) {\n      for (const action of item.actions) {\n        this._register(this.instantiationService.createInstance(Link2, this.messageActionsContainer, { ...action, tabIndex: -1 }, {}));\n      }\n    }\n    const actionBarContainer = append(this.element, $(\"div.action-container\"));\n    this.actionBar = this._register(new ActionBar(actionBarContainer));\n    this.actionBar.push(this._register(new Action(\"banner.close\", localize(1515, \"Close Banner\"), ThemeIcon.asClassName(widgetClose), true, () =\u003e {\n      if (typeof item.onClose === \"function\") {\n        item.onClose();\n      }\n    })), { icon: true, label: false });\n    this.actionBar.setFocusable(false);\n  }\n};\nBanner = __decorate151([\n  __param145(0, IInstantiationService)\n], Banner);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js\ninit_nls();\ninit_configuration();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/workspace/common/workspaceTrust.js\ninit_instantiation();\nvar IWorkspaceTrustManagementService = createDecorator(\"workspaceTrustManagementService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js\ninit_actions2();\ninit_date();\nvar __decorate152 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param146 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar warningIcon = registerIcon(\"extensions-warning-message\", Codicon.warning, localize(1516, \"Icon shown with a warning message in the extensions editor.\"));\nvar UnicodeHighlighter = class UnicodeHighlighter2 extends Disposable {\n  static {\n    this.ID = \"editor.contrib.unicodeHighlighter\";\n  }\n  constructor(_editor, _editorWorkerService, _workspaceTrustService, instantiationService) {\n    super();\n    this._editor = _editor;\n    this._editorWorkerService = _editorWorkerService;\n    this._workspaceTrustService = _workspaceTrustService;\n    this._highlighter = null;\n    this._bannerClosed = false;\n    this._updateState = (state) =\u003e {\n      if (state \u0026\u0026 state.hasMore) {\n        if (this._bannerClosed) {\n          return;\n        }\n        const max = Math.max(state.ambiguousCharacterCount, state.nonBasicAsciiCharacterCount, state.invisibleCharacterCount);\n        let data;\n        if (state.nonBasicAsciiCharacterCount \u003e= max) {\n          data = {\n            message: localize(1517, \"This document contains many non-basic ASCII unicode characters\"),\n            command: new DisableHighlightingOfNonBasicAsciiCharactersAction()\n          };\n        } else if (state.ambiguousCharacterCount \u003e= max) {\n          data = {\n            message: localize(1518, \"This document contains many ambiguous unicode characters\"),\n            command: new DisableHighlightingOfAmbiguousCharactersAction()\n          };\n        } else if (state.invisibleCharacterCount \u003e= max) {\n          data = {\n            message: localize(1519, \"This document contains many invisible unicode characters\"),\n            command: new DisableHighlightingOfInvisibleCharactersAction()\n          };\n        } else {\n          throw new Error(\"Unreachable\");\n        }\n        this._bannerController.show({\n          id: \"unicodeHighlightBanner\",\n          message: data.message,\n          icon: warningIcon,\n          actions: [\n            {\n              label: data.command.shortLabel,\n              href: `command:${data.command.desc.id}`\n            }\n          ],\n          onClose: () =\u003e {\n            this._bannerClosed = true;\n          }\n        });\n      } else {\n        this._bannerController.hide();\n      }\n    };\n    this._bannerController = this._register(instantiationService.createInstance(BannerController, _editor));\n    this._register(this._editor.onDidChangeModel(() =\u003e {\n      this._bannerClosed = false;\n      this._updateHighlighter();\n    }));\n    this._options = _editor.getOption(\n      141\n      /* EditorOption.unicodeHighlighting */\n    );\n    this._register(_workspaceTrustService.onDidChangeTrust((e) =\u003e {\n      this._updateHighlighter();\n    }));\n    this._register(_editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        141\n        /* EditorOption.unicodeHighlighting */\n      )) {\n        this._options = _editor.getOption(\n          141\n          /* EditorOption.unicodeHighlighting */\n        );\n        this._updateHighlighter();\n      }\n    }));\n    this._updateHighlighter();\n  }\n  dispose() {\n    if (this._highlighter) {\n      this._highlighter.dispose();\n      this._highlighter = null;\n    }\n    super.dispose();\n  }\n  _updateHighlighter() {\n    this._updateState(null);\n    if (this._highlighter) {\n      this._highlighter.dispose();\n      this._highlighter = null;\n    }\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const options2 = resolveOptions2(this._workspaceTrustService.isWorkspaceTrusted(), this._options);\n    if ([\n      options2.nonBasicASCII,\n      options2.ambiguousCharacters,\n      options2.invisibleCharacters\n    ].every((option2) =\u003e option2 === false)) {\n      return;\n    }\n    const highlightOptions = {\n      nonBasicASCII: options2.nonBasicASCII,\n      ambiguousCharacters: options2.ambiguousCharacters,\n      invisibleCharacters: options2.invisibleCharacters,\n      includeComments: options2.includeComments,\n      includeStrings: options2.includeStrings,\n      allowedCodePoints: Object.keys(options2.allowedCharacters).map((c) =\u003e c.codePointAt(0)),\n      allowedLocales: Object.keys(options2.allowedLocales).map((locale) =\u003e {\n        if (locale === \"_os\") {\n          const osLocale = safeIntl.NumberFormat().value.resolvedOptions().locale;\n          return osLocale;\n        } else if (locale === \"_vscode\") {\n          return language;\n        }\n        return locale;\n      })\n    };\n    if (this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)) {\n      this._highlighter = new DocumentUnicodeHighlighter(this._editor, highlightOptions, this._updateState, this._editorWorkerService);\n    } else {\n      this._highlighter = new ViewportUnicodeHighlighter(this._editor, highlightOptions, this._updateState);\n    }\n  }\n  getDecorationInfo(decoration3) {\n    if (this._highlighter) {\n      return this._highlighter.getDecorationInfo(decoration3);\n    }\n    return null;\n  }\n};\nUnicodeHighlighter = __decorate152([\n  __param146(1, IEditorWorkerService),\n  __param146(2, IWorkspaceTrustManagementService),\n  __param146(3, IInstantiationService)\n], UnicodeHighlighter);\nfunction resolveOptions2(trusted, options2) {\n  return {\n    nonBasicASCII: options2.nonBasicASCII === inUntrustedWorkspace ? !trusted : options2.nonBasicASCII,\n    ambiguousCharacters: options2.ambiguousCharacters,\n    invisibleCharacters: options2.invisibleCharacters,\n    includeComments: options2.includeComments === inUntrustedWorkspace ? !trusted : options2.includeComments,\n    includeStrings: options2.includeStrings === inUntrustedWorkspace ? !trusted : options2.includeStrings,\n    allowedCharacters: options2.allowedCharacters,\n    allowedLocales: options2.allowedLocales\n  };\n}\nvar DocumentUnicodeHighlighter = class DocumentUnicodeHighlighter2 extends Disposable {\n  constructor(_editor, _options, _updateState, _editorWorkerService) {\n    super();\n    this._editor = _editor;\n    this._options = _options;\n    this._updateState = _updateState;\n    this._editorWorkerService = _editorWorkerService;\n    this._model = this._editor.getModel();\n    this._decorations = this._editor.createDecorationsCollection();\n    this._updateSoon = this._register(new RunOnceScheduler(() =\u003e this._update(), 250));\n    this._register(this._editor.onDidChangeModelContent(() =\u003e {\n      this._updateSoon.schedule();\n    }));\n    this._updateSoon.schedule();\n  }\n  dispose() {\n    this._decorations.clear();\n    super.dispose();\n  }\n  _update() {\n    if (this._model.isDisposed()) {\n      return;\n    }\n    if (!this._model.mightContainNonBasicASCII()) {\n      this._decorations.clear();\n      return;\n    }\n    const modelVersionId = this._model.getVersionId();\n    this._editorWorkerService.computedUnicodeHighlights(this._model.uri, this._options).then((info) =\u003e {\n      if (this._model.isDisposed()) {\n        return;\n      }\n      if (this._model.getVersionId() !== modelVersionId) {\n        return;\n      }\n      this._updateState(info);\n      const decorations = [];\n      if (!info.hasMore) {\n        for (const range2 of info.ranges) {\n          decorations.push({\n            range: range2,\n            options: Decorations.instance.getDecorationFromOptions(this._options)\n          });\n        }\n      }\n      this._decorations.set(decorations);\n    });\n  }\n  getDecorationInfo(decoration3) {\n    if (!this._decorations.has(decoration3)) {\n      return null;\n    }\n    const model = this._editor.getModel();\n    if (!isModelDecorationVisible(model, decoration3)) {\n      return null;\n    }\n    const text2 = model.getValueInRange(decoration3.range);\n    return {\n      reason: computeReason(text2, this._options),\n      inComment: isModelDecorationInComment(model, decoration3),\n      inString: isModelDecorationInString(model, decoration3)\n    };\n  }\n};\nDocumentUnicodeHighlighter = __decorate152([\n  __param146(3, IEditorWorkerService)\n], DocumentUnicodeHighlighter);\nvar ViewportUnicodeHighlighter = class extends Disposable {\n  constructor(_editor, _options, _updateState) {\n    super();\n    this._editor = _editor;\n    this._options = _options;\n    this._updateState = _updateState;\n    this._model = this._editor.getModel();\n    this._decorations = this._editor.createDecorationsCollection();\n    this._updateSoon = this._register(new RunOnceScheduler(() =\u003e this._update(), 250));\n    this._register(this._editor.onDidLayoutChange(() =\u003e {\n      this._updateSoon.schedule();\n    }));\n    this._register(this._editor.onDidScrollChange(() =\u003e {\n      this._updateSoon.schedule();\n    }));\n    this._register(this._editor.onDidChangeHiddenAreas(() =\u003e {\n      this._updateSoon.schedule();\n    }));\n    this._register(this._editor.onDidChangeModelContent(() =\u003e {\n      this._updateSoon.schedule();\n    }));\n    this._updateSoon.schedule();\n  }\n  dispose() {\n    this._decorations.clear();\n    super.dispose();\n  }\n  _update() {\n    if (this._model.isDisposed()) {\n      return;\n    }\n    if (!this._model.mightContainNonBasicASCII()) {\n      this._decorations.clear();\n      return;\n    }\n    const ranges = this._editor.getVisibleRanges();\n    const decorations = [];\n    const totalResult = {\n      ranges: [],\n      ambiguousCharacterCount: 0,\n      invisibleCharacterCount: 0,\n      nonBasicAsciiCharacterCount: 0,\n      hasMore: false\n    };\n    for (const range2 of ranges) {\n      const result = UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model, this._options, range2);\n      for (const r of result.ranges) {\n        totalResult.ranges.push(r);\n      }\n      totalResult.ambiguousCharacterCount += totalResult.ambiguousCharacterCount;\n      totalResult.invisibleCharacterCount += totalResult.invisibleCharacterCount;\n      totalResult.nonBasicAsciiCharacterCount += totalResult.nonBasicAsciiCharacterCount;\n      totalResult.hasMore = totalResult.hasMore || result.hasMore;\n    }\n    if (!totalResult.hasMore) {\n      for (const range2 of totalResult.ranges) {\n        decorations.push({ range: range2, options: Decorations.instance.getDecorationFromOptions(this._options) });\n      }\n    }\n    this._updateState(totalResult);\n    this._decorations.set(decorations);\n  }\n  getDecorationInfo(decoration3) {\n    if (!this._decorations.has(decoration3)) {\n      return null;\n    }\n    const model = this._editor.getModel();\n    const text2 = model.getValueInRange(decoration3.range);\n    if (!isModelDecorationVisible(model, decoration3)) {\n      return null;\n    }\n    return {\n      reason: computeReason(text2, this._options),\n      inComment: isModelDecorationInComment(model, decoration3),\n      inString: isModelDecorationInString(model, decoration3)\n    };\n  }\n};\nvar configureUnicodeHighlightOptionsStr = localize(1520, \"Configure Unicode Highlight Options\");\nvar UnicodeHighlighterHoverParticipant = class UnicodeHighlighterHoverParticipant2 {\n  constructor(_editor, _languageService, _openerService) {\n    this._editor = _editor;\n    this._languageService = _languageService;\n    this._openerService = _openerService;\n    this.hoverOrdinal = 5;\n  }\n  computeSync(anchor, lineDecorations) {\n    if (!this._editor.hasModel() || anchor.type !== 1) {\n      return [];\n    }\n    const model = this._editor.getModel();\n    const unicodeHighlighter = this._editor.getContribution(UnicodeHighlighter.ID);\n    if (!unicodeHighlighter) {\n      return [];\n    }\n    const result = [];\n    const existedReason = /* @__PURE__ */ new Set();\n    let index = 300;\n    for (const d of lineDecorations) {\n      const highlightInfo = unicodeHighlighter.getDecorationInfo(d);\n      if (!highlightInfo) {\n        continue;\n      }\n      const char = model.getValueInRange(d.range);\n      const codePoint = char.codePointAt(0);\n      const codePointStr = formatCodePointMarkdown(codePoint);\n      let reason;\n      switch (highlightInfo.reason.kind) {\n        case 0: {\n          if (isBasicASCII(highlightInfo.reason.confusableWith)) {\n            reason = localize(1521, \"The character {0} could be confused with the ASCII character {1}, which is more common in source code.\", codePointStr, formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));\n          } else {\n            reason = localize(1522, \"The character {0} could be confused with the character {1}, which is more common in source code.\", codePointStr, formatCodePointMarkdown(highlightInfo.reason.confusableWith.codePointAt(0)));\n          }\n          break;\n        }\n        case 1:\n          reason = localize(1523, \"The character {0} is invisible.\", codePointStr);\n          break;\n        case 2:\n          reason = localize(1524, \"The character {0} is not a basic ASCII character.\", codePointStr);\n          break;\n      }\n      if (existedReason.has(reason)) {\n        continue;\n      }\n      existedReason.add(reason);\n      const adjustSettingsArgs = {\n        codePoint,\n        reason: highlightInfo.reason,\n        inComment: highlightInfo.inComment,\n        inString: highlightInfo.inString\n      };\n      const adjustSettings = localize(1525, \"Adjust settings\");\n      const uri = `command:${ShowExcludeOptions.ID}?${encodeURIComponent(JSON.stringify(adjustSettingsArgs))}`;\n      const markdown = new MarkdownString(\"\", true).appendMarkdown(reason).appendText(\" \").appendLink(uri, adjustSettings, configureUnicodeHighlightOptionsStr);\n      result.push(new MarkdownHover(this, d.range, [markdown], false, index++));\n    }\n    return result;\n  }\n  renderHoverParts(context, hoverParts) {\n    return renderMarkdownHovers(context, hoverParts, this._editor, this._languageService, this._openerService);\n  }\n};\nUnicodeHighlighterHoverParticipant = __decorate152([\n  __param146(1, ILanguageService),\n  __param146(2, IOpenerService)\n], UnicodeHighlighterHoverParticipant);\nfunction codePointToHex(codePoint) {\n  return `U+${codePoint.toString(16).padStart(4, \"0\")}`;\n}\nfunction formatCodePointMarkdown(codePoint) {\n  let value = `\\`${codePointToHex(codePoint)}\\``;\n  if (!InvisibleCharacters.isInvisibleCharacter(codePoint)) {\n    value += ` \"${`${renderCodePointAsInlineCode(codePoint)}`}\"`;\n  }\n  return value;\n}\nfunction renderCodePointAsInlineCode(codePoint) {\n  if (codePoint === 96) {\n    return \"`` ` ``\";\n  }\n  return \"`\" + String.fromCodePoint(codePoint) + \"`\";\n}\nfunction computeReason(char, options2) {\n  return UnicodeTextModelHighlighter.computeUnicodeHighlightReason(char, options2);\n}\nvar Decorations = class _Decorations {\n  constructor() {\n    this.map = /* @__PURE__ */ new Map();\n  }\n  static {\n    this.instance = new _Decorations();\n  }\n  getDecorationFromOptions(options2) {\n    return this.getDecoration(!options2.includeComments, !options2.includeStrings);\n  }\n  getDecoration(hideInComments, hideInStrings) {\n    const key = `${hideInComments}${hideInStrings}`;\n    let options2 = this.map.get(key);\n    if (!options2) {\n      options2 = ModelDecorationOptions.createDynamic({\n        description: \"unicode-highlight\",\n        stickiness: 1,\n        className: \"unicode-highlight\",\n        showIfCollapsed: true,\n        overviewRuler: null,\n        minimap: null,\n        hideInCommentTokens: hideInComments,\n        hideInStringTokens: hideInStrings\n      });\n      this.map.set(key, options2);\n    }\n    return options2;\n  }\n};\nvar DisableHighlightingInCommentsAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: DisableHighlightingOfAmbiguousCharactersAction.ID,\n      label: localize2(1534, \"Disable highlighting of characters in comments\"),\n      precondition: void 0\n    });\n    this.shortLabel = localize(1526, \"Disable Highlight In Comments\");\n  }\n  async run(accessor, editor2, args) {\n    const configurationService = accessor.get(IConfigurationService);\n    if (configurationService) {\n      this.runAction(configurationService);\n    }\n  }\n  async runAction(configurationService) {\n    await configurationService.updateValue(\n      unicodeHighlightConfigKeys.includeComments,\n      false,\n      2\n      /* ConfigurationTarget.USER */\n    );\n  }\n};\nvar DisableHighlightingInStringsAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: DisableHighlightingOfAmbiguousCharactersAction.ID,\n      label: localize2(1535, \"Disable highlighting of characters in strings\"),\n      precondition: void 0\n    });\n    this.shortLabel = localize(1527, \"Disable Highlight In Strings\");\n  }\n  async run(accessor, editor2, args) {\n    const configurationService = accessor.get(IConfigurationService);\n    if (configurationService) {\n      this.runAction(configurationService);\n    }\n  }\n  async runAction(configurationService) {\n    await configurationService.updateValue(\n      unicodeHighlightConfigKeys.includeStrings,\n      false,\n      2\n      /* ConfigurationTarget.USER */\n    );\n  }\n};\nvar DisableHighlightingOfAmbiguousCharactersAction = class _DisableHighlightingOfAmbiguousCharactersAction extends Action2 {\n  static {\n    this.ID = \"editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters\";\n  }\n  constructor() {\n    super({\n      id: _DisableHighlightingOfAmbiguousCharactersAction.ID,\n      title: localize2(1536, \"Disable highlighting of ambiguous characters\"),\n      precondition: void 0,\n      f1: false\n    });\n    this.shortLabel = localize(1528, \"Disable Ambiguous Highlight\");\n  }\n  async run(accessor, editor2, args) {\n    const configurationService = accessor.get(IConfigurationService);\n    if (configurationService) {\n      this.runAction(configurationService);\n    }\n  }\n  async runAction(configurationService) {\n    await configurationService.updateValue(\n      unicodeHighlightConfigKeys.ambiguousCharacters,\n      false,\n      2\n      /* ConfigurationTarget.USER */\n    );\n  }\n};\nvar DisableHighlightingOfInvisibleCharactersAction = class _DisableHighlightingOfInvisibleCharactersAction extends Action2 {\n  static {\n    this.ID = \"editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters\";\n  }\n  constructor() {\n    super({\n      id: _DisableHighlightingOfInvisibleCharactersAction.ID,\n      title: localize2(1537, \"Disable highlighting of invisible characters\"),\n      precondition: void 0,\n      f1: false\n    });\n    this.shortLabel = localize(1529, \"Disable Invisible Highlight\");\n  }\n  async run(accessor, editor2, args) {\n    const configurationService = accessor.get(IConfigurationService);\n    if (configurationService) {\n      this.runAction(configurationService);\n    }\n  }\n  async runAction(configurationService) {\n    await configurationService.updateValue(\n      unicodeHighlightConfigKeys.invisibleCharacters,\n      false,\n      2\n      /* ConfigurationTarget.USER */\n    );\n  }\n};\nvar DisableHighlightingOfNonBasicAsciiCharactersAction = class _DisableHighlightingOfNonBasicAsciiCharactersAction extends Action2 {\n  static {\n    this.ID = \"editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters\";\n  }\n  constructor() {\n    super({\n      id: _DisableHighlightingOfNonBasicAsciiCharactersAction.ID,\n      title: localize2(1538, \"Disable highlighting of non basic ASCII characters\"),\n      precondition: void 0,\n      f1: false\n    });\n    this.shortLabel = localize(1530, \"Disable Non ASCII Highlight\");\n  }\n  async run(accessor, editor2, args) {\n    const configurationService = accessor.get(IConfigurationService);\n    if (configurationService) {\n      this.runAction(configurationService);\n    }\n  }\n  async runAction(configurationService) {\n    await configurationService.updateValue(\n      unicodeHighlightConfigKeys.nonBasicASCII,\n      false,\n      2\n      /* ConfigurationTarget.USER */\n    );\n  }\n};\nvar ShowExcludeOptions = class _ShowExcludeOptions extends Action2 {\n  static {\n    this.ID = \"editor.action.unicodeHighlight.showExcludeOptions\";\n  }\n  constructor() {\n    super({\n      id: _ShowExcludeOptions.ID,\n      title: localize2(1539, \"Show Exclude Options\"),\n      precondition: void 0,\n      f1: false\n    });\n  }\n  async run(accessor, args) {\n    const { codePoint, reason, inString, inComment } = args;\n    const char = String.fromCodePoint(codePoint);\n    const quickPickService = accessor.get(IQuickInputService);\n    const configurationService = accessor.get(IConfigurationService);\n    function getExcludeCharFromBeingHighlightedLabel(codePoint2) {\n      if (InvisibleCharacters.isInvisibleCharacter(codePoint2)) {\n        return localize(1531, \"Exclude {0} (invisible character) from being highlighted\", codePointToHex(codePoint2));\n      }\n      return localize(1532, \"Exclude {0} from being highlighted\", `${codePointToHex(codePoint2)} \"${char}\"`);\n    }\n    const options2 = [];\n    if (reason.kind === 0) {\n      for (const locale of reason.notAmbiguousInLocales) {\n        options2.push({\n          label: localize(1533, 'Allow unicode characters that are more common in the language \"{0}\".', locale),\n          run: async () =\u003e {\n            excludeLocaleFromBeingHighlighted(configurationService, [locale]);\n          }\n        });\n      }\n    }\n    options2.push({\n      label: getExcludeCharFromBeingHighlightedLabel(codePoint),\n      run: () =\u003e excludeCharFromBeingHighlighted(configurationService, [codePoint])\n    });\n    if (inComment) {\n      const action = new DisableHighlightingInCommentsAction();\n      options2.push({ label: action.label, run: async () =\u003e action.runAction(configurationService) });\n    } else if (inString) {\n      const action = new DisableHighlightingInStringsAction();\n      options2.push({ label: action.label, run: async () =\u003e action.runAction(configurationService) });\n    }\n    function getTitle(options3) {\n      return typeof options3.desc.title === \"string\" ? options3.desc.title : options3.desc.title.value;\n    }\n    if (reason.kind === 0) {\n      const action = new DisableHighlightingOfAmbiguousCharactersAction();\n      options2.push({ label: getTitle(action), run: async () =\u003e action.runAction(configurationService) });\n    } else if (reason.kind === 1) {\n      const action = new DisableHighlightingOfInvisibleCharactersAction();\n      options2.push({ label: getTitle(action), run: async () =\u003e action.runAction(configurationService) });\n    } else if (reason.kind === 2) {\n      const action = new DisableHighlightingOfNonBasicAsciiCharactersAction();\n      options2.push({ label: getTitle(action), run: async () =\u003e action.runAction(configurationService) });\n    } else {\n      expectNever(reason);\n    }\n    const result = await quickPickService.pick(options2, { title: configureUnicodeHighlightOptionsStr });\n    if (result) {\n      await result.run();\n    }\n  }\n};\nasync function excludeCharFromBeingHighlighted(configurationService, charCodes) {\n  const existingValue = configurationService.getValue(unicodeHighlightConfigKeys.allowedCharacters);\n  let value;\n  if (typeof existingValue === \"object\" \u0026\u0026 existingValue) {\n    value = existingValue;\n  } else {\n    value = {};\n  }\n  for (const charCode of charCodes) {\n    value[String.fromCodePoint(charCode)] = true;\n  }\n  await configurationService.updateValue(\n    unicodeHighlightConfigKeys.allowedCharacters,\n    value,\n    2\n    /* ConfigurationTarget.USER */\n  );\n}\nasync function excludeLocaleFromBeingHighlighted(configurationService, locales) {\n  const existingValue = configurationService.inspect(unicodeHighlightConfigKeys.allowedLocales).user?.value;\n  let value;\n  if (typeof existingValue === \"object\" \u0026\u0026 existingValue) {\n    value = Object.assign({}, existingValue);\n  } else {\n    value = {};\n  }\n  for (const locale of locales) {\n    value[locale] = true;\n  }\n  await configurationService.updateValue(\n    unicodeHighlightConfigKeys.allowedLocales,\n    value,\n    2\n    /* ConfigurationTarget.USER */\n  );\n}\nfunction expectNever(value) {\n  throw new Error(`Unexpected value: ${value}`);\n}\nregisterAction2(DisableHighlightingOfAmbiguousCharactersAction);\nregisterAction2(DisableHighlightingOfInvisibleCharactersAction);\nregisterAction2(DisableHighlightingOfNonBasicAsciiCharactersAction);\nregisterAction2(ShowExcludeOptions);\nregisterEditorContribution(\n  UnicodeHighlighter.ID,\n  UnicodeHighlighter,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\nHoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js\ninit_lifecycle();\ninit_resources();\ninit_editorExtensions();\ninit_codeEditorService();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/dialogs/common/dialogs.js\ninit_instantiation();\nvar IDialogService = createDecorator(\"dialogService\");\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js\nvar __decorate153 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param147 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ignoreUnusualLineTerminators = \"ignoreUnusualLineTerminators\";\nfunction writeIgnoreState(codeEditorService, model, state) {\n  codeEditorService.setModelProperty(model.uri, ignoreUnusualLineTerminators, state);\n}\nfunction readIgnoreState(codeEditorService, model) {\n  return codeEditorService.getModelProperty(model.uri, ignoreUnusualLineTerminators);\n}\nvar UnusualLineTerminatorsDetector = class UnusualLineTerminatorsDetector2 extends Disposable {\n  static {\n    this.ID = \"editor.contrib.unusualLineTerminatorsDetector\";\n  }\n  constructor(_editor, _dialogService, _codeEditorService) {\n    super();\n    this._editor = _editor;\n    this._dialogService = _dialogService;\n    this._codeEditorService = _codeEditorService;\n    this._isPresentingDialog = false;\n    this._config = this._editor.getOption(\n      142\n      /* EditorOption.unusualLineTerminators */\n    );\n    this._register(this._editor.onDidChangeConfiguration((e) =\u003e {\n      if (e.hasChanged(\n        142\n        /* EditorOption.unusualLineTerminators */\n      )) {\n        this._config = this._editor.getOption(\n          142\n          /* EditorOption.unusualLineTerminators */\n        );\n        this._checkForUnusualLineTerminators();\n      }\n    }));\n    this._register(this._editor.onDidChangeModel(() =\u003e {\n      this._checkForUnusualLineTerminators();\n    }));\n    this._register(this._editor.onDidChangeModelContent((e) =\u003e {\n      if (e.isUndoing) {\n        return;\n      }\n      this._checkForUnusualLineTerminators();\n    }));\n    this._checkForUnusualLineTerminators();\n  }\n  async _checkForUnusualLineTerminators() {\n    if (this._config === \"off\") {\n      return;\n    }\n    if (!this._editor.hasModel()) {\n      return;\n    }\n    const model = this._editor.getModel();\n    if (!model.mightContainUnusualLineTerminators()) {\n      return;\n    }\n    const ignoreState = readIgnoreState(this._codeEditorService, model);\n    if (ignoreState === true) {\n      return;\n    }\n    if (this._editor.getOption(\n      103\n      /* EditorOption.readOnly */\n    )) {\n      return;\n    }\n    if (this._config === \"auto\") {\n      model.removeUnusualLineTerminators(this._editor.getSelections());\n      return;\n    }\n    if (this._isPresentingDialog) {\n      return;\n    }\n    let result;\n    try {\n      this._isPresentingDialog = true;\n      result = await this._dialogService.confirm({\n        title: localize(1540, \"Unusual Line Terminators\"),\n        message: localize(1541, \"Detected unusual line terminators\"),\n        detail: localize(1542, \"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\\n\\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.\", basename2(model.uri)),\n        primaryButton: localize(1543, \"\u0026\u0026Remove Unusual Line Terminators\"),\n        cancelButton: localize(1544, \"Ignore\")\n      });\n    } finally {\n      this._isPresentingDialog = false;\n    }\n    if (!result.confirmed) {\n      writeIgnoreState(this._codeEditorService, model, true);\n      return;\n    }\n    model.removeUnusualLineTerminators(this._editor.getSelections());\n  }\n};\nUnusualLineTerminatorsDetector = __decorate153([\n  __param147(1, IDialogService),\n  __param147(2, ICodeEditorService)\n], UnusualLineTerminatorsDetector);\nregisterEditorContribution(\n  UnusualLineTerminatorsDetector.ID,\n  UnusualLineTerminatorsDetector,\n  1\n  /* EditorContributionInstantiation.AfterFirstRender */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js\ninit_nls();\ninit_async();\ninit_cancellation();\ninit_errors();\ninit_lifecycle();\ninit_map();\ninit_network();\ninit_resources();\ninit_configuration();\ninit_contextkey();\ninit_log();\ninit_editorExtensions();\ninit_codeEditorService();\ninit_range();\ninit_editorContextKeys();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/glob.js\ninit_async();\ninit_extpath();\ninit_map();\ninit_path();\ninit_platform();\ninit_strings();\nvar GLOBSTAR = \"**\";\nvar GLOB_SPLIT = \"/\";\nvar PATH_REGEX = \"[/\\\\\\\\]\";\nvar NO_PATH_REGEX = \"[^/\\\\\\\\]\";\nvar ALL_FORWARD_SLASHES = /\\//g;\nfunction starsToRegExp(starCount, isLastPattern) {\n  switch (starCount) {\n    case 0:\n      return \"\";\n    case 1:\n      return `${NO_PATH_REGEX}*?`;\n    // 1 star matches any number of characters except path separator (/ and \\) - non greedy (?)\n    default:\n      return `(?:${PATH_REGEX}|${NO_PATH_REGEX}+${PATH_REGEX}${isLastPattern ? `|${PATH_REGEX}${NO_PATH_REGEX}+` : \"\"})*?`;\n  }\n}\nfunction splitGlobAware(pattern, splitChar) {\n  if (!pattern) {\n    return [];\n  }\n  const segments = [];\n  let inBraces = false;\n  let inBrackets = false;\n  let curVal = \"\";\n  for (const char of pattern) {\n    switch (char) {\n      case splitChar:\n        if (!inBraces \u0026\u0026 !inBrackets) {\n          segments.push(curVal);\n          curVal = \"\";\n          continue;\n        }\n        break;\n      case \"{\":\n        inBraces = true;\n        break;\n      case \"}\":\n        inBraces = false;\n        break;\n      case \"[\":\n        inBrackets = true;\n        break;\n      case \"]\":\n        inBrackets = false;\n        break;\n    }\n    curVal += char;\n  }\n  if (curVal) {\n    segments.push(curVal);\n  }\n  return segments;\n}\nfunction parseRegExp(pattern) {\n  if (!pattern) {\n    return \"\";\n  }\n  let regEx = \"\";\n  const segments = splitGlobAware(pattern, GLOB_SPLIT);\n  if (segments.every((segment) =\u003e segment === GLOBSTAR)) {\n    regEx = \".*\";\n  } else {\n    let previousSegmentWasGlobStar = false;\n    segments.forEach((segment, index) =\u003e {\n      if (segment === GLOBSTAR) {\n        if (previousSegmentWasGlobStar) {\n          return;\n        }\n        regEx += starsToRegExp(2, index === segments.length - 1);\n      } else {\n        let inBraces = false;\n        let braceVal = \"\";\n        let inBrackets = false;\n        let bracketVal = \"\";\n        for (const char of segment) {\n          if (char !== \"}\" \u0026\u0026 inBraces) {\n            braceVal += char;\n            continue;\n          }\n          if (inBrackets \u0026\u0026 (char !== \"]\" || !bracketVal)) {\n            let res;\n            if (char === \"-\") {\n              res = char;\n            } else if ((char === \"^\" || char === \"!\") \u0026\u0026 !bracketVal) {\n              res = \"^\";\n            } else if (char === GLOB_SPLIT) {\n              res = \"\";\n            } else {\n              res = escapeRegExpCharacters(char);\n            }\n            bracketVal += res;\n            continue;\n          }\n          switch (char) {\n            case \"{\":\n              inBraces = true;\n              continue;\n            case \"[\":\n              inBrackets = true;\n              continue;\n            case \"}\": {\n              const choices = splitGlobAware(braceVal, \",\");\n              const braceRegExp = `(?:${choices.map((choice) =\u003e parseRegExp(choice)).join(\"|\")})`;\n              regEx += braceRegExp;\n              inBraces = false;\n              braceVal = \"\";\n              break;\n            }\n            case \"]\": {\n              regEx += \"[\" + bracketVal + \"]\";\n              inBrackets = false;\n              bracketVal = \"\";\n              break;\n            }\n            case \"?\":\n              regEx += NO_PATH_REGEX;\n              continue;\n            case \"*\":\n              regEx += starsToRegExp(1);\n              continue;\n            default:\n              regEx += escapeRegExpCharacters(char);\n          }\n        }\n        if (index \u003c segments.length - 1 \u0026\u0026 // more segments to come after this\n        (segments[index + 1] !== GLOBSTAR || // next segment is not **, or...\n        index + 2 \u003c segments.length)) {\n          regEx += PATH_REGEX;\n        }\n      }\n      previousSegmentWasGlobStar = segment === GLOBSTAR;\n    });\n  }\n  return regEx;\n}\nvar T1 = /^\\*\\*\\/\\*\\.[\\w\\.-]+$/;\nvar T2 = /^\\*\\*\\/([\\w\\.-]+)\\/?$/;\nvar T3 = /^{\\*\\*\\/\\*?[\\w\\.-]+\\/?(,\\*\\*\\/\\*?[\\w\\.-]+\\/?)*}$/;\nvar T3_2 = /^{\\*\\*\\/\\*?[\\w\\.-]+(\\/(\\*\\*)?)?(,\\*\\*\\/\\*?[\\w\\.-]+(\\/(\\*\\*)?)?)*}$/;\nvar T4 = /^\\*\\*((\\/[\\w\\.-]+)+)\\/?$/;\nvar T5 = /^([\\w\\.-]+(\\/[\\w\\.-]+)*)\\/?$/;\nvar CACHE = new LRUCache(1e4);\nvar FALSE = function() {\n  return false;\n};\nvar NULL = function() {\n  return null;\n};\nfunction parsePattern(arg1, options2) {\n  if (!arg1) {\n    return NULL;\n  }\n  let pattern;\n  if (typeof arg1 !== \"string\") {\n    pattern = arg1.pattern;\n  } else {\n    pattern = arg1;\n  }\n  pattern = pattern.trim();\n  const patternKey = `${pattern}_${!!options2.trimForExclusions}`;\n  let parsedPattern = CACHE.get(patternKey);\n  if (parsedPattern) {\n    return wrapRelativePattern(parsedPattern, arg1);\n  }\n  let match2;\n  if (T1.test(pattern)) {\n    parsedPattern = trivia1(pattern.substr(4), pattern);\n  } else if (match2 = T2.exec(trimForExclusions(pattern, options2))) {\n    parsedPattern = trivia2(match2[1], pattern);\n  } else if ((options2.trimForExclusions ? T3_2 : T3).test(pattern)) {\n    parsedPattern = trivia3(pattern, options2);\n  } else if (match2 = T4.exec(trimForExclusions(pattern, options2))) {\n    parsedPattern = trivia4and5(match2[1].substr(1), pattern, true);\n  } else if (match2 = T5.exec(trimForExclusions(pattern, options2))) {\n    parsedPattern = trivia4and5(match2[1], pattern, false);\n  } else {\n    parsedPattern = toRegExp(pattern);\n  }\n  CACHE.set(patternKey, parsedPattern);\n  return wrapRelativePattern(parsedPattern, arg1);\n}\nfunction wrapRelativePattern(parsedPattern, arg2) {\n  if (typeof arg2 === \"string\") {\n    return parsedPattern;\n  }\n  const wrappedPattern = function(path, basename3) {\n    if (!isEqualOrParent(path, arg2.base, !isLinux)) {\n      return null;\n    }\n    return parsedPattern(ltrim(path.substr(arg2.base.length), sep), basename3);\n  };\n  wrappedPattern.allBasenames = parsedPattern.allBasenames;\n  wrappedPattern.allPaths = parsedPattern.allPaths;\n  wrappedPattern.basenames = parsedPattern.basenames;\n  wrappedPattern.patterns = parsedPattern.patterns;\n  return wrappedPattern;\n}\nfunction trimForExclusions(pattern, options2) {\n  return options2.trimForExclusions \u0026\u0026 pattern.endsWith(\"/**\") ? pattern.substr(0, pattern.length - 2) : pattern;\n}\nfunction trivia1(base, pattern) {\n  return function(path, basename3) {\n    return typeof path === \"string\" \u0026\u0026 path.endsWith(base) ? pattern : null;\n  };\n}\nfunction trivia2(base, pattern) {\n  const slashBase = `/${base}`;\n  const backslashBase = `\\\\${base}`;\n  const parsedPattern = function(path, basename3) {\n    if (typeof path !== \"string\") {\n      return null;\n    }\n    if (basename3) {\n      return basename3 === base ? pattern : null;\n    }\n    return path === base || path.endsWith(slashBase) || path.endsWith(backslashBase) ? pattern : null;\n  };\n  const basenames = [base];\n  parsedPattern.basenames = basenames;\n  parsedPattern.patterns = [pattern];\n  parsedPattern.allBasenames = basenames;\n  return parsedPattern;\n}\nfunction trivia3(pattern, options2) {\n  const parsedPatterns = aggregateBasenameMatches(pattern.slice(1, -1).split(\",\").map((pattern2) =\u003e parsePattern(pattern2, options2)).filter((pattern2) =\u003e pattern2 !== NULL), pattern);\n  const patternsLength = parsedPatterns.length;\n  if (!patternsLength) {\n    return NULL;\n  }\n  if (patternsLength === 1) {\n    return parsedPatterns[0];\n  }\n  const parsedPattern = function(path, basename3) {\n    for (let i2 = 0, n2 = parsedPatterns.length; i2 \u003c n2; i2++) {\n      if (parsedPatterns[i2](path, basename3)) {\n        return pattern;\n      }\n    }\n    return null;\n  };\n  const withBasenames = parsedPatterns.find((pattern2) =\u003e !!pattern2.allBasenames);\n  if (withBasenames) {\n    parsedPattern.allBasenames = withBasenames.allBasenames;\n  }\n  const allPaths = parsedPatterns.reduce((all, current) =\u003e current.allPaths ? all.concat(current.allPaths) : all, []);\n  if (allPaths.length) {\n    parsedPattern.allPaths = allPaths;\n  }\n  return parsedPattern;\n}\nfunction trivia4and5(targetPath, pattern, matchPathEnds) {\n  const usingPosixSep = sep === posix.sep;\n  const nativePath = usingPosixSep ? targetPath : targetPath.replace(ALL_FORWARD_SLASHES, sep);\n  const nativePathEnd = sep + nativePath;\n  const targetPathEnd = posix.sep + targetPath;\n  let parsedPattern;\n  if (matchPathEnds) {\n    parsedPattern = function(path, basename3) {\n      return typeof path === \"string\" \u0026\u0026 (path === nativePath || path.endsWith(nativePathEnd) || !usingPosixSep \u0026\u0026 (path === targetPath || path.endsWith(targetPathEnd))) ? pattern : null;\n    };\n  } else {\n    parsedPattern = function(path, basename3) {\n      return typeof path === \"string\" \u0026\u0026 (path === nativePath || !usingPosixSep \u0026\u0026 path === targetPath) ? pattern : null;\n    };\n  }\n  parsedPattern.allPaths = [(matchPathEnds ? \"*/\" : \"./\") + targetPath];\n  return parsedPattern;\n}\nfunction toRegExp(pattern) {\n  try {\n    const regExp = new RegExp(`^${parseRegExp(pattern)}$`);\n    return function(path) {\n      regExp.lastIndex = 0;\n      return typeof path === \"string\" \u0026\u0026 regExp.test(path) ? pattern : null;\n    };\n  } catch (error) {\n    return NULL;\n  }\n}\nfunction match(arg1, path, hasSibling) {\n  if (!arg1 || typeof path !== \"string\") {\n    return false;\n  }\n  return parse3(arg1)(path, void 0, hasSibling);\n}\nfunction parse3(arg1, options2 = {}) {\n  if (!arg1) {\n    return FALSE;\n  }\n  if (typeof arg1 === \"string\" || isRelativePattern(arg1)) {\n    const parsedPattern = parsePattern(arg1, options2);\n    if (parsedPattern === NULL) {\n      return FALSE;\n    }\n    const resultPattern = function(path, basename3) {\n      return !!parsedPattern(path, basename3);\n    };\n    if (parsedPattern.allBasenames) {\n      resultPattern.allBasenames = parsedPattern.allBasenames;\n    }\n    if (parsedPattern.allPaths) {\n      resultPattern.allPaths = parsedPattern.allPaths;\n    }\n    return resultPattern;\n  }\n  return parsedExpression(arg1, options2);\n}\nfunction isRelativePattern(obj) {\n  const rp = obj;\n  if (!rp) {\n    return false;\n  }\n  return typeof rp.base === \"string\" \u0026\u0026 typeof rp.pattern === \"string\";\n}\nfunction parsedExpression(expression, options2) {\n  const parsedPatterns = aggregateBasenameMatches(Object.getOwnPropertyNames(expression).map((pattern) =\u003e parseExpressionPattern(pattern, expression[pattern], options2)).filter((pattern) =\u003e pattern !== NULL));\n  const patternsLength = parsedPatterns.length;\n  if (!patternsLength) {\n    return NULL;\n  }\n  if (!parsedPatterns.some((parsedPattern) =\u003e !!parsedPattern.requiresSiblings)) {\n    if (patternsLength === 1) {\n      return parsedPatterns[0];\n    }\n    const resultExpression2 = function(path, basename3) {\n      let resultPromises = void 0;\n      for (let i2 = 0, n2 = parsedPatterns.length; i2 \u003c n2; i2++) {\n        const result = parsedPatterns[i2](path, basename3);\n        if (typeof result === \"string\") {\n          return result;\n        }\n        if (isThenable(result)) {\n          if (!resultPromises) {\n            resultPromises = [];\n          }\n          resultPromises.push(result);\n        }\n      }\n      if (resultPromises) {\n        return (async () =\u003e {\n          for (const resultPromise of resultPromises) {\n            const result = await resultPromise;\n            if (typeof result === \"string\") {\n              return result;\n            }\n          }\n          return null;\n        })();\n      }\n      return null;\n    };\n    const withBasenames2 = parsedPatterns.find((pattern) =\u003e !!pattern.allBasenames);\n    if (withBasenames2) {\n      resultExpression2.allBasenames = withBasenames2.allBasenames;\n    }\n    const allPaths2 = parsedPatterns.reduce((all, current) =\u003e current.allPaths ? all.concat(current.allPaths) : all, []);\n    if (allPaths2.length) {\n      resultExpression2.allPaths = allPaths2;\n    }\n    return resultExpression2;\n  }\n  const resultExpression = function(path, base, hasSibling) {\n    let name = void 0;\n    let resultPromises = void 0;\n    for (let i2 = 0, n2 = parsedPatterns.length; i2 \u003c n2; i2++) {\n      const parsedPattern = parsedPatterns[i2];\n      if (parsedPattern.requiresSiblings \u0026\u0026 hasSibling) {\n        if (!base) {\n          base = basename(path);\n        }\n        if (!name) {\n          name = base.substr(0, base.length - extname(path).length);\n        }\n      }\n      const result = parsedPattern(path, base, name, hasSibling);\n      if (typeof result === \"string\") {\n        return result;\n      }\n      if (isThenable(result)) {\n        if (!resultPromises) {\n          resultPromises = [];\n        }\n        resultPromises.push(result);\n      }\n    }\n    if (resultPromises) {\n      return (async () =\u003e {\n        for (const resultPromise of resultPromises) {\n          const result = await resultPromise;\n          if (typeof result === \"string\") {\n            return result;\n          }\n        }\n        return null;\n      })();\n    }\n    return null;\n  };\n  const withBasenames = parsedPatterns.find((pattern) =\u003e !!pattern.allBasenames);\n  if (withBasenames) {\n    resultExpression.allBasenames = withBasenames.allBasenames;\n  }\n  const allPaths = parsedPatterns.reduce((all, current) =\u003e current.allPaths ? all.concat(current.allPaths) : all, []);\n  if (allPaths.length) {\n    resultExpression.allPaths = allPaths;\n  }\n  return resultExpression;\n}\nfunction parseExpressionPattern(pattern, value, options2) {\n  if (value === false) {\n    return NULL;\n  }\n  const parsedPattern = parsePattern(pattern, options2);\n  if (parsedPattern === NULL) {\n    return NULL;\n  }\n  if (typeof value === \"boolean\") {\n    return parsedPattern;\n  }\n  if (value) {\n    const when = value.when;\n    if (typeof when === \"string\") {\n      const result = (path, basename3, name, hasSibling) =\u003e {\n        if (!hasSibling || !parsedPattern(path, basename3)) {\n          return null;\n        }\n        const clausePattern = when.replace(\"$(basename)\", () =\u003e name);\n        const matched = hasSibling(clausePattern);\n        return isThenable(matched) ? matched.then((match2) =\u003e match2 ? pattern : null) : matched ? pattern : null;\n      };\n      result.requiresSiblings = true;\n      return result;\n    }\n  }\n  return parsedPattern;\n}\nfunction aggregateBasenameMatches(parsedPatterns, result) {\n  const basenamePatterns = parsedPatterns.filter((parsedPattern) =\u003e !!parsedPattern.basenames);\n  if (basenamePatterns.length \u003c 2) {\n    return parsedPatterns;\n  }\n  const basenames = basenamePatterns.reduce((all, current) =\u003e {\n    const basenames2 = current.basenames;\n    return basenames2 ? all.concat(basenames2) : all;\n  }, []);\n  let patterns;\n  if (result) {\n    patterns = [];\n    for (let i2 = 0, n2 = basenames.length; i2 \u003c n2; i2++) {\n      patterns.push(result);\n    }\n  } else {\n    patterns = basenamePatterns.reduce((all, current) =\u003e {\n      const patterns2 = current.patterns;\n      return patterns2 ? all.concat(patterns2) : all;\n    }, []);\n  }\n  const aggregate = function(path, basename3) {\n    if (typeof path !== \"string\") {\n      return null;\n    }\n    if (!basename3) {\n      let i2;\n      for (i2 = path.length; i2 \u003e 0; i2--) {\n        const ch = path.charCodeAt(i2 - 1);\n        if (ch === 47 || ch === 92) {\n          break;\n        }\n      }\n      basename3 = path.substr(i2);\n    }\n    const index = basenames.indexOf(basename3);\n    return index !== -1 ? patterns[index] : null;\n  };\n  aggregate.basenames = basenames;\n  aggregate.patterns = patterns;\n  aggregate.allBasenames = basenames;\n  const aggregatedPatterns = parsedPatterns.filter((parsedPattern) =\u003e !parsedPattern.basenames);\n  aggregatedPatterns.push(aggregate);\n  return aggregatedPatterns;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languageSelector.js\ninit_path();\nfunction score2(selector, candidateUri, candidateLanguage, candidateIsSynchronized, candidateNotebookUri, candidateNotebookType) {\n  if (Array.isArray(selector)) {\n    let ret = 0;\n    for (const filter of selector) {\n      const value = score2(filter, candidateUri, candidateLanguage, candidateIsSynchronized, candidateNotebookUri, candidateNotebookType);\n      if (value === 10) {\n        return value;\n      }\n      if (value \u003e ret) {\n        ret = value;\n      }\n    }\n    return ret;\n  } else if (typeof selector === \"string\") {\n    if (!candidateIsSynchronized) {\n      return 0;\n    }\n    if (selector === \"*\") {\n      return 5;\n    } else if (selector === candidateLanguage) {\n      return 10;\n    } else {\n      return 0;\n    }\n  } else if (selector) {\n    const { language: language2, pattern, scheme, hasAccessToAllModels, notebookType } = selector;\n    if (!candidateIsSynchronized \u0026\u0026 !hasAccessToAllModels) {\n      return 0;\n    }\n    if (notebookType \u0026\u0026 candidateNotebookUri) {\n      candidateUri = candidateNotebookUri;\n    }\n    let ret = 0;\n    if (scheme) {\n      if (scheme === candidateUri.scheme) {\n        ret = 10;\n      } else if (scheme === \"*\") {\n        ret = 5;\n      } else {\n        return 0;\n      }\n    }\n    if (language2) {\n      if (language2 === candidateLanguage) {\n        ret = 10;\n      } else if (language2 === \"*\") {\n        ret = Math.max(ret, 5);\n      } else {\n        return 0;\n      }\n    }\n    if (notebookType) {\n      if (notebookType === candidateNotebookType) {\n        ret = 10;\n      } else if (notebookType === \"*\" \u0026\u0026 candidateNotebookType !== void 0) {\n        ret = Math.max(ret, 5);\n      } else {\n        return 0;\n      }\n    }\n    if (pattern) {\n      let normalizedPattern;\n      if (typeof pattern === \"string\") {\n        normalizedPattern = pattern;\n      } else {\n        normalizedPattern = { ...pattern, base: normalize(pattern.base) };\n      }\n      if (normalizedPattern === candidateUri.fsPath || match(normalizedPattern, candidateUri.fsPath)) {\n        ret = 10;\n      } else {\n        return 0;\n      }\n    }\n    return ret;\n  } else {\n    return 0;\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js\ninit_model2();\ninit_languageFeatures();\ninit_resolverService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider.js\ninit_wordHelper();\ninit_languageFeatures();\ninit_languages();\ninit_lifecycle();\ninit_map();\nvar __decorate154 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param148 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar TextualDocumentHighlightProvider = class {\n  constructor() {\n    this.selector = { language: \"*\" };\n  }\n  provideDocumentHighlights(model, position, token) {\n    const result = [];\n    const word = model.getWordAtPosition({\n      lineNumber: position.lineNumber,\n      column: position.column\n    });\n    if (!word) {\n      return Promise.resolve(result);\n    }\n    if (model.isDisposed()) {\n      return;\n    }\n    const matches = model.findMatches(word.word, true, false, true, USUAL_WORD_SEPARATORS, false);\n    return matches.map((m) =\u003e ({\n      range: m.range,\n      kind: DocumentHighlightKind.Text\n    }));\n  }\n  provideMultiDocumentHighlights(primaryModel, position, otherModels, token) {\n    const result = new ResourceMap();\n    const word = primaryModel.getWordAtPosition({\n      lineNumber: position.lineNumber,\n      column: position.column\n    });\n    if (!word) {\n      return Promise.resolve(result);\n    }\n    for (const model of [primaryModel, ...otherModels]) {\n      if (model.isDisposed()) {\n        continue;\n      }\n      const matches = model.findMatches(word.word, true, false, true, USUAL_WORD_SEPARATORS, false);\n      const highlights = matches.map((m) =\u003e ({\n        range: m.range,\n        kind: DocumentHighlightKind.Text\n      }));\n      if (highlights) {\n        result.set(model.uri, highlights);\n      }\n    }\n    return result;\n  }\n};\nvar TextualMultiDocumentHighlightFeature = class TextualMultiDocumentHighlightFeature2 extends Disposable {\n  constructor(languageFeaturesService) {\n    super();\n    this._register(languageFeaturesService.documentHighlightProvider.register(\"*\", new TextualDocumentHighlightProvider()));\n    this._register(languageFeaturesService.multiDocumentHighlightProvider.register(\"*\", new TextualDocumentHighlightProvider()));\n  }\n};\nTextualMultiDocumentHighlightFeature = __decorate154([\n  __param148(0, ILanguageFeaturesService)\n], TextualMultiDocumentHighlightFeature);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js\nvar __decorate155 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param149 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar WordHighlighter_1;\nvar WordHighlighterContribution_1;\nvar ctxHasWordHighlights = new RawContextKey(\"hasWordHighlights\", false);\nfunction getOccurrencesAtPosition(registry, model, position, token) {\n  const orderedByScore = registry.ordered(model);\n  return first(orderedByScore.map((provider) =\u003e () =\u003e {\n    return Promise.resolve(provider.provideDocumentHighlights(model, position, token)).then(void 0, onUnexpectedExternalError);\n  }), (result) =\u003e result !== void 0 \u0026\u0026 result !== null).then((result) =\u003e {\n    if (result) {\n      const map = new ResourceMap();\n      map.set(model.uri, result);\n      return map;\n    }\n    return new ResourceMap();\n  });\n}\nfunction getOccurrencesAcrossMultipleModels(registry, model, position, token, otherModels) {\n  const orderedByScore = registry.ordered(model);\n  return first(orderedByScore.map((provider) =\u003e () =\u003e {\n    const filteredModels = otherModels.filter((otherModel) =\u003e {\n      return shouldSynchronizeModel(otherModel);\n    }).filter((otherModel) =\u003e {\n      return score2(provider.selector, otherModel.uri, otherModel.getLanguageId(), true, void 0, void 0) \u003e 0;\n    });\n    return Promise.resolve(provider.provideMultiDocumentHighlights(model, position, filteredModels, token)).then(void 0, onUnexpectedExternalError);\n  }), (result) =\u003e result !== void 0 \u0026\u0026 result !== null);\n}\nvar OccurenceAtPositionRequest = class {\n  constructor(_model, _selection, _wordSeparators) {\n    this._model = _model;\n    this._selection = _selection;\n    this._wordSeparators = _wordSeparators;\n    this._wordRange = this._getCurrentWordRange(_model, _selection);\n    this._result = null;\n  }\n  get result() {\n    if (!this._result) {\n      this._result = createCancelablePromise((token) =\u003e this._compute(this._model, this._selection, this._wordSeparators, token));\n    }\n    return this._result;\n  }\n  _getCurrentWordRange(model, selection) {\n    const word = model.getWordAtPosition(selection.getPosition());\n    if (word) {\n      return new Range(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n    }\n    return null;\n  }\n  cancel() {\n    this.result.cancel();\n  }\n};\nvar SemanticOccurenceAtPositionRequest = class extends OccurenceAtPositionRequest {\n  constructor(model, selection, wordSeparators2, providers) {\n    super(model, selection, wordSeparators2);\n    this._providers = providers;\n  }\n  _compute(model, selection, wordSeparators2, token) {\n    return getOccurrencesAtPosition(this._providers, model, selection.getPosition(), token).then((value) =\u003e {\n      if (!value) {\n        return new ResourceMap();\n      }\n      return value;\n    });\n  }\n};\nvar MultiModelOccurenceRequest = class extends OccurenceAtPositionRequest {\n  constructor(model, selection, wordSeparators2, providers, otherModels) {\n    super(model, selection, wordSeparators2);\n    this._providers = providers;\n    this._otherModels = otherModels;\n  }\n  _compute(model, selection, wordSeparators2, token) {\n    return getOccurrencesAcrossMultipleModels(this._providers, model, selection.getPosition(), token, this._otherModels).then((value) =\u003e {\n      if (!value) {\n        return new ResourceMap();\n      }\n      return value;\n    });\n  }\n};\nfunction computeOccurencesAtPosition(registry, model, selection, wordSeparators2) {\n  return new SemanticOccurenceAtPositionRequest(model, selection, wordSeparators2, registry);\n}\nfunction computeOccurencesMultiModel(registry, model, selection, wordSeparators2, otherModels) {\n  return new MultiModelOccurenceRequest(model, selection, wordSeparators2, registry, otherModels);\n}\nregisterModelAndPositionCommand(\"_executeDocumentHighlights\", async (accessor, model, position) =\u003e {\n  const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n  const map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);\n  return map?.get(model.uri);\n});\nvar WordHighlighter = class WordHighlighter2 {\n  static {\n    WordHighlighter_1 = this;\n  }\n  static {\n    this.storedDecorationIDs = new ResourceMap();\n  }\n  static {\n    this.query = null;\n  }\n  constructor(editor2, providers, multiProviders, contextKeyService, textModelService, codeEditorService, configurationService, logService) {\n    this.toUnhook = new DisposableStore();\n    this.workerRequestTokenId = 0;\n    this.workerRequestCompleted = false;\n    this.workerRequestValue = new ResourceMap();\n    this.lastCursorPositionChangeTime = 0;\n    this.renderDecorationsTimer = void 0;\n    this.runDelayer = this.toUnhook.add(new Delayer(50));\n    this.editor = editor2;\n    this.providers = providers;\n    this.multiDocumentProviders = multiProviders;\n    this.codeEditorService = codeEditorService;\n    this.textModelService = textModelService;\n    this.configurationService = configurationService;\n    this.logService = logService;\n    this._hasWordHighlights = ctxHasWordHighlights.bindTo(contextKeyService);\n    this._ignorePositionChangeEvent = false;\n    this.occurrencesHighlightEnablement = this.editor.getOption(\n      89\n      /* EditorOption.occurrencesHighlight */\n    );\n    this.occurrencesHighlightDelay = this.configurationService.getValue(\"editor.occurrencesHighlightDelay\");\n    this.model = this.editor.getModel();\n    this.toUnhook.add(editor2.onDidChangeCursorPosition((e) =\u003e {\n      if (this._ignorePositionChangeEvent) {\n        return;\n      }\n      if (this.occurrencesHighlightEnablement === \"off\") {\n        return;\n      }\n      this.runDelayer.trigger(() =\u003e {\n        this._onPositionChanged(e);\n      });\n    }));\n    this.toUnhook.add(editor2.onDidFocusEditorText((e) =\u003e {\n      if (this.occurrencesHighlightEnablement === \"off\") {\n        return;\n      }\n      if (!this.workerRequest) {\n        this.runDelayer.trigger(() =\u003e {\n          this._run();\n        });\n      }\n    }));\n    this.toUnhook.add(editor2.onDidChangeModelContent((e) =\u003e {\n      if (!matchesScheme(this.model.uri, \"output\")) {\n        this._stopAll();\n      }\n    }));\n    this.toUnhook.add(editor2.onDidChangeModel((e) =\u003e {\n      if (!e.newModelUrl \u0026\u0026 e.oldModelUrl) {\n        this._stopSingular();\n      } else if (WordHighlighter_1.query) {\n        this._run();\n      }\n    }));\n    this.toUnhook.add(editor2.onDidChangeConfiguration((e) =\u003e {\n      const newEnablement = this.editor.getOption(\n        89\n        /* EditorOption.occurrencesHighlight */\n      );\n      if (this.occurrencesHighlightEnablement !== newEnablement) {\n        this.occurrencesHighlightEnablement = newEnablement;\n        switch (newEnablement) {\n          case \"off\":\n            this._stopAll();\n            break;\n          case \"singleFile\":\n            this._stopAll(WordHighlighter_1.query?.modelInfo?.modelURI);\n            break;\n          case \"multiFile\":\n            if (WordHighlighter_1.query) {\n              this._run(true);\n            }\n            break;\n          default:\n            console.warn(\"Unknown occurrencesHighlight setting value:\", newEnablement);\n            break;\n        }\n      }\n    }));\n    this.toUnhook.add(this.configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(\"editor.occurrencesHighlightDelay\")) {\n        const newDelay = configurationService.getValue(\"editor.occurrencesHighlightDelay\");\n        if (this.occurrencesHighlightDelay !== newDelay) {\n          this.occurrencesHighlightDelay = newDelay;\n        }\n      }\n    }));\n    this.toUnhook.add(editor2.onDidBlurEditorWidget(() =\u003e {\n      const activeEditor = this.codeEditorService.getFocusedCodeEditor();\n      if (!activeEditor) {\n        this._stopAll();\n      } else if (activeEditor.getModel()?.uri.scheme === Schemas.vscodeNotebookCell \u0026\u0026 this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell) {\n        this._stopAll();\n      }\n    }));\n    this.decorations = this.editor.createDecorationsCollection();\n    this.workerRequestTokenId = 0;\n    this.workerRequest = null;\n    this.workerRequestCompleted = false;\n    this.lastCursorPositionChangeTime = 0;\n    this.renderDecorationsTimer = void 0;\n    if (WordHighlighter_1.query) {\n      this._run();\n    }\n  }\n  hasDecorations() {\n    return this.decorations.length \u003e 0;\n  }\n  restore(delay) {\n    if (this.occurrencesHighlightEnablement === \"off\") {\n      return;\n    }\n    this.runDelayer.cancel();\n    this.runDelayer.trigger(() =\u003e {\n      this._run(false, delay);\n    });\n  }\n  stop() {\n    if (this.occurrencesHighlightEnablement === \"off\") {\n      return;\n    }\n    this._stopAll();\n  }\n  _getSortedHighlights() {\n    return this.decorations.getRanges().sort(Range.compareRangesUsingStarts);\n  }\n  moveNext() {\n    const highlights = this._getSortedHighlights();\n    const index = highlights.findIndex((range2) =\u003e range2.containsPosition(this.editor.getPosition()));\n    const newIndex = (index + 1) % highlights.length;\n    const dest = highlights[newIndex];\n    try {\n      this._ignorePositionChangeEvent = true;\n      this.editor.setPosition(dest.getStartPosition());\n      this.editor.revealRangeInCenterIfOutsideViewport(dest);\n      const word = this._getWord();\n      if (word) {\n        const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n        alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n      }\n    } finally {\n      this._ignorePositionChangeEvent = false;\n    }\n  }\n  moveBack() {\n    const highlights = this._getSortedHighlights();\n    const index = highlights.findIndex((range2) =\u003e range2.containsPosition(this.editor.getPosition()));\n    const newIndex = (index - 1 + highlights.length) % highlights.length;\n    const dest = highlights[newIndex];\n    try {\n      this._ignorePositionChangeEvent = true;\n      this.editor.setPosition(dest.getStartPosition());\n      this.editor.revealRangeInCenterIfOutsideViewport(dest);\n      const word = this._getWord();\n      if (word) {\n        const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n        alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n      }\n    } finally {\n      this._ignorePositionChangeEvent = false;\n    }\n  }\n  _removeSingleDecorations() {\n    if (!this.editor.hasModel()) {\n      return;\n    }\n    const currentDecorationIDs = WordHighlighter_1.storedDecorationIDs.get(this.editor.getModel().uri);\n    if (!currentDecorationIDs) {\n      return;\n    }\n    this.editor.removeDecorations(currentDecorationIDs);\n    WordHighlighter_1.storedDecorationIDs.delete(this.editor.getModel().uri);\n    if (this.decorations.length \u003e 0) {\n      this.decorations.clear();\n      this._hasWordHighlights.set(false);\n    }\n  }\n  _removeAllDecorations(preservedModel) {\n    const currentEditors = this.codeEditorService.listCodeEditors();\n    const deleteURI = [];\n    for (const editor2 of currentEditors) {\n      if (!editor2.hasModel() || isEqual(editor2.getModel().uri, preservedModel)) {\n        continue;\n      }\n      const currentDecorationIDs = WordHighlighter_1.storedDecorationIDs.get(editor2.getModel().uri);\n      if (!currentDecorationIDs) {\n        continue;\n      }\n      editor2.removeDecorations(currentDecorationIDs);\n      deleteURI.push(editor2.getModel().uri);\n      const editorHighlighterContrib = WordHighlighterContribution.get(editor2);\n      if (!editorHighlighterContrib?.wordHighlighter) {\n        continue;\n      }\n      if (editorHighlighterContrib.wordHighlighter.decorations.length \u003e 0) {\n        editorHighlighterContrib.wordHighlighter.decorations.clear();\n        editorHighlighterContrib.wordHighlighter.workerRequest = null;\n        editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false);\n      }\n    }\n    for (const uri of deleteURI) {\n      WordHighlighter_1.storedDecorationIDs.delete(uri);\n    }\n  }\n  _stopSingular() {\n    this._removeSingleDecorations();\n    if (this.editor.hasTextFocus()) {\n      if (this.editor.getModel()?.uri.scheme !== Schemas.vscodeNotebookCell \u0026\u0026 WordHighlighter_1.query?.modelInfo?.modelURI.scheme !== Schemas.vscodeNotebookCell) {\n        WordHighlighter_1.query = null;\n        this._run();\n      } else {\n        if (WordHighlighter_1.query?.modelInfo) {\n          WordHighlighter_1.query.modelInfo = null;\n        }\n      }\n    }\n    if (this.renderDecorationsTimer !== void 0) {\n      clearTimeout(this.renderDecorationsTimer);\n      this.renderDecorationsTimer = void 0;\n    }\n    if (this.workerRequest !== null) {\n      this.workerRequest.cancel();\n      this.workerRequest = null;\n    }\n    if (!this.workerRequestCompleted) {\n      this.workerRequestTokenId++;\n      this.workerRequestCompleted = true;\n    }\n  }\n  _stopAll(preservedModel) {\n    this._removeAllDecorations(preservedModel);\n    if (this.renderDecorationsTimer !== void 0) {\n      clearTimeout(this.renderDecorationsTimer);\n      this.renderDecorationsTimer = void 0;\n    }\n    if (this.workerRequest !== null) {\n      this.workerRequest.cancel();\n      this.workerRequest = null;\n    }\n    if (!this.workerRequestCompleted) {\n      this.workerRequestTokenId++;\n      this.workerRequestCompleted = true;\n    }\n  }\n  _onPositionChanged(e) {\n    if (this.occurrencesHighlightEnablement === \"off\") {\n      this._stopAll();\n      return;\n    }\n    if (e.source !== \"api\" \u0026\u0026 e.reason !== 3) {\n      this._stopAll();\n      return;\n    }\n    this._run();\n  }\n  _getWord() {\n    const editorSelection = this.editor.getSelection();\n    const lineNumber = editorSelection.startLineNumber;\n    const startColumn = editorSelection.startColumn;\n    if (this.model.isDisposed()) {\n      return null;\n    }\n    return this.model.getWordAtPosition({\n      lineNumber,\n      column: startColumn\n    });\n  }\n  getOtherModelsToHighlight(model) {\n    if (!model) {\n      return [];\n    }\n    const isNotebookEditor = model.uri.scheme === Schemas.vscodeNotebookCell;\n    if (isNotebookEditor) {\n      const currentModels2 = [];\n      const currentEditors2 = this.codeEditorService.listCodeEditors();\n      for (const editor2 of currentEditors2) {\n        const tempModel = editor2.getModel();\n        if (tempModel \u0026\u0026 tempModel !== model \u0026\u0026 tempModel.uri.scheme === Schemas.vscodeNotebookCell) {\n          currentModels2.push(tempModel);\n        }\n      }\n      return currentModels2;\n    }\n    const currentModels = [];\n    const currentEditors = this.codeEditorService.listCodeEditors();\n    for (const editor2 of currentEditors) {\n      if (!isDiffEditor(editor2)) {\n        continue;\n      }\n      const diffModel = editor2.getModel();\n      if (!diffModel) {\n        continue;\n      }\n      if (model === diffModel.modified) {\n        currentModels.push(diffModel.modified);\n      }\n    }\n    if (currentModels.length) {\n      return currentModels;\n    }\n    if (this.occurrencesHighlightEnablement === \"singleFile\") {\n      return [];\n    }\n    for (const editor2 of currentEditors) {\n      const tempModel = editor2.getModel();\n      const isValidModel = tempModel \u0026\u0026 tempModel !== model;\n      if (isValidModel) {\n        currentModels.push(tempModel);\n      }\n    }\n    return currentModels;\n  }\n  async _run(multiFileConfigChange, delay) {\n    const hasTextFocus = this.editor.hasTextFocus();\n    if (!hasTextFocus) {\n      if (!WordHighlighter_1.query) {\n        this._stopAll();\n        return;\n      }\n    } else {\n      const editorSelection = this.editor.getSelection();\n      if (!editorSelection || editorSelection.startLineNumber !== editorSelection.endLineNumber) {\n        WordHighlighter_1.query = null;\n        this._stopAll();\n        return;\n      }\n      const startColumn = editorSelection.startColumn;\n      const endColumn = editorSelection.endColumn;\n      const word = this._getWord();\n      if (!word || word.startColumn \u003e startColumn || word.endColumn \u003c endColumn) {\n        WordHighlighter_1.query = null;\n        this._stopAll();\n        return;\n      }\n      WordHighlighter_1.query = {\n        modelInfo: {\n          modelURI: this.model.uri,\n          selection: editorSelection\n        }\n      };\n    }\n    this.lastCursorPositionChangeTime = (/* @__PURE__ */ new Date()).getTime();\n    if (isEqual(this.editor.getModel().uri, WordHighlighter_1.query.modelInfo?.modelURI)) {\n      if (!multiFileConfigChange) {\n        const currentModelDecorationRanges = this.decorations.getRanges();\n        for (const storedRange of currentModelDecorationRanges) {\n          if (storedRange.containsPosition(this.editor.getPosition())) {\n            return;\n          }\n        }\n      }\n      this._stopAll(multiFileConfigChange ? this.model.uri : void 0);\n      const myRequestId = ++this.workerRequestTokenId;\n      this.workerRequestCompleted = false;\n      const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel());\n      if (!WordHighlighter_1.query || !WordHighlighter_1.query.modelInfo) {\n        return;\n      }\n      const queryModelRef = await this.textModelService.createModelReference(WordHighlighter_1.query.modelInfo.modelURI);\n      try {\n        this.workerRequest = this.computeWithModel(queryModelRef.object.textEditorModel, WordHighlighter_1.query.modelInfo.selection, otherModelsToHighlight);\n        this.workerRequest?.result.then((data) =\u003e {\n          if (myRequestId === this.workerRequestTokenId) {\n            this.workerRequestCompleted = true;\n            this.workerRequestValue = data || [];\n            this._beginRenderDecorations(delay ?? this.occurrencesHighlightDelay);\n          }\n        }, onUnexpectedError);\n      } catch (e) {\n        this.logService.error(\"Unexpected error during occurrence request. Log: \", e);\n      } finally {\n        queryModelRef.dispose();\n      }\n    } else if (this.model.uri.scheme === Schemas.vscodeNotebookCell) {\n      const myRequestId = ++this.workerRequestTokenId;\n      this.workerRequestCompleted = false;\n      if (!WordHighlighter_1.query || !WordHighlighter_1.query.modelInfo) {\n        return;\n      }\n      const queryModelRef = await this.textModelService.createModelReference(WordHighlighter_1.query.modelInfo.modelURI);\n      try {\n        this.workerRequest = this.computeWithModel(queryModelRef.object.textEditorModel, WordHighlighter_1.query.modelInfo.selection, [this.model]);\n        this.workerRequest?.result.then((data) =\u003e {\n          if (myRequestId === this.workerRequestTokenId) {\n            this.workerRequestCompleted = true;\n            this.workerRequestValue = data || [];\n            this._beginRenderDecorations(delay ?? this.occurrencesHighlightDelay);\n          }\n        }, onUnexpectedError);\n      } catch (e) {\n        this.logService.error(\"Unexpected error during occurrence request. Log: \", e);\n      } finally {\n        queryModelRef.dispose();\n      }\n    }\n  }\n  computeWithModel(model, selection, otherModels) {\n    if (!otherModels.length) {\n      return computeOccurencesAtPosition(this.providers, model, selection, this.editor.getOption(\n        147\n        /* EditorOption.wordSeparators */\n      ));\n    } else {\n      return computeOccurencesMultiModel(this.multiDocumentProviders, model, selection, this.editor.getOption(\n        147\n        /* EditorOption.wordSeparators */\n      ), otherModels);\n    }\n  }\n  _beginRenderDecorations(delay) {\n    const currentTime = (/* @__PURE__ */ new Date()).getTime();\n    const minimumRenderTime = this.lastCursorPositionChangeTime + delay;\n    if (currentTime \u003e= minimumRenderTime) {\n      this.renderDecorationsTimer = void 0;\n      this.renderDecorations();\n    } else {\n      this.renderDecorationsTimer = setTimeout(() =\u003e {\n        this.renderDecorations();\n      }, minimumRenderTime - currentTime);\n    }\n  }\n  renderDecorations() {\n    this.renderDecorationsTimer = void 0;\n    const currentEditors = this.codeEditorService.listCodeEditors();\n    for (const editor2 of currentEditors) {\n      const editorHighlighterContrib = WordHighlighterContribution.get(editor2);\n      if (!editorHighlighterContrib) {\n        continue;\n      }\n      const newDecorations = [];\n      const uri = editor2.getModel()?.uri;\n      if (uri \u0026\u0026 this.workerRequestValue.has(uri)) {\n        const oldDecorationIDs = WordHighlighter_1.storedDecorationIDs.get(uri);\n        const newDocumentHighlights = this.workerRequestValue.get(uri);\n        if (newDocumentHighlights) {\n          for (const highlight of newDocumentHighlights) {\n            if (!highlight.range) {\n              continue;\n            }\n            newDecorations.push({\n              range: highlight.range,\n              options: getHighlightDecorationOptions(highlight.kind)\n            });\n          }\n        }\n        let newDecorationIDs = [];\n        editor2.changeDecorations((changeAccessor) =\u003e {\n          newDecorationIDs = changeAccessor.deltaDecorations(oldDecorationIDs ?? [], newDecorations);\n        });\n        WordHighlighter_1.storedDecorationIDs = WordHighlighter_1.storedDecorationIDs.set(uri, newDecorationIDs);\n        if (newDecorations.length \u003e 0) {\n          editorHighlighterContrib.wordHighlighter?.decorations.set(newDecorations);\n          editorHighlighterContrib.wordHighlighter?._hasWordHighlights.set(true);\n        }\n      }\n    }\n    this.workerRequest = null;\n  }\n  dispose() {\n    this._stopSingular();\n    this.toUnhook.dispose();\n  }\n};\nWordHighlighter = WordHighlighter_1 = __decorate155([\n  __param149(4, ITextModelService),\n  __param149(5, ICodeEditorService),\n  __param149(6, IConfigurationService),\n  __param149(7, ILogService)\n], WordHighlighter);\nvar WordHighlighterContribution = class WordHighlighterContribution2 extends Disposable {\n  static {\n    WordHighlighterContribution_1 = this;\n  }\n  static {\n    this.ID = \"editor.contrib.wordHighlighter\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(WordHighlighterContribution_1.ID);\n  }\n  constructor(editor2, contextKeyService, languageFeaturesService, codeEditorService, textModelService, configurationService, logService) {\n    super();\n    this._wordHighlighter = null;\n    const createWordHighlighterIfPossible = () =\u003e {\n      if (editor2.hasModel() \u0026\u0026 !editor2.getModel().isTooLargeForTokenization() \u0026\u0026 editor2.getModel().uri.scheme !== Schemas.accessibleView) {\n        this._wordHighlighter = new WordHighlighter(editor2, languageFeaturesService.documentHighlightProvider, languageFeaturesService.multiDocumentHighlightProvider, contextKeyService, textModelService, codeEditorService, configurationService, logService);\n      }\n    };\n    this._register(editor2.onDidChangeModel((e) =\u003e {\n      if (this._wordHighlighter) {\n        if (!e.newModelUrl \u0026\u0026 e.oldModelUrl?.scheme !== Schemas.vscodeNotebookCell) {\n          this.wordHighlighter?.stop();\n        }\n        this._wordHighlighter.dispose();\n        this._wordHighlighter = null;\n      }\n      createWordHighlighterIfPossible();\n    }));\n    createWordHighlighterIfPossible();\n  }\n  get wordHighlighter() {\n    return this._wordHighlighter;\n  }\n  saveViewState() {\n    if (this._wordHighlighter \u0026\u0026 this._wordHighlighter.hasDecorations()) {\n      return true;\n    }\n    return false;\n  }\n  moveNext() {\n    this._wordHighlighter?.moveNext();\n  }\n  moveBack() {\n    this._wordHighlighter?.moveBack();\n  }\n  restoreViewState(state) {\n    if (this._wordHighlighter \u0026\u0026 state) {\n      this._wordHighlighter.restore(250);\n    }\n  }\n  dispose() {\n    if (this._wordHighlighter) {\n      this._wordHighlighter.dispose();\n      this._wordHighlighter = null;\n    }\n    super.dispose();\n  }\n};\nWordHighlighterContribution = WordHighlighterContribution_1 = __decorate155([\n  __param149(1, IContextKeyService),\n  __param149(2, ILanguageFeaturesService),\n  __param149(3, ICodeEditorService),\n  __param149(4, ITextModelService),\n  __param149(5, IConfigurationService),\n  __param149(6, ILogService)\n], WordHighlighterContribution);\nvar WordHighlightNavigationAction = class extends EditorAction {\n  constructor(next, opts) {\n    super(opts);\n    this._isNext = next;\n  }\n  run(accessor, editor2) {\n    const controller = WordHighlighterContribution.get(editor2);\n    if (!controller) {\n      return;\n    }\n    if (this._isNext) {\n      controller.moveNext();\n    } else {\n      controller.moveBack();\n    }\n  }\n};\nvar NextWordHighlightAction = class extends WordHighlightNavigationAction {\n  constructor() {\n    super(true, {\n      id: \"editor.action.wordHighlight.next\",\n      label: localize2(1554, \"Go to Next Symbol Highlight\"),\n      precondition: ctxHasWordHighlights,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 65,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar PrevWordHighlightAction = class extends WordHighlightNavigationAction {\n  constructor() {\n    super(false, {\n      id: \"editor.action.wordHighlight.prev\",\n      label: localize2(1555, \"Go to Previous Symbol Highlight\"),\n      precondition: ctxHasWordHighlights,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 1024 | 65,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar TriggerWordHighlightAction = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.wordHighlight.trigger\",\n      label: localize2(1556, \"Trigger Symbol Highlight\"),\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.editorTextFocus,\n        primary: 0,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor, editor2, args) {\n    const controller = WordHighlighterContribution.get(editor2);\n    if (!controller) {\n      return;\n    }\n    controller.restoreViewState(true);\n  }\n};\nregisterEditorContribution(\n  WordHighlighterContribution.ID,\n  WordHighlighterContribution,\n  0\n  /* EditorContributionInstantiation.Eager */\n);\nregisterEditorAction(NextWordHighlightAction);\nregisterEditorAction(PrevWordHighlightAction);\nregisterEditorAction(TriggerWordHighlightAction);\nregisterEditorFeature(TextualMultiDocumentHighlightFeature);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js\ninit_editorExtensions();\ninit_wordCharacterClassifier();\ninit_position();\ninit_range();\ninit_selection();\ninit_editorContextKeys();\ninit_languageConfigurationRegistry();\ninit_nls();\ninit_contextkey();\nvar MoveWordCommand = class extends EditorCommand {\n  constructor(opts) {\n    super(opts);\n    this._inSelectionMode = opts.inSelectionMode;\n    this._wordNavigationType = opts.wordNavigationType;\n  }\n  runEditorCommand(accessor, editor2, args) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const wordSeparators2 = getMapForWordSeparators(editor2.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ), editor2.getOption(\n      146\n      /* EditorOption.wordSegmenterLocales */\n    ));\n    const model = editor2.getModel();\n    const selections = editor2.getSelections();\n    const hasMulticursor = selections.length \u003e 1;\n    const result = selections.map((sel) =\u003e {\n      const inPosition = new Position(sel.positionLineNumber, sel.positionColumn);\n      const outPosition = this._move(wordSeparators2, model, inPosition, this._wordNavigationType, hasMulticursor);\n      return this._moveTo(sel, outPosition, this._inSelectionMode);\n    });\n    model.pushStackElement();\n    editor2._getViewModel().setCursorStates(\"moveWordCommand\", 3, result.map((r) =\u003e CursorState.fromModelSelection(r)));\n    if (result.length === 1) {\n      const pos = new Position(result[0].positionLineNumber, result[0].positionColumn);\n      editor2.revealPosition(\n        pos,\n        0\n        /* ScrollType.Smooth */\n      );\n    }\n  }\n  _moveTo(from, to, inSelectionMode) {\n    if (inSelectionMode) {\n      return new Selection(from.selectionStartLineNumber, from.selectionStartColumn, to.lineNumber, to.column);\n    } else {\n      return new Selection(to.lineNumber, to.column, to.lineNumber, to.column);\n    }\n  }\n};\nvar WordLeftCommand = class extends MoveWordCommand {\n  _move(wordSeparators2, model, position, wordNavigationType, hasMulticursor) {\n    return WordOperations.moveWordLeft(wordSeparators2, model, position, wordNavigationType, hasMulticursor);\n  }\n};\nvar WordRightCommand = class extends MoveWordCommand {\n  _move(wordSeparators2, model, position, wordNavigationType, hasMulticursor) {\n    return WordOperations.moveWordRight(wordSeparators2, model, position, wordNavigationType);\n  }\n};\nvar CursorWordStartLeft = class extends WordLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 0,\n      id: \"cursorWordStartLeft\",\n      precondition: void 0\n    });\n  }\n};\nvar CursorWordEndLeft = class extends WordLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 2,\n      id: \"cursorWordEndLeft\",\n      precondition: void 0\n    });\n  }\n};\nvar CursorWordLeft = class extends WordLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 1,\n      id: \"cursorWordLeft\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n        primary: 2048 | 15,\n        mac: {\n          primary: 512 | 15\n          /* KeyCode.LeftArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar CursorWordStartLeftSelect = class extends WordLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 0,\n      id: \"cursorWordStartLeftSelect\",\n      precondition: void 0\n    });\n  }\n};\nvar CursorWordEndLeftSelect = class extends WordLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 2,\n      id: \"cursorWordEndLeftSelect\",\n      precondition: void 0\n    });\n  }\n};\nvar CursorWordLeftSelect = class extends WordLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 1,\n      id: \"cursorWordLeftSelect\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n        primary: 2048 | 1024 | 15,\n        mac: {\n          primary: 512 | 1024 | 15\n          /* KeyCode.LeftArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar CursorWordAccessibilityLeft = class extends WordLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 3,\n      id: \"cursorWordAccessibilityLeft\",\n      precondition: void 0\n    });\n  }\n  _move(wordCharacterClassifier, model, position, wordNavigationType, hasMulticursor) {\n    return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n  }\n};\nvar CursorWordAccessibilityLeftSelect = class extends WordLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 3,\n      id: \"cursorWordAccessibilityLeftSelect\",\n      precondition: void 0\n    });\n  }\n  _move(wordCharacterClassifier, model, position, wordNavigationType, hasMulticursor) {\n    return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n  }\n};\nvar CursorWordStartRight = class extends WordRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 0,\n      id: \"cursorWordStartRight\",\n      precondition: void 0\n    });\n  }\n};\nvar CursorWordEndRight = class extends WordRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 2,\n      id: \"cursorWordEndRight\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n        primary: 2048 | 17,\n        mac: {\n          primary: 512 | 17\n          /* KeyCode.RightArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar CursorWordRight = class extends WordRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 2,\n      id: \"cursorWordRight\",\n      precondition: void 0\n    });\n  }\n};\nvar CursorWordStartRightSelect = class extends WordRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 0,\n      id: \"cursorWordStartRightSelect\",\n      precondition: void 0\n    });\n  }\n};\nvar CursorWordEndRightSelect = class extends WordRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 2,\n      id: \"cursorWordEndRightSelect\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)?.negate()),\n        primary: 2048 | 1024 | 17,\n        mac: {\n          primary: 512 | 1024 | 17\n          /* KeyCode.RightArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar CursorWordRightSelect = class extends WordRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 2,\n      id: \"cursorWordRightSelect\",\n      precondition: void 0\n    });\n  }\n};\nvar CursorWordAccessibilityRight = class extends WordRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 3,\n      id: \"cursorWordAccessibilityRight\",\n      precondition: void 0\n    });\n  }\n  _move(wordCharacterClassifier, model, position, wordNavigationType, hasMulticursor) {\n    return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n  }\n};\nvar CursorWordAccessibilityRightSelect = class extends WordRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 3,\n      id: \"cursorWordAccessibilityRightSelect\",\n      precondition: void 0\n    });\n  }\n  _move(wordCharacterClassifier, model, position, wordNavigationType, hasMulticursor) {\n    return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType, hasMulticursor);\n  }\n};\nvar DeleteWordCommand = class extends EditorCommand {\n  constructor(opts) {\n    super(opts);\n    this._whitespaceHeuristics = opts.whitespaceHeuristics;\n    this._wordNavigationType = opts.wordNavigationType;\n  }\n  runEditorCommand(accessor, editor2, args) {\n    const languageConfigurationService = accessor?.get(ILanguageConfigurationService);\n    if (!editor2.hasModel() || !languageConfigurationService) {\n      return;\n    }\n    const wordSeparators2 = getMapForWordSeparators(editor2.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ), editor2.getOption(\n      146\n      /* EditorOption.wordSegmenterLocales */\n    ));\n    const model = editor2.getModel();\n    const selections = editor2.getSelections();\n    const autoClosingBrackets = editor2.getOption(\n      10\n      /* EditorOption.autoClosingBrackets */\n    );\n    const autoClosingQuotes = editor2.getOption(\n      15\n      /* EditorOption.autoClosingQuotes */\n    );\n    const autoClosingPairs = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getAutoClosingPairs();\n    const viewModel = editor2._getViewModel();\n    const commands = selections.map((sel) =\u003e {\n      const deleteRange = this._delete({\n        wordSeparators: wordSeparators2,\n        model,\n        selection: sel,\n        whitespaceHeuristics: this._whitespaceHeuristics,\n        autoClosingDelete: editor2.getOption(\n          13\n          /* EditorOption.autoClosingDelete */\n        ),\n        autoClosingBrackets,\n        autoClosingQuotes,\n        autoClosingPairs,\n        autoClosedCharacters: viewModel.getCursorAutoClosedCharacters()\n      }, this._wordNavigationType);\n      return new ReplaceCommand(deleteRange, \"\");\n    });\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nvar DeleteWordLeftCommand = class extends DeleteWordCommand {\n  _delete(ctx, wordNavigationType) {\n    const r = WordOperations.deleteWordLeft(ctx, wordNavigationType);\n    if (r) {\n      return r;\n    }\n    return new Range(1, 1, 1, 1);\n  }\n};\nvar DeleteWordRightCommand = class extends DeleteWordCommand {\n  _delete(ctx, wordNavigationType) {\n    const r = WordOperations.deleteWordRight(ctx, wordNavigationType);\n    if (r) {\n      return r;\n    }\n    const lineCount = ctx.model.getLineCount();\n    const maxColumn = ctx.model.getLineMaxColumn(lineCount);\n    return new Range(lineCount, maxColumn, lineCount, maxColumn);\n  }\n};\nvar DeleteWordStartLeft = class extends DeleteWordLeftCommand {\n  constructor() {\n    super({\n      whitespaceHeuristics: false,\n      wordNavigationType: 0,\n      id: \"deleteWordStartLeft\",\n      precondition: EditorContextKeys.writable\n    });\n  }\n};\nvar DeleteWordEndLeft = class extends DeleteWordLeftCommand {\n  constructor() {\n    super({\n      whitespaceHeuristics: false,\n      wordNavigationType: 2,\n      id: \"deleteWordEndLeft\",\n      precondition: EditorContextKeys.writable\n    });\n  }\n};\nvar DeleteWordLeft = class extends DeleteWordLeftCommand {\n  constructor() {\n    super({\n      whitespaceHeuristics: true,\n      wordNavigationType: 0,\n      id: \"deleteWordLeft\",\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 | 1,\n        mac: {\n          primary: 512 | 1\n          /* KeyCode.Backspace */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar DeleteWordStartRight = class extends DeleteWordRightCommand {\n  constructor() {\n    super({\n      whitespaceHeuristics: false,\n      wordNavigationType: 0,\n      id: \"deleteWordStartRight\",\n      precondition: EditorContextKeys.writable\n    });\n  }\n};\nvar DeleteWordEndRight = class extends DeleteWordRightCommand {\n  constructor() {\n    super({\n      whitespaceHeuristics: false,\n      wordNavigationType: 2,\n      id: \"deleteWordEndRight\",\n      precondition: EditorContextKeys.writable\n    });\n  }\n};\nvar DeleteWordRight = class extends DeleteWordRightCommand {\n  constructor() {\n    super({\n      whitespaceHeuristics: true,\n      wordNavigationType: 2,\n      id: \"deleteWordRight\",\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 2048 | 20,\n        mac: {\n          primary: 512 | 20\n          /* KeyCode.Delete */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar DeleteInsideWord = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"deleteInsideWord\",\n      precondition: EditorContextKeys.writable,\n      label: localize2(1557, \"Delete Word\")\n    });\n  }\n  run(accessor, editor2, args) {\n    if (!editor2.hasModel()) {\n      return;\n    }\n    const wordSeparators2 = getMapForWordSeparators(editor2.getOption(\n      147\n      /* EditorOption.wordSeparators */\n    ), editor2.getOption(\n      146\n      /* EditorOption.wordSegmenterLocales */\n    ));\n    const model = editor2.getModel();\n    const selections = editor2.getSelections();\n    const commands = selections.map((sel) =\u003e {\n      const deleteRange = WordOperations.deleteInsideWord(wordSeparators2, model, sel);\n      return new ReplaceCommand(deleteRange, \"\");\n    });\n    editor2.pushUndoStop();\n    editor2.executeCommands(this.id, commands);\n    editor2.pushUndoStop();\n  }\n};\nregisterEditorCommand(new CursorWordStartLeft());\nregisterEditorCommand(new CursorWordEndLeft());\nregisterEditorCommand(new CursorWordLeft());\nregisterEditorCommand(new CursorWordStartLeftSelect());\nregisterEditorCommand(new CursorWordEndLeftSelect());\nregisterEditorCommand(new CursorWordLeftSelect());\nregisterEditorCommand(new CursorWordStartRight());\nregisterEditorCommand(new CursorWordEndRight());\nregisterEditorCommand(new CursorWordRight());\nregisterEditorCommand(new CursorWordStartRightSelect());\nregisterEditorCommand(new CursorWordEndRightSelect());\nregisterEditorCommand(new CursorWordRightSelect());\nregisterEditorCommand(new CursorWordAccessibilityLeft());\nregisterEditorCommand(new CursorWordAccessibilityLeftSelect());\nregisterEditorCommand(new CursorWordAccessibilityRight());\nregisterEditorCommand(new CursorWordAccessibilityRightSelect());\nregisterEditorCommand(new DeleteWordStartLeft());\nregisterEditorCommand(new DeleteWordEndLeft());\nregisterEditorCommand(new DeleteWordLeft());\nregisterEditorCommand(new DeleteWordStartRight());\nregisterEditorCommand(new DeleteWordEndRight());\nregisterEditorCommand(new DeleteWordRight());\nregisterEditorAction(DeleteInsideWord);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js\ninit_editorExtensions();\ninit_range();\ninit_editorContextKeys();\ninit_commands();\nvar DeleteWordPartLeft = class extends DeleteWordCommand {\n  constructor() {\n    super({\n      whitespaceHeuristics: true,\n      wordNavigationType: 0,\n      id: \"deleteWordPartLeft\",\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: {\n          primary: 256 | 512 | 1\n          /* KeyCode.Backspace */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  _delete(ctx, wordNavigationType) {\n    const r = WordPartOperations.deleteWordPartLeft(ctx);\n    if (r) {\n      return r;\n    }\n    return new Range(1, 1, 1, 1);\n  }\n};\nvar DeleteWordPartRight = class extends DeleteWordCommand {\n  constructor() {\n    super({\n      whitespaceHeuristics: true,\n      wordNavigationType: 2,\n      id: \"deleteWordPartRight\",\n      precondition: EditorContextKeys.writable,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: {\n          primary: 256 | 512 | 20\n          /* KeyCode.Delete */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  _delete(ctx, wordNavigationType) {\n    const r = WordPartOperations.deleteWordPartRight(ctx);\n    if (r) {\n      return r;\n    }\n    const lineCount = ctx.model.getLineCount();\n    const maxColumn = ctx.model.getLineMaxColumn(lineCount);\n    return new Range(lineCount, maxColumn, lineCount, maxColumn);\n  }\n};\nvar WordPartLeftCommand = class extends MoveWordCommand {\n  _move(wordSeparators2, model, position, wordNavigationType, hasMulticursor) {\n    return WordPartOperations.moveWordPartLeft(wordSeparators2, model, position, hasMulticursor);\n  }\n};\nvar CursorWordPartLeft = class extends WordPartLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 0,\n      id: \"cursorWordPartLeft\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: {\n          primary: 256 | 512 | 15\n          /* KeyCode.LeftArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nCommandsRegistry.registerCommandAlias(\"cursorWordPartStartLeft\", \"cursorWordPartLeft\");\nvar CursorWordPartLeftSelect = class extends WordPartLeftCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 0,\n      id: \"cursorWordPartLeftSelect\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: {\n          primary: 256 | 512 | 1024 | 15\n          /* KeyCode.LeftArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nCommandsRegistry.registerCommandAlias(\"cursorWordPartStartLeftSelect\", \"cursorWordPartLeftSelect\");\nvar WordPartRightCommand = class extends MoveWordCommand {\n  _move(wordSeparators2, model, position, wordNavigationType, hasMulticursor) {\n    return WordPartOperations.moveWordPartRight(wordSeparators2, model, position);\n  }\n};\nvar CursorWordPartRight = class extends WordPartRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: false,\n      wordNavigationType: 2,\n      id: \"cursorWordPartRight\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: {\n          primary: 256 | 512 | 17\n          /* KeyCode.RightArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nvar CursorWordPartRightSelect = class extends WordPartRightCommand {\n  constructor() {\n    super({\n      inSelectionMode: true,\n      wordNavigationType: 2,\n      id: \"cursorWordPartRightSelect\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.textInputFocus,\n        primary: 0,\n        mac: {\n          primary: 256 | 512 | 1024 | 17\n          /* KeyCode.RightArrow */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n};\nregisterEditorCommand(new DeleteWordPartLeft());\nregisterEditorCommand(new DeleteWordPartRight());\nregisterEditorCommand(new CursorWordPartLeft());\nregisterEditorCommand(new CursorWordPartLeftSelect());\nregisterEditorCommand(new CursorWordPartRight());\nregisterEditorCommand(new CursorWordPartRightSelect());\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js\ninit_htmlContent();\ninit_lifecycle();\ninit_editorExtensions();\ninit_nls();\nvar ReadOnlyMessageController = class extends Disposable {\n  static {\n    this.ID = \"editor.contrib.readOnlyMessageController\";\n  }\n  constructor(editor2) {\n    super();\n    this.editor = editor2;\n    this._register(this.editor.onDidAttemptReadOnlyEdit(() =\u003e this._onDidAttemptReadOnlyEdit()));\n  }\n  _onDidAttemptReadOnlyEdit() {\n    const messageController = MessageController.get(this.editor);\n    if (messageController \u0026\u0026 this.editor.hasModel()) {\n      let message = this.editor.getOptions().get(\n        104\n        /* EditorOption.readOnlyMessage */\n      );\n      if (!message) {\n        if (this.editor.isSimpleWidget) {\n          message = new MarkdownString(localize(1360, \"Cannot edit in read-only input\"));\n        } else {\n          message = new MarkdownString(localize(1361, \"Cannot edit in read-only editor\"));\n        }\n      }\n      messageController.showMessage(message, this.editor.getPosition());\n    }\n  }\n};\nregisterEditorContribution(\n  ReadOnlyMessageController.ID,\n  ReadOnlyMessageController,\n  2\n  /* EditorContributionInstantiation.BeforeFirstInteraction */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/editor.all.js\nvar import_contribution2 = __toESM(require_contribution());\ninit_standaloneStrings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js\ninit_dom();\ninit_lifecycle();\ninit_editorExtensions();\ninit_platform();\nvar IPadShowKeyboard = class extends Disposable {\n  static {\n    this.ID = \"editor.contrib.iPadShowKeyboard\";\n  }\n  constructor(editor2) {\n    super();\n    this.editor = editor2;\n    this.widget = null;\n    if (isIOS) {\n      this._register(editor2.onDidChangeConfiguration(() =\u003e this.update()));\n      this.update();\n    }\n  }\n  update() {\n    const shouldHaveWidget = !this.editor.getOption(\n      103\n      /* EditorOption.readOnly */\n    );\n    if (!this.widget \u0026\u0026 shouldHaveWidget) {\n      this.widget = new ShowKeyboardWidget(this.editor);\n    } else if (this.widget \u0026\u0026 !shouldHaveWidget) {\n      this.widget.dispose();\n      this.widget = null;\n    }\n  }\n  dispose() {\n    super.dispose();\n    if (this.widget) {\n      this.widget.dispose();\n      this.widget = null;\n    }\n  }\n};\nvar ShowKeyboardWidget = class _ShowKeyboardWidget extends Disposable {\n  static {\n    this.ID = \"editor.contrib.ShowKeyboardWidget\";\n  }\n  constructor(editor2) {\n    super();\n    this.editor = editor2;\n    this._domNode = document.createElement(\"textarea\");\n    this._domNode.className = \"iPadShowKeyboard\";\n    this._register(addDisposableListener(this._domNode, \"touchstart\", (e) =\u003e {\n      this.editor.focus();\n    }));\n    this._register(addDisposableListener(this._domNode, \"focus\", (e) =\u003e {\n      this.editor.focus();\n    }));\n    this.editor.addOverlayWidget(this);\n  }\n  dispose() {\n    this.editor.removeOverlayWidget(this);\n    super.dispose();\n  }\n  // ----- IOverlayWidget API\n  getId() {\n    return _ShowKeyboardWidget.ID;\n  }\n  getDomNode() {\n    return this._domNode;\n  }\n  getPosition() {\n    return {\n      preference: 1\n      /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */\n    };\n  }\n};\nregisterEditorContribution(\n  IPadShowKeyboard.ID,\n  IPadShowKeyboard,\n  3\n  /* EditorContributionInstantiation.Eventually */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/editor.main.js\nvar import_inspectTokens = __toESM(require_inspectTokens());\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js\ninit_platform2();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/common/quickAccess.js\ninit_arrays();\ninit_lifecycle();\ninit_platform2();\nvar DefaultQuickAccessFilterValue;\n(function(DefaultQuickAccessFilterValue2) {\n  DefaultQuickAccessFilterValue2[DefaultQuickAccessFilterValue2[\"PRESERVE\"] = 0] = \"PRESERVE\";\n  DefaultQuickAccessFilterValue2[DefaultQuickAccessFilterValue2[\"LAST\"] = 1] = \"LAST\";\n})(DefaultQuickAccessFilterValue || (DefaultQuickAccessFilterValue = {}));\nvar Extensions10 = {\n  Quickaccess: \"workbench.contributions.quickaccess\"\n};\nvar QuickAccessRegistry = class {\n  constructor() {\n    this.providers = [];\n    this.defaultProvider = void 0;\n  }\n  registerQuickAccessProvider(provider) {\n    if (provider.prefix.length === 0) {\n      this.defaultProvider = provider;\n    } else {\n      this.providers.push(provider);\n    }\n    this.providers.sort((providerA, providerB) =\u003e providerB.prefix.length - providerA.prefix.length);\n    return toDisposable(() =\u003e {\n      this.providers.splice(this.providers.indexOf(provider), 1);\n      if (this.defaultProvider === provider) {\n        this.defaultProvider = void 0;\n      }\n    });\n  }\n  getQuickAccessProviders() {\n    return coalesce([this.defaultProvider, ...this.providers]);\n  }\n  getQuickAccessProvider(prefix) {\n    const result = prefix ? this.providers.find((provider) =\u003e prefix.startsWith(provider.prefix)) || void 0 : void 0;\n    return result || this.defaultProvider;\n  }\n};\nRegistry.add(Extensions10.Quickaccess, new QuickAccessRegistry());\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js\ninit_standaloneStrings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/helpQuickAccess.js\ninit_nls();\ninit_platform2();\ninit_lifecycle();\nvar __decorate156 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param150 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar HelpQuickAccessProvider_1;\nvar HelpQuickAccessProvider = class HelpQuickAccessProvider2 {\n  static {\n    HelpQuickAccessProvider_1 = this;\n  }\n  static {\n    this.PREFIX = \"?\";\n  }\n  constructor(quickInputService, keybindingService) {\n    this.quickInputService = quickInputService;\n    this.keybindingService = keybindingService;\n    this.registry = Registry.as(Extensions10.Quickaccess);\n  }\n  provide(picker) {\n    const disposables = new DisposableStore();\n    disposables.add(picker.onDidAccept(() =\u003e {\n      const [item] = picker.selectedItems;\n      if (item) {\n        this.quickInputService.quickAccess.show(item.prefix, { preserveValue: true });\n      }\n    }));\n    disposables.add(picker.onDidChangeValue((value) =\u003e {\n      const providerDescriptor = this.registry.getQuickAccessProvider(value.substr(HelpQuickAccessProvider_1.PREFIX.length));\n      if (providerDescriptor \u0026\u0026 providerDescriptor.prefix \u0026\u0026 providerDescriptor.prefix !== HelpQuickAccessProvider_1.PREFIX) {\n        this.quickInputService.quickAccess.show(providerDescriptor.prefix, { preserveValue: true });\n      }\n    }));\n    picker.items = this.getQuickAccessProviders().filter((p) =\u003e p.prefix !== HelpQuickAccessProvider_1.PREFIX);\n    return disposables;\n  }\n  getQuickAccessProviders() {\n    const providers = this.registry.getQuickAccessProviders().sort((providerA, providerB) =\u003e providerA.prefix.localeCompare(providerB.prefix)).flatMap((provider) =\u003e this.createPicks(provider));\n    return providers;\n  }\n  createPicks(provider) {\n    return provider.helpEntries.map((helpEntry) =\u003e {\n      const prefix = helpEntry.prefix || provider.prefix;\n      const label = prefix || \"\\u2026\";\n      return {\n        prefix,\n        label,\n        keybinding: helpEntry.commandId ? this.keybindingService.lookupKeybinding(helpEntry.commandId) : void 0,\n        ariaLabel: localize(1728, \"{0}, {1}\", label, helpEntry.description),\n        description: helpEntry.description\n      };\n    });\n  }\n};\nHelpQuickAccessProvider = HelpQuickAccessProvider_1 = __decorate156([\n  __param150(0, IQuickInputService),\n  __param150(1, IKeybindingService)\n], HelpQuickAccessProvider);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js\nRegistry.as(Extensions10.Quickaccess).registerQuickAccessProvider({\n  ctor: HelpQuickAccessProvider,\n  prefix: \"\",\n  helpEntries: [{ description: QuickHelpNLS.helpQuickAccessActionLabel }]\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js\ninit_functional();\ninit_lifecycle();\ninit_model2();\ninit_editorColorRegistry();\ninit_themeService();\nvar AbstractEditorNavigationQuickAccessProvider = class {\n  constructor(options2) {\n    this.options = options2;\n    this.rangeHighlightDecorationId = void 0;\n  }\n  //#region Provider methods\n  provide(picker, token, runOptions) {\n    const disposables = new DisposableStore();\n    picker.canAcceptInBackground = !!this.options?.canAcceptInBackground;\n    picker.matchOnLabel = picker.matchOnDescription = picker.matchOnDetail = picker.sortByLabel = false;\n    const pickerDisposable = disposables.add(new MutableDisposable());\n    pickerDisposable.value = this.doProvide(picker, token, runOptions);\n    disposables.add(this.onDidActiveTextEditorControlChange(() =\u003e {\n      pickerDisposable.value = void 0;\n      pickerDisposable.value = this.doProvide(picker, token);\n    }));\n    return disposables;\n  }\n  doProvide(picker, token, runOptions) {\n    const disposables = new DisposableStore();\n    const editor2 = this.activeTextEditorControl;\n    if (editor2 \u0026\u0026 this.canProvideWithTextEditor(editor2)) {\n      const context = { editor: editor2 };\n      const codeEditor = getCodeEditor(editor2);\n      if (codeEditor) {\n        let lastKnownEditorViewState = editor2.saveViewState() ?? void 0;\n        disposables.add(codeEditor.onDidChangeCursorPosition(() =\u003e {\n          lastKnownEditorViewState = editor2.saveViewState() ?? void 0;\n        }));\n        context.restoreViewState = () =\u003e {\n          if (lastKnownEditorViewState \u0026\u0026 editor2 === this.activeTextEditorControl) {\n            editor2.restoreViewState(lastKnownEditorViewState);\n          }\n        };\n        disposables.add(createSingleCallFunction(token.onCancellationRequested)(() =\u003e context.restoreViewState?.()));\n      }\n      disposables.add(toDisposable(() =\u003e this.clearDecorations(editor2)));\n      disposables.add(this.provideWithTextEditor(context, picker, token, runOptions));\n    } else {\n      disposables.add(this.provideWithoutTextEditor(picker, token));\n    }\n    return disposables;\n  }\n  /**\n   * Subclasses to implement if they can operate on the text editor.\n   */\n  canProvideWithTextEditor(editor2) {\n    return true;\n  }\n  gotoLocation({ editor: editor2 }, options2) {\n    editor2.setSelection(\n      options2.range,\n      \"code.jump\"\n      /* TextEditorSelectionSource.JUMP */\n    );\n    editor2.revealRangeInCenter(\n      options2.range,\n      0\n      /* ScrollType.Smooth */\n    );\n    if (!options2.preserveFocus) {\n      editor2.focus();\n    }\n    const model = editor2.getModel();\n    if (model \u0026\u0026 \"getLineContent\" in model) {\n      status(`${model.getLineContent(options2.range.startLineNumber)}`);\n    }\n  }\n  getModel(editor2) {\n    return isDiffEditor(editor2) ? editor2.getModel()?.modified : editor2.getModel();\n  }\n  addDecorations(editor2, range2) {\n    editor2.changeDecorations((changeAccessor) =\u003e {\n      const deleteDecorations = [];\n      if (this.rangeHighlightDecorationId) {\n        deleteDecorations.push(this.rangeHighlightDecorationId.overviewRulerDecorationId);\n        deleteDecorations.push(this.rangeHighlightDecorationId.rangeHighlightId);\n        this.rangeHighlightDecorationId = void 0;\n      }\n      const newDecorations = [\n        // highlight the entire line on the range\n        {\n          range: range2,\n          options: {\n            description: \"quick-access-range-highlight\",\n            className: \"rangeHighlight\",\n            isWholeLine: true\n          }\n        },\n        // also add overview ruler highlight\n        {\n          range: range2,\n          options: {\n            description: \"quick-access-range-highlight-overview\",\n            overviewRuler: {\n              color: themeColorFromId(overviewRulerRangeHighlight),\n              position: OverviewRulerLane.Full\n            }\n          }\n        }\n      ];\n      const [rangeHighlightId, overviewRulerDecorationId] = changeAccessor.deltaDecorations(deleteDecorations, newDecorations);\n      this.rangeHighlightDecorationId = { rangeHighlightId, overviewRulerDecorationId };\n    });\n  }\n  clearDecorations(editor2) {\n    const rangeHighlightDecorationId = this.rangeHighlightDecorationId;\n    if (rangeHighlightDecorationId) {\n      editor2.changeDecorations((changeAccessor) =\u003e {\n        changeAccessor.deltaDecorations([\n          rangeHighlightDecorationId.overviewRulerDecorationId,\n          rangeHighlightDecorationId.rangeHighlightId\n        ], []);\n      });\n      this.rangeHighlightDecorationId = void 0;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js\ninit_nls();\nvar AbstractGotoLineQuickAccessProvider = class _AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider {\n  static {\n    this.PREFIX = \":\";\n  }\n  constructor() {\n    super({ canAcceptInBackground: true });\n  }\n  provideWithoutTextEditor(picker) {\n    const label = localize(1322, \"Open a text editor first to go to a line.\");\n    picker.items = [{ label }];\n    picker.ariaLabel = label;\n    return Disposable.None;\n  }\n  provideWithTextEditor(context, picker, token) {\n    const editor2 = context.editor;\n    const disposables = new DisposableStore();\n    disposables.add(picker.onDidAccept((event) =\u003e {\n      const [item] = picker.selectedItems;\n      if (item) {\n        if (!this.isValidLineNumber(editor2, item.lineNumber)) {\n          return;\n        }\n        this.gotoLocation(context, { range: this.toRange(item.lineNumber, item.column), keyMods: picker.keyMods, preserveFocus: event.inBackground });\n        if (!event.inBackground) {\n          picker.hide();\n        }\n      }\n    }));\n    const updatePickerAndEditor = () =\u003e {\n      const position = this.parsePosition(editor2, picker.value.trim().substr(_AbstractGotoLineQuickAccessProvider.PREFIX.length));\n      const label = this.getPickLabel(editor2, position.lineNumber, position.column);\n      picker.items = [{\n        lineNumber: position.lineNumber,\n        column: position.column,\n        label\n      }];\n      picker.ariaLabel = label;\n      if (!this.isValidLineNumber(editor2, position.lineNumber)) {\n        this.clearDecorations(editor2);\n        return;\n      }\n      const range2 = this.toRange(position.lineNumber, position.column);\n      editor2.revealRangeInCenter(\n        range2,\n        0\n        /* ScrollType.Smooth */\n      );\n      this.addDecorations(editor2, range2);\n    };\n    updatePickerAndEditor();\n    disposables.add(picker.onDidChangeValue(() =\u003e updatePickerAndEditor()));\n    const codeEditor = getCodeEditor(editor2);\n    if (codeEditor) {\n      const options2 = codeEditor.getOptions();\n      const lineNumbers = options2.get(\n        76\n        /* EditorOption.lineNumbers */\n      );\n      if (lineNumbers.renderType === 2) {\n        codeEditor.updateOptions({ lineNumbers: \"on\" });\n        disposables.add(toDisposable(() =\u003e codeEditor.updateOptions({ lineNumbers: \"relative\" })));\n      }\n    }\n    return disposables;\n  }\n  toRange(lineNumber = 1, column = 1) {\n    return {\n      startLineNumber: lineNumber,\n      startColumn: column,\n      endLineNumber: lineNumber,\n      endColumn: column\n    };\n  }\n  parsePosition(editor2, value) {\n    const numbers = value.split(/,|:|#/).map((part) =\u003e parseInt(part, 10)).filter((part) =\u003e !isNaN(part));\n    const endLine = this.lineCount(editor2) + 1;\n    return {\n      lineNumber: numbers[0] \u003e 0 ? numbers[0] : endLine + numbers[0],\n      column: numbers[1]\n    };\n  }\n  getPickLabel(editor2, lineNumber, column) {\n    if (this.isValidLineNumber(editor2, lineNumber)) {\n      if (this.isValidColumn(editor2, lineNumber, column)) {\n        return localize(1323, \"Go to line {0} and character {1}.\", lineNumber, column);\n      }\n      return localize(1324, \"Go to line {0}.\", lineNumber);\n    }\n    const position = editor2.getPosition() || { lineNumber: 1, column: 1 };\n    const lineCount = this.lineCount(editor2);\n    if (lineCount \u003e 1) {\n      return localize(1325, \"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.\", position.lineNumber, position.column, lineCount);\n    }\n    return localize(1326, \"Current Line: {0}, Character: {1}. Type a line number to navigate to.\", position.lineNumber, position.column);\n  }\n  isValidLineNumber(editor2, lineNumber) {\n    if (!lineNumber || typeof lineNumber !== \"number\") {\n      return false;\n    }\n    return lineNumber \u003e 0 \u0026\u0026 lineNumber \u003c= this.lineCount(editor2);\n  }\n  isValidColumn(editor2, lineNumber, column) {\n    if (!column || typeof column !== \"number\") {\n      return false;\n    }\n    const model = this.getModel(editor2);\n    if (!model) {\n      return false;\n    }\n    const positionCandidate = { lineNumber, column };\n    return model.validatePosition(positionCandidate).equals(positionCandidate);\n  }\n  lineCount(editor2) {\n    return this.getModel(editor2)?.getLineCount() ?? 0;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js\ninit_platform2();\ninit_codeEditorService();\ninit_standaloneStrings();\ninit_event();\ninit_editorExtensions();\ninit_editorContextKeys();\nvar __decorate157 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param151 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneGotoLineQuickAccessProvider = class StandaloneGotoLineQuickAccessProvider2 extends AbstractGotoLineQuickAccessProvider {\n  constructor(editorService) {\n    super();\n    this.editorService = editorService;\n    this.onDidActiveTextEditorControlChange = Event.None;\n  }\n  get activeTextEditorControl() {\n    return this.editorService.getFocusedCodeEditor() ?? void 0;\n  }\n};\nStandaloneGotoLineQuickAccessProvider = __decorate157([\n  __param151(0, ICodeEditorService)\n], StandaloneGotoLineQuickAccessProvider);\nvar GotoLineAction = class _GotoLineAction extends EditorAction {\n  static {\n    this.ID = \"editor.action.gotoLine\";\n  }\n  constructor() {\n    super({\n      id: _GotoLineAction.ID,\n      label: GoToLineNLS.gotoLineActionLabel,\n      alias: \"Go to Line/Column...\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 2048 | 37,\n        mac: {\n          primary: 256 | 37\n          /* KeyCode.KeyG */\n        },\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      }\n    });\n  }\n  run(accessor) {\n    accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX);\n  }\n};\nregisterEditorAction(GotoLineAction);\nRegistry.as(Extensions10.Quickaccess).registerQuickAccessProvider({\n  ctor: StandaloneGotoLineQuickAccessProvider,\n  prefix: StandaloneGotoLineQuickAccessProvider.PREFIX,\n  helpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js\ninit_async();\ninit_cancellation();\ninit_codicons();\ninit_themables();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/fuzzyScorer.js\ninit_filters();\ninit_path();\ninit_platform();\ninit_strings();\nvar NO_SCORE2 = [void 0, []];\nfunction scoreFuzzy2(target, query, patternStart = 0, wordStart = 0) {\n  const preparedQuery = query;\n  if (preparedQuery.values \u0026\u0026 preparedQuery.values.length \u003e 1) {\n    return doScoreFuzzy2Multiple(target, preparedQuery.values, patternStart, wordStart);\n  }\n  return doScoreFuzzy2Single(target, query, patternStart, wordStart);\n}\nfunction doScoreFuzzy2Multiple(target, query, patternStart, wordStart) {\n  let totalScore = 0;\n  const totalMatches = [];\n  for (const queryPiece of query) {\n    const [score3, matches] = doScoreFuzzy2Single(target, queryPiece, patternStart, wordStart);\n    if (typeof score3 !== \"number\") {\n      return NO_SCORE2;\n    }\n    totalScore += score3;\n    totalMatches.push(...matches);\n  }\n  return [totalScore, normalizeMatches(totalMatches)];\n}\nfunction doScoreFuzzy2Single(target, query, patternStart, wordStart) {\n  const score3 = fuzzyScore(query.original, query.originalLowercase, patternStart, target, target.toLowerCase(), wordStart, { firstMatchCanBeWeak: true, boostFullMatch: true });\n  if (!score3) {\n    return NO_SCORE2;\n  }\n  return [score3[0], createMatches(score3)];\n}\nvar NO_ITEM_SCORE = Object.freeze({ score: 0 });\nfunction normalizeMatches(matches) {\n  const sortedMatches = matches.sort((matchA, matchB) =\u003e {\n    return matchA.start - matchB.start;\n  });\n  const normalizedMatches = [];\n  let currentMatch = void 0;\n  for (const match2 of sortedMatches) {\n    if (!currentMatch || !matchOverlaps(currentMatch, match2)) {\n      currentMatch = match2;\n      normalizedMatches.push(match2);\n    } else {\n      currentMatch.start = Math.min(currentMatch.start, match2.start);\n      currentMatch.end = Math.max(currentMatch.end, match2.end);\n    }\n  }\n  return normalizedMatches;\n}\nfunction matchOverlaps(matchA, matchB) {\n  if (matchA.end \u003c matchB.start) {\n    return false;\n  }\n  if (matchB.end \u003c matchA.start) {\n    return false;\n  }\n  return true;\n}\nfunction queryExpectsExactMatch(query) {\n  return query.startsWith('\"') \u0026\u0026 query.endsWith('\"');\n}\nvar MULTIPLE_QUERY_VALUES_SEPARATOR = \" \";\nfunction prepareQuery(original) {\n  if (typeof original !== \"string\") {\n    original = \"\";\n  }\n  const originalLowercase = original.toLowerCase();\n  const { pathNormalized, normalized, normalizedLowercase } = normalizeQuery(original);\n  const containsPathSeparator = pathNormalized.indexOf(sep) \u003e= 0;\n  const expectExactMatch = queryExpectsExactMatch(original);\n  let values = void 0;\n  const originalSplit = original.split(MULTIPLE_QUERY_VALUES_SEPARATOR);\n  if (originalSplit.length \u003e 1) {\n    for (const originalPiece of originalSplit) {\n      const expectExactMatchPiece = queryExpectsExactMatch(originalPiece);\n      const { pathNormalized: pathNormalizedPiece, normalized: normalizedPiece, normalizedLowercase: normalizedLowercasePiece } = normalizeQuery(originalPiece);\n      if (normalizedPiece) {\n        if (!values) {\n          values = [];\n        }\n        values.push({\n          original: originalPiece,\n          originalLowercase: originalPiece.toLowerCase(),\n          pathNormalized: pathNormalizedPiece,\n          normalized: normalizedPiece,\n          normalizedLowercase: normalizedLowercasePiece,\n          expectContiguousMatch: expectExactMatchPiece\n        });\n      }\n    }\n  }\n  return { original, originalLowercase, pathNormalized, normalized, normalizedLowercase, values, containsPathSeparator, expectContiguousMatch: expectExactMatch };\n}\nfunction normalizeQuery(original) {\n  let pathNormalized;\n  if (isWindows) {\n    pathNormalized = original.replace(/\\//g, sep);\n  } else {\n    pathNormalized = original.replace(/\\\\/g, sep);\n  }\n  const normalized = stripWildcards(pathNormalized).replace(/\\s|\"/g, \"\");\n  return {\n    pathNormalized,\n    normalized,\n    normalizedLowercase: normalized.toLowerCase()\n  };\n}\nfunction pieceToQuery(arg1) {\n  if (Array.isArray(arg1)) {\n    return prepareQuery(arg1.map((piece) =\u003e piece.original).join(MULTIPLE_QUERY_VALUES_SEPARATOR));\n  }\n  return prepareQuery(arg1.original);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js\ninit_lifecycle();\ninit_strings();\ninit_range();\ninit_languages();\ninit_outlineModel();\ninit_nls();\ninit_languageFeatures();\ninit_arraysFind();\nvar __decorate158 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param152 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar AbstractGotoSymbolQuickAccessProvider_1;\nvar AbstractGotoSymbolQuickAccessProvider = class AbstractGotoSymbolQuickAccessProvider2 extends AbstractEditorNavigationQuickAccessProvider {\n  static {\n    AbstractGotoSymbolQuickAccessProvider_1 = this;\n  }\n  static {\n    this.PREFIX = \"@\";\n  }\n  static {\n    this.SCOPE_PREFIX = \":\";\n  }\n  static {\n    this.PREFIX_BY_CATEGORY = `${this.PREFIX}${this.SCOPE_PREFIX}`;\n  }\n  constructor(_languageFeaturesService, _outlineModelService, options2 = /* @__PURE__ */ Object.create(null)) {\n    super(options2);\n    this._languageFeaturesService = _languageFeaturesService;\n    this._outlineModelService = _outlineModelService;\n    this.options = options2;\n    this.options.canAcceptInBackground = true;\n  }\n  provideWithoutTextEditor(picker) {\n    this.provideLabelPick(picker, localize(1327, \"To go to a symbol, first open a text editor with symbol information.\"));\n    return Disposable.None;\n  }\n  provideWithTextEditor(context, picker, token, runOptions) {\n    const editor2 = context.editor;\n    const model = this.getModel(editor2);\n    if (!model) {\n      return Disposable.None;\n    }\n    if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n      return this.doProvideWithEditorSymbols(context, model, picker, token, runOptions);\n    }\n    return this.doProvideWithoutEditorSymbols(context, model, picker, token);\n  }\n  doProvideWithoutEditorSymbols(context, model, picker, token) {\n    const disposables = new DisposableStore();\n    this.provideLabelPick(picker, localize(1328, \"The active text editor does not provide symbol information.\"));\n    (async () =\u003e {\n      const result = await this.waitForLanguageSymbolRegistry(model, disposables);\n      if (!result || token.isCancellationRequested) {\n        return;\n      }\n      disposables.add(this.doProvideWithEditorSymbols(context, model, picker, token));\n    })();\n    return disposables;\n  }\n  provideLabelPick(picker, label) {\n    picker.items = [{\n      label,\n      index: 0,\n      kind: 14\n      /* SymbolKind.String */\n    }];\n    picker.ariaLabel = label;\n  }\n  async waitForLanguageSymbolRegistry(model, disposables) {\n    if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n      return true;\n    }\n    const symbolProviderRegistryPromise = new DeferredPromise();\n    const symbolProviderListener = disposables.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(() =\u003e {\n      if (this._languageFeaturesService.documentSymbolProvider.has(model)) {\n        symbolProviderListener.dispose();\n        symbolProviderRegistryPromise.complete(true);\n      }\n    }));\n    disposables.add(toDisposable(() =\u003e symbolProviderRegistryPromise.complete(false)));\n    return symbolProviderRegistryPromise.p;\n  }\n  doProvideWithEditorSymbols(context, model, picker, token, runOptions) {\n    const editor2 = context.editor;\n    const disposables = new DisposableStore();\n    disposables.add(picker.onDidAccept((event) =\u003e {\n      const [item] = picker.selectedItems;\n      if (item \u0026\u0026 item.range) {\n        this.gotoLocation(context, { range: item.range.selection, keyMods: picker.keyMods, preserveFocus: event.inBackground });\n        runOptions?.handleAccept?.(item, event.inBackground);\n        if (!event.inBackground) {\n          picker.hide();\n        }\n      }\n    }));\n    disposables.add(picker.onDidTriggerItemButton(({ item }) =\u003e {\n      if (item \u0026\u0026 item.range) {\n        this.gotoLocation(context, { range: item.range.selection, keyMods: picker.keyMods, forceSideBySide: true });\n        picker.hide();\n      }\n    }));\n    const symbolsPromise = this.getDocumentSymbols(model, token);\n    const picksCts = disposables.add(new MutableDisposable());\n    const updatePickerItems = async (positionToEnclose) =\u003e {\n      picksCts?.value?.cancel();\n      picker.busy = false;\n      picksCts.value = new CancellationTokenSource();\n      picker.busy = true;\n      try {\n        const query = prepareQuery(picker.value.substr(AbstractGotoSymbolQuickAccessProvider_1.PREFIX.length).trim());\n        const items = await this.doGetSymbolPicks(symbolsPromise, query, void 0, picksCts.value.token, model);\n        if (token.isCancellationRequested) {\n          return;\n        }\n        if (items.length \u003e 0) {\n          picker.items = items;\n          if (positionToEnclose \u0026\u0026 query.original.length === 0) {\n            const candidate = findLast(items, (item) =\u003e Boolean(item.type !== \"separator\" \u0026\u0026 item.range \u0026\u0026 Range.containsPosition(item.range.decoration, positionToEnclose)));\n            if (candidate) {\n              picker.activeItems = [candidate];\n            }\n          }\n        } else {\n          if (query.original.length \u003e 0) {\n            this.provideLabelPick(picker, localize(1329, \"No matching editor symbols\"));\n          } else {\n            this.provideLabelPick(picker, localize(1330, \"No editor symbols\"));\n          }\n        }\n      } finally {\n        if (!token.isCancellationRequested) {\n          picker.busy = false;\n        }\n      }\n    };\n    disposables.add(picker.onDidChangeValue(() =\u003e updatePickerItems(void 0)));\n    updatePickerItems(editor2.getSelection()?.getPosition());\n    disposables.add(picker.onDidChangeActive(() =\u003e {\n      const [item] = picker.activeItems;\n      if (item \u0026\u0026 item.range) {\n        editor2.revealRangeInCenter(\n          item.range.selection,\n          0\n          /* ScrollType.Smooth */\n        );\n        this.addDecorations(editor2, item.range.decoration);\n      }\n    }));\n    return disposables;\n  }\n  async doGetSymbolPicks(symbolsPromise, query, options2, token, model) {\n    const symbols = await symbolsPromise;\n    if (token.isCancellationRequested) {\n      return [];\n    }\n    const filterBySymbolKind = query.original.indexOf(AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX) === 0;\n    const filterPos = filterBySymbolKind ? 1 : 0;\n    let symbolQuery;\n    let containerQuery;\n    if (query.values \u0026\u0026 query.values.length \u003e 1) {\n      symbolQuery = pieceToQuery(query.values[0]);\n      containerQuery = pieceToQuery(query.values.slice(1));\n    } else {\n      symbolQuery = query;\n    }\n    let buttons;\n    const openSideBySideDirection = this.options?.openSideBySideDirection?.();\n    if (openSideBySideDirection) {\n      buttons = [{\n        iconClass: openSideBySideDirection === \"right\" ? ThemeIcon.asClassName(Codicon.splitHorizontal) : ThemeIcon.asClassName(Codicon.splitVertical),\n        tooltip: openSideBySideDirection === \"right\" ? localize(1331, \"Open to the Side\") : localize(1332, \"Open to the Bottom\")\n      }];\n    }\n    const filteredSymbolPicks = [];\n    for (let index = 0; index \u003c symbols.length; index++) {\n      const symbol = symbols[index];\n      const symbolLabel = trim(symbol.name);\n      const symbolLabelWithIcon = `$(${SymbolKinds.toIcon(symbol.kind).id}) ${symbolLabel}`;\n      const symbolLabelIconOffset = symbolLabelWithIcon.length - symbolLabel.length;\n      let containerLabel = symbol.containerName;\n      if (options2?.extraContainerLabel) {\n        if (containerLabel) {\n          containerLabel = `${options2.extraContainerLabel} \\u2022 ${containerLabel}`;\n        } else {\n          containerLabel = options2.extraContainerLabel;\n        }\n      }\n      let symbolScore = void 0;\n      let symbolMatches = void 0;\n      let containerScore = void 0;\n      let containerMatches = void 0;\n      if (query.original.length \u003e filterPos) {\n        let skipContainerQuery = false;\n        if (symbolQuery !== query) {\n          [symbolScore, symbolMatches] = scoreFuzzy2(symbolLabelWithIcon, {\n            ...query,\n            values: void 0\n            /* disable multi-query support */\n          }, filterPos, symbolLabelIconOffset);\n          if (typeof symbolScore === \"number\") {\n            skipContainerQuery = true;\n          }\n        }\n        if (typeof symbolScore !== \"number\") {\n          [symbolScore, symbolMatches] = scoreFuzzy2(symbolLabelWithIcon, symbolQuery, filterPos, symbolLabelIconOffset);\n          if (typeof symbolScore !== \"number\") {\n            continue;\n          }\n        }\n        if (!skipContainerQuery \u0026\u0026 containerQuery) {\n          if (containerLabel \u0026\u0026 containerQuery.original.length \u003e 0) {\n            [containerScore, containerMatches] = scoreFuzzy2(containerLabel, containerQuery);\n          }\n          if (typeof containerScore !== \"number\") {\n            continue;\n          }\n          if (typeof symbolScore === \"number\") {\n            symbolScore += containerScore;\n          }\n        }\n      }\n      const deprecated = symbol.tags \u0026\u0026 symbol.tags.indexOf(\n        1\n        /* SymbolTag.Deprecated */\n      ) \u003e= 0;\n      filteredSymbolPicks.push({\n        index,\n        kind: symbol.kind,\n        score: symbolScore,\n        label: symbolLabelWithIcon,\n        ariaLabel: getAriaLabelForSymbol(symbol.name, symbol.kind),\n        description: containerLabel,\n        highlights: deprecated ? void 0 : {\n          label: symbolMatches,\n          description: containerMatches\n        },\n        range: {\n          selection: Range.collapseToStart(symbol.selectionRange),\n          decoration: symbol.range\n        },\n        uri: model.uri,\n        symbolName: symbolLabel,\n        strikethrough: deprecated,\n        buttons\n      });\n    }\n    const sortedFilteredSymbolPicks = filteredSymbolPicks.sort((symbolA, symbolB) =\u003e filterBySymbolKind ? this.compareByKindAndScore(symbolA, symbolB) : this.compareByScore(symbolA, symbolB));\n    let symbolPicks = [];\n    if (filterBySymbolKind) {\n      let updateLastSeparatorLabel = function() {\n        if (lastSeparator \u0026\u0026 typeof lastSymbolKind === \"number\" \u0026\u0026 lastSymbolKindCounter \u003e 0) {\n          lastSeparator.label = format(NLS_SYMBOL_KIND_CACHE[lastSymbolKind] || FALLBACK_NLS_SYMBOL_KIND, lastSymbolKindCounter);\n        }\n      };\n      let lastSymbolKind = void 0;\n      let lastSeparator = void 0;\n      let lastSymbolKindCounter = 0;\n      for (const symbolPick of sortedFilteredSymbolPicks) {\n        if (lastSymbolKind !== symbolPick.kind) {\n          updateLastSeparatorLabel();\n          lastSymbolKind = symbolPick.kind;\n          lastSymbolKindCounter = 1;\n          lastSeparator = { type: \"separator\" };\n          symbolPicks.push(lastSeparator);\n        } else {\n          lastSymbolKindCounter++;\n        }\n        symbolPicks.push(symbolPick);\n      }\n      updateLastSeparatorLabel();\n    } else if (sortedFilteredSymbolPicks.length \u003e 0) {\n      symbolPicks = [\n        { label: localize(1333, \"symbols ({0})\", filteredSymbolPicks.length), type: \"separator\" },\n        ...sortedFilteredSymbolPicks\n      ];\n    }\n    return symbolPicks;\n  }\n  compareByScore(symbolA, symbolB) {\n    if (typeof symbolA.score !== \"number\" \u0026\u0026 typeof symbolB.score === \"number\") {\n      return 1;\n    } else if (typeof symbolA.score === \"number\" \u0026\u0026 typeof symbolB.score !== \"number\") {\n      return -1;\n    }\n    if (typeof symbolA.score === \"number\" \u0026\u0026 typeof symbolB.score === \"number\") {\n      if (symbolA.score \u003e symbolB.score) {\n        return -1;\n      } else if (symbolA.score \u003c symbolB.score) {\n        return 1;\n      }\n    }\n    if (symbolA.index \u003c symbolB.index) {\n      return -1;\n    } else if (symbolA.index \u003e symbolB.index) {\n      return 1;\n    }\n    return 0;\n  }\n  compareByKindAndScore(symbolA, symbolB) {\n    const kindA = NLS_SYMBOL_KIND_CACHE[symbolA.kind] || FALLBACK_NLS_SYMBOL_KIND;\n    const kindB = NLS_SYMBOL_KIND_CACHE[symbolB.kind] || FALLBACK_NLS_SYMBOL_KIND;\n    const result = kindA.localeCompare(kindB);\n    if (result === 0) {\n      return this.compareByScore(symbolA, symbolB);\n    }\n    return result;\n  }\n  async getDocumentSymbols(document2, token) {\n    const model = await this._outlineModelService.getOrCreate(document2, token);\n    return token.isCancellationRequested ? [] : model.asListOfDocumentSymbols();\n  }\n};\nAbstractGotoSymbolQuickAccessProvider = AbstractGotoSymbolQuickAccessProvider_1 = __decorate158([\n  __param152(0, ILanguageFeaturesService),\n  __param152(1, IOutlineModelService)\n], AbstractGotoSymbolQuickAccessProvider);\nvar FALLBACK_NLS_SYMBOL_KIND = localize(1334, \"properties ({0})\");\nvar NLS_SYMBOL_KIND_CACHE = {\n  [\n    5\n    /* SymbolKind.Method */\n  ]: localize(1335, \"methods ({0})\"),\n  [\n    11\n    /* SymbolKind.Function */\n  ]: localize(1336, \"functions ({0})\"),\n  [\n    8\n    /* SymbolKind.Constructor */\n  ]: localize(1337, \"constructors ({0})\"),\n  [\n    12\n    /* SymbolKind.Variable */\n  ]: localize(1338, \"variables ({0})\"),\n  [\n    4\n    /* SymbolKind.Class */\n  ]: localize(1339, \"classes ({0})\"),\n  [\n    22\n    /* SymbolKind.Struct */\n  ]: localize(1340, \"structs ({0})\"),\n  [\n    23\n    /* SymbolKind.Event */\n  ]: localize(1341, \"events ({0})\"),\n  [\n    24\n    /* SymbolKind.Operator */\n  ]: localize(1342, \"operators ({0})\"),\n  [\n    10\n    /* SymbolKind.Interface */\n  ]: localize(1343, \"interfaces ({0})\"),\n  [\n    2\n    /* SymbolKind.Namespace */\n  ]: localize(1344, \"namespaces ({0})\"),\n  [\n    3\n    /* SymbolKind.Package */\n  ]: localize(1345, \"packages ({0})\"),\n  [\n    25\n    /* SymbolKind.TypeParameter */\n  ]: localize(1346, \"type parameters ({0})\"),\n  [\n    1\n    /* SymbolKind.Module */\n  ]: localize(1347, \"modules ({0})\"),\n  [\n    6\n    /* SymbolKind.Property */\n  ]: localize(1348, \"properties ({0})\"),\n  [\n    9\n    /* SymbolKind.Enum */\n  ]: localize(1349, \"enumerations ({0})\"),\n  [\n    21\n    /* SymbolKind.EnumMember */\n  ]: localize(1350, \"enumeration members ({0})\"),\n  [\n    14\n    /* SymbolKind.String */\n  ]: localize(1351, \"strings ({0})\"),\n  [\n    0\n    /* SymbolKind.File */\n  ]: localize(1352, \"files ({0})\"),\n  [\n    17\n    /* SymbolKind.Array */\n  ]: localize(1353, \"arrays ({0})\"),\n  [\n    15\n    /* SymbolKind.Number */\n  ]: localize(1354, \"numbers ({0})\"),\n  [\n    16\n    /* SymbolKind.Boolean */\n  ]: localize(1355, \"booleans ({0})\"),\n  [\n    18\n    /* SymbolKind.Object */\n  ]: localize(1356, \"objects ({0})\"),\n  [\n    19\n    /* SymbolKind.Key */\n  ]: localize(1357, \"keys ({0})\"),\n  [\n    7\n    /* SymbolKind.Field */\n  ]: localize(1358, \"fields ({0})\"),\n  [\n    13\n    /* SymbolKind.Constant */\n  ]: localize(1359, \"constants ({0})\")\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js\ninit_platform2();\ninit_codeEditorService();\ninit_standaloneStrings();\ninit_event();\ninit_editorExtensions();\ninit_editorContextKeys();\ninit_outlineModel();\ninit_languageFeatures();\nvar __decorate159 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param153 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneGotoSymbolQuickAccessProvider = class StandaloneGotoSymbolQuickAccessProvider2 extends AbstractGotoSymbolQuickAccessProvider {\n  constructor(editorService, languageFeaturesService, outlineModelService) {\n    super(languageFeaturesService, outlineModelService);\n    this.editorService = editorService;\n    this.onDidActiveTextEditorControlChange = Event.None;\n  }\n  get activeTextEditorControl() {\n    return this.editorService.getFocusedCodeEditor() ?? void 0;\n  }\n};\nStandaloneGotoSymbolQuickAccessProvider = __decorate159([\n  __param153(0, ICodeEditorService),\n  __param153(1, ILanguageFeaturesService),\n  __param153(2, IOutlineModelService)\n], StandaloneGotoSymbolQuickAccessProvider);\nvar GotoSymbolAction = class _GotoSymbolAction extends EditorAction {\n  static {\n    this.ID = \"editor.action.quickOutline\";\n  }\n  constructor() {\n    super({\n      id: _GotoSymbolAction.ID,\n      label: QuickOutlineNLS.quickOutlineActionLabel,\n      alias: \"Go to Symbol...\",\n      precondition: EditorContextKeys.hasDocumentSymbolProvider,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 2048 | 1024 | 45,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      contextMenuOpts: {\n        group: \"navigation\",\n        order: 3\n      }\n    });\n  }\n  run(accessor) {\n    accessor.get(IQuickInputService).quickAccess.show(AbstractGotoSymbolQuickAccessProvider.PREFIX, { itemActivation: ItemActivation.NONE });\n  }\n};\nregisterEditorAction(GotoSymbolAction);\nRegistry.as(Extensions10.Quickaccess).registerQuickAccessProvider({\n  ctor: StandaloneGotoSymbolQuickAccessProvider,\n  prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX,\n  helpEntries: [\n    { description: QuickOutlineNLS.quickOutlineActionLabel, prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX, commandId: GotoSymbolAction.ID },\n    { description: QuickOutlineNLS.quickOutlineByCategoryActionLabel, prefix: AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY }\n  ]\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js\ninit_platform2();\ninit_standaloneStrings();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js\ninit_iconLabels();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/commandsQuickAccess.js\ninit_errors();\ninit_filters();\ninit_functional();\ninit_lifecycle();\ninit_map();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/tfIdf.js\nfunction countMapFrom(values) {\n  const map = /* @__PURE__ */ new Map();\n  for (const value of values) {\n    map.set(value, (map.get(value) ?? 0) + 1);\n  }\n  return map;\n}\nvar TfIdfCalculator = class _TfIdfCalculator {\n  constructor() {\n    this.chunkCount = 0;\n    this.chunkOccurrences = /* @__PURE__ */ new Map();\n    this.documents = /* @__PURE__ */ new Map();\n  }\n  calculateScores(query, token) {\n    const embedding = this.computeEmbedding(query);\n    const idfCache = /* @__PURE__ */ new Map();\n    const scores = [];\n    for (const [key, doc] of this.documents) {\n      if (token.isCancellationRequested) {\n        return [];\n      }\n      for (const chunk of doc.chunks) {\n        const score3 = this.computeSimilarityScore(chunk, embedding, idfCache);\n        if (score3 \u003e 0) {\n          scores.push({ key, score: score3 });\n        }\n      }\n    }\n    return scores;\n  }\n  /**\n   * Count how many times each term (word) appears in a string.\n   */\n  static termFrequencies(input) {\n    return countMapFrom(_TfIdfCalculator.splitTerms(input));\n  }\n  /**\n   * Break a string into terms (words).\n   */\n  static *splitTerms(input) {\n    const normalize2 = (word) =\u003e word.toLowerCase();\n    for (const [word] of input.matchAll(/\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b/gu)) {\n      yield normalize2(word);\n      const camelParts = word.replace(/([a-z])([A-Z])/g, \"$1 $2\").split(/\\s+/g);\n      if (camelParts.length \u003e 1) {\n        for (const part of camelParts) {\n          if (part.length \u003e 2 \u0026\u0026 /\\p{Letter}{3,}/gu.test(part)) {\n            yield normalize2(part);\n          }\n        }\n      }\n    }\n  }\n  updateDocuments(documents) {\n    for (const { key } of documents) {\n      this.deleteDocument(key);\n    }\n    for (const doc of documents) {\n      const chunks = [];\n      for (const text2 of doc.textChunks) {\n        const tf = _TfIdfCalculator.termFrequencies(text2);\n        for (const term of tf.keys()) {\n          this.chunkOccurrences.set(term, (this.chunkOccurrences.get(term) ?? 0) + 1);\n        }\n        chunks.push({ text: text2, tf });\n      }\n      this.chunkCount += chunks.length;\n      this.documents.set(doc.key, { chunks });\n    }\n    return this;\n  }\n  deleteDocument(key) {\n    const doc = this.documents.get(key);\n    if (!doc) {\n      return;\n    }\n    this.documents.delete(key);\n    this.chunkCount -= doc.chunks.length;\n    for (const chunk of doc.chunks) {\n      for (const term of chunk.tf.keys()) {\n        const currentOccurrences = this.chunkOccurrences.get(term);\n        if (typeof currentOccurrences === \"number\") {\n          const newOccurrences = currentOccurrences - 1;\n          if (newOccurrences \u003c= 0) {\n            this.chunkOccurrences.delete(term);\n          } else {\n            this.chunkOccurrences.set(term, newOccurrences);\n          }\n        }\n      }\n    }\n  }\n  computeSimilarityScore(chunk, queryEmbedding, idfCache) {\n    let sum2 = 0;\n    for (const [term, termTfidf] of Object.entries(queryEmbedding)) {\n      const chunkTf = chunk.tf.get(term);\n      if (!chunkTf) {\n        continue;\n      }\n      let chunkIdf = idfCache.get(term);\n      if (typeof chunkIdf !== \"number\") {\n        chunkIdf = this.computeIdf(term);\n        idfCache.set(term, chunkIdf);\n      }\n      const chunkTfidf = chunkTf * chunkIdf;\n      sum2 += chunkTfidf * termTfidf;\n    }\n    return sum2;\n  }\n  computeEmbedding(input) {\n    const tf = _TfIdfCalculator.termFrequencies(input);\n    return this.computeTfidf(tf);\n  }\n  computeIdf(term) {\n    const chunkOccurrences = this.chunkOccurrences.get(term) ?? 0;\n    return chunkOccurrences \u003e 0 ? Math.log((this.chunkCount + 1) / chunkOccurrences) : 0;\n  }\n  computeTfidf(termFrequencies) {\n    const embedding = /* @__PURE__ */ Object.create(null);\n    for (const [word, occurrences] of termFrequencies) {\n      const idf = this.computeIdf(word);\n      if (idf \u003e 0) {\n        embedding[word] = occurrences * idf;\n      }\n    }\n    return embedding;\n  }\n};\nfunction normalizeTfIdfScores(scores) {\n  const result = scores.slice(0);\n  result.sort((a, b) =\u003e b.score - a.score);\n  const max = result[0]?.score ?? 0;\n  if (max \u003e 0) {\n    for (const score3 of result) {\n      score3.score /= max;\n    }\n  }\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/commandsQuickAccess.js\ninit_nls();\ninit_commands();\ninit_configuration();\ninit_instantiation();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/pickerQuickAccess.js\ninit_async();\ninit_cancellation();\ninit_lifecycle();\ninit_types();\nvar TriggerAction;\n(function(TriggerAction2) {\n  TriggerAction2[TriggerAction2[\"NO_ACTION\"] = 0] = \"NO_ACTION\";\n  TriggerAction2[TriggerAction2[\"CLOSE_PICKER\"] = 1] = \"CLOSE_PICKER\";\n  TriggerAction2[TriggerAction2[\"REFRESH_PICKER\"] = 2] = \"REFRESH_PICKER\";\n  TriggerAction2[TriggerAction2[\"REMOVE_ITEM\"] = 3] = \"REMOVE_ITEM\";\n})(TriggerAction || (TriggerAction = {}));\nfunction isPicksWithActive(obj) {\n  const candidate = obj;\n  return Array.isArray(candidate.items);\n}\nfunction isFastAndSlowPicks(obj) {\n  const candidate = obj;\n  return !!candidate.picks \u0026\u0026 candidate.additionalPicks instanceof Promise;\n}\nvar PickerQuickAccessProvider = class extends Disposable {\n  constructor(prefix, options2) {\n    super();\n    this.prefix = prefix;\n    this.options = options2;\n  }\n  provide(picker, token, runOptions) {\n    const disposables = new DisposableStore();\n    picker.canAcceptInBackground = !!this.options?.canAcceptInBackground;\n    picker.matchOnLabel = picker.matchOnDescription = picker.matchOnDetail = picker.sortByLabel = false;\n    let picksCts = void 0;\n    const picksDisposable = disposables.add(new MutableDisposable());\n    const updatePickerItems = async () =\u003e {\n      picksCts?.dispose(true);\n      picker.busy = false;\n      const picksDisposables = picksDisposable.value = new DisposableStore();\n      picksCts = picksDisposables.add(new CancellationTokenSource(token));\n      const picksToken = picksCts.token;\n      let picksFilter = picker.value.substring(this.prefix.length);\n      if (!this.options?.shouldSkipTrimPickFilter) {\n        picksFilter = picksFilter.trim();\n      }\n      const providedPicks = this._getPicks(picksFilter, picksDisposables, picksToken, runOptions);\n      const applyPicks = (picks, skipEmpty) =\u003e {\n        let items;\n        let activeItem = void 0;\n        if (isPicksWithActive(picks)) {\n          items = picks.items;\n          activeItem = picks.active;\n        } else {\n          items = picks;\n        }\n        if (items.length === 0) {\n          if (skipEmpty) {\n            return false;\n          }\n          if ((picksFilter.length \u003e 0 || picker.hideInput) \u0026\u0026 this.options?.noResultsPick) {\n            if (isFunction(this.options.noResultsPick)) {\n              items = [this.options.noResultsPick(picksFilter)];\n            } else {\n              items = [this.options.noResultsPick];\n            }\n          }\n        }\n        picker.items = items;\n        if (activeItem) {\n          picker.activeItems = [activeItem];\n        }\n        return true;\n      };\n      const applyFastAndSlowPicks = async (fastAndSlowPicks) =\u003e {\n        let fastPicksApplied = false;\n        let slowPicksApplied = false;\n        await Promise.all([\n          // Fast Picks: if `mergeDelay` is configured, in order to reduce\n          // amount of flicker, we race against the slow picks over some delay\n          // and then set the fast picks.\n          // If the slow picks are faster, we reduce the flicker by only\n          // setting the items once.\n          (async () =\u003e {\n            if (typeof fastAndSlowPicks.mergeDelay === \"number\") {\n              await timeout(fastAndSlowPicks.mergeDelay);\n              if (picksToken.isCancellationRequested) {\n                return;\n              }\n            }\n            if (!slowPicksApplied) {\n              fastPicksApplied = applyPicks(\n                fastAndSlowPicks.picks,\n                true\n                /* skip over empty to reduce flicker */\n              );\n            }\n          })(),\n          // Slow Picks: we await the slow picks and then set them at\n          // once together with the fast picks, but only if we actually\n          // have additional results.\n          (async () =\u003e {\n            picker.busy = true;\n            try {\n              const awaitedAdditionalPicks = await fastAndSlowPicks.additionalPicks;\n              if (picksToken.isCancellationRequested) {\n                return;\n              }\n              let picks;\n              let activePick = void 0;\n              if (isPicksWithActive(fastAndSlowPicks.picks)) {\n                picks = fastAndSlowPicks.picks.items;\n                activePick = fastAndSlowPicks.picks.active;\n              } else {\n                picks = fastAndSlowPicks.picks;\n              }\n              let additionalPicks;\n              let additionalActivePick = void 0;\n              if (isPicksWithActive(awaitedAdditionalPicks)) {\n                additionalPicks = awaitedAdditionalPicks.items;\n                additionalActivePick = awaitedAdditionalPicks.active;\n              } else {\n                additionalPicks = awaitedAdditionalPicks;\n              }\n              if (additionalPicks.length \u003e 0 || !fastPicksApplied) {\n                let fallbackActivePick = void 0;\n                if (!activePick \u0026\u0026 !additionalActivePick) {\n                  const fallbackActivePickCandidate = picker.activeItems[0];\n                  if (fallbackActivePickCandidate \u0026\u0026 picks.indexOf(fallbackActivePickCandidate) !== -1) {\n                    fallbackActivePick = fallbackActivePickCandidate;\n                  }\n                }\n                applyPicks({\n                  items: [...picks, ...additionalPicks],\n                  active: activePick || additionalActivePick || fallbackActivePick\n                });\n              }\n            } finally {\n              if (!picksToken.isCancellationRequested) {\n                picker.busy = false;\n              }\n              slowPicksApplied = true;\n            }\n          })()\n        ]);\n      };\n      if (providedPicks === null) {\n      } else if (isFastAndSlowPicks(providedPicks)) {\n        await applyFastAndSlowPicks(providedPicks);\n      } else if (!(providedPicks instanceof Promise)) {\n        applyPicks(providedPicks);\n      } else {\n        picker.busy = true;\n        try {\n          const awaitedPicks = await providedPicks;\n          if (picksToken.isCancellationRequested) {\n            return;\n          }\n          if (isFastAndSlowPicks(awaitedPicks)) {\n            await applyFastAndSlowPicks(awaitedPicks);\n          } else {\n            applyPicks(awaitedPicks);\n          }\n        } finally {\n          if (!picksToken.isCancellationRequested) {\n            picker.busy = false;\n          }\n        }\n      }\n    };\n    disposables.add(picker.onDidChangeValue(() =\u003e updatePickerItems()));\n    updatePickerItems();\n    disposables.add(picker.onDidAccept((event) =\u003e {\n      if (runOptions?.handleAccept) {\n        if (!event.inBackground) {\n          picker.hide();\n        }\n        runOptions.handleAccept?.(picker.activeItems[0], event.inBackground);\n        return;\n      }\n      const [item] = picker.selectedItems;\n      if (typeof item?.accept === \"function\") {\n        if (!event.inBackground) {\n          picker.hide();\n        }\n        item.accept(picker.keyMods, event);\n      }\n    }));\n    const buttonTrigger = async (button, item) =\u003e {\n      if (typeof item.trigger !== \"function\") {\n        return;\n      }\n      const buttonIndex = item.buttons?.indexOf(button) ?? -1;\n      if (buttonIndex \u003e= 0) {\n        const result = item.trigger(buttonIndex, picker.keyMods);\n        const action = typeof result === \"number\" ? result : await result;\n        if (token.isCancellationRequested) {\n          return;\n        }\n        switch (action) {\n          case TriggerAction.NO_ACTION:\n            break;\n          case TriggerAction.CLOSE_PICKER:\n            picker.hide();\n            break;\n          case TriggerAction.REFRESH_PICKER:\n            updatePickerItems();\n            break;\n          case TriggerAction.REMOVE_ITEM: {\n            const index = picker.items.indexOf(item);\n            if (index !== -1) {\n              const items = picker.items.slice();\n              const removed = items.splice(index, 1);\n              const activeItems = picker.activeItems.filter((activeItem) =\u003e activeItem !== removed[0]);\n              const keepScrollPositionBefore = picker.keepScrollPosition;\n              picker.keepScrollPosition = true;\n              picker.items = items;\n              if (activeItems) {\n                picker.activeItems = activeItems;\n              }\n              picker.keepScrollPosition = keepScrollPositionBefore;\n            }\n            break;\n          }\n        }\n      }\n    };\n    disposables.add(picker.onDidTriggerItemButton(({ button, item }) =\u003e buttonTrigger(button, item)));\n    disposables.add(picker.onDidTriggerSeparatorButton(({ button, separator: separator2 }) =\u003e buttonTrigger(button, separator2)));\n    return disposables;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/commandsQuickAccess.js\ninit_telemetry();\nvar __decorate160 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param154 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar AbstractCommandsQuickAccessProvider_1;\nvar CommandsHistory_1;\nvar AbstractCommandsQuickAccessProvider = class AbstractCommandsQuickAccessProvider2 extends PickerQuickAccessProvider {\n  static {\n    AbstractCommandsQuickAccessProvider_1 = this;\n  }\n  static {\n    this.PREFIX = \"\u003e\";\n  }\n  static {\n    this.TFIDF_THRESHOLD = 0.5;\n  }\n  static {\n    this.TFIDF_MAX_RESULTS = 5;\n  }\n  static {\n    this.WORD_FILTER = or(matchesPrefix, matchesWords, matchesContiguousSubString);\n  }\n  constructor(options2, instantiationService, keybindingService, commandService, telemetryService, dialogService) {\n    super(AbstractCommandsQuickAccessProvider_1.PREFIX, options2);\n    this.keybindingService = keybindingService;\n    this.commandService = commandService;\n    this.telemetryService = telemetryService;\n    this.dialogService = dialogService;\n    this.commandsHistory = this._register(instantiationService.createInstance(CommandsHistory));\n    this.options = options2;\n  }\n  async _getPicks(filter, _disposables, token, runOptions) {\n    const allCommandPicks = await this.getCommandPicks(token);\n    if (token.isCancellationRequested) {\n      return [];\n    }\n    const runTfidf = createSingleCallFunction(() =\u003e {\n      const tfidf = new TfIdfCalculator();\n      tfidf.updateDocuments(allCommandPicks.map((commandPick) =\u003e ({\n        key: commandPick.commandId,\n        textChunks: [this.getTfIdfChunk(commandPick)]\n      })));\n      const result = tfidf.calculateScores(filter, token);\n      return normalizeTfIdfScores(result).filter((score3) =\u003e score3.score \u003e AbstractCommandsQuickAccessProvider_1.TFIDF_THRESHOLD).slice(0, AbstractCommandsQuickAccessProvider_1.TFIDF_MAX_RESULTS);\n    });\n    const filteredCommandPicks = [];\n    for (const commandPick of allCommandPicks) {\n      const labelHighlights = AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter, commandPick.label) ?? void 0;\n      const aliasHighlights = commandPick.commandAlias ? AbstractCommandsQuickAccessProvider_1.WORD_FILTER(filter, commandPick.commandAlias) ?? void 0 : void 0;\n      if (labelHighlights || aliasHighlights) {\n        commandPick.highlights = {\n          label: labelHighlights,\n          detail: this.options.showAlias ? aliasHighlights : void 0\n        };\n        filteredCommandPicks.push(commandPick);\n      } else if (filter === commandPick.commandId) {\n        filteredCommandPicks.push(commandPick);\n      } else if (filter.length \u003e= 3) {\n        const tfidf = runTfidf();\n        if (token.isCancellationRequested) {\n          return [];\n        }\n        const tfidfScore = tfidf.find((score3) =\u003e score3.key === commandPick.commandId);\n        if (tfidfScore) {\n          commandPick.tfIdfScore = tfidfScore.score;\n          filteredCommandPicks.push(commandPick);\n        }\n      }\n    }\n    const mapLabelToCommand = /* @__PURE__ */ new Map();\n    for (const commandPick of filteredCommandPicks) {\n      const existingCommandForLabel = mapLabelToCommand.get(commandPick.label);\n      if (existingCommandForLabel) {\n        commandPick.description = commandPick.commandId;\n        existingCommandForLabel.description = existingCommandForLabel.commandId;\n      } else {\n        mapLabelToCommand.set(commandPick.label, commandPick);\n      }\n    }\n    filteredCommandPicks.sort((commandPickA, commandPickB) =\u003e {\n      if (commandPickA.tfIdfScore \u0026\u0026 commandPickB.tfIdfScore) {\n        if (commandPickA.tfIdfScore === commandPickB.tfIdfScore) {\n          return commandPickA.label.localeCompare(commandPickB.label);\n        }\n        return commandPickB.tfIdfScore - commandPickA.tfIdfScore;\n      } else if (commandPickA.tfIdfScore) {\n        return 1;\n      } else if (commandPickB.tfIdfScore) {\n        return -1;\n      }\n      const commandACounter = this.commandsHistory.peek(commandPickA.commandId);\n      const commandBCounter = this.commandsHistory.peek(commandPickB.commandId);\n      if (commandACounter \u0026\u0026 commandBCounter) {\n        return commandACounter \u003e commandBCounter ? -1 : 1;\n      }\n      if (commandACounter) {\n        return -1;\n      }\n      if (commandBCounter) {\n        return 1;\n      }\n      if (this.options.suggestedCommandIds) {\n        const commandASuggestion = this.options.suggestedCommandIds.has(commandPickA.commandId);\n        const commandBSuggestion = this.options.suggestedCommandIds.has(commandPickB.commandId);\n        if (commandASuggestion \u0026\u0026 commandBSuggestion) {\n          return 0;\n        }\n        if (commandASuggestion) {\n          return -1;\n        }\n        if (commandBSuggestion) {\n          return 1;\n        }\n      }\n      return commandPickA.label.localeCompare(commandPickB.label);\n    });\n    const commandPicks = [];\n    let addOtherSeparator = false;\n    let addSuggestedSeparator = true;\n    let addCommonlyUsedSeparator = !!this.options.suggestedCommandIds;\n    for (let i2 = 0; i2 \u003c filteredCommandPicks.length; i2++) {\n      const commandPick = filteredCommandPicks[i2];\n      if (i2 === 0 \u0026\u0026 this.commandsHistory.peek(commandPick.commandId)) {\n        commandPicks.push({ type: \"separator\", label: localize(1721, \"recently used\") });\n        addOtherSeparator = true;\n      }\n      if (addSuggestedSeparator \u0026\u0026 commandPick.tfIdfScore !== void 0) {\n        commandPicks.push({ type: \"separator\", label: localize(1722, \"similar commands\") });\n        addSuggestedSeparator = false;\n      }\n      if (addCommonlyUsedSeparator \u0026\u0026 commandPick.tfIdfScore === void 0 \u0026\u0026 !this.commandsHistory.peek(commandPick.commandId) \u0026\u0026 this.options.suggestedCommandIds?.has(commandPick.commandId)) {\n        commandPicks.push({ type: \"separator\", label: localize(1723, \"commonly used\") });\n        addOtherSeparator = true;\n        addCommonlyUsedSeparator = false;\n      }\n      if (addOtherSeparator \u0026\u0026 commandPick.tfIdfScore === void 0 \u0026\u0026 !this.commandsHistory.peek(commandPick.commandId) \u0026\u0026 !this.options.suggestedCommandIds?.has(commandPick.commandId)) {\n        commandPicks.push({ type: \"separator\", label: localize(1724, \"other commands\") });\n        addOtherSeparator = false;\n      }\n      commandPicks.push(this.toCommandPick(commandPick, runOptions));\n    }\n    if (!this.hasAdditionalCommandPicks(filter, token)) {\n      return commandPicks;\n    }\n    return {\n      picks: commandPicks,\n      additionalPicks: (async () =\u003e {\n        const additionalCommandPicks = await this.getAdditionalCommandPicks(allCommandPicks, filteredCommandPicks, filter, token);\n        if (token.isCancellationRequested) {\n          return [];\n        }\n        const commandPicks2 = additionalCommandPicks.map((commandPick) =\u003e this.toCommandPick(commandPick, runOptions));\n        if (addSuggestedSeparator \u0026\u0026 commandPicks2[0]?.type !== \"separator\") {\n          commandPicks2.unshift({ type: \"separator\", label: localize(1725, \"similar commands\") });\n        }\n        return commandPicks2;\n      })()\n    };\n  }\n  toCommandPick(commandPick, runOptions) {\n    if (commandPick.type === \"separator\") {\n      return commandPick;\n    }\n    const keybinding = this.keybindingService.lookupKeybinding(commandPick.commandId);\n    const ariaLabel = keybinding ? localize(1726, \"{0}, {1}\", commandPick.label, keybinding.getAriaLabel()) : commandPick.label;\n    return {\n      ...commandPick,\n      ariaLabel,\n      detail: this.options.showAlias \u0026\u0026 commandPick.commandAlias !== commandPick.label ? commandPick.commandAlias : void 0,\n      keybinding,\n      accept: async () =\u003e {\n        this.commandsHistory.push(commandPick.commandId);\n        this.telemetryService.publicLog2(\"workbenchActionExecuted\", {\n          id: commandPick.commandId,\n          from: runOptions?.from ?? \"quick open\"\n        });\n        try {\n          commandPick.args?.length ? await this.commandService.executeCommand(commandPick.commandId, ...commandPick.args) : await this.commandService.executeCommand(commandPick.commandId);\n        } catch (error) {\n          if (!isCancellationError(error)) {\n            this.dialogService.error(localize(1727, \"Command '{0}' resulted in an error\", commandPick.label), toErrorMessage(error));\n          }\n        }\n      }\n    };\n  }\n  // TF-IDF string to be indexed\n  getTfIdfChunk({ label, commandAlias, commandDescription }) {\n    let chunk = label;\n    if (commandAlias \u0026\u0026 commandAlias !== label) {\n      chunk += ` - ${commandAlias}`;\n    }\n    if (commandDescription \u0026\u0026 commandDescription.value !== label) {\n      chunk += ` - ${commandDescription.value === commandDescription.original ? commandDescription.value : `${commandDescription.value} (${commandDescription.original})`}`;\n    }\n    return chunk;\n  }\n};\nAbstractCommandsQuickAccessProvider = AbstractCommandsQuickAccessProvider_1 = __decorate160([\n  __param154(1, IInstantiationService),\n  __param154(2, IKeybindingService),\n  __param154(3, ICommandService),\n  __param154(4, ITelemetryService),\n  __param154(5, IDialogService)\n], AbstractCommandsQuickAccessProvider);\nvar CommandsHistory = class CommandsHistory2 extends Disposable {\n  static {\n    CommandsHistory_1 = this;\n  }\n  static {\n    this.DEFAULT_COMMANDS_HISTORY_LENGTH = 50;\n  }\n  static {\n    this.PREF_KEY_CACHE = \"commandPalette.mru.cache\";\n  }\n  static {\n    this.PREF_KEY_COUNTER = \"commandPalette.mru.counter\";\n  }\n  static {\n    this.counter = 1;\n  }\n  static {\n    this.hasChanges = false;\n  }\n  constructor(storageService, configurationService, logService) {\n    super();\n    this.storageService = {\n      get: (key, _scope, defaultValue) =\u003e localStorage.getItem(\"monaco:\" + key) ?? defaultValue,\n      getNumber: (key, _scope, defaultValue) =\u003e Number(localStorage.getItem(\"monaco:\" + key) ?? defaultValue) || defaultValue,\n      store: (key, value) =\u003e localStorage.setItem(\"monaco:\" + key, String(value)),\n      onWillSaveState: (callback) =\u003e {\n        window.addEventListener(\"beforeunload\", () =\u003e {\n          callback({ reason: WillSaveStateReason.SHUTDOWN });\n        });\n      }\n    };\n    this.configurationService = configurationService;\n    this.logService = logService;\n    this.configuredCommandsHistoryLength = 0;\n    this.updateConfiguration();\n    this.load();\n    this.registerListeners();\n  }\n  registerListeners() {\n    this._register(this.configurationService.onDidChangeConfiguration((e) =\u003e this.updateConfiguration(e)));\n    this._register(this.storageService.onWillSaveState((e) =\u003e {\n      if (e.reason === WillSaveStateReason.SHUTDOWN) {\n        this.saveState();\n      }\n    }));\n  }\n  updateConfiguration(e) {\n    if (e \u0026\u0026 !e.affectsConfiguration(\"workbench.commandPalette.history\")) {\n      return;\n    }\n    this.configuredCommandsHistoryLength = CommandsHistory_1.getConfiguredCommandHistoryLength(this.configurationService);\n    if (CommandsHistory_1.cache \u0026\u0026 CommandsHistory_1.cache.limit !== this.configuredCommandsHistoryLength) {\n      CommandsHistory_1.cache.limit = this.configuredCommandsHistoryLength;\n      CommandsHistory_1.hasChanges = true;\n    }\n  }\n  load() {\n    const raw = this.storageService.get(\n      CommandsHistory_1.PREF_KEY_CACHE,\n      0\n      /* StorageScope.PROFILE */\n    );\n    let serializedCache;\n    if (raw) {\n      try {\n        serializedCache = JSON.parse(raw);\n      } catch (error) {\n        this.logService.error(`[CommandsHistory] invalid data: ${error}`);\n      }\n    }\n    const cache = CommandsHistory_1.cache = new LRUCache(this.configuredCommandsHistoryLength, 1);\n    if (serializedCache) {\n      let entries2;\n      if (serializedCache.usesLRU) {\n        entries2 = serializedCache.entries;\n      } else {\n        entries2 = serializedCache.entries.sort((a, b) =\u003e a.value - b.value);\n      }\n      entries2.forEach((entry) =\u003e cache.set(entry.key, entry.value));\n    }\n    CommandsHistory_1.counter = this.storageService.getNumber(CommandsHistory_1.PREF_KEY_COUNTER, 0, CommandsHistory_1.counter);\n  }\n  push(commandId) {\n    if (!CommandsHistory_1.cache) {\n      return;\n    }\n    CommandsHistory_1.cache.set(commandId, CommandsHistory_1.counter++);\n    CommandsHistory_1.hasChanges = true;\n  }\n  peek(commandId) {\n    return CommandsHistory_1.cache?.peek(commandId);\n  }\n  saveState() {\n    if (!CommandsHistory_1.cache) {\n      return;\n    }\n    if (!CommandsHistory_1.hasChanges) {\n      return;\n    }\n    const serializedCache = { usesLRU: true, entries: [] };\n    CommandsHistory_1.cache.forEach((value, key) =\u003e serializedCache.entries.push({ key, value }));\n    this.storageService.store(\n      CommandsHistory_1.PREF_KEY_CACHE,\n      JSON.stringify(serializedCache),\n      0,\n      0\n      /* StorageTarget.USER */\n    );\n    this.storageService.store(\n      CommandsHistory_1.PREF_KEY_COUNTER,\n      CommandsHistory_1.counter,\n      0,\n      0\n      /* StorageTarget.USER */\n    );\n    CommandsHistory_1.hasChanges = false;\n  }\n  static getConfiguredCommandHistoryLength(configurationService) {\n    const config = configurationService.getValue();\n    const configuredCommandHistoryLength = config.workbench?.commandPalette?.history;\n    if (typeof configuredCommandHistoryLength === \"number\") {\n      return configuredCommandHistoryLength;\n    }\n    return CommandsHistory_1.DEFAULT_COMMANDS_HISTORY_LENGTH;\n  }\n};\nCommandsHistory = CommandsHistory_1 = __decorate160([\n  __param154(0, IStorageService),\n  __param154(1, IConfigurationService),\n  __param154(2, ILogService)\n], CommandsHistory);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js\nvar AbstractEditorCommandsQuickAccessProvider = class extends AbstractCommandsQuickAccessProvider {\n  constructor(options2, instantiationService, keybindingService, commandService, telemetryService, dialogService) {\n    super(options2, instantiationService, keybindingService, commandService, telemetryService, dialogService);\n  }\n  getCodeEditorCommandPicks() {\n    const activeTextEditorControl = this.activeTextEditorControl;\n    if (!activeTextEditorControl) {\n      return [];\n    }\n    const editorCommandPicks = [];\n    for (const editorAction of activeTextEditorControl.getSupportedActions()) {\n      let commandDescription;\n      if (editorAction.metadata?.description) {\n        if (isLocalizedString(editorAction.metadata.description)) {\n          commandDescription = editorAction.metadata.description;\n        } else {\n          commandDescription = { original: editorAction.metadata.description, value: editorAction.metadata.description };\n        }\n      }\n      editorCommandPicks.push({\n        commandId: editorAction.id,\n        commandAlias: editorAction.alias,\n        commandDescription,\n        label: stripIcons(editorAction.label) || editorAction.id\n      });\n    }\n    return editorCommandPicks;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js\ninit_instantiation();\ninit_commands();\ninit_telemetry();\ninit_editorExtensions();\ninit_editorContextKeys();\nvar __decorate161 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param155 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneCommandsQuickAccessProvider = class StandaloneCommandsQuickAccessProvider2 extends AbstractEditorCommandsQuickAccessProvider {\n  get activeTextEditorControl() {\n    return this.codeEditorService.getFocusedCodeEditor() ?? void 0;\n  }\n  constructor(instantiationService, codeEditorService, keybindingService, commandService, telemetryService, dialogService) {\n    super({ showAlias: false }, instantiationService, keybindingService, commandService, telemetryService, dialogService);\n    this.codeEditorService = codeEditorService;\n  }\n  async getCommandPicks() {\n    return this.getCodeEditorCommandPicks();\n  }\n  hasAdditionalCommandPicks() {\n    return false;\n  }\n  async getAdditionalCommandPicks() {\n    return [];\n  }\n};\nStandaloneCommandsQuickAccessProvider = __decorate161([\n  __param155(0, IInstantiationService),\n  __param155(1, ICodeEditorService),\n  __param155(2, IKeybindingService),\n  __param155(3, ICommandService),\n  __param155(4, ITelemetryService),\n  __param155(5, IDialogService)\n], StandaloneCommandsQuickAccessProvider);\nvar GotoLineAction2 = class _GotoLineAction extends EditorAction {\n  static {\n    this.ID = \"editor.action.quickCommand\";\n  }\n  constructor() {\n    super({\n      id: _GotoLineAction.ID,\n      label: QuickCommandNLS.quickCommandActionLabel,\n      alias: \"Command Palette\",\n      precondition: void 0,\n      kbOpts: {\n        kbExpr: EditorContextKeys.focus,\n        primary: 59,\n        weight: 100\n        /* KeybindingWeight.EditorContrib */\n      },\n      contextMenuOpts: {\n        group: \"z_commands\",\n        order: 1\n      }\n    });\n  }\n  run(accessor) {\n    accessor.get(IQuickInputService).quickAccess.show(StandaloneCommandsQuickAccessProvider.PREFIX);\n  }\n};\nregisterEditorAction(GotoLineAction2);\nRegistry.as(Extensions10.Quickaccess).registerQuickAccessProvider({\n  ctor: StandaloneCommandsQuickAccessProvider,\n  prefix: StandaloneCommandsQuickAccessProvider.PREFIX,\n  helpEntries: [{ description: QuickCommandNLS.quickCommandHelp, commandId: GotoLineAction2.ID }]\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js\ninit_editorExtensions();\ninit_codeEditorService();\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\nvar __decorate162 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param156 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneReferencesController = class StandaloneReferencesController2 extends ReferencesController {\n  constructor(editor2, contextKeyService, editorService, notificationService, instantiationService, storageService, configurationService) {\n    super(true, editor2, contextKeyService, editorService, notificationService, instantiationService, storageService, configurationService);\n  }\n};\nStandaloneReferencesController = __decorate162([\n  __param156(1, IContextKeyService),\n  __param156(2, ICodeEditorService),\n  __param156(3, INotificationService),\n  __param156(4, IInstantiationService),\n  __param156(5, IStorageService),\n  __param156(6, IConfigurationService)\n], StandaloneReferencesController);\nregisterEditorContribution(\n  ReferencesController.ID,\n  StandaloneReferencesController,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js\ninit_editorExtensions();\ninit_standaloneTheme();\ninit_standaloneStrings();\ninit_theme();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneThemeService.js\ninit_dom();\ninit_browser();\ninit_color();\ninit_event();\ninit_languages();\ninit_encodedTokenAttributes();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/tokenization.js\ninit_color();\nvar ParsedTokenThemeRule = class {\n  constructor(token, index, fontStyle, foreground2, background) {\n    this._parsedThemeRuleBrand = void 0;\n    this.token = token;\n    this.index = index;\n    this.fontStyle = fontStyle;\n    this.foreground = foreground2;\n    this.background = background;\n  }\n};\nfunction parseTokenTheme(source) {\n  if (!source || !Array.isArray(source)) {\n    return [];\n  }\n  const result = [];\n  let resultLen = 0;\n  for (let i2 = 0, len = source.length; i2 \u003c len; i2++) {\n    const entry = source[i2];\n    let fontStyle = -1;\n    if (typeof entry.fontStyle === \"string\") {\n      fontStyle = 0;\n      const segments = entry.fontStyle.split(\" \");\n      for (let j = 0, lenJ = segments.length; j \u003c lenJ; j++) {\n        const segment = segments[j];\n        switch (segment) {\n          case \"italic\":\n            fontStyle = fontStyle | 1;\n            break;\n          case \"bold\":\n            fontStyle = fontStyle | 2;\n            break;\n          case \"underline\":\n            fontStyle = fontStyle | 4;\n            break;\n          case \"strikethrough\":\n            fontStyle = fontStyle | 8;\n            break;\n        }\n      }\n    }\n    let foreground2 = null;\n    if (typeof entry.foreground === \"string\") {\n      foreground2 = entry.foreground;\n    }\n    let background = null;\n    if (typeof entry.background === \"string\") {\n      background = entry.background;\n    }\n    result[resultLen++] = new ParsedTokenThemeRule(entry.token || \"\", i2, fontStyle, foreground2, background);\n  }\n  return result;\n}\nfunction resolveParsedTokenThemeRules(parsedThemeRules, customTokenColors) {\n  parsedThemeRules.sort((a, b) =\u003e {\n    const r = strcmp(a.token, b.token);\n    if (r !== 0) {\n      return r;\n    }\n    return a.index - b.index;\n  });\n  let defaultFontStyle = 0;\n  let defaultForeground = \"000000\";\n  let defaultBackground = \"ffffff\";\n  while (parsedThemeRules.length \u003e= 1 \u0026\u0026 parsedThemeRules[0].token === \"\") {\n    const incomingDefaults = parsedThemeRules.shift();\n    if (incomingDefaults.fontStyle !== -1) {\n      defaultFontStyle = incomingDefaults.fontStyle;\n    }\n    if (incomingDefaults.foreground !== null) {\n      defaultForeground = incomingDefaults.foreground;\n    }\n    if (incomingDefaults.background !== null) {\n      defaultBackground = incomingDefaults.background;\n    }\n  }\n  const colorMap = new ColorMap();\n  for (const color of customTokenColors) {\n    colorMap.getId(color);\n  }\n  const foregroundColorId = colorMap.getId(defaultForeground);\n  const backgroundColorId = colorMap.getId(defaultBackground);\n  const defaults = new ThemeTrieElementRule(defaultFontStyle, foregroundColorId, backgroundColorId);\n  const root = new ThemeTrieElement(defaults);\n  for (let i2 = 0, len = parsedThemeRules.length; i2 \u003c len; i2++) {\n    const rule = parsedThemeRules[i2];\n    root.insert(rule.token, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n  }\n  return new TokenTheme(colorMap, root);\n}\nvar colorRegExp = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;\nvar ColorMap = class {\n  constructor() {\n    this._lastColorId = 0;\n    this._id2color = [];\n    this._color2id = /* @__PURE__ */ new Map();\n  }\n  getId(color) {\n    if (color === null) {\n      return 0;\n    }\n    const match2 = color.match(colorRegExp);\n    if (!match2) {\n      throw new Error(\"Illegal value for token color: \" + color);\n    }\n    color = match2[1].toUpperCase();\n    let value = this._color2id.get(color);\n    if (value) {\n      return value;\n    }\n    value = ++this._lastColorId;\n    this._color2id.set(color, value);\n    this._id2color[value] = Color.fromHex(\"#\" + color);\n    return value;\n  }\n  getColorMap() {\n    return this._id2color.slice(0);\n  }\n};\nvar TokenTheme = class {\n  static createFromRawTokenTheme(source, customTokenColors) {\n    return this.createFromParsedTokenTheme(parseTokenTheme(source), customTokenColors);\n  }\n  static createFromParsedTokenTheme(source, customTokenColors) {\n    return resolveParsedTokenThemeRules(source, customTokenColors);\n  }\n  constructor(colorMap, root) {\n    this._colorMap = colorMap;\n    this._root = root;\n    this._cache = /* @__PURE__ */ new Map();\n  }\n  getColorMap() {\n    return this._colorMap.getColorMap();\n  }\n  _match(token) {\n    return this._root.match(token);\n  }\n  match(languageId, token) {\n    let result = this._cache.get(token);\n    if (typeof result === \"undefined\") {\n      const rule = this._match(token);\n      const standardToken = toStandardTokenType(token);\n      result = (rule.metadata | standardToken \u003c\u003c 8) \u003e\u003e\u003e 0;\n      this._cache.set(token, result);\n    }\n    return (result | languageId \u003c\u003c 0) \u003e\u003e\u003e 0;\n  }\n};\nvar STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|regexp)\\b/;\nfunction toStandardTokenType(tokenType) {\n  const m = tokenType.match(STANDARD_TOKEN_TYPE_REGEXP);\n  if (!m) {\n    return 0;\n  }\n  switch (m[1]) {\n    case \"comment\":\n      return 1;\n    case \"string\":\n      return 2;\n    case \"regex\":\n      return 3;\n    case \"regexp\":\n      return 3;\n  }\n  throw new Error(\"Unexpected match for standard token type!\");\n}\nfunction strcmp(a, b) {\n  if (a \u003c b) {\n    return -1;\n  }\n  if (a \u003e b) {\n    return 1;\n  }\n  return 0;\n}\nvar ThemeTrieElementRule = class _ThemeTrieElementRule {\n  constructor(fontStyle, foreground2, background) {\n    this._themeTrieElementRuleBrand = void 0;\n    this._fontStyle = fontStyle;\n    this._foreground = foreground2;\n    this._background = background;\n    this.metadata = (this._fontStyle \u003c\u003c 11 | this._foreground \u003c\u003c 15 | this._background \u003c\u003c 24) \u003e\u003e\u003e 0;\n  }\n  clone() {\n    return new _ThemeTrieElementRule(this._fontStyle, this._foreground, this._background);\n  }\n  acceptOverwrite(fontStyle, foreground2, background) {\n    if (fontStyle !== -1) {\n      this._fontStyle = fontStyle;\n    }\n    if (foreground2 !== 0) {\n      this._foreground = foreground2;\n    }\n    if (background !== 0) {\n      this._background = background;\n    }\n    this.metadata = (this._fontStyle \u003c\u003c 11 | this._foreground \u003c\u003c 15 | this._background \u003c\u003c 24) \u003e\u003e\u003e 0;\n  }\n};\nvar ThemeTrieElement = class _ThemeTrieElement {\n  constructor(mainRule) {\n    this._themeTrieElementBrand = void 0;\n    this._mainRule = mainRule;\n    this._children = /* @__PURE__ */ new Map();\n  }\n  match(token) {\n    if (token === \"\") {\n      return this._mainRule;\n    }\n    const dotIndex = token.indexOf(\".\");\n    let head;\n    let tail2;\n    if (dotIndex === -1) {\n      head = token;\n      tail2 = \"\";\n    } else {\n      head = token.substring(0, dotIndex);\n      tail2 = token.substring(dotIndex + 1);\n    }\n    const child = this._children.get(head);\n    if (typeof child !== \"undefined\") {\n      return child.match(tail2);\n    }\n    return this._mainRule;\n  }\n  insert(token, fontStyle, foreground2, background) {\n    if (token === \"\") {\n      this._mainRule.acceptOverwrite(fontStyle, foreground2, background);\n      return;\n    }\n    const dotIndex = token.indexOf(\".\");\n    let head;\n    let tail2;\n    if (dotIndex === -1) {\n      head = token;\n      tail2 = \"\";\n    } else {\n      head = token.substring(0, dotIndex);\n      tail2 = token.substring(dotIndex + 1);\n    }\n    let child = this._children.get(head);\n    if (typeof child === \"undefined\") {\n      child = new _ThemeTrieElement(this._mainRule.clone());\n      this._children.set(head, child);\n    }\n    child.insert(tail2, fontStyle, foreground2, background);\n  }\n};\nfunction generateTokensCSSForColorMap(colorMap) {\n  const rules = [];\n  for (let i2 = 1, len = colorMap.length; i2 \u003c len; i2++) {\n    const color = colorMap[i2];\n    rules[i2] = `.mtk${i2} { color: ${color}; }`;\n  }\n  rules.push(\".mtki { font-style: italic; }\");\n  rules.push(\".mtkb { font-weight: bold; }\");\n  rules.push(\".mtku { text-decoration: underline; text-underline-position: under; }\");\n  rules.push(\".mtks { text-decoration: line-through; }\");\n  rules.push(\".mtks.mtku { text-decoration: underline line-through; text-underline-position: under; }\");\n  return rules.join(\"\\n\");\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/common/themes.js\ninit_editorColorRegistry();\ninit_colorRegistry();\nvar vs = {\n  base: \"vs\",\n  inherit: false,\n  rules: [\n    { token: \"\", foreground: \"000000\", background: \"fffffe\" },\n    { token: \"invalid\", foreground: \"cd3131\" },\n    { token: \"emphasis\", fontStyle: \"italic\" },\n    { token: \"strong\", fontStyle: \"bold\" },\n    { token: \"variable\", foreground: \"001188\" },\n    { token: \"variable.predefined\", foreground: \"4864AA\" },\n    { token: \"constant\", foreground: \"dd0000\" },\n    { token: \"comment\", foreground: \"008000\" },\n    { token: \"number\", foreground: \"098658\" },\n    { token: \"number.hex\", foreground: \"3030c0\" },\n    { token: \"regexp\", foreground: \"800000\" },\n    { token: \"annotation\", foreground: \"808080\" },\n    { token: \"type\", foreground: \"008080\" },\n    { token: \"delimiter\", foreground: \"000000\" },\n    { token: \"delimiter.html\", foreground: \"383838\" },\n    { token: \"delimiter.xml\", foreground: \"0000FF\" },\n    { token: \"tag\", foreground: \"800000\" },\n    { token: \"tag.id.pug\", foreground: \"4F76AC\" },\n    { token: \"tag.class.pug\", foreground: \"4F76AC\" },\n    { token: \"meta.scss\", foreground: \"800000\" },\n    { token: \"metatag\", foreground: \"e00000\" },\n    { token: \"metatag.content.html\", foreground: \"FF0000\" },\n    { token: \"metatag.html\", foreground: \"808080\" },\n    { token: \"metatag.xml\", foreground: \"808080\" },\n    { token: \"metatag.php\", fontStyle: \"bold\" },\n    { token: \"key\", foreground: \"863B00\" },\n    { token: \"string.key.json\", foreground: \"A31515\" },\n    { token: \"string.value.json\", foreground: \"0451A5\" },\n    { token: \"attribute.name\", foreground: \"FF0000\" },\n    { token: \"attribute.value\", foreground: \"0451A5\" },\n    { token: \"attribute.value.number\", foreground: \"098658\" },\n    { token: \"attribute.value.unit\", foreground: \"098658\" },\n    { token: \"attribute.value.html\", foreground: \"0000FF\" },\n    { token: \"attribute.value.xml\", foreground: \"0000FF\" },\n    { token: \"string\", foreground: \"A31515\" },\n    { token: \"string.html\", foreground: \"0000FF\" },\n    { token: \"string.sql\", foreground: \"FF0000\" },\n    { token: \"string.yaml\", foreground: \"0451A5\" },\n    { token: \"keyword\", foreground: \"0000FF\" },\n    { token: \"keyword.json\", foreground: \"0451A5\" },\n    { token: \"keyword.flow\", foreground: \"AF00DB\" },\n    { token: \"keyword.flow.scss\", foreground: \"0000FF\" },\n    { token: \"operator.scss\", foreground: \"666666\" },\n    { token: \"operator.sql\", foreground: \"778899\" },\n    { token: \"operator.swift\", foreground: \"666666\" },\n    { token: \"predefined.sql\", foreground: \"C700C7\" }\n  ],\n  colors: {\n    [editorBackground]: \"#FFFFFE\",\n    [editorForeground]: \"#000000\",\n    [editorInactiveSelection]: \"#E5EBF1\",\n    [editorIndentGuide1]: \"#D3D3D3\",\n    [editorActiveIndentGuide1]: \"#939393\",\n    [editorSelectionHighlight]: \"#ADD6FF4D\"\n  }\n};\nvar vs_dark = {\n  base: \"vs-dark\",\n  inherit: false,\n  rules: [\n    { token: \"\", foreground: \"D4D4D4\", background: \"1E1E1E\" },\n    { token: \"invalid\", foreground: \"f44747\" },\n    { token: \"emphasis\", fontStyle: \"italic\" },\n    { token: \"strong\", fontStyle: \"bold\" },\n    { token: \"variable\", foreground: \"74B0DF\" },\n    { token: \"variable.predefined\", foreground: \"4864AA\" },\n    { token: \"variable.parameter\", foreground: \"9CDCFE\" },\n    { token: \"constant\", foreground: \"569CD6\" },\n    { token: \"comment\", foreground: \"608B4E\" },\n    { token: \"number\", foreground: \"B5CEA8\" },\n    { token: \"number.hex\", foreground: \"5BB498\" },\n    { token: \"regexp\", foreground: \"B46695\" },\n    { token: \"annotation\", foreground: \"cc6666\" },\n    { token: \"type\", foreground: \"3DC9B0\" },\n    { token: \"delimiter\", foreground: \"DCDCDC\" },\n    { token: \"delimiter.html\", foreground: \"808080\" },\n    { token: \"delimiter.xml\", foreground: \"808080\" },\n    { token: \"tag\", foreground: \"569CD6\" },\n    { token: \"tag.id.pug\", foreground: \"4F76AC\" },\n    { token: \"tag.class.pug\", foreground: \"4F76AC\" },\n    { token: \"meta.scss\", foreground: \"A79873\" },\n    { token: \"meta.tag\", foreground: \"CE9178\" },\n    { token: \"metatag\", foreground: \"DD6A6F\" },\n    { token: \"metatag.content.html\", foreground: \"9CDCFE\" },\n    { token: \"metatag.html\", foreground: \"569CD6\" },\n    { token: \"metatag.xml\", foreground: \"569CD6\" },\n    { token: \"metatag.php\", fontStyle: \"bold\" },\n    { token: \"key\", foreground: \"9CDCFE\" },\n    { token: \"string.key.json\", foreground: \"9CDCFE\" },\n    { token: \"string.value.json\", foreground: \"CE9178\" },\n    { token: \"attribute.name\", foreground: \"9CDCFE\" },\n    { token: \"attribute.value\", foreground: \"CE9178\" },\n    { token: \"attribute.value.number.css\", foreground: \"B5CEA8\" },\n    { token: \"attribute.value.unit.css\", foreground: \"B5CEA8\" },\n    { token: \"attribute.value.hex.css\", foreground: \"D4D4D4\" },\n    { token: \"string\", foreground: \"CE9178\" },\n    { token: \"string.sql\", foreground: \"FF0000\" },\n    { token: \"keyword\", foreground: \"569CD6\" },\n    { token: \"keyword.flow\", foreground: \"C586C0\" },\n    { token: \"keyword.json\", foreground: \"CE9178\" },\n    { token: \"keyword.flow.scss\", foreground: \"569CD6\" },\n    { token: \"operator.scss\", foreground: \"909090\" },\n    { token: \"operator.sql\", foreground: \"778899\" },\n    { token: \"operator.swift\", foreground: \"909090\" },\n    { token: \"predefined.sql\", foreground: \"FF00FF\" }\n  ],\n  colors: {\n    [editorBackground]: \"#1E1E1E\",\n    [editorForeground]: \"#D4D4D4\",\n    [editorInactiveSelection]: \"#3A3D41\",\n    [editorIndentGuide1]: \"#404040\",\n    [editorActiveIndentGuide1]: \"#707070\",\n    [editorSelectionHighlight]: \"#ADD6FF26\"\n  }\n};\nvar hc_black = {\n  base: \"hc-black\",\n  inherit: false,\n  rules: [\n    { token: \"\", foreground: \"FFFFFF\", background: \"000000\" },\n    { token: \"invalid\", foreground: \"f44747\" },\n    { token: \"emphasis\", fontStyle: \"italic\" },\n    { token: \"strong\", fontStyle: \"bold\" },\n    { token: \"variable\", foreground: \"1AEBFF\" },\n    { token: \"variable.parameter\", foreground: \"9CDCFE\" },\n    { token: \"constant\", foreground: \"569CD6\" },\n    { token: \"comment\", foreground: \"608B4E\" },\n    { token: \"number\", foreground: \"FFFFFF\" },\n    { token: \"regexp\", foreground: \"C0C0C0\" },\n    { token: \"annotation\", foreground: \"569CD6\" },\n    { token: \"type\", foreground: \"3DC9B0\" },\n    { token: \"delimiter\", foreground: \"FFFF00\" },\n    { token: \"delimiter.html\", foreground: \"FFFF00\" },\n    { token: \"tag\", foreground: \"569CD6\" },\n    { token: \"tag.id.pug\", foreground: \"4F76AC\" },\n    { token: \"tag.class.pug\", foreground: \"4F76AC\" },\n    { token: \"meta\", foreground: \"D4D4D4\" },\n    { token: \"meta.tag\", foreground: \"CE9178\" },\n    { token: \"metatag\", foreground: \"569CD6\" },\n    { token: \"metatag.content.html\", foreground: \"1AEBFF\" },\n    { token: \"metatag.html\", foreground: \"569CD6\" },\n    { token: \"metatag.xml\", foreground: \"569CD6\" },\n    { token: \"metatag.php\", fontStyle: \"bold\" },\n    { token: \"key\", foreground: \"9CDCFE\" },\n    { token: \"string.key\", foreground: \"9CDCFE\" },\n    { token: \"string.value\", foreground: \"CE9178\" },\n    { token: \"attribute.name\", foreground: \"569CD6\" },\n    { token: \"attribute.value\", foreground: \"3FF23F\" },\n    { token: \"string\", foreground: \"CE9178\" },\n    { token: \"string.sql\", foreground: \"FF0000\" },\n    { token: \"keyword\", foreground: \"569CD6\" },\n    { token: \"keyword.flow\", foreground: \"C586C0\" },\n    { token: \"operator.sql\", foreground: \"778899\" },\n    { token: \"operator.swift\", foreground: \"909090\" },\n    { token: \"predefined.sql\", foreground: \"FF00FF\" }\n  ],\n  colors: {\n    [editorBackground]: \"#000000\",\n    [editorForeground]: \"#FFFFFF\",\n    [editorIndentGuide1]: \"#FFFFFF\",\n    [editorActiveIndentGuide1]: \"#FFFFFF\"\n  }\n};\nvar hc_light = {\n  base: \"hc-light\",\n  inherit: false,\n  rules: [\n    { token: \"\", foreground: \"292929\", background: \"FFFFFF\" },\n    { token: \"invalid\", foreground: \"B5200D\" },\n    { token: \"emphasis\", fontStyle: \"italic\" },\n    { token: \"strong\", fontStyle: \"bold\" },\n    { token: \"variable\", foreground: \"264F70\" },\n    { token: \"variable.predefined\", foreground: \"4864AA\" },\n    { token: \"constant\", foreground: \"dd0000\" },\n    { token: \"comment\", foreground: \"008000\" },\n    { token: \"number\", foreground: \"098658\" },\n    { token: \"number.hex\", foreground: \"3030c0\" },\n    { token: \"regexp\", foreground: \"800000\" },\n    { token: \"annotation\", foreground: \"808080\" },\n    { token: \"type\", foreground: \"008080\" },\n    { token: \"delimiter\", foreground: \"000000\" },\n    { token: \"delimiter.html\", foreground: \"383838\" },\n    { token: \"tag\", foreground: \"800000\" },\n    { token: \"tag.id.pug\", foreground: \"4F76AC\" },\n    { token: \"tag.class.pug\", foreground: \"4F76AC\" },\n    { token: \"meta.scss\", foreground: \"800000\" },\n    { token: \"metatag\", foreground: \"e00000\" },\n    { token: \"metatag.content.html\", foreground: \"B5200D\" },\n    { token: \"metatag.html\", foreground: \"808080\" },\n    { token: \"metatag.xml\", foreground: \"808080\" },\n    { token: \"metatag.php\", fontStyle: \"bold\" },\n    { token: \"key\", foreground: \"863B00\" },\n    { token: \"string.key.json\", foreground: \"A31515\" },\n    { token: \"string.value.json\", foreground: \"0451A5\" },\n    { token: \"attribute.name\", foreground: \"264F78\" },\n    { token: \"attribute.value\", foreground: \"0451A5\" },\n    { token: \"string\", foreground: \"A31515\" },\n    { token: \"string.sql\", foreground: \"B5200D\" },\n    { token: \"keyword\", foreground: \"0000FF\" },\n    { token: \"keyword.flow\", foreground: \"AF00DB\" },\n    { token: \"operator.sql\", foreground: \"778899\" },\n    { token: \"operator.swift\", foreground: \"666666\" },\n    { token: \"predefined.sql\", foreground: \"C700C7\" }\n  ],\n  colors: {\n    [editorBackground]: \"#FFFFFF\",\n    [editorForeground]: \"#292929\",\n    [editorIndentGuide1]: \"#292929\",\n    [editorActiveIndentGuide1]: \"#292929\"\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneThemeService.js\ninit_platform2();\ninit_colorRegistry();\ninit_themeService();\ninit_lifecycle();\ninit_theme();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/theme/browser/iconsStyleSheet.js\ninit_event();\ninit_lifecycle();\ninit_themables();\nfunction getIconsStyleSheet(themeService) {\n  const disposable = new DisposableStore();\n  const onDidChangeEmmiter = disposable.add(new Emitter());\n  const iconRegistry2 = getIconRegistry();\n  disposable.add(iconRegistry2.onDidChange(() =\u003e onDidChangeEmmiter.fire()));\n  if (themeService) {\n    disposable.add(themeService.onDidProductIconThemeChange(() =\u003e onDidChangeEmmiter.fire()));\n  }\n  return {\n    dispose: () =\u003e disposable.dispose(),\n    onDidChange: onDidChangeEmmiter.event,\n    getCSS() {\n      const productIconTheme = themeService ? themeService.getProductIconTheme() : new UnthemedProductIconTheme();\n      const usedFontIds = {};\n      const rules = new Builder();\n      const rootAttribs = new Builder();\n      for (const contribution of iconRegistry2.getIcons()) {\n        const definition = productIconTheme.getIcon(contribution);\n        if (!definition) {\n          continue;\n        }\n        const fontContribution = definition.font;\n        const fontFamilyVar = inline`--vscode-icon-${className(contribution.id)}-font-family`;\n        const contentVar = inline`--vscode-icon-${className(contribution.id)}-content`;\n        if (fontContribution) {\n          usedFontIds[fontContribution.id] = fontContribution.definition;\n          rootAttribs.push(inline`${fontFamilyVar}: ${stringValue(fontContribution.id)};`, inline`${contentVar}: ${stringValue(definition.fontCharacter)};`);\n          rules.push(inline`.codicon-${className(contribution.id)}:before { content: ${stringValue(definition.fontCharacter)}; font-family: ${stringValue(fontContribution.id)}; }`);\n        } else {\n          rootAttribs.push(inline`${contentVar}: ${stringValue(definition.fontCharacter)}; ${fontFamilyVar}: 'codicon';`);\n          rules.push(inline`.codicon-${className(contribution.id)}:before { content: ${stringValue(definition.fontCharacter)}; }`);\n        }\n      }\n      for (const id in usedFontIds) {\n        const definition = usedFontIds[id];\n        const fontWeight = definition.weight ? inline`font-weight: ${identValue(definition.weight)};` : inline``;\n        const fontStyle = definition.style ? inline`font-style: ${identValue(definition.style)};` : inline``;\n        const src = new Builder();\n        for (const l of definition.src) {\n          src.push(inline`${asCSSUrl(l.location)} format(${stringValue(l.format)})`);\n        }\n        rules.push(inline`@font-face { src: ${src.join(\", \")}; font-family: ${stringValue(id)};${fontWeight}${fontStyle} font-display: block; }`);\n      }\n      rules.push(inline`:root { ${rootAttribs.join(\" \")} }`);\n      return rules.join(\"\\n\");\n    }\n  };\n}\nvar UnthemedProductIconTheme = class {\n  getIcon(contribution) {\n    const iconRegistry2 = getIconRegistry();\n    let definition = contribution.defaults;\n    while (ThemeIcon.isThemeIcon(definition)) {\n      const c = iconRegistry2.getIcon(definition.id);\n      if (!c) {\n        return void 0;\n      }\n      definition = c.defaults;\n    }\n    return definition;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneThemeService.js\ninit_window();\nvar VS_LIGHT_THEME_NAME = \"vs\";\nvar VS_DARK_THEME_NAME = \"vs-dark\";\nvar HC_BLACK_THEME_NAME = \"hc-black\";\nvar HC_LIGHT_THEME_NAME = \"hc-light\";\nvar colorRegistry2 = Registry.as(Extensions6.ColorContribution);\nvar themingRegistry2 = Registry.as(Extensions7.ThemingContribution);\nvar StandaloneTheme = class {\n  constructor(name, standaloneThemeData) {\n    this.semanticHighlighting = false;\n    this.themeData = standaloneThemeData;\n    const base = standaloneThemeData.base;\n    if (name.length \u003e 0) {\n      if (isBuiltinTheme(name)) {\n        this.id = name;\n      } else {\n        this.id = base + \" \" + name;\n      }\n      this.themeName = name;\n    } else {\n      this.id = base;\n      this.themeName = base;\n    }\n    this.colors = null;\n    this.defaultColors = /* @__PURE__ */ Object.create(null);\n    this._tokenTheme = null;\n  }\n  get base() {\n    return this.themeData.base;\n  }\n  notifyBaseUpdated() {\n    if (this.themeData.inherit) {\n      this.colors = null;\n      this._tokenTheme = null;\n    }\n  }\n  getColors() {\n    if (!this.colors) {\n      const colors = /* @__PURE__ */ new Map();\n      for (const id in this.themeData.colors) {\n        colors.set(id, Color.fromHex(this.themeData.colors[id]));\n      }\n      if (this.themeData.inherit) {\n        const baseData = getBuiltinRules(this.themeData.base);\n        for (const id in baseData.colors) {\n          if (!colors.has(id)) {\n            colors.set(id, Color.fromHex(baseData.colors[id]));\n          }\n        }\n      }\n      this.colors = colors;\n    }\n    return this.colors;\n  }\n  getColor(colorId, useDefault) {\n    const color = this.getColors().get(colorId);\n    if (color) {\n      return color;\n    }\n    if (useDefault !== false) {\n      return this.getDefault(colorId);\n    }\n    return void 0;\n  }\n  getDefault(colorId) {\n    let color = this.defaultColors[colorId];\n    if (color) {\n      return color;\n    }\n    color = colorRegistry2.resolveDefaultColor(colorId, this);\n    this.defaultColors[colorId] = color;\n    return color;\n  }\n  defines(colorId) {\n    return this.getColors().has(colorId);\n  }\n  get type() {\n    switch (this.base) {\n      case VS_LIGHT_THEME_NAME:\n        return ColorScheme.LIGHT;\n      case HC_BLACK_THEME_NAME:\n        return ColorScheme.HIGH_CONTRAST_DARK;\n      case HC_LIGHT_THEME_NAME:\n        return ColorScheme.HIGH_CONTRAST_LIGHT;\n      default:\n        return ColorScheme.DARK;\n    }\n  }\n  get tokenTheme() {\n    if (!this._tokenTheme) {\n      let rules = [];\n      let encodedTokensColors = [];\n      if (this.themeData.inherit) {\n        const baseData = getBuiltinRules(this.themeData.base);\n        rules = baseData.rules;\n        if (baseData.encodedTokensColors) {\n          encodedTokensColors = baseData.encodedTokensColors;\n        }\n      }\n      const editorForeground2 = this.themeData.colors[\"editor.foreground\"];\n      const editorBackground2 = this.themeData.colors[\"editor.background\"];\n      if (editorForeground2 || editorBackground2) {\n        const rule = { token: \"\" };\n        if (editorForeground2) {\n          rule.foreground = editorForeground2;\n        }\n        if (editorBackground2) {\n          rule.background = editorBackground2;\n        }\n        rules.push(rule);\n      }\n      rules = rules.concat(this.themeData.rules);\n      if (this.themeData.encodedTokensColors) {\n        encodedTokensColors = this.themeData.encodedTokensColors;\n      }\n      this._tokenTheme = TokenTheme.createFromRawTokenTheme(rules, encodedTokensColors);\n    }\n    return this._tokenTheme;\n  }\n  getTokenStyleMetadata(type, modifiers, modelLanguage) {\n    const style = this.tokenTheme._match([type].concat(modifiers).join(\".\"));\n    const metadata = style.metadata;\n    const foreground2 = TokenMetadata.getForeground(metadata);\n    const fontStyle = TokenMetadata.getFontStyle(metadata);\n    return {\n      foreground: foreground2,\n      italic: Boolean(\n        fontStyle \u0026 1\n        /* FontStyle.Italic */\n      ),\n      bold: Boolean(\n        fontStyle \u0026 2\n        /* FontStyle.Bold */\n      ),\n      underline: Boolean(\n        fontStyle \u0026 4\n        /* FontStyle.Underline */\n      ),\n      strikethrough: Boolean(\n        fontStyle \u0026 8\n        /* FontStyle.Strikethrough */\n      )\n    };\n  }\n  get tokenColorMap() {\n    return [];\n  }\n};\nfunction isBuiltinTheme(themeName) {\n  return themeName === VS_LIGHT_THEME_NAME || themeName === VS_DARK_THEME_NAME || themeName === HC_BLACK_THEME_NAME || themeName === HC_LIGHT_THEME_NAME;\n}\nfunction getBuiltinRules(builtinTheme) {\n  switch (builtinTheme) {\n    case VS_LIGHT_THEME_NAME:\n      return vs;\n    case VS_DARK_THEME_NAME:\n      return vs_dark;\n    case HC_BLACK_THEME_NAME:\n      return hc_black;\n    case HC_LIGHT_THEME_NAME:\n      return hc_light;\n  }\n}\nfunction newBuiltInTheme(builtinTheme) {\n  const themeData = getBuiltinRules(builtinTheme);\n  return new StandaloneTheme(builtinTheme, themeData);\n}\nvar StandaloneThemeService = class extends Disposable {\n  constructor() {\n    super();\n    this._onColorThemeChange = this._register(new Emitter());\n    this.onDidColorThemeChange = this._onColorThemeChange.event;\n    this._onProductIconThemeChange = this._register(new Emitter());\n    this.onDidProductIconThemeChange = this._onProductIconThemeChange.event;\n    this._environment = /* @__PURE__ */ Object.create(null);\n    this._builtInProductIconTheme = new UnthemedProductIconTheme();\n    this._autoDetectHighContrast = true;\n    this._knownThemes = /* @__PURE__ */ new Map();\n    this._knownThemes.set(VS_LIGHT_THEME_NAME, newBuiltInTheme(VS_LIGHT_THEME_NAME));\n    this._knownThemes.set(VS_DARK_THEME_NAME, newBuiltInTheme(VS_DARK_THEME_NAME));\n    this._knownThemes.set(HC_BLACK_THEME_NAME, newBuiltInTheme(HC_BLACK_THEME_NAME));\n    this._knownThemes.set(HC_LIGHT_THEME_NAME, newBuiltInTheme(HC_LIGHT_THEME_NAME));\n    const iconsStyleSheet = this._register(getIconsStyleSheet(this));\n    this._codiconCSS = iconsStyleSheet.getCSS();\n    this._themeCSS = \"\";\n    this._allCSS = `${this._codiconCSS}\n${this._themeCSS}`;\n    this._globalStyleElement = null;\n    this._styleElements = [];\n    this._colorMapOverride = null;\n    this.setTheme(VS_LIGHT_THEME_NAME);\n    this._onOSSchemeChanged();\n    this._register(iconsStyleSheet.onDidChange(() =\u003e {\n      this._codiconCSS = iconsStyleSheet.getCSS();\n      this._updateCSS();\n    }));\n    addMatchMediaChangeListener(mainWindow, \"(forced-colors: active)\", () =\u003e {\n      this._onOSSchemeChanged();\n    });\n  }\n  registerEditorContainer(domNode) {\n    if (isInShadowDOM(domNode)) {\n      return this._registerShadowDomContainer(domNode);\n    }\n    return this._registerRegularEditorContainer();\n  }\n  _registerRegularEditorContainer() {\n    if (!this._globalStyleElement) {\n      this._globalStyleElement = createStyleSheet(void 0, (style) =\u003e {\n        style.className = \"monaco-colors\";\n        style.textContent = this._allCSS;\n      });\n      this._styleElements.push(this._globalStyleElement);\n    }\n    return Disposable.None;\n  }\n  _registerShadowDomContainer(domNode) {\n    const styleElement = createStyleSheet(domNode, (style) =\u003e {\n      style.className = \"monaco-colors\";\n      style.textContent = this._allCSS;\n    });\n    this._styleElements.push(styleElement);\n    return {\n      dispose: () =\u003e {\n        for (let i2 = 0; i2 \u003c this._styleElements.length; i2++) {\n          if (this._styleElements[i2] === styleElement) {\n            this._styleElements.splice(i2, 1);\n            return;\n          }\n        }\n      }\n    };\n  }\n  defineTheme(themeName, themeData) {\n    if (!/^[a-z0-9\\-]+$/i.test(themeName)) {\n      throw new Error(\"Illegal theme name!\");\n    }\n    if (!isBuiltinTheme(themeData.base) \u0026\u0026 !isBuiltinTheme(themeName)) {\n      throw new Error(\"Illegal theme base!\");\n    }\n    this._knownThemes.set(themeName, new StandaloneTheme(themeName, themeData));\n    if (isBuiltinTheme(themeName)) {\n      this._knownThemes.forEach((theme) =\u003e {\n        if (theme.base === themeName) {\n          theme.notifyBaseUpdated();\n        }\n      });\n    }\n    if (this._theme.themeName === themeName) {\n      this.setTheme(themeName);\n    }\n  }\n  getColorTheme() {\n    return this._theme;\n  }\n  setColorMapOverride(colorMapOverride) {\n    this._colorMapOverride = colorMapOverride;\n    this._updateThemeOrColorMap();\n  }\n  setTheme(themeName) {\n    let theme;\n    if (this._knownThemes.has(themeName)) {\n      theme = this._knownThemes.get(themeName);\n    } else {\n      theme = this._knownThemes.get(VS_LIGHT_THEME_NAME);\n    }\n    this._updateActualTheme(theme);\n  }\n  _updateActualTheme(desiredTheme) {\n    if (!desiredTheme || this._theme === desiredTheme) {\n      return;\n    }\n    this._theme = desiredTheme;\n    this._updateThemeOrColorMap();\n  }\n  _onOSSchemeChanged() {\n    if (this._autoDetectHighContrast) {\n      const wantsHighContrast = mainWindow.matchMedia(`(forced-colors: active)`).matches;\n      if (wantsHighContrast !== isHighContrast(this._theme.type)) {\n        let newThemeName;\n        if (isDark(this._theme.type)) {\n          newThemeName = wantsHighContrast ? HC_BLACK_THEME_NAME : VS_DARK_THEME_NAME;\n        } else {\n          newThemeName = wantsHighContrast ? HC_LIGHT_THEME_NAME : VS_LIGHT_THEME_NAME;\n        }\n        this._updateActualTheme(this._knownThemes.get(newThemeName));\n      }\n    }\n  }\n  setAutoDetectHighContrast(autoDetectHighContrast) {\n    this._autoDetectHighContrast = autoDetectHighContrast;\n    this._onOSSchemeChanged();\n  }\n  _updateThemeOrColorMap() {\n    const cssRules = [];\n    const hasRule = {};\n    const ruleCollector = {\n      addRule: (rule) =\u003e {\n        if (!hasRule[rule]) {\n          cssRules.push(rule);\n          hasRule[rule] = true;\n        }\n      }\n    };\n    themingRegistry2.getThemingParticipants().forEach((p) =\u003e p(this._theme, ruleCollector, this._environment));\n    const colorVariables = [];\n    for (const item of colorRegistry2.getColors()) {\n      const color = this._theme.getColor(item.id, true);\n      if (color) {\n        colorVariables.push(`${asCssVariableName(item.id)}: ${color.toString()};`);\n      }\n    }\n    ruleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${colorVariables.join(\"\\n\")} }`);\n    const colorMap = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n    ruleCollector.addRule(generateTokensCSSForColorMap(colorMap));\n    this._themeCSS = cssRules.join(\"\\n\");\n    this._updateCSS();\n    TokenizationRegistry2.setColorMap(colorMap);\n    this._onColorThemeChange.fire(this._theme);\n  }\n  _updateCSS() {\n    this._allCSS = `${this._codiconCSS}\n${this._themeCSS}`;\n    this._styleElements.forEach((styleElement) =\u003e styleElement.textContent = this._allCSS);\n  }\n  getFileIconTheme() {\n    return {\n      hasFileIcons: false,\n      hasFolderIcons: false,\n      hidesExplorerArrows: false\n    };\n  }\n  getProductIconTheme() {\n    return this._builtInProductIconTheme;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js\nvar ToggleHighContrast = class extends EditorAction {\n  constructor() {\n    super({\n      id: \"editor.action.toggleHighContrast\",\n      label: ToggleHighContrastNLS.toggleHighContrast,\n      alias: \"Toggle High Contrast Theme\",\n      precondition: void 0\n    });\n    this._originalThemeName = null;\n  }\n  run(accessor, editor2) {\n    const standaloneThemeService = accessor.get(IStandaloneThemeService);\n    const currentTheme = standaloneThemeService.getColorTheme();\n    if (isHighContrast(currentTheme.type)) {\n      standaloneThemeService.setTheme(this._originalThemeName || (isDark(currentTheme.type) ? VS_DARK_THEME_NAME : VS_LIGHT_THEME_NAME));\n      this._originalThemeName = null;\n    } else {\n      standaloneThemeService.setTheme(isDark(currentTheme.type) ? HC_BLACK_THEME_NAME : HC_LIGHT_THEME_NAME);\n      this._originalThemeName = currentTheme.themeName;\n    }\n  }\n};\nregisterEditorAction(ToggleHighContrast);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/editorBaseApi.js\ninit_cancellation();\ninit_event();\ninit_keyCodes();\ninit_uri();\ninit_position();\ninit_range();\ninit_selection();\ninit_languages();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/standalone/standaloneEnums.js\nvar AccessibilitySupport;\n(function(AccessibilitySupport2) {\n  AccessibilitySupport2[AccessibilitySupport2[\"Unknown\"] = 0] = \"Unknown\";\n  AccessibilitySupport2[AccessibilitySupport2[\"Disabled\"] = 1] = \"Disabled\";\n  AccessibilitySupport2[AccessibilitySupport2[\"Enabled\"] = 2] = \"Enabled\";\n})(AccessibilitySupport || (AccessibilitySupport = {}));\nvar CodeActionTriggerType;\n(function(CodeActionTriggerType2) {\n  CodeActionTriggerType2[CodeActionTriggerType2[\"Invoke\"] = 1] = \"Invoke\";\n  CodeActionTriggerType2[CodeActionTriggerType2[\"Auto\"] = 2] = \"Auto\";\n})(CodeActionTriggerType || (CodeActionTriggerType = {}));\nvar CompletionItemInsertTextRule;\n(function(CompletionItemInsertTextRule2) {\n  CompletionItemInsertTextRule2[CompletionItemInsertTextRule2[\"None\"] = 0] = \"None\";\n  CompletionItemInsertTextRule2[CompletionItemInsertTextRule2[\"KeepWhitespace\"] = 1] = \"KeepWhitespace\";\n  CompletionItemInsertTextRule2[CompletionItemInsertTextRule2[\"InsertAsSnippet\"] = 4] = \"InsertAsSnippet\";\n})(CompletionItemInsertTextRule || (CompletionItemInsertTextRule = {}));\nvar CompletionItemKind;\n(function(CompletionItemKind2) {\n  CompletionItemKind2[CompletionItemKind2[\"Method\"] = 0] = \"Method\";\n  CompletionItemKind2[CompletionItemKind2[\"Function\"] = 1] = \"Function\";\n  CompletionItemKind2[CompletionItemKind2[\"Constructor\"] = 2] = \"Constructor\";\n  CompletionItemKind2[CompletionItemKind2[\"Field\"] = 3] = \"Field\";\n  CompletionItemKind2[CompletionItemKind2[\"Variable\"] = 4] = \"Variable\";\n  CompletionItemKind2[CompletionItemKind2[\"Class\"] = 5] = \"Class\";\n  CompletionItemKind2[CompletionItemKind2[\"Struct\"] = 6] = \"Struct\";\n  CompletionItemKind2[CompletionItemKind2[\"Interface\"] = 7] = \"Interface\";\n  CompletionItemKind2[CompletionItemKind2[\"Module\"] = 8] = \"Module\";\n  CompletionItemKind2[CompletionItemKind2[\"Property\"] = 9] = \"Property\";\n  CompletionItemKind2[CompletionItemKind2[\"Event\"] = 10] = \"Event\";\n  CompletionItemKind2[CompletionItemKind2[\"Operator\"] = 11] = \"Operator\";\n  CompletionItemKind2[CompletionItemKind2[\"Unit\"] = 12] = \"Unit\";\n  CompletionItemKind2[CompletionItemKind2[\"Value\"] = 13] = \"Value\";\n  CompletionItemKind2[CompletionItemKind2[\"Constant\"] = 14] = \"Constant\";\n  CompletionItemKind2[CompletionItemKind2[\"Enum\"] = 15] = \"Enum\";\n  CompletionItemKind2[CompletionItemKind2[\"EnumMember\"] = 16] = \"EnumMember\";\n  CompletionItemKind2[CompletionItemKind2[\"Keyword\"] = 17] = \"Keyword\";\n  CompletionItemKind2[CompletionItemKind2[\"Text\"] = 18] = \"Text\";\n  CompletionItemKind2[CompletionItemKind2[\"Color\"] = 19] = \"Color\";\n  CompletionItemKind2[CompletionItemKind2[\"File\"] = 20] = \"File\";\n  CompletionItemKind2[CompletionItemKind2[\"Reference\"] = 21] = \"Reference\";\n  CompletionItemKind2[CompletionItemKind2[\"Customcolor\"] = 22] = \"Customcolor\";\n  CompletionItemKind2[CompletionItemKind2[\"Folder\"] = 23] = \"Folder\";\n  CompletionItemKind2[CompletionItemKind2[\"TypeParameter\"] = 24] = \"TypeParameter\";\n  CompletionItemKind2[CompletionItemKind2[\"User\"] = 25] = \"User\";\n  CompletionItemKind2[CompletionItemKind2[\"Issue\"] = 26] = \"Issue\";\n  CompletionItemKind2[CompletionItemKind2[\"Tool\"] = 27] = \"Tool\";\n  CompletionItemKind2[CompletionItemKind2[\"Snippet\"] = 28] = \"Snippet\";\n})(CompletionItemKind || (CompletionItemKind = {}));\nvar CompletionItemTag;\n(function(CompletionItemTag2) {\n  CompletionItemTag2[CompletionItemTag2[\"Deprecated\"] = 1] = \"Deprecated\";\n})(CompletionItemTag || (CompletionItemTag = {}));\nvar CompletionTriggerKind;\n(function(CompletionTriggerKind2) {\n  CompletionTriggerKind2[CompletionTriggerKind2[\"Invoke\"] = 0] = \"Invoke\";\n  CompletionTriggerKind2[CompletionTriggerKind2[\"TriggerCharacter\"] = 1] = \"TriggerCharacter\";\n  CompletionTriggerKind2[CompletionTriggerKind2[\"TriggerForIncompleteCompletions\"] = 2] = \"TriggerForIncompleteCompletions\";\n})(CompletionTriggerKind || (CompletionTriggerKind = {}));\nvar ContentWidgetPositionPreference;\n(function(ContentWidgetPositionPreference2) {\n  ContentWidgetPositionPreference2[ContentWidgetPositionPreference2[\"EXACT\"] = 0] = \"EXACT\";\n  ContentWidgetPositionPreference2[ContentWidgetPositionPreference2[\"ABOVE\"] = 1] = \"ABOVE\";\n  ContentWidgetPositionPreference2[ContentWidgetPositionPreference2[\"BELOW\"] = 2] = \"BELOW\";\n})(ContentWidgetPositionPreference || (ContentWidgetPositionPreference = {}));\nvar CursorChangeReason;\n(function(CursorChangeReason2) {\n  CursorChangeReason2[CursorChangeReason2[\"NotSet\"] = 0] = \"NotSet\";\n  CursorChangeReason2[CursorChangeReason2[\"ContentFlush\"] = 1] = \"ContentFlush\";\n  CursorChangeReason2[CursorChangeReason2[\"RecoverFromMarkers\"] = 2] = \"RecoverFromMarkers\";\n  CursorChangeReason2[CursorChangeReason2[\"Explicit\"] = 3] = \"Explicit\";\n  CursorChangeReason2[CursorChangeReason2[\"Paste\"] = 4] = \"Paste\";\n  CursorChangeReason2[CursorChangeReason2[\"Undo\"] = 5] = \"Undo\";\n  CursorChangeReason2[CursorChangeReason2[\"Redo\"] = 6] = \"Redo\";\n})(CursorChangeReason || (CursorChangeReason = {}));\nvar DefaultEndOfLine;\n(function(DefaultEndOfLine2) {\n  DefaultEndOfLine2[DefaultEndOfLine2[\"LF\"] = 1] = \"LF\";\n  DefaultEndOfLine2[DefaultEndOfLine2[\"CRLF\"] = 2] = \"CRLF\";\n})(DefaultEndOfLine || (DefaultEndOfLine = {}));\nvar DocumentHighlightKind2;\n(function(DocumentHighlightKind3) {\n  DocumentHighlightKind3[DocumentHighlightKind3[\"Text\"] = 0] = \"Text\";\n  DocumentHighlightKind3[DocumentHighlightKind3[\"Read\"] = 1] = \"Read\";\n  DocumentHighlightKind3[DocumentHighlightKind3[\"Write\"] = 2] = \"Write\";\n})(DocumentHighlightKind2 || (DocumentHighlightKind2 = {}));\nvar EditorAutoIndentStrategy;\n(function(EditorAutoIndentStrategy2) {\n  EditorAutoIndentStrategy2[EditorAutoIndentStrategy2[\"None\"] = 0] = \"None\";\n  EditorAutoIndentStrategy2[EditorAutoIndentStrategy2[\"Keep\"] = 1] = \"Keep\";\n  EditorAutoIndentStrategy2[EditorAutoIndentStrategy2[\"Brackets\"] = 2] = \"Brackets\";\n  EditorAutoIndentStrategy2[EditorAutoIndentStrategy2[\"Advanced\"] = 3] = \"Advanced\";\n  EditorAutoIndentStrategy2[EditorAutoIndentStrategy2[\"Full\"] = 4] = \"Full\";\n})(EditorAutoIndentStrategy || (EditorAutoIndentStrategy = {}));\nvar EditorOption;\n(function(EditorOption2) {\n  EditorOption2[EditorOption2[\"acceptSuggestionOnCommitCharacter\"] = 0] = \"acceptSuggestionOnCommitCharacter\";\n  EditorOption2[EditorOption2[\"acceptSuggestionOnEnter\"] = 1] = \"acceptSuggestionOnEnter\";\n  EditorOption2[EditorOption2[\"accessibilitySupport\"] = 2] = \"accessibilitySupport\";\n  EditorOption2[EditorOption2[\"accessibilityPageSize\"] = 3] = \"accessibilityPageSize\";\n  EditorOption2[EditorOption2[\"allowOverflow\"] = 4] = \"allowOverflow\";\n  EditorOption2[EditorOption2[\"allowVariableLineHeights\"] = 5] = \"allowVariableLineHeights\";\n  EditorOption2[EditorOption2[\"allowVariableFonts\"] = 6] = \"allowVariableFonts\";\n  EditorOption2[EditorOption2[\"allowVariableFontsInAccessibilityMode\"] = 7] = \"allowVariableFontsInAccessibilityMode\";\n  EditorOption2[EditorOption2[\"ariaLabel\"] = 8] = \"ariaLabel\";\n  EditorOption2[EditorOption2[\"ariaRequired\"] = 9] = \"ariaRequired\";\n  EditorOption2[EditorOption2[\"autoClosingBrackets\"] = 10] = \"autoClosingBrackets\";\n  EditorOption2[EditorOption2[\"autoClosingComments\"] = 11] = \"autoClosingComments\";\n  EditorOption2[EditorOption2[\"screenReaderAnnounceInlineSuggestion\"] = 12] = \"screenReaderAnnounceInlineSuggestion\";\n  EditorOption2[EditorOption2[\"autoClosingDelete\"] = 13] = \"autoClosingDelete\";\n  EditorOption2[EditorOption2[\"autoClosingOvertype\"] = 14] = \"autoClosingOvertype\";\n  EditorOption2[EditorOption2[\"autoClosingQuotes\"] = 15] = \"autoClosingQuotes\";\n  EditorOption2[EditorOption2[\"autoIndent\"] = 16] = \"autoIndent\";\n  EditorOption2[EditorOption2[\"autoIndentOnPaste\"] = 17] = \"autoIndentOnPaste\";\n  EditorOption2[EditorOption2[\"autoIndentOnPasteWithinString\"] = 18] = \"autoIndentOnPasteWithinString\";\n  EditorOption2[EditorOption2[\"automaticLayout\"] = 19] = \"automaticLayout\";\n  EditorOption2[EditorOption2[\"autoSurround\"] = 20] = \"autoSurround\";\n  EditorOption2[EditorOption2[\"bracketPairColorization\"] = 21] = \"bracketPairColorization\";\n  EditorOption2[EditorOption2[\"guides\"] = 22] = \"guides\";\n  EditorOption2[EditorOption2[\"codeLens\"] = 23] = \"codeLens\";\n  EditorOption2[EditorOption2[\"codeLensFontFamily\"] = 24] = \"codeLensFontFamily\";\n  EditorOption2[EditorOption2[\"codeLensFontSize\"] = 25] = \"codeLensFontSize\";\n  EditorOption2[EditorOption2[\"colorDecorators\"] = 26] = \"colorDecorators\";\n  EditorOption2[EditorOption2[\"colorDecoratorsLimit\"] = 27] = \"colorDecoratorsLimit\";\n  EditorOption2[EditorOption2[\"columnSelection\"] = 28] = \"columnSelection\";\n  EditorOption2[EditorOption2[\"comments\"] = 29] = \"comments\";\n  EditorOption2[EditorOption2[\"contextmenu\"] = 30] = \"contextmenu\";\n  EditorOption2[EditorOption2[\"copyWithSyntaxHighlighting\"] = 31] = \"copyWithSyntaxHighlighting\";\n  EditorOption2[EditorOption2[\"cursorBlinking\"] = 32] = \"cursorBlinking\";\n  EditorOption2[EditorOption2[\"cursorSmoothCaretAnimation\"] = 33] = \"cursorSmoothCaretAnimation\";\n  EditorOption2[EditorOption2[\"cursorStyle\"] = 34] = \"cursorStyle\";\n  EditorOption2[EditorOption2[\"cursorSurroundingLines\"] = 35] = \"cursorSurroundingLines\";\n  EditorOption2[EditorOption2[\"cursorSurroundingLinesStyle\"] = 36] = \"cursorSurroundingLinesStyle\";\n  EditorOption2[EditorOption2[\"cursorWidth\"] = 37] = \"cursorWidth\";\n  EditorOption2[EditorOption2[\"cursorHeight\"] = 38] = \"cursorHeight\";\n  EditorOption2[EditorOption2[\"disableLayerHinting\"] = 39] = \"disableLayerHinting\";\n  EditorOption2[EditorOption2[\"disableMonospaceOptimizations\"] = 40] = \"disableMonospaceOptimizations\";\n  EditorOption2[EditorOption2[\"domReadOnly\"] = 41] = \"domReadOnly\";\n  EditorOption2[EditorOption2[\"dragAndDrop\"] = 42] = \"dragAndDrop\";\n  EditorOption2[EditorOption2[\"dropIntoEditor\"] = 43] = \"dropIntoEditor\";\n  EditorOption2[EditorOption2[\"editContext\"] = 44] = \"editContext\";\n  EditorOption2[EditorOption2[\"emptySelectionClipboard\"] = 45] = \"emptySelectionClipboard\";\n  EditorOption2[EditorOption2[\"experimentalGpuAcceleration\"] = 46] = \"experimentalGpuAcceleration\";\n  EditorOption2[EditorOption2[\"experimentalWhitespaceRendering\"] = 47] = \"experimentalWhitespaceRendering\";\n  EditorOption2[EditorOption2[\"extraEditorClassName\"] = 48] = \"extraEditorClassName\";\n  EditorOption2[EditorOption2[\"fastScrollSensitivity\"] = 49] = \"fastScrollSensitivity\";\n  EditorOption2[EditorOption2[\"find\"] = 50] = \"find\";\n  EditorOption2[EditorOption2[\"fixedOverflowWidgets\"] = 51] = \"fixedOverflowWidgets\";\n  EditorOption2[EditorOption2[\"folding\"] = 52] = \"folding\";\n  EditorOption2[EditorOption2[\"foldingStrategy\"] = 53] = \"foldingStrategy\";\n  EditorOption2[EditorOption2[\"foldingHighlight\"] = 54] = \"foldingHighlight\";\n  EditorOption2[EditorOption2[\"foldingImportsByDefault\"] = 55] = \"foldingImportsByDefault\";\n  EditorOption2[EditorOption2[\"foldingMaximumRegions\"] = 56] = \"foldingMaximumRegions\";\n  EditorOption2[EditorOption2[\"unfoldOnClickAfterEndOfLine\"] = 57] = \"unfoldOnClickAfterEndOfLine\";\n  EditorOption2[EditorOption2[\"fontFamily\"] = 58] = \"fontFamily\";\n  EditorOption2[EditorOption2[\"fontInfo\"] = 59] = \"fontInfo\";\n  EditorOption2[EditorOption2[\"fontLigatures\"] = 60] = \"fontLigatures\";\n  EditorOption2[EditorOption2[\"fontSize\"] = 61] = \"fontSize\";\n  EditorOption2[EditorOption2[\"fontWeight\"] = 62] = \"fontWeight\";\n  EditorOption2[EditorOption2[\"fontVariations\"] = 63] = \"fontVariations\";\n  EditorOption2[EditorOption2[\"formatOnPaste\"] = 64] = \"formatOnPaste\";\n  EditorOption2[EditorOption2[\"formatOnType\"] = 65] = \"formatOnType\";\n  EditorOption2[EditorOption2[\"glyphMargin\"] = 66] = \"glyphMargin\";\n  EditorOption2[EditorOption2[\"gotoLocation\"] = 67] = \"gotoLocation\";\n  EditorOption2[EditorOption2[\"hideCursorInOverviewRuler\"] = 68] = \"hideCursorInOverviewRuler\";\n  EditorOption2[EditorOption2[\"hover\"] = 69] = \"hover\";\n  EditorOption2[EditorOption2[\"inDiffEditor\"] = 70] = \"inDiffEditor\";\n  EditorOption2[EditorOption2[\"inlineSuggest\"] = 71] = \"inlineSuggest\";\n  EditorOption2[EditorOption2[\"letterSpacing\"] = 72] = \"letterSpacing\";\n  EditorOption2[EditorOption2[\"lightbulb\"] = 73] = \"lightbulb\";\n  EditorOption2[EditorOption2[\"lineDecorationsWidth\"] = 74] = \"lineDecorationsWidth\";\n  EditorOption2[EditorOption2[\"lineHeight\"] = 75] = \"lineHeight\";\n  EditorOption2[EditorOption2[\"lineNumbers\"] = 76] = \"lineNumbers\";\n  EditorOption2[EditorOption2[\"lineNumbersMinChars\"] = 77] = \"lineNumbersMinChars\";\n  EditorOption2[EditorOption2[\"linkedEditing\"] = 78] = \"linkedEditing\";\n  EditorOption2[EditorOption2[\"links\"] = 79] = \"links\";\n  EditorOption2[EditorOption2[\"matchBrackets\"] = 80] = \"matchBrackets\";\n  EditorOption2[EditorOption2[\"minimap\"] = 81] = \"minimap\";\n  EditorOption2[EditorOption2[\"mouseStyle\"] = 82] = \"mouseStyle\";\n  EditorOption2[EditorOption2[\"mouseWheelScrollSensitivity\"] = 83] = \"mouseWheelScrollSensitivity\";\n  EditorOption2[EditorOption2[\"mouseWheelZoom\"] = 84] = \"mouseWheelZoom\";\n  EditorOption2[EditorOption2[\"multiCursorMergeOverlapping\"] = 85] = \"multiCursorMergeOverlapping\";\n  EditorOption2[EditorOption2[\"multiCursorModifier\"] = 86] = \"multiCursorModifier\";\n  EditorOption2[EditorOption2[\"multiCursorPaste\"] = 87] = \"multiCursorPaste\";\n  EditorOption2[EditorOption2[\"multiCursorLimit\"] = 88] = \"multiCursorLimit\";\n  EditorOption2[EditorOption2[\"occurrencesHighlight\"] = 89] = \"occurrencesHighlight\";\n  EditorOption2[EditorOption2[\"occurrencesHighlightDelay\"] = 90] = \"occurrencesHighlightDelay\";\n  EditorOption2[EditorOption2[\"overtypeCursorStyle\"] = 91] = \"overtypeCursorStyle\";\n  EditorOption2[EditorOption2[\"overtypeOnPaste\"] = 92] = \"overtypeOnPaste\";\n  EditorOption2[EditorOption2[\"overviewRulerBorder\"] = 93] = \"overviewRulerBorder\";\n  EditorOption2[EditorOption2[\"overviewRulerLanes\"] = 94] = \"overviewRulerLanes\";\n  EditorOption2[EditorOption2[\"padding\"] = 95] = \"padding\";\n  EditorOption2[EditorOption2[\"pasteAs\"] = 96] = \"pasteAs\";\n  EditorOption2[EditorOption2[\"parameterHints\"] = 97] = \"parameterHints\";\n  EditorOption2[EditorOption2[\"peekWidgetDefaultFocus\"] = 98] = \"peekWidgetDefaultFocus\";\n  EditorOption2[EditorOption2[\"placeholder\"] = 99] = \"placeholder\";\n  EditorOption2[EditorOption2[\"definitionLinkOpensInPeek\"] = 100] = \"definitionLinkOpensInPeek\";\n  EditorOption2[EditorOption2[\"quickSuggestions\"] = 101] = \"quickSuggestions\";\n  EditorOption2[EditorOption2[\"quickSuggestionsDelay\"] = 102] = \"quickSuggestionsDelay\";\n  EditorOption2[EditorOption2[\"readOnly\"] = 103] = \"readOnly\";\n  EditorOption2[EditorOption2[\"readOnlyMessage\"] = 104] = \"readOnlyMessage\";\n  EditorOption2[EditorOption2[\"renameOnType\"] = 105] = \"renameOnType\";\n  EditorOption2[EditorOption2[\"renderRichScreenReaderContent\"] = 106] = \"renderRichScreenReaderContent\";\n  EditorOption2[EditorOption2[\"renderControlCharacters\"] = 107] = \"renderControlCharacters\";\n  EditorOption2[EditorOption2[\"renderFinalNewline\"] = 108] = \"renderFinalNewline\";\n  EditorOption2[EditorOption2[\"renderLineHighlight\"] = 109] = \"renderLineHighlight\";\n  EditorOption2[EditorOption2[\"renderLineHighlightOnlyWhenFocus\"] = 110] = \"renderLineHighlightOnlyWhenFocus\";\n  EditorOption2[EditorOption2[\"renderValidationDecorations\"] = 111] = \"renderValidationDecorations\";\n  EditorOption2[EditorOption2[\"renderWhitespace\"] = 112] = \"renderWhitespace\";\n  EditorOption2[EditorOption2[\"revealHorizontalRightPadding\"] = 113] = \"revealHorizontalRightPadding\";\n  EditorOption2[EditorOption2[\"roundedSelection\"] = 114] = \"roundedSelection\";\n  EditorOption2[EditorOption2[\"rulers\"] = 115] = \"rulers\";\n  EditorOption2[EditorOption2[\"scrollbar\"] = 116] = \"scrollbar\";\n  EditorOption2[EditorOption2[\"scrollBeyondLastColumn\"] = 117] = \"scrollBeyondLastColumn\";\n  EditorOption2[EditorOption2[\"scrollBeyondLastLine\"] = 118] = \"scrollBeyondLastLine\";\n  EditorOption2[EditorOption2[\"scrollPredominantAxis\"] = 119] = \"scrollPredominantAxis\";\n  EditorOption2[EditorOption2[\"selectionClipboard\"] = 120] = \"selectionClipboard\";\n  EditorOption2[EditorOption2[\"selectionHighlight\"] = 121] = \"selectionHighlight\";\n  EditorOption2[EditorOption2[\"selectionHighlightMaxLength\"] = 122] = \"selectionHighlightMaxLength\";\n  EditorOption2[EditorOption2[\"selectionHighlightMultiline\"] = 123] = \"selectionHighlightMultiline\";\n  EditorOption2[EditorOption2[\"selectOnLineNumbers\"] = 124] = \"selectOnLineNumbers\";\n  EditorOption2[EditorOption2[\"showFoldingControls\"] = 125] = \"showFoldingControls\";\n  EditorOption2[EditorOption2[\"showUnused\"] = 126] = \"showUnused\";\n  EditorOption2[EditorOption2[\"snippetSuggestions\"] = 127] = \"snippetSuggestions\";\n  EditorOption2[EditorOption2[\"smartSelect\"] = 128] = \"smartSelect\";\n  EditorOption2[EditorOption2[\"smoothScrolling\"] = 129] = \"smoothScrolling\";\n  EditorOption2[EditorOption2[\"stickyScroll\"] = 130] = \"stickyScroll\";\n  EditorOption2[EditorOption2[\"stickyTabStops\"] = 131] = \"stickyTabStops\";\n  EditorOption2[EditorOption2[\"stopRenderingLineAfter\"] = 132] = \"stopRenderingLineAfter\";\n  EditorOption2[EditorOption2[\"suggest\"] = 133] = \"suggest\";\n  EditorOption2[EditorOption2[\"suggestFontSize\"] = 134] = \"suggestFontSize\";\n  EditorOption2[EditorOption2[\"suggestLineHeight\"] = 135] = \"suggestLineHeight\";\n  EditorOption2[EditorOption2[\"suggestOnTriggerCharacters\"] = 136] = \"suggestOnTriggerCharacters\";\n  EditorOption2[EditorOption2[\"suggestSelection\"] = 137] = \"suggestSelection\";\n  EditorOption2[EditorOption2[\"tabCompletion\"] = 138] = \"tabCompletion\";\n  EditorOption2[EditorOption2[\"tabIndex\"] = 139] = \"tabIndex\";\n  EditorOption2[EditorOption2[\"trimWhitespaceOnDelete\"] = 140] = \"trimWhitespaceOnDelete\";\n  EditorOption2[EditorOption2[\"unicodeHighlighting\"] = 141] = \"unicodeHighlighting\";\n  EditorOption2[EditorOption2[\"unusualLineTerminators\"] = 142] = \"unusualLineTerminators\";\n  EditorOption2[EditorOption2[\"useShadowDOM\"] = 143] = \"useShadowDOM\";\n  EditorOption2[EditorOption2[\"useTabStops\"] = 144] = \"useTabStops\";\n  EditorOption2[EditorOption2[\"wordBreak\"] = 145] = \"wordBreak\";\n  EditorOption2[EditorOption2[\"wordSegmenterLocales\"] = 146] = \"wordSegmenterLocales\";\n  EditorOption2[EditorOption2[\"wordSeparators\"] = 147] = \"wordSeparators\";\n  EditorOption2[EditorOption2[\"wordWrap\"] = 148] = \"wordWrap\";\n  EditorOption2[EditorOption2[\"wordWrapBreakAfterCharacters\"] = 149] = \"wordWrapBreakAfterCharacters\";\n  EditorOption2[EditorOption2[\"wordWrapBreakBeforeCharacters\"] = 150] = \"wordWrapBreakBeforeCharacters\";\n  EditorOption2[EditorOption2[\"wordWrapColumn\"] = 151] = \"wordWrapColumn\";\n  EditorOption2[EditorOption2[\"wordWrapOverride1\"] = 152] = \"wordWrapOverride1\";\n  EditorOption2[EditorOption2[\"wordWrapOverride2\"] = 153] = \"wordWrapOverride2\";\n  EditorOption2[EditorOption2[\"wrappingIndent\"] = 154] = \"wrappingIndent\";\n  EditorOption2[EditorOption2[\"wrappingStrategy\"] = 155] = \"wrappingStrategy\";\n  EditorOption2[EditorOption2[\"showDeprecated\"] = 156] = \"showDeprecated\";\n  EditorOption2[EditorOption2[\"inertialScroll\"] = 157] = \"inertialScroll\";\n  EditorOption2[EditorOption2[\"inlayHints\"] = 158] = \"inlayHints\";\n  EditorOption2[EditorOption2[\"wrapOnEscapedLineFeeds\"] = 159] = \"wrapOnEscapedLineFeeds\";\n  EditorOption2[EditorOption2[\"effectiveCursorStyle\"] = 160] = \"effectiveCursorStyle\";\n  EditorOption2[EditorOption2[\"editorClassName\"] = 161] = \"editorClassName\";\n  EditorOption2[EditorOption2[\"pixelRatio\"] = 162] = \"pixelRatio\";\n  EditorOption2[EditorOption2[\"tabFocusMode\"] = 163] = \"tabFocusMode\";\n  EditorOption2[EditorOption2[\"layoutInfo\"] = 164] = \"layoutInfo\";\n  EditorOption2[EditorOption2[\"wrappingInfo\"] = 165] = \"wrappingInfo\";\n  EditorOption2[EditorOption2[\"defaultColorDecorators\"] = 166] = \"defaultColorDecorators\";\n  EditorOption2[EditorOption2[\"colorDecoratorsActivatedOn\"] = 167] = \"colorDecoratorsActivatedOn\";\n  EditorOption2[EditorOption2[\"inlineCompletionsAccessibilityVerbose\"] = 168] = \"inlineCompletionsAccessibilityVerbose\";\n  EditorOption2[EditorOption2[\"effectiveEditContext\"] = 169] = \"effectiveEditContext\";\n  EditorOption2[EditorOption2[\"scrollOnMiddleClick\"] = 170] = \"scrollOnMiddleClick\";\n  EditorOption2[EditorOption2[\"effectiveAllowVariableFonts\"] = 171] = \"effectiveAllowVariableFonts\";\n})(EditorOption || (EditorOption = {}));\nvar EndOfLinePreference;\n(function(EndOfLinePreference2) {\n  EndOfLinePreference2[EndOfLinePreference2[\"TextDefined\"] = 0] = \"TextDefined\";\n  EndOfLinePreference2[EndOfLinePreference2[\"LF\"] = 1] = \"LF\";\n  EndOfLinePreference2[EndOfLinePreference2[\"CRLF\"] = 2] = \"CRLF\";\n})(EndOfLinePreference || (EndOfLinePreference = {}));\nvar EndOfLineSequence;\n(function(EndOfLineSequence2) {\n  EndOfLineSequence2[EndOfLineSequence2[\"LF\"] = 0] = \"LF\";\n  EndOfLineSequence2[EndOfLineSequence2[\"CRLF\"] = 1] = \"CRLF\";\n})(EndOfLineSequence || (EndOfLineSequence = {}));\nvar GlyphMarginLane2;\n(function(GlyphMarginLane3) {\n  GlyphMarginLane3[GlyphMarginLane3[\"Left\"] = 1] = \"Left\";\n  GlyphMarginLane3[GlyphMarginLane3[\"Center\"] = 2] = \"Center\";\n  GlyphMarginLane3[GlyphMarginLane3[\"Right\"] = 3] = \"Right\";\n})(GlyphMarginLane2 || (GlyphMarginLane2 = {}));\nvar HoverVerbosityAction2;\n(function(HoverVerbosityAction3) {\n  HoverVerbosityAction3[HoverVerbosityAction3[\"Increase\"] = 0] = \"Increase\";\n  HoverVerbosityAction3[HoverVerbosityAction3[\"Decrease\"] = 1] = \"Decrease\";\n})(HoverVerbosityAction2 || (HoverVerbosityAction2 = {}));\nvar IndentAction2;\n(function(IndentAction3) {\n  IndentAction3[IndentAction3[\"None\"] = 0] = \"None\";\n  IndentAction3[IndentAction3[\"Indent\"] = 1] = \"Indent\";\n  IndentAction3[IndentAction3[\"IndentOutdent\"] = 2] = \"IndentOutdent\";\n  IndentAction3[IndentAction3[\"Outdent\"] = 3] = \"Outdent\";\n})(IndentAction2 || (IndentAction2 = {}));\nvar InjectedTextCursorStops2;\n(function(InjectedTextCursorStops3) {\n  InjectedTextCursorStops3[InjectedTextCursorStops3[\"Both\"] = 0] = \"Both\";\n  InjectedTextCursorStops3[InjectedTextCursorStops3[\"Right\"] = 1] = \"Right\";\n  InjectedTextCursorStops3[InjectedTextCursorStops3[\"Left\"] = 2] = \"Left\";\n  InjectedTextCursorStops3[InjectedTextCursorStops3[\"None\"] = 3] = \"None\";\n})(InjectedTextCursorStops2 || (InjectedTextCursorStops2 = {}));\nvar InlayHintKind2;\n(function(InlayHintKind3) {\n  InlayHintKind3[InlayHintKind3[\"Type\"] = 1] = \"Type\";\n  InlayHintKind3[InlayHintKind3[\"Parameter\"] = 2] = \"Parameter\";\n})(InlayHintKind2 || (InlayHintKind2 = {}));\nvar InlineCompletionDisplayLocationKind2;\n(function(InlineCompletionDisplayLocationKind3) {\n  InlineCompletionDisplayLocationKind3[InlineCompletionDisplayLocationKind3[\"Code\"] = 1] = \"Code\";\n  InlineCompletionDisplayLocationKind3[InlineCompletionDisplayLocationKind3[\"Label\"] = 2] = \"Label\";\n})(InlineCompletionDisplayLocationKind2 || (InlineCompletionDisplayLocationKind2 = {}));\nvar InlineCompletionEndOfLifeReasonKind2;\n(function(InlineCompletionEndOfLifeReasonKind3) {\n  InlineCompletionEndOfLifeReasonKind3[InlineCompletionEndOfLifeReasonKind3[\"Accepted\"] = 0] = \"Accepted\";\n  InlineCompletionEndOfLifeReasonKind3[InlineCompletionEndOfLifeReasonKind3[\"Rejected\"] = 1] = \"Rejected\";\n  InlineCompletionEndOfLifeReasonKind3[InlineCompletionEndOfLifeReasonKind3[\"Ignored\"] = 2] = \"Ignored\";\n})(InlineCompletionEndOfLifeReasonKind2 || (InlineCompletionEndOfLifeReasonKind2 = {}));\nvar InlineCompletionTriggerKind2;\n(function(InlineCompletionTriggerKind3) {\n  InlineCompletionTriggerKind3[InlineCompletionTriggerKind3[\"Automatic\"] = 0] = \"Automatic\";\n  InlineCompletionTriggerKind3[InlineCompletionTriggerKind3[\"Explicit\"] = 1] = \"Explicit\";\n})(InlineCompletionTriggerKind2 || (InlineCompletionTriggerKind2 = {}));\nvar KeyCode;\n(function(KeyCode3) {\n  KeyCode3[KeyCode3[\"DependsOnKbLayout\"] = -1] = \"DependsOnKbLayout\";\n  KeyCode3[KeyCode3[\"Unknown\"] = 0] = \"Unknown\";\n  KeyCode3[KeyCode3[\"Backspace\"] = 1] = \"Backspace\";\n  KeyCode3[KeyCode3[\"Tab\"] = 2] = \"Tab\";\n  KeyCode3[KeyCode3[\"Enter\"] = 3] = \"Enter\";\n  KeyCode3[KeyCode3[\"Shift\"] = 4] = \"Shift\";\n  KeyCode3[KeyCode3[\"Ctrl\"] = 5] = \"Ctrl\";\n  KeyCode3[KeyCode3[\"Alt\"] = 6] = \"Alt\";\n  KeyCode3[KeyCode3[\"PauseBreak\"] = 7] = \"PauseBreak\";\n  KeyCode3[KeyCode3[\"CapsLock\"] = 8] = \"CapsLock\";\n  KeyCode3[KeyCode3[\"Escape\"] = 9] = \"Escape\";\n  KeyCode3[KeyCode3[\"Space\"] = 10] = \"Space\";\n  KeyCode3[KeyCode3[\"PageUp\"] = 11] = \"PageUp\";\n  KeyCode3[KeyCode3[\"PageDown\"] = 12] = \"PageDown\";\n  KeyCode3[KeyCode3[\"End\"] = 13] = \"End\";\n  KeyCode3[KeyCode3[\"Home\"] = 14] = \"Home\";\n  KeyCode3[KeyCode3[\"LeftArrow\"] = 15] = \"LeftArrow\";\n  KeyCode3[KeyCode3[\"UpArrow\"] = 16] = \"UpArrow\";\n  KeyCode3[KeyCode3[\"RightArrow\"] = 17] = \"RightArrow\";\n  KeyCode3[KeyCode3[\"DownArrow\"] = 18] = \"DownArrow\";\n  KeyCode3[KeyCode3[\"Insert\"] = 19] = \"Insert\";\n  KeyCode3[KeyCode3[\"Delete\"] = 20] = \"Delete\";\n  KeyCode3[KeyCode3[\"Digit0\"] = 21] = \"Digit0\";\n  KeyCode3[KeyCode3[\"Digit1\"] = 22] = \"Digit1\";\n  KeyCode3[KeyCode3[\"Digit2\"] = 23] = \"Digit2\";\n  KeyCode3[KeyCode3[\"Digit3\"] = 24] = \"Digit3\";\n  KeyCode3[KeyCode3[\"Digit4\"] = 25] = \"Digit4\";\n  KeyCode3[KeyCode3[\"Digit5\"] = 26] = \"Digit5\";\n  KeyCode3[KeyCode3[\"Digit6\"] = 27] = \"Digit6\";\n  KeyCode3[KeyCode3[\"Digit7\"] = 28] = \"Digit7\";\n  KeyCode3[KeyCode3[\"Digit8\"] = 29] = \"Digit8\";\n  KeyCode3[KeyCode3[\"Digit9\"] = 30] = \"Digit9\";\n  KeyCode3[KeyCode3[\"KeyA\"] = 31] = \"KeyA\";\n  KeyCode3[KeyCode3[\"KeyB\"] = 32] = \"KeyB\";\n  KeyCode3[KeyCode3[\"KeyC\"] = 33] = \"KeyC\";\n  KeyCode3[KeyCode3[\"KeyD\"] = 34] = \"KeyD\";\n  KeyCode3[KeyCode3[\"KeyE\"] = 35] = \"KeyE\";\n  KeyCode3[KeyCode3[\"KeyF\"] = 36] = \"KeyF\";\n  KeyCode3[KeyCode3[\"KeyG\"] = 37] = \"KeyG\";\n  KeyCode3[KeyCode3[\"KeyH\"] = 38] = \"KeyH\";\n  KeyCode3[KeyCode3[\"KeyI\"] = 39] = \"KeyI\";\n  KeyCode3[KeyCode3[\"KeyJ\"] = 40] = \"KeyJ\";\n  KeyCode3[KeyCode3[\"KeyK\"] = 41] = \"KeyK\";\n  KeyCode3[KeyCode3[\"KeyL\"] = 42] = \"KeyL\";\n  KeyCode3[KeyCode3[\"KeyM\"] = 43] = \"KeyM\";\n  KeyCode3[KeyCode3[\"KeyN\"] = 44] = \"KeyN\";\n  KeyCode3[KeyCode3[\"KeyO\"] = 45] = \"KeyO\";\n  KeyCode3[KeyCode3[\"KeyP\"] = 46] = \"KeyP\";\n  KeyCode3[KeyCode3[\"KeyQ\"] = 47] = \"KeyQ\";\n  KeyCode3[KeyCode3[\"KeyR\"] = 48] = \"KeyR\";\n  KeyCode3[KeyCode3[\"KeyS\"] = 49] = \"KeyS\";\n  KeyCode3[KeyCode3[\"KeyT\"] = 50] = \"KeyT\";\n  KeyCode3[KeyCode3[\"KeyU\"] = 51] = \"KeyU\";\n  KeyCode3[KeyCode3[\"KeyV\"] = 52] = \"KeyV\";\n  KeyCode3[KeyCode3[\"KeyW\"] = 53] = \"KeyW\";\n  KeyCode3[KeyCode3[\"KeyX\"] = 54] = \"KeyX\";\n  KeyCode3[KeyCode3[\"KeyY\"] = 55] = \"KeyY\";\n  KeyCode3[KeyCode3[\"KeyZ\"] = 56] = \"KeyZ\";\n  KeyCode3[KeyCode3[\"Meta\"] = 57] = \"Meta\";\n  KeyCode3[KeyCode3[\"ContextMenu\"] = 58] = \"ContextMenu\";\n  KeyCode3[KeyCode3[\"F1\"] = 59] = \"F1\";\n  KeyCode3[KeyCode3[\"F2\"] = 60] = \"F2\";\n  KeyCode3[KeyCode3[\"F3\"] = 61] = \"F3\";\n  KeyCode3[KeyCode3[\"F4\"] = 62] = \"F4\";\n  KeyCode3[KeyCode3[\"F5\"] = 63] = \"F5\";\n  KeyCode3[KeyCode3[\"F6\"] = 64] = \"F6\";\n  KeyCode3[KeyCode3[\"F7\"] = 65] = \"F7\";\n  KeyCode3[KeyCode3[\"F8\"] = 66] = \"F8\";\n  KeyCode3[KeyCode3[\"F9\"] = 67] = \"F9\";\n  KeyCode3[KeyCode3[\"F10\"] = 68] = \"F10\";\n  KeyCode3[KeyCode3[\"F11\"] = 69] = \"F11\";\n  KeyCode3[KeyCode3[\"F12\"] = 70] = \"F12\";\n  KeyCode3[KeyCode3[\"F13\"] = 71] = \"F13\";\n  KeyCode3[KeyCode3[\"F14\"] = 72] = \"F14\";\n  KeyCode3[KeyCode3[\"F15\"] = 73] = \"F15\";\n  KeyCode3[KeyCode3[\"F16\"] = 74] = \"F16\";\n  KeyCode3[KeyCode3[\"F17\"] = 75] = \"F17\";\n  KeyCode3[KeyCode3[\"F18\"] = 76] = \"F18\";\n  KeyCode3[KeyCode3[\"F19\"] = 77] = \"F19\";\n  KeyCode3[KeyCode3[\"F20\"] = 78] = \"F20\";\n  KeyCode3[KeyCode3[\"F21\"] = 79] = \"F21\";\n  KeyCode3[KeyCode3[\"F22\"] = 80] = \"F22\";\n  KeyCode3[KeyCode3[\"F23\"] = 81] = \"F23\";\n  KeyCode3[KeyCode3[\"F24\"] = 82] = \"F24\";\n  KeyCode3[KeyCode3[\"NumLock\"] = 83] = \"NumLock\";\n  KeyCode3[KeyCode3[\"ScrollLock\"] = 84] = \"ScrollLock\";\n  KeyCode3[KeyCode3[\"Semicolon\"] = 85] = \"Semicolon\";\n  KeyCode3[KeyCode3[\"Equal\"] = 86] = \"Equal\";\n  KeyCode3[KeyCode3[\"Comma\"] = 87] = \"Comma\";\n  KeyCode3[KeyCode3[\"Minus\"] = 88] = \"Minus\";\n  KeyCode3[KeyCode3[\"Period\"] = 89] = \"Period\";\n  KeyCode3[KeyCode3[\"Slash\"] = 90] = \"Slash\";\n  KeyCode3[KeyCode3[\"Backquote\"] = 91] = \"Backquote\";\n  KeyCode3[KeyCode3[\"BracketLeft\"] = 92] = \"BracketLeft\";\n  KeyCode3[KeyCode3[\"Backslash\"] = 93] = \"Backslash\";\n  KeyCode3[KeyCode3[\"BracketRight\"] = 94] = \"BracketRight\";\n  KeyCode3[KeyCode3[\"Quote\"] = 95] = \"Quote\";\n  KeyCode3[KeyCode3[\"OEM_8\"] = 96] = \"OEM_8\";\n  KeyCode3[KeyCode3[\"IntlBackslash\"] = 97] = \"IntlBackslash\";\n  KeyCode3[KeyCode3[\"Numpad0\"] = 98] = \"Numpad0\";\n  KeyCode3[KeyCode3[\"Numpad1\"] = 99] = \"Numpad1\";\n  KeyCode3[KeyCode3[\"Numpad2\"] = 100] = \"Numpad2\";\n  KeyCode3[KeyCode3[\"Numpad3\"] = 101] = \"Numpad3\";\n  KeyCode3[KeyCode3[\"Numpad4\"] = 102] = \"Numpad4\";\n  KeyCode3[KeyCode3[\"Numpad5\"] = 103] = \"Numpad5\";\n  KeyCode3[KeyCode3[\"Numpad6\"] = 104] = \"Numpad6\";\n  KeyCode3[KeyCode3[\"Numpad7\"] = 105] = \"Numpad7\";\n  KeyCode3[KeyCode3[\"Numpad8\"] = 106] = \"Numpad8\";\n  KeyCode3[KeyCode3[\"Numpad9\"] = 107] = \"Numpad9\";\n  KeyCode3[KeyCode3[\"NumpadMultiply\"] = 108] = \"NumpadMultiply\";\n  KeyCode3[KeyCode3[\"NumpadAdd\"] = 109] = \"NumpadAdd\";\n  KeyCode3[KeyCode3[\"NUMPAD_SEPARATOR\"] = 110] = \"NUMPAD_SEPARATOR\";\n  KeyCode3[KeyCode3[\"NumpadSubtract\"] = 111] = \"NumpadSubtract\";\n  KeyCode3[KeyCode3[\"NumpadDecimal\"] = 112] = \"NumpadDecimal\";\n  KeyCode3[KeyCode3[\"NumpadDivide\"] = 113] = \"NumpadDivide\";\n  KeyCode3[KeyCode3[\"KEY_IN_COMPOSITION\"] = 114] = \"KEY_IN_COMPOSITION\";\n  KeyCode3[KeyCode3[\"ABNT_C1\"] = 115] = \"ABNT_C1\";\n  KeyCode3[KeyCode3[\"ABNT_C2\"] = 116] = \"ABNT_C2\";\n  KeyCode3[KeyCode3[\"AudioVolumeMute\"] = 117] = \"AudioVolumeMute\";\n  KeyCode3[KeyCode3[\"AudioVolumeUp\"] = 118] = \"AudioVolumeUp\";\n  KeyCode3[KeyCode3[\"AudioVolumeDown\"] = 119] = \"AudioVolumeDown\";\n  KeyCode3[KeyCode3[\"BrowserSearch\"] = 120] = \"BrowserSearch\";\n  KeyCode3[KeyCode3[\"BrowserHome\"] = 121] = \"BrowserHome\";\n  KeyCode3[KeyCode3[\"BrowserBack\"] = 122] = \"BrowserBack\";\n  KeyCode3[KeyCode3[\"BrowserForward\"] = 123] = \"BrowserForward\";\n  KeyCode3[KeyCode3[\"MediaTrackNext\"] = 124] = \"MediaTrackNext\";\n  KeyCode3[KeyCode3[\"MediaTrackPrevious\"] = 125] = \"MediaTrackPrevious\";\n  KeyCode3[KeyCode3[\"MediaStop\"] = 126] = \"MediaStop\";\n  KeyCode3[KeyCode3[\"MediaPlayPause\"] = 127] = \"MediaPlayPause\";\n  KeyCode3[KeyCode3[\"LaunchMediaPlayer\"] = 128] = \"LaunchMediaPlayer\";\n  KeyCode3[KeyCode3[\"LaunchMail\"] = 129] = \"LaunchMail\";\n  KeyCode3[KeyCode3[\"LaunchApp2\"] = 130] = \"LaunchApp2\";\n  KeyCode3[KeyCode3[\"Clear\"] = 131] = \"Clear\";\n  KeyCode3[KeyCode3[\"MAX_VALUE\"] = 132] = \"MAX_VALUE\";\n})(KeyCode || (KeyCode = {}));\nvar MarkerSeverity2;\n(function(MarkerSeverity4) {\n  MarkerSeverity4[MarkerSeverity4[\"Hint\"] = 1] = \"Hint\";\n  MarkerSeverity4[MarkerSeverity4[\"Info\"] = 2] = \"Info\";\n  MarkerSeverity4[MarkerSeverity4[\"Warning\"] = 4] = \"Warning\";\n  MarkerSeverity4[MarkerSeverity4[\"Error\"] = 8] = \"Error\";\n})(MarkerSeverity2 || (MarkerSeverity2 = {}));\nvar MarkerTag;\n(function(MarkerTag3) {\n  MarkerTag3[MarkerTag3[\"Unnecessary\"] = 1] = \"Unnecessary\";\n  MarkerTag3[MarkerTag3[\"Deprecated\"] = 2] = \"Deprecated\";\n})(MarkerTag || (MarkerTag = {}));\nvar MinimapPosition;\n(function(MinimapPosition2) {\n  MinimapPosition2[MinimapPosition2[\"Inline\"] = 1] = \"Inline\";\n  MinimapPosition2[MinimapPosition2[\"Gutter\"] = 2] = \"Gutter\";\n})(MinimapPosition || (MinimapPosition = {}));\nvar MinimapSectionHeaderStyle;\n(function(MinimapSectionHeaderStyle2) {\n  MinimapSectionHeaderStyle2[MinimapSectionHeaderStyle2[\"Normal\"] = 1] = \"Normal\";\n  MinimapSectionHeaderStyle2[MinimapSectionHeaderStyle2[\"Underlined\"] = 2] = \"Underlined\";\n})(MinimapSectionHeaderStyle || (MinimapSectionHeaderStyle = {}));\nvar MouseTargetType;\n(function(MouseTargetType2) {\n  MouseTargetType2[MouseTargetType2[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n  MouseTargetType2[MouseTargetType2[\"TEXTAREA\"] = 1] = \"TEXTAREA\";\n  MouseTargetType2[MouseTargetType2[\"GUTTER_GLYPH_MARGIN\"] = 2] = \"GUTTER_GLYPH_MARGIN\";\n  MouseTargetType2[MouseTargetType2[\"GUTTER_LINE_NUMBERS\"] = 3] = \"GUTTER_LINE_NUMBERS\";\n  MouseTargetType2[MouseTargetType2[\"GUTTER_LINE_DECORATIONS\"] = 4] = \"GUTTER_LINE_DECORATIONS\";\n  MouseTargetType2[MouseTargetType2[\"GUTTER_VIEW_ZONE\"] = 5] = \"GUTTER_VIEW_ZONE\";\n  MouseTargetType2[MouseTargetType2[\"CONTENT_TEXT\"] = 6] = \"CONTENT_TEXT\";\n  MouseTargetType2[MouseTargetType2[\"CONTENT_EMPTY\"] = 7] = \"CONTENT_EMPTY\";\n  MouseTargetType2[MouseTargetType2[\"CONTENT_VIEW_ZONE\"] = 8] = \"CONTENT_VIEW_ZONE\";\n  MouseTargetType2[MouseTargetType2[\"CONTENT_WIDGET\"] = 9] = \"CONTENT_WIDGET\";\n  MouseTargetType2[MouseTargetType2[\"OVERVIEW_RULER\"] = 10] = \"OVERVIEW_RULER\";\n  MouseTargetType2[MouseTargetType2[\"SCROLLBAR\"] = 11] = \"SCROLLBAR\";\n  MouseTargetType2[MouseTargetType2[\"OVERLAY_WIDGET\"] = 12] = \"OVERLAY_WIDGET\";\n  MouseTargetType2[MouseTargetType2[\"OUTSIDE_EDITOR\"] = 13] = \"OUTSIDE_EDITOR\";\n})(MouseTargetType || (MouseTargetType = {}));\nvar NewSymbolNameTag2;\n(function(NewSymbolNameTag3) {\n  NewSymbolNameTag3[NewSymbolNameTag3[\"AIGenerated\"] = 1] = \"AIGenerated\";\n})(NewSymbolNameTag2 || (NewSymbolNameTag2 = {}));\nvar NewSymbolNameTriggerKind2;\n(function(NewSymbolNameTriggerKind3) {\n  NewSymbolNameTriggerKind3[NewSymbolNameTriggerKind3[\"Invoke\"] = 0] = \"Invoke\";\n  NewSymbolNameTriggerKind3[NewSymbolNameTriggerKind3[\"Automatic\"] = 1] = \"Automatic\";\n})(NewSymbolNameTriggerKind2 || (NewSymbolNameTriggerKind2 = {}));\nvar OverlayWidgetPositionPreference;\n(function(OverlayWidgetPositionPreference2) {\n  OverlayWidgetPositionPreference2[OverlayWidgetPositionPreference2[\"TOP_RIGHT_CORNER\"] = 0] = \"TOP_RIGHT_CORNER\";\n  OverlayWidgetPositionPreference2[OverlayWidgetPositionPreference2[\"BOTTOM_RIGHT_CORNER\"] = 1] = \"BOTTOM_RIGHT_CORNER\";\n  OverlayWidgetPositionPreference2[OverlayWidgetPositionPreference2[\"TOP_CENTER\"] = 2] = \"TOP_CENTER\";\n})(OverlayWidgetPositionPreference || (OverlayWidgetPositionPreference = {}));\nvar OverviewRulerLane2;\n(function(OverviewRulerLane3) {\n  OverviewRulerLane3[OverviewRulerLane3[\"Left\"] = 1] = \"Left\";\n  OverviewRulerLane3[OverviewRulerLane3[\"Center\"] = 2] = \"Center\";\n  OverviewRulerLane3[OverviewRulerLane3[\"Right\"] = 4] = \"Right\";\n  OverviewRulerLane3[OverviewRulerLane3[\"Full\"] = 7] = \"Full\";\n})(OverviewRulerLane2 || (OverviewRulerLane2 = {}));\nvar PartialAcceptTriggerKind;\n(function(PartialAcceptTriggerKind2) {\n  PartialAcceptTriggerKind2[PartialAcceptTriggerKind2[\"Word\"] = 0] = \"Word\";\n  PartialAcceptTriggerKind2[PartialAcceptTriggerKind2[\"Line\"] = 1] = \"Line\";\n  PartialAcceptTriggerKind2[PartialAcceptTriggerKind2[\"Suggest\"] = 2] = \"Suggest\";\n})(PartialAcceptTriggerKind || (PartialAcceptTriggerKind = {}));\nvar PositionAffinity;\n(function(PositionAffinity2) {\n  PositionAffinity2[PositionAffinity2[\"Left\"] = 0] = \"Left\";\n  PositionAffinity2[PositionAffinity2[\"Right\"] = 1] = \"Right\";\n  PositionAffinity2[PositionAffinity2[\"None\"] = 2] = \"None\";\n  PositionAffinity2[PositionAffinity2[\"LeftOfInjectedText\"] = 3] = \"LeftOfInjectedText\";\n  PositionAffinity2[PositionAffinity2[\"RightOfInjectedText\"] = 4] = \"RightOfInjectedText\";\n})(PositionAffinity || (PositionAffinity = {}));\nvar RenderLineNumbersType;\n(function(RenderLineNumbersType2) {\n  RenderLineNumbersType2[RenderLineNumbersType2[\"Off\"] = 0] = \"Off\";\n  RenderLineNumbersType2[RenderLineNumbersType2[\"On\"] = 1] = \"On\";\n  RenderLineNumbersType2[RenderLineNumbersType2[\"Relative\"] = 2] = \"Relative\";\n  RenderLineNumbersType2[RenderLineNumbersType2[\"Interval\"] = 3] = \"Interval\";\n  RenderLineNumbersType2[RenderLineNumbersType2[\"Custom\"] = 4] = \"Custom\";\n})(RenderLineNumbersType || (RenderLineNumbersType = {}));\nvar RenderMinimap;\n(function(RenderMinimap2) {\n  RenderMinimap2[RenderMinimap2[\"None\"] = 0] = \"None\";\n  RenderMinimap2[RenderMinimap2[\"Text\"] = 1] = \"Text\";\n  RenderMinimap2[RenderMinimap2[\"Blocks\"] = 2] = \"Blocks\";\n})(RenderMinimap || (RenderMinimap = {}));\nvar ScrollType;\n(function(ScrollType2) {\n  ScrollType2[ScrollType2[\"Smooth\"] = 0] = \"Smooth\";\n  ScrollType2[ScrollType2[\"Immediate\"] = 1] = \"Immediate\";\n})(ScrollType || (ScrollType = {}));\nvar ScrollbarVisibility;\n(function(ScrollbarVisibility2) {\n  ScrollbarVisibility2[ScrollbarVisibility2[\"Auto\"] = 1] = \"Auto\";\n  ScrollbarVisibility2[ScrollbarVisibility2[\"Hidden\"] = 2] = \"Hidden\";\n  ScrollbarVisibility2[ScrollbarVisibility2[\"Visible\"] = 3] = \"Visible\";\n})(ScrollbarVisibility || (ScrollbarVisibility = {}));\nvar SelectionDirection;\n(function(SelectionDirection3) {\n  SelectionDirection3[SelectionDirection3[\"LTR\"] = 0] = \"LTR\";\n  SelectionDirection3[SelectionDirection3[\"RTL\"] = 1] = \"RTL\";\n})(SelectionDirection || (SelectionDirection = {}));\nvar ShowLightbulbIconMode2;\n(function(ShowLightbulbIconMode3) {\n  ShowLightbulbIconMode3[\"Off\"] = \"off\";\n  ShowLightbulbIconMode3[\"OnCode\"] = \"onCode\";\n  ShowLightbulbIconMode3[\"On\"] = \"on\";\n})(ShowLightbulbIconMode2 || (ShowLightbulbIconMode2 = {}));\nvar SignatureHelpTriggerKind2;\n(function(SignatureHelpTriggerKind3) {\n  SignatureHelpTriggerKind3[SignatureHelpTriggerKind3[\"Invoke\"] = 1] = \"Invoke\";\n  SignatureHelpTriggerKind3[SignatureHelpTriggerKind3[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n  SignatureHelpTriggerKind3[SignatureHelpTriggerKind3[\"ContentChange\"] = 3] = \"ContentChange\";\n})(SignatureHelpTriggerKind2 || (SignatureHelpTriggerKind2 = {}));\nvar SymbolKind;\n(function(SymbolKind2) {\n  SymbolKind2[SymbolKind2[\"File\"] = 0] = \"File\";\n  SymbolKind2[SymbolKind2[\"Module\"] = 1] = \"Module\";\n  SymbolKind2[SymbolKind2[\"Namespace\"] = 2] = \"Namespace\";\n  SymbolKind2[SymbolKind2[\"Package\"] = 3] = \"Package\";\n  SymbolKind2[SymbolKind2[\"Class\"] = 4] = \"Class\";\n  SymbolKind2[SymbolKind2[\"Method\"] = 5] = \"Method\";\n  SymbolKind2[SymbolKind2[\"Property\"] = 6] = \"Property\";\n  SymbolKind2[SymbolKind2[\"Field\"] = 7] = \"Field\";\n  SymbolKind2[SymbolKind2[\"Constructor\"] = 8] = \"Constructor\";\n  SymbolKind2[SymbolKind2[\"Enum\"] = 9] = \"Enum\";\n  SymbolKind2[SymbolKind2[\"Interface\"] = 10] = \"Interface\";\n  SymbolKind2[SymbolKind2[\"Function\"] = 11] = \"Function\";\n  SymbolKind2[SymbolKind2[\"Variable\"] = 12] = \"Variable\";\n  SymbolKind2[SymbolKind2[\"Constant\"] = 13] = \"Constant\";\n  SymbolKind2[SymbolKind2[\"String\"] = 14] = \"String\";\n  SymbolKind2[SymbolKind2[\"Number\"] = 15] = \"Number\";\n  SymbolKind2[SymbolKind2[\"Boolean\"] = 16] = \"Boolean\";\n  SymbolKind2[SymbolKind2[\"Array\"] = 17] = \"Array\";\n  SymbolKind2[SymbolKind2[\"Object\"] = 18] = \"Object\";\n  SymbolKind2[SymbolKind2[\"Key\"] = 19] = \"Key\";\n  SymbolKind2[SymbolKind2[\"Null\"] = 20] = \"Null\";\n  SymbolKind2[SymbolKind2[\"EnumMember\"] = 21] = \"EnumMember\";\n  SymbolKind2[SymbolKind2[\"Struct\"] = 22] = \"Struct\";\n  SymbolKind2[SymbolKind2[\"Event\"] = 23] = \"Event\";\n  SymbolKind2[SymbolKind2[\"Operator\"] = 24] = \"Operator\";\n  SymbolKind2[SymbolKind2[\"TypeParameter\"] = 25] = \"TypeParameter\";\n})(SymbolKind || (SymbolKind = {}));\nvar SymbolTag;\n(function(SymbolTag2) {\n  SymbolTag2[SymbolTag2[\"Deprecated\"] = 1] = \"Deprecated\";\n})(SymbolTag || (SymbolTag = {}));\nvar TextDirection2;\n(function(TextDirection3) {\n  TextDirection3[TextDirection3[\"LTR\"] = 0] = \"LTR\";\n  TextDirection3[TextDirection3[\"RTL\"] = 1] = \"RTL\";\n})(TextDirection2 || (TextDirection2 = {}));\nvar TextEditorCursorBlinkingStyle;\n(function(TextEditorCursorBlinkingStyle2) {\n  TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2[\"Hidden\"] = 0] = \"Hidden\";\n  TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2[\"Blink\"] = 1] = \"Blink\";\n  TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2[\"Smooth\"] = 2] = \"Smooth\";\n  TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2[\"Phase\"] = 3] = \"Phase\";\n  TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2[\"Expand\"] = 4] = \"Expand\";\n  TextEditorCursorBlinkingStyle2[TextEditorCursorBlinkingStyle2[\"Solid\"] = 5] = \"Solid\";\n})(TextEditorCursorBlinkingStyle || (TextEditorCursorBlinkingStyle = {}));\nvar TextEditorCursorStyle2;\n(function(TextEditorCursorStyle3) {\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"Line\"] = 1] = \"Line\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"Block\"] = 2] = \"Block\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"Underline\"] = 3] = \"Underline\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"LineThin\"] = 4] = \"LineThin\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"BlockOutline\"] = 5] = \"BlockOutline\";\n  TextEditorCursorStyle3[TextEditorCursorStyle3[\"UnderlineThin\"] = 6] = \"UnderlineThin\";\n})(TextEditorCursorStyle2 || (TextEditorCursorStyle2 = {}));\nvar TrackedRangeStickiness;\n(function(TrackedRangeStickiness2) {\n  TrackedRangeStickiness2[TrackedRangeStickiness2[\"AlwaysGrowsWhenTypingAtEdges\"] = 0] = \"AlwaysGrowsWhenTypingAtEdges\";\n  TrackedRangeStickiness2[TrackedRangeStickiness2[\"NeverGrowsWhenTypingAtEdges\"] = 1] = \"NeverGrowsWhenTypingAtEdges\";\n  TrackedRangeStickiness2[TrackedRangeStickiness2[\"GrowsOnlyWhenTypingBefore\"] = 2] = \"GrowsOnlyWhenTypingBefore\";\n  TrackedRangeStickiness2[TrackedRangeStickiness2[\"GrowsOnlyWhenTypingAfter\"] = 3] = \"GrowsOnlyWhenTypingAfter\";\n})(TrackedRangeStickiness || (TrackedRangeStickiness = {}));\nvar WrappingIndent;\n(function(WrappingIndent2) {\n  WrappingIndent2[WrappingIndent2[\"None\"] = 0] = \"None\";\n  WrappingIndent2[WrappingIndent2[\"Same\"] = 1] = \"Same\";\n  WrappingIndent2[WrappingIndent2[\"Indent\"] = 2] = \"Indent\";\n  WrappingIndent2[WrappingIndent2[\"DeepIndent\"] = 3] = \"DeepIndent\";\n})(WrappingIndent || (WrappingIndent = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/editorBaseApi.js\nvar KeyMod = class {\n  static {\n    this.CtrlCmd = 2048;\n  }\n  static {\n    this.Shift = 1024;\n  }\n  static {\n    this.Alt = 512;\n  }\n  static {\n    this.WinCtrl = 256;\n  }\n  static chord(firstPart, secondPart) {\n    return KeyChord(firstPart, secondPart);\n  }\n};\nfunction createMonacoBaseAPI() {\n  return {\n    editor: void 0,\n    // undefined override expected here\n    languages: void 0,\n    // undefined override expected here\n    CancellationTokenSource,\n    Emitter,\n    KeyCode,\n    KeyMod,\n    Position,\n    Range,\n    Selection,\n    SelectionDirection,\n    MarkerSeverity: MarkerSeverity2,\n    MarkerTag,\n    Uri: URI,\n    Token\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor.js\ninit_window();\ninit_lifecycle();\ninit_strings();\ninit_uri();\ninit_editorExtensions();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/editorWorkerService.js\ninit_async();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/worker/webWorker.js\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_platform();\ninit_strings();\nvar DEFAULT_CHANNEL = \"default\";\nvar INITIALIZE = \"$initialize\";\nvar webWorkerWarningLogged = false;\nfunction logOnceWebWorkerWarning(err) {\n  if (!isWeb) {\n    return;\n  }\n  if (!webWorkerWarningLogged) {\n    webWorkerWarningLogged = true;\n    console.warn(\"Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq\");\n  }\n  console.warn(err.message);\n}\nvar RequestMessage = class {\n  constructor(vsWorker, req, channel, method, args) {\n    this.vsWorker = vsWorker;\n    this.req = req;\n    this.channel = channel;\n    this.method = method;\n    this.args = args;\n    this.type = 0;\n  }\n};\nvar ReplyMessage = class {\n  constructor(vsWorker, seq, res, err) {\n    this.vsWorker = vsWorker;\n    this.seq = seq;\n    this.res = res;\n    this.err = err;\n    this.type = 1;\n  }\n};\nvar SubscribeEventMessage = class {\n  constructor(vsWorker, req, channel, eventName, arg) {\n    this.vsWorker = vsWorker;\n    this.req = req;\n    this.channel = channel;\n    this.eventName = eventName;\n    this.arg = arg;\n    this.type = 2;\n  }\n};\nvar EventMessage = class {\n  constructor(vsWorker, req, event) {\n    this.vsWorker = vsWorker;\n    this.req = req;\n    this.event = event;\n    this.type = 3;\n  }\n};\nvar UnsubscribeEventMessage = class {\n  constructor(vsWorker, req) {\n    this.vsWorker = vsWorker;\n    this.req = req;\n    this.type = 4;\n  }\n};\nvar WebWorkerProtocol = class {\n  constructor(handler) {\n    this._workerId = -1;\n    this._handler = handler;\n    this._lastSentReq = 0;\n    this._pendingReplies = /* @__PURE__ */ Object.create(null);\n    this._pendingEmitters = /* @__PURE__ */ new Map();\n    this._pendingEvents = /* @__PURE__ */ new Map();\n  }\n  setWorkerId(workerId) {\n    this._workerId = workerId;\n  }\n  sendMessage(channel, method, args) {\n    const req = String(++this._lastSentReq);\n    return new Promise((resolve3, reject) =\u003e {\n      this._pendingReplies[req] = {\n        resolve: resolve3,\n        reject\n      };\n      this._send(new RequestMessage(this._workerId, req, channel, method, args));\n    });\n  }\n  listen(channel, eventName, arg) {\n    let req = null;\n    const emitter = new Emitter({\n      onWillAddFirstListener: () =\u003e {\n        req = String(++this._lastSentReq);\n        this._pendingEmitters.set(req, emitter);\n        this._send(new SubscribeEventMessage(this._workerId, req, channel, eventName, arg));\n      },\n      onDidRemoveLastListener: () =\u003e {\n        this._pendingEmitters.delete(req);\n        this._send(new UnsubscribeEventMessage(this._workerId, req));\n        req = null;\n      }\n    });\n    return emitter.event;\n  }\n  handleMessage(message) {\n    if (!message || !message.vsWorker) {\n      return;\n    }\n    if (this._workerId !== -1 \u0026\u0026 message.vsWorker !== this._workerId) {\n      return;\n    }\n    this._handleMessage(message);\n  }\n  createProxyToRemoteChannel(channel, sendMessageBarrier) {\n    const handler = {\n      get: (target, name) =\u003e {\n        if (typeof name === \"string\" \u0026\u0026 !target[name]) {\n          if (propertyIsDynamicEvent(name)) {\n            target[name] = (arg) =\u003e {\n              return this.listen(channel, name, arg);\n            };\n          } else if (propertyIsEvent(name)) {\n            target[name] = this.listen(channel, name, void 0);\n          } else if (name.charCodeAt(0) === 36) {\n            target[name] = async (...myArgs) =\u003e {\n              await sendMessageBarrier?.();\n              return this.sendMessage(channel, name, myArgs);\n            };\n          }\n        }\n        return target[name];\n      }\n    };\n    return new Proxy(/* @__PURE__ */ Object.create(null), handler);\n  }\n  _handleMessage(msg) {\n    switch (msg.type) {\n      case 1:\n        return this._handleReplyMessage(msg);\n      case 0:\n        return this._handleRequestMessage(msg);\n      case 2:\n        return this._handleSubscribeEventMessage(msg);\n      case 3:\n        return this._handleEventMessage(msg);\n      case 4:\n        return this._handleUnsubscribeEventMessage(msg);\n    }\n  }\n  _handleReplyMessage(replyMessage) {\n    if (!this._pendingReplies[replyMessage.seq]) {\n      console.warn(\"Got reply to unknown seq\");\n      return;\n    }\n    const reply = this._pendingReplies[replyMessage.seq];\n    delete this._pendingReplies[replyMessage.seq];\n    if (replyMessage.err) {\n      let err = replyMessage.err;\n      if (replyMessage.err.$isError) {\n        err = new Error();\n        err.name = replyMessage.err.name;\n        err.message = replyMessage.err.message;\n        err.stack = replyMessage.err.stack;\n      }\n      reply.reject(err);\n      return;\n    }\n    reply.resolve(replyMessage.res);\n  }\n  _handleRequestMessage(requestMessage) {\n    const req = requestMessage.req;\n    const result = this._handler.handleMessage(requestMessage.channel, requestMessage.method, requestMessage.args);\n    result.then((r) =\u003e {\n      this._send(new ReplyMessage(this._workerId, req, r, void 0));\n    }, (e) =\u003e {\n      if (e.detail instanceof Error) {\n        e.detail = transformErrorForSerialization(e.detail);\n      }\n      this._send(new ReplyMessage(this._workerId, req, void 0, transformErrorForSerialization(e)));\n    });\n  }\n  _handleSubscribeEventMessage(msg) {\n    const req = msg.req;\n    const disposable = this._handler.handleEvent(msg.channel, msg.eventName, msg.arg)((event) =\u003e {\n      this._send(new EventMessage(this._workerId, req, event));\n    });\n    this._pendingEvents.set(req, disposable);\n  }\n  _handleEventMessage(msg) {\n    if (!this._pendingEmitters.has(msg.req)) {\n      console.warn(\"Got event for unknown req\");\n      return;\n    }\n    this._pendingEmitters.get(msg.req).fire(msg.event);\n  }\n  _handleUnsubscribeEventMessage(msg) {\n    if (!this._pendingEvents.has(msg.req)) {\n      console.warn(\"Got unsubscribe for unknown req\");\n      return;\n    }\n    this._pendingEvents.get(msg.req).dispose();\n    this._pendingEvents.delete(msg.req);\n  }\n  _send(msg) {\n    const transfer = [];\n    if (msg.type === 0) {\n      for (let i2 = 0; i2 \u003c msg.args.length; i2++) {\n        if (msg.args[i2] instanceof ArrayBuffer) {\n          transfer.push(msg.args[i2]);\n        }\n      }\n    } else if (msg.type === 1) {\n      if (msg.res instanceof ArrayBuffer) {\n        transfer.push(msg.res);\n      }\n    }\n    this._handler.sendMessage(msg, transfer);\n  }\n};\nvar WebWorkerClient = class extends Disposable {\n  constructor(worker) {\n    super();\n    this._localChannels = /* @__PURE__ */ new Map();\n    this._worker = this._register(worker);\n    this._register(this._worker.onMessage((msg) =\u003e {\n      this._protocol.handleMessage(msg);\n    }));\n    this._register(this._worker.onError((err) =\u003e {\n      logOnceWebWorkerWarning(err);\n      onUnexpectedError(err);\n    }));\n    this._protocol = new WebWorkerProtocol({\n      sendMessage: (msg, transfer) =\u003e {\n        this._worker.postMessage(msg, transfer);\n      },\n      handleMessage: (channel, method, args) =\u003e {\n        return this._handleMessage(channel, method, args);\n      },\n      handleEvent: (channel, eventName, arg) =\u003e {\n        return this._handleEvent(channel, eventName, arg);\n      }\n    });\n    this._protocol.setWorkerId(this._worker.getId());\n    this._onModuleLoaded = this._protocol.sendMessage(DEFAULT_CHANNEL, INITIALIZE, [\n      this._worker.getId()\n    ]);\n    this.proxy = this._protocol.createProxyToRemoteChannel(DEFAULT_CHANNEL, async () =\u003e {\n      await this._onModuleLoaded;\n    });\n    this._onModuleLoaded.catch((e) =\u003e {\n      this._onError(\"Worker failed to load \", e);\n    });\n  }\n  _handleMessage(channelName, method, args) {\n    const channel = this._localChannels.get(channelName);\n    if (!channel) {\n      return Promise.reject(new Error(`Missing channel ${channelName} on main thread`));\n    }\n    if (typeof channel[method] !== \"function\") {\n      return Promise.reject(new Error(`Missing method ${method} on main thread channel ${channelName}`));\n    }\n    try {\n      return Promise.resolve(channel[method].apply(channel, args));\n    } catch (e) {\n      return Promise.reject(e);\n    }\n  }\n  _handleEvent(channelName, eventName, arg) {\n    const channel = this._localChannels.get(channelName);\n    if (!channel) {\n      throw new Error(`Missing channel ${channelName} on main thread`);\n    }\n    if (propertyIsDynamicEvent(eventName)) {\n      const event = channel[eventName].call(channel, arg);\n      if (typeof event !== \"function\") {\n        throw new Error(`Missing dynamic event ${eventName} on main thread channel ${channelName}.`);\n      }\n      return event;\n    }\n    if (propertyIsEvent(eventName)) {\n      const event = channel[eventName];\n      if (typeof event !== \"function\") {\n        throw new Error(`Missing event ${eventName} on main thread channel ${channelName}.`);\n      }\n      return event;\n    }\n    throw new Error(`Malformed event name ${eventName}`);\n  }\n  setChannel(channel, handler) {\n    this._localChannels.set(channel, handler);\n  }\n  _onError(message, error) {\n    console.error(message);\n    console.info(error);\n  }\n};\nfunction propertyIsEvent(name) {\n  return name[0] === \"o\" \u0026\u0026 name[1] === \"n\" \u0026\u0026 isUpperAsciiLetter(name.charCodeAt(2));\n}\nfunction propertyIsDynamicEvent(name) {\n  return /^onDynamic/.test(name) \u0026\u0026 isUpperAsciiLetter(name.charCodeAt(9));\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/webWorkerFactory.js\ninit_errors();\ninit_network();\ninit_uri();\ninit_lifecycle();\ninit_arrays();\ninit_nls();\ninit_event();\nvar ttPolicy5;\nif (typeof self === \"object\" \u0026\u0026 self.constructor \u0026\u0026 self.constructor.name === \"DedicatedWorkerGlobalScope\" \u0026\u0026 globalThis.workerttPolicy !== void 0) {\n  ttPolicy5 = globalThis.workerttPolicy;\n} else {\n  ttPolicy5 = createTrustedTypesPolicy(\"defaultWorkerFactory\", { createScriptURL: (value) =\u003e value });\n}\nfunction getWorker(descriptor, id) {\n  const label = descriptor.label || \"anonymous\" + id;\n  const monacoEnvironment2 = globalThis.MonacoEnvironment;\n  if (monacoEnvironment2) {\n    if (typeof monacoEnvironment2.getWorker === \"function\") {\n      return monacoEnvironment2.getWorker(\"workerMain.js\", label);\n    }\n    if (typeof monacoEnvironment2.getWorkerUrl === \"function\") {\n      const workerUrl = monacoEnvironment2.getWorkerUrl(\"workerMain.js\", label);\n      return new Worker(ttPolicy5 ? ttPolicy5.createScriptURL(workerUrl) : workerUrl, { name: label, type: \"module\" });\n    }\n  }\n  const esmWorkerLocation = descriptor.esmModuleLocation;\n  if (esmWorkerLocation) {\n    const workerUrl = getWorkerBootstrapUrl(label, esmWorkerLocation.toString(true));\n    const worker = new Worker(ttPolicy5 ? ttPolicy5.createScriptURL(workerUrl) : workerUrl, { name: label, type: \"module\" });\n    return whenESMWorkerReady(worker);\n  }\n  throw new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n}\nfunction getWorkerBootstrapUrl(label, workerScriptUrl) {\n  if (/^((http:)|(https:)|(file:))/.test(workerScriptUrl) \u0026\u0026 workerScriptUrl.substring(0, globalThis.origin.length) !== globalThis.origin) {\n  } else {\n    const start = workerScriptUrl.lastIndexOf(\"?\");\n    const end = workerScriptUrl.lastIndexOf(\"#\", start);\n    const params = start \u003e 0 ? new URLSearchParams(workerScriptUrl.substring(start + 1, ~end ? end : void 0)) : new URLSearchParams();\n    COI.addSearchParam(params, true, true);\n    const search2 = params.toString();\n    if (!search2) {\n      workerScriptUrl = `${workerScriptUrl}#${label}`;\n    } else {\n      workerScriptUrl = `${workerScriptUrl}?${params.toString()}#${label}`;\n    }\n  }\n  const blob = new Blob([coalesce([\n    `/*${label}*/`,\n    `globalThis._VSCODE_NLS_MESSAGES = ${JSON.stringify(getNLSMessages())};`,\n    `globalThis._VSCODE_NLS_LANGUAGE = ${JSON.stringify(getNLSLanguage())};`,\n    `globalThis._VSCODE_FILE_ROOT = ${JSON.stringify(globalThis._VSCODE_FILE_ROOT)};`,\n    `const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value =\u003e value });`,\n    `globalThis.workerttPolicy = ttPolicy;`,\n    `await import(ttPolicy?.createScriptURL(${JSON.stringify(workerScriptUrl)}) ?? ${JSON.stringify(workerScriptUrl)});`,\n    `globalThis.postMessage({ type: 'vscode-worker-ready' });`,\n    `/*${label}*/`\n  ]).join(\"\")], { type: \"application/javascript\" });\n  return URL.createObjectURL(blob);\n}\nfunction whenESMWorkerReady(worker) {\n  return new Promise((resolve3, reject) =\u003e {\n    worker.onmessage = function(e) {\n      if (e.data.type === \"vscode-worker-ready\") {\n        worker.onmessage = null;\n        resolve3(worker);\n      }\n    };\n    worker.onerror = reject;\n  });\n}\nfunction isPromiseLike(obj) {\n  return !!obj \u0026\u0026 typeof obj.then === \"function\";\n}\nvar WebWorker = class _WebWorker extends Disposable {\n  static {\n    this.LAST_WORKER_ID = 0;\n  }\n  constructor(descriptorOrWorker) {\n    super();\n    this._onMessage = this._register(new Emitter());\n    this.onMessage = this._onMessage.event;\n    this._onError = this._register(new Emitter());\n    this.onError = this._onError.event;\n    this.id = ++_WebWorker.LAST_WORKER_ID;\n    const workerOrPromise = descriptorOrWorker instanceof Worker ? descriptorOrWorker : \"then\" in descriptorOrWorker ? descriptorOrWorker : getWorker(descriptorOrWorker, this.id);\n    if (isPromiseLike(workerOrPromise)) {\n      this.worker = workerOrPromise;\n    } else {\n      this.worker = Promise.resolve(workerOrPromise);\n    }\n    this.postMessage(\"-please-ignore-\", []);\n    const errorHandler2 = (ev) =\u003e {\n      this._onError.fire(ev);\n    };\n    this.worker.then((w) =\u003e {\n      w.onmessage = (ev) =\u003e {\n        this._onMessage.fire(ev.data);\n      };\n      w.onmessageerror = (ev) =\u003e {\n        this._onError.fire(ev);\n      };\n      if (typeof w.addEventListener === \"function\") {\n        w.addEventListener(\"error\", errorHandler2);\n      }\n    });\n    this._register(toDisposable(() =\u003e {\n      this.worker?.then((w) =\u003e {\n        w.onmessage = null;\n        w.onmessageerror = null;\n        w.removeEventListener(\"error\", errorHandler2);\n        w.terminate();\n      });\n      this.worker = null;\n    }));\n  }\n  getId() {\n    return this.id;\n  }\n  postMessage(message, transfer) {\n    this.worker?.then((w) =\u003e {\n      try {\n        w.postMessage(message, transfer);\n      } catch (err) {\n        console.log(\"!!! postMessage\", err);\n        onUnexpectedError(err);\n        onUnexpectedError(new Error(`FAILED to post message to worker`, { cause: err }));\n      }\n    });\n  }\n};\nvar WebWorkerDescriptor = class {\n  constructor(esmModuleLocation, label) {\n    this.esmModuleLocation = esmModuleLocation;\n    this.label = label;\n  }\n};\nfunction createWebWorker(arg0, arg1) {\n  const workerDescriptorOrWorker = URI.isUri(arg0) ? new WebWorkerDescriptor(arg0, arg1) : arg0;\n  return new WebWorkerClient(new WebWorker(workerDescriptorOrWorker));\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/editorWorkerService.js\ninit_range();\ninit_languageConfigurationRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/editorWebWorker.js\ninit_range();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/linkComputer.js\ninit_characterClassifier();\nvar Uint8Matrix = class {\n  constructor(rows, cols, defaultValue) {\n    const data = new Uint8Array(rows * cols);\n    for (let i2 = 0, len = rows * cols; i2 \u003c len; i2++) {\n      data[i2] = defaultValue;\n    }\n    this._data = data;\n    this.rows = rows;\n    this.cols = cols;\n  }\n  get(row, col) {\n    return this._data[row * this.cols + col];\n  }\n  set(row, col, value) {\n    this._data[row * this.cols + col] = value;\n  }\n};\nvar StateMachine = class {\n  constructor(edges) {\n    let maxCharCode = 0;\n    let maxState = 0;\n    for (let i2 = 0, len = edges.length; i2 \u003c len; i2++) {\n      const [from, chCode, to] = edges[i2];\n      if (chCode \u003e maxCharCode) {\n        maxCharCode = chCode;\n      }\n      if (from \u003e maxState) {\n        maxState = from;\n      }\n      if (to \u003e maxState) {\n        maxState = to;\n      }\n    }\n    maxCharCode++;\n    maxState++;\n    const states = new Uint8Matrix(\n      maxState,\n      maxCharCode,\n      0\n      /* State.Invalid */\n    );\n    for (let i2 = 0, len = edges.length; i2 \u003c len; i2++) {\n      const [from, chCode, to] = edges[i2];\n      states.set(from, chCode, to);\n    }\n    this._states = states;\n    this._maxCharCode = maxCharCode;\n  }\n  nextState(currentState, chCode) {\n    if (chCode \u003c 0 || chCode \u003e= this._maxCharCode) {\n      return 0;\n    }\n    return this._states.get(currentState, chCode);\n  }\n};\nvar _stateMachine = null;\nfunction getStateMachine() {\n  if (_stateMachine === null) {\n    _stateMachine = new StateMachine([\n      [\n        1,\n        104,\n        2\n        /* State.H */\n      ],\n      [\n        1,\n        72,\n        2\n        /* State.H */\n      ],\n      [\n        1,\n        102,\n        6\n        /* State.F */\n      ],\n      [\n        1,\n        70,\n        6\n        /* State.F */\n      ],\n      [\n        2,\n        116,\n        3\n        /* State.HT */\n      ],\n      [\n        2,\n        84,\n        3\n        /* State.HT */\n      ],\n      [\n        3,\n        116,\n        4\n        /* State.HTT */\n      ],\n      [\n        3,\n        84,\n        4\n        /* State.HTT */\n      ],\n      [\n        4,\n        112,\n        5\n        /* State.HTTP */\n      ],\n      [\n        4,\n        80,\n        5\n        /* State.HTTP */\n      ],\n      [\n        5,\n        115,\n        9\n        /* State.BeforeColon */\n      ],\n      [\n        5,\n        83,\n        9\n        /* State.BeforeColon */\n      ],\n      [\n        5,\n        58,\n        10\n        /* State.AfterColon */\n      ],\n      [\n        6,\n        105,\n        7\n        /* State.FI */\n      ],\n      [\n        6,\n        73,\n        7\n        /* State.FI */\n      ],\n      [\n        7,\n        108,\n        8\n        /* State.FIL */\n      ],\n      [\n        7,\n        76,\n        8\n        /* State.FIL */\n      ],\n      [\n        8,\n        101,\n        9\n        /* State.BeforeColon */\n      ],\n      [\n        8,\n        69,\n        9\n        /* State.BeforeColon */\n      ],\n      [\n        9,\n        58,\n        10\n        /* State.AfterColon */\n      ],\n      [\n        10,\n        47,\n        11\n        /* State.AlmostThere */\n      ],\n      [\n        11,\n        47,\n        12\n        /* State.End */\n      ]\n    ]);\n  }\n  return _stateMachine;\n}\nvar _classifier = null;\nfunction getClassifier() {\n  if (_classifier === null) {\n    _classifier = new CharacterClassifier(\n      0\n      /* CharacterClass.None */\n    );\n    const FORCE_TERMINATION_CHARACTERS = ` \t\u003c\u003e'\"\\u3001\\u3002\\uFF61\\uFF64\\uFF0C\\uFF0E\\uFF1A\\uFF1B\\u2018\\u3008\\u300C\\u300E\\u3014\\uFF08\\uFF3B\\uFF5B\\uFF62\\uFF63\\uFF5D\\uFF3D\\uFF09\\u3015\\u300F\\u300D\\u3009\\u2019\\uFF40\\uFF5E\\u2026|`;\n    for (let i2 = 0; i2 \u003c FORCE_TERMINATION_CHARACTERS.length; i2++) {\n      _classifier.set(\n        FORCE_TERMINATION_CHARACTERS.charCodeAt(i2),\n        1\n        /* CharacterClass.ForceTermination */\n      );\n    }\n    const CANNOT_END_WITH_CHARACTERS = \".,;:\";\n    for (let i2 = 0; i2 \u003c CANNOT_END_WITH_CHARACTERS.length; i2++) {\n      _classifier.set(\n        CANNOT_END_WITH_CHARACTERS.charCodeAt(i2),\n        2\n        /* CharacterClass.CannotEndIn */\n      );\n    }\n  }\n  return _classifier;\n}\nvar LinkComputer = class _LinkComputer {\n  static _createLink(classifier, line, lineNumber, linkBeginIndex, linkEndIndex) {\n    let lastIncludedCharIndex = linkEndIndex - 1;\n    do {\n      const chCode = line.charCodeAt(lastIncludedCharIndex);\n      const chClass = classifier.get(chCode);\n      if (chClass !== 2) {\n        break;\n      }\n      lastIncludedCharIndex--;\n    } while (lastIncludedCharIndex \u003e linkBeginIndex);\n    if (linkBeginIndex \u003e 0) {\n      const charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1);\n      const lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex);\n      if (charCodeBeforeLink === 40 \u0026\u0026 lastCharCodeInLink === 41 || charCodeBeforeLink === 91 \u0026\u0026 lastCharCodeInLink === 93 || charCodeBeforeLink === 123 \u0026\u0026 lastCharCodeInLink === 125) {\n        lastIncludedCharIndex--;\n      }\n    }\n    return {\n      range: {\n        startLineNumber: lineNumber,\n        startColumn: linkBeginIndex + 1,\n        endLineNumber: lineNumber,\n        endColumn: lastIncludedCharIndex + 2\n      },\n      url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1)\n    };\n  }\n  static computeLinks(model, stateMachine = getStateMachine()) {\n    const classifier = getClassifier();\n    const result = [];\n    for (let i2 = 1, lineCount = model.getLineCount(); i2 \u003c= lineCount; i2++) {\n      const line = model.getLineContent(i2);\n      const len = line.length;\n      let j = 0;\n      let linkBeginIndex = 0;\n      let linkBeginChCode = 0;\n      let state = 1;\n      let hasOpenParens = false;\n      let hasOpenSquareBracket = false;\n      let inSquareBrackets = false;\n      let hasOpenCurlyBracket = false;\n      while (j \u003c len) {\n        let resetStateMachine = false;\n        const chCode = line.charCodeAt(j);\n        if (state === 13) {\n          let chClass;\n          switch (chCode) {\n            case 40:\n              hasOpenParens = true;\n              chClass = 0;\n              break;\n            case 41:\n              chClass = hasOpenParens ? 0 : 1;\n              break;\n            case 91:\n              inSquareBrackets = true;\n              hasOpenSquareBracket = true;\n              chClass = 0;\n              break;\n            case 93:\n              inSquareBrackets = false;\n              chClass = hasOpenSquareBracket ? 0 : 1;\n              break;\n            case 123:\n              hasOpenCurlyBracket = true;\n              chClass = 0;\n              break;\n            case 125:\n              chClass = hasOpenCurlyBracket ? 0 : 1;\n              break;\n            // The following three rules make it that ' or \" or ` are allowed inside links\n            // only if the link is wrapped by some other quote character\n            case 39:\n            case 34:\n            case 96:\n              if (linkBeginChCode === chCode) {\n                chClass = 1;\n              } else if (linkBeginChCode === 39 || linkBeginChCode === 34 || linkBeginChCode === 96) {\n                chClass = 0;\n              } else {\n                chClass = 1;\n              }\n              break;\n            case 42:\n              chClass = linkBeginChCode === 42 ? 1 : 0;\n              break;\n            case 32:\n              chClass = inSquareBrackets ? 0 : 1;\n              break;\n            default:\n              chClass = classifier.get(chCode);\n          }\n          if (chClass === 1) {\n            result.push(_LinkComputer._createLink(classifier, line, i2, linkBeginIndex, j));\n            resetStateMachine = true;\n          }\n        } else if (state === 12) {\n          let chClass;\n          if (chCode === 91) {\n            hasOpenSquareBracket = true;\n            chClass = 0;\n          } else {\n            chClass = classifier.get(chCode);\n          }\n          if (chClass === 1) {\n            resetStateMachine = true;\n          } else {\n            state = 13;\n          }\n        } else {\n          state = stateMachine.nextState(state, chCode);\n          if (state === 0) {\n            resetStateMachine = true;\n          }\n        }\n        if (resetStateMachine) {\n          state = 1;\n          hasOpenParens = false;\n          hasOpenSquareBracket = false;\n          hasOpenCurlyBracket = false;\n          linkBeginIndex = j + 1;\n          linkBeginChCode = chCode;\n        }\n        j++;\n      }\n      if (state === 13) {\n        result.push(_LinkComputer._createLink(classifier, line, i2, linkBeginIndex, len));\n      }\n    }\n    return result;\n  }\n};\nfunction computeLinks(model) {\n  if (!model || typeof model.getLineCount !== \"function\" || typeof model.getLineContent !== \"function\") {\n    return [];\n  }\n  return LinkComputer.computeLinks(model);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/supports/inplaceReplaceSupport.js\nvar BasicInplaceReplace = class _BasicInplaceReplace {\n  constructor() {\n    this._defaultValueSet = [\n      [\"true\", \"false\"],\n      [\"True\", \"False\"],\n      [\"Private\", \"Public\", \"Friend\", \"ReadOnly\", \"Partial\", \"Protected\", \"WriteOnly\"],\n      [\"public\", \"protected\", \"private\"]\n    ];\n  }\n  static {\n    this.INSTANCE = new _BasicInplaceReplace();\n  }\n  navigateValueSet(range1, text1, range2, text2, up) {\n    if (range1 \u0026\u0026 text1) {\n      const result = this.doNavigateValueSet(text1, up);\n      if (result) {\n        return {\n          range: range1,\n          value: result\n        };\n      }\n    }\n    if (range2 \u0026\u0026 text2) {\n      const result = this.doNavigateValueSet(text2, up);\n      if (result) {\n        return {\n          range: range2,\n          value: result\n        };\n      }\n    }\n    return null;\n  }\n  doNavigateValueSet(text2, up) {\n    const numberResult = this.numberReplace(text2, up);\n    if (numberResult !== null) {\n      return numberResult;\n    }\n    return this.textReplace(text2, up);\n  }\n  numberReplace(value, up) {\n    const precision = Math.pow(10, value.length - (value.lastIndexOf(\".\") + 1));\n    let n1 = Number(value);\n    const n2 = parseFloat(value);\n    if (!isNaN(n1) \u0026\u0026 !isNaN(n2) \u0026\u0026 n1 === n2) {\n      if (n1 === 0 \u0026\u0026 !up) {\n        return null;\n      } else {\n        n1 = Math.floor(n1 * precision);\n        n1 += up ? precision : -precision;\n        return String(n1 / precision);\n      }\n    }\n    return null;\n  }\n  textReplace(value, up) {\n    return this.valueSetsReplace(this._defaultValueSet, value, up);\n  }\n  valueSetsReplace(valueSets, value, up) {\n    let result = null;\n    for (let i2 = 0, len = valueSets.length; result === null \u0026\u0026 i2 \u003c len; i2++) {\n      result = this.valueSetReplace(valueSets[i2], value, up);\n    }\n    return result;\n  }\n  valueSetReplace(valueSet, value, up) {\n    let idx = valueSet.indexOf(value);\n    if (idx \u003e= 0) {\n      idx += up ? 1 : -1;\n      if (idx \u003c 0) {\n        idx = valueSet.length - 1;\n      } else {\n        idx %= valueSet.length;\n      }\n      return valueSet[idx];\n    }\n    return null;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/editorWebWorker.js\ninit_stopwatch();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js\ninit_color();\nfunction _parseCaptureGroups(captureGroups) {\n  const values = [];\n  for (const captureGroup of captureGroups) {\n    const parsedNumber = Number(captureGroup);\n    if (parsedNumber || parsedNumber === 0 \u0026\u0026 captureGroup.replace(/\\s/g, \"\") !== \"\") {\n      values.push(parsedNumber);\n    }\n  }\n  return values;\n}\nfunction _toIColor(r, g, b, a) {\n  return {\n    red: r / 255,\n    blue: b / 255,\n    green: g / 255,\n    alpha: a\n  };\n}\nfunction _findRange(model, match2) {\n  const index = match2.index;\n  const length = match2[0].length;\n  if (index === void 0) {\n    return;\n  }\n  const startPosition = model.positionAt(index);\n  const range2 = {\n    startLineNumber: startPosition.lineNumber,\n    startColumn: startPosition.column,\n    endLineNumber: startPosition.lineNumber,\n    endColumn: startPosition.column + length\n  };\n  return range2;\n}\nfunction _findHexColorInformation(range2, hexValue) {\n  if (!range2) {\n    return;\n  }\n  const parsedHexColor = Color.Format.CSS.parseHex(hexValue);\n  if (!parsedHexColor) {\n    return;\n  }\n  return {\n    range: range2,\n    color: _toIColor(parsedHexColor.rgba.r, parsedHexColor.rgba.g, parsedHexColor.rgba.b, parsedHexColor.rgba.a)\n  };\n}\nfunction _findRGBColorInformation(range2, matches, isAlpha) {\n  if (!range2 || matches.length !== 1) {\n    return;\n  }\n  const match2 = matches[0];\n  const captureGroups = match2.values();\n  const parsedRegex = _parseCaptureGroups(captureGroups);\n  return {\n    range: range2,\n    color: _toIColor(parsedRegex[0], parsedRegex[1], parsedRegex[2], isAlpha ? parsedRegex[3] : 1)\n  };\n}\nfunction _findHSLColorInformation(range2, matches, isAlpha) {\n  if (!range2 || matches.length !== 1) {\n    return;\n  }\n  const match2 = matches[0];\n  const captureGroups = match2.values();\n  const parsedRegex = _parseCaptureGroups(captureGroups);\n  const colorEquivalent = new Color(new HSLA(parsedRegex[0], parsedRegex[1] / 100, parsedRegex[2] / 100, isAlpha ? parsedRegex[3] : 1));\n  return {\n    range: range2,\n    color: _toIColor(colorEquivalent.rgba.r, colorEquivalent.rgba.g, colorEquivalent.rgba.b, colorEquivalent.rgba.a)\n  };\n}\nfunction _findMatches(model, regex) {\n  if (typeof model === \"string\") {\n    return [...model.matchAll(regex)];\n  } else {\n    return model.findMatches(regex);\n  }\n}\nfunction computeColors(model) {\n  const result = [];\n  const initialValidationRegex = /\\b(rgb|rgba|hsl|hsla)(\\([0-9\\s,.\\%]*\\))|^(#)([A-Fa-f0-9]{3})\\b|^(#)([A-Fa-f0-9]{4})\\b|^(#)([A-Fa-f0-9]{6})\\b|^(#)([A-Fa-f0-9]{8})\\b|(?\u003c=['\"\\s])(#)([A-Fa-f0-9]{3})\\b|(?\u003c=['\"\\s])(#)([A-Fa-f0-9]{4})\\b|(?\u003c=['\"\\s])(#)([A-Fa-f0-9]{6})\\b|(?\u003c=['\"\\s])(#)([A-Fa-f0-9]{8})\\b/gm;\n  const initialValidationMatches = _findMatches(model, initialValidationRegex);\n  if (initialValidationMatches.length \u003e 0) {\n    for (const initialMatch of initialValidationMatches) {\n      const initialCaptureGroups = initialMatch.filter((captureGroup) =\u003e captureGroup !== void 0);\n      const colorScheme = initialCaptureGroups[1];\n      const colorParameters = initialCaptureGroups[2];\n      if (!colorParameters) {\n        continue;\n      }\n      let colorInformation;\n      if (colorScheme === \"rgb\") {\n        const regexParameters = /^\\(\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*\\)$/gm;\n        colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false);\n      } else if (colorScheme === \"rgba\") {\n        const regexParameters = /^\\(\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\\s*\\)$/gm;\n        colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true);\n      } else if (colorScheme === \"hsl\") {\n        const regexParameters = /^\\(\\s*((?:360(?:\\.0+)?|(?:36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])(?:\\.\\d+)?))\\s*[\\s,]\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*[\\s,]\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*\\)$/gm;\n        colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false);\n      } else if (colorScheme === \"hsla\") {\n        const regexParameters = /^\\(\\s*((?:360(?:\\.0+)?|(?:36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])(?:\\.\\d+)?))\\s*[\\s,]\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*[\\s,]\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*[\\s,]\\s*(0[.][0-9]+|[.][0-9]+|[01][.]0*|[01])\\s*\\)$/gm;\n        colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true);\n      } else if (colorScheme === \"#\") {\n        colorInformation = _findHexColorInformation(_findRange(model, initialMatch), colorScheme + colorParameters);\n      }\n      if (colorInformation) {\n        result.push(colorInformation);\n      }\n    }\n  }\n  return result;\n}\nfunction computeDefaultDocumentColors(model) {\n  if (!model || typeof model.getValue !== \"function\" || typeof model.positionAt !== \"function\") {\n    return [];\n  }\n  return computeColors(model);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/findSectionHeaders.js\ninit_textModelSearch();\ninit_strings();\nvar trimDashesRegex = /^-+|-+$/g;\nvar CHUNK_SIZE = 100;\nvar MAX_SECTION_LINES = 5;\nfunction findSectionHeaders(model, options2) {\n  let headers = [];\n  if (options2.findRegionSectionHeaders \u0026\u0026 options2.foldingRules?.markers) {\n    const regionHeaders = collectRegionHeaders(model, options2);\n    headers = headers.concat(regionHeaders);\n  }\n  if (options2.findMarkSectionHeaders) {\n    const markHeaders = collectMarkHeaders(model, options2);\n    headers = headers.concat(markHeaders);\n  }\n  return headers;\n}\nfunction collectRegionHeaders(model, options2) {\n  const regionHeaders = [];\n  const endLineNumber = model.getLineCount();\n  for (let lineNumber = 1; lineNumber \u003c= endLineNumber; lineNumber++) {\n    const lineContent = model.getLineContent(lineNumber);\n    const match2 = lineContent.match(options2.foldingRules.markers.start);\n    if (match2) {\n      const range2 = { startLineNumber: lineNumber, startColumn: match2[0].length + 1, endLineNumber: lineNumber, endColumn: lineContent.length + 1 };\n      if (range2.endColumn \u003e range2.startColumn) {\n        const sectionHeader = {\n          range: range2,\n          ...getHeaderText(lineContent.substring(match2[0].length)),\n          shouldBeInComments: false\n        };\n        if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n          regionHeaders.push(sectionHeader);\n        }\n      }\n    }\n  }\n  return regionHeaders;\n}\nfunction collectMarkHeaders(model, options2) {\n  const markHeaders = [];\n  const endLineNumber = model.getLineCount();\n  if (!options2.markSectionHeaderRegex || options2.markSectionHeaderRegex.trim() === \"\") {\n    return markHeaders;\n  }\n  const multiline = isMultilineRegexSource(options2.markSectionHeaderRegex);\n  const regex = new RegExp(options2.markSectionHeaderRegex, `gdm${multiline ? \"s\" : \"\"}`);\n  if (regExpLeadsToEndlessLoop(regex)) {\n    return markHeaders;\n  }\n  for (let startLine = 1; startLine \u003c= endLineNumber; startLine += CHUNK_SIZE - MAX_SECTION_LINES) {\n    const endLine = Math.min(startLine + CHUNK_SIZE - 1, endLineNumber);\n    const lines = [];\n    for (let i2 = startLine; i2 \u003c= endLine; i2++) {\n      lines.push(model.getLineContent(i2));\n    }\n    const text2 = lines.join(\"\\n\");\n    regex.lastIndex = 0;\n    let match2;\n    while ((match2 = regex.exec(text2)) !== null) {\n      const precedingText = text2.substring(0, match2.index);\n      const lineOffset = (precedingText.match(/\\n/g) || []).length;\n      const lineNumber = startLine + lineOffset;\n      const matchLines = match2[0].split(\"\\n\");\n      const matchHeight = matchLines.length;\n      const matchEndLine = lineNumber + matchHeight - 1;\n      const lineStartIndex = precedingText.lastIndexOf(\"\\n\") + 1;\n      const startColumn = match2.index - lineStartIndex + 1;\n      const lastMatchLine = matchLines[matchLines.length - 1];\n      const endColumn = matchHeight === 1 ? startColumn + match2[0].length : lastMatchLine.length + 1;\n      const range2 = {\n        startLineNumber: lineNumber,\n        startColumn,\n        endLineNumber: matchEndLine,\n        endColumn\n      };\n      const text22 = (match2.groups ?? {})[\"label\"] ?? \"\";\n      const hasSeparatorLine = ((match2.groups ?? {})[\"separator\"] ?? \"\") !== \"\";\n      const sectionHeader = {\n        range: range2,\n        text: text22,\n        hasSeparatorLine,\n        shouldBeInComments: true\n      };\n      if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n        if (markHeaders.length === 0 || markHeaders[markHeaders.length - 1].range.endLineNumber \u003c sectionHeader.range.startLineNumber) {\n          markHeaders.push(sectionHeader);\n        }\n      }\n      regex.lastIndex = match2.index + match2[0].length;\n    }\n  }\n  return markHeaders;\n}\nfunction getHeaderText(text2) {\n  text2 = text2.trim();\n  const hasSeparatorLine = text2.startsWith(\"-\");\n  text2 = text2.replace(trimDashesRegex, \"\");\n  return { text: text2, hasSeparatorLine };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/textModelSync/textModelSync.impl.js\ninit_async();\ninit_lifecycle();\ninit_uri();\ninit_position();\ninit_range();\ninit_wordHelper();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/model/mirrorTextModel.js\ninit_strings();\ninit_position();\nvar MirrorTextModel = class {\n  constructor(uri, lines, eol, versionId) {\n    this._uri = uri;\n    this._lines = lines;\n    this._eol = eol;\n    this._versionId = versionId;\n    this._lineStarts = null;\n    this._cachedTextValue = null;\n  }\n  dispose() {\n    this._lines.length = 0;\n  }\n  get version() {\n    return this._versionId;\n  }\n  getText() {\n    if (this._cachedTextValue === null) {\n      this._cachedTextValue = this._lines.join(this._eol);\n    }\n    return this._cachedTextValue;\n  }\n  onEvents(e) {\n    if (e.eol \u0026\u0026 e.eol !== this._eol) {\n      this._eol = e.eol;\n      this._lineStarts = null;\n    }\n    const changes = e.changes;\n    for (const change of changes) {\n      this._acceptDeleteRange(change.range);\n      this._acceptInsertText(new Position(change.range.startLineNumber, change.range.startColumn), change.text);\n    }\n    this._versionId = e.versionId;\n    this._cachedTextValue = null;\n  }\n  _ensureLineStarts() {\n    if (!this._lineStarts) {\n      const eolLength = this._eol.length;\n      const linesLength = this._lines.length;\n      const lineStartValues = new Uint32Array(linesLength);\n      for (let i2 = 0; i2 \u003c linesLength; i2++) {\n        lineStartValues[i2] = this._lines[i2].length + eolLength;\n      }\n      this._lineStarts = new PrefixSumComputer(lineStartValues);\n    }\n  }\n  /**\n   * All changes to a line's text go through this method\n   */\n  _setLineText(lineIndex, newValue) {\n    this._lines[lineIndex] = newValue;\n    if (this._lineStarts) {\n      this._lineStarts.setValue(lineIndex, this._lines[lineIndex].length + this._eol.length);\n    }\n  }\n  _acceptDeleteRange(range2) {\n    if (range2.startLineNumber === range2.endLineNumber) {\n      if (range2.startColumn === range2.endColumn) {\n        return;\n      }\n      this._setLineText(range2.startLineNumber - 1, this._lines[range2.startLineNumber - 1].substring(0, range2.startColumn - 1) + this._lines[range2.startLineNumber - 1].substring(range2.endColumn - 1));\n      return;\n    }\n    this._setLineText(range2.startLineNumber - 1, this._lines[range2.startLineNumber - 1].substring(0, range2.startColumn - 1) + this._lines[range2.endLineNumber - 1].substring(range2.endColumn - 1));\n    this._lines.splice(range2.startLineNumber, range2.endLineNumber - range2.startLineNumber);\n    if (this._lineStarts) {\n      this._lineStarts.removeValues(range2.startLineNumber, range2.endLineNumber - range2.startLineNumber);\n    }\n  }\n  _acceptInsertText(position, insertText) {\n    if (insertText.length === 0) {\n      return;\n    }\n    const insertLines = splitLines(insertText);\n    if (insertLines.length === 1) {\n      this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1) + insertLines[0] + this._lines[position.lineNumber - 1].substring(position.column - 1));\n      return;\n    }\n    insertLines[insertLines.length - 1] += this._lines[position.lineNumber - 1].substring(position.column - 1);\n    this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1) + insertLines[0]);\n    const newLengths = new Uint32Array(insertLines.length - 1);\n    for (let i2 = 1; i2 \u003c insertLines.length; i2++) {\n      this._lines.splice(position.lineNumber + i2 - 1, 0, insertLines[i2]);\n      newLengths[i2 - 1] = insertLines[i2].length + this._eol.length;\n    }\n    if (this._lineStarts) {\n      this._lineStarts.insertValues(position.lineNumber, newLengths);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/textModelSync/textModelSync.impl.js\nvar STOP_SYNC_MODEL_DELTA_TIME_MS = 60 * 1e3;\nvar WorkerTextModelSyncClient = class extends Disposable {\n  constructor(proxy, modelService, keepIdleModels = false) {\n    super();\n    this._syncedModels = /* @__PURE__ */ Object.create(null);\n    this._syncedModelsLastUsedTime = /* @__PURE__ */ Object.create(null);\n    this._proxy = proxy;\n    this._modelService = modelService;\n    if (!keepIdleModels) {\n      const timer = new IntervalTimer();\n      timer.cancelAndSet(() =\u003e this._checkStopModelSync(), Math.round(STOP_SYNC_MODEL_DELTA_TIME_MS / 2));\n      this._register(timer);\n    }\n  }\n  dispose() {\n    for (const modelUrl in this._syncedModels) {\n      dispose(this._syncedModels[modelUrl]);\n    }\n    this._syncedModels = /* @__PURE__ */ Object.create(null);\n    this._syncedModelsLastUsedTime = /* @__PURE__ */ Object.create(null);\n    super.dispose();\n  }\n  ensureSyncedResources(resources, forceLargeModels = false) {\n    for (const resource of resources) {\n      const resourceStr = resource.toString();\n      if (!this._syncedModels[resourceStr]) {\n        this._beginModelSync(resource, forceLargeModels);\n      }\n      if (this._syncedModels[resourceStr]) {\n        this._syncedModelsLastUsedTime[resourceStr] = (/* @__PURE__ */ new Date()).getTime();\n      }\n    }\n  }\n  _checkStopModelSync() {\n    const currentTime = (/* @__PURE__ */ new Date()).getTime();\n    const toRemove = [];\n    for (const modelUrl in this._syncedModelsLastUsedTime) {\n      const elapsedTime = currentTime - this._syncedModelsLastUsedTime[modelUrl];\n      if (elapsedTime \u003e STOP_SYNC_MODEL_DELTA_TIME_MS) {\n        toRemove.push(modelUrl);\n      }\n    }\n    for (const e of toRemove) {\n      this._stopModelSync(e);\n    }\n  }\n  _beginModelSync(resource, forceLargeModels) {\n    const model = this._modelService.getModel(resource);\n    if (!model) {\n      return;\n    }\n    if (!forceLargeModels \u0026\u0026 model.isTooLargeForSyncing()) {\n      return;\n    }\n    const modelUrl = resource.toString();\n    this._proxy.$acceptNewModel({\n      url: model.uri.toString(),\n      lines: model.getLinesContent(),\n      EOL: model.getEOL(),\n      versionId: model.getVersionId()\n    });\n    const toDispose = new DisposableStore();\n    toDispose.add(model.onDidChangeContent((e) =\u003e {\n      this._proxy.$acceptModelChanged(modelUrl.toString(), e);\n    }));\n    toDispose.add(model.onWillDispose(() =\u003e {\n      this._stopModelSync(modelUrl);\n    }));\n    toDispose.add(toDisposable(() =\u003e {\n      this._proxy.$acceptRemovedModel(modelUrl);\n    }));\n    this._syncedModels[modelUrl] = toDispose;\n  }\n  _stopModelSync(modelUrl) {\n    const toDispose = this._syncedModels[modelUrl];\n    delete this._syncedModels[modelUrl];\n    delete this._syncedModelsLastUsedTime[modelUrl];\n    dispose(toDispose);\n  }\n};\nvar WorkerTextModelSyncServer = class {\n  constructor() {\n    this._models = /* @__PURE__ */ Object.create(null);\n  }\n  getModel(uri) {\n    return this._models[uri];\n  }\n  getModels() {\n    const all = [];\n    Object.keys(this._models).forEach((key) =\u003e all.push(this._models[key]));\n    return all;\n  }\n  $acceptNewModel(data) {\n    this._models[data.url] = new MirrorModel(URI.parse(data.url), data.lines, data.EOL, data.versionId);\n  }\n  $acceptModelChanged(uri, e) {\n    if (!this._models[uri]) {\n      return;\n    }\n    const model = this._models[uri];\n    model.onEvents(e);\n  }\n  $acceptRemovedModel(uri) {\n    if (!this._models[uri]) {\n      return;\n    }\n    delete this._models[uri];\n  }\n};\nvar MirrorModel = class extends MirrorTextModel {\n  get uri() {\n    return this._uri;\n  }\n  get eol() {\n    return this._eol;\n  }\n  getValue() {\n    return this.getText();\n  }\n  findMatches(regex) {\n    const matches = [];\n    for (let i2 = 0; i2 \u003c this._lines.length; i2++) {\n      const line = this._lines[i2];\n      const offsetToAdd = this.offsetAt(new Position(i2 + 1, 1));\n      const iteratorOverMatches = line.matchAll(regex);\n      for (const match2 of iteratorOverMatches) {\n        if (match2.index || match2.index === 0) {\n          match2.index = match2.index + offsetToAdd;\n        }\n        matches.push(match2);\n      }\n    }\n    return matches;\n  }\n  getLinesContent() {\n    return this._lines.slice(0);\n  }\n  getLineCount() {\n    return this._lines.length;\n  }\n  getLineContent(lineNumber) {\n    return this._lines[lineNumber - 1];\n  }\n  getWordAtPosition(position, wordDefinition) {\n    const wordAtText = getWordAtText(position.column, ensureValidWordDefinition(wordDefinition), this._lines[position.lineNumber - 1], 0);\n    if (wordAtText) {\n      return new Range(position.lineNumber, wordAtText.startColumn, position.lineNumber, wordAtText.endColumn);\n    }\n    return null;\n  }\n  words(wordDefinition) {\n    const lines = this._lines;\n    const wordenize = this._wordenize.bind(this);\n    let lineNumber = 0;\n    let lineText = \"\";\n    let wordRangesIdx = 0;\n    let wordRanges = [];\n    return {\n      *[Symbol.iterator]() {\n        while (true) {\n          if (wordRangesIdx \u003c wordRanges.length) {\n            const value = lineText.substring(wordRanges[wordRangesIdx].start, wordRanges[wordRangesIdx].end);\n            wordRangesIdx += 1;\n            yield value;\n          } else {\n            if (lineNumber \u003c lines.length) {\n              lineText = lines[lineNumber];\n              wordRanges = wordenize(lineText, wordDefinition);\n              wordRangesIdx = 0;\n              lineNumber += 1;\n            } else {\n              break;\n            }\n          }\n        }\n      }\n    };\n  }\n  getLineWords(lineNumber, wordDefinition) {\n    const content = this._lines[lineNumber - 1];\n    const ranges = this._wordenize(content, wordDefinition);\n    const words = [];\n    for (const range2 of ranges) {\n      words.push({\n        word: content.substring(range2.start, range2.end),\n        startColumn: range2.start + 1,\n        endColumn: range2.end + 1\n      });\n    }\n    return words;\n  }\n  _wordenize(content, wordDefinition) {\n    const result = [];\n    let match2;\n    wordDefinition.lastIndex = 0;\n    while (match2 = wordDefinition.exec(content)) {\n      if (match2[0].length === 0) {\n        break;\n      }\n      result.push({ start: match2.index, end: match2.index + match2[0].length });\n    }\n    return result;\n  }\n  getValueInRange(range2) {\n    range2 = this._validateRange(range2);\n    if (range2.startLineNumber === range2.endLineNumber) {\n      return this._lines[range2.startLineNumber - 1].substring(range2.startColumn - 1, range2.endColumn - 1);\n    }\n    const lineEnding = this._eol;\n    const startLineIndex = range2.startLineNumber - 1;\n    const endLineIndex = range2.endLineNumber - 1;\n    const resultLines = [];\n    resultLines.push(this._lines[startLineIndex].substring(range2.startColumn - 1));\n    for (let i2 = startLineIndex + 1; i2 \u003c endLineIndex; i2++) {\n      resultLines.push(this._lines[i2]);\n    }\n    resultLines.push(this._lines[endLineIndex].substring(0, range2.endColumn - 1));\n    return resultLines.join(lineEnding);\n  }\n  offsetAt(position) {\n    position = this._validatePosition(position);\n    this._ensureLineStarts();\n    return this._lineStarts.getPrefixSum(position.lineNumber - 2) + (position.column - 1);\n  }\n  positionAt(offset) {\n    offset = Math.floor(offset);\n    offset = Math.max(0, offset);\n    this._ensureLineStarts();\n    const out = this._lineStarts.getIndexOf(offset);\n    const lineLength = this._lines[out.index].length;\n    return {\n      lineNumber: 1 + out.index,\n      column: 1 + Math.min(out.remainder, lineLength)\n    };\n  }\n  _validateRange(range2) {\n    const start = this._validatePosition({ lineNumber: range2.startLineNumber, column: range2.startColumn });\n    const end = this._validatePosition({ lineNumber: range2.endLineNumber, column: range2.endColumn });\n    if (start.lineNumber !== range2.startLineNumber || start.column !== range2.startColumn || end.lineNumber !== range2.endLineNumber || end.column !== range2.endColumn) {\n      return {\n        startLineNumber: start.lineNumber,\n        startColumn: start.column,\n        endLineNumber: end.lineNumber,\n        endColumn: end.column\n      };\n    }\n    return range2;\n  }\n  _validatePosition(position) {\n    if (!Position.isIPosition(position)) {\n      throw new Error(\"bad position\");\n    }\n    let { lineNumber, column } = position;\n    let hasChanged = false;\n    if (lineNumber \u003c 1) {\n      lineNumber = 1;\n      column = 1;\n      hasChanged = true;\n    } else if (lineNumber \u003e this._lines.length) {\n      lineNumber = this._lines.length;\n      column = this._lines[lineNumber - 1].length + 1;\n      hasChanged = true;\n    } else {\n      const maxCharacter = this._lines[lineNumber - 1].length + 1;\n      if (column \u003c 1) {\n        column = 1;\n        hasChanged = true;\n      } else if (column \u003e maxCharacter) {\n        column = maxCharacter;\n        hasChanged = true;\n      }\n    }\n    if (!hasChanged) {\n      return position;\n    } else {\n      return { lineNumber, column };\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/editorWebWorker.js\nvar EditorWorker = class _EditorWorker {\n  constructor(_foreignModule = null) {\n    this._foreignModule = _foreignModule;\n    this._workerTextModelSyncServer = new WorkerTextModelSyncServer();\n  }\n  dispose() {\n  }\n  async $ping() {\n    return \"pong\";\n  }\n  _getModel(uri) {\n    return this._workerTextModelSyncServer.getModel(uri);\n  }\n  getModels() {\n    return this._workerTextModelSyncServer.getModels();\n  }\n  $acceptNewModel(data) {\n    this._workerTextModelSyncServer.$acceptNewModel(data);\n  }\n  $acceptModelChanged(uri, e) {\n    this._workerTextModelSyncServer.$acceptModelChanged(uri, e);\n  }\n  $acceptRemovedModel(uri) {\n    this._workerTextModelSyncServer.$acceptRemovedModel(uri);\n  }\n  async $computeUnicodeHighlights(url, options2, range2) {\n    const model = this._getModel(url);\n    if (!model) {\n      return { ranges: [], hasMore: false, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 };\n    }\n    return UnicodeTextModelHighlighter.computeUnicodeHighlights(model, options2, range2);\n  }\n  async $findSectionHeaders(url, options2) {\n    const model = this._getModel(url);\n    if (!model) {\n      return [];\n    }\n    return findSectionHeaders(model, options2);\n  }\n  // ---- BEGIN diff --------------------------------------------------------------------------\n  async $computeDiff(originalUrl, modifiedUrl, options2, algorithm) {\n    const original = this._getModel(originalUrl);\n    const modified = this._getModel(modifiedUrl);\n    if (!original || !modified) {\n      return null;\n    }\n    const result = _EditorWorker.computeDiff(original, modified, options2, algorithm);\n    return result;\n  }\n  static computeDiff(originalTextModel, modifiedTextModel, options2, algorithm) {\n    const diffAlgorithm = algorithm === \"advanced\" ? linesDiffComputers.getDefault() : linesDiffComputers.getLegacy();\n    const originalLines = originalTextModel.getLinesContent();\n    const modifiedLines = modifiedTextModel.getLinesContent();\n    const result = diffAlgorithm.computeDiff(originalLines, modifiedLines, options2);\n    const identical = result.changes.length \u003e 0 ? false : this._modelsAreIdentical(originalTextModel, modifiedTextModel);\n    function getLineChanges(changes) {\n      return changes.map((m) =\u003e [m.original.startLineNumber, m.original.endLineNumberExclusive, m.modified.startLineNumber, m.modified.endLineNumberExclusive, m.innerChanges?.map((m2) =\u003e [\n        m2.originalRange.startLineNumber,\n        m2.originalRange.startColumn,\n        m2.originalRange.endLineNumber,\n        m2.originalRange.endColumn,\n        m2.modifiedRange.startLineNumber,\n        m2.modifiedRange.startColumn,\n        m2.modifiedRange.endLineNumber,\n        m2.modifiedRange.endColumn\n      ])]);\n    }\n    return {\n      identical,\n      quitEarly: result.hitTimeout,\n      changes: getLineChanges(result.changes),\n      moves: result.moves.map((m) =\u003e [\n        m.lineRangeMapping.original.startLineNumber,\n        m.lineRangeMapping.original.endLineNumberExclusive,\n        m.lineRangeMapping.modified.startLineNumber,\n        m.lineRangeMapping.modified.endLineNumberExclusive,\n        getLineChanges(m.changes)\n      ])\n    };\n  }\n  static _modelsAreIdentical(original, modified) {\n    const originalLineCount = original.getLineCount();\n    const modifiedLineCount = modified.getLineCount();\n    if (originalLineCount !== modifiedLineCount) {\n      return false;\n    }\n    for (let line = 1; line \u003c= originalLineCount; line++) {\n      const originalLine = original.getLineContent(line);\n      const modifiedLine = modified.getLineContent(line);\n      if (originalLine !== modifiedLine) {\n        return false;\n      }\n    }\n    return true;\n  }\n  static {\n    this._diffLimit = 1e5;\n  }\n  async $computeMoreMinimalEdits(modelUrl, edits, pretty) {\n    const model = this._getModel(modelUrl);\n    if (!model) {\n      return edits;\n    }\n    const result = [];\n    let lastEol = void 0;\n    edits = edits.slice(0).sort((a, b) =\u003e {\n      if (a.range \u0026\u0026 b.range) {\n        return Range.compareRangesUsingStarts(a.range, b.range);\n      }\n      const aRng = a.range ? 0 : 1;\n      const bRng = b.range ? 0 : 1;\n      return aRng - bRng;\n    });\n    let writeIndex = 0;\n    for (let readIndex = 1; readIndex \u003c edits.length; readIndex++) {\n      if (Range.getEndPosition(edits[writeIndex].range).equals(Range.getStartPosition(edits[readIndex].range))) {\n        edits[writeIndex].range = Range.fromPositions(Range.getStartPosition(edits[writeIndex].range), Range.getEndPosition(edits[readIndex].range));\n        edits[writeIndex].text += edits[readIndex].text;\n      } else {\n        writeIndex++;\n        edits[writeIndex] = edits[readIndex];\n      }\n    }\n    edits.length = writeIndex + 1;\n    for (let { range: range2, text: text2, eol } of edits) {\n      if (typeof eol === \"number\") {\n        lastEol = eol;\n      }\n      if (Range.isEmpty(range2) \u0026\u0026 !text2) {\n        continue;\n      }\n      const original = model.getValueInRange(range2);\n      text2 = text2.replace(/\\r\\n|\\n|\\r/g, model.eol);\n      if (original === text2) {\n        continue;\n      }\n      if (Math.max(text2.length, original.length) \u003e _EditorWorker._diffLimit) {\n        result.push({ range: range2, text: text2 });\n        continue;\n      }\n      const changes = stringDiff(original, text2, pretty);\n      const editOffset = model.offsetAt(Range.lift(range2).getStartPosition());\n      for (const change of changes) {\n        const start = model.positionAt(editOffset + change.originalStart);\n        const end = model.positionAt(editOffset + change.originalStart + change.originalLength);\n        const newEdit = {\n          text: text2.substr(change.modifiedStart, change.modifiedLength),\n          range: { startLineNumber: start.lineNumber, startColumn: start.column, endLineNumber: end.lineNumber, endColumn: end.column }\n        };\n        if (model.getValueInRange(newEdit.range) !== newEdit.text) {\n          result.push(newEdit);\n        }\n      }\n    }\n    if (typeof lastEol === \"number\") {\n      result.push({ eol: lastEol, text: \"\", range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } });\n    }\n    return result;\n  }\n  // ---- END minimal edits ---------------------------------------------------------------\n  async $computeLinks(modelUrl) {\n    const model = this._getModel(modelUrl);\n    if (!model) {\n      return null;\n    }\n    return computeLinks(model);\n  }\n  // --- BEGIN default document colors -----------------------------------------------------------\n  async $computeDefaultDocumentColors(modelUrl) {\n    const model = this._getModel(modelUrl);\n    if (!model) {\n      return null;\n    }\n    return computeDefaultDocumentColors(model);\n  }\n  static {\n    this._suggestionsLimit = 1e4;\n  }\n  async $textualSuggest(modelUrls, leadingWord, wordDef, wordDefFlags) {\n    const sw = new StopWatch();\n    const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n    const seen = /* @__PURE__ */ new Set();\n    outer: for (const url of modelUrls) {\n      const model = this._getModel(url);\n      if (!model) {\n        continue;\n      }\n      for (const word of model.words(wordDefRegExp)) {\n        if (word === leadingWord || !isNaN(Number(word))) {\n          continue;\n        }\n        seen.add(word);\n        if (seen.size \u003e _EditorWorker._suggestionsLimit) {\n          break outer;\n        }\n      }\n    }\n    return { words: Array.from(seen), duration: sw.elapsed() };\n  }\n  // ---- END suggest --------------------------------------------------------------------------\n  //#region -- word ranges --\n  async $computeWordRanges(modelUrl, range2, wordDef, wordDefFlags) {\n    const model = this._getModel(modelUrl);\n    if (!model) {\n      return /* @__PURE__ */ Object.create(null);\n    }\n    const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n    const result = /* @__PURE__ */ Object.create(null);\n    for (let line = range2.startLineNumber; line \u003c range2.endLineNumber; line++) {\n      const words = model.getLineWords(line, wordDefRegExp);\n      for (const word of words) {\n        if (!isNaN(Number(word.word))) {\n          continue;\n        }\n        let array2 = result[word.word];\n        if (!array2) {\n          array2 = [];\n          result[word.word] = array2;\n        }\n        array2.push({\n          startLineNumber: line,\n          startColumn: word.startColumn,\n          endLineNumber: line,\n          endColumn: word.endColumn\n        });\n      }\n    }\n    return result;\n  }\n  //#endregion\n  async $navigateValueSet(modelUrl, range2, up, wordDef, wordDefFlags) {\n    const model = this._getModel(modelUrl);\n    if (!model) {\n      return null;\n    }\n    const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n    if (range2.startColumn === range2.endColumn) {\n      range2 = {\n        startLineNumber: range2.startLineNumber,\n        startColumn: range2.startColumn,\n        endLineNumber: range2.endLineNumber,\n        endColumn: range2.endColumn + 1\n      };\n    }\n    const selectionText = model.getValueInRange(range2);\n    const wordRange = model.getWordAtPosition({ lineNumber: range2.startLineNumber, column: range2.startColumn }, wordDefRegExp);\n    if (!wordRange) {\n      return null;\n    }\n    const word = model.getValueInRange(wordRange);\n    const result = BasicInplaceReplace.INSTANCE.navigateValueSet(range2, selectionText, wordRange, word, up);\n    return result;\n  }\n  // ---- BEGIN foreign module support --------------------------------------------------------------------------\n  // foreign method request\n  $fmr(method, args) {\n    if (!this._foreignModule || typeof this._foreignModule[method] !== \"function\") {\n      return Promise.reject(new Error(\"Missing requestHandler or method: \" + method));\n    }\n    try {\n      return Promise.resolve(this._foreignModule[method].apply(this._foreignModule, args));\n    } catch (e) {\n      return Promise.reject(e);\n    }\n  }\n};\nif (typeof importScripts === \"function\") {\n  globalThis.monaco = createMonacoBaseAPI();\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/editorWorkerService.js\ninit_model();\ninit_arrays();\ninit_log();\ninit_stopwatch();\ninit_errors();\ninit_languageFeatures();\ninit_lineRange();\ninit_window();\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/editorWorkerHost.js\nvar EditorWorkerHost = class _EditorWorkerHost {\n  static {\n    this.CHANNEL_NAME = \"editorWorkerHost\";\n  }\n  static getChannel(workerServer) {\n    return workerServer.getChannel(_EditorWorkerHost.CHANNEL_NAME);\n  }\n  static setChannel(workerClient, obj) {\n    workerClient.setChannel(_EditorWorkerHost.CHANNEL_NAME, obj);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/editorWorkerService.js\nvar __decorate163 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param157 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar STOP_WORKER_DELTA_TIME_MS = 5 * 60 * 1e3;\nfunction canSyncModel(modelService, resource) {\n  const model = modelService.getModel(resource);\n  if (!model) {\n    return false;\n  }\n  if (model.isTooLargeForSyncing()) {\n    return false;\n  }\n  return true;\n}\nvar EditorWorkerService = class EditorWorkerService2 extends Disposable {\n  constructor(workerDescriptor, modelService, configurationService, logService, _languageConfigurationService, languageFeaturesService) {\n    super();\n    this._languageConfigurationService = _languageConfigurationService;\n    this._modelService = modelService;\n    this._workerManager = this._register(new WorkerManager(workerDescriptor, this._modelService));\n    this._logService = logService;\n    this._register(languageFeaturesService.linkProvider.register({ language: \"*\", hasAccessToAllModels: true }, {\n      provideLinks: async (model, token) =\u003e {\n        if (!canSyncModel(this._modelService, model.uri)) {\n          return Promise.resolve({ links: [] });\n        }\n        const worker = await this._workerWithResources([model.uri]);\n        const links = await worker.$computeLinks(model.uri.toString());\n        return links \u0026\u0026 { links };\n      }\n    }));\n    this._register(languageFeaturesService.completionProvider.register(\"*\", new WordBasedCompletionItemProvider(this._workerManager, configurationService, this._modelService, this._languageConfigurationService, this._logService)));\n  }\n  dispose() {\n    super.dispose();\n  }\n  canComputeUnicodeHighlights(uri) {\n    return canSyncModel(this._modelService, uri);\n  }\n  async computedUnicodeHighlights(uri, options2, range2) {\n    const worker = await this._workerWithResources([uri]);\n    return worker.$computeUnicodeHighlights(uri.toString(), options2, range2);\n  }\n  async computeDiff(original, modified, options2, algorithm) {\n    const worker = await this._workerWithResources(\n      [original, modified],\n      /* forceLargeModels */\n      true\n    );\n    const result = await worker.$computeDiff(original.toString(), modified.toString(), options2, algorithm);\n    if (!result) {\n      return null;\n    }\n    const diff = {\n      identical: result.identical,\n      quitEarly: result.quitEarly,\n      changes: toLineRangeMappings(result.changes),\n      moves: result.moves.map((m) =\u003e new MovedText(new LineRangeMapping(new LineRange(m[0], m[1]), new LineRange(m[2], m[3])), toLineRangeMappings(m[4])))\n    };\n    return diff;\n    function toLineRangeMappings(changes) {\n      return changes.map((c) =\u003e new DetailedLineRangeMapping(new LineRange(c[0], c[1]), new LineRange(c[2], c[3]), c[4]?.map((c2) =\u003e new RangeMapping(new Range(c2[0], c2[1], c2[2], c2[3]), new Range(c2[4], c2[5], c2[6], c2[7])))));\n    }\n  }\n  async computeMoreMinimalEdits(resource, edits, pretty = false) {\n    if (isNonEmptyArray(edits)) {\n      if (!canSyncModel(this._modelService, resource)) {\n        return Promise.resolve(edits);\n      }\n      const sw = StopWatch.create();\n      const result = this._workerWithResources([resource]).then((worker) =\u003e worker.$computeMoreMinimalEdits(resource.toString(), edits, pretty));\n      result.finally(() =\u003e this._logService.trace(\"FORMAT#computeMoreMinimalEdits\", resource.toString(true), sw.elapsed()));\n      return Promise.race([result, timeout(1e3).then(() =\u003e edits)]);\n    } else {\n      return Promise.resolve(void 0);\n    }\n  }\n  canNavigateValueSet(resource) {\n    return canSyncModel(this._modelService, resource);\n  }\n  async navigateValueSet(resource, range2, up) {\n    const model = this._modelService.getModel(resource);\n    if (!model) {\n      return null;\n    }\n    const wordDefRegExp = this._languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n    const wordDef = wordDefRegExp.source;\n    const wordDefFlags = wordDefRegExp.flags;\n    const worker = await this._workerWithResources([resource]);\n    return worker.$navigateValueSet(resource.toString(), range2, up, wordDef, wordDefFlags);\n  }\n  canComputeWordRanges(resource) {\n    return canSyncModel(this._modelService, resource);\n  }\n  async computeWordRanges(resource, range2) {\n    const model = this._modelService.getModel(resource);\n    if (!model) {\n      return Promise.resolve(null);\n    }\n    const wordDefRegExp = this._languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n    const wordDef = wordDefRegExp.source;\n    const wordDefFlags = wordDefRegExp.flags;\n    const worker = await this._workerWithResources([resource]);\n    return worker.$computeWordRanges(resource.toString(), range2, wordDef, wordDefFlags);\n  }\n  async findSectionHeaders(uri, options2) {\n    const worker = await this._workerWithResources([uri]);\n    return worker.$findSectionHeaders(uri.toString(), options2);\n  }\n  async computeDefaultDocumentColors(uri) {\n    const worker = await this._workerWithResources([uri]);\n    return worker.$computeDefaultDocumentColors(uri.toString());\n  }\n  async _workerWithResources(resources, forceLargeModels = false) {\n    const worker = await this._workerManager.withWorker();\n    return await worker.workerWithSyncedResources(resources, forceLargeModels);\n  }\n};\nEditorWorkerService = __decorate163([\n  __param157(1, IModelService),\n  __param157(2, ITextResourceConfigurationService),\n  __param157(3, ILogService),\n  __param157(4, ILanguageConfigurationService),\n  __param157(5, ILanguageFeaturesService)\n], EditorWorkerService);\nvar WordBasedCompletionItemProvider = class {\n  constructor(workerManager, configurationService, modelService, languageConfigurationService, logService) {\n    this.languageConfigurationService = languageConfigurationService;\n    this.logService = logService;\n    this._debugDisplayName = \"wordbasedCompletions\";\n    this._workerManager = workerManager;\n    this._configurationService = configurationService;\n    this._modelService = modelService;\n  }\n  async provideCompletionItems(model, position) {\n    const config = this._configurationService.getValue(model.uri, position, \"editor\");\n    if (config.wordBasedSuggestions === \"off\") {\n      return void 0;\n    }\n    const models = [];\n    if (config.wordBasedSuggestions === \"currentDocument\") {\n      if (canSyncModel(this._modelService, model.uri)) {\n        models.push(model.uri);\n      }\n    } else {\n      for (const candidate of this._modelService.getModels()) {\n        if (!canSyncModel(this._modelService, candidate.uri)) {\n          continue;\n        }\n        if (candidate === model) {\n          models.unshift(candidate.uri);\n        } else if (config.wordBasedSuggestions === \"allDocuments\" || candidate.getLanguageId() === model.getLanguageId()) {\n          models.push(candidate.uri);\n        }\n      }\n    }\n    if (models.length === 0) {\n      return void 0;\n    }\n    const wordDefRegExp = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n    const word = model.getWordAtPosition(position);\n    const replace = !word ? Range.fromPositions(position) : new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n    const insert = replace.setEndPosition(position.lineNumber, position.column);\n    this.logService.trace(\"[WordBasedCompletionItemProvider]\", `word: \"${word?.word || \"\"}\", wordDef: \"${wordDefRegExp}\", replace: [${replace.toString()}], insert: [${insert.toString()}]`);\n    const client = await this._workerManager.withWorker();\n    const data = await client.textualSuggest(models, word?.word, wordDefRegExp);\n    if (!data) {\n      return void 0;\n    }\n    return {\n      duration: data.duration,\n      suggestions: data.words.map((word2) =\u003e {\n        return {\n          kind: 18,\n          label: word2,\n          insertText: word2,\n          range: { insert, replace }\n        };\n      })\n    };\n  }\n};\nvar WorkerManager = class WorkerManager2 extends Disposable {\n  constructor(_workerDescriptor, modelService) {\n    super();\n    this._workerDescriptor = _workerDescriptor;\n    this._modelService = modelService;\n    this._editorWorkerClient = null;\n    this._lastWorkerUsedTime = (/* @__PURE__ */ new Date()).getTime();\n    const stopWorkerInterval = this._register(new WindowIntervalTimer());\n    stopWorkerInterval.cancelAndSet(() =\u003e this._checkStopIdleWorker(), Math.round(STOP_WORKER_DELTA_TIME_MS / 2), mainWindow);\n    this._register(this._modelService.onModelRemoved((_) =\u003e this._checkStopEmptyWorker()));\n  }\n  dispose() {\n    if (this._editorWorkerClient) {\n      this._editorWorkerClient.dispose();\n      this._editorWorkerClient = null;\n    }\n    super.dispose();\n  }\n  /**\n   * Check if the model service has no more models and stop the worker if that is the case.\n   */\n  _checkStopEmptyWorker() {\n    if (!this._editorWorkerClient) {\n      return;\n    }\n    const models = this._modelService.getModels();\n    if (models.length === 0) {\n      this._editorWorkerClient.dispose();\n      this._editorWorkerClient = null;\n    }\n  }\n  /**\n   * Check if the worker has been idle for a while and then stop it.\n   */\n  _checkStopIdleWorker() {\n    if (!this._editorWorkerClient) {\n      return;\n    }\n    const timeSinceLastWorkerUsedTime = (/* @__PURE__ */ new Date()).getTime() - this._lastWorkerUsedTime;\n    if (timeSinceLastWorkerUsedTime \u003e STOP_WORKER_DELTA_TIME_MS) {\n      this._editorWorkerClient.dispose();\n      this._editorWorkerClient = null;\n    }\n  }\n  withWorker() {\n    this._lastWorkerUsedTime = (/* @__PURE__ */ new Date()).getTime();\n    if (!this._editorWorkerClient) {\n      this._editorWorkerClient = new EditorWorkerClient(this._workerDescriptor, false, this._modelService);\n    }\n    return Promise.resolve(this._editorWorkerClient);\n  }\n};\nWorkerManager = __decorate163([\n  __param157(1, IModelService)\n], WorkerManager);\nvar SynchronousWorkerClient = class {\n  constructor(instance) {\n    this._instance = instance;\n    this.proxy = this._instance;\n  }\n  dispose() {\n    this._instance.dispose();\n  }\n  setChannel(channel, handler) {\n    throw new Error(`Not supported`);\n  }\n};\nvar EditorWorkerClient = class EditorWorkerClient2 extends Disposable {\n  constructor(_workerDescriptorOrWorker, keepIdleModels, modelService) {\n    super();\n    this._workerDescriptorOrWorker = _workerDescriptorOrWorker;\n    this._disposed = false;\n    this._modelService = modelService;\n    this._keepIdleModels = keepIdleModels;\n    this._worker = null;\n    this._modelManager = null;\n  }\n  // foreign host request\n  fhr(method, args) {\n    throw new Error(`Not implemented!`);\n  }\n  _getOrCreateWorker() {\n    if (!this._worker) {\n      try {\n        this._worker = this._register(createWebWorker(this._workerDescriptorOrWorker));\n        EditorWorkerHost.setChannel(this._worker, this._createEditorWorkerHost());\n      } catch (err) {\n        logOnceWebWorkerWarning(err);\n        this._worker = this._createFallbackLocalWorker();\n      }\n    }\n    return this._worker;\n  }\n  async _getProxy() {\n    try {\n      const proxy = this._getOrCreateWorker().proxy;\n      await proxy.$ping();\n      return proxy;\n    } catch (err) {\n      logOnceWebWorkerWarning(err);\n      this._worker = this._createFallbackLocalWorker();\n      return this._worker.proxy;\n    }\n  }\n  _createFallbackLocalWorker() {\n    return new SynchronousWorkerClient(new EditorWorker(null));\n  }\n  _createEditorWorkerHost() {\n    return {\n      $fhr: (method, args) =\u003e this.fhr(method, args)\n    };\n  }\n  _getOrCreateModelManager(proxy) {\n    if (!this._modelManager) {\n      this._modelManager = this._register(new WorkerTextModelSyncClient(proxy, this._modelService, this._keepIdleModels));\n    }\n    return this._modelManager;\n  }\n  async workerWithSyncedResources(resources, forceLargeModels = false) {\n    if (this._disposed) {\n      return Promise.reject(canceled());\n    }\n    const proxy = await this._getProxy();\n    this._getOrCreateModelManager(proxy).ensureSyncedResources(resources, forceLargeModels);\n    return proxy;\n  }\n  async textualSuggest(resources, leadingWord, wordDefRegExp) {\n    const proxy = await this.workerWithSyncedResources(resources);\n    const wordDef = wordDefRegExp.source;\n    const wordDefFlags = wordDefRegExp.flags;\n    return proxy.$textualSuggest(resources.map((r) =\u003e r.toString()), leadingWord, wordDef, wordDefFlags);\n  }\n  dispose() {\n    super.dispose();\n    this._disposed = true;\n  }\n};\nEditorWorkerClient = __decorate163([\n  __param157(2, IModelService)\n], EditorWorkerClient);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneWebWorker.js\nfunction createWebWorker2(modelService, opts) {\n  return new MonacoWebWorkerImpl(modelService, opts);\n}\nvar MonacoWebWorkerImpl = class extends EditorWorkerClient {\n  constructor(modelService, opts) {\n    super(opts.worker, opts.keepIdleModels || false, modelService);\n    this._foreignModuleHost = opts.host || null;\n    this._foreignProxy = this._getProxy().then((proxy) =\u003e {\n      return new Proxy({}, {\n        get(target, prop, receiver) {\n          if (prop === \"then\") {\n            return void 0;\n          }\n          if (typeof prop !== \"string\") {\n            throw new Error(`Not supported`);\n          }\n          return (...args) =\u003e {\n            return proxy.$fmr(prop, args);\n          };\n        }\n      });\n    });\n  }\n  // foreign host request\n  fhr(method, args) {\n    if (!this._foreignModuleHost || typeof this._foreignModuleHost[method] !== \"function\") {\n      return Promise.reject(new Error(\"Missing method \" + method + \" or missing main thread foreign host.\"));\n    }\n    try {\n      return Promise.resolve(this._foreignModuleHost[method].apply(this._foreignModuleHost, args));\n    } catch (e) {\n      return Promise.reject(e);\n    }\n  }\n  getProxy() {\n    return this._foreignProxy;\n  }\n  withSyncedResources(resources) {\n    return this.workerWithSyncedResources(resources).then((_) =\u003e this.getProxy());\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor.js\ninit_languages();\ninit_language();\ninit_modesRegistry();\ninit_nullTokenize();\ninit_model2();\ninit_model();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/colorizer.js\ninit_strings();\ninit_languages();\ninit_lineTokens();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/common/monarch/monarchLexer.js\ninit_lifecycle();\ninit_languages();\ninit_nullTokenize();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/common/monarch/monarchCommon.js\ninit_strings();\nfunction isFuzzyActionArr(what) {\n  return Array.isArray(what);\n}\nfunction isFuzzyAction(what) {\n  return !isFuzzyActionArr(what);\n}\nfunction isString2(what) {\n  return typeof what === \"string\";\n}\nfunction isIAction(what) {\n  return !isString2(what);\n}\nfunction empty(s) {\n  return s ? false : true;\n}\nfunction fixCase(lexer2, str) {\n  return lexer2.ignoreCase \u0026\u0026 str ? str.toLowerCase() : str;\n}\nfunction sanitize(s) {\n  return s.replace(/[\u0026\u003c\u003e'\"_]/g, \"-\");\n}\nfunction log(lexer2, msg) {\n  console.log(`${lexer2.languageId}: ${msg}`);\n}\nfunction createError(lexer2, msg) {\n  return new Error(`${lexer2.languageId}: ${msg}`);\n}\nfunction substituteMatches(lexer2, str, id, matches, state) {\n  const re = /\\$((\\$)|(#)|(\\d\\d?)|[sS](\\d\\d?)|@(\\w+))/g;\n  let stateMatches = null;\n  return str.replace(re, function(full, sub, dollar, hash2, n2, s, attr, ofs, total) {\n    if (!empty(dollar)) {\n      return \"$\";\n    }\n    if (!empty(hash2)) {\n      return fixCase(lexer2, id);\n    }\n    if (!empty(n2) \u0026\u0026 n2 \u003c matches.length) {\n      return fixCase(lexer2, matches[n2]);\n    }\n    if (!empty(attr) \u0026\u0026 lexer2 \u0026\u0026 typeof lexer2[attr] === \"string\") {\n      return lexer2[attr];\n    }\n    if (stateMatches === null) {\n      stateMatches = state.split(\".\");\n      stateMatches.unshift(state);\n    }\n    if (!empty(s) \u0026\u0026 s \u003c stateMatches.length) {\n      return fixCase(lexer2, stateMatches[s]);\n    }\n    return \"\";\n  });\n}\nfunction substituteMatchesRe(lexer2, str, state) {\n  const re = /\\$[sS](\\d\\d?)/g;\n  let stateMatches = null;\n  return str.replace(re, function(full, s) {\n    if (stateMatches === null) {\n      stateMatches = state.split(\".\");\n      stateMatches.unshift(state);\n    }\n    if (!empty(s) \u0026\u0026 s \u003c stateMatches.length) {\n      return escapeRegExpCharacters(fixCase(lexer2, stateMatches[s]));\n    }\n    return \"\";\n  });\n}\nfunction findRules(lexer2, inState) {\n  let state = inState;\n  while (state \u0026\u0026 state.length \u003e 0) {\n    const rules = lexer2.tokenizer[state];\n    if (rules) {\n      return rules;\n    }\n    const idx = state.lastIndexOf(\".\");\n    if (idx \u003c 0) {\n      state = null;\n    } else {\n      state = state.substr(0, idx);\n    }\n  }\n  return null;\n}\nfunction stateExists(lexer2, inState) {\n  let state = inState;\n  while (state \u0026\u0026 state.length \u003e 0) {\n    const exist = lexer2.stateNames[state];\n    if (exist) {\n      return true;\n    }\n    const idx = state.lastIndexOf(\".\");\n    if (idx \u003c 0) {\n      state = null;\n    } else {\n      state = state.substr(0, idx);\n    }\n  }\n  return false;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/common/monarch/monarchLexer.js\ninit_configuration();\nvar __decorate164 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param158 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MonarchTokenizer_1;\nvar CACHE_STACK_DEPTH = 5;\nvar MonarchStackElementFactory = class _MonarchStackElementFactory {\n  static {\n    this._INSTANCE = new _MonarchStackElementFactory(CACHE_STACK_DEPTH);\n  }\n  static create(parent, state) {\n    return this._INSTANCE.create(parent, state);\n  }\n  constructor(maxCacheDepth) {\n    this._maxCacheDepth = maxCacheDepth;\n    this._entries = /* @__PURE__ */ Object.create(null);\n  }\n  create(parent, state) {\n    if (parent !== null \u0026\u0026 parent.depth \u003e= this._maxCacheDepth) {\n      return new MonarchStackElement(parent, state);\n    }\n    let stackElementId = MonarchStackElement.getStackElementId(parent);\n    if (stackElementId.length \u003e 0) {\n      stackElementId += \"|\";\n    }\n    stackElementId += state;\n    let result = this._entries[stackElementId];\n    if (result) {\n      return result;\n    }\n    result = new MonarchStackElement(parent, state);\n    this._entries[stackElementId] = result;\n    return result;\n  }\n};\nvar MonarchStackElement = class _MonarchStackElement {\n  constructor(parent, state) {\n    this.parent = parent;\n    this.state = state;\n    this.depth = (this.parent ? this.parent.depth : 0) + 1;\n  }\n  static getStackElementId(element) {\n    let result = \"\";\n    while (element !== null) {\n      if (result.length \u003e 0) {\n        result += \"|\";\n      }\n      result += element.state;\n      element = element.parent;\n    }\n    return result;\n  }\n  static _equals(a, b) {\n    while (a !== null \u0026\u0026 b !== null) {\n      if (a === b) {\n        return true;\n      }\n      if (a.state !== b.state) {\n        return false;\n      }\n      a = a.parent;\n      b = b.parent;\n    }\n    if (a === null \u0026\u0026 b === null) {\n      return true;\n    }\n    return false;\n  }\n  equals(other) {\n    return _MonarchStackElement._equals(this, other);\n  }\n  push(state) {\n    return MonarchStackElementFactory.create(this, state);\n  }\n  pop() {\n    return this.parent;\n  }\n  popall() {\n    let result = this;\n    while (result.parent) {\n      result = result.parent;\n    }\n    return result;\n  }\n  switchTo(state) {\n    return MonarchStackElementFactory.create(this.parent, state);\n  }\n};\nvar EmbeddedLanguageData = class _EmbeddedLanguageData {\n  constructor(languageId, state) {\n    this.languageId = languageId;\n    this.state = state;\n  }\n  equals(other) {\n    return this.languageId === other.languageId \u0026\u0026 this.state.equals(other.state);\n  }\n  clone() {\n    const stateClone = this.state.clone();\n    if (stateClone === this.state) {\n      return this;\n    }\n    return new _EmbeddedLanguageData(this.languageId, this.state);\n  }\n};\nvar MonarchLineStateFactory = class _MonarchLineStateFactory {\n  static {\n    this._INSTANCE = new _MonarchLineStateFactory(CACHE_STACK_DEPTH);\n  }\n  static create(stack, embeddedLanguageData) {\n    return this._INSTANCE.create(stack, embeddedLanguageData);\n  }\n  constructor(maxCacheDepth) {\n    this._maxCacheDepth = maxCacheDepth;\n    this._entries = /* @__PURE__ */ Object.create(null);\n  }\n  create(stack, embeddedLanguageData) {\n    if (embeddedLanguageData !== null) {\n      return new MonarchLineState(stack, embeddedLanguageData);\n    }\n    if (stack !== null \u0026\u0026 stack.depth \u003e= this._maxCacheDepth) {\n      return new MonarchLineState(stack, embeddedLanguageData);\n    }\n    const stackElementId = MonarchStackElement.getStackElementId(stack);\n    let result = this._entries[stackElementId];\n    if (result) {\n      return result;\n    }\n    result = new MonarchLineState(stack, null);\n    this._entries[stackElementId] = result;\n    return result;\n  }\n};\nvar MonarchLineState = class _MonarchLineState {\n  constructor(stack, embeddedLanguageData) {\n    this.stack = stack;\n    this.embeddedLanguageData = embeddedLanguageData;\n  }\n  clone() {\n    const embeddedlanguageDataClone = this.embeddedLanguageData ? this.embeddedLanguageData.clone() : null;\n    if (embeddedlanguageDataClone === this.embeddedLanguageData) {\n      return this;\n    }\n    return MonarchLineStateFactory.create(this.stack, this.embeddedLanguageData);\n  }\n  equals(other) {\n    if (!(other instanceof _MonarchLineState)) {\n      return false;\n    }\n    if (!this.stack.equals(other.stack)) {\n      return false;\n    }\n    if (this.embeddedLanguageData === null \u0026\u0026 other.embeddedLanguageData === null) {\n      return true;\n    }\n    if (this.embeddedLanguageData === null || other.embeddedLanguageData === null) {\n      return false;\n    }\n    return this.embeddedLanguageData.equals(other.embeddedLanguageData);\n  }\n};\nvar MonarchClassicTokensCollector = class {\n  constructor() {\n    this._tokens = [];\n    this._languageId = null;\n    this._lastTokenType = null;\n    this._lastTokenLanguage = null;\n  }\n  enterLanguage(languageId) {\n    this._languageId = languageId;\n  }\n  emit(startOffset, type) {\n    if (this._lastTokenType === type \u0026\u0026 this._lastTokenLanguage === this._languageId) {\n      return;\n    }\n    this._lastTokenType = type;\n    this._lastTokenLanguage = this._languageId;\n    this._tokens.push(new Token(startOffset, type, this._languageId));\n  }\n  nestedLanguageTokenize(embeddedLanguageLine, hasEOL, embeddedLanguageData, offsetDelta) {\n    const nestedLanguageId = embeddedLanguageData.languageId;\n    const embeddedModeState = embeddedLanguageData.state;\n    const nestedLanguageTokenizationSupport = TokenizationRegistry2.get(nestedLanguageId);\n    if (!nestedLanguageTokenizationSupport) {\n      this.enterLanguage(nestedLanguageId);\n      this.emit(offsetDelta, \"\");\n      return embeddedModeState;\n    }\n    const nestedResult = nestedLanguageTokenizationSupport.tokenize(embeddedLanguageLine, hasEOL, embeddedModeState);\n    if (offsetDelta !== 0) {\n      for (const token of nestedResult.tokens) {\n        this._tokens.push(new Token(token.offset + offsetDelta, token.type, token.language));\n      }\n    } else {\n      this._tokens = this._tokens.concat(nestedResult.tokens);\n    }\n    this._lastTokenType = null;\n    this._lastTokenLanguage = null;\n    this._languageId = null;\n    return nestedResult.endState;\n  }\n  finalize(endState) {\n    return new TokenizationResult(this._tokens, endState);\n  }\n};\nvar MonarchModernTokensCollector = class _MonarchModernTokensCollector {\n  constructor(languageService, theme) {\n    this._languageService = languageService;\n    this._theme = theme;\n    this._prependTokens = null;\n    this._tokens = [];\n    this._currentLanguageId = 0;\n    this._lastTokenMetadata = 0;\n  }\n  enterLanguage(languageId) {\n    this._currentLanguageId = this._languageService.languageIdCodec.encodeLanguageId(languageId);\n  }\n  emit(startOffset, type) {\n    const metadata = this._theme.match(this._currentLanguageId, type) | 1024;\n    if (this._lastTokenMetadata === metadata) {\n      return;\n    }\n    this._lastTokenMetadata = metadata;\n    this._tokens.push(startOffset);\n    this._tokens.push(metadata);\n  }\n  static _merge(a, b, c) {\n    const aLen = a !== null ? a.length : 0;\n    const bLen = b.length;\n    const cLen = c !== null ? c.length : 0;\n    if (aLen === 0 \u0026\u0026 bLen === 0 \u0026\u0026 cLen === 0) {\n      return new Uint32Array(0);\n    }\n    if (aLen === 0 \u0026\u0026 bLen === 0) {\n      return c;\n    }\n    if (bLen === 0 \u0026\u0026 cLen === 0) {\n      return a;\n    }\n    const result = new Uint32Array(aLen + bLen + cLen);\n    if (a !== null) {\n      result.set(a);\n    }\n    for (let i2 = 0; i2 \u003c bLen; i2++) {\n      result[aLen + i2] = b[i2];\n    }\n    if (c !== null) {\n      result.set(c, aLen + bLen);\n    }\n    return result;\n  }\n  nestedLanguageTokenize(embeddedLanguageLine, hasEOL, embeddedLanguageData, offsetDelta) {\n    const nestedLanguageId = embeddedLanguageData.languageId;\n    const embeddedModeState = embeddedLanguageData.state;\n    const nestedLanguageTokenizationSupport = TokenizationRegistry2.get(nestedLanguageId);\n    if (!nestedLanguageTokenizationSupport) {\n      this.enterLanguage(nestedLanguageId);\n      this.emit(offsetDelta, \"\");\n      return embeddedModeState;\n    }\n    const nestedResult = nestedLanguageTokenizationSupport.tokenizeEncoded(embeddedLanguageLine, hasEOL, embeddedModeState);\n    if (offsetDelta !== 0) {\n      for (let i2 = 0, len = nestedResult.tokens.length; i2 \u003c len; i2 += 2) {\n        nestedResult.tokens[i2] += offsetDelta;\n      }\n    }\n    this._prependTokens = _MonarchModernTokensCollector._merge(this._prependTokens, this._tokens, nestedResult.tokens);\n    this._tokens = [];\n    this._currentLanguageId = 0;\n    this._lastTokenMetadata = 0;\n    return nestedResult.endState;\n  }\n  finalize(endState) {\n    return new EncodedTokenizationResult(_MonarchModernTokensCollector._merge(this._prependTokens, this._tokens, null), endState);\n  }\n};\nvar MonarchTokenizer = MonarchTokenizer_1 = class MonarchTokenizer2 extends Disposable {\n  constructor(languageService, standaloneThemeService, languageId, lexer2, _configurationService) {\n    super();\n    this._configurationService = _configurationService;\n    this._languageService = languageService;\n    this._standaloneThemeService = standaloneThemeService;\n    this._languageId = languageId;\n    this._lexer = lexer2;\n    this._embeddedLanguages = /* @__PURE__ */ Object.create(null);\n    this.embeddedLoaded = Promise.resolve(void 0);\n    let emitting = false;\n    this._register(TokenizationRegistry2.onDidChange((e) =\u003e {\n      if (emitting) {\n        return;\n      }\n      let isOneOfMyEmbeddedModes = false;\n      for (let i2 = 0, len = e.changedLanguages.length; i2 \u003c len; i2++) {\n        const language2 = e.changedLanguages[i2];\n        if (this._embeddedLanguages[language2]) {\n          isOneOfMyEmbeddedModes = true;\n          break;\n        }\n      }\n      if (isOneOfMyEmbeddedModes) {\n        emitting = true;\n        TokenizationRegistry2.handleChange([this._languageId]);\n        emitting = false;\n      }\n    }));\n    this._maxTokenizationLineLength = this._configurationService.getValue(\"editor.maxTokenizationLineLength\", {\n      overrideIdentifier: this._languageId\n    });\n    this._register(this._configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(\"editor.maxTokenizationLineLength\")) {\n        this._maxTokenizationLineLength = this._configurationService.getValue(\"editor.maxTokenizationLineLength\", {\n          overrideIdentifier: this._languageId\n        });\n      }\n    }));\n  }\n  getLoadStatus() {\n    const promises = [];\n    for (const nestedLanguageId in this._embeddedLanguages) {\n      const tokenizationSupport = TokenizationRegistry2.get(nestedLanguageId);\n      if (tokenizationSupport) {\n        if (tokenizationSupport instanceof MonarchTokenizer_1) {\n          const nestedModeStatus = tokenizationSupport.getLoadStatus();\n          if (nestedModeStatus.loaded === false) {\n            promises.push(nestedModeStatus.promise);\n          }\n        }\n        continue;\n      }\n      if (!TokenizationRegistry2.isResolved(nestedLanguageId)) {\n        promises.push(TokenizationRegistry2.getOrCreate(nestedLanguageId));\n      }\n    }\n    if (promises.length === 0) {\n      return {\n        loaded: true\n      };\n    }\n    return {\n      loaded: false,\n      promise: Promise.all(promises).then((_) =\u003e void 0)\n    };\n  }\n  getInitialState() {\n    const rootState = MonarchStackElementFactory.create(null, this._lexer.start);\n    return MonarchLineStateFactory.create(rootState, null);\n  }\n  tokenize(line, hasEOL, lineState) {\n    if (line.length \u003e= this._maxTokenizationLineLength) {\n      return nullTokenize(this._languageId, lineState);\n    }\n    const tokensCollector = new MonarchClassicTokensCollector();\n    const endLineState = this._tokenize(line, hasEOL, lineState, tokensCollector);\n    return tokensCollector.finalize(endLineState);\n  }\n  tokenizeEncoded(line, hasEOL, lineState) {\n    if (line.length \u003e= this._maxTokenizationLineLength) {\n      return nullTokenizeEncoded(this._languageService.languageIdCodec.encodeLanguageId(this._languageId), lineState);\n    }\n    const tokensCollector = new MonarchModernTokensCollector(this._languageService, this._standaloneThemeService.getColorTheme().tokenTheme);\n    const endLineState = this._tokenize(line, hasEOL, lineState, tokensCollector);\n    return tokensCollector.finalize(endLineState);\n  }\n  _tokenize(line, hasEOL, lineState, collector) {\n    if (lineState.embeddedLanguageData) {\n      return this._nestedTokenize(line, hasEOL, lineState, 0, collector);\n    } else {\n      return this._myTokenize(line, hasEOL, lineState, 0, collector);\n    }\n  }\n  _findLeavingNestedLanguageOffset(line, state) {\n    let rules = this._lexer.tokenizer[state.stack.state];\n    if (!rules) {\n      rules = findRules(this._lexer, state.stack.state);\n      if (!rules) {\n        throw createError(this._lexer, \"tokenizer state is not defined: \" + state.stack.state);\n      }\n    }\n    let popOffset = -1;\n    let hasEmbeddedPopRule = false;\n    for (const rule of rules) {\n      if (!isIAction(rule.action) || !(rule.action.nextEmbedded === \"@pop\" || rule.action.hasEmbeddedEndInCases)) {\n        continue;\n      }\n      hasEmbeddedPopRule = true;\n      let regex = rule.resolveRegex(state.stack.state);\n      const regexSource = regex.source;\n      if (regexSource.substr(0, 4) === \"^(?:\" \u0026\u0026 regexSource.substr(regexSource.length - 1, 1) === \")\") {\n        const flags = (regex.ignoreCase ? \"i\" : \"\") + (regex.unicode ? \"u\" : \"\");\n        regex = new RegExp(regexSource.substr(4, regexSource.length - 5), flags);\n      }\n      const result = line.search(regex);\n      if (result === -1 || result !== 0 \u0026\u0026 rule.matchOnlyAtLineStart) {\n        continue;\n      }\n      if (popOffset === -1 || result \u003c popOffset) {\n        popOffset = result;\n      }\n    }\n    if (!hasEmbeddedPopRule) {\n      throw createError(this._lexer, 'no rule containing nextEmbedded: \"@pop\" in tokenizer embedded state: ' + state.stack.state);\n    }\n    return popOffset;\n  }\n  _nestedTokenize(line, hasEOL, lineState, offsetDelta, tokensCollector) {\n    const popOffset = this._findLeavingNestedLanguageOffset(line, lineState);\n    if (popOffset === -1) {\n      const nestedEndState = tokensCollector.nestedLanguageTokenize(line, hasEOL, lineState.embeddedLanguageData, offsetDelta);\n      return MonarchLineStateFactory.create(lineState.stack, new EmbeddedLanguageData(lineState.embeddedLanguageData.languageId, nestedEndState));\n    }\n    const nestedLanguageLine = line.substring(0, popOffset);\n    if (nestedLanguageLine.length \u003e 0) {\n      tokensCollector.nestedLanguageTokenize(nestedLanguageLine, false, lineState.embeddedLanguageData, offsetDelta);\n    }\n    const restOfTheLine = line.substring(popOffset);\n    return this._myTokenize(restOfTheLine, hasEOL, lineState, offsetDelta + popOffset, tokensCollector);\n  }\n  _safeRuleName(rule) {\n    if (rule) {\n      return rule.name;\n    }\n    return \"(unknown)\";\n  }\n  _myTokenize(lineWithoutLF, hasEOL, lineState, offsetDelta, tokensCollector) {\n    tokensCollector.enterLanguage(this._languageId);\n    const lineWithoutLFLength = lineWithoutLF.length;\n    const line = hasEOL \u0026\u0026 this._lexer.includeLF ? lineWithoutLF + \"\\n\" : lineWithoutLF;\n    const lineLength = line.length;\n    let embeddedLanguageData = lineState.embeddedLanguageData;\n    let stack = lineState.stack;\n    let pos = 0;\n    let groupMatching = null;\n    let forceEvaluation = true;\n    while (forceEvaluation || pos \u003c lineLength) {\n      const pos0 = pos;\n      const stackLen0 = stack.depth;\n      const groupLen0 = groupMatching ? groupMatching.groups.length : 0;\n      const state = stack.state;\n      let matches = null;\n      let matched = null;\n      let action = null;\n      let rule = null;\n      let enteringEmbeddedLanguage = null;\n      if (groupMatching) {\n        matches = groupMatching.matches;\n        const groupEntry = groupMatching.groups.shift();\n        matched = groupEntry.matched;\n        action = groupEntry.action;\n        rule = groupMatching.rule;\n        if (groupMatching.groups.length === 0) {\n          groupMatching = null;\n        }\n      } else {\n        if (!forceEvaluation \u0026\u0026 pos \u003e= lineLength) {\n          break;\n        }\n        forceEvaluation = false;\n        let rules = this._lexer.tokenizer[state];\n        if (!rules) {\n          rules = findRules(this._lexer, state);\n          if (!rules) {\n            throw createError(this._lexer, \"tokenizer state is not defined: \" + state);\n          }\n        }\n        const restOfLine = line.substr(pos);\n        for (const rule2 of rules) {\n          if (pos === 0 || !rule2.matchOnlyAtLineStart) {\n            matches = restOfLine.match(rule2.resolveRegex(state));\n            if (matches) {\n              matched = matches[0];\n              action = rule2.action;\n              break;\n            }\n          }\n        }\n      }\n      if (!matches) {\n        matches = [\"\"];\n        matched = \"\";\n      }\n      if (!action) {\n        if (pos \u003c lineLength) {\n          matches = [line.charAt(pos)];\n          matched = matches[0];\n        }\n        action = this._lexer.defaultToken;\n      }\n      if (matched === null) {\n        break;\n      }\n      pos += matched.length;\n      while (isFuzzyAction(action) \u0026\u0026 isIAction(action) \u0026\u0026 action.test) {\n        action = action.test(matched, matches, state, pos === lineLength);\n      }\n      let result = null;\n      if (typeof action === \"string\" || Array.isArray(action)) {\n        result = action;\n      } else if (action.group) {\n        result = action.group;\n      } else if (action.token !== null \u0026\u0026 action.token !== void 0) {\n        if (action.tokenSubst) {\n          result = substituteMatches(this._lexer, action.token, matched, matches, state);\n        } else {\n          result = action.token;\n        }\n        if (action.nextEmbedded) {\n          if (action.nextEmbedded === \"@pop\") {\n            if (!embeddedLanguageData) {\n              throw createError(this._lexer, \"cannot pop embedded language if not inside one\");\n            }\n            embeddedLanguageData = null;\n          } else if (embeddedLanguageData) {\n            throw createError(this._lexer, \"cannot enter embedded language from within an embedded language\");\n          } else {\n            enteringEmbeddedLanguage = substituteMatches(this._lexer, action.nextEmbedded, matched, matches, state);\n          }\n        }\n        if (action.goBack) {\n          pos = Math.max(0, pos - action.goBack);\n        }\n        if (action.switchTo \u0026\u0026 typeof action.switchTo === \"string\") {\n          let nextState = substituteMatches(this._lexer, action.switchTo, matched, matches, state);\n          if (nextState[0] === \"@\") {\n            nextState = nextState.substr(1);\n          }\n          if (!findRules(this._lexer, nextState)) {\n            throw createError(this._lexer, \"trying to switch to a state '\" + nextState + \"' that is undefined in rule: \" + this._safeRuleName(rule));\n          } else {\n            stack = stack.switchTo(nextState);\n          }\n        } else if (action.transform \u0026\u0026 typeof action.transform === \"function\") {\n          throw createError(this._lexer, \"action.transform not supported\");\n        } else if (action.next) {\n          if (action.next === \"@push\") {\n            if (stack.depth \u003e= this._lexer.maxStack) {\n              throw createError(this._lexer, \"maximum tokenizer stack size reached: [\" + stack.state + \",\" + stack.parent.state + \",...]\");\n            } else {\n              stack = stack.push(state);\n            }\n          } else if (action.next === \"@pop\") {\n            if (stack.depth \u003c= 1) {\n              throw createError(this._lexer, \"trying to pop an empty stack in rule: \" + this._safeRuleName(rule));\n            } else {\n              stack = stack.pop();\n            }\n          } else if (action.next === \"@popall\") {\n            stack = stack.popall();\n          } else {\n            let nextState = substituteMatches(this._lexer, action.next, matched, matches, state);\n            if (nextState[0] === \"@\") {\n              nextState = nextState.substr(1);\n            }\n            if (!findRules(this._lexer, nextState)) {\n              throw createError(this._lexer, \"trying to set a next state '\" + nextState + \"' that is undefined in rule: \" + this._safeRuleName(rule));\n            } else {\n              stack = stack.push(nextState);\n            }\n          }\n        }\n        if (action.log \u0026\u0026 typeof action.log === \"string\") {\n          log(this._lexer, this._lexer.languageId + \": \" + substituteMatches(this._lexer, action.log, matched, matches, state));\n        }\n      }\n      if (result === null) {\n        throw createError(this._lexer, \"lexer rule has no well-defined action in rule: \" + this._safeRuleName(rule));\n      }\n      const computeNewStateForEmbeddedLanguage = (enteringEmbeddedLanguage2) =\u003e {\n        const languageId = this._languageService.getLanguageIdByLanguageName(enteringEmbeddedLanguage2) || this._languageService.getLanguageIdByMimeType(enteringEmbeddedLanguage2) || enteringEmbeddedLanguage2;\n        const embeddedLanguageData2 = this._getNestedEmbeddedLanguageData(languageId);\n        if (pos \u003c lineLength) {\n          const restOfLine = lineWithoutLF.substr(pos);\n          return this._nestedTokenize(restOfLine, hasEOL, MonarchLineStateFactory.create(stack, embeddedLanguageData2), offsetDelta + pos, tokensCollector);\n        } else {\n          return MonarchLineStateFactory.create(stack, embeddedLanguageData2);\n        }\n      };\n      if (Array.isArray(result)) {\n        if (groupMatching \u0026\u0026 groupMatching.groups.length \u003e 0) {\n          throw createError(this._lexer, \"groups cannot be nested: \" + this._safeRuleName(rule));\n        }\n        if (matches.length !== result.length + 1) {\n          throw createError(this._lexer, \"matched number of groups does not match the number of actions in rule: \" + this._safeRuleName(rule));\n        }\n        let totalLen = 0;\n        for (let i2 = 1; i2 \u003c matches.length; i2++) {\n          totalLen += matches[i2].length;\n        }\n        if (totalLen !== matched.length) {\n          throw createError(this._lexer, \"with groups, all characters should be matched in consecutive groups in rule: \" + this._safeRuleName(rule));\n        }\n        groupMatching = {\n          rule,\n          matches,\n          groups: []\n        };\n        for (let i2 = 0; i2 \u003c result.length; i2++) {\n          groupMatching.groups[i2] = {\n            action: result[i2],\n            matched: matches[i2 + 1]\n          };\n        }\n        pos -= matched.length;\n        continue;\n      } else {\n        if (result === \"@rematch\") {\n          pos -= matched.length;\n          matched = \"\";\n          matches = null;\n          result = \"\";\n          if (enteringEmbeddedLanguage !== null) {\n            return computeNewStateForEmbeddedLanguage(enteringEmbeddedLanguage);\n          }\n        }\n        if (matched.length === 0) {\n          if (lineLength === 0 || stackLen0 !== stack.depth || state !== stack.state || (!groupMatching ? 0 : groupMatching.groups.length) !== groupLen0) {\n            continue;\n          } else {\n            throw createError(this._lexer, \"no progress in tokenizer in rule: \" + this._safeRuleName(rule));\n          }\n        }\n        let tokenType = null;\n        if (isString2(result) \u0026\u0026 result.indexOf(\"@brackets\") === 0) {\n          const rest = result.substr(\"@brackets\".length);\n          const bracket = findBracket(this._lexer, matched);\n          if (!bracket) {\n            throw createError(this._lexer, \"@brackets token returned but no bracket defined as: \" + matched);\n          }\n          tokenType = sanitize(bracket.token + rest);\n        } else {\n          const token = result === \"\" ? \"\" : result + this._lexer.tokenPostfix;\n          tokenType = sanitize(token);\n        }\n        if (pos0 \u003c lineWithoutLFLength) {\n          tokensCollector.emit(pos0 + offsetDelta, tokenType);\n        }\n      }\n      if (enteringEmbeddedLanguage !== null) {\n        return computeNewStateForEmbeddedLanguage(enteringEmbeddedLanguage);\n      }\n    }\n    return MonarchLineStateFactory.create(stack, embeddedLanguageData);\n  }\n  _getNestedEmbeddedLanguageData(languageId) {\n    if (!this._languageService.isRegisteredLanguageId(languageId)) {\n      return new EmbeddedLanguageData(languageId, NullState);\n    }\n    if (languageId !== this._languageId) {\n      this._languageService.requestBasicLanguageFeatures(languageId);\n      TokenizationRegistry2.getOrCreate(languageId);\n      this._embeddedLanguages[languageId] = true;\n    }\n    const tokenizationSupport = TokenizationRegistry2.get(languageId);\n    if (tokenizationSupport) {\n      return new EmbeddedLanguageData(languageId, tokenizationSupport.getInitialState());\n    }\n    return new EmbeddedLanguageData(languageId, NullState);\n  }\n};\nMonarchTokenizer = MonarchTokenizer_1 = __decorate164([\n  __param158(4, IConfigurationService)\n], MonarchTokenizer);\nfunction findBracket(lexer2, matched) {\n  if (!matched) {\n    return null;\n  }\n  matched = fixCase(lexer2, matched);\n  const brackets = lexer2.brackets;\n  for (const bracket of brackets) {\n    if (bracket.open === matched) {\n      return {\n        token: bracket.token,\n        bracketType: 1\n        /* monarchCommon.MonarchBracket.Open */\n      };\n    } else if (bracket.close === matched) {\n      return {\n        token: bracket.token,\n        bracketType: -1\n        /* monarchCommon.MonarchBracket.Close */\n      };\n    }\n  }\n  return null;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/colorizer.js\nvar ttPolicy6 = createTrustedTypesPolicy(\"standaloneColorizer\", { createHTML: (value) =\u003e value });\nvar Colorizer = class {\n  static colorizeElement(themeService, languageService, domNode, options2) {\n    options2 = options2 || {};\n    const theme = options2.theme || \"vs\";\n    const mimeType = options2.mimeType || domNode.getAttribute(\"lang\") || domNode.getAttribute(\"data-lang\");\n    if (!mimeType) {\n      console.error(\"Mode not detected\");\n      return Promise.resolve();\n    }\n    const languageId = languageService.getLanguageIdByMimeType(mimeType) || mimeType;\n    themeService.setTheme(theme);\n    const text2 = domNode.firstChild ? domNode.firstChild.nodeValue : \"\";\n    domNode.className += \" \" + theme;\n    const render = (str) =\u003e {\n      const trustedhtml = ttPolicy6?.createHTML(str) ?? str;\n      domNode.innerHTML = trustedhtml;\n    };\n    return this.colorize(languageService, text2 || \"\", languageId, options2).then(render, (err) =\u003e console.error(err));\n  }\n  static async colorize(languageService, text2, languageId, options2) {\n    const languageIdCodec = languageService.languageIdCodec;\n    let tabSize = 4;\n    if (options2 \u0026\u0026 typeof options2.tabSize === \"number\") {\n      tabSize = options2.tabSize;\n    }\n    if (startsWithUTF8BOM(text2)) {\n      text2 = text2.substr(1);\n    }\n    const lines = splitLines(text2);\n    if (!languageService.isRegisteredLanguageId(languageId)) {\n      return _fakeColorize(lines, tabSize, languageIdCodec);\n    }\n    const tokenizationSupport = await TokenizationRegistry2.getOrCreate(languageId);\n    if (tokenizationSupport) {\n      return _colorize(lines, tabSize, tokenizationSupport, languageIdCodec);\n    }\n    return _fakeColorize(lines, tabSize, languageIdCodec);\n  }\n  static colorizeLine(line, mightContainNonBasicASCII, mightContainRTL, tokens, tabSize = 4) {\n    const isBasicASCII2 = ViewLineRenderingData.isBasicASCII(line, mightContainNonBasicASCII);\n    const containsRTL2 = ViewLineRenderingData.containsRTL(line, isBasicASCII2, mightContainRTL);\n    const renderResult = renderViewLine2(new RenderLineInput(false, true, line, false, isBasicASCII2, containsRTL2, 0, tokens, [], tabSize, 0, 0, 0, 0, -1, \"none\", false, false, null, null, 0));\n    return renderResult.html;\n  }\n  static colorizeModelLine(model, lineNumber, tabSize = 4) {\n    const content = model.getLineContent(lineNumber);\n    model.tokenization.forceTokenization(lineNumber);\n    const tokens = model.tokenization.getLineTokens(lineNumber);\n    const inflatedTokens = tokens.inflate();\n    return this.colorizeLine(content, model.mightContainNonBasicASCII(), model.mightContainRTL(), inflatedTokens, tabSize);\n  }\n};\nfunction _colorize(lines, tabSize, tokenizationSupport, languageIdCodec) {\n  return new Promise((c, e) =\u003e {\n    const execute = () =\u003e {\n      const result = _actualColorize(lines, tabSize, tokenizationSupport, languageIdCodec);\n      if (tokenizationSupport instanceof MonarchTokenizer) {\n        const status2 = tokenizationSupport.getLoadStatus();\n        if (status2.loaded === false) {\n          status2.promise.then(execute, e);\n          return;\n        }\n      }\n      c(result);\n    };\n    execute();\n  });\n}\nfunction _fakeColorize(lines, tabSize, languageIdCodec) {\n  let html3 = [];\n  const defaultMetadata = (0 \u003c\u003c 11 | 1 \u003c\u003c 15 | 2 \u003c\u003c 24) \u003e\u003e\u003e 0;\n  const tokens = new Uint32Array(2);\n  tokens[0] = 0;\n  tokens[1] = defaultMetadata;\n  for (let i2 = 0, length = lines.length; i2 \u003c length; i2++) {\n    const line = lines[i2];\n    tokens[0] = line.length;\n    const lineTokens = new LineTokens(tokens, line, languageIdCodec);\n    const isBasicASCII2 = ViewLineRenderingData.isBasicASCII(\n      line,\n      /* check for basic ASCII */\n      true\n    );\n    const containsRTL2 = ViewLineRenderingData.containsRTL(\n      line,\n      isBasicASCII2,\n      /* check for RTL */\n      true\n    );\n    const renderResult = renderViewLine2(new RenderLineInput(false, true, line, false, isBasicASCII2, containsRTL2, 0, lineTokens, [], tabSize, 0, 0, 0, 0, -1, \"none\", false, false, null, null, 0));\n    html3 = html3.concat(renderResult.html);\n    html3.push(\"\u003cbr/\u003e\");\n  }\n  return html3.join(\"\");\n}\nfunction _actualColorize(lines, tabSize, tokenizationSupport, languageIdCodec) {\n  let html3 = [];\n  let state = tokenizationSupport.getInitialState();\n  for (let i2 = 0, length = lines.length; i2 \u003c length; i2++) {\n    const line = lines[i2];\n    const tokenizeResult = tokenizationSupport.tokenizeEncoded(line, true, state);\n    LineTokens.convertToEndOffset(tokenizeResult.tokens, line.length);\n    const lineTokens = new LineTokens(tokenizeResult.tokens, line, languageIdCodec);\n    const isBasicASCII2 = ViewLineRenderingData.isBasicASCII(\n      line,\n      /* check for basic ASCII */\n      true\n    );\n    const containsRTL2 = ViewLineRenderingData.containsRTL(\n      line,\n      isBasicASCII2,\n      /* check for RTL */\n      true\n    );\n    const renderResult = renderViewLine2(new RenderLineInput(false, true, line, false, isBasicASCII2, containsRTL2, 0, lineTokens.inflate(), [], tabSize, 0, 0, 0, 0, -1, \"none\", false, false, null, null, 0));\n    html3 = html3.concat(renderResult.html);\n    html3.push(\"\u003cbr/\u003e\");\n    state = tokenizeResult.endState;\n  }\n  return html3.join(\"\");\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditor.js\ninit_lifecycle();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditorService.js\ninit_dom();\ninit_network();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/abstractCodeEditorService.js\ninit_event();\ninit_lifecycle();\ninit_linkedList();\ninit_themeService();\nvar __decorate165 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param159 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar AbstractCodeEditorService = class AbstractCodeEditorService2 extends Disposable {\n  constructor(_themeService) {\n    super();\n    this._themeService = _themeService;\n    this._onWillCreateCodeEditor = this._register(new Emitter());\n    this._onCodeEditorAdd = this._register(new Emitter());\n    this.onCodeEditorAdd = this._onCodeEditorAdd.event;\n    this._onCodeEditorRemove = this._register(new Emitter());\n    this.onCodeEditorRemove = this._onCodeEditorRemove.event;\n    this._onWillCreateDiffEditor = this._register(new Emitter());\n    this._onDiffEditorAdd = this._register(new Emitter());\n    this.onDiffEditorAdd = this._onDiffEditorAdd.event;\n    this._onDiffEditorRemove = this._register(new Emitter());\n    this.onDiffEditorRemove = this._onDiffEditorRemove.event;\n    this._decorationOptionProviders = /* @__PURE__ */ new Map();\n    this._codeEditorOpenHandlers = new LinkedList();\n    this._modelProperties = /* @__PURE__ */ new Map();\n    this._codeEditors = /* @__PURE__ */ Object.create(null);\n    this._diffEditors = /* @__PURE__ */ Object.create(null);\n    this._globalStyleSheet = null;\n  }\n  willCreateCodeEditor() {\n    this._onWillCreateCodeEditor.fire();\n  }\n  addCodeEditor(editor2) {\n    this._codeEditors[editor2.getId()] = editor2;\n    this._onCodeEditorAdd.fire(editor2);\n  }\n  removeCodeEditor(editor2) {\n    if (delete this._codeEditors[editor2.getId()]) {\n      this._onCodeEditorRemove.fire(editor2);\n    }\n  }\n  listCodeEditors() {\n    return Object.keys(this._codeEditors).map((id) =\u003e this._codeEditors[id]);\n  }\n  willCreateDiffEditor() {\n    this._onWillCreateDiffEditor.fire();\n  }\n  addDiffEditor(editor2) {\n    this._diffEditors[editor2.getId()] = editor2;\n    this._onDiffEditorAdd.fire(editor2);\n  }\n  listDiffEditors() {\n    return Object.keys(this._diffEditors).map((id) =\u003e this._diffEditors[id]);\n  }\n  getFocusedCodeEditor() {\n    let editorWithWidgetFocus = null;\n    const editors = this.listCodeEditors();\n    for (const editor2 of editors) {\n      if (editor2.hasTextFocus()) {\n        return editor2;\n      }\n      if (editor2.hasWidgetFocus()) {\n        editorWithWidgetFocus = editor2;\n      }\n    }\n    return editorWithWidgetFocus;\n  }\n  removeDecorationType(key) {\n    const provider = this._decorationOptionProviders.get(key);\n    if (provider) {\n      provider.refCount--;\n      if (provider.refCount \u003c= 0) {\n        this._decorationOptionProviders.delete(key);\n        provider.dispose();\n        this.listCodeEditors().forEach((ed) =\u003e ed.removeDecorationsByType(key));\n      }\n    }\n  }\n  setModelProperty(resource, key, value) {\n    const key1 = resource.toString();\n    let dest;\n    if (this._modelProperties.has(key1)) {\n      dest = this._modelProperties.get(key1);\n    } else {\n      dest = /* @__PURE__ */ new Map();\n      this._modelProperties.set(key1, dest);\n    }\n    dest.set(key, value);\n  }\n  getModelProperty(resource, key) {\n    const key1 = resource.toString();\n    if (this._modelProperties.has(key1)) {\n      const innerMap = this._modelProperties.get(key1);\n      return innerMap.get(key);\n    }\n    return void 0;\n  }\n  async openCodeEditor(input, source, sideBySide) {\n    for (const handler of this._codeEditorOpenHandlers) {\n      const candidate = await handler(input, source, sideBySide);\n      if (candidate !== null) {\n        return candidate;\n      }\n    }\n    return null;\n  }\n  registerCodeEditorOpenHandler(handler) {\n    const rm = this._codeEditorOpenHandlers.unshift(handler);\n    return toDisposable(rm);\n  }\n};\nAbstractCodeEditorService = __decorate165([\n  __param159(0, IThemeService)\n], AbstractCodeEditorService);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditorService.js\ninit_codeEditorService();\ninit_contextkey();\ninit_extensions();\ninit_themeService();\nvar __decorate166 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param160 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneCodeEditorService = class StandaloneCodeEditorService2 extends AbstractCodeEditorService {\n  constructor(contextKeyService, themeService) {\n    super(themeService);\n    this._register(this.onCodeEditorAdd(() =\u003e this._checkContextKey()));\n    this._register(this.onCodeEditorRemove(() =\u003e this._checkContextKey()));\n    this._editorIsOpen = contextKeyService.createKey(\"editorIsOpen\", false);\n    this._activeCodeEditor = null;\n    this._register(this.registerCodeEditorOpenHandler(async (input, source, sideBySide) =\u003e {\n      if (!source) {\n        return null;\n      }\n      return this.doOpenEditor(source, input);\n    }));\n  }\n  _checkContextKey() {\n    let hasCodeEditor = false;\n    for (const editor2 of this.listCodeEditors()) {\n      if (!editor2.isSimpleWidget) {\n        hasCodeEditor = true;\n        break;\n      }\n    }\n    this._editorIsOpen.set(hasCodeEditor);\n  }\n  setActiveCodeEditor(activeCodeEditor) {\n    this._activeCodeEditor = activeCodeEditor;\n  }\n  getActiveCodeEditor() {\n    return this._activeCodeEditor;\n  }\n  doOpenEditor(editor2, input) {\n    const model = this.findModel(editor2, input.resource);\n    if (!model) {\n      if (input.resource) {\n        const schema = input.resource.scheme;\n        if (schema === Schemas.http || schema === Schemas.https) {\n          windowOpenNoOpener(input.resource.toString());\n          return editor2;\n        }\n      }\n      return null;\n    }\n    const selection = input.options ? input.options.selection : null;\n    if (selection) {\n      if (typeof selection.endLineNumber === \"number\" \u0026\u0026 typeof selection.endColumn === \"number\") {\n        editor2.setSelection(selection);\n        editor2.revealRangeInCenter(\n          selection,\n          1\n          /* ScrollType.Immediate */\n        );\n      } else {\n        const pos = {\n          lineNumber: selection.startLineNumber,\n          column: selection.startColumn\n        };\n        editor2.setPosition(pos);\n        editor2.revealPositionInCenter(\n          pos,\n          1\n          /* ScrollType.Immediate */\n        );\n      }\n    }\n    return editor2;\n  }\n  findModel(editor2, resource) {\n    const model = editor2.getModel();\n    if (model \u0026\u0026 model.uri.toString() !== resource.toString()) {\n      return null;\n    }\n    return model;\n  }\n};\nStandaloneCodeEditorService = __decorate166([\n  __param160(0, IContextKeyService),\n  __param160(1, IThemeService)\n], StandaloneCodeEditorService);\nregisterSingleton(\n  ICodeEditorService,\n  StandaloneCodeEditorService,\n  0\n  /* InstantiationType.Eager */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneLayoutService.js\ninit_dom();\ninit_window();\ninit_arrays();\ninit_event();\ninit_codeEditorService();\ninit_extensions();\nvar __decorate167 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param161 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar StandaloneLayoutService = class StandaloneLayoutService2 {\n  get mainContainer() {\n    return this._codeEditorService.listCodeEditors().at(0)?.getContainerDomNode() ?? mainWindow.document.body;\n  }\n  get activeContainer() {\n    const activeCodeEditor = this._codeEditorService.getFocusedCodeEditor() ?? this._codeEditorService.getActiveCodeEditor();\n    return activeCodeEditor?.getContainerDomNode() ?? this.mainContainer;\n  }\n  get mainContainerDimension() {\n    return getClientArea(this.mainContainer);\n  }\n  get activeContainerDimension() {\n    return getClientArea(this.activeContainer);\n  }\n  get containers() {\n    return coalesce(this._codeEditorService.listCodeEditors().map((codeEditor) =\u003e codeEditor.getContainerDomNode()));\n  }\n  getContainer() {\n    return this.activeContainer;\n  }\n  whenContainerStylesLoaded() {\n    return void 0;\n  }\n  focus() {\n    this._codeEditorService.getFocusedCodeEditor()?.focus();\n  }\n  constructor(_codeEditorService) {\n    this._codeEditorService = _codeEditorService;\n    this.onDidLayoutMainContainer = Event.None;\n    this.onDidLayoutActiveContainer = Event.None;\n    this.onDidLayoutContainer = Event.None;\n    this.onDidChangeActiveContainer = Event.None;\n    this.onDidAddContainer = Event.None;\n    this.mainContainerOffset = { top: 0, quickPickTop: 0 };\n    this.activeContainerOffset = { top: 0, quickPickTop: 0 };\n  }\n};\nStandaloneLayoutService = __decorate167([\n  __param161(0, ICodeEditorService)\n], StandaloneLayoutService);\nvar EditorScopedLayoutService = class EditorScopedLayoutService2 extends StandaloneLayoutService {\n  get mainContainer() {\n    return this._container;\n  }\n  constructor(_container, codeEditorService) {\n    super(codeEditorService);\n    this._container = _container;\n  }\n};\nEditorScopedLayoutService = __decorate167([\n  __param161(1, ICodeEditorService)\n], EditorScopedLayoutService);\nregisterSingleton(\n  ILayoutService,\n  StandaloneLayoutService,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/undoRedo/common/undoRedoService.js\ninit_errors();\ninit_lifecycle();\ninit_network();\ninit_nls();\ninit_extensions();\ninit_undoRedo();\nvar __decorate168 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param162 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar DEBUG2 = false;\nfunction getResourceLabel(resource) {\n  return resource.scheme === Schemas.file ? resource.fsPath : resource.path;\n}\nvar stackElementCounter = 0;\nvar ResourceStackElement = class {\n  constructor(actual, resourceLabel, strResource, groupId, groupOrder, sourceId, sourceOrder) {\n    this.id = ++stackElementCounter;\n    this.type = 0;\n    this.actual = actual;\n    this.label = actual.label;\n    this.confirmBeforeUndo = actual.confirmBeforeUndo || false;\n    this.resourceLabel = resourceLabel;\n    this.strResource = strResource;\n    this.resourceLabels = [this.resourceLabel];\n    this.strResources = [this.strResource];\n    this.groupId = groupId;\n    this.groupOrder = groupOrder;\n    this.sourceId = sourceId;\n    this.sourceOrder = sourceOrder;\n    this.isValid = true;\n  }\n  setValid(isValid2) {\n    this.isValid = isValid2;\n  }\n  toString() {\n    return `[id:${this.id}] [group:${this.groupId}] [${this.isValid ? \"  VALID\" : \"INVALID\"}] ${this.actual.constructor.name} - ${this.actual}`;\n  }\n};\nvar ResourceReasonPair = class {\n  constructor(resourceLabel, reason) {\n    this.resourceLabel = resourceLabel;\n    this.reason = reason;\n  }\n};\nvar RemovedResources = class {\n  constructor() {\n    this.elements = /* @__PURE__ */ new Map();\n  }\n  createMessage() {\n    const externalRemoval = [];\n    const noParallelUniverses = [];\n    for (const [, element] of this.elements) {\n      const dest = element.reason === 0 ? externalRemoval : noParallelUniverses;\n      dest.push(element.resourceLabel);\n    }\n    const messages = [];\n    if (externalRemoval.length \u003e 0) {\n      messages.push(localize(2008, \"The following files have been closed and modified on disk: {0}.\", externalRemoval.join(\", \")));\n    }\n    if (noParallelUniverses.length \u003e 0) {\n      messages.push(localize(2009, \"The following files have been modified in an incompatible way: {0}.\", noParallelUniverses.join(\", \")));\n    }\n    return messages.join(\"\\n\");\n  }\n  get size() {\n    return this.elements.size;\n  }\n  has(strResource) {\n    return this.elements.has(strResource);\n  }\n  set(strResource, value) {\n    this.elements.set(strResource, value);\n  }\n  delete(strResource) {\n    return this.elements.delete(strResource);\n  }\n};\nvar WorkspaceStackElement = class {\n  constructor(actual, resourceLabels, strResources, groupId, groupOrder, sourceId, sourceOrder) {\n    this.id = ++stackElementCounter;\n    this.type = 1;\n    this.actual = actual;\n    this.label = actual.label;\n    this.confirmBeforeUndo = actual.confirmBeforeUndo || false;\n    this.resourceLabels = resourceLabels;\n    this.strResources = strResources;\n    this.groupId = groupId;\n    this.groupOrder = groupOrder;\n    this.sourceId = sourceId;\n    this.sourceOrder = sourceOrder;\n    this.removedResources = null;\n    this.invalidatedResources = null;\n  }\n  canSplit() {\n    return typeof this.actual.split === \"function\";\n  }\n  removeResource(resourceLabel, strResource, reason) {\n    if (!this.removedResources) {\n      this.removedResources = new RemovedResources();\n    }\n    if (!this.removedResources.has(strResource)) {\n      this.removedResources.set(strResource, new ResourceReasonPair(resourceLabel, reason));\n    }\n  }\n  setValid(resourceLabel, strResource, isValid2) {\n    if (isValid2) {\n      if (this.invalidatedResources) {\n        this.invalidatedResources.delete(strResource);\n        if (this.invalidatedResources.size === 0) {\n          this.invalidatedResources = null;\n        }\n      }\n    } else {\n      if (!this.invalidatedResources) {\n        this.invalidatedResources = new RemovedResources();\n      }\n      if (!this.invalidatedResources.has(strResource)) {\n        this.invalidatedResources.set(strResource, new ResourceReasonPair(\n          resourceLabel,\n          0\n          /* RemovedResourceReason.ExternalRemoval */\n        ));\n      }\n    }\n  }\n  toString() {\n    return `[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources ? \"INVALID\" : \"  VALID\"}] ${this.actual.constructor.name} - ${this.actual}`;\n  }\n};\nvar ResourceEditStack = class {\n  constructor(resourceLabel, strResource) {\n    this.resourceLabel = resourceLabel;\n    this.strResource = strResource;\n    this._past = [];\n    this._future = [];\n    this.locked = false;\n    this.versionId = 1;\n  }\n  dispose() {\n    for (const element of this._past) {\n      if (element.type === 1) {\n        element.removeResource(\n          this.resourceLabel,\n          this.strResource,\n          0\n          /* RemovedResourceReason.ExternalRemoval */\n        );\n      }\n    }\n    for (const element of this._future) {\n      if (element.type === 1) {\n        element.removeResource(\n          this.resourceLabel,\n          this.strResource,\n          0\n          /* RemovedResourceReason.ExternalRemoval */\n        );\n      }\n    }\n    this.versionId++;\n  }\n  toString() {\n    const result = [];\n    result.push(`* ${this.strResource}:`);\n    for (let i2 = 0; i2 \u003c this._past.length; i2++) {\n      result.push(`   * [UNDO] ${this._past[i2]}`);\n    }\n    for (let i2 = this._future.length - 1; i2 \u003e= 0; i2--) {\n      result.push(`   * [REDO] ${this._future[i2]}`);\n    }\n    return result.join(\"\\n\");\n  }\n  flushAllElements() {\n    this._past = [];\n    this._future = [];\n    this.versionId++;\n  }\n  _setElementValidFlag(element, isValid2) {\n    if (element.type === 1) {\n      element.setValid(this.resourceLabel, this.strResource, isValid2);\n    } else {\n      element.setValid(isValid2);\n    }\n  }\n  setElementsValidFlag(isValid2, filter) {\n    for (const element of this._past) {\n      if (filter(element.actual)) {\n        this._setElementValidFlag(element, isValid2);\n      }\n    }\n    for (const element of this._future) {\n      if (filter(element.actual)) {\n        this._setElementValidFlag(element, isValid2);\n      }\n    }\n  }\n  pushElement(element) {\n    for (const futureElement of this._future) {\n      if (futureElement.type === 1) {\n        futureElement.removeResource(\n          this.resourceLabel,\n          this.strResource,\n          1\n          /* RemovedResourceReason.NoParallelUniverses */\n        );\n      }\n    }\n    this._future = [];\n    this._past.push(element);\n    this.versionId++;\n  }\n  createSnapshot(resource) {\n    const elements = [];\n    for (let i2 = 0, len = this._past.length; i2 \u003c len; i2++) {\n      elements.push(this._past[i2].id);\n    }\n    for (let i2 = this._future.length - 1; i2 \u003e= 0; i2--) {\n      elements.push(this._future[i2].id);\n    }\n    return new ResourceEditStackSnapshot(resource, elements);\n  }\n  restoreSnapshot(snapshot) {\n    const snapshotLength = snapshot.elements.length;\n    let isOK = true;\n    let snapshotIndex = 0;\n    let removePastAfter = -1;\n    for (let i2 = 0, len = this._past.length; i2 \u003c len; i2++, snapshotIndex++) {\n      const element = this._past[i2];\n      if (isOK \u0026\u0026 (snapshotIndex \u003e= snapshotLength || element.id !== snapshot.elements[snapshotIndex])) {\n        isOK = false;\n        removePastAfter = 0;\n      }\n      if (!isOK \u0026\u0026 element.type === 1) {\n        element.removeResource(\n          this.resourceLabel,\n          this.strResource,\n          0\n          /* RemovedResourceReason.ExternalRemoval */\n        );\n      }\n    }\n    let removeFutureBefore = -1;\n    for (let i2 = this._future.length - 1; i2 \u003e= 0; i2--, snapshotIndex++) {\n      const element = this._future[i2];\n      if (isOK \u0026\u0026 (snapshotIndex \u003e= snapshotLength || element.id !== snapshot.elements[snapshotIndex])) {\n        isOK = false;\n        removeFutureBefore = i2;\n      }\n      if (!isOK \u0026\u0026 element.type === 1) {\n        element.removeResource(\n          this.resourceLabel,\n          this.strResource,\n          0\n          /* RemovedResourceReason.ExternalRemoval */\n        );\n      }\n    }\n    if (removePastAfter !== -1) {\n      this._past = this._past.slice(0, removePastAfter);\n    }\n    if (removeFutureBefore !== -1) {\n      this._future = this._future.slice(removeFutureBefore + 1);\n    }\n    this.versionId++;\n  }\n  getElements() {\n    const past = [];\n    const future = [];\n    for (const element of this._past) {\n      past.push(element.actual);\n    }\n    for (const element of this._future) {\n      future.push(element.actual);\n    }\n    return { past, future };\n  }\n  getClosestPastElement() {\n    if (this._past.length === 0) {\n      return null;\n    }\n    return this._past[this._past.length - 1];\n  }\n  getSecondClosestPastElement() {\n    if (this._past.length \u003c 2) {\n      return null;\n    }\n    return this._past[this._past.length - 2];\n  }\n  getClosestFutureElement() {\n    if (this._future.length === 0) {\n      return null;\n    }\n    return this._future[this._future.length - 1];\n  }\n  hasPastElements() {\n    return this._past.length \u003e 0;\n  }\n  hasFutureElements() {\n    return this._future.length \u003e 0;\n  }\n  splitPastWorkspaceElement(toRemove, individualMap) {\n    for (let j = this._past.length - 1; j \u003e= 0; j--) {\n      if (this._past[j] === toRemove) {\n        if (individualMap.has(this.strResource)) {\n          this._past[j] = individualMap.get(this.strResource);\n        } else {\n          this._past.splice(j, 1);\n        }\n        break;\n      }\n    }\n    this.versionId++;\n  }\n  splitFutureWorkspaceElement(toRemove, individualMap) {\n    for (let j = this._future.length - 1; j \u003e= 0; j--) {\n      if (this._future[j] === toRemove) {\n        if (individualMap.has(this.strResource)) {\n          this._future[j] = individualMap.get(this.strResource);\n        } else {\n          this._future.splice(j, 1);\n        }\n        break;\n      }\n    }\n    this.versionId++;\n  }\n  moveBackward(element) {\n    this._past.pop();\n    this._future.push(element);\n    this.versionId++;\n  }\n  moveForward(element) {\n    this._future.pop();\n    this._past.push(element);\n    this.versionId++;\n  }\n};\nvar EditStackSnapshot = class {\n  constructor(editStacks) {\n    this.editStacks = editStacks;\n    this._versionIds = [];\n    for (let i2 = 0, len = this.editStacks.length; i2 \u003c len; i2++) {\n      this._versionIds[i2] = this.editStacks[i2].versionId;\n    }\n  }\n  isValid() {\n    for (let i2 = 0, len = this.editStacks.length; i2 \u003c len; i2++) {\n      if (this._versionIds[i2] !== this.editStacks[i2].versionId) {\n        return false;\n      }\n    }\n    return true;\n  }\n};\nvar missingEditStack = new ResourceEditStack(\"\", \"\");\nmissingEditStack.locked = true;\nvar UndoRedoService = class UndoRedoService2 {\n  constructor(_dialogService, _notificationService) {\n    this._dialogService = _dialogService;\n    this._notificationService = _notificationService;\n    this._editStacks = /* @__PURE__ */ new Map();\n    this._uriComparisonKeyComputers = [];\n  }\n  getUriComparisonKey(resource) {\n    for (const uriComparisonKeyComputer of this._uriComparisonKeyComputers) {\n      if (uriComparisonKeyComputer[0] === resource.scheme) {\n        return uriComparisonKeyComputer[1].getComparisonKey(resource);\n      }\n    }\n    return resource.toString();\n  }\n  _print(label) {\n    console.log(`------------------------------------`);\n    console.log(`AFTER ${label}: `);\n    const str = [];\n    for (const element of this._editStacks) {\n      str.push(element[1].toString());\n    }\n    console.log(str.join(\"\\n\"));\n  }\n  pushElement(element, group = UndoRedoGroup.None, source = UndoRedoSource.None) {\n    if (element.type === 0) {\n      const resourceLabel = getResourceLabel(element.resource);\n      const strResource = this.getUriComparisonKey(element.resource);\n      this._pushElement(new ResourceStackElement(element, resourceLabel, strResource, group.id, group.nextOrder(), source.id, source.nextOrder()));\n    } else {\n      const seen = /* @__PURE__ */ new Set();\n      const resourceLabels = [];\n      const strResources = [];\n      for (const resource of element.resources) {\n        const resourceLabel = getResourceLabel(resource);\n        const strResource = this.getUriComparisonKey(resource);\n        if (seen.has(strResource)) {\n          continue;\n        }\n        seen.add(strResource);\n        resourceLabels.push(resourceLabel);\n        strResources.push(strResource);\n      }\n      if (resourceLabels.length === 1) {\n        this._pushElement(new ResourceStackElement(element, resourceLabels[0], strResources[0], group.id, group.nextOrder(), source.id, source.nextOrder()));\n      } else {\n        this._pushElement(new WorkspaceStackElement(element, resourceLabels, strResources, group.id, group.nextOrder(), source.id, source.nextOrder()));\n      }\n    }\n    if (DEBUG2) {\n      this._print(\"pushElement\");\n    }\n  }\n  _pushElement(element) {\n    for (let i2 = 0, len = element.strResources.length; i2 \u003c len; i2++) {\n      const resourceLabel = element.resourceLabels[i2];\n      const strResource = element.strResources[i2];\n      let editStack;\n      if (this._editStacks.has(strResource)) {\n        editStack = this._editStacks.get(strResource);\n      } else {\n        editStack = new ResourceEditStack(resourceLabel, strResource);\n        this._editStacks.set(strResource, editStack);\n      }\n      editStack.pushElement(element);\n    }\n  }\n  getLastElement(resource) {\n    const strResource = this.getUriComparisonKey(resource);\n    if (this._editStacks.has(strResource)) {\n      const editStack = this._editStacks.get(strResource);\n      if (editStack.hasFutureElements()) {\n        return null;\n      }\n      const closestPastElement = editStack.getClosestPastElement();\n      return closestPastElement ? closestPastElement.actual : null;\n    }\n    return null;\n  }\n  _splitPastWorkspaceElement(toRemove, ignoreResources) {\n    const individualArr = toRemove.actual.split();\n    const individualMap = /* @__PURE__ */ new Map();\n    for (const _element of individualArr) {\n      const resourceLabel = getResourceLabel(_element.resource);\n      const strResource = this.getUriComparisonKey(_element.resource);\n      const element = new ResourceStackElement(_element, resourceLabel, strResource, 0, 0, 0, 0);\n      individualMap.set(element.strResource, element);\n    }\n    for (const strResource of toRemove.strResources) {\n      if (ignoreResources \u0026\u0026 ignoreResources.has(strResource)) {\n        continue;\n      }\n      const editStack = this._editStacks.get(strResource);\n      editStack.splitPastWorkspaceElement(toRemove, individualMap);\n    }\n  }\n  _splitFutureWorkspaceElement(toRemove, ignoreResources) {\n    const individualArr = toRemove.actual.split();\n    const individualMap = /* @__PURE__ */ new Map();\n    for (const _element of individualArr) {\n      const resourceLabel = getResourceLabel(_element.resource);\n      const strResource = this.getUriComparisonKey(_element.resource);\n      const element = new ResourceStackElement(_element, resourceLabel, strResource, 0, 0, 0, 0);\n      individualMap.set(element.strResource, element);\n    }\n    for (const strResource of toRemove.strResources) {\n      if (ignoreResources \u0026\u0026 ignoreResources.has(strResource)) {\n        continue;\n      }\n      const editStack = this._editStacks.get(strResource);\n      editStack.splitFutureWorkspaceElement(toRemove, individualMap);\n    }\n  }\n  removeElements(resource) {\n    const strResource = typeof resource === \"string\" ? resource : this.getUriComparisonKey(resource);\n    if (this._editStacks.has(strResource)) {\n      const editStack = this._editStacks.get(strResource);\n      editStack.dispose();\n      this._editStacks.delete(strResource);\n    }\n    if (DEBUG2) {\n      this._print(\"removeElements\");\n    }\n  }\n  setElementsValidFlag(resource, isValid2, filter) {\n    const strResource = this.getUriComparisonKey(resource);\n    if (this._editStacks.has(strResource)) {\n      const editStack = this._editStacks.get(strResource);\n      editStack.setElementsValidFlag(isValid2, filter);\n    }\n    if (DEBUG2) {\n      this._print(\"setElementsValidFlag\");\n    }\n  }\n  createSnapshot(resource) {\n    const strResource = this.getUriComparisonKey(resource);\n    if (this._editStacks.has(strResource)) {\n      const editStack = this._editStacks.get(strResource);\n      return editStack.createSnapshot(resource);\n    }\n    return new ResourceEditStackSnapshot(resource, []);\n  }\n  restoreSnapshot(snapshot) {\n    const strResource = this.getUriComparisonKey(snapshot.resource);\n    if (this._editStacks.has(strResource)) {\n      const editStack = this._editStacks.get(strResource);\n      editStack.restoreSnapshot(snapshot);\n      if (!editStack.hasPastElements() \u0026\u0026 !editStack.hasFutureElements()) {\n        editStack.dispose();\n        this._editStacks.delete(strResource);\n      }\n    }\n    if (DEBUG2) {\n      this._print(\"restoreSnapshot\");\n    }\n  }\n  getElements(resource) {\n    const strResource = this.getUriComparisonKey(resource);\n    if (this._editStacks.has(strResource)) {\n      const editStack = this._editStacks.get(strResource);\n      return editStack.getElements();\n    }\n    return { past: [], future: [] };\n  }\n  _findClosestUndoElementWithSource(sourceId) {\n    if (!sourceId) {\n      return [null, null];\n    }\n    let matchedElement = null;\n    let matchedStrResource = null;\n    for (const [strResource, editStack] of this._editStacks) {\n      const candidate = editStack.getClosestPastElement();\n      if (!candidate) {\n        continue;\n      }\n      if (candidate.sourceId === sourceId) {\n        if (!matchedElement || candidate.sourceOrder \u003e matchedElement.sourceOrder) {\n          matchedElement = candidate;\n          matchedStrResource = strResource;\n        }\n      }\n    }\n    return [matchedElement, matchedStrResource];\n  }\n  canUndo(resourceOrSource) {\n    if (resourceOrSource instanceof UndoRedoSource) {\n      const [, matchedStrResource] = this._findClosestUndoElementWithSource(resourceOrSource.id);\n      return matchedStrResource ? true : false;\n    }\n    const strResource = this.getUriComparisonKey(resourceOrSource);\n    if (this._editStacks.has(strResource)) {\n      const editStack = this._editStacks.get(strResource);\n      return editStack.hasPastElements();\n    }\n    return false;\n  }\n  _onError(err, element) {\n    onUnexpectedError(err);\n    for (const strResource of element.strResources) {\n      this.removeElements(strResource);\n    }\n    this._notificationService.error(err);\n  }\n  _acquireLocks(editStackSnapshot) {\n    for (const editStack of editStackSnapshot.editStacks) {\n      if (editStack.locked) {\n        throw new Error(\"Cannot acquire edit stack lock\");\n      }\n    }\n    for (const editStack of editStackSnapshot.editStacks) {\n      editStack.locked = true;\n    }\n    return () =\u003e {\n      for (const editStack of editStackSnapshot.editStacks) {\n        editStack.locked = false;\n      }\n    };\n  }\n  _safeInvokeWithLocks(element, invoke, editStackSnapshot, cleanup, continuation) {\n    const releaseLocks = this._acquireLocks(editStackSnapshot);\n    let result;\n    try {\n      result = invoke();\n    } catch (err) {\n      releaseLocks();\n      cleanup.dispose();\n      return this._onError(err, element);\n    }\n    if (result) {\n      return result.then(() =\u003e {\n        releaseLocks();\n        cleanup.dispose();\n        return continuation();\n      }, (err) =\u003e {\n        releaseLocks();\n        cleanup.dispose();\n        return this._onError(err, element);\n      });\n    } else {\n      releaseLocks();\n      cleanup.dispose();\n      return continuation();\n    }\n  }\n  async _invokeWorkspacePrepare(element) {\n    if (typeof element.actual.prepareUndoRedo === \"undefined\") {\n      return Disposable.None;\n    }\n    const result = element.actual.prepareUndoRedo();\n    if (typeof result === \"undefined\") {\n      return Disposable.None;\n    }\n    return result;\n  }\n  _invokeResourcePrepare(element, callback) {\n    if (element.actual.type !== 1 || typeof element.actual.prepareUndoRedo === \"undefined\") {\n      return callback(Disposable.None);\n    }\n    const r = element.actual.prepareUndoRedo();\n    if (!r) {\n      return callback(Disposable.None);\n    }\n    if (isDisposable(r)) {\n      return callback(r);\n    }\n    return r.then((disposable) =\u003e {\n      return callback(disposable);\n    });\n  }\n  _getAffectedEditStacks(element) {\n    const affectedEditStacks = [];\n    for (const strResource of element.strResources) {\n      affectedEditStacks.push(this._editStacks.get(strResource) || missingEditStack);\n    }\n    return new EditStackSnapshot(affectedEditStacks);\n  }\n  _tryToSplitAndUndo(strResource, element, ignoreResources, message) {\n    if (element.canSplit()) {\n      this._splitPastWorkspaceElement(element, ignoreResources);\n      this._notificationService.warn(message);\n      return new WorkspaceVerificationError(this._undo(strResource, 0, true));\n    } else {\n      for (const strResource2 of element.strResources) {\n        this.removeElements(strResource2);\n      }\n      this._notificationService.warn(message);\n      return new WorkspaceVerificationError();\n    }\n  }\n  _checkWorkspaceUndo(strResource, element, editStackSnapshot, checkInvalidatedResources) {\n    if (element.removedResources) {\n      return this._tryToSplitAndUndo(strResource, element, element.removedResources, localize(2010, \"Could not undo '{0}' across all files. {1}\", element.label, element.removedResources.createMessage()));\n    }\n    if (checkInvalidatedResources \u0026\u0026 element.invalidatedResources) {\n      return this._tryToSplitAndUndo(strResource, element, element.invalidatedResources, localize(2011, \"Could not undo '{0}' across all files. {1}\", element.label, element.invalidatedResources.createMessage()));\n    }\n    const cannotUndoDueToResources = [];\n    for (const editStack of editStackSnapshot.editStacks) {\n      if (editStack.getClosestPastElement() !== element) {\n        cannotUndoDueToResources.push(editStack.resourceLabel);\n      }\n    }\n    if (cannotUndoDueToResources.length \u003e 0) {\n      return this._tryToSplitAndUndo(strResource, element, null, localize(2012, \"Could not undo '{0}' across all files because changes were made to {1}\", element.label, cannotUndoDueToResources.join(\", \")));\n    }\n    const cannotLockDueToResources = [];\n    for (const editStack of editStackSnapshot.editStacks) {\n      if (editStack.locked) {\n        cannotLockDueToResources.push(editStack.resourceLabel);\n      }\n    }\n    if (cannotLockDueToResources.length \u003e 0) {\n      return this._tryToSplitAndUndo(strResource, element, null, localize(2013, \"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}\", element.label, cannotLockDueToResources.join(\", \")));\n    }\n    if (!editStackSnapshot.isValid()) {\n      return this._tryToSplitAndUndo(strResource, element, null, localize(2014, \"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime\", element.label));\n    }\n    return null;\n  }\n  _workspaceUndo(strResource, element, undoConfirmed) {\n    const affectedEditStacks = this._getAffectedEditStacks(element);\n    const verificationError = this._checkWorkspaceUndo(\n      strResource,\n      element,\n      affectedEditStacks,\n      /*invalidated resources will be checked after the prepare call*/\n      false\n    );\n    if (verificationError) {\n      return verificationError.returnValue;\n    }\n    return this._confirmAndExecuteWorkspaceUndo(strResource, element, affectedEditStacks, undoConfirmed);\n  }\n  _isPartOfUndoGroup(element) {\n    if (!element.groupId) {\n      return false;\n    }\n    for (const [, editStack] of this._editStacks) {\n      const pastElement = editStack.getClosestPastElement();\n      if (!pastElement) {\n        continue;\n      }\n      if (pastElement === element) {\n        const secondPastElement = editStack.getSecondClosestPastElement();\n        if (secondPastElement \u0026\u0026 secondPastElement.groupId === element.groupId) {\n          return true;\n        }\n      }\n      if (pastElement.groupId === element.groupId) {\n        return true;\n      }\n    }\n    return false;\n  }\n  async _confirmAndExecuteWorkspaceUndo(strResource, element, editStackSnapshot, undoConfirmed) {\n    if (element.canSplit() \u0026\u0026 !this._isPartOfUndoGroup(element)) {\n      let UndoChoice;\n      (function(UndoChoice2) {\n        UndoChoice2[UndoChoice2[\"All\"] = 0] = \"All\";\n        UndoChoice2[UndoChoice2[\"This\"] = 1] = \"This\";\n        UndoChoice2[UndoChoice2[\"Cancel\"] = 2] = \"Cancel\";\n      })(UndoChoice || (UndoChoice = {}));\n      const { result } = await this._dialogService.prompt({\n        type: severity_default.Info,\n        message: localize(2015, \"Would you like to undo '{0}' across all files?\", element.label),\n        buttons: [\n          {\n            label: localize(2016, \"\u0026\u0026Undo in {0} Files\", editStackSnapshot.editStacks.length),\n            run: () =\u003e UndoChoice.All\n          },\n          {\n            label: localize(2017, \"Undo this \u0026\u0026File\"),\n            run: () =\u003e UndoChoice.This\n          }\n        ],\n        cancelButton: {\n          run: () =\u003e UndoChoice.Cancel\n        }\n      });\n      if (result === UndoChoice.Cancel) {\n        return;\n      }\n      if (result === UndoChoice.This) {\n        this._splitPastWorkspaceElement(element, null);\n        return this._undo(strResource, 0, true);\n      }\n      const verificationError1 = this._checkWorkspaceUndo(\n        strResource,\n        element,\n        editStackSnapshot,\n        /*invalidated resources will be checked after the prepare call*/\n        false\n      );\n      if (verificationError1) {\n        return verificationError1.returnValue;\n      }\n      undoConfirmed = true;\n    }\n    let cleanup;\n    try {\n      cleanup = await this._invokeWorkspacePrepare(element);\n    } catch (err) {\n      return this._onError(err, element);\n    }\n    const verificationError2 = this._checkWorkspaceUndo(\n      strResource,\n      element,\n      editStackSnapshot,\n      /*now also check that there are no more invalidated resources*/\n      true\n    );\n    if (verificationError2) {\n      cleanup.dispose();\n      return verificationError2.returnValue;\n    }\n    for (const editStack of editStackSnapshot.editStacks) {\n      editStack.moveBackward(element);\n    }\n    return this._safeInvokeWithLocks(element, () =\u003e element.actual.undo(), editStackSnapshot, cleanup, () =\u003e this._continueUndoInGroup(element.groupId, undoConfirmed));\n  }\n  _resourceUndo(editStack, element, undoConfirmed) {\n    if (!element.isValid) {\n      editStack.flushAllElements();\n      return;\n    }\n    if (editStack.locked) {\n      const message = localize(2018, \"Could not undo '{0}' because there is already an undo or redo operation running.\", element.label);\n      this._notificationService.warn(message);\n      return;\n    }\n    return this._invokeResourcePrepare(element, (cleanup) =\u003e {\n      editStack.moveBackward(element);\n      return this._safeInvokeWithLocks(element, () =\u003e element.actual.undo(), new EditStackSnapshot([editStack]), cleanup, () =\u003e this._continueUndoInGroup(element.groupId, undoConfirmed));\n    });\n  }\n  _findClosestUndoElementInGroup(groupId) {\n    if (!groupId) {\n      return [null, null];\n    }\n    let matchedElement = null;\n    let matchedStrResource = null;\n    for (const [strResource, editStack] of this._editStacks) {\n      const candidate = editStack.getClosestPastElement();\n      if (!candidate) {\n        continue;\n      }\n      if (candidate.groupId === groupId) {\n        if (!matchedElement || candidate.groupOrder \u003e matchedElement.groupOrder) {\n          matchedElement = candidate;\n          matchedStrResource = strResource;\n        }\n      }\n    }\n    return [matchedElement, matchedStrResource];\n  }\n  _continueUndoInGroup(groupId, undoConfirmed) {\n    if (!groupId) {\n      return;\n    }\n    const [, matchedStrResource] = this._findClosestUndoElementInGroup(groupId);\n    if (matchedStrResource) {\n      return this._undo(matchedStrResource, 0, undoConfirmed);\n    }\n  }\n  undo(resourceOrSource) {\n    if (resourceOrSource instanceof UndoRedoSource) {\n      const [, matchedStrResource] = this._findClosestUndoElementWithSource(resourceOrSource.id);\n      return matchedStrResource ? this._undo(matchedStrResource, resourceOrSource.id, false) : void 0;\n    }\n    if (typeof resourceOrSource === \"string\") {\n      return this._undo(resourceOrSource, 0, false);\n    }\n    return this._undo(this.getUriComparisonKey(resourceOrSource), 0, false);\n  }\n  _undo(strResource, sourceId = 0, undoConfirmed) {\n    if (!this._editStacks.has(strResource)) {\n      return;\n    }\n    const editStack = this._editStacks.get(strResource);\n    const element = editStack.getClosestPastElement();\n    if (!element) {\n      return;\n    }\n    if (element.groupId) {\n      const [matchedElement, matchedStrResource] = this._findClosestUndoElementInGroup(element.groupId);\n      if (element !== matchedElement \u0026\u0026 matchedStrResource) {\n        return this._undo(matchedStrResource, sourceId, undoConfirmed);\n      }\n    }\n    const shouldPromptForConfirmation = element.sourceId !== sourceId || element.confirmBeforeUndo;\n    if (shouldPromptForConfirmation \u0026\u0026 !undoConfirmed) {\n      return this._confirmAndContinueUndo(strResource, sourceId, element);\n    }\n    try {\n      if (element.type === 1) {\n        return this._workspaceUndo(strResource, element, undoConfirmed);\n      } else {\n        return this._resourceUndo(editStack, element, undoConfirmed);\n      }\n    } finally {\n      if (DEBUG2) {\n        this._print(\"undo\");\n      }\n    }\n  }\n  async _confirmAndContinueUndo(strResource, sourceId, element) {\n    const result = await this._dialogService.confirm({\n      message: localize(2019, \"Would you like to undo '{0}'?\", element.label),\n      primaryButton: localize(2020, \"\u0026\u0026Yes\"),\n      cancelButton: localize(2021, \"No\")\n    });\n    if (!result.confirmed) {\n      return;\n    }\n    return this._undo(strResource, sourceId, true);\n  }\n  _findClosestRedoElementWithSource(sourceId) {\n    if (!sourceId) {\n      return [null, null];\n    }\n    let matchedElement = null;\n    let matchedStrResource = null;\n    for (const [strResource, editStack] of this._editStacks) {\n      const candidate = editStack.getClosestFutureElement();\n      if (!candidate) {\n        continue;\n      }\n      if (candidate.sourceId === sourceId) {\n        if (!matchedElement || candidate.sourceOrder \u003c matchedElement.sourceOrder) {\n          matchedElement = candidate;\n          matchedStrResource = strResource;\n        }\n      }\n    }\n    return [matchedElement, matchedStrResource];\n  }\n  canRedo(resourceOrSource) {\n    if (resourceOrSource instanceof UndoRedoSource) {\n      const [, matchedStrResource] = this._findClosestRedoElementWithSource(resourceOrSource.id);\n      return matchedStrResource ? true : false;\n    }\n    const strResource = this.getUriComparisonKey(resourceOrSource);\n    if (this._editStacks.has(strResource)) {\n      const editStack = this._editStacks.get(strResource);\n      return editStack.hasFutureElements();\n    }\n    return false;\n  }\n  _tryToSplitAndRedo(strResource, element, ignoreResources, message) {\n    if (element.canSplit()) {\n      this._splitFutureWorkspaceElement(element, ignoreResources);\n      this._notificationService.warn(message);\n      return new WorkspaceVerificationError(this._redo(strResource));\n    } else {\n      for (const strResource2 of element.strResources) {\n        this.removeElements(strResource2);\n      }\n      this._notificationService.warn(message);\n      return new WorkspaceVerificationError();\n    }\n  }\n  _checkWorkspaceRedo(strResource, element, editStackSnapshot, checkInvalidatedResources) {\n    if (element.removedResources) {\n      return this._tryToSplitAndRedo(strResource, element, element.removedResources, localize(2022, \"Could not redo '{0}' across all files. {1}\", element.label, element.removedResources.createMessage()));\n    }\n    if (checkInvalidatedResources \u0026\u0026 element.invalidatedResources) {\n      return this._tryToSplitAndRedo(strResource, element, element.invalidatedResources, localize(2023, \"Could not redo '{0}' across all files. {1}\", element.label, element.invalidatedResources.createMessage()));\n    }\n    const cannotRedoDueToResources = [];\n    for (const editStack of editStackSnapshot.editStacks) {\n      if (editStack.getClosestFutureElement() !== element) {\n        cannotRedoDueToResources.push(editStack.resourceLabel);\n      }\n    }\n    if (cannotRedoDueToResources.length \u003e 0) {\n      return this._tryToSplitAndRedo(strResource, element, null, localize(2024, \"Could not redo '{0}' across all files because changes were made to {1}\", element.label, cannotRedoDueToResources.join(\", \")));\n    }\n    const cannotLockDueToResources = [];\n    for (const editStack of editStackSnapshot.editStacks) {\n      if (editStack.locked) {\n        cannotLockDueToResources.push(editStack.resourceLabel);\n      }\n    }\n    if (cannotLockDueToResources.length \u003e 0) {\n      return this._tryToSplitAndRedo(strResource, element, null, localize(2025, \"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}\", element.label, cannotLockDueToResources.join(\", \")));\n    }\n    if (!editStackSnapshot.isValid()) {\n      return this._tryToSplitAndRedo(strResource, element, null, localize(2026, \"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime\", element.label));\n    }\n    return null;\n  }\n  _workspaceRedo(strResource, element) {\n    const affectedEditStacks = this._getAffectedEditStacks(element);\n    const verificationError = this._checkWorkspaceRedo(\n      strResource,\n      element,\n      affectedEditStacks,\n      /*invalidated resources will be checked after the prepare call*/\n      false\n    );\n    if (verificationError) {\n      return verificationError.returnValue;\n    }\n    return this._executeWorkspaceRedo(strResource, element, affectedEditStacks);\n  }\n  async _executeWorkspaceRedo(strResource, element, editStackSnapshot) {\n    let cleanup;\n    try {\n      cleanup = await this._invokeWorkspacePrepare(element);\n    } catch (err) {\n      return this._onError(err, element);\n    }\n    const verificationError = this._checkWorkspaceRedo(\n      strResource,\n      element,\n      editStackSnapshot,\n      /*now also check that there are no more invalidated resources*/\n      true\n    );\n    if (verificationError) {\n      cleanup.dispose();\n      return verificationError.returnValue;\n    }\n    for (const editStack of editStackSnapshot.editStacks) {\n      editStack.moveForward(element);\n    }\n    return this._safeInvokeWithLocks(element, () =\u003e element.actual.redo(), editStackSnapshot, cleanup, () =\u003e this._continueRedoInGroup(element.groupId));\n  }\n  _resourceRedo(editStack, element) {\n    if (!element.isValid) {\n      editStack.flushAllElements();\n      return;\n    }\n    if (editStack.locked) {\n      const message = localize(2027, \"Could not redo '{0}' because there is already an undo or redo operation running.\", element.label);\n      this._notificationService.warn(message);\n      return;\n    }\n    return this._invokeResourcePrepare(element, (cleanup) =\u003e {\n      editStack.moveForward(element);\n      return this._safeInvokeWithLocks(element, () =\u003e element.actual.redo(), new EditStackSnapshot([editStack]), cleanup, () =\u003e this._continueRedoInGroup(element.groupId));\n    });\n  }\n  _findClosestRedoElementInGroup(groupId) {\n    if (!groupId) {\n      return [null, null];\n    }\n    let matchedElement = null;\n    let matchedStrResource = null;\n    for (const [strResource, editStack] of this._editStacks) {\n      const candidate = editStack.getClosestFutureElement();\n      if (!candidate) {\n        continue;\n      }\n      if (candidate.groupId === groupId) {\n        if (!matchedElement || candidate.groupOrder \u003c matchedElement.groupOrder) {\n          matchedElement = candidate;\n          matchedStrResource = strResource;\n        }\n      }\n    }\n    return [matchedElement, matchedStrResource];\n  }\n  _continueRedoInGroup(groupId) {\n    if (!groupId) {\n      return;\n    }\n    const [, matchedStrResource] = this._findClosestRedoElementInGroup(groupId);\n    if (matchedStrResource) {\n      return this._redo(matchedStrResource);\n    }\n  }\n  redo(resourceOrSource) {\n    if (resourceOrSource instanceof UndoRedoSource) {\n      const [, matchedStrResource] = this._findClosestRedoElementWithSource(resourceOrSource.id);\n      return matchedStrResource ? this._redo(matchedStrResource) : void 0;\n    }\n    if (typeof resourceOrSource === \"string\") {\n      return this._redo(resourceOrSource);\n    }\n    return this._redo(this.getUriComparisonKey(resourceOrSource));\n  }\n  _redo(strResource) {\n    if (!this._editStacks.has(strResource)) {\n      return;\n    }\n    const editStack = this._editStacks.get(strResource);\n    const element = editStack.getClosestFutureElement();\n    if (!element) {\n      return;\n    }\n    if (element.groupId) {\n      const [matchedElement, matchedStrResource] = this._findClosestRedoElementInGroup(element.groupId);\n      if (element !== matchedElement \u0026\u0026 matchedStrResource) {\n        return this._redo(matchedStrResource);\n      }\n    }\n    try {\n      if (element.type === 1) {\n        return this._workspaceRedo(strResource, element);\n      } else {\n        return this._resourceRedo(editStack, element);\n      }\n    } finally {\n      if (DEBUG2) {\n        this._print(\"redo\");\n      }\n    }\n  }\n};\nUndoRedoService = __decorate168([\n  __param162(0, IDialogService),\n  __param162(1, INotificationService)\n], UndoRedoService);\nvar WorkspaceVerificationError = class {\n  constructor(returnValue) {\n    this.returnValue = returnValue;\n  }\n};\nregisterSingleton(\n  IUndoRedoService,\n  UndoRedoService,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_languageFeatureDebounce();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/semanticTokensStylingService.js\ninit_lifecycle();\ninit_language();\ninit_themeService();\ninit_log();\ninit_extensions();\nvar __decorate169 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param163 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SemanticTokensStylingService = class SemanticTokensStylingService2 extends Disposable {\n  constructor(_themeService, _logService, _languageService) {\n    super();\n    this._themeService = _themeService;\n    this._logService = _logService;\n    this._languageService = _languageService;\n    this._caches = /* @__PURE__ */ new WeakMap();\n    this._register(this._themeService.onDidColorThemeChange(() =\u003e {\n      this._caches = /* @__PURE__ */ new WeakMap();\n    }));\n  }\n  getStyling(provider) {\n    if (!this._caches.has(provider)) {\n      this._caches.set(provider, new SemanticTokensProviderStyling(provider.getLegend(), this._themeService, this._languageService, this._logService));\n    }\n    return this._caches.get(provider);\n  }\n};\nSemanticTokensStylingService = __decorate169([\n  __param163(0, IThemeService),\n  __param163(1, ILogService),\n  __param163(2, ILanguageService)\n], SemanticTokensStylingService);\nregisterSingleton(\n  ISemanticTokensStylingService,\n  SemanticTokensStylingService,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/languageFeatureRegistry.js\ninit_event();\ninit_lifecycle();\ninit_model2();\nfunction isExclusive(selector) {\n  if (typeof selector === \"string\") {\n    return false;\n  } else if (Array.isArray(selector)) {\n    return selector.every(isExclusive);\n  } else {\n    return !!selector.exclusive;\n  }\n}\nvar MatchCandidate = class {\n  constructor(uri, languageId, notebookUri, notebookType, recursive) {\n    this.uri = uri;\n    this.languageId = languageId;\n    this.notebookUri = notebookUri;\n    this.notebookType = notebookType;\n    this.recursive = recursive;\n  }\n  equals(other) {\n    return this.notebookType === other.notebookType \u0026\u0026 this.languageId === other.languageId \u0026\u0026 this.uri.toString() === other.uri.toString() \u0026\u0026 this.notebookUri?.toString() === other.notebookUri?.toString() \u0026\u0026 this.recursive === other.recursive;\n  }\n};\nvar LanguageFeatureRegistry = class _LanguageFeatureRegistry {\n  get onDidChange() {\n    return this._onDidChange.event;\n  }\n  constructor(_notebookInfoResolver) {\n    this._notebookInfoResolver = _notebookInfoResolver;\n    this._clock = 0;\n    this._entries = [];\n    this._onDidChange = new Emitter();\n  }\n  register(selector, provider) {\n    let entry = {\n      selector,\n      provider,\n      _score: -1,\n      _time: this._clock++\n    };\n    this._entries.push(entry);\n    this._lastCandidate = void 0;\n    this._onDidChange.fire(this._entries.length);\n    return toDisposable(() =\u003e {\n      if (entry) {\n        const idx = this._entries.indexOf(entry);\n        if (idx \u003e= 0) {\n          this._entries.splice(idx, 1);\n          this._lastCandidate = void 0;\n          this._onDidChange.fire(this._entries.length);\n          entry = void 0;\n        }\n      }\n    });\n  }\n  has(model) {\n    return this.all(model).length \u003e 0;\n  }\n  all(model) {\n    if (!model) {\n      return [];\n    }\n    this._updateScores(model, false);\n    const result = [];\n    for (const entry of this._entries) {\n      if (entry._score \u003e 0) {\n        result.push(entry.provider);\n      }\n    }\n    return result;\n  }\n  ordered(model, recursive = false) {\n    const result = [];\n    this._orderedForEach(model, recursive, (entry) =\u003e result.push(entry.provider));\n    return result;\n  }\n  orderedGroups(model) {\n    const result = [];\n    let lastBucket;\n    let lastBucketScore;\n    this._orderedForEach(model, false, (entry) =\u003e {\n      if (lastBucket \u0026\u0026 lastBucketScore === entry._score) {\n        lastBucket.push(entry.provider);\n      } else {\n        lastBucketScore = entry._score;\n        lastBucket = [entry.provider];\n        result.push(lastBucket);\n      }\n    });\n    return result;\n  }\n  _orderedForEach(model, recursive, callback) {\n    this._updateScores(model, recursive);\n    for (const entry of this._entries) {\n      if (entry._score \u003e 0) {\n        callback(entry);\n      }\n    }\n  }\n  _updateScores(model, recursive) {\n    const notebookInfo = this._notebookInfoResolver?.(model.uri);\n    const candidate = notebookInfo ? new MatchCandidate(model.uri, model.getLanguageId(), notebookInfo.uri, notebookInfo.type, recursive) : new MatchCandidate(model.uri, model.getLanguageId(), void 0, void 0, recursive);\n    if (this._lastCandidate?.equals(candidate)) {\n      return;\n    }\n    this._lastCandidate = candidate;\n    for (const entry of this._entries) {\n      entry._score = score2(entry.selector, candidate.uri, candidate.languageId, shouldSynchronizeModel(model), candidate.notebookUri, candidate.notebookType);\n      if (isExclusive(entry.selector) \u0026\u0026 entry._score \u003e 0) {\n        if (recursive) {\n          entry._score = 0;\n        } else {\n          for (const entry2 of this._entries) {\n            entry2._score = 0;\n          }\n          entry._score = 1e3;\n          break;\n        }\n      }\n    }\n    this._entries.sort(_LanguageFeatureRegistry._compareByScoreAndTime);\n  }\n  static _compareByScoreAndTime(a, b) {\n    if (a._score \u003c b._score) {\n      return 1;\n    } else if (a._score \u003e b._score) {\n      return -1;\n    }\n    if (isBuiltinSelector(a.selector) \u0026\u0026 !isBuiltinSelector(b.selector)) {\n      return 1;\n    } else if (!isBuiltinSelector(a.selector) \u0026\u0026 isBuiltinSelector(b.selector)) {\n      return -1;\n    }\n    if (a._time \u003c b._time) {\n      return 1;\n    } else if (a._time \u003e b._time) {\n      return -1;\n    } else {\n      return 0;\n    }\n  }\n};\nfunction isBuiltinSelector(selector) {\n  if (typeof selector === \"string\") {\n    return false;\n  }\n  if (Array.isArray(selector)) {\n    return selector.some(isBuiltinSelector);\n  }\n  return Boolean(selector.isBuiltin);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languageFeaturesService.js\ninit_languageFeatures();\ninit_extensions();\nvar LanguageFeaturesService = class {\n  constructor() {\n    this.referenceProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.renameProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.newSymbolNamesProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.codeActionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.definitionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.typeDefinitionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.declarationProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.implementationProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.documentSymbolProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.inlayHintsProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.colorProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.codeLensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.documentFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.documentRangeFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.onTypeFormattingEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.signatureHelpProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.hoverProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.documentHighlightProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.multiDocumentHighlightProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.selectionRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.foldingRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.linkProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.inlineCompletionsProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.completionProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.linkedEditingRangeProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.documentRangeSemanticTokensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.documentSemanticTokensProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.documentDropEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n    this.documentPasteEditProvider = new LanguageFeatureRegistry(this._score.bind(this));\n  }\n  _score(uri) {\n    return this._notebookTypeResolver?.(uri);\n  }\n};\nregisterSingleton(\n  ILanguageFeaturesService,\n  LanguageFeaturesService,\n  1\n  /* InstantiationType.Delayed */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/hoverService/hoverService.js\ninit_extensions();\ninit_themeService();\ninit_colorRegistry();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/hoverService/hoverWidget.js\ninit_lifecycle();\ninit_event();\ninit_dom();\ninit_configuration();\ninit_instantiation();\ninit_htmlContent();\ninit_nls();\ninit_platform();\ninit_async();\ninit_types();\nvar __decorate170 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param164 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar $17 = $;\nvar HoverWidget2 = class HoverWidget3 extends Widget {\n  get _targetWindow() {\n    return getWindow(this._target.targetElements[0]);\n  }\n  get _targetDocumentElement() {\n    return getWindow(this._target.targetElements[0]).document.documentElement;\n  }\n  get isDisposed() {\n    return this._isDisposed;\n  }\n  get isMouseIn() {\n    return this._lockMouseTracker.isMouseIn;\n  }\n  get domNode() {\n    return this._hover.containerDomNode;\n  }\n  get onDispose() {\n    return this._onDispose.event;\n  }\n  get onRequestLayout() {\n    return this._onRequestLayout.event;\n  }\n  get anchor() {\n    return this._hoverPosition === 2 ? 0 : 1;\n  }\n  get x() {\n    return this._x;\n  }\n  get y() {\n    return this._y;\n  }\n  /**\n   * Whether the hover is \"locked\" by holding the alt/option key. When locked, the hover will not\n   * hide and can be hovered regardless of whether the `hideOnHover` hover option is set.\n   */\n  get isLocked() {\n    return this._isLocked;\n  }\n  set isLocked(value) {\n    if (this._isLocked === value) {\n      return;\n    }\n    this._isLocked = value;\n    this._hoverContainer.classList.toggle(\"locked\", this._isLocked);\n  }\n  constructor(options2, _keybindingService, _configurationService, _openerService, _instantiationService, _accessibilityService) {\n    super();\n    this._keybindingService = _keybindingService;\n    this._configurationService = _configurationService;\n    this._openerService = _openerService;\n    this._instantiationService = _instantiationService;\n    this._accessibilityService = _accessibilityService;\n    this._messageListeners = new DisposableStore();\n    this._isDisposed = false;\n    this._forcePosition = false;\n    this._x = 0;\n    this._y = 0;\n    this._isLocked = false;\n    this._enableFocusTraps = false;\n    this._addedFocusTrap = false;\n    this._maxHeightRatioRelativeToWindow = 0.5;\n    this._onDispose = this._register(new Emitter());\n    this._onRequestLayout = this._register(new Emitter());\n    this._linkHandler = options2.linkHandler || ((url) =\u003e {\n      return openLinkFromMarkdown(this._openerService, url, isMarkdownString(options2.content) ? options2.content.isTrusted : void 0);\n    });\n    this._target = \"targetElements\" in options2.target ? options2.target : new ElementHoverTarget(options2.target);\n    this._hoverPointer = options2.appearance?.showPointer ? $17(\"div.workbench-hover-pointer\") : void 0;\n    this._hover = this._register(new HoverWidget(!options2.appearance?.skipFadeInAnimation));\n    this._hover.containerDomNode.classList.add(\"workbench-hover\");\n    if (options2.appearance?.compact) {\n      this._hover.containerDomNode.classList.add(\"workbench-hover\", \"compact\");\n    }\n    if (options2.additionalClasses) {\n      this._hover.containerDomNode.classList.add(...options2.additionalClasses);\n    }\n    if (options2.position?.forcePosition) {\n      this._forcePosition = true;\n    }\n    if (options2.trapFocus) {\n      this._enableFocusTraps = true;\n    }\n    const maxHeightRatio = options2.appearance?.maxHeightRatio;\n    if (maxHeightRatio !== void 0 \u0026\u0026 maxHeightRatio \u003e 0 \u0026\u0026 maxHeightRatio \u003c= 1) {\n      this._maxHeightRatioRelativeToWindow = maxHeightRatio;\n    }\n    this._hoverPosition = options2.position?.hoverPosition === void 0 ? 3 : isNumber(options2.position.hoverPosition) ? options2.position.hoverPosition : 2;\n    this.onmousedown(this._hover.containerDomNode, (e) =\u003e e.stopPropagation());\n    this.onkeydown(this._hover.containerDomNode, (e) =\u003e {\n      if (e.equals(\n        9\n        /* KeyCode.Escape */\n      )) {\n        this.dispose();\n      }\n    });\n    this._register(addDisposableListener(this._targetWindow, \"blur\", () =\u003e this.dispose()));\n    const rowElement = $17(\"div.hover-row.markdown-hover\");\n    const contentsElement = $17(\"div.hover-contents\");\n    if (typeof options2.content === \"string\") {\n      contentsElement.textContent = options2.content;\n      contentsElement.style.whiteSpace = \"pre-wrap\";\n    } else if (isHTMLElement(options2.content)) {\n      contentsElement.appendChild(options2.content);\n      contentsElement.classList.add(\"html-hover-contents\");\n    } else {\n      const markdown = options2.content;\n      const mdRenderer = this._instantiationService.createInstance(MarkdownRenderer, { codeBlockFontFamily: this._configurationService.getValue(\"editor\").fontFamily || EDITOR_FONT_DEFAULTS.fontFamily });\n      const { element, dispose: dispose2 } = mdRenderer.render(markdown, {\n        actionHandler: (content) =\u003e this._linkHandler(content),\n        asyncRenderCallback: () =\u003e {\n          contentsElement.classList.add(\"code-hover-contents\");\n          this.layout();\n          this._onRequestLayout.fire();\n        }\n      });\n      contentsElement.appendChild(element);\n      this._register(toDisposable(dispose2));\n    }\n    rowElement.appendChild(contentsElement);\n    this._hover.contentsDomNode.appendChild(rowElement);\n    if (options2.actions \u0026\u0026 options2.actions.length \u003e 0) {\n      const statusBarElement = $17(\"div.hover-row.status-bar\");\n      const actionsElement = $17(\"div.actions\");\n      options2.actions.forEach((action) =\u003e {\n        const keybinding = this._keybindingService.lookupKeybinding(action.commandId);\n        const keybindingLabel = keybinding ? keybinding.getLabel() : null;\n        this._register(HoverAction.render(actionsElement, {\n          label: action.label,\n          commandId: action.commandId,\n          run: (e) =\u003e {\n            action.run(e);\n            this.dispose();\n          },\n          iconClass: action.iconClass\n        }, keybindingLabel));\n      });\n      statusBarElement.appendChild(actionsElement);\n      this._hover.containerDomNode.appendChild(statusBarElement);\n    }\n    this._hoverContainer = $17(\"div.workbench-hover-container\");\n    if (this._hoverPointer) {\n      this._hoverContainer.appendChild(this._hoverPointer);\n    }\n    this._hoverContainer.appendChild(this._hover.containerDomNode);\n    let hideOnHover;\n    if (options2.actions \u0026\u0026 options2.actions.length \u003e 0) {\n      hideOnHover = false;\n    } else {\n      if (options2.persistence?.hideOnHover === void 0) {\n        hideOnHover = typeof options2.content === \"string\" || isMarkdownString(options2.content) \u0026\u0026 !options2.content.value.includes(\"](\") \u0026\u0026 !options2.content.value.includes(\"\u003c/a\u003e\");\n      } else {\n        hideOnHover = options2.persistence.hideOnHover;\n      }\n    }\n    if (options2.appearance?.showHoverHint) {\n      const statusBarElement = $17(\"div.hover-row.status-bar\");\n      const infoElement = $17(\"div.info\");\n      infoElement.textContent = localize(74, \"Hold {0} key to mouse over\", isMacintosh ? \"Option\" : \"Alt\");\n      statusBarElement.appendChild(infoElement);\n      this._hover.containerDomNode.appendChild(statusBarElement);\n    }\n    const mouseTrackerTargets = [...this._target.targetElements];\n    if (!hideOnHover) {\n      mouseTrackerTargets.push(this._hoverContainer);\n    }\n    const mouseTracker = this._register(new CompositeMouseTracker(mouseTrackerTargets));\n    this._register(mouseTracker.onMouseOut(() =\u003e {\n      if (!this._isLocked) {\n        this.dispose();\n      }\n    }));\n    if (hideOnHover) {\n      const mouseTracker2Targets = [...this._target.targetElements, this._hoverContainer];\n      this._lockMouseTracker = this._register(new CompositeMouseTracker(mouseTracker2Targets));\n      this._register(this._lockMouseTracker.onMouseOut(() =\u003e {\n        if (!this._isLocked) {\n          this.dispose();\n        }\n      }));\n    } else {\n      this._lockMouseTracker = mouseTracker;\n    }\n  }\n  addFocusTrap() {\n    if (!this._enableFocusTraps || this._addedFocusTrap) {\n      return;\n    }\n    this._addedFocusTrap = true;\n    const firstContainerFocusElement = this._hover.containerDomNode;\n    const lastContainerFocusElement = this.findLastFocusableChild(this._hover.containerDomNode);\n    if (lastContainerFocusElement) {\n      const beforeContainerFocusElement = prepend(this._hoverContainer, $17(\"div\"));\n      const afterContainerFocusElement = append(this._hoverContainer, $17(\"div\"));\n      beforeContainerFocusElement.tabIndex = 0;\n      afterContainerFocusElement.tabIndex = 0;\n      this._register(addDisposableListener(afterContainerFocusElement, \"focus\", (e) =\u003e {\n        firstContainerFocusElement.focus();\n        e.preventDefault();\n      }));\n      this._register(addDisposableListener(beforeContainerFocusElement, \"focus\", (e) =\u003e {\n        lastContainerFocusElement.focus();\n        e.preventDefault();\n      }));\n    }\n  }\n  findLastFocusableChild(root) {\n    if (root.hasChildNodes()) {\n      for (let i2 = 0; i2 \u003c root.childNodes.length; i2++) {\n        const node = root.childNodes.item(root.childNodes.length - i2 - 1);\n        if (node.nodeType === node.ELEMENT_NODE) {\n          const parsedNode = node;\n          if (typeof parsedNode.tabIndex === \"number\" \u0026\u0026 parsedNode.tabIndex \u003e= 0) {\n            return parsedNode;\n          }\n        }\n        const recursivelyFoundElement = this.findLastFocusableChild(node);\n        if (recursivelyFoundElement) {\n          return recursivelyFoundElement;\n        }\n      }\n    }\n    return void 0;\n  }\n  render(container) {\n    container.appendChild(this._hoverContainer);\n    const hoverFocused = this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement);\n    const accessibleViewHint = hoverFocused \u0026\u0026 getHoverAccessibleViewHint(this._configurationService.getValue(\"accessibility.verbosity.hover\") === true \u0026\u0026 this._accessibilityService.isScreenReaderOptimized(), this._keybindingService.lookupKeybinding(\"editor.action.accessibleView\")?.getAriaLabel());\n    if (accessibleViewHint) {\n      status(accessibleViewHint);\n    }\n    this.layout();\n    this.addFocusTrap();\n  }\n  layout() {\n    this._hover.containerDomNode.classList.remove(\"right-aligned\");\n    this._hover.contentsDomNode.style.maxHeight = \"\";\n    const getZoomAccountedBoundingClientRect = (e) =\u003e {\n      const zoom = getDomNodeZoomLevel(e);\n      const boundingRect = e.getBoundingClientRect();\n      return {\n        top: boundingRect.top * zoom,\n        bottom: boundingRect.bottom * zoom,\n        right: boundingRect.right * zoom,\n        left: boundingRect.left * zoom\n      };\n    };\n    const targetBounds = this._target.targetElements.map((e) =\u003e getZoomAccountedBoundingClientRect(e));\n    const { top, right, bottom, left } = targetBounds[0];\n    const width2 = right - left;\n    const height = bottom - top;\n    const targetRect = {\n      top,\n      right,\n      bottom,\n      left,\n      width: width2,\n      height,\n      center: {\n        x: left + width2 / 2,\n        y: top + height / 2\n      }\n    };\n    this.adjustHorizontalHoverPosition(targetRect);\n    this.adjustVerticalHoverPosition(targetRect);\n    this.adjustHoverMaxHeight(targetRect);\n    this._hoverContainer.style.padding = \"\";\n    this._hoverContainer.style.margin = \"\";\n    if (this._hoverPointer) {\n      switch (this._hoverPosition) {\n        case 1:\n          targetRect.left += 3;\n          targetRect.right += 3;\n          this._hoverContainer.style.paddingLeft = `${3}px`;\n          this._hoverContainer.style.marginLeft = `${-3}px`;\n          break;\n        case 0:\n          targetRect.left -= 3;\n          targetRect.right -= 3;\n          this._hoverContainer.style.paddingRight = `${3}px`;\n          this._hoverContainer.style.marginRight = `${-3}px`;\n          break;\n        case 2:\n          targetRect.top += 3;\n          targetRect.bottom += 3;\n          this._hoverContainer.style.paddingTop = `${3}px`;\n          this._hoverContainer.style.marginTop = `${-3}px`;\n          break;\n        case 3:\n          targetRect.top -= 3;\n          targetRect.bottom -= 3;\n          this._hoverContainer.style.paddingBottom = `${3}px`;\n          this._hoverContainer.style.marginBottom = `${-3}px`;\n          break;\n      }\n      targetRect.center.x = targetRect.left + width2 / 2;\n      targetRect.center.y = targetRect.top + height / 2;\n    }\n    this.computeXCordinate(targetRect);\n    this.computeYCordinate(targetRect);\n    if (this._hoverPointer) {\n      this._hoverPointer.classList.remove(\"top\");\n      this._hoverPointer.classList.remove(\"left\");\n      this._hoverPointer.classList.remove(\"right\");\n      this._hoverPointer.classList.remove(\"bottom\");\n      this.setHoverPointerPosition(targetRect);\n    }\n    this._hover.onContentsChanged();\n  }\n  computeXCordinate(target) {\n    const hoverWidth = this._hover.containerDomNode.clientWidth + 2;\n    if (this._target.x !== void 0) {\n      this._x = this._target.x;\n    } else if (this._hoverPosition === 1) {\n      this._x = target.right;\n    } else if (this._hoverPosition === 0) {\n      this._x = target.left - hoverWidth;\n    } else {\n      if (this._hoverPointer) {\n        this._x = target.center.x - this._hover.containerDomNode.clientWidth / 2;\n      } else {\n        this._x = target.left;\n      }\n      if (this._x + hoverWidth \u003e= this._targetDocumentElement.clientWidth) {\n        this._hover.containerDomNode.classList.add(\"right-aligned\");\n        this._x = Math.max(this._targetDocumentElement.clientWidth - hoverWidth - 2, this._targetDocumentElement.clientLeft);\n      }\n    }\n    if (this._x \u003c this._targetDocumentElement.clientLeft) {\n      this._x = target.left + 2;\n    }\n  }\n  computeYCordinate(target) {\n    if (this._target.y !== void 0) {\n      this._y = this._target.y;\n    } else if (this._hoverPosition === 3) {\n      this._y = target.top;\n    } else if (this._hoverPosition === 2) {\n      this._y = target.bottom - 2;\n    } else {\n      if (this._hoverPointer) {\n        this._y = target.center.y + this._hover.containerDomNode.clientHeight / 2;\n      } else {\n        this._y = target.bottom;\n      }\n    }\n    if (this._y \u003e this._targetWindow.innerHeight) {\n      this._y = target.bottom;\n    }\n  }\n  adjustHorizontalHoverPosition(target) {\n    if (this._target.x !== void 0) {\n      return;\n    }\n    const hoverPointerOffset = this._hoverPointer ? 3 : 0;\n    if (this._forcePosition) {\n      const padding = hoverPointerOffset + 2;\n      if (this._hoverPosition === 1) {\n        this._hover.containerDomNode.style.maxWidth = `${this._targetDocumentElement.clientWidth - target.right - padding}px`;\n      } else if (this._hoverPosition === 0) {\n        this._hover.containerDomNode.style.maxWidth = `${target.left - padding}px`;\n      }\n      return;\n    }\n    if (this._hoverPosition === 1) {\n      const roomOnRight = this._targetDocumentElement.clientWidth - target.right;\n      if (roomOnRight \u003c this._hover.containerDomNode.clientWidth + hoverPointerOffset) {\n        const roomOnLeft = target.left;\n        if (roomOnLeft \u003e= this._hover.containerDomNode.clientWidth + hoverPointerOffset) {\n          this._hoverPosition = 0;\n        } else {\n          this._hoverPosition = 2;\n        }\n      }\n    } else if (this._hoverPosition === 0) {\n      const roomOnLeft = target.left;\n      if (roomOnLeft \u003c this._hover.containerDomNode.clientWidth + hoverPointerOffset) {\n        const roomOnRight = this._targetDocumentElement.clientWidth - target.right;\n        if (roomOnRight \u003e= this._hover.containerDomNode.clientWidth + hoverPointerOffset) {\n          this._hoverPosition = 1;\n        } else {\n          this._hoverPosition = 2;\n        }\n      }\n      if (target.left - this._hover.containerDomNode.clientWidth - hoverPointerOffset \u003c= this._targetDocumentElement.clientLeft) {\n        this._hoverPosition = 1;\n      }\n    }\n  }\n  adjustVerticalHoverPosition(target) {\n    if (this._target.y !== void 0 || this._forcePosition) {\n      return;\n    }\n    const hoverPointerOffset = this._hoverPointer ? 3 : 0;\n    if (this._hoverPosition === 3) {\n      if (target.top - this._hover.containerDomNode.clientHeight - hoverPointerOffset \u003c 0) {\n        this._hoverPosition = 2;\n      }\n    } else if (this._hoverPosition === 2) {\n      if (target.bottom + this._hover.containerDomNode.clientHeight + hoverPointerOffset \u003e this._targetWindow.innerHeight) {\n        this._hoverPosition = 3;\n      }\n    }\n  }\n  adjustHoverMaxHeight(target) {\n    let maxHeight = this._targetWindow.innerHeight * this._maxHeightRatioRelativeToWindow;\n    if (this._forcePosition) {\n      const padding = (this._hoverPointer ? 3 : 0) + 2;\n      if (this._hoverPosition === 3) {\n        maxHeight = Math.min(maxHeight, target.top - padding);\n      } else if (this._hoverPosition === 2) {\n        maxHeight = Math.min(maxHeight, this._targetWindow.innerHeight - target.bottom - padding);\n      }\n    }\n    this._hover.containerDomNode.style.maxHeight = `${maxHeight}px`;\n    if (this._hover.contentsDomNode.clientHeight \u003c this._hover.contentsDomNode.scrollHeight) {\n      const extraRightPadding = `${this._hover.scrollbar.options.verticalScrollbarSize}px`;\n      if (this._hover.contentsDomNode.style.paddingRight !== extraRightPadding) {\n        this._hover.contentsDomNode.style.paddingRight = extraRightPadding;\n      }\n    }\n  }\n  setHoverPointerPosition(target) {\n    if (!this._hoverPointer) {\n      return;\n    }\n    switch (this._hoverPosition) {\n      case 0:\n      case 1: {\n        this._hoverPointer.classList.add(this._hoverPosition === 0 ? \"right\" : \"left\");\n        const hoverHeight = this._hover.containerDomNode.clientHeight;\n        if (hoverHeight \u003e target.height) {\n          this._hoverPointer.style.top = `${target.center.y - (this._y - hoverHeight) - 3}px`;\n        } else {\n          this._hoverPointer.style.top = `${Math.round(hoverHeight / 2) - 3}px`;\n        }\n        break;\n      }\n      case 3:\n      case 2: {\n        this._hoverPointer.classList.add(this._hoverPosition === 3 ? \"bottom\" : \"top\");\n        const hoverWidth = this._hover.containerDomNode.clientWidth;\n        let pointerLeftPosition = Math.round(hoverWidth / 2) - 3;\n        const pointerX = this._x + pointerLeftPosition;\n        if (pointerX \u003c target.left || pointerX \u003e target.right) {\n          pointerLeftPosition = target.center.x - this._x - 3;\n        }\n        this._hoverPointer.style.left = `${pointerLeftPosition}px`;\n        break;\n      }\n    }\n  }\n  focus() {\n    this._hover.containerDomNode.focus();\n  }\n  dispose() {\n    if (!this._isDisposed) {\n      this._onDispose.fire();\n      this._target.dispose?.();\n      this._hoverContainer.remove();\n      this._messageListeners.dispose();\n      super.dispose();\n    }\n    this._isDisposed = true;\n  }\n};\nHoverWidget2 = __decorate170([\n  __param164(1, IKeybindingService),\n  __param164(2, IConfigurationService),\n  __param164(3, IOpenerService),\n  __param164(4, IInstantiationService),\n  __param164(5, IAccessibilityService)\n], HoverWidget2);\nvar CompositeMouseTracker = class extends Widget {\n  get onMouseOut() {\n    return this._onMouseOut.event;\n  }\n  get isMouseIn() {\n    return this._isMouseIn;\n  }\n  /**\n   * @param _elements The target elements to track mouse in/out events on.\n   * @param _eventDebounceDelay The delay in ms to debounce the event firing. This is used to\n   * allow a short period for the mouse to move into the hover or a nearby target element. For\n   * example hovering a scroll bar will not hide the hover immediately.\n   */\n  constructor(_elements, _eventDebounceDelay = 200) {\n    super();\n    this._elements = _elements;\n    this._eventDebounceDelay = _eventDebounceDelay;\n    this._isMouseIn = true;\n    this._mouseTimer = this._register(new MutableDisposable());\n    this._onMouseOut = this._register(new Emitter());\n    for (const element of this._elements) {\n      this.onmouseover(element, () =\u003e this._onTargetMouseOver());\n      this.onmouseleave(element, () =\u003e this._onTargetMouseLeave());\n    }\n  }\n  _onTargetMouseOver() {\n    this._isMouseIn = true;\n    this._mouseTimer.clear();\n  }\n  _onTargetMouseLeave() {\n    this._isMouseIn = false;\n    this._mouseTimer.value = new TimeoutTimer(() =\u003e this._fireIfMouseOutside(), this._eventDebounceDelay);\n  }\n  _fireIfMouseOutside() {\n    if (!this._isMouseIn) {\n      this._onMouseOut.fire();\n    }\n  }\n};\nvar ElementHoverTarget = class {\n  constructor(_element) {\n    this._element = _element;\n    this.targetElements = [this._element];\n  }\n  dispose() {\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/hoverService/hoverService.js\ninit_lifecycle();\ninit_dom();\ninit_keyboardEvent();\ninit_window();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/contextview/contextview.js\ninit_canIUse();\ninit_dom();\ninit_lifecycle();\ninit_platform();\nfunction isAnchor(obj) {\n  const anchor = obj;\n  return !!anchor \u0026\u0026 typeof anchor.x === \"number\" \u0026\u0026 typeof anchor.y === \"number\";\n}\nvar LayoutAnchorMode;\n(function(LayoutAnchorMode2) {\n  LayoutAnchorMode2[LayoutAnchorMode2[\"AVOID\"] = 0] = \"AVOID\";\n  LayoutAnchorMode2[LayoutAnchorMode2[\"ALIGN\"] = 1] = \"ALIGN\";\n})(LayoutAnchorMode || (LayoutAnchorMode = {}));\nfunction layout(viewportSize, viewSize, anchor) {\n  const layoutAfterAnchorBoundary = anchor.mode === LayoutAnchorMode.ALIGN ? anchor.offset : anchor.offset + anchor.size;\n  const layoutBeforeAnchorBoundary = anchor.mode === LayoutAnchorMode.ALIGN ? anchor.offset + anchor.size : anchor.offset;\n  if (anchor.position === 0) {\n    if (viewSize \u003c= viewportSize - layoutAfterAnchorBoundary) {\n      return layoutAfterAnchorBoundary;\n    }\n    if (viewSize \u003c= layoutBeforeAnchorBoundary) {\n      return layoutBeforeAnchorBoundary - viewSize;\n    }\n    return Math.max(viewportSize - viewSize, 0);\n  } else {\n    if (viewSize \u003c= layoutBeforeAnchorBoundary) {\n      return layoutBeforeAnchorBoundary - viewSize;\n    }\n    if (viewSize \u003c= viewportSize - layoutAfterAnchorBoundary) {\n      return layoutAfterAnchorBoundary;\n    }\n    return 0;\n  }\n}\nvar ContextView = class _ContextView extends Disposable {\n  static {\n    this.BUBBLE_UP_EVENTS = [\"click\", \"keydown\", \"focus\", \"blur\"];\n  }\n  static {\n    this.BUBBLE_DOWN_EVENTS = [\"click\"];\n  }\n  constructor(container, domPosition) {\n    super();\n    this.container = null;\n    this.useFixedPosition = false;\n    this.useShadowDOM = false;\n    this.delegate = null;\n    this.toDisposeOnClean = Disposable.None;\n    this.toDisposeOnSetContainer = Disposable.None;\n    this.shadowRoot = null;\n    this.shadowRootHostElement = null;\n    this.view = $(\".context-view\");\n    hide(this.view);\n    this.setContainer(container, domPosition);\n    this._register(toDisposable(() =\u003e this.setContainer(\n      null,\n      1\n      /* ContextViewDOMPosition.ABSOLUTE */\n    )));\n  }\n  setContainer(container, domPosition) {\n    this.useFixedPosition = domPosition !== 1;\n    const usedShadowDOM = this.useShadowDOM;\n    this.useShadowDOM = domPosition === 3;\n    if (container === this.container \u0026\u0026 usedShadowDOM === this.useShadowDOM) {\n      return;\n    }\n    if (this.container) {\n      this.toDisposeOnSetContainer.dispose();\n      this.view.remove();\n      if (this.shadowRoot) {\n        this.shadowRoot = null;\n        this.shadowRootHostElement?.remove();\n        this.shadowRootHostElement = null;\n      }\n      this.container = null;\n    }\n    if (container) {\n      this.container = container;\n      if (this.useShadowDOM) {\n        this.shadowRootHostElement = $(\".shadow-root-host\");\n        this.container.appendChild(this.shadowRootHostElement);\n        this.shadowRoot = this.shadowRootHostElement.attachShadow({ mode: \"open\" });\n        const style = document.createElement(\"style\");\n        style.textContent = SHADOW_ROOT_CSS;\n        this.shadowRoot.appendChild(style);\n        this.shadowRoot.appendChild(this.view);\n        this.shadowRoot.appendChild($(\"slot\"));\n      } else {\n        this.container.appendChild(this.view);\n      }\n      const toDisposeOnSetContainer = new DisposableStore();\n      _ContextView.BUBBLE_UP_EVENTS.forEach((event) =\u003e {\n        toDisposeOnSetContainer.add(addStandardDisposableListener(this.container, event, (e) =\u003e {\n          this.onDOMEvent(e, false);\n        }));\n      });\n      _ContextView.BUBBLE_DOWN_EVENTS.forEach((event) =\u003e {\n        toDisposeOnSetContainer.add(addStandardDisposableListener(this.container, event, (e) =\u003e {\n          this.onDOMEvent(e, true);\n        }, true));\n      });\n      this.toDisposeOnSetContainer = toDisposeOnSetContainer;\n    }\n  }\n  show(delegate) {\n    if (this.isVisible()) {\n      this.hide();\n    }\n    clearNode(this.view);\n    this.view.className = \"context-view monaco-component\";\n    this.view.style.top = \"0px\";\n    this.view.style.left = \"0px\";\n    this.view.style.zIndex = `${2575 + (delegate.layer ?? 0)}`;\n    this.view.style.position = this.useFixedPosition ? \"fixed\" : \"absolute\";\n    show(this.view);\n    this.toDisposeOnClean = delegate.render(this.view) || Disposable.None;\n    this.delegate = delegate;\n    this.doLayout();\n    this.delegate.focus?.();\n  }\n  getViewElement() {\n    return this.view;\n  }\n  layout() {\n    if (!this.isVisible()) {\n      return;\n    }\n    if (this.delegate.canRelayout === false \u0026\u0026 !(isIOS \u0026\u0026 BrowserFeatures.pointerEvents)) {\n      this.hide();\n      return;\n    }\n    this.delegate?.layout?.();\n    this.doLayout();\n  }\n  doLayout() {\n    if (!this.isVisible()) {\n      return;\n    }\n    const anchor = this.delegate.getAnchor();\n    let around;\n    if (isHTMLElement(anchor)) {\n      const elementPosition = getDomNodePagePosition(anchor);\n      const zoom = getDomNodeZoomLevel(anchor);\n      around = {\n        top: elementPosition.top * zoom,\n        left: elementPosition.left * zoom,\n        width: elementPosition.width * zoom,\n        height: elementPosition.height * zoom\n      };\n    } else if (isAnchor(anchor)) {\n      around = {\n        top: anchor.y,\n        left: anchor.x,\n        width: anchor.width || 1,\n        height: anchor.height || 2\n      };\n    } else {\n      around = {\n        top: anchor.posy,\n        left: anchor.posx,\n        // We are about to position the context view where the mouse\n        // cursor is. To prevent the view being exactly under the mouse\n        // when showing and thus potentially triggering an action within,\n        // we treat the mouse location like a small sized block element.\n        width: 2,\n        height: 2\n      };\n    }\n    const viewSizeWidth = getTotalWidth(this.view);\n    const viewSizeHeight = getTotalHeight(this.view);\n    const anchorPosition = this.delegate.anchorPosition ?? 0;\n    const anchorAlignment = this.delegate.anchorAlignment ?? 0;\n    const anchorAxisAlignment = this.delegate.anchorAxisAlignment ?? 0;\n    let top;\n    let left;\n    const activeWindow = getActiveWindow();\n    if (anchorAxisAlignment === 0) {\n      const verticalAnchor = {\n        offset: around.top - activeWindow.pageYOffset,\n        size: around.height,\n        position: anchorPosition === 0 ? 0 : 1\n        /* LayoutAnchorPosition.After */\n      };\n      const horizontalAnchor = { offset: around.left, size: around.width, position: anchorAlignment === 0 ? 0 : 1, mode: LayoutAnchorMode.ALIGN };\n      top = layout(activeWindow.innerHeight, viewSizeHeight, verticalAnchor) + activeWindow.pageYOffset;\n      if (Range2.intersects({ start: top, end: top + viewSizeHeight }, { start: verticalAnchor.offset, end: verticalAnchor.offset + verticalAnchor.size })) {\n        horizontalAnchor.mode = LayoutAnchorMode.AVOID;\n      }\n      left = layout(activeWindow.innerWidth, viewSizeWidth, horizontalAnchor);\n    } else {\n      const horizontalAnchor = {\n        offset: around.left,\n        size: around.width,\n        position: anchorAlignment === 0 ? 0 : 1\n        /* LayoutAnchorPosition.After */\n      };\n      const verticalAnchor = { offset: around.top, size: around.height, position: anchorPosition === 0 ? 0 : 1, mode: LayoutAnchorMode.ALIGN };\n      left = layout(activeWindow.innerWidth, viewSizeWidth, horizontalAnchor);\n      if (Range2.intersects({ start: left, end: left + viewSizeWidth }, { start: horizontalAnchor.offset, end: horizontalAnchor.offset + horizontalAnchor.size })) {\n        verticalAnchor.mode = LayoutAnchorMode.AVOID;\n      }\n      top = layout(activeWindow.innerHeight, viewSizeHeight, verticalAnchor) + activeWindow.pageYOffset;\n    }\n    this.view.classList.remove(\"top\", \"bottom\", \"left\", \"right\");\n    this.view.classList.add(anchorPosition === 0 ? \"bottom\" : \"top\");\n    this.view.classList.add(anchorAlignment === 0 ? \"left\" : \"right\");\n    this.view.classList.toggle(\"fixed\", this.useFixedPosition);\n    const containerPosition = getDomNodePagePosition(this.container);\n    const containerScrollTop = this.container.scrollTop || 0;\n    const containerScrollLeft = this.container.scrollLeft || 0;\n    this.view.style.top = `${top - (this.useFixedPosition ? getDomNodePagePosition(this.view).top : containerPosition.top) + containerScrollTop}px`;\n    this.view.style.left = `${left - (this.useFixedPosition ? getDomNodePagePosition(this.view).left : containerPosition.left) + containerScrollLeft}px`;\n    this.view.style.width = \"initial\";\n  }\n  hide(data) {\n    const delegate = this.delegate;\n    this.delegate = null;\n    if (delegate?.onHide) {\n      delegate.onHide(data);\n    }\n    this.toDisposeOnClean.dispose();\n    hide(this.view);\n  }\n  isVisible() {\n    return !!this.delegate;\n  }\n  onDOMEvent(e, onCapture) {\n    if (this.delegate) {\n      if (this.delegate.onDOMEvent) {\n        this.delegate.onDOMEvent(e, getWindow(e).document.activeElement);\n      } else if (onCapture \u0026\u0026 !isAncestor(e.target, this.container)) {\n        this.hide();\n      }\n    }\n  }\n  dispose() {\n    this.hide();\n    super.dispose();\n  }\n};\nvar SHADOW_ROOT_CSS = (\n  /* css */\n  `\n\t:host {\n\t\tall: initial; /* 1st rule so subsequent properties are reset. */\n\t}\n\n\t.codicon[class*='codicon-'] {\n\t\tfont: normal normal normal 16px/1 codicon;\n\t\tdisplay: inline-block;\n\t\ttext-decoration: none;\n\t\ttext-rendering: auto;\n\t\ttext-align: center;\n\t\t-webkit-font-smoothing: antialiased;\n\t\t-moz-osx-font-smoothing: grayscale;\n\t\tuser-select: none;\n\t\t-webkit-user-select: none;\n\t\t-ms-user-select: none;\n\t}\n\n\t:host {\n\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe WPC\", \"Segoe UI\", \"HelveticaNeue-Light\", system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif;\n\t}\n\n\t:host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n\t:host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang SC\", \"Hiragino Sans GB\", sans-serif; }\n\t:host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, \"PingFang TC\", sans-serif; }\n\t:host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, \"Hiragino Kaku Gothic Pro\", sans-serif; }\n\t:host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, \"Apple SD Gothic Neo\", \"Nanum Gothic\", \"AppleGothic\", sans-serif; }\n\n\t:host-context(.windows) { font-family: \"Segoe WPC\", \"Segoe UI\", sans-serif; }\n\t:host-context(.windows:lang(zh-Hans)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft YaHei\", sans-serif; }\n\t:host-context(.windows:lang(zh-Hant)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Microsoft Jhenghei\", sans-serif; }\n\t:host-context(.windows:lang(ja)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Yu Gothic UI\", \"Meiryo UI\", sans-serif; }\n\t:host-context(.windows:lang(ko)) { font-family: \"Segoe WPC\", \"Segoe UI\", \"Malgun Gothic\", \"Dotom\", sans-serif; }\n\n\t:host-context(.linux) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", sans-serif; }\n\t:host-context(.linux:lang(zh-Hans)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans SC\", \"Source Han Sans CN\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(zh-Hant)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans TC\", \"Source Han Sans TW\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(ja)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans J\", \"Source Han Sans JP\", \"Source Han Sans\", sans-serif; }\n\t:host-context(.linux:lang(ko)) { font-family: system-ui, \"Ubuntu\", \"Droid Sans\", \"Source Han Sans K\", \"Source Han Sans JR\", \"Source Han Sans\", \"UnDotum\", \"FBaekmuk Gulim\", sans-serif; }\n`\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextview/browser/contextViewService.js\ninit_lifecycle();\ninit_dom();\nvar __decorate171 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param165 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ContextViewHandler = class ContextViewHandler2 extends Disposable {\n  constructor(layoutService) {\n    super();\n    this.layoutService = layoutService;\n    this.contextView = this._register(new ContextView(\n      this.layoutService.mainContainer,\n      1\n      /* ContextViewDOMPosition.ABSOLUTE */\n    ));\n    this.layout();\n    this._register(layoutService.onDidLayoutContainer(() =\u003e this.layout()));\n  }\n  // ContextView\n  showContextView(delegate, container, shadowRoot) {\n    let domPosition;\n    if (container) {\n      if (container === this.layoutService.getContainer(getWindow(container))) {\n        domPosition = 1;\n      } else if (shadowRoot) {\n        domPosition = 3;\n      } else {\n        domPosition = 2;\n      }\n    } else {\n      domPosition = 1;\n    }\n    this.contextView.setContainer(container ?? this.layoutService.activeContainer, domPosition);\n    this.contextView.show(delegate);\n    const openContextView = {\n      close: () =\u003e {\n        if (this.openContextView === openContextView) {\n          this.hideContextView();\n        }\n      }\n    };\n    this.openContextView = openContextView;\n    return openContextView;\n  }\n  layout() {\n    this.contextView.layout();\n  }\n  hideContextView(data) {\n    this.contextView.hide(data);\n    this.openContextView = void 0;\n  }\n};\nContextViewHandler = __decorate171([\n  __param165(0, ILayoutService)\n], ContextViewHandler);\nvar ContextViewService = class extends ContextViewHandler {\n  getContextViewElement() {\n    return this.contextView.getViewElement();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/hover/hover.js\nfunction isManagedHoverTooltipMarkdownString(obj) {\n  const candidate = obj;\n  return typeof candidate === \"object\" \u0026\u0026 \"markdown\" in candidate \u0026\u0026 \"markdownNotSupportedFallback\" in candidate;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/hoverService/updatableHoverWidget.js\ninit_dom();\ninit_cancellation();\ninit_htmlContent();\ninit_types();\ninit_nls();\nvar ManagedHoverWidget = class {\n  constructor(hoverDelegate, target, fadeInAnimation) {\n    this.hoverDelegate = hoverDelegate;\n    this.target = target;\n    this.fadeInAnimation = fadeInAnimation;\n  }\n  async update(content, focus, options2) {\n    if (this._cancellationTokenSource) {\n      this._cancellationTokenSource.dispose(true);\n      this._cancellationTokenSource = void 0;\n    }\n    if (this.isDisposed) {\n      return;\n    }\n    let resolvedContent;\n    if (isString(content) || isHTMLElement(content) || content === void 0) {\n      resolvedContent = content;\n    } else {\n      this._cancellationTokenSource = new CancellationTokenSource();\n      const token = this._cancellationTokenSource.token;\n      let managedContent;\n      if (isManagedHoverTooltipMarkdownString(content)) {\n        if (isFunction(content.markdown)) {\n          managedContent = content.markdown(token).then((resolvedContent2) =\u003e resolvedContent2 ?? content.markdownNotSupportedFallback);\n        } else {\n          managedContent = content.markdown ?? content.markdownNotSupportedFallback;\n        }\n      } else {\n        managedContent = content.element(token);\n      }\n      if (managedContent instanceof Promise) {\n        if (!this._hoverWidget) {\n          this.show(localize(75, \"Loading...\"), focus, options2);\n        }\n        resolvedContent = await managedContent;\n      } else {\n        resolvedContent = managedContent;\n      }\n      if (this.isDisposed || token.isCancellationRequested) {\n        return;\n      }\n    }\n    this.show(resolvedContent, focus, options2);\n  }\n  show(content, focus, options2) {\n    const oldHoverWidget = this._hoverWidget;\n    if (this.hasContent(content)) {\n      const hoverOptions = {\n        content,\n        target: this.target,\n        actions: options2?.actions,\n        linkHandler: options2?.linkHandler,\n        trapFocus: options2?.trapFocus,\n        appearance: {\n          showPointer: this.hoverDelegate.placement === \"element\",\n          skipFadeInAnimation: !this.fadeInAnimation || !!oldHoverWidget,\n          // do not fade in if the hover is already showing\n          showHoverHint: options2?.appearance?.showHoverHint\n        },\n        position: {\n          hoverPosition: 2\n        }\n      };\n      this._hoverWidget = this.hoverDelegate.showHover(hoverOptions, focus);\n    }\n    oldHoverWidget?.dispose();\n  }\n  hasContent(content) {\n    if (!content) {\n      return false;\n    }\n    if (isMarkdownString(content)) {\n      return !!content.value;\n    }\n    return true;\n  }\n  get isDisposed() {\n    return this._hoverWidget?.isDisposed;\n  }\n  dispose() {\n    this._hoverWidget?.dispose();\n    this._cancellationTokenSource?.dispose(true);\n    this._cancellationTokenSource = void 0;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/hoverService/hoverService.js\ninit_async();\ninit_configuration();\ninit_types();\ninit_keyCodes();\ninit_keybindingsRegistry();\ninit_editorContextKeys();\ninit_iconLabels();\nvar __decorate172 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param166 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar HoverService = class HoverService2 extends Disposable {\n  constructor(_instantiationService, _configurationService, contextMenuService, _keybindingService, _layoutService, _accessibilityService) {\n    super();\n    this._instantiationService = _instantiationService;\n    this._configurationService = _configurationService;\n    this._keybindingService = _keybindingService;\n    this._layoutService = _layoutService;\n    this._accessibilityService = _accessibilityService;\n    this._currentDelayedHoverWasShown = false;\n    this._delayedHovers = /* @__PURE__ */ new Map();\n    this._managedHovers = /* @__PURE__ */ new Map();\n    this._register(contextMenuService.onDidShowContextMenu(() =\u003e this.hideHover()));\n    this._contextViewHandler = this._register(new ContextViewHandler(this._layoutService));\n    this._register(KeybindingsRegistry.registerCommandAndKeybindingRule({\n      id: \"workbench.action.showHover\",\n      weight: 200 - 1,\n      when: EditorContextKeys.editorTextFocus.negate(),\n      primary: KeyChord(\n        2048 | 41,\n        2048 | 39\n        /* KeyCode.KeyI */\n      ),\n      handler: () =\u003e {\n        this._showAndFocusHoverForActiveElement();\n      }\n    }));\n  }\n  showInstantHover(options2, focus, skipLastFocusedUpdate, dontShow) {\n    const hover = this._createHover(options2, skipLastFocusedUpdate);\n    if (!hover) {\n      return void 0;\n    }\n    this._showHover(hover, options2, focus);\n    return hover;\n  }\n  showDelayedHover(options2, lifecycleOptions) {\n    if (options2.id === void 0) {\n      options2.id = getHoverIdFromContent(options2.content);\n    }\n    if (!this._currentDelayedHover || this._currentDelayedHoverWasShown) {\n      if (this._currentHover?.isLocked) {\n        return void 0;\n      }\n      if (getHoverOptionsIdentity(this._currentHoverOptions) === getHoverOptionsIdentity(options2)) {\n        return this._currentHover;\n      }\n      if (this._currentHover \u0026\u0026 !this._currentHover.isDisposed \u0026\u0026 this._currentDelayedHoverGroupId !== void 0 \u0026\u0026 this._currentDelayedHoverGroupId === lifecycleOptions?.groupId) {\n        return this.showInstantHover({\n          ...options2,\n          appearance: {\n            ...options2.appearance,\n            skipFadeInAnimation: true\n          }\n        });\n      }\n    } else if (this._currentDelayedHover \u0026\u0026 getHoverOptionsIdentity(this._currentHoverOptions) === getHoverOptionsIdentity(options2)) {\n      return this._currentDelayedHover;\n    }\n    const hover = this._createHover(options2, void 0);\n    if (!hover) {\n      this._currentDelayedHover = void 0;\n      this._currentDelayedHoverWasShown = false;\n      this._currentDelayedHoverGroupId = void 0;\n      return void 0;\n    }\n    this._currentDelayedHover = hover;\n    this._currentDelayedHoverWasShown = false;\n    this._currentDelayedHoverGroupId = lifecycleOptions?.groupId;\n    timeout(this._configurationService.getValue(\"workbench.hover.delay\")).then(() =\u003e {\n      if (hover \u0026\u0026 !hover.isDisposed) {\n        this._currentDelayedHoverWasShown = true;\n        this._showHover(hover, options2);\n      }\n    });\n    return hover;\n  }\n  setupDelayedHover(target, options2, lifecycleOptions) {\n    const resolveHoverOptions = () =\u003e ({\n      ...typeof options2 === \"function\" ? options2() : options2,\n      target\n    });\n    return this._setupDelayedHover(target, resolveHoverOptions, lifecycleOptions);\n  }\n  setupDelayedHoverAtMouse(target, options2, lifecycleOptions) {\n    const resolveHoverOptions = (e) =\u003e ({\n      ...typeof options2 === \"function\" ? options2() : options2,\n      target: {\n        targetElements: [target],\n        x: e !== void 0 ? e.x + 10 : void 0\n      }\n    });\n    return this._setupDelayedHover(target, resolveHoverOptions, lifecycleOptions);\n  }\n  _setupDelayedHover(target, resolveHoverOptions, lifecycleOptions) {\n    const store = new DisposableStore();\n    store.add(addDisposableListener(target, EventType.MOUSE_OVER, (e) =\u003e {\n      this.showDelayedHover(resolveHoverOptions(e), {\n        groupId: lifecycleOptions?.groupId\n      });\n    }));\n    if (lifecycleOptions?.setupKeyboardEvents) {\n      store.add(addDisposableListener(target, EventType.KEY_DOWN, (e) =\u003e {\n        const evt = new StandardKeyboardEvent(e);\n        if (evt.equals(\n          10\n          /* KeyCode.Space */\n        ) || evt.equals(\n          3\n          /* KeyCode.Enter */\n        )) {\n          this.showInstantHover(resolveHoverOptions(), true);\n        }\n      }));\n    }\n    this._delayedHovers.set(target, { show: (focus) =\u003e {\n      this.showInstantHover(resolveHoverOptions(), focus);\n    } });\n    store.add(toDisposable(() =\u003e this._delayedHovers.delete(target)));\n    return store;\n  }\n  _createHover(options2, skipLastFocusedUpdate) {\n    this._currentDelayedHover = void 0;\n    if (this._currentHover?.isLocked) {\n      return void 0;\n    }\n    if (options2.id === void 0) {\n      options2.id = getHoverIdFromContent(options2.content);\n    }\n    if (getHoverOptionsIdentity(this._currentHoverOptions) === getHoverOptionsIdentity(options2)) {\n      return void 0;\n    }\n    this._currentHoverOptions = options2;\n    this._lastHoverOptions = options2;\n    const trapFocus = options2.trapFocus || this._accessibilityService.isScreenReaderOptimized();\n    const activeElement = getActiveElement();\n    if (!skipLastFocusedUpdate) {\n      if (trapFocus \u0026\u0026 activeElement) {\n        if (!activeElement.classList.contains(\"monaco-hover\")) {\n          this._lastFocusedElementBeforeOpen = activeElement;\n        }\n      } else {\n        this._lastFocusedElementBeforeOpen = void 0;\n      }\n    }\n    const hoverDisposables = new DisposableStore();\n    const hover = this._instantiationService.createInstance(HoverWidget2, options2);\n    if (options2.persistence?.sticky) {\n      hover.isLocked = true;\n    }\n    if (options2.position?.hoverPosition \u0026\u0026 !isNumber(options2.position.hoverPosition)) {\n      options2.target = {\n        targetElements: isHTMLElement(options2.target) ? [options2.target] : options2.target.targetElements,\n        x: options2.position.hoverPosition.x + 10\n      };\n    }\n    hover.onDispose(() =\u003e {\n      const hoverWasFocused = this._currentHover?.domNode \u0026\u0026 isAncestorOfActiveElement(this._currentHover.domNode);\n      if (hoverWasFocused) {\n        this._lastFocusedElementBeforeOpen?.focus();\n      }\n      if (getHoverOptionsIdentity(this._currentHoverOptions) === getHoverOptionsIdentity(options2)) {\n        this.doHideHover();\n      }\n      hoverDisposables.dispose();\n    }, void 0, hoverDisposables);\n    if (!options2.container) {\n      const targetElement = isHTMLElement(options2.target) ? options2.target : options2.target.targetElements[0];\n      options2.container = this._layoutService.getContainer(getWindow(targetElement));\n    }\n    hover.onRequestLayout(() =\u003e this._contextViewHandler.layout(), void 0, hoverDisposables);\n    if (options2.persistence?.sticky) {\n      hoverDisposables.add(addDisposableListener(getWindow(options2.container).document, EventType.MOUSE_DOWN, (e) =\u003e {\n        if (!isAncestor(e.target, hover.domNode)) {\n          this.doHideHover();\n        }\n      }));\n    } else {\n      if (\"targetElements\" in options2.target) {\n        for (const element of options2.target.targetElements) {\n          hoverDisposables.add(addDisposableListener(element, EventType.CLICK, () =\u003e this.hideHover()));\n        }\n      } else {\n        hoverDisposables.add(addDisposableListener(options2.target, EventType.CLICK, () =\u003e this.hideHover()));\n      }\n      const focusedElement = getActiveElement();\n      if (focusedElement) {\n        const focusedElementDocument = getWindow(focusedElement).document;\n        hoverDisposables.add(addDisposableListener(focusedElement, EventType.KEY_DOWN, (e) =\u003e this._keyDown(e, hover, !!options2.persistence?.hideOnKeyDown)));\n        hoverDisposables.add(addDisposableListener(focusedElementDocument, EventType.KEY_DOWN, (e) =\u003e this._keyDown(e, hover, !!options2.persistence?.hideOnKeyDown)));\n        hoverDisposables.add(addDisposableListener(focusedElement, EventType.KEY_UP, (e) =\u003e this._keyUp(e, hover)));\n        hoverDisposables.add(addDisposableListener(focusedElementDocument, EventType.KEY_UP, (e) =\u003e this._keyUp(e, hover)));\n      }\n    }\n    if (\"IntersectionObserver\" in mainWindow) {\n      const observer = new IntersectionObserver((e) =\u003e this._intersectionChange(e, hover), { threshold: 0 });\n      const firstTargetElement = \"targetElements\" in options2.target ? options2.target.targetElements[0] : options2.target;\n      observer.observe(firstTargetElement);\n      hoverDisposables.add(toDisposable(() =\u003e observer.disconnect()));\n    }\n    this._currentHover = hover;\n    return hover;\n  }\n  _showHover(hover, options2, focus) {\n    this._contextViewHandler.showContextView(new HoverContextViewDelegate(hover, focus), options2.container);\n  }\n  hideHover(force) {\n    if (!force \u0026\u0026 this._currentHover?.isLocked || !this._currentHoverOptions) {\n      return;\n    }\n    this.doHideHover();\n  }\n  doHideHover() {\n    this._currentHover = void 0;\n    this._currentHoverOptions = void 0;\n    this._contextViewHandler.hideContextView();\n  }\n  _intersectionChange(entries2, hover) {\n    const entry = entries2[entries2.length - 1];\n    if (!entry.isIntersecting) {\n      hover.dispose();\n    }\n  }\n  showAndFocusLastHover() {\n    if (!this._lastHoverOptions) {\n      return;\n    }\n    this.showInstantHover(this._lastHoverOptions, true, true);\n  }\n  _showAndFocusHoverForActiveElement() {\n    let activeElement = getActiveElement();\n    while (activeElement) {\n      const hover = this._delayedHovers.get(activeElement) ?? this._managedHovers.get(activeElement);\n      if (hover) {\n        hover.show(true);\n        return;\n      }\n      activeElement = activeElement.parentElement;\n    }\n  }\n  _keyDown(e, hover, hideOnKeyDown) {\n    if (e.key === \"Alt\") {\n      hover.isLocked = true;\n      return;\n    }\n    const event = new StandardKeyboardEvent(e);\n    const keybinding = this._keybindingService.resolveKeyboardEvent(event);\n    if (keybinding.getSingleModifierDispatchChords().some((value) =\u003e !!value) || this._keybindingService.softDispatch(event, event.target).kind !== 0) {\n      return;\n    }\n    if (hideOnKeyDown \u0026\u0026 (!this._currentHoverOptions?.trapFocus || e.key !== \"Tab\")) {\n      this.hideHover();\n      this._lastFocusedElementBeforeOpen?.focus();\n    }\n  }\n  _keyUp(e, hover) {\n    if (e.key === \"Alt\") {\n      hover.isLocked = false;\n      if (!hover.isMouseIn) {\n        this.hideHover();\n        this._lastFocusedElementBeforeOpen?.focus();\n      }\n    }\n  }\n  // TODO: Investigate performance of this function. There seems to be a lot of content created\n  //       and thrown away on start up\n  setupManagedHover(hoverDelegate, targetElement, content, options2) {\n    if (hoverDelegate.showNativeHover) {\n      return setupNativeHover(targetElement, content);\n    }\n    targetElement.setAttribute(\"custom-hover\", \"true\");\n    if (targetElement.title !== \"\") {\n      console.warn(\"HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute.\");\n      console.trace(\"Stack trace:\", targetElement.title);\n      targetElement.title = \"\";\n    }\n    let hoverPreparation;\n    let hoverWidget;\n    const hideHover = (disposeWidget, disposePreparation) =\u003e {\n      const hadHover = hoverWidget !== void 0;\n      if (disposeWidget) {\n        hoverWidget?.dispose();\n        hoverWidget = void 0;\n      }\n      if (disposePreparation) {\n        hoverPreparation?.dispose();\n        hoverPreparation = void 0;\n      }\n      if (hadHover) {\n        hoverDelegate.onDidHideHover?.();\n        hoverWidget = void 0;\n      }\n    };\n    const triggerShowHover = (delay, focus, target, trapFocus) =\u003e {\n      return new TimeoutTimer(async () =\u003e {\n        if (!hoverWidget || hoverWidget.isDisposed) {\n          hoverWidget = new ManagedHoverWidget(hoverDelegate, target || targetElement, delay \u003e 0);\n          await hoverWidget.update(typeof content === \"function\" ? content() : content, focus, { ...options2, trapFocus });\n        }\n      }, delay);\n    };\n    const store = new DisposableStore();\n    let isMouseDown = false;\n    store.add(addDisposableListener(targetElement, EventType.MOUSE_DOWN, () =\u003e {\n      isMouseDown = true;\n      hideHover(true, true);\n    }, true));\n    store.add(addDisposableListener(targetElement, EventType.MOUSE_UP, () =\u003e {\n      isMouseDown = false;\n    }, true));\n    store.add(addDisposableListener(targetElement, EventType.MOUSE_LEAVE, (e) =\u003e {\n      isMouseDown = false;\n      hideHover(false, e.fromElement === targetElement);\n    }, true));\n    store.add(addDisposableListener(targetElement, EventType.MOUSE_OVER, (e) =\u003e {\n      if (hoverPreparation) {\n        return;\n      }\n      const mouseOverStore = new DisposableStore();\n      const target = {\n        targetElements: [targetElement],\n        dispose: () =\u003e {\n        }\n      };\n      if (hoverDelegate.placement === void 0 || hoverDelegate.placement === \"mouse\") {\n        const onMouseMove = (e2) =\u003e {\n          target.x = e2.x + 10;\n          if (isHTMLElement(e2.target) \u0026\u0026 getHoverTargetElement(e2.target, targetElement) !== targetElement) {\n            hideHover(true, true);\n          }\n        };\n        mouseOverStore.add(addDisposableListener(targetElement, EventType.MOUSE_MOVE, onMouseMove, true));\n      }\n      hoverPreparation = mouseOverStore;\n      if (isHTMLElement(e.target) \u0026\u0026 getHoverTargetElement(e.target, targetElement) !== targetElement) {\n        return;\n      }\n      mouseOverStore.add(triggerShowHover(typeof hoverDelegate.delay === \"function\" ? hoverDelegate.delay(content) : hoverDelegate.delay, false, target));\n    }, true));\n    const onFocus = () =\u003e {\n      if (isMouseDown || hoverPreparation) {\n        return;\n      }\n      const target = {\n        targetElements: [targetElement],\n        dispose: () =\u003e {\n        }\n      };\n      const toDispose = new DisposableStore();\n      const onBlur = () =\u003e hideHover(true, true);\n      toDispose.add(addDisposableListener(targetElement, EventType.BLUR, onBlur, true));\n      toDispose.add(triggerShowHover(typeof hoverDelegate.delay === \"function\" ? hoverDelegate.delay(content) : hoverDelegate.delay, false, target));\n      hoverPreparation = toDispose;\n    };\n    if (!isEditableElement(targetElement)) {\n      store.add(addDisposableListener(targetElement, EventType.FOCUS, onFocus, true));\n    }\n    const hover = {\n      show: (focus) =\u003e {\n        hideHover(false, true);\n        triggerShowHover(0, focus, void 0, focus);\n      },\n      hide: () =\u003e {\n        hideHover(true, true);\n      },\n      update: async (newContent, hoverOptions) =\u003e {\n        content = newContent;\n        await hoverWidget?.update(content, void 0, hoverOptions);\n      },\n      dispose: () =\u003e {\n        this._managedHovers.delete(targetElement);\n        store.dispose();\n        hideHover(true, true);\n      }\n    };\n    this._managedHovers.set(targetElement, hover);\n    return hover;\n  }\n  showManagedHover(target) {\n    const hover = this._managedHovers.get(target);\n    if (hover) {\n      hover.show(true);\n    }\n  }\n  dispose() {\n    this._managedHovers.forEach((hover) =\u003e hover.dispose());\n    super.dispose();\n  }\n};\nHoverService = __decorate172([\n  __param166(0, IInstantiationService),\n  __param166(1, IConfigurationService),\n  __param166(2, IContextMenuService),\n  __param166(3, IKeybindingService),\n  __param166(4, ILayoutService),\n  __param166(5, IAccessibilityService)\n], HoverService);\nfunction getHoverOptionsIdentity(options2) {\n  if (options2 === void 0) {\n    return void 0;\n  }\n  return options2?.id ?? options2;\n}\nfunction getHoverIdFromContent(content) {\n  if (isHTMLElement(content)) {\n    return void 0;\n  }\n  if (typeof content === \"string\") {\n    return content.toString();\n  }\n  return content.value;\n}\nfunction getStringContent(contentOrFactory) {\n  const content = typeof contentOrFactory === \"function\" ? contentOrFactory() : contentOrFactory;\n  if (isString(content)) {\n    return stripIcons(content);\n  }\n  if (isManagedHoverTooltipMarkdownString(content)) {\n    return content.markdownNotSupportedFallback;\n  }\n  return void 0;\n}\nfunction setupNativeHover(targetElement, content) {\n  function updateTitle(title) {\n    if (title) {\n      targetElement.setAttribute(\"title\", title);\n    } else {\n      targetElement.removeAttribute(\"title\");\n    }\n  }\n  updateTitle(getStringContent(content));\n  return {\n    update: (content2) =\u003e updateTitle(getStringContent(content2)),\n    show: () =\u003e {\n    },\n    hide: () =\u003e {\n    },\n    dispose: () =\u003e updateTitle(void 0)\n  };\n}\nvar HoverContextViewDelegate = class {\n  get anchorPosition() {\n    return this._hover.anchor;\n  }\n  constructor(_hover, _focus = false) {\n    this._hover = _hover;\n    this._focus = _focus;\n    this.layer = 1;\n  }\n  render(container) {\n    this._hover.render(container);\n    if (this._focus) {\n      this._hover.focus();\n    }\n    return this._hover;\n  }\n  getAnchor() {\n    return {\n      x: this._hover.x,\n      y: this._hover.y\n    };\n  }\n  layout() {\n    this._hover.layout();\n  }\n};\nfunction getHoverTargetElement(element, stopElement) {\n  stopElement = stopElement ?? getWindow(element).document.body;\n  while (!element.hasAttribute(\"custom-hover\") \u0026\u0026 element !== stopElement) {\n    element = element.parentElement;\n  }\n  return element;\n}\nregisterSingleton(\n  IHoverService,\n  HoverService,\n  1\n  /* InstantiationType.Delayed */\n);\nregisterThemingParticipant((theme, collector) =\u003e {\n  const hoverBorder = theme.getColor(editorHoverBorder);\n  if (hoverBorder) {\n    collector.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${hoverBorder.transparent(0.5)}; }`);\n    collector.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${hoverBorder.transparent(0.5)}; }`);\n  }\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_strings();\ninit_dom();\ninit_keyboardEvent();\ninit_event();\ninit_keybindings();\ninit_lifecycle();\ninit_platform();\ninit_uri();\ninit_position();\ninit_range();\ninit_model();\ninit_resolverService();\ninit_commands();\ninit_configuration();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/configuration/common/configurationModels.js\ninit_arrays();\ninit_map();\ninit_objects();\ninit_types();\ninit_uri();\ninit_configuration();\ninit_configurationRegistry();\ninit_platform2();\nfunction freeze2(data) {\n  return Object.isFrozen(data) ? data : deepFreeze(data);\n}\nvar ConfigurationModel = class _ConfigurationModel {\n  static createEmptyModel(logService) {\n    return new _ConfigurationModel({}, [], [], void 0, logService);\n  }\n  constructor(_contents, _keys, _overrides, raw, logService) {\n    this._contents = _contents;\n    this._keys = _keys;\n    this._overrides = _overrides;\n    this.raw = raw;\n    this.logService = logService;\n    this.overrideConfigurations = /* @__PURE__ */ new Map();\n  }\n  get rawConfiguration() {\n    if (!this._rawConfiguration) {\n      if (this.raw) {\n        const rawConfigurationModels = (Array.isArray(this.raw) ? this.raw : [this.raw]).map((raw) =\u003e {\n          if (raw instanceof _ConfigurationModel) {\n            return raw;\n          }\n          const parser2 = new ConfigurationModelParser(\"\", this.logService);\n          parser2.parseRaw(raw);\n          return parser2.configurationModel;\n        });\n        this._rawConfiguration = rawConfigurationModels.reduce((previous, current) =\u003e current === previous ? current : previous.merge(current), rawConfigurationModels[0]);\n      } else {\n        this._rawConfiguration = this;\n      }\n    }\n    return this._rawConfiguration;\n  }\n  get contents() {\n    return this._contents;\n  }\n  get overrides() {\n    return this._overrides;\n  }\n  get keys() {\n    return this._keys;\n  }\n  isEmpty() {\n    return this._keys.length === 0 \u0026\u0026 Object.keys(this._contents).length === 0 \u0026\u0026 this._overrides.length === 0;\n  }\n  getValue(section) {\n    return section ? getConfigurationValue(this.contents, section) : this.contents;\n  }\n  inspect(section, overrideIdentifier) {\n    const that = this;\n    return {\n      get value() {\n        return freeze2(that.rawConfiguration.getValue(section));\n      },\n      get override() {\n        return overrideIdentifier ? freeze2(that.rawConfiguration.getOverrideValue(section, overrideIdentifier)) : void 0;\n      },\n      get merged() {\n        return freeze2(overrideIdentifier ? that.rawConfiguration.override(overrideIdentifier).getValue(section) : that.rawConfiguration.getValue(section));\n      },\n      get overrides() {\n        const overrides = [];\n        for (const { contents, identifiers, keys } of that.rawConfiguration.overrides) {\n          const value = new _ConfigurationModel(contents, keys, [], void 0, that.logService).getValue(section);\n          if (value !== void 0) {\n            overrides.push({ identifiers, value });\n          }\n        }\n        return overrides.length ? freeze2(overrides) : void 0;\n      }\n    };\n  }\n  getOverrideValue(section, overrideIdentifier) {\n    const overrideContents = this.getContentsForOverrideIdentifer(overrideIdentifier);\n    return overrideContents ? section ? getConfigurationValue(overrideContents, section) : overrideContents : void 0;\n  }\n  override(identifier) {\n    let overrideConfigurationModel = this.overrideConfigurations.get(identifier);\n    if (!overrideConfigurationModel) {\n      overrideConfigurationModel = this.createOverrideConfigurationModel(identifier);\n      this.overrideConfigurations.set(identifier, overrideConfigurationModel);\n    }\n    return overrideConfigurationModel;\n  }\n  merge(...others) {\n    const contents = deepClone(this.contents);\n    const overrides = deepClone(this.overrides);\n    const keys = [...this.keys];\n    const raws = this.raw ? Array.isArray(this.raw) ? [...this.raw] : [this.raw] : [this];\n    for (const other of others) {\n      raws.push(...other.raw ? Array.isArray(other.raw) ? other.raw : [other.raw] : [other]);\n      if (other.isEmpty()) {\n        continue;\n      }\n      this.mergeContents(contents, other.contents);\n      for (const otherOverride of other.overrides) {\n        const [override] = overrides.filter((o) =\u003e equals(o.identifiers, otherOverride.identifiers));\n        if (override) {\n          this.mergeContents(override.contents, otherOverride.contents);\n          override.keys.push(...otherOverride.keys);\n          override.keys = distinct(override.keys);\n        } else {\n          overrides.push(deepClone(otherOverride));\n        }\n      }\n      for (const key of other.keys) {\n        if (keys.indexOf(key) === -1) {\n          keys.push(key);\n        }\n      }\n    }\n    return new _ConfigurationModel(contents, keys, overrides, !raws.length || raws.every((raw) =\u003e raw instanceof _ConfigurationModel) ? void 0 : raws, this.logService);\n  }\n  createOverrideConfigurationModel(identifier) {\n    const overrideContents = this.getContentsForOverrideIdentifer(identifier);\n    if (!overrideContents || typeof overrideContents !== \"object\" || !Object.keys(overrideContents).length) {\n      return this;\n    }\n    const contents = {};\n    for (const key of distinct([...Object.keys(this.contents), ...Object.keys(overrideContents)])) {\n      let contentsForKey = this.contents[key];\n      const overrideContentsForKey = overrideContents[key];\n      if (overrideContentsForKey) {\n        if (typeof contentsForKey === \"object\" \u0026\u0026 typeof overrideContentsForKey === \"object\") {\n          contentsForKey = deepClone(contentsForKey);\n          this.mergeContents(contentsForKey, overrideContentsForKey);\n        } else {\n          contentsForKey = overrideContentsForKey;\n        }\n      }\n      contents[key] = contentsForKey;\n    }\n    return new _ConfigurationModel(contents, this.keys, this.overrides, void 0, this.logService);\n  }\n  mergeContents(source, target) {\n    for (const key of Object.keys(target)) {\n      if (key in source) {\n        if (isObject(source[key]) \u0026\u0026 isObject(target[key])) {\n          this.mergeContents(source[key], target[key]);\n          continue;\n        }\n      }\n      source[key] = deepClone(target[key]);\n    }\n  }\n  getContentsForOverrideIdentifer(identifier) {\n    let contentsForIdentifierOnly = null;\n    let contents = null;\n    const mergeContents = (contentsToMerge) =\u003e {\n      if (contentsToMerge) {\n        if (contents) {\n          this.mergeContents(contents, contentsToMerge);\n        } else {\n          contents = deepClone(contentsToMerge);\n        }\n      }\n    };\n    for (const override of this.overrides) {\n      if (override.identifiers.length === 1 \u0026\u0026 override.identifiers[0] === identifier) {\n        contentsForIdentifierOnly = override.contents;\n      } else if (override.identifiers.includes(identifier)) {\n        mergeContents(override.contents);\n      }\n    }\n    mergeContents(contentsForIdentifierOnly);\n    return contents;\n  }\n  toJSON() {\n    return {\n      contents: this.contents,\n      overrides: this.overrides,\n      keys: this.keys\n    };\n  }\n  setValue(key, value) {\n    this.updateValue(key, value, false);\n  }\n  removeValue(key) {\n    const index = this.keys.indexOf(key);\n    if (index === -1) {\n      return;\n    }\n    this.keys.splice(index, 1);\n    removeFromValueTree(this.contents, key);\n    if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n      this.overrides.splice(this.overrides.findIndex((o) =\u003e equals(o.identifiers, overrideIdentifiersFromKey(key))), 1);\n    }\n  }\n  updateValue(key, value, add) {\n    addToValueTree(this.contents, key, value, (e) =\u003e this.logService.error(e));\n    add = add || this.keys.indexOf(key) === -1;\n    if (add) {\n      this.keys.push(key);\n    }\n    if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n      const identifiers = overrideIdentifiersFromKey(key);\n      const override = {\n        identifiers,\n        keys: Object.keys(this.contents[key]),\n        contents: toValuesTree(this.contents[key], (message) =\u003e this.logService.error(message))\n      };\n      const index = this.overrides.findIndex((o) =\u003e equals(o.identifiers, identifiers));\n      if (index !== -1) {\n        this.overrides[index] = override;\n      } else {\n        this.overrides.push(override);\n      }\n    }\n  }\n};\nvar ConfigurationModelParser = class {\n  constructor(_name, logService) {\n    this._name = _name;\n    this.logService = logService;\n    this._raw = null;\n    this._configurationModel = null;\n    this._restrictedConfigurations = [];\n  }\n  get configurationModel() {\n    return this._configurationModel || ConfigurationModel.createEmptyModel(this.logService);\n  }\n  parseRaw(raw, options2) {\n    this._raw = raw;\n    const { contents, keys, overrides, restricted, hasExcludedProperties } = this.doParseRaw(raw, options2);\n    this._configurationModel = new ConfigurationModel(contents, keys, overrides, hasExcludedProperties ? [raw] : void 0, this.logService);\n    this._restrictedConfigurations = restricted || [];\n  }\n  doParseRaw(raw, options2) {\n    const registry = Registry.as(Extensions4.Configuration);\n    const configurationProperties = registry.getConfigurationProperties();\n    const excludedConfigurationProperties = registry.getExcludedConfigurationProperties();\n    const filtered = this.filter(raw, configurationProperties, excludedConfigurationProperties, true, options2);\n    raw = filtered.raw;\n    const contents = toValuesTree(raw, (message) =\u003e this.logService.error(`Conflict in settings file ${this._name}: ${message}`));\n    const keys = Object.keys(raw);\n    const overrides = this.toOverrides(raw, (message) =\u003e this.logService.error(`Conflict in settings file ${this._name}: ${message}`));\n    return { contents, keys, overrides, restricted: filtered.restricted, hasExcludedProperties: filtered.hasExcludedProperties };\n  }\n  filter(properties, configurationProperties, excludedConfigurationProperties, filterOverriddenProperties, options2) {\n    let hasExcludedProperties = false;\n    if (!options2?.scopes \u0026\u0026 !options2?.skipRestricted \u0026\u0026 !options2?.skipUnregistered \u0026\u0026 !options2?.exclude?.length) {\n      return { raw: properties, restricted: [], hasExcludedProperties };\n    }\n    const raw = {};\n    const restricted = [];\n    for (const key in properties) {\n      if (OVERRIDE_PROPERTY_REGEX.test(key) \u0026\u0026 filterOverriddenProperties) {\n        const result = this.filter(properties[key], configurationProperties, excludedConfigurationProperties, false, options2);\n        raw[key] = result.raw;\n        hasExcludedProperties = hasExcludedProperties || result.hasExcludedProperties;\n        restricted.push(...result.restricted);\n      } else {\n        const propertySchema = configurationProperties[key];\n        if (propertySchema?.restricted) {\n          restricted.push(key);\n        }\n        if (this.shouldInclude(key, propertySchema, excludedConfigurationProperties, options2)) {\n          raw[key] = properties[key];\n        } else {\n          hasExcludedProperties = true;\n        }\n      }\n    }\n    return { raw, restricted, hasExcludedProperties };\n  }\n  shouldInclude(key, propertySchema, excludedConfigurationProperties, options2) {\n    if (options2.exclude?.includes(key)) {\n      return false;\n    }\n    if (options2.include?.includes(key)) {\n      return true;\n    }\n    if (options2.skipRestricted \u0026\u0026 propertySchema?.restricted) {\n      return false;\n    }\n    if (options2.skipUnregistered \u0026\u0026 !propertySchema) {\n      return false;\n    }\n    const schema = propertySchema ?? excludedConfigurationProperties[key];\n    const scope = schema ? typeof schema.scope !== \"undefined\" ? schema.scope : 4 : void 0;\n    if (scope === void 0 || options2.scopes === void 0) {\n      return true;\n    }\n    return options2.scopes.includes(scope);\n  }\n  toOverrides(raw, conflictReporter) {\n    const overrides = [];\n    for (const key of Object.keys(raw)) {\n      if (OVERRIDE_PROPERTY_REGEX.test(key)) {\n        const overrideRaw = {};\n        for (const keyInOverrideRaw in raw[key]) {\n          overrideRaw[keyInOverrideRaw] = raw[key][keyInOverrideRaw];\n        }\n        overrides.push({\n          identifiers: overrideIdentifiersFromKey(key),\n          keys: Object.keys(overrideRaw),\n          contents: toValuesTree(overrideRaw, conflictReporter)\n        });\n      }\n    }\n    return overrides;\n  }\n};\nvar ConfigurationInspectValue = class {\n  constructor(key, overrides, _value, overrideIdentifiers, defaultConfiguration, policyConfiguration, applicationConfiguration, userConfiguration, localUserConfiguration, remoteUserConfiguration, workspaceConfiguration, folderConfigurationModel, memoryConfigurationModel) {\n    this.key = key;\n    this.overrides = overrides;\n    this._value = _value;\n    this.overrideIdentifiers = overrideIdentifiers;\n    this.defaultConfiguration = defaultConfiguration;\n    this.policyConfiguration = policyConfiguration;\n    this.applicationConfiguration = applicationConfiguration;\n    this.userConfiguration = userConfiguration;\n    this.localUserConfiguration = localUserConfiguration;\n    this.remoteUserConfiguration = remoteUserConfiguration;\n    this.workspaceConfiguration = workspaceConfiguration;\n    this.folderConfigurationModel = folderConfigurationModel;\n    this.memoryConfigurationModel = memoryConfigurationModel;\n  }\n  toInspectValue(inspectValue) {\n    return inspectValue?.value !== void 0 || inspectValue?.override !== void 0 || inspectValue?.overrides !== void 0 ? inspectValue : void 0;\n  }\n  get userInspectValue() {\n    if (!this._userInspectValue) {\n      this._userInspectValue = this.userConfiguration.inspect(this.key, this.overrides.overrideIdentifier);\n    }\n    return this._userInspectValue;\n  }\n  get user() {\n    return this.toInspectValue(this.userInspectValue);\n  }\n};\nvar Configuration = class _Configuration {\n  constructor(_defaultConfiguration, _policyConfiguration, _applicationConfiguration, _localUserConfiguration, _remoteUserConfiguration, _workspaceConfiguration, _folderConfigurations, _memoryConfiguration, _memoryConfigurationByResource, logService) {\n    this._defaultConfiguration = _defaultConfiguration;\n    this._policyConfiguration = _policyConfiguration;\n    this._applicationConfiguration = _applicationConfiguration;\n    this._localUserConfiguration = _localUserConfiguration;\n    this._remoteUserConfiguration = _remoteUserConfiguration;\n    this._workspaceConfiguration = _workspaceConfiguration;\n    this._folderConfigurations = _folderConfigurations;\n    this._memoryConfiguration = _memoryConfiguration;\n    this._memoryConfigurationByResource = _memoryConfigurationByResource;\n    this.logService = logService;\n    this._workspaceConsolidatedConfiguration = null;\n    this._foldersConsolidatedConfigurations = new ResourceMap();\n    this._userConfiguration = null;\n  }\n  getValue(section, overrides, workspace) {\n    const consolidateConfigurationModel = this.getConsolidatedConfigurationModel(section, overrides, workspace);\n    return consolidateConfigurationModel.getValue(section);\n  }\n  updateValue(key, value, overrides = {}) {\n    let memoryConfiguration;\n    if (overrides.resource) {\n      memoryConfiguration = this._memoryConfigurationByResource.get(overrides.resource);\n      if (!memoryConfiguration) {\n        memoryConfiguration = ConfigurationModel.createEmptyModel(this.logService);\n        this._memoryConfigurationByResource.set(overrides.resource, memoryConfiguration);\n      }\n    } else {\n      memoryConfiguration = this._memoryConfiguration;\n    }\n    if (value === void 0) {\n      memoryConfiguration.removeValue(key);\n    } else {\n      memoryConfiguration.setValue(key, value);\n    }\n    if (!overrides.resource) {\n      this._workspaceConsolidatedConfiguration = null;\n    }\n  }\n  inspect(key, overrides, workspace) {\n    const consolidateConfigurationModel = this.getConsolidatedConfigurationModel(key, overrides, workspace);\n    const folderConfigurationModel = this.getFolderConfigurationModelForResource(overrides.resource, workspace);\n    const memoryConfigurationModel = overrides.resource ? this._memoryConfigurationByResource.get(overrides.resource) || this._memoryConfiguration : this._memoryConfiguration;\n    const overrideIdentifiers = /* @__PURE__ */ new Set();\n    for (const override of consolidateConfigurationModel.overrides) {\n      for (const overrideIdentifier of override.identifiers) {\n        if (consolidateConfigurationModel.getOverrideValue(key, overrideIdentifier) !== void 0) {\n          overrideIdentifiers.add(overrideIdentifier);\n        }\n      }\n    }\n    return new ConfigurationInspectValue(key, overrides, consolidateConfigurationModel.getValue(key), overrideIdentifiers.size ? [...overrideIdentifiers] : void 0, this._defaultConfiguration, this._policyConfiguration.isEmpty() ? void 0 : this._policyConfiguration, this.applicationConfiguration.isEmpty() ? void 0 : this.applicationConfiguration, this.userConfiguration, this.localUserConfiguration, this.remoteUserConfiguration, workspace ? this._workspaceConfiguration : void 0, folderConfigurationModel ? folderConfigurationModel : void 0, memoryConfigurationModel);\n  }\n  get applicationConfiguration() {\n    return this._applicationConfiguration;\n  }\n  get userConfiguration() {\n    if (!this._userConfiguration) {\n      if (this._remoteUserConfiguration.isEmpty()) {\n        this._userConfiguration = this._localUserConfiguration;\n      } else {\n        const merged = this._localUserConfiguration.merge(this._remoteUserConfiguration);\n        this._userConfiguration = new ConfigurationModel(merged.contents, merged.keys, merged.overrides, void 0, this.logService);\n      }\n    }\n    return this._userConfiguration;\n  }\n  get localUserConfiguration() {\n    return this._localUserConfiguration;\n  }\n  get remoteUserConfiguration() {\n    return this._remoteUserConfiguration;\n  }\n  getConsolidatedConfigurationModel(section, overrides, workspace) {\n    let configurationModel = this.getConsolidatedConfigurationModelForResource(overrides, workspace);\n    if (overrides.overrideIdentifier) {\n      configurationModel = configurationModel.override(overrides.overrideIdentifier);\n    }\n    if (!this._policyConfiguration.isEmpty() \u0026\u0026 this._policyConfiguration.getValue(section) !== void 0) {\n      configurationModel = configurationModel.merge();\n      for (const key of this._policyConfiguration.keys) {\n        configurationModel.setValue(key, this._policyConfiguration.getValue(key));\n      }\n    }\n    return configurationModel;\n  }\n  getConsolidatedConfigurationModelForResource({ resource }, workspace) {\n    let consolidateConfiguration = this.getWorkspaceConsolidatedConfiguration();\n    if (workspace \u0026\u0026 resource) {\n      const root = workspace.getFolder(resource);\n      if (root) {\n        consolidateConfiguration = this.getFolderConsolidatedConfiguration(root.uri) || consolidateConfiguration;\n      }\n      const memoryConfigurationForResource = this._memoryConfigurationByResource.get(resource);\n      if (memoryConfigurationForResource) {\n        consolidateConfiguration = consolidateConfiguration.merge(memoryConfigurationForResource);\n      }\n    }\n    return consolidateConfiguration;\n  }\n  getWorkspaceConsolidatedConfiguration() {\n    if (!this._workspaceConsolidatedConfiguration) {\n      this._workspaceConsolidatedConfiguration = this._defaultConfiguration.merge(this.applicationConfiguration, this.userConfiguration, this._workspaceConfiguration, this._memoryConfiguration);\n    }\n    return this._workspaceConsolidatedConfiguration;\n  }\n  getFolderConsolidatedConfiguration(folder) {\n    let folderConsolidatedConfiguration = this._foldersConsolidatedConfigurations.get(folder);\n    if (!folderConsolidatedConfiguration) {\n      const workspaceConsolidateConfiguration = this.getWorkspaceConsolidatedConfiguration();\n      const folderConfiguration = this._folderConfigurations.get(folder);\n      if (folderConfiguration) {\n        folderConsolidatedConfiguration = workspaceConsolidateConfiguration.merge(folderConfiguration);\n        this._foldersConsolidatedConfigurations.set(folder, folderConsolidatedConfiguration);\n      } else {\n        folderConsolidatedConfiguration = workspaceConsolidateConfiguration;\n      }\n    }\n    return folderConsolidatedConfiguration;\n  }\n  getFolderConfigurationModelForResource(resource, workspace) {\n    if (workspace \u0026\u0026 resource) {\n      const root = workspace.getFolder(resource);\n      if (root) {\n        return this._folderConfigurations.get(root.uri);\n      }\n    }\n    return void 0;\n  }\n  toData() {\n    return {\n      defaults: {\n        contents: this._defaultConfiguration.contents,\n        overrides: this._defaultConfiguration.overrides,\n        keys: this._defaultConfiguration.keys\n      },\n      policy: {\n        contents: this._policyConfiguration.contents,\n        overrides: this._policyConfiguration.overrides,\n        keys: this._policyConfiguration.keys\n      },\n      application: {\n        contents: this.applicationConfiguration.contents,\n        overrides: this.applicationConfiguration.overrides,\n        keys: this.applicationConfiguration.keys,\n        raw: Array.isArray(this.applicationConfiguration.raw) ? void 0 : this.applicationConfiguration.raw\n      },\n      userLocal: {\n        contents: this.localUserConfiguration.contents,\n        overrides: this.localUserConfiguration.overrides,\n        keys: this.localUserConfiguration.keys,\n        raw: Array.isArray(this.localUserConfiguration.raw) ? void 0 : this.localUserConfiguration.raw\n      },\n      userRemote: {\n        contents: this.remoteUserConfiguration.contents,\n        overrides: this.remoteUserConfiguration.overrides,\n        keys: this.remoteUserConfiguration.keys,\n        raw: Array.isArray(this.remoteUserConfiguration.raw) ? void 0 : this.remoteUserConfiguration.raw\n      },\n      workspace: {\n        contents: this._workspaceConfiguration.contents,\n        overrides: this._workspaceConfiguration.overrides,\n        keys: this._workspaceConfiguration.keys\n      },\n      folders: [...this._folderConfigurations.keys()].reduce((result, folder) =\u003e {\n        const { contents, overrides, keys } = this._folderConfigurations.get(folder);\n        result.push([folder, { contents, overrides, keys }]);\n        return result;\n      }, [])\n    };\n  }\n  static parse(data, logService) {\n    const defaultConfiguration = this.parseConfigurationModel(data.defaults, logService);\n    const policyConfiguration = this.parseConfigurationModel(data.policy, logService);\n    const applicationConfiguration = this.parseConfigurationModel(data.application, logService);\n    const userLocalConfiguration = this.parseConfigurationModel(data.userLocal, logService);\n    const userRemoteConfiguration = this.parseConfigurationModel(data.userRemote, logService);\n    const workspaceConfiguration = this.parseConfigurationModel(data.workspace, logService);\n    const folders = data.folders.reduce((result, value) =\u003e {\n      result.set(URI.revive(value[0]), this.parseConfigurationModel(value[1], logService));\n      return result;\n    }, new ResourceMap());\n    return new _Configuration(defaultConfiguration, policyConfiguration, applicationConfiguration, userLocalConfiguration, userRemoteConfiguration, workspaceConfiguration, folders, ConfigurationModel.createEmptyModel(logService), new ResourceMap(), logService);\n  }\n  static parseConfigurationModel(model, logService) {\n    return new ConfigurationModel(model.contents, model.keys, model.overrides, model.raw, logService);\n  }\n};\nvar ConfigurationChangeEvent = class {\n  constructor(change, previous, currentConfiguraiton, currentWorkspace, logService) {\n    this.change = change;\n    this.previous = previous;\n    this.currentConfiguraiton = currentConfiguraiton;\n    this.currentWorkspace = currentWorkspace;\n    this.logService = logService;\n    this._marker = \"\\n\";\n    this._markerCode1 = this._marker.charCodeAt(0);\n    this._markerCode2 = \".\".charCodeAt(0);\n    this.affectedKeys = /* @__PURE__ */ new Set();\n    this._previousConfiguration = void 0;\n    for (const key of change.keys) {\n      this.affectedKeys.add(key);\n    }\n    for (const [, keys] of change.overrides) {\n      for (const key of keys) {\n        this.affectedKeys.add(key);\n      }\n    }\n    this._affectsConfigStr = this._marker;\n    for (const key of this.affectedKeys) {\n      this._affectsConfigStr += key + this._marker;\n    }\n  }\n  get previousConfiguration() {\n    if (!this._previousConfiguration \u0026\u0026 this.previous) {\n      this._previousConfiguration = Configuration.parse(this.previous.data, this.logService);\n    }\n    return this._previousConfiguration;\n  }\n  affectsConfiguration(section, overrides) {\n    const needle = this._marker + section;\n    const idx = this._affectsConfigStr.indexOf(needle);\n    if (idx \u003c 0) {\n      return false;\n    }\n    const pos = idx + needle.length;\n    if (pos \u003e= this._affectsConfigStr.length) {\n      return false;\n    }\n    const code = this._affectsConfigStr.charCodeAt(pos);\n    if (code !== this._markerCode1 \u0026\u0026 code !== this._markerCode2) {\n      return false;\n    }\n    if (overrides) {\n      const value1 = this.previousConfiguration ? this.previousConfiguration.getValue(section, overrides, this.previous?.workspace) : void 0;\n      const value2 = this.currentConfiguraiton.getValue(section, overrides, this.currentWorkspace);\n      return !equals2(value1, value2);\n    }\n    return true;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/abstractKeybindingService.js\ninit_async();\ninit_errors();\ninit_event();\ninit_lifecycle();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/keybindingResolver.js\ninit_contextkey();\nvar NoMatchingKb = {\n  kind: 0\n  /* ResultKind.NoMatchingKb */\n};\nvar MoreChordsNeeded = {\n  kind: 1\n  /* ResultKind.MoreChordsNeeded */\n};\nfunction KbFound(commandId, commandArgs, isBubble) {\n  return { kind: 2, commandId, commandArgs, isBubble };\n}\nvar KeybindingResolver = class _KeybindingResolver {\n  constructor(defaultKeybindings, overrides, log2) {\n    this._log = log2;\n    this._defaultKeybindings = defaultKeybindings;\n    this._defaultBoundCommands = /* @__PURE__ */ new Map();\n    for (const defaultKeybinding of defaultKeybindings) {\n      const command = defaultKeybinding.command;\n      if (command \u0026\u0026 command.charAt(0) !== \"-\") {\n        this._defaultBoundCommands.set(command, true);\n      }\n    }\n    this._map = /* @__PURE__ */ new Map();\n    this._lookupMap = /* @__PURE__ */ new Map();\n    this._keybindings = _KeybindingResolver.handleRemovals([].concat(defaultKeybindings).concat(overrides));\n    for (let i2 = 0, len = this._keybindings.length; i2 \u003c len; i2++) {\n      const k = this._keybindings[i2];\n      if (k.chords.length === 0) {\n        continue;\n      }\n      const when = k.when?.substituteConstants();\n      if (when \u0026\u0026 when.type === 0) {\n        continue;\n      }\n      this._addKeyPress(k.chords[0], k);\n    }\n  }\n  static _isTargetedForRemoval(defaultKb, keypress, when) {\n    if (keypress) {\n      for (let i2 = 0; i2 \u003c keypress.length; i2++) {\n        if (keypress[i2] !== defaultKb.chords[i2]) {\n          return false;\n        }\n      }\n    }\n    if (when \u0026\u0026 when.type !== 1) {\n      if (!defaultKb.when) {\n        return false;\n      }\n      if (!expressionsAreEqualWithConstantSubstitution(when, defaultKb.when)) {\n        return false;\n      }\n    }\n    return true;\n  }\n  /**\n   * Looks for rules containing \"-commandId\" and removes them.\n   */\n  static handleRemovals(rules) {\n    const removals = /* @__PURE__ */ new Map();\n    for (let i2 = 0, len = rules.length; i2 \u003c len; i2++) {\n      const rule = rules[i2];\n      if (rule.command \u0026\u0026 rule.command.charAt(0) === \"-\") {\n        const command = rule.command.substring(1);\n        if (!removals.has(command)) {\n          removals.set(command, [rule]);\n        } else {\n          removals.get(command).push(rule);\n        }\n      }\n    }\n    if (removals.size === 0) {\n      return rules;\n    }\n    const result = [];\n    for (let i2 = 0, len = rules.length; i2 \u003c len; i2++) {\n      const rule = rules[i2];\n      if (!rule.command || rule.command.length === 0) {\n        result.push(rule);\n        continue;\n      }\n      if (rule.command.charAt(0) === \"-\") {\n        continue;\n      }\n      const commandRemovals = removals.get(rule.command);\n      if (!commandRemovals || !rule.isDefault) {\n        result.push(rule);\n        continue;\n      }\n      let isRemoved = false;\n      for (const commandRemoval of commandRemovals) {\n        const when = commandRemoval.when;\n        if (this._isTargetedForRemoval(rule, commandRemoval.chords, when)) {\n          isRemoved = true;\n          break;\n        }\n      }\n      if (!isRemoved) {\n        result.push(rule);\n        continue;\n      }\n    }\n    return result;\n  }\n  _addKeyPress(keypress, item) {\n    const conflicts = this._map.get(keypress);\n    if (typeof conflicts === \"undefined\") {\n      this._map.set(keypress, [item]);\n      this._addToLookupMap(item);\n      return;\n    }\n    for (let i2 = conflicts.length - 1; i2 \u003e= 0; i2--) {\n      const conflict = conflicts[i2];\n      if (conflict.command === item.command) {\n        continue;\n      }\n      let isShorterKbPrefix = true;\n      for (let i3 = 1; i3 \u003c conflict.chords.length \u0026\u0026 i3 \u003c item.chords.length; i3++) {\n        if (conflict.chords[i3] !== item.chords[i3]) {\n          isShorterKbPrefix = false;\n          break;\n        }\n      }\n      if (!isShorterKbPrefix) {\n        continue;\n      }\n      if (_KeybindingResolver.whenIsEntirelyIncluded(conflict.when, item.when)) {\n        this._removeFromLookupMap(conflict);\n      }\n    }\n    conflicts.push(item);\n    this._addToLookupMap(item);\n  }\n  _addToLookupMap(item) {\n    if (!item.command) {\n      return;\n    }\n    let arr = this._lookupMap.get(item.command);\n    if (typeof arr === \"undefined\") {\n      arr = [item];\n      this._lookupMap.set(item.command, arr);\n    } else {\n      arr.push(item);\n    }\n  }\n  _removeFromLookupMap(item) {\n    if (!item.command) {\n      return;\n    }\n    const arr = this._lookupMap.get(item.command);\n    if (typeof arr === \"undefined\") {\n      return;\n    }\n    for (let i2 = 0, len = arr.length; i2 \u003c len; i2++) {\n      if (arr[i2] === item) {\n        arr.splice(i2, 1);\n        return;\n      }\n    }\n  }\n  /**\n   * Returns true if it is provable `a` implies `b`.\n   */\n  static whenIsEntirelyIncluded(a, b) {\n    if (!b || b.type === 1) {\n      return true;\n    }\n    if (!a || a.type === 1) {\n      return false;\n    }\n    return implies(a, b);\n  }\n  getKeybindings() {\n    return this._keybindings;\n  }\n  lookupPrimaryKeybinding(commandId, context, enforceContextCheck = false) {\n    const items = this._lookupMap.get(commandId);\n    if (typeof items === \"undefined\" || items.length === 0) {\n      return null;\n    }\n    if (items.length === 1 \u0026\u0026 !enforceContextCheck) {\n      return items[0];\n    }\n    for (let i2 = items.length - 1; i2 \u003e= 0; i2--) {\n      const item = items[i2];\n      if (context.contextMatchesRules(item.when)) {\n        return item;\n      }\n    }\n    if (enforceContextCheck) {\n      return null;\n    }\n    return items[items.length - 1];\n  }\n  /**\n   * Looks up a keybinding trigged as a result of pressing a sequence of chords - `[...currentChords, keypress]`\n   *\n   * Example: resolving 3 chords pressed sequentially - `cmd+k cmd+p cmd+i`:\n   * \t`currentChords = [ 'cmd+k' , 'cmd+p' ]` and `keypress = `cmd+i` - last pressed chord\n   */\n  resolve(context, currentChords, keypress) {\n    const pressedChords = [...currentChords, keypress];\n    this._log(`| Resolving ${pressedChords}`);\n    const kbCandidates = this._map.get(pressedChords[0]);\n    if (kbCandidates === void 0) {\n      this._log(`\\\\ No keybinding entries.`);\n      return NoMatchingKb;\n    }\n    let lookupMap = null;\n    if (pressedChords.length \u003c 2) {\n      lookupMap = kbCandidates;\n    } else {\n      lookupMap = [];\n      for (let i2 = 0, len = kbCandidates.length; i2 \u003c len; i2++) {\n        const candidate = kbCandidates[i2];\n        if (pressedChords.length \u003e candidate.chords.length) {\n          continue;\n        }\n        let prefixMatches = true;\n        for (let i3 = 1; i3 \u003c pressedChords.length; i3++) {\n          if (candidate.chords[i3] !== pressedChords[i3]) {\n            prefixMatches = false;\n            break;\n          }\n        }\n        if (prefixMatches) {\n          lookupMap.push(candidate);\n        }\n      }\n    }\n    const result = this._findCommand(context, lookupMap);\n    if (!result) {\n      this._log(`\\\\ From ${lookupMap.length} keybinding entries, no when clauses matched the context.`);\n      return NoMatchingKb;\n    }\n    if (pressedChords.length \u003c result.chords.length) {\n      this._log(`\\\\ From ${lookupMap.length} keybinding entries, awaiting ${result.chords.length - pressedChords.length} more chord(s), when: ${printWhenExplanation(result.when)}, source: ${printSourceExplanation(result)}.`);\n      return MoreChordsNeeded;\n    }\n    this._log(`\\\\ From ${lookupMap.length} keybinding entries, matched ${result.command}, when: ${printWhenExplanation(result.when)}, source: ${printSourceExplanation(result)}.`);\n    return KbFound(result.command, result.commandArgs, result.bubble);\n  }\n  _findCommand(context, matches) {\n    for (let i2 = matches.length - 1; i2 \u003e= 0; i2--) {\n      const k = matches[i2];\n      if (!_KeybindingResolver._contextMatchesRules(context, k.when)) {\n        continue;\n      }\n      return k;\n    }\n    return null;\n  }\n  static _contextMatchesRules(context, rules) {\n    if (!rules) {\n      return true;\n    }\n    return rules.evaluate(context);\n  }\n};\nfunction printWhenExplanation(when) {\n  if (!when) {\n    return `no when condition`;\n  }\n  return `${when.serialize()}`;\n}\nfunction printSourceExplanation(kb) {\n  return kb.extensionId ? kb.isBuiltinExtension ? `built-in extension ${kb.extensionId}` : `user extension ${kb.extensionId}` : kb.isDefault ? `built-in` : `user`;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/abstractKeybindingService.js\nvar HIGH_FREQ_COMMANDS = /^(cursor|delete|undo|redo|tab|editor\\.action\\.clipboard)/;\nvar AbstractKeybindingService = class extends Disposable {\n  get onDidUpdateKeybindings() {\n    return this._onDidUpdateKeybindings ? this._onDidUpdateKeybindings.event : Event.None;\n  }\n  get inChordMode() {\n    return this._currentChords.length \u003e 0;\n  }\n  constructor(_contextKeyService, _commandService, _telemetryService, _notificationService, _logService) {\n    super();\n    this._contextKeyService = _contextKeyService;\n    this._commandService = _commandService;\n    this._telemetryService = _telemetryService;\n    this._notificationService = _notificationService;\n    this._logService = _logService;\n    this._onDidUpdateKeybindings = this._register(new Emitter());\n    this._currentChords = [];\n    this._currentChordChecker = new IntervalTimer();\n    this._currentChordStatusMessage = null;\n    this._ignoreSingleModifiers = KeybindingModifierSet.EMPTY;\n    this._currentSingleModifier = null;\n    this._currentSingleModifierClearTimeout = new TimeoutTimer();\n    this._currentlyDispatchingCommandId = null;\n    this._logging = false;\n  }\n  dispose() {\n    super.dispose();\n  }\n  _log(str) {\n    if (this._logging) {\n      this._logService.info(`[KeybindingService]: ${str}`);\n    }\n  }\n  getKeybindings() {\n    return this._getResolver().getKeybindings();\n  }\n  lookupKeybinding(commandId, context, enforceContextCheck = false) {\n    const result = this._getResolver().lookupPrimaryKeybinding(commandId, context || this._contextKeyService, enforceContextCheck);\n    if (!result) {\n      return void 0;\n    }\n    return result.resolvedKeybinding;\n  }\n  dispatchEvent(e, target) {\n    return this._dispatch(e, target);\n  }\n  // TODO@ulugbekna: update namings to align with `_doDispatch`\n  // TODO@ulugbekna: this fn doesn't seem to take into account single-modifier keybindings, eg `shift shift`\n  softDispatch(e, target) {\n    this._log(`/ Soft dispatching keyboard event`);\n    const keybinding = this.resolveKeyboardEvent(e);\n    if (keybinding.hasMultipleChords()) {\n      console.warn(\"keyboard event should not be mapped to multiple chords\");\n      return NoMatchingKb;\n    }\n    const [firstChord] = keybinding.getDispatchChords();\n    if (firstChord === null) {\n      this._log(`\\\\ Keyboard event cannot be dispatched`);\n      return NoMatchingKb;\n    }\n    const contextValue = this._contextKeyService.getContext(target);\n    const currentChords = this._currentChords.map((({ keypress }) =\u003e keypress));\n    return this._getResolver().resolve(contextValue, currentChords, firstChord);\n  }\n  _scheduleLeaveChordMode() {\n    const chordLastInteractedTime = Date.now();\n    this._currentChordChecker.cancelAndSet(() =\u003e {\n      if (!this._documentHasFocus()) {\n        this._leaveChordMode();\n        return;\n      }\n      if (Date.now() - chordLastInteractedTime \u003e 5e3) {\n        this._leaveChordMode();\n      }\n    }, 500);\n  }\n  _expectAnotherChord(firstChord, keypressLabel) {\n    this._currentChords.push({ keypress: firstChord, label: keypressLabel });\n    switch (this._currentChords.length) {\n      case 0:\n        throw illegalState(\"impossible\");\n      case 1:\n        this._currentChordStatusMessage = this._notificationService.status(localize(1682, \"({0}) was pressed. Waiting for second key of chord...\", keypressLabel));\n        break;\n      default: {\n        const fullKeypressLabel = this._currentChords.map(({ label }) =\u003e label).join(\", \");\n        this._currentChordStatusMessage = this._notificationService.status(localize(1683, \"({0}) was pressed. Waiting for next key of chord...\", fullKeypressLabel));\n      }\n    }\n    this._scheduleLeaveChordMode();\n    if (IME.enabled) {\n      IME.disable();\n    }\n  }\n  _leaveChordMode() {\n    if (this._currentChordStatusMessage) {\n      this._currentChordStatusMessage.close();\n      this._currentChordStatusMessage = null;\n    }\n    this._currentChordChecker.cancel();\n    this._currentChords = [];\n    IME.enable();\n  }\n  _dispatch(e, target) {\n    return this._doDispatch(\n      this.resolveKeyboardEvent(e),\n      target,\n      /*isSingleModiferChord*/\n      false\n    );\n  }\n  _singleModifierDispatch(e, target) {\n    const keybinding = this.resolveKeyboardEvent(e);\n    const [singleModifier] = keybinding.getSingleModifierDispatchChords();\n    if (singleModifier) {\n      if (this._ignoreSingleModifiers.has(singleModifier)) {\n        this._log(`+ Ignoring single modifier ${singleModifier} due to it being pressed together with other keys.`);\n        this._ignoreSingleModifiers = KeybindingModifierSet.EMPTY;\n        this._currentSingleModifierClearTimeout.cancel();\n        this._currentSingleModifier = null;\n        return false;\n      }\n      this._ignoreSingleModifiers = KeybindingModifierSet.EMPTY;\n      if (this._currentSingleModifier === null) {\n        this._log(`+ Storing single modifier for possible chord ${singleModifier}.`);\n        this._currentSingleModifier = singleModifier;\n        this._currentSingleModifierClearTimeout.cancelAndSet(() =\u003e {\n          this._log(`+ Clearing single modifier due to 300ms elapsed.`);\n          this._currentSingleModifier = null;\n        }, 300);\n        return false;\n      }\n      if (singleModifier === this._currentSingleModifier) {\n        this._log(`/ Dispatching single modifier chord ${singleModifier} ${singleModifier}`);\n        this._currentSingleModifierClearTimeout.cancel();\n        this._currentSingleModifier = null;\n        return this._doDispatch(\n          keybinding,\n          target,\n          /*isSingleModiferChord*/\n          true\n        );\n      }\n      this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${singleModifier}`);\n      this._currentSingleModifierClearTimeout.cancel();\n      this._currentSingleModifier = null;\n      return false;\n    }\n    const [firstChord] = keybinding.getChords();\n    this._ignoreSingleModifiers = new KeybindingModifierSet(firstChord);\n    if (this._currentSingleModifier !== null) {\n      this._log(`+ Clearing single modifier due to other key up.`);\n    }\n    this._currentSingleModifierClearTimeout.cancel();\n    this._currentSingleModifier = null;\n    return false;\n  }\n  _doDispatch(userKeypress, target, isSingleModiferChord = false) {\n    let shouldPreventDefault = false;\n    if (userKeypress.hasMultipleChords()) {\n      console.warn(\"Unexpected keyboard event mapped to multiple chords\");\n      return false;\n    }\n    let userPressedChord = null;\n    let currentChords = null;\n    if (isSingleModiferChord) {\n      const [dispatchKeyname] = userKeypress.getSingleModifierDispatchChords();\n      userPressedChord = dispatchKeyname;\n      currentChords = dispatchKeyname ? [dispatchKeyname] : [];\n    } else {\n      [userPressedChord] = userKeypress.getDispatchChords();\n      currentChords = this._currentChords.map(({ keypress }) =\u003e keypress);\n    }\n    if (userPressedChord === null) {\n      this._log(`\\\\ Keyboard event cannot be dispatched in keydown phase.`);\n      return shouldPreventDefault;\n    }\n    const contextValue = this._contextKeyService.getContext(target);\n    const keypressLabel = userKeypress.getLabel();\n    const resolveResult = this._getResolver().resolve(contextValue, currentChords, userPressedChord);\n    switch (resolveResult.kind) {\n      case 0: {\n        this._logService.trace(\"KeybindingService#dispatch\", keypressLabel, `[ No matching keybinding ]`);\n        if (this.inChordMode) {\n          const currentChordsLabel = this._currentChords.map(({ label }) =\u003e label).join(\", \");\n          this._log(`+ Leaving multi-chord mode: Nothing bound to \"${currentChordsLabel}, ${keypressLabel}\".`);\n          this._notificationService.status(localize(1684, \"The key combination ({0}, {1}) is not a command.\", currentChordsLabel, keypressLabel), {\n            hideAfter: 10 * 1e3\n            /* 10s */\n          });\n          this._leaveChordMode();\n          shouldPreventDefault = true;\n        }\n        return shouldPreventDefault;\n      }\n      case 1: {\n        this._logService.trace(\"KeybindingService#dispatch\", keypressLabel, `[ Several keybindings match - more chords needed ]`);\n        shouldPreventDefault = true;\n        this._expectAnotherChord(userPressedChord, keypressLabel);\n        this._log(this._currentChords.length === 1 ? `+ Entering multi-chord mode...` : `+ Continuing multi-chord mode...`);\n        return shouldPreventDefault;\n      }\n      case 2: {\n        this._logService.trace(\"KeybindingService#dispatch\", keypressLabel, `[ Will dispatch command ${resolveResult.commandId} ]`);\n        if (resolveResult.commandId === null || resolveResult.commandId === \"\") {\n          if (this.inChordMode) {\n            const currentChordsLabel = this._currentChords.map(({ label }) =\u003e label).join(\", \");\n            this._log(`+ Leaving chord mode: Nothing bound to \"${currentChordsLabel}, ${keypressLabel}\".`);\n            this._notificationService.status(localize(1685, \"The key combination ({0}, {1}) is not a command.\", currentChordsLabel, keypressLabel), {\n              hideAfter: 10 * 1e3\n              /* 10s */\n            });\n            this._leaveChordMode();\n            shouldPreventDefault = true;\n          }\n        } else {\n          if (this.inChordMode) {\n            this._leaveChordMode();\n          }\n          if (!resolveResult.isBubble) {\n            shouldPreventDefault = true;\n          }\n          this._log(`+ Invoking command ${resolveResult.commandId}.`);\n          this._currentlyDispatchingCommandId = resolveResult.commandId;\n          try {\n            if (typeof resolveResult.commandArgs === \"undefined\") {\n              this._commandService.executeCommand(resolveResult.commandId).then(void 0, (err) =\u003e this._notificationService.warn(err));\n            } else {\n              this._commandService.executeCommand(resolveResult.commandId, resolveResult.commandArgs).then(void 0, (err) =\u003e this._notificationService.warn(err));\n            }\n          } finally {\n            this._currentlyDispatchingCommandId = null;\n          }\n          if (!HIGH_FREQ_COMMANDS.test(resolveResult.commandId)) {\n            this._telemetryService.publicLog2(\"workbenchActionExecuted\", { id: resolveResult.commandId, from: \"keybinding\", detail: userKeypress.getUserSettingsLabel() ?? void 0 });\n          }\n        }\n        return shouldPreventDefault;\n      }\n    }\n  }\n  mightProducePrintableCharacter(event) {\n    if (event.ctrlKey || event.metaKey) {\n      return false;\n    }\n    if (event.keyCode \u003e= 31 \u0026\u0026 event.keyCode \u003c= 56 || event.keyCode \u003e= 21 \u0026\u0026 event.keyCode \u003c= 30) {\n      return true;\n    }\n    return false;\n  }\n};\nvar KeybindingModifierSet = class _KeybindingModifierSet {\n  static {\n    this.EMPTY = new _KeybindingModifierSet(null);\n  }\n  constructor(source) {\n    this._ctrlKey = source ? source.ctrlKey : false;\n    this._shiftKey = source ? source.shiftKey : false;\n    this._altKey = source ? source.altKey : false;\n    this._metaKey = source ? source.metaKey : false;\n  }\n  has(modifier) {\n    switch (modifier) {\n      case \"ctrl\":\n        return this._ctrlKey;\n      case \"shift\":\n        return this._shiftKey;\n      case \"alt\":\n        return this._altKey;\n      case \"meta\":\n        return this._metaKey;\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_keybindingsRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/resolvedKeybindingItem.js\nvar ResolvedKeybindingItem = class {\n  constructor(resolvedKeybinding, command, commandArgs, when, isDefault, extensionId, isBuiltinExtension) {\n    this._resolvedKeybindingItemBrand = void 0;\n    this.resolvedKeybinding = resolvedKeybinding;\n    this.chords = resolvedKeybinding ? toEmptyArrayIfContainsNull(resolvedKeybinding.getDispatchChords()) : [];\n    if (resolvedKeybinding \u0026\u0026 this.chords.length === 0) {\n      this.chords = toEmptyArrayIfContainsNull(resolvedKeybinding.getSingleModifierDispatchChords());\n    }\n    this.bubble = command ? command.charCodeAt(0) === 94 : false;\n    this.command = this.bubble ? command.substr(1) : command;\n    this.commandArgs = commandArgs;\n    this.when = when;\n    this.isDefault = isDefault;\n    this.extensionId = extensionId;\n    this.isBuiltinExtension = isBuiltinExtension;\n  }\n};\nfunction toEmptyArrayIfContainsNull(arr) {\n  const result = [];\n  for (let i2 = 0, len = arr.length; i2 \u003c len; i2++) {\n    const element = arr[i2];\n    if (!element) {\n      return [];\n    }\n    result.push(element);\n  }\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/usLayoutResolvedKeybinding.js\ninit_keyCodes();\ninit_keybindings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js\ninit_errors();\ninit_keybindings();\nvar BaseResolvedKeybinding = class extends ResolvedKeybinding {\n  constructor(os, chords) {\n    super();\n    if (chords.length === 0) {\n      throw illegalArgument(`chords`);\n    }\n    this._os = os;\n    this._chords = chords;\n  }\n  getLabel() {\n    return UILabelProvider.toLabel(this._os, this._chords, (keybinding) =\u003e this._getLabel(keybinding));\n  }\n  getAriaLabel() {\n    return AriaLabelProvider.toLabel(this._os, this._chords, (keybinding) =\u003e this._getAriaLabel(keybinding));\n  }\n  getElectronAccelerator() {\n    if (this._chords.length \u003e 1) {\n      return null;\n    }\n    if (this._chords[0].isDuplicateModifierCase()) {\n      return null;\n    }\n    return ElectronAcceleratorLabelProvider.toLabel(this._os, this._chords, (keybinding) =\u003e this._getElectronAccelerator(keybinding));\n  }\n  getUserSettingsLabel() {\n    return UserSettingsLabelProvider.toLabel(this._os, this._chords, (keybinding) =\u003e this._getUserSettingsLabel(keybinding));\n  }\n  hasMultipleChords() {\n    return this._chords.length \u003e 1;\n  }\n  getChords() {\n    return this._chords.map((keybinding) =\u003e this._getChord(keybinding));\n  }\n  _getChord(keybinding) {\n    return new ResolvedChord(keybinding.ctrlKey, keybinding.shiftKey, keybinding.altKey, keybinding.metaKey, this._getLabel(keybinding), this._getAriaLabel(keybinding));\n  }\n  getDispatchChords() {\n    return this._chords.map((keybinding) =\u003e this._getChordDispatch(keybinding));\n  }\n  getSingleModifierDispatchChords() {\n    return this._chords.map((keybinding) =\u003e this._getSingleModifierChordDispatch(keybinding));\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/keybinding/common/usLayoutResolvedKeybinding.js\nvar USLayoutResolvedKeybinding = class _USLayoutResolvedKeybinding extends BaseResolvedKeybinding {\n  constructor(chords, os) {\n    super(os, chords);\n  }\n  _keyCodeToUILabel(keyCode) {\n    if (this._os === 2) {\n      switch (keyCode) {\n        case 15:\n          return \"\\u2190\";\n        case 16:\n          return \"\\u2191\";\n        case 17:\n          return \"\\u2192\";\n        case 18:\n          return \"\\u2193\";\n      }\n    }\n    return KeyCodeUtils.toString(keyCode);\n  }\n  _getLabel(chord) {\n    if (chord.isDuplicateModifierCase()) {\n      return \"\";\n    }\n    return this._keyCodeToUILabel(chord.keyCode);\n  }\n  _getAriaLabel(chord) {\n    if (chord.isDuplicateModifierCase()) {\n      return \"\";\n    }\n    return KeyCodeUtils.toString(chord.keyCode);\n  }\n  _getElectronAccelerator(chord) {\n    return KeyCodeUtils.toElectronAccelerator(chord.keyCode);\n  }\n  _getUserSettingsLabel(chord) {\n    if (chord.isDuplicateModifierCase()) {\n      return \"\";\n    }\n    const result = KeyCodeUtils.toUserSettingsUS(chord.keyCode);\n    return result ? result.toLowerCase() : result;\n  }\n  _getChordDispatch(chord) {\n    return _USLayoutResolvedKeybinding.getDispatchStr(chord);\n  }\n  static getDispatchStr(chord) {\n    if (chord.isModifierKey()) {\n      return null;\n    }\n    let result = \"\";\n    if (chord.ctrlKey) {\n      result += \"ctrl+\";\n    }\n    if (chord.shiftKey) {\n      result += \"shift+\";\n    }\n    if (chord.altKey) {\n      result += \"alt+\";\n    }\n    if (chord.metaKey) {\n      result += \"meta+\";\n    }\n    result += KeyCodeUtils.toString(chord.keyCode);\n    return result;\n  }\n  _getSingleModifierChordDispatch(keybinding) {\n    if (keybinding.keyCode === 5 \u0026\u0026 !keybinding.shiftKey \u0026\u0026 !keybinding.altKey \u0026\u0026 !keybinding.metaKey) {\n      return \"ctrl\";\n    }\n    if (keybinding.keyCode === 4 \u0026\u0026 !keybinding.ctrlKey \u0026\u0026 !keybinding.altKey \u0026\u0026 !keybinding.metaKey) {\n      return \"shift\";\n    }\n    if (keybinding.keyCode === 6 \u0026\u0026 !keybinding.ctrlKey \u0026\u0026 !keybinding.shiftKey \u0026\u0026 !keybinding.metaKey) {\n      return \"alt\";\n    }\n    if (keybinding.keyCode === 57 \u0026\u0026 !keybinding.ctrlKey \u0026\u0026 !keybinding.shiftKey \u0026\u0026 !keybinding.altKey) {\n      return \"meta\";\n    }\n    return null;\n  }\n  /**\n   * *NOTE*: Check return value for `KeyCode.Unknown`.\n   */\n  static _scanCodeToKeyCode(scanCode) {\n    const immutableKeyCode = IMMUTABLE_CODE_TO_KEY_CODE[scanCode];\n    if (immutableKeyCode !== -1) {\n      return immutableKeyCode;\n    }\n    switch (scanCode) {\n      case 10:\n        return 31;\n      case 11:\n        return 32;\n      case 12:\n        return 33;\n      case 13:\n        return 34;\n      case 14:\n        return 35;\n      case 15:\n        return 36;\n      case 16:\n        return 37;\n      case 17:\n        return 38;\n      case 18:\n        return 39;\n      case 19:\n        return 40;\n      case 20:\n        return 41;\n      case 21:\n        return 42;\n      case 22:\n        return 43;\n      case 23:\n        return 44;\n      case 24:\n        return 45;\n      case 25:\n        return 46;\n      case 26:\n        return 47;\n      case 27:\n        return 48;\n      case 28:\n        return 49;\n      case 29:\n        return 50;\n      case 30:\n        return 51;\n      case 31:\n        return 52;\n      case 32:\n        return 53;\n      case 33:\n        return 54;\n      case 34:\n        return 55;\n      case 35:\n        return 56;\n      case 36:\n        return 22;\n      case 37:\n        return 23;\n      case 38:\n        return 24;\n      case 39:\n        return 25;\n      case 40:\n        return 26;\n      case 41:\n        return 27;\n      case 42:\n        return 28;\n      case 43:\n        return 29;\n      case 44:\n        return 30;\n      case 45:\n        return 21;\n      case 51:\n        return 88;\n      case 52:\n        return 86;\n      case 53:\n        return 92;\n      case 54:\n        return 94;\n      case 55:\n        return 93;\n      case 56:\n        return 0;\n      // missing\n      case 57:\n        return 85;\n      case 58:\n        return 95;\n      case 59:\n        return 91;\n      case 60:\n        return 87;\n      case 61:\n        return 89;\n      case 62:\n        return 90;\n      case 106:\n        return 97;\n    }\n    return 0;\n  }\n  static _toKeyCodeChord(chord) {\n    if (!chord) {\n      return null;\n    }\n    if (chord instanceof KeyCodeChord) {\n      return chord;\n    }\n    const keyCode = this._scanCodeToKeyCode(chord.scanCode);\n    if (keyCode === 0) {\n      return null;\n    }\n    return new KeyCodeChord(chord.ctrlKey, chord.shiftKey, chord.altKey, chord.metaKey, keyCode);\n  }\n  static resolveKeybinding(keybinding, os) {\n    const chords = toEmptyArrayIfContainsNull(keybinding.chords.map((chord) =\u003e this._toKeyCodeChord(chord)));\n    if (chords.length \u003e 0) {\n      return [new _USLayoutResolvedKeybinding(chords, os)];\n    }\n    return [];\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_telemetry();\ninit_standaloneStrings();\ninit_resources();\ninit_codeEditorService();\ninit_log();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languageService.js\ninit_event();\ninit_lifecycle();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languagesRegistry.js\ninit_event();\ninit_lifecycle();\ninit_strings();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languagesAssociations.js\ninit_mime();\ninit_network();\ninit_path();\ninit_resources();\ninit_strings();\ninit_modesRegistry();\nvar registeredAssociations = [];\nvar nonUserRegisteredAssociations = [];\nvar userRegisteredAssociations = [];\nfunction registerPlatformLanguageAssociation(association, warnOnOverwrite = false) {\n  _registerLanguageAssociation(association, false, warnOnOverwrite);\n}\nfunction _registerLanguageAssociation(association, userConfigured, warnOnOverwrite) {\n  const associationItem = toLanguageAssociationItem(association, userConfigured);\n  registeredAssociations.push(associationItem);\n  if (!associationItem.userConfigured) {\n    nonUserRegisteredAssociations.push(associationItem);\n  } else {\n    userRegisteredAssociations.push(associationItem);\n  }\n  if (warnOnOverwrite \u0026\u0026 !associationItem.userConfigured) {\n    registeredAssociations.forEach((a) =\u003e {\n      if (a.mime === associationItem.mime || a.userConfigured) {\n        return;\n      }\n      if (associationItem.extension \u0026\u0026 a.extension === associationItem.extension) {\n        console.warn(`Overwriting extension \u003c\u003c${associationItem.extension}\u003e\u003e to now point to mime \u003c\u003c${associationItem.mime}\u003e\u003e`);\n      }\n      if (associationItem.filename \u0026\u0026 a.filename === associationItem.filename) {\n        console.warn(`Overwriting filename \u003c\u003c${associationItem.filename}\u003e\u003e to now point to mime \u003c\u003c${associationItem.mime}\u003e\u003e`);\n      }\n      if (associationItem.filepattern \u0026\u0026 a.filepattern === associationItem.filepattern) {\n        console.warn(`Overwriting filepattern \u003c\u003c${associationItem.filepattern}\u003e\u003e to now point to mime \u003c\u003c${associationItem.mime}\u003e\u003e`);\n      }\n      if (associationItem.firstline \u0026\u0026 a.firstline === associationItem.firstline) {\n        console.warn(`Overwriting firstline \u003c\u003c${associationItem.firstline}\u003e\u003e to now point to mime \u003c\u003c${associationItem.mime}\u003e\u003e`);\n      }\n    });\n  }\n}\nfunction toLanguageAssociationItem(association, userConfigured) {\n  return {\n    id: association.id,\n    mime: association.mime,\n    filename: association.filename,\n    extension: association.extension,\n    filepattern: association.filepattern,\n    firstline: association.firstline,\n    userConfigured,\n    filenameLowercase: association.filename ? association.filename.toLowerCase() : void 0,\n    extensionLowercase: association.extension ? association.extension.toLowerCase() : void 0,\n    filepatternLowercase: association.filepattern ? parse3(association.filepattern.toLowerCase()) : void 0,\n    filepatternOnPath: association.filepattern ? association.filepattern.indexOf(posix.sep) \u003e= 0 : false\n  };\n}\nfunction clearPlatformLanguageAssociations() {\n  registeredAssociations = registeredAssociations.filter((a) =\u003e a.userConfigured);\n  nonUserRegisteredAssociations = [];\n}\nfunction getLanguageIds(resource, firstLine) {\n  return getAssociations(resource, firstLine).map((item) =\u003e item.id);\n}\nfunction getAssociations(resource, firstLine) {\n  let path;\n  if (resource) {\n    switch (resource.scheme) {\n      case Schemas.file:\n        path = resource.fsPath;\n        break;\n      case Schemas.data: {\n        const metadata = DataUri.parseMetaData(resource);\n        path = metadata.get(DataUri.META_DATA_LABEL);\n        break;\n      }\n      case Schemas.vscodeNotebookCell:\n        path = void 0;\n        break;\n      default:\n        path = resource.path;\n    }\n  }\n  if (!path) {\n    return [{ id: \"unknown\", mime: Mimes.unknown }];\n  }\n  path = path.toLowerCase();\n  const filename = basename(path);\n  const configuredLanguage = getAssociationByPath(path, filename, userRegisteredAssociations);\n  if (configuredLanguage) {\n    return [configuredLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n  }\n  const registeredLanguage = getAssociationByPath(path, filename, nonUserRegisteredAssociations);\n  if (registeredLanguage) {\n    return [registeredLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n  }\n  if (firstLine) {\n    const firstlineLanguage = getAssociationByFirstline(firstLine);\n    if (firstlineLanguage) {\n      return [firstlineLanguage, { id: PLAINTEXT_LANGUAGE_ID, mime: Mimes.text }];\n    }\n  }\n  return [{ id: \"unknown\", mime: Mimes.unknown }];\n}\nfunction getAssociationByPath(path, filename, associations) {\n  let filenameMatch = void 0;\n  let patternMatch = void 0;\n  let extensionMatch = void 0;\n  for (let i2 = associations.length - 1; i2 \u003e= 0; i2--) {\n    const association = associations[i2];\n    if (filename === association.filenameLowercase) {\n      filenameMatch = association;\n      break;\n    }\n    if (association.filepattern) {\n      if (!patternMatch || association.filepattern.length \u003e patternMatch.filepattern.length) {\n        const target = association.filepatternOnPath ? path : filename;\n        if (association.filepatternLowercase?.(target)) {\n          patternMatch = association;\n        }\n      }\n    }\n    if (association.extension) {\n      if (!extensionMatch || association.extension.length \u003e extensionMatch.extension.length) {\n        if (filename.endsWith(association.extensionLowercase)) {\n          extensionMatch = association;\n        }\n      }\n    }\n  }\n  if (filenameMatch) {\n    return filenameMatch;\n  }\n  if (patternMatch) {\n    return patternMatch;\n  }\n  if (extensionMatch) {\n    return extensionMatch;\n  }\n  return void 0;\n}\nfunction getAssociationByFirstline(firstLine) {\n  if (startsWithUTF8BOM(firstLine)) {\n    firstLine = firstLine.substr(1);\n  }\n  if (firstLine.length \u003e 0) {\n    for (let i2 = registeredAssociations.length - 1; i2 \u003e= 0; i2--) {\n      const association = registeredAssociations[i2];\n      if (!association.firstline) {\n        continue;\n      }\n      const matches = firstLine.match(association.firstline);\n      if (matches \u0026\u0026 matches.length \u003e 0) {\n        return association;\n      }\n    }\n  }\n  return void 0;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languagesRegistry.js\ninit_modesRegistry();\ninit_configurationRegistry();\ninit_platform2();\nvar hasOwnProperty2 = Object.prototype.hasOwnProperty;\nvar NULL_LANGUAGE_ID = \"vs.editor.nullLanguage\";\nvar LanguageIdCodec = class {\n  constructor() {\n    this._languageIdToLanguage = [];\n    this._languageToLanguageId = /* @__PURE__ */ new Map();\n    this._register(\n      NULL_LANGUAGE_ID,\n      0\n      /* LanguageId.Null */\n    );\n    this._register(\n      PLAINTEXT_LANGUAGE_ID,\n      1\n      /* LanguageId.PlainText */\n    );\n    this._nextLanguageId = 2;\n  }\n  _register(language2, languageId) {\n    this._languageIdToLanguage[languageId] = language2;\n    this._languageToLanguageId.set(language2, languageId);\n  }\n  register(language2) {\n    if (this._languageToLanguageId.has(language2)) {\n      return;\n    }\n    const languageId = this._nextLanguageId++;\n    this._register(language2, languageId);\n  }\n  encodeLanguageId(languageId) {\n    return this._languageToLanguageId.get(languageId) || 0;\n  }\n  decodeLanguageId(languageId) {\n    return this._languageIdToLanguage[languageId] || NULL_LANGUAGE_ID;\n  }\n};\nvar LanguagesRegistry = class _LanguagesRegistry extends Disposable {\n  static {\n    this.instanceCount = 0;\n  }\n  constructor(useModesRegistry = true, warnOnOverwrite = false) {\n    super();\n    this._onDidChange = this._register(new Emitter());\n    this.onDidChange = this._onDidChange.event;\n    _LanguagesRegistry.instanceCount++;\n    this._warnOnOverwrite = warnOnOverwrite;\n    this.languageIdCodec = new LanguageIdCodec();\n    this._dynamicLanguages = [];\n    this._languages = {};\n    this._mimeTypesMap = {};\n    this._nameMap = {};\n    this._lowercaseNameMap = {};\n    if (useModesRegistry) {\n      this._initializeFromRegistry();\n      this._register(ModesRegistry.onDidChangeLanguages((m) =\u003e {\n        this._initializeFromRegistry();\n      }));\n    }\n  }\n  dispose() {\n    _LanguagesRegistry.instanceCount--;\n    super.dispose();\n  }\n  _initializeFromRegistry() {\n    this._languages = {};\n    this._mimeTypesMap = {};\n    this._nameMap = {};\n    this._lowercaseNameMap = {};\n    clearPlatformLanguageAssociations();\n    const desc = [].concat(ModesRegistry.getLanguages()).concat(this._dynamicLanguages);\n    this._registerLanguages(desc);\n  }\n  _registerLanguages(desc) {\n    for (const d of desc) {\n      this._registerLanguage(d);\n    }\n    this._mimeTypesMap = {};\n    this._nameMap = {};\n    this._lowercaseNameMap = {};\n    Object.keys(this._languages).forEach((langId) =\u003e {\n      const language2 = this._languages[langId];\n      if (language2.name) {\n        this._nameMap[language2.name] = language2.identifier;\n      }\n      language2.aliases.forEach((alias) =\u003e {\n        this._lowercaseNameMap[alias.toLowerCase()] = language2.identifier;\n      });\n      language2.mimetypes.forEach((mimetype) =\u003e {\n        this._mimeTypesMap[mimetype] = language2.identifier;\n      });\n    });\n    Registry.as(Extensions4.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds());\n    this._onDidChange.fire();\n  }\n  _registerLanguage(lang) {\n    const langId = lang.id;\n    let resolvedLanguage;\n    if (hasOwnProperty2.call(this._languages, langId)) {\n      resolvedLanguage = this._languages[langId];\n    } else {\n      this.languageIdCodec.register(langId);\n      resolvedLanguage = {\n        identifier: langId,\n        name: null,\n        mimetypes: [],\n        aliases: [],\n        extensions: [],\n        filenames: [],\n        configurationFiles: [],\n        icons: []\n      };\n      this._languages[langId] = resolvedLanguage;\n    }\n    this._mergeLanguage(resolvedLanguage, lang);\n  }\n  _mergeLanguage(resolvedLanguage, lang) {\n    const langId = lang.id;\n    let primaryMime = null;\n    if (Array.isArray(lang.mimetypes) \u0026\u0026 lang.mimetypes.length \u003e 0) {\n      resolvedLanguage.mimetypes.push(...lang.mimetypes);\n      primaryMime = lang.mimetypes[0];\n    }\n    if (!primaryMime) {\n      primaryMime = `text/x-${langId}`;\n      resolvedLanguage.mimetypes.push(primaryMime);\n    }\n    if (Array.isArray(lang.extensions)) {\n      if (lang.configuration) {\n        resolvedLanguage.extensions = lang.extensions.concat(resolvedLanguage.extensions);\n      } else {\n        resolvedLanguage.extensions = resolvedLanguage.extensions.concat(lang.extensions);\n      }\n      for (const extension of lang.extensions) {\n        registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, extension }, this._warnOnOverwrite);\n      }\n    }\n    if (Array.isArray(lang.filenames)) {\n      for (const filename of lang.filenames) {\n        registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, filename }, this._warnOnOverwrite);\n        resolvedLanguage.filenames.push(filename);\n      }\n    }\n    if (Array.isArray(lang.filenamePatterns)) {\n      for (const filenamePattern of lang.filenamePatterns) {\n        registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, filepattern: filenamePattern }, this._warnOnOverwrite);\n      }\n    }\n    if (typeof lang.firstLine === \"string\" \u0026\u0026 lang.firstLine.length \u003e 0) {\n      let firstLineRegexStr = lang.firstLine;\n      if (firstLineRegexStr.charAt(0) !== \"^\") {\n        firstLineRegexStr = \"^\" + firstLineRegexStr;\n      }\n      try {\n        const firstLineRegex = new RegExp(firstLineRegexStr);\n        if (!regExpLeadsToEndlessLoop(firstLineRegex)) {\n          registerPlatformLanguageAssociation({ id: langId, mime: primaryMime, firstline: firstLineRegex }, this._warnOnOverwrite);\n        }\n      } catch (err) {\n        console.warn(`[${lang.id}]: Invalid regular expression \\`${firstLineRegexStr}\\`: `, err);\n      }\n    }\n    resolvedLanguage.aliases.push(langId);\n    let langAliases = null;\n    if (typeof lang.aliases !== \"undefined\" \u0026\u0026 Array.isArray(lang.aliases)) {\n      if (lang.aliases.length === 0) {\n        langAliases = [null];\n      } else {\n        langAliases = lang.aliases;\n      }\n    }\n    if (langAliases !== null) {\n      for (const langAlias of langAliases) {\n        if (!langAlias || langAlias.length === 0) {\n          continue;\n        }\n        resolvedLanguage.aliases.push(langAlias);\n      }\n    }\n    const containsAliases = langAliases !== null \u0026\u0026 langAliases.length \u003e 0;\n    if (containsAliases \u0026\u0026 langAliases[0] === null) {\n    } else {\n      const bestName = (containsAliases ? langAliases[0] : null) || langId;\n      if (containsAliases || !resolvedLanguage.name) {\n        resolvedLanguage.name = bestName;\n      }\n    }\n    if (lang.configuration) {\n      resolvedLanguage.configurationFiles.push(lang.configuration);\n    }\n    if (lang.icon) {\n      resolvedLanguage.icons.push(lang.icon);\n    }\n  }\n  isRegisteredLanguageId(languageId) {\n    if (!languageId) {\n      return false;\n    }\n    return hasOwnProperty2.call(this._languages, languageId);\n  }\n  getRegisteredLanguageIds() {\n    return Object.keys(this._languages);\n  }\n  getLanguageIdByLanguageName(languageName) {\n    const languageNameLower = languageName.toLowerCase();\n    if (!hasOwnProperty2.call(this._lowercaseNameMap, languageNameLower)) {\n      return null;\n    }\n    return this._lowercaseNameMap[languageNameLower];\n  }\n  getLanguageIdByMimeType(mimeType) {\n    if (!mimeType) {\n      return null;\n    }\n    if (hasOwnProperty2.call(this._mimeTypesMap, mimeType)) {\n      return this._mimeTypesMap[mimeType];\n    }\n    return null;\n  }\n  guessLanguageIdByFilepathOrFirstLine(resource, firstLine) {\n    if (!resource \u0026\u0026 !firstLine) {\n      return [];\n    }\n    return getLanguageIds(resource, firstLine);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/languageService.js\ninit_languages();\ninit_modesRegistry();\ninit_observable();\nvar LanguageService = class _LanguageService extends Disposable {\n  static {\n    this.instanceCount = 0;\n  }\n  constructor(warnOnOverwrite = false) {\n    super();\n    this._onDidRequestBasicLanguageFeatures = this._register(new Emitter());\n    this.onDidRequestBasicLanguageFeatures = this._onDidRequestBasicLanguageFeatures.event;\n    this._onDidRequestRichLanguageFeatures = this._register(new Emitter());\n    this.onDidRequestRichLanguageFeatures = this._onDidRequestRichLanguageFeatures.event;\n    this._onDidChange = this._register(new Emitter({\n      leakWarningThreshold: 200\n      /* https://github.com/microsoft/vscode/issues/119968 */\n    }));\n    this.onDidChange = this._onDidChange.event;\n    this._requestedBasicLanguages = /* @__PURE__ */ new Set();\n    this._requestedRichLanguages = /* @__PURE__ */ new Set();\n    _LanguageService.instanceCount++;\n    this._registry = this._register(new LanguagesRegistry(true, warnOnOverwrite));\n    this.languageIdCodec = this._registry.languageIdCodec;\n    this._register(this._registry.onDidChange(() =\u003e this._onDidChange.fire()));\n  }\n  dispose() {\n    _LanguageService.instanceCount--;\n    super.dispose();\n  }\n  isRegisteredLanguageId(languageId) {\n    return this._registry.isRegisteredLanguageId(languageId);\n  }\n  getLanguageIdByLanguageName(languageName) {\n    return this._registry.getLanguageIdByLanguageName(languageName);\n  }\n  getLanguageIdByMimeType(mimeType) {\n    return this._registry.getLanguageIdByMimeType(mimeType);\n  }\n  guessLanguageIdByFilepathOrFirstLine(resource, firstLine) {\n    const languageIds = this._registry.guessLanguageIdByFilepathOrFirstLine(resource, firstLine);\n    return languageIds.at(0) ?? null;\n  }\n  createById(languageId) {\n    return new LanguageSelection(this.onDidChange, () =\u003e {\n      return this._createAndGetLanguageIdentifier(languageId);\n    });\n  }\n  createByFilepathOrFirstLine(resource, firstLine) {\n    return new LanguageSelection(this.onDidChange, () =\u003e {\n      const languageId = this.guessLanguageIdByFilepathOrFirstLine(resource, firstLine);\n      return this._createAndGetLanguageIdentifier(languageId);\n    });\n  }\n  _createAndGetLanguageIdentifier(languageId) {\n    if (!languageId || !this.isRegisteredLanguageId(languageId)) {\n      languageId = PLAINTEXT_LANGUAGE_ID;\n    }\n    return languageId;\n  }\n  requestBasicLanguageFeatures(languageId) {\n    if (!this._requestedBasicLanguages.has(languageId)) {\n      this._requestedBasicLanguages.add(languageId);\n      this._onDidRequestBasicLanguageFeatures.fire(languageId);\n    }\n  }\n  requestRichLanguageFeatures(languageId) {\n    if (!this._requestedRichLanguages.has(languageId)) {\n      this._requestedRichLanguages.add(languageId);\n      this.requestBasicLanguageFeatures(languageId);\n      TokenizationRegistry2.getOrCreate(languageId);\n      this._onDidRequestRichLanguageFeatures.fire(languageId);\n    }\n  }\n};\nvar LanguageSelection = class {\n  constructor(onDidChangeLanguages, selector) {\n    this._value = observableFromEvent(this, onDidChangeLanguages, () =\u003e selector());\n    this.onDidChange = Event.fromObservable(this._value);\n  }\n  get languageId() {\n    return this._value.get();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextview/browser/contextMenuService.js\ninit_dom();\ninit_actions();\ninit_event();\ninit_lifecycle();\ninit_actions2();\ninit_contextkey();\ninit_telemetry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextview/browser/contextMenuHandler.js\ninit_dom();\ninit_mouseEvent();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/menu/menu.js\ninit_browser();\ninit_dom();\ninit_keyboardEvent();\ninit_mouseEvent();\ninit_actions();\ninit_async();\ninit_codicons();\ninit_codiconsUtil();\ninit_themables();\ninit_iconLabels();\ninit_lifecycle();\ninit_platform();\ninit_strings();\nvar MENU_MNEMONIC_REGEX = /\\(\u0026([^\\s\u0026])\\)|(^|[^\u0026])\u0026([^\\s\u0026])/;\nvar MENU_ESCAPED_MNEMONIC_REGEX = /(\u0026amp;)?(\u0026amp;)([^\\s\u0026])/g;\nvar HorizontalDirection;\n(function(HorizontalDirection2) {\n  HorizontalDirection2[HorizontalDirection2[\"Right\"] = 0] = \"Right\";\n  HorizontalDirection2[HorizontalDirection2[\"Left\"] = 1] = \"Left\";\n})(HorizontalDirection || (HorizontalDirection = {}));\nvar VerticalDirection;\n(function(VerticalDirection2) {\n  VerticalDirection2[VerticalDirection2[\"Above\"] = 0] = \"Above\";\n  VerticalDirection2[VerticalDirection2[\"Below\"] = 1] = \"Below\";\n})(VerticalDirection || (VerticalDirection = {}));\nvar Menu = class _Menu extends ActionBar {\n  constructor(container, actions, options2, menuStyles) {\n    container.classList.add(\"monaco-menu-container\");\n    container.setAttribute(\"role\", \"presentation\");\n    const menuElement = document.createElement(\"div\");\n    menuElement.classList.add(\"monaco-menu\");\n    menuElement.setAttribute(\"role\", \"presentation\");\n    super(menuElement, {\n      orientation: 1,\n      actionViewItemProvider: (action) =\u003e this.doGetActionViewItem(action, options2, parentData),\n      context: options2.context,\n      actionRunner: options2.actionRunner,\n      ariaLabel: options2.ariaLabel,\n      ariaRole: \"menu\",\n      focusOnlyEnabledItems: true,\n      triggerKeys: { keys: [3, ...isMacintosh || isLinux ? [\n        10\n        /* KeyCode.Space */\n      ] : []], keyDown: true }\n    });\n    this.menuStyles = menuStyles;\n    this.menuElement = menuElement;\n    this.actionsList.tabIndex = 0;\n    this.initializeOrUpdateStyleSheet(container, menuStyles);\n    this._register(Gesture.addTarget(menuElement));\n    this._register(addDisposableListener(menuElement, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      if (event.equals(\n        2\n        /* KeyCode.Tab */\n      )) {\n        e.preventDefault();\n      }\n    }));\n    if (options2.enableMnemonics) {\n      this._register(addDisposableListener(menuElement, EventType.KEY_DOWN, (e) =\u003e {\n        const key = e.key.toLocaleLowerCase();\n        if (this.mnemonics.has(key)) {\n          EventHelper.stop(e, true);\n          const actions2 = this.mnemonics.get(key);\n          if (actions2.length === 1) {\n            if (actions2[0] instanceof SubmenuMenuActionViewItem \u0026\u0026 actions2[0].container) {\n              this.focusItemByElement(actions2[0].container);\n            }\n            actions2[0].onClick(e);\n          }\n          if (actions2.length \u003e 1) {\n            const action = actions2.shift();\n            if (action \u0026\u0026 action.container) {\n              this.focusItemByElement(action.container);\n              actions2.push(action);\n            }\n            this.mnemonics.set(key, actions2);\n          }\n        }\n      }));\n    }\n    if (isLinux) {\n      this._register(addDisposableListener(menuElement, EventType.KEY_DOWN, (e) =\u003e {\n        const event = new StandardKeyboardEvent(e);\n        if (event.equals(\n          14\n          /* KeyCode.Home */\n        ) || event.equals(\n          11\n          /* KeyCode.PageUp */\n        )) {\n          this.focusedItem = this.viewItems.length - 1;\n          this.focusNext();\n          EventHelper.stop(e, true);\n        } else if (event.equals(\n          13\n          /* KeyCode.End */\n        ) || event.equals(\n          12\n          /* KeyCode.PageDown */\n        )) {\n          this.focusedItem = 0;\n          this.focusPrevious();\n          EventHelper.stop(e, true);\n        }\n      }));\n    }\n    this._register(addDisposableListener(this.domNode, EventType.MOUSE_OUT, (e) =\u003e {\n      const relatedTarget = e.relatedTarget;\n      if (!isAncestor(relatedTarget, this.domNode)) {\n        this.focusedItem = void 0;\n        this.updateFocus();\n        e.stopPropagation();\n      }\n    }));\n    this._register(addDisposableListener(this.actionsList, EventType.MOUSE_OVER, (e) =\u003e {\n      let target = e.target;\n      if (!target || !isAncestor(target, this.actionsList) || target === this.actionsList) {\n        return;\n      }\n      while (target.parentElement !== this.actionsList \u0026\u0026 target.parentElement !== null) {\n        target = target.parentElement;\n      }\n      if (target.classList.contains(\"action-item\")) {\n        const lastFocusedItem = this.focusedItem;\n        this.setFocusedItem(target);\n        if (lastFocusedItem !== this.focusedItem) {\n          this.updateFocus();\n        }\n      }\n    }));\n    this._register(Gesture.addTarget(this.actionsList));\n    this._register(addDisposableListener(this.actionsList, EventType2.Tap, (e) =\u003e {\n      let target = e.initialTarget;\n      if (!target || !isAncestor(target, this.actionsList) || target === this.actionsList) {\n        return;\n      }\n      while (target.parentElement !== this.actionsList \u0026\u0026 target.parentElement !== null) {\n        target = target.parentElement;\n      }\n      if (target.classList.contains(\"action-item\")) {\n        const lastFocusedItem = this.focusedItem;\n        this.setFocusedItem(target);\n        if (lastFocusedItem !== this.focusedItem) {\n          this.updateFocus();\n        }\n      }\n    }));\n    const parentData = {\n      parent: this\n    };\n    this.mnemonics = /* @__PURE__ */ new Map();\n    this.scrollableElement = this._register(new DomScrollableElement(menuElement, {\n      alwaysConsumeMouseWheel: true,\n      horizontal: 2,\n      vertical: 3,\n      verticalScrollbarSize: 7,\n      handleMouseWheel: true,\n      useShadows: true\n    }));\n    const scrollElement = this.scrollableElement.getDomNode();\n    scrollElement.style.position = \"\";\n    this.styleScrollElement(scrollElement, menuStyles);\n    this._register(addDisposableListener(menuElement, EventType2.Change, (e) =\u003e {\n      EventHelper.stop(e, true);\n      const scrollTop = this.scrollableElement.getScrollPosition().scrollTop;\n      this.scrollableElement.setScrollPosition({ scrollTop: scrollTop - e.translationY });\n    }));\n    this._register(addDisposableListener(scrollElement, EventType.MOUSE_UP, (e) =\u003e {\n      e.preventDefault();\n    }));\n    const window2 = getWindow(container);\n    menuElement.style.maxHeight = `${Math.max(10, window2.innerHeight - container.getBoundingClientRect().top - 35)}px`;\n    actions = actions.filter((a, idx) =\u003e {\n      if (options2.submenuIds?.has(a.id)) {\n        console.warn(`Found submenu cycle: ${a.id}`);\n        return false;\n      }\n      if (a instanceof Separator) {\n        if (idx === actions.length - 1 || idx === 0) {\n          return false;\n        }\n        const prevAction = actions[idx - 1];\n        if (prevAction instanceof Separator) {\n          return false;\n        }\n      }\n      return true;\n    });\n    this.push(actions, { icon: true, label: true, isMenu: true });\n    container.appendChild(this.scrollableElement.getDomNode());\n    this.scrollableElement.scanDomNode();\n    this.viewItems.filter((item) =\u003e !(item instanceof MenuSeparatorActionViewItem)).forEach((item, index, array2) =\u003e {\n      item.updatePositionInSet(index + 1, array2.length);\n    });\n  }\n  initializeOrUpdateStyleSheet(container, style) {\n    if (!this.styleSheet) {\n      if (isInShadowDOM(container)) {\n        this.styleSheet = createStyleSheet(container);\n      } else {\n        if (!_Menu.globalStyleSheet) {\n          _Menu.globalStyleSheet = createStyleSheet();\n        }\n        this.styleSheet = _Menu.globalStyleSheet;\n      }\n    }\n    this.styleSheet.textContent = getMenuWidgetCSS(style, isInShadowDOM(container));\n  }\n  styleScrollElement(scrollElement, style) {\n    const fgColor = style.foregroundColor ?? \"\";\n    const bgColor = style.backgroundColor ?? \"\";\n    const border = style.borderColor ? `1px solid ${style.borderColor}` : \"\";\n    const borderRadius = \"5px\";\n    const shadow = style.shadowColor ? `0 2px 8px ${style.shadowColor}` : \"\";\n    scrollElement.style.outline = border;\n    scrollElement.style.borderRadius = borderRadius;\n    scrollElement.style.color = fgColor;\n    scrollElement.style.backgroundColor = bgColor;\n    scrollElement.style.boxShadow = shadow;\n  }\n  getContainer() {\n    return this.scrollableElement.getDomNode();\n  }\n  get onScroll() {\n    return this.scrollableElement.onScroll;\n  }\n  focusItemByElement(element) {\n    const lastFocusedItem = this.focusedItem;\n    this.setFocusedItem(element);\n    if (lastFocusedItem !== this.focusedItem) {\n      this.updateFocus();\n    }\n  }\n  setFocusedItem(element) {\n    for (let i2 = 0; i2 \u003c this.actionsList.children.length; i2++) {\n      const elem = this.actionsList.children[i2];\n      if (element === elem) {\n        this.focusedItem = i2;\n        break;\n      }\n    }\n  }\n  updateFocus(fromRight) {\n    super.updateFocus(fromRight, true, true);\n    if (typeof this.focusedItem !== \"undefined\") {\n      this.scrollableElement.setScrollPosition({\n        scrollTop: Math.round(this.menuElement.scrollTop)\n      });\n    }\n  }\n  doGetActionViewItem(action, options2, parentData) {\n    if (action instanceof Separator) {\n      return new MenuSeparatorActionViewItem(options2.context, action, { icon: true }, this.menuStyles);\n    } else if (action instanceof SubmenuAction) {\n      const menuActionViewItem = new SubmenuMenuActionViewItem(action, action.actions, parentData, { ...options2, submenuIds: /* @__PURE__ */ new Set([...options2.submenuIds || [], action.id]) }, this.menuStyles);\n      if (options2.enableMnemonics) {\n        const mnemonic = menuActionViewItem.getMnemonic();\n        if (mnemonic \u0026\u0026 menuActionViewItem.isEnabled()) {\n          let actionViewItems = [];\n          if (this.mnemonics.has(mnemonic)) {\n            actionViewItems = this.mnemonics.get(mnemonic);\n          }\n          actionViewItems.push(menuActionViewItem);\n          this.mnemonics.set(mnemonic, actionViewItems);\n        }\n      }\n      return menuActionViewItem;\n    } else {\n      const keybindingLabel = options2.getKeyBinding?.(action)?.getLabel();\n      const menuItemOptions = {\n        enableMnemonics: options2.enableMnemonics,\n        useEventAsContext: options2.useEventAsContext,\n        keybinding: keybindingLabel\n      };\n      const menuActionViewItem = new BaseMenuActionViewItem(options2.context, action, menuItemOptions, this.menuStyles);\n      if (options2.enableMnemonics) {\n        const mnemonic = menuActionViewItem.getMnemonic();\n        if (mnemonic \u0026\u0026 menuActionViewItem.isEnabled()) {\n          let actionViewItems = [];\n          if (this.mnemonics.has(mnemonic)) {\n            actionViewItems = this.mnemonics.get(mnemonic);\n          }\n          actionViewItems.push(menuActionViewItem);\n          this.mnemonics.set(mnemonic, actionViewItems);\n        }\n      }\n      return menuActionViewItem;\n    }\n  }\n};\nvar BaseMenuActionViewItem = class extends BaseActionViewItem {\n  constructor(ctx, action, options2, menuStyle) {\n    options2 = {\n      ...options2,\n      isMenu: true,\n      icon: options2.icon !== void 0 ? options2.icon : false,\n      label: options2.label !== void 0 ? options2.label : true\n    };\n    super(action, action, options2);\n    this.menuStyle = menuStyle;\n    this.options = options2;\n    this.cssClass = \"\";\n    if (this.options.label \u0026\u0026 options2.enableMnemonics) {\n      const label = this.action.label;\n      if (label) {\n        const matches = MENU_MNEMONIC_REGEX.exec(label);\n        if (matches) {\n          this.mnemonic = (!!matches[1] ? matches[1] : matches[3]).toLocaleLowerCase();\n        }\n      }\n    }\n    this.runOnceToEnableMouseUp = new RunOnceScheduler(() =\u003e {\n      if (!this.element) {\n        return;\n      }\n      this._register(addDisposableListener(this.element, EventType.MOUSE_UP, (e) =\u003e {\n        EventHelper.stop(e, true);\n        if (isFirefox) {\n          const mouseEvent = new StandardMouseEvent(getWindow(this.element), e);\n          if (mouseEvent.rightButton) {\n            return;\n          }\n          this.onClick(e);\n        } else {\n          setTimeout(() =\u003e {\n            this.onClick(e);\n          }, 0);\n        }\n      }));\n      this._register(addDisposableListener(this.element, EventType.CONTEXT_MENU, (e) =\u003e {\n        EventHelper.stop(e, true);\n      }));\n    }, 100);\n    this._register(this.runOnceToEnableMouseUp);\n  }\n  render(container) {\n    super.render(container);\n    if (!this.element) {\n      return;\n    }\n    this.container = container;\n    this.item = append(this.element, $(\"a.action-menu-item\"));\n    if (this._action.id === Separator.ID) {\n      this.item.setAttribute(\"role\", \"presentation\");\n    } else {\n      this.item.setAttribute(\"role\", \"menuitem\");\n      if (this.mnemonic) {\n        this.item.setAttribute(\"aria-keyshortcuts\", `${this.mnemonic}`);\n      }\n    }\n    this.check = append(this.item, $(\"span.menu-item-check\" + ThemeIcon.asCSSSelector(Codicon.menuSelection)));\n    this.check.setAttribute(\"role\", \"none\");\n    this.label = append(this.item, $(\"span.action-label\"));\n    if (this.options.label \u0026\u0026 this.options.keybinding) {\n      append(this.item, $(\"span.keybinding\")).textContent = this.options.keybinding;\n    }\n    this.runOnceToEnableMouseUp.schedule();\n    this.updateClass();\n    this.updateLabel();\n    this.updateTooltip();\n    this.updateEnabled();\n    this.updateChecked();\n    this.applyStyle();\n  }\n  blur() {\n    super.blur();\n    this.applyStyle();\n  }\n  focus() {\n    super.focus();\n    this.item?.focus();\n    this.applyStyle();\n  }\n  updatePositionInSet(pos, setSize) {\n    if (this.item) {\n      this.item.setAttribute(\"aria-posinset\", `${pos}`);\n      this.item.setAttribute(\"aria-setsize\", `${setSize}`);\n    }\n  }\n  updateLabel() {\n    if (!this.label) {\n      return;\n    }\n    if (this.options.label) {\n      clearNode(this.label);\n      let label = stripIcons(this.action.label);\n      if (label) {\n        const cleanLabel = cleanMnemonic(label);\n        if (!this.options.enableMnemonics) {\n          label = cleanLabel;\n        }\n        this.label.setAttribute(\"aria-label\", cleanLabel.replace(/\u0026\u0026/g, \"\u0026\"));\n        const matches = MENU_MNEMONIC_REGEX.exec(label);\n        if (matches) {\n          label = escape(label);\n          MENU_ESCAPED_MNEMONIC_REGEX.lastIndex = 0;\n          let escMatch = MENU_ESCAPED_MNEMONIC_REGEX.exec(label);\n          while (escMatch \u0026\u0026 escMatch[1]) {\n            escMatch = MENU_ESCAPED_MNEMONIC_REGEX.exec(label);\n          }\n          const replaceDoubleEscapes = (str) =\u003e str.replace(/\u0026amp;\u0026amp;/g, \"\u0026amp;\");\n          if (escMatch) {\n            this.label.append(ltrim(replaceDoubleEscapes(label.substr(0, escMatch.index)), \" \"), $(\"u\", { \"aria-hidden\": \"true\" }, escMatch[3]), rtrim(replaceDoubleEscapes(label.substr(escMatch.index + escMatch[0].length)), \" \"));\n          } else {\n            this.label.textContent = replaceDoubleEscapes(label).trim();\n          }\n          this.item?.setAttribute(\"aria-keyshortcuts\", (!!matches[1] ? matches[1] : matches[3]).toLocaleLowerCase());\n        } else {\n          this.label.textContent = label.replace(/\u0026\u0026/g, \"\u0026\").trim();\n        }\n      }\n    }\n  }\n  updateTooltip() {\n  }\n  updateClass() {\n    if (this.cssClass \u0026\u0026 this.item) {\n      this.item.classList.remove(...this.cssClass.split(\" \"));\n    }\n    if (this.options.icon \u0026\u0026 this.label) {\n      this.cssClass = this.action.class || \"\";\n      this.label.classList.add(\"icon\");\n      if (this.cssClass) {\n        this.label.classList.add(...this.cssClass.split(\" \"));\n      }\n      this.updateEnabled();\n    } else if (this.label) {\n      this.label.classList.remove(\"icon\");\n    }\n  }\n  updateEnabled() {\n    if (this.action.enabled) {\n      if (this.element) {\n        this.element.classList.remove(\"disabled\");\n        this.element.removeAttribute(\"aria-disabled\");\n      }\n      if (this.item) {\n        this.item.classList.remove(\"disabled\");\n        this.item.removeAttribute(\"aria-disabled\");\n        this.item.tabIndex = 0;\n      }\n    } else {\n      if (this.element) {\n        this.element.classList.add(\"disabled\");\n        this.element.setAttribute(\"aria-disabled\", \"true\");\n      }\n      if (this.item) {\n        this.item.classList.add(\"disabled\");\n        this.item.setAttribute(\"aria-disabled\", \"true\");\n      }\n    }\n  }\n  updateChecked() {\n    if (!this.item) {\n      return;\n    }\n    const checked = this.action.checked;\n    this.item.classList.toggle(\"checked\", !!checked);\n    if (checked !== void 0) {\n      this.item.setAttribute(\"role\", \"menuitemcheckbox\");\n      this.item.setAttribute(\"aria-checked\", checked ? \"true\" : \"false\");\n    } else {\n      this.item.setAttribute(\"role\", \"menuitem\");\n      this.item.setAttribute(\"aria-checked\", \"\");\n    }\n  }\n  getMnemonic() {\n    return this.mnemonic;\n  }\n  applyStyle() {\n    const isSelected = this.element \u0026\u0026 this.element.classList.contains(\"focused\");\n    const fgColor = isSelected \u0026\u0026 this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor;\n    const bgColor = isSelected \u0026\u0026 this.menuStyle.selectionBackgroundColor ? this.menuStyle.selectionBackgroundColor : void 0;\n    const outline = isSelected \u0026\u0026 this.menuStyle.selectionBorderColor ? `1px solid ${this.menuStyle.selectionBorderColor}` : \"\";\n    const outlineOffset = isSelected \u0026\u0026 this.menuStyle.selectionBorderColor ? `-1px` : \"\";\n    if (this.item) {\n      this.item.style.color = fgColor ?? \"\";\n      this.item.style.backgroundColor = bgColor ?? \"\";\n      this.item.style.outline = outline;\n      this.item.style.outlineOffset = outlineOffset;\n    }\n    if (this.check) {\n      this.check.style.color = fgColor ?? \"\";\n    }\n  }\n};\nvar SubmenuMenuActionViewItem = class extends BaseMenuActionViewItem {\n  constructor(action, submenuActions, parentData, submenuOptions, menuStyles) {\n    super(action, action, submenuOptions, menuStyles);\n    this.submenuActions = submenuActions;\n    this.parentData = parentData;\n    this.submenuOptions = submenuOptions;\n    this.mysubmenu = null;\n    this.submenuDisposables = this._register(new DisposableStore());\n    this.mouseOver = false;\n    this.expandDirection = submenuOptions \u0026\u0026 submenuOptions.expandDirection !== void 0 ? submenuOptions.expandDirection : { horizontal: HorizontalDirection.Right, vertical: VerticalDirection.Below };\n    this.showScheduler = new RunOnceScheduler(() =\u003e {\n      if (this.mouseOver) {\n        this.cleanupExistingSubmenu(false);\n        this.createSubmenu(false);\n      }\n    }, 250);\n    this.hideScheduler = new RunOnceScheduler(() =\u003e {\n      if (this.element \u0026\u0026 (!isAncestor(getActiveElement(), this.element) \u0026\u0026 this.parentData.submenu === this.mysubmenu)) {\n        this.parentData.parent.focus(false);\n        this.cleanupExistingSubmenu(true);\n      }\n    }, 750);\n  }\n  render(container) {\n    super.render(container);\n    if (!this.element) {\n      return;\n    }\n    if (this.item) {\n      this.item.classList.add(\"monaco-submenu-item\");\n      this.item.tabIndex = 0;\n      this.item.setAttribute(\"aria-haspopup\", \"true\");\n      this.updateAriaExpanded(\"false\");\n      this.submenuIndicator = append(this.item, $(\"span.submenu-indicator\" + ThemeIcon.asCSSSelector(Codicon.menuSubmenu)));\n      this.submenuIndicator.setAttribute(\"aria-hidden\", \"true\");\n    }\n    this._register(addDisposableListener(this.element, EventType.KEY_UP, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      if (event.equals(\n        17\n        /* KeyCode.RightArrow */\n      ) || event.equals(\n        3\n        /* KeyCode.Enter */\n      )) {\n        EventHelper.stop(e, true);\n        this.createSubmenu(true);\n      }\n    }));\n    this._register(addDisposableListener(this.element, EventType.KEY_DOWN, (e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      if (getActiveElement() === this.item) {\n        if (event.equals(\n          17\n          /* KeyCode.RightArrow */\n        ) || event.equals(\n          3\n          /* KeyCode.Enter */\n        )) {\n          EventHelper.stop(e, true);\n        }\n      }\n    }));\n    this._register(addDisposableListener(this.element, EventType.MOUSE_OVER, (e) =\u003e {\n      if (!this.mouseOver) {\n        this.mouseOver = true;\n        this.showScheduler.schedule();\n      }\n    }));\n    this._register(addDisposableListener(this.element, EventType.MOUSE_LEAVE, (e) =\u003e {\n      this.mouseOver = false;\n    }));\n    this._register(addDisposableListener(this.element, EventType.FOCUS_OUT, (e) =\u003e {\n      if (this.element \u0026\u0026 !isAncestor(getActiveElement(), this.element)) {\n        this.hideScheduler.schedule();\n      }\n    }));\n    this._register(this.parentData.parent.onScroll(() =\u003e {\n      if (this.parentData.submenu === this.mysubmenu) {\n        this.parentData.parent.focus(false);\n        this.cleanupExistingSubmenu(true);\n      }\n    }));\n  }\n  updateEnabled() {\n  }\n  onClick(e) {\n    EventHelper.stop(e, true);\n    this.cleanupExistingSubmenu(false);\n    this.createSubmenu(true);\n  }\n  cleanupExistingSubmenu(force) {\n    if (this.parentData.submenu \u0026\u0026 (force || this.parentData.submenu !== this.mysubmenu)) {\n      try {\n        this.parentData.submenu.dispose();\n      } catch {\n      }\n      this.parentData.submenu = void 0;\n      this.updateAriaExpanded(\"false\");\n      if (this.submenuContainer) {\n        this.submenuDisposables.clear();\n        this.submenuContainer = void 0;\n      }\n    }\n  }\n  calculateSubmenuMenuLayout(windowDimensions, submenu, entry, expandDirection) {\n    const ret = { top: 0, left: 0 };\n    ret.left = layout(windowDimensions.width, submenu.width, { position: expandDirection.horizontal === HorizontalDirection.Right ? 0 : 1, offset: entry.left, size: entry.width });\n    if (ret.left \u003e= entry.left \u0026\u0026 ret.left \u003c entry.left + entry.width) {\n      if (entry.left + 10 + submenu.width \u003c= windowDimensions.width) {\n        ret.left = entry.left + 10;\n      }\n      entry.top += 10;\n      entry.height = 0;\n    }\n    ret.top = layout(windowDimensions.height, submenu.height, { position: 0, offset: entry.top, size: 0 });\n    if (ret.top + submenu.height === entry.top \u0026\u0026 ret.top + entry.height + submenu.height \u003c= windowDimensions.height) {\n      ret.top += entry.height;\n    }\n    return ret;\n  }\n  createSubmenu(selectFirstItem = true) {\n    if (!this.element) {\n      return;\n    }\n    if (!this.parentData.submenu) {\n      this.updateAriaExpanded(\"true\");\n      this.submenuContainer = append(this.element, $(\"div.monaco-submenu\"));\n      this.submenuContainer.classList.add(\"menubar-menu-items-holder\", \"context-view\");\n      const computedStyles = getWindow(this.parentData.parent.domNode).getComputedStyle(this.parentData.parent.domNode);\n      const paddingTop = parseFloat(computedStyles.paddingTop || \"0\") || 0;\n      this.submenuContainer.style.position = \"fixed\";\n      this.submenuContainer.style.top = \"0\";\n      this.submenuContainer.style.left = \"0\";\n      this.parentData.submenu = new Menu(this.submenuContainer, this.submenuActions.length ? this.submenuActions : [new EmptySubmenuAction()], this.submenuOptions, this.menuStyle);\n      const entryBox = this.element.getBoundingClientRect();\n      const entryBoxUpdated = {\n        top: entryBox.top - paddingTop,\n        left: entryBox.left,\n        height: entryBox.height + 2 * paddingTop,\n        width: entryBox.width\n      };\n      const viewBox = this.submenuContainer.getBoundingClientRect();\n      const window2 = getWindow(this.element);\n      const { top, left } = this.calculateSubmenuMenuLayout(new Dimension(window2.innerWidth, window2.innerHeight), Dimension.lift(viewBox), entryBoxUpdated, this.expandDirection);\n      this.submenuContainer.style.left = `${left - viewBox.left}px`;\n      this.submenuContainer.style.top = `${top - viewBox.top}px`;\n      this.submenuDisposables.add(addDisposableListener(this.submenuContainer, EventType.KEY_UP, (e) =\u003e {\n        const event = new StandardKeyboardEvent(e);\n        if (event.equals(\n          15\n          /* KeyCode.LeftArrow */\n        )) {\n          EventHelper.stop(e, true);\n          this.parentData.parent.focus();\n          this.cleanupExistingSubmenu(true);\n        }\n      }));\n      this.submenuDisposables.add(addDisposableListener(this.submenuContainer, EventType.KEY_DOWN, (e) =\u003e {\n        const event = new StandardKeyboardEvent(e);\n        if (event.equals(\n          15\n          /* KeyCode.LeftArrow */\n        )) {\n          EventHelper.stop(e, true);\n        }\n      }));\n      this.submenuDisposables.add(this.parentData.submenu.onDidCancel(() =\u003e {\n        this.parentData.parent.focus();\n        this.cleanupExistingSubmenu(true);\n      }));\n      this.parentData.submenu.focus(selectFirstItem);\n      this.mysubmenu = this.parentData.submenu;\n    } else {\n      this.parentData.submenu.focus(false);\n    }\n  }\n  updateAriaExpanded(value) {\n    if (this.item) {\n      this.item?.setAttribute(\"aria-expanded\", value);\n    }\n  }\n  applyStyle() {\n    super.applyStyle();\n    const isSelected = this.element \u0026\u0026 this.element.classList.contains(\"focused\");\n    const fgColor = isSelected \u0026\u0026 this.menuStyle.selectionForegroundColor ? this.menuStyle.selectionForegroundColor : this.menuStyle.foregroundColor;\n    if (this.submenuIndicator) {\n      this.submenuIndicator.style.color = fgColor ?? \"\";\n    }\n  }\n  dispose() {\n    super.dispose();\n    this.hideScheduler.dispose();\n    if (this.mysubmenu) {\n      this.mysubmenu.dispose();\n      this.mysubmenu = null;\n    }\n    if (this.submenuContainer) {\n      this.submenuContainer = void 0;\n    }\n  }\n};\nvar MenuSeparatorActionViewItem = class extends ActionViewItem {\n  constructor(context, action, options2, menuStyles) {\n    super(context, action, options2);\n    this.menuStyles = menuStyles;\n  }\n  render(container) {\n    super.render(container);\n    if (this.label) {\n      this.label.style.borderBottomColor = this.menuStyles.separatorColor ? `${this.menuStyles.separatorColor}` : \"\";\n    }\n  }\n};\nfunction cleanMnemonic(label) {\n  const regex = MENU_MNEMONIC_REGEX;\n  const matches = regex.exec(label);\n  if (!matches) {\n    return label;\n  }\n  const mnemonicInText = !matches[1];\n  return label.replace(regex, mnemonicInText ? \"$2$3\" : \"\").trim();\n}\nfunction formatRule(c) {\n  const fontCharacter = getCodiconFontCharacters()[c.id];\n  return `.codicon-${c.id}:before { content: '\\\\${fontCharacter.toString(16)}'; }`;\n}\nfunction getMenuWidgetCSS(style, isForShadowDom) {\n  let result = (\n    /* css */\n    `\n.monaco-menu {\n\tfont-size: 13px;\n\tborder-radius: 5px;\n\tmin-width: 160px;\n}\n\n${formatRule(Codicon.menuSelection)}\n${formatRule(Codicon.menuSubmenu)}\n\n.monaco-menu .monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\ttransition: transform 50ms ease;\n\tposition: relative;  /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n\tcolor: var(--vscode-disabledForeground);\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid var(--vscode-menu-separatorBackground);\n\tpadding-top: 1px;\n\tpadding: 30px;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tmargin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\ttransform: none;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\tflex: 1 1 auto;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n\tposition: relative;\n\tmargin: 0 4px;\n\tborder-radius: 4px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding {\n\topacity: unset;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n\topacity: 0.7;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n\tfont-size: 16px !important;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n\tmargin-left: auto;\n\tmargin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\tbox-sizing: border-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tposition: static;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n\tposition: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\twidth: 100%;\n\theight: 0px !important;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tposition: absolute;\n\tvisibility: hidden;\n\twidth: 1em;\n\theight: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n\tvisibility: visible;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\toutline: 0;\n\tborder: none;\n\tanimation: fadeIn 0.083s linear;\n\t-webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.hc-black .context-view.monaco-menu-container,\n.hc-light .context-view.monaco-menu-container,\n:host-context(.hc-black) .context-view.monaco-menu-container,\n:host-context(.hc-light) .context-view.monaco-menu-container {\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n\tpadding: 4px 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\theight: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n\tfont-size: inherit;\n\tpadding: 0 2em;\n\tmax-height: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n\tfont-size: inherit;\n\twidth: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tfont-size: inherit;\n\tmargin: 5px 0 !important;\n\tpadding: 0;\n\tborder-radius: 0;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tfont-size: 60%;\n\tpadding: 0 1.8em;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\theight: 100%;\n\tmask-size: 10px 10px;\n\t-webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n\tcursor: default;\n}`\n  );\n  if (isForShadowDom) {\n    result += `\n\t\t\t/* Arrows */\n\t\t\t.monaco-scrollable-element \u003e .scrollbar \u003e .scra {\n\t\t\t\tcursor: pointer;\n\t\t\t\tfont-size: 11px !important;\n\t\t\t}\n\n\t\t\t.monaco-scrollable-element \u003e .visible {\n\t\t\t\topacity: 1;\n\n\t\t\t\t/* Background rule added for IE9 - to allow clicks on dom node */\n\t\t\t\tbackground:rgba(0,0,0,0);\n\n\t\t\t\ttransition: opacity 100ms linear;\n\t\t\t}\n\t\t\t.monaco-scrollable-element \u003e .invisible {\n\t\t\t\topacity: 0;\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element \u003e .invisible.fade {\n\t\t\t\ttransition: opacity 800ms linear;\n\t\t\t}\n\n\t\t\t/* Scrollable Content Inset Shadow */\n\t\t\t.monaco-scrollable-element \u003e .shadow {\n\t\t\t\tposition: absolute;\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t\t.monaco-scrollable-element \u003e .shadow.top {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 3px;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t\t.monaco-scrollable-element \u003e .shadow.left {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 3px;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t\t.monaco-scrollable-element \u003e .shadow.top-left-corner {\n\t\t\t\tdisplay: block;\n\t\t\t\ttop: 0;\n\t\t\t\tleft: 0;\n\t\t\t\theight: 3px;\n\t\t\t\twidth: 3px;\n\t\t\t}\n\t\t\t/* Fix for https://github.com/microsoft/vscode/issues/103170 */\n\t\t\t.monaco-menu .action-item .monaco-submenu {\n\t\t\t\tz-index: 1;\n\t\t\t}\n\t\t`;\n    const scrollbarShadowColor = style.scrollbarShadow;\n    if (scrollbarShadowColor) {\n      result += `\n\t\t\t\t.monaco-scrollable-element \u003e .shadow.top {\n\t\t\t\t\tbox-shadow: ${scrollbarShadowColor} 0 6px 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element \u003e .shadow.left {\n\t\t\t\t\tbox-shadow: ${scrollbarShadowColor} 6px 0 6px -6px inset;\n\t\t\t\t}\n\n\t\t\t\t.monaco-scrollable-element \u003e .shadow.top.left {\n\t\t\t\t\tbox-shadow: ${scrollbarShadowColor} 6px 6px 6px -6px inset;\n\t\t\t\t}\n\t\t\t`;\n    }\n    const scrollbarSliderBackgroundColor = style.scrollbarSliderBackground;\n    if (scrollbarSliderBackgroundColor) {\n      result += `\n\t\t\t\t.monaco-scrollable-element \u003e .scrollbar \u003e .slider {\n\t\t\t\t\tbackground: ${scrollbarSliderBackgroundColor};\n\t\t\t\t}\n\t\t\t`;\n    }\n    const scrollbarSliderHoverBackgroundColor = style.scrollbarSliderHoverBackground;\n    if (scrollbarSliderHoverBackgroundColor) {\n      result += `\n\t\t\t\t.monaco-scrollable-element \u003e .scrollbar \u003e .slider:hover {\n\t\t\t\t\tbackground: ${scrollbarSliderHoverBackgroundColor};\n\t\t\t\t}\n\t\t\t`;\n    }\n    const scrollbarSliderActiveBackgroundColor = style.scrollbarSliderActiveBackground;\n    if (scrollbarSliderActiveBackgroundColor) {\n      result += `\n\t\t\t\t.monaco-scrollable-element \u003e .scrollbar \u003e .slider.active {\n\t\t\t\t\tbackground: ${scrollbarSliderActiveBackgroundColor};\n\t\t\t\t}\n\t\t\t`;\n    }\n  }\n  return result;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextview/browser/contextMenuHandler.js\ninit_actions();\ninit_errors();\ninit_lifecycle();\nvar ContextMenuHandler = class {\n  constructor(contextViewService, telemetryService, notificationService, keybindingService) {\n    this.contextViewService = contextViewService;\n    this.telemetryService = telemetryService;\n    this.notificationService = notificationService;\n    this.keybindingService = keybindingService;\n    this.focusToReturn = null;\n    this.lastContainer = null;\n    this.block = null;\n    this.blockDisposable = null;\n    this.options = { blockMouse: true };\n  }\n  configure(options2) {\n    this.options = options2;\n  }\n  showContextMenu(delegate) {\n    const actions = delegate.getActions();\n    if (!actions.length) {\n      return;\n    }\n    this.focusToReturn = getActiveElement();\n    let menu;\n    const shadowRootElement = isHTMLElement(delegate.domForShadowRoot) ? delegate.domForShadowRoot : void 0;\n    this.contextViewService.showContextView({\n      getAnchor: () =\u003e delegate.getAnchor(),\n      canRelayout: false,\n      anchorAlignment: delegate.anchorAlignment,\n      anchorAxisAlignment: delegate.anchorAxisAlignment,\n      layer: delegate.layer,\n      render: (container) =\u003e {\n        this.lastContainer = container;\n        const className2 = delegate.getMenuClassName ? delegate.getMenuClassName() : \"\";\n        if (className2) {\n          container.className += \" \" + className2;\n        }\n        if (this.options.blockMouse) {\n          this.block = container.appendChild($(\".context-view-block\"));\n          this.block.style.position = \"fixed\";\n          this.block.style.cursor = \"initial\";\n          this.block.style.left = \"0\";\n          this.block.style.top = \"0\";\n          this.block.style.width = \"100%\";\n          this.block.style.height = \"100%\";\n          this.block.style.zIndex = \"-1\";\n          this.blockDisposable?.dispose();\n          this.blockDisposable = addDisposableListener(this.block, EventType.MOUSE_DOWN, (e) =\u003e e.stopPropagation());\n        }\n        const menuDisposables = new DisposableStore();\n        const actionRunner = delegate.actionRunner || menuDisposables.add(new ActionRunner());\n        actionRunner.onWillRun((evt) =\u003e this.onActionRun(evt, !delegate.skipTelemetry), this, menuDisposables);\n        actionRunner.onDidRun(this.onDidActionRun, this, menuDisposables);\n        menu = new Menu(container, actions, {\n          actionViewItemProvider: delegate.getActionViewItem,\n          context: delegate.getActionsContext ? delegate.getActionsContext() : null,\n          actionRunner,\n          getKeyBinding: delegate.getKeyBinding ? delegate.getKeyBinding : (action) =\u003e this.keybindingService.lookupKeybinding(action.id)\n        }, defaultMenuStyles);\n        menu.onDidCancel(() =\u003e this.contextViewService.hideContextView(true), null, menuDisposables);\n        menu.onDidBlur(() =\u003e this.contextViewService.hideContextView(true), null, menuDisposables);\n        const targetWindow = getWindow(container);\n        menuDisposables.add(addDisposableListener(targetWindow, EventType.BLUR, () =\u003e this.contextViewService.hideContextView(true)));\n        menuDisposables.add(addDisposableListener(targetWindow, EventType.MOUSE_DOWN, (e) =\u003e {\n          if (e.defaultPrevented) {\n            return;\n          }\n          const event = new StandardMouseEvent(targetWindow, e);\n          let element = event.target;\n          if (event.rightButton) {\n            return;\n          }\n          while (element) {\n            if (element === container) {\n              return;\n            }\n            element = element.parentElement;\n          }\n          this.contextViewService.hideContextView(true);\n        }));\n        return combinedDisposable(menuDisposables, menu);\n      },\n      focus: () =\u003e {\n        menu?.focus(!!delegate.autoSelectFirstItem);\n      },\n      onHide: (didCancel) =\u003e {\n        delegate.onHide?.(!!didCancel);\n        if (this.block) {\n          this.block.remove();\n          this.block = null;\n        }\n        this.blockDisposable?.dispose();\n        this.blockDisposable = null;\n        if (!!this.lastContainer \u0026\u0026 (getActiveElement() === this.lastContainer || isAncestor(getActiveElement(), this.lastContainer))) {\n          this.focusToReturn?.focus();\n        }\n        this.lastContainer = null;\n      }\n    }, shadowRootElement, !!shadowRootElement);\n  }\n  onActionRun(e, logTelemetry) {\n    if (logTelemetry) {\n      this.telemetryService.publicLog2(\"workbenchActionExecuted\", { id: e.action.id, from: \"contextMenu\" });\n    }\n    this.contextViewService.hideContextView(false);\n  }\n  onDidActionRun(e) {\n    if (e.error \u0026\u0026 !isCancellationError(e.error)) {\n      this.notificationService.error(e.error);\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextview/browser/contextMenuService.js\nvar __decorate173 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param167 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ContextMenuService = class ContextMenuService2 extends Disposable {\n  get contextMenuHandler() {\n    if (!this._contextMenuHandler) {\n      this._contextMenuHandler = new ContextMenuHandler(this.contextViewService, this.telemetryService, this.notificationService, this.keybindingService);\n    }\n    return this._contextMenuHandler;\n  }\n  constructor(telemetryService, notificationService, contextViewService, keybindingService, menuService, contextKeyService) {\n    super();\n    this.telemetryService = telemetryService;\n    this.notificationService = notificationService;\n    this.contextViewService = contextViewService;\n    this.keybindingService = keybindingService;\n    this.menuService = menuService;\n    this.contextKeyService = contextKeyService;\n    this._contextMenuHandler = void 0;\n    this._onDidShowContextMenu = this._store.add(new Emitter());\n    this.onDidShowContextMenu = this._onDidShowContextMenu.event;\n    this._onDidHideContextMenu = this._store.add(new Emitter());\n    this.onDidHideContextMenu = this._onDidHideContextMenu.event;\n  }\n  configure(options2) {\n    this.contextMenuHandler.configure(options2);\n  }\n  // ContextMenu\n  showContextMenu(delegate) {\n    delegate = ContextMenuMenuDelegate.transform(delegate, this.menuService, this.contextKeyService);\n    this.contextMenuHandler.showContextMenu({\n      ...delegate,\n      onHide: (didCancel) =\u003e {\n        delegate.onHide?.(didCancel);\n        this._onDidHideContextMenu.fire();\n      }\n    });\n    ModifierKeyEmitter.getInstance().resetKeyStatus();\n    this._onDidShowContextMenu.fire();\n  }\n};\nContextMenuService = __decorate173([\n  __param167(0, ITelemetryService),\n  __param167(1, INotificationService),\n  __param167(2, IContextViewService),\n  __param167(3, IKeybindingService),\n  __param167(4, IMenuService),\n  __param167(5, IContextKeyService)\n], ContextMenuService);\nvar ContextMenuMenuDelegate;\n(function(ContextMenuMenuDelegate2) {\n  function is(thing) {\n    return thing \u0026\u0026 thing.menuId instanceof MenuId;\n  }\n  function transform(delegate, menuService, globalContextKeyService) {\n    if (!is(delegate)) {\n      return delegate;\n    }\n    const { menuId, menuActionOptions, contextKeyService } = delegate;\n    return {\n      ...delegate,\n      getActions: () =\u003e {\n        let target = [];\n        if (menuId) {\n          const menu = menuService.getMenuActions(menuId, contextKeyService ?? globalContextKeyService, menuActionOptions);\n          target = getFlatContextMenuActions(menu);\n        }\n        if (!delegate.getActions) {\n          return target;\n        } else {\n          return Separator.join(delegate.getActions(), target);\n        }\n      }\n    };\n  }\n  ContextMenuMenuDelegate2.transform = transform;\n})(ContextMenuMenuDelegate || (ContextMenuMenuDelegate = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_extensions();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/openerService.js\ninit_dom();\ninit_window();\ninit_cancellation();\ninit_linkedList();\ninit_map();\ninit_network();\ninit_resources();\ninit_uri();\ninit_codeEditorService();\ninit_commands();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/editor/common/editor.js\nvar EditorOpenSource;\n(function(EditorOpenSource2) {\n  EditorOpenSource2[EditorOpenSource2[\"API\"] = 0] = \"API\";\n  EditorOpenSource2[EditorOpenSource2[\"USER\"] = 1] = \"USER\";\n})(EditorOpenSource || (EditorOpenSource = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/services/openerService.js\nvar __decorate174 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param168 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar CommandOpener = class CommandOpener2 {\n  constructor(_commandService) {\n    this._commandService = _commandService;\n  }\n  async open(target, options2) {\n    if (!matchesScheme(target, Schemas.command)) {\n      return false;\n    }\n    if (!options2?.allowCommands) {\n      return true;\n    }\n    if (typeof target === \"string\") {\n      target = URI.parse(target);\n    }\n    if (Array.isArray(options2.allowCommands)) {\n      if (!options2.allowCommands.includes(target.path)) {\n        return true;\n      }\n    }\n    let args = [];\n    try {\n      args = parse2(decodeURIComponent(target.query));\n    } catch {\n      try {\n        args = parse2(target.query);\n      } catch {\n      }\n    }\n    if (!Array.isArray(args)) {\n      args = [args];\n    }\n    await this._commandService.executeCommand(target.path, ...args);\n    return true;\n  }\n};\nCommandOpener = __decorate174([\n  __param168(0, ICommandService)\n], CommandOpener);\nvar EditorOpener = class EditorOpener2 {\n  constructor(_editorService) {\n    this._editorService = _editorService;\n  }\n  async open(target, options2) {\n    if (typeof target === \"string\") {\n      target = URI.parse(target);\n    }\n    const { selection, uri } = extractSelection(target);\n    target = uri;\n    if (target.scheme === Schemas.file) {\n      target = normalizePath(target);\n    }\n    await this._editorService.openCodeEditor({\n      resource: target,\n      options: {\n        selection,\n        source: options2?.fromUserGesture ? EditorOpenSource.USER : EditorOpenSource.API,\n        ...options2?.editorOptions\n      }\n    }, this._editorService.getFocusedCodeEditor(), options2?.openToSide);\n    return true;\n  }\n};\nEditorOpener = __decorate174([\n  __param168(0, ICodeEditorService)\n], EditorOpener);\nvar OpenerService = class OpenerService2 {\n  constructor(editorService, commandService) {\n    this._openers = new LinkedList();\n    this._validators = new LinkedList();\n    this._resolvers = new LinkedList();\n    this._resolvedUriTargets = new ResourceMap((uri) =\u003e uri.with({ path: null, fragment: null, query: null }).toString());\n    this._externalOpeners = new LinkedList();\n    this._defaultExternalOpener = {\n      openExternal: async (href) =\u003e {\n        if (matchesSomeScheme(href, Schemas.http, Schemas.https)) {\n          windowOpenNoOpener(href);\n        } else {\n          mainWindow.location.href = href;\n        }\n        return true;\n      }\n    };\n    this._openers.push({\n      open: async (target, options2) =\u003e {\n        if (options2?.openExternal || matchesSomeScheme(target, Schemas.mailto, Schemas.http, Schemas.https, Schemas.vsls)) {\n          await this._doOpenExternal(target, options2);\n          return true;\n        }\n        return false;\n      }\n    });\n    this._openers.push(new CommandOpener(commandService));\n    this._openers.push(new EditorOpener(editorService));\n  }\n  registerOpener(opener) {\n    const remove = this._openers.unshift(opener);\n    return { dispose: remove };\n  }\n  async open(target, options2) {\n    if (!options2?.skipValidation) {\n      const targetURI = typeof target === \"string\" ? URI.parse(target) : target;\n      const validationTarget = this._resolvedUriTargets.get(targetURI) ?? target;\n      for (const validator of this._validators) {\n        if (!await validator.shouldOpen(validationTarget, options2)) {\n          return false;\n        }\n      }\n    }\n    for (const opener of this._openers) {\n      const handled = await opener.open(target, options2);\n      if (handled) {\n        return true;\n      }\n    }\n    return false;\n  }\n  async resolveExternalUri(resource, options2) {\n    for (const resolver of this._resolvers) {\n      try {\n        const result = await resolver.resolveExternalUri(resource, options2);\n        if (result) {\n          if (!this._resolvedUriTargets.has(result.resolved)) {\n            this._resolvedUriTargets.set(result.resolved, resource);\n          }\n          return result;\n        }\n      } catch {\n      }\n    }\n    throw new Error(\"Could not resolve external URI: \" + resource.toString());\n  }\n  async _doOpenExternal(resource, options2) {\n    const uri = typeof resource === \"string\" ? URI.parse(resource) : resource;\n    let externalUri;\n    try {\n      externalUri = (await this.resolveExternalUri(uri, options2)).resolved;\n    } catch {\n      externalUri = uri;\n    }\n    let href;\n    if (typeof resource === \"string\" \u0026\u0026 uri.toString() === externalUri.toString()) {\n      href = resource;\n    } else {\n      href = encodeURI(externalUri.toString(true));\n    }\n    if (options2?.allowContributedOpeners) {\n      const preferredOpenerId = typeof options2?.allowContributedOpeners === \"string\" ? options2?.allowContributedOpeners : void 0;\n      for (const opener of this._externalOpeners) {\n        const didOpen = await opener.openExternal(href, {\n          sourceUri: uri,\n          preferredOpenerId\n        }, CancellationToken.None);\n        if (didOpen) {\n          return true;\n        }\n      }\n    }\n    return this._defaultExternalOpener.openExternal(href, { sourceUri: uri }, CancellationToken.None);\n  }\n  dispose() {\n    this._validators.clear();\n  }\n};\nOpenerService = __decorate174([\n  __param168(0, ICodeEditorService),\n  __param168(1, ICommandService)\n], OpenerService);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_editorWorker();\ninit_language();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/markerDecorationsService.js\ninit_lifecycle();\ninit_model2();\ninit_themeService();\ninit_editorColorRegistry();\ninit_model();\ninit_range();\ninit_network();\ninit_event();\ninit_colorRegistry();\ninit_map();\ninit_collections();\ninit_iterator();\nvar __decorate175 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param169 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MarkerDecorationsService = class MarkerDecorationsService2 extends Disposable {\n  constructor(modelService, _markerService) {\n    super();\n    this._markerService = _markerService;\n    this._onDidChangeMarker = this._register(new Emitter());\n    this._suppressedRanges = new ResourceMap();\n    this._markerDecorations = new ResourceMap();\n    modelService.getModels().forEach((model) =\u003e this._onModelAdded(model));\n    this._register(modelService.onModelAdded(this._onModelAdded, this));\n    this._register(modelService.onModelRemoved(this._onModelRemoved, this));\n    this._register(this._markerService.onMarkerChanged(this._handleMarkerChange, this));\n  }\n  dispose() {\n    super.dispose();\n    this._markerDecorations.forEach((value) =\u003e value.dispose());\n    this._markerDecorations.clear();\n  }\n  getMarker(uri, decoration3) {\n    const markerDecorations = this._markerDecorations.get(uri);\n    return markerDecorations ? markerDecorations.getMarker(decoration3) || null : null;\n  }\n  _handleMarkerChange(changedResources) {\n    changedResources.forEach((resource) =\u003e {\n      const markerDecorations = this._markerDecorations.get(resource);\n      if (markerDecorations) {\n        this._updateDecorations(markerDecorations);\n      }\n    });\n  }\n  _onModelAdded(model) {\n    const markerDecorations = new MarkerDecorations(model);\n    this._markerDecorations.set(model.uri, markerDecorations);\n    this._updateDecorations(markerDecorations);\n  }\n  _onModelRemoved(model) {\n    const markerDecorations = this._markerDecorations.get(model.uri);\n    if (markerDecorations) {\n      markerDecorations.dispose();\n      this._markerDecorations.delete(model.uri);\n    }\n    if (model.uri.scheme === Schemas.inMemory || model.uri.scheme === Schemas.internal || model.uri.scheme === Schemas.vscode) {\n      this._markerService?.read({ resource: model.uri }).map((marker) =\u003e marker.owner).forEach((owner) =\u003e this._markerService.remove(owner, [model.uri]));\n    }\n  }\n  _updateDecorations(markerDecorations) {\n    let markers = this._markerService.read({ resource: markerDecorations.model.uri, take: 500 });\n    const suppressedRanges = this._suppressedRanges.get(markerDecorations.model.uri);\n    if (suppressedRanges) {\n      markers = markers.filter((marker) =\u003e {\n        return !Iterable.some(suppressedRanges, (candidate) =\u003e Range.areIntersectingOrTouching(candidate, marker));\n      });\n    }\n    if (markerDecorations.update(markers)) {\n      this._onDidChangeMarker.fire(markerDecorations.model);\n    }\n  }\n};\nMarkerDecorationsService = __decorate175([\n  __param169(0, IModelService),\n  __param169(1, IMarkerService)\n], MarkerDecorationsService);\nvar MarkerDecorations = class extends Disposable {\n  constructor(model) {\n    super();\n    this.model = model;\n    this._map = new BidirectionalMap();\n    this._register(toDisposable(() =\u003e {\n      this.model.deltaDecorations([...this._map.values()], []);\n      this._map.clear();\n    }));\n  }\n  update(markers) {\n    const { added, removed } = diffSets(new Set(this._map.keys()), new Set(markers));\n    if (added.length === 0 \u0026\u0026 removed.length === 0) {\n      return false;\n    }\n    const oldIds = removed.map((marker) =\u003e this._map.get(marker));\n    const newDecorations = added.map((marker) =\u003e {\n      return {\n        range: this._createDecorationRange(this.model, marker),\n        options: this._createDecorationOption(marker)\n      };\n    });\n    const ids = this.model.deltaDecorations(oldIds, newDecorations);\n    for (const removedMarker of removed) {\n      this._map.delete(removedMarker);\n    }\n    for (let index = 0; index \u003c ids.length; index++) {\n      this._map.set(added[index], ids[index]);\n    }\n    return true;\n  }\n  getMarker(decoration3) {\n    return this._map.getKey(decoration3.id);\n  }\n  _createDecorationRange(model, rawMarker) {\n    let ret = Range.lift(rawMarker);\n    if (rawMarker.severity === MarkerSeverity.Hint \u0026\u0026 !this._hasMarkerTag(\n      rawMarker,\n      1\n      /* MarkerTag.Unnecessary */\n    ) \u0026\u0026 !this._hasMarkerTag(\n      rawMarker,\n      2\n      /* MarkerTag.Deprecated */\n    )) {\n      ret = ret.setEndPosition(ret.startLineNumber, ret.startColumn + 2);\n    }\n    ret = model.validateRange(ret);\n    if (ret.isEmpty()) {\n      const maxColumn = model.getLineLastNonWhitespaceColumn(ret.startLineNumber) || model.getLineMaxColumn(ret.startLineNumber);\n      if (maxColumn === 1 || ret.endColumn \u003e= maxColumn) {\n        return ret;\n      }\n      const word = model.getWordAtPosition(ret.getStartPosition());\n      if (word) {\n        ret = new Range(ret.startLineNumber, word.startColumn, ret.endLineNumber, word.endColumn);\n      }\n    } else if (rawMarker.endColumn === Number.MAX_VALUE \u0026\u0026 rawMarker.startColumn === 1 \u0026\u0026 ret.startLineNumber === ret.endLineNumber) {\n      const minColumn = model.getLineFirstNonWhitespaceColumn(rawMarker.startLineNumber);\n      if (minColumn \u003c ret.endColumn) {\n        ret = new Range(ret.startLineNumber, minColumn, ret.endLineNumber, ret.endColumn);\n        rawMarker.startColumn = minColumn;\n      }\n    }\n    return ret;\n  }\n  _createDecorationOption(marker) {\n    let className2;\n    let color = void 0;\n    let zIndex;\n    let inlineClassName = void 0;\n    let minimap;\n    switch (marker.severity) {\n      case MarkerSeverity.Hint:\n        if (this._hasMarkerTag(\n          marker,\n          2\n          /* MarkerTag.Deprecated */\n        )) {\n          className2 = void 0;\n        } else if (this._hasMarkerTag(\n          marker,\n          1\n          /* MarkerTag.Unnecessary */\n        )) {\n          className2 = \"squiggly-unnecessary\";\n        } else {\n          className2 = \"squiggly-hint\";\n        }\n        zIndex = 0;\n        break;\n      case MarkerSeverity.Info:\n        className2 = \"squiggly-info\";\n        color = themeColorFromId(overviewRulerInfo);\n        zIndex = 10;\n        minimap = {\n          color: themeColorFromId(minimapInfo),\n          position: 1\n          /* MinimapPosition.Inline */\n        };\n        break;\n      case MarkerSeverity.Warning:\n        className2 = \"squiggly-warning\";\n        color = themeColorFromId(overviewRulerWarning);\n        zIndex = 20;\n        minimap = {\n          color: themeColorFromId(minimapWarning),\n          position: 1\n          /* MinimapPosition.Inline */\n        };\n        break;\n      case MarkerSeverity.Error:\n      default:\n        className2 = \"squiggly-error\";\n        color = themeColorFromId(overviewRulerError);\n        zIndex = 30;\n        minimap = {\n          color: themeColorFromId(minimapError),\n          position: 1\n          /* MinimapPosition.Inline */\n        };\n        break;\n    }\n    if (marker.tags) {\n      if (marker.tags.indexOf(\n        1\n        /* MarkerTag.Unnecessary */\n      ) !== -1) {\n        inlineClassName = \"squiggly-inline-unnecessary\";\n      }\n      if (marker.tags.indexOf(\n        2\n        /* MarkerTag.Deprecated */\n      ) !== -1) {\n        inlineClassName = \"squiggly-inline-deprecated\";\n      }\n    }\n    return {\n      description: \"marker-decoration\",\n      stickiness: 1,\n      className: className2,\n      showIfCollapsed: true,\n      overviewRuler: {\n        color,\n        position: OverviewRulerLane.Right\n      },\n      minimap,\n      zIndex,\n      inlineClassName\n    };\n  }\n  _hasMarkerTag(marker, tag2) {\n    if (marker.tags) {\n      return marker.tags.indexOf(tag2) \u003e= 0;\n    }\n    return false;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/common/services/modelService.js\ninit_event();\ninit_lifecycle();\ninit_platform();\ninit_textModel();\ninit_textModelDefaults();\ninit_modesRegistry();\ninit_configuration();\ninit_undoRedo();\ninit_hash();\ninit_editStack();\ninit_network();\ninit_objects();\ninit_instantiation();\nvar __decorate176 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param170 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar ModelService_1;\nfunction MODEL_ID2(resource) {\n  return resource.toString();\n}\nvar ModelData2 = class {\n  constructor(model, onWillDispose, onDidChangeLanguage) {\n    this.model = model;\n    this._modelEventListeners = new DisposableStore();\n    this.model = model;\n    this._modelEventListeners.add(model.onWillDispose(() =\u003e onWillDispose(model)));\n    this._modelEventListeners.add(model.onDidChangeLanguage((e) =\u003e onDidChangeLanguage(model, e)));\n  }\n  dispose() {\n    this._modelEventListeners.dispose();\n  }\n};\nvar DEFAULT_EOL = isLinux || isMacintosh ? 1 : 2;\nvar DisposedModelInfo = class {\n  constructor(uri, initialUndoRedoSnapshot, time, sharesUndoRedoStack, heapSize, sha1, versionId, alternativeVersionId) {\n    this.uri = uri;\n    this.initialUndoRedoSnapshot = initialUndoRedoSnapshot;\n    this.time = time;\n    this.sharesUndoRedoStack = sharesUndoRedoStack;\n    this.heapSize = heapSize;\n    this.sha1 = sha1;\n    this.versionId = versionId;\n    this.alternativeVersionId = alternativeVersionId;\n  }\n};\nvar ModelService = class ModelService2 extends Disposable {\n  static {\n    ModelService_1 = this;\n  }\n  static {\n    this.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK = 20 * 1024 * 1024;\n  }\n  constructor(_configurationService, _resourcePropertiesService, _undoRedoService, _instantiationService) {\n    super();\n    this._configurationService = _configurationService;\n    this._resourcePropertiesService = _resourcePropertiesService;\n    this._undoRedoService = _undoRedoService;\n    this._instantiationService = _instantiationService;\n    this._onModelAdded = this._register(new Emitter());\n    this.onModelAdded = this._onModelAdded.event;\n    this._onModelRemoved = this._register(new Emitter());\n    this.onModelRemoved = this._onModelRemoved.event;\n    this._onModelModeChanged = this._register(new Emitter());\n    this.onModelLanguageChanged = this._onModelModeChanged.event;\n    this._modelCreationOptionsByLanguageAndResource = /* @__PURE__ */ Object.create(null);\n    this._models = {};\n    this._disposedModels = /* @__PURE__ */ new Map();\n    this._disposedModelsHeapSize = 0;\n    this._register(this._configurationService.onDidChangeConfiguration((e) =\u003e this._updateModelOptions(e)));\n    this._updateModelOptions(void 0);\n  }\n  static _readModelOptions(config, isForSimpleWidget) {\n    let tabSize = EDITOR_MODEL_DEFAULTS.tabSize;\n    if (config.editor \u0026\u0026 typeof config.editor.tabSize !== \"undefined\") {\n      const parsedTabSize = parseInt(config.editor.tabSize, 10);\n      if (!isNaN(parsedTabSize)) {\n        tabSize = parsedTabSize;\n      }\n      if (tabSize \u003c 1) {\n        tabSize = 1;\n      }\n    }\n    let indentSize = \"tabSize\";\n    if (config.editor \u0026\u0026 typeof config.editor.indentSize !== \"undefined\" \u0026\u0026 config.editor.indentSize !== \"tabSize\") {\n      const parsedIndentSize = parseInt(config.editor.indentSize, 10);\n      if (!isNaN(parsedIndentSize)) {\n        indentSize = Math.max(parsedIndentSize, 1);\n      }\n    }\n    let insertSpaces = EDITOR_MODEL_DEFAULTS.insertSpaces;\n    if (config.editor \u0026\u0026 typeof config.editor.insertSpaces !== \"undefined\") {\n      insertSpaces = config.editor.insertSpaces === \"false\" ? false : Boolean(config.editor.insertSpaces);\n    }\n    let newDefaultEOL = DEFAULT_EOL;\n    const eol = config.eol;\n    if (eol === \"\\r\\n\") {\n      newDefaultEOL = 2;\n    } else if (eol === \"\\n\") {\n      newDefaultEOL = 1;\n    }\n    let trimAutoWhitespace = EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;\n    if (config.editor \u0026\u0026 typeof config.editor.trimAutoWhitespace !== \"undefined\") {\n      trimAutoWhitespace = config.editor.trimAutoWhitespace === \"false\" ? false : Boolean(config.editor.trimAutoWhitespace);\n    }\n    let detectIndentation = EDITOR_MODEL_DEFAULTS.detectIndentation;\n    if (config.editor \u0026\u0026 typeof config.editor.detectIndentation !== \"undefined\") {\n      detectIndentation = config.editor.detectIndentation === \"false\" ? false : Boolean(config.editor.detectIndentation);\n    }\n    let largeFileOptimizations = EDITOR_MODEL_DEFAULTS.largeFileOptimizations;\n    if (config.editor \u0026\u0026 typeof config.editor.largeFileOptimizations !== \"undefined\") {\n      largeFileOptimizations = config.editor.largeFileOptimizations === \"false\" ? false : Boolean(config.editor.largeFileOptimizations);\n    }\n    let bracketPairColorizationOptions = EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;\n    if (config.editor?.bracketPairColorization \u0026\u0026 typeof config.editor.bracketPairColorization === \"object\") {\n      bracketPairColorizationOptions = {\n        enabled: !!config.editor.bracketPairColorization.enabled,\n        independentColorPoolPerBracketType: !!config.editor.bracketPairColorization.independentColorPoolPerBracketType\n      };\n    }\n    return {\n      isForSimpleWidget,\n      tabSize,\n      indentSize,\n      insertSpaces,\n      detectIndentation,\n      defaultEOL: newDefaultEOL,\n      trimAutoWhitespace,\n      largeFileOptimizations,\n      bracketPairColorizationOptions\n    };\n  }\n  _getEOL(resource, language2) {\n    if (resource) {\n      return this._resourcePropertiesService.getEOL(resource, language2);\n    }\n    const eol = this._configurationService.getValue(\"files.eol\", { overrideIdentifier: language2 });\n    if (eol \u0026\u0026 typeof eol === \"string\" \u0026\u0026 eol !== \"auto\") {\n      return eol;\n    }\n    return OS === 3 || OS === 2 ? \"\\n\" : \"\\r\\n\";\n  }\n  _shouldRestoreUndoStack() {\n    const result = this._configurationService.getValue(\"files.restoreUndoStack\");\n    if (typeof result === \"boolean\") {\n      return result;\n    }\n    return true;\n  }\n  getCreationOptions(languageIdOrSelection, resource, isForSimpleWidget) {\n    const language2 = typeof languageIdOrSelection === \"string\" ? languageIdOrSelection : languageIdOrSelection.languageId;\n    let creationOptions = this._modelCreationOptionsByLanguageAndResource[language2 + resource];\n    if (!creationOptions) {\n      const editor2 = this._configurationService.getValue(\"editor\", { overrideIdentifier: language2, resource });\n      const eol = this._getEOL(resource, language2);\n      creationOptions = ModelService_1._readModelOptions({ editor: editor2, eol }, isForSimpleWidget);\n      this._modelCreationOptionsByLanguageAndResource[language2 + resource] = creationOptions;\n    }\n    return creationOptions;\n  }\n  _updateModelOptions(e) {\n    const oldOptionsByLanguageAndResource = this._modelCreationOptionsByLanguageAndResource;\n    this._modelCreationOptionsByLanguageAndResource = /* @__PURE__ */ Object.create(null);\n    const keys = Object.keys(this._models);\n    for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n      const modelId = keys[i2];\n      const modelData = this._models[modelId];\n      const language2 = modelData.model.getLanguageId();\n      const uri = modelData.model.uri;\n      if (e \u0026\u0026 !e.affectsConfiguration(\"editor\", { overrideIdentifier: language2, resource: uri }) \u0026\u0026 !e.affectsConfiguration(\"files.eol\", { overrideIdentifier: language2, resource: uri })) {\n        continue;\n      }\n      const oldOptions = oldOptionsByLanguageAndResource[language2 + uri];\n      const newOptions = this.getCreationOptions(language2, uri, modelData.model.isForSimpleWidget);\n      ModelService_1._setModelOptionsForModel(modelData.model, newOptions, oldOptions);\n    }\n  }\n  static _setModelOptionsForModel(model, newOptions, currentOptions) {\n    if (currentOptions \u0026\u0026 currentOptions.defaultEOL !== newOptions.defaultEOL \u0026\u0026 model.getLineCount() === 1) {\n      model.setEOL(\n        newOptions.defaultEOL === 1 ? 0 : 1\n        /* EndOfLineSequence.CRLF */\n      );\n    }\n    if (currentOptions \u0026\u0026 currentOptions.detectIndentation === newOptions.detectIndentation \u0026\u0026 currentOptions.insertSpaces === newOptions.insertSpaces \u0026\u0026 currentOptions.tabSize === newOptions.tabSize \u0026\u0026 currentOptions.indentSize === newOptions.indentSize \u0026\u0026 currentOptions.trimAutoWhitespace === newOptions.trimAutoWhitespace \u0026\u0026 equals2(currentOptions.bracketPairColorizationOptions, newOptions.bracketPairColorizationOptions)) {\n      return;\n    }\n    if (newOptions.detectIndentation) {\n      model.detectIndentation(newOptions.insertSpaces, newOptions.tabSize);\n      model.updateOptions({\n        trimAutoWhitespace: newOptions.trimAutoWhitespace,\n        bracketColorizationOptions: newOptions.bracketPairColorizationOptions\n      });\n    } else {\n      model.updateOptions({\n        insertSpaces: newOptions.insertSpaces,\n        tabSize: newOptions.tabSize,\n        indentSize: newOptions.indentSize,\n        trimAutoWhitespace: newOptions.trimAutoWhitespace,\n        bracketColorizationOptions: newOptions.bracketPairColorizationOptions\n      });\n    }\n  }\n  // --- begin IModelService\n  _insertDisposedModel(disposedModelData) {\n    this._disposedModels.set(MODEL_ID2(disposedModelData.uri), disposedModelData);\n    this._disposedModelsHeapSize += disposedModelData.heapSize;\n  }\n  _removeDisposedModel(resource) {\n    const disposedModelData = this._disposedModels.get(MODEL_ID2(resource));\n    if (disposedModelData) {\n      this._disposedModelsHeapSize -= disposedModelData.heapSize;\n    }\n    this._disposedModels.delete(MODEL_ID2(resource));\n    return disposedModelData;\n  }\n  _ensureDisposedModelsHeapSize(maxModelsHeapSize) {\n    if (this._disposedModelsHeapSize \u003e maxModelsHeapSize) {\n      const disposedModels = [];\n      this._disposedModels.forEach((entry) =\u003e {\n        if (!entry.sharesUndoRedoStack) {\n          disposedModels.push(entry);\n        }\n      });\n      disposedModels.sort((a, b) =\u003e a.time - b.time);\n      while (disposedModels.length \u003e 0 \u0026\u0026 this._disposedModelsHeapSize \u003e maxModelsHeapSize) {\n        const disposedModel = disposedModels.shift();\n        this._removeDisposedModel(disposedModel.uri);\n        if (disposedModel.initialUndoRedoSnapshot !== null) {\n          this._undoRedoService.restoreSnapshot(disposedModel.initialUndoRedoSnapshot);\n        }\n      }\n    }\n  }\n  _createModelData(value, languageIdOrSelection, resource, isForSimpleWidget) {\n    const options2 = this.getCreationOptions(languageIdOrSelection, resource, isForSimpleWidget);\n    const model = this._instantiationService.createInstance(TextModel, value, languageIdOrSelection, options2, resource);\n    if (resource \u0026\u0026 this._disposedModels.has(MODEL_ID2(resource))) {\n      const disposedModelData = this._removeDisposedModel(resource);\n      const elements = this._undoRedoService.getElements(resource);\n      const sha1Computer = this._getSHA1Computer();\n      const sha1IsEqual = sha1Computer.canComputeSHA1(model) ? sha1Computer.computeSHA1(model) === disposedModelData.sha1 : false;\n      if (sha1IsEqual || disposedModelData.sharesUndoRedoStack) {\n        for (const element of elements.past) {\n          if (isEditStackElement(element) \u0026\u0026 element.matchesResource(resource)) {\n            element.setModel(model);\n          }\n        }\n        for (const element of elements.future) {\n          if (isEditStackElement(element) \u0026\u0026 element.matchesResource(resource)) {\n            element.setModel(model);\n          }\n        }\n        this._undoRedoService.setElementsValidFlag(resource, true, (element) =\u003e isEditStackElement(element) \u0026\u0026 element.matchesResource(resource));\n        if (sha1IsEqual) {\n          model._overwriteVersionId(disposedModelData.versionId);\n          model._overwriteAlternativeVersionId(disposedModelData.alternativeVersionId);\n          model._overwriteInitialUndoRedoSnapshot(disposedModelData.initialUndoRedoSnapshot);\n        }\n      } else {\n        if (disposedModelData.initialUndoRedoSnapshot !== null) {\n          this._undoRedoService.restoreSnapshot(disposedModelData.initialUndoRedoSnapshot);\n        }\n      }\n    }\n    const modelId = MODEL_ID2(model.uri);\n    if (this._models[modelId]) {\n      throw new Error(\"ModelService: Cannot add model because it already exists!\");\n    }\n    const modelData = new ModelData2(model, (model2) =\u003e this._onWillDispose(model2), (model2, e) =\u003e this._onDidChangeLanguage(model2, e));\n    this._models[modelId] = modelData;\n    return modelData;\n  }\n  createModel(value, languageSelection, resource, isForSimpleWidget = false) {\n    let modelData;\n    if (languageSelection) {\n      modelData = this._createModelData(value, languageSelection, resource, isForSimpleWidget);\n    } else {\n      modelData = this._createModelData(value, PLAINTEXT_LANGUAGE_ID, resource, isForSimpleWidget);\n    }\n    this._onModelAdded.fire(modelData.model);\n    return modelData.model;\n  }\n  getModels() {\n    const ret = [];\n    const keys = Object.keys(this._models);\n    for (let i2 = 0, len = keys.length; i2 \u003c len; i2++) {\n      const modelId = keys[i2];\n      ret.push(this._models[modelId].model);\n    }\n    return ret;\n  }\n  getModel(resource) {\n    const modelId = MODEL_ID2(resource);\n    const modelData = this._models[modelId];\n    if (!modelData) {\n      return null;\n    }\n    return modelData.model;\n  }\n  // --- end IModelService\n  _schemaShouldMaintainUndoRedoElements(resource) {\n    return resource.scheme === Schemas.file || resource.scheme === Schemas.vscodeRemote || resource.scheme === Schemas.vscodeUserData || resource.scheme === Schemas.vscodeNotebookCell || resource.scheme === \"fake-fs\";\n  }\n  _onWillDispose(model) {\n    const modelId = MODEL_ID2(model.uri);\n    const modelData = this._models[modelId];\n    const sharesUndoRedoStack = this._undoRedoService.getUriComparisonKey(model.uri) !== model.uri.toString();\n    let maintainUndoRedoStack = false;\n    let heapSize = 0;\n    if (sharesUndoRedoStack || this._shouldRestoreUndoStack() \u0026\u0026 this._schemaShouldMaintainUndoRedoElements(model.uri)) {\n      const elements = this._undoRedoService.getElements(model.uri);\n      if (elements.past.length \u003e 0 || elements.future.length \u003e 0) {\n        for (const element of elements.past) {\n          if (isEditStackElement(element) \u0026\u0026 element.matchesResource(model.uri)) {\n            maintainUndoRedoStack = true;\n            heapSize += element.heapSize(model.uri);\n            element.setModel(model.uri);\n          }\n        }\n        for (const element of elements.future) {\n          if (isEditStackElement(element) \u0026\u0026 element.matchesResource(model.uri)) {\n            maintainUndoRedoStack = true;\n            heapSize += element.heapSize(model.uri);\n            element.setModel(model.uri);\n          }\n        }\n      }\n    }\n    const maxMemory = ModelService_1.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK;\n    const sha1Computer = this._getSHA1Computer();\n    if (!maintainUndoRedoStack) {\n      if (!sharesUndoRedoStack) {\n        const initialUndoRedoSnapshot = modelData.model.getInitialUndoRedoSnapshot();\n        if (initialUndoRedoSnapshot !== null) {\n          this._undoRedoService.restoreSnapshot(initialUndoRedoSnapshot);\n        }\n      }\n    } else if (!sharesUndoRedoStack \u0026\u0026 (heapSize \u003e maxMemory || !sha1Computer.canComputeSHA1(model))) {\n      const initialUndoRedoSnapshot = modelData.model.getInitialUndoRedoSnapshot();\n      if (initialUndoRedoSnapshot !== null) {\n        this._undoRedoService.restoreSnapshot(initialUndoRedoSnapshot);\n      }\n    } else {\n      this._ensureDisposedModelsHeapSize(maxMemory - heapSize);\n      this._undoRedoService.setElementsValidFlag(model.uri, false, (element) =\u003e isEditStackElement(element) \u0026\u0026 element.matchesResource(model.uri));\n      this._insertDisposedModel(new DisposedModelInfo(model.uri, modelData.model.getInitialUndoRedoSnapshot(), Date.now(), sharesUndoRedoStack, heapSize, sha1Computer.computeSHA1(model), model.getVersionId(), model.getAlternativeVersionId()));\n    }\n    delete this._models[modelId];\n    modelData.dispose();\n    delete this._modelCreationOptionsByLanguageAndResource[model.getLanguageId() + model.uri];\n    this._onModelRemoved.fire(model);\n  }\n  _onDidChangeLanguage(model, e) {\n    const oldLanguageId = e.oldLanguage;\n    const newLanguageId = model.getLanguageId();\n    const oldOptions = this.getCreationOptions(oldLanguageId, model.uri, model.isForSimpleWidget);\n    const newOptions = this.getCreationOptions(newLanguageId, model.uri, model.isForSimpleWidget);\n    ModelService_1._setModelOptionsForModel(model, newOptions, oldOptions);\n    this._onModelModeChanged.fire({ model, oldLanguageId });\n  }\n  _getSHA1Computer() {\n    return new DefaultModelSHA1Computer();\n  }\n};\nModelService = ModelService_1 = __decorate176([\n  __param170(0, IConfigurationService),\n  __param170(1, ITextResourcePropertiesService),\n  __param170(2, IUndoRedoService),\n  __param170(3, IInstantiationService)\n], ModelService);\nvar DefaultModelSHA1Computer = class _DefaultModelSHA1Computer {\n  static {\n    this.MAX_MODEL_SIZE = 10 * 1024 * 1024;\n  }\n  // takes 200ms to compute a sha1 on a 10MB model on a new machine\n  canComputeSHA1(model) {\n    return model.getValueLength() \u003c= _DefaultModelSHA1Computer.MAX_MODEL_SIZE;\n  }\n  computeSHA1(model) {\n    const shaComputer = new StringSHA1();\n    const snapshot = model.createSnapshot();\n    let text2;\n    while (text2 = snapshot.read()) {\n      shaComputer.update(text2);\n    }\n    return shaComputer.digest();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js\ninit_event();\ninit_editorExtensions();\ninit_themeService();\ninit_cancellation();\ninit_instantiation();\ninit_contextkey();\ninit_codeEditorService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputService.js\ninit_cancellation();\ninit_event();\ninit_contextkey();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickAccess.js\ninit_async();\ninit_cancellation();\ninit_event();\ninit_lifecycle();\ninit_instantiation();\ninit_platform2();\nvar __decorate177 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param171 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar QuickAccessController = class QuickAccessController2 extends Disposable {\n  constructor(quickInputService, instantiationService) {\n    super();\n    this.quickInputService = quickInputService;\n    this.instantiationService = instantiationService;\n    this.registry = Registry.as(Extensions10.Quickaccess);\n    this.mapProviderToDescriptor = /* @__PURE__ */ new Map();\n    this.lastAcceptedPickerValues = /* @__PURE__ */ new Map();\n    this.visibleQuickAccess = void 0;\n    this._register(toDisposable(() =\u003e {\n      for (const provider of this.mapProviderToDescriptor.values()) {\n        if (isDisposable(provider)) {\n          provider.dispose();\n        }\n      }\n      this.visibleQuickAccess?.picker.dispose();\n    }));\n  }\n  show(value = \"\", options2) {\n    this.doShowOrPick(value, false, options2);\n  }\n  doShowOrPick(value, pick, options2) {\n    const [provider, descriptor] = this.getOrInstantiateProvider(value, options2?.enabledProviderPrefixes);\n    const visibleQuickAccess = this.visibleQuickAccess;\n    const visibleDescriptor = visibleQuickAccess?.descriptor;\n    if (visibleQuickAccess \u0026\u0026 descriptor \u0026\u0026 visibleDescriptor === descriptor) {\n      if (value !== descriptor.prefix \u0026\u0026 !options2?.preserveValue) {\n        visibleQuickAccess.picker.value = value;\n      }\n      this.adjustValueSelection(visibleQuickAccess.picker, descriptor, options2);\n      return;\n    }\n    if (descriptor \u0026\u0026 !options2?.preserveValue) {\n      let newValue = void 0;\n      if (visibleQuickAccess \u0026\u0026 visibleDescriptor \u0026\u0026 visibleDescriptor !== descriptor) {\n        const newValueCandidateWithoutPrefix = visibleQuickAccess.value.substr(visibleDescriptor.prefix.length);\n        if (newValueCandidateWithoutPrefix) {\n          newValue = `${descriptor.prefix}${newValueCandidateWithoutPrefix}`;\n        }\n      }\n      if (!newValue) {\n        const defaultFilterValue = provider?.defaultFilterValue;\n        if (defaultFilterValue === DefaultQuickAccessFilterValue.LAST) {\n          newValue = this.lastAcceptedPickerValues.get(descriptor);\n        } else if (typeof defaultFilterValue === \"string\") {\n          newValue = `${descriptor.prefix}${defaultFilterValue}`;\n        }\n      }\n      if (typeof newValue === \"string\") {\n        value = newValue;\n      }\n    }\n    const visibleSelection = visibleQuickAccess?.picker?.valueSelection;\n    const visibleValue = visibleQuickAccess?.picker?.value;\n    const disposables = new DisposableStore();\n    const picker = disposables.add(this.quickInputService.createQuickPick({ useSeparators: true }));\n    picker.value = value;\n    this.adjustValueSelection(picker, descriptor, options2);\n    picker.placeholder = options2?.placeholder ?? descriptor?.placeholder;\n    picker.quickNavigate = options2?.quickNavigateConfiguration;\n    picker.hideInput = !!picker.quickNavigate \u0026\u0026 !visibleQuickAccess;\n    if (typeof options2?.itemActivation === \"number\" || options2?.quickNavigateConfiguration) {\n      picker.itemActivation = options2?.itemActivation ?? ItemActivation.SECOND;\n    }\n    picker.contextKey = descriptor?.contextKey;\n    picker.filterValue = (value2) =\u003e value2.substring(descriptor ? descriptor.prefix.length : 0);\n    let pickPromise = void 0;\n    if (pick) {\n      pickPromise = new DeferredPromise();\n      disposables.add(Event.once(picker.onWillAccept)((e) =\u003e {\n        e.veto();\n        picker.hide();\n      }));\n    }\n    disposables.add(this.registerPickerListeners(picker, provider, descriptor, value, options2));\n    const cts = disposables.add(new CancellationTokenSource());\n    if (provider) {\n      disposables.add(provider.provide(picker, cts.token, options2?.providerOptions));\n    }\n    Event.once(picker.onDidHide)(() =\u003e {\n      if (picker.selectedItems.length === 0) {\n        cts.cancel();\n      }\n      disposables.dispose();\n      pickPromise?.complete(picker.selectedItems.slice(0));\n    });\n    picker.show();\n    if (visibleSelection \u0026\u0026 visibleValue === value) {\n      picker.valueSelection = visibleSelection;\n    }\n    if (pick) {\n      return pickPromise?.p;\n    }\n  }\n  adjustValueSelection(picker, descriptor, options2) {\n    let valueSelection;\n    if (options2?.preserveValue) {\n      valueSelection = [picker.value.length, picker.value.length];\n    } else {\n      valueSelection = [descriptor?.prefix.length ?? 0, picker.value.length];\n    }\n    picker.valueSelection = valueSelection;\n  }\n  registerPickerListeners(picker, provider, descriptor, value, options2) {\n    const disposables = new DisposableStore();\n    const visibleQuickAccess = this.visibleQuickAccess = { picker, descriptor, value };\n    disposables.add(toDisposable(() =\u003e {\n      if (visibleQuickAccess === this.visibleQuickAccess) {\n        this.visibleQuickAccess = void 0;\n      }\n    }));\n    disposables.add(picker.onDidChangeValue((value2) =\u003e {\n      const [providerForValue] = this.getOrInstantiateProvider(value2, options2?.enabledProviderPrefixes);\n      if (providerForValue !== provider) {\n        this.show(value2, {\n          enabledProviderPrefixes: options2?.enabledProviderPrefixes,\n          // do not rewrite value from user typing!\n          preserveValue: true,\n          // persist the value of the providerOptions from the original showing\n          providerOptions: options2?.providerOptions\n        });\n      } else {\n        visibleQuickAccess.value = value2;\n      }\n    }));\n    if (descriptor) {\n      disposables.add(picker.onDidAccept(() =\u003e {\n        this.lastAcceptedPickerValues.set(descriptor, picker.value);\n      }));\n    }\n    return disposables;\n  }\n  getOrInstantiateProvider(value, enabledProviderPrefixes) {\n    const providerDescriptor = this.registry.getQuickAccessProvider(value);\n    if (!providerDescriptor || enabledProviderPrefixes \u0026\u0026 !enabledProviderPrefixes?.includes(providerDescriptor.prefix)) {\n      return [void 0, void 0];\n    }\n    let provider = this.mapProviderToDescriptor.get(providerDescriptor);\n    if (!provider) {\n      provider = this.instantiationService.createInstance(providerDescriptor.ctor);\n      this.mapProviderToDescriptor.set(providerDescriptor, provider);\n    }\n    return [provider, providerDescriptor];\n  }\n};\nQuickAccessController = __decorate177([\n  __param171(0, IQuickInputService),\n  __param171(1, IInstantiationService)\n], QuickAccessController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputService.js\ninit_colorRegistry();\ninit_themeService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInput.js\ninit_dom();\ninit_keyboardEvent();\ninit_arrays();\ninit_async();\ninit_codicons();\ninit_event();\ninit_lifecycle();\ninit_platform();\ninit_themables();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputUtils.js\ninit_dom();\ninit_event();\ninit_keyboardEvent();\ninit_iconLabels2();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/linkedText.js\nvar __decorate178 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar LinkedText = class {\n  constructor(nodes) {\n    this.nodes = nodes;\n  }\n  toString() {\n    return this.nodes.map((node) =\u003e typeof node === \"string\" ? node : node.label).join(\"\");\n  }\n};\n__decorate178([\n  memoize\n], LinkedText.prototype, \"toString\", null);\nvar LINK_REGEX = /\\[([^\\]]+)\\]\\(((?:https?:\\/\\/|command:|file:)[^\\)\\s]+)(?: ([\"'])(.+?)(\\3))?\\)/gi;\nfunction parseLinkedText(text2) {\n  const result = [];\n  let index = 0;\n  let match2;\n  while (match2 = LINK_REGEX.exec(text2)) {\n    if (match2.index - index \u003e 0) {\n      result.push(text2.substring(index, match2.index));\n    }\n    const [, label, href, , title] = match2;\n    if (title) {\n      result.push({ label, href, title });\n    } else {\n      result.push({ label, href });\n    }\n    index = match2.index + match2[0].length;\n  }\n  if (index \u003c text2.length) {\n    result.push(text2.substring(index));\n  }\n  return new LinkedText(result);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputUtils.js\ninit_nls();\nvar iconPathToClass = {};\nvar iconClassGenerator = new IdGenerator(\"quick-input-button-icon-\");\nfunction getIconClass(iconPath) {\n  if (!iconPath) {\n    return void 0;\n  }\n  let iconClass;\n  const key = iconPath.dark.toString();\n  if (iconPathToClass[key]) {\n    iconClass = iconPathToClass[key];\n  } else {\n    iconClass = iconClassGenerator.nextId();\n    createCSSRule(`.${iconClass}, .hc-light .${iconClass}`, `background-image: ${asCSSUrl(iconPath.light || iconPath.dark)}`);\n    createCSSRule(`.vs-dark .${iconClass}, .hc-black .${iconClass}`, `background-image: ${asCSSUrl(iconPath.dark)}`);\n    iconPathToClass[key] = iconClass;\n  }\n  return iconClass;\n}\nfunction quickInputButtonToAction(button, id, run) {\n  let cssClasses = button.iconClass || getIconClass(button.iconPath);\n  if (button.alwaysVisible) {\n    cssClasses = cssClasses ? `${cssClasses} always-visible` : \"always-visible\";\n  }\n  return {\n    id,\n    label: \"\",\n    tooltip: button.tooltip || \"\",\n    class: cssClasses,\n    enabled: true,\n    run\n  };\n}\nfunction renderQuickInputDescription(description, container, actionHandler) {\n  reset(container);\n  const parsed = parseLinkedText(description);\n  let tabIndex = 0;\n  for (const node of parsed.nodes) {\n    if (typeof node === \"string\") {\n      container.append(...renderLabelWithIcons(node));\n    } else {\n      let title = node.title;\n      if (!title \u0026\u0026 node.href.startsWith(\"command:\")) {\n        title = localize(1750, \"Click to execute command '{0}'\", node.href.substring(\"command:\".length));\n      } else if (!title) {\n        title = node.href;\n      }\n      const anchor = $(\"a\", { href: node.href, title, tabIndex: tabIndex++ }, node.label);\n      anchor.style.textDecoration = \"underline\";\n      const handleOpen = (e) =\u003e {\n        if (isEventLike(e)) {\n          EventHelper.stop(e, true);\n        }\n        actionHandler.callback(node.href);\n      };\n      const onClick = actionHandler.disposables.add(new DomEmitter(anchor, EventType.CLICK)).event;\n      const onKeydown = actionHandler.disposables.add(new DomEmitter(anchor, EventType.KEY_DOWN)).event;\n      const onSpaceOrEnter = Event.chain(onKeydown, ($23) =\u003e $23.filter((e) =\u003e {\n        const event = new StandardKeyboardEvent(e);\n        return event.equals(\n          10\n          /* KeyCode.Space */\n        ) || event.equals(\n          3\n          /* KeyCode.Enter */\n        );\n      }));\n      actionHandler.disposables.add(Gesture.addTarget(anchor));\n      const onTap = actionHandler.disposables.add(new DomEmitter(anchor, EventType2.Tap)).event;\n      Event.any(onClick, onTap, onSpaceOrEnter)(handleOpen, null, actionHandler.disposables);\n      container.appendChild(anchor);\n    }\n  }\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInput.js\ninit_configuration();\ninit_contextkey();\ninit_observable();\nvar __decorate179 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param172 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar inQuickInputContextKeyValue = \"inQuickInput\";\nvar InQuickInputContextKey = new RawContextKey(inQuickInputContextKeyValue, false, localize(1729, \"Whether keyboard focus is inside the quick input control\"));\nvar inQuickInputContext = ContextKeyExpr.has(inQuickInputContextKeyValue);\nvar quickInputAlignmentContextKeyValue = \"quickInputAlignment\";\nvar QuickInputAlignmentContextKey = new RawContextKey(quickInputAlignmentContextKeyValue, \"top\", localize(1730, \"The alignment of the quick input\"));\nvar quickInputTypeContextKeyValue = \"quickInputType\";\nvar QuickInputTypeContextKey = new RawContextKey(quickInputTypeContextKeyValue, void 0, localize(1731, \"The type of the currently visible quick input\"));\nvar endOfQuickInputBoxContextKeyValue = \"cursorAtEndOfQuickInputBox\";\nvar EndOfQuickInputBoxContextKey = new RawContextKey(endOfQuickInputBoxContextKeyValue, false, localize(1732, \"Whether the cursor in the quick input is at the end of the input box\"));\nvar endOfQuickInputBoxContext = ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue);\nvar backButton = {\n  iconClass: ThemeIcon.asClassName(Codicon.quickInputBack),\n  tooltip: localize(1733, \"Back\"),\n  handle: -1\n  // TODO\n};\nvar QuickInput = class _QuickInput extends Disposable {\n  static {\n    this.noPromptMessage = localize(1734, \"Press 'Enter' to confirm your input or 'Escape' to cancel\");\n  }\n  constructor(ui) {\n    super();\n    this.ui = ui;\n    this._visible = observableValue(\"visible\", false);\n    this._widgetUpdated = false;\n    this._enabled = true;\n    this._busy = false;\n    this._ignoreFocusOut = false;\n    this._leftButtons = [];\n    this._rightButtons = [];\n    this._inlineButtons = [];\n    this.buttonsUpdated = false;\n    this._toggles = [];\n    this.togglesUpdated = false;\n    this.noValidationMessage = _QuickInput.noPromptMessage;\n    this._severity = severity_default.Ignore;\n    this.onDidTriggerButtonEmitter = this._register(new Emitter());\n    this.onDidHideEmitter = this._register(new Emitter());\n    this.onWillHideEmitter = this._register(new Emitter());\n    this.onDisposeEmitter = this._register(new Emitter());\n    this.visibleDisposables = this._register(new DisposableStore());\n    this.onDidHide = this.onDidHideEmitter.event;\n  }\n  get visible() {\n    return this._visible.get();\n  }\n  get title() {\n    return this._title;\n  }\n  set title(title) {\n    this._title = title;\n    this.update();\n  }\n  get description() {\n    return this._description;\n  }\n  set description(description) {\n    this._description = description;\n    this.update();\n  }\n  get step() {\n    return this._steps;\n  }\n  set step(step) {\n    this._steps = step;\n    this.update();\n  }\n  get totalSteps() {\n    return this._totalSteps;\n  }\n  set totalSteps(totalSteps) {\n    this._totalSteps = totalSteps;\n    this.update();\n  }\n  get enabled() {\n    return this._enabled;\n  }\n  set enabled(enabled) {\n    this._enabled = enabled;\n    this.update();\n  }\n  get contextKey() {\n    return this._contextKey;\n  }\n  set contextKey(contextKey) {\n    this._contextKey = contextKey;\n    this.update();\n  }\n  get busy() {\n    return this._busy;\n  }\n  set busy(busy) {\n    this._busy = busy;\n    this.update();\n  }\n  get ignoreFocusOut() {\n    return this._ignoreFocusOut;\n  }\n  set ignoreFocusOut(ignoreFocusOut) {\n    const shouldUpdate = this._ignoreFocusOut !== ignoreFocusOut \u0026\u0026 !isIOS;\n    this._ignoreFocusOut = ignoreFocusOut \u0026\u0026 !isIOS;\n    if (shouldUpdate) {\n      this.update();\n    }\n  }\n  get titleButtons() {\n    return this._leftButtons.length ? [...this._leftButtons, this._rightButtons] : this._rightButtons;\n  }\n  get buttons() {\n    return [\n      ...this._leftButtons,\n      ...this._rightButtons,\n      ...this._inlineButtons\n    ];\n  }\n  set buttons(buttons) {\n    this._leftButtons = buttons.filter((b) =\u003e b === backButton);\n    this._rightButtons = buttons.filter((b) =\u003e b !== backButton \u0026\u0026 b.location !== QuickInputButtonLocation.Inline);\n    this._inlineButtons = buttons.filter((b) =\u003e b.location === QuickInputButtonLocation.Inline);\n    this.buttonsUpdated = true;\n    this.update();\n  }\n  get toggles() {\n    return this._toggles;\n  }\n  set toggles(toggles) {\n    this._toggles = toggles ?? [];\n    this.togglesUpdated = true;\n    this.update();\n  }\n  get validationMessage() {\n    return this._validationMessage;\n  }\n  set validationMessage(validationMessage) {\n    this._validationMessage = validationMessage;\n    this.update();\n  }\n  get severity() {\n    return this._severity;\n  }\n  set severity(severity) {\n    this._severity = severity;\n    this.update();\n  }\n  show() {\n    if (this.visible) {\n      return;\n    }\n    this.visibleDisposables.add(this.ui.onDidTriggerButton((button) =\u003e {\n      if (this.buttons.indexOf(button) !== -1) {\n        this.onDidTriggerButtonEmitter.fire(button);\n      }\n    }));\n    this.ui.show(this);\n    this._visible.set(true, void 0);\n    this._lastValidationMessage = void 0;\n    this._lastSeverity = void 0;\n    if (this.buttons.length) {\n      this.buttonsUpdated = true;\n    }\n    if (this.toggles.length) {\n      this.togglesUpdated = true;\n    }\n    this.update();\n  }\n  hide() {\n    if (!this.visible) {\n      return;\n    }\n    this.ui.hide();\n  }\n  didHide(reason = QuickInputHideReason.Other) {\n    this._visible.set(false, void 0);\n    this.visibleDisposables.clear();\n    this.onDidHideEmitter.fire({ reason });\n  }\n  willHide(reason = QuickInputHideReason.Other) {\n    this.onWillHideEmitter.fire({ reason });\n  }\n  update() {\n    if (!this.visible) {\n      return;\n    }\n    const title = this.getTitle();\n    if (title \u0026\u0026 this.ui.title.textContent !== title) {\n      this.ui.title.textContent = title;\n    } else if (!title \u0026\u0026 this.ui.title.innerHTML !== \"\u0026nbsp;\") {\n      this.ui.title.innerText = \"\\xA0\";\n    }\n    const description = this.getDescription();\n    if (this.ui.description1.textContent !== description) {\n      this.ui.description1.textContent = description;\n    }\n    if (this.ui.description2.textContent !== description) {\n      this.ui.description2.textContent = description;\n    }\n    if (this._widgetUpdated) {\n      this._widgetUpdated = false;\n      if (this._widget) {\n        reset(this.ui.widget, this._widget);\n      } else {\n        reset(this.ui.widget);\n      }\n    }\n    if (this.busy \u0026\u0026 !this.busyDelay) {\n      this.busyDelay = new TimeoutTimer();\n      this.busyDelay.setIfNotSet(() =\u003e {\n        if (this.visible) {\n          this.ui.progressBar.infinite();\n        }\n      }, 800);\n    }\n    if (!this.busy \u0026\u0026 this.busyDelay) {\n      this.ui.progressBar.stop();\n      this.busyDelay.cancel();\n      this.busyDelay = void 0;\n    }\n    if (this.buttonsUpdated) {\n      this.buttonsUpdated = false;\n      this.ui.leftActionBar.clear();\n      const leftButtons = this._leftButtons.map((button, index) =\u003e quickInputButtonToAction(button, `id-${index}`, async () =\u003e this.onDidTriggerButtonEmitter.fire(button)));\n      this.ui.leftActionBar.push(leftButtons, { icon: true, label: false });\n      this.ui.rightActionBar.clear();\n      const rightButtons = this._rightButtons.map((button, index) =\u003e quickInputButtonToAction(button, `id-${index}`, async () =\u003e this.onDidTriggerButtonEmitter.fire(button)));\n      this.ui.rightActionBar.push(rightButtons, { icon: true, label: false });\n      this.ui.inlineActionBar.clear();\n      const inlineButtons = this._inlineButtons.map((button, index) =\u003e quickInputButtonToAction(button, `id-${index}`, async () =\u003e this.onDidTriggerButtonEmitter.fire(button)));\n      this.ui.inlineActionBar.push(inlineButtons, { icon: true, label: false });\n    }\n    if (this.togglesUpdated) {\n      this.togglesUpdated = false;\n      const concreteToggles = this.toggles?.filter((opts) =\u003e opts instanceof Toggle) ?? [];\n      this.ui.inputBox.toggles = concreteToggles;\n    }\n    this.ui.ignoreFocusOut = this.ignoreFocusOut;\n    this.ui.setEnabled(this.enabled);\n    this.ui.setContextKey(this.contextKey);\n    const validationMessage = this.validationMessage || this.noValidationMessage;\n    if (this._lastValidationMessage !== validationMessage) {\n      this._lastValidationMessage = validationMessage;\n      reset(this.ui.message);\n      renderQuickInputDescription(validationMessage, this.ui.message, {\n        callback: (content) =\u003e {\n          this.ui.linkOpenerDelegate(content);\n        },\n        disposables: this.visibleDisposables\n      });\n    }\n    if (this._lastSeverity !== this.severity) {\n      this._lastSeverity = this.severity;\n      this.showMessageDecoration(this.severity);\n    }\n  }\n  getTitle() {\n    if (this.title \u0026\u0026 this.step) {\n      return `${this.title} (${this.getSteps()})`;\n    }\n    if (this.title) {\n      return this.title;\n    }\n    if (this.step) {\n      return this.getSteps();\n    }\n    return \"\";\n  }\n  getDescription() {\n    return this.description || \"\";\n  }\n  getSteps() {\n    if (this.step \u0026\u0026 this.totalSteps) {\n      return localize(1735, \"{0}/{1}\", this.step, this.totalSteps);\n    }\n    if (this.step) {\n      return String(this.step);\n    }\n    return \"\";\n  }\n  showMessageDecoration(severity) {\n    this.ui.inputBox.showDecoration(severity);\n    if (severity !== severity_default.Ignore) {\n      const styles = this.ui.inputBox.stylesForType(severity);\n      this.ui.message.style.color = styles.foreground ? `${styles.foreground}` : \"\";\n      this.ui.message.style.backgroundColor = styles.background ? `${styles.background}` : \"\";\n      this.ui.message.style.border = styles.border ? `1px solid ${styles.border}` : \"\";\n      this.ui.message.style.marginBottom = \"-2px\";\n    } else {\n      this.ui.message.style.color = \"\";\n      this.ui.message.style.backgroundColor = \"\";\n      this.ui.message.style.border = \"\";\n      this.ui.message.style.marginBottom = \"\";\n    }\n  }\n  dispose() {\n    this.hide();\n    this.onDisposeEmitter.fire();\n    super.dispose();\n  }\n};\nvar QuickPick = class _QuickPick extends QuickInput {\n  constructor() {\n    super(...arguments);\n    this._value = \"\";\n    this.onDidChangeValueEmitter = this._register(new Emitter());\n    this.onWillAcceptEmitter = this._register(new Emitter());\n    this.onDidAcceptEmitter = this._register(new Emitter());\n    this.onDidCustomEmitter = this._register(new Emitter());\n    this._items = [];\n    this.itemsUpdated = false;\n    this._canSelectMany = false;\n    this._canAcceptInBackground = false;\n    this._matchOnDescription = false;\n    this._matchOnDetail = false;\n    this._matchOnLabel = true;\n    this._matchOnLabelMode = \"fuzzy\";\n    this._sortByLabel = true;\n    this._keepScrollPosition = false;\n    this._itemActivation = ItemActivation.FIRST;\n    this._activeItems = [];\n    this.activeItemsUpdated = false;\n    this.activeItemsToConfirm = [];\n    this.onDidChangeActiveEmitter = this._register(new Emitter());\n    this._selectedItems = [];\n    this.selectedItemsUpdated = false;\n    this.selectedItemsToConfirm = [];\n    this.onDidChangeSelectionEmitter = this._register(new Emitter());\n    this.onDidTriggerItemButtonEmitter = this._register(new Emitter());\n    this.onDidTriggerSeparatorButtonEmitter = this._register(new Emitter());\n    this.valueSelectionUpdated = true;\n    this._ok = \"default\";\n    this._customButton = false;\n    this._focusEventBufferer = new EventBufferer();\n    this.type = \"quickPick\";\n    this.filterValue = (value) =\u003e value;\n    this.onDidChangeValue = this.onDidChangeValueEmitter.event;\n    this.onWillAccept = this.onWillAcceptEmitter.event;\n    this.onDidAccept = this.onDidAcceptEmitter.event;\n    this.onDidChangeActive = this.onDidChangeActiveEmitter.event;\n    this.onDidChangeSelection = this.onDidChangeSelectionEmitter.event;\n    this.onDidTriggerItemButton = this.onDidTriggerItemButtonEmitter.event;\n    this.onDidTriggerSeparatorButton = this.onDidTriggerSeparatorButtonEmitter.event;\n  }\n  static {\n    this.DEFAULT_ARIA_LABEL = localize(1736, \"Type to narrow down results.\");\n  }\n  get quickNavigate() {\n    return this._quickNavigate;\n  }\n  set quickNavigate(quickNavigate) {\n    this._quickNavigate = quickNavigate;\n    this.update();\n  }\n  get value() {\n    return this._value;\n  }\n  set value(value) {\n    this.doSetValue(value);\n  }\n  doSetValue(value, skipUpdate) {\n    if (this._value !== value) {\n      this._value = value;\n      if (!skipUpdate) {\n        this.update();\n      }\n      if (this.visible) {\n        const didFilter = this.ui.list.filter(this.filterValue(this._value));\n        if (didFilter) {\n          this.trySelectFirst();\n        }\n      }\n      this.onDidChangeValueEmitter.fire(this._value);\n    }\n  }\n  set ariaLabel(ariaLabel) {\n    this._ariaLabel = ariaLabel;\n    this.update();\n  }\n  get ariaLabel() {\n    return this._ariaLabel;\n  }\n  get placeholder() {\n    return this._placeholder;\n  }\n  set placeholder(placeholder) {\n    this._placeholder = placeholder;\n    this.update();\n  }\n  get items() {\n    return this._items;\n  }\n  get scrollTop() {\n    return this.ui.list.scrollTop;\n  }\n  set scrollTop(scrollTop) {\n    this.ui.list.scrollTop = scrollTop;\n  }\n  set items(items) {\n    this._items = items;\n    this.itemsUpdated = true;\n    this.update();\n  }\n  get canSelectMany() {\n    return this._canSelectMany;\n  }\n  set canSelectMany(canSelectMany) {\n    this._canSelectMany = canSelectMany;\n    this.update();\n  }\n  get canAcceptInBackground() {\n    return this._canAcceptInBackground;\n  }\n  set canAcceptInBackground(canAcceptInBackground) {\n    this._canAcceptInBackground = canAcceptInBackground;\n  }\n  get matchOnDescription() {\n    return this._matchOnDescription;\n  }\n  set matchOnDescription(matchOnDescription) {\n    this._matchOnDescription = matchOnDescription;\n    this.update();\n  }\n  get matchOnDetail() {\n    return this._matchOnDetail;\n  }\n  set matchOnDetail(matchOnDetail) {\n    this._matchOnDetail = matchOnDetail;\n    this.update();\n  }\n  get matchOnLabel() {\n    return this._matchOnLabel;\n  }\n  set matchOnLabel(matchOnLabel) {\n    this._matchOnLabel = matchOnLabel;\n    this.update();\n  }\n  get matchOnLabelMode() {\n    return this._matchOnLabelMode;\n  }\n  set matchOnLabelMode(matchOnLabelMode) {\n    this._matchOnLabelMode = matchOnLabelMode;\n    this.update();\n  }\n  get sortByLabel() {\n    return this._sortByLabel;\n  }\n  set sortByLabel(sortByLabel) {\n    this._sortByLabel = sortByLabel;\n    this.update();\n  }\n  get keepScrollPosition() {\n    return this._keepScrollPosition;\n  }\n  set keepScrollPosition(keepScrollPosition) {\n    this._keepScrollPosition = keepScrollPosition;\n  }\n  get itemActivation() {\n    return this._itemActivation;\n  }\n  set itemActivation(itemActivation) {\n    this._itemActivation = itemActivation;\n  }\n  get activeItems() {\n    return this._activeItems;\n  }\n  set activeItems(activeItems) {\n    this._activeItems = activeItems;\n    this.activeItemsUpdated = true;\n    this.update();\n  }\n  get selectedItems() {\n    return this._selectedItems;\n  }\n  set selectedItems(selectedItems) {\n    this._selectedItems = selectedItems;\n    this.selectedItemsUpdated = true;\n    this.update();\n  }\n  get keyMods() {\n    if (this._quickNavigate) {\n      return NO_KEY_MODS;\n    }\n    return this.ui.keyMods;\n  }\n  get valueSelection() {\n    const selection = this.ui.inputBox.getSelection();\n    if (!selection) {\n      return void 0;\n    }\n    return [selection.start, selection.end];\n  }\n  set valueSelection(valueSelection) {\n    this._valueSelection = valueSelection;\n    this.valueSelectionUpdated = true;\n    this.update();\n  }\n  get customButton() {\n    return this._customButton;\n  }\n  set customButton(showCustomButton) {\n    this._customButton = showCustomButton;\n    this.update();\n  }\n  get customLabel() {\n    return this._customButtonLabel;\n  }\n  set customLabel(label) {\n    this._customButtonLabel = label;\n    this.update();\n  }\n  get customHover() {\n    return this._customButtonHover;\n  }\n  set customHover(hover) {\n    this._customButtonHover = hover;\n    this.update();\n  }\n  get ok() {\n    return this._ok;\n  }\n  set ok(showOkButton) {\n    this._ok = showOkButton;\n    this.update();\n  }\n  get okLabel() {\n    return this._okLabel ?? localize(1737, \"OK\");\n  }\n  set okLabel(okLabel) {\n    this._okLabel = okLabel;\n    this.update();\n  }\n  get hideInput() {\n    return !!this._hideInput;\n  }\n  set hideInput(hideInput) {\n    this._hideInput = hideInput;\n    this.update();\n  }\n  trySelectFirst() {\n    if (!this.canSelectMany) {\n      this.ui.list.focus(QuickPickFocus.First);\n    }\n  }\n  show() {\n    if (!this.visible) {\n      this.visibleDisposables.add(this.ui.inputBox.onDidChange((value) =\u003e {\n        this.doSetValue(\n          value,\n          true\n          /* skip update since this originates from the UI */\n        );\n      }));\n      this.visibleDisposables.add(this.ui.onDidAccept(() =\u003e {\n        if (this.canSelectMany) {\n          if (!this.ui.list.getCheckedElements().length) {\n            this._selectedItems = [];\n            this.onDidChangeSelectionEmitter.fire(this.selectedItems);\n          }\n        } else if (this.activeItems[0]) {\n          this._selectedItems = [this.activeItems[0]];\n          this.onDidChangeSelectionEmitter.fire(this.selectedItems);\n        }\n        this.handleAccept(false);\n      }));\n      this.visibleDisposables.add(this.ui.onDidCustom(() =\u003e {\n        this.onDidCustomEmitter.fire();\n      }));\n      this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(\n        this.ui.list.onDidChangeFocus,\n        // Only fire the last event\n        (_, e) =\u003e e\n      )((focusedItems) =\u003e {\n        if (this.activeItemsUpdated) {\n          return;\n        }\n        if (this.activeItemsToConfirm !== this._activeItems \u0026\u0026 equals(focusedItems, this._activeItems, (a, b) =\u003e a === b)) {\n          return;\n        }\n        this._activeItems = focusedItems;\n        this.onDidChangeActiveEmitter.fire(focusedItems);\n      }));\n      this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({ items: selectedItems, event }) =\u003e {\n        if (this.canSelectMany \u0026\u0026 !selectedItems.some((i2) =\u003e i2.pickable === false)) {\n          if (selectedItems.length) {\n            this.ui.list.setSelectedElements([]);\n          }\n          return;\n        }\n        if (this.selectedItemsToConfirm !== this._selectedItems \u0026\u0026 equals(selectedItems, this._selectedItems, (a, b) =\u003e a === b)) {\n          return;\n        }\n        this._selectedItems = selectedItems;\n        this.onDidChangeSelectionEmitter.fire(selectedItems);\n        if (selectedItems.length) {\n          this.handleAccept(\n            isMouseEvent(event) \u0026\u0026 event.button === 1\n            /* mouse middle click */\n          );\n        }\n      }));\n      this.visibleDisposables.add(this.ui.list.onChangedCheckedElements((checkedItems) =\u003e {\n        if (!this.canSelectMany || !this.visible) {\n          return;\n        }\n        if (this.selectedItemsToConfirm !== this._selectedItems \u0026\u0026 equals(checkedItems, this._selectedItems, (a, b) =\u003e a === b)) {\n          return;\n        }\n        this._selectedItems = checkedItems;\n        this.onDidChangeSelectionEmitter.fire(checkedItems);\n      }));\n      this.visibleDisposables.add(this.ui.list.onButtonTriggered((event) =\u003e this.onDidTriggerItemButtonEmitter.fire(event)));\n      this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered((event) =\u003e this.onDidTriggerSeparatorButtonEmitter.fire(event)));\n      this.visibleDisposables.add(this.registerQuickNavigation());\n      this.valueSelectionUpdated = true;\n    }\n    super.show();\n  }\n  handleAccept(inBackground) {\n    let veto = false;\n    this.onWillAcceptEmitter.fire({ veto: () =\u003e veto = true });\n    if (!veto) {\n      this.onDidAcceptEmitter.fire({ inBackground });\n    }\n  }\n  registerQuickNavigation() {\n    return addDisposableListener(this.ui.container, EventType.KEY_UP, (e) =\u003e {\n      if (this.canSelectMany || !this._quickNavigate) {\n        return;\n      }\n      const keyboardEvent = new StandardKeyboardEvent(e);\n      const keyCode = keyboardEvent.keyCode;\n      const quickNavKeys = this._quickNavigate.keybindings;\n      const wasTriggerKeyPressed = quickNavKeys.some((k) =\u003e {\n        const chords = k.getChords();\n        if (chords.length \u003e 1) {\n          return false;\n        }\n        if (chords[0].shiftKey \u0026\u0026 keyCode === 4) {\n          if (keyboardEvent.ctrlKey || keyboardEvent.altKey || keyboardEvent.metaKey) {\n            return false;\n          }\n          return true;\n        }\n        if (chords[0].altKey \u0026\u0026 keyCode === 6) {\n          return true;\n        }\n        if (chords[0].ctrlKey \u0026\u0026 keyCode === 5) {\n          return true;\n        }\n        if (chords[0].metaKey \u0026\u0026 keyCode === 57) {\n          return true;\n        }\n        return false;\n      });\n      if (wasTriggerKeyPressed) {\n        if (this.activeItems[0]) {\n          this._selectedItems = [this.activeItems[0]];\n          this.onDidChangeSelectionEmitter.fire(this.selectedItems);\n          this.handleAccept(false);\n        }\n        this._quickNavigate = void 0;\n      }\n    });\n  }\n  update() {\n    if (!this.visible) {\n      return;\n    }\n    const scrollTopBefore = this.keepScrollPosition ? this.scrollTop : 0;\n    const hasDescription = !!this.description;\n    const visibilities = {\n      title: !!this.title || !!this.step || !!this.titleButtons.length,\n      description: hasDescription,\n      checkAll: this.canSelectMany \u0026\u0026 !this._hideCheckAll,\n      checkBox: this.canSelectMany,\n      inputBox: !this._hideInput,\n      progressBar: !this._hideInput || hasDescription,\n      visibleCount: true,\n      count: this.canSelectMany \u0026\u0026 !this._hideCountBadge,\n      ok: this.ok === \"default\" ? this.canSelectMany : this.ok,\n      list: true,\n      message: !!this.validationMessage,\n      customButton: this.customButton\n    };\n    this.ui.setVisibilities(visibilities);\n    super.update();\n    if (this.ui.inputBox.value !== this.value) {\n      this.ui.inputBox.value = this.value;\n    }\n    if (this.valueSelectionUpdated) {\n      this.valueSelectionUpdated = false;\n      this.ui.inputBox.select(this._valueSelection \u0026\u0026 { start: this._valueSelection[0], end: this._valueSelection[1] });\n    }\n    if (this.ui.inputBox.placeholder !== (this.placeholder || \"\")) {\n      this.ui.inputBox.placeholder = this.placeholder || \"\";\n    }\n    let ariaLabel = this.ariaLabel;\n    if (!ariaLabel \u0026\u0026 visibilities.inputBox) {\n      ariaLabel = this.placeholder || _QuickPick.DEFAULT_ARIA_LABEL;\n      if (this.title) {\n        ariaLabel += ` - ${this.title}`;\n      }\n    }\n    if (this.ui.list.ariaLabel !== ariaLabel) {\n      this.ui.list.ariaLabel = ariaLabel ?? null;\n    }\n    if (this.ui.inputBox.ariaLabel !== ariaLabel) {\n      this.ui.inputBox.ariaLabel = ariaLabel ?? \"input\";\n    }\n    this.ui.list.matchOnDescription = this.matchOnDescription;\n    this.ui.list.matchOnDetail = this.matchOnDetail;\n    this.ui.list.matchOnLabel = this.matchOnLabel;\n    this.ui.list.matchOnLabelMode = this.matchOnLabelMode;\n    this.ui.list.sortByLabel = this.sortByLabel;\n    if (this.itemsUpdated) {\n      this.itemsUpdated = false;\n      this._focusEventBufferer.bufferEvents(() =\u003e {\n        this.ui.list.setElements(this.items);\n        this.ui.list.shouldLoop = !this.canSelectMany;\n        this.ui.list.filter(this.filterValue(this.ui.inputBox.value));\n        switch (this._itemActivation) {\n          case ItemActivation.NONE:\n            this._itemActivation = ItemActivation.FIRST;\n            break;\n          case ItemActivation.SECOND:\n            this.ui.list.focus(QuickPickFocus.Second);\n            this._itemActivation = ItemActivation.FIRST;\n            break;\n          case ItemActivation.LAST:\n            this.ui.list.focus(QuickPickFocus.Last);\n            this._itemActivation = ItemActivation.FIRST;\n            break;\n          default:\n            this.trySelectFirst();\n            break;\n        }\n      });\n    }\n    if (this.ui.container.classList.contains(\"show-checkboxes\") !== !!this.canSelectMany) {\n      if (this.canSelectMany) {\n        this.ui.list.clearFocus();\n      } else {\n        this.trySelectFirst();\n      }\n    }\n    if (this.activeItemsUpdated) {\n      this.activeItemsUpdated = false;\n      this.activeItemsToConfirm = this._activeItems;\n      this.ui.list.setFocusedElements(this.activeItems);\n      if (this.activeItemsToConfirm === this._activeItems) {\n        this.activeItemsToConfirm = null;\n      }\n    }\n    if (this.selectedItemsUpdated) {\n      this.selectedItemsUpdated = false;\n      this.selectedItemsToConfirm = this._selectedItems;\n      if (this.canSelectMany) {\n        this.ui.list.setCheckedElements(this.selectedItems);\n      } else {\n        this.ui.list.setSelectedElements(this.selectedItems);\n      }\n      if (this.selectedItemsToConfirm === this._selectedItems) {\n        this.selectedItemsToConfirm = null;\n      }\n    }\n    this.ui.ok.label = this.okLabel || \"\";\n    this.ui.customButton.label = this.customLabel || \"\";\n    this.ui.customButton.element.title = this.customHover || \"\";\n    if (!visibilities.inputBox) {\n      this.ui.list.domFocus();\n      if (this.canSelectMany) {\n        this.ui.list.focus(QuickPickFocus.First);\n      }\n    }\n    if (this.keepScrollPosition) {\n      this.scrollTop = scrollTopBefore;\n    }\n  }\n  focus(focus) {\n    this.ui.list.focus(focus);\n    if (this.canSelectMany) {\n      this.ui.list.domFocus();\n    }\n  }\n  accept(inBackground) {\n    if (inBackground \u0026\u0026 !this._canAcceptInBackground) {\n      return;\n    }\n    if (this.activeItems[0]) {\n      this._selectedItems = [this.activeItems[0]];\n      this.onDidChangeSelectionEmitter.fire(this.selectedItems);\n      this.handleAccept(inBackground ?? false);\n    }\n  }\n};\nvar InputBox2 = class extends QuickInput {\n  constructor() {\n    super(...arguments);\n    this._value = \"\";\n    this.valueSelectionUpdated = true;\n    this._password = false;\n    this.onDidValueChangeEmitter = this._register(new Emitter());\n    this.onDidAcceptEmitter = this._register(new Emitter());\n    this.type = \"inputBox\";\n    this.onDidChangeValue = this.onDidValueChangeEmitter.event;\n    this.onDidAccept = this.onDidAcceptEmitter.event;\n  }\n  get value() {\n    return this._value;\n  }\n  set value(value) {\n    this._value = value || \"\";\n    this.update();\n  }\n  get valueSelection() {\n    const selection = this.ui.inputBox.getSelection();\n    if (!selection) {\n      return void 0;\n    }\n    return [selection.start, selection.end];\n  }\n  set valueSelection(valueSelection) {\n    this._valueSelection = valueSelection;\n    this.valueSelectionUpdated = true;\n    this.update();\n  }\n  get placeholder() {\n    return this._placeholder;\n  }\n  set placeholder(placeholder) {\n    this._placeholder = placeholder;\n    this.update();\n  }\n  get ariaLabel() {\n    return this._ariaLabel;\n  }\n  set ariaLabel(ariaLabel) {\n    this._ariaLabel = ariaLabel;\n    this.update();\n  }\n  get password() {\n    return this._password;\n  }\n  set password(password) {\n    this._password = password;\n    this.update();\n  }\n  get prompt() {\n    return this._prompt;\n  }\n  set prompt(prompt) {\n    this._prompt = prompt;\n    this.noValidationMessage = prompt ? localize(1738, \"{0} (Press 'Enter' to confirm or 'Escape' to cancel)\", prompt) : QuickInput.noPromptMessage;\n    this.update();\n  }\n  show() {\n    if (!this.visible) {\n      this.visibleDisposables.add(this.ui.inputBox.onDidChange((value) =\u003e {\n        if (value === this.value) {\n          return;\n        }\n        this._value = value;\n        this.onDidValueChangeEmitter.fire(value);\n      }));\n      this.visibleDisposables.add(this.ui.onDidAccept(() =\u003e this.onDidAcceptEmitter.fire()));\n      this.valueSelectionUpdated = true;\n    }\n    super.show();\n  }\n  update() {\n    if (!this.visible) {\n      return;\n    }\n    this.ui.container.classList.remove(\"hidden-input\");\n    const visibilities = {\n      title: !!this.title || !!this.step || !!this.titleButtons.length,\n      description: !!this.description || !!this.step,\n      inputBox: true,\n      message: true,\n      progressBar: true\n    };\n    this.ui.setVisibilities(visibilities);\n    super.update();\n    if (this.ui.inputBox.value !== this.value) {\n      this.ui.inputBox.value = this.value;\n    }\n    if (this.valueSelectionUpdated) {\n      this.valueSelectionUpdated = false;\n      this.ui.inputBox.select(this._valueSelection \u0026\u0026 { start: this._valueSelection[0], end: this._valueSelection[1] });\n    }\n    if (this.ui.inputBox.placeholder !== (this.placeholder || \"\")) {\n      this.ui.inputBox.placeholder = this.placeholder || \"\";\n    }\n    if (this.ui.inputBox.password !== this.password) {\n      this.ui.inputBox.password = this.password;\n    }\n    let ariaLabel = this.ariaLabel;\n    if (!ariaLabel \u0026\u0026 visibilities.inputBox) {\n      ariaLabel = this.placeholder ? this.title ? `${this.placeholder} - ${this.title}` : this.placeholder : this.title ? this.title : \"input\";\n    }\n    if (this.ui.inputBox.ariaLabel !== ariaLabel) {\n      this.ui.inputBox.ariaLabel = ariaLabel || \"input\";\n    }\n  }\n};\nvar QuickInputHoverDelegate = class QuickInputHoverDelegate2 extends WorkbenchHoverDelegate {\n  constructor(configurationService, hoverService) {\n    super(\"element\", void 0, (options2) =\u003e this.getOverrideOptions(options2), configurationService, hoverService);\n  }\n  getOverrideOptions(options2) {\n    const showHoverHint = (isHTMLElement(options2.content) ? options2.content.textContent ?? \"\" : typeof options2.content === \"string\" ? options2.content : options2.content.value).includes(\"\\n\");\n    return {\n      persistence: {\n        hideOnKeyDown: false\n      },\n      appearance: {\n        showHoverHint,\n        skipFadeInAnimation: true\n      }\n    };\n  }\n};\nQuickInputHoverDelegate = __decorate179([\n  __param172(0, IConfigurationService),\n  __param172(1, IHoverService)\n], QuickInputHoverDelegate);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputController.js\ninit_dom();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/browser/ui/progressbar/progressbar.js\ninit_dom();\ninit_async();\ninit_lifecycle();\nvar CSS_DONE = \"done\";\nvar CSS_ACTIVE = \"active\";\nvar CSS_INFINITE = \"infinite\";\nvar CSS_INFINITE_LONG_RUNNING = \"infinite-long-running\";\nvar CSS_DISCRETE = \"discrete\";\nvar ProgressBar = class _ProgressBar extends Disposable {\n  static {\n    this.LONG_RUNNING_INFINITE_THRESHOLD = 1e4;\n  }\n  constructor(container, options2) {\n    super();\n    this.progressSignal = this._register(new MutableDisposable());\n    this.workedVal = 0;\n    this.showDelayedScheduler = this._register(new RunOnceScheduler(() =\u003e show(this.element), 0));\n    this.longRunningScheduler = this._register(new RunOnceScheduler(() =\u003e this.infiniteLongRunning(), _ProgressBar.LONG_RUNNING_INFINITE_THRESHOLD));\n    this.create(container, options2);\n  }\n  create(container, options2) {\n    this.element = document.createElement(\"div\");\n    this.element.classList.add(\"monaco-progress-container\");\n    this.element.setAttribute(\"role\", \"progressbar\");\n    this.element.setAttribute(\"aria-valuemin\", \"0\");\n    container.appendChild(this.element);\n    this.bit = document.createElement(\"div\");\n    this.bit.classList.add(\"progress-bit\");\n    this.bit.style.backgroundColor = options2?.progressBarBackground || \"#0E70C0\";\n    this.element.appendChild(this.bit);\n  }\n  off() {\n    this.bit.style.width = \"inherit\";\n    this.bit.style.opacity = \"1\";\n    this.element.classList.remove(CSS_ACTIVE, CSS_INFINITE, CSS_INFINITE_LONG_RUNNING, CSS_DISCRETE);\n    this.workedVal = 0;\n    this.totalWork = void 0;\n    this.longRunningScheduler.cancel();\n    this.progressSignal.clear();\n  }\n  /**\n   * Stops the progressbar from showing any progress instantly without fading out.\n   */\n  stop() {\n    return this.doDone(false);\n  }\n  doDone(delayed) {\n    this.element.classList.add(CSS_DONE);\n    if (!this.element.classList.contains(CSS_INFINITE)) {\n      this.bit.style.width = \"inherit\";\n      if (delayed) {\n        setTimeout(() =\u003e this.off(), 200);\n      } else {\n        this.off();\n      }\n    } else {\n      this.bit.style.opacity = \"0\";\n      if (delayed) {\n        setTimeout(() =\u003e this.off(), 200);\n      } else {\n        this.off();\n      }\n    }\n    return this;\n  }\n  /**\n   * Use this mode to indicate progress that has no total number of work units.\n   */\n  infinite() {\n    this.bit.style.width = \"2%\";\n    this.bit.style.opacity = \"1\";\n    this.element.classList.remove(CSS_DISCRETE, CSS_DONE, CSS_INFINITE_LONG_RUNNING);\n    this.element.classList.add(CSS_ACTIVE, CSS_INFINITE);\n    this.longRunningScheduler.schedule();\n    return this;\n  }\n  infiniteLongRunning() {\n    this.element.classList.add(CSS_INFINITE_LONG_RUNNING);\n  }\n  getContainer() {\n    return this.element;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputController.js\ninit_cancellation();\ninit_event();\ninit_lifecycle();\ninit_types();\ninit_nls();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputBox.js\ninit_dom();\ninit_lifecycle();\nvar $18 = $;\nvar QuickInputBox = class extends Disposable {\n  constructor(parent, inputBoxStyles, toggleStyles) {\n    super();\n    this.parent = parent;\n    this.onDidChange = (handler) =\u003e {\n      return this.findInput.onDidChange(handler);\n    };\n    this.container = append(this.parent, $18(\".quick-input-box\"));\n    this.findInput = this._register(new FindInput(this.container, void 0, { label: \"\", inputBoxStyles, toggleStyles }));\n    const input = this.findInput.inputBox.inputElement;\n    input.role = \"textbox\";\n    input.ariaHasPopup = \"menu\";\n    input.ariaAutoComplete = \"list\";\n  }\n  get onKeyDown() {\n    return this.findInput.onKeyDown;\n  }\n  get value() {\n    return this.findInput.getValue();\n  }\n  set value(value) {\n    this.findInput.setValue(value);\n  }\n  select(range2 = null) {\n    this.findInput.inputBox.select(range2);\n  }\n  getSelection() {\n    return this.findInput.inputBox.getSelection();\n  }\n  isSelectionAtEnd() {\n    return this.findInput.inputBox.isSelectionAtEnd();\n  }\n  get placeholder() {\n    return this.findInput.inputBox.inputElement.getAttribute(\"placeholder\") || \"\";\n  }\n  set placeholder(placeholder) {\n    this.findInput.inputBox.setPlaceHolder(placeholder);\n  }\n  get password() {\n    return this.findInput.inputBox.inputElement.type === \"password\";\n  }\n  set password(password) {\n    this.findInput.inputBox.inputElement.type = password ? \"password\" : \"text\";\n  }\n  set enabled(enabled) {\n    this.findInput.inputBox.inputElement.toggleAttribute(\"readonly\", !enabled);\n  }\n  set toggles(toggles) {\n    this.findInput.setAdditionalToggles(toggles);\n  }\n  get ariaLabel() {\n    return this.findInput.inputBox.inputElement.getAttribute(\"aria-label\") || \"\";\n  }\n  set ariaLabel(ariaLabel) {\n    this.findInput.inputBox.inputElement.setAttribute(\"aria-label\", ariaLabel);\n  }\n  hasFocus() {\n    return this.findInput.inputBox.hasFocus();\n  }\n  setAttribute(name, value) {\n    this.findInput.inputBox.inputElement.setAttribute(name, value);\n  }\n  removeAttribute(name) {\n    this.findInput.inputBox.inputElement.removeAttribute(name);\n  }\n  showDecoration(decoration3) {\n    if (decoration3 === severity_default.Ignore) {\n      this.findInput.clearMessage();\n    } else {\n      this.findInput.showMessage({ type: decoration3 === severity_default.Info ? 1 : decoration3 === severity_default.Warning ? 2 : 3, content: \"\" });\n    }\n  }\n  stylesForType(decoration3) {\n    return this.findInput.inputBox.stylesForType(\n      decoration3 === severity_default.Info ? 1 : decoration3 === severity_default.Warning ? 2 : 3\n      /* MessageType.ERROR */\n    );\n  }\n  setFocus() {\n    this.findInput.focus();\n  }\n  layout() {\n    this.findInput.inputBox.layout();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputController.js\ninit_window();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputList.js\ninit_dom();\ninit_keyboardEvent();\ninit_arrays();\ninit_async();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/base/common/comparers.js\ninit_date();\ninit_lazy();\nvar intlFileNameCollatorBaseNumeric = new Lazy(() =\u003e {\n  const collator = safeIntl.Collator(void 0, { numeric: true, sensitivity: \"base\" }).value;\n  return {\n    collator,\n    collatorIsNumeric: collator.resolvedOptions().numeric\n  };\n});\nvar intlFileNameCollatorNumeric = new Lazy(() =\u003e {\n  const collator = safeIntl.Collator(void 0, { numeric: true }).value;\n  return {\n    collator\n  };\n});\nvar intlFileNameCollatorNumericCaseInsensitive = new Lazy(() =\u003e {\n  const collator = safeIntl.Collator(void 0, { numeric: true, sensitivity: \"accent\" }).value;\n  return {\n    collator\n  };\n});\nfunction compareFileNames(one, other, caseSensitive = false) {\n  const a = one || \"\";\n  const b = other || \"\";\n  const result = intlFileNameCollatorBaseNumeric.value.collator.compare(a, b);\n  if (intlFileNameCollatorBaseNumeric.value.collatorIsNumeric \u0026\u0026 result === 0 \u0026\u0026 a !== b) {\n    return a \u003c b ? -1 : 1;\n  }\n  return result;\n}\nfunction compareAnything(one, other, lookFor) {\n  const elementAName = one.toLowerCase();\n  const elementBName = other.toLowerCase();\n  const prefixCompare = compareByPrefix(one, other, lookFor);\n  if (prefixCompare) {\n    return prefixCompare;\n  }\n  const elementASuffixMatch = elementAName.endsWith(lookFor);\n  const elementBSuffixMatch = elementBName.endsWith(lookFor);\n  if (elementASuffixMatch !== elementBSuffixMatch) {\n    return elementASuffixMatch ? -1 : 1;\n  }\n  const r = compareFileNames(elementAName, elementBName);\n  if (r !== 0) {\n    return r;\n  }\n  return elementAName.localeCompare(elementBName);\n}\nfunction compareByPrefix(one, other, lookFor) {\n  const elementAName = one.toLowerCase();\n  const elementBName = other.toLowerCase();\n  const elementAPrefixMatch = elementAName.startsWith(lookFor);\n  const elementBPrefixMatch = elementBName.startsWith(lookFor);\n  if (elementAPrefixMatch !== elementBPrefixMatch) {\n    return elementAPrefixMatch ? -1 : 1;\n  } else if (elementAPrefixMatch \u0026\u0026 elementBPrefixMatch) {\n    if (elementAName.length \u003c elementBName.length) {\n      return -1;\n    }\n    if (elementAName.length \u003e elementBName.length) {\n      return 1;\n    }\n  }\n  return 0;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputList.js\ninit_errors();\ninit_event();\ninit_iconLabels();\ninit_lazy();\ninit_lifecycle();\ninit_observable();\ninit_platform();\ninit_strings();\ninit_uri();\ninit_nls();\ninit_instantiation();\ninit_theme();\ninit_themeService();\nvar __decorate180 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param173 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar QuickPickItemElementRenderer_1;\nvar $19 = $;\nvar BaseQuickPickItemElement = class {\n  constructor(index, hasCheckbox, mainItem) {\n    this.index = index;\n    this.hasCheckbox = hasCheckbox;\n    this._hidden = false;\n    this._init = new Lazy(() =\u003e {\n      const saneLabel = mainItem.label ?? \"\";\n      const saneSortLabel = parseLabelWithIcons(saneLabel).text.trim();\n      const saneAriaLabel = mainItem.ariaLabel || [saneLabel, this.saneDescription, this.saneDetail].map((s) =\u003e getCodiconAriaLabel(s)).filter((s) =\u003e !!s).join(\", \");\n      return {\n        saneLabel,\n        saneSortLabel,\n        saneAriaLabel\n      };\n    });\n    this._saneDescription = mainItem.description;\n    this._saneTooltip = mainItem.tooltip;\n  }\n  // #region Lazy Getters\n  get saneLabel() {\n    return this._init.value.saneLabel;\n  }\n  get saneSortLabel() {\n    return this._init.value.saneSortLabel;\n  }\n  get saneAriaLabel() {\n    return this._init.value.saneAriaLabel;\n  }\n  get element() {\n    return this._element;\n  }\n  set element(value) {\n    this._element = value;\n  }\n  get hidden() {\n    return this._hidden;\n  }\n  set hidden(value) {\n    this._hidden = value;\n  }\n  get saneDescription() {\n    return this._saneDescription;\n  }\n  set saneDescription(value) {\n    this._saneDescription = value;\n  }\n  get saneDetail() {\n    return this._saneDetail;\n  }\n  set saneDetail(value) {\n    this._saneDetail = value;\n  }\n  get saneTooltip() {\n    return this._saneTooltip;\n  }\n  set saneTooltip(value) {\n    this._saneTooltip = value;\n  }\n  get labelHighlights() {\n    return this._labelHighlights;\n  }\n  set labelHighlights(value) {\n    this._labelHighlights = value;\n  }\n  get descriptionHighlights() {\n    return this._descriptionHighlights;\n  }\n  set descriptionHighlights(value) {\n    this._descriptionHighlights = value;\n  }\n  get detailHighlights() {\n    return this._detailHighlights;\n  }\n  set detailHighlights(value) {\n    this._detailHighlights = value;\n  }\n};\nvar QuickPickItemElement = class extends BaseQuickPickItemElement {\n  constructor(index, childIndex, hasCheckbox, fireButtonTriggered, _onChecked, item, _separator) {\n    super(index, hasCheckbox, item);\n    this.childIndex = childIndex;\n    this.fireButtonTriggered = fireButtonTriggered;\n    this._onChecked = _onChecked;\n    this.item = item;\n    this._separator = _separator;\n    this._checked = false;\n    this.onChecked = hasCheckbox ? Event.map(Event.filter(this._onChecked.event, (e) =\u003e e.element === this), (e) =\u003e e.checked) : Event.None;\n    this._saneDetail = item.detail;\n    this._labelHighlights = item.highlights?.label;\n    this._descriptionHighlights = item.highlights?.description;\n    this._detailHighlights = item.highlights?.detail;\n  }\n  get separator() {\n    return this._separator;\n  }\n  set separator(value) {\n    this._separator = value;\n  }\n  get checked() {\n    return this._checked;\n  }\n  set checked(value) {\n    if (value !== this._checked) {\n      this._checked = value;\n      this._onChecked.fire({ element: this, checked: value });\n    }\n  }\n  get checkboxDisabled() {\n    return !!this.item.disabled;\n  }\n};\nvar QuickPickSeparatorFocusReason;\n(function(QuickPickSeparatorFocusReason2) {\n  QuickPickSeparatorFocusReason2[QuickPickSeparatorFocusReason2[\"NONE\"] = 0] = \"NONE\";\n  QuickPickSeparatorFocusReason2[QuickPickSeparatorFocusReason2[\"MOUSE_HOVER\"] = 1] = \"MOUSE_HOVER\";\n  QuickPickSeparatorFocusReason2[QuickPickSeparatorFocusReason2[\"ACTIVE_ITEM\"] = 2] = \"ACTIVE_ITEM\";\n})(QuickPickSeparatorFocusReason || (QuickPickSeparatorFocusReason = {}));\nvar QuickPickSeparatorElement = class extends BaseQuickPickItemElement {\n  constructor(index, fireSeparatorButtonTriggered, separator2) {\n    super(index, false, separator2);\n    this.fireSeparatorButtonTriggered = fireSeparatorButtonTriggered;\n    this.separator = separator2;\n    this.children = new Array();\n    this.focusInsideSeparator = QuickPickSeparatorFocusReason.NONE;\n  }\n};\nvar QuickInputItemDelegate = class {\n  getHeight(element) {\n    if (element instanceof QuickPickSeparatorElement) {\n      return 30;\n    }\n    return element.saneDetail ? 44 : 22;\n  }\n  getTemplateId(element) {\n    if (element instanceof QuickPickItemElement) {\n      return QuickPickItemElementRenderer.ID;\n    } else {\n      return QuickPickSeparatorElementRenderer.ID;\n    }\n  }\n};\nvar QuickInputAccessibilityProvider = class {\n  getWidgetAriaLabel() {\n    return localize(1749, \"Quick Input\");\n  }\n  getAriaLabel(element) {\n    return element.separator?.label ? `${element.saneAriaLabel}, ${element.separator.label}` : element.saneAriaLabel;\n  }\n  getWidgetRole() {\n    return \"listbox\";\n  }\n  getRole(element) {\n    return element.hasCheckbox ? \"checkbox\" : \"option\";\n  }\n  isChecked(element) {\n    if (!element.hasCheckbox || !(element instanceof QuickPickItemElement)) {\n      return void 0;\n    }\n    return {\n      get value() {\n        return element.checked;\n      },\n      onDidChange: (e) =\u003e element.onChecked(() =\u003e e())\n    };\n  }\n};\nvar BaseQuickInputListRenderer = class {\n  constructor(hoverDelegate) {\n    this.hoverDelegate = hoverDelegate;\n  }\n  // TODO: only do the common stuff here and have a subclass handle their specific stuff\n  renderTemplate(container) {\n    const data = /* @__PURE__ */ Object.create(null);\n    data.toDisposeElement = new DisposableStore();\n    data.toDisposeTemplate = new DisposableStore();\n    data.entry = append(container, $19(\".quick-input-list-entry\"));\n    const label = append(data.entry, $19(\"label.quick-input-list-label\"));\n    data.outerLabel = label;\n    data.checkbox = data.toDisposeTemplate.add(new MutableDisposable());\n    data.toDisposeTemplate.add(addStandardDisposableListener(label, EventType.CLICK, (e) =\u003e {\n      if (data.checkbox.value \u0026\u0026 !e.defaultPrevented \u0026\u0026 data.checkbox.value.enabled) {\n        const checked = !data.checkbox.value.checked;\n        data.checkbox.value.checked = checked;\n        data.element.checked = checked;\n      }\n    }));\n    const rows = append(label, $19(\".quick-input-list-rows\"));\n    const row1 = append(rows, $19(\".quick-input-list-row\"));\n    const row2 = append(rows, $19(\".quick-input-list-row\"));\n    data.label = new IconLabel(row1, { supportHighlights: true, supportDescriptionHighlights: true, supportIcons: true, hoverDelegate: this.hoverDelegate });\n    data.toDisposeTemplate.add(data.label);\n    data.icon = prepend(data.label.element, $19(\".quick-input-list-icon\"));\n    const keybindingContainer = append(row1, $19(\".quick-input-list-entry-keybinding\"));\n    data.keybinding = new KeybindingLabel(keybindingContainer, OS);\n    data.toDisposeTemplate.add(data.keybinding);\n    const detailContainer = append(row2, $19(\".quick-input-list-label-meta\"));\n    data.detail = new IconLabel(detailContainer, { supportHighlights: true, supportIcons: true, hoverDelegate: this.hoverDelegate });\n    data.toDisposeTemplate.add(data.detail);\n    data.separator = append(data.entry, $19(\".quick-input-list-separator\"));\n    data.actionBar = new ActionBar(data.entry, this.hoverDelegate ? { hoverDelegate: this.hoverDelegate } : void 0);\n    data.actionBar.domNode.classList.add(\"quick-input-list-entry-action-bar\");\n    data.toDisposeTemplate.add(data.actionBar);\n    return data;\n  }\n  disposeTemplate(data) {\n    data.toDisposeElement.dispose();\n    data.toDisposeTemplate.dispose();\n  }\n  disposeElement(_element, _index, data) {\n    data.toDisposeElement.clear();\n    data.actionBar.clear();\n  }\n};\nvar QuickPickItemElementRenderer = class QuickPickItemElementRenderer2 extends BaseQuickInputListRenderer {\n  static {\n    QuickPickItemElementRenderer_1 = this;\n  }\n  static {\n    this.ID = \"quickpickitem\";\n  }\n  constructor(hoverDelegate, themeService) {\n    super(hoverDelegate);\n    this.themeService = themeService;\n    this._itemsWithSeparatorsFrequency = /* @__PURE__ */ new Map();\n  }\n  get templateId() {\n    return QuickPickItemElementRenderer_1.ID;\n  }\n  ensureCheckbox(element, data) {\n    if (!element.hasCheckbox) {\n      data.checkbox.value?.domNode.remove();\n      data.checkbox.clear();\n      return;\n    }\n    let checkbox = data.checkbox.value;\n    if (!checkbox) {\n      checkbox = new Checkbox(element.saneLabel, element.checked, { ...defaultCheckboxStyles, size: 15 });\n      data.checkbox.value = checkbox;\n      data.outerLabel.prepend(checkbox.domNode);\n    } else {\n      checkbox.setTitle(element.saneLabel);\n    }\n    if (element.checkboxDisabled) {\n      checkbox.disable();\n    } else {\n      checkbox.enable();\n    }\n    checkbox.checked = element.checked;\n    data.toDisposeElement.add(element.onChecked((checked) =\u003e checkbox.checked = checked));\n    data.toDisposeElement.add(checkbox.onChange(() =\u003e element.checked = checkbox.checked));\n  }\n  renderElement(node, index, data) {\n    const element = node.element;\n    data.element = element;\n    element.element = data.entry ?? void 0;\n    const mainItem = element.item;\n    element.element.classList.toggle(\"not-pickable\", element.item.pickable === false);\n    this.ensureCheckbox(element, data);\n    const { labelHighlights, descriptionHighlights, detailHighlights } = element;\n    if (mainItem.iconPath) {\n      const icon = isDark(this.themeService.getColorTheme().type) ? mainItem.iconPath.dark : mainItem.iconPath.light ?? mainItem.iconPath.dark;\n      const iconUrl = URI.revive(icon);\n      data.icon.className = \"quick-input-list-icon\";\n      data.icon.style.backgroundImage = asCSSUrl(iconUrl);\n    } else {\n      data.icon.style.backgroundImage = \"\";\n      data.icon.className = mainItem.iconClass ? `quick-input-list-icon ${mainItem.iconClass}` : \"\";\n    }\n    let descriptionTitle;\n    if (!element.saneTooltip \u0026\u0026 element.saneDescription) {\n      descriptionTitle = {\n        markdown: {\n          value: escape(element.saneDescription),\n          supportThemeIcons: true\n        },\n        markdownNotSupportedFallback: element.saneDescription\n      };\n    }\n    const options2 = {\n      matches: labelHighlights || [],\n      // If we have a tooltip, we want that to be shown and not any other hover\n      descriptionTitle,\n      descriptionMatches: descriptionHighlights || [],\n      labelEscapeNewLines: true\n    };\n    options2.extraClasses = mainItem.iconClasses;\n    options2.italic = mainItem.italic;\n    options2.strikethrough = mainItem.strikethrough;\n    data.entry.classList.remove(\"quick-input-list-separator-as-item\");\n    data.label.setLabel(element.saneLabel, element.saneDescription, options2);\n    data.keybinding.set(mainItem.keybinding);\n    if (element.saneDetail) {\n      let title;\n      if (!element.saneTooltip) {\n        title = {\n          markdown: {\n            value: escape(element.saneDetail),\n            supportThemeIcons: true\n          },\n          markdownNotSupportedFallback: element.saneDetail\n        };\n      }\n      data.detail.element.style.display = \"\";\n      data.detail.setLabel(element.saneDetail, void 0, {\n        matches: detailHighlights,\n        title,\n        labelEscapeNewLines: true\n      });\n    } else {\n      data.detail.element.style.display = \"none\";\n    }\n    if (element.separator?.label) {\n      data.separator.textContent = element.separator.label;\n      data.separator.style.display = \"\";\n      this.addItemWithSeparator(element);\n    } else {\n      data.separator.style.display = \"none\";\n    }\n    data.entry.classList.toggle(\"quick-input-list-separator-border\", !!element.separator \u0026\u0026 element.childIndex !== 0);\n    const buttons = mainItem.buttons;\n    if (buttons \u0026\u0026 buttons.length) {\n      data.actionBar.push(buttons.map((button, index2) =\u003e quickInputButtonToAction(button, `id-${index2}`, () =\u003e element.fireButtonTriggered({ button, item: element.item }))), { icon: true, label: false });\n      data.entry.classList.add(\"has-actions\");\n    } else {\n      data.entry.classList.remove(\"has-actions\");\n    }\n  }\n  disposeElement(element, _index, data) {\n    this.removeItemWithSeparator(element.element);\n    super.disposeElement(element, _index, data);\n  }\n  isItemWithSeparatorVisible(item) {\n    return this._itemsWithSeparatorsFrequency.has(item);\n  }\n  addItemWithSeparator(item) {\n    this._itemsWithSeparatorsFrequency.set(item, (this._itemsWithSeparatorsFrequency.get(item) || 0) + 1);\n  }\n  removeItemWithSeparator(item) {\n    const frequency = this._itemsWithSeparatorsFrequency.get(item) || 0;\n    if (frequency \u003e 1) {\n      this._itemsWithSeparatorsFrequency.set(item, frequency - 1);\n    } else {\n      this._itemsWithSeparatorsFrequency.delete(item);\n    }\n  }\n};\nQuickPickItemElementRenderer = QuickPickItemElementRenderer_1 = __decorate180([\n  __param173(1, IThemeService)\n], QuickPickItemElementRenderer);\nvar QuickPickSeparatorElementRenderer = class _QuickPickSeparatorElementRenderer extends BaseQuickInputListRenderer {\n  constructor() {\n    super(...arguments);\n    this._visibleSeparatorsFrequency = /* @__PURE__ */ new Map();\n  }\n  static {\n    this.ID = \"quickpickseparator\";\n  }\n  get templateId() {\n    return _QuickPickSeparatorElementRenderer.ID;\n  }\n  get visibleSeparators() {\n    return [...this._visibleSeparatorsFrequency.keys()];\n  }\n  isSeparatorVisible(separator2) {\n    return this._visibleSeparatorsFrequency.has(separator2);\n  }\n  renderElement(node, index, data) {\n    const element = node.element;\n    data.element = element;\n    element.element = data.entry ?? void 0;\n    element.element.classList.toggle(\"focus-inside\", !!element.focusInsideSeparator);\n    const mainItem = element.separator;\n    const { labelHighlights, descriptionHighlights } = element;\n    data.icon.style.backgroundImage = \"\";\n    data.icon.className = \"\";\n    let descriptionTitle;\n    if (!element.saneTooltip \u0026\u0026 element.saneDescription) {\n      descriptionTitle = {\n        markdown: {\n          value: escape(element.saneDescription),\n          supportThemeIcons: true\n        },\n        markdownNotSupportedFallback: element.saneDescription\n      };\n    }\n    const options2 = {\n      matches: labelHighlights || [],\n      // If we have a tooltip, we want that to be shown and not any other hover\n      descriptionTitle,\n      descriptionMatches: descriptionHighlights || [],\n      labelEscapeNewLines: true\n    };\n    data.entry.classList.add(\"quick-input-list-separator-as-item\");\n    data.label.setLabel(element.saneLabel, element.saneDescription, options2);\n    data.separator.style.display = \"none\";\n    data.entry.classList.add(\"quick-input-list-separator-border\");\n    const buttons = mainItem.buttons;\n    if (buttons \u0026\u0026 buttons.length) {\n      data.actionBar.push(buttons.map((button, index2) =\u003e quickInputButtonToAction(button, `id-${index2}`, () =\u003e element.fireSeparatorButtonTriggered({ button, separator: element.separator }))), { icon: true, label: false });\n      data.entry.classList.add(\"has-actions\");\n    } else {\n      data.entry.classList.remove(\"has-actions\");\n    }\n    this.addSeparator(element);\n  }\n  disposeElement(element, _index, data) {\n    this.removeSeparator(element.element);\n    if (!this.isSeparatorVisible(element.element)) {\n      element.element.element?.classList.remove(\"focus-inside\");\n    }\n    super.disposeElement(element, _index, data);\n  }\n  addSeparator(separator2) {\n    this._visibleSeparatorsFrequency.set(separator2, (this._visibleSeparatorsFrequency.get(separator2) || 0) + 1);\n  }\n  removeSeparator(separator2) {\n    const frequency = this._visibleSeparatorsFrequency.get(separator2) || 0;\n    if (frequency \u003e 1) {\n      this._visibleSeparatorsFrequency.set(separator2, frequency - 1);\n    } else {\n      this._visibleSeparatorsFrequency.delete(separator2);\n    }\n  }\n};\nvar QuickInputList = class QuickInputList2 extends Disposable {\n  constructor(parent, hoverDelegate, linkOpenerDelegate, id, instantiationService, accessibilityService) {\n    super();\n    this.parent = parent;\n    this.hoverDelegate = hoverDelegate;\n    this.linkOpenerDelegate = linkOpenerDelegate;\n    this.accessibilityService = accessibilityService;\n    this._onKeyDown = new Emitter();\n    this._onLeave = new Emitter();\n    this.onLeave = this._onLeave.event;\n    this._visibleCountObservable = observableValue(\"VisibleCount\", 0);\n    this.onChangedVisibleCount = Event.fromObservable(this._visibleCountObservable, this._store);\n    this._allVisibleCheckedObservable = observableValue(\"AllVisibleChecked\", false);\n    this.onChangedAllVisibleChecked = Event.fromObservable(this._allVisibleCheckedObservable, this._store);\n    this._checkedCountObservable = observableValue(\"CheckedCount\", 0);\n    this.onChangedCheckedCount = Event.fromObservable(this._checkedCountObservable, this._store);\n    this._checkedElementsObservable = observableValueOpts({ equalsFn: equals }, new Array());\n    this.onChangedCheckedElements = Event.fromObservable(this._checkedElementsObservable, this._store);\n    this._onButtonTriggered = new Emitter();\n    this.onButtonTriggered = this._onButtonTriggered.event;\n    this._onSeparatorButtonTriggered = new Emitter();\n    this.onSeparatorButtonTriggered = this._onSeparatorButtonTriggered.event;\n    this._elementChecked = new Emitter();\n    this._elementCheckedEventBufferer = new EventBufferer();\n    this._hasCheckboxes = false;\n    this._inputElements = new Array();\n    this._elementTree = new Array();\n    this._itemElements = new Array();\n    this._elementDisposable = this._register(new DisposableStore());\n    this._matchOnDescription = false;\n    this._matchOnDetail = false;\n    this._matchOnLabel = true;\n    this._matchOnLabelMode = \"fuzzy\";\n    this._sortByLabel = true;\n    this._shouldLoop = true;\n    this._container = append(this.parent, $19(\".quick-input-list\"));\n    this._separatorRenderer = new QuickPickSeparatorElementRenderer(hoverDelegate);\n    this._itemRenderer = instantiationService.createInstance(QuickPickItemElementRenderer, hoverDelegate);\n    this._tree = this._register(instantiationService.createInstance(WorkbenchObjectTree, \"QuickInput\", this._container, new QuickInputItemDelegate(), [this._itemRenderer, this._separatorRenderer], {\n      filter: {\n        filter(element) {\n          return element.hidden ? 0 : element instanceof QuickPickSeparatorElement ? 2 : 1;\n        }\n      },\n      sorter: {\n        compare: (element, otherElement) =\u003e {\n          if (!this.sortByLabel || !this._lastQueryString) {\n            return 0;\n          }\n          const normalizedSearchValue = this._lastQueryString.toLowerCase();\n          return compareEntries(element, otherElement, normalizedSearchValue);\n        }\n      },\n      accessibilityProvider: new QuickInputAccessibilityProvider(),\n      setRowLineHeight: false,\n      multipleSelectionSupport: false,\n      hideTwistiesOfChildlessElements: true,\n      renderIndentGuides: RenderIndentGuides.None,\n      findWidgetEnabled: false,\n      indent: 0,\n      horizontalScrolling: false,\n      allowNonCollapsibleParents: true,\n      alwaysConsumeMouseWheel: true\n    }));\n    this._tree.getHTMLElement().id = id;\n    this._registerListeners();\n  }\n  //#region public getters/setters\n  get onDidChangeFocus() {\n    return Event.map(this._tree.onDidChangeFocus, (e) =\u003e e.elements.filter((e2) =\u003e e2 instanceof QuickPickItemElement).map((e2) =\u003e e2.item), this._store);\n  }\n  get onDidChangeSelection() {\n    return Event.map(this._tree.onDidChangeSelection, (e) =\u003e ({\n      items: e.elements.filter((e2) =\u003e e2 instanceof QuickPickItemElement).map((e2) =\u003e e2.item),\n      event: e.browserEvent\n    }), this._store);\n  }\n  get displayed() {\n    return this._container.style.display !== \"none\";\n  }\n  set displayed(value) {\n    this._container.style.display = value ? \"\" : \"none\";\n  }\n  get scrollTop() {\n    return this._tree.scrollTop;\n  }\n  set scrollTop(scrollTop) {\n    this._tree.scrollTop = scrollTop;\n  }\n  get ariaLabel() {\n    return this._tree.ariaLabel;\n  }\n  set ariaLabel(label) {\n    this._tree.ariaLabel = label ?? \"\";\n  }\n  set enabled(value) {\n    this._tree.getHTMLElement().style.pointerEvents = value ? \"\" : \"none\";\n  }\n  get matchOnDescription() {\n    return this._matchOnDescription;\n  }\n  set matchOnDescription(value) {\n    this._matchOnDescription = value;\n  }\n  get matchOnDetail() {\n    return this._matchOnDetail;\n  }\n  set matchOnDetail(value) {\n    this._matchOnDetail = value;\n  }\n  get matchOnLabel() {\n    return this._matchOnLabel;\n  }\n  set matchOnLabel(value) {\n    this._matchOnLabel = value;\n  }\n  get matchOnLabelMode() {\n    return this._matchOnLabelMode;\n  }\n  set matchOnLabelMode(value) {\n    this._matchOnLabelMode = value;\n  }\n  get sortByLabel() {\n    return this._sortByLabel;\n  }\n  set sortByLabel(value) {\n    this._sortByLabel = value;\n  }\n  get shouldLoop() {\n    return this._shouldLoop;\n  }\n  set shouldLoop(value) {\n    this._shouldLoop = value;\n  }\n  //#endregion\n  //#region register listeners\n  _registerListeners() {\n    this._registerOnKeyDown();\n    this._registerOnContainerClick();\n    this._registerOnMouseMiddleClick();\n    this._registerOnTreeModelChanged();\n    this._registerOnElementChecked();\n    this._registerOnContextMenu();\n    this._registerHoverListeners();\n    this._registerSelectionChangeListener();\n    this._registerSeparatorActionShowingListeners();\n  }\n  _registerOnKeyDown() {\n    this._register(this._tree.onKeyDown((e) =\u003e {\n      const event = new StandardKeyboardEvent(e);\n      switch (event.keyCode) {\n        case 10:\n          this.toggleCheckbox();\n          break;\n      }\n      this._onKeyDown.fire(event);\n    }));\n  }\n  _registerOnContainerClick() {\n    this._register(addDisposableListener(this._container, EventType.CLICK, (e) =\u003e {\n      if (e.x || e.y) {\n        this._onLeave.fire();\n      }\n    }));\n  }\n  _registerOnMouseMiddleClick() {\n    this._register(addDisposableListener(this._container, EventType.AUXCLICK, (e) =\u003e {\n      if (e.button === 1) {\n        this._onLeave.fire();\n      }\n    }));\n  }\n  _registerOnTreeModelChanged() {\n    this._register(this._tree.onDidChangeModel(() =\u003e {\n      const visibleCount = this._itemElements.filter((e) =\u003e !e.hidden).length;\n      this._visibleCountObservable.set(visibleCount, void 0);\n      if (this._hasCheckboxes) {\n        this._updateCheckedObservables();\n      }\n    }));\n  }\n  _registerOnElementChecked() {\n    this._register(this._elementCheckedEventBufferer.wrapEvent(this._elementChecked.event, (_, e) =\u003e e)((_) =\u003e this._updateCheckedObservables()));\n  }\n  _registerOnContextMenu() {\n    this._register(this._tree.onContextMenu((e) =\u003e {\n      if (e.element) {\n        e.browserEvent.preventDefault();\n        this._tree.setSelection([e.element]);\n      }\n    }));\n  }\n  _registerHoverListeners() {\n    const delayer3 = this._register(new ThrottledDelayer(typeof this.hoverDelegate.delay === \"function\" ? this.hoverDelegate.delay() : this.hoverDelegate.delay));\n    this._register(this._tree.onMouseOver(async (e) =\u003e {\n      if (isHTMLAnchorElement(e.browserEvent.target)) {\n        delayer3.cancel();\n        return;\n      }\n      if (\n        // anchors are an exception as called out above so we skip them here\n        !isHTMLAnchorElement(e.browserEvent.relatedTarget) \u0026\u0026 // check if the mouse is still over the same element\n        isAncestor(e.browserEvent.relatedTarget, e.element?.element)\n      ) {\n        return;\n      }\n      try {\n        await delayer3.trigger(async () =\u003e {\n          if (e.element instanceof QuickPickItemElement) {\n            this.showHover(e.element);\n          }\n        });\n      } catch (e2) {\n        if (!isCancellationError(e2)) {\n          throw e2;\n        }\n      }\n    }));\n    this._register(this._tree.onMouseOut((e) =\u003e {\n      if (isAncestor(e.browserEvent.relatedTarget, e.element?.element)) {\n        return;\n      }\n      delayer3.cancel();\n    }));\n  }\n  /**\n   * Register's focus change and mouse events so that we can track when items inside of a\n   * separator's section are focused or hovered so that we can display the separator's actions\n   */\n  _registerSeparatorActionShowingListeners() {\n    this._register(this._tree.onDidChangeFocus((e) =\u003e {\n      const parent = e.elements[0] ? this._tree.getParentElement(e.elements[0]) : null;\n      for (const separator2 of this._separatorRenderer.visibleSeparators) {\n        const value = separator2 === parent;\n        const currentActive = !!(separator2.focusInsideSeparator \u0026 QuickPickSeparatorFocusReason.ACTIVE_ITEM);\n        if (currentActive !== value) {\n          if (value) {\n            separator2.focusInsideSeparator |= QuickPickSeparatorFocusReason.ACTIVE_ITEM;\n          } else {\n            separator2.focusInsideSeparator \u0026= ~QuickPickSeparatorFocusReason.ACTIVE_ITEM;\n          }\n          this._tree.rerender(separator2);\n        }\n      }\n    }));\n    this._register(this._tree.onMouseOver((e) =\u003e {\n      const parent = e.element ? this._tree.getParentElement(e.element) : null;\n      for (const separator2 of this._separatorRenderer.visibleSeparators) {\n        if (separator2 !== parent) {\n          continue;\n        }\n        const currentMouse = !!(separator2.focusInsideSeparator \u0026 QuickPickSeparatorFocusReason.MOUSE_HOVER);\n        if (!currentMouse) {\n          separator2.focusInsideSeparator |= QuickPickSeparatorFocusReason.MOUSE_HOVER;\n          this._tree.rerender(separator2);\n        }\n      }\n    }));\n    this._register(this._tree.onMouseOut((e) =\u003e {\n      const parent = e.element ? this._tree.getParentElement(e.element) : null;\n      for (const separator2 of this._separatorRenderer.visibleSeparators) {\n        if (separator2 !== parent) {\n          continue;\n        }\n        const currentMouse = !!(separator2.focusInsideSeparator \u0026 QuickPickSeparatorFocusReason.MOUSE_HOVER);\n        if (currentMouse) {\n          separator2.focusInsideSeparator \u0026= ~QuickPickSeparatorFocusReason.MOUSE_HOVER;\n          this._tree.rerender(separator2);\n        }\n      }\n    }));\n  }\n  _registerSelectionChangeListener() {\n    this._register(this._tree.onDidChangeSelection((e) =\u003e {\n      const elementsWithoutSeparators = e.elements.filter((e2) =\u003e e2 instanceof QuickPickItemElement);\n      if (elementsWithoutSeparators.length !== e.elements.length) {\n        if (e.elements.length === 1 \u0026\u0026 e.elements[0] instanceof QuickPickSeparatorElement) {\n          this._tree.setFocus([e.elements[0].children[0]]);\n          this._tree.reveal(e.elements[0], 0);\n        }\n        this._tree.setSelection(elementsWithoutSeparators);\n      }\n    }));\n  }\n  //#endregion\n  //#region public methods\n  setAllVisibleChecked(checked) {\n    this._elementCheckedEventBufferer.bufferEvents(() =\u003e {\n      this._itemElements.forEach((element) =\u003e {\n        if (!element.hidden \u0026\u0026 !element.checkboxDisabled \u0026\u0026 element.item.pickable !== false) {\n          element.checked = checked;\n        }\n      });\n    });\n  }\n  setElements(inputElements) {\n    this._elementDisposable.clear();\n    this._lastQueryString = void 0;\n    this._inputElements = inputElements;\n    this._hasCheckboxes = this.parent.classList.contains(\"show-checkboxes\");\n    let currentSeparatorElement;\n    this._itemElements = new Array();\n    this._elementTree = inputElements.reduce((result, item, index) =\u003e {\n      let element;\n      if (item.type === \"separator\") {\n        if (!item.buttons) {\n          return result;\n        }\n        currentSeparatorElement = new QuickPickSeparatorElement(index, (e) =\u003e this._onSeparatorButtonTriggered.fire(e), item);\n        element = currentSeparatorElement;\n      } else {\n        const previous = index \u003e 0 ? inputElements[index - 1] : void 0;\n        let separator2;\n        if (previous \u0026\u0026 previous.type === \"separator\" \u0026\u0026 !previous.buttons) {\n          separator2 = previous;\n        }\n        const qpi = new QuickPickItemElement(index, currentSeparatorElement?.children ? currentSeparatorElement.children.length : index, this._hasCheckboxes \u0026\u0026 item.pickable !== false, (e) =\u003e this._onButtonTriggered.fire(e), this._elementChecked, item, separator2);\n        this._itemElements.push(qpi);\n        if (currentSeparatorElement) {\n          currentSeparatorElement.children.push(qpi);\n          return result;\n        }\n        element = qpi;\n      }\n      result.push(element);\n      return result;\n    }, new Array());\n    this._setElementsToTree(this._elementTree);\n    if (this.accessibilityService.isScreenReaderOptimized()) {\n      setTimeout(() =\u003e {\n        const focusedElement = this._tree.getHTMLElement().querySelector(`.monaco-list-row.focused`);\n        const parent = focusedElement?.parentNode;\n        if (focusedElement \u0026\u0026 parent) {\n          const nextSibling = focusedElement.nextSibling;\n          focusedElement.remove();\n          parent.insertBefore(focusedElement, nextSibling);\n        }\n      }, 0);\n    }\n  }\n  setFocusedElements(items) {\n    const elements = items.map((item) =\u003e this._itemElements.find((e) =\u003e e.item === item)).filter((e) =\u003e !!e).filter((e) =\u003e !e.hidden);\n    this._tree.setFocus(elements);\n    if (items.length \u003e 0) {\n      const focused = this._tree.getFocus()[0];\n      if (focused) {\n        this._tree.reveal(focused);\n      }\n    }\n  }\n  getActiveDescendant() {\n    return this._tree.getHTMLElement().getAttribute(\"aria-activedescendant\");\n  }\n  setSelectedElements(items) {\n    const elements = items.map((item) =\u003e this._itemElements.find((e) =\u003e e.item === item)).filter((e) =\u003e !!e);\n    this._tree.setSelection(elements);\n  }\n  getCheckedElements() {\n    return this._itemElements.filter((e) =\u003e e.checked).map((e) =\u003e e.item);\n  }\n  setCheckedElements(items) {\n    this._elementCheckedEventBufferer.bufferEvents(() =\u003e {\n      const checked = /* @__PURE__ */ new Set();\n      for (const item of items) {\n        checked.add(item);\n      }\n      for (const element of this._itemElements) {\n        element.checked = checked.has(element.item);\n      }\n    });\n  }\n  focus(what) {\n    if (!this._itemElements.length) {\n      return;\n    }\n    if (what === QuickPickFocus.Second \u0026\u0026 this._itemElements.length \u003c 2) {\n      what = QuickPickFocus.First;\n    }\n    switch (what) {\n      case QuickPickFocus.First:\n        this._tree.scrollTop = 0;\n        this._tree.focusFirst(void 0, (e) =\u003e e.element instanceof QuickPickItemElement);\n        break;\n      case QuickPickFocus.Second: {\n        this._tree.scrollTop = 0;\n        let isSecondItem = false;\n        this._tree.focusFirst(void 0, (e) =\u003e {\n          if (!(e.element instanceof QuickPickItemElement)) {\n            return false;\n          }\n          if (isSecondItem) {\n            return true;\n          }\n          isSecondItem = !isSecondItem;\n          return false;\n        });\n        break;\n      }\n      case QuickPickFocus.Last:\n        this._tree.scrollTop = this._tree.scrollHeight;\n        this._tree.focusLast(void 0, (e) =\u003e e.element instanceof QuickPickItemElement);\n        break;\n      case QuickPickFocus.Next: {\n        const prevFocus = this._tree.getFocus();\n        this._tree.focusNext(void 0, this._shouldLoop, void 0, (e) =\u003e {\n          if (!(e.element instanceof QuickPickItemElement)) {\n            return false;\n          }\n          this._tree.reveal(e.element);\n          return true;\n        });\n        const currentFocus = this._tree.getFocus();\n        if (prevFocus.length \u0026\u0026 prevFocus[0] === currentFocus[0]) {\n          this._onLeave.fire();\n        }\n        break;\n      }\n      case QuickPickFocus.Previous: {\n        const prevFocus = this._tree.getFocus();\n        this._tree.focusPrevious(void 0, this._shouldLoop, void 0, (e) =\u003e {\n          if (!(e.element instanceof QuickPickItemElement)) {\n            return false;\n          }\n          const parent = this._tree.getParentElement(e.element);\n          if (parent === null || parent.children[0] !== e.element) {\n            this._tree.reveal(e.element);\n          } else {\n            this._tree.reveal(parent);\n          }\n          return true;\n        });\n        const currentFocus = this._tree.getFocus();\n        if (prevFocus.length \u0026\u0026 prevFocus[0] === currentFocus[0]) {\n          this._onLeave.fire();\n        }\n        break;\n      }\n      case QuickPickFocus.NextPage:\n        this._tree.focusNextPage(void 0, (e) =\u003e {\n          if (!(e.element instanceof QuickPickItemElement)) {\n            return false;\n          }\n          this._tree.reveal(e.element);\n          return true;\n        });\n        break;\n      case QuickPickFocus.PreviousPage:\n        this._tree.focusPreviousPage(void 0, (e) =\u003e {\n          if (!(e.element instanceof QuickPickItemElement)) {\n            return false;\n          }\n          const parent = this._tree.getParentElement(e.element);\n          if (parent === null || parent.children[0] !== e.element) {\n            this._tree.reveal(e.element);\n          } else {\n            this._tree.reveal(parent);\n          }\n          return true;\n        });\n        break;\n      case QuickPickFocus.NextSeparator: {\n        let foundSeparatorAsItem = false;\n        const before = this._tree.getFocus()[0];\n        this._tree.focusNext(void 0, true, void 0, (e) =\u003e {\n          if (foundSeparatorAsItem) {\n            return true;\n          }\n          if (e.element instanceof QuickPickSeparatorElement) {\n            foundSeparatorAsItem = true;\n            if (this._separatorRenderer.isSeparatorVisible(e.element)) {\n              this._tree.reveal(e.element.children[0]);\n            } else {\n              this._tree.reveal(e.element, 0);\n            }\n          } else if (e.element instanceof QuickPickItemElement) {\n            if (e.element.separator) {\n              if (this._itemRenderer.isItemWithSeparatorVisible(e.element)) {\n                this._tree.reveal(e.element);\n              } else {\n                this._tree.reveal(e.element, 0);\n              }\n              return true;\n            } else if (e.element === this._elementTree[0]) {\n              this._tree.reveal(e.element, 0);\n              return true;\n            }\n          }\n          return false;\n        });\n        const after2 = this._tree.getFocus()[0];\n        if (before === after2) {\n          this._tree.scrollTop = this._tree.scrollHeight;\n          this._tree.focusLast(void 0, (e) =\u003e e.element instanceof QuickPickItemElement);\n        }\n        break;\n      }\n      case QuickPickFocus.PreviousSeparator: {\n        let focusElement;\n        let foundSeparator = !!this._tree.getFocus()[0]?.separator;\n        this._tree.focusPrevious(void 0, true, void 0, (e) =\u003e {\n          if (e.element instanceof QuickPickSeparatorElement) {\n            if (foundSeparator) {\n              if (!focusElement) {\n                if (this._separatorRenderer.isSeparatorVisible(e.element)) {\n                  this._tree.reveal(e.element);\n                } else {\n                  this._tree.reveal(e.element, 0);\n                }\n                focusElement = e.element.children[0];\n              }\n            } else {\n              foundSeparator = true;\n            }\n          } else if (e.element instanceof QuickPickItemElement) {\n            if (!focusElement) {\n              if (e.element.separator) {\n                if (this._itemRenderer.isItemWithSeparatorVisible(e.element)) {\n                  this._tree.reveal(e.element);\n                } else {\n                  this._tree.reveal(e.element, 0);\n                }\n                focusElement = e.element;\n              } else if (e.element === this._elementTree[0]) {\n                this._tree.reveal(e.element, 0);\n                return true;\n              }\n            }\n          }\n          return false;\n        });\n        if (focusElement) {\n          this._tree.setFocus([focusElement]);\n        }\n        break;\n      }\n    }\n  }\n  clearFocus() {\n    this._tree.setFocus([]);\n  }\n  domFocus() {\n    this._tree.domFocus();\n  }\n  layout(maxHeight) {\n    this._tree.getHTMLElement().style.maxHeight = maxHeight ? `${// Make sure height aligns with list item heights\n    Math.floor(maxHeight / 44) * 44 + 6}px` : \"\";\n    this._tree.layout();\n  }\n  filter(query) {\n    this._lastQueryString = query;\n    if (!(this._sortByLabel || this._matchOnLabel || this._matchOnDescription || this._matchOnDetail)) {\n      this._tree.layout();\n      return false;\n    }\n    const queryWithWhitespace = query;\n    query = query.trim();\n    if (!query || !(this.matchOnLabel || this.matchOnDescription || this.matchOnDetail)) {\n      this._itemElements.forEach((element) =\u003e {\n        element.labelHighlights = void 0;\n        element.descriptionHighlights = void 0;\n        element.detailHighlights = void 0;\n        element.hidden = false;\n        const previous = element.index \u0026\u0026 this._inputElements[element.index - 1];\n        if (element.item) {\n          element.separator = previous \u0026\u0026 previous.type === \"separator\" \u0026\u0026 !previous.buttons ? previous : void 0;\n        }\n      });\n    } else {\n      let currentSeparator;\n      this._itemElements.forEach((element) =\u003e {\n        let labelHighlights;\n        if (this.matchOnLabelMode === \"fuzzy\") {\n          labelHighlights = this.matchOnLabel ? matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneLabel)) ?? void 0 : void 0;\n        } else {\n          labelHighlights = this.matchOnLabel ? matchesContiguousIconAware(queryWithWhitespace, parseLabelWithIcons(element.saneLabel)) ?? void 0 : void 0;\n        }\n        const descriptionHighlights = this.matchOnDescription ? matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneDescription || \"\")) ?? void 0 : void 0;\n        const detailHighlights = this.matchOnDetail ? matchesFuzzyIconAware(query, parseLabelWithIcons(element.saneDetail || \"\")) ?? void 0 : void 0;\n        if (labelHighlights || descriptionHighlights || detailHighlights) {\n          element.labelHighlights = labelHighlights;\n          element.descriptionHighlights = descriptionHighlights;\n          element.detailHighlights = detailHighlights;\n          element.hidden = false;\n        } else {\n          element.labelHighlights = void 0;\n          element.descriptionHighlights = void 0;\n          element.detailHighlights = void 0;\n          element.hidden = element.item ? !element.item.alwaysShow : true;\n        }\n        if (element.item) {\n          element.separator = void 0;\n        } else if (element.separator) {\n          element.hidden = true;\n        }\n        if (!this.sortByLabel) {\n          const previous = element.index \u0026\u0026 this._inputElements[element.index - 1] || void 0;\n          if (previous?.type === \"separator\" \u0026\u0026 !previous.buttons) {\n            currentSeparator = previous;\n          }\n          if (currentSeparator \u0026\u0026 !element.hidden) {\n            element.separator = currentSeparator;\n            currentSeparator = void 0;\n          }\n        }\n      });\n    }\n    this._setElementsToTree(this._sortByLabel \u0026\u0026 query ? this._itemElements : this._elementTree);\n    this._tree.layout();\n    return true;\n  }\n  toggleCheckbox() {\n    this._elementCheckedEventBufferer.bufferEvents(() =\u003e {\n      const elements = this._tree.getFocus().filter((e) =\u003e e instanceof QuickPickItemElement);\n      const allChecked = this._allVisibleChecked(elements);\n      for (const element of elements) {\n        if (!element.checkboxDisabled) {\n          element.checked = !allChecked;\n        }\n      }\n    });\n  }\n  style(styles) {\n    this._tree.style(styles);\n  }\n  toggleHover() {\n    const focused = this._tree.getFocus()[0];\n    if (!focused?.saneTooltip || !(focused instanceof QuickPickItemElement)) {\n      return;\n    }\n    if (this._lastHover \u0026\u0026 !this._lastHover.isDisposed) {\n      this._lastHover.dispose();\n      return;\n    }\n    this.showHover(focused);\n    const store = new DisposableStore();\n    store.add(this._tree.onDidChangeFocus((e) =\u003e {\n      if (e.elements[0] instanceof QuickPickItemElement) {\n        this.showHover(e.elements[0]);\n      }\n    }));\n    if (this._lastHover) {\n      store.add(this._lastHover);\n    }\n    this._elementDisposable.add(store);\n  }\n  //#endregion\n  //#region private methods\n  _setElementsToTree(elements) {\n    const treeElements = new Array();\n    for (const element of elements) {\n      if (element instanceof QuickPickSeparatorElement) {\n        treeElements.push({\n          element,\n          collapsible: false,\n          collapsed: false,\n          children: element.children.map((e) =\u003e ({\n            element: e,\n            collapsible: false,\n            collapsed: false\n          }))\n        });\n      } else {\n        treeElements.push({\n          element,\n          collapsible: false,\n          collapsed: false\n        });\n      }\n    }\n    this._tree.setChildren(null, treeElements);\n  }\n  _allVisibleChecked(elements, whenNoneVisible = true) {\n    for (let i2 = 0, n2 = elements.length; i2 \u003c n2; i2++) {\n      const element = elements[i2];\n      if (!element.hidden \u0026\u0026 element.item.pickable !== false) {\n        if (!element.checked) {\n          return false;\n        } else {\n          whenNoneVisible = true;\n        }\n      }\n    }\n    return whenNoneVisible;\n  }\n  _updateCheckedObservables() {\n    transaction((tx) =\u003e {\n      this._allVisibleCheckedObservable.set(this._allVisibleChecked(this._itemElements, false), tx);\n      const checkedCount = this._itemElements.filter((element) =\u003e element.checked).length;\n      this._checkedCountObservable.set(checkedCount, tx);\n      this._checkedElementsObservable.set(this.getCheckedElements(), tx);\n    });\n  }\n  /**\n   * Disposes of the hover and shows a new one for the given index if it has a tooltip.\n   * @param element The element to show the hover for\n   */\n  showHover(element) {\n    if (this._lastHover \u0026\u0026 !this._lastHover.isDisposed) {\n      this.hoverDelegate.onDidHideHover?.();\n      this._lastHover?.dispose();\n    }\n    if (!element.element || !element.saneTooltip) {\n      return;\n    }\n    this._lastHover = this.hoverDelegate.showHover({\n      content: element.saneTooltip,\n      target: element.element,\n      linkHandler: (url) =\u003e {\n        this.linkOpenerDelegate(url);\n      },\n      appearance: {\n        showPointer: true\n      },\n      container: this._container,\n      position: {\n        hoverPosition: 1\n        /* HoverPosition.RIGHT */\n      }\n    }, false);\n  }\n};\n__decorate180([\n  memoize\n], QuickInputList.prototype, \"onDidChangeFocus\", null);\n__decorate180([\n  memoize\n], QuickInputList.prototype, \"onDidChangeSelection\", null);\nQuickInputList = __decorate180([\n  __param173(4, IInstantiationService),\n  __param173(5, IAccessibilityService)\n], QuickInputList);\nfunction matchesContiguousIconAware(query, target) {\n  const { text: text2, iconOffsets } = target;\n  if (!iconOffsets || iconOffsets.length === 0) {\n    return matchesContiguous(query, text2);\n  }\n  const wordToMatchAgainstWithoutIconsTrimmed = ltrim(text2, \" \");\n  const leadingWhitespaceOffset = text2.length - wordToMatchAgainstWithoutIconsTrimmed.length;\n  const matches = matchesContiguous(query, wordToMatchAgainstWithoutIconsTrimmed);\n  if (matches) {\n    for (const match2 of matches) {\n      const iconOffset = iconOffsets[match2.start + leadingWhitespaceOffset] + leadingWhitespaceOffset;\n      match2.start += iconOffset;\n      match2.end += iconOffset;\n    }\n  }\n  return matches;\n}\nfunction matchesContiguous(word, wordToMatchAgainst) {\n  const matchIndex = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());\n  if (matchIndex !== -1) {\n    return [{ start: matchIndex, end: matchIndex + word.length }];\n  }\n  return null;\n}\nfunction compareEntries(elementA, elementB, lookFor) {\n  const labelHighlightsA = elementA.labelHighlights || [];\n  const labelHighlightsB = elementB.labelHighlights || [];\n  if (labelHighlightsA.length \u0026\u0026 !labelHighlightsB.length) {\n    return -1;\n  }\n  if (!labelHighlightsA.length \u0026\u0026 labelHighlightsB.length) {\n    return 1;\n  }\n  if (labelHighlightsA.length === 0 \u0026\u0026 labelHighlightsB.length === 0) {\n    return 0;\n  }\n  return compareAnything(elementA.saneSortLabel, elementB.saneSortLabel, lookFor);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputController.js\ninit_contextkey();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputActions.js\ninit_platform();\ninit_nls();\ninit_contextkey();\ninit_keybindingsRegistry();\nvar defaultCommandAndKeybindingRule = {\n  weight: 200,\n  when: ContextKeyExpr.and(ContextKeyExpr.or(ContextKeyExpr.equals(\n    quickInputTypeContextKeyValue,\n    \"quickPick\"\n    /* QuickInputType.QuickPick */\n  ), ContextKeyExpr.equals(\n    quickInputTypeContextKeyValue,\n    \"quickTree\"\n    /* QuickInputType.QuickTree */\n  )), inQuickInputContext),\n  metadata: { description: localize(1739, \"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.\") }\n};\nfunction registerQuickPickCommandAndKeybindingRule(rule, options2 = {}) {\n  KeybindingsRegistry.registerCommandAndKeybindingRule({\n    ...defaultCommandAndKeybindingRule,\n    ...rule,\n    secondary: getSecondary(rule.primary, rule.secondary ?? [], options2)\n  });\n}\nvar ctrlKeyMod3 = isMacintosh ? 256 : 2048;\nfunction getSecondary(primary, secondary, options2 = {}) {\n  if (options2.withAltMod) {\n    secondary.push(512 + primary);\n  }\n  if (options2.withCtrlMod) {\n    secondary.push(ctrlKeyMod3 + primary);\n    if (options2.withAltMod) {\n      secondary.push(512 + ctrlKeyMod3 + primary);\n    }\n  }\n  if (options2.withCmdMod \u0026\u0026 isMacintosh) {\n    secondary.push(2048 + primary);\n    if (options2.withCtrlMod) {\n      secondary.push(2048 + 256 + primary);\n    }\n    if (options2.withAltMod) {\n      secondary.push(2048 + 512 + primary);\n      if (options2.withCtrlMod) {\n        secondary.push(2048 + 512 + 256 + primary);\n      }\n    }\n  }\n  return secondary;\n}\nfunction focusHandler(focus, focusOnQuickNatigate) {\n  return (accessor) =\u003e {\n    const currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;\n    if (!currentQuickPick) {\n      return;\n    }\n    if (focusOnQuickNatigate \u0026\u0026 currentQuickPick.quickNavigate) {\n      return currentQuickPick.focus(focusOnQuickNatigate);\n    }\n    return currentQuickPick.focus(focus);\n  };\n}\nregisterQuickPickCommandAndKeybindingRule({ id: \"quickInput.pageNext\", primary: 12, handler: focusHandler(QuickPickFocus.NextPage) }, { withAltMod: true, withCtrlMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: \"quickInput.pagePrevious\", primary: 11, handler: focusHandler(QuickPickFocus.PreviousPage) }, { withAltMod: true, withCtrlMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: \"quickInput.first\", primary: ctrlKeyMod3 + 14, handler: focusHandler(QuickPickFocus.First) }, { withAltMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: \"quickInput.last\", primary: ctrlKeyMod3 + 13, handler: focusHandler(QuickPickFocus.Last) }, { withAltMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: \"quickInput.next\", primary: 18, handler: focusHandler(QuickPickFocus.Next) }, { withCtrlMod: true });\nregisterQuickPickCommandAndKeybindingRule({ id: \"quickInput.previous\", primary: 16, handler: focusHandler(QuickPickFocus.Previous) }, { withCtrlMod: true });\nvar nextSeparatorFallbackDesc = localize(1740, \"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator.\");\nvar prevSeparatorFallbackDesc = localize(1741, \"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.\");\nif (isMacintosh) {\n  registerQuickPickCommandAndKeybindingRule({\n    id: \"quickInput.nextSeparatorWithQuickAccessFallback\",\n    primary: 2048 + 18,\n    handler: focusHandler(QuickPickFocus.NextSeparator, QuickPickFocus.Next),\n    metadata: { description: nextSeparatorFallbackDesc }\n  });\n  registerQuickPickCommandAndKeybindingRule({\n    id: \"quickInput.nextSeparator\",\n    primary: 2048 + 512 + 18,\n    // Since macOS has the cmd key as the primary modifier, we need to add this additional\n    // keybinding to capture cmd+ctrl+upArrow\n    secondary: [\n      2048 + 256 + 18\n      /* KeyCode.DownArrow */\n    ],\n    handler: focusHandler(QuickPickFocus.NextSeparator)\n  }, { withCtrlMod: true });\n  registerQuickPickCommandAndKeybindingRule({\n    id: \"quickInput.previousSeparatorWithQuickAccessFallback\",\n    primary: 2048 + 16,\n    handler: focusHandler(QuickPickFocus.PreviousSeparator, QuickPickFocus.Previous),\n    metadata: { description: prevSeparatorFallbackDesc }\n  });\n  registerQuickPickCommandAndKeybindingRule({\n    id: \"quickInput.previousSeparator\",\n    primary: 2048 + 512 + 16,\n    // Since macOS has the cmd key as the primary modifier, we need to add this additional\n    // keybinding to capture cmd+ctrl+upArrow\n    secondary: [\n      2048 + 256 + 16\n      /* KeyCode.UpArrow */\n    ],\n    handler: focusHandler(QuickPickFocus.PreviousSeparator)\n  }, { withCtrlMod: true });\n} else {\n  registerQuickPickCommandAndKeybindingRule({\n    id: \"quickInput.nextSeparatorWithQuickAccessFallback\",\n    primary: 512 + 18,\n    handler: focusHandler(QuickPickFocus.NextSeparator, QuickPickFocus.Next),\n    metadata: { description: nextSeparatorFallbackDesc }\n  });\n  registerQuickPickCommandAndKeybindingRule({\n    id: \"quickInput.nextSeparator\",\n    primary: 2048 + 512 + 18,\n    handler: focusHandler(QuickPickFocus.NextSeparator)\n  });\n  registerQuickPickCommandAndKeybindingRule({\n    id: \"quickInput.previousSeparatorWithQuickAccessFallback\",\n    primary: 512 + 16,\n    handler: focusHandler(QuickPickFocus.PreviousSeparator, QuickPickFocus.Previous),\n    metadata: { description: prevSeparatorFallbackDesc }\n  });\n  registerQuickPickCommandAndKeybindingRule({\n    id: \"quickInput.previousSeparator\",\n    primary: 2048 + 512 + 16,\n    handler: focusHandler(QuickPickFocus.PreviousSeparator)\n  });\n}\nregisterQuickPickCommandAndKeybindingRule({\n  id: \"quickInput.acceptInBackground\",\n  // If we are in the quick pick but the input box is not focused or our cursor is at the end of the input box\n  when: ContextKeyExpr.and(inQuickInputContext, ContextKeyExpr.equals(\n    quickInputTypeContextKeyValue,\n    \"quickPick\"\n    /* QuickInputType.QuickPick */\n  ), ContextKeyExpr.or(InputFocusedContext.negate(), endOfQuickInputBoxContext)),\n  primary: 17,\n  // Need a little extra weight to ensure this keybinding is preferred over the default cmd+alt+right arrow keybinding\n  // https://github.com/microsoft/vscode/blob/1451e4fbbbf074a4355cc537c35b547b80ce1c52/src/vs/workbench/browser/parts/editor/editorActions.ts#L1178-L1195\n  weight: 200 + 50,\n  handler: (accessor) =\u003e {\n    const currentQuickPick = accessor.get(IQuickInputService).currentQuickInput;\n    currentQuickPick?.accept(true);\n  }\n}, { withAltMod: true, withCtrlMod: true, withCmdMod: true });\nregisterQuickPickCommandAndKeybindingRule({\n  id: \"quickInput.toggleHover\",\n  primary: ctrlKeyMod3 | 10,\n  handler: (accessor) =\u003e {\n    const quickInputService = accessor.get(IQuickInputService);\n    quickInputService.toggleHover();\n  }\n});\nif (isMacintosh) {\n  registerQuickPickCommandAndKeybindingRule({ id: \"quickInput.Next\", primary: 256 + 44, handler: focusHandler(QuickPickFocus.Next) });\n  registerQuickPickCommandAndKeybindingRule({ id: \"quickInput.Previous\", primary: 256 + 46, handler: focusHandler(QuickPickFocus.Previous) });\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputController.js\ninit_observable();\ninit_mouseEvent();\ninit_configuration();\ninit_platform();\ninit_browser();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js\ninit_dom();\ninit_event();\ninit_lifecycle();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/tree/quickInputTreeRenderer.js\ninit_dom();\ninit_event();\ninit_lifecycle();\ninit_uri();\ninit_theme();\ninit_strings();\ninit_themeService();\nvar __decorate181 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param174 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar QuickInputTreeRenderer_1;\nvar $20 = $;\nvar QuickInputTreeRenderer = class QuickInputTreeRenderer2 extends Disposable {\n  static {\n    QuickInputTreeRenderer_1 = this;\n  }\n  static {\n    this.ID = \"quickInputTreeElement\";\n  }\n  constructor(_hoverDelegate, _buttonTriggeredEmitter, onCheckedEvent, _themeService) {\n    super();\n    this._hoverDelegate = _hoverDelegate;\n    this._buttonTriggeredEmitter = _buttonTriggeredEmitter;\n    this.onCheckedEvent = onCheckedEvent;\n    this._themeService = _themeService;\n    this.templateId = QuickInputTreeRenderer_1.ID;\n  }\n  renderTemplate(container) {\n    const store = new DisposableStore();\n    const entry = append(container, $20(\".quick-input-tree-entry\"));\n    const checkbox = store.add(new TriStateCheckbox(\"\", false, { ...defaultCheckboxStyles, size: 15 }));\n    entry.appendChild(checkbox.domNode);\n    const checkboxLabel = append(entry, $20(\"label.quick-input-tree-label\"));\n    const rows = append(checkboxLabel, $20(\".quick-input-tree-rows\"));\n    const row1 = append(rows, $20(\".quick-input-tree-row\"));\n    const icon = prepend(row1, $20(\".quick-input-tree-icon\"));\n    const label = store.add(new IconLabel(row1, {\n      supportHighlights: true,\n      supportDescriptionHighlights: true,\n      supportIcons: true,\n      hoverDelegate: this._hoverDelegate\n    }));\n    const actionBar2 = store.add(new ActionBar(entry, this._hoverDelegate ? { hoverDelegate: this._hoverDelegate } : void 0));\n    actionBar2.domNode.classList.add(\"quick-input-tree-entry-action-bar\");\n    return {\n      toDisposeTemplate: store,\n      entry,\n      checkbox,\n      icon,\n      label,\n      actionBar: actionBar2,\n      toDisposeElement: new DisposableStore()\n    };\n  }\n  renderElement(node, index, templateData, _details) {\n    const store = templateData.toDisposeElement;\n    const quickTreeItem = node.element;\n    templateData.checkbox.domNode.style.display = \"\";\n    templateData.checkbox.checked = quickTreeItem.checked ?? false;\n    store.add(Event.filter(this.onCheckedEvent, (e) =\u003e e.item === quickTreeItem)((e) =\u003e templateData.checkbox.checked = e.checked));\n    if (quickTreeItem.disabled) {\n      templateData.checkbox.disable();\n    }\n    if (quickTreeItem.iconPath) {\n      const icon = isDark(this._themeService.getColorTheme().type) ? quickTreeItem.iconPath.dark : quickTreeItem.iconPath.light ?? quickTreeItem.iconPath.dark;\n      const iconUrl = URI.revive(icon);\n      templateData.icon.className = \"quick-input-tree-icon\";\n      templateData.icon.style.backgroundImage = asCSSUrl(iconUrl);\n    } else {\n      templateData.icon.style.backgroundImage = \"\";\n      templateData.icon.className = quickTreeItem.iconClass ? `quick-input-tree-icon ${quickTreeItem.iconClass}` : \"\";\n    }\n    const { labelHighlights: matches, descriptionHighlights: descriptionMatches } = node.filterData || {};\n    let descriptionTitle;\n    if (quickTreeItem.description) {\n      descriptionTitle = {\n        markdown: {\n          value: escape(quickTreeItem.description),\n          supportThemeIcons: true\n        },\n        markdownNotSupportedFallback: quickTreeItem.description\n      };\n    }\n    templateData.label.setLabel(quickTreeItem.label, quickTreeItem.description, {\n      matches,\n      descriptionMatches,\n      extraClasses: quickTreeItem.iconClasses,\n      italic: quickTreeItem.italic,\n      strikethrough: quickTreeItem.strikethrough,\n      labelEscapeNewLines: true,\n      descriptionTitle\n    });\n    const buttons = quickTreeItem.buttons;\n    if (buttons \u0026\u0026 buttons.length) {\n      templateData.actionBar.push(buttons.map((button, index2) =\u003e quickInputButtonToAction(button, `tree-${index2}`, () =\u003e this._buttonTriggeredEmitter.fire({ item: quickTreeItem, button }))), { icon: true, label: false });\n      templateData.entry.classList.add(\"has-actions\");\n    } else {\n      templateData.entry.classList.remove(\"has-actions\");\n    }\n  }\n  disposeElement(_element, _index, templateData, _details) {\n    templateData.toDisposeElement.clear();\n    templateData.actionBar.clear();\n  }\n  disposeTemplate(templateData) {\n    templateData.toDisposeElement.dispose();\n    templateData.toDisposeTemplate.dispose();\n  }\n};\nQuickInputTreeRenderer = QuickInputTreeRenderer_1 = __decorate181([\n  __param174(3, IThemeService)\n], QuickInputTreeRenderer);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/tree/quickInputDelegate.js\nvar QuickInputTreeDelegate = class {\n  getHeight(_element) {\n    return 22;\n  }\n  getTemplateId(_element) {\n    return QuickInputTreeRenderer.ID;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/tree/quickInputTree.js\nfunction getParentNodeState(parentChildren) {\n  let containsChecks = false;\n  let containsUnchecks = false;\n  let containsPartial = false;\n  for (const element of parentChildren) {\n    switch (element.element?.checked) {\n      case \"partial\":\n        containsPartial = true;\n        break;\n      case true:\n        containsChecks = true;\n        break;\n      default:\n        containsUnchecks = true;\n        break;\n    }\n    if (containsChecks \u0026\u0026 containsUnchecks \u0026\u0026 containsPartial) {\n      break;\n    }\n  }\n  const newState = containsUnchecks ? containsPartial ? \"partial\" : containsChecks ? \"partial\" : false : containsPartial ? \"partial\" : containsChecks;\n  return newState;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js\ninit_event();\ninit_iconLabels();\ninit_nls();\nvar QuickTreeAccessibilityProvider = class {\n  constructor(onCheckedEvent) {\n    this.onCheckedEvent = onCheckedEvent;\n  }\n  getWidgetAriaLabel() {\n    return localize(1751, \"Quick Tree\");\n  }\n  getAriaLabel(element) {\n    return element.ariaLabel || [element.label, element.description].map((s) =\u003e getCodiconAriaLabel(s)).filter((s) =\u003e !!s).join(\", \");\n  }\n  getWidgetRole() {\n    return \"tree\";\n  }\n  getRole(_element) {\n    return \"checkbox\";\n  }\n  isChecked(element) {\n    return {\n      get value() {\n        return element.checked === true;\n      },\n      onDidChange: (e) =\u003e Event.filter(this.onCheckedEvent, (e2) =\u003e e2.item === element)((_) =\u003e e())\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/tree/quickInputTreeFilter.js\ninit_iconLabels();\nvar QuickInputTreeFilter = class {\n  constructor() {\n    this.filterValue = \"\";\n    this.matchOnLabel = true;\n    this.matchOnDescription = false;\n  }\n  filter(element, parentVisibility) {\n    if (!this.filterValue || !(this.matchOnLabel || this.matchOnDescription)) {\n      return element.children ? { visibility: 2, data: {} } : { visibility: 1, data: {} };\n    }\n    const labelHighlights = this.matchOnLabel ? matchesFuzzyIconAware(this.filterValue, parseLabelWithIcons(element.label)) ?? void 0 : void 0;\n    const descriptionHighlights = this.matchOnDescription ? matchesFuzzyIconAware(this.filterValue, parseLabelWithIcons(element.description || \"\")) ?? void 0 : void 0;\n    const visibility = parentVisibility === 1 ? 1 : labelHighlights || descriptionHighlights ? 1 : element.children ? 2 : 0;\n    return {\n      visibility,\n      data: {\n        labelHighlights,\n        descriptionHighlights\n      }\n    };\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js\nvar __decorate182 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param175 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar $21 = $;\nvar QuickInputTreeController = class QuickInputTreeController2 extends Disposable {\n  constructor(container, hoverDelegate, instantiationService) {\n    super();\n    this.instantiationService = instantiationService;\n    this._onDidTriggerButton = this._register(new Emitter());\n    this._onDidChangeCheckboxState = this._register(new Emitter());\n    this.onDidChangeCheckboxState = this._onDidChangeCheckboxState.event;\n    this._onDidCheckedLeafItemsChange = this._register(new Emitter());\n    this._onLeave = new Emitter();\n    this.onLeave = this._onLeave.event;\n    this._container = append(container, $21(\".quick-input-tree\"));\n    this._renderer = this._register(this.instantiationService.createInstance(QuickInputTreeRenderer, hoverDelegate, this._onDidTriggerButton, this.onDidChangeCheckboxState));\n    this._filter = this.instantiationService.createInstance(QuickInputTreeFilter);\n    this._tree = this._register(this.instantiationService.createInstance(WorkbenchObjectTree, \"QuickInputTree\", this._container, new QuickInputTreeDelegate(), [this._renderer], {\n      accessibilityProvider: new QuickTreeAccessibilityProvider(this.onDidChangeCheckboxState),\n      horizontalScrolling: false,\n      multipleSelectionSupport: false,\n      findWidgetEnabled: false,\n      alwaysConsumeMouseWheel: true,\n      hideTwistiesOfChildlessElements: true,\n      renderIndentGuides: RenderIndentGuides.None,\n      expandOnDoubleClick: true,\n      expandOnlyOnTwistieClick: true,\n      disableExpandOnSpacebar: true,\n      sorter: {\n        compare: (a, b) =\u003e {\n          if (a.label \u003c b.label) {\n            return -1;\n          } else if (a.label \u003e b.label) {\n            return 1;\n          }\n          if (a.description \u0026\u0026 b.description) {\n            if (a.description \u003c b.description) {\n              return -1;\n            } else if (a.description \u003e b.description) {\n              return 1;\n            }\n          } else if (a.description) {\n            return -1;\n          } else if (b.description) {\n            return 1;\n          }\n          return 0;\n        }\n      },\n      filter: this._filter\n    }));\n    this.registerOnOpenListener();\n  }\n  get tree() {\n    return this._tree;\n  }\n  get displayed() {\n    return this._container.style.display !== \"none\";\n  }\n  set displayed(value) {\n    this._container.style.display = value ? \"\" : \"none\";\n  }\n  getActiveDescendant() {\n    return this._tree.getHTMLElement().getAttribute(\"aria-activedescendant\");\n  }\n  layout(maxHeight) {\n    this._tree.getHTMLElement().style.maxHeight = maxHeight ? `${// Make sure height aligns with list item heights\n    Math.floor(maxHeight / 44) * 44 + 6}px` : \"\";\n    this._tree.layout();\n  }\n  registerOnOpenListener() {\n    this._register(this._tree.onDidOpen((e) =\u003e {\n      const item = e.element;\n      if (!item) {\n        return;\n      }\n      if (item.disabled) {\n        return;\n      }\n      const newState = item.checked !== true;\n      if ((item.checked ?? false) === newState) {\n        return;\n      }\n      item.checked = newState;\n      this._tree.rerender(item);\n      const updateSet = /* @__PURE__ */ new Set();\n      const toUpdate = [...this._tree.getNode(item).children];\n      while (toUpdate.length) {\n        const pop = toUpdate.shift();\n        if (pop?.element \u0026\u0026 !updateSet.has(pop.element)) {\n          updateSet.add(pop.element);\n          if ((pop.element.checked ?? false) !== item.checked) {\n            pop.element.checked = item.checked;\n            this._tree.rerender(pop.element);\n          }\n          toUpdate.push(...pop.children);\n        }\n      }\n      let parent = this._tree.getParentElement(item);\n      while (parent) {\n        const parentChildren = [...this._tree.getNode(parent).children];\n        const newState2 = getParentNodeState(parentChildren);\n        if ((parent.checked ?? false) !== newState2) {\n          parent.checked = newState2;\n          this._tree.rerender(parent);\n        }\n        parent = this._tree.getParentElement(parent);\n      }\n      this._onDidChangeCheckboxState.fire({\n        item,\n        checked: item.checked ?? false\n      });\n      this._onDidCheckedLeafItemsChange.fire(this.getCheckedLeafItems());\n    }));\n  }\n  getCheckedLeafItems() {\n    const lookedAt = /* @__PURE__ */ new Set();\n    const toLookAt = [...this._tree.getNode().children];\n    const checkedItems = new Array();\n    while (toLookAt.length) {\n      const lookAt = toLookAt.shift();\n      if (!lookAt?.element || lookedAt.has(lookAt.element)) {\n        continue;\n      }\n      if (lookAt.element.checked) {\n        lookedAt.add(lookAt.element);\n        toLookAt.push(...lookAt.children);\n        if (!lookAt.element.children) {\n          checkedItems.push(lookAt.element);\n        }\n      }\n    }\n    return checkedItems;\n  }\n};\nQuickInputTreeController = __decorate182([\n  __param175(2, IInstantiationService)\n], QuickInputTreeController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputController.js\nvar __decorate183 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param176 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar QuickInputController_1;\nvar $22 = $;\nvar VIEWSTATE_STORAGE_KEY = \"workbench.quickInput.viewState\";\nvar QuickInputController = class QuickInputController2 extends Disposable {\n  static {\n    QuickInputController_1 = this;\n  }\n  static {\n    this.MAX_WIDTH = 600;\n  }\n  // Max total width of quick input widget\n  get currentQuickInput() {\n    return this.controller ?? void 0;\n  }\n  get container() {\n    return this._container;\n  }\n  constructor(options2, layoutService, instantiationService, contextKeyService, storageService) {\n    super();\n    this.options = options2;\n    this.layoutService = layoutService;\n    this.instantiationService = instantiationService;\n    this.storageService = storageService;\n    this.enabled = true;\n    this.onDidAcceptEmitter = this._register(new Emitter());\n    this.onDidCustomEmitter = this._register(new Emitter());\n    this.onDidTriggerButtonEmitter = this._register(new Emitter());\n    this.keyMods = { ctrlCmd: false, alt: false };\n    this.controller = null;\n    this.onShowEmitter = this._register(new Emitter());\n    this.onShow = this.onShowEmitter.event;\n    this.onHideEmitter = this._register(new Emitter());\n    this.onHide = this.onHideEmitter.event;\n    this.inQuickInputContext = InQuickInputContextKey.bindTo(contextKeyService);\n    this.quickInputTypeContext = QuickInputTypeContextKey.bindTo(contextKeyService);\n    this.endOfQuickInputBoxContext = EndOfQuickInputBoxContextKey.bindTo(contextKeyService);\n    this.idPrefix = options2.idPrefix;\n    this._container = options2.container;\n    this.styles = options2.styles;\n    this._register(Event.runAndSubscribe(onDidRegisterWindow, ({ window: window2, disposables }) =\u003e this.registerKeyModsListeners(window2, disposables), { window: mainWindow, disposables: this._store }));\n    this._register(onWillUnregisterWindow((window2) =\u003e {\n      if (this.ui \u0026\u0026 getWindow(this.ui.container) === window2) {\n        this.reparentUI(this.layoutService.mainContainer);\n        this.layout(this.layoutService.mainContainerDimension, this.layoutService.mainContainerOffset.quickPickTop);\n      }\n    }));\n    this.viewState = this.loadViewState();\n  }\n  registerKeyModsListeners(window2, disposables) {\n    const listener = (e) =\u003e {\n      this.keyMods.ctrlCmd = e.ctrlKey || e.metaKey;\n      this.keyMods.alt = e.altKey;\n    };\n    for (const event of [EventType.KEY_DOWN, EventType.KEY_UP, EventType.MOUSE_DOWN]) {\n      disposables.add(addDisposableListener(window2, event, listener, true));\n    }\n  }\n  getUI(showInActiveContainer) {\n    if (this.ui) {\n      if (showInActiveContainer) {\n        if (getWindow(this._container) !== getWindow(this.layoutService.activeContainer)) {\n          this.reparentUI(this.layoutService.activeContainer);\n          this.layout(this.layoutService.activeContainerDimension, this.layoutService.activeContainerOffset.quickPickTop);\n        }\n      }\n      return this.ui;\n    }\n    const container = append(this._container, $22(\".quick-input-widget.show-file-icons\"));\n    container.tabIndex = -1;\n    container.style.display = \"none\";\n    const styleSheet = createStyleSheet(container);\n    const titleBar = append(container, $22(\".quick-input-titlebar\"));\n    const leftActionBar = this._register(new ActionBar(titleBar, { hoverDelegate: this.options.hoverDelegate }));\n    leftActionBar.domNode.classList.add(\"quick-input-left-action-bar\");\n    const title = append(titleBar, $22(\".quick-input-title\"));\n    const rightActionBar = this._register(new ActionBar(titleBar, { hoverDelegate: this.options.hoverDelegate }));\n    rightActionBar.domNode.classList.add(\"quick-input-right-action-bar\");\n    const headerContainer = append(container, $22(\".quick-input-header\"));\n    const checkAll = this._register(new TriStateCheckbox(localize(1742, \"Toggle all checkboxes\"), false, { ...defaultCheckboxStyles, size: 15 }));\n    append(headerContainer, checkAll.domNode);\n    this._register(checkAll.onChange(() =\u003e {\n      const checked = checkAll.checked;\n      list2.setAllVisibleChecked(checked === true);\n    }));\n    this._register(addDisposableListener(checkAll.domNode, EventType.CLICK, (e) =\u003e {\n      if (e.x || e.y) {\n        inputBox.setFocus();\n      }\n    }));\n    const description2 = append(headerContainer, $22(\".quick-input-description\"));\n    const inputContainer = append(headerContainer, $22(\".quick-input-and-message\"));\n    const filterContainer = append(inputContainer, $22(\".quick-input-filter\"));\n    const inputBox = this._register(new QuickInputBox(filterContainer, this.styles.inputBox, this.styles.toggle));\n    inputBox.setAttribute(\"aria-describedby\", `${this.idPrefix}message`);\n    const visibleCountContainer = append(filterContainer, $22(\".quick-input-visible-count\"));\n    visibleCountContainer.setAttribute(\"aria-live\", \"polite\");\n    visibleCountContainer.setAttribute(\"aria-atomic\", \"true\");\n    const visibleCount = this._register(new CountBadge(visibleCountContainer, { countFormat: localize(1743, \"{0} Results\") }, this.styles.countBadge));\n    const countContainer = append(filterContainer, $22(\".quick-input-count\"));\n    countContainer.setAttribute(\"aria-live\", \"polite\");\n    const count = this._register(new CountBadge(countContainer, { countFormat: localize(1744, \"{0} Selected\") }, this.styles.countBadge));\n    const inlineActionBar = this._register(new ActionBar(headerContainer, { hoverDelegate: this.options.hoverDelegate }));\n    inlineActionBar.domNode.classList.add(\"quick-input-inline-action-bar\");\n    const okContainer = append(headerContainer, $22(\".quick-input-action\"));\n    const ok2 = this._register(new Button(okContainer, this.styles.button));\n    ok2.label = localize(1745, \"OK\");\n    this._register(ok2.onDidClick((e) =\u003e {\n      this.onDidAcceptEmitter.fire();\n    }));\n    const customButtonContainer = append(headerContainer, $22(\".quick-input-action\"));\n    const customButton = this._register(new Button(customButtonContainer, { ...this.styles.button, supportIcons: true }));\n    customButton.label = localize(1746, \"Custom\");\n    this._register(customButton.onDidClick((e) =\u003e {\n      this.onDidCustomEmitter.fire();\n    }));\n    const message = append(inputContainer, $22(`#${this.idPrefix}message.quick-input-message`));\n    const progressBar = this._register(new ProgressBar(container, this.styles.progressBar));\n    progressBar.getContainer().classList.add(\"quick-input-progress\");\n    const widget = append(container, $22(\".quick-input-html-widget\"));\n    widget.tabIndex = -1;\n    const description1 = append(container, $22(\".quick-input-description\"));\n    const listId = this.idPrefix + \"list\";\n    const list2 = this._register(this.instantiationService.createInstance(QuickInputList, container, this.options.hoverDelegate, this.options.linkOpenerDelegate, listId));\n    inputBox.setAttribute(\"aria-controls\", listId);\n    this._register(list2.onDidChangeFocus(() =\u003e {\n      if (inputBox.hasFocus()) {\n        inputBox.setAttribute(\"aria-activedescendant\", list2.getActiveDescendant() ?? \"\");\n      }\n    }));\n    this._register(list2.onChangedAllVisibleChecked((checked) =\u003e {\n      checkAll.checked = checked;\n    }));\n    this._register(list2.onChangedVisibleCount((c) =\u003e {\n      visibleCount.setCount(c);\n    }));\n    this._register(list2.onChangedCheckedCount((c) =\u003e {\n      count.setCount(c);\n    }));\n    this._register(list2.onLeave(() =\u003e {\n      setTimeout(() =\u003e {\n        if (!this.controller) {\n          return;\n        }\n        inputBox.setFocus();\n        if (this.controller instanceof QuickPick \u0026\u0026 this.controller.canSelectMany) {\n          list2.clearFocus();\n        }\n      }, 0);\n    }));\n    const tree = this._register(this.instantiationService.createInstance(QuickInputTreeController, container, this.options.hoverDelegate));\n    this._register(tree.tree.onDidChangeFocus(() =\u003e {\n      if (inputBox.hasFocus()) {\n        inputBox.setAttribute(\"aria-activedescendant\", tree.getActiveDescendant() ?? \"\");\n      }\n    }));\n    this._register(tree.onLeave(() =\u003e {\n      setTimeout(() =\u003e {\n        if (!this.controller) {\n          return;\n        }\n        inputBox.setFocus();\n        tree.tree.setFocus([]);\n      }, 0);\n    }));\n    this._register(tree.tree.onDidChangeContentHeight(() =\u003e this.updateLayout()));\n    const focusTracker = trackFocus(container);\n    this._register(focusTracker);\n    this._register(addDisposableListener(container, EventType.FOCUS, (e) =\u003e {\n      const ui = this.getUI();\n      if (isAncestor(e.relatedTarget, ui.inputContainer)) {\n        const value = ui.inputBox.isSelectionAtEnd();\n        if (this.endOfQuickInputBoxContext.get() !== value) {\n          this.endOfQuickInputBoxContext.set(value);\n        }\n      }\n      if (isAncestor(e.relatedTarget, ui.container)) {\n        return;\n      }\n      this.inQuickInputContext.set(true);\n      this.previousFocusElement = isHTMLElement(e.relatedTarget) ? e.relatedTarget : void 0;\n    }, true));\n    this._register(focusTracker.onDidBlur(() =\u003e {\n      if (!this.getUI().ignoreFocusOut \u0026\u0026 !this.options.ignoreFocusOut()) {\n        this.hide(QuickInputHideReason.Blur);\n      }\n      this.inQuickInputContext.set(false);\n      this.endOfQuickInputBoxContext.set(false);\n      this.previousFocusElement = void 0;\n    }));\n    this._register(inputBox.onKeyDown((_) =\u003e {\n      const value = this.getUI().inputBox.isSelectionAtEnd();\n      if (this.endOfQuickInputBoxContext.get() !== value) {\n        this.endOfQuickInputBoxContext.set(value);\n      }\n      inputBox.removeAttribute(\"aria-activedescendant\");\n    }));\n    this._register(addDisposableListener(container, EventType.FOCUS, (e) =\u003e {\n      inputBox.setFocus();\n    }));\n    this._register(addStandardDisposableListener(container, EventType.KEY_DOWN, (event) =\u003e {\n      if (isAncestor(event.target, widget)) {\n        return;\n      }\n      switch (event.keyCode) {\n        case 3:\n          EventHelper.stop(event, true);\n          if (this.enabled) {\n            this.onDidAcceptEmitter.fire();\n          }\n          break;\n        case 9:\n          EventHelper.stop(event, true);\n          this.hide(QuickInputHideReason.Gesture);\n          break;\n        case 2:\n          if (!event.altKey \u0026\u0026 !event.ctrlKey \u0026\u0026 !event.metaKey) {\n            const selectors = [\n              \".quick-input-list .monaco-action-bar .always-visible\",\n              \".quick-input-list-entry:hover .monaco-action-bar\",\n              \".monaco-list-row.focused .monaco-action-bar\"\n            ];\n            if (container.classList.contains(\"show-checkboxes\")) {\n              selectors.push(\"input\");\n            } else {\n              selectors.push(\"input[type=text]\");\n            }\n            if (this.getUI().list.displayed) {\n              selectors.push(\".monaco-list\");\n            }\n            if (this.getUI().message) {\n              selectors.push(\".quick-input-message a\");\n            }\n            if (this.getUI().widget) {\n              if (isAncestor(event.target, this.getUI().widget)) {\n                break;\n              }\n              selectors.push(\".quick-input-html-widget\");\n            }\n            const stops = container.querySelectorAll(selectors.join(\", \"));\n            if (!event.shiftKey \u0026\u0026 isAncestor(event.target, stops[stops.length - 1])) {\n              EventHelper.stop(event, true);\n              stops[0].focus();\n            }\n            if (event.shiftKey \u0026\u0026 isAncestor(event.target, stops[0])) {\n              EventHelper.stop(event, true);\n              stops[stops.length - 1].focus();\n            }\n          }\n          break;\n      }\n    }));\n    this.dndController = this._register(this.instantiationService.createInstance(QuickInputDragAndDropController, this._container, container, [\n      {\n        node: titleBar,\n        includeChildren: true\n      },\n      {\n        node: headerContainer,\n        includeChildren: false\n      }\n    ], this.viewState));\n    this._register(autorun((reader) =\u003e {\n      const dndViewState = this.dndController?.dndViewState.read(reader);\n      if (!dndViewState) {\n        return;\n      }\n      if (dndViewState.top !== void 0 \u0026\u0026 dndViewState.left !== void 0) {\n        this.viewState = {\n          ...this.viewState,\n          top: dndViewState.top,\n          left: dndViewState.left\n        };\n      } else {\n        this.viewState = void 0;\n      }\n      this.updateLayout();\n      if (dndViewState.done) {\n        this.saveViewState(this.viewState);\n      }\n    }));\n    this.ui = {\n      container,\n      styleSheet,\n      leftActionBar,\n      titleBar,\n      title,\n      description1,\n      description2,\n      widget,\n      rightActionBar,\n      inlineActionBar,\n      checkAll,\n      inputContainer,\n      filterContainer,\n      inputBox,\n      visibleCountContainer,\n      visibleCount,\n      countContainer,\n      count,\n      okContainer,\n      ok: ok2,\n      message,\n      customButtonContainer,\n      customButton,\n      list: list2,\n      tree,\n      progressBar,\n      onDidAccept: this.onDidAcceptEmitter.event,\n      onDidCustom: this.onDidCustomEmitter.event,\n      onDidTriggerButton: this.onDidTriggerButtonEmitter.event,\n      ignoreFocusOut: false,\n      keyMods: this.keyMods,\n      show: (controller) =\u003e this.show(controller),\n      hide: () =\u003e this.hide(),\n      setVisibilities: (visibilities) =\u003e this.setVisibilities(visibilities),\n      setEnabled: (enabled) =\u003e this.setEnabled(enabled),\n      setContextKey: (contextKey) =\u003e this.options.setContextKey(contextKey),\n      linkOpenerDelegate: (content) =\u003e this.options.linkOpenerDelegate(content)\n    };\n    this.updateStyles();\n    return this.ui;\n  }\n  reparentUI(container) {\n    if (this.ui) {\n      this._container = container;\n      append(this._container, this.ui.container);\n      this.dndController?.reparentUI(this._container);\n    }\n  }\n  pick(picks, options2 = {}, token = CancellationToken.None) {\n    return new Promise((doResolve, reject) =\u003e {\n      let resolve3 = (result) =\u003e {\n        resolve3 = doResolve;\n        options2.onKeyMods?.(input.keyMods);\n        doResolve(result);\n      };\n      if (token.isCancellationRequested) {\n        resolve3(void 0);\n        return;\n      }\n      const input = this.createQuickPick({ useSeparators: true });\n      let activeItem;\n      const disposables = [\n        input,\n        input.onDidAccept(() =\u003e {\n          if (input.canSelectMany) {\n            resolve3(input.selectedItems.slice());\n            input.hide();\n          } else {\n            const result = input.activeItems[0];\n            if (result) {\n              resolve3(result);\n              input.hide();\n            }\n          }\n        }),\n        input.onDidChangeActive((items) =\u003e {\n          const focused = items[0];\n          if (focused \u0026\u0026 options2.onDidFocus) {\n            options2.onDidFocus(focused);\n          }\n        }),\n        input.onDidChangeSelection((items) =\u003e {\n          if (!input.canSelectMany) {\n            const result = items[0];\n            if (result) {\n              resolve3(result);\n              input.hide();\n            }\n          }\n        }),\n        input.onDidTriggerItemButton((event) =\u003e options2.onDidTriggerItemButton \u0026\u0026 options2.onDidTriggerItemButton({\n          ...event,\n          removeItem: () =\u003e {\n            const index = input.items.indexOf(event.item);\n            if (index !== -1) {\n              const items = input.items.slice();\n              const removed = items.splice(index, 1);\n              const activeItems = input.activeItems.filter((activeItem2) =\u003e activeItem2 !== removed[0]);\n              const keepScrollPositionBefore = input.keepScrollPosition;\n              input.keepScrollPosition = true;\n              input.items = items;\n              if (activeItems) {\n                input.activeItems = activeItems;\n              }\n              input.keepScrollPosition = keepScrollPositionBefore;\n            }\n          }\n        })),\n        input.onDidTriggerSeparatorButton((event) =\u003e options2.onDidTriggerSeparatorButton?.(event)),\n        input.onDidChangeValue((value) =\u003e {\n          if (activeItem \u0026\u0026 !value \u0026\u0026 (input.activeItems.length !== 1 || input.activeItems[0] !== activeItem)) {\n            input.activeItems = [activeItem];\n          }\n        }),\n        token.onCancellationRequested(() =\u003e {\n          input.hide();\n        }),\n        input.onDidHide(() =\u003e {\n          dispose(disposables);\n          resolve3(void 0);\n        })\n      ];\n      input.title = options2.title;\n      if (options2.value) {\n        input.value = options2.value;\n      }\n      input.canSelectMany = !!options2.canPickMany;\n      input.placeholder = options2.placeHolder;\n      input.ignoreFocusOut = !!options2.ignoreFocusLost;\n      input.matchOnDescription = !!options2.matchOnDescription;\n      input.matchOnDetail = !!options2.matchOnDetail;\n      if (options2.sortByLabel !== void 0) {\n        input.sortByLabel = options2.sortByLabel;\n      }\n      input.matchOnLabel = options2.matchOnLabel === void 0 || options2.matchOnLabel;\n      input.quickNavigate = options2.quickNavigate;\n      input.hideInput = !!options2.hideInput;\n      input.contextKey = options2.contextKey;\n      input.busy = true;\n      Promise.all([picks, options2.activeItem]).then(([items, _activeItem]) =\u003e {\n        activeItem = _activeItem;\n        input.busy = false;\n        input.items = items;\n        if (input.canSelectMany) {\n          input.selectedItems = items.filter((item) =\u003e item.type !== \"separator\" \u0026\u0026 item.picked);\n        }\n        if (activeItem) {\n          input.activeItems = [activeItem];\n        }\n      });\n      input.show();\n      Promise.resolve(picks).then(void 0, (err) =\u003e {\n        reject(err);\n        input.hide();\n      });\n    });\n  }\n  setValidationOnInput(input, validationResult) {\n    if (validationResult \u0026\u0026 isString(validationResult)) {\n      input.severity = severity_default.Error;\n      input.validationMessage = validationResult;\n    } else if (validationResult \u0026\u0026 !isString(validationResult)) {\n      input.severity = validationResult.severity;\n      input.validationMessage = validationResult.content;\n    } else {\n      input.severity = severity_default.Ignore;\n      input.validationMessage = void 0;\n    }\n  }\n  input(options2 = {}, token = CancellationToken.None) {\n    return new Promise((resolve3) =\u003e {\n      if (token.isCancellationRequested) {\n        resolve3(void 0);\n        return;\n      }\n      const input = this.createInputBox();\n      const validateInput = options2.validateInput || (() =\u003e Promise.resolve(void 0));\n      const onDidValueChange = Event.debounce(input.onDidChangeValue, (last, cur) =\u003e cur, 100);\n      let validationValue = options2.value || \"\";\n      let validation = Promise.resolve(validateInput(validationValue));\n      const disposables = [\n        input,\n        onDidValueChange((value) =\u003e {\n          if (value !== validationValue) {\n            validation = Promise.resolve(validateInput(value));\n            validationValue = value;\n          }\n          validation.then((result) =\u003e {\n            if (value === validationValue) {\n              this.setValidationOnInput(input, result);\n            }\n          });\n        }),\n        input.onDidAccept(() =\u003e {\n          const value = input.value;\n          if (value !== validationValue) {\n            validation = Promise.resolve(validateInput(value));\n            validationValue = value;\n          }\n          validation.then((result) =\u003e {\n            if (!result || !isString(result) \u0026\u0026 result.severity !== severity_default.Error) {\n              resolve3(value);\n              input.hide();\n            } else if (value === validationValue) {\n              this.setValidationOnInput(input, result);\n            }\n          });\n        }),\n        token.onCancellationRequested(() =\u003e {\n          input.hide();\n        }),\n        input.onDidHide(() =\u003e {\n          dispose(disposables);\n          resolve3(void 0);\n        })\n      ];\n      input.title = options2.title;\n      input.value = options2.value || \"\";\n      input.valueSelection = options2.valueSelection;\n      input.prompt = options2.prompt;\n      input.placeholder = options2.placeHolder;\n      input.password = !!options2.password;\n      input.ignoreFocusOut = !!options2.ignoreFocusLost;\n      input.show();\n    });\n  }\n  createQuickPick(options2 = { useSeparators: false }) {\n    const ui = this.getUI(true);\n    return new QuickPick(ui);\n  }\n  createInputBox() {\n    const ui = this.getUI(true);\n    return new InputBox2(ui);\n  }\n  show(controller) {\n    const ui = this.getUI(true);\n    this.onShowEmitter.fire();\n    const oldController = this.controller;\n    this.controller = controller;\n    oldController?.didHide();\n    this.setEnabled(true);\n    ui.leftActionBar.clear();\n    ui.title.textContent = \"\";\n    ui.description1.textContent = \"\";\n    ui.description2.textContent = \"\";\n    reset(ui.widget);\n    ui.rightActionBar.clear();\n    ui.inlineActionBar.clear();\n    ui.checkAll.checked = false;\n    ui.inputBox.placeholder = \"\";\n    ui.inputBox.password = false;\n    ui.inputBox.showDecoration(severity_default.Ignore);\n    ui.visibleCount.setCount(0);\n    ui.count.setCount(0);\n    reset(ui.message);\n    ui.progressBar.stop();\n    ui.list.setElements([]);\n    ui.list.matchOnDescription = false;\n    ui.list.matchOnDetail = false;\n    ui.list.matchOnLabel = true;\n    ui.list.sortByLabel = true;\n    ui.ignoreFocusOut = false;\n    ui.inputBox.toggles = void 0;\n    const backKeybindingLabel = this.options.backKeybindingLabel();\n    backButton.tooltip = backKeybindingLabel ? localize(1747, \"Back ({0})\", backKeybindingLabel) : localize(1748, \"Back\");\n    ui.container.style.display = \"\";\n    this.updateLayout();\n    this.dndController?.layoutContainer();\n    ui.inputBox.setFocus();\n    this.quickInputTypeContext.set(controller.type);\n  }\n  isVisible() {\n    return !!this.ui \u0026\u0026 this.ui.container.style.display !== \"none\";\n  }\n  setVisibilities(visibilities) {\n    const ui = this.getUI();\n    ui.title.style.display = visibilities.title ? \"\" : \"none\";\n    ui.description1.style.display = visibilities.description \u0026\u0026 (visibilities.inputBox || visibilities.checkAll) ? \"\" : \"none\";\n    ui.description2.style.display = visibilities.description \u0026\u0026 !(visibilities.inputBox || visibilities.checkAll) ? \"\" : \"none\";\n    ui.checkAll.domNode.style.display = visibilities.checkAll ? \"\" : \"none\";\n    ui.inputContainer.style.display = visibilities.inputBox ? \"\" : \"none\";\n    ui.filterContainer.style.display = visibilities.inputBox ? \"\" : \"none\";\n    ui.visibleCountContainer.style.display = visibilities.visibleCount ? \"\" : \"none\";\n    ui.countContainer.style.display = visibilities.count ? \"\" : \"none\";\n    ui.okContainer.style.display = visibilities.ok ? \"\" : \"none\";\n    ui.customButtonContainer.style.display = visibilities.customButton ? \"\" : \"none\";\n    ui.message.style.display = visibilities.message ? \"\" : \"none\";\n    ui.progressBar.getContainer().style.display = visibilities.progressBar ? \"\" : \"none\";\n    ui.list.displayed = !!visibilities.list;\n    ui.tree.displayed = !!visibilities.tree;\n    ui.container.classList.toggle(\"show-checkboxes\", !!visibilities.checkBox);\n    ui.container.classList.toggle(\"hidden-input\", !visibilities.inputBox \u0026\u0026 !visibilities.description);\n    this.updateLayout();\n  }\n  setEnabled(enabled) {\n    if (enabled !== this.enabled) {\n      this.enabled = enabled;\n      const ui = this.getUI();\n      for (const item of ui.leftActionBar.viewItems) {\n        item.action.enabled = enabled;\n      }\n      for (const item of ui.rightActionBar.viewItems) {\n        item.action.enabled = enabled;\n      }\n      if (enabled) {\n        ui.checkAll.enable();\n      } else {\n        ui.checkAll.disable();\n      }\n      ui.inputBox.enabled = enabled;\n      ui.ok.enabled = enabled;\n      ui.list.enabled = enabled;\n    }\n  }\n  hide(reason) {\n    const controller = this.controller;\n    if (!controller) {\n      return;\n    }\n    controller.willHide(reason);\n    const container = this.ui?.container;\n    const focusChanged = container \u0026\u0026 !isAncestorOfActiveElement(container);\n    this.controller = null;\n    this.onHideEmitter.fire();\n    if (container) {\n      container.style.display = \"none\";\n    }\n    if (!focusChanged) {\n      let currentElement = this.previousFocusElement;\n      while (currentElement \u0026\u0026 !currentElement.offsetParent) {\n        currentElement = currentElement.parentElement ?? void 0;\n      }\n      if (currentElement?.offsetParent) {\n        currentElement.focus();\n        this.previousFocusElement = void 0;\n      } else {\n        this.options.returnFocus();\n      }\n    }\n    controller.didHide(reason);\n  }\n  toggleHover() {\n    if (this.isVisible() \u0026\u0026 this.controller instanceof QuickPick) {\n      this.getUI().list.toggleHover();\n    }\n  }\n  layout(dimension, titleBarOffset) {\n    this.dimension = dimension;\n    this.titleBarOffset = titleBarOffset;\n    this.updateLayout();\n  }\n  updateLayout() {\n    if (this.ui \u0026\u0026 this.isVisible()) {\n      const style = this.ui.container.style;\n      const width2 = Math.min(this.dimension.width * 0.62, QuickInputController_1.MAX_WIDTH);\n      style.width = width2 + \"px\";\n      style.top = `${this.viewState?.top ? Math.round(this.dimension.height * this.viewState.top) : this.titleBarOffset}px`;\n      style.left = `${Math.round(this.dimension.width * (this.viewState?.left ?? 0.5) - width2 / 2)}px`;\n      this.ui.inputBox.layout();\n      this.ui.list.layout(this.dimension \u0026\u0026 this.dimension.height * 0.4);\n      this.ui.tree.layout(this.dimension \u0026\u0026 this.dimension.height * 0.4);\n    }\n  }\n  applyStyles(styles) {\n    this.styles = styles;\n    this.updateStyles();\n  }\n  updateStyles() {\n    if (this.ui) {\n      const { quickInputTitleBackground: quickInputTitleBackground2, quickInputBackground: quickInputBackground2, quickInputForeground: quickInputForeground2, widgetBorder: widgetBorder2, widgetShadow: widgetShadow2 } = this.styles.widget;\n      this.ui.titleBar.style.backgroundColor = quickInputTitleBackground2 ?? \"\";\n      this.ui.container.style.backgroundColor = quickInputBackground2 ?? \"\";\n      this.ui.container.style.color = quickInputForeground2 ?? \"\";\n      this.ui.container.style.border = widgetBorder2 ? `1px solid ${widgetBorder2}` : \"\";\n      this.ui.container.style.boxShadow = widgetShadow2 ? `0 0 8px 2px ${widgetShadow2}` : \"\";\n      this.ui.list.style(this.styles.list);\n      this.ui.tree.tree.style(this.styles.list);\n      const content = [];\n      if (this.styles.pickerGroup.pickerGroupBorder) {\n        content.push(`.quick-input-list .quick-input-list-entry { border-top-color:  ${this.styles.pickerGroup.pickerGroupBorder}; }`);\n      }\n      if (this.styles.pickerGroup.pickerGroupForeground) {\n        content.push(`.quick-input-list .quick-input-list-separator { color:  ${this.styles.pickerGroup.pickerGroupForeground}; }`);\n      }\n      if (this.styles.pickerGroup.pickerGroupForeground) {\n        content.push(`.quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }`);\n      }\n      if (this.styles.keybindingLabel.keybindingLabelBackground || this.styles.keybindingLabel.keybindingLabelBorder || this.styles.keybindingLabel.keybindingLabelBottomBorder || this.styles.keybindingLabel.keybindingLabelShadow || this.styles.keybindingLabel.keybindingLabelForeground) {\n        content.push(\".quick-input-list .monaco-keybinding \u003e .monaco-keybinding-key {\");\n        if (this.styles.keybindingLabel.keybindingLabelBackground) {\n          content.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`);\n        }\n        if (this.styles.keybindingLabel.keybindingLabelBorder) {\n          content.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`);\n        }\n        if (this.styles.keybindingLabel.keybindingLabelBottomBorder) {\n          content.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`);\n        }\n        if (this.styles.keybindingLabel.keybindingLabelShadow) {\n          content.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`);\n        }\n        if (this.styles.keybindingLabel.keybindingLabelForeground) {\n          content.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`);\n        }\n        content.push(\"}\");\n      }\n      const newStyles = content.join(\"\\n\");\n      if (newStyles !== this.ui.styleSheet.textContent) {\n        this.ui.styleSheet.textContent = newStyles;\n      }\n    }\n  }\n  loadViewState() {\n    try {\n      const data = JSON.parse(this.storageService.get(VIEWSTATE_STORAGE_KEY, -1, \"{}\"));\n      if (data.top !== void 0 || data.left !== void 0) {\n        return data;\n      }\n    } catch {\n    }\n    return void 0;\n  }\n  saveViewState(viewState) {\n    const isMainWindow = this.layoutService.activeContainer === this.layoutService.mainContainer;\n    if (!isMainWindow) {\n      return;\n    }\n    if (viewState !== void 0) {\n      this.storageService.store(\n        VIEWSTATE_STORAGE_KEY,\n        JSON.stringify(viewState),\n        -1,\n        1\n        /* StorageTarget.MACHINE */\n      );\n    } else {\n      this.storageService.remove(\n        VIEWSTATE_STORAGE_KEY,\n        -1\n        /* StorageScope.APPLICATION */\n      );\n    }\n  }\n};\nQuickInputController = QuickInputController_1 = __decorate183([\n  __param176(1, ILayoutService),\n  __param176(2, IInstantiationService),\n  __param176(3, IContextKeyService),\n  __param176(4, IStorageService)\n], QuickInputController);\nvar QuickInputDragAndDropController = class QuickInputDragAndDropController2 extends Disposable {\n  constructor(_container, _quickInputContainer, _quickInputDragAreas, initialViewState, _layoutService, contextKeyService, configurationService) {\n    super();\n    this._container = _container;\n    this._quickInputContainer = _quickInputContainer;\n    this._quickInputDragAreas = _quickInputDragAreas;\n    this._layoutService = _layoutService;\n    this.configurationService = configurationService;\n    this.dndViewState = observableValue(this, void 0);\n    this._snapThreshold = 20;\n    this._snapLineHorizontalRatio = 0.25;\n    this._quickInputAlignmentContext = QuickInputAlignmentContextKey.bindTo(contextKeyService);\n    const customWindowControls = getWindowControlsStyle(this.configurationService) === \"custom\";\n    this._controlsOnLeft = customWindowControls \u0026\u0026 platform === 1;\n    this._controlsOnRight = customWindowControls \u0026\u0026 (platform === 3 || platform === 2);\n    this._registerLayoutListener();\n    this.registerMouseListeners();\n    this.dndViewState.set({ ...initialViewState, done: true }, void 0);\n  }\n  reparentUI(container) {\n    this._container = container;\n  }\n  layoutContainer(dimension = this._layoutService.activeContainerDimension) {\n    const state = this.dndViewState.get();\n    const dragAreaRect = this._quickInputContainer.getBoundingClientRect();\n    if (state?.top \u0026\u0026 state?.left) {\n      const a = Math.round(state.left * 100) / 100;\n      const b = dimension.width;\n      const c = dragAreaRect.width;\n      const d = a * b - c / 2;\n      this._layout(state.top * dimension.height, d);\n    }\n  }\n  _registerLayoutListener() {\n    this._register(Event.filter(this._layoutService.onDidLayoutContainer, (e) =\u003e e.container === this._container)((e) =\u003e this.layoutContainer(e.dimension)));\n  }\n  registerMouseListeners() {\n    const dragArea = this._quickInputContainer;\n    this._register(addDisposableGenericMouseUpListener(dragArea, (event) =\u003e {\n      const originEvent = new StandardMouseEvent(getWindow(dragArea), event);\n      if (originEvent.detail !== 2) {\n        return;\n      }\n      if (!this._quickInputDragAreas.some(({ node, includeChildren }) =\u003e includeChildren ? isAncestor(originEvent.target, node) : originEvent.target === node)) {\n        return;\n      }\n      this.dndViewState.set({ top: void 0, left: void 0, done: true }, void 0);\n    }));\n    this._register(addDisposableGenericMouseDownListener(dragArea, (e) =\u003e {\n      const activeWindow = getWindow(this._layoutService.activeContainer);\n      const originEvent = new StandardMouseEvent(activeWindow, e);\n      if (!this._quickInputDragAreas.some(({ node, includeChildren }) =\u003e includeChildren ? isAncestor(originEvent.target, node) : originEvent.target === node)) {\n        return;\n      }\n      const dragAreaRect = this._quickInputContainer.getBoundingClientRect();\n      const dragOffsetX = originEvent.browserEvent.clientX - dragAreaRect.left;\n      const dragOffsetY = originEvent.browserEvent.clientY - dragAreaRect.top;\n      let isMovingQuickInput = false;\n      const mouseMoveListener = addDisposableGenericMouseMoveListener(activeWindow, (e2) =\u003e {\n        const mouseMoveEvent = new StandardMouseEvent(activeWindow, e2);\n        mouseMoveEvent.preventDefault();\n        if (!isMovingQuickInput) {\n          isMovingQuickInput = true;\n        }\n        this._layout(e2.clientY - dragOffsetY, e2.clientX - dragOffsetX);\n      });\n      const mouseUpListener = addDisposableGenericMouseUpListener(activeWindow, (e2) =\u003e {\n        if (isMovingQuickInput) {\n          const state = this.dndViewState.get();\n          this.dndViewState.set({ top: state?.top, left: state?.left, done: true }, void 0);\n        }\n        mouseMoveListener.dispose();\n        mouseUpListener.dispose();\n      });\n    }));\n  }\n  _layout(topCoordinate, leftCoordinate) {\n    const snapCoordinateYTop = this._getTopSnapValue();\n    const snapCoordinateY = this._getCenterYSnapValue();\n    const snapCoordinateX = this._getCenterXSnapValue();\n    topCoordinate = Math.max(0, Math.min(topCoordinate, this._container.clientHeight - this._quickInputContainer.clientHeight));\n    if (topCoordinate \u003c this._layoutService.activeContainerOffset.top) {\n      if (this._controlsOnLeft) {\n        leftCoordinate = Math.max(leftCoordinate, 80 / getZoomFactor(getActiveWindow()));\n      } else if (this._controlsOnRight) {\n        leftCoordinate = Math.min(leftCoordinate, this._container.clientWidth - this._quickInputContainer.clientWidth - 140 / getZoomFactor(getActiveWindow()));\n      }\n    }\n    const snappingToTop = Math.abs(topCoordinate - snapCoordinateYTop) \u003c this._snapThreshold;\n    topCoordinate = snappingToTop ? snapCoordinateYTop : topCoordinate;\n    const snappingToCenter = Math.abs(topCoordinate - snapCoordinateY) \u003c this._snapThreshold;\n    topCoordinate = snappingToCenter ? snapCoordinateY : topCoordinate;\n    const top = topCoordinate / this._container.clientHeight;\n    leftCoordinate = Math.max(0, Math.min(leftCoordinate, this._container.clientWidth - this._quickInputContainer.clientWidth));\n    const snappingToCenterX = Math.abs(leftCoordinate - snapCoordinateX) \u003c this._snapThreshold;\n    leftCoordinate = snappingToCenterX ? snapCoordinateX : leftCoordinate;\n    const b = this._container.clientWidth;\n    const c = this._quickInputContainer.clientWidth;\n    const d = leftCoordinate;\n    const left = (d + c / 2) / b;\n    this.dndViewState.set({ top, left, done: false }, void 0);\n    if (snappingToCenterX) {\n      if (snappingToTop) {\n        this._quickInputAlignmentContext.set(\"top\");\n        return;\n      } else if (snappingToCenter) {\n        this._quickInputAlignmentContext.set(\"center\");\n        return;\n      }\n    }\n    this._quickInputAlignmentContext.set(void 0);\n  }\n  _getTopSnapValue() {\n    return this._layoutService.activeContainerOffset.quickPickTop;\n  }\n  _getCenterYSnapValue() {\n    return Math.round(this._container.clientHeight * this._snapLineHorizontalRatio);\n  }\n  _getCenterXSnapValue() {\n    return Math.round(this._container.clientWidth / 2) - Math.round(this._quickInputContainer.clientWidth / 2);\n  }\n};\nQuickInputDragAndDropController = __decorate183([\n  __param176(4, ILayoutService),\n  __param176(5, IContextKeyService),\n  __param176(6, IConfigurationService)\n], QuickInputDragAndDropController);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/quickinput/browser/quickInputService.js\ninit_configuration();\ninit_dom();\nvar __decorate184 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param177 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar QuickInputService = class QuickInputService2 extends Themable {\n  get controller() {\n    if (!this._controller) {\n      this._controller = this._register(this.createController());\n    }\n    return this._controller;\n  }\n  get hasController() {\n    return !!this._controller;\n  }\n  get currentQuickInput() {\n    return this.controller.currentQuickInput;\n  }\n  get quickAccess() {\n    if (!this._quickAccess) {\n      this._quickAccess = this._register(this.instantiationService.createInstance(QuickAccessController));\n    }\n    return this._quickAccess;\n  }\n  constructor(instantiationService, contextKeyService, themeService, layoutService, configurationService) {\n    super(themeService);\n    this.instantiationService = instantiationService;\n    this.contextKeyService = contextKeyService;\n    this.layoutService = layoutService;\n    this.configurationService = configurationService;\n    this._onShow = this._register(new Emitter());\n    this._onHide = this._register(new Emitter());\n    this.contexts = /* @__PURE__ */ new Map();\n  }\n  createController(host = this.layoutService, options2) {\n    const defaultOptions3 = {\n      idPrefix: \"quickInput_\",\n      container: host.activeContainer,\n      ignoreFocusOut: () =\u003e false,\n      backKeybindingLabel: () =\u003e void 0,\n      setContextKey: (id) =\u003e this.setContextKey(id),\n      linkOpenerDelegate: (content) =\u003e {\n        this.instantiationService.invokeFunction((accessor) =\u003e {\n          const openerService = accessor.get(IOpenerService);\n          openerService.open(content, { allowCommands: true, fromUserGesture: true });\n        });\n      },\n      returnFocus: () =\u003e host.focus(),\n      styles: this.computeStyles(),\n      hoverDelegate: this._register(this.instantiationService.createInstance(QuickInputHoverDelegate))\n    };\n    const controller = this._register(this.instantiationService.createInstance(QuickInputController, {\n      ...defaultOptions3,\n      ...options2\n    }));\n    controller.layout(host.activeContainerDimension, host.activeContainerOffset.quickPickTop);\n    this._register(host.onDidLayoutActiveContainer((dimension) =\u003e {\n      if (getWindow(host.activeContainer) === getWindow(controller.container)) {\n        controller.layout(dimension, host.activeContainerOffset.quickPickTop);\n      }\n    }));\n    this._register(host.onDidChangeActiveContainer(() =\u003e {\n      if (controller.isVisible()) {\n        return;\n      }\n      controller.layout(host.activeContainerDimension, host.activeContainerOffset.quickPickTop);\n    }));\n    this._register(controller.onShow(() =\u003e {\n      this.resetContextKeys();\n      this._onShow.fire();\n    }));\n    this._register(controller.onHide(() =\u003e {\n      this.resetContextKeys();\n      this._onHide.fire();\n    }));\n    return controller;\n  }\n  setContextKey(id) {\n    let key;\n    if (id) {\n      key = this.contexts.get(id);\n      if (!key) {\n        key = new RawContextKey(id, false).bindTo(this.contextKeyService);\n        this.contexts.set(id, key);\n      }\n    }\n    if (key \u0026\u0026 key.get()) {\n      return;\n    }\n    this.resetContextKeys();\n    key?.set(true);\n  }\n  resetContextKeys() {\n    this.contexts.forEach((context) =\u003e {\n      if (context.get()) {\n        context.reset();\n      }\n    });\n  }\n  pick(picks, options2, token = CancellationToken.None) {\n    return this.controller.pick(picks, options2, token);\n  }\n  input(options2 = {}, token = CancellationToken.None) {\n    return this.controller.input(options2, token);\n  }\n  createQuickPick(options2 = { useSeparators: false }) {\n    return this.controller.createQuickPick(options2);\n  }\n  createInputBox() {\n    return this.controller.createInputBox();\n  }\n  toggleHover() {\n    if (this.hasController) {\n      this.controller.toggleHover();\n    }\n  }\n  updateStyles() {\n    if (this.hasController) {\n      this.controller.applyStyles(this.computeStyles());\n    }\n  }\n  computeStyles() {\n    return {\n      widget: {\n        quickInputBackground: asCssVariable(quickInputBackground),\n        quickInputForeground: asCssVariable(quickInputForeground),\n        quickInputTitleBackground: asCssVariable(quickInputTitleBackground),\n        widgetBorder: asCssVariable(widgetBorder),\n        widgetShadow: asCssVariable(widgetShadow)\n      },\n      inputBox: defaultInputBoxStyles,\n      toggle: defaultToggleStyles,\n      countBadge: defaultCountBadgeStyles,\n      button: defaultButtonStyles,\n      progressBar: defaultProgressBarStyles,\n      keybindingLabel: defaultKeybindingLabelStyles,\n      list: getListStyles({\n        listBackground: quickInputBackground,\n        listFocusBackground: quickInputListFocusBackground,\n        listFocusForeground: quickInputListFocusForeground,\n        // Look like focused when inactive.\n        listInactiveFocusForeground: quickInputListFocusForeground,\n        listInactiveSelectionIconForeground: quickInputListFocusIconForeground,\n        listInactiveFocusBackground: quickInputListFocusBackground,\n        listFocusOutline: activeContrastBorder,\n        listInactiveFocusOutline: activeContrastBorder,\n        treeStickyScrollBackground: quickInputBackground\n      }),\n      pickerGroup: {\n        pickerGroupBorder: asCssVariable(pickerGroupBorder),\n        pickerGroupForeground: asCssVariable(pickerGroupForeground)\n      }\n    };\n  }\n};\nQuickInputService = __decorate184([\n  __param177(0, IInstantiationService),\n  __param177(1, IContextKeyService),\n  __param177(2, IThemeService),\n  __param177(3, ILayoutService),\n  __param177(4, IConfigurationService)\n], QuickInputService);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js\ninit_functional();\ninit_configuration();\nvar __decorate185 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param178 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar EditorScopedQuickInputService = class EditorScopedQuickInputService2 extends QuickInputService {\n  constructor(editor2, instantiationService, contextKeyService, themeService, codeEditorService, configurationService) {\n    super(instantiationService, contextKeyService, themeService, new EditorScopedLayoutService(editor2.getContainerDomNode(), codeEditorService), configurationService);\n    this.host = void 0;\n    const contribution = QuickInputEditorContribution.get(editor2);\n    if (contribution) {\n      const widget = contribution.widget;\n      this.host = {\n        _serviceBrand: void 0,\n        get mainContainer() {\n          return widget.getDomNode();\n        },\n        getContainer() {\n          return widget.getDomNode();\n        },\n        whenContainerStylesLoaded() {\n          return void 0;\n        },\n        get containers() {\n          return [widget.getDomNode()];\n        },\n        get activeContainer() {\n          return widget.getDomNode();\n        },\n        get mainContainerDimension() {\n          return editor2.getLayoutInfo();\n        },\n        get activeContainerDimension() {\n          return editor2.getLayoutInfo();\n        },\n        get onDidLayoutMainContainer() {\n          return editor2.onDidLayoutChange;\n        },\n        get onDidLayoutActiveContainer() {\n          return editor2.onDidLayoutChange;\n        },\n        get onDidLayoutContainer() {\n          return Event.map(editor2.onDidLayoutChange, (dimension) =\u003e ({ container: widget.getDomNode(), dimension }));\n        },\n        get onDidChangeActiveContainer() {\n          return Event.None;\n        },\n        get onDidAddContainer() {\n          return Event.None;\n        },\n        get mainContainerOffset() {\n          return { top: 0, quickPickTop: 0 };\n        },\n        get activeContainerOffset() {\n          return { top: 0, quickPickTop: 0 };\n        },\n        focus: () =\u003e editor2.focus()\n      };\n    } else {\n      this.host = void 0;\n    }\n  }\n  createController() {\n    return super.createController(this.host);\n  }\n};\nEditorScopedQuickInputService = __decorate185([\n  __param178(1, IInstantiationService),\n  __param178(2, IContextKeyService),\n  __param178(3, IThemeService),\n  __param178(4, ICodeEditorService),\n  __param178(5, IConfigurationService)\n], EditorScopedQuickInputService);\nvar StandaloneQuickInputService = class StandaloneQuickInputService2 {\n  get activeService() {\n    const editor2 = this.codeEditorService.getFocusedCodeEditor();\n    if (!editor2) {\n      throw new Error(\"Quick input service needs a focused editor to work.\");\n    }\n    let quickInputService = this.mapEditorToService.get(editor2);\n    if (!quickInputService) {\n      const newQuickInputService = quickInputService = this.instantiationService.createInstance(EditorScopedQuickInputService, editor2);\n      this.mapEditorToService.set(editor2, quickInputService);\n      createSingleCallFunction(editor2.onDidDispose)(() =\u003e {\n        newQuickInputService.dispose();\n        this.mapEditorToService.delete(editor2);\n      });\n    }\n    return quickInputService;\n  }\n  get currentQuickInput() {\n    return this.activeService.currentQuickInput;\n  }\n  get quickAccess() {\n    return this.activeService.quickAccess;\n  }\n  constructor(instantiationService, codeEditorService) {\n    this.instantiationService = instantiationService;\n    this.codeEditorService = codeEditorService;\n    this.mapEditorToService = /* @__PURE__ */ new Map();\n  }\n  pick(picks, options2, token = CancellationToken.None) {\n    return this.activeService.pick(picks, options2, token);\n  }\n  input(options2, token) {\n    return this.activeService.input(options2, token);\n  }\n  createQuickPick(options2 = { useSeparators: false }) {\n    return this.activeService.createQuickPick(options2);\n  }\n  createInputBox() {\n    return this.activeService.createInputBox();\n  }\n  toggleHover() {\n    return this.activeService.toggleHover();\n  }\n};\nStandaloneQuickInputService = __decorate185([\n  __param178(0, IInstantiationService),\n  __param178(1, ICodeEditorService)\n], StandaloneQuickInputService);\nvar QuickInputEditorContribution = class _QuickInputEditorContribution {\n  static {\n    this.ID = \"editor.controller.quickInput\";\n  }\n  static get(editor2) {\n    return editor2.getContribution(_QuickInputEditorContribution.ID);\n  }\n  constructor(editor2) {\n    this.editor = editor2;\n    this.widget = new QuickInputEditorWidget(this.editor);\n  }\n  dispose() {\n    this.widget.dispose();\n  }\n};\nvar QuickInputEditorWidget = class _QuickInputEditorWidget {\n  static {\n    this.ID = \"editor.contrib.quickInputWidget\";\n  }\n  constructor(codeEditor) {\n    this.codeEditor = codeEditor;\n    this.domNode = document.createElement(\"div\");\n    this.codeEditor.addOverlayWidget(this);\n  }\n  getId() {\n    return _QuickInputEditorWidget.ID;\n  }\n  getDomNode() {\n    return this.domNode;\n  }\n  getPosition() {\n    return {\n      preference: 2\n      /* OverlayWidgetPositionPreference.TOP_CENTER */\n    };\n  }\n  dispose() {\n    this.codeEditor.removeOverlayWidget(this);\n  }\n};\nregisterEditorContribution(\n  QuickInputEditorContribution.ID,\n  QuickInputEditorContribution,\n  4\n  /* EditorContributionInstantiation.Lazy */\n);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_standaloneTheme();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/accessibility/browser/accessibilityService.js\ninit_dom();\ninit_window();\ninit_event();\ninit_lifecycle();\ninit_configuration();\ninit_contextkey();\nvar __decorate186 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param179 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar AccessibilityService = class AccessibilityService2 extends Disposable {\n  constructor(_contextKeyService, _layoutService, _configurationService) {\n    super();\n    this._contextKeyService = _contextKeyService;\n    this._layoutService = _layoutService;\n    this._configurationService = _configurationService;\n    this._accessibilitySupport = 0;\n    this._onDidChangeScreenReaderOptimized = new Emitter();\n    this._onDidChangeReducedMotion = new Emitter();\n    this._onDidChangeLinkUnderline = new Emitter();\n    this._accessibilityModeEnabledContext = CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(this._contextKeyService);\n    const updateContextKey = () =\u003e this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());\n    this._register(this._configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(\"editor.accessibilitySupport\")) {\n        updateContextKey();\n        this._onDidChangeScreenReaderOptimized.fire();\n      }\n      if (e.affectsConfiguration(\"workbench.reduceMotion\")) {\n        this._configMotionReduced = this._configurationService.getValue(\"workbench.reduceMotion\");\n        this._onDidChangeReducedMotion.fire();\n      }\n    }));\n    updateContextKey();\n    this._register(this.onDidChangeScreenReaderOptimized(() =\u003e updateContextKey()));\n    const reduceMotionMatcher = mainWindow.matchMedia(`(prefers-reduced-motion: reduce)`);\n    this._systemMotionReduced = reduceMotionMatcher.matches;\n    this._configMotionReduced = this._configurationService.getValue(\"workbench.reduceMotion\");\n    this._linkUnderlinesEnabled = this._configurationService.getValue(\"accessibility.underlineLinks\");\n    this.initReducedMotionListeners(reduceMotionMatcher);\n    this.initLinkUnderlineListeners();\n  }\n  initReducedMotionListeners(reduceMotionMatcher) {\n    this._register(addDisposableListener(reduceMotionMatcher, \"change\", () =\u003e {\n      this._systemMotionReduced = reduceMotionMatcher.matches;\n      if (this._configMotionReduced === \"auto\") {\n        this._onDidChangeReducedMotion.fire();\n      }\n    }));\n    const updateRootClasses = () =\u003e {\n      const reduce = this.isMotionReduced();\n      this._layoutService.mainContainer.classList.toggle(\"reduce-motion\", reduce);\n      this._layoutService.mainContainer.classList.toggle(\"enable-motion\", !reduce);\n    };\n    updateRootClasses();\n    this._register(this.onDidChangeReducedMotion(() =\u003e updateRootClasses()));\n  }\n  initLinkUnderlineListeners() {\n    this._register(this._configurationService.onDidChangeConfiguration((e) =\u003e {\n      if (e.affectsConfiguration(\"accessibility.underlineLinks\")) {\n        const linkUnderlinesEnabled = this._configurationService.getValue(\"accessibility.underlineLinks\");\n        this._linkUnderlinesEnabled = linkUnderlinesEnabled;\n        this._onDidChangeLinkUnderline.fire();\n      }\n    }));\n    const updateLinkUnderlineClasses = () =\u003e {\n      const underlineLinks = this._linkUnderlinesEnabled;\n      this._layoutService.mainContainer.classList.toggle(\"underline-links\", underlineLinks);\n    };\n    updateLinkUnderlineClasses();\n    this._register(this.onDidChangeLinkUnderlines(() =\u003e updateLinkUnderlineClasses()));\n  }\n  onDidChangeLinkUnderlines(listener) {\n    return this._onDidChangeLinkUnderline.event(listener);\n  }\n  get onDidChangeScreenReaderOptimized() {\n    return this._onDidChangeScreenReaderOptimized.event;\n  }\n  isScreenReaderOptimized() {\n    const config = this._configurationService.getValue(\"editor.accessibilitySupport\");\n    return config === \"on\" || config === \"auto\" \u0026\u0026 this._accessibilitySupport === 2;\n  }\n  get onDidChangeReducedMotion() {\n    return this._onDidChangeReducedMotion.event;\n  }\n  isMotionReduced() {\n    const config = this._configMotionReduced;\n    return config === \"on\" || config === \"auto\" \u0026\u0026 this._systemMotionReduced;\n  }\n  getAccessibilitySupport() {\n    return this._accessibilitySupport;\n  }\n};\nAccessibilityService = __decorate186([\n  __param179(0, IContextKeyService),\n  __param179(1, ILayoutService),\n  __param179(2, IConfigurationService)\n], AccessibilityService);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_actions2();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/clipboard/browser/clipboardService.js\ninit_browser();\ninit_dom();\ninit_window();\ninit_async();\ninit_event();\ninit_hash();\ninit_lifecycle();\ninit_uri();\ninit_log();\nvar __decorate187 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param180 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar BrowserClipboardService_1;\nvar vscodeResourcesMime = \"application/vnd.code.resources\";\nvar BrowserClipboardService = class BrowserClipboardService2 extends Disposable {\n  static {\n    BrowserClipboardService_1 = this;\n  }\n  constructor(layoutService, logService) {\n    super();\n    this.layoutService = layoutService;\n    this.logService = logService;\n    this.mapTextToType = /* @__PURE__ */ new Map();\n    this.findText = \"\";\n    this.resources = [];\n    this.resourcesStateHash = void 0;\n    if (isSafari || isWebkitWebView) {\n      this.installWebKitWriteTextWorkaround();\n    }\n    this._register(Event.runAndSubscribe(onDidRegisterWindow, ({ window: window2, disposables }) =\u003e {\n      disposables.add(addDisposableListener(window2.document, \"copy\", () =\u003e this.clearResourcesState()));\n    }, { window: mainWindow, disposables: this._store }));\n  }\n  triggerPaste() {\n    this.logService.trace(\"BrowserClipboardService#triggerPaste\");\n    return void 0;\n  }\n  // In Safari, it has the following note:\n  //\n  // \"The request to write to the clipboard must be triggered during a user gesture.\n  // A call to clipboard.write or clipboard.writeText outside the scope of a user\n  // gesture(such as \"click\" or \"touch\" event handlers) will result in the immediate\n  // rejection of the promise returned by the API call.\"\n  // From: https://webkit.org/blog/10855/async-clipboard-api/\n  //\n  // Since extensions run in a web worker, and handle gestures in an asynchronous way,\n  // they are not classified by Safari as \"in response to a user gesture\" and will reject.\n  //\n  // This function sets up some handlers to work around that behavior.\n  installWebKitWriteTextWorkaround() {\n    const handler = () =\u003e {\n      const currentWritePromise = new DeferredPromise();\n      if (this.webKitPendingClipboardWritePromise \u0026\u0026 !this.webKitPendingClipboardWritePromise.isSettled) {\n        this.webKitPendingClipboardWritePromise.cancel();\n      }\n      this.webKitPendingClipboardWritePromise = currentWritePromise;\n      getActiveWindow().navigator.clipboard.write([new ClipboardItem({\n        \"text/plain\": currentWritePromise.p\n      })]).catch(async (err) =\u003e {\n        if (!(err instanceof Error) || err.name !== \"NotAllowedError\" || !currentWritePromise.isRejected) {\n          this.logService.error(err);\n        }\n      });\n    };\n    this._register(Event.runAndSubscribe(this.layoutService.onDidAddContainer, ({ container, disposables }) =\u003e {\n      disposables.add(addDisposableListener(container, \"click\", handler));\n      disposables.add(addDisposableListener(container, \"keydown\", handler));\n    }, { container: this.layoutService.mainContainer, disposables: this._store }));\n  }\n  async writeText(text2, type) {\n    this.logService.trace(\"BrowserClipboardService#writeText called with type:\", type, \" text.length:\", text2.length);\n    this.clearResourcesState();\n    if (type) {\n      this.mapTextToType.set(type, text2);\n      this.logService.trace(\"BrowserClipboardService#writeText\");\n      return;\n    }\n    if (this.webKitPendingClipboardWritePromise) {\n      return this.webKitPendingClipboardWritePromise.complete(text2);\n    }\n    try {\n      this.logService.trace(\"before navigator.clipboard.writeText\");\n      return await getActiveWindow().navigator.clipboard.writeText(text2);\n    } catch (error) {\n      console.error(error);\n    }\n    this.fallbackWriteText(text2);\n  }\n  fallbackWriteText(text2) {\n    this.logService.trace(\"BrowserClipboardService#fallbackWriteText\");\n    const activeDocument = getActiveDocument();\n    const activeElement = activeDocument.activeElement;\n    const textArea = activeDocument.body.appendChild($(\"textarea\", { \"aria-hidden\": true }));\n    textArea.style.height = \"1px\";\n    textArea.style.width = \"1px\";\n    textArea.style.position = \"absolute\";\n    textArea.value = text2;\n    textArea.focus();\n    textArea.select();\n    activeDocument.execCommand(\"copy\");\n    if (isHTMLElement(activeElement)) {\n      activeElement.focus();\n    }\n    textArea.remove();\n  }\n  async readText(type) {\n    this.logService.trace(\"BrowserClipboardService#readText called with type:\", type);\n    if (type) {\n      const readText = this.mapTextToType.get(type) || \"\";\n      this.logService.trace(\"BrowserClipboardService#readText text.length:\", readText.length);\n      return readText;\n    }\n    try {\n      const readText = await getActiveWindow().navigator.clipboard.readText();\n      this.logService.trace(\"BrowserClipboardService#readText text.length:\", readText.length);\n      return readText;\n    } catch (error) {\n      console.error(error);\n    }\n    return \"\";\n  }\n  async readFindText() {\n    return this.findText;\n  }\n  async writeFindText(text2) {\n    this.findText = text2;\n  }\n  static {\n    this.MAX_RESOURCE_STATE_SOURCE_LENGTH = 1e3;\n  }\n  async readResources() {\n    try {\n      const items = await getActiveWindow().navigator.clipboard.read();\n      for (const item of items) {\n        if (item.types.includes(`web ${vscodeResourcesMime}`)) {\n          const blob = await item.getType(`web ${vscodeResourcesMime}`);\n          const resources = JSON.parse(await blob.text()).map((x) =\u003e URI.from(x));\n          return resources;\n        }\n      }\n    } catch (error) {\n    }\n    const resourcesStateHash = await this.computeResourcesStateHash();\n    if (this.resourcesStateHash !== resourcesStateHash) {\n      this.clearResourcesState();\n    }\n    return this.resources;\n  }\n  async computeResourcesStateHash() {\n    if (this.resources.length === 0) {\n      return void 0;\n    }\n    const clipboardText = await this.readText();\n    return hash(clipboardText.substring(0, BrowserClipboardService_1.MAX_RESOURCE_STATE_SOURCE_LENGTH));\n  }\n  clearInternalState() {\n    this.clearResourcesState();\n  }\n  clearResourcesState() {\n    this.resources = [];\n    this.resourcesStateHash = void 0;\n  }\n};\nBrowserClipboardService = BrowserClipboardService_1 = __decorate187([\n  __param180(0, ILayoutService),\n  __param180(1, ILogService)\n], BrowserClipboardService);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/contextkey/browser/contextKeyService.js\ninit_event();\ninit_iterator();\ninit_lifecycle();\ninit_objects();\ninit_uri();\ninit_nls();\ninit_commands();\ninit_configuration();\ninit_contextkey();\nvar __decorate188 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param181 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar KEYBINDING_CONTEXT_ATTR = \"data-keybinding-context\";\nvar Context3 = class {\n  constructor(id, parent) {\n    this._id = id;\n    this._parent = parent;\n    this._value = /* @__PURE__ */ Object.create(null);\n    this._value[\"_contextId\"] = id;\n  }\n  get value() {\n    return { ...this._value };\n  }\n  setValue(key, value) {\n    if (this._value[key] !== value) {\n      this._value[key] = value;\n      return true;\n    }\n    return false;\n  }\n  removeValue(key) {\n    if (key in this._value) {\n      delete this._value[key];\n      return true;\n    }\n    return false;\n  }\n  getValue(key) {\n    const ret = this._value[key];\n    if (typeof ret === \"undefined\" \u0026\u0026 this._parent) {\n      return this._parent.getValue(key);\n    }\n    return ret;\n  }\n};\nvar NullContext = class _NullContext extends Context3 {\n  static {\n    this.INSTANCE = new _NullContext();\n  }\n  constructor() {\n    super(-1, null);\n  }\n  setValue(key, value) {\n    return false;\n  }\n  removeValue(key) {\n    return false;\n  }\n  getValue(key) {\n    return void 0;\n  }\n};\nvar ConfigAwareContextValuesContainer = class _ConfigAwareContextValuesContainer extends Context3 {\n  static {\n    this._keyPrefix = \"config.\";\n  }\n  constructor(id, _configurationService, emitter) {\n    super(id, null);\n    this._configurationService = _configurationService;\n    this._values = TernarySearchTree.forConfigKeys();\n    this._listener = this._configurationService.onDidChangeConfiguration((event) =\u003e {\n      if (event.source === 7) {\n        const allKeys = Array.from(this._values, ([k]) =\u003e k);\n        this._values.clear();\n        emitter.fire(new ArrayContextKeyChangeEvent(allKeys));\n      } else {\n        const changedKeys = [];\n        for (const configKey of event.affectedKeys) {\n          const contextKey = `config.${configKey}`;\n          const cachedItems = this._values.findSuperstr(contextKey);\n          if (cachedItems !== void 0) {\n            changedKeys.push(...Iterable.map(cachedItems, ([key]) =\u003e key));\n            this._values.deleteSuperstr(contextKey);\n          }\n          if (this._values.has(contextKey)) {\n            changedKeys.push(contextKey);\n            this._values.delete(contextKey);\n          }\n        }\n        emitter.fire(new ArrayContextKeyChangeEvent(changedKeys));\n      }\n    });\n  }\n  dispose() {\n    this._listener.dispose();\n  }\n  getValue(key) {\n    if (key.indexOf(_ConfigAwareContextValuesContainer._keyPrefix) !== 0) {\n      return super.getValue(key);\n    }\n    if (this._values.has(key)) {\n      return this._values.get(key);\n    }\n    const configKey = key.substr(_ConfigAwareContextValuesContainer._keyPrefix.length);\n    const configValue = this._configurationService.getValue(configKey);\n    let value = void 0;\n    switch (typeof configValue) {\n      case \"number\":\n      case \"boolean\":\n      case \"string\":\n        value = configValue;\n        break;\n      default:\n        if (Array.isArray(configValue)) {\n          value = JSON.stringify(configValue);\n        } else {\n          value = configValue;\n        }\n    }\n    this._values.set(key, value);\n    return value;\n  }\n  setValue(key, value) {\n    return super.setValue(key, value);\n  }\n  removeValue(key) {\n    return super.removeValue(key);\n  }\n};\nvar ContextKey = class {\n  constructor(service, key, defaultValue) {\n    this._service = service;\n    this._key = key;\n    this._defaultValue = defaultValue;\n    this.reset();\n  }\n  set(value) {\n    this._service.setContext(this._key, value);\n  }\n  reset() {\n    if (typeof this._defaultValue === \"undefined\") {\n      this._service.removeContext(this._key);\n    } else {\n      this._service.setContext(this._key, this._defaultValue);\n    }\n  }\n  get() {\n    return this._service.getContextKeyValue(this._key);\n  }\n};\nvar SimpleContextKeyChangeEvent = class {\n  constructor(key) {\n    this.key = key;\n  }\n  affectsSome(keys) {\n    return keys.has(this.key);\n  }\n  allKeysContainedIn(keys) {\n    return this.affectsSome(keys);\n  }\n};\nvar ArrayContextKeyChangeEvent = class {\n  constructor(keys) {\n    this.keys = keys;\n  }\n  affectsSome(keys) {\n    for (const key of this.keys) {\n      if (keys.has(key)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  allKeysContainedIn(keys) {\n    return this.keys.every((key) =\u003e keys.has(key));\n  }\n};\nvar CompositeContextKeyChangeEvent = class {\n  constructor(events) {\n    this.events = events;\n  }\n  affectsSome(keys) {\n    for (const e of this.events) {\n      if (e.affectsSome(keys)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  allKeysContainedIn(keys) {\n    return this.events.every((evt) =\u003e evt.allKeysContainedIn(keys));\n  }\n};\nfunction allEventKeysInContext(event, context) {\n  return event.allKeysContainedIn(new Set(Object.keys(context)));\n}\nvar AbstractContextKeyService = class extends Disposable {\n  get onDidChangeContext() {\n    return this._onDidChangeContext.event;\n  }\n  constructor(myContextId) {\n    super();\n    this._onDidChangeContext = this._register(new PauseableEmitter({ merge: (input) =\u003e new CompositeContextKeyChangeEvent(input) }));\n    this._isDisposed = false;\n    this._myContextId = myContextId;\n  }\n  createKey(key, defaultValue) {\n    if (this._isDisposed) {\n      throw new Error(`AbstractContextKeyService has been disposed`);\n    }\n    return new ContextKey(this, key, defaultValue);\n  }\n  bufferChangeEvents(callback) {\n    this._onDidChangeContext.pause();\n    try {\n      callback();\n    } finally {\n      this._onDidChangeContext.resume();\n    }\n  }\n  createScoped(domNode) {\n    if (this._isDisposed) {\n      throw new Error(`AbstractContextKeyService has been disposed`);\n    }\n    return new ScopedContextKeyService(this, domNode);\n  }\n  contextMatchesRules(rules) {\n    if (this._isDisposed) {\n      throw new Error(`AbstractContextKeyService has been disposed`);\n    }\n    const context = this.getContextValuesContainer(this._myContextId);\n    const result = rules ? rules.evaluate(context) : true;\n    return result;\n  }\n  getContextKeyValue(key) {\n    if (this._isDisposed) {\n      return void 0;\n    }\n    return this.getContextValuesContainer(this._myContextId).getValue(key);\n  }\n  setContext(key, value) {\n    if (this._isDisposed) {\n      return;\n    }\n    const myContext = this.getContextValuesContainer(this._myContextId);\n    if (!myContext) {\n      return;\n    }\n    if (myContext.setValue(key, value)) {\n      this._onDidChangeContext.fire(new SimpleContextKeyChangeEvent(key));\n    }\n  }\n  removeContext(key) {\n    if (this._isDisposed) {\n      return;\n    }\n    if (this.getContextValuesContainer(this._myContextId).removeValue(key)) {\n      this._onDidChangeContext.fire(new SimpleContextKeyChangeEvent(key));\n    }\n  }\n  getContext(target) {\n    if (this._isDisposed) {\n      return NullContext.INSTANCE;\n    }\n    return this.getContextValuesContainer(findContextAttr(target));\n  }\n  dispose() {\n    super.dispose();\n    this._isDisposed = true;\n  }\n};\nvar ContextKeyService = class ContextKeyService2 extends AbstractContextKeyService {\n  constructor(configurationService) {\n    super(0);\n    this._contexts = /* @__PURE__ */ new Map();\n    this._lastContextId = 0;\n    const myContext = this._register(new ConfigAwareContextValuesContainer(this._myContextId, configurationService, this._onDidChangeContext));\n    this._contexts.set(this._myContextId, myContext);\n  }\n  getContextValuesContainer(contextId) {\n    if (this._isDisposed) {\n      return NullContext.INSTANCE;\n    }\n    return this._contexts.get(contextId) || NullContext.INSTANCE;\n  }\n  createChildContext(parentContextId = this._myContextId) {\n    if (this._isDisposed) {\n      throw new Error(`ContextKeyService has been disposed`);\n    }\n    const id = ++this._lastContextId;\n    this._contexts.set(id, new Context3(id, this.getContextValuesContainer(parentContextId)));\n    return id;\n  }\n  disposeContext(contextId) {\n    if (!this._isDisposed) {\n      this._contexts.delete(contextId);\n    }\n  }\n};\nContextKeyService = __decorate188([\n  __param181(0, IConfigurationService)\n], ContextKeyService);\nvar ScopedContextKeyService = class extends AbstractContextKeyService {\n  constructor(parent, domNode) {\n    super(parent.createChildContext());\n    this._parentChangeListener = this._register(new MutableDisposable());\n    this._parent = parent;\n    this._updateParentChangeListener();\n    this._domNode = domNode;\n    if (this._domNode.hasAttribute(KEYBINDING_CONTEXT_ATTR)) {\n      let extraInfo = \"\";\n      if (this._domNode.classList) {\n        extraInfo = Array.from(this._domNode.classList.values()).join(\", \");\n      }\n      console.error(`Element already has context attribute${extraInfo ? \": \" + extraInfo : \"\"}`);\n    }\n    this._domNode.setAttribute(KEYBINDING_CONTEXT_ATTR, String(this._myContextId));\n  }\n  _updateParentChangeListener() {\n    this._parentChangeListener.value = this._parent.onDidChangeContext((e) =\u003e {\n      const thisContainer = this._parent.getContextValuesContainer(this._myContextId);\n      const thisContextValues = thisContainer.value;\n      if (!allEventKeysInContext(e, thisContextValues)) {\n        this._onDidChangeContext.fire(e);\n      }\n    });\n  }\n  dispose() {\n    if (this._isDisposed) {\n      return;\n    }\n    this._parent.disposeContext(this._myContextId);\n    this._domNode.removeAttribute(KEYBINDING_CONTEXT_ATTR);\n    super.dispose();\n  }\n  getContextValuesContainer(contextId) {\n    if (this._isDisposed) {\n      return NullContext.INSTANCE;\n    }\n    return this._parent.getContextValuesContainer(contextId);\n  }\n  createChildContext(parentContextId = this._myContextId) {\n    if (this._isDisposed) {\n      throw new Error(`ScopedContextKeyService has been disposed`);\n    }\n    return this._parent.createChildContext(parentContextId);\n  }\n  disposeContext(contextId) {\n    if (this._isDisposed) {\n      return;\n    }\n    this._parent.disposeContext(contextId);\n  }\n};\nfunction findContextAttr(domNode) {\n  while (domNode) {\n    if (domNode.hasAttribute(KEYBINDING_CONTEXT_ATTR)) {\n      const attr = domNode.getAttribute(KEYBINDING_CONTEXT_ATTR);\n      if (attr) {\n        return parseInt(attr, 10);\n      }\n      return NaN;\n    }\n    domNode = domNode.parentElement;\n  }\n  return 0;\n}\nfunction setContext(accessor, contextKey, contextValue) {\n  const contextKeyService = accessor.get(IContextKeyService);\n  contextKeyService.createKey(String(contextKey), stringifyURIs(contextValue));\n}\nfunction stringifyURIs(contextValue) {\n  return cloneAndChange(contextValue, (obj) =\u003e {\n    if (typeof obj === \"object\" \u0026\u0026 obj.$mid === 1) {\n      return URI.revive(obj).toString();\n    }\n    if (obj instanceof URI) {\n      return obj.toString();\n    }\n    return void 0;\n  });\n}\nCommandsRegistry.registerCommand(\"_setContext\", setContext);\nCommandsRegistry.registerCommand({\n  id: \"getContextKeyInfo\",\n  handler() {\n    return [...RawContextKey.all()].sort((a, b) =\u003e a.key.localeCompare(b.key));\n  },\n  metadata: {\n    description: localize(1656, \"A command that returns information about context keys\"),\n    args: []\n  }\n});\nCommandsRegistry.registerCommand(\"_generateContextKeyInfo\", function() {\n  const result = [];\n  const seen = /* @__PURE__ */ new Set();\n  for (const info of RawContextKey.all()) {\n    if (!seen.has(info.key)) {\n      seen.add(info.key);\n      result.push(info);\n    }\n  }\n  result.sort((a, b) =\u003e a.key.localeCompare(b.key));\n  console.log(JSON.stringify(result, void 0, 2));\n});\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_descriptors();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/instantiationService.js\ninit_async();\ninit_errors();\ninit_lifecycle();\ninit_descriptors();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/graph.js\nvar Node3 = class {\n  constructor(key, data) {\n    this.key = key;\n    this.data = data;\n    this.incoming = /* @__PURE__ */ new Map();\n    this.outgoing = /* @__PURE__ */ new Map();\n  }\n};\nvar Graph = class {\n  constructor(_hashFn) {\n    this._hashFn = _hashFn;\n    this._nodes = /* @__PURE__ */ new Map();\n  }\n  roots() {\n    const ret = [];\n    for (const node of this._nodes.values()) {\n      if (node.outgoing.size === 0) {\n        ret.push(node);\n      }\n    }\n    return ret;\n  }\n  insertEdge(from, to) {\n    const fromNode = this.lookupOrInsertNode(from);\n    const toNode = this.lookupOrInsertNode(to);\n    fromNode.outgoing.set(toNode.key, toNode);\n    toNode.incoming.set(fromNode.key, fromNode);\n  }\n  removeNode(data) {\n    const key = this._hashFn(data);\n    this._nodes.delete(key);\n    for (const node of this._nodes.values()) {\n      node.outgoing.delete(key);\n      node.incoming.delete(key);\n    }\n  }\n  lookupOrInsertNode(data) {\n    const key = this._hashFn(data);\n    let node = this._nodes.get(key);\n    if (!node) {\n      node = new Node3(key, data);\n      this._nodes.set(key, node);\n    }\n    return node;\n  }\n  isEmpty() {\n    return this._nodes.size === 0;\n  }\n  toString() {\n    const data = [];\n    for (const [key, value] of this._nodes) {\n      data.push(`${key}\n\t(-\u003e incoming)[${[...value.incoming.keys()].join(\", \")}]\n\t(outgoing -\u003e)[${[...value.outgoing.keys()].join(\",\")}]\n`);\n    }\n    return data.join(\"\\n\");\n  }\n  /**\n   * This is brute force and slow and **only** be used\n   * to trouble shoot.\n   */\n  findCycleSlow() {\n    for (const [id, node] of this._nodes) {\n      const seen = /* @__PURE__ */ new Set([id]);\n      const res = this._findCycle(node, seen);\n      if (res) {\n        return res;\n      }\n    }\n    return void 0;\n  }\n  _findCycle(node, seen) {\n    for (const [id, outgoing] of node.outgoing) {\n      if (seen.has(id)) {\n        return [...seen, id].join(\" -\u003e \");\n      }\n      seen.add(id);\n      const value = this._findCycle(outgoing, seen);\n      if (value) {\n        return value;\n      }\n      seen.delete(id);\n    }\n    return void 0;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/instantiation/common/instantiationService.js\ninit_instantiation();\ninit_linkedList();\nvar _enableAllTracing = false;\nvar CyclicDependencyError = class extends Error {\n  constructor(graph) {\n    super(\"cyclic dependency between services\");\n    this.message = graph.findCycleSlow() ?? `UNABLE to detect cycle, dumping graph: \n${graph.toString()}`;\n  }\n};\nvar InstantiationService = class _InstantiationService {\n  constructor(_services = new ServiceCollection(), _strict = false, _parent, _enableTracing = _enableAllTracing) {\n    this._services = _services;\n    this._strict = _strict;\n    this._parent = _parent;\n    this._enableTracing = _enableTracing;\n    this._isDisposed = false;\n    this._servicesToMaybeDispose = /* @__PURE__ */ new Set();\n    this._children = /* @__PURE__ */ new Set();\n    this._activeInstantiations = /* @__PURE__ */ new Set();\n    this._services.set(IInstantiationService, this);\n    this._globalGraph = _enableTracing ? _parent?._globalGraph ?? new Graph((e) =\u003e e) : void 0;\n  }\n  dispose() {\n    if (!this._isDisposed) {\n      this._isDisposed = true;\n      dispose(this._children);\n      this._children.clear();\n      for (const candidate of this._servicesToMaybeDispose) {\n        if (isDisposable(candidate)) {\n          candidate.dispose();\n        }\n      }\n      this._servicesToMaybeDispose.clear();\n    }\n  }\n  _throwIfDisposed() {\n    if (this._isDisposed) {\n      throw new Error(\"InstantiationService has been disposed\");\n    }\n  }\n  createChild(services, store) {\n    this._throwIfDisposed();\n    const that = this;\n    const result = new class extends _InstantiationService {\n      dispose() {\n        that._children.delete(result);\n        super.dispose();\n      }\n    }(services, this._strict, this, this._enableTracing);\n    this._children.add(result);\n    store?.add(result);\n    return result;\n  }\n  invokeFunction(fn, ...args) {\n    this._throwIfDisposed();\n    const _trace = Trace.traceInvocation(this._enableTracing, fn);\n    let _done = false;\n    try {\n      const accessor = {\n        get: (id) =\u003e {\n          if (_done) {\n            throw illegalState(\"service accessor is only valid during the invocation of its target method\");\n          }\n          const result = this._getOrCreateServiceInstance(id, _trace);\n          if (!result) {\n            throw new Error(`[invokeFunction] unknown service '${id}'`);\n          }\n          return result;\n        },\n        getIfExists: (id) =\u003e {\n          if (_done) {\n            throw illegalState(\"service accessor is only valid during the invocation of its target method\");\n          }\n          const result = this._getOrCreateServiceInstance(id, _trace);\n          return result;\n        }\n      };\n      return fn(accessor, ...args);\n    } finally {\n      _done = true;\n      _trace.stop();\n    }\n  }\n  createInstance(ctorOrDescriptor, ...rest) {\n    this._throwIfDisposed();\n    let _trace;\n    let result;\n    if (ctorOrDescriptor instanceof SyncDescriptor) {\n      _trace = Trace.traceCreation(this._enableTracing, ctorOrDescriptor.ctor);\n      result = this._createInstance(ctorOrDescriptor.ctor, ctorOrDescriptor.staticArguments.concat(rest), _trace);\n    } else {\n      _trace = Trace.traceCreation(this._enableTracing, ctorOrDescriptor);\n      result = this._createInstance(ctorOrDescriptor, rest, _trace);\n    }\n    _trace.stop();\n    return result;\n  }\n  _createInstance(ctor, args = [], _trace) {\n    const serviceDependencies = _util.getServiceDependencies(ctor).sort((a, b) =\u003e a.index - b.index);\n    const serviceArgs = [];\n    for (const dependency of serviceDependencies) {\n      const service = this._getOrCreateServiceInstance(dependency.id, _trace);\n      if (!service) {\n        this._throwIfStrict(`[createInstance] ${ctor.name} depends on UNKNOWN service ${dependency.id}.`, false);\n      }\n      serviceArgs.push(service);\n    }\n    const firstServiceArgPos = serviceDependencies.length \u003e 0 ? serviceDependencies[0].index : args.length;\n    if (args.length !== firstServiceArgPos) {\n      console.trace(`[createInstance] First service dependency of ${ctor.name} at position ${firstServiceArgPos + 1} conflicts with ${args.length} static arguments`);\n      const delta = firstServiceArgPos - args.length;\n      if (delta \u003e 0) {\n        args = args.concat(new Array(delta));\n      } else {\n        args = args.slice(0, firstServiceArgPos);\n      }\n    }\n    return Reflect.construct(ctor, args.concat(serviceArgs));\n  }\n  _setCreatedServiceInstance(id, instance) {\n    if (this._services.get(id) instanceof SyncDescriptor) {\n      this._services.set(id, instance);\n    } else if (this._parent) {\n      this._parent._setCreatedServiceInstance(id, instance);\n    } else {\n      throw new Error(\"illegalState - setting UNKNOWN service instance\");\n    }\n  }\n  _getServiceInstanceOrDescriptor(id) {\n    const instanceOrDesc = this._services.get(id);\n    if (!instanceOrDesc \u0026\u0026 this._parent) {\n      return this._parent._getServiceInstanceOrDescriptor(id);\n    } else {\n      return instanceOrDesc;\n    }\n  }\n  _getOrCreateServiceInstance(id, _trace) {\n    if (this._globalGraph \u0026\u0026 this._globalGraphImplicitDependency) {\n      this._globalGraph.insertEdge(this._globalGraphImplicitDependency, String(id));\n    }\n    const thing = this._getServiceInstanceOrDescriptor(id);\n    if (thing instanceof SyncDescriptor) {\n      return this._safeCreateAndCacheServiceInstance(id, thing, _trace.branch(id, true));\n    } else {\n      _trace.branch(id, false);\n      return thing;\n    }\n  }\n  _safeCreateAndCacheServiceInstance(id, desc, _trace) {\n    if (this._activeInstantiations.has(id)) {\n      throw new Error(`illegal state - RECURSIVELY instantiating service '${id}'`);\n    }\n    this._activeInstantiations.add(id);\n    try {\n      return this._createAndCacheServiceInstance(id, desc, _trace);\n    } finally {\n      this._activeInstantiations.delete(id);\n    }\n  }\n  _createAndCacheServiceInstance(id, desc, _trace) {\n    const graph = new Graph((data) =\u003e data.id.toString());\n    let cycleCount = 0;\n    const stack = [{ id, desc, _trace }];\n    const seen = /* @__PURE__ */ new Set();\n    while (stack.length) {\n      const item = stack.pop();\n      if (seen.has(String(item.id))) {\n        continue;\n      }\n      seen.add(String(item.id));\n      graph.lookupOrInsertNode(item);\n      if (cycleCount++ \u003e 1e3) {\n        throw new CyclicDependencyError(graph);\n      }\n      for (const dependency of _util.getServiceDependencies(item.desc.ctor)) {\n        const instanceOrDesc = this._getServiceInstanceOrDescriptor(dependency.id);\n        if (!instanceOrDesc) {\n          this._throwIfStrict(`[createInstance] ${id} depends on ${dependency.id} which is NOT registered.`, true);\n        }\n        this._globalGraph?.insertEdge(String(item.id), String(dependency.id));\n        if (instanceOrDesc instanceof SyncDescriptor) {\n          const d = { id: dependency.id, desc: instanceOrDesc, _trace: item._trace.branch(dependency.id, true) };\n          graph.insertEdge(item, d);\n          stack.push(d);\n        }\n      }\n    }\n    while (true) {\n      const roots = graph.roots();\n      if (roots.length === 0) {\n        if (!graph.isEmpty()) {\n          throw new CyclicDependencyError(graph);\n        }\n        break;\n      }\n      for (const { data } of roots) {\n        const instanceOrDesc = this._getServiceInstanceOrDescriptor(data.id);\n        if (instanceOrDesc instanceof SyncDescriptor) {\n          const instance = this._createServiceInstanceWithOwner(data.id, data.desc.ctor, data.desc.staticArguments, data.desc.supportsDelayedInstantiation, data._trace);\n          this._setCreatedServiceInstance(data.id, instance);\n        }\n        graph.removeNode(data);\n      }\n    }\n    return this._getServiceInstanceOrDescriptor(id);\n  }\n  _createServiceInstanceWithOwner(id, ctor, args = [], supportsDelayedInstantiation, _trace) {\n    if (this._services.get(id) instanceof SyncDescriptor) {\n      return this._createServiceInstance(id, ctor, args, supportsDelayedInstantiation, _trace, this._servicesToMaybeDispose);\n    } else if (this._parent) {\n      return this._parent._createServiceInstanceWithOwner(id, ctor, args, supportsDelayedInstantiation, _trace);\n    } else {\n      throw new Error(`illegalState - creating UNKNOWN service instance ${ctor.name}`);\n    }\n  }\n  _createServiceInstance(id, ctor, args = [], supportsDelayedInstantiation, _trace, disposeBucket) {\n    if (!supportsDelayedInstantiation) {\n      const result = this._createInstance(ctor, args, _trace);\n      disposeBucket.add(result);\n      return result;\n    } else {\n      const child = new _InstantiationService(void 0, this._strict, this, this._enableTracing);\n      child._globalGraphImplicitDependency = String(id);\n      const earlyListeners = /* @__PURE__ */ new Map();\n      const idle = new GlobalIdleValue(() =\u003e {\n        const result = child._createInstance(ctor, args, _trace);\n        for (const [key, values] of earlyListeners) {\n          const candidate = result[key];\n          if (typeof candidate === \"function\") {\n            for (const value of values) {\n              value.disposable = candidate.apply(result, value.listener);\n            }\n          }\n        }\n        earlyListeners.clear();\n        disposeBucket.add(result);\n        return result;\n      });\n      return new Proxy(/* @__PURE__ */ Object.create(null), {\n        get(target, key) {\n          if (!idle.isInitialized) {\n            if (typeof key === \"string\" \u0026\u0026 (key.startsWith(\"onDid\") || key.startsWith(\"onWill\"))) {\n              let list2 = earlyListeners.get(key);\n              if (!list2) {\n                list2 = new LinkedList();\n                earlyListeners.set(key, list2);\n              }\n              const event = (callback, thisArg, disposables) =\u003e {\n                if (idle.isInitialized) {\n                  return idle.value[key](callback, thisArg, disposables);\n                } else {\n                  const entry = { listener: [callback, thisArg, disposables], disposable: void 0 };\n                  const rm = list2.push(entry);\n                  const result = toDisposable(() =\u003e {\n                    rm();\n                    entry.disposable?.dispose();\n                  });\n                  return result;\n                }\n              };\n              return event;\n            }\n          }\n          if (key in target) {\n            return target[key];\n          }\n          const obj = idle.value;\n          let prop = obj[key];\n          if (typeof prop !== \"function\") {\n            return prop;\n          }\n          prop = prop.bind(obj);\n          target[key] = prop;\n          return prop;\n        },\n        set(_target, p, value) {\n          idle.value[p] = value;\n          return true;\n        },\n        getPrototypeOf(_target) {\n          return ctor.prototype;\n        }\n      });\n    }\n  }\n  _throwIfStrict(msg, printWarning) {\n    if (printWarning) {\n      console.warn(msg);\n    }\n    if (this._strict) {\n      throw new Error(msg);\n    }\n  }\n};\nvar Trace = class _Trace {\n  static {\n    this.all = /* @__PURE__ */ new Set();\n  }\n  static {\n    this._None = new class extends _Trace {\n      constructor() {\n        super(0, null);\n      }\n      stop() {\n      }\n      branch() {\n        return this;\n      }\n    }();\n  }\n  static traceInvocation(_enableTracing, ctor) {\n    return !_enableTracing ? _Trace._None : new _Trace(2, ctor.name || new Error().stack.split(\"\\n\").slice(3, 4).join(\"\\n\"));\n  }\n  static traceCreation(_enableTracing, ctor) {\n    return !_enableTracing ? _Trace._None : new _Trace(1, ctor.name);\n  }\n  static {\n    this._totals = 0;\n  }\n  constructor(type, name) {\n    this.type = type;\n    this.name = name;\n    this._start = Date.now();\n    this._dep = [];\n  }\n  branch(id, first2) {\n    const child = new _Trace(3, id.toString());\n    this._dep.push([id, first2, child]);\n    return child;\n  }\n  stop() {\n    const dur = Date.now() - this._start;\n    _Trace._totals += dur;\n    let causedCreation = false;\n    function printChild(n2, trace) {\n      const res = [];\n      const prefix = new Array(n2 + 1).join(\"\t\");\n      for (const [id, first2, child] of trace._dep) {\n        if (first2 \u0026\u0026 child) {\n          causedCreation = true;\n          res.push(`${prefix}CREATES -\u003e ${id}`);\n          const nested = printChild(n2 + 1, child);\n          if (nested) {\n            res.push(nested);\n          }\n        } else {\n          res.push(`${prefix}uses -\u003e ${id}`);\n        }\n      }\n      return res.join(\"\\n\");\n    }\n    const lines = [\n      `${this.type === 1 ? \"CREATE\" : \"CALL\"} ${this.name}`,\n      `${printChild(1, this)}`,\n      `DONE, took ${dur.toFixed(2)}ms (grand total ${_Trace._totals.toFixed(2)}ms)`\n    ];\n    if (dur \u003e 2 || causedCreation) {\n      _Trace.all.add(lines.join(\"\\n\"));\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/markers/common/markerService.js\ninit_arrays();\ninit_event();\ninit_iterator();\ninit_map();\ninit_network();\ninit_uri();\ninit_nls();\nvar unsupportedSchemas = /* @__PURE__ */ new Set([\n  Schemas.inMemory,\n  Schemas.vscodeSourceControl,\n  Schemas.walkThrough,\n  Schemas.walkThroughSnippet,\n  Schemas.vscodeChatCodeBlock,\n  Schemas.vscodeTerminal\n]);\nvar DoubleResourceMap = class {\n  constructor() {\n    this._byResource = new ResourceMap();\n    this._byOwner = /* @__PURE__ */ new Map();\n  }\n  set(resource, owner, value) {\n    let ownerMap = this._byResource.get(resource);\n    if (!ownerMap) {\n      ownerMap = /* @__PURE__ */ new Map();\n      this._byResource.set(resource, ownerMap);\n    }\n    ownerMap.set(owner, value);\n    let resourceMap = this._byOwner.get(owner);\n    if (!resourceMap) {\n      resourceMap = new ResourceMap();\n      this._byOwner.set(owner, resourceMap);\n    }\n    resourceMap.set(resource, value);\n  }\n  get(resource, owner) {\n    const ownerMap = this._byResource.get(resource);\n    return ownerMap?.get(owner);\n  }\n  delete(resource, owner) {\n    let removedA = false;\n    let removedB = false;\n    const ownerMap = this._byResource.get(resource);\n    if (ownerMap) {\n      removedA = ownerMap.delete(owner);\n    }\n    const resourceMap = this._byOwner.get(owner);\n    if (resourceMap) {\n      removedB = resourceMap.delete(resource);\n    }\n    if (removedA !== removedB) {\n      throw new Error(\"illegal state\");\n    }\n    return removedA \u0026\u0026 removedB;\n  }\n  values(key) {\n    if (typeof key === \"string\") {\n      return this._byOwner.get(key)?.values() ?? Iterable.empty();\n    }\n    if (URI.isUri(key)) {\n      return this._byResource.get(key)?.values() ?? Iterable.empty();\n    }\n    return Iterable.map(Iterable.concat(...this._byOwner.values()), (map) =\u003e map[1]);\n  }\n};\nvar MarkerStats = class {\n  constructor(service) {\n    this.errors = 0;\n    this.infos = 0;\n    this.warnings = 0;\n    this.unknowns = 0;\n    this._data = new ResourceMap();\n    this._service = service;\n    this._subscription = service.onMarkerChanged(this._update, this);\n  }\n  dispose() {\n    this._subscription.dispose();\n  }\n  _update(resources) {\n    for (const resource of resources) {\n      const oldStats = this._data.get(resource);\n      if (oldStats) {\n        this._substract(oldStats);\n      }\n      const newStats = this._resourceStats(resource);\n      this._add(newStats);\n      this._data.set(resource, newStats);\n    }\n  }\n  _resourceStats(resource) {\n    const result = { errors: 0, warnings: 0, infos: 0, unknowns: 0 };\n    if (unsupportedSchemas.has(resource.scheme)) {\n      return result;\n    }\n    for (const { severity } of this._service.read({ resource })) {\n      if (severity === MarkerSeverity.Error) {\n        result.errors += 1;\n      } else if (severity === MarkerSeverity.Warning) {\n        result.warnings += 1;\n      } else if (severity === MarkerSeverity.Info) {\n        result.infos += 1;\n      } else {\n        result.unknowns += 1;\n      }\n    }\n    return result;\n  }\n  _substract(op) {\n    this.errors -= op.errors;\n    this.warnings -= op.warnings;\n    this.infos -= op.infos;\n    this.unknowns -= op.unknowns;\n  }\n  _add(op) {\n    this.errors += op.errors;\n    this.warnings += op.warnings;\n    this.infos += op.infos;\n    this.unknowns += op.unknowns;\n  }\n};\nvar MarkerService = class _MarkerService {\n  constructor() {\n    this._onMarkerChanged = new DebounceEmitter({\n      delay: 0,\n      merge: _MarkerService._merge\n    });\n    this.onMarkerChanged = this._onMarkerChanged.event;\n    this._data = new DoubleResourceMap();\n    this._stats = new MarkerStats(this);\n    this._filteredResources = new ResourceMap();\n  }\n  dispose() {\n    this._stats.dispose();\n    this._onMarkerChanged.dispose();\n  }\n  remove(owner, resources) {\n    for (const resource of resources || []) {\n      this.changeOne(owner, resource, []);\n    }\n  }\n  changeOne(owner, resource, markerData) {\n    if (isFalsyOrEmpty(markerData)) {\n      const removed = this._data.delete(resource, owner);\n      if (removed) {\n        this._onMarkerChanged.fire([resource]);\n      }\n    } else {\n      const markers = [];\n      for (const data of markerData) {\n        const marker = _MarkerService._toMarker(owner, resource, data);\n        if (marker) {\n          markers.push(marker);\n        }\n      }\n      this._data.set(resource, owner, markers);\n      this._onMarkerChanged.fire([resource]);\n    }\n  }\n  static _toMarker(owner, resource, data) {\n    let { code, severity, message, source, startLineNumber, startColumn, endLineNumber, endColumn, relatedInformation, tags, origin } = data;\n    if (!message) {\n      return void 0;\n    }\n    startLineNumber = startLineNumber \u003e 0 ? startLineNumber : 1;\n    startColumn = startColumn \u003e 0 ? startColumn : 1;\n    endLineNumber = endLineNumber \u003e= startLineNumber ? endLineNumber : startLineNumber;\n    endColumn = endColumn \u003e 0 ? endColumn : startColumn;\n    return {\n      resource,\n      owner,\n      code,\n      severity,\n      message,\n      source,\n      startLineNumber,\n      startColumn,\n      endLineNumber,\n      endColumn,\n      relatedInformation,\n      tags,\n      origin\n    };\n  }\n  changeAll(owner, data) {\n    const changes = [];\n    const existing = this._data.values(owner);\n    if (existing) {\n      for (const data2 of existing) {\n        const first2 = Iterable.first(data2);\n        if (first2) {\n          changes.push(first2.resource);\n          this._data.delete(first2.resource, owner);\n        }\n      }\n    }\n    if (isNonEmptyArray(data)) {\n      const groups = new ResourceMap();\n      for (const { resource, marker: markerData } of data) {\n        const marker = _MarkerService._toMarker(owner, resource, markerData);\n        if (!marker) {\n          continue;\n        }\n        const array2 = groups.get(resource);\n        if (!array2) {\n          groups.set(resource, [marker]);\n          changes.push(resource);\n        } else {\n          array2.push(marker);\n        }\n      }\n      for (const [resource, value] of groups) {\n        this._data.set(resource, owner, value);\n      }\n    }\n    if (changes.length \u003e 0) {\n      this._onMarkerChanged.fire(changes);\n    }\n  }\n  /**\n   * Creates an information marker for filtered resources\n   */\n  _createFilteredMarker(resource, reasons) {\n    const message = reasons.length === 1 ? localize(1719, 'Problems are paused because: \"{0}\"', reasons[0]) : localize(1720, 'Problems are paused because: \"{0}\" and {1} more', reasons[0], reasons.length - 1);\n    return {\n      owner: \"markersFilter\",\n      resource,\n      severity: MarkerSeverity.Info,\n      message,\n      startLineNumber: 1,\n      startColumn: 1,\n      endLineNumber: 1,\n      endColumn: 1\n    };\n  }\n  read(filter = /* @__PURE__ */ Object.create(null)) {\n    let { owner, resource, severities, take } = filter;\n    if (!take || take \u003c 0) {\n      take = -1;\n    }\n    if (owner \u0026\u0026 resource) {\n      const reasons = !filter.ignoreResourceFilters ? this._filteredResources.get(resource) : void 0;\n      if (reasons?.length) {\n        const infoMarker = this._createFilteredMarker(resource, reasons);\n        return [infoMarker];\n      }\n      const data = this._data.get(resource, owner);\n      if (!data) {\n        return [];\n      }\n      const result = [];\n      for (const marker of data) {\n        if (take \u003e 0 \u0026\u0026 result.length === take) {\n          break;\n        }\n        const reasons2 = !filter.ignoreResourceFilters ? this._filteredResources.get(resource) : void 0;\n        if (reasons2?.length) {\n          result.push(this._createFilteredMarker(resource, reasons2));\n        } else if (_MarkerService._accept(marker, severities)) {\n          result.push(marker);\n        }\n      }\n      return result;\n    } else {\n      const iterable = !owner \u0026\u0026 !resource ? this._data.values() : this._data.values(resource ?? owner);\n      const result = [];\n      const filtered = new ResourceSet();\n      for (const markers of iterable) {\n        for (const data of markers) {\n          if (filtered.has(data.resource)) {\n            continue;\n          }\n          if (take \u003e 0 \u0026\u0026 result.length === take) {\n            break;\n          }\n          const reasons = !filter.ignoreResourceFilters ? this._filteredResources.get(data.resource) : void 0;\n          if (reasons?.length) {\n            result.push(this._createFilteredMarker(data.resource, reasons));\n            filtered.add(data.resource);\n          } else if (_MarkerService._accept(data, severities)) {\n            result.push(data);\n          }\n        }\n      }\n      return result;\n    }\n  }\n  static _accept(marker, severities) {\n    return severities === void 0 || (severities \u0026 marker.severity) === marker.severity;\n  }\n  // --- event debounce logic\n  static _merge(all) {\n    const set = new ResourceMap();\n    for (const array2 of all) {\n      for (const item of array2) {\n        set.set(item, true);\n      }\n    }\n    return Array.from(set.keys());\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/configuration/common/configurations.js\ninit_lifecycle();\ninit_objects();\ninit_configurationRegistry();\ninit_platform2();\nvar DefaultConfiguration = class extends Disposable {\n  get configurationModel() {\n    return this._configurationModel;\n  }\n  constructor(logService) {\n    super();\n    this.logService = logService;\n    this._configurationModel = ConfigurationModel.createEmptyModel(logService);\n  }\n  reload() {\n    this.resetConfigurationModel();\n    return this.configurationModel;\n  }\n  getConfigurationDefaultOverrides() {\n    return {};\n  }\n  resetConfigurationModel() {\n    this._configurationModel = ConfigurationModel.createEmptyModel(this.logService);\n    const properties = Registry.as(Extensions4.Configuration).getConfigurationProperties();\n    this.updateConfigurationModel(Object.keys(properties), properties);\n  }\n  updateConfigurationModel(properties, configurationProperties) {\n    const configurationDefaultsOverrides = this.getConfigurationDefaultOverrides();\n    for (const key of properties) {\n      const defaultOverrideValue = configurationDefaultsOverrides[key];\n      const propertySchema = configurationProperties[key];\n      if (defaultOverrideValue !== void 0) {\n        this._configurationModel.setValue(key, defaultOverrideValue);\n      } else if (propertySchema) {\n        this._configurationModel.setValue(key, deepClone(propertySchema.default));\n      } else {\n        this._configurationModel.removeValue(key);\n      }\n    }\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_languageFeatures();\ninit_languageConfigurationRegistry();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/platform/log/common/logService.js\ninit_lifecycle();\ninit_log();\nvar LogService = class extends Disposable {\n  constructor(primaryLogger, otherLoggers = []) {\n    super();\n    this.logger = new MultiplexLogger([primaryLogger, ...otherLoggers]);\n    this._register(primaryLogger.onDidChangeLogLevel((level) =\u003e this.setLevel(level)));\n  }\n  get onDidChangeLogLevel() {\n    return this.logger.onDidChangeLogLevel;\n  }\n  setLevel(level) {\n    this.logger.setLevel(level);\n  }\n  getLevel() {\n    return this.logger.getLevel();\n  }\n  trace(message, ...args) {\n    this.logger.trace(message, ...args);\n  }\n  debug(message, ...args) {\n    this.logger.debug(message, ...args);\n  }\n  info(message, ...args) {\n    this.logger.info(message, ...args);\n  }\n  warn(message, ...args) {\n    this.logger.warn(message, ...args);\n  }\n  error(message, ...args) {\n    this.logger.error(message, ...args);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\ninit_errors();\ninit_environment();\ninit_window();\ninit_map();\ninit_treeSitterLibraryService();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneTreeSitterLibraryService.js\nvar StandaloneTreeSitterLibraryService = class {\n  getParserClass() {\n    throw new Error(\"getParserClass is not implemented in StandaloneTreeSitterLibraryService\");\n  }\n  supportsLanguage(languageId, reader) {\n    return false;\n  }\n  getLanguage(languageId, reader) {\n    return void 0;\n  }\n  /**\n   * Return value of null indicates that there are no injection queries for this language.\n   * @param languageId\n   * @param reader\n   */\n  getInjectionQueries(languageId, reader) {\n    return null;\n  }\n  /**\n   * Return value of null indicates that there are no highlights queries for this language.\n   * @param languageId\n   * @param reader\n   */\n  getHighlightingQueries(languageId, reader) {\n    return null;\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices.js\nvar __decorate189 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param182 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar SimpleModel = class {\n  constructor(model) {\n    this.disposed = false;\n    this.model = model;\n    this._onWillDispose = new Emitter();\n  }\n  get textEditorModel() {\n    return this.model;\n  }\n  dispose() {\n    this.disposed = true;\n    this._onWillDispose.fire();\n  }\n};\nvar StandaloneTextModelService = class StandaloneTextModelService2 {\n  constructor(modelService) {\n    this.modelService = modelService;\n  }\n  createModelReference(resource) {\n    const model = this.modelService.getModel(resource);\n    if (!model) {\n      return Promise.reject(new Error(`Model not found`));\n    }\n    return Promise.resolve(new ImmortalReference(new SimpleModel(model)));\n  }\n};\nStandaloneTextModelService = __decorate189([\n  __param182(0, IModelService)\n], StandaloneTextModelService);\nvar StandaloneEditorProgressService = class _StandaloneEditorProgressService {\n  static {\n    this.NULL_PROGRESS_RUNNER = {\n      done: () =\u003e {\n      },\n      total: () =\u003e {\n      },\n      worked: () =\u003e {\n      }\n    };\n  }\n  show() {\n    return _StandaloneEditorProgressService.NULL_PROGRESS_RUNNER;\n  }\n  async showWhile(promise, delay) {\n    await promise;\n  }\n};\nvar StandaloneProgressService = class {\n  withProgress(_options, task, onDidCancel) {\n    return task({\n      report: () =\u003e {\n      }\n    });\n  }\n};\nvar StandaloneEnvironmentService = class {\n  constructor() {\n    this.isExtensionDevelopment = false;\n    this.isBuilt = false;\n  }\n};\nvar StandaloneDialogService = class {\n  async confirm(confirmation) {\n    const confirmed = this.doConfirm(confirmation.message, confirmation.detail);\n    return {\n      confirmed,\n      checkboxChecked: false\n      // unsupported\n    };\n  }\n  doConfirm(message, detail) {\n    let messageText = message;\n    if (detail) {\n      messageText = messageText + \"\\n\\n\" + detail;\n    }\n    return mainWindow.confirm(messageText);\n  }\n  async prompt(prompt) {\n    let result = void 0;\n    const confirmed = this.doConfirm(prompt.message, prompt.detail);\n    if (confirmed) {\n      const promptButtons = [...prompt.buttons ?? []];\n      if (prompt.cancelButton \u0026\u0026 typeof prompt.cancelButton !== \"string\" \u0026\u0026 typeof prompt.cancelButton !== \"boolean\") {\n        promptButtons.push(prompt.cancelButton);\n      }\n      result = await promptButtons[0]?.run({ checkboxChecked: false });\n    }\n    return { result };\n  }\n  async error(message, detail) {\n    await this.prompt({ type: severity_default.Error, message, detail });\n  }\n};\nvar StandaloneNotificationService = class _StandaloneNotificationService {\n  static {\n    this.NO_OP = new NoOpNotification();\n  }\n  info(message) {\n    return this.notify({ severity: severity_default.Info, message });\n  }\n  warn(message) {\n    return this.notify({ severity: severity_default.Warning, message });\n  }\n  error(error) {\n    return this.notify({ severity: severity_default.Error, message: error });\n  }\n  notify(notification) {\n    switch (notification.severity) {\n      case severity_default.Error:\n        console.error(notification.message);\n        break;\n      case severity_default.Warning:\n        console.warn(notification.message);\n        break;\n      default:\n        console.log(notification.message);\n        break;\n    }\n    return _StandaloneNotificationService.NO_OP;\n  }\n  prompt(severity, message, choices, options2) {\n    return _StandaloneNotificationService.NO_OP;\n  }\n  status(message, options2) {\n    return { close: () =\u003e {\n    } };\n  }\n};\nvar StandaloneCommandService = class StandaloneCommandService2 {\n  constructor(instantiationService) {\n    this._onWillExecuteCommand = new Emitter();\n    this._onDidExecuteCommand = new Emitter();\n    this.onDidExecuteCommand = this._onDidExecuteCommand.event;\n    this._instantiationService = instantiationService;\n  }\n  executeCommand(id, ...args) {\n    const command = CommandsRegistry.getCommand(id);\n    if (!command) {\n      return Promise.reject(new Error(`command '${id}' not found`));\n    }\n    try {\n      this._onWillExecuteCommand.fire({ commandId: id, args });\n      const result = this._instantiationService.invokeFunction.apply(this._instantiationService, [command.handler, ...args]);\n      this._onDidExecuteCommand.fire({ commandId: id, args });\n      return Promise.resolve(result);\n    } catch (err) {\n      return Promise.reject(err);\n    }\n  }\n};\nStandaloneCommandService = __decorate189([\n  __param182(0, IInstantiationService)\n], StandaloneCommandService);\nvar StandaloneKeybindingService = class StandaloneKeybindingService2 extends AbstractKeybindingService {\n  constructor(contextKeyService, commandService, telemetryService, notificationService, logService, codeEditorService) {\n    super(contextKeyService, commandService, telemetryService, notificationService, logService);\n    this._cachedResolver = null;\n    this._dynamicKeybindings = [];\n    this._domNodeListeners = [];\n    const addContainer = (domNode) =\u003e {\n      const disposables = new DisposableStore();\n      disposables.add(addDisposableListener(domNode, EventType.KEY_DOWN, (e) =\u003e {\n        const keyEvent = new StandardKeyboardEvent(e);\n        const shouldPreventDefault = this._dispatch(keyEvent, keyEvent.target);\n        if (shouldPreventDefault) {\n          keyEvent.preventDefault();\n          keyEvent.stopPropagation();\n        }\n      }));\n      disposables.add(addDisposableListener(domNode, EventType.KEY_UP, (e) =\u003e {\n        const keyEvent = new StandardKeyboardEvent(e);\n        const shouldPreventDefault = this._singleModifierDispatch(keyEvent, keyEvent.target);\n        if (shouldPreventDefault) {\n          keyEvent.preventDefault();\n        }\n      }));\n      this._domNodeListeners.push(new DomNodeListeners(domNode, disposables));\n    };\n    const removeContainer = (domNode) =\u003e {\n      for (let i2 = 0; i2 \u003c this._domNodeListeners.length; i2++) {\n        const domNodeListeners = this._domNodeListeners[i2];\n        if (domNodeListeners.domNode === domNode) {\n          this._domNodeListeners.splice(i2, 1);\n          domNodeListeners.dispose();\n        }\n      }\n    };\n    const addCodeEditor = (codeEditor) =\u003e {\n      if (codeEditor.getOption(\n        70\n        /* EditorOption.inDiffEditor */\n      )) {\n        return;\n      }\n      addContainer(codeEditor.getContainerDomNode());\n    };\n    const removeCodeEditor = (codeEditor) =\u003e {\n      if (codeEditor.getOption(\n        70\n        /* EditorOption.inDiffEditor */\n      )) {\n        return;\n      }\n      removeContainer(codeEditor.getContainerDomNode());\n    };\n    this._register(codeEditorService.onCodeEditorAdd(addCodeEditor));\n    this._register(codeEditorService.onCodeEditorRemove(removeCodeEditor));\n    codeEditorService.listCodeEditors().forEach(addCodeEditor);\n    const addDiffEditor = (diffEditor) =\u003e {\n      addContainer(diffEditor.getContainerDomNode());\n    };\n    const removeDiffEditor = (diffEditor) =\u003e {\n      removeContainer(diffEditor.getContainerDomNode());\n    };\n    this._register(codeEditorService.onDiffEditorAdd(addDiffEditor));\n    this._register(codeEditorService.onDiffEditorRemove(removeDiffEditor));\n    codeEditorService.listDiffEditors().forEach(addDiffEditor);\n  }\n  addDynamicKeybinding(command, keybinding, handler, when) {\n    return combinedDisposable(CommandsRegistry.registerCommand(command, handler), this.addDynamicKeybindings([{\n      keybinding,\n      command,\n      when\n    }]));\n  }\n  addDynamicKeybindings(rules) {\n    const entries2 = rules.map((rule) =\u003e {\n      const keybinding = decodeKeybinding(rule.keybinding, OS);\n      return {\n        keybinding,\n        command: rule.command ?? null,\n        commandArgs: rule.commandArgs,\n        when: rule.when,\n        weight1: 1e3,\n        weight2: 0,\n        extensionId: null,\n        isBuiltinExtension: false\n      };\n    });\n    this._dynamicKeybindings = this._dynamicKeybindings.concat(entries2);\n    this.updateResolver();\n    return toDisposable(() =\u003e {\n      for (let i2 = 0; i2 \u003c this._dynamicKeybindings.length; i2++) {\n        if (this._dynamicKeybindings[i2] === entries2[0]) {\n          this._dynamicKeybindings.splice(i2, entries2.length);\n          this.updateResolver();\n          return;\n        }\n      }\n    });\n  }\n  updateResolver() {\n    this._cachedResolver = null;\n    this._onDidUpdateKeybindings.fire();\n  }\n  _getResolver() {\n    if (!this._cachedResolver) {\n      const defaults = this._toNormalizedKeybindingItems(KeybindingsRegistry.getDefaultKeybindings(), true);\n      const overrides = this._toNormalizedKeybindingItems(this._dynamicKeybindings, false);\n      this._cachedResolver = new KeybindingResolver(defaults, overrides, (str) =\u003e this._log(str));\n    }\n    return this._cachedResolver;\n  }\n  _documentHasFocus() {\n    return mainWindow.document.hasFocus();\n  }\n  _toNormalizedKeybindingItems(items, isDefault) {\n    const result = [];\n    let resultLen = 0;\n    for (const item of items) {\n      const when = item.when || void 0;\n      const keybinding = item.keybinding;\n      if (!keybinding) {\n        result[resultLen++] = new ResolvedKeybindingItem(void 0, item.command, item.commandArgs, when, isDefault, null, false);\n      } else {\n        const resolvedKeybindings = USLayoutResolvedKeybinding.resolveKeybinding(keybinding, OS);\n        for (const resolvedKeybinding of resolvedKeybindings) {\n          result[resultLen++] = new ResolvedKeybindingItem(resolvedKeybinding, item.command, item.commandArgs, when, isDefault, null, false);\n        }\n      }\n    }\n    return result;\n  }\n  resolveKeyboardEvent(keyboardEvent) {\n    const chord = new KeyCodeChord(keyboardEvent.ctrlKey, keyboardEvent.shiftKey, keyboardEvent.altKey, keyboardEvent.metaKey, keyboardEvent.keyCode);\n    return new USLayoutResolvedKeybinding([chord], OS);\n  }\n};\nStandaloneKeybindingService = __decorate189([\n  __param182(0, IContextKeyService),\n  __param182(1, ICommandService),\n  __param182(2, ITelemetryService),\n  __param182(3, INotificationService),\n  __param182(4, ILogService),\n  __param182(5, ICodeEditorService)\n], StandaloneKeybindingService);\nvar DomNodeListeners = class extends Disposable {\n  constructor(domNode, disposables) {\n    super();\n    this.domNode = domNode;\n    this._register(disposables);\n  }\n};\nfunction isConfigurationOverrides(thing) {\n  return thing \u0026\u0026 typeof thing === \"object\" \u0026\u0026 (!thing.overrideIdentifier || typeof thing.overrideIdentifier === \"string\") \u0026\u0026 (!thing.resource || thing.resource instanceof URI);\n}\nvar StandaloneConfigurationService = class StandaloneConfigurationService2 {\n  constructor(logService) {\n    this.logService = logService;\n    this._onDidChangeConfiguration = new Emitter();\n    this.onDidChangeConfiguration = this._onDidChangeConfiguration.event;\n    const defaultConfiguration = new DefaultConfiguration(logService);\n    this._configuration = new Configuration(defaultConfiguration.reload(), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), ConfigurationModel.createEmptyModel(logService), new ResourceMap(), ConfigurationModel.createEmptyModel(logService), new ResourceMap(), logService);\n    defaultConfiguration.dispose();\n  }\n  getValue(arg1, arg2) {\n    const section = typeof arg1 === \"string\" ? arg1 : void 0;\n    const overrides = isConfigurationOverrides(arg1) ? arg1 : isConfigurationOverrides(arg2) ? arg2 : {};\n    return this._configuration.getValue(section, overrides, void 0);\n  }\n  updateValues(values) {\n    const previous = { data: this._configuration.toData() };\n    const changedKeys = [];\n    for (const entry of values) {\n      const [key, value] = entry;\n      if (this.getValue(key) === value) {\n        continue;\n      }\n      this._configuration.updateValue(key, value);\n      changedKeys.push(key);\n    }\n    if (changedKeys.length \u003e 0) {\n      const configurationChangeEvent = new ConfigurationChangeEvent({ keys: changedKeys, overrides: [] }, previous, this._configuration, void 0, this.logService);\n      configurationChangeEvent.source = 8;\n      this._onDidChangeConfiguration.fire(configurationChangeEvent);\n    }\n    return Promise.resolve();\n  }\n  updateValue(key, value, arg3, arg4) {\n    return this.updateValues([[key, value]]);\n  }\n  inspect(key, options2 = {}) {\n    return this._configuration.inspect(key, options2, void 0);\n  }\n};\nStandaloneConfigurationService = __decorate189([\n  __param182(0, ILogService)\n], StandaloneConfigurationService);\nvar StandaloneResourceConfigurationService = class StandaloneResourceConfigurationService2 {\n  constructor(configurationService, modelService, languageService) {\n    this.configurationService = configurationService;\n    this.modelService = modelService;\n    this.languageService = languageService;\n    this._onDidChangeConfiguration = new Emitter();\n    this.configurationService.onDidChangeConfiguration((e) =\u003e {\n      this._onDidChangeConfiguration.fire({ affectedKeys: e.affectedKeys, affectsConfiguration: (resource, configuration) =\u003e e.affectsConfiguration(configuration) });\n    });\n  }\n  getValue(resource, arg2, arg3) {\n    const position = Position.isIPosition(arg2) ? arg2 : null;\n    const section = position ? typeof arg3 === \"string\" ? arg3 : void 0 : typeof arg2 === \"string\" ? arg2 : void 0;\n    const language2 = resource ? this.getLanguage(resource, position) : void 0;\n    if (typeof section === \"undefined\") {\n      return this.configurationService.getValue({\n        resource,\n        overrideIdentifier: language2\n      });\n    }\n    return this.configurationService.getValue(section, {\n      resource,\n      overrideIdentifier: language2\n    });\n  }\n  getLanguage(resource, position) {\n    const model = this.modelService.getModel(resource);\n    if (model) {\n      return position ? model.getLanguageIdAtPosition(position.lineNumber, position.column) : model.getLanguageId();\n    }\n    return this.languageService.guessLanguageIdByFilepathOrFirstLine(resource);\n  }\n};\nStandaloneResourceConfigurationService = __decorate189([\n  __param182(0, IConfigurationService),\n  __param182(1, IModelService),\n  __param182(2, ILanguageService)\n], StandaloneResourceConfigurationService);\nvar StandaloneResourcePropertiesService = class StandaloneResourcePropertiesService2 {\n  constructor(configurationService) {\n    this.configurationService = configurationService;\n  }\n  getEOL(resource, language2) {\n    const eol = this.configurationService.getValue(\"files.eol\", { overrideIdentifier: language2, resource });\n    if (eol \u0026\u0026 typeof eol === \"string\" \u0026\u0026 eol !== \"auto\") {\n      return eol;\n    }\n    return isLinux || isMacintosh ? \"\\n\" : \"\\r\\n\";\n  }\n};\nStandaloneResourcePropertiesService = __decorate189([\n  __param182(0, IConfigurationService)\n], StandaloneResourcePropertiesService);\nvar StandaloneTelemetryService = class {\n  publicLog2() {\n  }\n};\nvar StandaloneWorkspaceContextService = class _StandaloneWorkspaceContextService {\n  static {\n    this.SCHEME = \"inmemory\";\n  }\n  constructor() {\n    const resource = URI.from({ scheme: _StandaloneWorkspaceContextService.SCHEME, authority: \"model\", path: \"/\" });\n    this.workspace = { id: STANDALONE_EDITOR_WORKSPACE_ID, folders: [new WorkspaceFolder({ uri: resource, name: \"\", index: 0 })] };\n  }\n  getWorkspace() {\n    return this.workspace;\n  }\n  getWorkspaceFolder(resource) {\n    return resource \u0026\u0026 resource.scheme === _StandaloneWorkspaceContextService.SCHEME ? this.workspace.folders[0] : null;\n  }\n};\nfunction updateConfigurationService(configurationService, source, isDiffEditor2) {\n  if (!source) {\n    return;\n  }\n  if (!(configurationService instanceof StandaloneConfigurationService)) {\n    return;\n  }\n  const toUpdate = [];\n  Object.keys(source).forEach((key) =\u003e {\n    if (isEditorConfigurationKey(key)) {\n      toUpdate.push([`editor.${key}`, source[key]]);\n    }\n    if (isDiffEditor2 \u0026\u0026 isDiffEditorConfigurationKey(key)) {\n      toUpdate.push([`diffEditor.${key}`, source[key]]);\n    }\n  });\n  if (toUpdate.length \u003e 0) {\n    configurationService.updateValues(toUpdate);\n  }\n}\nvar StandaloneBulkEditService = class StandaloneBulkEditService2 {\n  constructor(_modelService) {\n    this._modelService = _modelService;\n  }\n  hasPreviewHandler() {\n    return false;\n  }\n  async apply(editsIn, _options) {\n    const edits = Array.isArray(editsIn) ? editsIn : ResourceEdit.convert(editsIn);\n    const textEdits = /* @__PURE__ */ new Map();\n    for (const edit2 of edits) {\n      if (!(edit2 instanceof ResourceTextEdit)) {\n        throw new Error(\"bad edit - only text edits are supported\");\n      }\n      const model = this._modelService.getModel(edit2.resource);\n      if (!model) {\n        throw new Error(\"bad edit - model not found\");\n      }\n      if (typeof edit2.versionId === \"number\" \u0026\u0026 model.getVersionId() !== edit2.versionId) {\n        throw new Error(\"bad state - model changed in the meantime\");\n      }\n      let array2 = textEdits.get(model);\n      if (!array2) {\n        array2 = [];\n        textEdits.set(model, array2);\n      }\n      array2.push(EditOperation.replaceMove(Range.lift(edit2.textEdit.range), edit2.textEdit.text));\n    }\n    let totalEdits = 0;\n    let totalFiles = 0;\n    for (const [model, edits2] of textEdits) {\n      model.pushStackElement();\n      model.pushEditOperations([], edits2, () =\u003e []);\n      model.pushStackElement();\n      totalFiles += 1;\n      totalEdits += edits2.length;\n    }\n    return {\n      ariaSummary: format(StandaloneServicesNLS.bulkEditServiceSummary, totalEdits, totalFiles),\n      isApplied: totalEdits \u003e 0\n    };\n  }\n};\nStandaloneBulkEditService = __decorate189([\n  __param182(0, IModelService)\n], StandaloneBulkEditService);\nvar StandaloneUriLabelService = class {\n  getUriLabel(resource, options2) {\n    if (resource.scheme === \"file\") {\n      return resource.fsPath;\n    }\n    return resource.path;\n  }\n  getUriBasenameLabel(resource) {\n    return basename2(resource);\n  }\n};\nvar StandaloneContextViewService = class StandaloneContextViewService2 extends ContextViewService {\n  constructor(layoutService, _codeEditorService) {\n    super(layoutService);\n    this._codeEditorService = _codeEditorService;\n  }\n  showContextView(delegate, container, shadowRoot) {\n    if (!container) {\n      const codeEditor = this._codeEditorService.getFocusedCodeEditor() || this._codeEditorService.getActiveCodeEditor();\n      if (codeEditor) {\n        container = codeEditor.getContainerDomNode();\n      }\n    }\n    return super.showContextView(delegate, container, shadowRoot);\n  }\n};\nStandaloneContextViewService = __decorate189([\n  __param182(0, ILayoutService),\n  __param182(1, ICodeEditorService)\n], StandaloneContextViewService);\nvar StandaloneWorkspaceTrustManagementService = class {\n  constructor() {\n    this._neverEmitter = new Emitter();\n    this.onDidChangeTrust = this._neverEmitter.event;\n  }\n  isWorkspaceTrusted() {\n    return true;\n  }\n};\nvar StandaloneLanguageService = class extends LanguageService {\n  constructor() {\n    super();\n  }\n};\nvar StandaloneLogService = class extends LogService {\n  constructor() {\n    super(new ConsoleLogger());\n  }\n};\nvar StandaloneContextMenuService = class StandaloneContextMenuService2 extends ContextMenuService {\n  constructor(telemetryService, notificationService, contextViewService, keybindingService, menuService, contextKeyService) {\n    super(telemetryService, notificationService, contextViewService, keybindingService, menuService, contextKeyService);\n    this.configure({ blockMouse: false });\n  }\n};\nStandaloneContextMenuService = __decorate189([\n  __param182(0, ITelemetryService),\n  __param182(1, INotificationService),\n  __param182(2, IContextViewService),\n  __param182(3, IKeybindingService),\n  __param182(4, IMenuService),\n  __param182(5, IContextKeyService)\n], StandaloneContextMenuService);\nvar standaloneEditorWorkerDescriptor = {\n  esmModuleLocation: void 0,\n  label: \"editorWorkerService\"\n};\nvar StandaloneEditorWorkerService = class StandaloneEditorWorkerService2 extends EditorWorkerService {\n  constructor(modelService, configurationService, logService, languageConfigurationService, languageFeaturesService) {\n    super(standaloneEditorWorkerDescriptor, modelService, configurationService, logService, languageConfigurationService, languageFeaturesService);\n  }\n};\nStandaloneEditorWorkerService = __decorate189([\n  __param182(0, IModelService),\n  __param182(1, ITextResourceConfigurationService),\n  __param182(2, ILogService),\n  __param182(3, ILanguageConfigurationService),\n  __param182(4, ILanguageFeaturesService)\n], StandaloneEditorWorkerService);\nvar StandaloneAccessbilitySignalService = class {\n  async playSignal(cue, options2) {\n  }\n};\nregisterSingleton(\n  ILogService,\n  StandaloneLogService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IConfigurationService,\n  StandaloneConfigurationService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ITextResourceConfigurationService,\n  StandaloneResourceConfigurationService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ITextResourcePropertiesService,\n  StandaloneResourcePropertiesService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IWorkspaceContextService,\n  StandaloneWorkspaceContextService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ILabelService,\n  StandaloneUriLabelService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ITelemetryService,\n  StandaloneTelemetryService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IDialogService,\n  StandaloneDialogService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IEnvironmentService,\n  StandaloneEnvironmentService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  INotificationService,\n  StandaloneNotificationService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IMarkerService,\n  MarkerService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ILanguageService,\n  StandaloneLanguageService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IStandaloneThemeService,\n  StandaloneThemeService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IModelService,\n  ModelService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IMarkerDecorationsService,\n  MarkerDecorationsService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IContextKeyService,\n  ContextKeyService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IProgressService,\n  StandaloneProgressService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IEditorProgressService,\n  StandaloneEditorProgressService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IStorageService,\n  InMemoryStorageService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IEditorWorkerService,\n  StandaloneEditorWorkerService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IBulkEditService,\n  StandaloneBulkEditService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IWorkspaceTrustManagementService,\n  StandaloneWorkspaceTrustManagementService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ITextModelService,\n  StandaloneTextModelService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IAccessibilityService,\n  AccessibilityService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IListService,\n  ListService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ICommandService,\n  StandaloneCommandService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IKeybindingService,\n  StandaloneKeybindingService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IQuickInputService,\n  StandaloneQuickInputService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IContextViewService,\n  StandaloneContextViewService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IOpenerService,\n  OpenerService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IClipboardService,\n  BrowserClipboardService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IContextMenuService,\n  StandaloneContextMenuService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IMenuService,\n  MenuService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IAccessibilitySignalService,\n  StandaloneAccessbilitySignalService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ITreeSitterLibraryService,\n  StandaloneTreeSitterLibraryService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  ILoggerService,\n  NullLoggerService,\n  0\n  /* InstantiationType.Eager */\n);\nregisterSingleton(\n  IDataChannelService,\n  NullDataChannelService,\n  0\n  /* InstantiationType.Eager */\n);\nvar StandaloneServices;\n(function(StandaloneServices2) {\n  const serviceCollection = new ServiceCollection();\n  for (const [id, descriptor] of getSingletonServiceDescriptors()) {\n    serviceCollection.set(id, descriptor);\n  }\n  const instantiationService = new InstantiationService(serviceCollection, true);\n  serviceCollection.set(IInstantiationService, instantiationService);\n  function get(serviceId) {\n    if (!initialized) {\n      initialize2({});\n    }\n    const r = serviceCollection.get(serviceId);\n    if (!r) {\n      throw new Error(\"Missing service \" + serviceId);\n    }\n    if (r instanceof SyncDescriptor) {\n      return instantiationService.invokeFunction((accessor) =\u003e accessor.get(serviceId));\n    } else {\n      return r;\n    }\n  }\n  StandaloneServices2.get = get;\n  let initialized = false;\n  const onDidInitialize = new Emitter();\n  function initialize2(overrides) {\n    if (initialized) {\n      return instantiationService;\n    }\n    initialized = true;\n    for (const [id, descriptor] of getSingletonServiceDescriptors()) {\n      if (!serviceCollection.get(id)) {\n        serviceCollection.set(id, descriptor);\n      }\n    }\n    for (const serviceId in overrides) {\n      if (overrides.hasOwnProperty(serviceId)) {\n        const serviceIdentifier = createDecorator(serviceId);\n        const r = serviceCollection.get(serviceIdentifier);\n        if (r instanceof SyncDescriptor) {\n          serviceCollection.set(serviceIdentifier, overrides[serviceId]);\n        }\n      }\n    }\n    const editorFeatures2 = getEditorFeatures();\n    for (const feature of editorFeatures2) {\n      try {\n        instantiationService.createInstance(feature);\n      } catch (err) {\n        onUnexpectedError(err);\n      }\n    }\n    onDidInitialize.fire();\n    return instantiationService;\n  }\n  StandaloneServices2.initialize = initialize2;\n  function withServices(callback) {\n    if (initialized) {\n      return callback();\n    }\n    const disposable = new DisposableStore();\n    const listener = disposable.add(onDidInitialize.event(() =\u003e {\n      listener.dispose();\n      disposable.add(callback());\n    }));\n    return disposable;\n  }\n  StandaloneServices2.withServices = withServices;\n})(StandaloneServices || (StandaloneServices = {}));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneCodeEditor.js\ninit_standaloneTheme();\ninit_actions2();\ninit_commands();\ninit_configuration();\ninit_contextkey();\ninit_instantiation();\ninit_themeService();\ninit_standaloneStrings();\ninit_model();\ninit_language();\ninit_modesRegistry();\ninit_languageConfigurationRegistry();\ninit_languageFeatures();\ninit_window();\nvar __decorate190 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param183 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar LAST_GENERATED_COMMAND_ID = 0;\nvar ariaDomNodeCreated = false;\nfunction createAriaDomNode(parent) {\n  if (!parent) {\n    if (ariaDomNodeCreated) {\n      return;\n    }\n    ariaDomNodeCreated = true;\n  }\n  setARIAContainer(parent || mainWindow.document.body);\n}\nvar StandaloneCodeEditor = class StandaloneCodeEditor2 extends CodeEditorWidget {\n  constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {\n    const options2 = { ..._options };\n    options2.ariaLabel = options2.ariaLabel || StandaloneCodeEditorNLS.editorViewAccessibleLabel;\n    super(domElement, options2, {}, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n    if (keybindingService instanceof StandaloneKeybindingService) {\n      this._standaloneKeybindingService = keybindingService;\n    } else {\n      this._standaloneKeybindingService = null;\n    }\n    createAriaDomNode(options2.ariaContainerElement);\n    setHoverDelegateFactory((placement, enableInstantHover) =\u003e instantiationService.createInstance(WorkbenchHoverDelegate, placement, { instantHover: enableInstantHover }, {}));\n    setBaseLayerHoverDelegate(hoverService);\n  }\n  addCommand(keybinding, handler, context) {\n    if (!this._standaloneKeybindingService) {\n      console.warn(\"Cannot add command because the editor is configured with an unrecognized KeybindingService\");\n      return null;\n    }\n    const commandId = \"DYNAMIC_\" + ++LAST_GENERATED_COMMAND_ID;\n    const whenExpression = ContextKeyExpr.deserialize(context);\n    this._standaloneKeybindingService.addDynamicKeybinding(commandId, keybinding, handler, whenExpression);\n    return commandId;\n  }\n  createContextKey(key, defaultValue) {\n    return this._contextKeyService.createKey(key, defaultValue);\n  }\n  addAction(_descriptor) {\n    if (typeof _descriptor.id !== \"string\" || typeof _descriptor.label !== \"string\" || typeof _descriptor.run !== \"function\") {\n      throw new Error(\"Invalid action descriptor, `id`, `label` and `run` are required properties!\");\n    }\n    if (!this._standaloneKeybindingService) {\n      console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\");\n      return Disposable.None;\n    }\n    const id = _descriptor.id;\n    const label = _descriptor.label;\n    const precondition = ContextKeyExpr.and(ContextKeyExpr.equals(\"editorId\", this.getId()), ContextKeyExpr.deserialize(_descriptor.precondition));\n    const keybindings = _descriptor.keybindings;\n    const keybindingsWhen = ContextKeyExpr.and(precondition, ContextKeyExpr.deserialize(_descriptor.keybindingContext));\n    const contextMenuGroupId = _descriptor.contextMenuGroupId || null;\n    const contextMenuOrder = _descriptor.contextMenuOrder || 0;\n    const run = (_accessor, ...args) =\u003e {\n      return Promise.resolve(_descriptor.run(this, ...args));\n    };\n    const toDispose = new DisposableStore();\n    const uniqueId = this.getId() + \":\" + id;\n    toDispose.add(CommandsRegistry.registerCommand(uniqueId, run));\n    if (contextMenuGroupId) {\n      const menuItem = {\n        command: {\n          id: uniqueId,\n          title: label\n        },\n        when: precondition,\n        group: contextMenuGroupId,\n        order: contextMenuOrder\n      };\n      toDispose.add(MenuRegistry.appendMenuItem(MenuId.EditorContext, menuItem));\n    }\n    if (Array.isArray(keybindings)) {\n      for (const kb of keybindings) {\n        toDispose.add(this._standaloneKeybindingService.addDynamicKeybinding(uniqueId, kb, run, keybindingsWhen));\n      }\n    }\n    const internalAction = new InternalEditorAction(uniqueId, label, label, void 0, precondition, (...args) =\u003e Promise.resolve(_descriptor.run(this, ...args)), this._contextKeyService);\n    this._actions.set(id, internalAction);\n    toDispose.add(toDisposable(() =\u003e {\n      this._actions.delete(id);\n    }));\n    return toDispose;\n  }\n  _triggerCommand(handlerId, payload) {\n    if (this._codeEditorService instanceof StandaloneCodeEditorService) {\n      try {\n        this._codeEditorService.setActiveCodeEditor(this);\n        super._triggerCommand(handlerId, payload);\n      } finally {\n        this._codeEditorService.setActiveCodeEditor(null);\n      }\n    } else {\n      super._triggerCommand(handlerId, payload);\n    }\n  }\n};\nStandaloneCodeEditor = __decorate190([\n  __param183(2, IInstantiationService),\n  __param183(3, ICodeEditorService),\n  __param183(4, ICommandService),\n  __param183(5, IContextKeyService),\n  __param183(6, IHoverService),\n  __param183(7, IKeybindingService),\n  __param183(8, IThemeService),\n  __param183(9, INotificationService),\n  __param183(10, IAccessibilityService),\n  __param183(11, ILanguageConfigurationService),\n  __param183(12, ILanguageFeaturesService)\n], StandaloneCodeEditor);\nvar StandaloneEditor = class StandaloneEditor2 extends StandaloneCodeEditor {\n  constructor(domElement, _options, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, configurationService, accessibilityService, modelService, languageService, languageConfigurationService, languageFeaturesService) {\n    const options2 = { ..._options };\n    updateConfigurationService(configurationService, options2, false);\n    const themeDomRegistration = themeService.registerEditorContainer(domElement);\n    if (typeof options2.theme === \"string\") {\n      themeService.setTheme(options2.theme);\n    }\n    if (typeof options2.autoDetectHighContrast !== \"undefined\") {\n      themeService.setAutoDetectHighContrast(Boolean(options2.autoDetectHighContrast));\n    }\n    const _model = options2.model;\n    delete options2.model;\n    super(domElement, options2, instantiationService, codeEditorService, commandService, contextKeyService, hoverService, keybindingService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n    this._configurationService = configurationService;\n    this._standaloneThemeService = themeService;\n    this._register(themeDomRegistration);\n    let model;\n    if (typeof _model === \"undefined\") {\n      const languageId = languageService.getLanguageIdByMimeType(options2.language) || options2.language || PLAINTEXT_LANGUAGE_ID;\n      model = createTextModel(modelService, languageService, options2.value || \"\", languageId, void 0);\n      this._ownsModel = true;\n    } else {\n      model = _model;\n      this._ownsModel = false;\n    }\n    this._attachModel(model);\n    if (model) {\n      const e = {\n        oldModelUrl: null,\n        newModelUrl: model.uri\n      };\n      this._onDidChangeModel.fire(e);\n    }\n  }\n  dispose() {\n    super.dispose();\n  }\n  updateOptions(newOptions) {\n    updateConfigurationService(this._configurationService, newOptions, false);\n    if (typeof newOptions.theme === \"string\") {\n      this._standaloneThemeService.setTheme(newOptions.theme);\n    }\n    if (typeof newOptions.autoDetectHighContrast !== \"undefined\") {\n      this._standaloneThemeService.setAutoDetectHighContrast(Boolean(newOptions.autoDetectHighContrast));\n    }\n    super.updateOptions(newOptions);\n  }\n  _postDetachModelCleanup(detachedModel) {\n    super._postDetachModelCleanup(detachedModel);\n    if (detachedModel \u0026\u0026 this._ownsModel) {\n      detachedModel.dispose();\n      this._ownsModel = false;\n    }\n  }\n};\nStandaloneEditor = __decorate190([\n  __param183(2, IInstantiationService),\n  __param183(3, ICodeEditorService),\n  __param183(4, ICommandService),\n  __param183(5, IContextKeyService),\n  __param183(6, IHoverService),\n  __param183(7, IKeybindingService),\n  __param183(8, IStandaloneThemeService),\n  __param183(9, INotificationService),\n  __param183(10, IConfigurationService),\n  __param183(11, IAccessibilityService),\n  __param183(12, IModelService),\n  __param183(13, ILanguageService),\n  __param183(14, ILanguageConfigurationService),\n  __param183(15, ILanguageFeaturesService)\n], StandaloneEditor);\nvar StandaloneDiffEditor2 = class StandaloneDiffEditor22 extends DiffEditorWidget {\n  constructor(domElement, _options, instantiationService, contextKeyService, codeEditorService, themeService, notificationService, configurationService, contextMenuService, editorProgressService, clipboardService, accessibilitySignalService) {\n    const options2 = { ..._options };\n    updateConfigurationService(configurationService, options2, true);\n    const themeDomRegistration = themeService.registerEditorContainer(domElement);\n    if (typeof options2.theme === \"string\") {\n      themeService.setTheme(options2.theme);\n    }\n    if (typeof options2.autoDetectHighContrast !== \"undefined\") {\n      themeService.setAutoDetectHighContrast(Boolean(options2.autoDetectHighContrast));\n    }\n    super(domElement, options2, {}, contextKeyService, instantiationService, codeEditorService, accessibilitySignalService, editorProgressService);\n    this._configurationService = configurationService;\n    this._standaloneThemeService = themeService;\n    this._register(themeDomRegistration);\n  }\n  dispose() {\n    super.dispose();\n  }\n  updateOptions(newOptions) {\n    updateConfigurationService(this._configurationService, newOptions, true);\n    if (typeof newOptions.theme === \"string\") {\n      this._standaloneThemeService.setTheme(newOptions.theme);\n    }\n    if (typeof newOptions.autoDetectHighContrast !== \"undefined\") {\n      this._standaloneThemeService.setAutoDetectHighContrast(Boolean(newOptions.autoDetectHighContrast));\n    }\n    super.updateOptions(newOptions);\n  }\n  _createInnerEditor(instantiationService, container, options2) {\n    return instantiationService.createInstance(StandaloneCodeEditor, container, options2);\n  }\n  getOriginalEditor() {\n    return super.getOriginalEditor();\n  }\n  getModifiedEditor() {\n    return super.getModifiedEditor();\n  }\n  addCommand(keybinding, handler, context) {\n    return this.getModifiedEditor().addCommand(keybinding, handler, context);\n  }\n  createContextKey(key, defaultValue) {\n    return this.getModifiedEditor().createContextKey(key, defaultValue);\n  }\n  addAction(descriptor) {\n    return this.getModifiedEditor().addAction(descriptor);\n  }\n};\nStandaloneDiffEditor2 = __decorate190([\n  __param183(2, IInstantiationService),\n  __param183(3, IContextKeyService),\n  __param183(4, ICodeEditorService),\n  __param183(5, IStandaloneThemeService),\n  __param183(6, INotificationService),\n  __param183(7, IConfigurationService),\n  __param183(8, IContextMenuService),\n  __param183(9, IEditorProgressService),\n  __param183(10, IClipboardService),\n  __param183(11, IAccessibilitySignalService)\n], StandaloneDiffEditor2);\nfunction createTextModel(modelService, languageService, value, languageId, uri) {\n  value = value || \"\";\n  if (!languageId) {\n    const firstLF = value.indexOf(\"\\n\");\n    let firstLine = value;\n    if (firstLF !== -1) {\n      firstLine = value.substring(0, firstLF);\n    }\n    return doCreateModel(modelService, value, languageService.createByFilepathOrFirstLine(uri || null, firstLine), uri);\n  }\n  return doCreateModel(modelService, value, languageService.createById(languageId), uri);\n}\nfunction doCreateModel(modelService, value, languageSelection, uri) {\n  return modelService.createModel(value, languageSelection, uri);\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor.js\ninit_standaloneTheme();\ninit_actions2();\ninit_commands();\ninit_contextkey();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.js\ninit_lifecycle();\ninit_observable();\ninit_instantiation();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/colors.js\ninit_nls();\ninit_colorRegistry();\nvar multiDiffEditorHeaderBackground = registerColor(\"multiDiffEditor.headerBackground\", { dark: \"#262626\", light: \"tab.inactiveBackground\", hcDark: \"tab.inactiveBackground\", hcLight: \"tab.inactiveBackground\" }, localize(139, \"The background color of the diff editor's header\"));\nvar multiDiffEditorBackground = registerColor(\"multiDiffEditor.background\", editorBackground, localize(140, \"The background color of the multi file diff editor\"));\nvar multiDiffEditorBorder = registerColor(\"multiDiffEditor.border\", { dark: \"sideBarSectionHeader.border\", light: \"#cccccc\", hcDark: \"sideBarSectionHeader.border\", hcLight: \"#cccccc\" }, localize(141, \"The border color of the multi file diff editor\"));\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js\ninit_dom();\ninit_codicons();\ninit_lifecycle();\ninit_observable();\ninit_actions2();\ninit_contextkey();\ninit_instantiation();\ninit_observableCodeEditor();\nvar __decorate191 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param184 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar TemplateData = class {\n  constructor(viewModel, deltaScrollVertical) {\n    this.viewModel = viewModel;\n    this.deltaScrollVertical = deltaScrollVertical;\n  }\n  getId() {\n    return this.viewModel;\n  }\n};\nvar DiffEditorItemTemplate = class DiffEditorItemTemplate2 extends Disposable {\n  constructor(_container, _overflowWidgetsDomNode, _workbenchUIElementFactory, _instantiationService, _parentContextKeyService) {\n    super();\n    this._container = _container;\n    this._overflowWidgetsDomNode = _overflowWidgetsDomNode;\n    this._workbenchUIElementFactory = _workbenchUIElementFactory;\n    this._instantiationService = _instantiationService;\n    this._viewModel = observableValue(this, void 0);\n    this._collapsed = derived(this, (reader) =\u003e this._viewModel.read(reader)?.collapsed.read(reader));\n    this._editorContentHeight = observableValue(this, 500);\n    this.contentHeight = derived(this, (reader) =\u003e {\n      const h2 = this._collapsed.read(reader) ? 0 : this._editorContentHeight.read(reader);\n      return h2 + this._outerEditorHeight;\n    });\n    this._modifiedContentWidth = observableValue(this, 0);\n    this._modifiedWidth = observableValue(this, 0);\n    this._originalContentWidth = observableValue(this, 0);\n    this._originalWidth = observableValue(this, 0);\n    this.maxScroll = derived(this, (reader) =\u003e {\n      const scroll1 = this._modifiedContentWidth.read(reader) - this._modifiedWidth.read(reader);\n      const scroll2 = this._originalContentWidth.read(reader) - this._originalWidth.read(reader);\n      if (scroll1 \u003e scroll2) {\n        return { maxScroll: scroll1, width: this._modifiedWidth.read(reader) };\n      } else {\n        return { maxScroll: scroll2, width: this._originalWidth.read(reader) };\n      }\n    });\n    this._elements = h(\"div.multiDiffEntry\", [\n      h(\"div.header@header\", [\n        h(\"div.header-content\", [\n          h(\"div.collapse-button@collapseButton\"),\n          h(\"div.file-path\", [\n            h(\"div.title.modified.show-file-icons@primaryPath\", []),\n            h(\"div.status.deleted@status\", [\"R\"]),\n            h(\"div.title.original.show-file-icons@secondaryPath\", [])\n          ]),\n          h(\"div.actions@actions\")\n        ])\n      ]),\n      h(\"div.editorParent\", [\n        h(\"div.editorContainer@editor\")\n      ])\n    ]);\n    this.editor = this._register(this._instantiationService.createInstance(DiffEditorWidget, this._elements.editor, {\n      overflowWidgetsDomNode: this._overflowWidgetsDomNode\n    }, {}));\n    this.isModifedFocused = observableCodeEditor(this.editor.getModifiedEditor()).isFocused;\n    this.isOriginalFocused = observableCodeEditor(this.editor.getOriginalEditor()).isFocused;\n    this.isFocused = derived(this, (reader) =\u003e this.isModifedFocused.read(reader) || this.isOriginalFocused.read(reader));\n    this._resourceLabel = this._workbenchUIElementFactory.createResourceLabel ? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)) : void 0;\n    this._resourceLabel2 = this._workbenchUIElementFactory.createResourceLabel ? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)) : void 0;\n    this._dataStore = this._register(new DisposableStore());\n    this._headerHeight = 40;\n    this._lastScrollTop = -1;\n    this._isSettingScrollTop = false;\n    const btn = new Button(this._elements.collapseButton, {});\n    this._register(autorun((reader) =\u003e {\n      btn.element.className = \"\";\n      btn.icon = this._collapsed.read(reader) ? Codicon.chevronRight : Codicon.chevronDown;\n    }));\n    this._register(btn.onDidClick(() =\u003e {\n      this._viewModel.get()?.collapsed.set(!this._collapsed.get(), void 0);\n    }));\n    this._register(autorun((reader) =\u003e {\n      this._elements.editor.style.display = this._collapsed.read(reader) ? \"none\" : \"block\";\n    }));\n    this._register(this.editor.getModifiedEditor().onDidLayoutChange((e) =\u003e {\n      const width2 = this.editor.getModifiedEditor().getLayoutInfo().contentWidth;\n      this._modifiedWidth.set(width2, void 0);\n    }));\n    this._register(this.editor.getOriginalEditor().onDidLayoutChange((e) =\u003e {\n      const width2 = this.editor.getOriginalEditor().getLayoutInfo().contentWidth;\n      this._originalWidth.set(width2, void 0);\n    }));\n    this._register(this.editor.onDidContentSizeChange((e) =\u003e {\n      globalTransaction((tx) =\u003e {\n        this._editorContentHeight.set(e.contentHeight, tx);\n        this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(), tx);\n        this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(), tx);\n      });\n    }));\n    this._register(this.editor.getOriginalEditor().onDidScrollChange((e) =\u003e {\n      if (this._isSettingScrollTop) {\n        return;\n      }\n      if (!e.scrollTopChanged || !this._data) {\n        return;\n      }\n      const delta = e.scrollTop - this._lastScrollTop;\n      this._data.deltaScrollVertical(delta);\n    }));\n    this._register(autorun((reader) =\u003e {\n      const isActive = this._viewModel.read(reader)?.isActive.read(reader);\n      this._elements.root.classList.toggle(\"active\", isActive);\n    }));\n    this._container.appendChild(this._elements.root);\n    this._outerEditorHeight = this._headerHeight;\n    this._contextKeyService = this._register(_parentContextKeyService.createScoped(this._elements.actions));\n    const instantiationService = this._register(this._instantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n    this._register(instantiationService.createInstance(MenuWorkbenchToolBar, this._elements.actions, MenuId.MultiDiffEditorFileToolbar, {\n      actionRunner: this._register(new ActionRunnerWithContext(() =\u003e this._viewModel.get()?.modifiedUri)),\n      menuOptions: {\n        shouldForwardArgs: true\n      },\n      toolbarOptions: { primaryGroup: (g) =\u003e g.startsWith(\"navigation\") },\n      actionViewItemProvider: (action, options2) =\u003e createActionViewItem(instantiationService, action, options2)\n    }));\n  }\n  setScrollLeft(left) {\n    if (this._modifiedContentWidth.get() - this._modifiedWidth.get() \u003e this._originalContentWidth.get() - this._originalWidth.get()) {\n      this.editor.getModifiedEditor().setScrollLeft(left);\n    } else {\n      this.editor.getOriginalEditor().setScrollLeft(left);\n    }\n  }\n  setData(data) {\n    this._data = data;\n    function updateOptions(options2) {\n      return {\n        ...options2,\n        scrollBeyondLastLine: false,\n        hideUnchangedRegions: {\n          enabled: true\n        },\n        scrollbar: {\n          vertical: \"hidden\",\n          horizontal: \"hidden\",\n          handleMouseWheel: false,\n          useShadows: false\n        },\n        renderOverviewRuler: false,\n        fixedOverflowWidgets: true,\n        overviewRulerBorder: false\n      };\n    }\n    if (!data) {\n      globalTransaction((tx) =\u003e {\n        this._viewModel.set(void 0, tx);\n        this.editor.setDiffModel(null, tx);\n        this._dataStore.clear();\n      });\n      return;\n    }\n    const value = data.viewModel.documentDiffItem;\n    globalTransaction((tx) =\u003e {\n      this._resourceLabel?.setUri(data.viewModel.modifiedUri ?? data.viewModel.originalUri, { strikethrough: data.viewModel.modifiedUri === void 0 });\n      let isRenamed = false;\n      let isDeleted = false;\n      let isAdded = false;\n      let flag = \"\";\n      if (data.viewModel.modifiedUri \u0026\u0026 data.viewModel.originalUri \u0026\u0026 data.viewModel.modifiedUri.path !== data.viewModel.originalUri.path) {\n        flag = \"R\";\n        isRenamed = true;\n      } else if (!data.viewModel.modifiedUri) {\n        flag = \"D\";\n        isDeleted = true;\n      } else if (!data.viewModel.originalUri) {\n        flag = \"A\";\n        isAdded = true;\n      }\n      this._elements.status.classList.toggle(\"renamed\", isRenamed);\n      this._elements.status.classList.toggle(\"deleted\", isDeleted);\n      this._elements.status.classList.toggle(\"added\", isAdded);\n      this._elements.status.innerText = flag;\n      this._resourceLabel2?.setUri(isRenamed ? data.viewModel.originalUri : void 0, { strikethrough: true });\n      this._dataStore.clear();\n      this._viewModel.set(data.viewModel, tx);\n      this.editor.setDiffModel(data.viewModel.diffEditorViewModelRef, tx);\n      this.editor.updateOptions(updateOptions(value.options ?? {}));\n    });\n    if (value.onOptionsDidChange) {\n      this._dataStore.add(value.onOptionsDidChange(() =\u003e {\n        this.editor.updateOptions(updateOptions(value.options ?? {}));\n      }));\n    }\n    data.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore, (value2) =\u003e {\n      if (!value2) {\n        this.setData(void 0);\n      }\n    });\n    if (data.viewModel.documentDiffItem.contextKeys) {\n      for (const [key, value2] of Object.entries(data.viewModel.documentDiffItem.contextKeys)) {\n        this._contextKeyService.createKey(key, value2);\n      }\n    }\n  }\n  render(verticalRange, width2, editorScroll, viewPort) {\n    this._elements.root.style.visibility = \"visible\";\n    this._elements.root.style.top = `${verticalRange.start}px`;\n    this._elements.root.style.height = `${verticalRange.length}px`;\n    this._elements.root.style.width = `${width2}px`;\n    this._elements.root.style.position = \"absolute\";\n    const maxDelta = verticalRange.length - this._headerHeight;\n    const delta = Math.max(0, Math.min(viewPort.start - verticalRange.start, maxDelta));\n    this._elements.header.style.transform = `translateY(${delta}px)`;\n    globalTransaction((tx) =\u003e {\n      this.editor.layout({\n        width: width2 - 2 * 8 - 2 * 1,\n        height: verticalRange.length - this._outerEditorHeight\n      });\n    });\n    try {\n      this._isSettingScrollTop = true;\n      this._lastScrollTop = editorScroll;\n      this.editor.getOriginalEditor().setScrollTop(editorScroll);\n    } finally {\n      this._isSettingScrollTop = false;\n    }\n    this._elements.header.classList.toggle(\"shadow\", delta \u003e 0 || editorScroll \u003e 0);\n    this._elements.header.classList.toggle(\"collapsed\", delta === maxDelta);\n  }\n  hide() {\n    this._elements.root.style.top = `-100000px`;\n    this._elements.root.style.visibility = \"hidden\";\n  }\n};\nDiffEditorItemTemplate = __decorate191([\n  __param184(3, IInstantiationService),\n  __param184(4, IContextKeyService)\n], DiffEditorItemTemplate);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js\ninit_dom();\ninit_arrays();\ninit_arraysFind();\ninit_errors();\ninit_lifecycle();\ninit_observable();\ninit_nls();\ninit_contextkey();\ninit_instantiation();\ninit_offsetRange();\ninit_selection();\ninit_editorContextKeys();\ninit_utils5();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/objectPool.js\nvar ObjectPool = class {\n  constructor(_create) {\n    this._create = _create;\n    this._unused = /* @__PURE__ */ new Set();\n    this._used = /* @__PURE__ */ new Set();\n    this._itemData = /* @__PURE__ */ new Map();\n  }\n  getUnusedObj(data) {\n    let obj;\n    if (this._unused.size === 0) {\n      obj = this._create(data);\n      this._itemData.set(obj, data);\n    } else {\n      const values = [...this._unused.values()];\n      obj = values.find((obj2) =\u003e this._itemData.get(obj2).getId() === data.getId()) ?? values[0];\n      this._unused.delete(obj);\n      this._itemData.set(obj, data);\n      obj.setData(data);\n    }\n    this._used.add(obj);\n    return {\n      object: obj,\n      dispose: () =\u003e {\n        this._used.delete(obj);\n        if (this._unused.size \u003e 5) {\n          obj.dispose();\n        } else {\n          this._unused.add(obj);\n        }\n      }\n    };\n  }\n  dispose() {\n    for (const obj of this._used) {\n      obj.dispose();\n    }\n    for (const obj of this._unused) {\n      obj.dispose();\n    }\n    this._used.clear();\n    this._unused.clear();\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js\nvar __decorate192 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param185 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MultiDiffEditorWidgetImpl = class MultiDiffEditorWidgetImpl2 extends Disposable {\n  constructor(_element, _dimension, _viewModel, _workbenchUIElementFactory, _parentContextKeyService, _parentInstantiationService) {\n    super();\n    this._element = _element;\n    this._dimension = _dimension;\n    this._viewModel = _viewModel;\n    this._workbenchUIElementFactory = _workbenchUIElementFactory;\n    this._parentContextKeyService = _parentContextKeyService;\n    this._parentInstantiationService = _parentInstantiationService;\n    this._scrollableElements = h(\"div.scrollContent\", [\n      h(\"div@content\", {\n        style: {\n          overflow: \"hidden\"\n        }\n      }),\n      h(\"div.monaco-editor@overflowWidgetsDomNode\", {})\n    ]);\n    this._scrollable = this._register(new Scrollable({\n      forceIntegerValues: false,\n      scheduleAtNextAnimationFrame: (cb) =\u003e scheduleAtNextAnimationFrame(getWindow(this._element), cb),\n      smoothScrollDuration: 100\n    }));\n    this._scrollableElement = this._register(new SmoothScrollableElement(this._scrollableElements.root, {\n      vertical: 1,\n      horizontal: 1,\n      useShadows: false\n    }, this._scrollable));\n    this._elements = h(\"div.monaco-component.multiDiffEditor\", {}, [\n      h(\"div\", {}, [this._scrollableElement.getDomNode()]),\n      h(\"div.placeholder@placeholder\", {}, [h(\"div\")])\n    ]);\n    this._sizeObserver = this._register(new ObservableElementSizeObserver(this._element, void 0));\n    this._objectPool = this._register(new ObjectPool((data) =\u003e {\n      const template = this._instantiationService.createInstance(DiffEditorItemTemplate, this._scrollableElements.content, this._scrollableElements.overflowWidgetsDomNode, this._workbenchUIElementFactory);\n      template.setData(data);\n      return template;\n    }));\n    this.scrollTop = observableFromEvent(this, this._scrollableElement.onScroll, () =\u003e (\n      /** @description scrollTop */\n      this._scrollableElement.getScrollPosition().scrollTop\n    ));\n    this.scrollLeft = observableFromEvent(this, this._scrollableElement.onScroll, () =\u003e (\n      /** @description scrollLeft */\n      this._scrollableElement.getScrollPosition().scrollLeft\n    ));\n    this._viewItemsInfo = derived(this, (reader) =\u003e {\n      const vm = this._viewModel.read(reader);\n      if (!vm) {\n        return { items: [], getItem: (_d) =\u003e {\n          throw new BugIndicatingError();\n        } };\n      }\n      const viewModels = vm.items.read(reader);\n      const map = /* @__PURE__ */ new Map();\n      const items = viewModels.map((d) =\u003e {\n        const item = reader.store.add(new VirtualizedViewItem(d, this._objectPool, this.scrollLeft, (delta) =\u003e {\n          this._scrollableElement.setScrollPosition({ scrollTop: this._scrollableElement.getScrollPosition().scrollTop + delta });\n        }));\n        const data = this._lastDocStates?.[item.getKey()];\n        if (data) {\n          transaction((tx) =\u003e {\n            item.setViewState(data, tx);\n          });\n        }\n        map.set(d, item);\n        return item;\n      });\n      return { items, getItem: (d) =\u003e map.get(d) };\n    });\n    this._viewItems = this._viewItemsInfo.map(this, (items) =\u003e items.items);\n    this._spaceBetweenPx = 0;\n    this._totalHeight = this._viewItems.map(this, (items, reader) =\u003e items.reduce((r, i2) =\u003e r + i2.contentHeight.read(reader) + this._spaceBetweenPx, 0));\n    this.activeControl = derived(this, (reader) =\u003e {\n      const activeDiffItem = this._viewModel.read(reader)?.activeDiffItem.read(reader);\n      if (!activeDiffItem) {\n        return void 0;\n      }\n      const viewItem = this._viewItemsInfo.read(reader).getItem(activeDiffItem);\n      return viewItem.template.read(reader)?.editor;\n    });\n    this._contextKeyService = this._register(this._parentContextKeyService.createScoped(this._element));\n    this._instantiationService = this._register(this._parentInstantiationService.createChild(new ServiceCollection([IContextKeyService, this._contextKeyService])));\n    this._lastDocStates = {};\n    this._register(autorunWithStore((reader, store) =\u003e {\n      const viewModel = this._viewModel.read(reader);\n      if (viewModel \u0026\u0026 viewModel.contextKeys) {\n        for (const [key, value] of Object.entries(viewModel.contextKeys)) {\n          const contextKey = this._contextKeyService.createKey(key, void 0);\n          contextKey.set(value);\n          store.add(toDisposable(() =\u003e contextKey.reset()));\n        }\n      }\n    }));\n    const ctxAllCollapsed = this._parentContextKeyService.createKey(EditorContextKeys.multiDiffEditorAllCollapsed.key, false);\n    this._register(autorun((reader) =\u003e {\n      const viewModel = this._viewModel.read(reader);\n      if (viewModel) {\n        const allCollapsed = viewModel.items.read(reader).every((item) =\u003e item.collapsed.read(reader));\n        ctxAllCollapsed.set(allCollapsed);\n      }\n    }));\n    this._register(autorun((reader) =\u003e {\n      const dimension = this._dimension.read(reader);\n      this._sizeObserver.observe(dimension);\n    }));\n    const placeholderMessage = derived((reader) =\u003e {\n      const items = this._viewItems.read(reader);\n      if (items.length \u003e 0) {\n        return void 0;\n      }\n      const vm = this._viewModel.read(reader);\n      return !vm || vm.isLoading.read(reader) ? localize(142, \"Loading...\") : localize(143, \"No Changed Files\");\n    });\n    this._register(autorun((reader) =\u003e {\n      const message = placeholderMessage.read(reader);\n      this._elements.placeholder.innerText = message ?? \"\";\n      this._elements.placeholder.classList.toggle(\"visible\", !!message);\n    }));\n    this._scrollableElements.content.style.position = \"relative\";\n    this._register(autorun((reader) =\u003e {\n      const height = this._sizeObserver.height.read(reader);\n      this._scrollableElements.root.style.height = `${height}px`;\n      const totalHeight = this._totalHeight.read(reader);\n      this._scrollableElements.content.style.height = `${totalHeight}px`;\n      const width2 = this._sizeObserver.width.read(reader);\n      let scrollWidth = width2;\n      const viewItems = this._viewItems.read(reader);\n      const max = findFirstMax(viewItems, compareBy((i2) =\u003e i2.maxScroll.read(reader).maxScroll, numberComparator));\n      if (max) {\n        const maxScroll = max.maxScroll.read(reader);\n        scrollWidth = width2 + maxScroll.maxScroll;\n      }\n      this._scrollableElement.setScrollDimensions({\n        width: width2,\n        height,\n        scrollHeight: totalHeight,\n        scrollWidth\n      });\n    }));\n    _element.replaceChildren(this._elements.root);\n    this._register(toDisposable(() =\u003e {\n      _element.replaceChildren();\n    }));\n    this._register(this._register(autorun((reader) =\u003e {\n      globalTransaction((tx) =\u003e {\n        this.render(reader);\n      });\n    })));\n  }\n  render(reader) {\n    const scrollTop = this.scrollTop.read(reader);\n    let contentScrollOffsetToScrollOffset = 0;\n    let itemHeightSumBefore = 0;\n    let itemContentHeightSumBefore = 0;\n    const viewPortHeight = this._sizeObserver.height.read(reader);\n    const contentViewPort = OffsetRange.ofStartAndLength(scrollTop, viewPortHeight);\n    const width2 = this._sizeObserver.width.read(reader);\n    for (const v of this._viewItems.read(reader)) {\n      const itemContentHeight = v.contentHeight.read(reader);\n      const itemHeight = Math.min(itemContentHeight, viewPortHeight);\n      const itemRange = OffsetRange.ofStartAndLength(itemHeightSumBefore, itemHeight);\n      const itemContentRange = OffsetRange.ofStartAndLength(itemContentHeightSumBefore, itemContentHeight);\n      if (itemContentRange.isBefore(contentViewPort)) {\n        contentScrollOffsetToScrollOffset -= itemContentHeight - itemHeight;\n        v.hide();\n      } else if (itemContentRange.isAfter(contentViewPort)) {\n        v.hide();\n      } else {\n        const scroll = Math.max(0, Math.min(contentViewPort.start - itemContentRange.start, itemContentHeight - itemHeight));\n        contentScrollOffsetToScrollOffset -= scroll;\n        const viewPort = OffsetRange.ofStartAndLength(scrollTop + contentScrollOffsetToScrollOffset, viewPortHeight);\n        v.render(itemRange, scroll, width2, viewPort);\n      }\n      itemHeightSumBefore += itemHeight + this._spaceBetweenPx;\n      itemContentHeightSumBefore += itemContentHeight + this._spaceBetweenPx;\n    }\n    this._scrollableElements.content.style.transform = `translateY(${-(scrollTop + contentScrollOffsetToScrollOffset)}px)`;\n  }\n};\nMultiDiffEditorWidgetImpl = __decorate192([\n  __param185(4, IContextKeyService),\n  __param185(5, IInstantiationService)\n], MultiDiffEditorWidgetImpl);\nvar VirtualizedViewItem = class extends Disposable {\n  constructor(viewModel, _objectPool, _scrollLeft, _deltaScrollVertical) {\n    super();\n    this.viewModel = viewModel;\n    this._objectPool = _objectPool;\n    this._scrollLeft = _scrollLeft;\n    this._deltaScrollVertical = _deltaScrollVertical;\n    this._templateRef = this._register(disposableObservableValue(this, void 0));\n    this.contentHeight = derived(this, (reader) =\u003e this._templateRef.read(reader)?.object.contentHeight?.read(reader) ?? this.viewModel.lastTemplateData.read(reader).contentHeight);\n    this.maxScroll = derived(this, (reader) =\u003e this._templateRef.read(reader)?.object.maxScroll.read(reader) ?? { maxScroll: 0, scrollWidth: 0 });\n    this.template = derived(this, (reader) =\u003e this._templateRef.read(reader)?.object);\n    this._isHidden = observableValue(this, false);\n    this._isFocused = derived(this, (reader) =\u003e this.template.read(reader)?.isFocused.read(reader) ?? false);\n    this.viewModel.setIsFocused(this._isFocused, void 0);\n    this._register(autorun((reader) =\u003e {\n      const scrollLeft = this._scrollLeft.read(reader);\n      this._templateRef.read(reader)?.object.setScrollLeft(scrollLeft);\n    }));\n    this._register(autorun((reader) =\u003e {\n      const ref = this._templateRef.read(reader);\n      if (!ref) {\n        return;\n      }\n      const isHidden = this._isHidden.read(reader);\n      if (!isHidden) {\n        return;\n      }\n      const isFocused = ref.object.isFocused.read(reader);\n      if (isFocused) {\n        return;\n      }\n      this._clear();\n    }));\n  }\n  dispose() {\n    this._clear();\n    super.dispose();\n  }\n  toString() {\n    return `VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`;\n  }\n  getKey() {\n    return this.viewModel.getKey();\n  }\n  setViewState(viewState, tx) {\n    this.viewModel.collapsed.set(viewState.collapsed, tx);\n    this._updateTemplateData(tx);\n    const data = this.viewModel.lastTemplateData.get();\n    const selections = viewState.selections?.map(Selection.liftSelection);\n    this.viewModel.lastTemplateData.set({\n      ...data,\n      selections\n    }, tx);\n    const ref = this._templateRef.get();\n    if (ref) {\n      if (selections) {\n        ref.object.editor.setSelections(selections);\n      }\n    }\n  }\n  _updateTemplateData(tx) {\n    const ref = this._templateRef.get();\n    if (!ref) {\n      return;\n    }\n    this.viewModel.lastTemplateData.set({\n      contentHeight: ref.object.contentHeight.get(),\n      selections: ref.object.editor.getSelections() ?? void 0\n    }, tx);\n  }\n  _clear() {\n    const ref = this._templateRef.get();\n    if (!ref) {\n      return;\n    }\n    transaction((tx) =\u003e {\n      this._updateTemplateData(tx);\n      ref.object.hide();\n      this._templateRef.set(void 0, tx);\n    });\n  }\n  hide() {\n    this._isHidden.set(true, void 0);\n  }\n  render(verticalSpace, offset, width2, viewPort) {\n    this._isHidden.set(false, void 0);\n    let ref = this._templateRef.get();\n    if (!ref) {\n      ref = this._objectPool.getUnusedObj(new TemplateData(this.viewModel, this._deltaScrollVertical));\n      this._templateRef.set(ref, void 0);\n      const selections = this.viewModel.lastTemplateData.get().selections;\n      if (selections) {\n        ref.object.editor.setSelections(selections);\n      }\n    }\n    ref.object.render(verticalSpace, width2, offset, viewPort);\n  }\n};\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.js\nvar __decorate193 = function(decorators, target, key, desc) {\n  var c = arguments.length, r = c \u003c 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" \u0026\u0026 typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i2 = decorators.length - 1; i2 \u003e= 0; i2--) if (d = decorators[i2]) r = (c \u003c 3 ? d(r) : c \u003e 3 ? d(target, key, r) : d(target, key)) || r;\n  return c \u003e 3 \u0026\u0026 r \u0026\u0026 Object.defineProperty(target, key, r), r;\n};\nvar __param186 = function(paramIndex, decorator) {\n  return function(target, key) {\n    decorator(target, key, paramIndex);\n  };\n};\nvar MultiDiffEditorWidget = class MultiDiffEditorWidget2 extends Disposable {\n  constructor(_element, _workbenchUIElementFactory, _instantiationService) {\n    super();\n    this._element = _element;\n    this._workbenchUIElementFactory = _workbenchUIElementFactory;\n    this._instantiationService = _instantiationService;\n    this._dimension = observableValue(this, void 0);\n    this._viewModel = observableValue(this, void 0);\n    this._widgetImpl = derived(this, (reader) =\u003e {\n      readHotReloadableExport(DiffEditorItemTemplate, reader);\n      return reader.store.add(this._instantiationService.createInstance(readHotReloadableExport(MultiDiffEditorWidgetImpl, reader), this._element, this._dimension, this._viewModel, this._workbenchUIElementFactory));\n    });\n    this._register(recomputeInitiallyAndOnChange(this._widgetImpl));\n  }\n};\nMultiDiffEditorWidget = __decorate193([\n  __param186(2, IInstantiationService)\n], MultiDiffEditorWidget);\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneEditor.js\nfunction create2(domElement, options2, override) {\n  const instantiationService = StandaloneServices.initialize(override || {});\n  return instantiationService.createInstance(StandaloneEditor, domElement, options2);\n}\nfunction onDidCreateEditor(listener) {\n  const codeEditorService = StandaloneServices.get(ICodeEditorService);\n  return codeEditorService.onCodeEditorAdd((editor2) =\u003e {\n    listener(editor2);\n  });\n}\nfunction onDidCreateDiffEditor(listener) {\n  const codeEditorService = StandaloneServices.get(ICodeEditorService);\n  return codeEditorService.onDiffEditorAdd((editor2) =\u003e {\n    listener(editor2);\n  });\n}\nfunction getEditors() {\n  const codeEditorService = StandaloneServices.get(ICodeEditorService);\n  return codeEditorService.listCodeEditors();\n}\nfunction getDiffEditors() {\n  const codeEditorService = StandaloneServices.get(ICodeEditorService);\n  return codeEditorService.listDiffEditors();\n}\nfunction createDiffEditor(domElement, options2, override) {\n  const instantiationService = StandaloneServices.initialize(override || {});\n  return instantiationService.createInstance(StandaloneDiffEditor2, domElement, options2);\n}\nfunction createMultiFileDiffEditor(domElement, override) {\n  const instantiationService = StandaloneServices.initialize(override || {});\n  return new MultiDiffEditorWidget(domElement, {}, instantiationService);\n}\nfunction addCommand(descriptor) {\n  if (typeof descriptor.id !== \"string\" || typeof descriptor.run !== \"function\") {\n    throw new Error(\"Invalid command descriptor, `id` and `run` are required properties!\");\n  }\n  return CommandsRegistry.registerCommand(descriptor.id, descriptor.run);\n}\nfunction addEditorAction(descriptor) {\n  if (typeof descriptor.id !== \"string\" || typeof descriptor.label !== \"string\" || typeof descriptor.run !== \"function\") {\n    throw new Error(\"Invalid action descriptor, `id`, `label` and `run` are required properties!\");\n  }\n  const precondition = ContextKeyExpr.deserialize(descriptor.precondition);\n  const run = (accessor, ...args) =\u003e {\n    return EditorCommand.runEditorCommand(accessor, args, precondition, (accessor2, editor2, args2) =\u003e Promise.resolve(descriptor.run(editor2, ...args2)));\n  };\n  const toDispose = new DisposableStore();\n  toDispose.add(CommandsRegistry.registerCommand(descriptor.id, run));\n  if (descriptor.contextMenuGroupId) {\n    const menuItem = {\n      command: {\n        id: descriptor.id,\n        title: descriptor.label\n      },\n      when: precondition,\n      group: descriptor.contextMenuGroupId,\n      order: descriptor.contextMenuOrder || 0\n    };\n    toDispose.add(MenuRegistry.appendMenuItem(MenuId.EditorContext, menuItem));\n  }\n  if (Array.isArray(descriptor.keybindings)) {\n    const keybindingService = StandaloneServices.get(IKeybindingService);\n    if (!(keybindingService instanceof StandaloneKeybindingService)) {\n      console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\");\n    } else {\n      const keybindingsWhen = ContextKeyExpr.and(precondition, ContextKeyExpr.deserialize(descriptor.keybindingContext));\n      toDispose.add(keybindingService.addDynamicKeybindings(descriptor.keybindings.map((keybinding) =\u003e {\n        return {\n          keybinding,\n          command: descriptor.id,\n          when: keybindingsWhen\n        };\n      })));\n    }\n  }\n  return toDispose;\n}\nfunction addKeybindingRule(rule) {\n  return addKeybindingRules([rule]);\n}\nfunction addKeybindingRules(rules) {\n  const keybindingService = StandaloneServices.get(IKeybindingService);\n  if (!(keybindingService instanceof StandaloneKeybindingService)) {\n    console.warn(\"Cannot add keybinding because the editor is configured with an unrecognized KeybindingService\");\n    return Disposable.None;\n  }\n  return keybindingService.addDynamicKeybindings(rules.map((rule) =\u003e {\n    return {\n      keybinding: rule.keybinding,\n      command: rule.command,\n      commandArgs: rule.commandArgs,\n      when: ContextKeyExpr.deserialize(rule.when)\n    };\n  }));\n}\nfunction createModel(value, language2, uri) {\n  const languageService = StandaloneServices.get(ILanguageService);\n  const languageId = languageService.getLanguageIdByMimeType(language2) || language2;\n  return createTextModel(StandaloneServices.get(IModelService), languageService, value, languageId, uri);\n}\nfunction setModelLanguage(model, mimeTypeOrLanguageId) {\n  const languageService = StandaloneServices.get(ILanguageService);\n  const languageId = languageService.getLanguageIdByMimeType(mimeTypeOrLanguageId) || mimeTypeOrLanguageId || PLAINTEXT_LANGUAGE_ID;\n  model.setLanguage(languageService.createById(languageId));\n}\nfunction setModelMarkers(model, owner, markers) {\n  if (model) {\n    const markerService = StandaloneServices.get(IMarkerService);\n    markerService.changeOne(owner, model.uri, markers);\n  }\n}\nfunction removeAllMarkers(owner) {\n  const markerService = StandaloneServices.get(IMarkerService);\n  markerService.changeAll(owner, []);\n}\nfunction getModelMarkers(filter) {\n  const markerService = StandaloneServices.get(IMarkerService);\n  return markerService.read(filter);\n}\nfunction onDidChangeMarkers(listener) {\n  const markerService = StandaloneServices.get(IMarkerService);\n  return markerService.onMarkerChanged(listener);\n}\nfunction getModel(uri) {\n  const modelService = StandaloneServices.get(IModelService);\n  return modelService.getModel(uri);\n}\nfunction getModels() {\n  const modelService = StandaloneServices.get(IModelService);\n  return modelService.getModels();\n}\nfunction onDidCreateModel(listener) {\n  const modelService = StandaloneServices.get(IModelService);\n  return modelService.onModelAdded(listener);\n}\nfunction onWillDisposeModel(listener) {\n  const modelService = StandaloneServices.get(IModelService);\n  return modelService.onModelRemoved(listener);\n}\nfunction onDidChangeModelLanguage(listener) {\n  const modelService = StandaloneServices.get(IModelService);\n  return modelService.onModelLanguageChanged((e) =\u003e {\n    listener({\n      model: e.model,\n      oldLanguage: e.oldLanguageId\n    });\n  });\n}\nfunction createWebWorker3(opts) {\n  return createWebWorker2(StandaloneServices.get(IModelService), opts);\n}\nfunction colorizeElement(domNode, options2) {\n  const languageService = StandaloneServices.get(ILanguageService);\n  const themeService = StandaloneServices.get(IStandaloneThemeService);\n  return Colorizer.colorizeElement(themeService, languageService, domNode, options2).then(() =\u003e {\n    themeService.registerEditorContainer(domNode);\n  });\n}\nfunction colorize(text2, languageId, options2) {\n  const languageService = StandaloneServices.get(ILanguageService);\n  const themeService = StandaloneServices.get(IStandaloneThemeService);\n  themeService.registerEditorContainer(mainWindow.document.body);\n  return Colorizer.colorize(languageService, text2, languageId, options2);\n}\nfunction colorizeModelLine(model, lineNumber, tabSize = 4) {\n  const themeService = StandaloneServices.get(IStandaloneThemeService);\n  themeService.registerEditorContainer(mainWindow.document.body);\n  return Colorizer.colorizeModelLine(model, lineNumber, tabSize);\n}\nfunction getSafeTokenizationSupport(language2) {\n  const tokenizationSupport = TokenizationRegistry2.get(language2);\n  if (tokenizationSupport) {\n    return tokenizationSupport;\n  }\n  return {\n    getInitialState: () =\u003e NullState,\n    tokenize: (line, hasEOL, state) =\u003e nullTokenize(language2, state)\n  };\n}\nfunction tokenize(text2, languageId) {\n  TokenizationRegistry2.getOrCreate(languageId);\n  const tokenizationSupport = getSafeTokenizationSupport(languageId);\n  const lines = splitLines(text2);\n  const result = [];\n  let state = tokenizationSupport.getInitialState();\n  for (let i2 = 0, len = lines.length; i2 \u003c len; i2++) {\n    const line = lines[i2];\n    const tokenizationResult = tokenizationSupport.tokenize(line, true, state);\n    result[i2] = tokenizationResult.tokens;\n    state = tokenizationResult.endState;\n  }\n  return result;\n}\nfunction defineTheme(themeName, themeData) {\n  const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n  standaloneThemeService.defineTheme(themeName, themeData);\n}\nfunction setTheme(themeName) {\n  const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n  standaloneThemeService.setTheme(themeName);\n}\nfunction remeasureFonts() {\n  FontMeasurements.clearAllFontInfos();\n}\nfunction registerCommand4(id, handler) {\n  return CommandsRegistry.registerCommand({ id, handler });\n}\nfunction registerLinkOpener(opener) {\n  const openerService = StandaloneServices.get(IOpenerService);\n  return openerService.registerOpener({\n    async open(resource) {\n      if (typeof resource === \"string\") {\n        resource = URI.parse(resource);\n      }\n      return opener.open(resource);\n    }\n  });\n}\nfunction registerEditorOpener(opener) {\n  const codeEditorService = StandaloneServices.get(ICodeEditorService);\n  return codeEditorService.registerCodeEditorOpenHandler(async (input, source, sideBySide) =\u003e {\n    if (!source) {\n      return null;\n    }\n    const selection = input.options?.selection;\n    let selectionOrPosition;\n    if (selection \u0026\u0026 typeof selection.endLineNumber === \"number\" \u0026\u0026 typeof selection.endColumn === \"number\") {\n      selectionOrPosition = selection;\n    } else if (selection) {\n      selectionOrPosition = { lineNumber: selection.startLineNumber, column: selection.startColumn };\n    }\n    if (await opener.openCodeEditor(source, input.resource, selectionOrPosition)) {\n      return source;\n    }\n    return null;\n  });\n}\nfunction createMonacoEditorAPI() {\n  return {\n    // methods\n    create: create2,\n    getEditors,\n    getDiffEditors,\n    onDidCreateEditor,\n    onDidCreateDiffEditor,\n    createDiffEditor,\n    addCommand,\n    addEditorAction,\n    addKeybindingRule,\n    addKeybindingRules,\n    createModel,\n    setModelLanguage,\n    setModelMarkers,\n    getModelMarkers,\n    removeAllMarkers,\n    onDidChangeMarkers,\n    getModels,\n    getModel,\n    onDidCreateModel,\n    onWillDisposeModel,\n    onDidChangeModelLanguage,\n    createWebWorker: createWebWorker3,\n    colorizeElement,\n    colorize,\n    colorizeModelLine,\n    tokenize,\n    defineTheme,\n    setTheme,\n    remeasureFonts,\n    registerCommand: registerCommand4,\n    registerLinkOpener,\n    registerEditorOpener,\n    // enums\n    AccessibilitySupport,\n    ContentWidgetPositionPreference,\n    CursorChangeReason,\n    DefaultEndOfLine,\n    EditorAutoIndentStrategy,\n    EditorOption,\n    EndOfLinePreference,\n    EndOfLineSequence,\n    MinimapPosition,\n    MinimapSectionHeaderStyle,\n    MouseTargetType,\n    OverlayWidgetPositionPreference,\n    OverviewRulerLane: OverviewRulerLane2,\n    GlyphMarginLane: GlyphMarginLane2,\n    RenderLineNumbersType,\n    RenderMinimap,\n    ScrollbarVisibility,\n    ScrollType,\n    TextEditorCursorBlinkingStyle,\n    TextEditorCursorStyle: TextEditorCursorStyle2,\n    TrackedRangeStickiness,\n    WrappingIndent,\n    InjectedTextCursorStops: InjectedTextCursorStops2,\n    PositionAffinity,\n    ShowLightbulbIconMode: ShowLightbulbIconMode2,\n    TextDirection: TextDirection2,\n    // classes\n    ConfigurationChangedEvent,\n    BareFontInfo,\n    FontInfo,\n    TextModelResolvedOptions,\n    FindMatch,\n    ApplyUpdateResult,\n    EditorZoom,\n    createMultiFileDiffEditor,\n    // vars\n    EditorType,\n    EditorOptions\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneLanguages.js\ninit_color();\ninit_range();\ninit_languages();\ninit_language();\ninit_languageConfigurationRegistry();\ninit_modesRegistry();\ninit_languageFeatures();\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/common/monarch/monarchCompile.js\ninit_types();\nfunction isArrayOf(elemType, obj) {\n  if (!obj) {\n    return false;\n  }\n  if (!Array.isArray(obj)) {\n    return false;\n  }\n  for (const el of obj) {\n    if (!elemType(el)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction bool(prop, defValue) {\n  if (typeof prop === \"boolean\") {\n    return prop;\n  }\n  return defValue;\n}\nfunction string(prop, defValue) {\n  if (typeof prop === \"string\") {\n    return prop;\n  }\n  return defValue;\n}\nfunction arrayToHash(array2) {\n  const result = {};\n  for (const e of array2) {\n    result[e] = true;\n  }\n  return result;\n}\nfunction createKeywordMatcher(arr, caseInsensitive = false) {\n  if (caseInsensitive) {\n    arr = arr.map(function(x) {\n      return x.toLowerCase();\n    });\n  }\n  const hash2 = arrayToHash(arr);\n  if (caseInsensitive) {\n    return function(word) {\n      return hash2[word.toLowerCase()] !== void 0 \u0026\u0026 hash2.hasOwnProperty(word.toLowerCase());\n    };\n  } else {\n    return function(word) {\n      return hash2[word] !== void 0 \u0026\u0026 hash2.hasOwnProperty(word);\n    };\n  }\n}\nfunction compileRegExp(lexer2, str, handleSn) {\n  str = str.replace(/@@/g, `\u0001`);\n  let n2 = 0;\n  let hadExpansion;\n  do {\n    hadExpansion = false;\n    str = str.replace(/@(\\w+)/g, function(s, attr) {\n      hadExpansion = true;\n      let sub = \"\";\n      if (typeof lexer2[attr] === \"string\") {\n        sub = lexer2[attr];\n      } else if (lexer2[attr] \u0026\u0026 lexer2[attr] instanceof RegExp) {\n        sub = lexer2[attr].source;\n      } else {\n        if (lexer2[attr] === void 0) {\n          throw createError(lexer2, \"language definition does not contain attribute '\" + attr + \"', used at: \" + str);\n        } else {\n          throw createError(lexer2, \"attribute reference '\" + attr + \"' must be a string, used at: \" + str);\n        }\n      }\n      return empty(sub) ? \"\" : \"(?:\" + sub + \")\";\n    });\n    n2++;\n  } while (hadExpansion \u0026\u0026 n2 \u003c 5);\n  str = str.replace(/\\x01/g, \"@\");\n  const flags = (lexer2.ignoreCase ? \"i\" : \"\") + (lexer2.unicode ? \"u\" : \"\");\n  if (handleSn) {\n    const match2 = str.match(/\\$[sS](\\d\\d?)/g);\n    if (match2) {\n      let lastState = null;\n      let lastRegEx = null;\n      return (state) =\u003e {\n        if (lastRegEx \u0026\u0026 lastState === state) {\n          return lastRegEx;\n        }\n        lastState = state;\n        lastRegEx = new RegExp(substituteMatchesRe(lexer2, str, state), flags);\n        return lastRegEx;\n      };\n    }\n  }\n  return new RegExp(str, flags);\n}\nfunction selectScrutinee(id, matches, state, num) {\n  if (num \u003c 0) {\n    return id;\n  }\n  if (num \u003c matches.length) {\n    return matches[num];\n  }\n  if (num \u003e= 100) {\n    num = num - 100;\n    const parts = state.split(\".\");\n    parts.unshift(state);\n    if (num \u003c parts.length) {\n      return parts[num];\n    }\n  }\n  return null;\n}\nfunction createGuard(lexer2, ruleName, tkey, val) {\n  let scrut = -1;\n  let oppat = tkey;\n  let matches = tkey.match(/^\\$(([sS]?)(\\d\\d?)|#)(.*)$/);\n  if (matches) {\n    if (matches[3]) {\n      scrut = parseInt(matches[3]);\n      if (matches[2]) {\n        scrut = scrut + 100;\n      }\n    }\n    oppat = matches[4];\n  }\n  let op = \"~\";\n  let pat = oppat;\n  if (!oppat || oppat.length === 0) {\n    op = \"!=\";\n    pat = \"\";\n  } else if (/^\\w*$/.test(pat)) {\n    op = \"==\";\n  } else {\n    matches = oppat.match(/^(@|!@|~|!~|==|!=)(.*)$/);\n    if (matches) {\n      op = matches[1];\n      pat = matches[2];\n    }\n  }\n  let tester;\n  if ((op === \"~\" || op === \"!~\") \u0026\u0026 /^(\\w|\\|)*$/.test(pat)) {\n    const inWords = createKeywordMatcher(pat.split(\"|\"), lexer2.ignoreCase);\n    tester = function(s) {\n      return op === \"~\" ? inWords(s) : !inWords(s);\n    };\n  } else if (op === \"@\" || op === \"!@\") {\n    const words = lexer2[pat];\n    if (!words) {\n      throw createError(lexer2, \"the @ match target '\" + pat + \"' is not defined, in rule: \" + ruleName);\n    }\n    if (!isArrayOf(function(elem) {\n      return typeof elem === \"string\";\n    }, words)) {\n      throw createError(lexer2, \"the @ match target '\" + pat + \"' must be an array of strings, in rule: \" + ruleName);\n    }\n    const inWords = createKeywordMatcher(words, lexer2.ignoreCase);\n    tester = function(s) {\n      return op === \"@\" ? inWords(s) : !inWords(s);\n    };\n  } else if (op === \"~\" || op === \"!~\") {\n    if (pat.indexOf(\"$\") \u003c 0) {\n      const re = compileRegExp(lexer2, \"^\" + pat + \"$\", false);\n      tester = function(s) {\n        return op === \"~\" ? re.test(s) : !re.test(s);\n      };\n    } else {\n      tester = function(s, id, matches2, state) {\n        const re = compileRegExp(lexer2, \"^\" + substituteMatches(lexer2, pat, id, matches2, state) + \"$\", false);\n        return re.test(s);\n      };\n    }\n  } else {\n    if (pat.indexOf(\"$\") \u003c 0) {\n      const patx = fixCase(lexer2, pat);\n      tester = function(s) {\n        return op === \"==\" ? s === patx : s !== patx;\n      };\n    } else {\n      const patx = fixCase(lexer2, pat);\n      tester = function(s, id, matches2, state, eos) {\n        const patexp = substituteMatches(lexer2, patx, id, matches2, state);\n        return op === \"==\" ? s === patexp : s !== patexp;\n      };\n    }\n  }\n  if (scrut === -1) {\n    return {\n      name: tkey,\n      value: val,\n      test: function(id, matches2, state, eos) {\n        return tester(id, id, matches2, state, eos);\n      }\n    };\n  } else {\n    return {\n      name: tkey,\n      value: val,\n      test: function(id, matches2, state, eos) {\n        const scrutinee = selectScrutinee(id, matches2, state, scrut);\n        return tester(!scrutinee ? \"\" : scrutinee, id, matches2, state, eos);\n      }\n    };\n  }\n}\nfunction compileAction(lexer2, ruleName, action) {\n  if (!action) {\n    return { token: \"\" };\n  } else if (typeof action === \"string\") {\n    return action;\n  } else if (action.token || action.token === \"\") {\n    if (typeof action.token !== \"string\") {\n      throw createError(lexer2, \"a 'token' attribute must be of type string, in rule: \" + ruleName);\n    } else {\n      const newAction = { token: action.token };\n      if (action.token.indexOf(\"$\") \u003e= 0) {\n        newAction.tokenSubst = true;\n      }\n      if (typeof action.bracket === \"string\") {\n        if (action.bracket === \"@open\") {\n          newAction.bracket = 1;\n        } else if (action.bracket === \"@close\") {\n          newAction.bracket = -1;\n        } else {\n          throw createError(lexer2, \"a 'bracket' attribute must be either '@open' or '@close', in rule: \" + ruleName);\n        }\n      }\n      if (action.next) {\n        if (typeof action.next !== \"string\") {\n          throw createError(lexer2, \"the next state must be a string value in rule: \" + ruleName);\n        } else {\n          let next = action.next;\n          if (!/^(@pop|@push|@popall)$/.test(next)) {\n            if (next[0] === \"@\") {\n              next = next.substr(1);\n            }\n            if (next.indexOf(\"$\") \u003c 0) {\n              if (!stateExists(lexer2, substituteMatches(lexer2, next, \"\", [], \"\"))) {\n                throw createError(lexer2, \"the next state '\" + action.next + \"' is not defined in rule: \" + ruleName);\n              }\n            }\n          }\n          newAction.next = next;\n        }\n      }\n      if (typeof action.goBack === \"number\") {\n        newAction.goBack = action.goBack;\n      }\n      if (typeof action.switchTo === \"string\") {\n        newAction.switchTo = action.switchTo;\n      }\n      if (typeof action.log === \"string\") {\n        newAction.log = action.log;\n      }\n      if (typeof action.nextEmbedded === \"string\") {\n        newAction.nextEmbedded = action.nextEmbedded;\n        lexer2.usesEmbedded = true;\n      }\n      return newAction;\n    }\n  } else if (Array.isArray(action)) {\n    const results = [];\n    for (let i2 = 0, len = action.length; i2 \u003c len; i2++) {\n      results[i2] = compileAction(lexer2, ruleName, action[i2]);\n    }\n    return { group: results };\n  } else if (action.cases) {\n    const cases = [];\n    let hasEmbeddedEndInCases = false;\n    for (const tkey in action.cases) {\n      if (action.cases.hasOwnProperty(tkey)) {\n        const val = compileAction(lexer2, ruleName, action.cases[tkey]);\n        if (tkey === \"@default\" || tkey === \"@\" || tkey === \"\") {\n          cases.push({ test: void 0, value: val, name: tkey });\n        } else if (tkey === \"@eos\") {\n          cases.push({ test: function(id, matches, state, eos) {\n            return eos;\n          }, value: val, name: tkey });\n        } else {\n          cases.push(createGuard(lexer2, ruleName, tkey, val));\n        }\n        if (!hasEmbeddedEndInCases) {\n          hasEmbeddedEndInCases = !isString(val) \u0026\u0026 (val.hasEmbeddedEndInCases || [\"@pop\", \"@popall\"].includes(val.nextEmbedded || \"\"));\n        }\n      }\n    }\n    const def2 = lexer2.defaultToken;\n    return {\n      hasEmbeddedEndInCases,\n      test: function(id, matches, state, eos) {\n        for (const _case of cases) {\n          const didmatch = !_case.test || _case.test(id, matches, state, eos);\n          if (didmatch) {\n            return _case.value;\n          }\n        }\n        return def2;\n      }\n    };\n  } else {\n    throw createError(lexer2, \"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: \" + ruleName);\n  }\n}\nvar Rule = class {\n  constructor(name) {\n    this.regex = new RegExp(\"\");\n    this.action = { token: \"\" };\n    this.matchOnlyAtLineStart = false;\n    this.name = \"\";\n    this.name = name;\n  }\n  setRegex(lexer2, re) {\n    let sregex;\n    if (typeof re === \"string\") {\n      sregex = re;\n    } else if (re instanceof RegExp) {\n      sregex = re.source;\n    } else {\n      throw createError(lexer2, \"rules must start with a match string or regular expression: \" + this.name);\n    }\n    this.matchOnlyAtLineStart = sregex.length \u003e 0 \u0026\u0026 sregex[0] === \"^\";\n    this.name = this.name + \": \" + sregex;\n    this.regex = compileRegExp(lexer2, \"^(?:\" + (this.matchOnlyAtLineStart ? sregex.substr(1) : sregex) + \")\", true);\n  }\n  setAction(lexer2, act) {\n    this.action = compileAction(lexer2, this.name, act);\n  }\n  resolveRegex(state) {\n    if (this.regex instanceof RegExp) {\n      return this.regex;\n    } else {\n      return this.regex(state);\n    }\n  }\n};\nfunction compile(languageId, json) {\n  if (!json || typeof json !== \"object\") {\n    throw new Error(\"Monarch: expecting a language definition object\");\n  }\n  const lexer2 = {\n    languageId,\n    includeLF: bool(json.includeLF, false),\n    noThrow: false,\n    // raise exceptions during compilation\n    maxStack: 100,\n    start: typeof json.start === \"string\" ? json.start : null,\n    ignoreCase: bool(json.ignoreCase, false),\n    unicode: bool(json.unicode, false),\n    tokenPostfix: string(json.tokenPostfix, \".\" + languageId),\n    defaultToken: string(json.defaultToken, \"source\"),\n    usesEmbedded: false,\n    // becomes true if we find a nextEmbedded action\n    stateNames: {},\n    tokenizer: {},\n    brackets: []\n  };\n  const lexerMin = json;\n  lexerMin.languageId = languageId;\n  lexerMin.includeLF = lexer2.includeLF;\n  lexerMin.ignoreCase = lexer2.ignoreCase;\n  lexerMin.unicode = lexer2.unicode;\n  lexerMin.noThrow = lexer2.noThrow;\n  lexerMin.usesEmbedded = lexer2.usesEmbedded;\n  lexerMin.stateNames = json.tokenizer;\n  lexerMin.defaultToken = lexer2.defaultToken;\n  function addRules(state, newrules, rules) {\n    for (const rule of rules) {\n      let include = rule.include;\n      if (include) {\n        if (typeof include !== \"string\") {\n          throw createError(lexer2, \"an 'include' attribute must be a string at: \" + state);\n        }\n        if (include[0] === \"@\") {\n          include = include.substr(1);\n        }\n        if (!json.tokenizer[include]) {\n          throw createError(lexer2, \"include target '\" + include + \"' is not defined at: \" + state);\n        }\n        addRules(state + \".\" + include, newrules, json.tokenizer[include]);\n      } else {\n        const newrule = new Rule(state);\n        if (Array.isArray(rule) \u0026\u0026 rule.length \u003e= 1 \u0026\u0026 rule.length \u003c= 3) {\n          newrule.setRegex(lexerMin, rule[0]);\n          if (rule.length \u003e= 3) {\n            if (typeof rule[1] === \"string\") {\n              newrule.setAction(lexerMin, { token: rule[1], next: rule[2] });\n            } else if (typeof rule[1] === \"object\") {\n              const rule1 = rule[1];\n              rule1.next = rule[2];\n              newrule.setAction(lexerMin, rule1);\n            } else {\n              throw createError(lexer2, \"a next state as the last element of a rule can only be given if the action is either an object or a string, at: \" + state);\n            }\n          } else {\n            newrule.setAction(lexerMin, rule[1]);\n          }\n        } else {\n          if (!rule.regex) {\n            throw createError(lexer2, \"a rule must either be an array, or an object with a 'regex' or 'include' field at: \" + state);\n          }\n          if (rule.name) {\n            if (typeof rule.name === \"string\") {\n              newrule.name = rule.name;\n            }\n          }\n          if (rule.matchOnlyAtStart) {\n            newrule.matchOnlyAtLineStart = bool(rule.matchOnlyAtLineStart, false);\n          }\n          newrule.setRegex(lexerMin, rule.regex);\n          newrule.setAction(lexerMin, rule.action);\n        }\n        newrules.push(newrule);\n      }\n    }\n  }\n  if (!json.tokenizer || typeof json.tokenizer !== \"object\") {\n    throw createError(lexer2, \"a language definition must define the 'tokenizer' attribute as an object\");\n  }\n  lexer2.tokenizer = [];\n  for (const key in json.tokenizer) {\n    if (json.tokenizer.hasOwnProperty(key)) {\n      if (!lexer2.start) {\n        lexer2.start = key;\n      }\n      const rules = json.tokenizer[key];\n      lexer2.tokenizer[key] = new Array();\n      addRules(\"tokenizer.\" + key, lexer2.tokenizer[key], rules);\n    }\n  }\n  lexer2.usesEmbedded = lexerMin.usesEmbedded;\n  if (json.brackets) {\n    if (!Array.isArray(json.brackets)) {\n      throw createError(lexer2, \"the 'brackets' attribute must be defined as an array\");\n    }\n  } else {\n    json.brackets = [\n      { open: \"{\", close: \"}\", token: \"delimiter.curly\" },\n      { open: \"[\", close: \"]\", token: \"delimiter.square\" },\n      { open: \"(\", close: \")\", token: \"delimiter.parenthesis\" },\n      { open: \"\u003c\", close: \"\u003e\", token: \"delimiter.angle\" }\n    ];\n  }\n  const brackets = [];\n  for (const el of json.brackets) {\n    let desc = el;\n    if (desc \u0026\u0026 Array.isArray(desc) \u0026\u0026 desc.length === 3) {\n      desc = { token: desc[2], open: desc[0], close: desc[1] };\n    }\n    if (desc.open === desc.close) {\n      throw createError(lexer2, \"open and close brackets in a 'brackets' attribute must be different: \" + desc.open + \"\\n hint: use the 'bracket' attribute if matching on equal brackets is required.\");\n    }\n    if (typeof desc.open === \"string\" \u0026\u0026 typeof desc.token === \"string\" \u0026\u0026 typeof desc.close === \"string\") {\n      brackets.push({\n        token: desc.token + lexer2.tokenPostfix,\n        open: fixCase(lexer2, desc.open),\n        close: fixCase(lexer2, desc.close)\n      });\n    } else {\n      throw createError(lexer2, \"every element in the 'brackets' array must be a '{open,close,token}' object or array\");\n    }\n  }\n  lexer2.brackets = brackets;\n  lexer2.noThrow = true;\n  return lexer2;\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneLanguages.js\ninit_standaloneTheme();\ninit_configuration();\nfunction register3(language2) {\n  ModesRegistry.registerLanguage(language2);\n}\nfunction getLanguages() {\n  let result = [];\n  result = result.concat(ModesRegistry.getLanguages());\n  return result;\n}\nfunction getEncodedLanguageId(languageId) {\n  const languageService = StandaloneServices.get(ILanguageService);\n  return languageService.languageIdCodec.encodeLanguageId(languageId);\n}\nfunction onLanguage(languageId, callback) {\n  return StandaloneServices.withServices(() =\u003e {\n    const languageService = StandaloneServices.get(ILanguageService);\n    const disposable = languageService.onDidRequestRichLanguageFeatures((encounteredLanguageId) =\u003e {\n      if (encounteredLanguageId === languageId) {\n        disposable.dispose();\n        callback();\n      }\n    });\n    return disposable;\n  });\n}\nfunction onLanguageEncountered(languageId, callback) {\n  return StandaloneServices.withServices(() =\u003e {\n    const languageService = StandaloneServices.get(ILanguageService);\n    const disposable = languageService.onDidRequestBasicLanguageFeatures((encounteredLanguageId) =\u003e {\n      if (encounteredLanguageId === languageId) {\n        disposable.dispose();\n        callback();\n      }\n    });\n    return disposable;\n  });\n}\nfunction setLanguageConfiguration(languageId, configuration) {\n  const languageService = StandaloneServices.get(ILanguageService);\n  if (!languageService.isRegisteredLanguageId(languageId)) {\n    throw new Error(`Cannot set configuration for unknown language ${languageId}`);\n  }\n  const languageConfigurationService = StandaloneServices.get(ILanguageConfigurationService);\n  return languageConfigurationService.register(languageId, configuration, 100);\n}\nvar EncodedTokenizationSupportAdapter = class {\n  constructor(languageId, actual) {\n    this._languageId = languageId;\n    this._actual = actual;\n  }\n  dispose() {\n  }\n  getInitialState() {\n    return this._actual.getInitialState();\n  }\n  tokenize(line, hasEOL, state) {\n    if (typeof this._actual.tokenize === \"function\") {\n      return TokenizationSupportAdapter.adaptTokenize(this._languageId, this._actual, line, state);\n    }\n    throw new Error(\"Not supported!\");\n  }\n  tokenizeEncoded(line, hasEOL, state) {\n    const result = this._actual.tokenizeEncoded(line, state);\n    return new EncodedTokenizationResult(result.tokens, result.endState);\n  }\n};\nvar TokenizationSupportAdapter = class _TokenizationSupportAdapter {\n  constructor(_languageId, _actual, _languageService, _standaloneThemeService) {\n    this._languageId = _languageId;\n    this._actual = _actual;\n    this._languageService = _languageService;\n    this._standaloneThemeService = _standaloneThemeService;\n  }\n  dispose() {\n  }\n  getInitialState() {\n    return this._actual.getInitialState();\n  }\n  static _toClassicTokens(tokens, language2) {\n    const result = [];\n    let previousStartIndex = 0;\n    for (let i2 = 0, len = tokens.length; i2 \u003c len; i2++) {\n      const t = tokens[i2];\n      let startIndex = t.startIndex;\n      if (i2 === 0) {\n        startIndex = 0;\n      } else if (startIndex \u003c previousStartIndex) {\n        startIndex = previousStartIndex;\n      }\n      result[i2] = new Token(startIndex, t.scopes, language2);\n      previousStartIndex = startIndex;\n    }\n    return result;\n  }\n  static adaptTokenize(language2, actual, line, state) {\n    const actualResult = actual.tokenize(line, state);\n    const tokens = _TokenizationSupportAdapter._toClassicTokens(actualResult.tokens, language2);\n    let endState;\n    if (actualResult.endState.equals(state)) {\n      endState = state;\n    } else {\n      endState = actualResult.endState;\n    }\n    return new TokenizationResult(tokens, endState);\n  }\n  tokenize(line, hasEOL, state) {\n    return _TokenizationSupportAdapter.adaptTokenize(this._languageId, this._actual, line, state);\n  }\n  _toBinaryTokens(languageIdCodec, tokens) {\n    const languageId = languageIdCodec.encodeLanguageId(this._languageId);\n    const tokenTheme = this._standaloneThemeService.getColorTheme().tokenTheme;\n    const result = [];\n    let resultLen = 0;\n    let previousStartIndex = 0;\n    for (let i2 = 0, len = tokens.length; i2 \u003c len; i2++) {\n      const t = tokens[i2];\n      const metadata = tokenTheme.match(languageId, t.scopes) | 1024;\n      if (resultLen \u003e 0 \u0026\u0026 result[resultLen - 1] === metadata) {\n        continue;\n      }\n      let startIndex = t.startIndex;\n      if (i2 === 0) {\n        startIndex = 0;\n      } else if (startIndex \u003c previousStartIndex) {\n        startIndex = previousStartIndex;\n      }\n      result[resultLen++] = startIndex;\n      result[resultLen++] = metadata;\n      previousStartIndex = startIndex;\n    }\n    const actualResult = new Uint32Array(resultLen);\n    for (let i2 = 0; i2 \u003c resultLen; i2++) {\n      actualResult[i2] = result[i2];\n    }\n    return actualResult;\n  }\n  tokenizeEncoded(line, hasEOL, state) {\n    const actualResult = this._actual.tokenize(line, state);\n    const tokens = this._toBinaryTokens(this._languageService.languageIdCodec, actualResult.tokens);\n    let endState;\n    if (actualResult.endState.equals(state)) {\n      endState = state;\n    } else {\n      endState = actualResult.endState;\n    }\n    return new EncodedTokenizationResult(tokens, endState);\n  }\n};\nfunction isATokensProvider(provider) {\n  return typeof provider.getInitialState === \"function\";\n}\nfunction isEncodedTokensProvider(provider) {\n  return \"tokenizeEncoded\" in provider;\n}\nfunction isThenable2(obj) {\n  return obj \u0026\u0026 typeof obj.then === \"function\";\n}\nfunction setColorMap(colorMap) {\n  const standaloneThemeService = StandaloneServices.get(IStandaloneThemeService);\n  if (colorMap) {\n    const result = [null];\n    for (let i2 = 1, len = colorMap.length; i2 \u003c len; i2++) {\n      result[i2] = Color.fromHex(colorMap[i2]);\n    }\n    standaloneThemeService.setColorMapOverride(result);\n  } else {\n    standaloneThemeService.setColorMapOverride(null);\n  }\n}\nfunction createTokenizationSupportAdapter(languageId, provider) {\n  if (isEncodedTokensProvider(provider)) {\n    return new EncodedTokenizationSupportAdapter(languageId, provider);\n  } else {\n    return new TokenizationSupportAdapter(languageId, provider, StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService));\n  }\n}\nfunction registerTokensProviderFactory(languageId, factory) {\n  const adaptedFactory = new LazyTokenizationSupport(async () =\u003e {\n    const result = await Promise.resolve(factory.create());\n    if (!result) {\n      return null;\n    }\n    if (isATokensProvider(result)) {\n      return createTokenizationSupportAdapter(languageId, result);\n    }\n    return new MonarchTokenizer(StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService), languageId, compile(languageId, result), StandaloneServices.get(IConfigurationService));\n  });\n  return TokenizationRegistry2.registerFactory(languageId, adaptedFactory);\n}\nfunction setTokensProvider(languageId, provider) {\n  const languageService = StandaloneServices.get(ILanguageService);\n  if (!languageService.isRegisteredLanguageId(languageId)) {\n    throw new Error(`Cannot set tokens provider for unknown language ${languageId}`);\n  }\n  if (isThenable2(provider)) {\n    return registerTokensProviderFactory(languageId, { create: () =\u003e provider });\n  }\n  return TokenizationRegistry2.register(languageId, createTokenizationSupportAdapter(languageId, provider));\n}\nfunction setMonarchTokensProvider(languageId, languageDef) {\n  const create4 = (languageDef2) =\u003e {\n    return new MonarchTokenizer(StandaloneServices.get(ILanguageService), StandaloneServices.get(IStandaloneThemeService), languageId, compile(languageId, languageDef2), StandaloneServices.get(IConfigurationService));\n  };\n  if (isThenable2(languageDef)) {\n    return registerTokensProviderFactory(languageId, { create: () =\u003e languageDef });\n  }\n  return TokenizationRegistry2.register(languageId, create4(languageDef));\n}\nfunction registerReferenceProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.referenceProvider.register(languageSelector, provider);\n}\nfunction registerRenameProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.renameProvider.register(languageSelector, provider);\n}\nfunction registerNewSymbolNameProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.newSymbolNamesProvider.register(languageSelector, provider);\n}\nfunction registerSignatureHelpProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.signatureHelpProvider.register(languageSelector, provider);\n}\nfunction registerHoverProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.hoverProvider.register(languageSelector, {\n    provideHover: async (model, position, token, context) =\u003e {\n      const word = model.getWordAtPosition(position);\n      return Promise.resolve(provider.provideHover(model, position, token, context)).then((value) =\u003e {\n        if (!value) {\n          return void 0;\n        }\n        if (!value.range \u0026\u0026 word) {\n          value.range = new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n        }\n        if (!value.range) {\n          value.range = new Range(position.lineNumber, position.column, position.lineNumber, position.column);\n        }\n        return value;\n      });\n    }\n  });\n}\nfunction registerDocumentSymbolProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.documentSymbolProvider.register(languageSelector, provider);\n}\nfunction registerDocumentHighlightProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.documentHighlightProvider.register(languageSelector, provider);\n}\nfunction registerLinkedEditingRangeProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.linkedEditingRangeProvider.register(languageSelector, provider);\n}\nfunction registerDefinitionProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.definitionProvider.register(languageSelector, provider);\n}\nfunction registerImplementationProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.implementationProvider.register(languageSelector, provider);\n}\nfunction registerTypeDefinitionProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.typeDefinitionProvider.register(languageSelector, provider);\n}\nfunction registerCodeLensProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.codeLensProvider.register(languageSelector, provider);\n}\nfunction registerCodeActionProvider(languageSelector, provider, metadata) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.codeActionProvider.register(languageSelector, {\n    providedCodeActionKinds: metadata?.providedCodeActionKinds,\n    documentation: metadata?.documentation,\n    provideCodeActions: (model, range2, context, token) =\u003e {\n      const markerService = StandaloneServices.get(IMarkerService);\n      const markers = markerService.read({ resource: model.uri }).filter((m) =\u003e {\n        return Range.areIntersectingOrTouching(m, range2);\n      });\n      return provider.provideCodeActions(model, range2, { markers, only: context.only, trigger: context.trigger }, token);\n    },\n    resolveCodeAction: provider.resolveCodeAction\n  });\n}\nfunction registerDocumentFormattingEditProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.documentFormattingEditProvider.register(languageSelector, provider);\n}\nfunction registerDocumentRangeFormattingEditProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.documentRangeFormattingEditProvider.register(languageSelector, provider);\n}\nfunction registerOnTypeFormattingEditProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.onTypeFormattingEditProvider.register(languageSelector, provider);\n}\nfunction registerLinkProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.linkProvider.register(languageSelector, provider);\n}\nfunction registerCompletionItemProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.completionProvider.register(languageSelector, provider);\n}\nfunction registerColorProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.colorProvider.register(languageSelector, provider);\n}\nfunction registerFoldingRangeProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.foldingRangeProvider.register(languageSelector, provider);\n}\nfunction registerDeclarationProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.declarationProvider.register(languageSelector, provider);\n}\nfunction registerSelectionRangeProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.selectionRangeProvider.register(languageSelector, provider);\n}\nfunction registerDocumentSemanticTokensProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.documentSemanticTokensProvider.register(languageSelector, provider);\n}\nfunction registerDocumentRangeSemanticTokensProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.documentRangeSemanticTokensProvider.register(languageSelector, provider);\n}\nfunction registerInlineCompletionsProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.inlineCompletionsProvider.register(languageSelector, provider);\n}\nfunction registerInlayHintsProvider(languageSelector, provider) {\n  const languageFeaturesService = StandaloneServices.get(ILanguageFeaturesService);\n  return languageFeaturesService.inlayHintsProvider.register(languageSelector, provider);\n}\nfunction createMonacoLanguagesAPI() {\n  return {\n    register: register3,\n    getLanguages,\n    onLanguage,\n    onLanguageEncountered,\n    getEncodedLanguageId,\n    // provider methods\n    setLanguageConfiguration,\n    setColorMap,\n    registerTokensProviderFactory,\n    setTokensProvider,\n    setMonarchTokensProvider,\n    registerReferenceProvider,\n    registerRenameProvider,\n    registerNewSymbolNameProvider,\n    registerCompletionItemProvider,\n    registerSignatureHelpProvider,\n    registerHoverProvider,\n    registerDocumentSymbolProvider,\n    registerDocumentHighlightProvider,\n    registerLinkedEditingRangeProvider,\n    registerDefinitionProvider,\n    registerImplementationProvider,\n    registerTypeDefinitionProvider,\n    registerCodeLensProvider,\n    registerCodeActionProvider,\n    registerDocumentFormattingEditProvider,\n    registerDocumentRangeFormattingEditProvider,\n    registerOnTypeFormattingEditProvider,\n    registerLinkProvider,\n    registerColorProvider,\n    registerFoldingRangeProvider,\n    registerDeclarationProvider,\n    registerSelectionRangeProvider,\n    registerDocumentSemanticTokensProvider,\n    registerDocumentRangeSemanticTokensProvider,\n    registerInlineCompletionsProvider,\n    registerInlayHintsProvider,\n    // enums\n    DocumentHighlightKind: DocumentHighlightKind2,\n    CompletionItemKind,\n    CompletionItemTag,\n    CompletionItemInsertTextRule,\n    SymbolKind,\n    SymbolTag,\n    IndentAction: IndentAction2,\n    CompletionTriggerKind,\n    SignatureHelpTriggerKind: SignatureHelpTriggerKind2,\n    InlayHintKind: InlayHintKind2,\n    InlineCompletionTriggerKind: InlineCompletionTriggerKind2,\n    CodeActionTriggerType,\n    NewSymbolNameTag: NewSymbolNameTag2,\n    NewSymbolNameTriggerKind: NewSymbolNameTriggerKind2,\n    PartialAcceptTriggerKind,\n    HoverVerbosityAction: HoverVerbosityAction2,\n    InlineCompletionEndOfLifeReasonKind: InlineCompletionEndOfLifeReasonKind2,\n    InlineCompletionDisplayLocationKind: InlineCompletionDisplayLocationKind2,\n    // classes\n    FoldingRangeKind,\n    SelectedSuggestionInfo\n  };\n}\n\n// node_modules/.pnpm/monaco-editor-core@0.53.0/node_modules/monaco-editor-core/esm/vs/editor/editor.api.js\nEditorOptions.wrappingIndent.defaultValue = 0;\nEditorOptions.glyphMargin.defaultValue = false;\nEditorOptions.autoIndent.defaultValue = 3;\nEditorOptions.overviewRulerLanes.defaultValue = 2;\nFormattingConflicts.setFormatterSelector((formatter, document2, mode) =\u003e Promise.resolve(formatter[0]));\nvar api = createMonacoBaseAPI();\napi.editor = createMonacoEditorAPI();\napi.languages = createMonacoLanguagesAPI();\nvar CancellationTokenSource2 = api.CancellationTokenSource;\nvar Emitter2 = api.Emitter;\nvar KeyCode2 = api.KeyCode;\nvar KeyMod2 = api.KeyMod;\nvar Position2 = api.Position;\nvar Range3 = api.Range;\nvar Selection2 = api.Selection;\nvar SelectionDirection2 = api.SelectionDirection;\nvar MarkerSeverity3 = api.MarkerSeverity;\nvar MarkerTag2 = api.MarkerTag;\nvar Uri2 = api.Uri;\nvar Token3 = api.Token;\nvar editor = api.editor;\nvar languages = api.languages;\nvar monacoEnvironment = globalThis.MonacoEnvironment;\nif (monacoEnvironment?.globalAPI || typeof globalThis.define === \"function\" \u0026\u0026 globalThis.define.amd) {\n  globalThis.monaco = api;\n}\nif (typeof globalThis.require !== \"undefined\" \u0026\u0026 typeof globalThis.require.config === \"function\") {\n  globalThis.require.config({\n    ignoreDuplicateModules: [\n      \"vscode-languageserver-types\",\n      \"vscode-languageserver-types/main\",\n      \"vscode-languageserver-textdocument\",\n      \"vscode-languageserver-textdocument/main\",\n      \"vscode-nls\",\n      \"vscode-nls/vscode-nls\",\n      \"jsonc-parser\",\n      \"jsonc-parser/main\",\n      \"vscode-uri\",\n      \"vscode-uri/index\",\n      \"vs/basic-languages/typescript/typescript\"\n    ]\n  });\n}\n\n// language-configurations.json\nvar language_configurations_default = {\n  prompt: {\n    comments: {\n      blockComment: [\n        \"\u003c!--\",\n        \"--\u003e\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    colorizedBracketPairs: [],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"\u003c\",\n        close: \"\u003e\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ],\n      [\n        \"_\",\n        \"_\"\n      ],\n      [\n        \"*\",\n        \"*\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ],\n      [\n        \"~\",\n        \"~\"\n      ],\n      [\n        \"$\",\n        \"$\"\n      ]\n    ],\n    folding: {\n      offSide: true,\n      markers: {\n        start: \"^\\\\s*\u003c!--\\\\s*#?region\\\\b.*--\u003e\",\n        end: \"^\\\\s*\u003c!--\\\\s*#?endregion\\\\b.*--\u003e\"\n      }\n    },\n    wordPattern: {\n      pattern: \"(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark})(((\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark})|[_])?(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}))*\",\n      flags: \"ug\"\n    }\n  },\n  razor: {\n    comments: {\n      blockComment: [\n        \"\u003c!--\",\n        \"--\u003e\"\n      ]\n    },\n    brackets: [\n      [\n        \"\u003c!--\",\n        \"--\u003e\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"'\",\n        close: \"'\"\n      },\n      {\n        open: '\"',\n        close: '\"'\n      }\n    ],\n    surroundingPairs: [\n      {\n        open: \"'\",\n        close: \"'\"\n      },\n      {\n        open: '\"',\n        close: '\"'\n      },\n      {\n        open: \"\u003c\",\n        close: \"\u003e\"\n      }\n    ]\n  },\n  shaderlab: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ]\n    ]\n  },\n  docker: {\n    comments: {\n      lineComment: \"#\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    indentationRules: {\n      increaseIndentPattern: `^\\\\s*.*(:|-) ?(\u0026amp;\\\\w+)?(\\\\{[^}\"']*|\\\\([^)\"']*)?$`,\n      decreaseIndentPattern: \"^\\\\s+\\\\}$\"\n    }\n  },\n  go: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ],\n    indentationRules: {\n      increaseIndentPattern: \"^.*(\\\\bcase\\\\b.*:|\\\\bdefault\\\\b:|(\\\\b(func|if|else|switch|select|for|struct)\\\\b.*)?{[^}\\\"'`]*|\\\\([^)\\\"'`]*)$\",\n      decreaseIndentPattern: \"^\\\\s*(\\\\bcase\\\\b.*:|\\\\bdefault\\\\b:|}[)}]*[),]?|\\\\)[,]?)$\"\n    },\n    folding: {\n      markers: {\n        start: \"^\\\\s*//\\\\s*#?region\\\\b\",\n        end: \"^\\\\s*//\\\\s*#?endregion\\\\b\"\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  python: {\n    comments: {\n      lineComment: \"#\",\n      blockComment: [\n        '\"\"\"',\n        '\"\"\"'\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: 'r\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: 'R\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: 'u\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: 'U\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: 'f\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: 'F\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: 'b\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: 'B\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"r'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"R'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"u'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"U'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"f'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"F'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"b'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"B'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ],\n    folding: {\n      offSide: true,\n      markers: {\n        start: \"^\\\\s*#\\\\s*region\\\\b\",\n        end: \"^\\\\s*#\\\\s*endregion\\\\b\"\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: \"^\\\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\\\s*$\",\n        action: {\n          indent: \"indent\"\n        }\n      }\n    ]\n  },\n  css: {\n    comments: {\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"[\",\n        close: \"]\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"(\",\n        close: \")\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\",\n        end: \"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\"\n      }\n    },\n    indentationRules: {\n      increaseIndentPattern: \"(^.*\\\\{[^}]*$)\",\n      decreaseIndentPattern: \"^\\\\s*\\\\}\"\n    },\n    wordPattern: \"(#?-?\\\\d*\\\\.\\\\d\\\\w*%?)|(::?[\\\\w-]*(?=[^,{;]*[,{]))|(([@#.!])?[\\\\w-?]+%?|[@#!.])\"\n  },\n  clojure: {\n    comments: {\n      lineComment: \";;\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ]\n    ],\n    folding: {\n      offSide: true\n    }\n  },\n  less: {\n    comments: {\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ],\n      lineComment: \"//\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"[\",\n        close: \"]\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"(\",\n        close: \")\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\",\n        end: \"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\"\n      }\n    },\n    indentationRules: {\n      increaseIndentPattern: \"(^.*\\\\{[^}]*$)\",\n      decreaseIndentPattern: \"^\\\\s*\\\\}\"\n    },\n    wordPattern: \"(#?-?\\\\d*\\\\.\\\\d\\\\w*%?)|(::?[\\\\w-]+(?=[^,{;]*[,{]))|(([@#.!])?[\\\\w-?]+%?|[@#!.])\",\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  dart: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"/**\",\n        close: \" */\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ]\n  },\n  latex: {\n    comments: {\n      lineComment: \"%\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"[\",\n        \")\"\n      ],\n      [\n        \"(\",\n        \"]\"\n      ],\n      [\n        \"\\\\left(\",\n        \"\\\\right)\"\n      ],\n      [\n        \"\\\\left(\",\n        \"\\\\right.\"\n      ],\n      [\n        \"\\\\left.\",\n        \"\\\\right)\"\n      ],\n      [\n        \"\\\\left[\",\n        \"\\\\right]\"\n      ],\n      [\n        \"\\\\left[\",\n        \"\\\\right.\"\n      ],\n      [\n        \"\\\\left.\",\n        \"\\\\right]\"\n      ],\n      [\n        \"\\\\left\\\\{\",\n        \"\\\\right\\\\}\"\n      ],\n      [\n        \"\\\\left\\\\{\",\n        \"\\\\right.\"\n      ],\n      [\n        \"\\\\left.\",\n        \"\\\\right\\\\}\"\n      ],\n      [\n        \"\\\\left\u003c\",\n        \"\\\\right\u003e\"\n      ],\n      [\n        \"\\\\bigl(\",\n        \"\\\\bigr)\"\n      ],\n      [\n        \"\\\\bigl[\",\n        \"\\\\bigr]\"\n      ],\n      [\n        \"\\\\bigl\\\\{\",\n        \"\\\\bigr\\\\}\"\n      ],\n      [\n        \"\\\\Bigl(\",\n        \"\\\\Bigr)\"\n      ],\n      [\n        \"\\\\Bigl[\",\n        \"\\\\Bigr]\"\n      ],\n      [\n        \"\\\\Bigl\\\\{\",\n        \"\\\\Bigr\\\\}\"\n      ],\n      [\n        \"\\\\biggl(\",\n        \"\\\\biggr)\"\n      ],\n      [\n        \"\\\\biggl[\",\n        \"\\\\biggr]\"\n      ],\n      [\n        \"\\\\biggl\\\\{\",\n        \"\\\\biggr\\\\}\"\n      ],\n      [\n        \"\\\\Biggl(\",\n        \"\\\\Biggr)\"\n      ],\n      [\n        \"\\\\Biggl[\",\n        \"\\\\Biggr]\"\n      ],\n      [\n        \"\\\\Biggl\\\\{\",\n        \"\\\\Biggr\\\\}\"\n      ],\n      [\n        \"\\\\langle\",\n        \"\\\\rangle\"\n      ],\n      [\n        \"\\\\lvert\",\n        \"\\\\rvert\"\n      ],\n      [\n        \"\\\\lVert\",\n        \"\\\\rVert\"\n      ],\n      [\n        \"\\\\left|\",\n        \"\\\\right|\"\n      ],\n      [\n        \"\\\\left\\\\vert\",\n        \"\\\\right\\\\vert\"\n      ],\n      [\n        \"\\\\left\\\\|\",\n        \"\\\\right\\\\|\"\n      ],\n      [\n        \"\\\\left\\\\Vert\",\n        \"\\\\right\\\\Vert\"\n      ],\n      [\n        \"\\\\left\\\\langle\",\n        \"\\\\right\\\\rangle\"\n      ],\n      [\n        \"\\\\left\\\\lvert\",\n        \"\\\\right\\\\rvert\"\n      ],\n      [\n        \"\\\\left\\\\lVert\",\n        \"\\\\right\\\\rVert\"\n      ],\n      [\n        \"\\\\bigl\\\\langle\",\n        \"\\\\bigr\\\\rangle\"\n      ],\n      [\n        \"\\\\bigl|\",\n        \"\\\\bigr|\"\n      ],\n      [\n        \"\\\\bigl\\\\vert\",\n        \"\\\\bigr\\\\vert\"\n      ],\n      [\n        \"\\\\bigl\\\\lvert\",\n        \"\\\\bigr\\\\rvert\"\n      ],\n      [\n        \"\\\\bigl\\\\|\",\n        \"\\\\bigr\\\\|\"\n      ],\n      [\n        \"\\\\bigl\\\\lVert\",\n        \"\\\\bigr\\\\rVert\"\n      ],\n      [\n        \"\\\\bigl\\\\Vert\",\n        \"\\\\bigr\\\\Vert\"\n      ],\n      [\n        \"\\\\Bigl\\\\langle\",\n        \"\\\\Bigr\\\\rangle\"\n      ],\n      [\n        \"\\\\Bigl|\",\n        \"\\\\Bigr|\"\n      ],\n      [\n        \"\\\\Bigl\\\\lvert\",\n        \"\\\\Bigr\\\\rvert\"\n      ],\n      [\n        \"\\\\Bigl\\\\vert\",\n        \"\\\\Bigr\\\\vert\"\n      ],\n      [\n        \"\\\\Bigl\\\\|\",\n        \"\\\\Bigr\\\\|\"\n      ],\n      [\n        \"\\\\Bigl\\\\lVert\",\n        \"\\\\Bigr\\\\rVert\"\n      ],\n      [\n        \"\\\\Bigl\\\\Vert\",\n        \"\\\\Bigr\\\\Vert\"\n      ],\n      [\n        \"\\\\biggl\\\\langle\",\n        \"\\\\biggr\\\\rangle\"\n      ],\n      [\n        \"\\\\biggl|\",\n        \"\\\\biggr|\"\n      ],\n      [\n        \"\\\\biggl\\\\lvert\",\n        \"\\\\biggr\\\\rvert\"\n      ],\n      [\n        \"\\\\biggl\\\\vert\",\n        \"\\\\biggr\\\\vert\"\n      ],\n      [\n        \"\\\\biggl\\\\|\",\n        \"\\\\biggr\\\\|\"\n      ],\n      [\n        \"\\\\biggl\\\\lVert\",\n        \"\\\\biggr\\\\rVert\"\n      ],\n      [\n        \"\\\\biggl\\\\Vert\",\n        \"\\\\biggr\\\\Vert\"\n      ],\n      [\n        \"\\\\Biggl\\\\langle\",\n        \"\\\\Biggr\\\\rangle\"\n      ],\n      [\n        \"\\\\Biggl|\",\n        \"\\\\Biggr|\"\n      ],\n      [\n        \"\\\\Biggl\\\\lvert\",\n        \"\\\\Biggr\\\\rvert\"\n      ],\n      [\n        \"\\\\Biggl\\\\vert\",\n        \"\\\\Biggr\\\\vert\"\n      ],\n      [\n        \"\\\\Biggl\\\\|\",\n        \"\\\\Biggr\\\\|\"\n      ],\n      [\n        \"\\\\Biggl\\\\lVert\",\n        \"\\\\Biggr\\\\rVert\"\n      ],\n      [\n        \"\\\\Biggl\\\\Vert\",\n        \"\\\\Biggr\\\\Vert\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"\\\\left(\",\n        \"\\\\right)\"\n      ],\n      [\n        \"\\\\left[\",\n        \"\\\\right]\"\n      ],\n      [\n        \"\\\\left\\\\{\",\n        \"\\\\right\\\\}\"\n      ],\n      [\n        \"\\\\bigl(\",\n        \"\\\\bigr)\"\n      ],\n      [\n        \"\\\\bigl[\",\n        \"\\\\bigr]\"\n      ],\n      [\n        \"\\\\bigl\\\\{\",\n        \"\\\\bigr\\\\}\"\n      ],\n      [\n        \"\\\\Bigl(\",\n        \"\\\\Bigr)\"\n      ],\n      [\n        \"\\\\Bigl[\",\n        \"\\\\Bigr]\"\n      ],\n      [\n        \"\\\\Bigl\\\\{\",\n        \"\\\\Bigr\\\\}\"\n      ],\n      [\n        \"\\\\biggl(\",\n        \"\\\\biggr)\"\n      ],\n      [\n        \"\\\\biggl[\",\n        \"\\\\biggr]\"\n      ],\n      [\n        \"\\\\biggl\\\\{\",\n        \"\\\\biggr\\\\}\"\n      ],\n      [\n        \"\\\\Biggl(\",\n        \"\\\\Biggr)\"\n      ],\n      [\n        \"\\\\Biggl[\",\n        \"\\\\Biggr]\"\n      ],\n      [\n        \"\\\\Biggl\\\\{\",\n        \"\\\\Biggr\\\\}\"\n      ],\n      [\n        \"\\\\(\",\n        \"\\\\)\"\n      ],\n      [\n        \"\\\\[\",\n        \"\\\\]\"\n      ],\n      [\n        \"\\\\{\",\n        \"\\\\}\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"`\",\n        \"'\"\n      ]\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"`\",\n        \"'\"\n      ],\n      [\n        \"$\",\n        \"$\"\n      ]\n    ],\n    indentationRules: {\n      increaseIndentPattern: \"\\\\\\\\begin{(?!document)([^}]*)}(?!.*\\\\\\\\end{\\\\1})\",\n      decreaseIndentPattern: \"^\\\\s*\\\\\\\\end{(?!document)\"\n    },\n    folding: {\n      markers: {\n        start: \"^\\\\s*%?\\\\s*(region|\\\\\\\\begingroup)\\\\b\",\n        end: \"^\\\\s*%?\\\\s*(endregion|\\\\\\\\endgroup)\\\\b\"\n      }\n    },\n    autoCloseBefore: \";:.,={}])\u003e\\\\` \\n\t$\",\n    wordPattern: {\n      pattern: \"(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}){1,}\",\n      flags: \"u\"\n    }\n  },\n  scss: {\n    comments: {\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ],\n      lineComment: \"//\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"[\",\n        close: \"]\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"(\",\n        close: \")\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*\\\\/\\\\*\\\\s*#region\\\\b\\\\s*(.*?)\\\\s*\\\\*\\\\/\",\n        end: \"^\\\\s*\\\\/\\\\*\\\\s*#endregion\\\\b.*\\\\*\\\\/\"\n      }\n    },\n    indentationRules: {\n      increaseIndentPattern: \"(^.*\\\\{[^}]*$)\",\n      decreaseIndentPattern: \"^\\\\s*\\\\}\"\n    },\n    wordPattern: \"(#?-?\\\\d*\\\\.\\\\d\\\\w*%?)|(::?[\\\\w-]*(?=[^,{;]*[,{]))|(([@$#.!])?[\\\\w-?]+%?|[@#!$.])\",\n    onEnterRules: [\n      {\n        beforeText: \"^[\\\\s]*///.*$\",\n        action: {\n          indent: \"none\",\n          appendText: \"/// \"\n        }\n      }\n    ]\n  },\n  rust: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ]\n    ],\n    indentationRules: {\n      increaseIndentPattern: `^.*\\\\{[^}\"']*$|^.*\\\\([^\\\\)\"']*$`,\n      decreaseIndentPattern: \"^\\\\s*(\\\\s*\\\\/[*].*[*]\\\\/\\\\s*)*[})]\"\n    },\n    folding: {\n      markers: {\n        start: \"^\\\\s*//\\\\s*#?region\\\\b\",\n        end: \"^\\\\s*//\\\\s*#?endregion\\\\b\"\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  pug: {\n    comments: {\n      lineComment: \"//-\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        '\"',\n        '\"'\n      ]\n    ],\n    folding: {\n      offSide: true\n    }\n  },\n  fsharp: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"(*\",\n        \"*)\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    folding: {\n      offSide: true,\n      markers: {\n        start: \"^\\\\s*//\\\\s*#region\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#region(.*)\\\\*\\\\)\",\n        end: \"^\\\\s*//\\\\s*#endregion\\\\b|^\\\\s*\\\\(\\\\*\\\\s*#endregion\\\\s*\\\\*\\\\)\"\n      }\n    }\n  },\n  r: {\n    comments: {\n      lineComment: \"#\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"%\",\n        close: \"%\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ]\n  },\n  java: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"/**\",\n        close: \" */\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*//\\\\s*(?:(?:#?region\\\\b)|(?:\u003ceditor-fold\\\\b))\",\n        end: \"^\\\\s*//\\\\s*(?:(?:#?endregion\\\\b)|(?:\u003c/editor-fold\u003e))\"\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"^\\\\s*/\\\\*\\\\*(?!/)([^\\\\*]|\\\\*(?!/))*$\"\n        },\n        afterText: {\n          pattern: \"^\\\\s*\\\\*/$\"\n        },\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \" * \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^\\\\s*/\\\\*\\\\*(?!/)([^\\\\*]|\\\\*(?!/))*$\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \" * \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*[ ]\\\\*([ ]([^\\\\*]|\\\\*(?!/))*)?$\"\n        },\n        previousLineText: {\n          pattern: \"(?=^(\\\\s*(/\\\\*\\\\*|\\\\*)).*)(?=(?!(\\\\s*\\\\*/)))\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"* \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*[ ]\\\\*/\\\\s*$\"\n        },\n        action: {\n          indent: \"none\",\n          removeText: 1\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*[ ]\\\\*[^/]*\\\\*/\\\\s*$\"\n        },\n        action: {\n          indent: \"none\",\n          removeText: 1\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^\\\\s*(\\\\bcase\\\\s.+:|\\\\bdefault:)$\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*(\\\\bcase\\\\b|\\\\bdefault\\\\b))\"\n        },\n        action: {\n          indent: \"indent\"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  diff: {\n    comments: {\n      lineComment: \"#\",\n      blockComment: [\n        \"#\",\n        \" \"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ]\n  },\n  html: {\n    comments: {\n      blockComment: [\n        \"\u003c!--\",\n        \"--\u003e\"\n      ]\n    },\n    brackets: [\n      [\n        \"\u003c!--\",\n        \"--\u003e\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"'\",\n        close: \"'\"\n      },\n      {\n        open: '\"',\n        close: '\"'\n      },\n      {\n        open: \"\u003c!--\",\n        close: \"--\u003e\",\n        notIn: [\n          \"comment\",\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      {\n        open: \"'\",\n        close: \"'\"\n      },\n      {\n        open: '\"',\n        close: '\"'\n      },\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"\u003c\",\n        close: \"\u003e\"\n      }\n    ],\n    colorizedBracketPairs: [],\n    folding: {\n      markers: {\n        start: \"^\\\\s*\u003c!--\\\\s*#region\\\\b.*--\u003e\",\n        end: \"^\\\\s*\u003c!--\\\\s*#endregion\\\\b.*--\u003e\"\n      }\n    },\n    wordPattern: \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\\\\`\\\\~\\\\!\\\\@\\\\$\\\\^\\\\\u0026\\\\*\\\\(\\\\)\\\\=\\\\+\\\\[\\\\{\\\\]\\\\}\\\\\\\\\\\\|\\\\;\\\\:\\\\'\\\\\\\"\\\\,\\\\.\\\\\u003c\\\\\u003e\\\\/\\\\s]+)\",\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: `\u003c(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\\\w][_:\\\\w-.\\\\d]*)(?:(?:[^'\"/\u003e]|\"[^\"]*\"|'[^']*')*?(?!\\\\/)\u003e)[^\u003c]*$`,\n          flags: \"i\"\n        },\n        afterText: {\n          pattern: \"^\u003c\\\\/([_:\\\\w][_:\\\\w-.\\\\d]*)\\\\s*\u003e\",\n          flags: \"i\"\n        },\n        action: {\n          indent: \"indentOutdent\"\n        }\n      },\n      {\n        beforeText: {\n          pattern: `\u003c(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\\\w][_:\\\\w-.\\\\d]*)(?:(?:[^'\"/\u003e]|\"[^\"]*\"|'[^']*')*?(?!\\\\/)\u003e)[^\u003c]*$`,\n          flags: \"i\"\n        },\n        action: {\n          indent: \"indent\"\n        }\n      }\n    ],\n    indentationRules: {\n      increaseIndentPattern: `\u003c(?!\\\\?|(?:area|base|br|col|frame|hr|html|img|input|keygen|link|menuitem|meta|param|source|track|wbr)\\\\b|[^\u003e]*\\\\/\u003e)([-_\\\\.A-Za-z0-9]+)(?=\\\\s|\u003e)\\\\b[^\u003e]*\u003e(?!.*\u003c\\\\/\\\\1\u003e)|\u003c!--(?!.*--\u003e)|\\\\{[^}\"']*$`,\n      decreaseIndentPattern: \"^\\\\s*(\u003c\\\\/(?!html)[-_\\\\.A-Za-z0-9]+\\\\b[^\u003e]*\u003e|--\u003e|\\\\})\"\n    }\n  },\n  php: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"[\",\n        close: \"]\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"(\",\n        close: \")\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"/**\",\n        close: \" */\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ],\n    indentationRules: {\n      increaseIndentPattern: \"({(?!.*}).*|\\\\(|\\\\[|((else(\\\\s)?)?if|else|for(each)?|while|switch|case).*:)\\\\s*((/[/*].*|)?$|\\\\?\u003e)\",\n      decreaseIndentPattern: \"^(.*\\\\*\\\\/)?\\\\s*((\\\\})|(\\\\)+[;,])|(\\\\]\\\\)*[;,])|\\\\b(else:)|\\\\b((end(if|for(each)?|while|switch));))\",\n      unIndentedLinePattern: {\n        pattern: \"^(\\\\t|[ ])*[ ]\\\\*[^/]*\\\\*/\\\\s*$|^(\\\\t|[ ])*[ ]\\\\*/\\\\s*$|^(\\\\t|[ ])*\\\\*([ ]([^\\\\*]|\\\\*(?!/))*)?$\"\n      },\n      indentNextLinePattern: {\n        pattern: \"^\\\\s*(((if|else ?if|while|for|foreach)\\\\s*\\\\(.*\\\\)\\\\s*)|else\\\\s*)$\"\n      }\n    },\n    folding: {\n      markers: {\n        start: \"^\\\\s*(#|//)region\\\\b\",\n        end: \"^\\\\s*(#|//)endregion\\\\b\"\n      }\n    },\n    wordPattern: \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\\\\-\\\\`\\\\~\\\\!\\\\@\\\\#\\\\%\\\\^\\\\\u0026\\\\*\\\\(\\\\)\\\\=\\\\+\\\\[\\\\{\\\\]\\\\}\\\\\\\\\\\\|\\\\;\\\\:\\\\'\\\\\\\"\\\\,\\\\.\\\\\u003c\\\\\u003e\\\\/\\\\?\\\\s]+)\",\n    onEnterRules: [\n      {\n        beforeText: \"^\\\\s*\\\\/\\\\*\\\\*(?!\\\\/)([^\\\\*]|\\\\*(?!\\\\/))*$\",\n        afterText: \"^\\\\s*\\\\*\\\\/$\",\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \" * \"\n        }\n      },\n      {\n        beforeText: \"^\\\\s*\\\\/\\\\*\\\\*(?!\\\\/)([^\\\\*]|\\\\*(?!\\\\/))*$\",\n        action: {\n          indent: \"none\",\n          appendText: \" * \"\n        }\n      },\n      {\n        beforeText: \"^(\\\\t|(\\\\ \\\\ ))*\\\\ \\\\*(\\\\ ([^\\\\*]|\\\\*(?!\\\\/))*)?$\",\n        action: {\n          indent: \"none\",\n          appendText: \"* \"\n        }\n      },\n      {\n        beforeText: \"^(\\\\t|(\\\\ \\\\ ))*\\\\ \\\\*\\\\/\\\\s*$\",\n        action: {\n          indent: \"none\",\n          removeText: 1\n        }\n      },\n      {\n        beforeText: \"^(\\\\t|(\\\\ \\\\ ))*\\\\ \\\\*[^/]*\\\\*\\\\/\\\\s*$\",\n        action: {\n          indent: \"none\",\n          removeText: 1\n        }\n      },\n      {\n        previousLineText: \"^\\\\s*(((else ?)?if|for(each)?|while)\\\\s*\\\\(.*\\\\)\\\\s*|else\\\\s*)$\",\n        beforeText: \"^\\\\s+([^{i\\\\s]|i(?!f\\\\b))\",\n        action: {\n          indent: \"outdent\"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  lua: {\n    comments: {\n      lineComment: \"--\",\n      blockComment: [\n        \"--[[\",\n        \"]]\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    indentationRules: {\n      increaseIndentPattern: \"^((?!(\\\\-\\\\-)).)*((\\\\b(else|function|then|do|repeat)\\\\b((?!\\\\b(end|until)\\\\b).)*)|(\\\\{\\\\s*))$\",\n      decreaseIndentPattern: \"^\\\\s*((\\\\b(elseif|else|end|until)\\\\b)|(\\\\})|(\\\\)))\"\n    }\n  },\n  vb: {\n    comments: {\n      lineComment: \"'\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*#Region\\\\b\",\n        end: \"^\\\\s*#End Region\\\\b\"\n      }\n    }\n  },\n  powershell: {\n    comments: {\n      lineComment: \"#\",\n      blockComment: [\n        \"\u003c#\",\n        \"#\u003e\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: \"@'\",\n        close: \"\\n'@\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '@\"',\n        close: '\\n\"@',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      [\n        \"\u003c#\",\n        \"#\u003e\"\n      ]\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*#[rR]egion\\\\b\",\n        end: \"^\\\\s*#[eE]nd[rR]egion\\\\b\"\n      }\n    }\n  },\n  typescript: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"${\",\n        \"}\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"/**\",\n        close: \" */\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"`\",\n        \"`\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ]\n    ],\n    colorizedBracketPairs: [\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ]\n    ],\n    autoCloseBefore: \";:.,=}])\u003e` \\n\t\",\n    folding: {\n      markers: {\n        start: \"^\\\\s*//\\\\s*#?region\\\\b\",\n        end: \"^\\\\s*//\\\\s*#?endregion\\\\b\"\n      }\n    },\n    wordPattern: {\n      pattern: \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\\\\`\\\\@\\\\~\\\\!\\\\%\\\\^\\\\\u0026\\\\*\\\\(\\\\)\\\\-\\\\=\\\\+\\\\[\\\\{\\\\]\\\\}\\\\\\\\\\\\|\\\\;\\\\:\\\\'\\\\\\\"\\\\,\\\\.\\\\\u003c\\\\\u003e/\\\\?\\\\s]+)\"\n    },\n    indentationRules: {\n      decreaseIndentPattern: {\n        pattern: \"^\\\\s*[\\\\}\\\\]\\\\)].*$\"\n      },\n      increaseIndentPattern: {\n        pattern: \"^.*(\\\\{[^}]*|\\\\([^)]*|\\\\[[^\\\\]]*)$\"\n      },\n      unIndentedLinePattern: {\n        pattern: \"^(\\\\t|[ ])*[ ]\\\\*[^/]*\\\\*/\\\\s*$|^(\\\\t|[ ])*[ ]\\\\*/\\\\s*$|^(\\\\t|[ ])*\\\\*([ ]([^\\\\*]|\\\\*(?!/))*)?$\"\n      },\n      indentNextLinePattern: {\n        pattern: \"^((.*=\u003e\\\\s*)|((.*[^\\\\w]+|\\\\s*)((if|while|for)\\\\s*\\\\(.*\\\\)\\\\s*|else\\\\s*)))$\"\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"^\\\\s*/\\\\*\\\\*(?!/)([^\\\\*]|\\\\*(?!/))*$\"\n        },\n        afterText: {\n          pattern: \"^\\\\s*\\\\*/$\"\n        },\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \" * \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^\\\\s*/\\\\*\\\\*(?!/)([^\\\\*]|\\\\*(?!/))*$\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \" * \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*\\\\*([ ]([^\\\\*]|\\\\*(?!/))*)?$\"\n        },\n        previousLineText: {\n          pattern: \"(?=^(\\\\s*(/\\\\*\\\\*|\\\\*)).*)(?=(?!(\\\\s*\\\\*/)))\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"* \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*[ ]\\\\*/\\\\s*$\"\n        },\n        action: {\n          indent: \"none\",\n          removeText: 1\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*[ ]\\\\*[^/]*\\\\*/\\\\s*$\"\n        },\n        action: {\n          indent: \"none\",\n          removeText: 1\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^\\\\s*(\\\\bcase\\\\s.+:|\\\\bdefault:)$\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*(\\\\bcase\\\\b|\\\\bdefault\\\\b))\"\n        },\n        action: {\n          indent: \"indent\"\n        }\n      },\n      {\n        previousLineText: \"^\\\\s*(((else ?)?if|for|while)\\\\s*\\\\(.*\\\\)\\\\s*|else\\\\s*)$\",\n        beforeText: \"^\\\\s+([^{i\\\\s]|i(?!f\\\\b))\",\n        action: {\n          indent: \"outdent\"\n        }\n      },\n      {\n        beforeText: \"^.*\\\\([^\\\\)]*$\",\n        afterText: \"^\\\\s*\\\\).*$\",\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \"\t\"\n        }\n      },\n      {\n        beforeText: \"^.*\\\\{[^\\\\}]*$\",\n        afterText: \"^\\\\s*\\\\}.*$\",\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \"\t\"\n        }\n      },\n      {\n        beforeText: \"^.*\\\\[[^\\\\]]*$\",\n        afterText: \"^\\\\s*\\\\].*$\",\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \"\t\"\n        }\n      },\n      {\n        beforeText: \"(?\u003c!\\\\\\\\|\\\\w:)//\\\\s*\\\\S\",\n        afterText: \"^(?!\\\\s*$).+\",\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  json: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"[\",\n        close: \"]\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"(\",\n        close: \")\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    indentationRules: {\n      increaseIndentPattern: '({+(?=((\\\\\\\\.|[^\"\\\\\\\\])*\"(\\\\\\\\.|[^\"\\\\\\\\])*\")*[^\"}]*)$)|(\\\\[+(?=((\\\\\\\\.|[^\"\\\\\\\\])*\"(\\\\\\\\.|[^\"\\\\\\\\])*\")*[^\"\\\\]]*)$)',\n      decreaseIndentPattern: \"^\\\\s*[}\\\\]],?\\\\s*$\"\n    },\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  handlebars: {\n    comments: {\n      blockComment: [\n        \"{{!--\",\n        \"--}}\"\n      ]\n    },\n    brackets: [\n      [\n        \"\u003c!--\",\n        \"--\u003e\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ],\n      [\n        \"{{\",\n        \"}}\"\n      ],\n      [\n        \"{{{\",\n        \"}}}\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"'\",\n        close: \"'\"\n      },\n      {\n        open: '\"',\n        close: '\"'\n      }\n    ],\n    surroundingPairs: [\n      {\n        open: \"'\",\n        close: \"'\"\n      },\n      {\n        open: '\"',\n        close: '\"'\n      },\n      {\n        open: \"\u003c\",\n        close: \"\u003e\"\n      },\n      {\n        open: \"{\",\n        close: \"}\"\n      }\n    ],\n    wordPattern: \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\\\\`\\\\~\\\\!\\\\@\\\\$\\\\^\\\\\u0026\\\\*\\\\(\\\\)\\\\=\\\\+\\\\[\\\\{\\\\]\\\\}\\\\\\\\\\\\|\\\\;\\\\:\\\\'\\\\\\\"\\\\,\\\\.\\\\\u003c\\\\\u003e\\\\/\\\\s]+)\",\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"\u003c(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\\\w][_:\\\\w-.\\\\d]*)([^/\u003e]*(?!\\\\/)\u003e)[^\u003c]*$\",\n          flags: \"i\"\n        },\n        afterText: {\n          pattern: \"^\u003c\\\\/([_:\\\\w][_:\\\\w-.\\\\d]*)\\\\s*\u003e\",\n          flags: \"i\"\n        },\n        action: {\n          indent: \"indentOutdent\"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"\u003c(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))(\\\\w[\\\\w\\\\d]*)([^/\u003e]*(?!\\\\/)\u003e)[^\u003c]*$\",\n          flags: \"i\"\n        },\n        action: {\n          indent: \"indent\"\n        }\n      }\n    ]\n  },\n  cpp: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"/*\",\n        close: \"*/\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"/**\",\n        close: \" */\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ]\n    ],\n    wordPattern: \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\\\\`\\\\~\\\\!\\\\@\\\\#\\\\%\\\\^\\\\\u0026\\\\*\\\\(\\\\)\\\\-\\\\=\\\\+\\\\[\\\\{\\\\]\\\\}\\\\\\\\\\\\|\\\\;\\\\:\\\\'\\\\\\\"\\\\,\\\\.\\\\\u003c\\\\\u003e\\\\/\\\\?\\\\s]+)\",\n    folding: {\n      markers: {\n        start: \"^\\\\s*#pragma\\\\s+region\\\\b\",\n        end: \"^\\\\s*#pragma\\\\s+endregion\\\\b\"\n      }\n    },\n    indentationRules: {\n      decreaseIndentPattern: {\n        pattern: \"^\\\\s*[\\\\}\\\\]\\\\)].*$\"\n      },\n      increaseIndentPattern: {\n        pattern: \"^.*(\\\\{[^}]*|\\\\([^)]*|\\\\[[^\\\\]]*)$\"\n      }\n    },\n    onEnterRules: [\n      {\n        previousLineText: \"^\\\\s*(((else ?)?if|for|while)\\\\s*\\\\(.*\\\\)\\\\s*|else\\\\s*)$\",\n        beforeText: \"^\\\\s+([^{i\\\\s]|i(?!f\\\\b))\",\n        action: {\n          indent: \"outdent\"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  swift: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ],\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  make: {\n    comments: {\n      lineComment: {\n        comment: \"#\",\n        noIndent: true\n      }\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ]\n  },\n  shellscript: {\n    comments: {\n      lineComment: \"#\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*#\\\\s*#?region\\\\b.*\",\n        end: \"^\\\\s*#\\\\s*#?endregion\\\\b.*\"\n      }\n    }\n  },\n  markdown: {\n    comments: {\n      blockComment: [\n        \"\u003c!--\",\n        \"--\u003e\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    colorizedBracketPairs: [],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"\u003c\",\n        close: \"\u003e\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ],\n      [\n        \"_\",\n        \"_\"\n      ],\n      [\n        \"*\",\n        \"*\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ],\n      [\n        \"~\",\n        \"~\"\n      ],\n      [\n        \"$\",\n        \"$\"\n      ]\n    ],\n    folding: {\n      offSide: true,\n      markers: {\n        start: \"^\\\\s*\u003c!--\\\\s*#?region\\\\b.*--\u003e\",\n        end: \"^\\\\s*\u003c!--\\\\s*#?endregion\\\\b.*--\u003e\"\n      }\n    },\n    wordPattern: {\n      pattern: \"(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark})(((\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark})|[_])?(\\\\p{Alphabetic}|\\\\p{Number}|\\\\p{Nonspacing_Mark}))*\",\n      flags: \"ug\"\n    }\n  },\n  yaml: {\n    comments: {\n      lineComment: \"#\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    folding: {\n      offSide: true,\n      markers: {\n        start: \"^\\\\s*#\\\\s*region\\\\b\",\n        end: \"^\\\\s*#\\\\s*endregion\\\\b\"\n      }\n    },\n    indentationRules: {\n      increaseIndentPattern: `^\\\\s*.*(:|-) ?(\u0026amp;\\\\w+)?(\\\\{[^}\"']*|\\\\([^)\"']*)?$`,\n      decreaseIndentPattern: \"^\\\\s+\\\\}$\"\n    }\n  },\n  csharp: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        '\"',\n        '\"'\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*#region\\\\b\",\n        end: \"^\\\\s*#endregion\\\\b\"\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"[^/]//[^/].*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^\\\\s*///\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"/// \"\n        }\n      }\n    ]\n  },\n  julia: {\n    comments: {\n      lineComment: \"#\",\n      blockComment: [\n        \"#=\",\n        \"=#\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*#region\",\n        end: \"^\\\\s*#endregion\"\n      }\n    },\n    indentationRules: {\n      increaseIndentPattern: \"^(\\\\s*|.*=\\\\s*|.*@\\\\w*\\\\s*)[\\\\w\\\\s]*(?:[\\\"'`][^\\\"'`]*[\\\"'`])*[\\\\w\\\\s]*\\\\b(if|while|for|function|macro|(mutable\\\\s+)?struct|abstract\\\\s+type|primitive\\\\s+type|let|quote|try|begin|.*\\\\)\\\\s*do|else|elseif|catch|finally)\\\\b(?!(?:.*\\\\bend\\\\b[^\\\\]]*)|(?:[^\\\\[]*\\\\].*)$).*$\",\n      decreaseIndentPattern: \"^\\\\s*(end|else|elseif|catch|finally)\\\\b.*$\"\n    }\n  },\n  bat: {\n    comments: {\n      lineComment: \"@REM\"\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"%\",\n        \"%\"\n      ],\n      [\n        '\"',\n        '\"'\n      ]\n    ],\n    folding: {\n      markers: {\n        start: \"^\\\\s*(::|REM|@REM)\\\\s*#region\",\n        end: \"^\\\\s*(::|REM|@REM)\\\\s*#endregion\"\n      }\n    }\n  },\n  groovy: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  coffeescript: {\n    comments: {\n      lineComment: \"#\",\n      blockComment: [\n        \"###\",\n        \"###\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \" \",\n        \" \"\n      ]\n    ],\n    folding: {\n      offSide: true,\n      markers: {\n        start: \"^\\\\s*#region\\\\b\",\n        end: \"^\\\\s*#endregion\\\\b\"\n      }\n    }\n  },\n  javascript: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"${\",\n        \"}\"\n      ],\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"{\",\n        close: \"}\"\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      },\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"/**\",\n        close: \" */\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"`\",\n        \"`\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ]\n    ],\n    autoCloseBefore: \";:.,=}])\u003e` \\n\t\",\n    folding: {\n      markers: {\n        start: \"^\\\\s*//\\\\s*#?region\\\\b\",\n        end: \"^\\\\s*//\\\\s*#?endregion\\\\b\"\n      }\n    },\n    wordPattern: {\n      pattern: \"(-?\\\\d*\\\\.\\\\d\\\\w*)|([^\\\\`\\\\~\\\\@\\\\!\\\\%\\\\^\\\\\u0026\\\\*\\\\(\\\\)\\\\-\\\\=\\\\+\\\\[\\\\{\\\\]\\\\}\\\\\\\\\\\\|\\\\;\\\\:\\\\'\\\\\\\"\\\\,\\\\.\\\\\u003c\\\\\u003e/\\\\?\\\\s]+)\"\n    },\n    indentationRules: {\n      decreaseIndentPattern: {\n        pattern: \"^\\\\s*[\\\\}\\\\]\\\\)].*$\"\n      },\n      increaseIndentPattern: {\n        pattern: \"^.*(\\\\{[^}]*|\\\\([^)]*|\\\\[[^\\\\]]*)$\"\n      },\n      unIndentedLinePattern: {\n        pattern: \"^(\\\\t|[ ])*[ ]\\\\*[^/]*\\\\*/\\\\s*$|^(\\\\t|[ ])*[ ]\\\\*/\\\\s*$|^(\\\\t|[ ])*[ ]\\\\*([ ]([^\\\\*]|\\\\*(?!/))*)?$\"\n      },\n      indentNextLinePattern: {\n        pattern: \"^((.*=\u003e\\\\s*)|((.*[^\\\\w]+|\\\\s*)((if|while|for)\\\\s*\\\\(.*\\\\)\\\\s*|else\\\\s*)))$\"\n      }\n    },\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"^\\\\s*/\\\\*\\\\*(?!/)([^\\\\*]|\\\\*(?!/))*$\"\n        },\n        afterText: {\n          pattern: \"^\\\\s*\\\\*/$\"\n        },\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \" * \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^\\\\s*/\\\\*\\\\*(?!/)([^\\\\*]|\\\\*(?!/))*$\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \" * \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*[ ]\\\\*([ ]([^\\\\*]|\\\\*(?!/))*)?$\"\n        },\n        previousLineText: {\n          pattern: \"(?=^(\\\\s*(/\\\\*\\\\*|\\\\*)).*)(?=(?!(\\\\s*\\\\*/)))\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"* \"\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*[ ]\\\\*/\\\\s*$\"\n        },\n        action: {\n          indent: \"none\",\n          removeText: 1\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^(\\\\t|[ ])*[ ]\\\\*[^/]*\\\\*/\\\\s*$\"\n        },\n        action: {\n          indent: \"none\",\n          removeText: 1\n        }\n      },\n      {\n        beforeText: {\n          pattern: \"^\\\\s*(\\\\bcase\\\\s.+:|\\\\bdefault:)$\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*(\\\\bcase\\\\b|\\\\bdefault\\\\b))\"\n        },\n        action: {\n          indent: \"indent\"\n        }\n      },\n      {\n        previousLineText: \"^\\\\s*(((else ?)?if|for|while)\\\\s*\\\\(.*\\\\)\\\\s*|else\\\\s*)$\",\n        beforeText: \"^\\\\s+([^{i\\\\s]|i(?!f\\\\b))\",\n        action: {\n          indent: \"outdent\"\n        }\n      },\n      {\n        beforeText: \"^.*\\\\([^\\\\)]*$\",\n        afterText: \"^\\\\s*\\\\).*$\",\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \"\t\"\n        }\n      },\n      {\n        beforeText: \"^.*\\\\{[^\\\\}]*$\",\n        afterText: \"^\\\\s*\\\\}.*$\",\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \"\t\"\n        }\n      },\n      {\n        beforeText: \"^.*\\\\[[^\\\\]]*$\",\n        afterText: \"^\\\\s*\\\\].*$\",\n        action: {\n          indent: \"indentOutdent\",\n          appendText: \"\t\"\n        }\n      },\n      {\n        beforeText: \"(?\u003c!\\\\\\\\|\\\\w:)//\\\\s*\\\\S\",\n        afterText: \"^(?!\\\\s*$).+\",\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  hlsl: {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ]\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ]\n    ]\n  },\n  restructuredtext: {\n    comments: {\n      lineComment: \"..\"\n    },\n    brackets: [\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ]\n    ],\n    surroundingPairs: [\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        \"\u003c\",\n        \"\u003e\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ],\n      [\n        \"*\",\n        \"*\"\n      ],\n      [\n        \"|\",\n        \"|\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ]\n    ],\n    autoClosingPairs: [\n      {\n        open: \"(\",\n        close: \")\"\n      },\n      {\n        open: \"\u003c\",\n        close: \"\u003e\"\n      },\n      {\n        open: \"'\",\n        close: \"'\"\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: '\"',\n        close: '\"'\n      },\n      {\n        open: \"[\",\n        close: \"]\"\n      }\n    ],\n    autoCloseBefore: \":})\u003e`\\\\n \",\n    onEnterRules: [\n      {\n        beforeText: \"^\\\\s*\\\\.\\\\. *$|(?\u003c!:)::(\\\\s|$)\",\n        action: {\n          indent: \"indent\"\n        }\n      }\n    ],\n    wordPattern: \"[\\\\w-]*\\\\w[\\\\w-]*\"\n  },\n  \"objective-c\": {\n    comments: {\n      lineComment: \"//\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ]\n    ],\n    onEnterRules: [\n      {\n        beforeText: {\n          pattern: \"//.*\"\n        },\n        afterText: {\n          pattern: \"^(?!\\\\s*$).+\"\n        },\n        action: {\n          indent: \"none\",\n          appendText: \"// \"\n        }\n      }\n    ]\n  },\n  ruby: {\n    comments: {\n      lineComment: \"#\",\n      blockComment: [\n        \"=begin\",\n        \"=end\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"`\",\n        close: \"`\",\n        notIn: [\n          \"string\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ],\n    indentationRules: {\n      increaseIndentPattern: `^\\\\s*((begin|class|(private|protected)\\\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|in|while|case)|([^#]*\\\\sdo\\\\b)|([^#]*=\\\\s*(case|if|unless)))\\\\b([^#\\\\{;]|(\"|'|/).*\\\\4)*(#.*)?$`,\n      decreaseIndentPattern: \"^\\\\s*([}\\\\]]([,)]?\\\\s*(#|$)|\\\\.[a-zA-Z_]\\\\w*\\\\b)|(end|rescue|ensure|else|elsif)\\\\b|(in|when)\\\\s)\"\n    }\n  },\n  sql: {\n    comments: {\n      lineComment: \"--\",\n      blockComment: [\n        \"/*\",\n        \"*/\"\n      ]\n    },\n    brackets: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ]\n    ],\n    autoClosingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      {\n        open: '\"',\n        close: '\"',\n        notIn: [\n          \"string\"\n        ]\n      },\n      {\n        open: \"N'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      },\n      {\n        open: \"'\",\n        close: \"'\",\n        notIn: [\n          \"string\",\n          \"comment\"\n        ]\n      }\n    ],\n    surroundingPairs: [\n      [\n        \"{\",\n        \"}\"\n      ],\n      [\n        \"[\",\n        \"]\"\n      ],\n      [\n        \"(\",\n        \")\"\n      ],\n      [\n        '\"',\n        '\"'\n      ],\n      [\n        \"'\",\n        \"'\"\n      ],\n      [\n        \"`\",\n        \"`\"\n      ]\n    ],\n    folding: {\n      offSide: true,\n      markers: {\n        start: \"^\\\\s*--\\\\s*#region\\\\b\",\n        end: \"^\\\\s*--\\\\s*#endregion\\\\b\"\n      }\n    }\n  }\n};\n\n// src/editor-core.ts\nvar defaultEditorOptions = {\n  automaticLayout: true,\n  minimap: { enabled: false },\n  stickyScroll: { enabled: false },\n  scrollBeyondLastLine: false,\n  matchBrackets: \"never\",\n  theme: \"vitesse-dark\"\n};\nvar { create: create3, createModel: createModel2, getModel: getModel2 } = editor;\nObject.assign(editor, {\n  create: (container, options2) =\u003e {\n    return create3(\n      container,\n      {\n        ...defaultEditorOptions,\n        ...options2\n      }\n    );\n  },\n  createModel: (value, language2, uri) =\u003e {\n    uri = normalizeUri(uri);\n    if (!language2 \u0026\u0026 uri) {\n      language2 = MonacoEnvironment.getLanguageIdFromUri?.(uri);\n    }\n    if (!uri) {\n      const extname3 = MonacoEnvironment.getExtnameFromLanguageId?.(language2) ?? \"txt\";\n      const uuid = Math.round((Date.now() + Math.random()) * 1e3).toString(36);\n      uri = \"file:///.inmemory/\" + uuid + \".\" + extname3;\n    }\n    return createModel2(value, language2, uri);\n  },\n  getModel: (uri) =\u003e {\n    return getModel2(normalizeUri(uri));\n  }\n});\nvar InputBoxValidationSeverity = /* @__PURE__ */ ((InputBoxValidationSeverity2) =\u003e {\n  InputBoxValidationSeverity2[InputBoxValidationSeverity2[\"Info\"] = 1] = \"Info\";\n  InputBoxValidationSeverity2[InputBoxValidationSeverity2[\"Warning\"] = 2] = \"Warning\";\n  InputBoxValidationSeverity2[InputBoxValidationSeverity2[\"Error\"] = 3] = \"Error\";\n  return InputBoxValidationSeverity2;\n})(InputBoxValidationSeverity || {});\nvar QuickPickItemKind = /* @__PURE__ */ ((QuickPickItemKind2) =\u003e {\n  QuickPickItemKind2[QuickPickItemKind2[\"Separator\"] = -1] = \"Separator\";\n  QuickPickItemKind2[QuickPickItemKind2[\"Default\"] = 0] = \"Default\";\n  return QuickPickItemKind2;\n})(QuickPickItemKind || {});\nfunction showInputBox(options2 = {}) {\n  const { placeHolder, title, value, password, ignoreFocusOut, validateInput } = options2;\n  const quickInputService = StandaloneServices.get(IQuickInputService);\n  const box = quickInputService.createInputBox();\n  const validateValue = validateInput ? (value2) =\u003e {\n    const p = validateInput(value2);\n    if (p instanceof Promise) {\n      box.busy = true;\n      return p.then((v) =\u003e {\n        box.busy = false;\n        return v;\n      });\n    }\n    return p;\n  } : void 0;\n  if (title) {\n    box.title = title;\n  }\n  if (value) {\n    box.value = value;\n  }\n  if (placeHolder) {\n    box.placeholder = placeHolder;\n  }\n  if (password) {\n    box.password = true;\n  }\n  if (ignoreFocusOut) {\n    box.ignoreFocusOut = true;\n  }\n  if (validateInput) {\n    box.onDidChangeValue(async (value2) =\u003e {\n      const validation = value2 ? await validateValue(value2) : \"\";\n      if (validation) {\n        if (typeof validation === \"string\") {\n          box.validationMessage = validation;\n          box.severity = 3;\n        } else {\n          box.validationMessage = validation.message;\n          box.severity = validation.severity;\n        }\n      } else {\n        box.validationMessage = \"\";\n        box.severity = 0;\n      }\n    });\n  }\n  box.show();\n  return new Promise((resolve3) =\u003e {\n    box.onDidAccept(async () =\u003e {\n      if (!validateInput || !await validateValue(box.value)) {\n        resolve3(box.value);\n        box.dispose();\n      }\n    });\n  });\n}\nfunction showQuickPick(items, options2 = {}) {\n  const { placeHolder, title, ignoreFocusOut, matchOnDescription, matchOnDetail, canPickMany, onDidSelectItem } = options2;\n  const quickInputService = StandaloneServices.get(IQuickInputService);\n  const pick = quickInputService.createQuickPick();\n  if (title) {\n    pick.title = title;\n  }\n  if (placeHolder) {\n    pick.placeholder = placeHolder;\n  }\n  if (ignoreFocusOut) {\n    pick.ignoreFocusOut = true;\n  }\n  if (matchOnDescription) {\n    pick.matchOnDescription = true;\n  }\n  if (matchOnDetail) {\n    pick.matchOnDetail = true;\n  }\n  if (canPickMany) {\n    pick.canSelectMany = true;\n  }\n  if (items instanceof Promise) {\n    pick.busy = true;\n    items.then((items2) =\u003e {\n      pick.items = items2.map(convertPickItem);\n      pick.busy = false;\n    });\n  } else if (Array.isArray(items)) {\n    pick.items = items.map(convertPickItem);\n  }\n  if (onDidSelectItem) {\n    pick.onDidChangeActive((v) =\u003e {\n      v.forEach((item) =\u003e {\n        onDidSelectItem(convertPickItem(item?._kind_string ? item.label : item));\n      });\n    });\n  }\n  pick.show();\n  return new Promise((resolve3) =\u003e {\n    pick.onDidAccept(() =\u003e {\n      if (canPickMany) {\n        resolve3(pick.selectedItems.map((item) =\u003e item._kind_string ? item.label : item));\n      } else {\n        let selectedItem = pick.selectedItems[0];\n        resolve3(selectedItem?._kind_string ? selectedItem.label : selectedItem);\n      }\n      pick.dispose();\n    });\n  });\n}\nvar languageConfigurationAliases = {\n  \"jsx\": \"javascript\",\n  \"tsx\": \"typescript\"\n};\nfunction convertVscodeLanguageConfiguration(config) {\n  const { indentationRules, folding, wordPattern, onEnterRules, surroundingPairs, autoClosingPairs } = config;\n  if (folding?.markers) {\n    toRegexp(folding.markers, \"start\", \"end\");\n  }\n  if (wordPattern) {\n    toRegexp(config, \"wordPattern\");\n  }\n  if (indentationRules) {\n    toRegexp(\n      indentationRules,\n      \"increaseIndentPattern\",\n      \"decreaseIndentPattern\",\n      \"indentNextLinePattern\",\n      \"unIndentedLinePattern\"\n    );\n  }\n  if (onEnterRules) {\n    for (const rule of onEnterRules) {\n      toRegexp(rule, \"beforeText\", \"afterText\", \"previousLineText\");\n      if (typeof rule.action?.indent === \"string\") {\n        rule.action.indentAction = [\"none\", \"indent\", \"indentOutdent\", \"outdent\"].indexOf(rule.action.indent);\n        delete rule.action.indent;\n      }\n    }\n  }\n  if (autoClosingPairs) {\n    config.autoClosingPairs = autoClosingPairs.map((v) =\u003e Array.isArray(v) ? { open: v[0], close: v[1] } : v);\n  }\n  if (surroundingPairs) {\n    config.surroundingPairs = surroundingPairs.map((v) =\u003e Array.isArray(v) ? { open: v[0], close: v[1] } : v);\n  }\n  return config;\n}\nfunction toRegexp(obj, ...keys) {\n  for (const key of keys) {\n    const value = obj[key];\n    if (typeof value === \"string\") {\n      obj[key] = new RegExp(value);\n    } else if (typeof value === \"object\" \u0026\u0026 value !== null \u0026\u0026 !(value instanceof RegExp) \u0026\u0026 typeof value.pattern === \"string\") {\n      obj[key] = new RegExp(value.pattern, value.flags);\n    }\n  }\n}\nfunction normalizeUri(uri) {\n  if (typeof uri === \"string\" || uri instanceof URL) {\n    const url = new URL(uri, \"file:///\");\n    uri = Uri2.from({\n      scheme: url.protocol.slice(0, -1),\n      authority: url.host,\n      path: decodeURIComponent(url.pathname),\n      query: url.search.slice(1),\n      fragment: url.hash.slice(1)\n    });\n  }\n  return uri;\n}\nfunction convertPickItem(item) {\n  if (typeof item === \"string\") {\n    return { type: \"item\", label: item, _kind_string: true };\n  }\n  if (item.kind === -1 /* Separator */) {\n    return { type: \"separator\", ...item };\n  }\n  return item;\n}\nfunction createEditorWorkerMain() {\n  const workerUrl = new URL(\"./editor-worker-main.mjs\", import.meta.url);\n  if (workerUrl.origin !== location.origin) {\n    return new Worker(\n      URL.createObjectURL(new Blob([`import \"${workerUrl.href}\"`], { type: \"application/javascript\" })),\n      { type: \"module\", name: \"editor-worker-main\" }\n    );\n  }\n  return new Worker(workerUrl, { type: \"module\", name: \"editor-worker-main\" });\n}\nexport {\n  CancellationTokenSource2 as CancellationTokenSource,\n  Emitter2 as Emitter,\n  InputBoxValidationSeverity,\n  KeyCode2 as KeyCode,\n  KeyMod2 as KeyMod,\n  MarkerSeverity3 as MarkerSeverity,\n  MarkerTag2 as MarkerTag,\n  Position2 as Position,\n  QuickPickItemKind,\n  Range3 as Range,\n  Selection2 as Selection,\n  SelectionDirection2 as SelectionDirection,\n  Token3 as Token,\n  Uri2 as Uri,\n  convertVscodeLanguageConfiguration,\n  createEditorWorkerMain,\n  editor,\n  languageConfigurationAliases,\n  language_configurations_default as languageConfigurations,\n  languages,\n  showInputBox,\n  showQuickPick\n};\n/*! Bundled license information:\n\nmonaco-editor-core/esm/vs/base/browser/dompurify/dompurify.js:\n  (*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE *)\n*/\n\nexport const cssBundle = \".monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);background-color:var(--vscode-editor-background);overflow-wrap:initial}.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .editorCanvas{position:absolute;width:100%;height:100%;z-index:0;pointer-events:none}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .view-overlays\u003ediv,.monaco-editor .margin-view-overlays\u003ediv{position:absolute;width:100%}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:\\\"\\\";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:\\\"\\\";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:\\\"\\\";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground, inherit)}.monaco-scrollable-element\u003e.scrollbar\u003e.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element\u003e.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element\u003e.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element\u003e.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element\u003e.shadow{position:absolute;display:none}.monaco-scrollable-element\u003e.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element\u003e.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element\u003e.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element\u003e.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element\u003e.scrollbar\u003e.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element\u003e.scrollbar\u003e.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element\u003e.scrollbar\u003e.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .view-overlays .current-line,.monaco-editor .margin-view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box;height:100%}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute;height:100%}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box;height:100%}.monaco-editor .margin-view-overlays .line-numbers{bottom:0;font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-mouse-cursor-text{cursor:text}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background, var(--vscode-editor-background));color:var(--vscode-button-foreground, var(--vscode-editor-foreground));border-width:1px;border-style:solid;border-color:var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{box-sizing:border-box;position:absolute;width:100%}.monaco-editor .lines-content\u003e.view-lines\u003e.view-line\u003espan{top:0;bottom:0;position:absolute}.monaco-editor .mtkw{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .minimap.slider-mouseover .minimap-slider.active{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px;pointer-events:none}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.minimap-autohide-mouseover,.minimap.minimap-autohide-scroll{opacity:0;transition:opacity .5s}.minimap.minimap-autohide-scroll{pointer-events:none}.minimap.minimap-autohide-mouseover:hover,.minimap.minimap-autohide-scroll.active{opacity:1;pointer-events:auto}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer\u003e.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation\u003e.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style\u003e.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style\u003e.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style\u003e.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand\u003e.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .monaco-decoration-css-rule-extractor{visibility:hidden;pointer-events:none}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .native-edit-context{margin:0;padding:0;position:absolute;overflow-y:scroll;scrollbar-width:none;z-index:-10;white-space:pre-wrap}.monaco-editor .ime-text-area{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .edit-context-composition-none{background-color:transparent;border-bottom:none}.monaco-editor :not(.hc-black,.hc-light) .edit-context-composition-secondary{border-bottom:1px solid var(--vscode-editor-compositionBorder)}.monaco-editor :not(.hc-black,.hc-light) .edit-context-composition-primary{border-bottom:2px solid var(--vscode-editor-compositionBorder)}.monaco-editor :is(.hc-black,.hc-light) .edit-context-composition-secondary{border:1px solid var(--vscode-editor-compositionBorder)}.monaco-editor :is(.hc-black,.hc-light) .edit-context-composition-primary{border:2px solid var(--vscode-editor-compositionBorder)}.monaco-editor .margin-view-overlays .gpu-mark{position:absolute;top:0;bottom:0;left:0;width:100%;display:inline-block;border-left:solid 2px var(--vscode-editorWarning-foreground);opacity:.2;transition:background-color .1s linear}.monaco-editor .margin-view-overlays .gpu-mark:hover{background-color:var(--vscode-editorWarning-foreground)}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:3px;min-height:24px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list\u003e.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element\u003e.scrollbar.vertical,.monaco-pane-view\u003e.monaco-split-view2.vertical\u003e.monaco-scrollable-element\u003e.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-single,.monaco-list.selection-multiple{outline:0!important}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000;background-color:var(--vscode-list-activeSelectionBackground);color:var(--vscode-list-activeSelectionForeground);outline:1px solid var(--vscode-list-focusOutline);outline-offset:-1px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-padding{--dropdown-padding-top: 1px;--dropdown-padding-bottom: 1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top: 3px;--dropdown-padding-bottom: 4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container\u003e.select-box-details-pane\u003e.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container\u003e.select-box-details-pane\u003e.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container\u003e.select-box-details-pane\u003e.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container\u003e.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container\u003e.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-list-container .monaco-list .monaco-list-row\u003e.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-list-container .monaco-list .monaco-list-row\u003e.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-list-container .monaco-list .monaco-list-row\u003e.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-list-container .monaco-list .monaco-list-row\u003e.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-container-width-control\u003e.width-control-div{overflow:hidden;max-height:0px}.monaco-select-box-dropdown-container\u003e.select-box-dropdown-container-width-control\u003e.width-control-div\u003e.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .icon,.monaco-action-bar .action-item .codicon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label:not(.icon),.monaco-action-bar .action-item.disabled .action-label:not(.icon):before,.monaco-action-bar .action-item.disabled .action-label:not(.icon):hover{color:var(--vscode-disabledForeground)}.monaco-action-bar .action-item.disabled .action-label.icon,.monaco-action-bar .action-item.disabled .action-label.icon:before,.monaco-action-bar .action-item.disabled .action-label.icon:hover{opacity:.6}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid var(--vscode-disabledForeground);padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:var(--vscode-disabledForeground)}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item\u003e.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item\u003e.action-dropdown-item-separator\u003ediv{width:1px}.monaco-diff-editor .diff-review{position:absolute}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99;.diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.diff-review-summary{padding-left:10px}.diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.diff-review-row{white-space:pre}.diff-review-table{display:table;min-width:100%}.diff-review-row{display:table-row;width:100%}.diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.diff-review-spacer\u003e.codicon{font-size:9px!important}.diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.revertButton{cursor:pointer}.action-label{background:var(--vscode-editorActionList-background)}}:root{--vscode-sash-size: 4px;--vscode-sash-hover-size: 4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)\u003e.orthogonal-drag-handle{content:\\\" \\\";height:calc(var(--vscode-sash-size) * 2);width:calc(var(--vscode-sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)\u003e.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)\u003e.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)\u003e.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)\u003e.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical\u003e.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size) * -.5);top:calc(var(--vscode-sash-size) * -1)}.monaco-sash.vertical\u003e.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size) * -.5);bottom:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal\u003e.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size) * -.5);left:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal\u003e.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size) * -.5);right:calc(var(--vscode-sash-size) * -1)}.monaco-sash:before{content:\\\"\\\";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.hover:before,.monaco-sash.active:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - (var(--vscode-sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - (var(--vscode-sash-hover-size) / 2))}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)\u003e.orthogonal-drag-handle{background:red}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown\u003e.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown\u003e.dropdown-label\u003e.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary\u003e.action-container\u003e.action-label{margin-right:0}.monaco-dropdown-with-primary\u003e.dropdown-action-container\u003e.monaco-dropdown\u003e.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary\u003e.dropdown-action-container\u003e.monaco-dropdown\u003e.dropdown-label\u003e.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-action-bar .action-item.menu-entry.text-only .action-label{color:var(--vscode-descriptionForeground);overflow:hidden;border-radius:2px}.monaco-action-bar .action-item.menu-entry.text-only.use-comma:not(:last-of-type) .action-label:after{content:\\\", \\\"}.monaco-action-bar .action-item.menu-entry.text-only+.action-item:not(.text-only)\u003e.monaco-dropdown .action-label{color:var(--vscode-descriptionForeground)}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default\u003e.action-container\u003e.action-label{margin-right:0}.monaco-dropdown-with-default\u003e.action-container.menu-entry\u003e.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-dropdown-with-default\u003e.dropdown-action-container\u003e.monaco-dropdown\u003e.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default\u003e.dropdown-action-container\u003e.monaco-dropdown\u003e.dropdown-label\u003e.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0px;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines .bottom.dragging{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .top,.monaco-editor .diff-hidden-lines .bottom{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom){cursor:n-resize!important}.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom{cursor:s-resize!important}.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedOriginal,.monaco-editor .movedModified{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedOriginal.currentMove,.monaco-editor .movedModified.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-diffEditor-removedTextBackground) 3px}.monaco-editor .char-insert.diff-range-empty{border-left:solid var(--vscode-diffEditor-insertedTextBackground) 3px}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-editor .insert-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-diff-editor .delete-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-editor.hc-black .insert-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .delete-sign,.monaco-editor.hc-light .insert-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .delete-sign{opacity:1}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .inline-added-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .char-insert,.monaco-diff-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .line-insert,.monaco-diff-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .line-insert,.monaco-editor .char-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .line-insert,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-light .char-insert{border-style:dashed}.monaco-editor .line-delete,.monaco-editor .char-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-black .char-delete,.monaco-editor.hc-light .char-delete{border-style:dashed}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .gutter-insert,.monaco-diff-editor .gutter-insert{background-color:var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-delete,.monaco-diff-editor .char-delete,.monaco-editor .inline-deleted-text{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .inline-deleted-text{text-decoration:line-through}.monaco-editor .line-delete,.monaco-diff-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground))}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .gutter-delete,.monaco-diff-editor .gutter-delete{background-color:var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor.side-by-side .editor.original{box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow);border-right:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{position:relative;overflow:hidden;flex-shrink:0;flex-grow:0;\u003ediv{position:absolute}.gutterItem{opacity:0;transition:opacity .7s;\u0026.showAlways{opacity:1;transition:none}\u0026.noTransition{transition:none}}\u0026:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.gutterItem{.background{position:absolute;height:100%;left:50%;width:1px;border-left:2px var(--vscode-menu-separatorBackground) solid}.buttons{position:absolute;width:100%;display:flex;justify-content:center;align-items:center;.monaco-toolbar{height:fit-content;.monaco-action-bar{line-height:1;.actions-container{width:fit-content;border-radius:4px;background:var(--vscode-editorGutter-itemBackground);.action-item{\u0026:hover{background:var(--vscode-toolbar-hoverBackground)}.action-label{color:var(--vscode-editorGutter-itemGlyphForeground);padding:1px 2px}}}}}}}}.monaco-diff-editor .diff-hidden-lines-compact{display:flex;height:11px;.line-left,.line-right{height:1px;border-top:1px solid;border-color:var(--vscode-editorCodeLens-foreground);opacity:.5;margin:auto;width:100%}.line-left{width:20px}.text{color:var(--vscode-editorCodeLens-foreground);text-wrap:nowrap;font-size:11px;line-height:11px;margin:0 4px}}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:var(--vscode-icon-x-content);font-family:var(--vscode-icon-x-font-family)}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0px}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border-color:transparent;border-style:solid;z-index:1000;border-width:8px;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border, transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled:focus,.monaco-button.disabled{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label\u003e.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label\u003e.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label\u003e.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label\u003e.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown\u003e.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled\u003e.monaco-button.disabled,.monaco-button-dropdown.disabled\u003e.monaco-button.disabled:focus,.monaco-button-dropdown.disabled\u003e.monaco-button-dropdown-separator{opacity:.4!important}.monaco-button-dropdown\u003e.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator\u003ediv{height:100%;width:1px}.monaco-button-dropdown\u003e.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border, transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown\u003e.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-label,.monaco-description-button .monaco-button-description{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-label\u003e.codicon,.monaco-description-button .monaco-button-description\u003e.codicon{margin:0 .2em;color:inherit!important}.monaco-button.default-colors,.monaco-button-dropdown.default-colors\u003e.monaco-button{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button.default-colors:hover,.monaco-button-dropdown.default-colors\u003e.monaco-button:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button.default-colors.secondary,.monaco-button-dropdown.default-colors\u003e.monaco-button.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button.default-colors.secondary:hover,.monaco-button-dropdown.default-colors\u003e.monaco-button.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator\u003ediv{background-color:var(--vscode-button-separator)}.action-widget{font-size:13px;min-width:100px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border)!important;border-radius:5px;background-color:var(--vscode-editorActionList-background);color:var(--vscode-editorActionList-foreground);padding:4px;box-shadow:0 2px 8px var(--vscode-widget-shadow)}.context-view-block{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:-1}.context-view-pointerBlock{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:none!important;border-width:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 0 0 8px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%;border-radius:4px}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-editorActionList-focusBackground)!important;color:var(--vscode-editorActionList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600;font-size:12px}.action-widget .monaco-list-row.group-header:not(:first-of-type){margin-top:2px}.action-widget .monaco-scrollable-element .monaco-list-rows .monaco-list-row.separator{border-top:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-descriptionForeground);font-size:12px;padding:0;margin:4px 0 0;cursor:default;user-select:none;border-radius:0}.action-widget .monaco-scrollable-element .monaco-list-rows .monaco-list-row.separator.focused{outline:0 solid;background-color:transparent;border-radius:0}.action-widget .monaco-list-row.separator:first-of-type{border-top:none;margin-top:0}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled:before,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:8px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding\u003e.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorActionList-background);border-top:1px solid var(--vscode-editorHoverWidget-border);margin-top:2px}.action-widget .action-widget-action-bar:before{display:block;content:\\\"\\\";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:3px 8px 0}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.action-widget .monaco-list .monaco-list-row .description{opacity:.7;margin-left:.5em;font-size:.9em}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding\u003e.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding\u003e.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding\u003e.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding\u003e.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding\u003e.monaco-keybinding-key-chord-separator{width:6px}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border, transparent);border-radius:4px;color:var(--vscode-button-foreground);background-color:var(--vscode-button-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-hoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}@font-face{font-family:codicon;font-display:block;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI3T0tPAAABjAAAAGBjbWFwYtdidwAACagAABy6Z2x5Zq0zMFkAACpEAAEYfGhlYWRYl6BTAAAA4AAAADZoaGVhAlsDGgAAALwAAAAkaG10eEL1//IAAAHsAAAHvGxvY2Hqyy+wAAAmZAAAA+BtYXhwAxABgQAAARgAAAAgbmFtZZP6uU4AAULAAAAB+HBvc3SDcWEeAAFEuAAAG40AAQAAASwAAAAAASz////+AS4AAQAAAAAAAAAAAAAAAAAAAe8AAQAAAAEAAEgWKf5fDzz1AAsBLAAAAAB8JbCAAAAAAHwlsID////9AS4BLQAAAAgAAgAAAAAAAAABAAAB7wF1ABcAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQBKwGQAAUAAADPANIAAAAqAM8A0gAAAJAADgBNAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOpg8QEBLAAAABsBRwADAAAAAQAAAAAAAAAAAAAAAAACAAAAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEs//8BLP//ASwAAAEsAAABLP//ASz//wEs//8BLAAAASz//wEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAAAAABQAAAAMAAAAsAAAABAAABWoAAQAAAAAEZAADAAEAAAAsAAMACgAABWoABAQ4AAAAEgAQAAMAAuqI6ozqx+rJ6wnrTuxW8QH//wAA6mDqiuqP6snqzOsL61DxAf//AAAAAAAAAAAAAAAAAAAAAAABABIAYgBmANYA1gFQAdYD4gAAAAMBDgFqAWYAyQFWAbYBQwGPASwBlQBTAeQBgAGLAYoAowA5AU4AlwDlARsARAG0AIgAFwHfAK0AmQFiATsBMgEzAckA3wC5ANEBwQGhAJwBsgGaAakBpwGbAaoBsQGsAaQA1AGgAa4AAgAEAAUACgALAAwADQAOAA8AEAASABsAHQAeAB8AawBsAG0AbgBxAHIAIgAjACQAJQAmACkALgAvADAAMQAyADMANQA2ADcAOAA/ADwAQABBAEIAQwBFAEYASgBMAE0AUABkAGUAZgBnAHYAeAB6AH0AgQCDAIQAhQCGAIcAiQCKAIsAjACNAI4AkACRAJMAlACYAJoAnQChAKIApQCmAKcAqACpAKoAqwCsAK4AsACyALMAtAC1ALYAuAC7ALwAvQC+AL8AwADCAM0AzgDSANYA2gDbAN4A4ADhAOIA4wDpAOoA6wDsAO0A7gDvAPMBCwEPARABEwEWARcBGAEZAR0BHgEjASUBJgErAS0BLgEvATEBNQE2ATkBOgE9AT4BRgFKAUsBTAFNAU8BUAFSAVMBVAFVAVoBWwFcAV0BXgFfAWABYQFjAWUBaAFpAWsAkgFtAW4BbwFwAXEBeAF5AXoBewF8AX8BhQGGAYcBiQGMAY4BkgGTAZQBlgGXAZwBnQGeAZ8BogCtAaMBpQGoAasBrQGvAbgBuQHCAcMBxQHHAcgBygHLAcwBzQHOAdIB1AHVAdYB2QHaAdsB3QHeAeUB5gHnAegB6QHtAe4BEQESARQBFQBvAHAAfwA9AIAAcwGwAH4AggB8AGoAJwAoAScAngCkANwB0wABABgAdAEKATwBdAGzAUgAzwGEAYMBQAGYAUkBWABpAdwARwEoAJ8A1wEcATgBWQAtAUcBPwA6ADsATgG1AdcB0QHPAdAAxAFyAXUBNwB7AeoB7AHrAbsBvAG9Ab4BvwHAAboAEQBiAUIArwHjAHkA5wD2APUA9ABWAFUAVAAVAOgAwwDGAGgAdwF3ALcAdQAWANgA2QFFACAAIQEaABQB2AE0AQkA9wD4AP4A+wD9AQABAQEEAQcBCAD6APkBtwDkAVcAmwAGAAcACAAJAQYA/wEDABwA3QEiAR8APgAaABkAUgDHAMgBfQBRAYIBkQDmASoBxAHGAEsBjQC6AeAANAFEATABKQFkAGEBDQFsAZAAkgCPAZkBiADMAMoAywHiAeEASAF2AXMAYwDQASEBIADVAUEAEwDTAJUASQBgAVEAWgBfAPIAVwBbALEBDAGmAF4BZwDwAPEAxQEkAKAA/AECAQUAWQBYAF0ALAF+AJYAXAGBAE8AKwAqAMEAAAEG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6zEAAOsxAAABUAAA6zIAAOsyAAABUgAA6zMAAOszAAABUwAA6zQAAOs0AAABVAAA6zUAAOs1AAABVQAA6zYAAOs2AAABWgAA6zcAAOs3AAABWwAA6zgAAOs4AAABXAAA6zkAAOs5AAABXQAA6zoAAOs6AAABXgAA6zsAAOs7AAABXwAA6zwAAOs8AAABYAAA6z0AAOs9AAABYQAA6z4AAOs+AAABYwAA6z8AAOs/AAABZQAA60AAAOtAAAABaAAA60EAAOtBAAABaQAA60IAAOtCAAABawAA60MAAOtDAAAAkgAA60QAAOtEAAABbQAA60UAAOtFAAABbgAA60YAAOtGAAABbwAA60cAAOtHAAABcAAA60gAAOtIAAABcQAA60kAAOtJAAABeAAA60oAAOtKAAABeQAA60sAAOtLAAABegAA60wAAOtMAAABewAA600AAOtNAAABfAAA604AAOtOAAABfwAA61AAAOtQAAABhQAA61EAAOtRAAABhgAA61IAAOtSAAABhwAA61MAAOtTAAABiQAA61QAAOtUAAABjAAA61UAAOtVAAABjgAA61YAAOtWAAABkgAA61cAAOtXAAABkwAA61gAAOtYAAABlAAA61kAAOtZAAABlgAA61oAAOtaAAABlwAA61sAAOtbAAABnAAA61wAAOtcAAABnQAA610AAOtdAAABngAA614AAOteAAABnwAA618AAOtfAAABogAA62AAAOtgAAAArQAA62EAAOthAAABowAA62IAAOtiAAABpQAA62MAAOtjAAABqAAA62QAAOtkAAABqwAA62UAAOtlAAABrQAA62YAAOtmAAABrwAA62cAAOtnAAABuAAA62gAAOtoAAABuQAA62kAAOtpAAABwgAA62oAAOtqAAABwwAA62sAAOtrAAABxQAA62wAAOtsAAABxwAA620AAOttAAAByAAA624AAOtuAAABygAA628AAOtvAAABywAA63AAAOtwAAABzAAA63EAAOtxAAABzQAA63IAAOtyAAABzgAA63MAAOtzAAAB0gAA63QAAOt0AAAB1AAA63UAAOt1AAAB1QAA63YAAOt2AAAB1gAA63cAAOt3AAAB2QAA63gAAOt4AAAB2gAA63kAAOt5AAAB2wAA63oAAOt6AAAB3QAA63sAAOt7AAAB3gAA63wAAOt8AAAB5QAA630AAOt9AAAB5gAA634AAOt+AAAB5wAA638AAOt/AAAB6AAA64AAAOuAAAAB6QAA64EAAOuBAAAB7QAA64IAAOuCAAAB7gAA64MAAOuDAAABEQAA64QAAOuEAAABEgAA64UAAOuFAAABFAAA64YAAOuGAAABFQAA64cAAOuHAAAAbwAA64gAAOuIAAAAcAAA64kAAOuJAAAAfwAA64oAAOuKAAAAPQAA64sAAOuLAAAAgAAA64wAAOuMAAAAcwAA640AAOuNAAABsAAA644AAOuOAAAAfgAA648AAOuPAAAAggAA65AAAOuQAAAAfAAA65EAAOuRAAAAagAA65IAAOuSAAAAJwAA65MAAOuTAAAAKAAA65QAAOuUAAABJwAA65UAAOuVAAAAngAA65YAAOuWAAAApAAA65cAAOuXAAAA3AAA65gAAOuYAAAB0wAA65kAAOuZAAAAAQAA65oAAOuaAAAAGAAA65sAAOubAAAAdAAA65wAAOucAAABCgAA650AAOudAAABPAAA654AAOueAAABdAAA658AAOufAAABswAA66AAAOugAAABSAAA66EAAOuhAAAAzwAA66IAAOuiAAABhAAA66MAAOujAAABgwAA66QAAOukAAABQAAA66UAAOulAAABmAAA66YAAOumAAABSQAA66cAAOunAAABWAAA66gAAOuoAAAAaQAA66kAAOupAAAB3AAA66oAAOuqAAAARwAA66sAAOurAAABKAAA66wAAOusAAAAnwAA660AAOutAAAA1wAA664AAOuuAAABHAAA668AAOuvAAABOAAA67AAAOuwAAABWQAA67EAAOuxAAAALQAA67IAAOuyAAABRwAA67MAAOuzAAABPwAA67QAAOu0AAAAOgAA67UAAOu1AAAAOwAA67YAAOu2AAAATgAA67cAAOu3AAABtQAA67gAAOu4AAAB1wAA67kAAOu5AAAB0QAA67oAAOu6AAABzwAA67sAAOu7AAAB0AAA67wAAOu8AAAAxAAA670AAOu9AAABcgAA674AAOu+AAABdQAA678AAOu/AAABNwAA68AAAOvAAAAAewAA68EAAOvBAAAB6gAA68IAAOvCAAAB7AAA68MAAOvDAAAB6wAA68QAAOvEAAABuwAA68UAAOvFAAABvAAA68YAAOvGAAABvQAA68cAAOvHAAABvgAA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AAEECQAKAEgAxAADAAEECQALACYBDGNvZGljb25SZWd1bGFyY29kaWNvbmNvZGljb25WZXJzaW9uIDEuMTRjb2RpY29uVGhlIGljb24gZm9udCBmb3IgVmlzdWFsIFN0dWRpbyBDb2RlaHR0cDovL2ZvbnRlbGxvLmNvbQBjAG8AZABpAGMAbwBuAFIAZQBnAHUAbABhAHIAYwBvAGQAaQBjAG8AbgBjAG8AZABpAGMAbwBuAFYAZQByAHMAaQBvAG4AIAAxAC4AMQA0AGMAbwBkAGkAYwBvAG4AVABoAGUAIABpAGMAbwBuACAAZgBvAG4AdAAgAGYAbwByACAAVgBpAHMAdQBhAGwAIABTAHQAdQBkAGkAbwAgAEMAbwBkAGUAaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQACAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe8BAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAAB2FjY291bnQUYWN0aXZhdGUtYnJlYWtwb2ludHMDYWRkB2FyY2hpdmUKYXJyb3ctYm90aBFhcnJvdy1jaXJjbGUtZG93bhFhcnJvdy1jaXJjbGUtbGVmdBJhcnJvdy1jaXJjbGUtcmlnaHQPYXJyb3ctY2lyY2xlLXVwCmFycm93LWRvd24KYXJyb3ctbGVmdAthcnJvdy1yaWdodBBhcnJvdy1zbWFsbC1kb3duEGFycm93LXNtYWxsLWxlZnQRYXJyb3ctc21hbGwtcmlnaHQOYXJyb3ctc21hbGwtdXAKYXJyb3ctc3dhcAhhcnJvdy11cAZhdHRhY2gMYXp1cmUtZGV2b3BzBWF6dXJlC2JlYWtlci1zdG9wBmJlYWtlcghiZWxsLWRvdA5iZWxsLXNsYXNoLWRvdApiZWxsLXNsYXNoBGJlbGwFYmxhbmsEYm9sZARib29rCGJvb2ttYXJrC2JyYWNrZXQtZG90DWJyYWNrZXQtZXJyb3IJYnJpZWZjYXNlCWJyb2FkY2FzdAdicm93c2VyA2J1ZwhjYWxlbmRhcg1jYWxsLWluY29taW5nDWNhbGwtb3V0Z29pbmcOY2FzZS1zZW5zaXRpdmUSY2hhdC1zcGFya2xlLWVycm9yFGNoYXQtc3BhcmtsZS13YXJuaW5nDGNoYXQtc3BhcmtsZQljaGVjay1hbGwFY2hlY2sJY2hlY2tsaXN0DGNoZXZyb24tZG93bgxjaGV2cm9uLWxlZnQNY2hldnJvbi1yaWdodApjaGV2cm9uLXVwBGNoaXAMY2hyb21lLWNsb3NlD2Nocm9tZS1tYXhpbWl6ZQ9jaHJvbWUtbWluaW1pemUOY2hyb21lLXJlc3RvcmUNY2lyY2xlLWZpbGxlZBNjaXJjbGUtbGFyZ2UtZmlsbGVkDGNpcmNsZS1sYXJnZQxjaXJjbGUtc2xhc2gTY2lyY2xlLXNtYWxsLWZpbGxlZAxjaXJjbGUtc21hbGwGY2lyY2xlDWNpcmN1aXQtYm9hcmQJY2xlYXItYWxsBmNsaXBweQljbG9zZS1hbGwFY2xvc2UOY2xvdWQtZG93bmxvYWQMY2xvdWQtdXBsb2FkBWNsb3VkCGNvZGUtb3NzC2NvZGUtcmV2aWV3BGNvZGUGY29mZmVlDGNvbGxhcHNlLWFsbApjb2xvci1tb2RlB2NvbWJpbmUaY29tbWVudC1kaXNjdXNzaW9uLXNwYXJrbGUSY29tbWVudC1kaXNjdXNzaW9uDWNvbW1lbnQtZHJhZnQSY29tbWVudC11bnJlc29sdmVkB2NvbW1lbnQOY29tcGFzcy1hY3RpdmULY29tcGFzcy1kb3QHY29tcGFzcw9jb3BpbG90LWJsb2NrZWQNY29waWxvdC1lcnJvchNjb3BpbG90LWluLXByb2dyZXNzDWNvcGlsb3QtbGFyZ2UVY29waWxvdC1ub3QtY29ubmVjdGVkDmNvcGlsb3Qtc25vb3plD2NvcGlsb3Qtc3VjY2VzcxNjb3BpbG90LXVuYXZhaWxhYmxlFWNvcGlsb3Qtd2FybmluZy1sYXJnZQ9jb3BpbG90LXdhcm5pbmcHY29waWxvdARjb3B5CGNvdmVyYWdlC2NyZWRpdC1jYXJkBGRhc2gJZGFzaGJvYXJkCGRhdGFiYXNlCWRlYnVnLWFsbA9kZWJ1Zy1hbHQtc21hbGwJZGVidWctYWx0J2RlYnVnLWJyZWFrcG9pbnQtY29uZGl0aW9uYWwtdW52ZXJpZmllZBxkZWJ1Zy1icmVha3BvaW50LWNvbmRpdGlvbmFsIGRlYnVnLWJyZWFrcG9pbnQtZGF0YS11bnZlcmlmaWVkFWRlYnVnLWJyZWFrcG9pbnQtZGF0YSRkZWJ1Zy1icmVha3BvaW50LWZ1bmN0aW9uLXVudmVyaWZpZWQZZGVidWctYnJlYWtwb2ludC1mdW5jdGlvbh9kZWJ1Zy1icmVha3BvaW50LWxvZy11bnZlcmlmaWVkFGRlYnVnLWJyZWFrcG9pbnQtbG9nHGRlYnVnLWJyZWFrcG9pbnQtdW5zdXBwb3J0ZWQNZGVidWctY29uc29sZRRkZWJ1Zy1jb250aW51ZS1zbWFsbA5kZWJ1Zy1jb250aW51ZQ5kZWJ1Zy1jb3ZlcmFnZRBkZWJ1Zy1kaXNjb25uZWN0EmRlYnVnLWxpbmUtYnktbGluZQtkZWJ1Zy1wYXVzZQtkZWJ1Zy1yZXJ1bhNkZWJ1Zy1yZXN0YXJ0LWZyYW1lDWRlYnVnLXJlc3RhcnQWZGVidWctcmV2ZXJzZS1jb250aW51ZRdkZWJ1Zy1zdGFja2ZyYW1lLWFjdGl2ZRBkZWJ1Zy1zdGFja2ZyYW1lC2RlYnVnLXN0YXJ0D2RlYnVnLXN0ZXAtYmFjaw9kZWJ1Zy1zdGVwLWludG8OZGVidWctc3RlcC1vdXQPZGVidWctc3RlcC1vdmVyCmRlYnVnLXN0b3AFZGVidWcQZGVza3RvcC1kb3dubG9hZBNkZXZpY2UtY2FtZXJhLXZpZGVvDWRldmljZS1jYW1lcmENZGV2aWNlLW1vYmlsZQpkaWZmLWFkZGVkDGRpZmYtaWdub3JlZA1kaWZmLW1vZGlmaWVkDWRpZmYtbXVsdGlwbGUMZGlmZi1yZW1vdmVkDGRpZmYtcmVuYW1lZAtkaWZmLXNpbmdsZQRkaWZmB2Rpc2NhcmQMZWRpdC1zZXNzaW9uDGVkaXQtc3BhcmtsZQRlZGl0DWVkaXRvci1sYXlvdXQIZWxsaXBzaXMMZW1wdHktd2luZG93C2Vycm9yLXNtYWxsBWVycm9yB2V4Y2x1ZGUKZXhwYW5kLWFsbAZleHBvcnQQZXh0ZW5zaW9ucy1sYXJnZQpleHRlbnNpb25zCmV5ZS1jbG9zZWQDZXllCGZlZWRiYWNrC2ZpbGUtYmluYXJ5CWZpbGUtY29kZQpmaWxlLW1lZGlhCGZpbGUtcGRmDmZpbGUtc3VibW9kdWxlFmZpbGUtc3ltbGluay1kaXJlY3RvcnkRZmlsZS1zeW1saW5rLWZpbGUIZmlsZS16aXAEZmlsZQVmaWxlcw1maWx0ZXItZmlsbGVkBmZpbHRlcgRmbGFnBWZsYW1lCWZvbGQtZG93bgdmb2xkLXVwBGZvbGQNZm9sZGVyLWFjdGl2ZQ5mb2xkZXItbGlicmFyeQ1mb2xkZXItb3BlbmVkBmZvbGRlcgRnYW1lBGdlYXIEZ2lmdAtnaXN0LXNlY3JldARnaXN0CmdpdC1jb21taXQLZ2l0LWNvbXBhcmUJZ2l0LWZldGNoCWdpdC1tZXJnZRdnaXQtcHVsbC1yZXF1ZXN0LWNsb3NlZBdnaXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZRVnaXQtcHVsbC1yZXF1ZXN0LWRvbmUWZ2l0LXB1bGwtcmVxdWVzdC1kcmFmdB5naXQtcHVsbC1yZXF1ZXN0LWdvLXRvLWNoYW5nZXMcZ2l0LXB1bGwtcmVxdWVzdC1uZXctY2hhbmdlcxBnaXQtcHVsbC1yZXF1ZXN0D2dpdC1zdGFzaC1hcHBseQ1naXQtc3Rhc2gtcG9wCWdpdC1zdGFzaA1naXRodWItYWN0aW9uCmdpdGh1Yi1hbHQPZ2l0aHViLWludmVydGVkDmdpdGh1Yi1wcm9qZWN0BmdpdGh1YgVnbG9iZRVnby10by1lZGl0aW5nLXNlc3Npb24KZ28tdG8tZmlsZQxnby10by1zZWFyY2gHZ3JhYmJlcgpncmFwaC1sZWZ0CmdyYXBoLWxpbmUNZ3JhcGgtc2NhdHRlcgVncmFwaAdncmlwcGVyEWdyb3VwLWJ5LXJlZi10eXBlDGhlYXJ0LWZpbGxlZAVoZWFydAdoaXN0b3J5BGhvbWUPaG9yaXpvbnRhbC1ydWxlBWh1Ym90BWluYm94BmluZGVudARpbmZvBmluc2VydAdpbnNwZWN0C2lzc3VlLWRyYWZ0Dmlzc3VlLXJlb3BlbmVkBmlzc3VlcwZpdGFsaWMGamVyc2V5BGpzb24Oa2ViYWItdmVydGljYWwDa2V5EmtleWJvYXJkLXRhYi1hYm92ZRJrZXlib2FyZC10YWItYmVsb3cMa2V5Ym9hcmQtdGFiA2xhdw1sYXllcnMtYWN0aXZlCmxheWVycy1kb3QGbGF5ZXJzF2xheW91dC1hY3Rpdml0eWJhci1sZWZ0GGxheW91dC1hY3Rpdml0eWJhci1yaWdodA9sYXlvdXQtY2VudGVyZWQObGF5b3V0LW1lbnViYXITbGF5b3V0LXBhbmVsLWNlbnRlchFsYXlvdXQtcGFuZWwtZG9jaxRsYXlvdXQtcGFuZWwtanVzdGlmeRFsYXlvdXQtcGFuZWwtbGVmdBBsYXlvdXQtcGFuZWwtb2ZmEmxheW91dC1wYW5lbC1yaWdodAxsYXlvdXQtcGFuZWwYbGF5b3V0LXNpZGViYXItbGVmdC1kb2NrF2xheW91dC1zaWRlYmFyLWxlZnQtb2ZmE2xheW91dC1zaWRlYmFyLWxlZnQZbGF5b3V0LXNpZGViYXItcmlnaHQtZG9jaxhsYXlvdXQtc2lkZWJhci1yaWdodC1vZmYUbGF5b3V0LXNpZGViYXItcmlnaHQQbGF5b3V0LXN0YXR1c2JhcgZsYXlvdXQHbGlicmFyeRFsaWdodGJ1bGItYXV0b2ZpeA9saWdodGJ1bGItZW1wdHkRbGlnaHRidWxiLXNwYXJrbGUJbGlnaHRidWxiDWxpbmstZXh0ZXJuYWwEbGluawtsaXN0LWZpbHRlcglsaXN0LWZsYXQMbGlzdC1vcmRlcmVkDmxpc3Qtc2VsZWN0aW9uCWxpc3QtdHJlZQ5saXN0LXVub3JkZXJlZApsaXZlLXNoYXJlB2xvYWRpbmcIbG9jYXRpb24KbG9jay1zbWFsbARsb2NrBm1hZ25ldAltYWlsLXJlYWQEbWFpbAptYXAtZmlsbGVkE21hcC12ZXJ0aWNhbC1maWxsZWQMbWFwLXZlcnRpY2FsA21hcAhtYXJrZG93bgNtY3AJbWVnYXBob25lB21lbnRpb24EbWVudQVtZXJnZQptaWMtZmlsbGVkA21pYwltaWxlc3RvbmUGbWlycm9yDG1vcnRhci1ib2FyZARtb3ZlEG11bHRpcGxlLXdpbmRvd3MFbXVzaWMEbXV0ZQhuZXctZmlsZQpuZXctZm9sZGVyB25ld2xpbmUKbm8tbmV3bGluZQRub3RlEW5vdGVib29rLXRlbXBsYXRlCG5vdGVib29rCG9jdG9mYWNlDG9wZW4tcHJldmlldwxvcmdhbml6YXRpb24Gb3V0cHV0B3BhY2thZ2UIcGFpbnRjYW4LcGFzcy1maWxsZWQEcGFzcwpwZXJjZW50YWdlCnBlcnNvbi1hZGQGcGVyc29uBXBpYW5vCXBpZS1jaGFydANwaW4McGlubmVkLWRpcnR5BnBpbm5lZAtwbGF5LWNpcmNsZQRwbGF5BHBsdWcNcHJlc2VydmUtY2FzZQdwcmV2aWV3EHByaW1pdGl2ZS1zcXVhcmUHcHJvamVjdAVwdWxzZQZweXRob24IcXVlc3Rpb24FcXVvdGULcmFkaW8tdG93ZXIJcmVhY3Rpb25zC3JlY29yZC1rZXlzDHJlY29yZC1zbWFsbAZyZWNvcmQEcmVkbwpyZWZlcmVuY2VzB3JlZnJlc2gFcmVnZXgPcmVtb3RlLWV4cGxvcmVyBnJlbW90ZQZyZW1vdmULcmVwbGFjZS1hbGwHcmVwbGFjZQVyZXBseQpyZXBvLWNsb25lCnJlcG8tZmV0Y2gPcmVwby1mb3JjZS1wdXNoC3JlcG8tZm9ya2VkC3JlcG8tcGlubmVkCXJlcG8tcHVsbAlyZXBvLXB1c2gEcmVwbwZyZXBvcnQFcm9ib3QGcm9ja2V0EnJvb3QtZm9sZGVyLW9wZW5lZAtyb290LWZvbGRlcgNyc3MEcnVieQlydW4tYWJvdmUQcnVuLWFsbC1jb3ZlcmFnZQdydW4tYWxsCXJ1bi1iZWxvdwxydW4tY292ZXJhZ2UKcnVuLWVycm9ycwhzYXZlLWFsbAdzYXZlLWFzBHNhdmULc2NyZWVuLWZ1bGwNc2NyZWVuLW5vcm1hbAxzZWFyY2gtZnV6enkOc2VhcmNoLXNwYXJrbGULc2VhcmNoLXN0b3AGc2VhcmNoFHNlbmQtdG8tcmVtb3RlLWFnZW50BHNlbmQSc2VydmVyLWVudmlyb25tZW50DnNlcnZlci1wcm9jZXNzBnNlcnZlcg1zZXR0aW5ncy1nZWFyCHNldHRpbmdzBXNoYXJlBnNoaWVsZAdzaWduLWluCHNpZ24tb3V0BnNtaWxleQVzbmFrZQ9zb3J0LXByZWNlZGVuY2UOc291cmNlLWNvbnRyb2wOc3BhcmtsZS1maWxsZWQHc3BhcmtsZRBzcGxpdC1ob3Jpem9udGFsDnNwbGl0LXZlcnRpY2FsCHNxdWlycmVsCnN0YXItZW1wdHkJc3Rhci1mdWxsCXN0YXItaGFsZgtzdG9wLWNpcmNsZQ1zdXJyb3VuZC13aXRoDHN5bWJvbC1hcnJheQ5zeW1ib2wtYm9vbGVhbgxzeW1ib2wtY2xhc3MMc3ltYm9sLWNvbG9yD3N5bWJvbC1jb25zdGFudBJzeW1ib2wtZW51bS1tZW1iZXILc3ltYm9sLWVudW0Mc3ltYm9sLWV2ZW50DHN5bWJvbC1maWVsZBBzeW1ib2wtaW50ZXJmYWNlCnN5bWJvbC1rZXkOc3ltYm9sLWtleXdvcmQTc3ltYm9sLW1ldGhvZC1hcnJvdw1zeW1ib2wtbWV0aG9kC3N5bWJvbC1taXNjEHN5bWJvbC1uYW1lc3BhY2UOc3ltYm9sLW51bWVyaWMPc3ltYm9sLW9wZXJhdG9yEHN5bWJvbC1wYXJhbWV0ZXIPc3ltYm9sLXByb3BlcnR5DHN5bWJvbC1ydWxlcg5zeW1ib2wtc25pcHBldA1zeW1ib2wtc3RyaW5nEHN5bWJvbC1zdHJ1Y3R1cmUPc3ltYm9sLXZhcmlhYmxlDHN5bmMtaWdub3JlZARzeW5jBXRhYmxlA3RhZwZ0YXJnZXQIdGFza2xpc3QJdGVsZXNjb3BlDXRlcm1pbmFsLWJhc2gMdGVybWluYWwtY21kD3Rlcm1pbmFsLWRlYmlhbg50ZXJtaW5hbC1saW51eBN0ZXJtaW5hbC1wb3dlcnNoZWxsDXRlcm1pbmFsLXRtdXgPdGVybWluYWwtdWJ1bnR1CHRlcm1pbmFsCXRleHQtc2l6ZQp0aHJlZS1iYXJzEXRodW1ic2Rvd24tZmlsbGVkCnRodW1ic2Rvd24PdGh1bWJzdXAtZmlsbGVkCHRodW1ic3VwBXRvb2xzBXRyYXNoDXRyaWFuZ2xlLWRvd24NdHJpYW5nbGUtbGVmdA50cmlhbmdsZS1yaWdodAt0cmlhbmdsZS11cAd0d2l0dGVyEnR5cGUtaGllcmFyY2h5LXN1YhR0eXBlLWhpZXJhcmNoeS1zdXBlcg50eXBlLWhpZXJhcmNoeQZ1bmZvbGQTdW5ncm91cC1ieS1yZWYtdHlwZQZ1bmxvY2sGdW5tdXRlCnVudmVyaWZpZWQOdmFyaWFibGUtZ3JvdXAPdmVyaWZpZWQtZmlsbGVkCHZlcmlmaWVkCHZlcnNpb25zCXZtLWFjdGl2ZQp2bS1jb25uZWN0CnZtLW91dGxpbmUKdm0tcnVubmluZwJ2bQJ2cg92c2NvZGUtaW5zaWRlcnMGdnNjb2RlBHdhbmQHd2FybmluZwV3YXRjaAp3aGl0ZXNwYWNlCndob2xlLXdvcmQGd2luZG93CXdvcmQtd3JhcBF3b3Jrc3BhY2UtdHJ1c3RlZBF3b3Jrc3BhY2UtdW5rbm93bhN3b3Jrc3BhY2UtdW50cnVzdGVkB3pvb20taW4Iem9vbS1vdXQAAAAAAA==) format(\\\"truetype\\\")}.codicon[class*=codicon-]{font: 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(360deg)}}.codicon-sync.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-gear.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-value,.monaco-editor .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-enum{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:\\\"\\\";display:block;width:100%;height:100%;opacity:.3;z-index:1}.monaco-editor .glyph-margin-widgets .cgmr[class*=codicon-gutter-lightbulb]{display:block;cursor:pointer}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb,.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-auto-fix,.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-aifix-auto-fix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-flex!important;align-items:center;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration\u003espan,.monaco-editor .codelens-decoration\u003ea{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub;display:inline-flex;align-items:center}.monaco-editor .codelens-decoration\u003ea{text-decoration:none}.monaco-editor .codelens-decoration\u003ea:hover{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration\u003ea:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon[class*=codicon-]{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration\u003ea:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.monaco-editor .inlineSuggestionsHints{padding:4px;.warningMessage p{margin:0}}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)!important}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace, normal)}.monaco-hover.fade-in{animation:fadein .1s linear}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover\u003e.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth, 500px);word-wrap:break-word}.monaco-hover .markdown-hover\u003e.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover p,.monaco-hover .code,.monaco-hover ul,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0px;border-right:0px;margin:4px -8px -4px;height:1px}.monaco-hover p:first-child,.monaco-hover .code:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover p:last-child,.monaco-hover .code:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ul,.monaco-hover ol{padding-left:20px}.monaco-hover li\u003ep{margin-bottom:0}.monaco-hover li\u003eul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace, pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer;overflow:hidden;text-wrap:nowrap;text-overflow:ellipsis}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px;vertical-align:middle}.monaco-hover .hover-row.status-bar .actions .action-container a{color:var(--vscode-textLink-foreground);text-decoration:var(--text-link-decoration)}.monaco-hover .hover-row.status-bar .actions .action-container a .icon.codicon{color:var(--vscode-textLink-foreground)}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:hover,.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:\\\"(\\\"}.monaco-hover .hover-contents a.code-link:after{content:\\\")\\\"}.monaco-hover .hover-contents a.code-link\u003espan{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link\u003espan:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) p:last-child [style*=background-color]{margin-bottom:4px;display:inline-block}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span.codicon{margin-bottom:2px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-hover .action-container,.monaco-hover .action,.monaco-hover button,.monaco-hover .monaco-button,.monaco-hover .monaco-text-button,.monaco-hover [role=button]{-webkit-user-select:none;user-select:none}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:solid .1em #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:solid .1em #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid rgb(255,255,255);border-radius:100%;box-shadow:0 0 2px #000c;position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid rgba(255,255,255,.71);box-shadow:0 0 1px #000000d9}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:\\\"-\\\";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions\u003e.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions\u003e.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions\u003e.monaco-action-bar\u003e.actions-container{height:100%}.monaco-editor .peekview-widget\u003e.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2\u003e.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2\u003e.sash-container\u003e.monaco-sash{pointer-events:initial}.monaco-split-view2\u003e.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2\u003e.monaco-scrollable-element\u003e.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2\u003e.monaco-scrollable-element\u003e.split-view-container\u003e.split-view-view{white-space:initial;position:absolute}.monaco-split-view2\u003e.monaco-scrollable-element\u003e.split-view-container\u003e.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical\u003e.monaco-scrollable-element\u003e.split-view-container\u003e.split-view-view{width:100%}.monaco-split-view2.horizontal\u003e.monaco-scrollable-element\u003e.split-view-container\u003e.split-view-view{height:100%}.monaco-split-view2.separator-border\u003e.monaco-scrollable-element\u003e.split-view-container\u003e.split-view-view:not(:first-child):before{content:\\\" \\\";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal\u003e.monaco-scrollable-element\u003e.split-view-container\u003e.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical\u003e.monaco-scrollable-element\u003e.split-view-container\u003e.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table\u003e.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table\u003e.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-th,.monaco-table-td{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table\u003e.monaco-split-view2 .monaco-sash.vertical:before{content:\\\"\\\";position:absolute;left:calc(var(--vscode-sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table\u003e.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table\u003e.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-light .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center;border-radius:2px;padding-right:2px}.monaco-action-bar .checkbox-action-item:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-action-bar .checkbox-action-item\u003e.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item\u003e.checkbox-label{font-size:12px}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox\u003e.ibwrapper\u003e.input,.monaco-inputbox\u003e.ibwrapper\u003e.mirror{padding:4px 6px}.monaco-inputbox\u003e.ibwrapper{position:relative;width:100%}.monaco-inputbox\u003e.ibwrapper\u003e.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox\u003e.ibwrapper\u003einput{text-overflow:ellipsis}.monaco-inputbox\u003e.ibwrapper\u003etextarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox\u003e.ibwrapper\u003etextarea.input::-webkit-scrollbar{display:none}.monaco-inputbox\u003e.ibwrapper\u003etextarea.input.empty{white-space:nowrap}.monaco-inputbox\u003e.ibwrapper\u003e.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput\u003e.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls,.hc-light .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls,.hc-light .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:transparent}}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent\u003e.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent;opacity:0}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent\u003e.indent-guide{transition:opacity .1s linear}.monaco-tl-twistie,.monaco-tl-contents{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translate(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;right:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 10px 0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox\u003e.ibwrapper\u003e.input,.monaco-tree-type-filter-input .monaco-inputbox\u003e.ibwrapper\u003e.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput\u003e.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow{display:none}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:0px;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex=\\\"0\\\"]:focus{outline:none}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows\u003e.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder, transparent);box-sizing:border-box}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-iconpath{width:16px;height:16px;padding-left:2px;margin-top:2px;display:flex}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label\u003e.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label\u003e.monaco-icon-label-container\u003e.monaco-icon-name-container\u003e.label-name{color:inherit;white-space:pre}.monaco-icon-label\u003e.monaco-icon-label-container\u003e.monaco-icon-name-container\u003e.label-name\u003e.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label\u003e.monaco-icon-label-container\u003e.monaco-icon-suffix-container\u003e.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label\u003e.monaco-icon-label-container\u003e.monaco-icon-description-container\u003e.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap\u003e.monaco-icon-label-container\u003e.monaco-icon-description-container\u003e.label-description{white-space:nowrap}.vs .monaco-icon-label\u003e.monaco-icon-label-container\u003e.monaco-icon-description-container\u003e.label-description{opacity:.95}.monaco-icon-label.italic\u003e.monaco-icon-label-container\u003e.monaco-icon-name-container\u003e.label-name,.monaco-icon-label.italic\u003e.monaco-icon-label-container\u003e.monaco-icon-description-container\u003e.label-description{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.strikethrough\u003e.monaco-icon-label-container\u003e.monaco-icon-name-container\u003e.label-name,.monaco-icon-label.strikethrough\u003e.monaco-icon-label-container\u003e.monaco-icon-description-container\u003e.label-description{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-resizable-hover{border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;box-sizing:content-box}.monaco-editor .monaco-resizable-hover\u003e.monaco-hover{border:none;border-radius:none}.monaco-editor .monaco-hover{border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background)}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row{display:flex}.monaco-editor .monaco-hover .hover-row .hover-row-contents{min-width:0;display:flex;flex-direction:column}.monaco-editor .monaco-hover .hover-row .verbosity-actions{border-right:1px solid var(--vscode-editorHoverWidget-border);width:22px;overflow-y:clip}.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner{display:flex;flex-direction:column;padding-left:5px;padding-right:5px;justify-content:flex-end;position:relative}.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon{cursor:pointer;font-size:11px}.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon.enabled{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover .hover-row .verbosity-actions-inner .codicon.disabled{opacity:.6}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .dnd-target,.monaco-editor.hc-light .dnd-target{border-right:2px dotted black;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #AEAFAD;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines{cursor:default}.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines,.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground);border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;background-color:var(--vscode-editorWidget-background)}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled\u003e.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px;outline-color:var(--vscode-focusBorder)}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget\u003e.find-part,.monaco-editor .find-widget\u003e.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget\u003e.find-part .monaco-inputbox,.monaco-editor .find-widget\u003e.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget\u003e.replace-part .monaco-inputbox\u003e.ibwrapper\u003e.mirror{padding-right:22px}.monaco-editor .find-widget\u003e.find-part .monaco-inputbox\u003e.ibwrapper\u003e.input,.monaco-editor .find-widget\u003e.find-part .monaco-inputbox\u003e.ibwrapper\u003e.mirror,.monaco-editor .find-widget\u003e.replace-part .monaco-inputbox\u003e.ibwrapper\u003e.input,.monaco-editor .find-widget\u003e.replace-part .monaco-inputbox\u003e.ibwrapper\u003e.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget\u003e.find-part .find-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget\u003e.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:center center;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget\u003e.replace-part{display:none}.monaco-editor .find-widget\u003e.replace-part\u003e.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget\u003e.replace-part\u003e.monaco-findInput\u003e.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget\u003e.find-part .monaco-findInput .controls{display:none}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);padding:1px;box-sizing:border-box}.monaco-editor .findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{left:0!important;background-color:var(--vscode-editorWidget-resizeBorder, var(--vscode-editorWidget-border))}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget\u003e.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-collapsed{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:100%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed{transition:initial}.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons{opacity:1}.monaco-editor .inline-folded:after{color:var(--vscode-editor-foldPlaceholderForeground);margin:.1em .2em 0;content:\\\"\\\\22ef\\\";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder, transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-widget,.monaco-editor .suggest-details{flex:0 1 auto;width:100%;border-style:solid;border-width:1px;border-color:var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .suggest-details{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:\\\", \\\";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label\u003e.contents\u003e.main\u003e.right\u003e.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover\u003e.contents\u003e.main\u003e.right.can-expand-details\u003e.details-label{width:100%}.monaco-editor .suggest-widget\u003e.message{padding-left:22px}.monaco-editor .suggest-widget\u003e.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)\u003e.contents\u003e.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused\u003e.contents\u003e.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.header\u003e.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.header\u003e.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.header\u003e.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.left\u003e.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.left\u003e.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:initial;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.details-label\u003e.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.details-label{display:none}.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused\u003e.contents\u003e.main\u003e.right\u003e.details-label{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)\u003e.contents\u003e.main\u003e.right\u003e.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)\u003e.contents\u003e.main\u003e.right\u003e.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover\u003e.contents\u003e.main\u003e.right.can-expand-details\u003e.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.left\u003e.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)\u003e.contents\u003e.main\u003e.left\u003e.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label\u003e.contents\u003e.main\u003e.left\u003e.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row\u003e.contents\u003e.main\u003e.right\u003e.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label\u003e.contents\u003e.main\u003e.right\u003e.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label\u003e.contents\u003e.main\u003e.right\u003e.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover\u003e.contents\u003e.main\u003e.right\u003e.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated\u003e.monaco-icon-label-container\u003e.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details:focus{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details\u003e.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.header\u003e.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 4px 5px}.monaco-editor .suggest-details.detail-and-doc\u003e.monaco-scrollable-element\u003e.body\u003e.header\u003e.type{padding-bottom:12px}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.header\u003e.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type\u003e.monaco-scrollable-element\u003e.body\u003e.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs.markdown-docs{padding:0;white-space:initial;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs.markdown-docs\u003ediv,.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs.markdown-docs\u003espan:not(:empty){padding:4px 5px}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs.markdown-docs\u003ediv\u003ep:first-child{margin-top:0}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs.markdown-docs\u003ediv\u003ep:last-child{margin-bottom:0}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003e.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details\u003e.monaco-scrollable-element\u003e.body\u003ep:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ul,.monaco-editor .suggest-details ol{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .suggest-preview-text.clickable .view-line{z-index:1}.monaco-editor .ghost-text-decoration.clickable,.monaco-editor .ghost-text-decoration-preview.clickable,.monaco-editor .suggest-preview-text.clickable .ghost-text{cursor:pointer}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{\u0026.syntax-highlighted{opacity:.7}\u0026:not(.syntax-highlighted){color:var(--vscode-editorGhostText-foreground)}background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .ghost-text-decoration.warning,.monaco-editor .ghost-text-decoration-preview.warning,.monaco-editor .suggest-preview-text .ghost-text.warning{background:var(--monaco-editor-warning-decoration) repeat-x bottom left;border-bottom:4px double var(--vscode-editorWarning-border)}.ghost-text-view-warning-widget-icon{.codicon{color:var(--vscode-editorWarning-foreground)!important}}.monaco-editor{.edits-fadeout-decoration{opacity:var(--animation-opacity, 1);background-color:var(--vscode-inlineEdit-modifiedChangedTextBackground)}}.monaco-editor .sticky-widget{overflow:hidden;border-bottom:1px solid var(--vscode-editorStickyScroll-border);width:100%;box-shadow:var(--vscode-editorStickyScroll-shadow) 0 4px 2px -2px;z-index:4;right:initial!important;margin-left:\\\"0px\\\"}.monaco-editor .sticky-widget .sticky-widget-line-numbers{float:left;background-color:var(--vscode-editorStickyScrollGutter-background)}.monaco-editor .sticky-widget.peek .sticky-widget-line-numbers{background-color:var(--vscode-peekViewEditorStickyScrollGutter-background)}.monaco-editor .sticky-widget .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek .sticky-widget-lines-scrollable{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .sticky-widget .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-widget .sticky-line-number,.monaco-editor .sticky-widget .sticky-line-content{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-widget .sticky-line-number .codicon-folding-expanded,.monaco-editor .sticky-widget .sticky-line-number .codicon-folding-collapsed{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition);position:absolute;margin-left:2px}.monaco-editor .sticky-widget .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-widget .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor{.inline-edits-view-indicator{display:flex;z-index:34;height:20px;color:var(--vscode-inlineEdit-gutterIndicator-primaryForeground);background-color:var(--vscode-inlineEdit-gutterIndicator-background);border:1px solid var(--vscode-inlineEdit-gutterIndicator-primaryBorder);border-radius:3px;align-items:center;padding:2px 10px 2px 2px;margin:0 4px;opacity:0;\u0026.contained{transition:opacity .2s ease-in-out;transition-delay:.4s}\u0026.visible{opacity:1}\u0026.top{opacity:1;.icon{transform:rotate(90deg)}}\u0026.bottom{opacity:1;.icon{transform:rotate(-90deg)}}.icon{display:flex;align-items:center;margin:0 2px;transform:none;transition:transform .2s ease-in-out;.codicon{color:var(--vscode-inlineEdit-gutterIndicator-primaryForeground)}}.label{margin:0 2px;display:flex;justify-content:center;width:100%}}.inline-edits-view .editorContainer{.preview .monaco-editor{.view-overlays .current-line-exact,.current-line-margin{border:none}}.inline-edits-view-zone.diagonal-fill{opacity:.5}}.strike-through{text-decoration:line-through}.inlineCompletions-line-insert{background:var(--vscode-inlineEdit-modifiedChangedLineBackground)}.inlineCompletions-line-delete{background:var(--vscode-inlineEdit-originalChangedLineBackground)}.inlineCompletions-char-insert{background:var(--vscode-inlineEdit-modifiedChangedTextBackground);cursor:pointer}.inlineCompletions-char-delete{background:var(--vscode-inlineEdit-originalChangedTextBackground)}.inlineCompletions-char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-inlineEdit-originalChangedTextBackground) 3px}.inlineCompletions-char-insert.diff-range-empty{border-left:solid var(--vscode-inlineEdit-modifiedChangedTextBackground) 3px}.inlineCompletions-char-delete.single-line-inline{border:1px solid var(--vscode-editorHoverWidget-border);margin:-2px 0 0 -2px}.inlineCompletions-char-insert.single-line-inline{border-top:1px solid var(--vscode-inlineEdit-modifiedBorder);border-bottom:1px solid var(--vscode-inlineEdit-modifiedBorder)}.inlineCompletions-char-insert.single-line-inline.start{border-top-left-radius:4px;border-bottom-left-radius:4px;border-left:1px solid var(--vscode-inlineEdit-modifiedBorder)}.inlineCompletions-char-insert.single-line-inline.end{border-top-right-radius:4px;border-bottom-right-radius:4px;border-right:1px solid var(--vscode-inlineEdit-modifiedBorder)}.inlineCompletions-char-delete.single-line-inline.empty,.inlineCompletions-char-insert.single-line-inline.empty{display:none}.inlineCompletions.strike-through{text-decoration-thickness:1px}.inlineCompletions-modified-bubble{background:var(--vscode-inlineEdit-modifiedChangedTextBackground)}.inlineCompletions-original-bubble{background:var(--vscode-inlineEdit-originalChangedTextBackground)}.inlineCompletions-modified-bubble,.inlineCompletions-original-bubble{pointer-events:none;display:inline-block}.inline-edit.ghost-text,.inline-edit.ghost-text-decoration,.inline-edit.ghost-text-decoration-preview,.inline-edit.suggest-preview-text .ghost-text{\u0026.syntax-highlighted{opacity:1!important}font-style:normal!important}.inline-edit.modified-background.ghost-text,.inline-edit.modified-background.ghost-text-decoration,.inline-edit.modified-background.ghost-text-decoration-preview,.inline-edit.modified-background.suggest-preview-text .ghost-text{background:var(--vscode-inlineEdit-modifiedChangedTextBackground)!important;display:inline-block!important}.inlineCompletions-original-lines{background:var(--vscode-editor-background)}}.monaco-menu-option{color:var(--vscode-editorActionList-foreground);font-size:13px;padding:0 10px;line-height:26px;display:flex;gap:8px;align-items:center;border-radius:4px;cursor:pointer;\u0026.active{background:var(--vscode-editorActionList-focusBackground);color:var(--vscode-editorActionList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget\u003e.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:\\\"(\\\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:\\\")\\\"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link\u003espan{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer;color:var(--vscode-textLink-activeForeground)}.monaco-editor .zone-widget .codicon.codicon-error,.markers-panel .marker-icon.error,.markers-panel .marker-icon .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error,.extensions-viewlet\u003e.extensions .codicon.codicon-error,.extension-editor .codicon.codicon-error,.chat-attached-context-attachment .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-warning,.markers-panel .marker-icon.warning,.markers-panel .marker-icon .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning,.extensions-viewlet\u003e.extensions .codicon.codicon-warning,.extension-editor .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-info,.markers-panel .marker-icon.info,.markers-panel .marker-icon .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info,.extensions-viewlet\u003e.extensions .codicon.codicon-info,.extension-editor .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor{.scroll-editor-on-middle-click-dot{cursor:all-scroll;position:absolute;z-index:1;background-color:var(--vscode-editor-foreground, white);border:1px solid var(--vscode-editor-background, black);opacity:.5;width:5px;height:5px;border-radius:50%;transform:translate(-50%,-50%);\u0026.hidden{display:none}}\u0026.scroll-editor-on-middle-click-editor *{cursor:all-scroll}}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget\u003e.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:\\\"\\\";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .monaco-scrollable-element,.monaco-editor .parameter-hints-widget .body{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:\\\"\\\";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .code{font-family:var(--vscode-parameterHintsWidget-editorFontFamily),var(--vscode-parameterHintsWidget-editorFontFamilyDefault)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:initial}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter\u003e.parameter{font-weight:700;margin-right:.5em}.monaco-editor{.editorPlaceholder{top:0;position:absolute;overflow:hidden;text-overflow:ellipsis;text-wrap:nowrap;pointer-events:none;color:var(--vscode-editor-placeholder-foreground)}}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input-with-button{padding:3px;border-radius:2px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input{width:calc(100% - 8px);padding:0}.monaco-editor .rename-box .rename-input:focus{outline:none}.monaco-editor .rename-box .rename-suggestions-button{display:flex;align-items:center;padding:3px;background-color:transparent;border:none;border-radius:5px;cursor:pointer}.monaco-editor .rename-box .rename-suggestions-button:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row{border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:center center;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .iPadShowKeyboard{width:58px;min-width:0;height:36px;min-height:0;margin:0;padding:0;position:absolute;resize:none;overflow:hidden;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjNDI0MjQyIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #F6F6F6;border-radius:4px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIHZpZXdCb3g9IjAgMCA1MyAzNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNDguMDM2NCA0LjAxMDQySDQuMDA3NzlMNC4wMDc3OSAzMi4wMjg2SDQ4LjAzNjRWNC4wMTA0MlpNNC4wMDc3OSAwLjAwNzgxMjVDMS43OTcyMSAwLjAwNzgxMjUgMC4wMDUxODc5OSAxLjc5OTg0IDAuMDA1MTg3OTkgNC4wMTA0MlYzMi4wMjg2QzAuMDA1MTg3OTkgMzQuMjM5MiAxLjc5NzIxIDM2LjAzMTIgNC4wMDc3OSAzNi4wMzEySDQ4LjAzNjRDNTAuMjQ3IDM2LjAzMTIgNTIuMDM5IDM0LjIzOTIgNTIuMDM5IDMyLjAyODZWNC4wMTA0MkM1Mi4wMzkgMS43OTk4NCA1MC4yNDcgMC4wMDc4MTI1IDQ4LjAzNjQgMC4wMDc4MTI1SDQuMDA3NzlaTTguMDEwNDIgOC4wMTMwMkgxMi4wMTNWMTIuMDE1Nkg4LjAxMDQyVjguMDEzMDJaTTIwLjAxODIgOC4wMTMwMkgxNi4wMTU2VjEyLjAxNTZIMjAuMDE4MlY4LjAxMzAyWk0yNC4wMjA4IDguMDEzMDJIMjguMDIzNFYxMi4wMTU2SDI0LjAyMDhWOC4wMTMwMlpNMzYuMDI4NiA4LjAxMzAySDMyLjAyNlYxMi4wMTU2SDM2LjAyODZWOC4wMTMwMlpNNDAuMDMxMiA4LjAxMzAySDQ0LjAzMzlWMTIuMDE1Nkg0MC4wMzEyVjguMDEzMDJaTTE2LjAxNTYgMTYuMDE4Mkg4LjAxMDQyVjIwLjAyMDhIMTYuMDE1NlYxNi4wMTgyWk0yMC4wMTgyIDE2LjAxODJIMjQuMDIwOFYyMC4wMjA4SDIwLjAxODJWMTYuMDE4MlpNMzIuMDI2IDE2LjAxODJIMjguMDIzNFYyMC4wMjA4SDMyLjAyNlYxNi4wMTgyWk00NC4wMzM5IDE2LjAxODJWMjAuMDIwOEgzNi4wMjg2VjE2LjAxODJINDQuMDMzOVpNMTIuMDEzIDI0LjAyMzRIOC4wMTA0MlYyOC4wMjZIMTIuMDEzVjI0LjAyMzRaTTE2LjAxNTYgMjQuMDIzNEgzNi4wMjg2VjI4LjAyNkgxNi4wMTU2VjI0LjAyMzRaTTQ0LjAzMzkgMjQuMDIzNEg0MC4wMzEyVjI4LjAyNkg0NC4wMzM5VjI0LjAyMzRaIiBmaWxsPSIjQzVDNUM1Ii8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iNTMiIGhlaWdodD0iMzYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==) center center no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{z-index:50;user-select:text;-webkit-user-select:text;padding:10px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{height:1px;border:0;background-color:var(--vscode-editorHoverWidget-border)}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{font-weight:400;font-size:60%;float:right}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font: \\\"SF Mono\\\", Monaco, Menlo, Consolas, \\\"Ubuntu Mono\\\", \\\"Liberation Mono\\\", \\\"DejaVu Sans Mono\\\", \\\"Courier New\\\", monospace}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-editor .synthetic-focus,.monaco-diff-editor .synthetic-focus,.monaco-editor [tabindex=\\\"0\\\"]:focus,.monaco-diff-editor [tabindex=\\\"0\\\"]:focus,.monaco-editor [tabindex=\\\"-1\\\"]:focus,.monaco-diff-editor [tabindex=\\\"-1\\\"]:focus,.monaco-editor button:focus,.monaco-diff-editor button:focus,.monaco-editor input[type=button]:focus,.monaco-diff-editor input[type=button]:focus,.monaco-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-editor input[type=search]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-editor input[type=text]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-editor select:focus,.monaco-diff-editor select:focus,.monaco-editor textarea:focus,.monaco-diff-editor textarea:focus{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:var(--vscode-focusBorder);opacity:1}.monaco-workbench .workbench-hover{position:relative;font-size:13px;line-height:19px;z-index:40;overflow:hidden;max-width:700px;background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);box-shadow:0 2px 8px var(--vscode-widget-shadow)}.monaco-workbench .workbench-hover .monaco-action-bar .action-item .codicon{width:13px;height:13px}.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .monaco-action-bar .action-item .codicon{width:12px;height:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container:focus-within.locked .workbench-hover{outline-color:var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-pointer{position:absolute;z-index:41;pointer-events:none}.monaco-workbench .workbench-hover-pointer:after{content:\\\"\\\";position:absolute;width:5px;height:5px;background-color:var(--vscode-editorHoverWidget-background);border-right:1px solid var(--vscode-editorHoverWidget-border);border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container:not(:focus-within).locked .workbench-hover-pointer:after{width:4px;height:4px;border-right-width:2px;border-bottom-width:2px}.monaco-workbench .workbench-hover-container:focus-within .workbench-hover-pointer:after{border-right:1px solid var(--vscode-focusBorder);border-bottom:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-workbench .workbench-hover-pointer.left:after{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.right:after{transform:rotate(315deg)}.monaco-workbench .workbench-hover-pointer.top:after{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:1px solid;outline-offset:-1px;text-decoration:underline;outline-color:var(--vscode-focusBorder)}.monaco-workbench .workbench-hover a.codicon:focus,.monaco-workbench .workbench-hover a.monaco-button:focus{text-decoration:none}.monaco-workbench .workbench-hover a:hover,.monaco-workbench .workbench-hover a:active{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-right:0;margin-left:16px}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding\u003e.monaco-keybinding-key{background-color:#ddd6;border:solid 1px rgba(204,204,204,.4);border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6;color:#555}.hc-black .monaco-keybinding\u003e.monaco-keybinding-key{background-color:transparent;border:solid 1px rgb(111,195,223);box-shadow:none;color:#fff}.hc-light .monaco-keybinding\u003e.monaco-keybinding-key{background-color:transparent;border:solid 1px #0F4A85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding\u003e.monaco-keybinding-key{background-color:#8080802b;border:solid 1px rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{cursor:grab;display:flex;align-items:center;border-top-right-radius:5px;border-top-left-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-inline-action-bar\u003e.actions-container\u003e.action-item:first-child{margin-left:5px}.quick-input-inline-action-bar\u003e.actions-container\u003e.action-item{margin-top:2px}.quick-input-title{cursor:grab;padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar\u003e.actions-container{justify-content:flex-end}.quick-input-right-action-bar\u003e.actions-container\u003e.action-item{margin-left:4px}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:center;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{cursor:grab;display:flex;padding:6px 6px 2px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-widget .quick-input-header .monaco-checkbox{margin-top:6px}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message\u003e.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 6px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index=\\\"0\\\"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-widget .monaco-checkbox{margin-right:0}.quick-input-widget .quick-input-list .monaco-checkbox,.quick-input-widget .quick-input-tree .monaco-checkbox{margin-top:4px}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-list .quick-input-list-rows\u003e.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows\u003e.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows\u003e.quick-input-list-row .monaco-icon-label .monaco-icon-label-container\u003e.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows\u003e.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label\u003espan{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{font-weight:700;background-color:unset;color:var(--vscode-list-highlightForeground)!important}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list\u003e.monaco-list:focus .monaco-list-row.focused{outline:1px solid var(--vscode-list-focusOutline)!important;outline-offset:-1px}.quick-input-list\u003e.monaco-list:focus .monaco-list-row.focused .quick-input-list-entry.quick-input-list-separator-border{border-color:transparent}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{padding:4px 6px;font-size:12px}.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .monaco-tl-twistie{display:none!important}.quick-input-tree .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-tree .quick-input-tree-entry{box-sizing:border-box;overflow:hidden;display:flex;padding:0 6px}.quick-input-tree .quick-input-tree-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-tree .quick-input-tree-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-tree .quick-input-tree-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-tree .quick-input-tree-rows\u003e.quick-input-tree-row{display:flex;align-items:center}.quick-input-tree .quick-input-tree-rows\u003e.quick-input-tree-row .monaco-icon-label,.quick-input-tree .quick-input-tree-rows\u003e.quick-input-tree-row .monaco-icon-label .monaco-icon-label-container\u003e.monaco-icon-name-container{flex:1}.quick-input-tree .quick-input-tree-rows\u003e.quick-input-tree-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-tree .quick-input-tree-rows .monaco-highlighted-label\u003espan{opacity:1}.quick-input-tree .quick-input-tree-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-tree .quick-input-tree-entry-action-bar .action-label{display:none}.quick-input-tree .quick-input-tree-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-tree .quick-input-tree-entry-action-bar{margin-top:1px}.quick-input-tree .quick-input-tree-entry-action-bar{margin-right:4px}.quick-input-tree .quick-input-tree-entry .quick-input-tree-entry-action-bar .action-label.always-visible,.quick-input-tree .quick-input-tree-entry:hover .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .quick-input-tree-entry.focus-inside .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .monaco-list-row.focused .quick-input-tree-entry-action-bar .action-label,.quick-input-tree .monaco-list-row.passive-focused .quick-input-tree-entry-action-bar .action-label{display:flex}.quick-input-tree\u003e.monaco-list:focus .monaco-list-row.focused{outline:1px solid var(--vscode-list-focusOutline)!important;outline-offset:-1px}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);position:relative;height:100%;width:100%;overflow-y:hidden;\u003ediv{position:absolute;top:0;left:0;height:100%;width:100%;\u0026.placeholder{visibility:hidden;\u0026.visible{visibility:visible}display:grid;place-items:center;place-content:center}}.active{--vscode-multiDiffEditor-border: var(--vscode-focusBorder)}.multiDiffEntry{display:flex;flex-direction:column;flex:1;overflow:hidden;.collapse-button{margin:0 5px;cursor:pointer;a{display:block}}.header{z-index:1000;background:var(--vscode-editor-background);\u0026:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.header-content{margin:8px 0 0;padding:4px 5px;border-top:1px solid var(--vscode-multiDiffEditor-border);display:flex;align-items:center;color:var(--vscode-foreground);background:var(--vscode-multiDiffEditor-headerBackground);\u0026.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.file-path{display:flex;flex:1;min-width:0;.title{font-size:14px;line-height:22px;\u0026.original{flex:1;min-width:0;text-overflow:ellipsis}}.status{font-weight:600;opacity:.75;margin:0 10px;line-height:22px}}.actions{padding:0 8px}}}.editorParent{flex:1;display:flex;flex-direction:column;border-bottom:1px solid var(--vscode-multiDiffEditor-border);overflow:hidden}.editorContainer{flex:1}}}\\n.monaco-inputbox input{outline:1px solid var(--vscode-focusBorder)} .rename-box input{color:inherit;font-family:inherit;font-size:100%;}.monaco-editor .rename-box .rename-input-with-button{width:auto}\""],"version":3}
